commit e687cb7eb87c841f0d1a374174d51d30371f2d97
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 3 14:08:30 2009 +0100

    Version 3.0.52

commit 6de1fc194bd1ee04e1468d251df3a582c25658ad
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 3 13:36:29 2009 +0100

    Fix uninit-var bug in tcpip_straddr.
    
    A local variable ai was uninitialized in the case of getaddrinfo
    failing. It is not set to 0 (NULL) as it should. This bug was
    introduced in YAZ 3.0.51 when a leak for getaddrinfo resources
    was fixed.

commit a6926807be8fe26dde141c94df505ad9444f294c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 2 12:44:22 2009 +0100

    Summarize news for 3.0.51

commit 1a9376036d7605bd8ca3d59a0dba7857a6ad6ec0
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 2 12:43:25 2009 +0100

    Bump version-info dep due to new public functions

commit 90355354bba83a61942e8cb76bbd85bb363a4d3a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 2 12:42:04 2009 +0100

    Debian 3.0.51-2indexdata

commit 1f9d38143e20281e15b57eeb38ca6c61d9843363
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 2 12:40:29 2009 +0100

    YAZ on Windows uses newer Libxml2/Libxslt, ICU
    
    YAZ on Windows uses Libxml2 2.7.6, Libxslt 1.1.24, ICU 4.2.

commit 50df6fb38dd736f0b8aa961083524eacbb9c21c7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 1 10:40:17 2009 +0100

    Remove TCP optim. for Solaris. Bug #3116.

commit c7959fac4deeda671f525c6e2ef47c3fc5e88759
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Nov 26 13:59:53 2009 +0100

    Bump version to 3.0.51

commit 950a4ac3bd94072bb5cf880f0f411bb2c8dc80bd
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Nov 25 16:50:31 2009 +0100

    Fix description of update command

commit 7996f8a4fcb85b0b7d5e8fad636e240904707a90
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 24 14:14:57 2009 +0100

    Win32 makefile: dist depends nsi

commit 5ba0bc49a8588ea1df229f4f1d60a8629acf71cf
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 23 15:31:51 2009 +0100

    tcpip comstack: fix leak for getaddrinfo

commit 86c4a75e2ed9282be2202d9202be7f6a07dd3410
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 23 14:53:54 2009 +0100

    encode_uri_char: encode blank as %20

commit 54dc5b4629da5b10c2f3d4e3bdb7cb70c46669a5
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 23 14:34:53 2009 +0100

    URI component encode/decode SRU database
    
    Encoding of SRU database is performed by yaz_encode_sru_dbpath_odr or
    yaz_encode_sru_dbpath_buf. Now used by yaz-client and the ZOOM API.
    Decoding of SRU "path" database is performed by private function
    yaz_decode_sru_dbpath_odr . This in turn is used by yaz_srw_decode
    and yaz_sru_decode in server applications, GFS, yazproxy, metaproxy.

commit b9db9bc681a9c78da31d0cb89c50f103197cfb65
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 23 10:35:58 2009 +0100

    yaz-client: honor base command for SRU
    
    Change when database setting is applied for SRU and ensure it is kept
    when a connection is reset. Change also the way errors are displayed
    for SRU (decoding of pacakges).

commit c6b8edd2312a4606cc014738266059a20e3b6e61
Merge: fa4ce73 42bf8d7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 23 10:25:58 2009 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 42bf8d7d53e41f6165e0eb889a7377d3482aeabd
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sat Nov 21 09:27:46 2009 +0100

    Refactor URI utils to uri.c

commit fa4ce7352686da3893b47fde6e295cd4f558f014
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Nov 20 13:49:25 2009 +0100

    HTTP response error, doctype + YAZ URL

commit e719ab5b27bcf89d9741bbc78f6b4c372dc18e9b
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Fri Nov 6 11:40:12 2009 +0100

    removed tmp file from git

commit 69c2dee55aa204cab368989b8385eda8b83bf2e2
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Fri Nov 6 11:38:38 2009 +0100

    Added tests for pql2cql using relation and truncation.

commit 43769ae204a1033190b8c044f0faa5e2341140c2
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Thu Nov 5 15:13:54 2009 +0100

    Fixed: Removed the server option which was remedy from the copied function. Returning 0 on parse error. Returning equal on none.
    
    Added: Parsing the Truncation attribute: Left, Right and Both. No implementation of the 100 and above.

commit f550c0a0456eae7e4450b3f2ed9bf6aa25eece30
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Thu Nov 5 09:17:56 2009 +0100

    Attempt to get eclipse working

commit 04a74288b3dc52703d09528428842f186ec78e43
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Thu Nov 5 09:15:05 2009 +0100

    Fixed comment

commit 7cf71345284c3f31dee1c1102a9fcc32c41480f2
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Wed Nov 4 16:15:23 2009 +0100

    Comment fixes only

commit e5ae7bef1ef7d79a07a89f329e6b603d40a44c7f
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Wed Nov 4 15:42:50 2009 +0100

    For phonetic, stem and relevance return no operator
    Was returning questionmarks

commit 9f16968f01f8ffc7421be4bda437c69ee7e11eba
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Wed Nov 4 15:33:58 2009 +0100

    Addded a lookup of relation in the attributes. Not supporting the phonetic, stem and relevance
    as these are not listed on the CQL web page.

commit b851307962ccc99ac9cc0c8a66b652d0afbb1ae9
Merge: 8007b02 66809e6
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Wed Nov 4 15:28:40 2009 +0100

    Merge branch 'master' of git://git.indexdata.com/yaz

commit 8007b02f1f71539935da4895cea16fac3422e64c
Author: Dennis Schafroth <dennis@indexdata.com>
Date:   Wed Nov 4 13:55:24 2009 +0100

    Added break in reverse/'r' option check, or it would scan for iteration number.

commit 66809e641d809eaa821a74db209c47deb3590f11
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 2 22:38:30 2009 +0100

    Use website for upload doc

commit 9d63e51087691087c5adb6b2c6265b07e8ca0224
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 2 14:24:31 2009 +0100

    Version 3.0.50

commit 6e3d70edfadd110351b71466c51632e288e31773
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Oct 27 14:27:58 2009 +0100

    Better support for extra data for SRU codecs and GFS
    
    The Z_SRW_PDU structure has two new members extraResponseData_{buf,len}
    for extra data response buffer and length. For the GFS, both request
    and response data (XML) is carried in extra_args and extra_response_data
    for the search handler. Patch by Ko van der Sloot.

commit 5d493e5a4ce6300660debe3e2ad82c21592039ca
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Oct 20 11:14:54 2009 +0200

    ZOOM reject queries that cannot be char converted
    
    For queries that cannot be converted to the specified rpnCharset,
    ZOOM now returns a diagnostic on the client-side ('invalid query' /
    10010).  This fixes bug #2113.

commit 3a3d99725a71801f9fc5308e21a4d7f7a325cbdd
Merge: 93645ab a158bd5
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 15 13:07:36 2009 +0200

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 93645abd509e3ee6b6ecb5fee2abee0e12ac7d5d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 15 13:07:17 2009 +0200

    Fix do_nothing_useful example

commit cad8970eb81efaf793ba96e576b09c47d141d0ea
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 15 13:06:55 2009 +0200

    Fix odr_bool definition

commit a158bd53b7a6c959772645e7e62c60a87dc8d733
Merge: dfcd482 b381ade
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 8 23:01:38 2009 +0200

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit dfcd482cb9c615dd3f0410d20f5d9a398e701ade
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 8 22:57:43 2009 +0200

    Fix SEGV for quit command in cmdfile
    
    If cmdfile is passed to yaz-client (option -f) and that cmdfile
    included a 'quit' command that would result in a memory violation.

commit b381adee85c9f65bca8cb0c69eaaea0e3947d640
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 8 13:53:23 2009 +0200

    MARC21 to Endnote: omit text garbage.
    
    Match on text nodes to omit text garbage.. Makes this stylesheet
    work on OPACXML (with MARC21 embedded) as well.

commit 5107068a489f5ea7923841d855a2145b0db94de1
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 1 16:29:16 2009 +0200

    More field mappings.
    
    Only consider surname authors. Map secondary title, call number, pages,
    volume, abstract.

commit a796493ae0e9e16702b2a375aeb2bd2c02ab736b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 1 15:34:05 2009 +0200

    Use printfield everywhere

commit 8a6fcb337caf230d1a9a674155630a659ac2719c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 1 14:45:49 2009 +0200

    Start work on MARC21 to Endnote import

commit 8a980f7051e22ca1e4fac0395ed7f8647cd9eda3
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 1 10:20:51 2009 +0200

    Version 3.0.49. Update news.

commit b2b333d62406d7497da3b8af5fb3a4e8f0a7b505
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Sep 29 15:08:49 2009 +0200

    Optimize trie look for char conv.
    
    The lookup function now saves one function call for every character -
    to improve performance for conversion from/to MARC8.

commit 1a67af25185515c813771b8f9e4d9efb020e9056
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Sep 29 15:07:00 2009 +0200

    Optimize wrbuf_iconv_write.
    
    Use bigger temporary conversion buffer for wrbut_iconv_write.. This
    increases performance a bit.

commit fe70606b0cc57dd49506de5d57aa4eab585fe6bd
Merge: 1ccca65 a37f819
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Sep 29 13:01:29 2009 +0200

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 1ccca650a133358c268ab3d0f9da58c621a663dc
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Sep 29 13:00:17 2009 +0200

    Allow Slow database wait to be set.
    
    The dummy Database Slow may be followed by an integer.. This integer
    specifies the time for an operation to execute - in seconds.

commit a37f819598462f7ecc85b28bd56190e87e761bce
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Sep 29 13:00:17 2009 +0200

    Allow slow database wait to be set.
    
    The dummy Database Slow may be followed by an integer.. This integer
    specifies the time for an operation to execute - in seconds.

commit a5ebdfbdd3845ef01e1c2e8d19daae12fc2f036e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Sep 29 12:58:40 2009 +0200

    ZOOM_record_get returns 0 for bad MARC.
    
    ZOOM_record_get returns 0 pointer if a MARC record can not be decoded -
    unless type desired is "raw". This will prevent type "xml" from
    returning ISO2709 .. Which obviously can not be XML parsed.

commit 5a945d96cd9da92cc3e37025d30dbee9d6f1d96e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Sep 27 21:21:06 2009 +0200

    Dummy database Slow waits 3 seconds.

commit 80be3d0580fa837e436b911e76c707e74ff9d14a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 24 13:40:31 2009 +0200

    Leak fixes for xmlquery stuff

commit 4cdc954013878a64caac253e1275a5ca80782206
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 24 13:14:24 2009 +0200

    Make som internal functions static.
    
    Make a number of functions defined in xmlquery.c static. These have
    never been declared in a public header file (yaz/xmlquery.h) and was
    made public by mistake.

commit dd6da3de6292dd8d087eac67c0c9a7eced8b88de
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Sep 23 17:56:53 2009 +0200

    Fix leak for odr_print of ZOOM connection.
    
    Calls to ZOOM_connection_connect would odr_print memory each time
    if option apdulog=1.

commit f73e1241af0466a21445531a7ee442464a62e7e1
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Sep 23 17:51:41 2009 +0200

    Updated m4 + doc/common.

commit d6b903caaf638336e114be4d29e3e585330eb68a
Merge: ebececd 2316d38
Author: Mike Taylor <mike@miketaylor.org.uk>
Date:   Fri Sep 18 17:47:45 2009 +0100

    Resolve

commit 2316d384aec77ec59fa137edb6782053f325b6b4
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Sep 18 12:33:54 2009 +0200

    GFS logs HTTP requests

commit 643f3c67b24a03ea12d0d3420d78a734aedf5b1d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Sep 18 11:06:20 2009 +0200

    Log session timeout. Reenable ASSOC_UP.
    
    The association_state ASSOC_UP was last used in YAZ 2.0.30. It
    was probably removed by mistake. We enable it - but for Z39.50
    sessions only, so that when a timeout occurs we can send a Z39.50
    close PDU again. The session timeout is now also logged at "session"
    log level.

commit 9d01070e0ac3b559b13c76e1cd0f1b0ef17f03c0
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 17 13:27:05 2009 +0200

    Skip zero-length subfields for ISO2709.
    
    Skip zero-length subfields when decoding ISO2709. This rare case happens
    if a record has two FS characters in a sequence. Without this patch
    there would be a reference beyond char array in using_code_len fragments
    in marcdisp.c.

commit a29cb625a72a11d5a65ee3cb423dc35193b5ca79
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Sep 16 13:58:26 2009 +0200

    Fix install doc rule for Automake 1.11

commit ed14ef71dd40c863ee3b581bf5835406bd0ed3ea
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Sep 15 10:18:06 2009 +0200

    Link add libyaz.la to yaz-ztest (fix #3036).

commit fa45ad3fa8a1dae7d030efd16ce6371777566813
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 10 09:13:18 2009 +0200

    Fix yaz-marcdump -n (bug #3028).

commit 4bed35ab0329789b94620258dc57db5db37bfe02
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 10 09:13:06 2009 +0200

    MARC checkout output: No ()s in comments

commit df76df087008d3d53a68958b31a018a3e292791a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Sep 2 17:36:14 2009 +0200

    Add debian make rule

commit 273716ada4a96213fb99182df2a3ee22509437b0
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 28 14:46:21 2009 +0200

    Fix quoting for upload.sh

commit 1c7397ef1885c5c758ab0b6d22ed2ee45e2e24f8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 28 12:44:15 2009 +0200

    Upload doc+dox script

commit 7abc9bb8bc2dbc218e400aa7fbf635ea8257a24b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 28 11:01:41 2009 +0200

    Version 3.0.48

commit e90835e4a81a15a3f62e904f7e7771493bac9a2e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 28 10:56:42 2009 +0200

    Omit tkl rules for documentation

commit 131f137354647cefe2e3494bdb946d77b8c2e959
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 28 10:53:35 2009 +0200

    zoomsh's shows 1 record by default

commit 6d60541cbd1b81b23872214ad2d8ea11a54544ac
Merge: 1d20ff8 30b68ac
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 28 10:39:43 2009 +0200

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 1d20ff81983715581b6a2cbed74878dd40895985
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 28 10:35:44 2009 +0200

    Mention new type for show command

commit 30b68ac32ab0516934cee67a076b53b0cb85c6d9
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Aug 27 22:05:29 2009 +0200

    Extend zoomsh's show command WRT type
    
    zoomsh's show command takes a new 3rd optional parameter which is the
    type as passed to ZOOM_record_get. Default is "render".

commit ebececdef03b9ab5d4398f938fc4cc2fd5ebbaa1
Merge: c1f940f 6985b22
Author: Mike Taylor <mike@miketaylor.org.uk>
Date:   Thu Aug 20 09:16:05 2009 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 6985b22c1da4a0c4d4182a6b0570df490a913403
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Aug 19 21:00:27 2009 +0200

    New tests cases for CQL to RPN conv

commit 35a1937624d302f2a53618958036a41a88b70388
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Aug 19 20:56:58 2009 +0200

    RPN to CQL: no use attr is treated as serverChoice

commit 173f78f50536784bdc6a59d4586ba409b2b69182
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 14 15:35:57 2009 +0200

    RPN to CQL conv may use USE string attributes (bug #2978).
    
    In conversion from RPN to CQL (function cql_transform_rpn2cql_).. USE
    string attributes are used as a fallback if there is no match in the
    CQL transform (properties) lookup. Also change behavior so that
    unsupported use attribute if there is no match .. Ie if there is a
    numeric use attribute in a query and that is not matched anywhere.

commit b9d525dc1bec0fb8da16a810f7115b656d4b328c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Aug 14 15:31:21 2009 +0200

    Allow empty CQL transform in cql2pqf (and reverse)
    
    If value dash (-) is tiven as properties name, the cql2pqf program
    will use no properties file.. Ie just cql_transform_create rather than
    cql_transform_open_fname. This allows us to test RPN to CQL conversion
    with no properties file (-r).

commit d90c4c6db3c30cabdabed5abe139f0fe13eb7c24
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Jul 31 15:07:20 2009 +0200

    Add link to MARCXML and MarcXhange Web content

commit de5a52bf8d9f21d9296ede827daf07e60a3882e7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Jul 31 15:07:12 2009 +0200

    Mention ISO25577

commit 1275cf769e414508b48ea85369458bb5d09a1757
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Jul 31 14:59:30 2009 +0200

    MarcXchange NS is now info:lc/xmlns/marcxchange-v1

commit 8bb4b0631ee0f06de1cf065541bbf9537c04d726
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Jul 29 09:38:26 2009 +0200

    Extend z_External to handle all extended services
    
    Extend z_External to handle all extended services persistentQuery,
    periodicQuerySchedule, exportSpecification, exportInvocation. Patch
    by Rustam T. Usmanov.

commit c1f940fdcffa885b1336c932c624aa6f062bad38
Author: Mike Taylor <mike@miketaylor.org.uk>
Date:   Tue Jul 28 10:28:09 2009 +0100

    Rolling

commit a85b5049b2c0e12a281695fe32bff10ef4901acb
Author: Mike Taylor <mike@miketaylor.org.uk>
Date:   Tue Jul 28 10:27:39 2009 +0100

    Better message when receiving an unrecognised userInformationField.

commit 124d3ef158982998fec69c091a35702223ab4616
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jul 13 10:58:20 2009 +0200

    Remove obsolete Doxygen setting

commit 0046d7d79f79cbf9d03de7272d5069159aa92c24
Merge: 70db3b5 eda96f8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jul 9 16:31:51 2009 +0200

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 70db3b5fb3e8310c587dd8ba95866f1cadf69608
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jul 9 16:31:33 2009 +0200

    Update to new ID URLs

commit eda96f8cca72ec56811eff40f23b881b339afa56
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Jul 8 22:28:42 2009 +0200

    Describe option -V of yaz-config

commit 91a6395012ede2909078cdedea29a8d9efe60229
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Jul 8 14:06:08 2009 +0200

    Version 3.0.47

commit e00da6d48d63d7ece2d2515ba9a9f422cf24c366
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Jul 3 16:20:26 2009 +0200

    Allow yaz_xml2query to throw a certain diagnostic
    
    Function yaz_xml2query allows a diagnostic element in the PQF XML
    representation .. diagnostic@code and diagnostic@addinfo is diagnostic
    code and additional info respectively.

commit e709ab8b395212d2d3d12ad215a3aa2272654c62
Merge: 8356ea5 82b56be
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jun 18 15:47:48 2009 +0200

    Merge branch 'master' into longint

commit 8356ea58313ee1f350226172cf99bfb0b7c5583c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jun 18 14:09:21 2009 +0200

    Introduce type for BER BOOLEAN/INTEGER .
    
    The BER BOOLEAN is now the integral type Odr_bool which still happens
    to be an 'int'. The BER INTEGER which used to be a plain 'int' is now
    typedef'd to Odr_int. This is still an integral 'int', but it may be
    changed to 64-bit via a one-liner in nmem.h (NMEM_64=1). The documentation,
    ASN-1 compiler as well as programs has been updated to use the new types.

commit 82b56be0c22f75d8d40f295e09ca8b7c628fa530
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 16 12:53:17 2009 +0200

    CQL sortby parsing, no semantics yet

commit 2cc3fc3eb644f09db82f30906e8d9a09601f544e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 16 11:01:24 2009 +0200

    Add type casts for tests for C++ compile

commit 0d42bb835c37442eeffa77f24ad2fdf876f8f4da
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 16 10:59:41 2009 +0200

    Add type casts to make YAZ C++ compile

commit 6b76baf0fb5d0d437caedd8076f77f372d775758
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 16 10:43:48 2009 +0200

    64-bit BER integers. Fixes bug #114.
    
    Introduce a new type, odr_int_t, which is equivalent to 'long lont int'
    This type is pretty much available everywhere..  was introduced in C99.
    This change makes YAZ non-backwards compatible .. both source-wise
    and binary wise. However, it is expected to be fairly trivial to update
    applications.

commit ae1c6f1a0a5fb745b1a5fa315869161d7480c6f7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 9 22:12:55 2009 +0200

    Avoid #if inside macro expansion

commit 6deb7e33545e987a7d3e3a090eefcd0cfc71805b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 9 10:25:03 2009 +0200

    CCL: test case for bug #2895

commit 135acd59310ef3892e9b86b70e3ead32e53eeabb
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 9 09:12:23 2009 +0200

    Rename frontend.xml to server.xml

commit 50910e85f05204a853e7e6975b1e3ef0adf1dbe6
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 9 09:12:09 2009 +0200

    Ignore program tstxmalloc

commit bdf169109f6afec0588dcac3dbc35d961b073105
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jun 9 09:07:16 2009 +0200

    Fix unix socket example and reformat

commit 0d8c31b34cd1bcf78c44ad669242f3967c76b379
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jun 8 15:49:18 2009 +0200

    Version 3.0.46

commit 18968faa568a744d9d1ce1421202f03e8905ae1a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jun 8 15:48:31 2009 +0200

    Version 3.0.46

commit c526818a49e2d8e469137afd50ee85e683484496
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jun 8 15:45:26 2009 +0200

    Summarize news

commit 55bc5787ba3e68ae7e130866f95e70af6b98c6d8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jun 8 15:37:22 2009 +0200

    ZOOM_record_get only returns OPAC record if present

commit 43454d6c60e8f2d0d7d6208ec2436c55a6a67a0c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jun 8 14:45:13 2009 +0200

    Refactor wrbuf tmps for ZOOM_record_get

commit 88c261910ace93cd45d25bfbb21ad32f8225ece1
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jun 8 14:41:40 2009 +0200

    Remove unused local member wrbuf_opac

commit 486ea665463289f7ffb5eeabdf9c80dab3e07ee8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jun 8 14:35:10 2009 +0200

    Refactor ZOOM record render code and fix #2892.
    
    Refactor code for ZOOM_record_get. The "xml" render for OPAC records
    now renders the full OPAC. Previously only the MARCXML bibliographic part
    was rendered (the bibliographic record). Pazpar2 relies on this
    functionality and this should fix bug #2892.

commit b4f634a3359a330e6f74c51365c9c62d0c5039b2
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed May 20 11:08:16 2009 +0200

    post/postrun calls ldconfig

commit 7657c9ac7c3d4555dd0bd1043a7b0d475e74e342
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed May 20 10:09:52 2009 +0200

    Fix RPM build for RHEL 5.3
    
    RHEL 5.3 does not have package tcp_wrappers-devel . Only tcp_wrappers
    which includes both run-time and lib/headers. Fedora core 9 differs
    from RHEL 5.3 in that respect.

commit d3bfd05c8ad9e4f9b6f58a9510778079eab446fc
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed May 13 09:21:41 2009 +0200

    yaz-config -V shows version + SHA1 (Bug #2829)

commit cf6e35300ec51e0bad1424aba7e83225fd168f8b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu May 7 20:55:04 2009 +0200

    Prefer IPV6 addresses over IPV4 - should refix bug #2350.

commit 3ceb91da546fb4ef66bbea57b0ef219b3af21f65
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue May 5 13:29:32 2009 +0200

    Small fix for encoding of advancegreek

commit 72942b6650af98632103a0908882b71c4113e153
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri May 1 11:00:54 2009 +0200

    buildconf.sh uses only Libtool flags when present

commit 63ae67e43ae6770d77e5d8b925d71dd2e4e28ee1
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri May 1 09:48:52 2009 +0200

    Avoid double display of SRU/SRW records (bug #2798).

commit 29b3b3213c4c8ad38bab054b56f8b70f1b14d67a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Apr 30 10:02:39 2009 +0200

    Doxygen comments for xmalloc utils. Reformat

commit 3594baeb76423dcee4a138f54bc1d5b5b4477fe3
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Apr 30 09:04:34 2009 +0200

    Added xstrndup (similar to strndup)

commit 16ae6b899b1eb60c570650b7acc8e673531f5510
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Apr 29 11:44:06 2009 +0200

    Option auto_reconnect=on really reconnects.

commit 19a9c4f58563f2bb28d69647096491ae965fd377
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Apr 29 10:43:34 2009 +0200

    Fix bug #2770 - avoid length limit for auth parameters.

commit 4fc0e0c70a077abd8009e139315a54a0e0ddd293
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Apr 14 11:44:03 2009 +0200

    Avoid GCC warning about conversion from integer to ptr.
    
    Add intermediate cast to size_t from int to avoid GCC warning:
    cast to pointer from integer of different size .

commit ac63793036c6d830d002241a750691b26235b3e1
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Apr 6 23:30:44 2009 +0200

    Avoid null ptr ref for for yaz_poll errors.
    
    When yaz_poll returns error (-1) and errno is not EINTR the code
    previously assumed seshigh IOCHAN (client_link) and called cs_close..
    In the mother process, however, the IOCHAN data is not this type.
    Code now prints a warning and resumes processing and does not use
    iochan_getdata.

commit 62f4f43aa7b97890d7c4bf776e3749f25b2e1c5a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Mar 31 21:44:42 2009 +0200

    Avoid redundant dependency

commit 782dc736e899db69b72d388a747623a78fc90b17
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Mar 31 21:19:13 2009 +0200

    Version 3.0.45

commit 859fd203f5075cca7d000ac4558795c662c9ba07
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Mar 30 16:23:56 2009 +0200

    Update news

commit 19411dcc2419807b0b81e7ad05f63880eba58d22
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Mar 29 21:02:07 2009 +0200

    Reindent

commit bd3fc10785d649f854929dfab90d8a002d55572c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Mar 29 21:01:55 2009 +0200

    Reindent

commit 4e3f7be8266559e07dc01ae5d6aba31d30b8bd44
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Mar 29 20:53:05 2009 +0200

    Fix doc WRT ZOOM opts start, doc (bug #2198)

commit 9748d1f21b8a1c8c6f14ef9384c0e4fdb2d41585
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sat Mar 28 08:00:09 2009 +0100

    Fix trace prints for buffer ptrs

commit 5fedb171148c114f2488f5bff941942226b31eef
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sat Mar 28 07:51:24 2009 +0100

    Fix bug #2709: TCP connect returns Invalid argument.
    
    The getaddrinfo result (struct addrinfo) is now properly
    updated in the sp->ai member .. Hence socket and connect uses same
    address.  The poking for IPV6 address types, bug #2350, is now useless.

commit 625aa16bd5f85153e468ddbfb8d213937890dd30
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Mar 26 14:25:12 2009 +0100

    Add yaz_clone_z_RecordComposition.

commit 4af16c3b47e4d3f6192345d27248cffe87aa02ec
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Mar 26 11:29:36 2009 +0100

    Bump version to 3.0.45 due to new functions.

commit de9864f98c5fec785fb0e4cb05cf9db1e7a7e4af
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Mar 26 11:27:24 2009 +0100

    Rework copy/clone of ASN.1 type utilities.
    
    The copy/clone of a type, such as Z_RPNQuery, is implemented as a macro.
    The following funcions are defined at this stage:
    yaz_clone_z_{Query,RPNQuery,NamePlusRecord}.

commit 3f316a4c208765a38b34e19704450cf0f34adef7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Mar 11 22:22:35 2009 +0100

    Fix compilation for mingw.
    
    Two sources files failed to compile on GCC mingw (Minimalist GNU for
    Windows). For oid_db.c the problem was that GCC reported 'initializer
    element is not constant'. And the fix is to use initialize (use) at
    run-time. For timing.c the problem that HAVE_SYS_TIME_H and WIN32 was
    both defined - and the code was not prepared for that.

commit d16f37add45152d0d3b786a4676577a57e4f4139
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Mar 10 14:47:06 2009 +0100

    Include yaz/errno.h in source that uses YAZ' errno utils.

commit 13356a0cb532b646421e0169aef11d1bd25e89f8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Mar 10 12:02:07 2009 +0100

    Moved errno utility declarations to errno.h.

commit f0128dd11d08d79384a97a13e44476769b061f4f
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Mar 10 11:19:39 2009 +0100

    Error utils in separate file and _REENTRANT mode.
    
    The functions yaz_errno / yaz_set_errno / yaz_strerror is defined in
    errno.c rather than nmem.c. Also _REENTRANT is always set to ensure
    that access to errno is thread-aware.

commit 1428270503079d0ceb1ea113e3ec2aa175a0e52a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Mar 10 09:02:54 2009 +0100

    Updated m4.

commit 588dde23995415ad84f97e50194ef943fadce6a9
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Mar 10 09:00:20 2009 +0100

    Honor charset for raw records (ZOOM_record_get).
    
    For MARC and string records (octet aligned and SUTRS) the charset
    option now takes effect (if given).

commit 4efb9de61a4284830d3dde10a992a42067879c84
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Mar 6 15:34:48 2009 +0100

    Fixed args passing with blanks for Windows Service

commit 0e3cbe2d2a8508c66059eae870b15a65d0059a4a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Mar 2 05:23:07 2009 +0100

    Output to real file rather than .tmp

commit 1fb26db29805d4822763c205358f394725b0f02c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Mar 2 05:18:58 2009 +0100

    Output file generated at very end rather than at beginning.
    
    Output is produced to a temporary file (.tmp) and then renamed at
    very end if operation is succesful.

commit 2ffab517f033bf6c35de72616de5c05e0b43319f
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Mar 2 05:17:25 2009 +0100

    Doxygen comment fixes

commit 64d15b4ed1a24c3064f4fa3c50668ea99b58111b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Mar 1 23:27:34 2009 +0100

    Note about icu_I18N.h being unstable

commit 47db800079d3df8e8adfd93b466795d0803dabe8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Mar 1 23:26:46 2009 +0100

    Document a little.

commit dd44ae98149d0a96ca8c601a0c46cd17b1eb6c83
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Mar 1 23:06:51 2009 +0100

    Function icu_chain_create is now private.
    
    This function is internal to ICU. It is now declared in icu_I18N.h
    rather than icu.h.

commit 6cec9293846dc1aba8c0e2f5e46fc029a727f4ed
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Mar 1 23:04:09 2009 +0100

    Document yaz_errno utils

commit 840854a00aa5c59f4a492f9e002e0396ba52ba45
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Feb 23 23:58:53 2009 +0100

    Removed redundant statement

commit f6a9c895dedabe8cbaaca0377cf9dbbfdf05368e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Feb 23 17:10:57 2009 +0100

    Updated doc/common.

commit 30be9a32fd26a2d08aa4413942408500c93ad4a3
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Feb 22 13:10:53 2009 +0100

    Disable YAZ' own log rotate by default (no 1 GB limit).
    
    The variable l_max_size which specifies the log file limit is set to 0
    (DISABLED): This is due to the fact that YAZ is most often deployed using
    logrotate. Also YAZ can not perform log rotate because of unsufficient
    permissions (setuid).

commit d1c53252793e37efda0b7432b18a7c79b9810d86
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Feb 17 14:33:26 2009 +0100

    Update version in NEWS

commit 6c935519b45ef77520aad76aa0ec8d3fb6540057
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Feb 17 14:28:30 2009 +0100

    Version 3.0.44.

commit fee4224d6897ad849d74587d99a1a0f7e137128e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Feb 17 14:11:26 2009 +0100

    Fixed bug #2530: yaz listener broken on Vista.
    
    The two remaining arguments to accept is now NULL ptrs.. The
    arguments (for Unix) makes the accept call return an error
    about invalid supplied pointers.

commit 442f9815fa99344367af117cba29f2c0e209a0cf
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Feb 16 23:05:31 2009 +0100

    Dont assume error if fgets returns NULL

commit 7a85a44b7f83777704755a13923df36b62ff0257
Merge: e32b8a7 4320117
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Feb 6 08:36:49 2009 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit e32b8a753ae6ce8847c4b5307e726178e4ee3bc7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Feb 5 15:14:24 2009 +0100

    Fixed typo in transliterate rule

commit 4320117d5dfc1cca841025c4ceb086c92c206524
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 22:09:09 2009 +0100

    One more redundant line.

commit 6c8a66665c0c64572b5461a3050b4215240dab43
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 22:04:12 2009 +0100

    Removed unused file.

commit b4ddd82f2554fd155ab38b078428cc4b0a519ee4
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 22:04:02 2009 +0100

    All debian build ignores in debian/.gitignore

commit 9a93f996a29da6535a581a7278019e72ee07d188
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 14:33:51 2009 +0100

    Spell fix

commit 25294d937c02e665569c37d3dd90e459bc363a2d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 14:30:43 2009 +0100

    List danmarc as supported encoding

commit 2f13c9a407fe345dfe13ef8647ebba02ca519089
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 13:55:12 2009 +0100

    Describe character set semantics a little more

commit abc5fc91e4340a8afe42c80ad0baec86dbe76c3a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 13:54:42 2009 +0100

    Refer explicitly to yaz-iconv man page

commit 7fb420029552be59a80c8deadb638b4b8780d5d8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 13:39:58 2009 +0100

    Update NEWS

commit 890968dfc0149a8f59f4afb8055e18a0ff734595
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 13:39:44 2009 +0100

    Fixed reference to yaz-iconv man

commit 0e1c21de5892acadabc0e1b01606245091c4d275
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 13:39:06 2009 +0100

    fixed list of encodings (added listitem tags)

commit aca553f92283c93d9014be9d77b4b7481738e0df
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 10:56:45 2009 +0100

    Removed unused source file.

commit 49e8c1a3167e2ea965d1787b89e3ac731b590ad9
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 10:56:27 2009 +0100

    List encodings supported by YAZ. Bug #2513.

commit e5babaef0f0a438f4372ee4373c90d37fdc7ff1e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 10:56:08 2009 +0100

    yaz-marcdump refers to yaz_iconv

commit a05d96bd6dd1151bac4f0194f2bcc44e8771b558
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 09:02:53 2009 +0100

    Update NEWS.

commit ded3889a5c015e8adbb3addb0a5ebbd85fe20bc2
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Feb 4 09:00:44 2009 +0100

    Revert "Removed OID record syntax application-xml."
    
    Since applications might have used this symbol we keep it to avoid
    a so-name change.
    This reverts commit 9507c6ac14596ef68763e7ec8c08e92838ac44da.

commit a19321599ba751f65f655a69c73ac05c72be22b3
Merge: df8b0a8 ecc54f1
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Feb 3 16:56:53 2009 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit df8b0a83e237b1f7ff6722a2f10add5cafceeb9d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Feb 2 13:41:57 2009 +0100

    Update news. Version 3.0.42.

commit 860f937a09351b59294bd9b6ed97be8762e77ab0
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Feb 2 13:32:20 2009 +0100

    Bump year to 2009

commit f0dcc975f66dc2e17e356497419b09cc94baddba
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Feb 2 13:29:10 2009 +0100

    Bump year

commit ecc54f133ed87dee5854f87c771eaa75c2ab8fc7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Jan 30 19:47:29 2009 +0100

    Fixed missing SSL libs for --libs output

commit 0f88139455a3aeffeca0a5650ca5d3d99abc1c17
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jan 29 10:09:57 2009 +0100

    Added member named_result_sets for init handler struct for the GFS.
    
    This allows a server to disable named result sets. Until now
    all negoation was handled exclusively by the GFS(server) and the
    client. The server implementation had no way to tell the system
    that it does not handle named result sets.

commit 9507c6ac14596ef68763e7ec8c08e92838ac44da
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jan 29 09:12:59 2009 +0100

    Removed OID record syntax application-xml.
    
    The OID record syntax application-xml was added 1998 probably because
    it was registered somewhere. It is no longer registered and of no use.

commit 5b5d2ba5455538ccc356e208476dc7aeb3703421
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 20 16:45:06 2009 +0100

    Added support for rule-based transliterator for ICU wrapper of YAZ

commit 362a3c56893f05cb1417cc23e24fc165303486dc
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 20 15:50:47 2009 +0100

    Rename normalize to transform

commit 13dbac38d069fe6c5ebe3e224e6a12bac907c140
Merge: 36f0d15 0aca0f8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 20 13:07:51 2009 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 36f0d152f5f2b4d6ef4bcb01a041f4c16c1deaf8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 20 13:07:39 2009 +0100

    Fixed bug #1902: yaz-icu XML output

commit 5dd6d2f41f8db534e05a86632bdc78b6d4186435
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 20 12:58:01 2009 +0100

    Print ICU error when ICU can not be configured

commit 8be4cad726760fbc18b83b1ae8af3790dcf31c81
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 20 11:44:50 2009 +0100

    Make YAZ checks Emacs friendly

commit 0aca0f8f0d5849d6ed040f864713b8ac7d696304
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Jan 19 09:46:36 2009 +0000

    Docu update: When building from Git, you need the debian
    package 'pkg-config' as well.

commit bf0ac0c751ab677318e0a92a8e40145e0e4623b9
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Jan 16 15:55:13 2009 +0100

    BITSTRING value shows value. Bug #2346

commit 379504a233e3e2cc85bca1e7b6d864f1395aec7c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jan 15 13:31:20 2009 +0100

    Updated footer comment

commit 4a23f09ebdcc59ef94e50d385cc5b17f42d8845d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jan 15 13:06:06 2009 +0100

    ISO2709 decoding: skip control characters from indicator data
    
    ISO2709 indicators that hold control characters are marked
    invalid and the control characters are now skipped.

commit 6135f5d048a8bbbc29d14deb9512202c777bd6bc
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 13 15:59:17 2009 +0100

    Omit sort key by default in yaz-icu's output
    
    Omit sort key by default in yaz-icu's output. It may be enabled with
    option -s. The sort key was used in previous tests. But since it is
    encoded differently between ICU version we omit it in our tests.

commit 98f7557d475021fb087f75423468226c2ce3df20
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 13 15:55:20 2009 +0100

    Cosmetic

commit 210462cd20476ec54208ccf3a65f15a32fad5bcc
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 13 15:54:56 2009 +0100

    Cast integer to long for print

commit 0edd22d3d3fb9bafa8795815517e9ad51d51641f
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 13 15:53:51 2009 +0100

    Allow combined single char options (again)

commit 3a54a02da2f546427c4e5fe57f952c97f54437ea
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 13 11:53:02 2009 +0100

    More requirements for libyaz3-devel

commit 3fe8d724fd45258f340a8396877aa93bd0a93d00
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Jan 13 09:14:58 2009 +0100

    Removed yaz.spec.sles

commit ad75101cb137ab43f2b7e6a0dab7b1efe30b02a7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jan 12 22:33:04 2009 +0100

    Fixup for BuildRequires: tcpd-devel or tcp_wrappers-devel

commit b3d1527a6d94b1af17bf36c7781be9679c3fbfc9
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jan 12 18:52:44 2009 +0100

    Utility yaz-marcdump got option to display YAZ version (-V)

commit 2788a4851b551e1a3efb320a2878b809f2d8a9d7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Jan 9 14:38:14 2009 +0100

    Happy new year

commit e91219e4b27bbd16a13c3f41012317c002e8d17b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jan 8 15:52:30 2009 +0100

    Added RPM spec for SUSE Linux Enterprice Server

commit f8ac262931df40154fdae9629eba68c4ea3d5699
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jan 8 15:52:16 2009 +0100

    TODO no longer part of dist

commit 8526300b58a12ecbb6e48b320839e28e4460a925
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Jan 8 15:50:45 2009 +0100

    Allow YAZ to use ICU 3.4

commit f1e17f8a159c3536d122ff78c799bac16c298d39
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jan 5 12:04:44 2009 +0100

    Updated to use VERSION_HEX rather than YAZ_VERSION_HEX

commit 83ba04bfd14a9089745f91ed45d8817339794e5e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Jan 5 11:19:32 2009 +0100

    Renamed AC var YAZ_VERSION_HEX to VERSION_HEX

commit 125918b4266de689eeee8067074a7da24c92e4e1
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 14:31:18 2008 +0100

    Ignore tst_rpn2cql generated test program

commit ca68610f410cfe2134cf9e6a2437df7b2ea3abdf
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 14:29:34 2008 +0100

    Added new ICU test case which illustrates removal of diacritics

commit 32f85d9c71d4fd3d8ab44bd1651c77ddae55fbe6
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 14:27:48 2008 +0100

    Added other test text 'Carre' + combining acute accent

commit 638b4a01b1bf9e1306b215dc0b400b0696631e15
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 14:24:47 2008 +0100

    Name .diff file differently

commit 06fcbb2ac6af85e8a659ff9b000e16455a5cb847
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 12:24:32 2008 +0100

    Reformatting

commit e8fb3033342e237ed26a45aa2147e1aacd96b4dd
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 11:57:48 2008 +0100

    Beef up test a bit

commit d9b58094a0cf30748e32337fa9f460f8f0273826
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 11:57:33 2008 +0100

    Removed set -x

commit b58a6230156eca8cf241de17c2eb3b33057c102d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 11:54:52 2008 +0100

    Added new regression test using yaz-icu

commit e8d49a7dea8eec8a8d588fca7464f29f4db5e838
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 11:36:50 2008 +0100

    yaz-icu returns exit code 3 if ICU is not present.

commit 4e27827b16b9820a74e494a2b0c78bc7f3b21618
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 11:04:02 2008 +0100

    Updated doc/common.

commit 8b373aba10e874dc00f5020cb40f490dbb930a88
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 11:00:56 2008 +0100

    Updated to latest doc/common.

commit 22e07fa6a2c78af783e584a3002f6d61848f57aa
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 30 11:00:40 2008 +0100

    Debian 3.0.41-1.

commit 9fc92ab4c14e951aa91c545fee1aac5037979f8d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 29 20:36:52 2008 +0100

    Updated doc/common.

commit 13a673b4f079ff0ba43b76cd07c1e34c3c932a2a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 29 16:54:52 2008 +0100

    Version 3.0.41.

commit 9fdcce5bf33b647a635631f96f295394d729df7b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 29 16:53:09 2008 +0100

    Fixed test that makes VERSION_SHA1 appear on dist versions too.

commit 22dca6e3b2a29f15ddbd3c2489e67aef608c3545
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 29 10:53:41 2008 +0100

    Version 3.0.40-1.

commit 9f4ccf4f01cb18cc7e18f1db22e81be12fbe71be
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 29 10:53:29 2008 +0100

    Added bib1-attr to RPM

commit 394286df42e6e2c01e5b1b446ae1cf8d0b117f35
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 29 10:51:08 2008 +0100

    Changes

commit 773a2092c54343d97a0315efa65ebcc75da7e122
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Dec 28 11:03:01 2008 +0100

    Added bib1-attr manpage

commit aee1a87eeda33b4b049e9fc0a0a826b9c14018cc
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sun Dec 28 10:59:53 2008 +0100

    Bib-1 man entry is now called bib1-attr (7)

commit 6aabd5dc6f4ed207efe6ba163ddd01c32589673d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 23:48:06 2008 +0100

    Added Bib-1 Attribute Set man page.

commit 01377b739732c93e763a767076768f0b6589c42a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 23:47:17 2008 +0100

    Removed synopsis from yaz man page

commit ccdfc2c2b70849ee395f741ba7de1c1c92b5b9cf
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 23:46:23 2008 +0100

    API libs version 3.0.39

commit a041518cb98067d3f7c7130258b09de83cde8821
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 21:31:24 2008 +0100

    Use ZOOM_EVENT_MAX for size of ZOOM event array

commit df4b0f88de7de6ffcba31c26a0f0c94a15cbf2f8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 21:30:54 2008 +0100

    Define ZOOM_EVENT_MAX (max event ID)

commit 8bc333b208e7afd5a95ea6f553ae5681814b30d7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 15:41:09 2008 +0100

    Debian 3.0.39-1.

commit d65313c102154dc9f28a8b4dbbbee0278c2bd1cc
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 15:24:39 2008 +0100

    Bump version to 3.0.39

commit 68398183c3b25120b484681482f461a1da4c6a36
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 15:20:45 2008 +0100

    Function icu_chain_xml_config allows certain obsolete elements.
    
    Function icu_chain_xml_config allows certain obsolete elements which
    was present in first version of ICU wrapper made for Pazpar2. The
    elements 'index' and 'sortkey' are ignored and a warning is issued. The
    element 'normalize' behaves as 'transform' but a warning is issued.

commit 83178ddb2e40a3c9dbde8b7b3e6cf5e8918da990
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 15:20:00 2008 +0100

    Missing icu lib in static mode for --libs

commit edc84a7af5e2b8e3f937fae5fd894f1a0054a96c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 13:30:54 2008 +0100

    Call autoheader when needed

commit 98db267fe0117e2bff00e044ccbee8f37dd69548
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 13:04:43 2008 +0100

    Mention Git instead of CVS. Use [ instead of test where appropriate.

commit 76f5f8bd7124c8643be25e0d9838e5897e19df8a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 12:58:10 2008 +0100

    Fixed check for custom cflags

commit 11698a8c1cce5556f3c4dc803c94d2c1f3b60b23
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Dec 25 12:55:30 2008 +0100

    Disabled read_iso5426s because it is not in use

commit 3c03c66fdcf640bbf4c611a48bf8c74989d077f6
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 24 01:15:14 2008 +0100

    Added a few type casts to avoid warnings.

commit f2b3c045e79a30c889ffdddb408d9d08ab8d7e01
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 24 01:15:11 2008 +0100

    Changed type to avoid warning

commit c92a1e74838a25214df478878806c7fb48167db5
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 24 01:13:42 2008 +0100

    Removed unused variable

commit dda6b9f4ca21d43c68d4c667b4d8e6d1bdaba095
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 24 00:58:54 2008 +0100

    Refactor getting subfield length to separate function.

commit 4ce7bffcae2b1faaa0fb5d74eca9aeeb7f6d0c6e
Merge: a5ac9b8 d96ec51
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 24 00:43:52 2008 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit a5ac9b8b5662012c69c5e7e5287c5ffc0c7a1f25
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Dec 24 00:36:05 2008 +0100

    Fixed bug #2352: yaz-marcdump crashes for certain record.

commit d96ec51bf86e8c38213abf5df1812de901f60bfa
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 22 14:40:43 2008 +0100

    Choose IPV6 over IPV4 addrany addresses (bug #2350).

commit f34dd5fd60d0e7433f6f5ed46effdd8c8758b269
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 22 14:40:35 2008 +0100

    Extract static/private stuff too

commit a679666e56f9f6ea19e4c22e36089ccb3716dd0f
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Dec 16 14:39:05 2008 +0100

    Include sys/socket.h, arpa/inet.h

commit 4e58607ee6ef2a5d183262b9a87415fed2311c85
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 15 15:41:34 2008 +0100

    Added Danmarc character set decoder (bug #2345).

commit 8377081b9917f820ae91f17e24743c84ef0cfc4d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Dec 5 11:45:19 2008 +0100

    Fixes for sys/stat.h on Windows.

commit b3b89ab95e626286ad2fe9ccf5b589f153e5aa37
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Dec 5 11:34:45 2008 +0100

    More explicit use of #if HAVE_...header's.

commit 97bc202a55195296178a5ca9f2cb10e8b6de5ddd
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Dec 5 11:34:20 2008 +0100

    Set AC_INCLUDES argument for AC_CHECK_HEADERS

commit 838af985fb73373d559a3445f07d88109afbfd51
Merge: 5a3a3e3 0e7513f
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 1 09:48:29 2008 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 5a3a3e3534d174cbc3b500a499611150bef8fc30
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Dec 1 09:46:10 2008 +0100

    Simplified ZOOM C's implementation strings a bit.
    
    The implementationId (81) is no longer repeated, i.e. 81 instead of
    81/81 but it may still be set by an application. The implementationVersion
    no longer includes CVS Revision. The Git SHA1 will do.

commit 0e7513faa0f309121e7800827685f9bdccd2eeb9
Author: Mike Taylor <mike@miketaylor.org.uk>
Date:   Thu Nov 27 16:10:09 2008 +0000

    Ignore some files generated by the Debian-package build process.

commit a624e2e9e2271292147cb432411464bd5eab8da6
Author: Mike Taylor <mike@miketaylor.org.uk>
Date:   Thu Nov 27 16:07:23 2008 +0000

    Add notes on required packages and building for Debian.

commit e6c9d928f6626a7eea0588684f6ec0908604d0e4
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 25 09:05:18 2008 +0100

    Summarize more changes

commit 50606c10e645308dddb9c8d0e676b33ce38f1df8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 24 12:13:48 2008 +0100

    Disable xslt/exslt if --without-xml2 is given

commit 355f20f785e6cd738a738da688ea038ac232a87b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 24 12:07:38 2008 +0100

    Updated to latest m4.

commit 66c99e7681fc1922a5b2e662a6d37720c4f4bac9
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 24 11:32:33 2008 +0100

    Updated to latest m4 master.

commit ab1058c9b1c86b6364e38e5bd47bfaf4eba7354c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 24 11:29:25 2008 +0100

    Updated to latest m4.

commit a98ae0230792c8fba1df2e91cc0b3417ea2b144f
Merge: 0fd57a3 3a36217
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 24 10:07:22 2008 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 3a36217ed64fc7c30c3c886d85d4f337fe2f9282
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 24 10:07:10 2008 +0100

    Got rid of a few warnings WRT signed/unsigned types

commit 4936dff1c451bc76df80ddad8557c2396526f843
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 24 09:57:31 2008 +0100

    Using fwrite rather than write

commit 0fd57a348f3f789eae517a19ee83c34b5812636a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Nov 20 13:49:12 2008 +0100

    Updated news about ISO5426 support.

commit a71313f1155a0e635be2263f4bbec94bb8b3a05b
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Wed Nov 19 14:53:28 2008 +0100

    Workaround for tréma <-> umlau, map / U+034F COMBINING GRAPHEME JOINER (CGJ)
    
    For the Latin script, the Unicode Standard does not distinguish identically appearing diacritical marks with different functions.

commit 7887bf02371157d3db6e769506e57c13b7b076cf
Merge: 2e9b1a9 7a050af
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Tue Nov 18 23:48:47 2008 +0100

    Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/yaz

commit 2e9b1a9f5eb9aa8524241772704e9828bd0de420
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Tue Nov 18 23:45:34 2008 +0100

    cleanup & tidy

commit ecc1ee5b177fdc11ed531dfe13b5c3aae52b2843
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Tue Nov 18 23:40:52 2008 +0100

    charconv.tcl does not like multi-line comments

commit 6758be8d15b9d0b14e06f4cbbb3a76ff645d280c
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Tue Nov 18 23:32:50 2008 +0100

    Implement real ISO546 character set, first version.

commit 7a050afbba1b2daf9a1ab6d6c4bbae9ba674a705
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 23:28:29 2008 +0100

    Fixed creation of marc8.c / marc8r.c.

commit 966500e45f2753898b99ccef92ed7d501a1f5e72
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Tue Nov 18 23:00:24 2008 +0100

    don't create a broken *.c file if charconv.tcl failed

commit 16b381fc13f2177874ca8e8be1441e0b0c91521b
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Tue Nov 18 19:00:52 2008 +0100

    remove non-latin character sets

commit 645683e5223cb8c122c3d3ba565a46d07d53dca3
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 12:33:35 2008 +0100

    Deb pkg libyaz3-dev depend on libgnutls-dev.

commit 19cf1d0612ee516241c2e4846756e47a16852b8e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 12:23:46 2008 +0100

    Use awk as found by configure

commit 3489c6eaceb7ab7f4e8298a2f898dda0c3d0a09c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 09:36:11 2008 +0100

    Updates for the ISO5426 source.

commit 9bf84c30a3d0e3e1d4b9136aee9c0a4b8ae769d2
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 09:30:32 2008 +0100

    Use mk_version.tcl to generate yaz-version.h

commit 7e6b7d710c5a78caca338b63198efd9ac11320cb
Merge: 32e16c3 fff1d63
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 09:28:13 2008 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 32e16c37ce5b2d1ed0b3e6edfb48fd5ae1ec24b3
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 09:27:13 2008 +0100

    Added script to auto-generate version-info on Windows.

commit fff1d63445d5910aa5b5a73ee37e4b94f52de9ad
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Tue Nov 18 09:05:44 2008 +0100

    add -t option
    sync manual page with usage string

commit 735479544d1cadf6a29722a3dfca7b3fd263cca0
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Tue Nov 18 08:42:38 2008 +0100

    typo in comments

commit 2ff562123d8043bf8e29c172a92c5da45268d786
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 00:53:09 2008 +0100

    Make codetables-iso5426.xml part of dist.

commit e5d5336d0321fcc680a88f6db476223c5e507d91
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 00:48:15 2008 +0100

    Ignore generated file version.nsi.

commit c9f14d1b54f5e094112153e473ed015c1542affb
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 00:47:56 2008 +0100

    Ignore generated file iso5426.c.

commit a62e3b3f79675a2b67d6e60dd2f96fbccce02dd6
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 00:11:34 2008 +0100

    Document version identifiers

commit e5a6a3f08564436f90fcb8537d8f32e6685c176e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 00:05:47 2008 +0100

    Removed definitions of YAZ_OS and YAZ_DATE.
    
    Removed definition of YAZ_OS. It is not used by other parts of YAZ and is
    probably not to be used by other applications. The YAZ_DATE is also not
    of use. Was used to detect API changes for YAZ 2 series.

commit 3185557b9c4f422e12f79a930a89a35b4cac6cfe
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 00:02:10 2008 +0100

    Document yaz_version

commit e97610b3e0040428e2cb74f846ade31a0194074e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Nov 18 00:00:37 2008 +0100

    yaz-client's version info includes SHA1.

commit 6f7757087a49db5fb3fa4f3b12b8b67ebbbe3aa3
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 17 21:11:43 2008 +0100

    Return SHA1 version for YAZ in yaz_version.

commit f1ddcf0aca55660d122a40046a13483c4a06f922
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 17 20:00:15 2008 +0100

    Fixed awk stmt - which was apparently gawk only

commit 7cf3484c8f09f224b5758798e746b1061b4a7437
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 16:30:03 2008 +0100

    set ISOcode="42"

commit 99eee17dbb3ef0d81d44b01d9072e3405f326595
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 16:13:53 2008 +0100

    still learning using GIT, some changes were not committed:
    
    fake support for decoding ISO5426 -> utf8

commit 919e3dd6d63e3371053b5be495ee4c0b74ef2e13
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 16:12:52 2008 +0100

    add ISO 5426 reference documentation

commit 4d3388f14854ea6e6ad1b5d9722c7ad2c6dbc7ac
Merge: a36b22f b7ef3b5
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 15:41:35 2008 +0100

    Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/yaz

commit a36b22f2bb95b76a003041eed871fbc6f40834fa
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 15:40:42 2008 +0100

    fake support for decoding ISO5426 -> utf8

commit b7ef3b5b8eeb39b408065eaf0f77a978bd911e69
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 17 15:33:09 2008 +0100

    TODO no longer present. Check for distdir/win already being present.

commit e6d6af3d3fe9fca9fa78dfc62f5c6887778744ba
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 15:17:16 2008 +0100

    add copy of iconv_decode_marc8.c

commit 85e7aad7167c848ae654bacd378403894f2f889b
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 15:15:17 2008 +0100

    add copy of iconv_encode_marc8.c

commit 5213b25de9ca4e1f7aa52540260233c4f5a2e8b7
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 15:12:39 2008 +0100

    add function yaz_iso5426_decode

commit c15bc44e2038d3555bbc44aacfd8f0c2f55594cd
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 17 15:04:01 2008 +0100

    Removed this because it no longer has useful info

commit 6c24a7636cfb5c6609061e8f4bb696ad8f1607d1
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 17 14:43:38 2008 +0100

    Version now propagated to yaz-version.h + NSI installer.

commit 9397bf54a2ddb4e0fe8a73d5f753eee23a10601c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Nov 13 02:38:19 2008 +0100

    Generate yaz-version.h from configure.ac (except YAZ_VERSIONL)

commit f3cc474450a7c6be9c583b5b60e7fac51d1f4fc5
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Nov 13 02:38:16 2008 +0100

    Generate yaz-version.h from configure.ac (except YAZ_VERSIONL)

commit 5787f1e881be090f6bdfe708e179f9f466356bc8
Author: Wolfram Schneider <wosch@indexdata.dk>
Date:   Mon Nov 17 12:23:06 2008 +0100

    Add alias ANSEL -> MARC-8 for decoding to UTF8

commit efe945f2dbfdbb92fb21067da236b3edae146466
Merge: af11171 7ef1b50
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Nov 14 20:15:02 2008 +0100

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 7ef1b50f481cda83d012cc3d69d83f9313836f1f
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Nov 14 15:17:22 2008 +0100

    Fixes for gcc warnings - mostly WRT check of returns values

commit 1ffd6698cc631866391bf0d646f58907c32ab086
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Nov 14 14:00:22 2008 +0100

    Re-format and check of return value from fread.

commit 6178e716786433db7de986b6b6cdb694ed57834d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Nov 14 12:35:02 2008 +0100

    Re-format

commit af111711048b01f1ab94a6f100f34161ba8ff1be
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 10 18:13:14 2008 +0100

    Updated doc/common.

commit 5ba78554cf0c142fd6ff29f608e31eb30a83cd1f
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 10 17:14:25 2008 +0100

    Fixed dox file comment

commit 0b133751e275a00455d2f68fcc04960d6417def2
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 10 16:50:11 2008 +0100

    No longer executable (-x).

commit 07af4a097fe9091a43232fa201e0833b330d21de
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Nov 10 16:45:34 2008 +0100

    Version 3.0.38.

commit 89b120a18d5481e2b354accd07e07bc74816cfc9
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Nov 7 13:59:23 2008 +0100

    Supports C++ compilations as well

commit e579d2c5f9886c3929513a15724bd745ae4bacac
Author: Wolfram Schneider <wosch@banana2.panke.de.freebsd.org>
Date:   Fri Nov 7 12:01:57 2008 +0100

    Set libtoolize on a  MacOS

commit 185932b6ae28e68c77e270196cd96a379fc775b6
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Nov 7 11:55:02 2008 +0100

    Fixed include of matchstr.h.

commit 9098839cb8361648d70d1708c6e1f4e05b9836ae
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Nov 6 17:48:18 2008 +0100

    Updated news

commit ae309395bf5f5511c2eee751151a2962726f745a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Nov 6 14:14:21 2008 +0100

    Renamed match-str.h to matchstr.h.

commit 6ce7e4adc2de42e4b422558985468547c5a4423f
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Nov 6 12:48:21 2008 +0100

    DEBUG=0 for YAZ

commit 4aee8993113119c95924d9be4ed2707d5034348c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sat Oct 25 22:08:47 2008 +0200

    Added yaz_encode_pqf_term to encode PQF strings.
    
    Added yaz_encode_pqf_term to encode PQF strings. This function is used
    by yaz_rpnquery_to_wrbuf and CCL to PQF conversion utilities (ccl_pquery,
    ccl_pr_tree).

commit 9c6dc183308e2e99b53871c4aea3c6a760d2db54
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sat Oct 25 20:32:12 2008 +0200

    Include header for matchstr functions.

commit 3a3c0ef92f785ff123069ea51ba0f8711b23dbf7
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Oct 24 16:45:22 2008 +0200

    Ignore generated program gfs-example.

commit 887e4b6664dee7210816744f92802b4d924d9a3a
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Oct 24 08:54:10 2008 +0200

    For ZOOM, ensure ZOOM_EVENT_SEARCH is only fired once per search task.

commit 5a1156a0d8d50aa07af3eec75e939ed2065d3880
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 23 17:15:49 2008 +0200

    Honor databaseName option for ZOOM connection as path (SRU "database").

commit 93f4285bbf2ed5a42fe62f92c7c4618df5f20583
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 23 09:14:03 2008 +0200

    Smaller example GFS. Added match-str.h for string match functions.

commit bc4b50939a936dbb214c783c18a44039ea048fdd
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Oct 21 15:56:21 2008 +0200

    Removed debug-like msg.

commit ec4b6d4fd36351c38f76596c9e21197b7536cd00
Merge: 2ba84b1 29cc5fa
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Oct 21 15:30:05 2008 +0200

    Merge branch 'master' of ssh://adam@git.indexdata.com/home/git/pub/yaz

commit 2ba84b155219d5d18eed5ba4d929c12abdb88f14
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Tue Oct 21 15:29:42 2008 +0200

    Fixed log message trunction on Windows.

commit 29cc5faecbd855b9c3ad7bf2749c7fcd1a393704
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Oct 20 19:23:54 2008 +0200

    Add missing ZOOM_END_CDECL

commit bc384649b00fed1e378ac3f67b8b5e4872892942
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Oct 20 15:36:59 2008 +0200

    Use ZOOM_API for new function ZOOM_get_event_str

commit 9f082f8dd7fd80f8da3baf410c6dc003c5f471eb
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Oct 20 15:05:37 2008 +0200

    Update dep libs version because of new function ZOOM_get_event_str

commit fd6a4db386252ed1b777ad2900ea26a0a9513662
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Oct 20 14:38:44 2008 +0200

    For SRU diagnostics ensure result set memory is not saved.

commit 80849747c53b9c8374e62672aa5f0bc994990389
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Oct 20 09:12:25 2008 +0200

    Don't generate ZOOM_EVENT_RECV_SEARCH for SRU record retrievals.
    
    The event ZOOM_EVENT_RECV_SEARCH is no longer generated for SRU record
    retrievals - only for search responses (and an equivalent search task).

commit 6dff34312a0f7c3272f7b52c5e13af1e04f72228
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Oct 20 08:38:56 2008 +0200

    Added ZOOM_get_event_str.

commit 3a494bb11f0a2f449e4848fd17c2ee603bb2367e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sat Oct 18 13:50:48 2008 +0200

    Fixed memory leak (setname in ZOOM_resultset)

commit 9f9eecbb73b46c9cf31edc5d4a9a95e16cac3a3c
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sat Oct 18 13:47:33 2008 +0200

    Fixed bad memory ref in case of SRU diagnostics.

commit bf95c509245f5cb4025ef2db348d5f7ace3b5994
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Sat Oct 18 00:19:43 2008 +0200

    Adjustments to make YAZ compile as C++ code.

commit 34225a58fbb7de89387c526a9dac54a8b636fb60
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 16 16:20:22 2008 +0200

    Update to use Libxml2 2.7.1 / Libxslt 1.1.24.

commit 3fa6bf34c5496f69a63469a3184251d38758c85d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 16 10:36:24 2008 +0200

    Omit definitions of xmlNode and xmlDocPtr if YAZ_HAVE_XML2 is unset.
    
    When YAZ is compiled without Libxml2 support (YAZ_HAVE_XML2 is unset),
    the types xmlNode and xmlDocPtr are no longer defined in xmltypes.h.
    Problem was that these dummy definitions could clash with other apps that
    used Libxml2 anyway.

commit 75c9defe1c9ffb8efe58507dc994a56e6fd0409b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Oct 15 22:20:08 2008 +0200

    Omit some functions not used when XML2 is not enabled (YAZ_HAVE_XML2).

commit 92b4e042f027d999411ee8c20814cc76e2736e71
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Oct 15 20:26:08 2008 +0200

    Fixed compilation for no XML2

commit 14ce714521fcdab18a298c48977f23af20c476c0
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Oct 15 20:24:48 2008 +0200

    Added include of stdlib.h because of atoi

commit a0c2cb53362fb04ae59bcd764822aafa24b0370e
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Mon Oct 6 20:15:56 2008 +0200

    3.0.37.

commit 74e62ec12177e6dc1ff3c578f6e96186f5e63a13
Merge: 8ee8072 6570bbb
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Oct 2 19:55:08 2008 +0200

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 6570bbb754493471237d34bc87613fc26780ba90
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Sep 26 23:11:48 2008 +0200

    Updated ICU DLLs for Windows dist (nsis)

commit d4fb090b5d0d63b8fc2a8060c9869e8fa86dcbb8
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Fri Sep 26 12:22:16 2008 +0200

    Version 3.0.36.

commit cafbfb115514fa25b200b845c2b32b92ef65a6d3
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 25 23:17:59 2008 +0200

    Honor start, step, count for SRU (multiple requests performed).

commit 8ee8072ffe458a632055008d96d86359cebb46dc
Merge: 90aa30a 21f9634
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 25 21:33:15 2008 +0200

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit 21f9634b8e42027596795fcb9fd6b307fc72d567
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 25 13:47:42 2008 +0200

    Fixed ODR example and use of XML entities in CDATA sections.

commit 7eeb1efed000ed90d27018fd717301096daf65e4
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 25 11:05:24 2008 +0200

    Fixed bug #2256. Updated for newer libxml2/libxslt.

commit 1d6f90173d496fe54190026abc3ae6b234d312c3
Merge: cf24b09 160f79b
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 25 10:10:45 2008 +0200

    Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz

commit cf24b0978994c8d4d7fc92428fe18bf417084375
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Thu Sep 25 10:10:32 2008 +0200

    Unix text.

commit 160f79b459b7d7dc07830e679349d82c3a77256d
Author: Adam Dickmeiss <adam@indexdata.dk>
Date:   Wed Sep 24 20:19:37 2008 +0200

    Ensure format command is a no-op if bad syntax is passed to it.

commit bb37                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        