email_data 1606845461 → 1607427861
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -2
- data/.github/workflows/package.yml +49 -0
- data/.github/workflows/ruby-tests.yml +1 -0
- data/.gitignore +21 -0
- data/Gemfile.lock +25 -5
- data/README.md +20 -0
- data/Rakefile +10 -3
- data/VERSION +1 -1
- data/bin/helpers.rb +4 -4
- data/bin/publish +6 -16
- data/bin/sync +4 -0
- data/bin/sync-disposable-emails +1 -2
- data/data/disposable_domains.txt +14 -0
- data/data/disposable_domains_with_mx.txt +19363 -0
- data/data/disposable_domains_without_mx.txt +97387 -0
- data/email_data.gemspec +1 -0
- data/lib/email_data.rb +2 -0
- data/lib/email_data/source/active_record.rb +17 -0
- data/lib/email_data/source/file_system.rb +10 -0
- data/lib/email_data/version.rb +1 -1
- data/package.json +16 -16
- metadata +29 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63b2324c3c5b0b6cf82035d848fdc7bb4da8ddd7f4e5fd2ea5bacff09eb37fe0
|
4
|
+
data.tar.gz: 42505ee545597463a44604089b0d8288daee2a5b4bbddc237dbe9d6e20c59c0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f46c3cc8c6760ca863e8d70804f48b6badf714368815cce42a8ce12c386849e79e1f8996cf4c1168cba143ca8360797a4463b75f8921416e6b7405f412cffe3b
|
7
|
+
data.tar.gz: dc79df9eecce6e95e44c15d806668ce585ee8147bc8ac94ea614e40e1992a3310d66a877ee95d3c8f67b933623532ea0b1ecc4651438386cf6da7e1d0ebc3881
|
data/.github/FUNDING.yml
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
name: package
|
3
|
+
|
4
|
+
on:
|
5
|
+
schedule:
|
6
|
+
- cron: "0 0 * * *"
|
7
|
+
workflow_dispatch:
|
8
|
+
inputs: {}
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
build:
|
12
|
+
name: Export with Ruby ${{ matrix.ruby }}
|
13
|
+
runs-on: "ubuntu-latest"
|
14
|
+
strategy:
|
15
|
+
fail-fast: false
|
16
|
+
matrix:
|
17
|
+
ruby: ["2.7.x"]
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- uses: actions/checkout@v2.3.4
|
21
|
+
|
22
|
+
- uses: actions/cache@v2
|
23
|
+
with:
|
24
|
+
path: vendor/bundle
|
25
|
+
key: >
|
26
|
+
${{ runner.os }}-${{ matrix.ruby }}-gems-${{
|
27
|
+
hashFiles('**/*.gemspec') }}
|
28
|
+
restore-keys: >
|
29
|
+
${{ runner.os }}-${{ matrix.ruby }}-gems-${{
|
30
|
+
hashFiles('**/*.gemspec') }}
|
31
|
+
|
32
|
+
- name: Set up Ruby
|
33
|
+
uses: actions/setup-ruby@v1
|
34
|
+
with:
|
35
|
+
ruby-version: ${{ matrix.ruby }}
|
36
|
+
|
37
|
+
- name: Install gem dependencies
|
38
|
+
run: |
|
39
|
+
gem install bundler
|
40
|
+
bundle config path vendor/bundle
|
41
|
+
bundle install --jobs 4 --retry 3
|
42
|
+
|
43
|
+
- name: Export files
|
44
|
+
env:
|
45
|
+
GITHUB_TOKEN: "${{ secrets.GH_TOKEN }}"
|
46
|
+
RUBYGEMS_API_KEY: "${{ secrets.RUBYGEMS_API_KEY }}"
|
47
|
+
NPM_AUTH_TOKEN: "${{ secrets.NPM_AUTH_TOKEN }}"
|
48
|
+
run: |
|
49
|
+
./bin/package
|
data/.gitignore
CHANGED
@@ -9,3 +9,24 @@
|
|
9
9
|
/data/disposable/**/*
|
10
10
|
/data/json/**/*
|
11
11
|
LOCK
|
12
|
+
bin/jq
|
13
|
+
opt/
|
14
|
+
vendor/
|
15
|
+
pkg/
|
16
|
+
VERSION
|
17
|
+
.DS_Store
|
18
|
+
.*.sw?
|
19
|
+
/.pow*
|
20
|
+
/.rvmrc
|
21
|
+
/.rbenv-version
|
22
|
+
/bin/
|
23
|
+
/.tags*
|
24
|
+
Thumbs.db
|
25
|
+
.vagrant
|
26
|
+
.bash/user.sh
|
27
|
+
.gemtags
|
28
|
+
.tags
|
29
|
+
.tags_sorted_by_file
|
30
|
+
/node_modules
|
31
|
+
/.env
|
32
|
+
/.env.*
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
email_data (
|
4
|
+
email_data (1607309899)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -20,10 +20,14 @@ GEM
|
|
20
20
|
aitch (1.1.0)
|
21
21
|
nokogiri
|
22
22
|
ast (2.4.1)
|
23
|
+
awesome_print (1.8.0)
|
24
|
+
byebug (11.1.3)
|
25
|
+
coderay (1.1.3)
|
23
26
|
concurrent-ruby (1.1.7)
|
24
27
|
docile (1.3.2)
|
25
28
|
i18n (1.8.5)
|
26
29
|
concurrent-ruby (~> 1.0)
|
30
|
+
method_source (1.0.0)
|
27
31
|
mini_portile2 (2.4.0)
|
28
32
|
minitest (5.14.2)
|
29
33
|
minitest-utils (0.4.6)
|
@@ -34,6 +38,20 @@ GEM
|
|
34
38
|
parser (2.7.2.0)
|
35
39
|
ast (~> 2.4.1)
|
36
40
|
pg (1.2.3)
|
41
|
+
pry (0.13.1)
|
42
|
+
coderay (~> 1.1)
|
43
|
+
method_source (~> 1.0)
|
44
|
+
pry-byebug (3.9.0)
|
45
|
+
byebug (~> 11.0)
|
46
|
+
pry (~> 0.13.0)
|
47
|
+
pry-meta (0.0.10)
|
48
|
+
awesome_print
|
49
|
+
pry
|
50
|
+
pry-byebug
|
51
|
+
pry-remote
|
52
|
+
pry-remote (0.1.8)
|
53
|
+
pry (~> 0.9)
|
54
|
+
slop (~> 3.0)
|
37
55
|
rainbow (3.0.0)
|
38
56
|
rake (13.0.1)
|
39
57
|
regexp_parser (2.0.0)
|
@@ -41,18 +59,18 @@ GEM
|
|
41
59
|
root_domain (0.1.2)
|
42
60
|
email_data
|
43
61
|
simpleidn
|
44
|
-
rubocop (1.5.
|
62
|
+
rubocop (1.5.2)
|
45
63
|
parallel (~> 1.10)
|
46
64
|
parser (>= 2.7.1.5)
|
47
65
|
rainbow (>= 2.2.2, < 4.0)
|
48
|
-
regexp_parser (>=
|
66
|
+
regexp_parser (>= 1.8, < 3.0)
|
49
67
|
rexml
|
50
|
-
rubocop-ast (>= 1.2.0)
|
68
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
51
69
|
ruby-progressbar (~> 1.7)
|
52
70
|
unicode-display_width (>= 1.4.0, < 2.0)
|
53
71
|
rubocop-ast (1.3.0)
|
54
72
|
parser (>= 2.7.1.5)
|
55
|
-
rubocop-fnando (0.0.
|
73
|
+
rubocop-fnando (0.0.15)
|
56
74
|
rubocop
|
57
75
|
rubocop-performance
|
58
76
|
rubocop-performance (1.9.1)
|
@@ -67,6 +85,7 @@ GEM
|
|
67
85
|
simplecov_json_formatter (0.1.2)
|
68
86
|
simpleidn (0.1.1)
|
69
87
|
unf (~> 0.1.4)
|
88
|
+
slop (3.6.0)
|
70
89
|
thread_safe (0.3.6)
|
71
90
|
tzinfo (1.2.8)
|
72
91
|
thread_safe (~> 0.1)
|
@@ -87,6 +106,7 @@ DEPENDENCIES
|
|
87
106
|
minitest
|
88
107
|
minitest-utils
|
89
108
|
pg
|
109
|
+
pry-meta
|
90
110
|
rake
|
91
111
|
root_domain
|
92
112
|
rubocop
|
data/README.md
CHANGED
@@ -41,6 +41,8 @@ EmailData.data_dir
|
|
41
41
|
|
42
42
|
# List of disposable domains. Punycode is expanded into ASCII domains.
|
43
43
|
EmailData.disposable_domains
|
44
|
+
EmailData.disposable_domains_with_mx
|
45
|
+
EmailData.disposable_domains_without_mx
|
44
46
|
|
45
47
|
# List of disposable emails. Some services use free email like Gmail to create
|
46
48
|
# disposable emails.
|
@@ -127,6 +129,18 @@ class SetupEmailData < ActiveRecord::Migration[6.1]
|
|
127
129
|
|
128
130
|
add_index :disposable_domains, :name, unique: true
|
129
131
|
|
132
|
+
create_table :disposable_domains_with_mx do |t|
|
133
|
+
t.citext :name, null: false
|
134
|
+
end
|
135
|
+
|
136
|
+
add_index :disposable_domains_with_mx, :name, unique: true
|
137
|
+
|
138
|
+
create_table :disposable_domains_without_mx do |t|
|
139
|
+
t.citext :name, null: false
|
140
|
+
end
|
141
|
+
|
142
|
+
add_index :disposable_domains_without_mx, :name, unique: true
|
143
|
+
|
130
144
|
create_table :free_email_domains do |t|
|
131
145
|
t.citext :name, null: false
|
132
146
|
end
|
@@ -176,6 +190,8 @@ COPY slds (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data
|
|
176
190
|
COPY country_tlds (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/country_tlds.txt';
|
177
191
|
COPY disposable_emails (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/disposable_emails.txt';
|
178
192
|
COPY disposable_domains (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/disposable_domains.txt';
|
193
|
+
COPY disposable_domains_with_mx (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/disposable_domains_with_mx.txt';
|
194
|
+
COPY disposable_domains_without_mx (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/disposable_domains_without_mx.txt';
|
179
195
|
COPY free_email_domains (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/free_email_domains.txt';
|
180
196
|
COPY roles (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/roles.txt';
|
181
197
|
COPY private_relays (name) FROM '/usr/local/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/email_data-1601479967/data/private_relays.txt';
|
@@ -204,6 +220,8 @@ class LoadEmailData < ActiveRecord::Migration[6.1]
|
|
204
220
|
copy.call(:country_tlds)
|
205
221
|
copy.call(:disposable_emails)
|
206
222
|
copy.call(:disposable_domains)
|
223
|
+
copy.call(:disposable_domains_with_mx)
|
224
|
+
copy.call(:disposable_domains_without_mx)
|
207
225
|
copy.call(:free_email_domains)
|
208
226
|
copy.call(:roles)
|
209
227
|
copy.call(:private_relays)
|
@@ -230,6 +248,8 @@ $ npm install @fnando/email_data
|
|
230
248
|
```js
|
231
249
|
const disposableEmails = require("@fnando/email_data/data/json/disposable_emails.json");
|
232
250
|
const disposableDomains = require("@fnando/email_data/data/json/disposable_domains.json");
|
251
|
+
const disposableDomainsWithMx = require("@fnando/email_data/data/json/disposable_domains_with_mx.json");
|
252
|
+
const disposableDomainsWithoutMx = require("@fnando/email_data/data/json/disposable_domains_without_mx.json");
|
233
253
|
const freeEmailDomains = require("@fnando/email_data/data/json/free_email_domains.json");
|
234
254
|
const roles = require("@fnando/email_data/data/json/roles.json");
|
235
255
|
const privateRelays = require("@fnando/email_data/data/json/private_relays.json");
|
data/Rakefile
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
4
|
require "rake/testtask"
|
5
|
-
|
5
|
+
|
6
|
+
all_tasks = %i[test]
|
6
7
|
|
7
8
|
Rake::TestTask.new(:test) do |t|
|
8
9
|
t.libs << "test"
|
@@ -10,6 +11,12 @@ Rake::TestTask.new(:test) do |t|
|
|
10
11
|
t.test_files = FileList["test/**/*_test.rb"]
|
11
12
|
end
|
12
13
|
|
13
|
-
|
14
|
+
begin
|
15
|
+
require "rubocop/rake_task"
|
16
|
+
RuboCop::RakeTask.new
|
17
|
+
all_tasks << "rubocop"
|
18
|
+
rescue LoadError
|
19
|
+
puts "=> Couldn't load Rubocop rake tasks"
|
20
|
+
end
|
14
21
|
|
15
|
-
task default:
|
22
|
+
task default: all_tasks
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
1607200035
|
data/bin/helpers.rb
CHANGED
@@ -106,9 +106,9 @@ def random_timeout
|
|
106
106
|
(1..10).map {|i| (1.0 / i).round(2) }.sample
|
107
107
|
end
|
108
108
|
|
109
|
-
def refresh_list(url:, path:, verb: :get, params: nil
|
109
|
+
def refresh_list(url:, path:, verb: :get, params: nil)
|
110
110
|
response = http_request(verb, url, params)
|
111
|
-
items =
|
111
|
+
items = yield(response)
|
112
112
|
append_to_file(path, items)
|
113
113
|
rescue StandardError => error
|
114
114
|
puts "=> [ERROR] Unable to refresh list: #{url} (#{error.class}: #{error.message})"
|
@@ -191,9 +191,9 @@ def root_domains(domains)
|
|
191
191
|
processed_domains.reject(&:nil?)
|
192
192
|
end
|
193
193
|
|
194
|
-
def thread
|
194
|
+
def thread
|
195
195
|
Thread.new do
|
196
|
-
|
196
|
+
yield
|
197
197
|
rescue StandardError => error
|
198
198
|
puts "=> [ERROR] Thread has errored; #{error.class}: #{error.message}"
|
199
199
|
end
|
data/bin/publish
CHANGED
@@ -8,17 +8,12 @@ source $HOME/.zsh/asdf.sh
|
|
8
8
|
lockfile=$(dirname $0)/../LOCK
|
9
9
|
|
10
10
|
if [[ -f "$lockfile" ]]; then
|
11
|
-
|
12
|
-
-message "Skipping script; repository is locked." \
|
13
|
-
-ignoreDnD \
|
14
|
-
-title "email_data" \
|
15
|
-
-group homebrew \
|
16
|
-
&> /dev/null
|
11
|
+
echo "Skipping script; repository is locked."
|
17
12
|
exit 1
|
18
13
|
fi
|
19
14
|
|
20
15
|
git reset --hard
|
21
|
-
git checkout
|
16
|
+
git checkout publish
|
22
17
|
git pull --rebase
|
23
18
|
git push
|
24
19
|
|
@@ -27,13 +22,8 @@ git push
|
|
27
22
|
git_status=$(git status 2> /dev/null | tr "\\n" " ")
|
28
23
|
|
29
24
|
if [[ "$git_status" =~ "nothing to commit" ]]; then
|
30
|
-
|
31
|
-
|
32
|
-
-ignoreDnD \
|
33
|
-
-title "email_data" \
|
34
|
-
-group homebrew \
|
35
|
-
&> /dev/null
|
36
|
-
exit 1
|
25
|
+
echo "No changes detected. Skipping new packages."
|
26
|
+
exit
|
37
27
|
fi
|
38
28
|
|
39
29
|
date "+%s" > VERSION
|
@@ -52,5 +42,5 @@ git add .
|
|
52
42
|
git commit -m "Bump up version."
|
53
43
|
git push
|
54
44
|
|
55
|
-
./bin/publish-gem
|
56
|
-
./bin/publish-npm
|
45
|
+
# ./bin/publish-gem
|
46
|
+
# ./bin/publish-npm
|
data/bin/sync
CHANGED
data/bin/sync-disposable-emails
CHANGED
@@ -130,7 +130,7 @@ def process_scraping(element, value_selector)
|
|
130
130
|
else
|
131
131
|
element.attributes.each do |_name, attr|
|
132
132
|
attr = attr.value.to_s
|
133
|
-
value = attr if attr
|
133
|
+
value = attr if attr&.match?(host_regex)
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
@@ -172,7 +172,6 @@ threads << thread { domain_scraping("itemp", "https://itemp.email", "select[name
|
|
172
172
|
threads << thread { domain_scraping("cs", "https://www.cs.email", "select[id=gm-host-select] option::text()") }
|
173
173
|
threads << thread { domain_scraping("tempmail", "https://tempmail.io/settings/", "select[id=domain] option::text()") }
|
174
174
|
threads << thread { domain_scraping("tempemail", "https://tempemail.co", "select[name=email_domain] option::text()") }
|
175
|
-
threads << thread { domain_scraping("tmail", "https://mytemp-email.com/", "a.domain-selector::text()") }
|
176
175
|
|
177
176
|
threads.each_slice(5) do |slice|
|
178
177
|
slice.each(&:join)
|
data/data/disposable_domains.txt
CHANGED
@@ -1455,6 +1455,7 @@
|
|
1455
1455
|
1hdbt.com
|
1456
1456
|
1hdd.site
|
1457
1457
|
1hdek9.us
|
1458
|
+
1heizi.com
|
1458
1459
|
1hermesbirkin0.com
|
1459
1460
|
1hi.info
|
1460
1461
|
1hmoxs72qd.cf
|
@@ -4588,6 +4589,7 @@
|
|
4588
4589
|
567107.com
|
4589
4590
|
56787.com
|
4590
4591
|
5679827.com
|
4592
|
+
567map.xyz
|
4591
4593
|
568ac.com
|
4592
4594
|
56k.tokyo
|
4593
4595
|
56toyk.us
|
@@ -13340,6 +13342,7 @@ aspfitting.com
|
|
13340
13342
|
asphalt-9-legends.ru
|
13341
13343
|
aspiredoge.com
|
13342
13344
|
aspiringweb.net
|
13345
|
+
aspiringweb.org
|
13343
13346
|
asportsa.ru
|
13344
13347
|
asportscoach.app
|
13345
13348
|
aspotgmail.org
|
@@ -13843,6 +13846,7 @@ aussiematureclub.com
|
|
13843
13846
|
aussiepersonal.loan
|
13844
13847
|
aussiepersonal.loans
|
13845
13848
|
aussiesmut.com
|
13849
|
+
austbikemart.com
|
13846
13850
|
austimail.com
|
13847
13851
|
austinbell.name
|
13848
13852
|
austincar.club
|
@@ -20440,6 +20444,7 @@ brownetrading.net
|
|
20440
20444
|
brownetrading.org
|
20441
20445
|
browniesgoreng.com
|
20442
20446
|
brownieslumer.com
|
20447
|
+
brownindians.com
|
20443
20448
|
brownlandscapingutah.com
|
20444
20449
|
brownpelican.info
|
20445
20450
|
brownricecooker.com
|
@@ -47529,6 +47534,7 @@ hebagfu.tk
|
|
47529
47534
|
hebatmart.xyz
|
47530
47535
|
hebedbugremovalok.live
|
47531
47536
|
hebeos.online
|
47537
|
+
hebgsw.com
|
47532
47538
|
hebohdomino88.com
|
47533
47539
|
hebohpkv.design
|
47534
47540
|
hebohpkv2.com
|
@@ -48629,6 +48635,7 @@ hmmbswlt5ts.ga
|
|
48629
48635
|
hmmbswlt5ts.gq
|
48630
48636
|
hmmbswlt5ts.ml
|
48631
48637
|
hmmbswlt5ts.tk
|
48638
|
+
hmnmw.com
|
48632
48639
|
hmos.systems
|
48633
48640
|
hmotomotiv.xyz
|
48634
48641
|
hmsale.org
|
@@ -54711,6 +54718,7 @@ jiwatoto.org
|
|
54711
54718
|
jixa.site
|
54712
54719
|
jixe.site
|
54713
54720
|
jixyvu.info
|
54721
|
+
jiyankotluk.xyz
|
54714
54722
|
jiyoshops.site
|
54715
54723
|
jiyue.org
|
54716
54724
|
jiyun123.com
|
@@ -55717,6 +55725,7 @@ justonetworks.site
|
|
55717
55725
|
justpoleznoe.ru
|
55718
55726
|
justpositiveweblog.club
|
55719
55727
|
justrbonlinea.co.uk
|
55728
|
+
justre.codes
|
55720
55729
|
justreadit.ru
|
55721
55730
|
justruninabox.com
|
55722
55731
|
justsend.online
|
@@ -66245,6 +66254,7 @@ mendingme.net
|
|
66245
66254
|
mendoanmail.club
|
66246
66255
|
mendycady.com
|
66247
66256
|
menealacola.com
|
66257
|
+
menece.com
|
66248
66258
|
menflo.com
|
66249
66259
|
mengatur.com
|
66250
66260
|
mengchong.info
|
@@ -66783,6 +66793,7 @@ mhtqq.icu
|
|
66783
66793
|
mhwolf.net
|
66784
66794
|
mhxcpxbna.shop
|
66785
66795
|
mhzayt.com
|
66796
|
+
mhzayt.online
|
66786
66797
|
mi-fucker-ss.ru
|
66787
66798
|
mi-mails.com
|
66788
66799
|
mi-turisto.ru
|
@@ -80872,6 +80883,7 @@ premier-reverse.com
|
|
80872
80883
|
premierbetcasino.com
|
80873
80884
|
premierbetsuper6.com
|
80874
80885
|
premierclosing.com
|
80886
|
+
premiere.ee
|
80875
80887
|
premiereatlantarealestate.com
|
80876
80888
|
premierelivecasino.com
|
80877
80889
|
premierloto.info
|
@@ -93326,6 +93338,7 @@ somsupport.xyz
|
|
93326
93338
|
son-haber.live
|
93327
93339
|
son-haber.site
|
93328
93340
|
son-haber.website
|
93341
|
+
son16.com
|
93329
93342
|
sonaluma.com
|
93330
93343
|
sonamyr.shop
|
93331
93344
|
sonasoft.net
|
@@ -104533,6 +104546,7 @@ uphonni.ru
|
|
104533
104546
|
upimage.net
|
104534
104547
|
upimail.com
|
104535
104548
|
upived.com
|
104549
|
+
upived.online
|
104536
104550
|
upizzatakeaway.com
|
104537
104551
|
upl0adand1nsta11.com
|
104538
104552
|
uplay-store.ru
|