Commit graph

94 commits

Author SHA1 Message Date
zturtleman
7edcfd0e0a Fix Domination sigil HUD status icons at the top of the screen. 2022-01-15 01:46:02 +00:00
zturtleman
146f909848 Fixes for Domination found when looking at the code. Whether they were causing noticeable issues is unknown. This breaks network compatibility with past release's QVMs (this is handled by GAME_VERSION).
- CS_SIGILSTATUS used the same configstring index as a G_ModelIndex(); CS_MODELS to CS_MODELS + MAX_MODELS
- PW_SIGILWHITE, etc powerups were out of bounds for ps.powerups[] (see MAX_POWERUPS) and read ammo values
2022-01-02 19:58:57 +00:00
q3rally
7c932fe29a lowered the frag bonus from 5 seconds to 0.5 seconds
version upcount
2021-11-11 18:04:58 +00:00
q3rally
24b46797a3 new health box fits now into the hud
tweaked the fpsmax in rearview mirror
version upcount
2021-09-26 20:53:21 +00:00
q3rally
865ce7e554 railgun bug should be fixed now 2021-09-21 17:03:15 +00:00
q3rally
84d8c60a4e changed "SIGIL" to "Control Point"
changed "Regenaration" to "Auto Repair"
Modified the Chat position
2021-09-21 12:46:07 +00:00
q3rally
8be1b5b71d added aas file for battlecanyon
fixed bug #39 (plasmagun alt fire)
2021-07-27 20:57:01 +00:00
q3rally
d4d94bd63d Added the new sigils and icons from insellium codewise
version upcount
2021-07-08 09:31:01 +00:00
q3rally
6c8224cce7 homing rockets now shootable
adjusted rocket speed
2021-06-24 20:34:54 +00:00
q3rally
64ee3a5374 power of the homing rockets decreased
version upcount to v0.3c
2021-06-15 16:15:53 +00:00
zturtleman
62467f97b9 Fix losing race rank after finishing if following other player
If you finish the race and then follow another player (fire and then
rear fire to switch to SPECTATOR_FOLLOW) and then after other player
finishes and there is no one else to follow the game switches you
to SPECTATOR_FREE. This calls ClientBegin() which clears most of the
game client data, including the finishRaceTime. This puts the player
in last place on the scoreboard.
2021-06-15 10:30:30 +00:00
q3rally
cad778cadc Added 4-Team-Domination
Added default bots to arena files
2021-06-11 04:29:41 +00:00
zturtleman
1568196e27 ioquake3 resync to revision 6920 from 6893.
Updated to latest recommended build settings, increased deployment target to 10.7
Further tweaks to Xcode project
Now works as well as possible in Xcode 11
Figured out method of referencing GLSL generated C files outside of code directory
Update README.md
Add C syntax highlighting to readme
Simplify glsl -> C stringification
Make LCC path resolution more robust
GitHub Actions setup
Remove old CI system configurations
Add status badge to README
Fix shader stringify
Run apt-get update before installing deps
Avoid platform sed differences
Run actions on pull request too
Use `r_texturemode GL_LINEAR_MIPMAP_LINEAR` by default
[sdl] Turn tentative definition into actual definition.
Add TOOLS_CFLAGS to build preamble
Fix use of TOOLS_CC being reported as CC
Use the correct compiler for tools when cross building under cygwin
Allow using pulseaudio for SDL audio capture
Restore bots crushing unseen player on q3tourney6 in non-CTF
Fix the number of weights in the IQM model calculation
Fixes a crash when compiling the project on windows in 64 bit mode.
2021-06-07 09:11:19 +00:00
q3rally
ae3c64ee50 commit for 0.0.3.0 release (code freeze)
tweaked telefrag gun
updated roadmap
updated discord logo in main menu
version upcount
2021-05-13 16:02:43 +00:00
q3rally
521d68adc2 finished the alt fire for railgun (telefrag gun) 2021-05-11 11:02:37 +00:00
q3rally
c16d8e6e49 fixed bug in bot path creation system (thx zturtleman)
added discordlogo.tga
added reflect image for babel (by insellium)
2021-05-05 18:38:41 +00:00
q3rally
65ffc81230 2021-04-11 09:51:15 +00:00
q3rally
4f04a97fdf worked out the surfaceparms stuff
added visual effect for SURF_SNOW (needs fixing)
deleted useless surfaceparms files
2021-04-03 23:31:23 +00:00
q3rally
62c09831da Changed years in file headers 2021-03-24 20:13:01 +00:00
q3rally
d4f45f9e60 added new/tweaked headmodels by insellium
changed gauntlet to chainsaw
code changes for chainsaw
fixed q3r_david4 map
tweaked flag models again
new unknownmap image
2021-03-14 22:13:21 +00:00
q3rally
57d3c2b6b2 did a little workaround for the grenade launcher
still wip
2021-02-23 22:02:53 +00:00
q3rally
931f952063 fixed grenade launcher physics 2021-02-19 22:13:57 +00:00
q3rally
58ba3168dd lowered the power of the railgun 2021-02-18 11:46:04 +00:00
zturtleman
0a5535d81a Fix team ranks and ScoreIsTied() in Game VM
There was an off-by-one when checking team scores array. Red checked FFA
team, blue checked red team, and so on for green and yellow teams.

So when blue was winning the game thought score was tied (FFA and red
scores at 0) and did not check if blue reached the capture limit.
2020-07-12 00:01:32 +00:00
q3rally
277ac2f654 reworked shaders and ammo boxes 2020-07-04 20:40:00 +00:00
zturtleman
9b86138351 ioquake3 resync to revision 3550 from 3534.
Fix IQM quat normalize fail case
Remove erroneous newlines from Com_Error in sdl_glimp.c
Restore OpenGL 1.1 support (GL_CLAMP)
q3rcc: Allow to override build date
Fix lightning gun handling for corpses and single player podiums
Fix for macOS Catalina screen resolution issue
Fix team orders menu not listing clients with lower clientnums
Fix duplicate team join center print for bots and g_teamAutoJoin
E2K: fixed build by MCST lcc compiler when using USE_CURL=1 option
2020-03-15 19:40:23 +00:00
zturtleman
d1c5c322ed Don't add points in domination after intermission starts. 2019-05-22 00:13:39 +00:00
zturtleman
b053cc7144 Count down health to 100 in DM/CTF/DOM too. 2019-05-21 05:02:07 +00:00
zturtleman
ee81ee56d9 Fix crash starting domination gamemode and misc issues
Fix warning not being printed when there are no domination sigil entities.
Fix out-of-bounds crash at map load due to setting negative status for all sigil at once.
Fix setting pointers to teamgame.sigil[].entity (entity name check was case sensitive and test map is different).
Fix ignoring third sigil and later spawning an extra one later.
Fix check for modified status in Team_SetSigilStatus().
Fix null pointer crash if domination map doesn't have at least two sigil entities.
2019-05-21 04:24:24 +00:00
zturtleman
dd1c25ea9e Fix flame thrower model (Linux), flash, ammo, and explosion
Convert TGA to tga in flamethrower.md3 so it works on Linux (case sensitive) when data is not zipped.
Add flame thrower muzzel flash shader to it doesn't have a black background (copied machine gun's flash shader).
Fix flame thrower using BFG ammo model name in code/game/bg_misc.c.
Fix flame thrower ammo shader (filename typo).
Fix flame explosion in code/cgame/cg_weapons.c.
Rename gfx/color/black.tga to gfx/colors/black.tga like explosion (and other) shaders expect.
2019-05-16 23:11:02 +00:00
q3rally
e8d2946d6c New gametype - Domination
*** still needs some fixes ***
2019-04-26 08:33:54 +00:00
zturtleman
6bc3b33eab ioquake3 resync to revision 3522 from 3511.
Fix axis returned by IQM's LerpTag
Calculate bounds for unanimated IQM models
Fix loading favorites as initial source in server browser
Improve finding obelisk entitynum for bot AI
Fix SDL audio playback with surround sound
Fix predicting entity origin on rotating mover
Allow binds to use hex values for all key codes
Disable pulseaudio capture regardless of SDL version
Fix SDL audio playback with 16-bit stereo sound
Make s_info command display channels instead of stereo
Fix cross-compiling using mingw-w64 on Ubuntu 18.04
2018-10-16 17:48:51 +00:00
q3rally
d0f6099cc1 not changed anything, just some tryouts 2018-09-07 23:39:04 +00:00
zturtleman
96a9e2a9aa ioquake3 resync to revision 3511 from 3444.
This updates from SDL 2.0.4 to SDL 2.0.8.

Fix nullptr dereference in front of nullptr check in FS_CheckPak0
Fix undefined behaviour due to shifting signed in snd_mem.c
Fix shifting bits out of byte in tr_font.c
Fix shift into sign in cl_cin.c
Fix signed bit operations in MSG_ReadBits
Add missing address operator in cm_polylib.c
OpenGL1: Decay float[8] to float * in tr_marks.c
Avoid srcList[-1] in snd_openal.c
Fix the behaviour of CVAR_LATCH|CVAR_CHEAT cvars
Maximize cURL buffer size
Fix mouse grab after toggling fullscreen
Fix q3history buffer not cleared between mods and OOB-access
Revert "Removed "Color Depth" from q3_ui system settings, it didn't control anything."
Fix displayed color/depth/stencil bits values
Restore setting r_colorbits in q3_ui
Make setting r_stencilbits more consistent in Team Arena UI
Fix map list in Team Arena start server menu after entering SP menu
Support SDL audio devices that require float32 samples.
sdl_snd.c should just initialize SDL audio without checking SDL_WasInit().
There's no need to SDL_PauseAudio(1) before calling SDL_CloseAudio().
Added audio capture support to SDL backend.
Use the SDL2 audio device interface instead of the legacy 1.2 API.
Disable SDL audio capture until prebuilt SDL libraries are updated to 2.0.8.
Update SDL2 to 2.0.8
Add SDL 2.0.1 headers for macOS PPC
Make macOS Universal Bundle target 10.6 for x86 and x86_64
Fix possible bot goal state NULL pointer dereference
Fix uninitialized bot_goal_t fields
Remove unnecessary NULL pointer check in Cmd_RemoveCommand
Make UI_DrawProportionalString handle NULL string
Fix compiling against macOS system OpenAL and SDL2 frameworks
Fix array index in CanDamage() function - discovered by MARTY
Fix compiling Makefile (broke in macOS frameworks commit)
Fix clearing keys for control in Team Arena UI
Make s_useOpenAL be CVAR_LATCH
Improvements for dedicated camera followers (team follow1/2)
Fix not closing description.txt and fix path seperator
Fix duplicate bots displayed in Team Arena ingame add bot menu
OpenGL2: Fix parsing specularScale in shaders
Don't allow SDL audio capture using pulseaudio
Isolate the Altivec code so non-Altivec PPC targets can use the same binary.
Limit -maltivec to specific source files on OpenBSD too (untested)
Use SDL 2.0.1 headers for macOS ppc64
Fix console offset while Team Arena voiceMenu is open
OpenGL2: Readd r_deluxeSpecular.
Fix client kicked as unpure when missing the latest cgame/ui pk3s
Don't create multiple windows when GL context creation fails
Require OpenGL 1.2 for GL_CLAMP_TO_EDGE
Fix Linux uninstaller requiring Bash
Fix Linux uninstaller redirecting stderr to stdout in preuninstall.sh
Reported by @illwieckz.
Fix in_restart causing fatal error while video is shutdown
Allow pkg-config binary to be overridden with PKG_CONFIG
Make testgun command without argument disable test gun model
Remove unused renderer_buffer variable
Don't upload 8 bit grayscale images as 16 bit luminance
OpenGL1: Use RE_UploadCinematic() instead of duplicate code
Don't load non-core GL functions for OpenGL 3.2 core context
Load OpenGL ES 2.0 function procs
Don't check fixed function GL extensions when using shader pipeline
OpenGL2: Fix world VAO cache drawing when glIndex_t is unsigned short
OpenGL2: Misc fixes and cleanup
Fix IQM root joint backlerp when joint number is more than 0
Improve IQM loading
Improve IQM CPU vertex skinning performance
OpenGL2: Add GPU vertex skinning for IQM models
2018-07-30 11:35:12 +00:00
zturtleman
5642b01cd7 Add ioquake3 changes missed in last commit. 2018-04-08 02:03:51 +00:00
zturtleman
0d5fb492cd ioquake3 resync to revision 3444 from 3393.
Fix GCC 6 misleading-indentation warning
add SECURITY.md
OpenGL2: Restore adding fixed ambient light when HDR is enabled
Few LCC memory fixes.
fix a few potential buffer overwrite in Game VM
Enable compiler optimization on all macOS architectures
Don't allow qagame module to create "botlib.log" at ANY filesystem location
Make FS_BuildOSPath for botlib.log consistent with typical usage
tiny readme thing
Remove extra plus sign from Huff_Compress()
Fix VMs being able to change CVAR_PROTECTED cvars
Don't register fs_game cvar everywhere just to get the value
Don't let VMs change engine latch cvars immediately
Fix fs_game '..' reading outside of home and base path
Fix VMs forcing engine latch cvar to update to latched value
Revert my recent cvar latch changes
Revert "Don't let VMs change engine latch cvars immediately"
Partially revert "Fix fs_game '..' reading outside of home and base path"
Revert "Fix VMs forcing engine latch cvar to update to latched value"
Fix exploit to bypass filename restrictions on Windows
Changes to systemd q3a.service
Fix Q_vsnprintf for mingw-w64
Fix timelimit causing an infinite map ending loop
Fix invalid access to cluster 0 in AAS_AreaRouteToGoalArea()
Fix negative frag/capturelimit causing an infinite map end loop
OpenGL2: Fix dark lightmap on shader in mpteam6
Make FS_InvalidGameDir() consider subdirectories invalid
[qcommon] Remove dead serialization code
[qcommon] Make several zone variables and functions static.
Fix MAC_OS_X_VERSION_MIN_REQUIRED for macOS 10.10 and later
Increase q3_ui .arena filename list buffer size to 4096 bytes
OpenGL2: Fix crash when BSP has deluxe maps and vertex lit surfaces
Support Unicode characters greater than 0xFF in cl_consoleKeys
Fix macOS app bundle with space in name
OpenGL1: Use glGenTextures instead of hardcoded values
Remove CON_FlushIn function and where STDIN needs flushing, use tcflush POSIX function
Update libogg from 1.3.2 to 1.3.3
Rename (already updated) libogg-1.3.2 to libogg-1.3.3
Update libvorbis from 1.3.5 to 1.3.6
* Fix CVE-2018-5146 - out-of-bounds write on codebook decoding.
* Fix CVE-2017-14632 - free() on unitialized data
* Fix CVE-2017-14633 - out-of-bounds read
Rename (already updated) libvorbis-1.3.5 to libvorbis-1.3.6
Update opus from 1.1.4 to 1.2.1
Rename (already updated) opus-1.1.4 to opus-1.2.1
Update opusfile from 0.8 to 0.9
Rename (already updated) opusfile-0.8 to opusfile-0.9
First swing at a CONTRIBUTING.md
Allow loading system OpenAL library on macOS again
Remove duplicate setting of FREETYPE_CFLAGS in Makefile
Fix exploit to reset player by sending wrong serverId
Fix "Going to CS_ZOMBIE for [clientname]" developer message
Fix MSG_Read*String*() functions not being able to read last byte from message
2018-04-07 23:02:52 +00:00
zturtleman
c55f11d8b9 ioquake3 resync to revision 3393 from 3385.
OpenGL2: Use ri.Error instead of Com_Error in tr_vbo.c
Fix Team Arena server refresh time format
Fix -1 (unlimited) ammo decreasing ammo time remaining
Correct spelling mistakes
Fix invalid model frame developer warnings in Team Arena
2017-12-03 10:09:52 +00:00
zturtleman
0081965385 Sync Engine and Game VM code to ioquake3
Mostly whitespace changes. No bug fixes.
Q3Rally doesn't change any botlib code so revert copyright in botlib headers that use to be in the Q3 SDK game source directory.
MD3_MAX_* defines (besides MD3_MAX_LOD) are not used so revert to ioq3 values.
2017-11-17 03:49:41 +00:00
zturtleman
0e7ddc331a Miscellaneous Game VM bug fixes
Bug fixes found by viewing differences from ioquake3. There is some unrelated whitespace and 0 to NULL changes.

bg_misc.c -- ioq3 and my bugfix
g_cmds.c -- ioq3 bugfix
g_combat.c -- ioq3 and my bugfix
g_main.c -- q3, ioq3, and my bugfix
g_mover.c -- ioq3 bugfix
g_svcmds.c -- q3 bugfix
g_team.c -- ioq3 bugfix
2017-11-17 03:37:02 +00:00
zturtleman
d1d77c02f6 Restore compatibility with running on unmodified ioquake3
Remove additional acos and asin system call traps that I added in r119 (2012-09-15).
Now the implementations in bg_lib.c are used like when Q3Rally was a mod.
acos system call is part of Q3A CGame API. It's still used by Q3Rally CGame.

Attempting to run Q3Rally CGame VMs from Sep-2012 - Nov-2017 will now given an error.
ERROR: Bad cgame system trap: 112
2017-11-17 00:43:27 +00:00
zturtleman
26fcf173be Add Q3Rally items to botfiles
Q3Rally renames some items and adds some items. Bots should try to pick them up now.
2017-11-04 13:51:46 +00:00
zturtleman
95fbb18fa1 ioquake3 resync to revision 3385 from 3347.
Fix going to previous browser source in q3_ui
Limit ui_smallFont/ui_bigFont/cg_noTaunt cvars to missionpack
Fix team chat box for spectators
Don't draw crosshair 0 in Team Arena setup menu
Make client for Windows x86_64 use OpenAL64.dll by default
Fix loading renderer DLLs on Windows x86
Add Windows application manifest
Disable DPI scaling on Windows
ignore window resize event on fullscreen
Don't reload arenas.txt/*.arena files in Team Arena UI
Fix crash when out of memory in Team Arena's String_Alloc
Fix in_nograb not releasing the mouse cursor
Update UI player animation handling to match CGame
Fix specifying minimum mac os version in make-macosx.sh
Fix listen server sending snapshots each client frame
Statically link libgcc on Windows
Fix hit accuracy stats for lightning gun and shotgun kills
Don't link to libGL at compile time
Add common OpenGL version parsing + OpenGL 3 fixes
Support parsing OpenGL ES version strings
Fix setting cflags/libs from sdl2-config
Load OpenGL ES 1.1 function procs
[qcommon] Use unsigned types where wrapping arithmetic is intended
OpenGL2: Fix brightness when r_autoExposure is disabled
OpenGL2: Fix MD3 surface with zero shaders dividing by zero
[botlib/be_aas_def.h] Change array size from MAX_PATH to MAX_QPATH
Don't redefine MAX_PATH in bot code
Fix memory leak in (unused) AAS_FloodAreas()
Fix compiling GLSL shaders under Windows.
Only draw cm_patch/bot debug polygons in world scenes
Fix reading crash log when log wraps around buffer
Don't send team overlay info to bots
Fix a race condition in the makedirs target
Fix shader corruption on OpenBSD
2017-11-04 11:30:30 +00:00
zturtleman
7fb48b29ca ioquake3 resync to revision 3347 from 3331.
Update arch in misc/setup for ioq3 changing from i386 to x86
OpenGL2: Use extension functions with OpenGL versions before 3.0.
OpenGL2: Force VAO usage on OpenGL 3.0+
Add spawnflags to QUAKED for trigger_multiple
Check for all command separators in callTeamVote
Remove newlines from chat messages in Game VM
Fix compiling Cmd_CallTeamVote_f
Only allow safe protocols for cURL downloads
Fix crash when pmove_msec is 0
Combine mouse movement events in event queue
Improve keys using international key layouts
Improve client input responsiveness
Removing input functions from sys_local.h for last commit
Make input events use earliest possible time
Make bots use crusher on other q3tourney6 maps
Make bots only use q3tourney6 crusher to kill their enemy
2017-08-30 07:09:41 +00:00
zturtleman
f44a329010 Fix compiler warnings 2017-08-07 05:41:42 +00:00
zturtleman
e7405e98df ioquake3 resync to revision 3331 from 3306.
OpenGL2: Use an OpenGL 3.2 core context if available
OpenGL2: Remove GLSL_ValidateProgram()
OpenGL2: Don't do MSAA resolve/shadow mask/SSAO on shadow views
OpenGL2: "Fix" cg_shadows 4
Fix score bonus for defending the flag carrier in CTF
Restore not giving defense score bonus to flag carrier
Add score bonus for defending the flag carrier in 1 Flag CTF
Move CON_Init ahead of Com_Init to avoid Windows dedicated server crash
Make 'globalservers 0' fetch all masters
OpenGL2: Don't use initialized arrays in glsl shaders
Echo server say/tell/sayto message to console
Don't try to remove non-existant command 'shaderstate'
Update internal curl to 7.54.0
Silence g_util.c warning about set but not read variable
Remove unused imgFlag_t value IMGFLAG_SRGB
Make warmup in Team Deathmatch wait for players to join both teams
Remove CVAR_PROTECTED from cl_renderer
Fix/improve buffer overflow in MSG_ReadBits/MSG_WriteBits
Fix friction in AAS_ClientMovementPrediction
Fix floating point precision loss in renderer
Reject OpenGL contexts w/ software renderer when core context requested
2017-08-07 05:23:43 +00:00
zturtleman
866aa787cf ioquake3 resync to 3306 from 1951.
Update to ioquake3 revision 3306 from 1951 of the ioq3 Github repo via subversion. Over 4 years of changes.
2017-07-10 01:33:41 +00:00
zturtleman
6afd8f13d2 ioquake3 resync to revision 2398 from 2369.
This is the last ioquake3 revision before ioquake3 changed from subversion to git at the beginning of 2013.

#5808 - Include and use .glsl in source (rend2)
#5812 - Use refdef's coordinates when drawing to screen shadow fbo, and separate depth texture and screen texture coordinates in glsl shaders.
Include Rend2 renderer in MacOSX bundle
Include OpenGL1 and Rend2 renderers in MacOSX UB
Include Rend2 renderer in NSIS installer.
Include OpenGL1 and Rend2 renderers in Loki Setup Installer.
Have NSIS uninstaller delete rend2.
Split light sample into direct and ambient parts when using deluxemaps or per-vertex light vectors.  Fixes #5813.
Fix writting voip data in demos (broke in r2102).
Fix server ignoring client move commands if voip data is included.
Allow changing cl_voip without restarting.
Fix assert failing in CL_ParseVoip() while flipping cl_voip off and on.
Only declare var_SampleToView in lightall shader when it is actually used.
Fix a couple files not ending with a newline.
Fix clients being able to reset their player state and respawn using donedl.
Fix passing arg9 (qvm only), arg10, and arg11 to vmMain for native libs and non-i386 compiled or interpated qvms. (Currently they aren't use in vmMain in game, cgame, or ui.)
Fix passing args[11] to args[15] from vm to engine on ppc64 and sparc64. Some of the args are used by game bot prediction syscalls. May have been causing bugs. Note: This was fixed for x86_64 in r2163.
Fix reconnect command to work after leaving server. (#5794)
Fix dedicated server crashing when using MSG_ReadDelta*, though it only happens if someone modifies the engine. (#5449)
Makefile fixes for OpenBSD by Jonathan Gray. (#5728)
Save all arguments from connect for reconnect command.
Remove unnecessary localhost check from reconnect command.
Support r_srgb even without hardware support.  Also tweak default autoexposure/tonemap settings to look good on both r_srgb 0 and 1.
Changed the MacOS-X build system to make UB's containing i386 and x86_64 arches and made make-macosx.sh not build UB's but only standard binaries
Fix spectator client being switched from follow to free after map_restart if following a client with a higher client number.
Fix client unlinking issue caused by ent->s.number being set to followed client's ps->clientNum after map_restart. Reported by Ensiform.
Changes from Ensiform:
- In G_AddBot, try to allocate clientNum before doing anything else.
- In G_AddBot, don't set SVF_BOT and inuse. It's done in ClientConnect, plus inuse causes ClientDisconnect to be run for no reason.
- In G_AddBot, only set skill in bot useinfo once.
- Avoid using cl->ps.clientNum to check if cl is a bot.
Fix bot skill format so it doesn't always have a space at the beginning of it.
More fixes to the macosx buildsystem.  This removes the SDL Framework and makes use of a SDL library that is position independant.  This also brings back PPC builds into the UB and also as a standa alone build choice.
Have make-macosx.sh require the user to specify which architecture she/he wants to build for and suggest building UB's if the user is unaware of what architectures are
Lets list all the valid options.
2017-07-09 21:21:12 +00:00
q3rally
b9dce9aed9 bots should use all weapons now 2016-05-18 08:29:28 +00:00
q3rally
4d43253c7e bots should use all weapons now 2016-05-18 04:18:02 +00:00
q3rally
799400495d bots should use all weapons now 2016-05-17 21:00:39 +00:00