Ë ’q0ÝGãóÞ—dZddlZddlZddlZddlmZddlZddlZddlZddl Z ddl Z ddl m Z m Z mZmZddlmZddlZddlZddlZddlmZddlmZej6j9ej6j;e«d «ZiZ e!ej6j9ej6j;e«d ««5Z"e#e"jI«e «ddd«e d Z%ej6jMej6jOe«d«Z(dZ)d Z*d Z+dZ,dZ-dZ.dZ/dZ0dZ1gZ2dZ3dZ4dZ5dZ6dZ7dZ8da9de:ddfd„Z;de:ddfd„Zde fd„Z?d:d„Z@de:ddfd„ZAd ee efde fd!„ZBd"e:deCfd#„ZDd$„ZEd;d%„ZFdd/„ZPd0„ZQd?d1„ZRd2e:de e:fd3„ZSGd4„d5e«ZTd6„ZUd7„ZVeWd8k(reV«yy#1swY�ŒxYw)@a" a2x - A toolchain manager for AsciiDoc (converts Asciidoc text files to other file formats) Please note, the a2x was originally licensed under the MIT license. Any changes on or after 12/31/2021 are licensed under the GPLv2+. See below for licenses, and due to sub-licensing, this file MUST carry both licenses unless all MIT code has been rewritten. ----- Copyright (C) 2021-2022 AsciiDoc Contributors. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ---- Free use of this software is granted under the terms of the MIT license. Copyright (C) 2002-2013 Stuart Rackham. Copyright (C) 2013-2022 AsciiDoc Contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. éN)Ú HTMLParser)ÚListÚNoReturnÚTupleÚUnion)Úurlparseé)Úasciidoc)ÚDefaultAttrDictÚ resourcesz__metadata__.pyÚ __version__r ÚxsltprocÚdblatexÚfopÚw3mÚlynxÚxmllintÚ epubcheckÚz-dumpz%-dump -cols 70 -T text/html -no-graphÚmsgÚreturncóN—tt›d|›d�tj¬«y)Nú: Ú ©Úfile)ÚprintÚPROGÚsysÚstderr©rs ú1/usr/lib/python3.12/site-packages/asciidoc/a2x.pyÚerrmsgr#zs€Ü žšcÐ "¬¯©Ö4ócó —td|z«y)Nz WARNING: %s)r#r!s r"Úwarningr&~s€Ü ˆ=˜3Ñ Õr$có,—tt›d|›�«y)Nr)rrr!s r"Úinfomsgr(‚s€Ü –d™CÐ Õ!r$Ú exit_codecóJ—td|z«tj|«y)Nz ERROR: %s)r#rÚexit)rr)s r"Údier,†s€Ü ˆ;˜Ñ Ô܇H�HˆYÕr$cóx—td«tjtj¬«td«y)zPrint traceback to stderr.z<------------------------------------------------------------rN)r#Ú tracebackÚ print_excrr ©r$r"Útracer1‹s"€ä ˆ6„NÜ ×ÑœSŸZ™ZÕ(Ü ˆ6…Nr$có\—tjstjr t|«yy©N)ÚOPTIONSÚverboseÚdry_runr(r!s r"r5r5’s€Ü‡‚œ'Ÿ/š/Ü�� ð*r$Úarraycór—g}|D]/}t|ttf«r||z }Œ|j|«Œ1|Sr3)Ú isinstanceÚlistÚtupleÚappend)r7ÚretÚxs r"Úflattenr?—s:€Ø €CÛ ˆÜ �aœ$¤˜Ô 'Ø �1‰H‰Cà �J‰J�q�Mð ð €Jr$Ú file_namecóŒ—tjj|«xr$tj|tj«Sr3)ÚosÚpathÚisfileÚaccessÚX_OK)r@s r"Ú isexecutablerG¡s)€Ü �7‰7�>‰>˜)Ó $Ò F¬¯©°9¼b¿g¹gÓ)FÐFr$có¾—d„}tjdk(r>tjj|«ddk(rdD]}|||z«}|sŒ|SS||«}|S)zm Search for executable file_name in the system PATH. Return full path name or None if not found. có¢—tjj|«ddk7rt|«sy|Stjj dtj «jtj«D]N}tjj||«}t|«sŒ/tjj|«cSy)NrrÚPATH) rBrCÚsplitrGÚenvironÚgetÚdefpathÚpathsepÚjoinÚrealpath)r@ÚpÚfs r"Ú_find_executablez)find_executable.._find_executableªs�€Ü �7‰7�=‰=˜Ó # AÑ &¨"Ò ,ä  Ô*Øà Ð Ü—‘—‘ ¬¯ © Ó3×9Ñ9¼"¿*¹*ÖEˆAÜ—‘— ‘ ˜Q  Ó*ˆAܘA�Ü—w‘w×'Ñ'¨Ó*Ò*ðFðr$Úntr r)z.cmdz.batz.exe)rBÚnamerCÚsplitext)r@rTÚextÚresults r"Úfind_executablerZ¥sl€ò ô ‡w�w�$‚œ2Ÿ7™7×+Ñ+¨IÓ6°qÑ9¸RÒ?Û+ˆCÙ% i°#¡oÓ6ˆFÚØð €Mð ,ð €Mñ" )Ó,ˆØ €Mr$cól—t|||¬«5}|j|«ddd«y#1swYyxYw©N)ÚmodeÚencoding)ÚopenÚwrite)ÚfilenameÚdatar]r^rSs r"Ú write_filercÀs'€Ü ˆh˜T¨HÕ 5¸Ø �‰�Œ ÷ 6× 5Ñ 5ús�*ª3cój—t|||¬«5}|j«cddd«S#1swYyxYwr\)r_Úread)rar]r^rSs r"Ú read_filerfÅs%€Ü ˆh˜T¨HÕ 5¸Ø�v‰v‹x÷ 6× 5Ò 5ús�)©2cól—td|z«tjstj|«yy)Nzchdir %s)r5r4r6rBÚchdir©rCs r"Úshell_cdrjÊs&€Ü ˆJ˜Ñ ÔÜ �?Š?Ü �‰��ð r$có¬—tjj|«rytd|z«tj stj |«yy)Nz creating %s)rBrCÚisdirr5r4r6Úmakedirsris r"Úshell_makedirsrnÐs:€Ü ‡w�w‡}�}�TÔØÜ ˆM˜DÑ Ô!Ü �?Š?Ü � ‰ �DÕð r$cóv—td|›d|›d�«tjstj||«yy)Nz copying "z" to "Ú")r5r4r6ÚshutilÚcopy)ÚsrcÚdsts r"Ú shell_copyruØs)€Ý ¢cª3Ð /Ô0Ü �?Š?Ü� ‰ �C˜Õð r$có¬—tjj|«sytd|z«tj stj |«yy©Nz deleting %s)rBrCÚexistsr5r4r6Úunlinkris r"Úshell_rmrzÞs9€Ü �7‰7�>‰>˜$Ô ØÜ ˆM˜DÑ Ô!Ü �?Š?Ü � ‰ �$�ð r$có¬—tjj|«sytd|z«tj st j|«yyrw)rBrCrlr5r4r6rqÚrmtreeris r"Ú shell_rmtreer}æs:€Ü �7‰7�=‰=˜Ô ØÜ ˆM˜DÑ Ô!Ü �?Š?Ü� ‰ �dÕð r$cóÒ—tjdk(rjtjd|«}|stjd|«}|j d«j d«rd|z}tj dd|«}td |z«tjry tjx}} tj|||d td ¬ «}j!«\}}tjrt#|«t#|«|j$dk7r|rtd||j$fz«|||j$fS#t$r}td |›d|›�«Yd }~Œ’d }~wwxYw)z¯ Execute command cmd in shell and return tuple (stdoutdata, stderrdata, returncode). If raise_error is True then a non-zero return terminates the application. rUz^\s*"\s*(?P[^"]+)\s*"z^\s*(?P[^ ]+)Úarg0z.pyzpython z "([^ ]+?)"z\1z executing: %sNT)Ústdoutr ÚshellÚenvÚuniversal_newlineszfailed: rrz#%s returned non-zero exit status %d)rBrVÚreÚmatchÚgroupÚendswithÚsubr5r4r6Ú subprocessÚPIPEÚPopenÚENVÚOSErrorr,Ú communicaterÚ returncode) ÚcmdÚ raise_errorÚmor€r ÚpopenÚeÚ stdoutdataÚ stderrdatas r"r�r�îs<€ô  ‡w�w�$‚ô �X‰XÐ4°cÓ :ˆÙÜ—‘Ð0°#Ó6ˆBØ �8‰8�FÓ × $Ñ $ UÔ +ؘc‘/ˆCô�f‰f�] E¨3Ó/ˆÜ ˆO˜cÑ !Ô"܇‚ØÜ —o‘oÐ%€FˆVð)Ü× Ñ  ¨V¸FØ'+´ÈôOˆð#×.Ñ.Ó0Ñ€J� ܇‚Ü ˆjÔÜ ˆjÔØ ×ј1Ò¡Ü Ð 1°S¸%×:JÑ:JÐ4KÑ KÔLØ ˜  E×$4Ñ$4Ð 5Ð5øô ò)Ý ¢¡QÐ '×(Ñ(ûð)úsÂ0EÅ E&Å E!Å!E&Ústringcó¦—tjd|«}|€tjd|«}|r |jd«jd«SdS)zž Given a byte representation of a XML or HTML document, find and return the encoding set as an attribute, or return utf-8 if none could be found. s^<\?xml.* encoding="(.*?)"sFr úutf-8)r„Úsearchr†Údecode)r—r’s r"Ú get_encodingrœsL€ô �‰Ð1°6Ó :€BØ €zÜ �Y‰YÐaÐciÓ jˆÙ*,ˆ2�8‰8�A‹;× Ñ ˜gÓ &Ð9°'Ð9r$cóÚ‡‡‡‡ —Gˆˆˆ ˆfd„dt«}t|t«r|g}gŠ |D]ˆ}td|z«tj rŒ"|«}t |d«5}|j«}ddd«jt|««}|j|«|j«ŒŠtt‰ ««Š ‰ j«‰ S#1swYŒlxYw)aa Search all files and return a list of local URIs from attrname attribute values in tagname tags. Handles HTML open and XHTML closed tags. Non-local URIs are skipped. files can be a file name or a list of file names. The filter function takes a dictionary of tag attributes and returns True if the URI is to be included. có$•—eZdZd„Zˆˆˆˆfd„Zy)ú%find_resources..FindResourcescó(—|j||«yr3)Úhandle_starttag)ÚselfÚtagÚattrss r"Úhandle_startendtagz8find_resources..FindResources.handle_startendtag,s€Ø × Ñ   eÕ ,r$c󪕗t|«}|‰k(rB‰�‰|«r7t|‰«}|ddvr!|ds|dr‰j|d«yyyyyy)Nr)rrr é)Údictrr<)r¢r£r¤ÚuriÚattrnameÚfilterrYÚtagnames €€€€r"r¡z5find_resources..FindResources.handle_starttag/sfø€Ü˜“KˆEØ�gŠ~ 6 >±V¸E´]ä˜u X™Ó/�Ø�q‘6˜\Ñ)°#°a²&¸SÀºVØ—M‘M # a¡&Õ)ð>D°&Ð)ð6Cˆ~r$N)Ú__name__Ú __module__Ú __qualname__r¥r¡)rªr«rYr¬s€€€€r"Ú FindResourcesrŸ*sø„ò -÷ *ð *r$r°zfinding resources in: %sÚrbN)rr9Ústrr5r4r6r_rer›rœÚfeedÚcloser:ÚsetÚsort) Úfilesr¬rªr«r°raÚparserÚ open_fileÚcontentsrYs ``` @r"Úfind_resourcesr» sÁû€÷ *ñ *œ ô *ô�%œÔØ�ˆØ €FÛˆÜÐ*¨XÑ5Ô6Ü �?Š?Ø Ù“ˆÜ �(˜DÔ ! YØ —~‘~Ó'ˆH÷"à—?‘?¤<°Ó#9Ó:ˆØ� ‰ �HÔØ� ‰ �ðô”#�f“+Ó €FØ ‡K�K„MØ €M÷"Ð !ús Á%C!Ã!C* c ó—g}tj|«D]p\}}}|D]e}tj||«sŒ|jtjj tjj ||«««ŒgŒr|S)zG Return list of file names matching pattern in directory path. )rBÚwalkÚfnmatchr<rCÚnormpathrP)rCÚpatternrYrRÚdirsr·rSs r"Ú find_filesrÂIsk€ð€FÜŸG™G DžMшˆD�%ÛˆAÜ�‰˜q 'Õ*Ø— ‘ œbŸg™g×.Ñ.¬r¯w©w¯|©|¸A¸qÓ/AÓBÕCñð*ð €Mr$c ó²—tj«}t|« tdt›d|›d|›d|›d� «t|«y#t|«wxYw)Nrpú" ú "ú" ")rBÚgetcwdrjr�ÚXSLTPROC)Úxsl_fileÚxml_fileÚdst_dirÚoptsÚcwds r"Ú exec_xsltprocrÎUs:€Ü �)‰)‹+€CÜ ˆWÔðÝ ¦Xªt²XºxÐHÔIä�� øŒ�� ús ¡A Á AÚ asciidoc_filec óŒ—g}tjj|«s|Sd}t|d«5}d}|D]W}|dz }t j d|«}|sŒ! |d||j «dj«jd«zz }ŒY ddd«d }d} |D]K} | d k(r|r|j| «d} d }Œ d}Œ#| dk(r|r| | z } Œ0| sŒ3|j| «d} ŒG| | z } ŒM| r|j| «|S#t$r+}td |jzd |›d |›�z«Yd}~Œûd}~wwxYw#1swYŒ©xYw)z Look for a2x command options in AsciiDoc source file. Limitation: options cannot contain double-quote characters. rr±rr s ^//\s*a2x:Ú NÚasciizCould not decode option to %s zon line z in FrpT) rBrCrDr_r„ršÚendÚstripr›ÚUnicodeDecodeErrorr&r^r<) rÏrYÚoptionsrSÚ line_numberÚliner’r”ÚinquotesÚoptÚcs r"Úget_source_optionsrÜ^sW€ð €Fä �7‰7�>‰>˜-Ô (؈ à€GÜ ˆm˜TÔ " a؈ ÛˆDØ ˜1Ñ ˆKÜ—‘˜>¨4Ó0ˆBÚðؘs T¨"¯&©&«(¨) _×%:Ñ%:Ó%<×%CÑ%CÀGÓ%LÑLÑL‘Gñ ÷ #ð€HØ €CÛ ˆØ �Š8ÙØ— ‘ ˜cÔ"Ø�Ø ‘à‘Ø �#ŠXÙØ�q‘‘ÚØ— ‘ ˜cÔ"Ø‘à �1‰H‰Cðñ  Ø� ‰ �cÔà €Møô9*òÜØ8¸1¿:¹:ÒEÚ.9¹=ÐIñJ÷ñûðú÷ #Ð "ús5²%D:Á6DÂD:Ä D7Ä !D2Ä-D:Ä2D7Ä7D:Ä:Ecóª—eZdZdZd„Zd„Zd„Zd„Zd„Ze d„«Z dd „Z gfd „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zy)ÚA2Xz/ a2x options and conversion functions. có>—|j«|xjtz c_|xjdtzz c_|xj dt zz c_|xjdtzz c_|xjdtzz c_ |jr|j«n#|jd|jz««|js8|jdk(s(|j st#|j%d««yyyy)z& Process a2x command. rÑÚto_Údocbookú.xmlN)Úprocess_optionsÚ asciidoc_optsÚ ASCIIDOC_OPTSÚ dblatex_optsÚ DBLATEX_OPTSÚfop_optsÚFOP_OPTSÚ xsltproc_optsÚ XSLTPROC_OPTSÚ backend_optsÚ BACKEND_OPTSÚbackendÚ to_backendÚ__getattribute__ÚformatÚkeep_artifactsÚ skip_asciidocrzÚdst_path©r¢s r"Úexecutez A2X.execute™sÜ€ð ×ÑÔà ×ÒœmÑ+ÕØ ×Ò˜S¤<Ñ/Ñ/ÕØ � Š ˜œx™Ñ'� Ø ×Ò˜c¤MÑ1Ñ1ÕØ ×Ò˜S¤<Ñ/Ñ/Õà �<Š<Ø �O‰OÕ à 4ˆD× !Ñ ! %¨¯ © Ñ"3Ó 4Ô 6Ø×#Ò# t§{¡{°iÒ'?À4×CUÒCUÜ �T—]‘] 6Ó*Õ +ðDVÐ'?Ð#r$có6—d}tjjtjjtjj t ««d«}g}|j tjj||««tjj|d«}tjjd«}|�0|j tjj|d|««|j��=tj«}tjddd |fgg«|j«j«D�cgc]&}|tjj!|«d f‘Œ(}}|D�cgc]}|d |jk(sŒ|d ‘Œ} }t#| «d k(rt%d |jz«t#| «d kDrt%d |jz«t'd|j›d| d ›�«|j tjj| d d««|j(�\tjj+|j(«st%d|j(z«|j |j(«|j,�otjj+|j,«st%d|j,z«tjj/|j,«|_|D][} tjj+| «sŒ#t'd| z«t1t3| «j5«t7««Œ]ycc}wcc}w)zd Load a2x configuration file from default locations and --conf-file option. za2x.confr z asciidoc.confÚHOMENz .asciidocr )ú --backendr:ú --out-filer rzmissing %s backendzmore than one %s backendzfound z backend directory: za2x-backend.pyúmissing configuration file: %szmissing XSL file: %szloading configuration file: %s)rBrCrPÚdirnamerQÚ__file__r<rLrMrîÚioÚStringIOr röÚgetvalueÚ splitlinesrKÚlenr,r5Ú conf_filerDrÉÚabspathÚexecr_reÚglobals) r¢Ú CONF_FILEÚa2xdirÚ conf_filesÚ asciidoc_confÚhome_dirÚoutfileÚiÚbackendsÚ backend_dirrSs r"Ú load_confz A2X.load_conf¬s‘€ð ˆ Ü—‘—‘œbŸg™gŸo™o¬b¯g©g×.>Ñ.>¼xÓ.HÓIÈ;ÓWˆØˆ à×Ñœ"Ÿ'™'Ÿ,™, v¨yÓ9Ô:ôŸ™Ÿ ™  V¨_Ó=ˆ ô—:‘:—>‘> &Ó)ˆØ Ð Ø × Ñ œbŸg™gŸl™l¨8°[À)ÓLÔ Mð �<‰<Ñ #Ü—k‘k“mˆGÜ × Ñ ˜ZÐ*?À,ÐPWÐAXÐ)YÐ[]Ô ^Ø:A×:JÑ:JÓ:L×:WÑ:WÔ:YÓZÑ:Y°Q˜œBŸG™GŸM™M¨!Ó,¨QÑ/Ò0Ð:YˆHÐZÙ)1ÓJ© A°Q°q±T¸T¿\¹\Ó5I˜1˜Q›4¨ˆKÐJÜ�;Ó 1Ò$ÜÐ(¨4¯<©<Ñ7Ô8Ü�;Ó !Ò#ÜÐ.°·±Ñ=Ô>Ý Ø—\“\ ;¨q¢>ð3ô 4à × Ñ œbŸg™gŸl™l¨;°q©>Ð;KÓLÔ Mà �>‰>Ð %Ü—7‘7—>‘> $§.¡.Ô1ÜÐ4°t·~±~ÑEÔFØ × Ñ ˜dŸn™nÔ -à �=‰=Ð $Ü—7‘7—>‘> $§-¡-Ô0ÜÐ*¨T¯]©]Ñ:Ô;ÜŸG™GŸO™O¨D¯M©MÓ:ˆDŒMãˆAÜ�w‰w�~‰~˜aÕ ÜÐ8¸1Ñ<Ô=Ü”T˜!“W—\‘\“^¤W£YÕ/ñùò)[ùÚJsÅ+NÆNÆ(NcóX —tjj|j«st d|jz«tjj |j«|_tjj |j«dj«dk(rd|_nd|_|js/tjj|j«|_ nˆtjj|j«st d|jz«tjj |j«|_ |jdvr td«g|_g|_|j r�tjj|j «st d |j z«t#|j «5}|D]+}|j$j'|j)««Œ- d d d «|j$D�]D}tjj+|«}tjj-|«}|j/d «s|j/d «rJtjj|«r|jj'|«ŒŸt d |z«Œ®tjj|«r|jj'|«Œé|j1d«r0d|vr,|j3d«\}}t5j6||«�Œ*|jj'|«�ŒGdD]a}tjj9t:|«}tjj|«sŒG|jj'|«Œct=d|jz«t=d|jz«|j>s|jdk(rd|_|j>r'|j@j'd|j>f«|jBD]}|j@j'd|f«Œ!|j<r0|j@j'd«|xjDdz c_"|jFs |jHr@gd¢}|jHr4|d|jHzd|jHzd|jHzgz }ngd¢}|jJr|d|jJzgz }|jdk(rQ|d|jMd «zd!|jMd"«zd#|jMd$«zd%|jMd&«zgz }|j>d'k(r |d(gz }|d)gz }|D]=}|j3«d*d+z|jNvsŒ&|xjNd,|zz c_'Œ?|jPrd|_)y y #1swY�ŒxYw)-z@ Validate and command options and set defaults. zmissing ASCIIDOC_FILE: %sr râTFzmissing --destination-dir: %s)ÚchunkedÚepubÚhtmlhelpÚxhtmlÚmanpagezM--destination-dir option is only applicable to HTML and manpage based outputszmissing --resource-manifest: %sNÚ/Ú\zmissing resource directory: %sÚ.Ú=)ÚimagesÚ stylesheetszresource files: %szresource directories: %srú --doctypeú --attribute)ú --verbosez -V)zcallout.graphics 1znavig.graphics 1zadmon.textlabel 0zadmon.graphics 1zadmon.graphics.path "%s/"z$callout.graphics.path "%s/callouts/"znavig.graphics.path "%s/")zcallout.graphics 0znavig.graphics 0zadmon.textlabel 1zadmon.graphics 0zhtml.stylesheet "%s"rzhtmlhelp.chm "%s"z.chmzhtmlhelp.hhp "%s"z.hhpzhtmlhelp.hhk "%s"z.hhkzhtmlhelp.hhc "%s"z.hhcÚbookztoc.section.depth 1zchunk.section.depth 0rrÑz --stringparam )*rBrCrDrÏr,rrWÚlowerróÚdestination_dirrürlrñr&Ú resource_dirsÚresource_filesÚresource_manifestr_r r<rÔÚ expanduserÚ expandvarsr‡Ú startswithrKÚ mimetypesÚadd_typerPÚCONF_DIRr5ÚdoctyperäÚ attributesræÚiconsÚ icons_dirÚ stylesheetÚbasenamerêrèr) r¢rSÚrrXÚmimetypeÚdÚattrÚparamsÚos r"rãzA2X.process_optionsàsÇ€ô�w‰w�~‰~˜d×0Ñ0Ô1Ü Ð+¨d×.@Ñ.@Ñ@Ô AÜŸW™WŸ_™_¨T×-?Ñ-?Ó@ˆÔÜ �7‰7× Ñ ˜D×.Ñ.Ó /°Ñ 2× 8Ñ 8Ó :¸fÒ DØ!%ˆDÕ à!&ˆDÔ Ø×#Ò#Ü#%§7¡7§?¡?°4×3EÑ3EÓ#FˆDÕ ä—7‘7—=‘= ×!5Ñ!5Ô6ÜÐ3°d×6JÑ6JÑJÔKÜ#%§7¡7§?¡?°4×3GÑ3GÓ#HˆDÔ Ø�{‰{Ð"UÑUÜÐgÔhØˆÔØ ˆÔØ × !Ò !Ü—7‘7—>‘> $×"8Ñ"8Ô9ÜÐ5¸×8NÑ8NÑNÔOÜ�d×,Ñ,Ô-°Û�AØ—N‘N×)Ñ)¨!¯'©'«)Õ4ñ÷.𗕈AÜ—‘×"Ñ" 1Ó%ˆAÜ—‘×"Ñ" 1Ó%ˆAØ�z‰z˜#Œ !§*¡*¨TÔ"2Ü—7‘7—=‘= Ô#Ø×&Ñ&×-Ñ-¨aÕ0äÐ8¸1Ñ<Õ=Ü—‘—‘˜qÔ!Ø×"Ñ"×)Ñ)¨!Õ,Ø—‘˜cÔ" s¨a¡xØ !§¡¨£ ‘ ��XÜ×"Ñ" 8¨SÖ1à×#Ñ#×*Ñ*¨1Ö-ð ó+ˆAÜ—‘— ‘ œX qÓ)ˆAÜ�w‰w�}‰}˜QÕØ×"Ñ"×)Ñ)¨!Õ,ð+ô Ð$ t×':Ñ':Ñ:Ô;ÜÐ*¨T×-?Ñ-?Ñ?Ô@Ø�|Š| § ¡ ¨yÒ 8Ø$ˆDŒLØ �<Š<Ø × Ñ × %Ñ % {°D·L±LÐ&AÔ BØ—O”OˆDØ × Ñ × %Ñ % }°dÐ&;Õ <ð$ð �<Š<Ø × Ñ × %Ñ % nÔ 5Ø × Ò  Ñ &Õ Ø �:Š:˜ŸšòˆFð �~Š~ØØ/°$·.±.Ñ@Ø:¸T¿^¹^ÑKØ/°$·.±.Ñ@ðñ‘ò ˆFð �?Š?Ø Ð-°·±Ñ?Ð@Ñ @ˆFØ �;‰;˜*Ò $Ø Ð*¨T¯]©]¸6Ó-BÑBØ*¨T¯]©]¸6Ó-BÑBØ*¨T¯]©]¸6Ó-BÑBØ*¨T¯]©]¸6Ó-BÑBðDñ DˆFð �<‰<˜6Ò !Ø Ð,Ð-Ñ -ˆFà Ð.Ð/Ñ /ˆFÛˆAØ�w‰w‹y˜‰|˜CÑ t×'9Ñ'9Ò9Ø×"Ò"Ð&7¸!Ñ&;Ñ;Ö"ðð �=Š=؈D�Hð ÷I.Ñ-ús Ç/1XØX)cót—tjj|j|j |««S)zž Return name of file or directory in the destination directory with the same name as the asciidoc source file but with extension ext. )rBrCrPr"r1©r¢rXs r"rôz A2X.dst_path?s(€ô �w‰w�|‰|˜D×0Ñ0°$·-±-ÀÓ2DÓEÐEr$cóš—tjjtjj|j«d«|zS)zb Return the base name of the asciidoc source file but with extension ext. r)rBrCr1rWrÏr9s r"r1z A2X.basenameFs8€ô �w‰w×Ѥ§¡× 0Ñ 0°×1CÑ1CÓ DÀQÑ GÓHÈ3ÑNÐNr$cóâ—tjjt|«}tjj |«st d|z«tjj |«S)zÖ Return full path name of file in asciidoc configuration files directory. Search first the directory containing the asciidoc executable then the global configuration file directory. rû)rBrCrPr+rDr,r¿)rCrSs r"Úasciidoc_conf_filezA2X.asciidoc_conf_fileMsK€ô �G‰G�L‰Lœ 4Ó (ˆÜ�w‰w�~‰~˜aÔ Ü Ð0°1Ñ4Ô 5Ü�w‰w×Ñ Ó"Ð"r$Ncó²—|j� |jS|s|jdz}|jtjj d|««S)zÅ Return full path name of file in asciidoc docbook-xsl configuration directory. If an XSL file was specified with the --xsl-file option then it is returned. z.xslz docbook-xsl)rÉrñr<rBrCrP)r¢r@s r"Úxsl_stylesheetzA2X.xsl_stylesheetYsI€ð �=‰=Ð $Ø—=‘=Ð ÙØŸ ™  fÑ,ˆIØ×&Ñ&¤r§w¡w§|¡|°MÀ9Ó'MÓNÐNr$có —|dd}|t|ddd„«z }|t|dd«z }||jz }tt|««}|j «|D�]$}d|vr|j d«\}}|s|}n|x}}t jj|«}t jj|«}t jj|«rtd|z«|jt j«rtd |z«t jj||«}t jj||«}t jj|«s’|jD]T}t jj||«}t!|t jj#|««} | sŒO| d }n0t jj|«std |z«�Œ®t jj|«t jj|«k7s�Œït jj%|«} t'| «t)||«�Œ'y) a| Search html_files for images and CSS resource URIs (html_files can be a list of file names or a single file name). Copy them from the src_dir to the dst_dir. If not found in src_dir then recursively search all specified resource directories. Optional additional resources files can be passed in the resources list. NÚlinkÚhrefcó*—|jd«dk(S)NÚtypeztext/css)rM)r¤s r"Úz$A2X.copy_resources..us€˜%Ÿ)™) FÓ+¨zÒ9r$Úimgrsrzabsolute resource file name: %sz/resource file outside destination directory: %srzmissing resource: %s)r»r$r:rµr¶rKrBrCr¿Úisabsr,r(ÚpardirrPrDr#rÂr1rürnru) r¢Ú html_filesÚsrc_dirrËr rSrsrtr4ÚfoundÚdstdirs r"Úcopy_resourceszA2X.copy_resourcesfsñ€ð™a�Lˆ Ø”^Ø Ø Ø Ù 9ó  ñ ˆ ð ”^ J°°uÓ=Ñ=ˆ Ø�T×(Ñ(Ñ(ˆ Üœ˜Y›Ó(ˆ Ø�‰Ô܈AØ�a‰xØŸ7™7 3›<‘��SÙØ‘Cà� ��cÜ—'‘'×"Ñ" 3Ó'ˆCÜ—'‘'×"Ñ" 3Ó'ˆCÜ�w‰w�}‰}˜SÔ!ÜÐ5¸Ñ;Ô<Ø�~‰~œbŸi™iÔ(ÜÐEÈÑKÔLÜ—'‘'—,‘,˜w¨Ó,ˆCÜ—'‘'—,‘,˜w¨Ó,ˆCÜ—7‘7—>‘> #Ô&Ø×+Ô+�AÜŸ™Ÿ ™  W¨aÓ0�AÜ& q¬"¯'©'×*:Ñ*:¸3Ó*?Ó@�EÚØ# A™h˜Ùð ,ôŸ7™7Ÿ>™>¨#Ô.ÜÐ2°SÑ8Ô9Ùä�w‰w×Ñ Ó$¬¯©×(8Ñ(8¸Ó(=Ô=ÜŸ™Ÿ™¨Ó-�ܘvÔ&ܘ3 Ö$ñ=r$có4—td|jz«y)zþ Convert AsciiDoc source file to a backend output file using the global 'to_' function (loaded from backend plugin a2x-backend.py file). Executes the global function in an A2X class instance context. z to_%s(self)N)Úevalrîrõs r"rïzA2X.to_backend›s€ô ˆ]˜TŸ\™\Ñ )Õ*r$c óš—|jd«}|jr.tjj |«st d|z«y|j dd}|jd«|jdd|jzf«|jd|f«tdj|««tjtd g|z|jgz««|jsWtrPgd ¢}d tj vr|jd «t#d t›ddj%|«›d|›d �«yyy)z† Use asciidoc to convert asciidoc_file to DocBook. args is a string containing additional asciidoc arguments. râzmissing docbook file: %sN)rùráú-aú a2x-format=%srúzexecuting: asciidoc {}r )z--nonetz--nooutz--validÚSGML_CATALOG_FILESz --catalogsrprÄrÑrÅ)rôrórBrCrDr,rär<rñr5r Úclir?rÏÚ no_xmllintÚXMLLINTrLr�rP)r¢Ú docbook_filerÖÚxmllint_optionss r"Ú to_docbookzA2X.to_docbook¤s€ð —}‘} VÓ,ˆ Ø × Ò Ü—7‘7—>‘> ,Ô/ÜÐ.°Ñ=Ô>Ø Ø×$Ñ$¡QÐ'ˆØ�‰Ð/Ô0Ø�‰˜˜o°· ± Ñ;Ð<Ô=Ø�‰˜  lÐ3Ô4äÐ(×/Ñ/°Ó8Ô9ä� ‰ ”W˜j˜\¨GÑ3°t×7IÑ7IÐ6JÑJÓKÔLØ�Š¥7Ú?ˆOØ#¤r§z¡zÑ1Ø×&Ñ& |Ô4Ý ¦G¨S¯X©X°oÕ-FÊ ÐUÕ Vð $+ˆr$cód—|j«|jd«}|jd«}|j›d|›d�}t|j «||j |«t jj|j«}|j|||j «y)Nrâz.htmlú --output "rp) rXrôrêrÎr>r"rBrCrürÏrL)r¢rVÚ xhtml_filerÌrIs r"Úto_xhtmlz A2X.to_xhtml¼s†€Ø �‰ÔØ—}‘} VÓ,ˆ Ø—]‘] 7Ó+ˆ Ø%)×%7Ó%7ºÐDˆÜ�d×)Ñ)Ó+¨\¸4×;OÑ;OÐQUÔVÜ—'‘'—/‘/ $×"4Ñ"4Ó5ˆØ ×јJ¨°×1EÑ1EÕFr$cóª—|j«|jd«}|j}t|j «||j |«y)Nrâ)rXrôrêrÎr>r")r¢rVrÌs r"Ú to_manpagezA2X.to_manpageÅsC€Ø �‰ÔØ—}‘} VÓ,ˆ Ø×!Ñ!ˆÜ�d×)Ñ)Ó+¨\¸4×;OÑ;OÐQUÕVr$có^—|jr|j«y|j«yr3)rÚexec_fopÚ exec_dblatexrõs r"Úto_pdfz A2X.to_pdfËs€Ø �8Š8Ø �M‰M�Oà × Ñ Õ r$c ó|—|j«|jd«}|jd«}|jd«}|jd«}|j›d|›d�}t |||j |«t dt›d|j›d|›d |›d� «|js t|«yy) Nrâzfo.xslz.foz.pdfrZrprÄz -fo "z" -pdf ") rXrôr>rêrÎr"r�ÚFOPrèròrz)r¢rVÚxslÚfoÚpdfrÌs r"r`z A2X.exec_fopÑs”€Ø �‰ÔØ—}‘} VÓ,ˆ Ø×!Ñ! (Ó+ˆØ �]‰]˜5Ó !ˆØ�m‰m˜FÓ#ˆØ%)×%7Ó%7ºÐ<ˆÜ�c˜<¨×)=Ñ)=¸tÔDÝ ®c°4·=³=Â"ÂcÐJÔKØ×"Ò"Ü �R�Lð#r$cón—|j«|jd«}|jtjj dd««}|jtjj dd««}t dt›d|j›d|›d|›d |j›d |›d� «y) Nrârzasciidoc-dblatex.xslzasciidoc-dblatex.styrpz" -t z -p "z" -s "rÄrÅ) rXrôr<rBrCrPr�ÚDBLATEXrñræ)r¢rVreÚstys r"razA2X.exec_dblatexÝs€€Ø �‰ÔØ—}‘} VÓ,ˆ Ø×%Ñ%¤b§g¡g§l¡l°9Ð=SÓ&TÓUˆØ×%Ñ%¤b§g¡g§l¡l°9Ð=SÓ&TÓUˆÝ Þ�t—{“{¢Cª¨d×.?Ó.?ÂðOõ Pr$có$—|j«yr3©rarõs r"Úto_dviz A2X.to_dviåó€Ø ×ÑÕr$có$—|j«yr3rlrõs r"Úto_psz A2X.to_psèrnr$có$—|j«yr3rlrõs r"Úto_texz A2X.to_texërnr$có$—|j«yr3)Ú to_chunkedrõs r"Ú to_htmlhelpzA2X.to_htmlhelpîs €Ø �‰Õr$có>—|j«|jd«}|j}|j«}|jdk(r|jd«}n |jdk(r|jd«}d|vr%|dt j j«zz }t«t|«t|||j|«t|d«}t j j|j«}|j|||«y) Nrârz.chunkedrz .htmlhelpz base.dir z --stringparam base.dir "%s/"ú*.html)rXrôrêr>rñrBrCr1r}rnrÎr"rÂrürÏrL)r¢rVrÌrÉrËrHrIs r"rtzA2X.to_chunkedñsè€Ø �‰ÔØ—}‘} VÓ,ˆ Ø×!Ñ!ˆØ×&Ñ&Ó(ˆØ �;‰;˜)Ò #Ø—m‘m JÓ/‰GØ �[‰[˜JÒ &Ø—m‘m KÓ0ˆGØ ˜dÑ "Ø Ð3´b·g±g×6FÑ6FÀwÓ6OÑOÑ OˆDä�WÔÜ�wÔÜ�h  ¨d×.BÑ.BÀDÔIÜ ¨Ó2ˆ Ü—'‘'—/‘/ $×"4Ñ"4Ó5ˆØ ×јJ¨°Õ9r$có—tjj|«}g}tjtjj|««D]¦\}}}|D]›}tjj ||«}tjj |«sŒC|j |«sJ‚d|t|«dz}tjj|«}|dvsŒ‹|j|«Œ�Œ¨tjjjt|««}g} |jd«d} | jd«D]C} | j!d«}tjj|«}| j|«ŒEd} |D]Å}|| vsŒ| dz } t#d |z«|j%d«} | j'd|j)tjj*d ««| j'd d | z«t-j.|«d}|€t1d |z«| j'd|«| j3| «ŒÇ| dkDrt5||j7««yy)z‘ Scan the OEBPS directory for any files that have not been registered in the OPF manifest then add them to the manifest. rN)ú content.opfÚmanifestrÚitemrAr zadding to manifest: %srÚidza2x-%dzunknown mimetype: %sz media-type)rBrCrür½rPrDr(rr¿r<ÚxmlÚdomÚminidomÚ parseStringrfÚgetElementsByTagNameÚ getAttributer5Ú createElementÚ setAttributeÚreplaceÚsepr)Ú guess_typer,Ú appendChildrcÚtoxml)r¢Úopf_fileÚopf_dirr$rRrÁr·rSÚopfÚmanifest_filesrzÚelÚcountr{r3s r"Úupdate_epub_manifestzA2X.update_epub_manifests€ô —'‘'—/‘/ (Ó+ˆØˆÜ "§¡¬¯©¯©¸Ó(AÖ BÑ ˆQ��eÛ�Ü—G‘G—L‘L  AÓ&�Ü—7‘7—>‘> !Õ$ØŸ<™<¨Ô0Ð0Ð0ؘa¤ G£   Ð.Ñ.�AÜŸ™×(Ñ(¨Ó+�AØ Ò/Ø&×-Ñ-¨aÕ0ñð!Cô�g‰g�o‰o×)Ñ)¬)°HÓ*=Ó>ˆØˆØ×+Ñ+¨JÓ7¸Ñ:ˆØ×/Ñ/°Ö7ˆBØ—‘ Ó'ˆAÜ—‘× Ñ  Ó#ˆAØ × !Ñ ! !Õ $ð8ðˆÛˆAؘÒ&ؘ‘ �ÜÐ0°1Ñ4Ô5Ø×(Ñ(¨Ó0�Ø×!Ñ! &¨!¯)©)´B·G±G·K±KÀÓ*EÔFØ×!Ñ! $¨°5Ñ(8Ô9Ü$×/Ñ/°Ó2°1Ñ5�ØÐ#ÜÐ.°Ñ2Ô3Ø×!Ñ! ,°Ô9Ø×$Ñ$ TÕ*ð ð �1Š9Ü �x §¡£Õ -ð r$cóÄ—|j«|j«}|jd«}|jd«}|dz}t|«t |«t ||||j «tjj|j«}tjj|d«}tjj|d«}t|dd«}t|d«} |j| |||«|j|«tj «} t#|« |j$s÷t'j(|d «} t+d «t-d d «| j/d t&j0¬ «tj2d«D]\} } }|D]t}tjj5tjj| |««}|d k7sŒFt+d|z«| j/|t&j6¬ «ŒvŒ� | j9«t+d|z«t#| «|j:s t|«|j<r@t>r9tAt>«stCdt>z«ytEdt>›d|›d�«yyy#| j9«wxYw#t#| «wxYw)Nrâz.epubz.dÚOEBPSryr{rArwÚwzarchiving: mimetyper3zapplication/epub+zip)Ú compress_typerz archiving: %szcreated archive: %sz0epubcheck skipped: unable to find executable: %srprÆ)#rXr>rôr}rnrÎrêrBrCrürÏrPr»rÂrLr�rÇrjr6ÚzipfileÚZipFiler5rcr`Ú ZIP_STOREDr½r¿Ú ZIP_DEFLATEDr´ròrÚ EPUBCHECKrZr&r�)r¢rÉrVÚ epub_fileÚ build_dirrIrËrŠÚ opf_resourcesrHrÍÚ zip_archiverRrÁr·rSs r"Úto_epubz A2X.to_epub+s7€Ø �‰ÔØ×&Ñ&Ó(ˆØ—}‘} VÓ,ˆ Ø—M‘M 'Ó*ˆ Ø Ñ$ˆ Ü�YÔÜ�yÔ!ä�h  ¨i¸×9KÑ9KÔLô—'‘'—/‘/ $×"4Ñ"4Ó5ˆÜ—'‘'—,‘,˜y¨'Ó2ˆÜ—7‘7—<‘< ¨Ó7ˆÜ& x°¸Ó@ˆ Ü ¨Ó2ˆ Ø ×јJ¨°¸-ÔHà ×!Ñ! (Ô+ä�i‰i‹kˆÜ�Ôð Ø—<’<Ü%Ÿo™o¨i¸Ó=� ð (äÐ1Ô2ܘzÐ+AÔBØ×%Ñ% jÄ×@RÑ@RÐ%ÔSä,.¯G©G°C®LÑ(˜˜D %Û!&˜AÜ "§¡× 0Ñ 0´·±·±¸aÀÓ1BÓ C˜AØ  J›Ü '¨¸!Ñ(;Ô <Ø +× 1Ñ 1°!Ä7×CWÑCWÐ 1Õ Xñ "'ñ-9ð ×%Ñ%Ô'Ü Ð)¨IÑ5Ô 6ä �SŒMØ×"Ò"Ü ˜Ô #Ø �>Š>�iÜ"¤9Ô-ÜÐJÌYÑVÕWå¦Y² Ð:Õ;ð (ˆ>øð  ×%Ñ%Õ'ûô �S�Mús+Ä="KÅ BJ=Ç<3J=È0KÊ=KËKË Kc ó—|jd«}|jd«}|jrÈ|jdd}|jd|j d«f«|jd«|jdd|j zf«|jd|f«t jtd g|z|jgz««d t›d t›d |›d |›d � }t|«n{|j«|jd«}|j›d|›d �}t|j!«||j"|«d t$›d t&›d |›d |›d � }t|«|j(s t+|«yy)Nz.textz .text.htmlú --conf-filez text.conf)ú-bÚhtml4rPrQz-or rprÄrÅz" > "rârZ)rôrrär<r<rñr rSr?rÏÚLYNXÚ LYNX_OPTSr�rXrêrÎr>r"ÚW3MÚW3M_OPTSròrz)r¢Ú text_fileÚ html_filerÖr�rVrÌs r"Úto_textz A2X.to_text_s8€Ø—M‘M 'Ó*ˆ Ø—M‘M ,Ó/ˆ Ø �9Š9Ø×(Ñ(©Ð+ˆGØ �N‰N˜M¨4×+BÑ+BÀ;Ó+OÐPÔ QØ �N‰N˜?Ô +Ø �N‰N˜D /°D·K±KÑ"?Ð@Ô AØ �N‰N˜D )Ð,Ô -Ü �L‰Lœ * °Ñ!7¸4×;MÑ;MÐ:NÑ!NÓOÕ PÞ+/¶ºIÂyÐQˆCÜ �#�Jð �O‰OÔ ØŸ=™=¨Ó0ˆLØ)-×);Ó);ºYÐGˆDÜ ˜$×-Ñ-Ó/°Ø×(Ñ(¨$õ 0æ+.¶º)ÂYÐOˆCÜ �#ŒJØ×"Ò"Ü �YÕ ð#r$r3)r­r®r¯Ú__doc__rörrãrôr1Ú staticmethodr<r>rLrïrXr\r^rbr`rarmrprrrurtr�ržr©r0r$r"rÞrÞ”s�„ñò,ò&20òh]ò~FòOðñ #óð #ó OðFHó3%òj+òWò0GòWò  ò òPòòòòò:ò&%.òN2<óh r$rÞc óŠ—d}ddlm}ddl}|dt›dt›�|¬«}|j ddd d gd d ¬ «|j dd dgdd¬ «|j ddddd¬«|j ddddd¬«|j dddd dd!d"¬ «|j d#d$dd%d&d'd(¬)«|j d*d+dd,d-d.¬/«|j d0dd1dd2¬«|j d3d4dd5d6d7d8d9¬:«|j d;dddd?dd!d@¬ «|j dAdBddCddD¬«|j dEddFddG¬«|j dHdIddJddK¬«|j dLdMddNddO¬«|j dPdQd dRgd!dS¬ «|j dTdUddVddWdX¬ «|j dYd dRgd!dZ¬ «|j d[d\dd]dd^¬«|j d_dd`ddadb¬ «|j dcddddd¬«|j ded dfgdgdh¬ «|j did djgdkdl¬ «|j dmddnddo¬«|j dpd dqgdrds¬ «|j dtd dugdvdw¬ «|j dxddydzd{¬/«|j d|d}d~ddd€¬«t |«d�k(r|jd‚g«t|dƒ«}||d�dz}|j|«\}}t |«d�k7r|jd„«|jdj|j««|_ dj|j«|_ dj|j«|_dj|j«|_dj|j «|_|||fS)…NzUA toolchain manager for AsciiDoc (converts Asciidoc text files to other file formats)r)Ú OptionParserz"usage: %prog [OPTIONS] SOURCE_FILErÑ)ÚusageÚversionÚ descriptionrPrr<r-Ú ATTRIBUTEzset asciidoc attribute value)ÚactionÚdestÚdefaultÚmetavarÚhelpz--asciidoc-optsräråzasciidoc optionsz--copyÚ store_truerrFzDEPRECATED: does nothing)r²r³r´r¶r rrzconfiguration file)r³r´rµr¶z-Dz--destination-dirÚstorer"rJz4output directory (defaults to SOURCE_FILE directory)z-drr,ÚDOCTYPE)Úarticlerr zarticle, manpage, book)r²r³rµÚchoicesr¶r¡rùrîÚBACKENDzname of backend plugin)r²r³rµr¶z --epubcheckrz check EPUB output with epubcheckz-fz--formatrñÚFORMATrg) rrrrrgÚtextrÚdviÚpsÚtexrázIchunked, epub, htmlhelp, manpage, pdf, text, xhtml, dvi, ps, tex, docbook)r²r³rµr´r»r¶z--iconsr.z,use admonition, callout and navigation iconsz --icons-dirr/z(admonition and navigation icon directoryz-kz--keep-artifactsròz#do not delete temporary build filesz--lynxrzuse lynx to generate text filesz-Lz --no-xmllintrTz)do not check asciidoc output with xmllintz-nz --dry-runr6z5just print the commands that would have been executedz-rz --resourcer z4resource file or directory containing resource filesz-mz--resource-manifestr%ÚFILEzread resources from FILEz--resource-dirzDEPRECATED: use --resourcez-sz--skip-asciidocrózDEPRECATED: redundantz --stylesheetr0Ú STYLESHEETzHTML CSS stylesheet file namez--safeÚsafez--dblatex-optsrærçzdblatex optionsz--backend-optsrìrízbackend plugin optionsz--foprzuse FOP to generate PDF filesz --fop-optsrèrézoptions for FOP pdf generationz--xsltproc-optsrêrëz$xsltproc options for XSL stylesheetsz --xsl-filerÉÚXSL_FILEzcustom XSL stylesheetz-vrr�r5zincrease verbosityr z--helpéÿÿÿÿzincorrect number of arguments)Úoptparser­ÚshlexrÚVERSIONÚ add_optionrÚ parse_argsrÜÚerrorrKrPrärærèrêrì) Úargvr°r­rÈr¸Úsource_optionsÚnew_argvrÌÚargss r"rËrËxs€Øm€KÝ%ÛÙ Ð DÞ¥Ð(Øô!€Fð ×Ñ�d˜Mؘl°BÀ Ø +ðô-ð ×ÑÐ'ؘo°rØÐ&8ðô:ð ×Ñ�hØ &°%Ø 'ðô)ð ×Ñ�mØ  $° Ø !ðô#ð ×Ñ�dÐ/ØÐ.¸ÀfØ CðôEð ×Ñ�d˜;ؘY° Ø,Ø %ðô'ð ×Ñ�d˜;ؘY° Ø %ðô'ð ×Ñ�mØ +°uØ /ðô1ð ×Ñ�d˜:ؘX¨xÀ5ð5à Xð ôZð  ×Ñ�iØ '°5Ø ;ðô=ð ×Ñ�mؘ[ؘfØ 7ðô9ð ×Ñ�dÐ.ØÐ"2¸EØ 2ðô4ð ×Ñ�hØ &°%Ø .ðô0ð ×Ñ�d˜NØ ,¸Ø 8ðô:ð ×Ñ�d˜;Ø )°UØ DðôFð ×Ñ�d˜<ؘk°2ØØ CðôEð ×Ñ�dÐ1ØÐ0¸$ÈØ 'ðô)ð ×ÑÐ&ؘk°2ØØ )ðô+ð  ×Ñ�dÐ,Ø /¸5Ø $ðô&ð ×Ñ�nؘ\°4ØØ ,ðô.ð  ×Ñ�hØ &°%Ø 'ðô)ð ×ÑÐ&ؘn°bØÐ%6ðô8ð ×ÑÐ&ؘn°bØÐ%=ðô?ð ×Ñ�gØ %°Ø ,ðô.ð ×Ñ�lؘj°"ØÐ!AðôCð ×ÑÐ'ؘo°rØÐ&LðôNð ×Ñ�lؘZ°Ø $ðô&ð ×Ñ�d˜KؘY°Ø !ðô#ô ˆ4ƒy�A‚~Ø×ј8˜*Ô%Ü'¨¨R©Ó1€NØ  Q R Ñ(€HØ×"Ñ" 8Ó,�J€Dˆ$Ü ˆ4ƒy�A‚~Ø� ‰ Ð4Ô5ØŸ™ S§Y¡Y¨t×/AÑ/AÓ%BÓC€DÔØŸ™ ×!2Ñ!2Ó3€DÔØ—H‘H˜TŸ]™]Ó+€D„MØŸ™ $×"4Ñ"4Ó5€DÔØŸ™ ×!2Ñ!2Ó3€DÔØ �d˜DÐ !Ð!r$cód—tjd«ttj«\}}}t t |««}t|«}|atd|z«|d|_ |j«|j«y#t$rtjd«YywxYw)NÚ__main__zargs: %rrr )r Ú set_callerrËrrÍrNr²rÞr4r5rÏrröÚKeyboardInterruptr+)rÍrÌrÐÚa2xs r"rSrSísŠ€ä ×ј Ô#Ü!¤#§(¡(Ó+Ñ€Dˆ$�Ü ”�D“ ‹?€DÜ ˆd‹)€CØ€GÜ ˆJ˜Ñ ÔØ˜Q™€CÔðØ � ‰ ŒØ � ‰ � øÜ òÜ �‰�Ž ðúsÁ- BÂB/Â.B/rÒ)r )rN)r“r™)r2r™)Tr3)r)XrªrþrBr¾Ú html.parserrr„rqr‰rr.ÚtypingrrrrÚ urllib.parserr•Úxml.dom.minidomr}r)rr Ú collectionsr ÚAttrDictrCrPrürýr+ÚMETADATAr_rSrrerÉr1rWrrŒÚASCIIDOCrÈrirdr¥r£rUr™rårírçrér¤r¦rër4r²r#r&r(Úintr,r1r5r?ÚboolrGrZrcrfrjrnrurzr}r�Úbytesrœr»rÂrÎrÜrÞrËrSr­r0r$r"Úráspðñ/ój Û ÛÝ"Û Û ÛÛ Ûß/Ó/Ý!ÛÛÛåÝ4à �7‰7�<‰<˜Ÿ™Ÿ™¨Ó1°;Ó ?€Ø €Ù ˆ"�'‰'�,‰,�r—w‘w—‘ xÓ0Ð2CÓ DÔEÈÙˆ�‰‹�8Ô÷Fà �=Ñ !€à ‡w�w×јŸ™×(Ñ(¨Ó2°1Ñ5Ó6€ð €ð €Ø €Ø €Ø €Ø €Ø €Ø €Ø € à€ Ø€ Ø€ Ø €Ø € Ø 2€Ø€ ð €ð5�ð5˜ó5ð �ð ˜ó ð"�ð"˜ó"ñˆSð˜Sð¨óó ð�ð˜óð �5˜˜u˜Ñ%ð¨$óðG˜CðG DóGòó6ó ò ò òò òó$6ðN:˜ð: 3ó:ó&òR óð/ cð/¨d°3©ió/ôla ˆ(ôa òHr"òj ð& ˆzÒÙ…Eð÷iFÑEús ÃG"Ç"G,