ROOTPLOIT
Server: Apache
System: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User: ws67150586 (67150586)
PHP: 8.3.36
Disabled: NONE
Upload Files
File: //kunden/kunden/kunden/lib/python3/dist-packages/merge3/__pycache__/__init__.cpython-313.pyc
�

ÿL`�J��L�SSKJr Sr"SS\5rSrSr"SS\5rg	)
�)�absolute_import)rr�c��\rSrSrSrSrg)�CantReprocessAndShowBase�zCan't reprocess and show base.�N)�__name__�
__module__�__qualname__�__firstlineno__�__doc__�__static_attributes__r��1/usr/lib/python3/dist-packages/merge3/__init__.pyrrs��(rrc�\�[USUS5n[USUS5nX#:aX#4$g)z�Given two ranges return the range where they intersect or None.

>>> intersect((0, 10), (0, 6))
(0, 6)
>>> intersect((0, 10), (5, 15))
(5, 10)
>>> intersect((0, 10), (10, 15))
>>> intersect((0, 9), (10, 15))
>>> intersect((0, 9), (7, 15))
(7, 9)
r�N)�max�min)�ra�rb�sa�sbs    r�	intersectrs;��

�R��U�B�q�E�	�B�	�R��U�B�q�E�	�B�	�w��v�
�rc��X!-
XT-
:wag[[X5[XE55HupgXX7:wdM g g)z?Compare a[astart:aend] == b[bstart:bend], without slicing.
    FT)�zip�range)�a�astart�aend�b�bstart�bend�ia�ibs        r�
compare_ranger%4sD��	
����%���e�F�)�5��+>�?����5�A�E�>��@�rc�|�\rSrSrSrSSjrSrSSjrSrSr	S	r
S
rSr\
S5rS
rSrSrg)�Merge3�@z�3-way merge of texts.

Given BASE, OTHER, THIS, tries to produce a combined text
incorporating the changes from both BASE->OTHER and BASE->THIS.
All three will typically be sequences of lines.Nc�f�UcSSKnURnXlX lX0lX@lXPlg)a;Constructor.

:param base: lines in BASE
:param a: lines in A
:param b: lines in B
:param is_cherrypick: flag indicating if this merge is a cherrypick.
    When cherrypicking b => a, matches with b and base do not conflict.
:param sequence_matcher: Sequence matcher to use (defaults to
    difflib.SequenceMatcher)
Nr)�difflib�SequenceMatcher�baserr �
is_cherrypick�sequence_matcher)�selfr,rr r-r.r*s       r�__init__�Merge3.__init__Gs4���#��&�6�6���	�����*�� 0�rc�H�[UR5S:�a[URS[5$[UR5S:�a[URS[5$[UR
5S:�a[UR
S[5$g)NrF)�lenr�
isinstance�bytesr,r )r/s r�_uses_bytes�Merge3._uses_bytes[sr���t�v�v�;��?��d�f�f�Q�i��/�/�
����^�a�
��d�i�i��l�E�2�2�
����[�1�_��d�f�f�Q�i��/�/�rc	#��# �U(aU(a
[5eUR5(Ga�[UR5S:�aOURSR	S5(aSn	O+URSR	S5(aSn	OSn	OSn	[U[5(aUR5n[U[5(aUR5n[U[5(aUR5nUb%[U[5(aUR5nU(a-[U[5(aUR5nUS-U-nU(a-[U[5(aUR5nUS-U-nU(a4U(a-[U[5(aUR5nUS-U-nO�[UR5S:�aOURSR	S5(aSn	O+URSR	S5(aSn	OS	n	OS	n	U(aUS
-U-nU(aUS
-U-nU(aU(aUS
-U-nUR5n
USLaURU
5n
U
GHOnUSnUS:Xa,[US
US5Hn
URU
v� M M;US:XdUS:Xa,[US
US5Hn
URU
v� M MsUS:Xa,[US
US5Hn
URU
v� M M�US:Xa�XI-v� [USUS5Hn
URU
v� M Ub0Xy-v� [US
US5Hn
URU
v� M XY-v� [USUS5Hn
URU
v� M Xi-v� GMG[U5e g7f)z'Return merge in cvs-like form.
        rs
�
�
N� z
�
�
� T�	unchangedr�r�samer �conflict����)rr6r3r�endswithr4�str�encode�
merge_regions�reprocess_merge_regionsrr,r �
ValueError)r/�name_a�name_b�	name_base�start_marker�
mid_marker�
end_marker�base_marker�	reprocess�newlinerJ�t�what�is              r�merge_lines�Merge3.merge_linesess����9�*�,�,�������4�6�6�{�Q���6�6�!�9�%�%�g�.�.�%�G��V�V�A�Y�'�'��.�.�#�G�#�G����,��,�,�+�2�2�4���*�c�*�*�'�.�.�0�
��*�c�*�*�'�.�.�0�
��&�:�k�3�+G�+G�)�0�0�2����f�c�*�*�#�]�]�_�F�+�d�2�V�;����f�c�*�*�#�]�]�_�F�'�$�.��7�
��[��i��-�-� )� 0� 0� 2�I�)�D�0�9�<����4�6�6�{�Q���6�6�!�9�%�%�f�-�-�$�G��V�V�A�Y�'�'��-�-�"�G�"�G����+�c�1�F�:���'�#�-��6�
��[�)�C�/�)�;���*�*�,�
���� �8�8��G�M��A��Q�4�D��{�"��q��t�Q�q�T�*�A��)�)�A�,�&�+��������q��t�Q�q�T�*�A��&�&��)�O�+�����q��t�Q�q�T�*�A��&�&��)�O�+���#�"�,�,��q��t�Q�q�T�*�A��&�&��)�O�+��*�%�/�/�"�1�Q�4��1��.��"�i�i��l�*�/� �*�*��q��t�Q�q�T�*�A��&�&��)�O�+� �*�*� ��&�&�1�s�O/O1c#�2# �SnSnSnSnSnSnSnUR5(apUR5nUR5nUR5nUR5nUR5nUR5nUR5nUR5GHknUSn	U	S	:Xa1[US
US5Hn
X-URU
-v� M M@U	S:XdU	S:Xa@[US
US5H(n
UR5U-URU
-v� M* M�U	S:Xa@[US
US5H(n
UR5U-URU
-v� M* M�U	S
:Xa�Uv� [USUS5H(n
UR5U-URU
-v� M* Uv� [USUS5H(n
UR5U-URU
-v� M* Uv� GMc[U	5e g7f)zXReturn merge with conflicts, showing origin of lines.

Most useful for debugging merge.
�uz | z<<<<
z----
z>>>>
rr rr?rr@rArBrCrDrErFN)
r6rIrJrr,�lowerrr �upperrL)r/�	UNCHANGED�SEP�CONFLICT_START�CONFLICT_MID�CONFLICT_END�WIN_A�WIN_BrVrWrXs           r�merge_annotated�Merge3.merge_annotated�s����
�	���!���������������!�(�(�*�I��*�*�,�C�+�2�2�4�N�'�.�.�0�L�'�.�.�0�L��L�L�N�E��L�L�N�E��#�#�%�A��Q�4�D��{�"��q��t�Q�q�T�*�A�#�/�D�I�I�a�L�8�8�+��������q��t�Q�q�T�*�A��+�+�-�#�-����q�	�9�9�+�����q��t�Q�q�T�*�A��+�+�-�#�-����q�	�9�9�+���#�$�$��q��t�Q�q�T�*�A��+�+�-�#�-����q�	�9�9�+�"�"��q��t�Q�q�T�*�A��+�+�-�#�-����q�	�9�9�+�"�"� ��&�&�)&�s�HHc#�# �UR5H�nUSnUS:XaX RUSUS4v� M(US:XdUS:XaX RUSUS4v� MNUS:XaX RUSUS4v� MnUS:XaCUURUSUSURUS	US
URUSUS4v� M�[	U5e g
7f)aSYield sequence of line groups.  Each one is a tuple:

'unchanged', lines
     Lines unchanged from base

'a', lines
     Lines taken from a

'same', lines
     Lines taken from a (and equal to b)

'b', lines
     Lines taken from b

'conflict', base_lines, a_lines, b_lines
     Lines from base were changed to either a or b and conflict.
rr?rr@rrAr rBrCrDrErFN)rJr,rr rL)r/rVrWs   r�merge_groups�Merge3.merge_groups�s����$�#�#�%�A��Q�4�D��{�"��I�I�a��d�1�Q�4�0�0�0��������F�F�1�Q�4��!��-�-�-�����F�F�1�Q�4��!��-�-�-���#���y�y��1��a��d�+��v�v�a��d�1�Q�4�(��v�v�a��d�1�Q�4�(�*�*�
!��&�&�&�s�CCc	#�# �S=n=p#UR5GH.upEpgnn	XT-
n
Xb-
nX�-
nU(dU(a�[URX&URX85n
U
(aSX&4v� O�[URX&URX5n[URX8URX5nU(aU(dSX84v� OgU(aU(dSX&4v� ORU(d@U(d9UR
(aUR
XX&X85HnUv� M	 OSXX&X84v� O[S5eUnUnUnU
S:�dGM"SXE4v� UnUnU	nGM1 g7f)	a�Return sequences of matching and conflicting regions.

This returns tuples, where the first value says what kind we
have:

'unchanged', start, end
     Take a region of base[start:end]

'same', astart, aend
     b and a are different from base but give the same result

'a', start, end
     Non-clashing insertion from a[start:end]

Method is as follows:

The two sequences align only on regions which match the base
and both descendents.  These are found by doing a two-way diff
of each one against the base, and then finding the
intersections between those regions.  These "sync regions"
are by definition unchanged in both and easily dealt with.

The regions in between can be in any of three cases:
conflicted, or changed on only one side.
rrAr rrBz#can't handle a=b=base but unmatchedr?N)�find_sync_regionsr%rr r,r-�_refine_cherrypick_conflict�AssertionError)r/�izr#r$�zmatch�zend�amatchr�bmatchr"�matchlen�len_a�len_brA�equal_a�equal_b�nodes                 rrJ�Merge3.merge_regions
sj���8����R��,�,�.�
�V�6��
��}�H�
�K�E��K�E���$�T�V�V�R�%)�V�V�R�9��� �"�,�,�+�D�F�F�B�,0�I�I�r�C�G�+�D�F�F�B�,0�I�I�r�C�G��w�!�2�o�-� ��!�2�o�-�$�W��-�-�(,�(H�(H�46��46�)@��'+�
�)@�!+�B��B�#P�P�-�A�C�C������B�
�!�|�"�6�/�/�������{/�s�D3E�:Ec	#��# �URSURXURXV5nUR5nSn	Sn
Sn
SnUHGup�nX�-
nUS:XaO.U(aSX-X-XDXZ-X]-4v� OSnSX-X-X4XZ-X]-4v� X�-n	X�-n
MI X�U-
:wdX�U-
:wa2U(aSX-UW-XDXZ-UW
-4v� OSnSX-UW-X4XZ-UW
-4v� U(d	SXX4XV4v� gg7f)z:When cherrypicking b => a, ignore matches with b and base.NrFrBT)r.r,r �get_matching_blocks)r/�zstartrqrrr!r"�matcher�matches�
last_base_idx�
last_b_idx�	yielded_a�base_idx�b_idx�	match_len�conflict_b_lens                rrm�"Merge3._refine_cherrypick_conflicthsc����'�'��$�)�)�F�(�$�&�&��*=�?���-�-�/���
��
��
��	�*1�&�H�Y�"�/�N���"���%�!�1�6�3D��v�':�F�N�L�L�
!%�I�"�F�$:�F�<M��f�&9�6�>�K�K�%�0�M��*�J�%+2�&�6�M�)�Z�&�=�-H��!�6�#9�6�H�;L��6�#6����H�H�!�	�!�6�#9�6�H�;L��V�%8�&�5�.�J�J���v�V�6�H�H��s�C$C&c#�# �UH�nUSS:waUv� MUup4pVpxn	URXgn
URX�nURSX�5R5nUn
UnUSSH>unnnX�-
nUU-
nUR	X�UU5nUbUv� SUUU-4v� UU-n
UU-nM@ UR	X�X�5nUcM�Uv� M� g7f)z�Where there are conflict regions, remove the agreed lines.

Lines where both A and B have made the same changes are
eliminated.
rrBN���rA)rr r.r|�mismatch_region)r/rJ�region�typerorpr#rrr$rs�a_region�b_regionr�next_a�next_b�	region_ia�	region_ib�
region_len�regs                   rrK�Merge3.reprocess_merge_regions�s���$�F��a�y�J�&����7=�4�D�f�&�f��v�v�b�(�H��v�v�b�(�H��+�+��(�.�.A�.A�.C�
��F��F�4;�C�R�L�0�	�9�j���	��R��	��*�*�6�f�+4�6���?��I��i��I�)=�=�=�"�Z�/��"�Z�/��5A��&�&�v�v�F�C����	�/$�s�B6C�<	Cc�&�X:dX#:aSSSXX#4$g)NrBr)r�r�r�r�s    rr��Merge3.mismatch_region�s#�����!3��t�T�6�f�O�O�"4rc���S=pURSURUR5R5nURSURUR5R5n[U5n[U5n/nX:a�X&:a�X1up�n
XBup�n
[
X�U
-4X�U
-45nU(a>USnUSnUU-
nX�U-
-nX�U-
-nUU-nUU-nURUUUUUU45 X�-X�-:aUS-
nOUS-
nX:aX&:aM�[UR5n[UR5n[UR5nURX�X�X�45 U$)z�Return a list of sync regions, where both descendents match the base.

Generates a list of (base1, base2, a1, a2, b1, b2).  There is
always a zero-length sync region at the end of all the files.
rNr)r.r,rr|r r3r�append)r/r#r$�amatches�bmatchesrurv�sl�abaserr�alen�bbasers�blenrX�intbase�intend�intlen�asub�bsubrr"s                      rrl�Merge3.find_sync_regions�s�������(�(��d�i�i����)�)<�)<�)>�	��(�(��d�i�i����)�)<�)<�)>�	��H�
���H�
��
���j�R�Z�"*�,��E�4�"*�,��E�4��5��*�-��T�z�/B�C�A���A�$���1����'�)���5��1���5��1���f�}���f�}���	�	�7�F�����'�(�����.��a����a���G�j�R�Z�J�d�i�i�.���D�F�F����D�F�F���
�	�	�7�U�5�@�A��	rc���URSURUR5R5nURSURUR5R5n/nU(amU(afUSSnXASS-nUSSnXbSS-n[XE4Xg45nU(aUR
U5 XW:aUS	OUS	U(a	U(aMfU$)z8Return a list of ranges in base that are not conflicted.Nrr@)r.r,rr|r rr�)	r/�am�bm�unc�a1�a2�b1�b2rXs	         r�find_unconflicted�Merge3.find_unconflicted�s���
�
"�
"��d�i�i����)�)<�)<�)>�	�
�
"�
"��d�i�i����)�)<�)<�)>�	����R��A��q��B���e�A�h��B��A��q��B���e�A�h��B��2�(�R�H�-�A���
�
�1�
��w��q�E��q�E��R�R� �
r)rr r,r-r.)FN)NNNz<<<<<<<z=======z>>>>>>>NF)r	r
rrr
r0r6rYrfrirJrmrK�staticmethodr�rlr�rrrrr'r'@sr��7�1�(� ��"�!*�(�(� $�#�V'�p)'�V '�D\�|(I�T�>�P��P�;�zrr'N)	�
__future__r�__version__�	Exceptionrrr%�objectr'rrr�<module>r�s5��"'���)�y�)��,	�L�V�Lr