Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 01:31:26 PM Last edit: March 25, 2025, 02:01:32 PM by Akito S. M. Hosana |
|
For anyone still seeing [1;1H[K instead of proper terminal controls...
I used to get Egyptian hieroglyphs in the Cyclone in the terminal, but it's better now.  It works now. I'm running for a single address with 24 threads... the speed is ~91 Mkeys/s but it decreases ... after 3 minutes it reached 62 Mkeys/s
I get a constant 40–41 Mkeys/s with 12 cores on biCyclone by nomachine. The speed only goes down if I start a game on the same PC  I still have an error on Windows 11 with PuzzleFinder.exe
|
|
|
|
|
Ovixx
Newbie
Offline
Activity: 52
Merit: 0
|
 |
March 25, 2025, 02:08:42 PM |
|
D:\Personal\PuzzleFinder-main\PuzzleFinder-main>PuzzleFinder.exe -t 24 -i addresses.txt -sbl 71 -ebl 72 -p 8
*===============================================================* * Bitcoin Random PuzzleFinder * * By Zahid888 * * 1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA * * * * [From Bit 2^71 To Bit 2^72] * *===============================================================*
[+] Input File : addresses.txt [+] Addresses Loaded : 1 [+] Prefix Length : 8 [+] Started at : Tue Mar 25 16:12:03 2025 [+] CPU threads used : 24
[Speed : Mkeys/s 103.68] [CPU Threads : (24)] [Total Checked : 4320256] [Elapsed Time : 00:00:01] [Bit Length : 2^072] [[Speed : Mkeys/s 100.42] [CPU Threads : (24)] [Total Checked : 8369152] [Elapsed Time : 00:00:02] [Bit Length : 2^072] [[Speed : Mkeys/s 98.77] [CPU Threads : (24)] [Total Checked : 12347392] [Elapsed Time : 00:00:03] [Bit Length : 2^072] [[Speed : Mkeys/s 97.93] [CPU Threads : (24)] [Total Checked : 16323072] [Elapsed Time : 00:00:04] [Bit Length : 2^071] [[Speed : Mkeys/s 98.49] [CPU Threads : (24)] [Total Checked : 20519936] [Elapsed Time : 00:00:05] [Bit Length : 2^072] [[Speed : Mkeys/s 98.14] [CPU Threads : (24)] [Total Checked : 24536064] [Elapsed Time : 00:00:06] [Bit Length : 2^072] [[Speed : Mkeys/s 97.60] [CPU Threads : (24)] [Total Checked : 28467200] [Elapsed Time : 00:00:07] [Bit Length : 2^072] [[Speed : Mkeys/s 97.64] [CPU Threads : (24)] [Total Checked : 32546304] [Elapsed Time : 00:00:08] [Bit Length : 2^071] [[Speed : Mkeys/s 97.54] [CPU Threads : (24)] [Total Checked : 36579328] [Elapsed Time : 00:00:09] [Bit Length : 2^072] [[Speed : Mkeys/s 97.56] [CPU Threads : (24)] [Total Checked : 40651776] [Elapsed Time : 00:00:10] [Bit Length : 2^072] [[Speed : Mkeys/s 97.44] [CPU Threads : (24)] [Total Checked : 44661248] [Elapsed Time : 00:00:11] [Bit Length : 2^071] [[Speed : Mkeys/s 97.56] [CPU Threads : (24)
|
|
|
|
|
zahid888
Member

Offline
Activity: 335
Merit: 24
the right steps towards the goal
|
 |
March 25, 2025, 02:25:18 PM Last edit: March 25, 2025, 02:35:52 PM by zahid888 Merited by mcdouglasx (2) |
|
For anyone still seeing [1;1H[K instead of proper terminal controls...
I used to get Egyptian hieroglyphs in the Cyclone in the terminal, but it's better now.  It works now. I'm running for a single address with 24 threads... the speed is ~91 Mkeys/s but it decreases ... after 3 minutes it reached 62 Mkeys/s
I get a constant 40–41 Mkeys/s with 12 cores on biCyclone by nomachine. The speed only goes down if I start a game on the same PC  Hey speed enthusiasts, Let’s clear the air—don’t overload your addresses.txt with tons of addresses unless you really need to! Too many addresses can tank your speed big time. Stick to 1 address like other Cyclones do, and you’ll cruise at a steady 4.5–4.8 Mkeys/s per core. With a 12-core beast, that’s at least 48 Mkeys/s! Hunting all 80 puzzle balance addresses? You’ll still hit a solid 3 Mkeys/s minimum. So, @Ovixx, with your 24-core monster [From 2^68 to 2^160], you should be rocking 24 × 3 = 72 Mkeys/s. Dropping to 62? Might be extra addresses or background tasks sneaking in—give your PC some breathing room and watch it fly! Even if this PuzzleFinder runs at 1 Mkeys/s, it’s still better than most out there! Why? It uses a random method that’s totally different from anything else. This unique trick gives you a big advantage in finding those puzzle keys. It’s all crystal clear now! This PuzzleFinder’s got its groove, and it’s unlike anything out there. Now it’s your call—love it, rock it, or roll your own way. The choice is yours, and either way, you’re the boss of this treasure hunt! Catch you on the flip side! happy hunting! D:\Personal\PuzzleFinder-main\PuzzleFinder-main>PuzzleFinder.exe -t 24 -i addresses.txt -sbl 71 -ebl 72 -p 8
*===============================================================* * Bitcoin Random PuzzleFinder * * By Zahid888 * * 1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA * * * * [From Bit 2^71 To Bit 2^72] * *===============================================================*
[+] Input File : addresses.txt [+] Addresses Loaded : 1 [+] Prefix Length : 8 [+] Started at : Tue Mar 25 16:12:03 2025 [+] CPU threads used : 24
[Speed : Mkeys/s 103.68] [CPU Threads : (24)] [Total Checked : 4320256] [Elapsed Time : 00:00:01] [Bit Length : 2^072] [[Speed : Mkeys/s 100.42] [CPU Threads : (24)] [Total Checked : 8369152] [Elapsed Time : 00:00:02] [Bit Length : 2^072] [[Speed : Mkeys/s 98.77] [CPU Threads : (24)] [Total Checked : 12347392] [Elapsed Time : 00:00:03] [Bit Length : 2^072] [[Speed : Mkeys/s 97.93] [CPU Threads : (24)] [Total Checked : 16323072] [Elapsed Time : 00:00:04] [Bit Length : 2^071] [[Speed : Mkeys/s 98.49] [CPU Threads : (24)] [Total Checked : 20519936] [Elapsed Time : 00:00:05] [Bit Length : 2^072] [[Speed : Mkeys/s 98.14] [CPU Threads : (24)] [Total Checked : 24536064] [Elapsed Time : 00:00:06] [Bit Length : 2^072] [[Speed : Mkeys/s 97.60] [CPU Threads : (24)] [Total Checked : 28467200] [Elapsed Time : 00:00:07] [Bit Length : 2^072] [[Speed : Mkeys/s 97.64] [CPU Threads : (24)] [Total Checked : 32546304] [Elapsed Time : 00:00:08] [Bit Length : 2^071] [[Speed : Mkeys/s 97.54] [CPU Threads : (24)] [Total Checked : 36579328] [Elapsed Time : 00:00:09] [Bit Length : 2^072] [[Speed : Mkeys/s 97.56] [CPU Threads : (24)] [Total Checked : 40651776] [Elapsed Time : 00:00:10] [Bit Length : 2^072] [[Speed : Mkeys/s 97.44] [CPU Threads : (24)] [Total Checked : 44661248] [Elapsed Time : 00:00:11] [Bit Length : 2^071] [[Speed : Mkeys/s 97.56] [CPU Threads : (24) In this benchmark, you get an average of 4 Mkeys/s per core, possibly because this version uses a fully random approach, which impacts the speed.
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
|
nomachine
|
 |
March 25, 2025, 02:36:11 PM |
|
I get a constant 40–41 Mkeys/s with 12 cores on biCyclone by nomachine.
 I'm fishing.
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
zahid888
Member

Offline
Activity: 335
Merit: 24
the right steps towards the goal
|
 |
March 25, 2025, 02:42:33 PM |
|
I get a constant 40–41 Mkeys/s with 12 cores on biCyclone by nomachine.
 I'm fishing.  .. Can i se my benchmark in your Giant PC
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
|
nomachine
|
 |
March 25, 2025, 02:57:49 PM |
|
 .. Can i se my benchmark in your Giant PC This is AVX-512, still in the testing phase. Maybe the numbers are wrong, but the processor temperature is almost 90°C. The worst part is that the NVMe is at 65°C.
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 03:14:04 PM |
|
 .. Can i se my benchmark in your Giant PC This is AVX-512, still in the testing phase. Maybe the numbers are wrong, but the processor temperature is almost 90°C. The worst part is that the NVMe is at 65°C. You'll burn out that PC with that. 
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 07:10:36 PM |
|
In this benchmark, you get an average of 4 Mkeys/s per core, possibly because this version uses a fully random approach, which impacts the speed.
The biggest performance gain comes from generating eight random numbers simultaneously using AVX-512. __m512i randVec = _mm512_set_epi64x(rng1, rng2, rng3, rng4, rng5, rng6, rng7, rng8); Of course, I won't publicly disclose the exact details of how this works. 
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 07:21:06 PM |
|
In this benchmark, you get an average of 4 Mkeys/s per core, possibly because this version uses a fully random approach, which impacts the speed.
The biggest performance gain comes from generating eight random numbers simultaneously using AVX-512. __m512i randVec = _mm512_set_epi64x(rng1, rng2, rng3, rng4, rng5, rng6, rng7, rng8); Of course, I won't publicly disclose the exact details of how this works.  So wait, then by that logic, AVX-256 can generate four random numbers per core for 64-bit integers ? 
|
|
|
|
|
btc11235
Jr. Member
Offline
Activity: 35
Merit: 1
|
 |
March 25, 2025, 07:22:31 PM |
|
I'm in the final stages of testing my own script (currently using Puzzle #28 as my test case)... It searches randomly, and I've noticed that sometimes it finds the solution pretty quickly and other times it takes longer...
Of course this is expected (and KeyHunt acts the same way on random mode), but I'm wondering what y'all think about the idea of me making it so that my RNG re-seeds itself every once in awhile, like once a month or something*...?
Basically, I'm just going for as much luck as I can get (I have no GPU), and I can't think of a downside to re-seeding at regular intervals*, in the (somewhat vain) hope that some seeds may start my search closer to the solution, and some further away (so to speak), but I thought I'd get the collective's input... What do you think: dumb idea, or what?
* a month, or more possibly, because of course now the puzzle ranges are much larger, so I'm not sure how long to give it before re-seeding...
* especially if I keep track of the seeds I've already used, and don't re-use any...
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 07:26:56 PM Last edit: March 25, 2025, 07:39:50 PM by nomachine |
|
So wait, then by that logic, AVX-256 can generate four random numbers per core for 64-bit integers ?  Yes, exactly, a 4x throughput boost. Each core can independently process 4 keys. Memory bandwidth becomes the bottleneck (not computation). But you also need to accelerate SECP256K1 operations using AVX-256, which requires careful implementation. 
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
|
kTimesG
|
 |
March 25, 2025, 07:42:22 PM |
|
I'm in the final stages of testing my own script (currently using Puzzle #28 as my test case)... It searches randomly, and I've noticed that sometimes it finds the solution pretty quickly and other times it takes longer...
Of course this is expected (and KeyHunt acts the same way on random mode), but I'm wondering what y'all think about the idea of me making it so that my RNG re-seeds itself every once in awhile, like once a month or something*...?
Basically, I'm just going for as much luck as I can get (I have no GPU), and I can't think of a downside to re-seeding at regular intervals*, in the (somewhat vain) hope that some seeds may start my search closer to the solution, and some further away (so to speak), but I thought I'd get the collective's input... What do you think: dumb idea, or what?
* a month, or more possibly, because of course now the puzzle ranges are much larger, so I'm not sure how long to give it before re-seeding...
* especially if I keep track of the seeds I've already used, and don't re-use any...
Good strategy. Reseeding the input once a month (or longer, as puzzle range is really large) is a healthy habit for your (strong) PRNG, to maximize your luck on getting closer to the correct key. But please don't forget to feed the cat, while busy with keeping track of all the seeds you already used. Do you also keep track of all the keys you scanned? It'd be a waste to check them a second time.
|
Off the grid, training pigeons to broadcast signed messages.
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 08:10:04 PM |
|
So wait, then by that logic, AVX-256 can generate four random numbers per core for 64-bit integers ?  Yes, exactly, a 4x throughput boost. Each core can independently process 4 keys. Memory bandwidth becomes the bottleneck (not computation). How ? 
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 08:40:34 PM |
|
How ?  Example Int generateRandomPrivateKey(Int minKey, Int maxKey, Xoshiro256plus &rng) { // Validate inputs if (intGreater(minKey, maxKey)) { throw std::invalid_argument("minKey must be <= maxKey"); }
// Calculate range = maxKey - minKey + 1 (inclusive) Int rangeSize; rangeSize.Set(&maxKey); rangeSize.Sub(&minKey); Int one; one.SetBase16("1"); rangeSize.Add(&one); // rangeSize = maxKey - minKey + 1
if (rangeSize.IsZero()) { return minKey; // Edge case: minKey == maxKey }
// (4x 64-bit numbers at once) __m256i rand_vec; { uint64_t rand_vals[4] = { rng.next(), rng.next(), rng.next(), rng.next() }; rand_vec = _mm256_loadu_si256((__m256i*)rand_vals); }
// Convert to Int (using the first random number) Int randomPrivateKey; randomPrivateKey.SetInt32(0);
// Extract the first 64-bit random value uint64_t rand_val = _mm256_extract_epi64(rand_vec, 0);
// Split into 64-bit chunks for Int for (int i = 0; i < NB64BLOCK; i++) { randomPrivateKey.ShiftL(64); randomPrivateKey.Add(rand_val); rand_val = rng.next(); // Get next random number if needed }
// Ensure within range: randomPrivateKey % rangeSize + minKey randomPrivateKey.Mod(&rangeSize); randomPrivateKey.Add(&minKey);
return randomPrivateKey; }
This test will work with the existing script on GitHub. The script will start by slowly generating random numbers and then ramp up to 45 Mkeys/s on your specific CPU. There will be workload imbalance in distribution. You will see CPU warm-up effects (the CPU takes time to reach full turbo boost). You need to implement AVX2 and thread pre-warming to prevent workload imbalance. AVX2 RNG + Warm-up = Achieves 50 Mkeys/s (stable). Dynamic Scheduling = Achieves 55 Mkeys/s (no ramp-up). Simple, isn’t it ? 
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 09:00:03 PM |
|
You will see CPU warm-up effects (the CPU takes time to reach full turbo boost).
Would this overheat the CPU? 
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 09:10:28 PM |
|
You will see CPU warm-up effects (the CPU takes time to reach full turbo boost).
Would this overheat the CPU?  Yes, AVX2 can overheat the CPU if cooling is inadequate. It may happen that they kick you out of the provider thinking that you are doing cryptomining. Persistent 100% CPU for weeks (may trigger auto-flags). 
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
|
nomachine
|
 |
March 26, 2025, 04:00:32 AM Last edit: March 26, 2025, 04:32:10 AM by nomachine |
|
One of my forks includes stride logic—I saw you mention somewhere that stride doesn’t work properly above 32-bit or something like that… Well, My stride version is unlimited and working flawlessly with zero issues.
The issue with unlimited stride values in this script stems from several limitations in how the code handles large numbers, particularly with the SetInt32() function and related arithmetic operations. The SetInt32() function can only handle 32-bit signed integers (range: -2147483648 to 2147483647). When you try to set values larger than this (e.g., stride = 1000000000000), it will overflow and produce incorrect results. The script uses privateKey.Add(&step), where step is set via SetInt32(). This means the maximum reliable stride you can use is 2^31-1 (2147483647). The script processes keys in batches of 512 (POINTS_BATCH_SIZE × 2). The stride is multiplied by (fullBatchSize - 2) = 510, further limiting the effective stride. To support larger strides, you would need to replace SetInt32() with a function that can handle bigger numbers (such as SetBase10() or SetBase16() for arbitrary precision). However, SetBase10() or SetBase16() alone are not enough, you would also need: A new batch processing engine Stride-aware point precomputation Non-linear batch assembly logic Custom AVX2 memory gather operations A new progress tracking system Estimated development time: 14–20 weeks (There’s no way I’ll spend that much time on this nonsense.) Without these changes, the script might compile, but it would produce mathematically invalid results—which I have confirmed here in my posts. And no, I’m not ashamed to admit when I’m wrong. I made a mistake by starting to work on someone else’s script, which I don’t usually do.  P.S. The end result will be a CPU fryer. Or you can use the machine as a heater in the winter. Either way, your PC’s gonna be toast solving puzzles… literally.
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 26, 2025, 04:59:14 AM |
|
The end result will be a CPU fryer. Or you can use the machine as a heater in the winter. Either way, your PC’s gonna be toast solving puzzles… literally.
I’m going back to good ol’ Keyhunt and VanitySearch 
|
|
|
|
|
Ovixx
Newbie
Offline
Activity: 52
Merit: 0
|
 |
March 26, 2025, 07:38:19 AM Last edit: March 26, 2025, 09:12:36 AM by Ovixx |
|
For anyone still seeing [1;1H[K instead of proper terminal controls...
I used to get Egyptian hieroglyphs in the Cyclone in the terminal, but it's better now.  It works now. I'm running for a single address with 24 threads... the speed is ~91 Mkeys/s but it decreases ... after 3 minutes it reached 62 Mkeys/s
I get a constant 40–41 Mkeys/s with 12 cores on biCyclone by nomachine. The speed only goes down if I start a game on the same PC  Hey speed enthusiasts, Let’s clear the air—don’t overload your addresses.txt with tons of addresses unless you really need to! Too many addresses can tank your speed big time. Stick to 1 address like other Cyclones do, and you’ll cruise at a steady 4.5–4.8 Mkeys/s per core. With a 12-core beast, that’s at least 48 Mkeys/s! Hunting all 80 puzzle balance addresses? You’ll still hit a solid 3 Mkeys/s minimum. So, @Ovixx, with your 24-core monster [From 2^68 to 2^160], you should be rocking 24 × 3 = 72 Mkeys/s. Dropping to 62? Might be extra addresses or background tasks sneaking in—give your PC some breathing room and watch it fly! Even if this PuzzleFinder runs at 1 Mkeys/s, it’s still better than most out there! Why? It uses a random method that’s totally different from anything else. This unique trick gives you a big advantage in finding those puzzle keys. It’s all crystal clear now! This PuzzleFinder’s got its groove, and it’s unlike anything out there. Now it’s your call—love it, rock it, or roll your own way. The choice is yours, and either way, you’re the boss of this treasure hunt! Catch you on the flip side! happy hunting! D:\Personal\PuzzleFinder-main\PuzzleFinder-main>PuzzleFinder.exe -t 24 -i addresses.txt -sbl 71 -ebl 72 -p 8
*===============================================================* * Bitcoin Random PuzzleFinder * * By Zahid888 * * 1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA * * * * [From Bit 2^71 To Bit 2^72] * *===============================================================*
[+] Input File : addresses.txt [+] Addresses Loaded : 1 [+] Prefix Length : 8 [+] Started at : Tue Mar 25 16:12:03 2025 [+] CPU threads used : 24
[Speed : Mkeys/s 103.68] [CPU Threads : (24)] [Total Checked : 4320256] [Elapsed Time : 00:00:01] [Bit Length : 2^072] [[Speed : Mkeys/s 100.42] [CPU Threads : (24)] [Total Checked : 8369152] [Elapsed Time : 00:00:02] [Bit Length : 2^072] [[Speed : Mkeys/s 98.77] [CPU Threads : (24)] [Total Checked : 12347392] [Elapsed Time : 00:00:03] [Bit Length : 2^072] [[Speed : Mkeys/s 97.93] [CPU Threads : (24)] [Total Checked : 16323072] [Elapsed Time : 00:00:04] [Bit Length : 2^071] [[Speed : Mkeys/s 98.49] [CPU Threads : (24)] [Total Checked : 20519936] [Elapsed Time : 00:00:05] [Bit Length : 2^072] [[Speed : Mkeys/s 98.14] [CPU Threads : (24)] [Total Checked : 24536064] [Elapsed Time : 00:00:06] [Bit Length : 2^072] [[Speed : Mkeys/s 97.60] [CPU Threads : (24)] [Total Checked : 28467200] [Elapsed Time : 00:00:07] [Bit Length : 2^072] [[Speed : Mkeys/s 97.64] [CPU Threads : (24)] [Total Checked : 32546304] [Elapsed Time : 00:00:08] [Bit Length : 2^071] [[Speed : Mkeys/s 97.54] [CPU Threads : (24)] [Total Checked : 36579328] [Elapsed Time : 00:00:09] [Bit Length : 2^072] [[Speed : Mkeys/s 97.56] [CPU Threads : (24)] [Total Checked : 40651776] [Elapsed Time : 00:00:10] [Bit Length : 2^072] [[Speed : Mkeys/s 97.44] [CPU Threads : (24)] [Total Checked : 44661248] [Elapsed Time : 00:00:11] [Bit Length : 2^071] [[Speed : Mkeys/s 97.56] [CPU Threads : (24) In this benchmark, you get an average of 4 Mkeys/s per core, possibly because this version uses a fully random approach, which impacts the speed. Only the name of the file is "addresses.txt", but it contains only one target address. Initially I created a file called 71.txt but the application gave me the error "file 71.txt cannot be opened". The first PC I tested has an i9 13900K CPU and I had other applications open and the Chrome browser with about 14 pages open. Now I'm testing on an i9 14900K without any other applications open, with 32 threads and I see that it stays constant at 126 Mkeys/s. The first time I searched like a fool, address #71 including the range of 72. Now I set -sbl 71 -ebl 71 and it's ok, I'm not running around the field after butterflies anymore. https://talkimg.com/images/2025/03/26/lMcP5.pngSensors status https://talkimg.com/images/2025/03/26/lMVwH.pngEnergy consumed 0.45 KW/h .....after almost 2 hours, constant speed 126.39 Mkeys/s https://talkimg.com/images/2025/03/26/lMhrz.png
|
|
|
|
|
|
nomachine
|
 |
March 26, 2025, 11:25:37 AM |
|
If you try adding <windows.h> to enable ANSI or UTF-8 support, it may cause macro conflicts with the rest of the script and break parts of it.
Complain to the original author that their script isn't working correctly because they assumed macros would function this way.
Since the original author added <windows.h> I upgraded the repo too. Respect. https://github.com/NoMachine1/Cyclone.git
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
|