§
    Ü+ög\¨  ã                   ó¾  — d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZmZmZ dad ada G d„ dej        ¦  «        Z edd	¦  «         ed
¦  «        d„ ¦   «         ¦   «         ZdKd„Zd„ Zd„ ZdLd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdMd„Zd„ Zd„ Z d„ Z!dNd„Z"d„ Z#d„ Z$d„ Z% edd	¦  «         ed ¦  «        d!„ ¦   «         ¦   «         Z&d"„ Z'd#„ Z(d$„ Z)dOd%„Z*d&„ Z+d'„ Z,d(„ Z-d)„ Z.d*„ Z/i fd+„Z0d,„ Z1d-„ Z2dLd.„Z3d/„ Z4dMd0„Z5dMd1„Z6dMd2„Z7dMd3„Z8d4„ Z9d5„ Z:d6gfd7„Z;d6gd8d9gfd:„Z<d d6gdddfd;„Z=dPd=„Z>dPd>„Z?dPd?„Z@d d6gd<dfd@„ZAdA„ ZB	 	 	 dQdB„ZCdC„ ZDdRdE„ZEdF„ ZFi fdG„ZGdH„ ZHdI„ ZIdMdJ„ZJdS )Sé    N)ÚBuildÚContextÚLogsÚOptionsÚUtils)ÚfeatureÚbeforeÚafterFé(   c                   ó   — e Zd ZdZdZdZdS )ÚTestContextz	Run testsÚtestN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚcmdÚfun© ó    ú*/git_repos/avwlv2/waflib/extras/autowaf.pyr   r      s   € € € € € Ø€KØ
€CØ
€C€C€Cr   r   ÚcÚcxxÚapply_incpathsc                 ót   — | j                              d| j        j                             ¦   «         ¦  «         d S )NÚINCPATHS)ÚenvÚappend_valueÚbldÚbldnodeÚabspath©Úselfs    r   Úinclude_config_hr$      s3   € ð 	„H×Ò˜* d¤hÔ&6×&>Ò&>Ñ&@Ô&@ÑAÔAÐAÐAÐAr   c                 óÜ  — t           dk    rdS |                      d¦  «        }|                     ddd¬¦  «         |                     ddd	¬¦  «         |                     d
dd¬¦  «         |                     ddd¬¦  «         |                     ddd¬¦  «         |                     ddd¬¦  «         |                     ddd¬¦  «         |r|                     ddddd¬¦  «         n5|                     dddddd¬¦  «         |                     dddd d!¬¦  «         |                     d"d#ddd$d%¬¦  «         |                     d&ddd'd(¬¦  «         |                     d)ddd*d+¬¦  «         |r||                      d,d-¦  «        }|                     d.d/dd0d1¬2¦  «         |                     d3dd4d5¬2¦  «         |                     d6dd7d8¬9¦  «         |                     d:ddd;d<¬¦  «         d=a dS )>z:Add standard autowaf options if they havn't been added yetr   NzConfiguration optionsz--bindirÚstringz)executable programs [default: PREFIX/bin])ÚtypeÚhelpz--configdirz(configuration data [default: PREFIX/etc]z	--datadirz#shared data [default: PREFIX/share]z--includedirz&header files [default: PREFIX/include]z--libdirzlibraries [default: PREFIX/lib]z--mandirz#manual pages [default: DATADIR/man]z--docdirz)HTML documentation [default: DATADIR/doc]z
--optimizeÚstore_falseTÚdebugzbuild optimized binaries)ÚactionÚdefaultÚdestr(   z-dz--debugÚ
store_trueFzbuild debuggable binariesz
--pardebugÚpardebugz#build debug libraries with D suffixz-sz--strictÚstrictz/use strict compiler flags and show all warningsz--ultra-strictÚultra_strictz2use extremely strict compiler flags (likely noisy)z--docsÚdocsz&build documentation (requires doxygen)zTest optionsÚ z-Tz--testÚbuild_testszbuild unit tests©r+   r-   r(   z--no-coverageÚno_coveragez(do not instrument code for test coveragez	--wrapperÚtest_wrapperz(command prefix for tests (e.g. valgrind))r'   r-   r(   z--verbose-testsÚverbose_testszalways show test outputé   )Úg_stepÚget_option_groupÚ
add_optionÚadd_option_group)ÚoptÚdebug_by_defaultr   ÚoptsÚ	test_optss        r   Úset_optionsrB   "   s  € õ �‚z€zØˆà×ÒÐ 7Ñ8Ô8€Dð 	‡O‚O�J XØDð ñ Fô Fð Fà‡O‚O�M¨ØCð ñ Eô Eð Eà‡O‚O�K hØ>ð ñ @ô @ð @à‡O‚O�N¨ØAð ñ Cô Cð Cà‡O‚O�J XØ:ð ñ <ô <ð <à‡O‚O�J XØ>ð ñ @ô @ð @à‡O‚O�J XØDð ñ Fô Fð Fð ð DØ�Š˜¨]ÀDØ$Ð+Eð 	ñ 	Gô 	Gð 	Gð 	Gð 	�Š˜˜i°ÀeØ$Ð+Fð 	ñ 	Hô 	Hð 	Hà�Š˜¨\À5Ø'ØBð 	ñ 	Dô 	Dð 	Dð 	‡O‚O�D˜*¨\À5Ø!ØJð ñ Lô Lð Lð 	‡O‚OÐ$¨\À5Ø'ØMð ñ Oô Oð Oð 	‡O‚O�H \¸5ÀvØAð ñ Cô Cð Cð ð =Ø×(Ò(¨¸Ñ<Ô<ˆ	Ø�Š˜˜h¨|À-Ø/ð 	ñ 	1ô 	1ð 	1à�Š˜°Ø*ØGð 	ñ 	Iô 	Ið 	Ið 	×Ò˜[¨xØ"0Ø"Lð 	ñ 	Nô 	Nð 	Nð 	×ÒÐ.°|Ø%*°Ø";ð 	ñ 	=ô 	=ð 	=ð €F€F€Fr   c           	      óš   — |                      ¦   «         D ]5\  }}|                      d|z   d|                     dd¦  «        |¬¦  «         Œ6d S )Nz--r.   ú-Ú_r5   )Úitemsr<   Úreplace)r>   ÚflagsÚnameÚdescs       r   Ú	add_flagsrK   _   sb   € Ø—k’k‘m”mð ?ð ?‰
ˆˆdØ�Š�t˜d‘{¨<Ø ŸLšL¨¨cÑ2Ô2¸ð 	ñ 	?ô 	?ð 	?ð 	?ð?ð ?r   c                 óh   — |dk    r| j         S |dk    r| j        S t          j        d|z  ¦  «         d S )Nr   r   zUnknown header language `%s')Úcheck_ccÚ	check_cxxr   Úerror)ÚconfÚlangs     r   Úget_check_funcrR   d   s@   € Øˆs‚{€{ØŒ}ÐØ	�ŠˆØŒ~ÐåŒ
Ð1°DÑ8Ñ9Ô9Ð9Ð9Ð9r   r3   Tc                 ól   — t          | |¦  «        }|dk    r ||||¬¦  «         dS  |||¬¦  «         dS )zCheck for a headerr3   )Úheader_nameÚdefine_nameÚ	mandatory)rT   rV   N)rR   )rP   rQ   rI   ÚdefinerV   Ú
check_funcs         r   Úcheck_headerrY   l   sb   € å  dÑ+Ô+€JØ�‚|€|Øˆ
˜tØ%Ø&ð	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	ˆ
˜t¨yÐ9Ñ9Ô9Ð9Ð9Ð9r   c                 óÎ   — t          j        |d         ¦  «        }d                     d„ |D ¦   «         ¦  «        }d|›d|›d�}t          | |¦  «        }d|z  |d<    |dd	|i|¤Ž d
S )zCheck for a functionrT   r3   c                 ó   — g | ]}d |z  ‘ŒS )z#include <%s>
r   )Ú.0Úxs     r   ú
<listcomp>z"check_function.<locals>.<listcomp>y   s   € ÐDÐDÐD°!Ð)¨AÑ-ÐDÐDÐDr   ú
z"
int main() { return !(void(*)())(z); }
zChecking for %sÚmsgÚfragmentNr   )r   Úto_listÚjoinrR   )rP   rQ   rI   ÚargsÚheader_namesÚincludesra   rX   s           r   Úcheck_functionrg   v   sŽ   € å”=  mÔ!4Ñ5Ô5€LØ�wŠwÐDÐD°|ÐDÑDÔDÑEÔE€H€Hð €x€x���ð€Hõ
 !  tÑ,Ô,€JØ# dÑ*€Dˆ�KØ€JÐ)Ð)˜Ð) DÐ)Ð)Ð)Ð)Ð)r   c                 ó¦   — |                       dd¦  «                              dd¦  «                              dd¦  «                              dd¦  «        S )Nú/rE   z++ÚPPrD   ú.)rG   )rI   s    r   Únameifyrl   ƒ   sE   € Ø�LŠL˜˜cÑ"Ô"×*Ò*¨4°Ñ6Ô6ßŠW�S˜#ÑÔŸwšw s¨CÑ0Ô0ð2r   c                 óF   — |                       ||¦  «         || j        |<   d S ©N)rW   r   )rP   Úvar_nameÚvalues      r   rW   rW   ‡   s(   € Ø‡K‚K�˜%Ñ Ô Ð Ø€D„HˆXÑÐÐr   c                 óü  — |d                               ¦   «         | j        d         v rdS  G d„ d¦  «        }dt          |d         ¦  «        z   }|| j        v}d|vp|d         }|s$d|v r | j        d	|z            }|r||d         k     rd
}|s|r| j        |         |j        k    rd
}|r„d}d|                     dd¦  «        z   }	|}
| j        j        rd|d<    | j        d|
dz   ddœ|¤Ž}|r|
dz  }
|rd
|d<   |s | j        d|
ddœ|¤Ž}|r
|
| j        |	<   d|v r|d         | j        d	|z   <   |r|j        | j        |<   n|j        | j        |<   | j        j        sŸd|v r�|d         r—| j        dt          |d         ¦  «        z            }|D ]N}d| j        v r| j         	                    dd|g¦  «         d| j        v r| j         	                    dd|g¦  «         ŒO| j         	                    dddg¦  «         dS dS dS dS )z6Check for a package iff it hasn't been checked for yetÚuselib_storeÚAUTOWAF_LOCAL_LIBSNc                   ó   — e Zd ZdZdZdS )úcheck_pkg.<locals>.CheckTyper9   é   N)r   r   r   ÚOPTIONALÚ	MANDATORYr   r   r   Ú	CheckTyperu   �   s   € € € € € ØˆØˆ	ˆ	ˆ	r   ry   ÚCHECKED_rV   Úatleast_versionÚVERSION_TÚPKG_rD   rE   FÚDz--cflags --libs)Úpackagerd   ÚsystemÚ	INCLUDES_ÚCOMPILER_CCÚCFLAGSz-isystemÚCOMPILER_CXXÚCXXFLAGSz/usr/local/includer   )
Úlowerr   rl   rw   rG   ÚPARDEBUGÚ	check_cfgrx   ÚMSVC_COMPILERr   )rP   rI   rd   ry   ro   ÚcheckrV   Úchecked_versionÚfoundÚpkg_var_nameÚpkg_namerf   Úpaths                r   Ú	check_pkgr�   ‹   sÿ  € àˆNÔ×!Ò!Ñ#Ô# t¤xÐ0DÔ'EÐEÐEØˆðð ð ð ð ñ ô ð ð �G D¨Ô$8Ñ9Ô9Ñ9€HØ˜DœHÐ$€EØ 4Ð'Ð<¨4°Ô+<€IØð Ð&¨$Ð.Ð.àœ( :°Ñ#4Ô5ˆØð 	˜°Ð6GÔ1HÒHÐHØˆEØð �Yð  4¤8¨HÔ#5¸Ô9KÒ#KÐ#KàˆØð BØˆØ §¢¨S°#Ñ 6Ô 6Ñ6ˆØˆØŒ8Ôð 	 Ø %ˆD�ÑØ"�D”Nð C¨8°c©>Ø(9ðCð CØ=AðCð CˆEàð  Ø˜C‘�Øð 	%Ø $ˆD�ÑØð 	+Ø"�D”Nð +¨8Ð:Kð +ð +Ø%)ð+ð +ˆEàð 	.Ø%-ˆDŒH�\Ñ"Ø Ð$Ð$Ø*.Ð/@Ô*AˆDŒH�Z $Ñ&Ñ'Øð 0Ø&Ô0ˆŒ�ÑÐà&Ô/ˆŒ�ÑàŒ8Ô!ð N h°$Ð&6Ð&6¸4À¼>Ð&6Ø”8˜K­'°$°~Ô2FÑ*GÔ*GÑGÔHˆØð 	Fð 	FˆDØ ¤Ð(Ð(Ø”×%Ò% h°¸TÐ0BÑCÔCÐCØ ¤Ð)Ð)Ø”×%Ò% j°:¸tÐ2DÑEÔEÐEøàŒ×Ò˜j¨:Ð7KÐ*LÑMÔMÐMÐMÐMðNð NÐ&6Ð&6Ð&6Ð&6r   c                 óÆ   — t           j        dk    r3t          j                             | ¦  «                             dd¦  «        S t          j                             | ¦  «        S )NÚwin32ú\ri   )ÚsysÚplatformÚosr�   ÚnormpathrG   )r�   s    r   r—   r—   Á   sK   € Ý
„|�wÒÐÝŒw×Ò Ñ%Ô%×-Ò-¨d°CÑ8Ô8Ð8åŒw×Ò Ñ%Ô%Ð%r   c                 óì  ‡ — t           dk    rd S ˆ fd„}t          j        j        r‰                      d¦  «         	 ‰                      d¦  «         n# t
          $ r Y nw xY wt          t          j         	                    t          j         
                    ‰ j        d         ¦  «        ¦  «        ¦  «        }t          j        j        o‰ j        j        ‰ j        d<   t          j        j        pt          j        j        ‰ j        d<   t          j        j        ‰ j        d<   |‰ j        d<   ˆ fd	„}t          j        } |d
|j        t          j                             |d¦  «        ¦  «          |d|j        t          j                             |d¦  «        ¦  «          |d|j        t          j                             |d¦  «        ¦  «          |d|j        t          j                             |d¦  «        ¦  «          |d|j        t          j                             |d¦  «        ¦  «         ‰ j        d         } |d|j        t          j                             |d¦  «        ¦  «          |d|j        t          j                             |d¦  «        ¦  «         t          j        j        rK‰ j        d         r%g d¢‰ j        d<   g d¢‰ j        d<   ddg‰ j        d<   nKdd g‰ j        d<   dd g‰ j        d<   n2‰ j        d         rg d!¢‰ j        d<   g d!¢‰ j        d<   n |d"g¦  «         ‰ j        j        r\d#t          j        _        t          j        j        r8‰ j                             dd$g¦  «         ‰ j                             dd$g¦  «         �nZt          j        j        rJd#t          j        _        ‰ j                             dg d%¢¦  «         ‰ j                             dd&g¦  «         t          j        j        rî‰ j                             dd'd(g¦  «         ‰ j        j        d)k    r‰ j                             dd*g¦  «         ‰ j                             dd+d,g¦  «          |g d-¢¦  «         g d.¢}‰                      d/g|z   d0d1¬2¦  «        r‰ j                             d|¦  «         d3‰ j        v r7‰                      d/g|z   d0d4¬5¦  «        r‰ j                             d|¦  «         ‰ j        d         s |d6g¦  «         d#‰ j        _        d0‰ j        _         	 t          j        j!        ‰ j        _         t          j        j        ‰ j        _        t          j        j        ss‰  "                    d7¦  «        rF‰ j        j#        d8          $                    d9d:¦  «        d:fD ]}‰  %                    |d;d0¬<¦  «        r nŒn‰                      d=d>d0¬?¦  «         n# t
          $ r Y nw xY wtM          tN          j(        tN          j)        d@¦  «        }tM          tN          j(        tN          j*        dA¦  «        }	| +                    ¦   «          $                    dBdC¦  «         $                    dDdC¦  «        }
tY          ‰ |
dEz   |	¦  «         ‰ j         -                    ddFt          j         	                    dD¦  «        z   ¦  «         ‰ j         -                    ddFt          j         	                    dD¦  «        z   ¦  «         dGa d S )HNr9   c                 ót   •— ‰j                              d| ¦  «         ‰j                              d| ¦  «         d S )Nrƒ   r…   )r   r   )rH   rP   s    €r   Úappend_cxx_flagsz#configure.<locals>.append_cxx_flagsÌ   s9   ø€ ØŒ×Ò˜h¨Ñ.Ô.Ð.ØŒ×Ò˜j¨%Ñ0Ô0Ð0Ð0Ð0r   ÚdoxygenÚclang_compilation_databaseÚPREFIXÚDOCSÚDEBUGr‡   c                 ól   •— |rt          |¦  «        ‰j        | <   d S t          |¦  «        ‰j        | <   d S rn   )r—   r   )Úvarr>   r,   rP   s      €r   Ú
config_dirzconfigure.<locals>.config_dirß   s7   ø€ Øð 	.Ý$ S™MœMˆDŒH�S‰MˆMˆMå$ WÑ-Ô-ˆDŒH�S‰MˆMˆMr   ÚBINDIRÚbinÚ
SYSCONFDIRÚetcÚDATADIRÚshareÚ
INCLUDEDIRÚincludeÚLIBDIRÚlibÚMANDIRÚmanÚDOCDIRÚdocr‰   )z/Odz/Z7z/MTdú/FSrƒ   r…   z/DEBUGz	/MANIFESTÚ	LINKFLAGSz-O0z-g)z/MDr±   z/DNDEBUGz-DNDEBUGTz/Wall)z-Wredundant-declsz-Wstrict-prototypesz-Wmissing-prototypesú-Wcast-qualr³   z	-pedanticz-WshadowÚdarwinz-Wl,--no-undefinedz-Wnon-virtual-dtorz-Woverloaded-virtual)	z-Wallz-Wcast-alignz-Wextraz-Wmissing-declarationsz-Wno-unused-parameterz-Wstrict-overflowz-Wundefz-Wwrite-stringsz-fstrict-overflow)z-Wlogical-opz-Wsuggest-attribute=noreturnz-Wunsafe-loop-optimizationsú-WerrorFz"Checking for extra C warning flags©ÚcflagsrV   r`   r„   z$Checking for extra C++ warning flags©ÚcxxflagsrV   r`   z-fshow-columnÚCLANGr   Úclangzllvm-covÚLLVM_COV)r¡   rV   ÚgcovÚ	HAVE_GCOV)r¬   rU   rV   Únonamez0.0.0rD   rE   rk   Ú_VERSIONz-Irv   ).r:   r   Úoptionsr2   ÚloadÚ	Exceptionr—   r–   r�   r!   Ú
expanduserr   ÚDOXYGENr*   r/   Úbindirrc   Ú	configdirÚdatadirÚ
includedirÚlibdirÚmandirÚdocdirr‰   r6   r0   r   r1   ÚDEST_OSrM   rN   ÚNO_COVERAGEÚBUILD_TESTSr4   Ú
is_definedÚCCrG   Úfind_programÚgetattrr   Úg_moduleÚAPPNAMEÚVERSIONÚupperrW   Úprepend_value)rP   rš   Úprefixr¢   r@   rÈ   Úextra_flagsÚcovÚappnameÚversionÚdefnames   `          r   Ú	configurerß   Ç   sõ  ø€ å�‚z€zØˆð1ð 1ð 1ð 1ð 1õ „Ôð Ø�	Š	�)ÑÔÐðØ�	Š	Ð.Ñ/Ô/Ð/Ð/øÝð ð ð Øˆðøøøõ •b”g—o’o¥b¤g×&8Ò&8¸¼À(Ô9KÑ&LÔ&LÑMÔMÑNÔN€Få”Ô+Ð@°´Ô0@€D„HˆVÑÝœÔ-ÐIµ´Ô1I€D„HˆWÑÝ"œ?Ô3€D„HˆZÑØ€D„HˆXÑð.ð .ð .ð .ð .õ Œ?€Dà€Jˆx˜Tœ[­b¬g¯lªl¸6ÀEÑ.JÔ.JÑKÔKÐKØ€Jˆ|˜Tœ^­b¬g¯lªl¸6ÀEÑ.JÔ.JÑKÔKÐKØ€Jˆy˜Tœ\­b¬g¯lªl¸6ÀGÑ.LÔ.LÑMÔMÐMØ€Jˆ|˜Tœ_­b¬g¯lªl¸6ÀIÑ.NÔ.NÑOÔOÐOØ€Jˆx˜Tœ[­b¬g¯lªl¸6ÀEÑ.JÔ.JÑKÔKÐKàŒh�yÔ!€GØ€Jˆx˜œ¥b¤g§l¢l°7¸EÑ&BÔ&BÑCÔCÐCØ€Jˆx˜œ¥b¤g§l¢l°7¸EÑ&BÔ&BÑCÔCÐCå„Ôð +ØŒ8�OÔ$ð 	1Ø$AÐ$AÐ$AˆDŒH�XÑØ$AÐ$AÐ$AˆDŒH�ZÑ Ø%-¨{Ð$;ˆDŒH�[Ñ!Ð!à$)¨4 =ˆDŒH�XÑØ$)¨4 =ˆDŒH�ZÑ Ð àŒ8�OÔ$ð 	+Ø#=Ð#=Ð#=ˆDŒH�XÑØ#=Ð#=Ð#=ˆDŒH�ZÑ Ð àÐ˜j˜\Ñ*Ô*Ð*à„xÔð )CØ&*�ŒÔ#ÝŒ?Ô!ð 	9ØŒH×!Ò! (¨W¨IÑ6Ô6Ð6ØŒH×!Ò! *¨w¨iÑ8Ô8Ð8ùåŒ?Ô'ð 	?Ø%)�GŒOÔ"ØŒH×!Ò! (ð -<ð -<ð -<ñ =ô =ð =ð ŒH×!Ò! *¨}¨oÑ>Ô>Ð>åŒ?Ô!ð 	CØŒH×!Ò! (¨[¸*Ð,EÑFÔFÐFØŒxÔ 8Ò+Ð+Ø”×%Ò% kÐ4HÐ3IÑJÔJÐJØŒH×!Ò! *Ð/CØ/Eð/Gñ Hô Hð HàÐð 3ð 3ð 3ñ 4ô 4ð 4ð:ð :ð :ˆKð �}Š} Y K°+Ñ$=ÈØ!Eð ñ Gô Gð =à”×%Ò% h°Ñ<Ô<Ð<Ø ¤Ð)Ð)Ø—>’>¨I¨;¸Ñ+DØ,1Ø&Lð "ñ Nô Nð Cð ”H×)Ò)¨*°kÑBÔBÐBàŒ8�OÔ$ð ,ØÐ˜/Ð*Ñ+Ô+Ð+à€D„HÔØ €D„HÔðÝ&œÔ:ˆŒÔÝ&œÔ:ˆŒÔÝŒÔ*ð 		/à�Š˜wÑ'Ô'ð /Ø œHœK¨œN×2Ò2°7¸JÑGÔGØ&ð(ð ð �Cà×(Ò(¨°*ÈÐ(ÑNÔNð Ø˜ðøð —’ &°kØ(-ð ñ /ô /ð /øøåð ð ð Øˆðøøøõ •gÔ&­¬¸ÑBÔB€GÝ•gÔ&­¬¸ÑAÔA€GØ�mŠm‰oŒo×%Ò% c¨3Ñ/Ô/×7Ò7¸¸SÑAÔA€GÝ
ˆ4�˜:Ñ% wÑ/Ô/Ð/à„H×Ò˜8 T­B¬G¯OªO¸CÑ,@Ô,@Ñ%@ÑAÔAÐAØ„H×Ò˜: t­b¬g¯oªo¸cÑ.BÔ.BÑ'BÑCÔCÐCØ€F€F€Fs$   »A Á
AÁAÔB:W ×
W×Wc                 óø  — t           sÞt          | d| j        d         ¦  «         d| j        v r/t          | dd                     | j        d         ¦  «        ¦  «         d| j        v r/t          | dd                     | j        d	         ¦  «        ¦  «         t          | d
t	          | j        d         ¦  «        ¦  «         t          | dt	          | j        d         ¦  «        ¦  «         |�t          | |¦  «         d S d S )NzInstall prefixr�   r‚   zC Flagsú rƒ   r„   z	C++ Flagsr…   Ú
DebuggablerŸ   zBuild documentationrž   )Ú
g_is_childÚdisplay_msgr   rc   ÚboolÚdisplay_msgs)rP   Úmsgss     r   Údisplay_summaryrè   J  sð   € åð IÝ�DÐ*¨D¬H°XÔ,>Ñ?Ô?Ð?Ø˜DœHÐ$Ð$Ý˜˜i¨¯ª°$´(¸8Ô2DÑ)EÔ)EÑFÔFÐFØ˜TœXÐ%Ð%Ý˜˜k¨3¯8ª8°D´H¸ZÔ4HÑ+IÔ+IÑJÔJÐJÝ�D˜,­¨T¬X°gÔ->Ñ(?Ô(?Ñ@Ô@Ð@Ý�DÐ/µ°d´h¸vÔ6FÑ1GÔ1GÑHÔHÐHàÐÝ�T˜4Ñ Ô Ð Ð Ð ð Ðr   c                 óÔ   — | j         j        r| j                              ddg¦  «         dS d|z  }|                      d|gd|z  ¬¦  «         | j                              d|g¦  «         dS )z7Set a specific C language standard, like 'c99' or 'c11'rƒ   ú-TPú-std=%srµ   úChecking for flag '%s')r·   r`   N©r   r‰   Úappend_uniquerŠ   ©rP   rQ   Úflags      r   Ú
set_c_langrñ   X  sƒ   € à„xÔð 1àŒ×Ò˜x¨%¨Ñ1Ô1Ð1Ð1Ð1à˜4ÑˆØ�
Š
˜9 dÐ+Ø/°$Ñ6ð 	ñ 	8ô 	8ð 	8àŒ×Ò˜x¨$¨Ñ0Ô0Ð0Ð0Ð0r   c                 óê   — | j         j        r)|dk    rd}| j                              dd|z  g¦  «         d	S d|z  }|                      d|gd|z  ¬¦  «         | j                              d|g¦  «         d	S )
zGSet a specific C++ language standard, like 'c++11', 'c++14', or 'c++17'úc++14z	c++latestr…   z/std:%srë   rµ   rì   )r¹   r`   Nrí   rï   s      r   Úset_cxx_langrô   c  s—   € à„xÔð 3Ø�7Š?ˆ?ØˆDØŒ×Ò˜z¨I¸Ñ,<Ð+=Ñ>Ô>Ð>Ð>Ð>à˜4ÑˆØ�
Š
˜Y¨Ð-Ø/°$Ñ6ð 	ñ 	8ô 	8ð 	8àŒ×Ò˜z¨D¨6Ñ2Ô2Ð2Ð2Ð2r   c                 óò   — d| j         v rk| j         j        r| j                              ddg¦  «         d	S dD ]@}|                      d|gdd|z  ¬¦  «        r| j                              d|g¦  «          d	S Œ?d	S d	S )
z(Use the most modern C language availabler‚   rƒ   rê   )z-std=c11z-std=c99rµ   Frì   r¶   Nrí   )rP   rð   s     r   Úset_modern_c_flagsrö   o  s±   € à˜œÐ Ð ØŒ8Ô!ð 	àŒH×"Ò" 8¨e¨WÑ5Ô5Ð5Ð5Ð5à0ð ð �Ø—:’: i°Ð%6À%Ø":¸TÑ"Að ñ Cô Cð à”H×*Ò*¨8°d°VÑ<Ô<Ð<Ø�E�Eðð !Ð ð
ð r   c                 óü   — d| j         v rp| j         j        r| j                              ddg¦  «         d
S dD ]E}d|z  }|                      d|gdd|z  ¬	¦  «        r| j                              d|g¦  «          d
S ŒDd
S d
S )z*Use the most modern C++ language availabler„   r…   z/std:c++latest)ró   zc++1yzc++11zc++0xrë   rµ   Frì   r¸   Nrí   )rP   rV   rQ   rð   s       r   Úset_modern_cxx_flagsrø   |  s½   € à˜œÐ!Ð!ØŒ8Ô!ð 	ØŒH×"Ò" :Ð0@Ð/AÑBÔBÐBÐBÐBà<ð ð �Ø  4Ñ'�Ø—:’:¨	°4Ð'8ÀEØ":¸TÑ"Að ñ Cô Cð à”H×*Ò*¨:¸°vÑ>Ô>Ð>Ø�E�Eðð "Ð!ðð r   c                 ó´  — dt          |                     ¦   «         ¦  «        z   }t          | |d¦  «         |rQt          | j        d         ¦  «        t
          k    r
i | j        d<   d| j        d         |                     ¦   «         <   d S t          | j        d         ¦  «        t
          k    r
i | j        d<   d| j        d         |                     ¦   «         <   d S )NÚHAVE_r9   rs   TÚAUTOWAF_LOCAL_HEADERS)rl   r×   rW   r'   r   Údictr†   )rP   rI   Úhas_objectsro   s       r   Úset_local_librþ   ‰  sÆ   € Ø� §¢¡¤Ñ.Ô.Ñ.€HÝ
ˆ4�˜1ÑÔÐØð ?Ý�”Ð-Ô.Ñ/Ô/µ4Ò7Ð7Ø-/ˆDŒHÐ)Ñ*Ø7;ˆŒÐ%Ô& t§z¢z¡|¤|Ñ4Ð4Ð4å�”Ð0Ô1Ñ2Ô2µdÒ:Ð:Ø02ˆDŒHÐ,Ñ-Ø:>ˆŒÐ(Ô)¨$¯*ª*©,¬,Ñ7Ð7Ð7r   c                 ó�   — t          | |¦  «        r$t          | |t          | |¦  «        |z   ¦  «         d S t          | ||¦  «         d S rn   )ÚhasattrÚsetattrrÓ   )ÚobjÚkeyÚvals      r   Úappend_propertyr  •  sS   € Ýˆs�CÑÔð Ý��S�' # sÑ+Ô+¨cÑ1Ñ2Ô2Ð2Ð2Ð2å��S˜#ÑÔÐÐÐr   c                 ó  — t           j                             d¦  «        }|                     ¦   «         }|D �]L}|                     ¦   «         | j        d         v }|                     ¦   «         | j        d         v }|rEt          |dd|                     ¦   «         z  ¦  «         t          |d| j        d|z            ¦  «         |s|r¨| j        j        r6dt           j                             ||                     ¦   «         ¦  «        z   }n5d	t           j                             ||                     ¦   «         ¦  «        z   }d
D ],}	|| j        |	         vr| j         	                    |	|¦  «         Œ-�Œ8t          |dd|z   ¦  «         �ŒNd S )Nrk   rû   rs   Úusez lib%s Ú	frameworkÚ
FRAMEWORK_z/Iz-iquote )rƒ   r…   Úuselibrá   )
r–   r�   r!   Úsplitr†   r   r  r‰   rc   rØ   )
r   r  ÚlibsÚ	abssrcdirÚ	libs_listÚlÚ
in_headersÚin_libsÚinc_flagÚfs
             r   Úuse_libr  ›  sq  € Ý”—’ Ñ$Ô$€IØ—
’
‘”€IØð 4ñ 4ˆØ—W’W‘Y”Y #¤'Ð*AÔ"BÐBˆ
Ø—W’W‘Y”Y #¤'Ð*>Ô"?Ð?ˆØð 	IÝ˜C ¨	°A·G²G±I´IÑ(=Ñ>Ô>Ð>Ý˜C ¨c¬g°lÀQÑ6FÔ.GÑHÔHÐHØð 		4˜ð 		4ØŒwÔ$ð KØ¥"¤'§,¢,¨y¸!¿'º'¹)¼)Ñ"DÔ"DÑD��à%­¬¯ª°YÀÇÂÁ	Ä	Ñ(JÔ(JÑJ�Ø+ð 7ð 7�Ø 3¤7¨1¤:Ð-Ð-Ø”G×)Ò)¨!¨XÑ6Ô6Ð6øñ7õ ˜C ¨3°©7Ñ3Ô3Ð3Ñ3ð4ð 4r   Ú
apply_linkc                 óš   ‡ — ‰ j         j        dk    rd ‰ _        ‰ j         d         r#g d¢}ˆ fd„|D ¦   «         r‰ j        dz   ‰ _        d S d S d S )Nr’   r‡   )ÚcshlibÚcxxshlibÚcstlibÚcxxstlibc                 ó&   •— g | ]}|‰j         v ¯|‘ŒS r   )Úfeatures)r\   r]   r#   s     €r   r^   zversion_lib.<locals>.<listcomp>¶  s%   ø€ Ð8Ð8Ð8�! Q¨$¬-Ð%7Ð%7ˆAÐ%7Ð%7Ð%7r   r~   )r   rÍ   ÚvnumÚtarget)r#   Ú
applicables   ` r   Úversion_libr   ¯  sx   ø€ ð „xÔ˜7Ò"Ð"ØˆŒ	Ø„x�
Ôð ,ØAÐAÐAˆ
Ø8Ð8Ð8Ð8�zÐ8Ñ8Ô8ð 	,Øœ+¨Ñ+ˆDŒKˆKˆKð,ð ,ð	,ð 	,r   c                 óŒ  — |                      ¦   «         }|                     d¦  «        d         }d|                     dd¦  «        z   dz   |z   }|›d|›�}| j        j        r|dz  }|| j        |<   d|›d|›�g| j        d|z   <   | j        j        g| j        d	|z   <   |g| j        d
|z   <   |                      |dz   |¦  «         dS )z@Set up environment for local library as if found via pkg-config.rk   r   r}   rD   rE   r~   z${INCLUDEDIR}/r�   ÚLIBPATH_ÚLIB_rÀ   N)r×   r  rG   r   r‡   r«   rW   )rP   rI   rÝ   ÚNAMEÚ	major_verr�   Úlib_names          r   Úset_lib_envr'  ¹  sä   € à—:’:‘<”<€DØ—=’= Ñ%Ô% aÔ(€IØ˜DŸLšL¨¨cÑ2Ô2Ñ2°SÑ8¸9ÑD€LØ"˜d˜d I IÐ.€HØ„xÔð Ø�C‰ˆØ#+€D„Hˆ\ÑÐØ=A¸T¸TÀ9À9Ð$MÐ#N€D„Hˆ[˜4ÑÑ Ø$(¤H¤OÐ#4€D„HˆZ˜$ÑÑØ$, :€D„HˆV�d‰]Ñà‡K‚K��zÑ! 7Ñ+Ô+Ð+Ð+Ð+r   c                 óH   — t          t          |¦  «        at          | _        d S rn   )ÚmaxÚ	line_just)rP   Úwidths     r   Úset_line_justr,  È  s   € å•I˜uÑ%Ô%€IÝ€D„N€N€Nr   c                 óB   — t           rt          j        d| ¦  «         d S d S )NÚBOLD)rã   r   Úpprint)Útitles    r   Údisplay_headerr1  Í  s,   € åð #ÝŒ�F˜EÑ"Ô"Ð"Ð"Ð"ð#ð #r   c                 óL  — d}t          |¦  «        t          k    r|rd}d}n$t          |¦  «        t          k    r|r|dk    rd}d}t          j        dd|                     | j        ¦  «        z  d	¬
¦  «         t          j        ddd	¬
¦  «         t          j        ||¦  «         d S )NÚCYANÚGREENÚyesÚFalseÚYELLOWÚnor.  z%sr3   )Úsepú:)r'   rå   r   r/  Úljustr*  )rP   r`   ÚstatusÚcolors       r   rä   rä   Ò  s¬   € Ø€EÝˆF�|„|•tÒÐ ÐØˆØˆˆÝ	ˆf‰Œ�Ò	Ð	 fÐ	°¸'Ò0AÐ0AØˆØˆÝ„K�˜˜sŸyšy¨¬Ñ8Ô8Ñ8¸bÐAÑAÔAÐAÝ„K�˜ Ð$Ñ$Ô$Ð$Ý„K��vÑÔÐÐÐr   c                 ó\   — |                      ¦   «         D ]\  }}t          | ||¦  «         Œd S rn   )rF   rä   )rP   rç   ÚkÚvs       r   ræ   ræ   Þ  s<   € Ø—
’
‘”ð  ð  ‰ˆˆ1Ý�D˜!˜QÑÔÐÐð ð  r   c                 ób   ‡ — d                      t          ˆ fd„‰ d|z            ¦  «        ¦  «        S )Nrá   c                 ó   •— ‰d         | z  S )NÚLIB_STr   ©r]   r   s    €r   ú<lambda>zlink_flags.<locals>.<lambda>ã  s   ø€  # h¤-°!Ñ"3€ r   r#  ©rc   Úmap©r   r¬   s   ` r   Ú
link_flagsrI  â  s=   ø€ Ø�8Š8•CÐ3Ð3Ð3Ð3Ø˜F S™LÔ)ñ+ô +ñ ,ô ,ð ,r   c                 ób   ‡ — d                      t          ˆ fd„‰ d|z            ¦  «        ¦  «        S )Nrá   c                 ó   •— ‰d         | z  S )NÚ
CPPPATH_STr   rD  s    €r   rE  zcompile_flags.<locals>.<lambda>ç  s   ø€  # lÔ"3°aÑ"7€ r   r�   rF  rH  s   ` r   Úcompile_flagsrM  æ  s>   ø€ Ø�8Š8•CÐ7Ð7Ð7Ð7Ø˜K¨#Ñ-Ô.ñ0ô 0ñ 1ô 1ð 1r   c                  ó
   — da d S )NT©rã   r   r   r   Úset_recursiverP  ê  s   € à€J€J€Jr   c                  ó   — t           S rn   rO  r   r   r   Úis_childrR  î  s   € åÐr   c                 ó®  — | j         d         }|d         dk    r
|dd…         }|                     ¦   «         }|dk    r|d|z   z  }| j         d         r|dz  }|d	z  }| j         d
         }|                     |¦  «        r|                     |d¦  «        }| j         d         }	|	                     |¦  «        r|	                     |d¦  «        }	 | dd|                     ¦   «         z  |t          j                             | j         d
         d¦  «        d|d||	¬¦	  «	        }
t          |¦  «        t          k    r| 	                    ¦   «         }|||dz   <   |d| 
                    d¦  «        …         ||dz   <   |D ]B}t          | j         |¦  «        ||dz   <   t          | j         |¦  «        }|dk    rd}|||dz   <   ŒC|
j                             |¦  «         dS )a5  Build a pkg-config file for a library.

    name           -- uppercase variable name     (e.g. 'SOMENAME')
    version        -- version string              (e.g. '1.2.3')
    version_suffix -- name version suffix         (e.g. '2')
    libs           -- string/list of dependencies (e.g. 'LIBFOO GLIB')
    r�   éÿÿÿÿri   Nr3   rD   r‡   r~   z.pcr«   z${exec_prefix}r©   z	${prefix}Úsubstz%s.pc.inÚ	pkgconfig)	r  Úsourcer  Úinstall_pathÚexec_prefixr�   ÚEXEC_PREFIXr«   r©   rÀ   r   rk   Ú_MAJOR_VERSIONÚ_LIBSrá   Ú_CFLAGS)r   r†   Ú
startswithrG   r–   r�   rc   r'   Úlistr  ÚfindrI  rM  Ú__dict__Úupdate)r   rI   rÝ   Úversion_suffixr  Ú
subst_dictÚ
pkg_prefixr  rÊ   rÉ   r  ÚiÚ
lib_cflagss                r   Úbuild_pcrh  ò  s  € ð ”w˜xÔ(€JØ�"„~˜ÒÐØ   ”_ˆ
à�ZŠZ‰\Œ\€FØ˜ÒÐØ�#˜Ñ&Ñ&ˆà
„wˆzÔð Ø�#‰ˆà
ˆe�O€FàŒW�XÔ€FØ×Ò˜Ñ$Ô$ð >Ø—’ 
Ð,<Ñ=Ô=ˆà”˜Ô&€JØ×Ò˜ZÑ(Ô(ð AØ×'Ò'¨
°KÑ@Ô@ˆ
à
ˆ#�wØ $§*¢*¡,¤,Ñ.ØÝœ7Ÿ<š<¨¬°Ô(9¸;ÑGÔGØ%ØØ%ØØ#ð%ñ %ô %€Cõ ˆD�z„z•TÒÐØ�zŠz‰|Œ|ˆà$+€Jˆt�jÑ Ñ!Ø*1°!°G·L²LÀÑ4EÔ4EÐ2EÔ*F€JˆtÐ&Ñ&Ñ'Øð /ð /ˆÝ$.¨s¬w¸Ñ$:Ô$:ˆ
�1�w‘;ÑÝ" 3¤7¨AÑ.Ô.ˆ
Ø˜ÒÐØˆJØ$.ˆ
�1�y‘=Ñ!Ð!à„L×Ò˜
Ñ#Ô#Ð#Ð#Ð#r   c                 ó    — t          ¦   «         r!t          j                             d| |¦  «        S t          j                             d|¦  «        S )NÚbuild)rR  r–   r�   rc   )rI   Úsubdirs     r   Ú	build_dirrl  (  s<   € Ý�z„zð -ÝŒw�|Š|˜G T¨6Ñ2Ô2Ð2åŒw�|Š|˜G VÑ,Ô,Ð,r   c           	      óx  — |                       ¦   «         } |                      ¦   «         }	 t          j        ¦   «         }t          j        t          | d¦  «        ¦  «         d| z  }t          j                             |¦  «        sdS d|z  dgd|z  dgd| z  dgddgddgd	dgd
dgddgfD ]+}t          j        d|d         ›d|d         ›d|›�¦  «         Œ,t          j	        d| z  d¦  «         t          j
        d¦  «        t          j
        d¦  «        z   t          j
        d¦  «        z   t          j
        d¦  «        z   D ]"}|dk    r|dk    rt          j        |¦  «         Œ#t          j        |¦  «         t          j        t          | d¦  «        ¦  «         t          j
        d¦  «        D ]}t          j        d|›d|›�¦  «         Œt          j
        d¦  «        D ]}t          j        |¦  «         Œt          j        |¦  «         dS # t          $ r%}t          j        d| ›d|›�¦  «         Y d}~dS d}~ww xY w)z6Clean up messy Doxygen documentation after it is builtzdoc/htmlzgroup__%s.htmlNz%s_API r3   z%s_DEPRECATED z&#160;z<script.*><\/script>z6<hr\/><a name="details" id="details"><\/a><h2>.*<\/h2>z@<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text\/css\"\/>z<<img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"\/>ÚDoxygenz
sed -i 's/r   ri   r9   z/g' z
index.htmlz*.pngz*.htmlz*.jsz*.cssz	style.csszdoc/man/man3z*.3z	_API //' z_*zFailed to fix up z documentation: )r†   r×   r–   ÚgetcwdÚchdirrl  r�   Úexistsr€   ÚrenameÚglobÚremoverÃ   r   rO   )rI   r$  ÚtopÚpagerf  Úes         r   Úmake_simple_doxrx  /  sz  € à�:Š:‰<Œ<€DØ�:Š:‰<Œ<€Dð!HÝŒi‰kŒkˆÝ
Œ•˜4 Ñ,Ô,Ñ-Ô-Ð-Ø $Ñ&ˆÝŒw�~Š~˜dÑ#Ô#ð 	ØˆFà˜Ñ˜rÐ"Ø Ñ$ bÐ)Ø Ñ$ bÐ)Ø�rˆNØ$ bÐ)ØFÈÐKØPØðàLØðð
ð 	Dð 	DˆAõ ŒIˆI°°1´°°°q¸´t°t°t¸T¸TÐBÑCÔCÐCÐCÝ
Œ	Ð" TÑ)¨<Ñ8Ô8Ð8Ý”)˜GÑ$Ô$Ý”)˜HÑ%Ô%ñ&å”)˜FÑ#Ô#ñ$õ ”)˜GÑ$Ô$ñ%ð 	ð 	ˆAð �LÒ Ð  Q¨+Ò%5Ð%5Ý”	˜!‘”�øÝ
Œ�‰ŒˆÝ
Œ•˜4 Ñ0Ô0Ñ1Ô1Ð1Ý”˜5Ñ!Ô!ð 	=ð 	=ˆAÝŒIˆI°4°4°4¸¸Ð;Ñ<Ô<Ð<Ð<Ý”˜4‘”ð 	ð 	ˆAÝŒI�a‰LŒLˆLˆLÝ
Œ�‰ŒˆˆˆøÝð Hð Hð HÝŒ
ˆ
¸d¸d¸dÀAÀAÐFÑGÔGÐGÐGÐGÐGÐGÐGÐGøøøøðHøøøs   ªAH
 ÂFH
 È

H9ÈH4È4H9c           	      óÆ  — | j         d         sdS t          ¦   «         r3t          j                             ||                     ¦   «         ¦  «        }n|} | ddddd¬¦  «        }|d	z   ||d
z   t          j                             |¦  «        |dz   di}	|j                             |	¦  «         | 	                    ¦   «           | dd¬¦  «        }
|
 	                    ¦   «          |                     ¦   «         }|r0|dt          |d|                     d¦  «        …         ¦  «        z  z  }|                      t          j                             d||d¦  «        | j                             ¦   «                              d¦  «        ¦  «         t          dd¦  «        D ]J}|                      d|z  | j                             ¦   «                              d|z  d¬¦  «        ¦  «         ŒKdS )zBuild Doxygen API documentationrž   NrU  zdoc/reference.doxygen.inzdoc/reference.doxygenr3   Údoxyfile)r  rW  r  rX  rI   rÀ   Ú_SRCDIRÚ_DOC_DIRr›   )r  rz  z-%dr   rk   z	${DOCDIR}Úhtmlz
doc/html/*r9   é   z${MANDIR}/man%dzdoc/man/man%d/*z**/_*)Úexcl)r   rR  r–   r�   rc   r†   r!   ra  rb  ÚpostÚintr`  Úinstall_filesÚget_bldÚant_globÚrange)r   rI   rÝ   ÚsrcdirÚblddirÚoutdirÚ	versionedÚsrc_dirÚsubst_tgrd  r2   Úoutnamerf  s                r   Ú	build_doxr�  W  s  € àŒ7�6Œ?ð Øˆõ �z„zð Ý”'—,’,˜v t§z¢z¡|¤|Ñ4Ô4ˆˆàˆàˆs˜GØ4Ø1Ø "Ø"ð	$ñ $ô $€Hð 	ˆzÑ˜7ØˆyÑ�"œ'Ÿ/š/¨'Ñ2Ô2ØˆzÑ˜2ð€Jð Ô×Ò˜ZÑ(Ô(Ð(à‡M‚M�O„O€Oàˆ3˜	Ø/ð1ñ 1ô 1€Dð 	‡I‚I�K„K€Kà�jŠj‰lŒl€GØð =Ø�5�3˜w q¨¯ª°cÑ):Ô):Ð':Ô;Ñ<Ô<Ñ<Ñ<ˆØ×ÒÝ
Œ�Š�[ '¨6°6Ñ:Ô:ØŒ×ÒÑÔ×#Ò# LÑ1Ô1ñ3ô 3ð 3õ �1�a‰[Œ[ð Eð EˆØ×ÒÐ+¨aÑ/Øœ(×*Ò*Ñ,Ô,×5Ò5Ð6GÈ!Ñ6KØ;Bð 6ñ Dô Dñ	Eô 	Eð 	Eð 	EðEð Er   c                 óœ  — t           j                             | ¦  «        } t           j                             |¦  «        }d|z   dz   t          |¦  «        z   dz   }|d|z   dz   t          |¦  «        z   dz   z  }|d|z   dz   t          |¦  «        z   dz   z  }	 t	          |d¦  «        }|                     |¦  «         |                     ¦   «          n;# t          $ r. t          j	        d|z  ¦  «         t          j        d¦  «         Y nw xY wd	|z   d
z   }|d|z   d
z   z  }|d|z   dz   z  }|d|z   dz   z  }|d|z   dz   z  }|d|z   dz   z  }|d|z   dz   z  }	 t	          | d¦  «        }|                     |¦  «         |                     ¦   «          n;# t          $ r. t          j        d| z  ¦  «         t          j        d¦  «         Y nw xY wdS )zGenerate version code headerzint z_major_version = ú;
z_minor_version = z_micro_version = ÚwzFailed to open %s for writing
rT  z
#ifndef __z_version_h__
z
#define __zextern const char* z_revision;
zextern int z_major_version;
z_minor_version;
z_micro_version;
z#endif /* __z_version_h__ */
N)r–   r�   r!   ÚstrÚopenÚwriteÚcloseÚIOErrorr   rO   r”   ÚexitÚwarn)Úheader_pathÚsource_pathÚdomainÚmajorÚminorÚmicroÚtextÚos           r   Úbuild_version_filesr   ƒ  s  € å”'—/’/ +Ñ.Ô.€KÝ”'—/’/ +Ñ.Ô.€KØ�V‰OÐ1Ñ1µC¸±J´JÑ>ÀÑF€DØˆF�V‰OÐ1Ñ1µC¸±J´JÑ>ÀÑFÑF€DØˆF�V‰OÐ1Ñ1µC¸±J´JÑ>ÀÑFÑF€DðÝ�˜cÑ"Ô"ˆØ	�Š�‰ŒˆØ	�Š‰	Œ	ˆ	ˆ	øÝð ð ð ÝŒ
Ð4°{ÑBÑCÔCÐCÝŒ�‰Œˆˆˆðøøøð ˜6Ñ!Ð$4Ñ4€DØˆL˜6Ñ!Ð$4Ñ4Ñ4€DØÐ! FÑ*¨^Ñ;Ñ;€DØˆM˜FÑ"Ð%8Ñ8Ñ8€DØˆM˜FÑ"Ð%8Ñ8Ñ8€DØˆM˜FÑ"Ð%8Ñ8Ñ8€DØˆN˜VÑ#Ð&9Ñ9Ñ9€DðÝ�˜cÑ"Ô"ˆØ	�Š�‰ŒˆØ	�Š‰	Œ	ˆ	ˆ	øÝð ð ð ÝŒ	Ð3°kÑAÑBÔBÐBÝŒ�‰Œˆˆˆðøøøð ˆ4s$   Â9C Ã5D	ÄD	Å9F Æ5G	ÇG	c                 ó  — t          j        d|z  ¦  «         d|z  }dddddd|g}|r	|d	|z  gz  }||z  }t          j        d
|z   ¦  «         t          j        |t          j                             ||¦  «        ¬¦  «         d S )NzGenerating pot file from %sú%s.potÚxgettextz--keyword=_z--keyword=N_z--keyword=S_z--from-code=UTF-8ú-oz--copyright-holder="%s"ú	Updating )Úcwd)r   ÚinfoÚ
subprocessÚcallr–   r�   rc   )r   r†  ÚdirrI   ÚsourcesÚcopyright_holderÚpot_filer   s           r   Úbuild_i18n_potr®  £  s£   € Ý„IÐ+¨dÑ2Ñ3Ô3Ð3Ø˜$‰€HàØØØØØ�ð€Cð ð >ØÐ)Ð,<Ñ<Ð=Ñ=ˆàˆ7�N€CÝ„Iˆk˜HÑ$Ñ%Ô%Ð%Ý„O�C�RœWŸ\š\¨&°#Ñ6Ô6Ð7Ñ7Ô7Ð7Ð7Ð7r   c                 óV  — t          j        ¦   «         }t          j        t           j                             ||¦  «        ¦  «         d|z  }t          j        d¦  «        }|D ]3}	dd|	|g}
t          j        d|	z   ¦  «         t          j	        |
¦  «         Œ4t          j        |¦  «         d S )Nr¢  úpo/*.poÚmsgmergez--updater¥  )
r–   ro  rp  r�   rc   rs  r   r§  r¨  r©  )r   r†  rª  rI   r«  r¬  Úpwdr­  Úpo_filesÚpo_filer   s              r   Úbuild_i18n_porµ  µ  s¢   € Ý
Œ)‰+Œ+€CÝ„H�RŒW�\Š\˜& #Ñ&Ô&Ñ'Ô'Ð'Ø˜$‰€HÝŒy˜Ñ#Ô#€HØð ð ˆØØØØðˆõ 	Œ	�+ Ñ'Ñ(Ô(Ð(ÝŒ˜ÑÔÐÐÝ„HˆS�M„M€M€M€Mr   c                 ó|  — t          j        ¦   «         }t          j        t           j                             ||¦  «        ¦  «         t          j        d¦  «        }|D ]K}|                     dd¦  «        }	dddd|	|g}
t          j        d|z   ¦  «         t          j
        |
¦  «         ŒLt          j        |¦  «         d S )	Nr°  z.poz.moÚmsgfmtz-cz-fr¤  zGenerating )r–   ro  rp  r�   rc   rs  rG   r   r§  r¨  r©  )r   r†  rª  rI   r«  r¬  r²  r³  r´  Úmo_filer   s              r   Úbuild_i18n_mor¹  Ã  s²   € Ý
Œ)‰+Œ+€CÝ„H�RŒW�\Š\˜& #Ñ&Ô&Ñ'Ô'Ð'ÝŒy˜Ñ#Ô#€HØð 	ð 	ˆØ—/’/ %¨Ñ/Ô/ˆØØØØØØðˆõ 	Œ	�- 'Ñ)Ñ*Ô*Ð*ÝŒ˜ÑÔÐÐÝ„HˆS�M„M€M€M€Mr   c                 ó~   — t          | |||||¦  «         t          | |||||¦  «         t          | |||||¦  «         d S rn   )r®  rµ  r¹  )r   r†  rª  rI   r«  r¬  s         r   Ú
build_i18nr»  Ó  sS   € Ý�3˜  T¨7Ð4DÑEÔEÐEÝ�#�v˜s D¨'Ð3CÑDÔDÐDÝ�#�v˜s D¨'Ð3CÑDÔDÐDÐDÐDr   c                 óT  — t          | j        ¦  «        dk    }|r3t          j        t          j                             d|¦  «        ¦  «         nt          j        d¦  «         t          j        ddt          j                             t          j	        ¦   «         ¦  «        z  ¦  «         d S )Nr9   rj  r4  zWaf: Entering directory `%s')
ÚlenÚ
stack_pathr–   rp  r�   rc   r   r/  r!   ro  )ÚctxrÜ   Ú	top_levels      r   Úcd_to_build_dirrÁ  Ø  s�   € Ý�S”^Ñ$Ô$ qÒ(€IØð Ý
Œ•”—’˜g wÑ/Ô/Ñ0Ô0Ð0Ð0å
Œ�ÑÔÐÝ„K�Ð8Ýœ'Ÿ/š/­"¬)©+¬+Ñ6Ô6ñ7ñ 9ô 9ð 9ð 9ð 9r   c                 óš   — |r4t          j        t           j                             dd¦  «        ¦  «         d S t          j        d¦  «         d S )Nú..)r–   rp  r�   rc   )r¿  Úchilds     r   Úcd_to_orig_dirrÅ  á  sA   € Øð Ý
Œ•”—’˜d DÑ)Ô)Ñ*Ô*Ð*Ð*Ð*å
Œ�‰Œˆˆˆr   Úsrcc                 ó   — t          | d¦  «        s#d| _        d| _        d| _        d| _        i | _        dddœ| j        |<   t          | |¦  «         | j        j        s¡d}|D ]
}|d|z   z  }Œt          dd¦  «        }	 	 t          j        d|z                       ¦   «         ||¬	¦  «         n$# t          $ r t          j        d
¦  «         Y nw xY w|                     ¦   «          d S # |                     ¦   «          w xY wd S )NÚautowaf_tests_totalr   )ÚtotalÚfailedr3   ú -d zlcov-clear.logr�  z
lcov %s -z©ÚstdoutÚstderrú0Failed to run lcov, no coverage report generated)r   rÈ  Úautowaf_tests_failedÚautowaf_local_tests_totalÚautowaf_local_tests_failedÚautowaf_testsrÁ  r   rÎ   r’  r¨  r©  r  rÃ   r   r—  r”  )r¿  rÜ   ÚdirsÚdiroptsrf  Ú	clear_logs         r   Úpre_testr×  ç  sW  € Ý�3Ð-Ñ.Ô.ð ,Ø)*ˆÔØ)*ˆÔ Ø)*ˆÔ%Ø)*ˆÔ&Ø)+ˆÔà+,¸Ð!:Ð!:€CÔ�gÑå�C˜Ñ!Ô!Ð!ØŒ7Ôð ØˆØð 	"ð 	"ˆAØ�v ‘zÑ!ˆGˆGÝÐ)¨3Ñ/Ô/ˆ	ð	ðNå” °Ñ!7× >Ò >Ñ @Ô @Ø'0¸ðDñ Dô Dð Dð Døåð Nð Nð NÝ”	ÐLÑMÔMÐMÐMÐMðNøøøð �OŠOÑÔÐÐÐøˆI�OŠOÑÔÐÐøøøðð s*   Á>,B+ Â*C% Â+CÃ	C% ÃCÃC% Ã%C;z*boost*zc++*c                 óþ  — | j         j        �s¼d}|D ]
}|d|z   z  }Œt          dd¦  «        }t          dd¦  «        }t          dd¦  «        }	 	 d}	t          rd}	d	|›d
|	›�}
| j         j        r|
d| j         j        d         z  z  }
t          j        |
                     ¦   «         ||¬¦  «         t          j        g d¢|z   ||¬¦  «         t          j	         
                    d¦  «        st          j        d¦  «         t          j        d                     ¦   «         ||¬¦  «         n$# t          $ r t          j        d¦  «         Y nw xY w|                     ¦   «          |                     ¦   «          |                     ¦   «          nA# |                     ¦   «          |                     ¦   «          |                     ¦   «          w xY w| j        |         d         dk    r>t          j        dd| j        |         d         | j        |         d         |fz  ¦  «         n+t          j        dd| j        |         d         |fz  ¦  «         | j         j        s5t          j        ddt          j	                             d¦  «        z  ¦  «         t          j        ddt          j	                             t          j        ¦   «         ¦  «        z  ¦  «         t)          | j        ¦  «        dk    }|rt-          | |¦  «         d S d S )Nr3   rË  zlcov-coverage.logr�  úcoverage.lcovzcoverage-stripped.lcovrk   rÃ  zlcov -c z -b z --gcov-tool %sr   rÌ  )Úlcovz--removerÙ  Úcoveragez*genhtml -o coverage coverage-stripped.lcovrÏ  rÊ  ÚREDz"
Summary:  %d / %d %s tests failedrÉ  r4  z!
Summary:  All %d %s tests passedzCoverage: <file://%s>
zcoverage/index.htmlzWaf: Leaving directory `%s'r9   )r   rÎ   r’  rã   r¼   r¨  r©  r  r–   r�   ÚisdirÚmakedirsrÃ   r   r—  r”  rÓ  r/  r!   ro  r½  r¾  rÅ  )r¿  rÜ   rÔ  rt  rÕ  rf  Úcoverage_logÚcoverage_lcovÚcoverage_stripped_lcovÚbaseÚlcov_cmdrÀ  s               r   Ú	post_testrä    su  € ØŒ7Ôñ %!ØˆØð 	"ð 	"ˆAØ�v ‘zÑ!ˆGˆGÝ!%Ð&9¸3Ñ!?Ô!?ˆÝ!% o°sÑ!;Ô!;ˆÝ!%Ð&>ÀÑ!DÔ!DÐð	!ðNØ�Ýð  Ø�Døð 29°°¸$¸$Ð?�Ø”7Ô#ð HØÐ 1°C´GÔ4DÀQÔ4GÑ GÑG�HÝ” §¢Ñ 0Ô 0Ø'4¸\ðKñ Kô Kð Kõ ”Ø9Ð9Ð9¸FÑBØ1¸,ðHñ Hô Hð Hõ
 ”w—}’} ZÑ0Ô0ð ,Ý”K 
Ñ+Ô+Ð+Ý”Ø@×FÒFÑHÔHØ'°ð>ñ >ô >ð >ð >øõ ð Nð Nð NÝ”	ÐLÑMÔMÐMÐMÐMðNøøøð #×(Ò(Ñ*Ô*Ð*Ø×ÒÑ!Ô!Ð!Ø×ÒÑ Ô Ð Ð øð #×(Ò(Ñ*Ô*Ð*Ø×ÒÑ!Ô!Ð!Ø×ÒÑ Ô Ð Ð øøøà
Ô˜Ô! (Ô+¨aÒ/Ð/ÝŒ�EÐ@ØÔ˜gÔ& xÔ0ØÔ˜gÔ& wÔ/ØðDñ ñ 	ô 	ð 	ð 	õ
 	Œ�GÐAØÔ˜gÔ& wÔ/°ðE:ñ :ñ 	;ô 	;ð 	;ð Œ7Ôð >ÝŒ�GÐ6Ý”g—o’oÐ&;Ñ<Ô<ñ=ñ 	>ô 	>ð 	>õ 	„K�Ð7Ýœ'Ÿ/š/­"¬)©+¬+Ñ6Ô6ñ7ñ 9ô 9ð 9å�S”^Ñ$Ô$ qÒ(€IØð 'Ý�s˜IÑ&Ô&Ð&Ð&Ð&ð'ð 's+   ÁCD( Ä'F	 Ä(E	ÅF	 ÅE	Å	F	 Æ	>Gc                 óì  — | xj         dz  c_         | xj        dz  c_        | j        |         dxx         dz  cc<   d}t          |¦  «        t          k    r|d         }|d         }	nãt          |¦  «        r |¦   «         }	nÉ|}
t          |t          g ¦  «        ¦  «        rd                     |¦  «        }
|r|st          j	        dd|
z  ¦  «         |}t          j        j        rt          j        j        dz   |z   }|dk    r|}t          j        |d	t          j        t          j        ¬
¦  «        }|                     ¦   «         }|j        }	|du p|	|k    }|r|st          j	        dd|z  ¦  «         nt          j	        dd|z  ¦  «         | xj        dz  c_        | j        |         dxx         dz  cc<   t          |¦  «        t          k    r$t          |¦  «        st          j	        d|¦  «         t          j        j        rqt          |¦  «        t          k    rYt          |¦  «        sJt(          j                             |d         ¦  «         t(          j                             |d         ¦  «         ||fS )z®Run an individual test.

    `test` is either a shell command string, or a list of [name, return status]
    for displaying tests implemented in the calling Python code.
    r9   rÉ  ©NNr   rá   ÚGreenz
** Test %sr3   T)ÚshellrÍ  rÎ  Nr4  z
** Pass %srÜ  z
** FAIL %srÊ  )rÈ  rÑ  rÓ  r'   r_  ÚcallableÚ
isinstancerc   r   r/  r   rÁ   r7   r¨  ÚPopenÚPIPEÚcommunicateÚ
returncoderÐ  r8   r”   rÍ  r“  rÎ  )r¿  rÜ   r   Údesired_statusrÔ  rI   ÚheaderÚquietÚoutrî  Úsr   ÚprocÚsuccesss                 r   Úrun_teströ  <  sy  € ð ÐÔ˜qÑ ÐÔØÐ!Ô! QÑ&Ð!Ô!ØÔ�gÔ˜wÐ'Ð'Ô'¨1Ñ,Ð'Ð'Ñ'à
€CÝˆD�z„z•TÒÐØ˜!”WˆØ˜!”Wˆ
ˆ
Ý	�$‰Œð %Ø�T‘V”Vˆ
ˆ
àˆÝ�d�D ™HœHÑ%Ô%ð 	Ø—’˜‘”ˆAØð 	5˜%ð 	5ÝŒK˜ °!Ñ!3Ñ4Ô4Ð4ØˆÝŒ?Ô'ð 	<Ý”/Ô.°Ñ4°tÑ;ˆCØ�2Š:ˆ:ØˆDåÔ ¨4Ý'1¤½z¼ðPñ Pô Pˆà×ÒÑ Ô ˆØ”_ˆ
à Ð$ÐD¨
°nÒ(D€GØð %Øð 	6ÝŒK˜ °Ñ!4Ñ5Ô5Ð5øåŒ�E˜<¨$Ñ.Ñ/Ô/Ð/ØÐ Ô  AÑ%Ð Ô ØÔ˜'Ô" 8Ð,Ð,Ô,°Ñ1Ð,Ð,Ñ,Ý�‰:Œ:�ÒÐ¥h¨t¡n¤nÐÝŒK˜˜tÑ$Ô$Ð$å„Ô$ð !­¨d©¬µtÒ);Ð);ÅHÈTÁNÄNÐ);ÝŒ
×Ò˜˜QœÑ Ô Ð ÝŒ
×Ò˜˜QœÑ Ô Ð à�Sˆ>Ðr   Ú*c                 ó    — |dk    r|S |›d|›�S )Nr÷  rk   r   )r¿  rÜ   rI   s      r   Ú
tests_namerù  v  s!   € Øˆs‚{€{Øˆà!˜'˜' 4 4Ð(Ð(r   c           	      ó¨   ‡ ‡‡— d‰ _         d‰ _        t          j        ddt	          ‰ ‰‰¦  «        z  ¦  «          G ˆˆ ˆfd„d¦  «        } |¦   «         S )Nr   r4  z
** Begin %s testsc                   ó$   •— e Zd Zd„ Zˆ ˆˆfd„ZdS )úbegin_tests.<locals>.Handlec                 ó   — d S rn   r   r"   s    r   Ú	__enter__z%begin_tests.<locals>.Handle.__enter__ƒ  s   € ØˆDr   c                 ó*   •— t          ‰‰‰¦  «         d S rn   )Ú	end_tests)r#   r'   rp   Ú	tracebackrÜ   r¿  rI   s       €€€r   Ú__exit__z$begin_tests.<locals>.Handle.__exit__†  s   ø€ Ý�c˜7 DÑ)Ô)Ð)Ð)Ð)r   N)r   r   r   rþ  r  )rÜ   r¿  rI   s   €€€r   ÚHandlerü  ‚  sG   ø€ € € € € ð	ð 	ð 	ð	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*r   r  )rÒ  rÑ  r   r/  rù  )r¿  rÜ   rI   r  s   ``` r   Úbegin_testsr  |  s‹   øøø€ Ø%&€CÔ"Ø%&€CÔ!Ý„K�Ð.Ý�3˜ Ñ&Ô&ñ(ñ )ô )ð )ð*ð *ð *ð *ð *ð *ð *ð *ð *ñ *ô *ð *ð ˆ6‰8Œ8€Or   c                 óÞ   — | j         }|dk    r0t          j        dd| j        t	          | ||¦  «        fz  ¦  «         d S t          j        dd|| j        t	          | ||¦  «        fz  ¦  «         d S )Nr   r4  z** Passed all %d %s testsrÜ  z** Failed %d / %d %s tests)rÒ  r   r/  rÑ  rù  )r¿  rÜ   rI   Úfailuress       r   r   r   ‹  s§   € ØÔ-€HØ�1‚}€}ÝŒ�GÐ8ØÔ)­:°c¸7ÀDÑ+IÔ+Ið<Kñ Kñ 	Lô 	Lð 	Lð 	Lð 	Lõ 	Œ�EÐ7Ø�cÔ3µZÀÀWÈdÑ5SÔ5Sð;Uñ Uñ 	Vô 	Vð 	Vð 	Vð 	Vr   c           
      óœ   — t          | ||¦  «         d}|D ]
}|d|z   z  }Œ|D ]}t          | ||||||¦  «         Œt          | ||¦  «         d S )Nr3   rË  )r  rö  r   )	r¿  rÜ   Útestsrï  rÔ  rI   ÚheadersrÕ  rf  s	            r   Ú	run_testsr
  ”  s€   € õ ��W˜dÑ#Ô#Ð#à€GØð ð ˆØ�6˜A‘:Ñˆˆàð Dð DˆÝ��g˜q .°$¸¸7ÑCÔCÐCÐCåˆc�7˜DÑ!Ô!Ð!Ð!Ð!r   c                 óX  — | j         dk    o:| j        d          o,| j        d         odt          j        vot          j        j         }|ra	 t          j        d| j        d         z  ¦  «         t          j
        d| j        d         g¦  «         d| j        d<   d S # t          $ r Y d S w xY wd S )NÚinstallÚRAN_LDCONFIGr«   ÚDESTDIRz Waf: Running `/sbin/ldconfig %s'z/sbin/ldconfigT)r   r   r–   Úenvironr   rÁ   Údestdirr   r§  r¨  r©  rÃ   )r¿  Ú
should_runs     r   Úrun_ldconfigr  ¦  sÜ   € Ø”'˜YÒ&ð .Ø”g˜nÔ-Ð-ð.à”'˜(Ô#ð.ð ¥2¤:Ð-ð.õ ”oÔ-Ð-ð	 ð ð ð	ÝŒIÐ8¸3¼7À8Ô;LÑLÑMÔMÐMÝŒOÐ-¨s¬w°xÔ/@ÐAÑBÔBÐBØ&*ˆCŒG�NÑ#Ð#Ð#øÝð 	ð 	ð 	ØˆDˆDð	øøøðð s   Á
AB Â
B'Â&B'c           	      ó0  — dd l }ddlm} |                     d¦  «        }|                     d¦  «        }|                     d¦  «        }	|                     d¦  «        }
|                     d¦  «        }|                     ¦   «         }	 |D ]}|                     |d¬	¦  «         Œn%# t          $ r t          j        d
¦  «         Y d S w xY w| 	                    d |j
        |j        ¦  «        }|                     ||	j        d g¦  «        D ]:}|d                              d¦  «        r|                     |d         d¬	¦  «         Œ;i }|                     ||j        d g¦  «        D �]±}|d         }| 	                    ||j        d ¦  «        }| 	                    ||j        d ¦  «        }| 	                    ||j        d ¦  «        }| 	                    ||j        d ¦  «        }| 	                    ||d         d ¦  «        }|st          j        d|›d|›�¦  «         |}|�rá|�rÞ|�rÛ|�rØi }t)          | ¦  «        |d<   t)          |¦  «        |d<    |t)          |¦  «        d¦  «        |d<   ||k    rdnd|d<   t)          |¦  «        |d<   g |d<   |                     ||j        d g¦  «        D ]”}t)          | 	                    |d         |	j        d ¦  «        ¦  «        }|dxx         |gz  cc<   |rP|�Nt)          |¦  «        |vrdg i|t)          |¦  «        <   |t)          |¦  «                 dxx         | ›d|›�gz  cc<   Œ•|rC|rA|t)          |¦  «                 D ]+}|dxx         |t)          |¦  «                 d         z  cc<   Œ,t)          | 	                    ||
j        d ¦  «        ¦  «        |d<   t)          | 	                    ||
j        d ¦  «        ¦  «        |d<   ||t)          |¦  «        t)          |¦  «        f<   �Œšt          j        d| z  ¦  «         �Œ³|S )Nr   )Ústrptimezhttp://usefulinc.com/ns/doap#z"http://ontologi.es/doap-changeset#z%http://www.w3.org/2000/01/rdf-schema#zhttp://xmlns.com/foaf/0.1/z+http://www.w3.org/1999/02/22-rdf-syntax-ns#Ún3)Úformatz+Error parsing data, unable to generate NEWSrv   z.ttlzfile-releasezNo file release for rá   rI   Úrevisionú%Y-%m-%dÚdateÚstableÚunstabler<  ÚdistrF   ú: Úblamee_nameÚblamee_mboxz)Ignored incomplete %s release description)ÚrdflibÚtimer  Ú	NamespaceÚConjunctiveGraphÚparserÃ   r   r—  rp   r'   ÚProjectÚtriplesÚseeAlsoÚendswithÚreleaser  ÚcreatedÚblameÚ	changesetr‘  ÚitemÚlabelrI   Úmbox)rI   Úin_filesÚtop_entriesÚextra_entriesÚdev_distr   r  ÚdoapÚdcsÚrdfsÚfoafÚrdfÚmrf  Úprojr  ÚentriesÚrr)  r  r  Úblameer,  r  Úentryr-  s                             r   Úget_rdf_newsr?  µ  su  € ð
 €M€M€MØÐÐÐÐÐà×ÒÐ;Ñ<Ô<€DØ×ÒÐ@ÑAÔA€CØ×ÒÐCÑDÔD€DØ×ÒÐ8Ñ9Ô9€DØ×ÒÐIÑJÔJ€CØ×"Ò"Ñ$Ô$€AðØð 	$ð 	$ˆAØ�GŠG�A˜dˆGÑ#Ô#Ð#Ð#ð	$øåð ð ð ÝŒ	Ð?Ñ@Ô@Ð@Øˆˆðøøøð �7Š7�4˜œ 4¤<Ñ0Ô0€DØ�YŠY˜˜dœl¨DÐ1Ñ2Ô2ð 'ð 'ˆØˆQŒ4�=Š=˜Ñ Ô ð 	'Ø�GŠG�A�a”D ˆGÑ&Ô&Ð&øà€GØ�YŠY˜˜dœl¨DÐ1Ñ2Ô2ð 'Jñ 'JˆØ�a”DˆØ—G’G˜G T¤]°DÑ9Ô9ˆØ—G’G˜G T¤\°4Ñ8Ô8ˆØ—G’G˜G S¤Y°Ñ5Ô5ˆØ—G’G˜G S¤]°DÑ9Ô9ˆ	Ø—G’G˜G T¨.Ô%9¸4Ñ@Ô@ˆàð 	ÝŒIˆI°T°T°T¸8¸8ÐDÑEÔEÐEØˆDàñ 	J˜ñ 	J ñ 	J¨Iñ 	JØ "ˆEÝ # D¡	¤	ˆE�&‰MÝ # H¡¤ˆE�*ÑØ ( ­¨T©¬°JÑ ?Ô ?ˆE�&‰MØ,0°HÒ,<Ð,<  À*ˆE�(‰OÝ # D¡	¤	ˆE�&‰MØ "ˆE�'‰Nà—Y’Y 	¨3¬8°TÐ:Ñ;Ô;ð 1ð 1�Ý˜1Ÿ7š7 1 Q¤4¨¬°TÑ:Ô:Ñ;Ô;�Ø�g��” 4 &Ñ(��‘Øð 1˜KÐ3Ý˜t™9œ9¨Ð3Ð3Ø29¸2°˜¥C¨¡I¤IÑ.Ø¥ D¡	¤	Ô*¨7Ð3Ð3Ô3Ø$( D D¨$¨$Ð/ð81ñ 1Ð3Ð3Ñ3øð ð H ð HØ&¥s¨4¡y¤yÔ1ð Hð H�AØ˜'�N�N”N mµC¸±I´IÔ&>¸wÔ&GÑG�N�N‘N�Nå#& q§w¢w¨v°t´yÀ$Ñ'GÔ'GÑ#HÔ#HˆE�-Ñ Ý#& q§w¢w¨v°t´yÀ$Ñ'GÔ'GÑ#HÔ#HˆE�-Ñ à27ˆG•S˜‘Y”Y¥ H¡¤Ð.Ñ/Ñ/åŒIÐAÀDÑHÑIÔIÐIÑIà€Ns   Â	B& Â&CÃCc           
      óØ  — dd l }ddlm} t          | ¦  «        dk    rd S t	          |d¦  «        }t          |                      ¦   «         d¬¦  «        D �]}| |         }|                     |d         ›d|d         ›d	|d
         ›d�¦  «         |d         D ]D}|                     |d¬¦  «        }|                     dd 	                    |¦  «        z   ¦  «         ŒE|                     d¦  «         |                     d|d         ›d|d          
                    dd¦  «        ›d�¦  «         |                     d |d|d         ¦  «        z  ¦  «         �Œ|                     ¦   «          d S )Nr   ©Ústrftimer�  T)ÚreverserI   z (r  z) r<  r�  rF   éO   )r+  z
  * z
    z

 --rá   r  z <r  zmailto:r3   ú>z  %s

z%a, %d %b %Y %H:%M:%S +0000r  )Útextwrapr!  rB  r½  r’  ÚsortedÚkeysr“  Úwraprc   rG   r”  )	r;  Úout_filerF  rB  Únewsrw  r>  r-  Úwrappeds	            r   Ú
write_newsrM  ü  s¡  € Ø€O€O€OØÐÐÐÐÐå
ˆ7�|„|�qÒÐØˆå�˜#ÑÔ€DÝ�G—L’L‘N”N¨DÐ1Ñ1Ô1ð Eñ EˆØ˜”
ˆØ�
Š
 e¨F¤m m m°U¸:Ô5FÐ5FÐ5FÈÈhÌÈÈÐXÑYÔYÐYØ˜'”Nð 	:ð 	:ˆDØ—m’m D°�mÑ3Ô3ˆGØ�JŠJ�x (§-¢-°Ñ"8Ô"8Ñ8Ñ9Ô9Ð9Ð9à�
Š
�9ÑÔÐØ�
Š
ˆ
  }Ô!5Ð!5Ð!5Ø!& }Ô!5×!=Ò!=¸iÈÑ!LÔ!LÐ!LÐ!LðNñ 	Oô 	Oð 	Oð 	�
Š
�:ØˆHÐ2°E¸&´MÑBÔBñDñ 	Eô 	Eð 	Eñ 	Eð 	‡J‚J�L„L€L€L€Lr   r  c                 ó  — ddl m} 	 t          j        |¦  «         n# t          $ r Y nw xY w| D �]P}| |         }|d         }|d         |k    rŒ  |d|d         ¦  «        } |d|d         ¦  «        }	t          j                             ||›d|d	         ›d|                     d
d¦  «        ›d�¦  «        }
t          |
d¦  «        }d|v r|d         n|d	         }| 	                    d|›d|›d�¦  «         | 	                    d|	z  ¦  «         | 	                    d|d	         ›d|                     d
d¦  «        ›d�¦  «         |D ]#}| 	                    |›d||         ›d�¦  «         Œ$| 	                    d¦  «         |d         }|d         |k    r%| 	                    d|d	         ›d|›d|›d�¦  «         d|v r| 	                    d|d         z   ¦  «         | 	                    d¦  «         t          |d         ¦  «        dk    rct          |d         ¦  «        dk    r|d         d         dk    s8| 	                    d¦  «         |d         D ]}| 	                    d|z  ¦  «         Œ|                     ¦   «          �ŒRdS )z+write news posts in Pelican Markdown formatr   rA  r9   r<  r  r  z%Y-%m-%d %H:%MrD   rI   rk   z.mdr�  r0  zTitle: rá   r_   z	Date: %s
zSlug: r  r  ú[z](z) has been released.Údescriptionz  rF   zInitial releasez
Changes:

z * %s
N)r!  rB  r–   ÚmkdirrÃ   r�   rc   rG   r’  r“  r½  r”  )r;  ÚmetaÚout_dirr<  rB  rf  r>  r  Údate_strÚdatetime_strr�   r€  r0  r?  Úurls                  r   Úwrite_postsrW    sõ  € àÐÐÐÐÐðÝ
Œ�ÑÔÐÐøÝð ð ð Øˆðøøøð ð $ñ $ˆØ˜1”:ˆØ�Q”4ˆØ�Œ?˜fÒ$Ð$Øà�x 
¨E°&¬MÑ:Ô:ˆØ�xÐ 0°%¸´-Ñ@Ô@ˆå”—’˜WØˆHˆH�e˜F”m�m�m X×%5Ò%5°c¸3Ñ%?Ô%?Ð%?Ð%?ð'Añ Bô Bˆå�T˜3‘”ˆØ")¨UÐ"2Ð"2��g”�¸¸f¼ˆØ�
Š
ˆ
 u u u¨h¨h¨hÐ7Ñ8Ô8Ð8Ø�
Š
�< ,Ñ.Ñ/Ô/Ð/Ø�
Š
ˆ
 e¨F¤m m m°X×5EÒ5EÀcÈ3Ñ5OÔ5OÐ5OÐ5OÐPÑQÔQÐQØð 	2ð 	2ˆAØ�JŠJ Q Q Q¨¨Q¬¨¨Ð0Ñ1Ô1Ð1Ð1Ø�
Š
�4ÑÔÐà�FŒmˆØ�Œ?˜fÒ$Ð$Ø�JŠJˆJØ�v”��   ¨#¨#¨#ð0ñ 1ô 1ð 1ð ˜EÐ!Ð!Ø�JŠJ�t˜e MÔ2Ñ2Ñ3Ô3Ð3à�
Š
�4ÑÔÐÝ��g”ÑÔ !Ò#Ð#Ý�U˜7”^Ñ$Ô$¨Ò)Ð)Ø�w” Ô"Ð&7Ò7Ð7Ø�JŠJÐ'Ñ(Ô(Ð(Ø˜7”^ð *ð *�Ø—
’
˜9 q™=Ñ)Ô)Ð)Ð)à�
Š
‰Œˆ‰ðI$ð $s   ˆ �
*©*c                 ó¬  — t          | d¦  «        }|                     ¦   «          |                     ¦   «          |                     ¦   «          d}|                     ¦   «         }t          |¦  «        dk    rL|dk    rF||                     dd¦  «        z  }|                     ¦   «         }t          |¦  «        dk    r|dk    °F|                     ¦   «         S )zGGet the first paragram of a Markdown formatted file, skipping the titler<  r3   r   r_   rá   )r’  Úreadliner½  rG   Ústrip)Úin_filer  rò  Úlines       r   Ú	get_blurbr]  B  s¯   € åˆW�cÑÔ€AØ‡J‚J�L„L€LØ‡J‚J�L„L€LØ‡J‚J�L„L€LØ
€CØ�:Š:‰<Œ<€DÝ
ˆd‰)Œ)�aŠ-ˆ-˜D DšL˜LØˆt�|Š|˜D #Ñ&Ô&Ñ&ˆØ�zŠz‰|Œ|ˆõ ˆd‰)Œ)�aŠ-ˆ-˜D DšL˜Lð �9Š9‰;Œ;Ðr   c                 ó¼  ‡— ddl }ddl}t          | d¦  «        }i }	 |                     ¦   «         }|                     d¦  «                             |¦  «        }|€�nëi Š|                     d¦  «        ‰d<   |                     d¦  «        ‰d	<   |                     d
¦  «        ‰d<   g ‰d<   d|v r|d         ‰d	         z  ‰d<   |                     ¦   «         dk    rt          d¦  «        ‚ˆfd„}d}	d}
|
dk    rn|                     ¦   «         }
|
                     d¦  «        r( ||	¦  «         |
d
d…          	                    ¦   «         }	n|	|
 	                    ¦   «         z  }	|
dk    °n ||	¦  «         |                     ¦   «         }|                     d¦  «                             |¦  «        }| 
                    |                     d
¦  «        ¦  «        ‰d<   |                     d¦  «        ‰d<   |                     d¦  «        ‰d<   ‰                     |¦  «         ‰|‰d         ‰d	         f<   |                     ¦   «          �Œ+|                     ¦   «          |S )a  Get NEWS entries in the format expected by write_posts().

    Properties that should be set on every entry can be passed in
    `entry_props`.  If `entry_props` has a 'dist_pattern' value, it is used to
    set the 'dist' entry of entries by substituting the version number.
    r   Nr<  Tz([^ ]*) \((.*)\) ([a-zA-z]*);r9   rI   rv   r  é   r<  rF   Údist_patternr  r_   z%expected blank line after NEWS headerc                 ó    •— t          | ¦  «        dk    r9‰dxx         |                      dd¦  «                             ¦   «         gz  cc<   d S d S )Nr   rF   r_   rá   )r½  rG   rZ  )r-  r>  s    €r   Úadd_itemzget_news.<locals>.add_itemo  sP   ø€ Ý�4‰yŒy˜1Š}ˆ}Ø�g��” 4§<¢<°°cÑ#:Ô#:×#@Ò#@Ñ#BÔ#BÐ"CÑC��‘��ð ˆ}r   r3   z  * z -- (.*) <(.*)>  (.*)r  r  r  )ÚreÚrfc822r’  rY  ÚcompileÚmatchÚgroupÚSyntaxErrorr^  ÚlstripÚ	parsedaterb  r”  )r[  Úentry_propsrc  rd  r  r;  ÚheadÚmatchesrb  r-  r\  Úfootr>  s               @r   Úget_newsro  O  sr  ø€ ð €I€I€IØ€M€M€Må�7˜CÑ Ô €AØ€Gð-à—*’*‘,”,ˆØ—*’*Ð=Ñ>Ô>×DÒDÀTÑJÔJˆØˆ?ÙàˆØ#ŸMšM¨!Ñ,Ô,ˆˆf‰Ø#ŸMšM¨!Ñ,Ô,ˆˆjÑØ#ŸMšM¨!Ñ,Ô,ˆˆh‰Øˆˆg‰Ø˜[Ð(Ð(Ø'¨Ô7¸%À
Ô:KÑKˆE�&‰Mð �:Š:‰<Œ<˜4ÒÐÝÐEÑFÔFÐFð	Dð 	Dð 	Dð 	Dð 	Dð
 ˆØˆØ�dŠlˆlØ—:’:‘<”<ˆDØ�Š˜vÑ&Ô&ð &Ø�˜‘”�Ø˜A˜B˜B”x—’Ñ(Ô(��à˜Ÿš™œÑ%�ð �dŠlˆlð 	ˆ�‰Œˆð —*’*‘,”,ˆØ—*’*Ð4Ñ5Ô5×;Ò;¸DÑAÔAˆØ%×/Ò/°·²¸aÑ0@Ô0@ÑAÔAˆˆf‰Ø&Ÿ}š}¨QÑ/Ô/ˆˆmÑØ&Ÿ}š}¨QÑ/Ô/ˆˆmÑØ�Š�[Ñ!Ô!Ð!Ø6;ˆ��v”  jÔ 1Ð2Ñ3ð 	
�
Š
‰Œˆñ[-ð^ ‡G‚G�I„I€Ià€Nr   c                 ó  — t          j        d¦  «        }|s%|}t          j                             d|z  ¦  «         n"t          j                             d|z  ¦  «         t          | |¦  «        }t          |||¦  «         d S )NÚPOST_DIRz/POST_DIR not set in environment, writing to %s
zwriting posts to %s
)r–   Úgetenvr”   rÎ  r“  ro  rW  )Ú	news_filerk  Ú	post_metaÚdefault_post_dirÚpost_dirr;  s         r   Únews_to_postsrw  �  s€   € ÝŒy˜Ñ$Ô$€HØð =Ø#ˆÝŒ
×ÒÐKÈhÑVÑWÔWÐWÐWåŒ
×ÒÐ0°8Ñ;Ñ<Ô<Ð<å�y +Ñ.Ô.€GÝ�˜ HÑ-Ô-Ð-Ð-Ð-r   c                 ó<   — | D ]}t          j        |d¬¦  «         Œd S )NT©rè  )r¨  Ú
check_call)Úcmdsr   s     r   Ú
run_scriptr|  š  s4   € Øð /ð /ˆÝÔ˜c¨Ð.Ñ.Ô.Ð.Ð.ð/ð /r   c                 ó–  — |€|                       ¦   «         }|p|                       ¦   «         ›d|›d�}	 t          j        |¦  «         t          j        |dz   ¦  «         n# t          $ r Y nw xY wt	          j        dd¬¦  «        }|r&t          j        d|z   ¦  «         t          d¦  «        ‚t	          j        d	d¬¦  «        }|d
d …                              ¦   «                               ¦   «         }|                       ¦   «         ›d|›�}||k    rt          d|›d|›d�¦  «        ‚t          ddddd|z  d|›d| ›d|›d�g¦  «         d S )NrD   z.tar.bz2z.sigzgit status --porcelainTry  z!error: git working copy is dirty
zgit working copy is dirtyzgit show -s --oneliner~  rá   zlatest commit "z" does not match "ú"z./waf configure --docsz./wafz./waf distcheckz./waf postsz	gpg -b %szgit tag -s vz -m ")
r†   r–   rt  rÃ   r¨  Úcheck_outputr   rO   rZ  r|  )rI   rÝ   Ú	dist_namer  r<  rl  Úhead_summaryÚexpected_summarys           r   r)  r)  ž  s¡  € ØÐØ—J’J‘L”Lˆ	à'Ð7¨4¯:ª:©<¬<Ð7Ð7¸¸¸ÐA€DðÝ
Œ	�$‰ŒˆÝ
Œ	�$˜‘-Ñ Ô Ð Ð øÝð ð ð Øˆðøøøõ Ô$Ð%=ÀTÐJÑJÔJ€FØð 5ÝŒ
Ð7¸&Ñ@ÑAÔAÐAÝÐ3Ñ4Ô4Ð4åÔ"Ð#:À$ÐGÑGÔG€DØ˜˜˜”8—>’>Ñ#Ô#×)Ò)Ñ+Ô+€LØ"&§*¢*¡,¤, , ,°°Ð8ÐØÐ'Ò'Ð'ÝˆiØˆLˆLÐ*Ð*Ð*ð,ñ -ô -ð 	-õ Ð(ØØ!ØØ˜dÑ"Ð"Ø/6¨w¨w¸¸¸¸g¸g¸gÐFðHñ Iô Ið Ið Ið Is   ´+A  Á 
A-Á,A-)FF)r3   Trn   )Fræ  )r÷  )NNN)r  )Krs  r–   r¨  r”   Úwaflibr   r   r   r   r   Úwaflib.TaskGenr   r	   r
   rã   r:   r*  ÚBuildContextr   r$   rB   rK   rR   rY   rg   rl   rW   r�   r—   rß   rè   rñ   rô   rö   rø   rþ   r  r  r   r'  r,  r1  rä   ræ   rI  rM  rP  rR  rh  rl  rx  r�  r   r®  rµ  r¹  r»  rÁ  rÅ  r×  rä  rö  rù  r  r   r
  r  r?  rM  rW  r]  ro  rw  r|  r)  r   r   r   ú<module>r†     sP  ðØ €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ð €
ð 
€ð €	ðð ð ð ð �%Ô$ñ ô ð ð
 	€ˆˆeÑÔØ€ÐÑÔðBð Bñ Ôñ ÔðBð;ð ;ð ;ð ;ðz?ð ?ð ?ð
:ð :ð :ð:ð :ð :ð :ð*ð *ð *ð2ð 2ð 2ðð ð ð4Nð 4Nð 4Nðl&ð &ð &ðAð Að AðF!ð !ð !ð !ð	1ð 	1ð 	1ð
3ð 
3ð 
3ðð ð ðð ð ð ð
?ð 
?ð 
?ðð ð ð4ð 4ð 4ð( 	€ˆˆeÑÔØ€ˆÑÔð,ð ,ñ Ôñ Ôð,ð,ð ,ð ,ðð ð ð
#ð #ð #ð

ð 
ð 
ð 
ð ð  ð  ð,ð ,ð ,ð1ð 1ð 1ðð ð ðð ð ð CEð 4$ð 4$ð 4$ð 4$ðl-ð -ð -ð%Hð %Hð %HðP)Eð )Eð )Eð )EðXð ð ð@8ð 8ð 8ð 8ð$ð ð ð ðð ð ð ð Eð Eð Eð Eð
9ð 9ð 9ðð ð ð "' ð ð ð ð ð4 #( °)¸VÐ1Dð 9'ð 9'ð 9'ð 9'ð| Ø�'ØØØð8ð 8ð 8ð 8ðt)ð )ð )ð )ðð ð ð ðVð Vð Vð Vð Ø�7ØØð"ð "ð "ð "ð$ð ð ð" "Ø#Øð	Eð Eð Eð EðNð ð ð0,ð ,ð ,ð ,ð\ð ð ð #%ð >ð >ð >ð >ð@	.ð 	.ð 	.ð/ð /ð /ðIð Ið Ið Ið Ið Ir   