XMMP/Jabber clients DoS vulnerability report
Andrea Barisani
lcars at ocert.org
Sat Jan 23 08:07:52 EST 2010
Hi everyone,
oCERT recently received a report about a DoS condition in Pidgin and Psi,
other XMMP clients might be affected (libpurple and libiris ones most
likely).
The sample message attached to this email causes, according to the reporter,
100% CPU load, the message can be sent by non-buddies as just the target jid
is sufficient.
Can you confirm the issue?
oCERT is mainly concerned about the issue not being exploitable as we
generally don't issue advisory about "simple DoS conditions.
However we would be happy to coordinate with vendors/distributions if you
want any help in pushing the eventual fixes around in a coordinated fashion.
If this is the case, and the issue is confirmed, I'd like to discuss an
embargo date that would allow us to contact all affected vendors with a
patch and request not to disclose this issue in public.
Cheers!
--
Andrea Barisani | Founder & Project Coordinator
oCERT | Open Source Computer Emergency Response Team
<lcars at ocert.org> http://www.ocert.org
0x864C9B9E 0A76 074A 02CD E989 CE7F AC3F DA47 578E 864C 9B9E
"Pluralitas non est ponenda sine necessitate"
-------------- next part --------------
Sample:
--- simple
<message to="TARGET" type="chat">
<body>:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
</body>
<subject>xyzzy</subject>
<thread>1337</thread>
</message>
--- snip
More information about the security
mailing list