
    	^ct	                     <    d dl Z d dlZd dlZd Zd Zd Zd Zd ZdS )    Nc                     d |                      d          D             }|r4|d         dk    r|                                 n|d         dd         |d<   |S )z0like str.splitlines, but only split on newlines.c                     g | ]}|d z   S )   
 ).0ls     6/usr/lib/python3/dist-packages/mercurial/pure/bdiff.py
<listcomp>z!splitnewlines.<locals>.<listcomp>   s    2221QY222    r   N)splitpop)textliness     r	   splitnewlinesr      sa    22

5 1 1222E '9IIKKKKb	#2#E"ILr   c                    d }g }|D ]}||}d}|\  }}}	||	z   }
||	z   }|\  }}}||z   }||z   }|
|k    rH|
|z   |k     r>| |
|z            |||z            k    r&|dz  }|
|z   |k     r| |
|z            |||z            k    &nM||k    rG||z   |k     r>| |
|z            |||z            k    r&|dz  }||z   |k     r| |
|z            |||z            k    &|                     |||	|z   f           ||z   ||z   ||z
  f}||                     |           |S )Nr      )append)abblocksprevrcurrshifta1b1l1a1endb1enda2b2l2a2endb2ends                    r	   _normalizeblocksr&      s   D
A 2 2<D
BRR
BRRB;;%%!EEM*:a>N*N*N
 %%!EEM*:a>N*N*N b[[%%!EEM*:a>N*N*N
 %%!EEM*:a>N*N*N 	
"b"u*%&&&Ez2:rEz1	Hr   c                    t          |                               d          } t          |                              d          }| s>d                    |          }|o&t          j        dddt          |                    |z   S g }dg}| D ]-}|                    |d         t          |          z              .t          j        d | |          	                                }t          | ||          }d}d}|D ]{\  }	}
}d                    |||
                   }|	|k    s|rF|                    t          j        d||         ||	         t          |                    |z              |	|z   }|
|z   }|d                    |          S )NTr   s   >lllr   r   )bytes
splitlinesjoinstructpacklenr   difflibSequenceMatcherget_matching_blocksr&   )r   r   sbinpidlalbambmsizes               r	   bdiffr;   <   s~   aD!!AaD!!A >HHQKK=fk'1aQ881<=
C	
A ! !	2Q    a++??AAAAq!!A	
B	
B  BHHQr"uX77a7JJv{7AbE1R5#a&&AAAEFFF$Y$Y88C==r   c                     t          |           }t          |          }t          j        d ||                                          }t	          |||          }d |D             S )Nc                 .    g | ]\  }}}|||z   |||z   fS r   r   )r   r4   jns       r	   r
   zblocks.<locals>.<listcomp>\   s/    444YaAQAq!a% 444r   )r   r.   r/   r0   r&   )r   r   anbnr5   s        r	   r   r   W   sa    	q		B	q		Bb"--AACCAR##A44!4444r   c                     |rt          j        dd|           } n,t          j        dd|           } |                     dd          } | S )Ns   [ 	]+r       s    
r   )resubreplace)r   allwss     r	   fixwsrH   _   sJ     +vk3--vk4..||FE**Kr   )r.   rD   r+   r   r&   r;   r   rH   r   r   r	   <module>rI      sx     				        F  65 5 5    r   