
    q&fS
                         d dl Z d dlZd dlZd dlmZmZ dedee   fdZdee   dee   deeeeef      fdZ	dededefd	Z
dededeeeeeef      fd
ZdededefdZy)    N)ListTupletextreturnc                     | j                  d      D cg c]  }|dz   	 }}|r%|d   dk(  r|j                          |S |d   dd |d<   |S c c}w )z0like str.splitlines, but only split on newlines.   
N)splitpop)r   lliness      6/usr/lib/python3/dist-packages/mercurial/pure/bdiff.pysplitnewlinesr      s`     $

5 121QY2E29IIK L b	#2E"IL 3s   Aabc                    d }g }|D ]  }||}d}|\  }}}	||	z   }
||	z   }|\  }}}||z   }||z   }|
|k(  r9|
|z   |k  rn| |
|z      |||z      k(  r]|dz  }|
|z   |k  rP| |
|z      |||z      k(  rn=||k(  r8||z   |k  r0| |
|z      |||z      k(  r|dz  }||z   |k  r| |
|z      |||z      k(  r|j                  |||	|z   f       ||z   ||z   ||z
  f} ||j                  |       |S )Nr      )append)r   r   blocksprevrcurrshifta1b1l1a1endb1enda2b2l2a2endb2ends                    r   _normalizeblocksr$      sl    D
A 2<D
BRR
BRRB;%!EEM*:a>N*N
 %!EEM*:a>N*N b[%!EEM*:a>N*N
 %!EEM*:a>N*N 	
"b"u*%&Ez2:rEz1124 	H    c                    t        |       j                  d      } t        |      j                  d      }| s9dj                  |      }|xr$ t        j                  dddt        |            |z   S g }dg}| D ]"  }|j                  |d   t        |      z          $ t        j                  d | |      j                         }t        | ||      }d}d}|D ]d  \  }	}
}dj                  |||
       }|	|kD  s|r9|j                  t        j                  d||   ||	   t        |            |z          |	|z   }|
|z   }f dj                  |      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:   C   sG   aD!AaD!AHHQK=fkk'1aQ81<=
C	
A !	2Q ! 	a+??AAAq!A	
B	
B BHHQr"X7aJJv{{7AbE1R5#a&AAEF$Y$Y 88C=r%   c           
          t        |       }t        |      }t        j                  d ||      j                         }t	        |||      }|D cg c]  \  }}}|||z   |||z   f c}}}S c c}}}w )N)r   r-   r.   r/   r$   )r   r   anbnr4   r3   jns           r   r   r   ^   so    	q	B	q	Bb"-AACAR#A2344YaAQAq!a% 444s   A+allwsc                     |rt        j                  dd|       } | S t        j                  dd|       } | j                  dd      } | S )Ns   [ 	]+r%       s    
r   )resubreplace)r   r@   s     r   fixwsrF   f   sG    vvk3- K vvk4.||FE*Kr%   )r-   rC   r*   typingr   r   r'   r   intr$   r:   r   boolrF    r%   r   <module>rK      s     	  $u+ "E{"E{"	%S#
"JU u  65e 5 5$uS#sC-?'@"A 5 d u r%   