Alexandre Julliard
357c7401b9
Re-use the loader directory for the main wine loader, and get rid of
...
the miscemu directory.
2003-11-06 01:17:56 +00:00
Alexandre Julliard
b9efd4afcb
Moved loader/module.c to dlls/kernel.
2003-11-06 01:09:58 +00:00
Dmitry Timoshkov
45ac9cd287
Convert GetBinaryType to unicode.
2003-10-14 01:16:59 +00:00
Alexandre Julliard
b81d9e7cf4
Link all remaining files that contain kernel APIs into kernel32.dll
...
instead of ntdll.dll. Removed a number of no longer needed files.
2003-10-08 03:57:02 +00:00
Alexandre Julliard
4137aecaa5
Changed LdrLoadDll to only search for the dll in the specified path,
...
using ntdll functions.
Moved LOAD_WITH_ALTERED_SEARCH_PATH functionality to LoadLibraryEx
where it belongs.
2003-10-02 04:58:49 +00:00
Jon Griffiths
4c1fa161a3
Documentation updates.
2003-10-01 03:20:21 +00:00
Alexandre Julliard
a33f318ffc
Avoid depending on MODULE_GetBinaryType in load_library_as_datafile.
2003-09-26 04:35:44 +00:00
Alexandre Julliard
2052538a47
Moved loadorder support to dlls/ntdll.
...
Removed the --dll option and replaced it by the WINEDLLOVERRIDES
environment variable.
2003-09-25 20:33:41 +00:00
Alexandre Julliard
a37e7608c7
Moved 32-bit relay and snoop support to dlls/ntdll.
2003-09-19 04:32:39 +00:00
Alexandre Julliard
97ad311e71
Moved the 32-bit builtin loader and the remaining bits of the PE
...
loader into dlls/ntdll/loader.c.
2003-09-19 04:04:57 +00:00
Alexandre Julliard
ba71316172
Moved a couple more functions to dlls/kernel.
2003-09-18 20:59:54 +00:00
Alexandre Julliard
8db8368ee7
Keep the file handle of 16-bit modules open while the module is
...
loaded. This makes it possible to remove the InstallShield hack in
OpenFile16.
Moved LoadLibrary32_16 to kernel.
2003-09-18 04:35:34 +00:00
Alexandre Julliard
aaf3503ea5
Moved almost all remaining process, thread, fiber and exception
...
functions to dlls/kernel.
2003-09-17 05:31:32 +00:00
Alexandre Julliard
e37c6e18d0
Fixed header dependencies to be fully compatible with the Windows
...
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
7df1b9e03a
Start using the exported TEB structure from winternl.h where
...
possible.
2003-08-28 19:57:35 +00:00
Alexandre Julliard
6aca040f86
Moved a few more functions to dlls/kernel.
2003-08-26 02:29:48 +00:00
Alexandre Julliard
0ac9690081
Moved 16-bit relay and snoop support to dlls/kernel.
2003-08-26 02:28:59 +00:00
Alexandre Julliard
9ca159b61a
Moved 16-bit builtin module handling to dlls/kernel/ne_module.c.
2003-08-23 23:07:10 +00:00
Alexandre Julliard
5fbb446cfc
Moved most of the 16-bit task support and NE module loader to
...
dlls/kernel.
2003-08-23 00:03:40 +00:00
Alexandre Julliard
d8e34ebc21
Renamed system.dll to system.drv.
2003-08-19 03:27:45 +00:00
Dmitry Timoshkov
6f66c1c75b
Windows ignores values of e_cparhdr and e_crlc of the MZ header.
2003-08-18 19:51:42 +00:00
Pierre d'Herbemont
89321f49bd
Add Mach-O (Darwin file format) support.
2003-07-21 20:02:50 +00:00
Francois Gouget
3ca761220a
Spelling fixes (s/occured/occurred/ and variants).
2003-07-15 20:53:39 +00:00
Alexandre Julliard
d27b8c96eb
Avoid accessing uninitialized variable in TASK_Create (spotted by
...
Robert Shearman).
2003-07-02 04:32:38 +00:00
Eric Pouech
675b75597b
- removed next & prev fields from WINE_MODREF and implement instead
...
the three linked lists in LDR_MODULE
- added PEB_LDR_DATA structure to PEB
- removed a couple of no longer needed global & static variables
2003-07-01 03:38:56 +00:00
Alexandre Julliard
6bc5091160
Start to make use of the proper PEB structure for process
...
information.
2003-05-22 03:44:01 +00:00
Alexandre Julliard
7c836cf954
Moved a couple of 16-bit module functions from to loader/ne/module.c.
2003-05-21 18:32:17 +00:00
Alexandre Julliard
81e72d8f2d
Moved all process initialisation code to process.c and removed
...
loader/main.c.
2003-05-20 19:21:43 +00:00
Alexandre Julliard
c7a51eec43
Only create the 16-bit dummy module when we need really it.
2003-05-20 02:32:26 +00:00
Alexandre Julliard
54100873d3
Avoid using the MapHModule functions.
2003-05-16 20:17:52 +00:00
Alexandre Julliard
1ed73fae13
Call the user signal proc for exe modules too, to avoid duplicating
...
the module cleanup code.
2003-05-16 20:16:56 +00:00
Alexandre Julliard
c963e25c0e
Get rid of the 32-bit user signal proc since we always run builtin
...
USER now. Moved USER module cleanups to the 16-bit signal proc.
2003-05-15 23:11:00 +00:00
Alexandre Julliard
adb532903c
Rewrote module TLS support and moved it to ntdll.
2003-05-14 19:51:14 +00:00
Alexandre Julliard
d9bab57477
Added support for calling the TLS callback functions.
2003-05-08 04:13:26 +00:00
Alexandre Julliard
ce4d111cd8
Moved the EnumResource* functions to the kernel dll, and fixed their
...
prototypes.
2003-05-07 03:21:26 +00:00
Alexandre Julliard
424202bd9a
Moved most of the kernel resource APIs to dlls/kernel.
2003-04-30 00:53:23 +00:00
Alexandre Julliard
fedc411743
Moved the functionality of starting Win16 and DOS programs from the
...
common process startup into a separate winevdm application.
2003-04-27 00:47:58 +00:00
Alexandre Julliard
7dd3f7c786
Silently ignore 'so' loadorder in the config file instead of
...
displaying an error.
2003-04-27 00:40:23 +00:00
Alexandre Julliard
0412cc55d2
Rewrote most of the import fixup code to avoid doing redundant work
...
for every entry point. Moved it all to dlls/ntdll/loader.c.
Various optimizations in the other loader routines.
2003-04-05 05:16:11 +00:00
Alexandre Julliard
5980477dcc
Fetch the exe module directly from the PDB instead of calling
...
LdrGetDllHandle.
2003-04-05 05:13:33 +00:00
Alexandre Julliard
39f73ddeaa
Merged PE_InitDLL into MODULE_InitDLL.
...
Fixed a few traces.
2003-04-04 19:50:17 +00:00
Eric Pouech
69dc0d93d5
Removed no longer needed MODREF.find_export field.
2003-03-21 21:27:16 +00:00
Eric Pouech
7b91b82680
Rewrote mapping of module into memory using only NTDLL APIs.
2003-03-21 00:46:08 +00:00
Alexandre Julliard
195574e2d8
Added memcpy_unaligned to libwine_port.
2003-03-20 23:44:36 +00:00
Eric Pouech
19e050eb6f
Moved WINE_MODREF.flags to WINE_MODREF.ldr.Flags, and make use of the
...
same flags values as Win2000.
2003-03-20 23:40:08 +00:00
Eric Pouech
f94c8b85b9
Move some fields (refCount, tls_index and module) from WINE_MODREF to
...
LDR_MODULE.
2003-03-20 22:05:26 +00:00
Eric Pouech
9b79d698b2
Moved the module loading/unloading code and the remaining needed
...
static variables to ntdll.
2003-03-20 04:55:59 +00:00
Alexandre Julliard
500a2f95f7
Partially implemented LdrLock/UnlockLoaderLock.
2003-03-20 04:29:21 +00:00
Alexandre Julliard
03e4ea1789
Make GetModuleFileNameA call GetModuleFileNameW. Small cleanups.
2003-03-18 20:07:12 +00:00
Eric Pouech
84d1a8ff8c
- added LDR_MODULE structure to WINE_MODREF and made dummy filling of
...
this structure
- implementation of LdrFindEntry
- implementation of GetModuleFileName[AW] on top of LdrFindEntry
2003-03-18 18:29:13 +00:00
Alexandre Julliard
803b5686ef
Cleaned up load_library_as_datafile().
2003-03-14 23:17:45 +00:00
Eric Pouech
32872b1a57
- implementation of LdrLoadDll out of loader/module.c
...
- in impacted functions, ensure that we only use ntdll functions
- for internal loading, start using NTDLL style for error reporting
- making use of new LdrLoadDll
2003-03-14 05:01:20 +00:00
Eric Pouech
1efa50e47e
- implementation of LdrUnloadDll out of loader/module.c
...
- in impacted functions, ensure that we only use ntdll functions
- making use of new LdrUnloadDll
2003-03-14 04:00:52 +00:00
Eric Pouech
f3a73ef7af
- implemented LdrGetProcedureAddress and made use of it for
...
GetProcAddress
- implemented LdrGetDllHandle and made use of it in GetModuleHandle
- removed MODULE_DllThreadDetach from loader/module.c (should have
been removed in a previous patch)
2003-03-06 23:41:37 +00:00
Eric Pouech
d4fcc4bd06
Removed SO loading type.
2003-03-05 02:50:25 +00:00
Eric Pouech
7d6096480a
- added Ldr* information to include/winternl.h
...
- exported a few functions/global vars from module.h while we move
code from loader/module.c to dlls/ntdll/loader.c
- implemented LdrShutdownProcess, LdrShutdownThread and
LdrDisableThreadCalloutsForDll (and made use of them)
2003-03-04 04:36:56 +00:00
Alexandre Julliard
60d40cd246
Only do the unload_dll server call at the time we actually unload the
...
dll.
2003-02-28 21:52:08 +00:00
Alexandre Julliard
ce13153821
Moved LDT selector allocation routines to libwine.
...
Added support for correct locking of all LDT operations.
Added separate functions to manipulate the %fs selector, which allows
using a global GDT selector on recent Linux kernels.
2003-02-26 20:34:45 +00:00
Alexandre Julliard
ac13d2f47e
Print thread ids in traces with only 4 digits now that they are small
...
integers.
2003-02-18 23:29:47 +00:00
Alexandre Julliard
851d25d977
Set default loadorder to native for dlls that contain an explicit
...
path.
2003-02-17 01:49:47 +00:00
Warren Baird
39f73a2203
Increase size of insufficiently big stack allocated buffer used for
...
error messages in ELF_LoadLibraryExA.
2003-02-12 01:17:55 +00:00
Rein Klazes
33be954e62
In PE_fixup_imports report "module file not found" only in case of a
...
"file not found" error. Otherwise report failure and error number.
2003-02-11 22:21:24 +00:00
Matthew Davison
60009b9a56
Removed calls to HEAP_strdupAtoW.
2003-01-23 23:07:38 +00:00
Dimitrie O. Paun
297f3d898d
Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them.
2003-01-07 20:36:20 +00:00
Alexandre Julliard
bcf41605d2
Debug channels cleanup.
2002-12-17 21:09:50 +00:00
Alexandre Julliard
df357055e2
Don't crash in DirectedYield16 if no other task is running.
2002-12-13 00:39:17 +00:00
Dimitrie O. Paun
737d4be892
Move excpt.h out of include/msvcrt/ as it does not conflict with any
...
standard Unix header.
2002-12-12 23:34:01 +00:00
Alexandre Julliard
309b37023d
Also trace implicitly loaded dlls for +loaddll.
2002-12-12 22:05:22 +00:00
Patrik Stridvall
75dee506ae
Replace 0x%p with %p.
2002-12-05 19:56:15 +00:00
Alexandre Julliard
9169729b0b
Merged font.h and path.h into gdi.h. Moved x11font.h to
...
dlls/x11drv. Removed a number of unnecessary #includes.
2002-12-03 19:18:41 +00:00
Alexandre Julliard
11f361a29c
Removed no longer needed PROFILE_LoadWineIni().
2002-11-23 02:24:53 +00:00
Andrew John Hughes
ed800c69c8
Build ntdll with -DSTRICT.
2002-11-21 03:45:01 +00:00
Alexandre Julliard
82aeebd783
Added wrapper to replace llseek+lread to avoid HANDLE/HFILE
...
conversions.
2002-11-21 00:04:01 +00:00
Jukka Heinonen
1a665058e8
Removed last users of msdos/interrupts.c.
2002-11-21 00:02:09 +00:00
Eric Pouech
d09b9ccb39
Don't fully process FreeLibrary when process is stopping.
2002-11-15 04:14:27 +00:00
Patrik Stridvall
cf07e10017
Don't use wine/unicode.h in the header files, include it directly
...
where needed instead.
2002-10-23 20:20:59 +00:00
Patrik Stridvall
1298eb4053
Fixed mismatches between the Wine headers and the Microsoft headers.
2002-10-23 18:50:10 +00:00
Alexandre Julliard
f3215eba4a
Get/SetFastQueue16 should use HQUEUE16 handles.
2002-10-19 17:20:44 +00:00
Alexandre Julliard
9534d4f0fe
Added wine_memcpy_unaligned function to avoid gcc memcpy
...
optimizations.
2002-10-18 00:27:38 +00:00
Alexandre Julliard
c5c48eb677
Fixed reference count handling to support LoadLibrary during a process
...
attach.
2002-10-15 02:25:19 +00:00
Alexandre Julliard
613ead7f0f
Fixed some handle conversions in prevision of void* handles.
2002-10-04 00:27:10 +00:00
Dimitrie O. Paun
e70d08be31
By default, we should use our own dlls.
2002-09-25 00:16:52 +00:00
Patrik Stridvall
b5bb32c09a
Fixed some issues found by winapi_check.
2002-09-24 18:29:39 +00:00
Michael Stefaniuc
9d2b862883
Convert HRSRC to a void*.
2002-09-16 22:47:05 +00:00
Alexandre Julliard
81bdcf126f
Removed references to advapi32 registry functions from some of the
...
kernel functions.
2002-09-13 17:47:44 +00:00
Patrik Stridvall
9c1de6de30
Moved all the content of the DDK files ntdef.h and ntddk.h to
...
winternl.h.
2002-09-12 22:07:02 +00:00
Patrik Stridvall
51e6c0ccb1
MSVC compatibility fixes.
2002-08-31 19:04:14 +00:00
Alexandre Julliard
3fa613cf61
Moved internal context macros out of winnt.h.
...
Added SET_AX etc. macros to avoid non-portable pointer manipulations.
2002-08-31 18:47:00 +00:00
Patrik Stridvall
9aab47ed24
MSVC compatibility fixes.
2002-08-28 23:42:34 +00:00
Mike McCormack
f5d21eb2bf
Don't cache file handles for NE executable modules so that we don't
...
lock the CDROM.
2002-08-27 02:05:21 +00:00
Dmitry Timoshkov
d75aed2c92
Convert most of the file APIs to Unicode.
2002-08-27 01:13:58 +00:00
Dmitry Timoshkov
1467bbd5a4
Relax a bit PE consistency checks.
...
Return BINARY_DOS type if extended header was not recognized.
2002-08-27 00:34:41 +00:00
Patrik Stridvall
d016f819f1
Added include protection for unistd.h and sys/time.h.
2002-08-17 00:43:16 +00:00
Alexandre Julliard
0eec45a97b
Force loadorder of 16-bit dlls to builtin if their 32-bit counterpart
...
has already been loaded as builtin.
2002-08-16 20:02:54 +00:00
Dmitry Timoshkov
10cd651ef3
Set up exception handler around WEP call.
2002-08-16 01:44:21 +00:00
Alexandre Julliard
befbb0e441
Make behavior of builtin executables closer to that of builtin dlls.
...
Fixed case sensitivity of builtin executables.
2002-08-14 21:12:58 +00:00
Alexandre Julliard
a5dea216cc
Implemented the RtlImage* functions, and use them to replace the
...
PE_HEADER macro.
2002-08-09 19:57:38 +00:00
Alexandre Julliard
526531eb6c
Create at most one glue file for a single dll.
...
Avoid the intermediate .tmp.o file when building programs.
2002-08-01 18:36:58 +00:00
Alexandre Julliard
7375597fe2
Fixed some handle type mismatches and added a few casts in prevision
...
of void* handles.
2002-07-31 19:26:03 +00:00
Alexandre Julliard
267ca68253
Fixed HANDLE<->HFILE conversions, since they will be different types
...
when handles are void*.
2002-07-31 17:20:00 +00:00
Alexandre Julliard
29f265fab1
Set the correct permissions on the PE image sections.
2002-07-29 23:59:26 +00:00
Alexandre Julliard
13f2a17eb2
Convert HTASK to void* (based on a patch by Michael Stefaniuc).
2002-07-28 23:48:27 +00:00
Alexandre Julliard
891d23e57f
Added support for ordinal hint in PE_FindExportedFunction.
2002-07-24 19:04:41 +00:00
Alexandre Julliard
7015ce3096
No need to call GetModuleFileName16 now that GetModuleFileNameA
...
handles 16-bit tasks.
2002-07-05 01:28:10 +00:00
Alexandre Julliard
83886f23fa
Fixed GetModuleFileNameW return value.
...
Quiet dll loading error message.
2002-07-05 01:27:19 +00:00
Joshua Thielen
1cef2974ab
Changed GetModuleFileNameA to use GetCurrentTask instead of
...
MODULE32_LookupHMODULE when called by a 16-bit task.
2002-07-05 00:16:41 +00:00
Alexandre Julliard
958732d21c
Fixed warnings.
2002-07-02 02:09:39 +00:00
Alexandre Julliard
69622dbdcc
Added support for path wildcards of the form "*dllname" in load order
...
specifications.
Only use wildcard entry for dlls that don't specify an explicit path.
Removed the old DllOverrides syntax support.
Misc cleanups and optimizations.
2002-06-25 00:23:23 +00:00
Alexandre Julliard
bc524e92d2
Avoid loading programs into the DOS memory area.
2002-06-20 22:54:26 +00:00
Alexandre Julliard
2ad28d62d7
Don't go through the export table if we are not tracing anything.
2002-06-13 21:54:12 +00:00
Alexandre Julliard
221b438287
Don't free the stack selector, it's freed in ExitThread anyway (thanks
...
to Christian Costa).
2002-06-04 17:55:48 +00:00
Vincent Béron
9a62491660
Removed trailing whitespace.
2002-05-31 23:06:46 +00:00
Alexandre Julliard
55e845d11b
Removed most inclusions of options.h.
...
Removed a few no longer used PROFILE_* functions.
2002-05-23 19:40:18 +00:00
Alexandre Julliard
7fbd74ea55
Replaced the GET/PUT_UA macros by memcpy. Fixed a few big-endian
...
issues.
2002-05-23 02:53:10 +00:00
Alexandre Julliard
3536316a31
New loading scheme for Winelib apps, makes them behave like builtin
...
dlls and takes load order into account. Install them in dlldir.
Improved MODULE_GetBinaryType to recognize ELF binaries.
Added a wrapper script to setup the environment when running directly
from inside the source tree.
2002-05-22 21:32:49 +00:00
Francois Gouget
2204b50a95
Fixed the WinExec prototype.
2002-05-19 22:21:45 +00:00
Alexandre Julliard
0aa28b5b8d
Export the debugging API from libwine instead of ntdll.
...
Removed debugres_[aw].
2002-05-17 02:55:48 +00:00
Alexandre Julliard
9bb05fc48e
Specify the complete source file list for a dll inside the main
...
makefile and get rid of the subdirectories makefiles.
2002-05-14 18:36:54 +00:00
Andreas Mohr
01c8ec3a9c
Spelling/error messages fixes.
2002-04-02 19:47:30 +00:00
Eric Pouech
cb934a116a
Removed a couple of now obsolete FIXMEs.
2002-04-01 21:03:30 +00:00
Alexandre Julliard
c4912ecd5f
Don't strip out .exe extension.
2002-03-28 22:06:56 +00:00
Alexandre Julliard
6db8abaf93
Removed service thread support.
2002-03-23 20:46:41 +00:00
Alexandre Julliard
55ce53d5d7
Properly handle loadorder specifications containing a .dll extension.
2002-03-22 01:01:09 +00:00
Alexandre Julliard
aeb566052f
Correctly fill parent pid, module size and module name in process and
...
module snapshots. Based on patches by Eric Pouech and Andreas Mohr.
2002-03-22 00:21:23 +00:00
Alexandre Julliard
0799c1a780
Added LGPL standard comment, and copyright notices where necessary.
...
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Peter Hunnisett
73ab649ced
New file msvcrt/excpt.h. Move some stuff out of winnt.h into it.
2002-02-25 20:10:35 +00:00
Patrik Stridvall
57e5784c21
Move __stdcall/__cdecl to the right place.
2002-02-02 18:42:11 +00:00
Alexandre Julliard
64781643dd
Do not use the PEB lock as loader lock, use a separate critical
...
section for that (and for the graphics drivers).
2002-02-02 18:13:50 +00:00
Alexandre Julliard
cd3afa895b
LOAD_LIBRARY_AS_DATAFILE modules must be mapped like normal files, not
...
like PE images. Fixed resource loading to handle that.
2002-01-31 23:32:57 +00:00
Bill Medland
ca5b201310
Prevent trying to handle uninitialised memory as a string.
2002-01-18 18:58:08 +00:00
Alexandre Julliard
7c822cc0dc
Removed obsolete dosmod.
2002-01-06 18:38:45 +00:00
Alexandre Julliard
193cf50a09
Removed some of the calls to HEAP_strdup* functions.
2002-01-01 00:24:30 +00:00
Alexandre Julliard
d7b76822ef
Use MapLS/UnMapLS instead of SEGPTR_* macros.
2001-12-20 00:19:40 +00:00
Alexandre Julliard
9fcd89a5d8
Removed unnecessary includes.
2001-12-17 22:12:23 +00:00
Alexandre Julliard
8eeed94f5f
Export DestroyIcon32 from user32 and use GetProcAddress to call it
...
from FreeResource16.
2001-12-17 21:40:56 +00:00
Andrew Lewycky
ffc9df2d0c
do_relocations: process relocation blocks with a VirtualAddress of 0,
...
stop once SizeOfBlock == 0.
2001-11-30 23:08:02 +00:00
Alexandre Julliard
9caa71eef4
Redesign of the server communication protocol to allow arbitrary sized
...
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
2001-11-30 18:46:42 +00:00
Eric Pouech
0b83d4cbc6
New console code based on Win32 windows.
2001-11-23 23:04:58 +00:00
Dmitry Timoshkov
6b6596a1e3
Fixed packing and layout of many system structures.
2001-11-23 18:44:43 +00:00
Francois Gouget
070e749cfb
Don't prefix %p with 0x.
...
Various English fixes.
2001-11-06 21:01:32 +00:00
François Gouget
1425941e29
Fix the #include order for config.h.
...
Add #include "config.h" directives where needed.
2001-11-06 20:57:11 +00:00
Alexandre Julliard
ac2e4f1e3d
Don't keep main exe and dlls handles open when the file is on
...
removable media.
2001-10-25 19:52:12 +00:00
Francois Gouget
386cf6e342
When including 'wine/port.h', include it first.
...
Remove redundant 'config.h' includes.
2001-10-14 16:25:47 +00:00
Francois Gouget
e5ddd26dd7
When including config.h, include it first.
2001-10-14 16:18:52 +00:00
Francois Gouget
b60c4ce0f0
Don't print NULL strings (crashes on Solaris).
...
Small code maintainability tweak in ShellExecuteExA.
Two typo fixes in winmm.
2001-10-14 16:15:05 +00:00
Andreas Mohr
f359895daf
Yet another documentation/message text patch.
2001-10-02 17:49:20 +00:00
Francois Gouget
9dc5b97b35
Only use winsock2.h in Wine.
2001-08-28 18:39:03 +00:00
Bill Medland
65fc1c92d4
Added LOAD_WITH_ALTERED_SEARCH_PATH support to LoadLibraryEx.
2001-08-24 21:13:02 +00:00
Josh Thielen
378fc22b4a
Wrong handle was being closed.
2001-08-11 18:24:01 +00:00
Jörg Mayer
e5b5af9d66
Fixed a few signed/unsigned and "unsigned < 0 always true" warnings.
2001-08-10 22:49:35 +00:00