• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 14:32
CET 19:32
KST 03:32
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL21] Ro24 Preview Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy7ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book20Clem wins HomeStory Cup 289
Community News
Weekly Cups (March 16-22): herO doubles, Cure surprises3Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool48Weekly Cups (March 9-15): herO, Clem, ByuN win42026 KungFu Cup Announcement6BGE Stara Zagora 2026 cancelled12
StarCraft 2
General
Potential Updates Coming to the SC2 CN Server Behind the Blue - Team Liquid History Book herO wins SC2 All-Star Invitational What mix of new & old maps do you want in the next ladder pool? (SC2) Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool
Tourneys
StarCraft Evolution League (SC Evo Biweekly) WardiTV Mondays Sparkling Tuna Cup - Weekly Open Tournament World University TeamLeague (500$+) | Signups Open RSL Season 4 announced for March-April
Strategy
Custom Maps
[M] (2) Frigid Storage Publishing has been re-enabled! [Feb 24th 2026]
External Content
The PondCast: SC2 News & Results Mutation # 518 Radiation Zone Mutation # 517 Distant Threat Mutation # 516 Specter of Death
Brood War
General
RepMastered™: replay sharing and analyzer site Gypsy to Korea KK Platform will provide 1 million CNY ASL21 General Discussion mca64Launcher - New Version with StarCraft: Remast
Tourneys
[Megathread] Daily Proleagues 2026 Changsha Offline Cup [ASL21] Ro24 Group B [ASL21] Ro24 Group A
Strategy
What's the deal with APM & what's its true value Fighting Spirit mining rates Simple Questions, Simple Answers Soma's 9 hatch build from ASL Game 2
Other Games
General Games
Nintendo Switch Thread Stormgate/Frost Giant Megathread Darkest Dungeon General RTS Discussion Thread Path of Exile
Dota 2
The Story of Wings Gaming Official 'what is Dota anymore' discussion
League of Legends
G2 just beat GenG in First stand
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Five o'clock TL Mafia Mafia Game Mode Feedback/Ideas Vanilla Mini Mafia
Community
General
US Politics Mega-thread The Games Industry And ATVI European Politico-economics QA Mega-thread Canadian Politics Mega-thread Russo-Ukrainian War Thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread Cricket [SPORT] Formula 1 Discussion Tokyo Olympics 2021 Thread General nutrition recommendations
World Cup 2022
Tech Support
[G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Funny Nicknames
LUCKY_NOOB
Money Laundering In Video Ga…
TrAiDoS
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
Shocked by a laser…
Spydermine0240
Unintentional protectionism…
Uldridge
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1447 users

Ladder Analysis: Activity Metric

Forum Index > SC2 General
Post a Reply
1 2 3 Next All
Excalibur_Z
Profile Joined October 2002
United States12240 Posts
Last Edited: 2013-08-29 19:19:12
August 01 2013 00:37 GMT
#1
It's long been established that the SC2 league populations center around the concept of "active players". If you're wondering why that target distribution of 2/18/20/32/20/8 is never what's reported on Nios or SC2Ranks, well, that's why. Those sites track all accounts and not solely active players. One of the main reasons for this is that we don't know what constitutes an "active player".

So, then, what is an "active player"?

Blizzard uses the bonus pool as their primary activity metric. The bonus pool accumulates at a fixed rate, so if you let it pile up, then you haven't been playing games and therefore aren't active. A couple of years ago I emailed the designer asking why our different forms of activity filters never matched up with Blizzard's distribution, and I received the response "if you were to look in terms of 'bonus weeks behind' you may find closer results." Now, I'm not sure about whether there is a secondary measurement being considered (perhaps games played), I'm just evaluating all possibilities.

+ Show Spoiler +

Side note: If Blizzard looks at league distributions on a continual basis--that is, in the middle of a season--then surely there is some additional filter in place like number of games played. It couldn't be one game or five games because just placing in a league shouldn't qualify you as an active player, even though early in a season your unspent bonus pool will be quite low.


Shadowed from SC2Ranks provided me with a data snapshot from this afternoon (Nios, your site is great but it doesn't have as many data points as SC2R, sorry!). Now that Shadowed has incorporated bonus pool tracking, I can finally look more closely at how Blizzard might be filtering for active users.

I created a spreadsheet based on that snapshot using the AM region, 1v1 bracket (150K 1v1 users, largest of all regions).

Link to Spreadsheet on Google Drive

Note: Even though I use column headers based on multiples of 180, the sub-Master leagues have already been adjusted for the 0.58 bonus pool accumulation rate. It was just easier to express "bonus weeks behind" in terms of the more round Master value (180 per week).

Each cell represents a league population percentage compared with the other leagues following the same criteria. That is, the B4 cell (Master, >=1 game, <=180 bonus pool) means that based on the snapshot from July 31, 2013, 6% of all users with >=1 game played and who have <=180 bonus pool are in Master league. This value is notably inflated over the target 2% value even though Nios and SC2Ranks find that 3% of the entire account population is in Master. You can see in the spreadsheet that a lot of the other leagues are closer to their targets, there are a lot of 18%s in the <=180 Diamond region, a lot of 20%s all over Platinum, a lot of 32%s all over Gold. What isn't apparent is one fixed coordinate that fits all the leagues. This leads me to believe that the league adjustments may in fact be seasonal.

Season Locks

The bonus pool stops accumulating during a season lock, which lasts for one week. Blizzard's stated reason for this is to allow players to spend their remaining bonus pool and establish final divisional rankings. However, the main reason for season locks may actually be far more practical. If Blizzard takes a snapshot of the remaining leagues at the time of the league lock, then that gives them a full week to analyze the current league populations. This would allow them plenty of time to run solves on whether they need to adjust the league thresholds for next season and what the new values should be.

Here's a look at a chart from the S4 Season Lock on August 20, 2013 which compares the Bonus Pool Population with the Actual Population and the Target Distribution:
[image loading]

What you can see in this chart is that the Actual Population of all players is way off, but when you look in terms of remaining bonus pool, the numbers suddenly look a lot closer to the Target Distribution.

Here's how the data points break down:
1 bonus week: Master - 5.4%, Diamond - 15.27%, Platinum - 18.95%, Gold - 28.84%, Silver - 20.26%, Bronze - 11.26%
2 bonus weeks: Master - 5.56%, Diamond - 15.34%, Platinum - 19.37%, Gold - 29.58%, Silver - 20.07%, Bronze - 10.05%
3 bonus weeks: Master - 5.62%, Diamond - 15.06%, Platinum - 19.53%, Gold - 30.31%, Silver - 20.18%, Bronze - 9.26%
4 bonus weeks: Master - 5.64%, Diamond - 14.57%, Platinum - 19.46%, Gold - 31.27%, Silver - 20.46%, Bronze - 8.57%
5 bonus weeks: Master - 5.53%, Diamond - 13.87%, Platinum - 19.21%, Gold - 31.94%, Silver - 21.17%, Bronze - 8.25%
6 bonus weeks: Master - 5.09%, Diamond - 12.60%, Platinum - 18.35%, Gold - 31.96%, Silver - 22.93%, Bronze - 9.03%

What this tells us is that at the time of the S4 Season Lock, of the players who had less than 1080*0.58=626 bonus pool, 12.6% were in Diamond, far short of the 18% target. However, of the players who had less than 180*0.58=104 bonus pool, 15.27% were in Diamond. Master is always pretty steady at around 5%, above the 2% target. This means that out of all the active players, Master is inflated by the end of the season. This could mean that Blizzard might want to raise the requirements to get into Master league in order to make it more exclusive in the following season, which would also have an effect in making Diamond a little bigger.

What we don't know is which line reflects the actual activity metric, and that's why I have 6 different "bonus weeks behind" lines. In most of them, Diamond, Gold and Platinum are slightly underrepresented while Master, Silver and Bronze are slightly overrepresented.
Moderator
krooked
Profile Joined May 2011
376 Posts
August 01 2013 01:15 GMT
#2
Cool, thanks Excalibur_Z. Love these articles.

Blizzard behind the scene stuff is so awesome
Excalibur_Z
Profile Joined October 2002
United States12240 Posts
August 29 2013 19:20 GMT
#3
Updated with a chart of the populations according to different bonus pool thresholds from the 2013 Season 4 league lock.
Moderator
Koshi
Profile Blog Joined August 2010
Belgium38799 Posts
August 29 2013 19:32 GMT
#4
Wait what? Only 1 guy commented on this for an entire month? :o
I had a good night of sleep.
Big J
Profile Joined March 2011
Austria16289 Posts
August 29 2013 19:52 GMT
#5
On August 30 2013 04:32 Koshi wrote:
Wait what? Only 1 guy commented on this for an entire month? :o


:O
such an amazing research getting lost...
Elldar
Profile Joined July 2010
Sweden287 Posts
August 29 2013 19:56 GMT
#6
On August 30 2013 04:32 Koshi wrote:
Wait what? Only 1 guy commented on this for an entire month? :o


Yeah, the bonus pool on this thread must be really high right now. Well perhaps since there is no useful information but a neat fact though.
jakethesnake
Profile Blog Joined May 2011
Canada4948 Posts
August 29 2013 20:06 GMT
#7
On August 30 2013 04:32 Koshi wrote:
Wait what? Only 1 guy commented on this for an entire month? :o


Seriously, I missed this the first time around, but it is really interesting. Glad this got bumped!

Basically it appears that there are a lot of bronze/silver players who only play their placement games (plus maybe a few more) each season and then nothing else. It's amazing how all of 1 -> 6 bonus weeks are so similar to each other.

Thanks for the insight Excalibur_Z!
Community Newsjjakji || jjakji || jjakji || jjakji || jjakji || jjakji || jjakji nshoseo.jpg
acidbean
Profile Joined January 2011
Germany287 Posts
August 29 2013 20:16 GMT
#8
How did I miss this thread? Really interesting read
Paljas
Profile Joined October 2011
Germany6926 Posts
August 29 2013 20:32 GMT
#9
cool research
TL+ Member
Koshi
Profile Blog Joined August 2010
Belgium38799 Posts
September 01 2013 21:43 GMT
#10
I ll give it 1 more bump. Cuz stats are for cool kids.
I had a good night of sleep.
Entirety
Profile Blog Joined April 2012
1423 Posts
September 01 2013 21:54 GMT
#11
Very interesting, it's unfortunate that this thread got buried.
IMMvp (정종현) | Fan Club: http://www.teamliquid.net/forum/viewmessage.php?topic_id=211431
grigorin
Profile Joined December 2009
Austria275 Posts
September 01 2013 22:08 GMT
#12
Missed the thread the two other times it got bumped, so thx Koshi.

What I read Blizzard sets the threshold manually? Can this also mean thats the reason why the WOL ladder is a bit f*ed up since a few seasons, since noone (except players like me) cares about WOL anymore? Maybe its also bc they removed GM-league without updating some of their other code.
[WOL league distribution NA: Masters 0.05% (5 Users) Diamond 1.20% (131 Users) Platinum 5.43% (592 Users) Gold 26.26% (2,864 Users) Silver 51.57% (5,625 Users) Bronze 15.49%(1,690 Users)]
DirtyBirD
Profile Blog Joined November 2005
United States239 Posts
September 02 2013 16:56 GMT
#13
On August 01 2013 09:37 Excalibur_Z wrote:
What this tells us is that at the time of the S4 Season Lock, of the players who had less than 1080*0.58=626 bonus pool, 12.6% were in Diamond, far short of the 18% target. However, of the players who had less than 180*0.58=104 bonus pool, 15.27% were in Diamond. Master is always pretty steady at around 5%, above the 2% target. This means that out of all the active players, Master is inflated by the end of the season. This could mean that Blizzard might want to raise the requirements to get into Master league in order to make it more exclusive in the following season, which would also have an effect in making Diamond a little bigger.

I have a feeling if you take a look right now, you'll see that the bolded part is true. I know of a number of people that were Master last season in the middle of their league that are now Diamond. After playing their placement match, it put them into Diamond instead of back into Masters, which it used to typically do.

It's interesting to think that Blizzard might actually be altering the criteria it takes to get into certain leagues based on the number of "active" players in each league from the previous season. This would of course make a lot of sense if you think about it. If they have set criteria to base whether or not a player should be in a certain league at the start of a season, it would make sense for the percentage of players in each league to be very close to what they are looking for. Then as the season goes on other players will meet that criteria and be promoted inflating the league once more and forcing Blizzard to set their criteria differently. Of course you should take into account players that do get demoted during the season, which might offset the inflation.

It would be interesting if Blizzard were to set an absolute set percentage for each league forcing people out of the league either by promotion of demotion.

That is of course, what I think is going on.
sMi.DirtyBirD
NubainMuscle
Profile Joined June 2005
South Africa423 Posts
Last Edited: 2013-09-02 22:35:49
September 02 2013 22:23 GMT
#14
Personally I feel division should carry over to the start of next season, but have a simple promotion/demotion policy. Way too many people are being demoted 1-2 leagues at the start of every season after performing reasonably well in their former league, which sends a bad message to the players.

There is no reason demotions should be disable during the course of a season, particularly for the higher leagues. Win-rate, activity, and maybe even some 3rd criteria like a mixture of spending quotient/supply cap time/apm/etc could be used to assess whether a player should remain in their current league, receive a promotion, or a demotion.

Currently the ladder is a complete joke and does not in any way even resemble the term "ladder". It's simply Blizzard throwing you wherever they feel like at the start of the season with absolutely no explanation or clear reasoning. I can understand that the dynamics of the population shifts and league parameters need to be adjusted but that should be done during the course of a season based on player performance.

Is Diamond League too large? Fine. Demote the players occupying a seat in diamond that are either
a.) Not playing enough
b.) Not performing well

It is just such a terrible experience right now and impossible to maintain any sense of direction or to assess progression.


Edit: Or simply find a way to put this into the hands of the players or let us have a little control over our own fates.
Example - if a particular league has become too large and needs to be whittled down, maybe impose a requirement that all players outside of the Top 50 of their division will be demoted, or cut the players who simply aren't putting any time in, or maybe even have an informal tournament setup.

The way it is handled now just doesn't work and I can't think of anything that makes me less motivated to play than a random, undeserved demotion after a meaningless placement match. That system needs to be removed as well. I can understand the purpose of playing 5 placement matches, but that single match placement format proves absolutely nothing
http://sc.gosugamers.net/bilder/members/9801.jpg
DusTerr
Profile Blog Joined January 2011
2520 Posts
September 11 2013 14:32 GMT
#15
On September 03 2013 07:23 NubainMuscle wrote:+ Show Spoiler +

Personally I feel division should carry over to the start of next season, but have a simple promotion/demotion policy. Way too many people are being demoted 1-2 leagues at the start of every season after performing reasonably well in their former league, which sends a bad message to the players.

There is no reason demotions should be disable during the course of a season, particularly for the higher leagues. Win-rate, activity, and maybe even some 3rd criteria like a mixture of spending quotient/supply cap time/apm/etc could be used to assess whether a player should remain in their current league, receive a promotion, or a demotion.

Currently the ladder is a complete joke and does not in any way even resemble the term "ladder". It's simply Blizzard throwing you wherever they feel like at the start of the season with absolutely no explanation or clear reasoning. I can understand that the dynamics of the population shifts and league parameters need to be adjusted but that should be done during the course of a season based on player performance.


Is Diamond League too large? Fine. Demote the players occupying a seat in diamond that are either
a.) Not playing enough
b.) Not performing well

It is just such a terrible experience right now and impossible to maintain any sense of direction or to assess progression.


+ Show Spoiler +
Edit: Or simply find a way to put this into the hands of the players or let us have a little control over our own fates.
Example - if a particular league has become too large and needs to be whittled down, maybe impose a requirement that all players outside of the Top 50 of their division will be demoted, or cut the players who simply aren't putting any time in, or maybe even have an informal tournament setup.

The way it is handled now just doesn't work and I can't think of anything that makes me less motivated to play than a random, undeserved demotion after a meaningless placement match. That system needs to be removed as well. I can understand the purpose of playing 5 placement matches, but that single match placement format proves absolutely nothing

This is what Blizzard does periodically. They do it at the end/start of ladder seasons. That's why you see the people being placed into different leagues instead of carrying over.

I think for a majority of players it's motivating to try to get back into *X* league each season (that's what we really want right? Encouraging people to play). If you were placed into *X* league but were constantly scared that you would be demoted all season you probably would not play until the season lock anyway (and then if your MMR dropped you'd still get placed into a lower league the following season).

I wouldn't mind if seasons were a bit shorter (we'll see how it goes with mirroring WCS seasons) or if there was a "mid season MMR/League/inactivity check" to promote/demote/kick players as needed.
Douillos
Profile Joined May 2010
France3195 Posts
September 11 2013 14:49 GMT
#16
Probably explains why I got bumped into plat after a crappy on and off season playing random :D

I'm guessing Diamond got too large because of how many people were demoted from masters the season before, and therefor people not playing well got kicked down.

Or am I misunderstanding?
Look a giraffe! Look a fist!!
Eregos
Profile Joined July 2013
United States34 Posts
Last Edited: 2013-10-27 13:54:32
October 27 2013 13:41 GMT
#17
Excalibur, I feasted upon your excellent OP.

What I would really love to see would be what the above graph looks like for WOL 1v1. I know much fewer people play WOL 1v1, but I feel quite confident that even the active player distribution for WOL would still look pretty screwed up (far off from blizzard's stated population targets). If the above graph IS from WOL then you will have successfully shocked me. I checked the distributions on SC2 ranks fairly regularly last season for WOL and HOTS, and they don't seem to have changed much, which strengthens my opinion that your graph is of HOTS 1v1 and that WOL 1v1 would still look pretty bad even after adjustment for active players.

I wonder if blizzard is adjusting MMR league boundaries JOINTLY for WOL and HOTS? It would make sense that fewer skilled players are left playing WOL... Still though, a grand total of 20 1v1 Masters in Americas region right now seems awfully low even if the boundaries vary jointly for WOL and HOTS. If blizzard IS doing this, then of course they would base the distribution off of HOTS and have that one look mostly correct (as it does in your graph) and leave WOL distribution naked to suffer the wrath of an eroded playerbase.

P.S. Bonus pool max at time of snapshot = 1337. That can't be a coincidence, right

P.P.S. If you do make a WOL 1v1 graph, you might want to exclude China. It could be something else going on, but it looks like China is pretty different (unrepresentative) of the other regions so including them would skew the data massively.
BrassMonkey27
Profile Joined May 2011
Canada616 Posts
October 27 2013 16:07 GMT
#18
On August 30 2013 04:52 Big J wrote:
Show nested quote +
On August 30 2013 04:32 Koshi wrote:
Wait what? Only 1 guy commented on this for an entire month? :o


such an amazing research getting lost...


such amazing..
so research...
much statistic..
wow!
HoneyBadger.784 Diamond KR "A great deal of intelligence can be invested in ignorance when the need for illusion is deep."
Magnifico
Profile Joined March 2013
1958 Posts
November 20 2013 00:35 GMT
#19
Great thread.
Salient
Profile Joined August 2011
United States876 Posts
November 20 2013 01:08 GMT
#20
Why have seasons at all? Why have leagues? It's very silly. Just display an ELO rating.
1 2 3 Next All
Please log in or register to reply.
Live Events Refresh
Big Brain Bouts
17:00
#110
Fjant vs SortOf
YoungYakov vs Krystianer
Reynor vs HeRoMaRinE
RotterdaM980
TKL 241
IndyStarCraft 146
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 980
TKL 241
IndyStarCraft 146
ProTech124
UpATreeSC 117
StarCraft: Brood War
Britney 24438
EffOrt 537
Mini 483
Light 206
ggaemo 169
firebathero 163
Mind 41
Aegong 33
yabsab 32
Shuttle 25
[ Show more ]
IntoTheRainbow 15
Dota 2
Gorgc6702
Counter-Strike
fl0m4526
Heroes of the Storm
Liquid`Hasu227
MindelVK12
Other Games
Grubby2512
singsing1454
B2W.Neo891
Beastyqt636
byalli385
crisheroes184
mouzStarbuck140
ArmadaUGS137
DeMusliM124
Hui .110
C9.Mang0105
QueenE91
Trikslyr51
Organizations
Other Games
gamesdonequick1279
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 18 non-featured ]
StarCraft 2
• StrangeGG 61
• musti20045 31
• Kozan
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• LaughNgamezSOOP
StarCraft: Brood War
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV649
• masondota2438
• lizZardDota250
League of Legends
• Nemesis4009
Other Games
• imaqtpie942
• Shiphtur196
Upcoming Events
RSL Revival
15h 29m
Cure vs Zoun
herO vs Rogue
Platinum Heroes Events
20h 29m
BSL
1d 1h
RSL Revival
1d 15h
ByuN vs Maru
MaxPax vs TriGGeR
WardiTV Team League
1d 17h
BSL
2 days
Replay Cast
2 days
Replay Cast
2 days
Afreeca Starleague
2 days
Light vs Calm
Royal vs Mind
Wardi Open
2 days
[ Show More ]
Monday Night Weeklies
2 days
OSC
3 days
Sparkling Tuna Cup
3 days
Afreeca Starleague
3 days
Rush vs PianO
Flash vs Speed
Replay Cast
4 days
Afreeca Starleague
4 days
BeSt vs Leta
Queen vs Jaedong
Replay Cast
5 days
The PondCast
5 days
Replay Cast
6 days
RSL Revival
6 days
Liquipedia Results

Completed

KCM Race Survival 2026 Season 1
WardiTV Winter 2026
Underdog Cup #3

Ongoing

BSL Season 22
CSL Elite League 2026
CSL Season 20: Qualifier 1
ASL Season 21
Acropolis #4 - TS6
RSL Revival: Season 4
Nations Cup 2026
NationLESS Cup
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual

Upcoming

2026 Changsha Offline CUP
CSL Season 20: Qualifier 2
CSL 2026 SPRING (S20)
Acropolis #4
IPSL Spring 2026
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.