source: trunk/changelog@ 1876

Last change on this file since 1876 was 1876, checked in by bird, 26 years ago

* empty log message *

File size: 21.8 KB
Line 
1 /* $Id: changelog,v 1.482 1999-11-29 00:37:09 bird Exp $ */
2
3 99-11-29: knut st. osmundsen <knut.stange.osmundsen@pmsc.no>
4 - ODINCRT: Added experimental console hack in initterm.cpp.
5 - PE2LX: Kernel32.dll is the first entry import module name table.
6 This makes kernel32.dll init first.
7 - KERNEL32: Odincrt.lib is the first library to be included during linking.
8 This hopefully will make odincrt init first.
9
10 99-11-29: knut st. osmundsen <knut.stange.osmundsen@pmsc.no>
11 - KERNEL32: Implemented EnumResourceNamesA/W. Added a test
12 skeleton for Kernel32 in the src\kernel32\test directory.
13
14 99-11-28: Jens Wiessner <wiessnej@rfi.de>
15 - CRTDLL: Implemented several functions that used to be stubs.
16
17 99-11-28: Sander van Leeuwen <sandervl@xs4all.nl>
18 - COMDLG32: Merged with latest wine code (CVS tree dated 991126)
19
20 99-11-27: Jens Wiessner <wiessnej@rfi.de>
21 - MSVCRT: Added stubs
22
23 99-11-27: Christoph Bratschi <cbratschi@datacomm.ch>
24 - USER32: fixed edit bugs
25 ported WINE monitor code and implemented PM driver
26
27 99-11-26: Sander van Leeuwen <sandervl@xs4all.nl>
28 - USER32: Implemented GetInputState and GetQueueStatus
29 Rewrote MsgWaitForMultipleObjects for waiting on 0 objects
30 (== waiting for messages)
31 - KERNEL32: TLS bugfix (callback == 0)
32
33 99-11-25: Vitali E. Pelenyov <Vitali.Pelenyov@dpt.ustu.ru>
34 - USER32: Extended key fix (for cursor keys in Quake 2/Hexen 2 etc)
35
36 99-11-26: Christoph Bratschi <cbratschi@datacomm.ch>
37 - USER32: fixed rect mapping -> edit scroll redraw bug fixed
38 WM_ERASEBKGND: brush or system color
39
40 99-11-25: Sander van Leeuwen <sandervl@xs4all.nl>
41 - KERNEL32: Removed hardcoded dependency on ADVAPI32 (cpu.cpp); fixes
42 logging of multiple apps.
43 TLS bugfix (exception arrived too early; print info later on)
44 Continue during OSLibDosAliasMem if size != range (needs to
45 be fixed)
46 Allow executables to export functions (MS Word)
47 - USER32: PUT BACK GetWindowContextHelpId & SetWindowContextHelpId
48 - USER32: Win32BaseWindow::SetParent bugfix (setparent(0))
49 Changed broadcasting of messages. Check all valid window handles.
50 (TODO: Not efficient)
51 SetWindowLong (GWL_STYLE) fix; don't allow WS_VISIBLE or WS_CHILD
52 bit changes. (Wine does this and Pinball & Wordpad crash
53 if it is allowed)
54 Changed WM_SETREDRAW default handler to directly change
55 style (not call SetWindowLongA)
56 Fixed bugs in GetWindow.
57 - INCLUDE\OS2WRAP.H: Wrong macro fixed (GpiCreatePS didn't have any renaming
58 -> FS corruption)
59
60 99-11-25: Edgar Buerkle <Edgar.Buerkle@gmx.net>
61 - KERNEL32: MultiByteToWideChar & WideCharToMultiByte Wine port (991031)
62
63 99-11-24: Sander van Leeuwen <sandervl@xs4all.nl>
64 - USER32: Fixed desktop window handle (shouldn't be 0)
65 Added support for broadcasting messages (in post/sendmessage)
66 (Note: might not be complete correct to use WinBroadcastMsg)
67 Changed Post(Thread)MessageA/W; now packs message info in
68 shared memory buffer and posts it using a specific PM message.
69 - KERNEL32: Return kernel32path\win in GetWindowsDirectoryA if
70 neither the env variable or odin.ini key is present.
71 (also create this dir)
72 Fixed incorrect dll & exe renaming.
73
74 99-11-24: Christoph Bratschi <cbratschi@datacomm.ch>
75 - USER32: added missing button styles and messages
76 several bug fixes
77
78 99-11-23: David Raison <djr@lemur.co.uk>
79 - OLE32: Fixed buffer size error in StringFromGUID2.
80 - OLEAUT32: Rearranged iPicture
81
82 99-11-23: Sander van Leeuwen <sandervl@xs4all.nl>
83 - USER32: Added stubs for ChangeDisplaySettingsExA/W
84 Ported Wine EnumDisplaySettingsA/W (991031)
85 Query display color depth during init.
86 - KERNEL32: Ported and adapted Wine GetSystemInfo (now creates
87 both cpu & fpu registry keys)
88 Added code for SMP machines (GetSystemInfo)
89 Added IsProcessorFeaturePresent
90
91 99-11-23: Vitali E. Pelenyov <Vitali.Pelenyov@dpt.ustu.ru>
92 - USER32: ChangeDisplaySettingsA bugfix
93 - WSOCK32: Compile fix (include two more headers)
94
95 99-11-22: Patrick Haller <phaller@gmx.net>
96 - WSOCK32\NEW: Experimental rewrite using PMWSOCK, incomplete yet
97
98 99-11-22: Edgar Buerkle <Edgar.Buerkle@gmx.net>
99 - KERNEL32: Workaround in HMWaitForSingleObject for Open32 handles
100 (i.e. process handles)
101 - USER32: Extra checks in wvsnprintfA/W
102 Check if InfoPtr == NULL in STATIC_SetBitmap
103 - GDI32: SetDIBits support for DIB sections
104
105 99-11-22: Sander van Leeuwen <sandervl@xs4all.nl>
106 - KERNEL32: Add default renaming profile keys (ole32 & netapi32) to
107 odin.ini if they're not already there. (during init)
108 DosAliasMem fix; removed ReadFile hack.
109 - KERNEL32: Rewrote pe loader for on-demand loading of sections
110 Currently all sections are preloaded because of problems
111 with page faults in dprints.
112 - USER32: Removed GetIconInfo hack. Causes problems for other apps.
113 TODO: Double height reported by Open32 for color icon masks!
114
115 99-11-22: Vitali E. Pelenyov <Vitali.Pelenyov@dpt.ustu.ru>
116 - KERNEL32: VirtualProtect bugfix
117
118 99-11-21: Christoph Bratschi <cbratschi@datacomm.ch>
119 - KERNEL32: Fixed trailing newline bug in LoadMessageA/W,
120 updated to WINE 991031 level
121 - USER32: fixed window text handling
122 added static WM_GETTEXT for SS_ICON style
123
124 99-11-21: Achim Hasenmueller <achimha@innotek.de>
125 - USER32: send WM_SETTEXT for edit and static text controls
126 in SetWindowTextA/W
127 Fixes for original Windows colors (still not
128 accurate though)
129 - COMCTL32: stubbed ImageList_Read and ImageList_Write -
130 implementation missing because OLE stream support
131 required
132
133 99-11-19: Christoph Bratschi <cbratschi@datacomm.ch>
134 - USER32: fixed listbox scrolling
135
136 99-11-14: Achim Hasenmueller <achimha@innotek.de>
137 - COMCTL32: Merged with WINE 991114
138
139 99-11-18: knut st. osmundsen <knut.stange.osmundsen@pmsc.no>
140 - KERNEL32: Win32Pe2LxImage didn't issue the setFullPath(szFileName)
141 call during construction.
142 Added a invalid pointer test in OS2Heap::Free which checks
143 that lpMem is within the user address space. (Fixes
144 WinZip 7.0 crash.)
145
146 99-11-17: Christoph Bratschi <cbratschi@datacomm.ch>
147 - USER32/COMCTL32: Fixed cursor handling
148
149*****************************Official Alpha 5 version*********************************
150
151 99-11-14 Markus Montkowski <mmontkowski@gmx.de>
152 - DDRAW: Code cleanup and some fixes in handling blts in the virtuel buffers.
153 Set IOPL =3 for all DXgames needed for RA (Red Alert).
154 - DSOUND: Implemented a fake soundcard so that the bufferpos does advance.
155 Needed for RA. ToDO: Use better calulation for HiresTimers
156
157 99-11-14: David Raison <djr@lemur.co.uk>
158 - OLEAUT32: Tidy up IPicture implentation - now handles fOwn.
159
160 99-11-14: Achim Hasenmueller <achimha@innotek.de>
161 - COMCTL32: Fixed strdupAtoW/WtoA calls
162 Implemented missing undocumented string functions
163
164 99-11-14: Sander van Leeuwen <sandervl@xs4all.nl>
165 - USER32: Implemented GetMenuItemRect
166 Fixed SetParent bug (use frame (not client) handle)
167 Fixed createControls for dialogs (set windowname for ids)
168 Ported LookupIconIdFromDirectory(Ex) (Wine, 991031)
169 Fixed OSLibWinEnableWindow (need to enable/disable both frame and client)
170 Partly ported Wine CopyImage for cursors & icons (disabled
171 because it doesn't work correctly)
172 Workaround for double height of icon masks -> doesn't work
173 100% correctly and IS A DIRTY HACK. (Open32 bug)
174
175 99-11-14: Edgar Buerkle <Edgar.Buerkle@gmx.net>
176 - USER32: Fixed WindowFromPoint
177
178 99-11-14: David Raison <djr@lemur.co.uk>
179 - OLEAUT32: Added beginnings of IPicture interface for VB6 support.
180 Mostly stubs, but enough to get a simple VB6 app started.
181 ICreatePictureIndirect updated.
182
183 99-11-13: Christoph Bratschi <cbratschi@datacomm.ch>
184 - USER32: fixed more edit bugs
185 merged controls with wine-991031
186
187 99-11-13: Sander van Leeuwen <sandervl@xs4all.nl>
188 - KERNEL32: Fixed problem with ReadFile & aliased memory
189 (DosRead doesn't like writing to memory addresses
190 returned by DosAliasMem -> search for original
191 memory mapped pointer and use that one)
192 -> fixes problems in Lotus Notes 5.0
193 Also commit these pages before calling DosRead as exceptions
194 in the kernel can't be handled by us.
195 - KERNEL32\PELDR:
196 Better error reporting
197 - COMDLG32: Fixed bug in strlen: first check if pointer != NULL (FILEDLG95_InitUI)
198 Bugfix: ofn->lpTemplateName can be string id, so
199 don't always treat it as a string
200 Check pointer returned by CBGetItemDataPtr, if != -1, then
201 it's a string. (FILEDLG95_OnOpen)
202
203 99-11-12: Christoph Bratschi <cbratschi@datacomm.ch>
204 - USER32: fixed several edit bugs
205
206 99-11-12: Sander van Leeuwen <sandervl@xs4all.nl>
207 - GDI32: Changes + fixes in DIBSection bitblt (fixes Quake 2)
208 - KERNEL32: Added handlemanager class for device drivers
209 Put devio.cpp in device driver class. (NOT TESTED)
210
211 99-11-12: Edgar Buerkle <Edgar.Buerkle@gmx.net>
212 - KERNEL32: Wrote file io replacement apis (preliminary version)
213 (not enabled)
214
215 99-11-12: Jens Wiessner <wiessnej@rfi.de>
216 - IMAGEHLP,IMM32,OLECLI32,OLEDLG,OLESVR32,PSAPI,RASAPI32
217 Updates
218 - MSVCRT: Added stubs
219
220 99-11-11: Sander van Leeuwen <sandervl@xs4all.nl>
221 - USER32: Implemented GetWindowContextHelpId & SetWindowContextHelpId
222 Implemented GetKeyboardState (NOT TESTED)
223 Ported SwitchToThisWindow, GetKeyboardLayout, TranslateCharsetInfo
224 GetKeyboardLayoutNameA/W (991031)
225 Fixed Win32Dialog::SetWindowLongA for dlg proc.
226 - GDI32: Implemented EnumFontsA/W. Fixed bugs in EnumFontFamiliesW
227 (NEWTEXTMETRICW is different from NEWTEXTMETRICA)
228 - KERNEL32: Turn off debugging by default when compiling the nodebuginfo
229 build (can be enabled by setting the env. variable WIN32LOG_ENABLED)
230 Fixes for GetVersionSize/Struct for images that aren't loaded.
231 Fixed heap corruption in GetEnvironmentVariableW.
232
233 99-11-10: Christoph Bratschi <cbratschi@datacomm.ch>
234 - USER32: ShowScrollBar: create not existing scrollbars
235
236 99-11-10: Sander van Leeuwen <sandervl@xs4all.nl>
237 - KERNEL32: Rewrote OSLibDosAllocMem to only return addresses
238 aligned at 64kb boundaries (that's what NT's VirtualAlloc
239 does and it fixes problems with MS Word & StarCraft)
240 Fixed wrong dprintf in GetProcAddress.
241 Added code to VirtualAlloc for committing pages of memory mapped
242 files. (Word needs this)
243 - USER32: Implemented WindowFromDC
244 Call WinWaitMsg from WaitMessage instead of calling Open32 api.
245 Added wvsnprintfA export (required for NTDLL)
246 - NTDLL: Link with user32.lib, don't import by name directly
247 (needs to be done for the kernel32 forwards too)
248 - GDI32: Removed flipping of bitmaps in dibsection (no longer necessary)
249
250 99-11-10: Patrick Haller <phaller@gmx.net>
251 - COMDLG32: Fix: erroneous filter data for GetOpenFileName now tolerated
252 Open32 keeps to close to the docs :)
253 - SHELL32: Add: update to WINE19991108
254 - GDI32: Add: Font remapping via ODIN.INI (MS Sans Serif -> WarpSans)
255
256 99-11-10: knut.st.osmundsen <knut.stange.osmundsen@pmsc.no>
257 - PE2LX: Added OLE32 to the lie list. New Base class.
258 - WIN32K: Disabled Yield - this solves problems running win32k
259 at SMP kernels and logging problems on all kernels.
260 Added some parameters.
261
262 99-11-09: Rene Pronk <R.Pronk@twi.tudelft.nl>
263 - USER32: Added support for control mnemonics (Alt-key sends BM_CLICK
264 to buttons if key == mnemonic for that control)
265
266 99-11-09: Christoph Bratschi <cbratschi@datacomm.ch>
267 - GDI32: fixed line functions -> don't draw end pixel
268 - COMCTL32/USER32: removed some old workarounds
269 - USER32: fixed system resource handling
270
271 99-11-09: Sander van Leeuwen <sandervl@xs4all.nl>
272 - OLE32: Renamed dll to OLE32OS2 to avoid conflicts with Lotus SmartSuite's
273 OLE32.dll
274 - OLE32/OLEAUT32/AVIFIL32: compilation fixes
275 - KERNEL32: Fixed lstrcpynAtoW & lstrcpynWtoA, OS/2 unicode api
276 translated up to maxlen characters -> heap corruption
277 in Solitaire. Translate upto min(stringlength+1, maxlen).
278 Also, terminate at strlen(strlength), not maxbuf-1 (lstrcpynWtoA)
279 - KERNEL32: Added code for renaming dlls (i.e. OLE32 <-> OLE32OS2)
280 Odin.ini in bin directory needs to be present for PE loader
281 (includes renaming entries for OLE32 & NETAPI32)
282 NOTE: Dll name in ole32.lib has changed, so a complete recompilation
283 is required!
284 NOTE 2: We might need to add some code to the file io apis in case
285 dirty apps try to read directly from system dlls.
286 - KERNEL32: No need to export private apis by name & ordinal (ord is enough)
287 - INCLUDE\odinwrap.h
288 added wrappers that don't print dbg messages (regardless
289 of whether DEBUG is defined or not)
290 - INCLUDE\misc.h: Added dprintf2 function for extensive logging
291 - KERNEL32,USER32, replaced commented out dprintf calls with dprintf2
292 Changed makefiles to enable dprintf2 (DEBUGALL)
293 - KERNEL32: Wrapper heap apis with ODIN* macros. -> fixes FS corruption
294 - USER32: Fixed LoadMenuIndirectW (didn't call new code)
295
296 99-11-09: Patrick Haller <phaller@gmx.net>
297 - NTDLL: Add: various new functions added (DbgXXX)
298
299 99-11-08: Markus Montkowski <mmontkowski@gmx.de>
300 - WING32: Added first implementation of this old 32bit DLL.
301
302 99-11-08: Edgar Buerkle <Edgar.Buerkle@gmx.net>
303 - KERNEL32: SetCurrentDirectory, CreateDirectory, RemoveDirectory bugfixes.
304 (remove terminating backslash if present)
305
306 99-11-08: Patrick Haller <phaller@gmx.net>
307 - COMCTL32: Fix: EDIT: if obtaining font information fails,
308 prevent division by zero
309 - NTDLL: Add: numerous integer arithmetic functions added
310
311 99-11-08: Sander van Leeuwen <sandervl@xs4all.nl>
312 - KERNEL32: Fixed bug in thread handler (exception handler set
313 at wrong moment)
314 Ported Wine critical section code (991031), Open32
315 doesn't correctly fill in the CRITICAL_SECTION structure.
316 Limit size of memory mapped files.
317 - USER32: PostThreadMessageA/W fix
318
319 99-11-06: Sander van Leeuwen <sandervl@xs4all.nl>
320 - DINPUT: Ported Wine code (991031) (not tested yet)
321 - USER32: Added code for sending mouse events to dinput.dll
322 Added PM <-> win32 key translation (used in dinput.dll)
323
324 99-11-06: Edgar Buerkle <Edgar.Buerkle@gmx.net>
325 - USER32: GetMenuStringW fix
326
327 99-11-05: Achim Hasenmueller <achimha@innotek.de>
328 - COMCTL32: Source code cleanup, remove warnings, corrected typecasts
329 Added logging, warnings for stub functions
330 - KERNEL32: Source code cleanup, fix warnings
331 - USER32: Source code cleanup, fix warnings
332
333 99-11-05: Patrick Haller <phaller@gmx.net>
334 - COMCTL32: Fix: TREEVIEW_Edit_Subclass is called with freed infoPtr
335 This only cures the symptoms, not the origin!
336
337 99-11-05: Sander van Leeuwen <sandervl@xs4all.nl>
338 - USER32: Fixed InsertMenuA
339 Message translation fix for WM_USER+n messages (GetMessage)
340 Extra translation.
341 Rewrote/Ported LoadStringA/W (similar to Wine now)
342 - KERNEL32: Changed FindResource, string id translation should be done
343 in LoadStringA/W (done that way in Wine)
344 Fixed GetModuleHandleA
345
346 99-11-05: Jens Wiessner <wiessnej@rfi.de>
347 - MSVFW32: Updated to Wine level 991031
348 - IMM32: Replaced some FIXME entries with dprintf;
349 - KERNEL32: Added _wsnprintfA to .DEF file for export (MSACM32 needs this)
350 - INCLUDE: New MSACM.H from Wine991031 (MSACM32 needs this)
351 - MSACM32: New MSACM32.DLL (Ported from Wine9910131)
352
353 99-11-05: Edgar Buerkle <Edgar.Buerkle@gmx.net>
354 - GDI32: Fixes for StretchDIBits & GetDIBColorTable
355 - USER32: Fixes for ArrangeIconicWindows & ShowOwnedPopups
356 NULL pointer checks in hasWindowName/hasClassName/FindClass
357 Message translation fix for WM_USER+n messages
358 - OLE32: Always create OLE window class
359 - KERNEL32: Null pointer check in lstrcmpiA
360 - SHELL32: Corrected export of Shell_GetCachedImageIndex
361
362 99-11-04: Sander van Leeuwen <sandervl@xs4all.nl>
363 - SHLWAPI: Fixed makefile
364 - USER32: Put back Dani's dialog fix (WS_CLIPSIBLINGS bit for dialog controls)
365 (fixes winhlp32 & comboboxes)
366
367 99-11-04: Patrick Haller <phaller@gmx.net>
368 - WNETAP32: Add: numerous undocumented functions stubbed
369 - ADVAPI32: Add: LsaXXX-functions stubbed
370 - USER32: Fix: wvsprintfA/W fixed (buffer overwrite)
371 - KERNEL32: Fix: unnamed kernel objects (events, mutexes, semaphores)
372
373 99-11-03: knut st. osmundsen <knut.stange.osmundsen@pmsc.no>
374 - Makefiles: Changes to build the libraries first
375
376 99-11-03: Sander van Leeuwen <sandervl@xs4all.nl>
377 - COMDLG32: Import from shlwapi as the original Wine code does
378 - SHELLL32: Added exports
379 - SHLWAPI: Link with shell32.lib for forwarders + added exports
380 - USER32: Fixed mouseactivate for subclassed OS/2 windows (scrollbars)
381 Fixed CreateIconIndirect (Wine file dialog now shows button
382 icons correctly)
383 Don't clear WS_CLIPSIBLINGS bit in OSSetWindowStyle.
384 Removed fix in PMFRAME WM_ADJUSTWINDOWPOS: Previous fix breaks
385 a lot of apps (button.exe/style.exe/header4.exe)
386 (fix = call default frame handler when receiving this msg
387 when the window hasn't been 'created' yet)
388
389 99-11-03: Christoph Bratschi <cbratschi@datacomm.ch>
390 - USER32: fixed modal dialogs
391 added WM_CONTEXTMENU
392 - COMCTL32: implemented statusbar size grip
393
394 99-11-03: Patrick Haller <phaller@gmx.net>
395 - KERNEL32: Fix: undocumented behaviour in SearchPathA
396 and bugfix in SearchPathW
397 - USER32: Fix: TrackPopupMenuEx lpPM can be NULL
398 Fix LoadBitmapA checked for incorrect return value
399
400 99-11-02 Markus Montkowski <mmontkowski@gmx.de>
401 - DDRAW: Changed debug output to DDRAW: ...
402 Copied Framebuffer if in colorconversion mode for Normal Blits to
403 the primary surface. => Map Editor of Red Alert works.
404
405 00-11-02: Achim Hasenmueller <achimha@innotek.de>
406 - COMCTL32: Incorporated latest WINE 991031 updates
407 Note: listview doesn't paint properly now. Will be fixed later.
408
409 99-11-02: Markus Montkowski <mmontkowski@gmx.de>
410 - DDRAW: Changed interface handling of Surfaces=> Quake 2 runs again!
411
412 99-11-02: Patrick Haller <phaller@gmx.net>
413 - SHELL32: Up to current WINE level
414 - SHLWAPI: Created (in WINE it mostly links to SHELL32)
415
416 99-11-02: Sander van Leeuwen <sandervl@xs4all.nl>
417 - INCLUDE\odinwrap.h:
418 fixed wrong define (_ODINWARP instead of _ODINWRAP)
419 Only check the heap for consistency when DEBUG_ODINHEAP is
420 defined.
421 - USER32: Uncommented EDIT_NOTIFY_PARENT call in EDIT_WM_SetFocus
422 (yesterday's showwindow fix makes sure no WM_SETFOCUS msgs
423 arrive before the dialog received it's WM_INITDIALOG msg)
424 Fixed more FS corruption in dc.cpp.
425 - SHELL32: Added extra exports for comdlg32
426 - COMDLG32: Ported Wine file & find common dialogs (991031)
427 Find & Replace dialogs enabled, Wine code called for
428 file dialogs if the app supplies a dialog template.
429 NOTE: Disabled for now. Comctl32 isn't stable enough
430 for the Win95 style Wine comdlg dialogs.
431 Fixed check for find/replace dialog. Notepad uses 32 byte
432 buffer, so why does the wine code fail for < 80 bytes?
433 Fixed display of find/replace dialog -> if not hooked
434 show dialog!
435 - makefiles: Added debugsmp/nodebuginfosmp/releasesmp options to
436 start two nmake process to build everything on two cpus.
437
438 99-11-01: Sander van Leeuwen <sandervl@xs4all.nl>
439 - USER32: Delete all process windows & classes in exitlist handler
440 Set hwndInsertBehind to HWND_BOTTOM for group boxes
441 (fixes problems when groupbox control is defined after
442 controls inside it in dialog template)
443 Mouse activate fix.
444 Don't activate child windows in ShowWindow.
445 - WINMM: Return failure for waveOutGetDevCapsA/W when there's no
446 audio hardware present.
447
448
449 99-11-01: Daniela Engert <dani@ngrt.de>
450 - USER32: add WS_CLIPSIBLINGS to not-WS_GROUP style STATIC controls
451 (fixes missing text in WELCOME)
452
453 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
454
455 This is a hack!
456
457 Dialog controls which contain/surround other controls *need* to be
458 created with the WS_CLIPSIBLINGS style.
459
460 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Note: See TracBrowser for help on using the repository browser.