ASECO/RASP v0.91 released!

Discuss everything about Xymph's Aseco flavoured server control scripts for TM Forever / classic TMN and for TM² Canyon.

Moderators: Xymph, TM-Patrol

Post Reply
Xymph
Pit Crew
Pit Crew
Posts: 5654
Joined: 19 Aug 2007 12:58
Owned TM-games: TMN, TMU, TMF, TM²
Contact:

ASECO/RASP v0.91 released!

Post by Xymph » 11 Dec 2007 15:55

Here we go again. :) This release focuses on upgrading the full Jfreu plugin, adding/tweaking/fixing a lot of stuff related to rank limiting and configuration etc, but it also includes one new user command /laston (finally putting the last unused database field into action :idea: ), two new admin commands and a handful new admin features, plus the inevitable bug fixes. Here is the complete list from http://www.gamers.org/tmn/Features_091.html :
  • New features and other changes in the v0.91 release of ASECO/RASP:

    * enhancements and fixes for the full Jfreu plugin (jfreu.plugin.php & jfreu.chat.php):
    • o the jfreu.config.php file was moved from the plugins/ directory to the more appropriate includes/ directory
      o the player join message shows the administrator title (if appropriate) and the server rank when rank limiting is enabled
      o new command /jfreu listlimits to display all rank-limiting related settings in one convenient overview
      o new commands /jfreu writeconfig and /jfreu readconfig to write and read the actual Jfreu config settings to/from a new dynamic config file, configurable via $conf_file in jfreu.config.php (default: plugins/jfreu/jfreu.config.xml)
      • + the settings managed this way include all the variables in jfreu.config.php, except $message_start, all the actual info messages, and $badwordslist
        + changing any setting will cause the jfreu.config.xml file to be rewritten with the current values, so that after an ASECO/RASP restart it can be read back to restore those settings (it is however not read automatically)
        + /jfreu readconfig shows the current servername after reading the settings, in case that was changed via the autoranking mechanism

      o new commands /jfreu listvips and /jfreu listvipteams to display the lists of VIPs and VIP_Teams, respectively
      o new command /jfreu readlists to read in the lists of VIPs and VIP_Teams, complementing /jfreu writelists
      o new command /jfreu badwordsnum to set the badwords limit, complementing /jfreu badwords and /jfreu badwordsban
      o new command /jfreu badword to increment the badword count for a player (login or ID) who 'creatively' and intentionally circumvents the badword filter
      o new command /jfreu autochangename to enable or disable automatically changing the servername when the rank limit is updated
      o new command /jfreu infomessages to enable or disable the info messages
      o new $unspecvote setting in jfreu.config.php, and new command /jfreu unspecvote to allow or disallow SpecOnly players to use the /unspec command
      o exchanged the functionality of /jfreu setrank and /jfreu setlimit: now setrank enables/disables the rank limit system (just like autorank for the autoranking feature) while setlimit sets the rank limit value itself (similar to hardlimit for the overall hard limit value)
      o corrected /jfreu addteamvip into /jfreu addvipteam, and /jfreu removeteamvip into /jfreu removevipteam (along with all corresponding variables)
      o corrected /jfreu autorankminplayer into /jfreu autorankminplayers, and $autorankminplayer into $autorankminplayers in jfreu.config.php (proper plural)
      o the /jfreu addvip, /jfreu removevip, /jfreu unspec, /jfreu banfor and /jfreu player commands are now able to use player IDs (in addition to logins)
      o added clearer descriptions to the /jfreu helpall output
      o all relevant /jfreu commands now show the title and nickname of the admin performing those actions
      o added more logging of /jfreu commands usage, and of all the various kick reasons
      o an invalid value specified to /jfreu setlimit, /jfreu hardlimit, /jfreu offset, /jfreu autorankminplayers, /jfreu maxplayers and /jfreu kickworst produces an appropriate error message
      o a login specified to /jfreu unspec that isn't SpecOnly produces an appropriate error message
      o the /jfreu setlimit command without a value now shows the current rank limit
      o the jfreu.unspec.php plugin is integrated into jfreu.plugin.php: spectators that manage to start racing without getting unSpec-ed are kicked after passing a checkpoint; the original kick_player_spec() function is therefore redundant and was disabled
      o the NoVote feature (automatic cancellation of CallVotes) and the /jfreu cancel command are inactive when chat-based votes are enabled
      o fixed and re-enabled the /password command to show the server's player/spectator password to a player or spectator/SpecOnly, respectively
      o fixed /jfreu setlimit on to not change the servername if $autochangename is off
      o fixed /jfreu message to use the actual servername instead of the initial one, in case that was changed via the autoranking mechanism
      o fixed SpecOnly player's rank to get checked against the rank limit instead of 0 if $autorank is off
      o fixed players with rank 0 (vanilla account) to not get kicked if $hardlimit is disabled
      o fixed players with rank 0 (vanilla account) to get considered by the kick_hirank and kick_worst features before other high ranks
      o fixed player with rank higher than $hardlimit to still get shown an explanation message before being kicked
      o fixed spectator whose team is in the VIP_Teams list to get marked as VIP instead of SpecOnly
      o fixed inclusion (also in jfreu.lite.php) of wrong jfreu.config.php in case of multiple Aseco installs (for multiple TMx servers on the same machine)
      o general code clean-up, including proper use of booleans for all variables that used only 1/0 values, message corrections, redundant code removal, and lots more

    * new /laston command to show when a player (login or ID) was last online on the server
    * new /admin players command to display the list of all known players, and search for offline players via a (part of a) login or nickname with /admin players <string> (just like /players <string> to search for online players)
    * tracks downloaded via /add are now saved to the new 'GameData/Tracks/Challenges/TMXtmp/' directory as they are added only temporarily to the server's track list, while tracks downloaded via /admin add are saved to the 'GameData/Tracks/Challenges/TMX/' directory and added permanently to the server's track list, as before
    * the /admin add command now optionally also adds the downloaded track to the jukebox (configured via $jukebox_adminadd in rasp.settings.php)
    * new /admin addthis command to permanently add the current track to the server's track list if it is playing through a TMX /add vote; this will also move the track file from the 'GameData/Tracks/Challenges/TMXtmp/' directory into the 'GameData/Tracks/Challenges/TMX/' one
    * the /add trackref command now creates trackref.txt files in both TMX and TMXtmp directories
    * tracklists created by /admin writetracklist now include a <random_map_order> filter section so that /admin readtracklist of such files randomizes the track list again (configurable via new config.xml setting <writetracklist_random>)
    * /admin black and /admin unblack now automatically perform a writeblacklist, and /admin addguest and /admin removeguest a writeguestlist, so that the blacklist.txt and guestlist.txt files are always in sync in case of a server restart
    * on TMO/TMS, /nextmap will also show the environment of the next track
    * the chat-based voting configuration options were lifted out of plugin.rasp_votes.php into the new includes/votes.config.php file
    * a new TMN & ASECO/RASP quick start guide is included in the DOCS/ directory

    Bug fixes in the v0.91 release of ASECO/RASP:

    * a track added to the jukebox via TMX /add vote is temporarily added to the server's track list while playing it, but if multiple tracks are /add-ed right behind eachother, only the last one would be removed from the track list again – fixed, each track is immediately removed from the server's track list after having been loaded successfully for its (single) turn
    * /admin setservername uses only the first specified word to set the servername – fixed, all words are now used
    * /admin setservername, /admin setmaxplayers and /admin match don't show the nickname of the admin performing those actions – fixed
    * /server always shows the initial servername – fixed, it now displays the actual servername, in case that was changed via the autoranking mechanism
    * because tracks downloaded from TMX are renamed to filenames derived from the tracks' (sanitized) names, it is possible for tracks with identical names to get mixed up – fixed, the (sanitized) filename is now made unique with a sequence number, if necessary
Please pay attention to these upgrade notes:
  • Important:
    * Because jfreu.unspec.php was integrated into the main plugin, you must remove the file from an existing installation and not include it in plugins.xml anymore if you used it together with jfreu.plugin.php.
    * If you allow TMX /add votes ($feature_tmxadd is true), you must created a new 'GameData/Tracks/Challenges/TMXtmp/' directory along the required 'GameData/Tracks/Challenges/TMX/' directory. Tracks downloaded via /add are saved to the former directory, but if permanently added to the server's track list via /admin addthis, they are moved into the latter.
As always, the download and all further information can be found on my TMN page:

http://www.gamers.org/tmn/

Cheers!
Xymph
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
Ant
TM-Patrol
TM-Patrol
Posts: 1845
Joined: 01 Dec 2007 17:04
Owned TM-games: TMN, TMUF, TM Wii
Location: London, England
Contact:

Re: ASECO/RASP v0.91 released!

Post by Ant » 12 Dec 2007 11:50

Nice one Xymph, i'll let you know how i get on with this version once installed but good work on the updates man ! :1

User avatar
lille79
Pit Crew
Pit Crew
Posts: 881
Joined: 09 Dec 2007 15:04
Owned TM-games: TMN, TMNF, TMUF
Location: Norway
Contact:

Re: ASECO/RASP v0.91 released!

Post by lille79 » 12 Dec 2007 15:34

Everything is (as usually) great!


Only thing I'm wondering is what the difference between hardlimit and ranklimit is?
/lille79
Old man of the Norwegian Trackmania team Super Sheep Racing
To visit my homepage/blog, and download the usbTMFserver, this is the place to go.

User avatar
lille79
Pit Crew
Pit Crew
Posts: 881
Joined: 09 Dec 2007 15:04
Owned TM-games: TMN, TMNF, TMUF
Location: Norway
Contact:

Re: ASECO/RASP v0.91 released!

Post by lille79 » 12 Dec 2007 18:41

I thought maybe I had done something wrong, and theres a possibility that there's something I've overlooked, but when i write /admin listbans I get No banned player(s) found. I know that there are people on the banlist (I haven't restarted the server after the last ban). Had the problem earlier also, so something isn't right. Clicked on Banlist in remoteCP too, and I get no players there either. Is there somewhere I have to configure to get this to work?

/lille
/lille79
Old man of the Norwegian Trackmania team Super Sheep Racing
To visit my homepage/blog, and download the usbTMFserver, this is the place to go.

User avatar
soehest
happy cruiser
happy cruiser
Posts: 161
Joined: 07 Jun 2007 13:52
Owned TM-games: TMU
Contact:

Re: ASECO/RASP v0.91 released!

Post by soehest » 12 Dec 2007 19:37

Great release as usual, have been running this on my active server for some hours now without any troubles. Love that a tracks get added to the jukebox on /admin add and the /laston command :-) Now lets drive! :pil

Regards

User avatar
hempez
wheelbarrow operator
wheelbarrow operator
Posts: 19
Joined: 07 Dec 2006 17:03
Contact:

Re: ASECO/RASP v0.91 released!

Post by hempez » 12 Dec 2007 21:08

[Local DB] MySQL Server Version is 5.0.45-community-nt
[RASP] Cleaning up unused data
*-*-*-*-*-* RASP is running! *-*-*-*-*-*
|...Loading Settings
|...Loaded!
|...Checking database structure
|...Structure OK!
|...Calculating ranks
|...Done!
[RASP] Error - TMX Directory (ArrayChallenges/TMX) does not exist
[RASP] Error - TMX Directory (ArrayChallenges/TMX) can not be written to
###############################################################################
Aseco v0.91 Xymph running on 127.0.0.1:5000
Game : TmNationsESWC - TimeAttack
Author: Florian Schnell
Re-Authored: Assembler Maniac & Xymph
###############################################################################

i make tmx directory but no change. What is wrong?

Xymph
Pit Crew
Pit Crew
Posts: 5654
Joined: 19 Aug 2007 12:58
Owned TM-games: TMN, TMU, TMF, TM²
Contact:

Re: ASECO/RASP v0.91 released!

Post by Xymph » 12 Dec 2007 23:58

hempez wrote:[Local DB] MySQL Server Version is 5.0.45-community-nt
[RASP] Cleaning up unused data
*-*-*-*-*-* RASP is running! *-*-*-*-*-*
|...Loading Settings
|...Loaded!
|...Checking database structure
|...Structure OK!
|...Calculating ranks
|...Done!
[RASP] Error - TMX Directory (ArrayChallenges/TMX) does not exist
[RASP] Error - TMX Directory (ArrayChallenges/TMX) can not be written to
###############################################################################
Aseco v0.91 Xymph running on 127.0.0.1:5000
Game : TmNationsESWC - TimeAttack
Author: Florian Schnell
Re-Authored: Assembler Maniac & Xymph
###############################################################################

i make tmx directory but no change. What is wrong?
Are those the only errors, or do you see RPC Permission errors (further down) in the log too?
The fact that there's the word "Array" in the error messages above suggests you don't have a proper RPC connection, which should also result in permission errors. See my quick start guide for configuring that correctly.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

Xymph
Pit Crew
Pit Crew
Posts: 5654
Joined: 19 Aug 2007 12:58
Owned TM-games: TMN, TMU, TMF, TM²
Contact:

Re: ASECO/RASP v0.91 released!

Post by Xymph » 13 Dec 2007 00:01

lille79 wrote:Everything is (as usually) great!

Only thing I'm wondering is what the difference between hardlimit and ranklimit is?
Thanks. Players with ranks higher than the ranklimit are kicked when they try to join as a player, but allowed in as SpecOnly when connecting as spectator (so that they can possibly be unspecced). Players with ranks higher than the hardlimit are always kicked, even when trying to join as spectator. Hence hard limit. :wink:
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

Xymph
Pit Crew
Pit Crew
Posts: 5654
Joined: 19 Aug 2007 12:58
Owned TM-games: TMN, TMU, TMF, TM²
Contact:

Re: ASECO/RASP v0.91 released!

Post by Xymph » 13 Dec 2007 00:05

lille79 wrote:I thought maybe I had done something wrong, and theres a possibility that there's something I've overlooked, but when i write /admin listbans I get No banned player(s) found. I know that there are people on the banlist (I haven't restarted the server after the last ban). Had the problem earlier also, so something isn't right. Clicked on Banlist in remoteCP too, and I get no players there either. Is there somewhere I have to configure to get this to work?
Are you sure you banned them, or did you blacklist them? If both RCP and /admin listbans show no players, your ban list is really empty, but /admin listblacks may show some entries. There's no place to configure this, those lists "just work". See halfway this post for a description of the differences between bans and blacklists.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
Djoszee
happy cruiser
happy cruiser
Posts: 144
Joined: 19 Mar 2006 11:46
Owned TM-games: TMO / TMN / TMUF
Location: Groningen, Netherlands
Contact:

Re: ASECO/RASP v0.91 released!

Post by Djoszee » 13 Dec 2007 12:13

Hey it's me again...

Our server is still running an older version, but it got me thinking of some new ideas you might be able to implement :)
I'll describe them as bright as possible:

/admin cleankarma xx
Clean the karma of a track, or the karmavotes done by a person (by loginname)
Where xx = tracknumber (sorted by /list)
Where xx = a player login (sorted by /players)

--

/top100ext or /top10ext
View loginnames next to the top10 / top100
An extended version where it is possible to see both the players name and the loginname that players uses.
I just noticed you added /admin players, but this might be a better way of sorting. Maybe you can do /active as well
Just an idea, again I have no experience with the new /admin players command

--

/prunerecs loginxx
Prune the records of a player
Where loginxx = player login.
This way you are able to erase the records of a single player on all the tracks on the server. I don't know if this causes any instability, but I'd like to use this feature :)

Xymph
Pit Crew
Pit Crew
Posts: 5654
Joined: 19 Aug 2007 12:58
Owned TM-games: TMN, TMU, TMF, TM²
Contact:

Re: ASECO/RASP v0.91 released!

Post by Xymph » 13 Dec 2007 19:41

Djoszee wrote:Our server is still running an older version, but it got me thinking of some new ideas you might be able to implement :)
I'll describe them as bright as possible:

/admin cleankarma xx
Clean the karma of a track, or the karmavotes done by a person (by loginname)
Where xx = tracknumber (sorted by /list)
Where xx = a player login (sorted by /players)
Well, for starters one command cannot work with both track and player IDs, there has to be a distinguishing factor, like an extra option ("cleankarma track <xx>" and "cleankarma player <xx>") or two different commands ("cleantrackkarma" and "cleanplayerkarma"). But why would you want to clean out all karma votes for one track, or by one player for all tracks? And frequently enough that it would need to be a built-in admin command, instead of a incidental command on the MySQL command line, or a little standalone script?

Code: Select all

DELETE FROM rs_karma WHERE challengeid=<id>;
or

Code: Select all

DELETE FROM rs_karma WHERE playerid=<id>;
does the trick just fine (with the track or player id from the database, not Aseco).
Djoszee wrote:/top100ext or /top10ext
View loginnames next to the top10 / top100
An extended version where it is possible to see both the players name and the loginname that players uses.
I just noticed you added /admin players, but this might be a better way of sorting. Maybe you can do /active as well
Just an idea, again I have no experience with the new /admin players command
Listing players beyond the first 100 just to find their nick/login isn't practical, it already takes 10 Next clicks just to get to end of the /top100 output -- the same goes for /active. That's why /admin players <string> allows you to search for (offline) players by a part of their nick or login, while /stats <login/playerID> allows admins to see the active time even for offline players.
Djoszee wrote:/prunerecs loginxx
Prune the records of a player
Where loginxx = player login.
This way you are able to erase the records of a single player on all the tracks on the server. I don't know if this causes any instability, but I'd like to use this feature :)
Surely you wouldn't want any player to be able to delete any other player's records? :roll: So that would have to be an /admin command, not a user one. But is it fair to delete one player's records, and not all records on a given track (which /admin prunerecs already does)? And the same question as above for deleting a player's karma votes applies: does it happen often enough that this has to be an admin command instead of two simple MySQL commands?

Code: Select all

DELETE FROM records WHERE playerid=<id>;
DELETE FROM rs_times WHERE playerid=<id>;
is all it takes, when you have the player id from the players table (not from /players or /admin players).
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

User avatar
Ant
TM-Patrol
TM-Patrol
Posts: 1845
Joined: 01 Dec 2007 17:04
Owned TM-games: TMN, TMUF, TM Wii
Location: London, England
Contact:

Re: ASECO/RASP v0.91 released!

Post by Ant » 14 Dec 2007 02:43

hempez wrote:[Local DB] MySQL Server Version is 5.0.45-community-nt
[RASP] Cleaning up unused data
*-*-*-*-*-* RASP is running! *-*-*-*-*-*
|...Loading Settings
|...Loaded!
|...Checking database structure
|...Structure OK!
|...Calculating ranks
|...Done!
[RASP] Error - TMX Directory (ArrayChallenges/TMX) does not exist
[RASP] Error - TMX Directory (ArrayChallenges/TMX) can not be written to
###############################################################################
Aseco v0.91 Xymph running on 127.0.0.1:5000
Game : TmNationsESWC - TimeAttack
Author: Florian Schnell
Re-Authored: Assembler Maniac & Xymph
###############################################################################

i make tmx directory but no change. What is wrong?
Hempez - I had this problem a while back and I found that if I created a folder called ArrayChallenges in my aseco folder and then within that ArrayChallenges folder i created a folder called TMX that problem was a problem no more ! Hope this helps mate !! :)

Also in 0.91 there is another folder you need to create, but in the tmdedicated folder, because when I ran 0.91 for the first time I got a slightly different error to that about a TMXtmp directory so you have to create a folder called TMXtmp in C:\TmDedicatedServer\GameData\Tracks\Challenges (assuming C:\ is where your dedicated server is) so the whole path is this (after you have created it) C:\TmDedicatedServer\GameData\Tracks\Challenges\TMXtmp

This will definitely fix the problem, also in the C:\TmDedicatedServer\GameData\Tracks\Challenges directory you should have a folder called TMX, if you have all this then you won't get the errors as shown above.

Hope this is helpful to you and anyone else with the same problem !! :1

User avatar
Ant
TM-Patrol
TM-Patrol
Posts: 1845
Joined: 01 Dec 2007 17:04
Owned TM-games: TMN, TMUF, TM Wii
Location: London, England
Contact:

Re: ASECO/RASP v0.91 released!

Post by Ant » 14 Dec 2007 04:12

By the way Xymph, just lettin you know I have installed v0.91 and all is workin well - nice one mate ! :1010

Just to let you know as well, you can run fast3.1.3e alongside aseco for the dedimania records, you can get it here:

viewtopic.php?f=28&t=6842

Xymph
Pit Crew
Pit Crew
Posts: 5654
Joined: 19 Aug 2007 12:58
Owned TM-games: TMN, TMU, TMF, TM²
Contact:

Re: ASECO/RASP v0.91 released!

Post by Xymph » 14 Dec 2007 12:42

Tony_Bad_Mann wrote:
hempez wrote:[Local DB] MySQL Server Version is 5.0.45-community-nt
[RASP] Cleaning up unused data
*-*-*-*-*-* RASP is running! *-*-*-*-*-*
|...Loading Settings
|...Loaded!
|...Checking database structure
|...Structure OK!
|...Calculating ranks
|...Done!
[RASP] Error - TMX Directory (ArrayChallenges/TMX) does not exist
[RASP] Error - TMX Directory (ArrayChallenges/TMX) can not be written to
###############################################################################
Aseco v0.91 Xymph running on 127.0.0.1:5000
Game : TmNationsESWC - TimeAttack
Author: Florian Schnell
Re-Authored: Assembler Maniac & Xymph
###############################################################################

i make tmx directory but no change. What is wrong?
Hempez - I had this problem a while back and I found that if I created a folder called ArrayChallenges in my aseco folder and then within that ArrayChallenges folder i created a folder called TMX that problem was a problem no more ! Hope this helps mate !! :)
Uhm yeah, that might prevent the error message, but could cause a problem later on with the /admin add command when you actually go download TMX tracks, as it doesn't address the underlying issue with the path where that TMX directory should actually be. Bottomline: don't create an aseco/ArrayChallenges directory because that really is not needed, but find and fix the real problem. :wink:
Tony_Bad_Mann wrote:Also in 0.91 there is another folder you need to create, but in the tmdedicated folder, because when I ran 0.91 for the first time I got a slightly different error to that about a TMXtmp directory so you have to create a folder called TMXtmp in C:\TmDedicatedServer\GameData\Tracks\Challenges (assuming C:\ is where your dedicated server is) so the whole path is this (after you have created it) C:\TmDedicatedServer\GameData\Tracks\Challenges\TMXtmp
Correct, that's in the upgrade notes for v0.91.
Tony_Bad_Mann wrote:This will definitely fix the problem, also in the C:\TmDedicatedServer\GameData\Tracks\Challenges directory you should have a folder called TMX, if you have all this then you won't get the errors as shown above.
Right, that's the real solution to the above error message, as long as your RPC connection also functions correctly, as I mentioned earlier.
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

Xymph
Pit Crew
Pit Crew
Posts: 5654
Joined: 19 Aug 2007 12:58
Owned TM-games: TMN, TMU, TMF, TM²
Contact:

Re: ASECO/RASP v0.91 released!

Post by Xymph » 14 Dec 2007 12:46

Tony_Bad_Mann wrote:By the way Xymph, just lettin you know I have installed v0.91 and all is workin well - nice one mate ! :1010
Thanks. :)
Tony_Bad_Mann wrote:Just to let you know as well, you can run fast3.1.3e alongside aseco for the dedimania records, you can get it here:
Yes, that has been mentioned before, but it's obviously not an ideal (or efficient) situation to run two such applications in parallel. That's why my goal is to incorporate Dedimania support into Aseco in the end, but it's a complex project so it will probably take longer than my average releases until now. :wink:
Developer of XASECO for TMF/TMN ESWC & XASECO2 for TM²: see XAseco.org
Find your way around the Mania community from the TMN ESWC hub, TMF hub, TM² hub, and SM hub

Post Reply