a ‚oeqã@s¾ddlZddlZddlmZgd¢Zddd„Zddd „Zdd d „Zzdd lm Z Wne yld d„Z Yn0dd„Z ze e fZddlZWney¨e ZddlZYn0dd„Zdd„ZdS)éNé)ÚVerificationError)ÚsourcesZ include_dirsZ library_dirsZ extra_objectsZdepends©cKsBddlm}|g}|D]}| tj |¡¡q|f||dœ|¤ŽS)Nr)Ú Extension)Únamer)Úcffi._shimmed_dist_utilsrÚappendÚosÚpathÚnormpath)Z srcfilenameÚmodnamerÚkwdsrZ allsourcesÚsrcrrú1C:\Program Files\Certbot\pkgs\cffi\ffiplatform.pyÚ get_extensions  rc Csˆtj ¡}zJt||||ƒ}tj |¡}W| ¡D]"\}}tj |¡|kr0|tj|<q0n.| ¡D]"\}}tj |¡|kr^|tj|<q^0|S)z-Compile a C extension module using distutils.)r ÚenvironÚcopyÚ_buildr ÚabspathÚitemsÚget)ÚtmpdirÚextÚcompiler_verboseÚdebugZ saved_environZoutputfilenameÚkeyÚvaluerrrÚcompiles þrc Cs ddlm}m}m}m}m}|d|giƒ} |  ¡|  d¡} |durLtj j }d|f| d<d| d<d|f| d <d|f| d <zN|dƒp„d} z2||ƒ|   d¡|   d¡} |   ¡\} W|| ƒn || ƒ0Wn>||f�y}z td |jj|fƒ‚WYd}~n d}~00| S) Nr)Ú DistributionÚ CompileErrorÚ LinkErrorÚ set_thresholdÚ set_verbosityZ ext_modulesZ build_extÚ ffiplatformr)r$TÚforceZ build_libZ build_tempz%s: %s)rrr r!r"r#Zparse_config_filesZget_option_dictÚsysÚflagsrZ run_commandZget_command_objZ get_outputsrÚ __class__Ú__name__)rrrrrr r!r"r#ZdistÚoptionsZ old_levelZcmd_objZsonameÚerrrrs*        *r)ÚsamefilecCstj |¡tj |¡kS©N)r r r)Úf1Úf2rrrr,=sr,cCs†tj |¡s|S|}g}|}tj |¡\}}||ks8|s<|S| |¡z&t|tjƒrj| ¡tjj|ŽWSWqt y~Yq0qdSr-) r r ÚisabsÚsplitr r,ÚcurdirÚreverseÚjoinÚOSError)r ÚdirÚnamesZprevdirrrrrÚmaybe_relative_path@s     r8cCsÒt|tƒr"| dt|ƒ|f¡n¬t|tƒrnt| ¡ƒ}| dt|ƒ¡|D]}t||ƒt|||ƒqNn`t|tt fƒr¤| dt|ƒ¡|D]}t||ƒq’n*t|t ƒrÀ| d|f¡nt d|fƒ‚dS)Nz%ds%sz%ddz%dlz%diz7the keywords to verify() contains unsupported object %r) Ú isinstanceÚstrÚwriteÚlenÚdictÚsortedÚkeysÚ_flattenÚlistÚtupleÚ int_or_longÚ TypeError)ÚxÚfr?rrrrrr@[s"     ÿr@cCst ¡}t||ƒ| ¡Sr-)Ú cStringIOÚStringIOr@Úgetvalue)rErFrrrÚflattenns rJ)r)rN)rN)r&r ÚerrorrZLIST_OF_FILE_NAMESrrrZos.pathr,Ú ImportErrorr8ÚintZlongrCrGÚ NameErrorÚior@rJrrrrÚs$