ó
    6°hJ  ã                  óL  • % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	J
r
Jr  S SKJr  S SKJrJrJrJrJr  S SKJrJr  \R.                  (       a  S SKJr  S SKJr  \R6                  r\R.                  (       a  \S$S
 j5       r\S%S j5       rS r " S S5      r    S&     S'S jjrS(S jrS)S jr  " S S\!5      r" S*         S+S jjr# " S S\!5      r$Sr%S	\&S'    " S S5      r' " S S5      r( " S S5      r) " S S 5      r* " S! S"\+5      r,S,S# jr-g)-é    )ÚannotationsN)ÚAnyÚAnyStrÚOptional)Ú_)ÚencodingÚerrorÚphasesÚpycompatÚutil)ÚdateutilÚprocutil)Úoverload)ÚuiÚbytesc                ó   • g ©N© ©Úds    Ú6/usr/lib/python3/dist-packages/hgext/convert/common.pyÚ_encodeornoner   2   ó   € àó    c                ó   • g r   r   r   s    r   r   r   6   r   r   c                ó,   • U c  g U R                  S5      $ )NÚlatin1)Úencoder   s    r   r   r   ;   s   € Ø�yØØ�8‰8�HÓÐr   c                  óR   • \ rS rSrS	S jrS rS r\S
S j5       r\SS j5       r	Sr
g)Ú_shlexpy3proxyéA   c                ó   • Xl         g r   ©Ú_l)ÚselfÚls     r   Ú__init__Ú_shlexpy3proxy.__init__B   s   € Ø�r   c                ó(   • S U R                    5       $ )Nc              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr   )r   )Ú.0Úvs     r   Ú	<genexpr>Ú*_shlexpy3proxy.__iter__.<locals>.<genexpr>F   s   é € Ð2ª' Q”˜a× Ð ª'ùs   ‚r#   ©r%   s    r   Ú__iter__Ú_shlexpy3proxy.__iter__E   s   € Ù2¨$¯'ª'Ó2Ð2r   c                óH   • [        U R                  R                  5       5      $ r   )r   r$   Ú	get_tokenr/   s    r   r3   Ú_shlexpy3proxy.get_tokenH   s   € Ü˜TŸW™W×.Ñ.Ó0Ó1Ð1r   c                ó†   • U R                   R                  b*  [        R                  " U R                   R                  5      $ g)Ns	   <unknown>)r$   Úinfiler   Ú
strtolocalr/   s    r   r6   Ú_shlexpy3proxy.infileK   s,   € à�7‰7�>‰>Ñ%Ü×&Ò& t§w¡w§~¡~Ó6Ð6Ør   c                ó.   • U R                   R                  $ r   )r$   Úlinenor/   s    r   r:   Ú_shlexpy3proxy.linenoQ   s   € à�w‰w�~‰~Ðr   r#   N)r&   zshlex.shlexÚreturnÚNone)r<   r   )r<   Úint)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r'   r0   r3   Úpropertyr6   r:   Ú__static_attributes__r   r   r   r    r    A   s9   † ôò3ò2ð óó ðð
 óó ór   r    c                ó’  • U c  [        USS9n O*Ub  [        R                  " S5      eU R                  S5      n Ub  [        R
                  " U5      OS n[        R                  " XSS9nUb+  SUl        U=R                  UR                  S5      -  sl        Ub$  U=R                  UR                  S5      -  sl	        [        U5      $ )Nr   )r   s/   shlexer only accepts data or filepath, not bothT)r6   Úposix)Úopenr	   ÚProgrammingErrorÚdecoder   ÚstrfromlocalÚshlexÚwhitespace_splitÚ
whitespaceÚ	wordcharsr    )ÚdataÚfilepathrN   rM   r6   r&   s         r   ÚshlexerrQ   V   s¹   € ð �|Ü�H xÑ0‰àÑÜ×(Ò(ØBóð ð �{‰{˜8Ó$ˆØ08Ñ0DŒX×"Ò" 8Ô,È$€FÜ�Š�D¨tÑ4€AØÑØ!ˆÔØ	�Š˜
×)Ñ)¨(Ó3Ñ3�ØÑØ	�Š�y×'Ñ'¨Ó1Ñ1�Ü˜!ÓÐr   c                óH   • SS jn[         R                  " U 5      nU" U5      $ )Nc                óÆ   • [         R                  " U 5      n[        R                  " U5       Vs/ s H  o"R	                  5       S   PM     nnSR                  U5      $ s  snf )Nr   r   )Úbase64Úencodebytesr   ÚiterbytestrÚ
splitlinesÚjoin)ÚsÚlinesr&   s      r   Ú	encodeargÚencodeargs.<locals>.encodeargo   sP   € Ü×"Ò" 1Ó%ˆÜ,4×,@Ò,@ÀÔ,GÓHÒ,G q—‘“ Ô"Ñ,GˆÐHØ�x‰x˜‹Ðùò Is   ¯A)rY   r   r<   r   )ÚpickleÚdumps)Úargsr[   rY   s      r   Ú
encodeargsr`   n   s!   € ôô
 	�Š�TÓ€AÙ�Q‹<Ðr   c                óZ   • [         R                  " U 5      n [        R                  " U 5      $ r   )rT   Údecodebytesr]   Úloads)rY   s    r   Ú
decodeargsrd   x   s    € Ü×Ò˜1Ó€AÜ�<Š<˜‹?Ðr   c                  ó   • \ rS rSrSrg)ÚMissingToolé}   r   N©r?   r@   rA   rB   rD   r   r   r   rf   rf   }   ó   † Úr   rf   c                óö   • U=(       d    U n[         R                  " U 5      (       dS  U(       a  [        R                  nO[        nU" [        S5      U-  U=(       a    [        S5      U-  =(       d    S-   5      eg )Ns   cannot find required "%s" tools     (try installing the %s package)r   )r   Úfindexer	   ÚAbortrf   r   )ÚexeÚnameÚabortÚdebnameÚexcs        r   Ú	checktoolrr   �   so   € ð �;�3€DÜ×Ò˜C× Ñ ÞÜ—+‘+‰CäˆCÙ”!Ð5Ó6¸Ñ=Ø×OœqÐ!DÓEÈÑO×VÐSVñXó Yð 	Yð !r   c                  ó   • \ rS rSrSrg)ÚNoRepoéŽ   r   Nrh   r   r   r   rt   rt   Ž   ri   r   rt   s   SKIPÚSKIPREVc                  ó\   • \ rS rSrSSSSS\R
                  SS4           SS jjrSrg)Úcommité•   NTc                óä   • U=(       d    SU l         U=(       d    SU l        X0l        X@l        U=(       d    / U l        XPl        X`l        U=(       d    0 U l        X€l        X�l	        X l
        XÀl        g )Ns   unknowns   0 0)ÚauthorÚdateÚdescÚparentsÚ
optparentsÚbranchÚrevÚextraÚsortkeyÚsaverevÚphaseÚctx)r%   r{   r|   r}   r~   r€   r�   r‚   rƒ   r„   r…   r   r†   s                r   r'   Úcommit.__init__–   sZ   € ð ×* 
ˆŒØ—N˜FˆŒ	ØŒ	ØŒØ$×*¨ˆŒØŒØŒØ—[˜bˆŒ
ØŒØŒØŒ
Ø�r   )r{   r€   r†   r|   r}   r‚   r   r~   r…   r�   r„   rƒ   )r{   r   r|   r   r}   r   r€   úOptional[bytes]r…   r>   r<   r=   )r?   r@   rA   rB   r
   Údraftr'   rD   r   r   r   rx   rx   •   sd   † ð #'ØØØØØ—\‘\ØØðàðð ðð ð	ð  ðð ðð 
÷ð r   rx   c                  óâ   • \ rS rSrSr  S       SS jjr S     SS jjrSS jrSS jrS r	S	 r
S
 rS rS rS rS rS rSSS jjrS rSS jrS S jrS S jrS rS rSS!S jjrSrg)"Úconverter_sourceé³   zConversion source interfaceNc                óB   • Xl         X0l        X@l        X l        SU l        g)zeInitialize conversion source (or raise NoRepo("message")
exception if path is not a valid repository)ó   utf-8N)r   ÚpathÚrevsÚrepotyper   )r%   r   r‘   r�   r�   s        r   r'   Úconverter_source.__init__¶   s   € ð ŒØŒ	ØŒ	Ø Œà ˆ�r   c                ó‚   • [         R                  " SU5      (       d#  [        R                  " [	        S5      X!4-  5      eg)zkfails if revstr is not a 40 byte hex. mercurial and git both uses
such format for their revision numbering
s   [0-9a-fA-F]{40,40}$s.   %s entry %s is not a valid revision identifierN)ÚreÚmatchr	   rl   r   ©r%   ÚrevstrÚmapnames      r   ÚcheckhexformatÚconverter_source.checkhexformatÆ   s@   € ô �xŠxÐ/°×8Ñ8Ü—+’+ÜÐCÓDØÐ#ñ$óð ð 9r   c                ó   • g r   r   r/   s    r   ÚbeforeÚconverter_source.beforeÒ   ó   € Ør   c                ó   • g r   r   r/   s    r   ÚafterÚconverter_source.afterÕ   rž   r   c                ó   • g)z’Returns true if the given targetfile belongs to the source repo. This
is useful when only a subdirectory of the target belongs to the source
repo.Tr   )r%   Útargetfilenames     r   ÚtargetfilebelongstosourceÚ*converter_source.targetfilebelongstosourceØ   ó   € ð
 r   c                ó   • g)z*set the map of already-converted revisionsNr   )r%   Úrevmaps     r   Ú	setrevmapÚconverter_source.setrevmapß   ó   � r   c                ó   • [         e)z(Return a list of this repository's heads©ÚNotImplementedErrorr/   s    r   ÚgetheadsÚconverter_source.getheadsâ   ó   € ä!Ð!r   c                ó   • [         e)zÙReturn a pair (data, mode) where data is the file content
as a string and mode one of '', 'x' or 'l'. rev is the
identifier returned by a previous call to getchanges().
Data is None if file is missing/deleted in rev.
r­   )r%   rn   r�   s      r   ÚgetfileÚconverter_source.getfileæ   s
   € ô "Ð!r   c                ó   • [         e)aü  Returns a tuple of (files, copies, cleanp2).

files is a sorted list of (filename, id) tuples for all files
changed between version and its first parent returned by
getcommit(). If full, all files in that revision is returned.
id is the source revision id of the file.

copies is a dictionary of dest: source

cleanp2 is the set of files filenames that are clean against p2.
(Files that are clean against p1 are already not in files (unless
full). This makes it possible to handle p2 clean files similarly.)
r­   )r%   ÚversionÚfulls      r   Ú
getchangesÚconverter_source.getchangesî   s
   € ô "Ð!r   c                ó   • [         e)z$Return the commit object for versionr­   )r%   r¶   s     r   Ú	getcommitÚconverter_source.getcommitþ   r±   r   c                ó   • g)zGReturn the number of commits in this source.

If unknown, return None.
Nr   r/   s    r   Ú
numcommitsÚconverter_source.numcommits  r¦   r   c                ó   • [         e)zTReturn the tags as a dictionary of name: revision

Tag names must be UTF-8 strings.
r­   r/   s    r   ÚgettagsÚconverter_source.gettags	  s
   € ô
 "Ð!r   c                óà  • U(       d  U R                   =(       d    Sn[        U[        5      (       a  UR                  S5      $  UR	                  [
        R                  " U5      5      R                  S5      $ ! [         ak     UR	                  S5      R                  S5      s $ ! [         a:    UR	                  [
        R                  " U5      S5      R                  S5      s s $ f = ff = f)NrŽ   zutf-8zlatin-1Úreplace)r   Ú
isinstanceÚstrr   rI   r   ÚsysstrÚUnicodeError)r%   rY   r   s      r   ÚrecodeÚconverter_source.recode  s¾   € ÞØ—}‘}×0¨ˆHä�aœ×ÑØ—8‘8˜GÓ$Ð$ð	Ø—8‘8œHŸOšO¨HÓ5Ó6×=Ñ=¸gÓFÐFøÜó 	ðØ—x‘x 	Ó*×1Ñ1°'Ó:Ò:øÜó Ø—x‘x¤§¢°Ó 9¸9ÓE×LÑLØóô ðúð	ús0   Á3A8 Á8
C-ÂB%Â"C-Â%?C)Ã$C-Ã(C)Ã)C-c                ó   • [         e)a  Return the files changed by rev compared to parent[i].

i is an index selecting one of the parents of rev.  The return
value should be the list of files that are different in rev and
this parent.

If rev has no parents, i is None.

This function is only needed to support --filemap
r­   )r%   r�   Úis      r   ÚgetchangedfilesÚ converter_source.getchangedfiles   s
   € ô "Ð!r   c                ó   • g)z5Notify the source that a revision has been converted.Nr   )r%   r�   Úsinkrevs      r   Ú	convertedÚconverter_source.converted-  r«   r   c                ó   • g)z°Return true if this source has a meaningful, native revision
order. For instance, Mercurial revisions are store sequentially
while there is no such global ordering with Darcs.
Fr   r/   s    r   ÚhasnativeorderÚconverter_source.hasnativeorder0  s   € ð
 r   c                ó   • g)z7Return true if this source has ability to close branch.Fr   r/   s    r   ÚhasnativecloseÚconverter_source.hasnativeclose7  s   € àr   c                ó   • g)z•If rev is a meaningful revision reference in source, return
the referenced identifier in the same format used by getcommit().
return None otherwise.
Nr   ©r%   r�   s     r   Ú	lookuprevÚconverter_source.lookuprev;  r¦   r   c                ó   • 0 $ )z`Return the bookmarks as a dictionary of name: revision

Bookmark names are to be UTF-8 strings.
r   r/   s    r   ÚgetbookmarksÚconverter_source.getbookmarksB  s	   € ð
 ˆ	r   c                ó   • g)z|revstr is a string that describes a revision in the given
source control system.  Return true if revstr has correct
format.
Tr   r–   s      r   ÚcheckrevformatÚconverter_source.checkrevformatI  r¦   r   )r   r�   r‘   r�   r   )NN)r   úuimod.uir‘   r   r�   rˆ   r<   r=   )s	   splicemap)r—   r   r˜   r   r<   r=   ©r<   r=   r   )rY   r   r   rˆ   r<   r   )r<   Úbool)r˜   r   r<   rå   )r?   r@   rA   rB   Ú__doc__r'   r™   rœ   r    r¤   r©   r¯   r³   r¸   r»   r¾   rÁ   rÉ   rÍ   rÑ   rÔ   r×   rÛ   rÞ   rá   rD   r   r   r   r‹   r‹   ³   sº   † Ù%ð !%Øð!àð!ð ð!ð ð	!ð 
õ!ð" /;ð
Øð
Ø&+ð
à	õ
ôôòò9ò"ò"ò"ò "òò"öò "ôDôôòò÷ñ r   r‹   c                  ól   • \ rS rSrSrSS jrS rS rS rS r	S r
S	 rSS
 jrSS jrS rS rS rSrg)Úconverter_sinkiQ  z"Conversion sink (target) interfacec                ó6   • Xl         X0l        / U l        X l        g)z§Initialize conversion sink (or raise NoRepo("message")
exception if path is not a valid repository)

created is a list of paths to remove if a fatal error occurs
laterN)r   r�   Úcreatedr‘   )r%   r   r‘   r�   s       r   r'   Úconverter_sink.__init__T  s   € ð ŒØŒ	ØˆŒØ �r   c                ó   • [         e)zyPath to a file that will contain lines
source_rev_id sink_rev_id
mapping equivalent revision identifiers for each system.r­   r/   s    r   Ú
revmapfileÚconverter_sink.revmapfile_  ó
   € ô "Ð!r   c                ó   • g)zrPath to a file that will contain lines
srcauthor=dstauthor
mapping equivalent authors identifiers for each system.Nr   r/   s    r   Ú
authorfileÚconverter_sink.authorfilee  s   € ð r   c	                ó   • [         e)a,  Create a revision with all changed files listed in 'files'
and having listed parents. 'commit' is a commit object
containing at a minimum the author, date, and message for this
changeset.  'files' is a list of (path, version) tuples,
'copies' is a dictionary mapping destinations to sources,
'source' is the source repository, and 'revmap' is a mapfile
of source revisions to converted revisions. Only getfile() and
lookuprev() should be called on 'source'. 'full' means that 'files'
is complete and all other files should be removed.
'cleanp2' is a set of the filenames that are unchanged from p2
(only in the common merge case where there two parents).

Note that the sink repository is not told to update itself to
a particular revision (or even what that revision would be)
before it receives the file data.
r­   )	r%   ÚfilesÚcopiesr~   rx   Úsourcer¨   r·   Úcleanp2s	            r   Ú	putcommitÚconverter_sink.putcommitk  s
   € ô& "Ð!r   c                ó   • [         e)z´Put tags into sink.

tags: {tagname: sink_rev_id, ...} where tagname is an UTF-8 string.
Return a pair (tag_revision, tag_parent_revision), or (None, None)
if nothing was changed.
r­   )r%   Útagss     r   ÚputtagsÚconverter_sink.puttags€  s
   € ô "Ð!r   c                ó   • g)zµSet the current branch name. Called before the first putcommit
on the branch.
branch: branch name for subsequent commits
pbranches: (converted parent revision, parent branch) tuplesNr   )r%   r€   Ú	pbranchess      r   Ú	setbranchÚconverter_sink.setbranch‰  r«   r   c                ó   • g)a  Tell the destination that we're using a filemap

Some converter_sources (svn in particular) can claim that a file
was changed in a revision, even if there was no change.  This method
tells the destination that we're using a filemap and that it should
filter empty revisions.
Nr   )r%   Úactives     r   ÚsetfilemapmodeÚconverter_sink.setfilemapmode�  r«   r   c                ó   • g r   r   r/   s    r   rœ   Úconverter_sink.before˜  rž   r   c                ó   • g r   r   r/   s    r   r    Úconverter_sink.after›  rž   r   c                ó   • g)zmPut bookmarks into sink.

bookmarks: {bookmarkname: sink_rev_id, ...}
where bookmarkname is an UTF-8 string.
Nr   )r%   Ú	bookmarkss     r   ÚputbookmarksÚconverter_sink.putbookmarksž  r«   r   c                ó   • [         e)zHReturn False if a rev mentioned in a filemap is known to not be
present.r­   rÚ   s     r   ÚhascommitfrommapÚconverter_sink.hascommitfrommap¥  s
   € ô "Ð!r   c                ó   • [         e)z™This method is for the special needs for splicemap handling and not
for general use. Returns True if the sink contains rev, aborts on some
special cases.r­   rÚ   s     r   ÚhascommitforsplicemapÚ$converter_sink.hascommitforsplicemapª  rï   r   )rê   r�   r‘   r   N)r   rã   r‘   r   r�   r   r<   r=   rä   )r?   r@   rA   rB   ræ   r'   rí   rñ   rø   rü   r   r  rœ   r    r  r  r  rD   r   r   r   rè   rè   Q  sB   † Ù,ô	!ò"òò"ò*"òHòôôòò"õ
"r   rè   c                  ó¾   • \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSSS jjrSS jrSS jr\S 5       rSS jrSS jrSrg)Úcommandlinei±  c                ó   • Xl         X l        g r   )r   Úcommand)r%   r   r  s      r   r'   Úcommandline.__init__²  s   € ØŒØ�r   c                ó   • g r   r   r/   s    r   ÚprerunÚcommandline.prerun¶  rž   r   c                ó   • g r   r   r/   s    r   ÚpostrunÚcommandline.postrun¹  rž   r   c                ó¸  • [         R                  " U5      nU R                  U/[        U5      -   nUR	                  5        Hƒ  u  pV[        U5      S:X  a  UR                  SU-   5        O$UR                  SUR                  SS5      -   5         [        U5      S:X  a  UR                  SU-   5        Ms  US==   SU-   -  ss'   M…     U Vs/ s H  n[        R                  " U5      PM     nnU R                  R                  (       d)  US[         R                  " [        R                  5      /-  nS	R!                  U5      nU$ ! [         a     GM  f = fs  snf )
Né   ó   -s   --ó   _r   éÿÿÿÿó   =s   2>ó    )r   Úbyteskwargsr  ÚlistÚitemsÚlenÚappendrÄ   Ú	TypeErrorr   Ú
shellquoter   Ú	debugflagÚbytestrÚosÚdevnullrX   )r%   Úcmdr_   ÚkwargsÚcmdlineÚkr,   Úargs           r   Ú_cmdlineÚcommandline._cmdline¼  s  € Ü×%Ò% fÓ-ˆØ—<‘< Ð%¬¨T«
Ñ2ˆØ—L‘L–N‰DˆAÜ�1‹v˜‹{Ø—‘˜t a™xÕ(à—‘˜u q§y¡y°°tÓ'<Ñ<Ô=ðÜ�q“6˜Q“;Ø—N‘N 3¨¡7Ö+à˜B“K 4¨!¡8Ñ+•Kñ #ñ 8?Ó?²w°”8×&Ò& sÖ+±wˆÐ?Ø�w‰w× × Ø˜œx×/Ò/´·
±
Ó;Ð<Ñ<ˆGØ—)‘)˜GÓ$ˆØˆøô ó Ûðüâ?s   Â#EÂ4EÃ EÅ
EÅEc                ó4   • S nU R                   " XA/UQ70 UD6$ )Nc                ó–   • [         R                  " [        R                  " U 5      SS[        R                  [         R
                  S9nU$ )NTr#  )ÚshellÚbufsizeÚ	close_fdsÚstdout)Ú
subprocessÚPopenr   ÚtonativestrÚclosefdsÚPIPE)r3  Úps     r   ÚpopenÚcommandline._run.<locals>.popenÒ  s=   € Ü× Ò Ü×$Ò$ WÓ-ØØÜ"×+Ñ+Ü!—‘ñˆAð ˆHr   )Ú_dorun)r%   r1  r_   r2  rD  s        r   Ú_runÚcommandline._runÑ  s"   € ò	ð �{Š{˜5Ð7¨Ò7°Ñ7Ð7r   c                óL   • U R                   " [        R                  U/UQ70 UD6$ r   )rF  r   Úpopen2©r%   r1  r_   r2  s       r   Ú_run2Úcommandline._run2Þ  ó!   € Ø�{Š{œ8Ÿ?™?¨CÐA°$ÒA¸&ÑAÐAr   c                óL   • U R                   " [        R                  U/UQ70 UD6$ r   )rF  r   Úpopen3rK  s       r   Ú_run3Úcommandline._run3á  rN  r   c                óè   • U R                   " U/UQ70 UD6nU R                  R                  SU4-  5        U R                  5          U" U5      U R	                  5         $ ! U R	                  5         f = f)Ns   running: %s
)r6  r   Údebugr  r  )r%   Úopenfuncr1  r_   r2  r3  s         r   rF  Úcommandline._dorunä  s[   € Ø—-’- Ð5 dÒ5¨fÑ5ˆØ�‰�‰Ð&¨'¨Ñ3Ô4Ø�‰Œð	Ù˜GÓ$à�L‰L�NøˆD�L‰L�Nús   ÁA ÁA1c                ó¤   • U R                   " U/UQ70 UD6nUR                  5       S   nU R                  R                  U5        XTR                  4$ )Nr   )rG  Úcommunicater   rT  Ú
returncode©r%   r1  r_   r2  rC  Úoutputs         r   ÚrunÚcommandline.runí  sG   € Ø�IŠI�cÐ+˜DÒ+ FÑ+ˆØ—‘“ Ñ#ˆØ�‰�‰�fÔØ—|‘|Ð#Ð#r   c                óð   • U R                   " U/UQ70 UD6nUR                  R                  5       nUR                  5         U R                  R                  SR                  U5      5        XTR                  4$ ©Nr   )rG  r=  Ú	readlinesÚwaitr   rT  rX   rY  rZ  s         r   ÚrunlinesÚcommandline.runlinesó  s[   € Ø�IŠI�cÐ+˜DÒ+ FÑ+ˆØ—‘×#Ñ#Ó%ˆØ	�‰ŒØ�‰�‰�c—h‘h˜vÓ&Ô'Ø—|‘|Ð#Ð#r   c                ó.  • U(       aŽ  U(       aL  U R                   R                  [        S5      U R                  -  5        U R                   R                  U5        [        R
                  " U5      n[        R                  " SU R                  U4-  5      eg )Ns
   %s error:
s   %s %s)r   Úwarnr   r  r   Úexplainexitr	   rl   )r%   Ústatusr[  Úmsgs       r   Ú	checkexitÚcommandline.checkexitú  sh   € ÞÞØ—‘—‘œQ˜~Ó.°·±Ñ=Ô>Ø—‘—‘˜VÔ$Ü×&Ò& vÓ.ˆCÜ—+’+˜h¨$¯,©,¸Ð)<Ñ<Ó=Ð=ð r   c                óX   • U R                   " U/UQ70 UD6u  pEU R                  XT5        U$ r   )r\  ri  ©r%   r1  r_   r2  r[  rg  s         r   Úrun0Úcommandline.run0  s-   € ØŸš #Ð7¨Ò7°Ñ7‰ˆØ�‰�vÔ&Øˆr   c                óx   • U R                   " U/UQ70 UD6u  pEU R                  USR                  U5      5        U$ r_  )rb  ri  rX   rl  s         r   Ú	runlines0Úcommandline.runlines0  s8   € ØŸš sÐ<¨TÒ<°VÑ<‰ˆØ�‰�v˜sŸx™x¨Ó/Ô0Øˆr   c                óp   • Sn [         R                  " S5      nUS-  S-
  $ ! [        [        4 a     Nf = f)Ni   Ú
SC_ARG_MAXé   r   )r/  ÚsysconfÚAttributeErrorÚ
ValueError)r%   Úargmaxs     r   rx  Úcommandline.argmax  sE   € ð ˆð	Ü—Z’Z Ó-ˆFð ˜‰{˜Q‰Ðøô ¤
Ð+ó 	Ùð	ús   „" ¢5´5c              /  ó$  #   • [        U R                  " U/UQ70 UD65      nU R                  U-
  nSn/ nU HH  n	[        U	5      S-   n
Xz-   U:  d  [        U5      S:X  a  UR                  U	5        Xz-  nM?  Uv •  U	/nU
nMJ     U(       a  Uv •  g g 7f)Nr   é   )r)  r6  rx  r*  )r%   Úarglistr1  r_   r2  ÚcmdlenÚlimitÚnumbytesÚflÚfnÚbs              r   Ú_limit_arglistÚcommandline._limit_arglist  s—   é € Ü�T—]’] 3Ð8¨Ò8°Ñ8Ó9ˆØ—‘˜fÑ$ˆØˆØˆÛˆBÜ�B“˜!‘ˆAØ‰|˜eÓ#¤s¨2£w°!£|Ø—	‘	˜"”Ø‘’à’Ø�T�Ø’ñ ö Ø‹Hð ùs   ‚BBc                ó‚   • U R                   " X/UQ70 UD6 H%  nU R                  " U/[        U5      U-   Q70 UD6  M'     g r   )rƒ  rm  r'  )r%   r|  r1  r_   r2  r&   s         r   ÚxargsÚcommandline.xargs/  s@   € Ø×$Ò$ WÐC°DÒC¸FÔCˆAØ�IŠI�cÐ7œT $›Z¨!™^Ò7°Ô7ò Dr   )r  r   N)r   rã   r  r   r<   r=   rä   )r1  r   r_   r   r<   r   )r1  r   r_   r   )r   )r[  r   r<   r=   )r?   r@   rA   rB   r'   r  r  r6  rG  rL  rQ  rF  r\  rb  ri  rm  rp  Úpropertycacherx  rƒ  r†  rD   r   r   r   r  r  ±  sc   † ôôôôô*8ôBôBôô$ô$ö>ôô
ð
 ñó ðô"÷"8r   r  c                  óV   ^ • \ rS rSrSU 4S jjrSU 4S jjrSU 4S jjrSS jrSrU =r	$ )	Úmapfilei4  c                óv   >• [         TU ]  5         Xl        X l        S U l        / U l        U R                  5         g r   )Úsuperr'   r   r�   ÚfpÚorderÚ_read)r%   r   r�   Ú	__class__s      €r   r'   Úmapfile.__init__5  s/   ø€ Ü‰ÑÔØŒØŒ	ØˆŒØˆŒ
Ø�
‰
�r   c                óF  >• U R                   (       d  g  [        U R                   S5      n [        U5       Hs  u  p#UR	                  5       S   R                  5       nU(       d  M/   UR                  SS5      u  pEX@;  a  U R                  R                  U5        [        TU ]9  XE5        Mu     UR                  5         g ! [         a     g f = f! [         a2    [        R                  " [        S5      U R                   US-   4-  5      ef = f! UR                  5         f = f)NÚrbr   r%  r   s/   syntax error in %s(%d): key/value pair expected)r�   rG   ÚFileNotFoundErrorÚ	enumeraterW   ÚrstripÚrsplitrw  r	   rl   r   rŽ  r*  rŒ  Ú__setitem__Úclose)r%   r�  rÌ   ÚlineÚkeyÚvaluer�  s         €r   r�  Úmapfile._read=  sþ   ø€ Ø�y�yØð	Ü�d—i‘i Ó&ˆBð	Ü$ Rž=‘�Ø—‘Ó(¨Ñ+×2Ñ2Ó4�ÞáðØ!%§¡¨T°1Ó!5‘J�Cð “?Ø—J‘J×%Ñ% cÔ*Ü‘Ñ# CÖ/ñ )ð  �H‰H�Jøô) !ó 	Ùð	ûô "ó ÜŸ+š+ÜÐLÓMØŸ9™9 a¨!¡eÐ,ñ-óð ðûð �H‰H�Jús4   •B? ¬:D Á'CÁ;3D Â?
CÃCÃ<DÄD ÄD c                óÌ  >• U R                   c   [        U R                  S5      U l         U R                   R                  [        R                  " SX4-  5      5        U R                   R                  5         [        TU ]=  X5        g ! [         aQ  n[        R
                  " [        S5      U R                  [        R                  " UR                  5      4-  5      eS nAff = f)NÚabs   could not open map file %r: %ss   %s %s
)r�  rG   r�   ÚOSErrorr	   rl   r   r   r7   ÚstrerrorÚwriter   ÚtonativeeolÚflushrŒ  r˜  )r%   r›  rœ  Úerrr�  s       €r   r˜  Úmapfile.__setitem__X  s®   ø€ Ø�7‰7‰?ðÜ˜tŸy™y¨$Ó/�”ð 	�‰�‰”d×&Ò& z°S°LÑ'@ÓAÔBØ�‰�‰ŒÜ‰Ñ˜CÕ'øô ó Ü—k’kÜÐ7Ó8Ø—y‘y¤(×"5Ò"5°c·l±lÓ"CÐDñEóð ûðús   �B Â
C#ÂACÃC#c                ój   • U R                   (       a"  U R                   R                  5         S U l         g g r   )r�  r™  r/   s    r   r™  Úmapfile.closee  s"   € Ø�7�7Ø�G‰G�M‰MŒOØˆD�Gð r   )r�  rŽ  r�   r   )r   rã   r�   r   r<   r=   rä   )
r?   r@   rA   rB   r'   r�  r˜  r™  rD   Ú__classcell__)r�  s   @r   rŠ  rŠ  4  s   ø† ÷÷÷6(÷ò r   rŠ  c                ó.   • [         R                  " U 5      $ r   )r   Úmakedate)Úts    r   Úmakedatetimestampr­  k  s   € Ü×Ò˜QÓÐr   )r   rÆ   r<   r   )r   r=   r<   r=   )NNNN)rP   rˆ   rN   rˆ   rM   rˆ   )r_   r   r<   r   )rY   r   r<   r   )NTN)
rm   r   rn   rˆ   ro   rå   rp   rˆ   r<   r=   )r¬  Úfloatr<   zdateutil.hgdate).Ú
__future__r   rT   r/  r]   r”   rK   r>  Útypingr   r   r   Úmercurial.i18nr   Ú	mercurialr   r	   r
   r   r   Úmercurial.utilsr   r   ÚTYPE_CHECKINGr   r   Úuimodrˆ  r   r    rQ   r`   rd   Ú	Exceptionrf   rr   rt   rv   Ú__annotations__rx   r‹   rè   r  ÚdictrŠ  r­  r   r   r   Ú<module>r¹     sy  ðö #ã Û 	Û Û 	Û Û Û ÷ñ õ ÷õ ÷ð
 
××õõð ×"Ñ"€ð 
××àóó ðð óó ðò÷ñ ð, 
Ø $Ø!%Ø"&ð	àðð ðð  õ	ô0ôô
	�)ô 	ð
 ^bð
YØ	ð
YØ%ð
YØ59ð
YØKZð
Yà	õ
Yô	ˆYô 	ð €ˆÓ ÷ñ ÷<[ñ [÷|]"ñ ]"÷@@8ñ @8ôF4ˆdô 4õn r   