[issue8525] Small enhancement to help()

2010-04-25 Thread Georg Brandl
Changes by Georg Brandl ge...@python.org: -- assignee: - georg.brandl nosy: +georg.brandl ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8525 ___

[issue7865] io close() swallowing exceptions

2010-04-25 Thread Pascal Chambon
Changes by Pascal Chambon chambon.pas...@gmail.com: Removed file: http://bugs.python.org/file17046/release_io_close_exceptions.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7865 ___

[issue7865] io close() swallowing exceptions

2010-04-25 Thread Pascal Chambon
Pascal Chambon chambon.pas...@gmail.com added the comment: SHould be better this way then B-) -- Added file: http://bugs.python.org/file17077/no_swallow_on_close2.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7865

[issue8528] typo in argparse documentation

2010-04-25 Thread akira
New submission from akira 4kir4...@gmail.com: `messges` should be replaced by `messages` on http://docs.python.org/dev/library/argparse.html#upgrading-optparse-code page. -- assignee: d...@python components: Documentation messages: 104144 nosy: akira, d...@python severity: normal

[issue8528] typo in argparse documentation

2010-04-25 Thread Georg Brandl
Georg Brandl ge...@python.org added the comment: Thanks, fixed in r80460. -- assignee: d...@python - nosy: +georg.brandl resolution: - fixed status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8528

[issue8522] enhacement proposal in howto/doanddont

2010-04-25 Thread Georg Brandl
Georg Brandl ge...@python.org added the comment: Thanks, applied in r80461. -- nosy: +georg.brandl resolution: - fixed status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8522

[issue4147] xml.dom.minidom toprettyxml: omit whitespace for text-only elements

2010-04-25 Thread Dan Kenigsberg
Changes by Dan Kenigsberg dan...@redhat.com: -- nosy: +danken ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue4147 ___ ___ Python-bugs-list mailing

[issue7946] Convoy effect with I/O bound threads and New GIL

2010-04-25 Thread Ray.Allen
Changes by Ray.Allen ysj@gmail.com: -- nosy: +ysj.ray ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7946 ___ ___ Python-bugs-list mailing list

[issue8514] Create fs_encode() and fs_decode() functions in os.path

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: Please follow the naming convention used in os.path. The functions would have to be called os.path.fsencode() and os.path.fsdecode(). Ok Other than that, I'm +0 on the patch: the sys.filesystemencoding logic doesn't really work

[issue8529] subclassing builtin class (str, unicode, list...) needs to override __getslice__

2010-04-25 Thread Florent Xicluna
New submission from Florent Xicluna florent.xicl...@gmail.com: It looks like a bug, because __getslice__ is deprecated since 2.0. If you subclass a builtin type and override the __getitem__ method, you need to override the (deprecated) __getslice__ method too. And if you run your program with

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Alex
New submission from Alex alex.gay...@gmail.com: In Objects/stringlib/fastsearch.h the lines: if (!STRINGLIB_BLOOM(mask, s[i-1])) and if (!STRINGLIB_BLOOM(mask, s[i-1])) can read beyond the front of the array that is passed to it when the loop enters with i =

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Antoine Pitrou
Changes by Antoine Pitrou pit...@free.fr: -- components: +Interpreter Core nosy: +flox priority: - normal stage: - needs patch type: - behavior versions: +Python 2.6, Python 2.7, Python 3.1, Python 3.2 ___ Python tracker rep...@bugs.python.org

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Florent Xicluna
Florent Xicluna florent.xicl...@gmail.com added the comment: I guess we don't have the same issue with the find() implementation? if (!STRINGLIB_BLOOM(mask, s[i+m])) Because: * len(s) = n = (w + m) * the loop condition is (i = w) == s[w+m] is beyond the array, but it is '\0' probably Is

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Alex
Alex alex.gay...@gmail.com added the comment: Yes, as the comment of the top of the file notes, reading to s[n] (where n == len(s)) is safe because strings are null padded. -- ___ Python tracker rep...@bugs.python.org

[issue8510] update to autoconf2.65

2010-04-25 Thread Matthias Klose
Matthias Klose d...@debian.org added the comment: r80474: Replace AC_HELP_STRING with AS_HELP_STRING -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8510 ___

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Florent Xicluna
Florent Xicluna florent.xicl...@gmail.com added the comment: This patch should fix it. Since there's no failure, I don't find any test to add. -- keywords: +patch stage: needs patch - patch review Added file: http://bugs.python.org/file17078/issue8530_rfind.diff

[issue6085] Logging in BaseHTTPServer.BaseHTTPRequestHandler causes lag

2010-04-25 Thread Charles-Francois Natali
Charles-Francois Natali neolo...@free.fr added the comment: The attached patch caches the result of FQDN lookup. -- keywords: +patch Added file: http://bugs.python.org/file17079/base_http_server_fqdn_lag.diff ___ Python tracker rep...@bugs.python.org

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Antoine Pitrou
Antoine Pitrou pit...@free.fr added the comment: I can't manage to trigger any crash on a Linux machine, so I think we'll live without a test. -- nosy: +pitrou ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8530

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Antoine Pitrou
Antoine Pitrou pit...@free.fr added the comment: Of course your patch might slow down the loop, so perhaps you want to run some benchmarks. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8530

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Antoine Pitrou
Changes by Antoine Pitrou pit...@free.fr: -- versions: -Python 2.6, Python 3.1 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8530 ___ ___

[issue8510] update to autoconf2.65

2010-04-25 Thread Matthias Klose
Matthias Klose d...@debian.org added the comment: r80475: s/AC_AIX/AC_USE_SYSTEM_EXTENSIONS/ -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8510 ___

[issue8526] msilib doesn't support multiple CAB instances in same installer

2010-04-25 Thread Bill Janssen
Bill Janssen bill.jans...@gmail.com added the comment: I'm certainly using the API provided by msilib, but perhaps I'm using it badly. Which API did you have in mind? I'm using msilib directly, not through bdist_msi. This seems like an artificial limitation to put on the Python library; the

[issue8523] shutil.rmtree and os.listdir cannot recover on error conditions

2010-04-25 Thread Brett Cannon
Changes by Brett Cannon br...@python.org: -- assignee: - tarek nosy: +tarek ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8523 ___ ___

[issue6085] Logging in BaseHTTPServer.BaseHTTPRequestHandler causes lag

2010-04-25 Thread Santoso Wijaya
Santoso Wijaya santa@me.com added the comment: Doesn't that only cache the first remote client it encounters, though? Maybe a dictionary of caches? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6085

[issue8526] msilib doesn't support multiple CAB instances in same installer

2010-04-25 Thread Martin v . Löwis
Martin v. Löwis mar...@v.loewis.de added the comment: I still don't see the need to create multiple CABs. Just use the Directory class to add files, and that will automatically record them in the singleton CAB. -- ___ Python tracker

[issue6085] Logging in BaseHTTPServer.BaseHTTPRequestHandler causes lag

2010-04-25 Thread Charles-Francois Natali
Changes by Charles-Francois Natali neolo...@free.fr: Removed file: http://bugs.python.org/file17079/base_http_server_fqdn_lag.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6085 ___

[issue6483] Modules are not deallocated correctly if m_size = -1

2010-04-25 Thread Antoine Pitrou
Antoine Pitrou pit...@free.fr added the comment: Well, in 2.x you didn't even have the choice. The dict of an extension module was always copied, becoming essentially immortal. In 3.x you can use an m_size=0 so as to disable this behaviour. -- nosy: +pitrou versions: +Python 3.2

[issue5099] subprocess.POpen.__del__() AttributeError (os module == None!)

2010-04-25 Thread Brett Cannon
Brett Cannon br...@python.org added the comment: New patch updated to at least r80476. -- Added file: http://bugs.python.org/file17080/subprocess_shutdown.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5099

[issue5099] subprocess.POpen.__del__() AttributeError (os module == None!)

2010-04-25 Thread Brett Cannon
Changes by Brett Cannon br...@python.org: Removed file: http://bugs.python.org/file16976/subprocess__del__.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5099 ___

[issue8510] update to autoconf2.65

2010-04-25 Thread Matthias Klose
Matthias Klose d...@debian.org added the comment: r80478 converts all obsolete AC_TRY_* macros to AC_*_IFELSE, the outcome is ... nothing (but whitespace changes): $ svn diff --diff-cmd diff -x -uEwB configure Index: configure ===

[issue6085] Logging in BaseHTTPServer.BaseHTTPRequestHandler causes lag

2010-04-25 Thread Charles-Francois Natali
Charles-Francois Natali neolo...@free.fr added the comment: Doesn't that only cache the first remote client it encounters, though? Maybe a dictionary of caches? A BaseHTTPRequestHandler is instantiated every time a client connects, so there should be only one client per handler, no (the

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Benjamin Peterson
Benjamin Peterson benja...@python.org added the comment: Why add a bounds check if it can't be caused to fail. How about just a comment? -- nosy: +benjamin.peterson ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8530

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Alex
Alex alex.gay...@gmail.com added the comment: Well, the fact that it hasn't been shown to fail doesn't mean it can't fail. It relies on reading undefined memory, which is usually bad ;). However, since we're at i=0, regardless of what we add to the value it's going to end up terminating the

[issue8510] update to autoconf2.65

2010-04-25 Thread Matthias Klose
Matthias Klose d...@debian.org added the comment: r80481: configure.in: Avoid autoconf warning: Assume C89 semantics that RETSIGTYPE is always void (issue #8510). Keep the definition, although the python code itself doesn't use it anymore. -- ___

[issue8510] update to autoconf2.65

2010-04-25 Thread Matthias Klose
Matthias Klose d...@debian.org added the comment: r80483: Makefile.pre.in (autoconf): Call autoconf/autoheader with -Wall to help the configure script to stay warning free. -- ___ Python tracker rep...@bugs.python.org

[issue8530] Stringlib fastsearch can read beyond the front of an array

2010-04-25 Thread Antoine Pitrou
Antoine Pitrou pit...@free.fr added the comment: It could read into an invalid page and segfault. It depends on specifics of the memory allocator. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8530

[issue8529] subclassing builtin class (str, unicode, list...) needs to override __getslice__

2010-04-25 Thread Benjamin Peterson
Benjamin Peterson benja...@python.org added the comment: This is because unicode implements __getslice__. -- nosy: +benjamin.peterson resolution: - invalid status: open - closed ___ Python tracker rep...@bugs.python.org

[issue8529] subclassing builtin class (str, unicode, list...) needs to override __getslice__

2010-04-25 Thread Florent Xicluna
Florent Xicluna florent.xicl...@gmail.com added the comment: OK, but it yields Python 3 DeprecationWarning in the subclass. And there's no workaround to get rid of the deprecation. If it is the correct behaviour, maybe some words could be added about subclassing builtin types:

[issue8529] subclassing builtin class (str, unicode, list...) needs to override __getslice__

2010-04-25 Thread Florent Xicluna
Florent Xicluna florent.xicl...@gmail.com added the comment: OK, I said nothing, it is already in the doc. :-) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8529 ___

[issue2302] Uses of SocketServer.BaseServer.shutdown have a race

2010-04-25 Thread Antoine Pitrou
Antoine Pitrou pit...@free.fr added the comment: Fixed with a test in r80484 (trunk), r80486 (2.6), r80487 (py3k), r80491 (3.1). -- resolution: - fixed stage: - committed/rejected status: open - closed ___ Python tracker rep...@bugs.python.org

[issue7319] Silence DeprecationWarning by default

2010-04-25 Thread Brett Cannon
Brett Cannon br...@python.org added the comment: -Q now works like -3 by causing the DeprecationWarning silencing to be skipped. Committed in r80492. -- resolution: - fixed status: open - closed ___ Python tracker rep...@bugs.python.org

[issue8391] os.execvpe() doesn't support surrogates in env

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: I blocked the fix in Python 3.1 because it's non trivial and I prefer to avoid complex changes in Python 3.1. But then I realized that Python 3.1 has two bugs about environment variables. It uses

[issue7288] Detect improper leading whitespace in C files for Vim

2010-04-25 Thread Brett Cannon
Changes by Brett Cannon br...@python.org: -- resolution: - wont fix status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7288 ___

[issue8512] os.execv*e(): fix formatting of the environment variables (Python 3.1)

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: I choosed to backport #8391 fix to Python 3.1 (which is better) instead of writing a custom (shorter but incomplete) patch for Python 3.1: see msg104175. (os_execve_env.patch doesn't work if LANG environment variable is not set)

[issue7319] Silence DeprecationWarning by default

2010-04-25 Thread Benjamin Peterson
Benjamin Peterson benja...@python.org added the comment: This still hasn't been ported to py3. -- resolution: fixed - status: closed - open ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7319

[issue7319] Silence DeprecationWarning by default

2010-04-25 Thread Brett Cannon
Brett Cannon br...@python.org added the comment: Making this a 3.2 issue now. -- versions: +Python 3.2 -Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7319 ___

[issue8531] libffi: selected processor does not support stfeqd/ldfd (ARMv7Thumb)

2010-04-25 Thread STINNER Victor
New submission from STINNER Victor victor.stin...@haypocalc.com: Errors on ARMv7Thumb Ubuntu 3.1 buildbot. http://www.python.org/dev/buildbot/builders/ARMv7Thumb Ubuntu 3.1/builds/37/steps/compile/logs/stdio creating build/temp.linux-armv7l-3.1-pydebug/libffi checking build system type...

[issue7319] Silence DeprecationWarning by default

2010-04-25 Thread Benjamin Peterson
Benjamin Peterson benja...@python.org added the comment: Brett, by the way, you had spurious changes in subprocess in your last commit. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7319

[issue8531] libffi: selected processor does not support stfeqd/ldfd (ARMv7Thumb)

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: Python 3.x doesn't have this issue because it uses libffi 3.0.9 and this version was fixed for ARMv7. Python 3.1 uses libffi 3.0.5. The buildbot should install libffi 3.0.9 and set system libffi path to Python configure script.

[issue8531] test_ascii_formatd fails if ctypes module is missing

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: This issue is specific to Python 3.1: test_ascii_formatd starts with PyOS_ascii_formatd is deprecated and not called from anywhere in Python itself. So this module is the only place it gets tested. Test that it works, and test

[issue7319] Silence DeprecationWarning by default

2010-04-25 Thread Brett Cannon
Brett Cannon br...@python.org added the comment: I'm tired of svn. I swear I made sure I didn't list that file in what was changed. Anyway, it's been reverted in r80496. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7319

[issue8531] test_ascii_formatd fails if ctypes module is missing

2010-04-25 Thread Matthias Klose
Matthias Klose d...@debian.org added the comment: libffi 3.0.9 is installed. the buildbot master needs to pass --with-system-libffi to configure. -- nosy: +doko ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8531

[issue8514] Create fsencode() and fsdecode() functions in os.path

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: Update path: rename fs_encode/fs_decode to fsencode/fsdecode. -- title: Create fs_encode() and fs_decode() functions in os.path - Create fsencode() and fsdecode() functions in os.path Added file:

[issue8514] Create fsencode() and fsdecode() functions in os.path

2010-04-25 Thread STINNER Victor
Changes by STINNER Victor victor.stin...@haypocalc.com: Removed file: http://bugs.python.org/file17061/os_path_fs_encode_decode.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8514 ___

[issue8514] Create fsencode() and fsdecode() functions in os.path

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: Oops, Update path: I mean Update patch ;-) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8514 ___

[issue8531] test_ascii_formatd fails if ctypes module is missing

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: libffi 3.0.9 is installed. the buildbot master needs to pass --with-system-libffi to configure. I fixed this issue by fixing my initial problem: test_ascii_formatd failure. Would you like to contact buildbot master owner to

[issue6462] bsddb3 intermittent test failures

2010-04-25 Thread STINNER Victor
STINNER Victor victor.stin...@haypocalc.com added the comment: Is the following error related to this issue? http://www.python.org/dev/buildbot/builders/x86 Windows7 2.6/builds/256/steps/test/logs/stdio test test_bsddb3 failed -- Traceback (most recent call last): File

[issue4171] SSL handshake fails after TCP connection in getpeername()

2010-04-25 Thread Antoine Pitrou
Antoine Pitrou pit...@free.fr added the comment: What happens if you remove the call to settimeout()? Also, it would be nice if you could try with the latest py3k checkout. There's a couple of fixes for do_handshake there (including timeout issues). -- nosy: +pitrou priority: - normal

[issue7672] _ssl module overwrites existing thread safety callbacks

2010-04-25 Thread Antoine Pitrou
Antoine Pitrou pit...@free.fr added the comment: I don't think asking Python extensions to be safe in the face of brutal DLL unloading is wise. I don't think any of our C extensions tries to respect such an use case. We could still try to support the use case of some application registering

[issue8523] shutil.rmtree and os.listdir cannot recover on error conditions

2010-04-25 Thread R. David Murray
R. David Murray rdmur...@bitdance.com added the comment: If solution 1 is acceptable in the general case, then I think a better fix would look like this: try: names = os.listdir(path) except os.error, err: onerror(os.listdir, path, sys.exc_info()) return That is, this is another

[issue8532] Refinements to Python 3 New GIL

2010-04-25 Thread David Beazley
New submission from David Beazley d...@dabeaz.com: The attached patch makes two simple refinements to the new GIL implemented in Python 3.2. Each is briefly described below. 1. Changed mechanism for thread time expiration In the current implementation, threads perform a timed-wait on a

[issue8532] Refinements to Python 3 New GIL

2010-04-25 Thread David Beazley
David Beazley d...@dabeaz.com added the comment: Can't decide whether this should be attached to Issue 7946 or not. I will also post it there. (Feel free to close this issue if you want to keep 7946 alive). -- ___ Python tracker

[issue7946] Convoy effect with I/O bound threads and New GIL

2010-04-25 Thread David Beazley
David Beazley d...@dabeaz.com added the comment: The attached patch makes two simple refinements to the new GIL implemented in Python 3.2. Each is briefly described below. 1. Changed mechanism for thread time expiration In the current implementation, threads perform a timed-wait on a

[issue8532] Refinements to Python 3 New GIL

2010-04-25 Thread Alex
Changes by Alex alex.gay...@gmail.com: -- nosy: +alex ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8532 ___ ___ Python-bugs-list mailing list

[issue7946] Convoy effect with I/O bound threads and New GIL

2010-04-25 Thread David Beazley
David Beazley d...@dabeaz.com added the comment: One comment on that patch I just submitted. Basically, it's an attempt to make an extremely simple tweak to the GIL that fixes most of the problems discussed here in an extremely simple manner. I don't have any special religious attachment to

[issue8532] Refinements to Python 3 New GIL

2010-04-25 Thread Brian Curtin
Changes by Brian Curtin cur...@acm.org: -- nosy: +nirai stage: - patch review ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8532 ___ ___

[issue4171] SSL handshake fails after TCP connection in getpeername()

2010-04-25 Thread Dmitry Dvoinikov
Dmitry Dvoinikov dmi...@targeted.org added the comment: The problem does not reproduce in 3.1.1 nor in 3.1.2 (either x86 or x64). Antoine Pitrou пишет: Antoine Pitrou pit...@free.fr added the comment: What happens if you remove the call to settimeout()? Also, it would be nice if you could

[issue7946] Convoy effect with I/O bound threads and New GIL

2010-04-25 Thread David Beazley
David Beazley d...@dabeaz.com added the comment: Here is the result of running the writes.py test with the patch I submitted. This is on OS-X. bash-3.2$ ./python.exe writes.py t1 2.83990693092 0 t2 3.27937912941 0 t1 5.54346394539 1 t2 6.68237304688 1 t1 8.9648039341 2 t2 9.60041999817 2 t1

[issue7946] Convoy effect with I/O bound threads and New GIL

2010-04-25 Thread Gregory P. Smith
Gregory P. Smith g...@krypto.org added the comment: Nice dabeaz. One potential concern with dabeaz_gil.patch 2010-04-25 21:13 is that it appears to always leave the gil_monitor thread running. This is bad on mobile/embedded platforms where waking up at regular intervals prevents advanced

[issue8532] Refinements to Python 3 New GIL

2010-04-25 Thread Gregory P. Smith
Gregory P. Smith g...@krypto.org added the comment: since the other discussion is ongoing on issue7946 i posted my comment there. -- nosy: +gregory.p.smith ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8532

[issue8532] Refinements to Python 3 New GIL

2010-04-25 Thread Georg Brandl
Changes by Georg Brandl ge...@python.org: -- assignee: - pitrou nosy: +pitrou ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8532 ___ ___

[issue8514] Create fsencode() and fsdecode() functions in os.path

2010-04-25 Thread Gregory P. Smith
Gregory P. Smith g...@krypto.org added the comment: i'm +0.7 on fsencode/fsdecode going into os.path. My bikeshed 0.7? They're also useful for dealing with environment variables which are not strictly filesystem (fs) related but also suffer from the same issue requiring surrogate escape.