§
    WŠtjxh  ã                  ób  — d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	 ddl
Z
ddlZ
ddlZ
ddlmZ ddlmZ ddlmZ ddlmZmZ ddlmZ dd	lmZ d
dlmZmZ d
dlmZ d
dlm Z  ddlm!Z! ddl"Z#ddl$Z#ddl#m%Z% ddl"m&Z& ddl$m'Z( ddl)m*Z* ej+        j,        › dej+        j-        › �Z. G d„ d¦  «        Z/d„ Z0 G d„ d¦  «        Z1 G d„ de1e¦  «        Z2 G d„ de(¦  «        Z' G d„ de¦  «        Z3d/d"„Z4d/d#„Z5d/d$„Z6e!j7        Z7e!j8        Z8d/d%„Z9d/d&„Z:d0d1d*„Z;d/d+„Z<d2d,„Z= G d-„ d.e ¦  «        Z>dS )3zUsetuptools.command.egg_info

Create a distribution's .egg-info directory and contentsé    )ÚannotationsN)ÚCallable)ÚCommand)Ú	bdist_egg)ÚsdistÚwalk_revctrl)Úedit_config)Úglobé   )Ú_entry_pointsÚ_normalization)Úmetadata)ÚSetuptoolsDeprecationWarningé   )Ú_requirestxt)Úlog)ÚDistutilsInternalError)ÚFileList)Úconvert_pathú.c                  ó&   — e Zd ZdZd
d„Zd„ Zd„ Zd	S )Ú_NormalizedMatchera�  
    Wrap a compiled pattern so that matching is insensitive to Unicode
    normalization form.

    File names walked from disk (NFD on macOS APFS/HFS+) and patterns from
    ``MANIFEST.in`` (typically NFC) can denote the same file while differing
    byte-for-byte. Normalizing both sides before matching keeps an exclusion
    (or inclusion) from silently failing. See GHSA-h35f-9h28-mq5c.
    Úpatternú
re.PatternÚreturnÚNonec                ó   — || _         d S ©N)Ú_pattern)Úselfr   s     úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/setuptools/command/egg_info.pyÚ__init__z_NormalizedMatcher.__init__3   s   € ØˆŒˆˆó    c                óZ   — | j                              t          j        |¦  «        ¦  «        S r   )r   ÚmatchÚunicode_utilsÚ	normalize©r    Úpaths     r!   r%   z_NormalizedMatcher.match6   s#   € ØŒ}×"Ò"¥=Ô#:¸4Ñ#@Ô#@ÑAÔAÐAr#   c                óZ   — | j                              t          j        |¦  «        ¦  «        S r   )r   Úsearchr&   r'   r(   s     r!   r+   z_NormalizedMatcher.search9   s#   € ØŒ}×#Ò#¥MÔ$;¸DÑ$AÔ$AÑBÔBÐBr#   N)r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r%   r+   © r#   r!   r   r   (   sX   € € € € € ðð ð ð  ð  ð  ðBð Bð BðCð Cð Cð Cð Cr#   r   c                ó   — d}t          j        | ¦  «        }  | j        t          j        j        ¦  «        }t          j        t          j        ¦  «        }d|› d�}t          |¦  «        D �]f\  }}|t          |¦  «        dz
  k    }|dk    r|r|dz  }n|d|› d|› d	�z  }Œ7d
}t          |¦  «        }	||	k     �r||         }
|
dk    r	||dz   z  }ní|
dk    r||z  }ná|
dk    rÄ|dz   }||	k     r||         dk    r|dz   }||	k     r||         dk    r|dz   }||	k     r#||         dk    r|dz   }||	k     r||         dk    °||	k    r|t          j        |
¦  «        z  }na||dz   |…         }d}|d
         dk    rd}|dd…         }|t          j        |¦  «        z  }|d|› d�z  }|}n|t          j        |
¦  «        z  }|dz  }||	k     �°|s||z  }�Œh|dz  }t          t          j        |t          j        t          j        z  ¬¦  «        ¦  «        S )zö
    Translate a file path glob like '*.txt' in to a regular expression.
    This differs from fnmatch.translate which allows wildcards to match
    directory separators. It also knows about '**/' which matches any number of
    directories.
    Ú z[^ú]r   ú**z.*z(?:ú+z)*r   Ú*ú?ú[ú!ú^Nz\Z)Úflags)r&   r'   ÚsplitÚosr)   ÚsepÚreÚescapeÚ	enumerateÚlenr   ÚcompileÚ	MULTILINEÚDOTALL)r
   ÚpatÚchunksr>   Ú
valid_charÚcÚchunkÚ
last_chunkÚiÚ	chunk_lenÚcharÚinner_iÚinnerÚ
char_classs                 r!   Útranslate_patternrR   =   s£  € ð €Cõ
 Ô" 4Ñ(Ô(€Dð ˆTŒZ�œœÑ$Ô$€Få
Œ)•B”FÑ
Ô
€CØ�c���€Jå˜fÑ%Ô%ð >ñ >‰ˆˆ5Ø�#˜f™+œ+¨™/Ò)ˆ
ð �DŠ=ˆ=Øð 2à�t‘��ð Ð1˜ZÐ1Ð1¨#Ð1Ð1Ð1Ñ1�Øð ˆÝ˜‘J”Jˆ	Ø�)Šm‰mØ˜”8ˆDØ�sŠ{ˆ{à�z CÑ'Ñ'��Ø˜’�à�zÑ!��Ø˜’�à˜a™%�à˜YÒ&Ð&¨5°¬>¸SÒ+@Ð+@Ø%¨™k�GØ˜YÒ&Ð&¨5°¬>¸SÒ+@Ð+@Ø%¨™k�Gð  	Ò)Ð)¨e°G¬nÀÒ.CÐ.CØ%¨™k�Gð  	Ò)Ð)¨e°G¬nÀÒ.CÐ.Cð ˜iÒ'Ð'ð �2œ9 T™?œ?Ñ*�C�Cð " ! a¡%¨' /Ô2�EØ!#�Jð ˜Q”x 3’�Ø%(˜
Ø % a b b¤	˜à¥"¤)¨EÑ"2Ô"2Ñ2�JØÐ,˜zÐ,Ð,Ð,Ñ,�Cð  �A�Aà•r”y ‘”Ñ&�Ø�‰FˆAðU �)Šm‰mðZ ð 	Ø�3‰JˆCùàˆ5�L€CÝ�bœj¨µB´LÅ2Ä9Ñ4LÐMÑMÔMÑNÔNÐNr#   c                  óf   — e Zd ZdZdZed„ ¦   «         Zd„ Zd„ Zdd	„Z	dd
„Z
dd„Z ee¦  «        ZdS )Ú
InfoCommonNc                óX   — t          j        | j                             ¦   «         ¦  «        S r   )r   Ú	safe_nameÚdistributionÚget_name©r    s    r!   ÚnamezInfoCommon.name™   s"   € åÔ'¨Ô(9×(BÒ(BÑ(DÔ(DÑEÔEÐEr#   c                ó‚   — |                       | j                             ¦   «         ¦  «        }t          j        |¦  «        S r   )Ú
_maybe_tagrW   Úget_versionr   Úsafe_version)r    Útaggeds     r!   Útagged_versionzInfoCommon.tagged_version�   s3   € Ø—’ Ô!2×!>Ò!>Ñ!@Ô!@ÑAÔAˆÝÔ*¨6Ñ2Ô2Ð2r#   c                óR   — | j         r|                      |¦  «        r|n	|| j         z   S )z�
        egg_info may be called more than once for a distribution,
        in which case the version string already contains all tags.
        )ÚvtagsÚ_already_tagged©r    Úversions     r!   r\   zInfoCommon._maybe_tag¡   s7   € ð Œzð&Ø"×2Ò2°7Ñ;Ô;ð&ˆGˆGà˜4œ:Ñ%ð	
r#   re   Ústrr   Úboolc                ó^   — |                      | j        |                      ¦   «         f¦  «        S r   )Úendswithrb   Ú
_safe_tagsrd   s     r!   rc   zInfoCommon._already_tagged¬   s)   € ð ×Ò ¤¨T¯_ª_Ñ->Ô->Ð ?Ñ@Ô@Ð@r#   c                óÚ   — 	 t          j        d| j        › �¦  «        dd …         S # t          j        j        $ r0 t          j        | j                             dd¦  «        ¦  «        cY S w xY w)NÚ0r   ú r   )r   r^   rb   Ú	packagingre   ÚInvalidVersionrV   ÚreplacerY   s    r!   rj   zInfoCommon._safe_tags±   s{   € ð	JÝ!Ô.Ð/?°4´:Ð/?Ð/?Ñ@Ô@ÀÀÀÔDÐDøÝÔ Ô/ð 	Jð 	Jð 	JÝ!Ô+¨D¬J×,>Ò,>¸sÀCÑ,HÔ,HÑIÔIÐIÐIÐIð	Jøøøs   ‚#& ¦AA*Á)A*c                óh   — d}| j         r
|| j         z  }| j        r|t          j        d¦  «        z  }|S )Nr2   z%Y%m%d)Ú	tag_buildÚtag_dateÚtimeÚstrftimerd   s     r!   ÚtagszInfoCommon.tags¹   s@   € ØˆØŒ>ð 	&Ø�t”~Ñ%ˆGØŒ=ð 	/Ø•t”} XÑ.Ô.Ñ.ˆGØˆr#   )re   rf   r   rg   )r   rf   )r,   r-   r.   rr   rs   ÚpropertyrZ   r`   r\   rc   rj   rv   rb   r0   r#   r!   rT   rT   •   s¥   € € € € € Ø€IØ€HàðFð Fñ „XðFð3ð 3ð 3ð	
ð 	
ð 	
ðAð Að Að Að
Jð Jð Jð Jðð ð ð ð ˆH�T‰NŒN€E€E€Er#   rT   c                  ó®   — e Zd ZdZg d¢ZdgZddiZd„ Zedd„¦   «         Z	e	j
        dd
„¦   «         Z	dd„Zdd„Zedfd„Zddd„Zdd„Zdd„Zdd„Zdd„ZdS )Úegg_infoz+create a distribution's .egg-info directory))z	egg-base=ÚezLdirectory containing .egg-info directories [default: top of the source tree])útag-dateÚdz0Add date stamp (e.g. 20050528) to version number)z
tag-build=Úbz-Specify explicit tag to add to version number)úno-dateÚDz"Don't include date stamp [default]r{   r~   c                óL   — d | _         d | _        d | _        d | _        d| _        d S )NF)Úegg_baseÚegg_namery   Úegg_versionÚignore_egg_info_in_manifestrY   s    r!   Úinitialize_optionszegg_info.initialize_optionsØ   s-   € ØˆŒØˆŒØˆŒØˆÔØ+0ˆÔ(Ð(Ð(r#   r   ú
int | Nonec                ó   — d S r   r0   rY   s    r!   Útag_svn_revisionzegg_info.tag_svn_revisionâ   ó   € àˆr#   r   c                ó   — d S r   r0   )r    Úvalues     r!   rˆ   zegg_info.tag_svn_revisionæ   r‰   r#   c                óˆ   — t          |                      ¦   «         d¬¦  «        }t          |t          |¬¦  «        ¦  «         dS )z³
        Materialize the value of date into the
        build tag. Install build keys in a deterministic order
        to avoid arbitrary reordering on subsequent builds.
        r   )rr   rs   )ry   N)Údictrv   r	   )r    Úfilenamery   s      r!   Úsave_version_infozegg_info.save_version_infoì   s?   € õ  $§)¢)¡+¤+¸Ð:Ñ:Ô:ˆÝ�H�d¨HÐ5Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6r#   c                óZ  — | j         | _        |                      ¦   «         | _        t          j                             | j        ¦  «        }	 t          |t          j        j        ¦  «        }|rdnd}t          j         	                    || j        | j        fz  ¦  «         nB# t          $ r5}t          j                             d| j        › d| j        › �¦  «        |‚d }~ww xY w| j        €3| j        j        }|pi                      dt$          j        ¦  «        | _        |                      d¦  «         t+          j        | j        ¦  «        dz   | _        | j        t$          j        k    r/t$          j                             | j        | j        ¦  «        | _        | j        | j        j        _        d S )Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: ú-r2   r�   ú	.egg-info)rZ   r‚   r`   rƒ   rn   re   ÚVersionÚ
isinstanceÚrequirementsÚRequirementÚ
ValueErrorÚ	distutilsÚerrorsÚDistutilsOptionErrorr�   rW   Úpackage_dirÚgetr=   ÚcurdirÚensure_dirnamer   Úfilename_componentry   r)   Újoinr   )r    Úparsed_versionÚ
is_versionÚspecrz   Údirss         r!   Úfinalize_optionszegg_info.finalize_options÷   sƒ  € ð
 œ	ˆŒØ×.Ò.Ñ0Ô0ˆÔÝ"Ô*×2Ò2°4Ô3CÑDÔDˆð	Ý# NµIÔ4EÔ4MÑNÔNˆJØ)Ð8�8�8¨yˆDÝÔ"×.Ò.¨t°t´}ÀdÔFVÐ6WÑ/WÑXÔXÐXÐXøÝð 	ð 	ð 	ÝÔ"×7Ò7ØbÀÄÐbÐbÐPTÔP`ÐbÐbñô àðøøøøð	øøøð
 Œ=Ð ØÔ$Ô0ˆDØ!˜Z R×,Ò,¨Rµ´Ñ;Ô;ˆDŒMà×Ò˜JÑ'Ô'Ð'Ý&Ô9¸$¼-ÑHÔHÈ;ÑVˆŒØŒ=�BœIÒ%Ð%ÝœGŸLšL¨¬¸¼ÑFÔFˆDŒMð
 .2Ô-=ˆÔÔ"Ô*Ð*Ð*s   ÁAB Â
CÂ)0CÃCNc                ó:   — t          | j        | j        ||¦  «        S )ú0Compute filename of the output egg. Private API.)Ú_egg_basenamer‚   rƒ   )r    Ú
py_versionÚplatforms      r!   Ú_get_egg_basenamezegg_info._get_egg_basename  s   € å˜Tœ]¨DÔ,<¸jÈ(ÑSÔSÐSr#   FÚforcerg   c                óà   — |r|                       |||¦  «         dS t          j                             |¦  «        r3|€|st	          j        d||¦  «         dS |                      |¦  «         dS dS )a¹  Write `data` to `filename` or delete if empty

        If `data` is non-empty, this routine is the same as ``write_file()``.
        If `data` is empty but not ``None``, this is the same as calling
        ``delete_file(filename)`.  If `data` is ``None``, then this is a no-op
        unless `filename` exists, in which case a warning is issued about the
        orphaned file (if `force` is false), or deleted (if `force` is true).
        Nz$%s not set in setup(), but %s exists)Ú
write_filer=   r)   Úexistsr   ÚwarnÚdelete_file)r    ÚwhatrŽ   Údatar¬   s        r!   Úwrite_or_delete_filezegg_info.write_or_delete_file  s…   € ð ð 	+Ø�OŠO˜D (¨DÑ1Ô1Ð1Ð1Ð1ÝŒW�^Š^˜HÑ%Ô%ð 	+Øˆ| Eˆ|Ý”Ð?ÀÀxÑPÔPÐPØ�à× Ò  Ñ*Ô*Ð*Ð*Ð*ð	+ð 	+r#   c                óÎ   — t          j        d||¦  «         |                     d¦  «        }t          |d¦  «        }|                     |¦  «         |                     ¦   «          dS )zªWrite `data` to `filename` (if not a dry run) after announcing it

        `what` is used in a log message to identify what is being written
        to the file.
        zwriting %s to %súutf-8ÚwbN)r   ÚinfoÚencodeÚopenÚwriteÚclose)r    r²   rŽ   r³   Úfs        r!   r®   zegg_info.write_file-  sY   € õ 	ŒÐ# T¨8Ñ4Ô4Ð4Ø�{Š{˜7Ñ#Ô#ˆÝ�˜4Ñ Ô ˆØ	�Š�‰ŒˆØ	�Š‰	Œ	ˆ	ˆ	ˆ	r#   c                óX   — t          j        d|¦  «         t          j        |¦  «         dS )z8Delete `filename` (if not a dry run) after announcing itzdeleting %sN)r   r¸   r=   Úunlink)r    rŽ   s     r!   r±   zegg_info.delete_file9  s*   € åŒ� Ñ)Ô)Ð)Ý
Œ	�(ÑÔÐÐÐr#   c           	     ó°  — t          t          j        d¬¦  «        ¦  «        }|                      | j        ¦  «         	 t          j        | j        d ¦  «         n=# t          $ r0}d| j        › d�}t          j	         
                    |¦  «        |‚d }~ww xY w|D ]P}|                     ¦   «         } || |j        t
          j                             | j        |j        ¦  «        ¦  «         ŒQt
          j                             | j        d¦  «        }t
          j                             |¦  «        r|                      |¦  «         |                      ¦   «          d S )Nzegg_info.writers)Úgroupz'Cannot update time stamp of directory 'ú'znative_libs.txt)Úlistr   Úentry_pointsÚmkpathry   r=   ÚutimeÚOSErrorr˜   r™   ÚDistutilsFileErrorÚloadrZ   r)   r    r¯   r±   Úfind_sources)r    Úwritersrz   ÚmsgÚepÚwriterÚnls          r!   Úrunzegg_info.run>  sH  € õ •xÔ,Ð3EÐFÑFÔFÑGÔGˆà�Š�D”MÑ"Ô"Ð"ð	BÝŒH�T”] DÑ)Ô)Ð)Ð)øÝð 	Bð 	Bð 	BØL¸D¼MÐLÐLÐLˆCÝÔ"×5Ò5°cÑ:Ô:ÀÐAøøøøð	Bøøøð ð 	Hð 	HˆBØ—W’W‘Y”YˆFØˆF�4˜œ¥"¤'§,¢,¨t¬}¸b¼gÑ"FÔ"FÑGÔGÐGÐGõ ŒW�\Š\˜$œ-Ð):Ñ;Ô;ˆÝŒ7�>Š>˜"ÑÔð 	!Ø×Ò˜RÑ Ô Ð à×ÒÑÔÐÐÐs   ¾A Á
BÁ#+BÂBc                óÞ   — t           j                             | j        d¦  «        }t	          | j        ¦  «        }| j        |_        ||_        | 	                    ¦   «          |j
        | _
        dS )z"Generate SOURCES.txt manifest filezSOURCES.txtN)r=   r)   r    ry   Úmanifest_makerrW   r„   Úignore_egg_info_dirÚmanifestrÐ   Úfilelist)r    Úmanifest_filenameÚmms      r!   rÊ   zegg_info.find_sourcesT  sV   € åœGŸLšL¨¬¸ÑFÔFÐÝ˜DÔ-Ñ.Ô.ˆØ!%Ô!AˆÔØ'ˆŒØ
�Š‰ŒˆØœˆŒˆˆr#   )r   r†   ©r   r   ©F©r¬   rg   r   r   )r,   r-   r.   ÚdescriptionÚuser_optionsÚboolean_optionsÚnegative_optr…   rw   rˆ   Úsetterr�   r¥   ÚPY_MAJORr«   r´   r®   r±   rÐ   rÊ   r0   r#   r!   ry   ry   Ä   sC  € € € € € Ø?€Kð
ð 
ð 
€Lð "�l€Oà�:ð€Lð1ð 1ð 1ð ðð ð ñ „Xðð Ôðð ð ñ Ôðð
	7ð 	7ð 	7ð 	7ð>ð >ð >ð >ð@ ,4¸dð Tð Tð Tð Tð+ð +ð +ð +ð +ð$
ð 
ð 
ð 
ðð ð ð ð
ð ð ð ð,$ð $ð $ð $ð $ð $r#   ry   c                  ó~   ‡ — e Zd Z	 ddˆ fd„Zdd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zdd„Zdd„Zd„ Zd„ Zˆ xZS )r   NFrÓ   rg   r   r   c                óZ   •— t          ¦   «                              ||¦  «         || _        d S r   )Úsuperr"   rÓ   )r    r°   Údebug_printrÓ   Ú	__class__s       €r!   r"   zFileList.__init__a  s-   ø€ õ 	‰Œ×Ò˜˜{Ñ+Ô+Ð+Ø#6ˆÔ Ð Ð r#   c           	     óf  — |                       |¦  «        \  }}}}| j        | j        | j        | j        t          j        | j        |¦  «        t          j        | j        |¦  «        | j	        | j
        dœ}dddddddd	dœ}	 ||         }n&# t          $ r d
|›d|›�}	t          |	¦  «        d ‚w xY w|                     d¦  «        }
|dv r|g}|
r|fnd}||         }|                      d                     |g|
r|gng z   |z   ¦  «        ¦  «         |D ] } ||¦  «        st!          j        ||g|¢R Ž  Œ!d S )N)ÚincludeÚexcludezglobal-includezglobal-excludezrecursive-includezrecursive-excludeÚgraftÚprunez%warning: no files found matching '%s'z9warning: no previously-included files found matching '%s'z>warning: no files found matching '%s' anywhere in distributionzRwarning: no previously-included files matching '%s' found anywhere in distributionz:warning: no files found matching '%s' under directory '%s'zNwarning: no previously-included files matching '%s' found under directory '%s'z+warning: no directories found matching '%s'z6no previously-included directories found matching '%s'z$Invalid MANIFEST.in: unknown action z in z
recursive->   ré   rê   r0   rm   )Ú_parse_template_linerç   rè   Úglobal_includeÚglobal_excludeÚ	functoolsÚpartialÚrecursive_includeÚrecursive_excluderé   rê   ÚKeyErrorr   Ú
startswithrä   r    r   r°   )r    ÚlineÚactionÚpatternsÚdirÚdir_patternÚ
action_mapÚlog_mapÚprocess_actionrÌ   Úaction_is_recursiveÚextra_log_argsÚlog_tmplr   s                 r!   Úprocess_template_linezFileList.process_template_lineg  sÓ  € ð 04×/HÒ/HÈÑ/NÔ/NÑ,ˆ�˜3 ð ”|Ø”|Ø"Ô1Ø"Ô1Ý!*Ô!2ØÔ&Øñ"ô "õ "+Ô!2ØÔ&Øñ"ô "ð ”ZØ”Zð+
ð +
ˆ
ð" ?ØSàPð6ð Mð2ð CØMð%
ð 
ˆð*	8Ø'¨Ô/ˆNˆNøÝð 	8ð 	8ð 	8ØO¸ÐOÐOÀtÐOÐOˆCÝ(¨Ñ-Ô-°4Ð7ð	8øøøð %×/Ò/°Ñ=Ô=ÐØÐ'Ð'Ð'Ø#�}ˆHØ#6Ð>˜#˜˜¸BˆØ˜6”?ˆà×ÒØ�HŠHØ�Ð%8Ð@˜S˜E˜E¸bÑAÀHÑLñô ñ	
ô 	
ð 	
ð
  ð 	=ð 	=ˆGØ!�> 'Ñ*Ô*ð =Ý”˜ 7Ð<¨^Ð<Ð<Ð<Ð<øð	=ð 	=s   Â B	 Â	#B,c                óâ   — d}t          t          | j        ¦  «        dz
  dd¦  «        D ]E} || j        |         ¦  «        r-|                      d| j        |         z   ¦  «         | j        |= d}ŒF|S )z†
        Remove all files from the file list that match the predicate.
        Return True if any matching files were removed
        Fr   éÿÿÿÿz
 removing T)ÚrangerB   Úfilesrä   )r    Ú	predicateÚfoundrL   s       r!   Ú_remove_fileszFileList._remove_files­  s|   € ð
 ˆÝ•s˜4œ:‘”¨Ñ*¨B°Ñ3Ô3ð 	ð 	ˆAØˆy˜œ AœÑ'Ô'ð Ø× Ò  °´
¸1´Ñ!=Ñ>Ô>Ð>Ø”J˜q�MØ�øØˆr#   c                ó|   — d„ t          |¦  «        D ¦   «         }|                      |¦  «         t          |¦  «        S )z#Include files that match 'pattern'.c                óP   — g | ]#}t           j                             |¦  «        °!|‘Œ$S r0   ©r=   r)   Úisdir©Ú.0r½   s     r!   ú
<listcomp>z$FileList.include.<locals>.<listcomp>¼  s+   € ÐBÐBÐB�qµ´·²¸qÑ1AÔ1AÐB�ÐBÐBÐBr#   ©r
   Úextendrg   )r    r   r  s      r!   rç   zFileList.includeº  s9   € àBÐB�D ™MœMÐBÑBÔBˆØ�Š�EÑÔÐÝ�E‰{Œ{Ðr#   c                óT   — t          |¦  «        }|                      |j        ¦  «        S )z#Exclude files that match 'pattern'.)rR   r  r%   ©r    r   r%   s      r!   rè   zFileList.excludeÀ  s%   € å! 'Ñ*Ô*ˆØ×!Ò! %¤+Ñ.Ô.Ð.r#   c                óÂ   — t           j                             |d|¦  «        }d„ t          |d¬¦  «        D ¦   «         }|                      |¦  «         t          |¦  «        S )zN
        Include all files anywhere in 'dir/' that match the pattern.
        r4   c                óP   — g | ]#}t           j                             |¦  «        °!|‘Œ$S r0   r	  r  s     r!   r  z.FileList.recursive_include.<locals>.<listcomp>Ê  s,   € ÐWÐWÐW�qÅbÄgÇmÂmÐTUÑFVÔFVÐW�ÐWÐWÐWr#   T)Ú	recursive)r=   r)   r    r
   r  rg   )r    r÷   r   Úfull_patternr  s        r!   rð   zFileList.recursive_includeÅ  sY   € õ ”w—|’| C¨¨wÑ7Ô7ˆØWÐW�D ¸Ð>Ñ>Ô>ÐWÑWÔWˆØ�Š�EÑÔÐÝ�E‰{Œ{Ðr#   c                ó’   — t          t          j                             |d|¦  «        ¦  «        }|                      |j        ¦  «        S )zM
        Exclude any file anywhere in 'dir/' that match the pattern.
        r4   ©rR   r=   r)   r    r  r%   )r    r÷   r   r%   s       r!   rñ   zFileList.recursive_excludeÎ  s9   € õ "¥"¤'§,¢,¨s°D¸'Ñ"BÔ"BÑCÔCˆØ×!Ò! %¤+Ñ.Ô.Ð.r#   c                ó|   — d„ t          |¦  «        D ¦   «         }|                      |¦  «         t          |¦  «        S )zInclude all files from 'dir/'.c                óV   — g | ]&}t           j                             |¦  «        D ]}|‘ŒŒ'S r0   )r˜   rÕ   Úfindall)r  Ú	match_dirÚitems      r!   r  z"FileList.graft.<locals>.<listcomp>×  sP   € ð 
ð 
ð 
àÝ!Ô*×2Ò2°9Ñ=Ô=ð
ð 
ð ð ð
ð 
ð 
ð 
r#   r  )r    r÷   r  s      r!   ré   zFileList.graftÕ  sF   € ð
ð 
å! #™YœYð
ñ 
ô 
ˆð
 	�Š�EÑÔÐÝ�E‰{Œ{Ðr#   c                ó�   — t          t          j                             |d¦  «        ¦  «        }|                      |j        ¦  «        S )zFilter out files from 'dir/'.r4   r  )r    r÷   r%   s      r!   rê   zFileList.pruneß  s5   € å!¥"¤'§,¢,¨s°DÑ"9Ô"9Ñ:Ô:ˆØ×!Ò! %¤+Ñ.Ô.Ð.r#   c                ó  ‡— | j         €|                      ¦   «          t          t          j                             d|¦  «        ¦  «        Šˆfd„| j         D ¦   «         }|                      |¦  «         t          |¦  «        S )z“
        Include all files anywhere in the current directory that match the
        pattern. This is very inefficient on large file trees.
        Nr4   c                ó>   •— g | ]}‰                      |¦  «        ¯|‘ŒS r0   )r%   )r  r½   r%   s     €r!   r  z+FileList.global_include.<locals>.<listcomp>ì  s(   ø€ Ð<Ð<Ð<�q¨U¯[ª[¸©^¬^Ð<�Ð<Ð<Ð<r#   )Úallfilesr  rR   r=   r)   r    r  rg   )r    r   r  r%   s      @r!   rì   zFileList.global_includeä  sp   ø€ ð
 Œ=Ð Ø�LŠL‰NŒNˆNÝ!¥"¤'§,¢,¨t°WÑ"=Ô"=Ñ>Ô>ˆØ<Ð<Ð<Ð<˜DœMÐ<Ñ<Ô<ˆØ�Š�EÑÔÐÝ�E‰{Œ{Ðr#   c                ó�   — t          t          j                             d|¦  «        ¦  «        }|                      |j        ¦  «        S )zD
        Exclude all files anywhere that match the pattern.
        r4   r  r  s      r!   rí   zFileList.global_excludeð  s7   € õ "¥"¤'§,¢,¨t°WÑ"=Ô"=Ñ>Ô>ˆØ×!Ò! %¤+Ñ.Ô.Ð.r#   c                ó°   — |                      d¦  «        }t          |¦  «        }|                      |¦  «        r| j                             |¦  «         d S d S )Nú)Úremovesuffixr   Ú
_safe_pathr  Úappend)r    r  r)   s      r!   r&  zFileList.append÷  s\   € Ø× Ò  Ñ&Ô&ˆÝ˜DÑ!Ô!ˆà�?Š?˜4Ñ Ô ð 	$ØŒJ×Ò˜dÑ#Ô#Ð#Ð#Ð#ð	$ð 	$r#   c                ó`   — | j                              t          | j        |¦  «        ¦  «         d S r   )r  r  Úfilterr%  )r    Úpathss     r!   r  zFileList.extendþ  s*   € ØŒ
×Ò�& ¤°%Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r#   c                ó^   — t          t          | j        | j        ¦  «        ¦  «        | _        dS )zÜ
        Replace self.files with only safe paths

        Because some owners of FileList manipulate the underlying
        ``files`` attribute directly, this method must be called to
        repair those paths.
        N)rÃ   r(  r%  r  rY   s    r!   Ú_repairzFileList._repair  s%   € õ �& ¤°$´*Ñ=Ô=Ñ>Ô>ˆŒ
ˆ
ˆ
r#   c                óà  — d}t          j        |¦  «        }|€t          j        d|› d�¦  «         dS t          j        |d¦  «        }|€t          j        ||d¦  «         dS 	 d|v pd|v }| j        r|rdS t          j                             |¦  «        st          j                             |¦  «        rdS d S # t          $ r+ t          j        ||t          j        ¦   «         ¦  «         Y d S w xY w)	Nz!'%s' not %s encodable -- skippingrÂ   z$' in unexpected encoding -- skippingFr¶   r’   s	   .egg-infoT)r&   Úfilesys_decoder   r°   Ú
try_encoderÓ   r=   r)   r¯   ÚUnicodeEncodeErrorÚsysÚgetfilesystemencoding)r    r)   Úenc_warnÚu_pathÚ	utf8_pathÚis_egg_infos         r!   r%  zFileList._safe_path  s$  € Ø6ˆõ Ô-¨dÑ3Ô3ˆØˆ>ÝŒHÐC˜ÐCÐCÐCÑDÔDÐDØ�5õ "Ô,¨V°WÑ=Ô=ˆ	ØÐÝŒH�X˜t WÑ-Ô-Ð-Ø�5ð
	Bà%¨Ð/ÐL°<À9Ð3LˆKØÔ'ð ¨Kð Ø�uåŒw�~Š~˜fÑ%Ô%ð ­¬¯ª¸	Ñ)BÔ)Bð Ø�tðð øõ "ð 	Bð 	Bð 	BÝŒH�X˜t¥SÔ%>Ñ%@Ô%@ÑAÔAÐAÐAÐAÐAð	Bøøøs   Á#B8 Á6>B8 Â81C-Ã,C-)NNF)rÓ   rg   r   r   rØ   )r,   r-   r.   r"   rÿ   r  rç   rè   rð   rñ   ré   rê   rì   rí   r&  r  r+  r%  Ú__classcell__)rå   s   @r!   r   r   ^  s6  ø€ € € € € ð HMð7ð 7ð 7ð 7ð 7ð 7ð 7ðD=ð D=ð D=ð D=ðLð ð ðð ð ð/ð /ð /ð
ð ð ð/ð /ð /ðð ð ð/ð /ð /ð

ð 
ð 
ð/ð /ð /ð$ð $ð $ð $ð:ð :ð :ð :ð?ð ?ð ?ðBð Bð Bð Bð Bð Bð Br#   r   c                  ór   — e Zd ZdZdd„Zdd„Zdd„Zd„ Zdd„Zdd	„Z	e
d
„ ¦   «         Zdd„Zdd„Zd„ Zd„ ZdS )rÒ   zMANIFEST.inr   r   c                óL   — d| _         d| _        d| _        d| _        d| _        d S )NTF)Úuse_defaultsrê   Úmanifest_onlyÚforce_manifestrÓ   rY   s    r!   r…   z!manifest_maker.initialize_options*  s/   € Ø ˆÔØˆŒ
Ø!ˆÔØ"ˆÔØ#(ˆÔ Ð Ð r#   c                ó   — d S r   r0   rY   s    r!   r¥   zmanifest_maker.finalize_options1  s   € Øˆr#   c                óF  — t          | j        ¬¦  «        | _        t          j                             | j        ¦  «        s|                      ¦   «          |                      ¦   «          t          j                             | j	        ¦  «        r|  
                    ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          | j                             ¦   «          | j                             ¦   «          |                      ¦   «          d S )N)rÓ   )r   rÓ   rÕ   r=   r)   r¯   rÔ   Úwrite_manifestÚadd_defaultsÚtemplateÚread_templateÚadd_license_filesÚ_add_referenced_filesÚprune_file_listÚsortÚremove_duplicatesrY   s    r!   rÐ   zmanifest_maker.run4  só   € Ý °TÔ5MÐNÑNÔNˆŒÝŒw�~Š~˜dœmÑ,Ô,ð 	"Ø×ÒÑ!Ô!Ð!Ø×ÒÑÔÐÝŒ7�>Š>˜$œ-Ñ(Ô(ð 	!Ø×ÒÑ Ô Ð Ø×ÒÑ Ô Ð Ø×"Ò"Ñ$Ô$Ð$Ø×ÒÑÔÐØŒ×ÒÑÔÐØŒ×'Ò'Ñ)Ô)Ð)Ø×ÒÑÔÐÐÐr#   c                ój   — t          j        |¦  «        }|                     t          j        d¦  «        S )Nú/)r&   r-  rp   r=   r>   r(   s     r!   Ú_manifest_normalizez"manifest_maker._manifest_normalizeB  s(   € ÝÔ+¨DÑ1Ô1ˆØ�|Š|�BœF CÑ(Ô(Ð(r#   c                óÆ   ‡ — ‰ j                              ¦   «          ˆ fd„‰ j         j        D ¦   «         }d‰ j        › d�}‰                      t
          ‰ j        |f|¦  «         dS )zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r0   )rI  )r  r½   r    s     €r!   r  z1manifest_maker.write_manifest.<locals>.<listcomp>N  s'   ø€ ÐJÐJÐJ°�×)Ò)¨!Ñ,Ô,ÐJÐJÐJr#   zwriting manifest file 'rÂ   N)rÕ   r+  r  rÔ   Úexecuter®   )r    r  rÌ   s   `  r!   r>  zmanifest_maker.write_manifestF  so   ø€ ð
 	Œ×ÒÑÔÐð KÐJÐJÐJ°d´mÔ6IÐJÑJÔJˆØ8¨¬Ð8Ð8Ð8ˆØ�Š•Z $¤-°Ð!7¸Ñ=Ô=Ð=Ð=Ð=r#   c                ó^   — |                       |¦  «        st          j        | |¦  «         d S d S r   )Ú_should_suppress_warningr   r°   )r    rÌ   s     r!   r°   zmanifest_maker.warnR  s:   € Ø×,Ò,¨SÑ1Ô1ð 	"ÝŒJ�t˜SÑ!Ô!Ð!Ð!Ð!ð	"ð 	"r#   c                ó,   — t          j        d| ¦  «        S )z;
        suppress missing-file warnings from sdist
        zstandard file .*not found)r?   r%   )rÌ   s    r!   rN  z'manifest_maker._should_suppress_warningV  s   € õ
 ŒxÐ4°cÑ:Ô:Ð:r#   c                ód  — t          j        | ¦  «         | j                             | j        ¦  «         | j                             | j        ¦  «         t          t          ¦   «         ¦  «        }|r| j                             |¦  «         n8t          j
                             | j        ¦  «        r|                      ¦   «          t          j
                             d¦  «        r| j                             d¦  «         |                      d¦  «        }| j                             |j        ¦  «         d S )Nzsetup.pyry   )r   r?  rÕ   r&  r@  rÔ   rÃ   r   r  r=   r)   r¯   Úread_manifestÚget_finalized_commandré   ry   )r    ÚrcfilesÚei_cmds      r!   r?  zmanifest_maker.add_defaults]  sþ   € ÝÔ˜4Ñ Ô Ð ØŒ×Ò˜Tœ]Ñ+Ô+Ð+ØŒ×Ò˜Tœ]Ñ+Ô+Ð+Ý•|‘~”~Ñ&Ô&ˆØð 	!ØŒM× Ò  Ñ)Ô)Ð)Ð)ÝŒW�^Š^˜DœMÑ*Ô*ð 	!Ø×ÒÑ Ô Ð åŒ7�>Š>˜*Ñ%Ô%ð 	-ð ŒM× Ò  Ñ,Ô,Ð,à×+Ò+¨JÑ7Ô7ˆØŒ×Ò˜FœOÑ,Ô,Ð,Ð,Ð,r#   c                ó”   — | j         j        j        pg }|D ]}t          j        d|¦  «         Œ| j                             |¦  «         d S )Nzadding license file '%s')rW   r   Úlicense_filesr   r¸   rÕ   r  )r    rV  Úlfs      r!   rB  z manifest_maker.add_license_fileso  sV   € ØÔ)Ô2Ô@ÐFÀBˆØð 	5ð 	5ˆBÝŒHÐ/°Ñ4Ô4Ð4Ð4ØŒ×Ò˜]Ñ+Ô+Ð+Ð+Ð+r#   c                óš   — t          | j        dg ¦  «        }|D ]}t          j        d|¦  «         Œ| j                             |¦  «         dS )zGAdd files referenced by the config (e.g. `file:` directive) to filelistÚ_referenced_filesz%adding file referenced by config '%s'N)ÚgetattrrW   r   ÚdebugrÕ   r  )r    Ú
referencedÚrfs      r!   rC  z$manifest_maker._add_referenced_filesu  sZ   € å˜TÔ.Ð0CÀRÑHÔHˆ
àð 	Cð 	CˆBÝŒIÐ=¸rÑBÔBÐBÐBØŒ×Ò˜ZÑ(Ô(Ð(Ð(Ð(r#   c                ó    — t          |d¦  «        r|                     ¦   «         S t          j        ddd¬¦  «         |                     ¦   «         S )a0  
        The parent class implementation of this method
        (``sdist``) will try to include data files, which
        might cause recursion problems when
        ``include_package_data=True``.

        Therefore, avoid triggering any attempt of
        analyzing/building the manifest again.
        Úget_data_files_without_manifestz@`build_py` command does not inherit from setuptools' `build_py`.z±
            Custom 'build_py' does not implement 'get_data_files_without_manifest'.
            Please extend command classes from setuptools instead of distutils.
            z!https://peps.python.org/pep-0632/)Úsee_url)Úhasattrr_  r   ÚemitÚget_data_files)r    Úbuild_pys     r!   Ú_safe_data_fileszmanifest_maker._safe_data_files}  sd   € õ �8Ð>Ñ?Ô?ð 	>Ø×;Ò;Ñ=Ô=Ð=å$Ô)ØNðð 8ð	
ñ 	
ô 	
ð 	
ð ×&Ò&Ñ(Ô(Ð(r#   NrØ   )r,   r-   r.   r@  r…   r¥   rÐ   rI  r>  r°   ÚstaticmethodrN  r?  rB  rC  re  r0   r#   r!   rÒ   rÒ   '  sí   € € € € € Ø€Hð)ð )ð )ð )ðð ð ð ðð ð ð ð)ð )ð )ð
>ð 
>ð 
>ð 
>ð"ð "ð "ð "ð ð;ð ;ñ „\ð;ð-ð -ð -ð -ð$,ð ,ð ,ð ,ð)ð )ð )ð)ð )ð )ð )ð )r#   rÒ   r   r   c                óÖ   — d                      |¦  «        }|                     d¦  «        }t          | d¦  «        5 }|                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z{Create a file with the specified name and write 'contents' (a
    sequence of strings without line terminators) to it.
    ú
r¶   r·   N)r    r¹   rº   r»   )rŽ   Úcontentsr½   s      r!   r®   r®   –  s«   € ð �yŠy˜Ñ"Ô"€Hð �Š˜wÑ'Ô'€Hå	ˆh˜Ñ	Ô	ð  Ø	�Š�ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   »AÁA"Á%A"c                ól  — t          j        d|¦  «         | j        j        }| j        |j        c|_        }| j        |j        c|_        }	  |j        | j	        ¦  «         ||c|_        |_        n# ||c|_        |_        w xY wt          | j        dd ¦  «        }t          j        | j	        |¦  «         d S )Nz
writing %sÚzip_safe)r   r¸   rW   r   rƒ   re   r‚   rZ   Úwrite_pkg_infory   rZ  r   Úwrite_safety_flag)ÚcmdÚbasenamerŽ   r   ÚoldverÚoldnameÚsafes          r!   rl  rl  £  s¿   € Ý„Hˆ\˜8Ñ$Ô$Ð$ØÔÔ(€HØ"œ°Ô0@Ð€HÔ�fØ œ\¨8¬=Ð€H„M�7ð:ØˆÔ ¤Ñ-Ô-Ð-à*1°6Ð'ˆŒ�xÔ'Ð'ø¨'°6Ð'ˆŒ�xÔ'Ð9Ð9Ð9Ð9å�3Ô# Z°Ñ6Ô6€DåÔ ¤¨dÑ3Ô3Ð3Ð3Ð3s   ÁA0 Á0Bc                ó   — dS )aj  
    Unused: left to avoid errors when updating (from source) from <= 67.8.
    Old installations have a .dist-info directory with the entry-point
    ``depends.txt = setuptools.command.egg_info:warn_depends_obsolete``.
    This may trigger errors when running the first egg_info in build_meta.
    TODO: Remove this function in a version sufficiently > 68.
    Nr0   ©rn  ro  rŽ   s      r!   Úwarn_depends_obsoleteru  ³  s   € € € r#   c           	     óð   — t                                d„ | j                             ¦   «         D ¦   «         ¦  «        }|                      d|d                     t          |¦  «        ¦  «        dz   ¦  «         d S )Nc                óF   — g | ]}|                      d d¦  «        d         ‘ŒS )r   r   r   )r<   )r  Úks     r!   r  z(write_toplevel_names.<locals>.<listcomp>Ã  s6   € ð ð ð Ø ˆ�Š��Q‰Œ˜Ôðð ð r#   ztop-level namesrh  )r�   ÚfromkeysrW   Úiter_distribution_namesr®   r    Úsorted)rn  ro  rŽ   Úpkgss       r!   Úwrite_toplevel_namesr}  Â  sv   € Ý�=Š=ð ð Ø$'Ô$4×$LÒ$LÑ$NÔ$Nðñ ô ñ ô €Dð ‡N‚NÐ$ h°·	²	½&À¹,¼,Ñ0GÔ0GÈ$Ñ0NÑOÔOÐOÐOÐOr#   c                ó*   — t          | ||d¦  «         d S )NT)Ú	write_argrt  s      r!   Úoverwrite_argr€  É  s   € Ýˆc�8˜X tÑ,Ô,Ð,Ð,Ð,r#   Fr¬   rg   c                óà   — t           j                             |¦  «        d         }t          | j        |d ¦  «        }|�d                     |¦  «        dz   }|                      ||||¦  «         d S )Nr   rh  )r=   r)   ÚsplitextrZ  rW   r    r´   )rn  ro  rŽ   r¬   Úargnamer‹   s         r!   r  r  Í  sl   € ÝŒg×Ò˜xÑ(Ô(¨Ô+€GÝ�CÔ$ g¨tÑ4Ô4€EØÐØ—	’	˜%Ñ Ô  4Ñ'ˆØ×Ò˜W h°°uÑ=Ô=Ð=Ð=Ð=r#   c                óš   — t          j        | j        j        ¦  «        }t          j        |¦  «        }|                      d||d¦  «         d S )Nzentry pointsT)r   rÉ   rW   rÄ   Úrenderr´   )rn  ro  rŽ   ÚepsÚdefns        r!   Úwrite_entriesrˆ  Õ  sH   € Ý
Ô
˜SÔ-Ô:Ñ
;Ô
;€CÝÔ Ñ$Ô$€DØ×Ò˜^¨X°t¸TÑBÔBÐBÐBÐBr#   c                óŒ   — t          j        | ¦  «        }t          j        |¦  «        }|› d|› d|pt          › �}|r|d|› �z  }|S )r§   r‘   z-py)r   rŸ   rà   )r‚   rƒ   r©   rª   rZ   re   Úeggs          r!   r¨   r¨   Û  s_   € åÔ,¨XÑ6Ô6€DÝÔ/°Ñ<Ô<€GØÐ
8Ð
8�GÐ
8Ð
8 
Ð 6­hÐ
8Ð
8€CØð Øˆ~�8ˆ~ˆ~ÑˆØ€Jr#   c                  ó   — e Zd ZdZdS )ÚEggInfoDeprecationWarningz?Deprecated behavior warning for EggInfo, bypassing suppression.N)r,   r-   r.   r/   r0   r#   r!   rŒ  rŒ  å  s   € € € € € ØIÐIÐIÐIr#   rŒ  rØ   rÙ   rÚ   )NN)?r/   Ú
__future__r   rî   r=   r?   r0  rt   Úcollections.abcr   rn   Úpackaging.requirementsÚpackaging.versionÚsetuptools.unicode_utilsr&   Ú
setuptoolsr   Úsetuptools.commandr   Úsetuptools.command.sdistr   r   Úsetuptools.command.setoptr	   Úsetuptools.globr
   r2   r   r   Ú
_importlibr   Úwarningsr   r   Údistutils.errorsr˜   Údistutils.filelistr   r   r   Ú	_FileListÚdistutils.utilr   Úversion_infoÚmajorÚminorrà   r   rR   rT   ry   rÒ   r®   rl  ru  Úwrite_requirementsÚwrite_setup_requirementsr}  r€  r  rˆ  r¨   rŒ  r0   r#   r!   ú<module>r¢     sÚ  ðð<ð <ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø  Ð  Ð  Ð  Ð  Ð  à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø !Ð !Ð !Ð !Ð !Ð !Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'àÔÔ$Ð?Ð? sÔ'7Ô'=Ð?Ð?€ðCð Cð Cð Cð Cñ Cô Cð Cð*UOð UOð UOðp,ð ,ð ,ð ,ð ,ñ ,ô ,ð ,ð^W$ð W$ð W$ð W$ð W$ˆz˜7ñ W$ô W$ð W$ðtFBð FBð FBð FBð FBˆyñ FBô FBð FBðRl)ð l)ð l)ð l)ð l)�Uñ l)ô l)ð l)ð^
ð 
ð 
ð 
ð4ð 4ð 4ð 4ð ð ð ð ð "Ô4Ð Ø'Ô@Ð ðPð Pð Pð Pð-ð -ð -ð -ð>ð >ð >ð >ð >ðCð Cð Cð Cðð ð ð ðJð Jð Jð Jð JÐ <ñ Jô Jð Jð Jð Jr#   