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/mercurial/__pycache__/mergestate.cpython-313.pyc
�

6�h${��|�SSKJr SSKrSSKrSSKrSSKrSSKJr SSKJ	r	J
r
Jr SSKJ
r
JrJr SSKJr \R$r\R(rSrS	rS
rSrSrS
rSrSrSrSrSr Sr!Sr"Sr#Sr$Sr%Sr&Sr'Sr(Sr)Sr*Sr+"SS5r,\,"S
S \*S!9r-\,"SS \*S!9r.\,"S"S \)S!9r/\,"S#S \+S!9r0\,"S$5r1\,"S5r2\,"S%S \)S!9r3\,"S&S \)S!9r4\,"S'5r5\,"S(5r6\,"S5r7\,"S)5r8\,"S*5r9\,"S+S S,9r:\,"S-S S,9r;\,"S.S S,9r<\,"S/S \+S!9r=\,"S0S \)S!9r>\7\9\6\54r?"S1S25r@"S3S4\@5rA"S5S6\@5rBS7rCg)8�)�annotationsN�)�_)�bin�hex�nullrev)�error�	filemerge�util)�hashutilc�\�URS5nUSSUSS-nSRU5$)N�������)�split�join)�data�bitss  �6/usr/lib/python3/dist-packages/mercurial/mergestate.py�
_droponoders5���:�:�e��D����9�t�B�C�y� �D��:�:�d���c��XR5RR:Xa[R"X5$X$�N)�repo�
nodeconstants�nullhexr
�
absentfilectx)�hexnode�ctx�fs   r�_filectxorabsentr! s2���(�(�*�*�*�2�2�2��&�&�s�.�.��v�
r�L�O�l�f�F�C�P�u�rspuspr�o�t�R�d�m�Dsaddedsremovedsmodifiedc��\rSrSrSr\R"5r\R"5rSSjr	Sr
SrSrSr
S	rS
rg)�MergeAction�ha�represent an "action" merge need to take for a given file

Attributes:

_short: internal representation used to identify each action

no_op:  True if the action does affect the file content or tracking status

narrow_safe:
    True if the action can be safely used for a file outside of the narrow
    set

changes:
    The types of changes that this actions involves. This is a work in
    progress and not all actions have one yet. In addition, some requires
    user changes and cannot be fully decided. The value currently available
    are:

    - ADDED: the files is new in both parents
    - REMOVED: the files existed in one parent and is getting removed
    - MODIFIED: the files existed in at least one parent and is getting changed
Nc���XlURRU5 X lUR(aURRU5 X0lX@lgr)�_short�ALL_ACTIONS�add�no_op�
NO_OP_ACTIONS�narrow_safe�changes)�self�shortr8r:r;s     r�__init__�MergeAction.__init__�sF���������T�"��
��:�:����"�"�4�(�&���rc�,�[UR5$r)�hashr5�r<s r�__hash__�MergeAction.__hash__�s���D�K�K� � rc�>�SURRS5-$)NzMergeAction<%s>�ascii)r5�decoderBs r�__repr__�MergeAction.__repr__�s�� �4�;�;�#5�#5�g�#>�>�>rc��UR$r�r5rBs r�	__bytes__�MergeAction.__bytes__�s���{�{�rc�j�Ucg[U[5(deURUR:H$�NF)�
isinstancer2r5�r<�others  r�__eq__�MergeAction.__eq__�s0���=���%��-�-�-�-��{�{�e�l�l�*�*rc�4�URUR:$rrKrQs  r�__lt__�MergeAction.__lt__�s���{�{�U�\�\�)�)r)r5r;r:r8)FFN)�__name__�
__module__�__qualname__�__firstlineno__�__doc__�weakref�WeakSetr6r9r>rCrHrLrSrV�__static_attributes__�rrr2r2hs?���.�/�/�#�K��O�O�%�M��!�?��+�*rr2T)r:r;�a�g�psam�csdcscdsdgsdm�k)r8skaskn�escmc�@�\rSrSrSrSrSrS Sjr\RS5r
\RS5r\RS	5r\RS
5r
SrSr\S
5rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#g)!�_mergestate_base��aetrack 3-way merge state of individual files

The merge state is stored on disk when needed. Two files are used: one with
an old format (version 1), and one with a new format (version 2). Version 2
stores a superset of the data in version 1, including new kinds of records
in the future. For more about the new format, see the documentation for
`_readrecordsv2`.

Each record can contain arbitrary content, and has an associated type. This
`type` should be a letter. If `type` is uppercase, the record is mandatory:
versions of Mercurial that don't support it should abort. If `type` is
lowercase, the record can be safely ignored.

Currently known records:

L: the node of the "local" part of the merge (hexified version)
O: the node of the "other" part of the merge (hexified version)
F: a file to be merged entry
C: a change/delete or delete/change conflict
P: a path conflict (file vs directory)
f: a (filename, dictionary) tuple of optional values for a given file
l: the labels for the parts of the merge.

Merge record states (stored in self._state, indexed by filename):
u: unresolved conflict
r: resolved conflict
pu: unresolved path conflict (file conflicts with directory)
pr: resolved path conflict
o: file was merged in favor of other parent of merge (DEPRECATED)

The resolve command transitions between 'u' and 'r' for conflicts and
'pu' and 'pr' for path conflicts.
c��Xl0Ul[R"[5UlSUlSUlSUl0Ul	SUl
g)zVInitialize the merge state.

Do not use this directly! Instead call read() or clean().NF)�_repo�_state�collections�defaultdict�dict�_stateextras�_local�_other�_labels�_results�_dirty)r<rs  rr>�_mergestate_base.__init__�sH���
����'�3�3�D�9��������������
���rc��grr`rBs r�reset�_mergestate_base.reset�s��rNc�(�XlX lX0lgr)rqrrrs)r<�noderR�labelss    r�start�_mergestate_base.start�s�������rc�d�URcSn[R"U5eUR$)Ns(local accessed but self._local isn't set)rqr	�ProgrammingError�r<�msgs  r�local�_mergestate_base.local�,���;�;��=�C��(�(��-�-��{�{�rc�4�URUR$r)rkr�rBs r�localctx�_mergestate_base.localctx
����z�z�$�*�*�%�%rc�d�URcSn[R"U5eUR$)Ns(other accessed but self._other isn't set)rrr	r�r�s  rrR�_mergestate_base.otherr�rc�4�URUR$r)rkrRrBs r�otherctx�_mergestate_base.otherctxr�rc�d�[UR5=(d [UR5$)z�Whether mergestate is active.

Returns True if there appears to be mergestate. This is a rough proxy
for "is a merge in progress."
)�boolrqrlrBs r�active�_mergestate_base.actives!���D�K�K� �5�D����$5�5rc��g)z*Write current state on disk (if necessary)Nr`rBs r�commit�_mergestate_base.commit!s�rc�\�[[R"U5R55$)zMhash the path of a local file context for storage in the .hg/merge
directory.)rr�sha1�digest)�paths r�getlocalkey�_mergestate_base.getlocalkey$s!��
�8�=�=��&�-�-�/�0�0rc��[5er��NotImplementedError�r<�fctx�localkeys   r�_make_backup�_mergestate_base._make_backup+���!�#�#rc��[5err��r<r�r��flagss    r�_restore_backup� _mergestate_base._restore_backup.r�rc
�:�UR5(a!URRRnO4[RUR
55nURX5 [UUR
5UR
5[UR55UR
5[UR55UR5/URU'[UR55URUS'SUlg)z�add a new (potentially?) conflicting file the merge state
fcl: file context for local,
fco: file context for remote,
fca: file context for ancestors,
fd:  file path of the resulting merge.

note: also write the local version to the `.hg/merge` directory.
�ancestorlinknodeTN)�isabsentrkrr�
mergestater�r�r��MERGE_RECORD_UNRESOLVEDr�filenoder�rlr{rpru)r<�fcl�fco�fca�fdr�s      rr7�_mergestate_base.add1s����<�<�>�>��z�z�/�/�7�7�H�!�-�-�c�h�h�j�9�H����c�,�#���H�H�J��H�H�J��������H�H�J��������I�I�K�	
����B��69�����_����"��1�2���rc�<�[X#/URU'SUlg)z�add a new conflicting path to the merge state
path:    the path that conflicts
frename: the filename the conflicting file was renamed to
forigin: origin of the file ('l' or 'r' for local/remote)
TN)�MERGE_RECORD_UNRESOLVED_PATHrlru)r<r��frename�forigins    r�addpathconflict� _mergestate_base.addpathconflictLs��:�7�L����D����rc�N�URURU5 SUlg)z@stores information which is required at commit
into _stateextrasTN)rp�updateru)r<r�rs   r�
addcommitinfo�_mergestate_base.addcommitinfoUs$��	
���$��&�&�t�,���rc��XR;$r�rl�r<�dfiles  r�__contains__�_mergestate_base.__contains__[s�����#�#rc�&�URUS$)Nrr�r�s  r�__getitem__�_mergestate_base.__getitem__^s���{�{�5�!�!�$�$rc�>�[[UR55$r)�iter�sortedrlrBs r�__iter__�_mergestate_base.__iter__as���F�4�;�;�'�(�(rc�6�URR5$r)rl�keysrBs r�files�_mergestate_base.filesds���{�{���!�!rc�4�X RUS'SUlg)NrT)rlru)r<r��states   r�mark�_mergestate_base.markgs�� %���E��1����rc#�# �URR5HupUS[[4;dMUv� M  g7f)z%Obtain the paths of unresolved files.rN)rl�itemsr�r�)r<r �entrys   r�
unresolved�_mergestate_base.unresolvedks>������)�)�+�H�A��Q�x�'�,�����,�s
�1A�	Ac��UR$)z8return all extras information stored with the mergestate�rprBs r�	allextras�_mergestate_base.allextrasus��� � � rc� �URU$)z?return extras stored with the mergestate for the given filenamer�)r<�filenames  r�extras�_mergestate_base.extrasys��� � ��*�*rc�P�X[[4;agURUnUupEpgp�p�URURnURU5n
U
R
S5nU(aURUnOSn[XRU5n[X�U	5nURRXxUS9nUR5nUR5nSUU-U-;adSUU-U-;aXUR5[:Xa8UU:wa2URRR[S5U-5 OUU:XaUnXPRRR :waUR#X!X[5 OX!R%SS	9 UR'U5(d$URU	S
UR(U'SUlg[,R,"URUUR.UUUUUR0S9unnU(dUR3U[5 SnU(a#UR55(a[6nOT[8nOMUR55(a[:nO1UR55(aXR<;a[>nO[@nUU4UR(U'U$)z@run merge process for dfile

Returns the exit code of the merge.rr�N)�fileid�	changectx�xr$sQwarning: cannot merge flags for %s without common ancestor - keeping local flags
T)�
ignoremissing)NN)r|)!�MERGE_RECORD_RESOLVED�LEGACY_RECORD_DRIVER_RESOLVEDrlrkrrr��getr!�filectxr��revr�ui�warnrrrr��remove�cmprtrur
rqrsr�r��
ACTION_FORGET�
ACTION_REMOVE�
ACTION_GETr��ACTION_ADD_MODIFIED�
ACTION_ADD)r<r��wctx�
stateentryr�r��lfile�afile�anode�ofile�onoder��octxr��
anccommitnode�actx�fcdr�r��flo�fla�	merge_ret�deleted�actions                        r�resolve�_mergestate_base.resolve}sY���;�!�)�
�
���[�[��'�
�DN�A���u�U��z�z�$�+�+�&�����U�#���
�
�#6�7�
���:�:�m�,�D��D��x�u�5���u�E�2���j�j� � ��� �E���i�i�k���i�i�k���5�3�;��$�$��U�S�[�3�5F�)F��w�w�y�G�#�����
�
�
�
�"�"��K���	���#�����z�z�/�/�7�7�7�� � ���h�>��K���T��2��w�w�s�|�|����E�"�#-�D�M�M�%� ��D�K��&�0�0��J�J���K�K������<�<�	
��	�7���I�I�e�2�3�����|�|�~�~�'��'���|�|�~�~�#��������M�M�)�0�F�'�F�(�&�0��
�
�e���rc��SupnURR5H-upEUcUS-
nMUS:XdMU[:XaUS-
nM(US-
nM/ XU4$)zCreturn counts for updated, merged and removed files in this
session)rrrrr)rt�valuesr�)r<�updated�merged�removed�rrs      r�counts�_mergestate_base.counts�sc��$+� ������-�-�/�I�A��y��1����a���]�*��q�L�G��a�K�F�0���'�'rc�F�[[UR555$)z0get unresolved count for this merge (persistent))�len�listr�rBs r�unresolvedcount� _mergestate_base.unresolvedcount�s���4����)�*�+�+rc
���[/[/[/[/[/0nUR
R
5H#unup4UcM
XRUSS45 M% U$)z2return lists of actions to perform on the dirstateNsmerge result)r�r�r�r�r�rtr��append)r<�actionsr rrs     rr�_mergestate_base.actions�sg��
�2��2�������
��#�m�m�1�1�3�N�A�{���!���&�&��4��'A�B�4��r)rursrqrrrkrtrlrpr)$rXrYrZr[r\r>rxr}r�
propertycacher�r�rRr�r�r��staticmethodr�r�r�r7r�r�r�r�r�r�r�r�r�r�rr
rrr_r`rrrhrh�s��� �D�$
��

������
���&��&�
������
���&��&�6�9��1��1�$�$��6��$�%�)�"���!�+�S�j(�,�rrhc��\rSrSrSrSr\S5r\S5rSr	Sr
SrS	rS
r
SrSrS
rSrSrSrSrSrSrg)r�i�smerge/statesmerge/state2c�<�[U5nUR5 U$)zHInitialize a brand new merge state, removing any existing state on
disk.)r�rx�r�mss  r�clean�mergestate.clean�s����
��
���
��	rc�<�[U5nUR5 U$)z1Initialize the merge state, reading it from disk.)r��_readrs  r�read�mergestate.read�s����
��
���
��	rc��[5nUR5nUGH�up4U[:Xa[U5UlM"U[
:Xa[U5UlM>U[:XaMJU[[[[[4;aLURS5nUS[:XaSURUSS'M�USSUR US'M�U[":XakURSS5upgURS5n0n	Sn
U
[%U5:a"X�S-X�U
'U
S-
n
U
[%U5:aM"X�RU'GM*U[&:Xa>URSS5nUVs/sHn[%U5S:�dMUPM snUlGMrUR+5(aGM�UR-U5 GM� U(a[.R0"U5egs snf)z�Analyse each record content to restore a serialized state from disk

This function process "record" entry produced by the de-serialization
of on disk file.
rrsotherrsfilenode-sourceN�)�set�_readrecords�RECORD_LOCALrrq�RECORD_OTHERrr�LEGACY_MERGE_DRIVER_STATE�
RECORD_MERGED�RECORD_CHANGEDELETE_CONFLICT�RECORD_PATH_CONFLICT�LEGACY_MERGE_DRIVER_MERGE�LEGACY_RECORD_RESOLVED_OTHERr�MERGE_RECORD_MERGED_OTHERrprl�RECORD_FILE_VALUESr�
RECORD_LABELSrs�islowerr7r	�UnsupportedMergeRecords)
r<�unsupported�records�rtype�recordrr��	rawextras�
extrapartsr��ir|�ls
             rr!�mergestate._reads����e���#�#�%��$�M�E���$�!�&�k����,�&�!�&�k����3�3����,�$�)�,����|�|�E�*����7�7�7�EM�D�%�%�d�1�g�.�/A�B�+/���8�D�K�K��Q��(��,�,�&,�l�l�5�!�&<�#��&�_�_�U�3�
������#�j�/�)�,6�1�u�,=�F�a�=�)���F�A��#�j�/�)�/5�!�!�(�+��-�'����e�Q�/��+1�@�6�a�S��V�a�Z��6�@����]�]�_�_�����&�I%�L��/�/��<�<���	 As�'G�>Gc���UR5nUR5nURX5(aU$URSR	5SnUR[UR545 [U5HRupEUS[:XdMUSRS5nURSS5 USSRU54X'MT U$)abRead merge state from disk and return a list of record (TYPE, data)

We read data from both v1 and v2 files and decide which one to use.

V1 has been used by version prior to 2.9.1 and contains less data than
v2. We read both versions and check if no data in v2 contradicts
v1. If there is not contradiction we can safely assume that both v1
and v2 were written at the same time and use the extract data in v2. If
there is contradiction we ignore v2 content as we assume an old version
of Mercurial has overwritten the mergestate file and left an old v2
file around.

returns list of record [(TYPE, data), ...]Nrrrrrr)
�_readrecordsv1�_readrecordsv2�
_v1v2matchrk�parentsrr)r�	enumerater+r�insertr)r<�	v1records�	v2records�mctx�idxrrs       rr'�mergestate._readrecords7s����'�'�)�	��'�'�)�	��?�?�9�0�0���
�:�:�d�#�+�+�-�b�1�D����l�D�H�H�J�7�8�$�I�.����Q�4�=�(��Q�4�:�:�e�,�D��K�K��C�(�&'��d�E�J�J�t�,<�%=�I�N�	/�
�rc���[5nUHUnUS[:XaURU5 M#US[:XdM2UR[[	US545 MW UH
nXC;dM
 g g)NrrFT)r&r(r7r+r)r<rErF�oldv2�recs     rrA�mergestate._v1v2matchYsj������C��1�v��%��	�	�#���Q��=�(��	�	�=�*�S��V�*<�=�>���C�����rc�8�/nURRUR5n[U5HAup4US:XaUR	[
USS45 M'UR	[USS45 MC UR5 U$![a U$f=f)z�read on disk merge state for version 1 file

returns list of record [(TYPE, data), ...]

Note: the "F" data from this file are one entry short
      (no "other file node" entry)
rNr)	rk�vfs�statepathv1rCrr(r+�close�FileNotFoundError)r<r6r r;r<s     rr?�mergestate._readrecordsv1gs�����		��
�
���t�/�/�0�A�!�!������6��N�N�L�!�C�R�&�#9�:��N�N�M�1�S�b�6�#:�;�	%�

�G�G�I����!�	����	�s�BB�
B�Bc��/nURRUR5nUR5nSn[	U5nXE:a[X4US-nUS-
n[SX4US-5SnUS-
nX4XG-nXG-
nU[:Xa	USSUSSp�URXh45 XE:aM[UR5 U$![a U$f=f)a�read on disk merge state for version 2 file

This format is a list of arbitrary records of the form:

  [type][length][content]

`type` is a single character, `length` is a 4 byte integer, and
`content` is an arbitrary byte sequence of length `length`.

Mercurial versions prior to 3.7 have a bug where if there are
unsupported mandatory merge records, attempting to clear out the merge
state with hg update --clean or similar aborts. The 't' record type
works around that by writing out what those versions treat as an
advisory record, but later versions interpret as special: the first
character is the 'real' record type and everything onwards is the data.

Returns list of records [(TYPE, data), ...].rrs>I�N)
rkrO�statepathv2r"r�_unpack�RECORD_OVERRIDErrQrR)	r<r6r r�off�endr7�lengthr8s	         rr@�mergestate._readrecordsv2|s���$��	��
�
���t�/�/�0�A��6�6�8�D��C��d�)�C��)��3��7�+���q��� ���C�!�G�(=�>�q�A���q����S�\�3���
���O�+�$*�1�Q�K�����6������/��)�
�G�G�I����!�	����	�s�B B8�&B8�8
C�Cc�x�UR(a)UR5nURU5 SUlggrO)ru�_makerecords�
_writerecords�r<r6s  rr��mergestate.commit�s1���;�;��'�'�)�G����w�'��D�K�rc��/nUR[[UR545 UR[[UR
545 URR5H�up#US[[4;a,UR[SRU/U-545 MDUSURRR:Xd'USURRR:Xa,UR[SRU/U-545 M�UR[ SRU/U-545 M� [#UR$R55HFup$SRSUR555nUR[&SX%4-45 MH UR(b2SRUR(5nUR[*U45 U$)Nrrr�c3�2# �UH
upSX4-v� M g7f)�%s%sNr`)�.0�k�vs   r�	<genexpr>�*mergestate._makerecords.<locals>.<genexpr>�s���#�/=�t�q�	�Q�F�"�~�s�re)rr(rrqr)rrrlr�r��MERGE_RECORD_RESOLVED_PATHr-rrkrrr,r+r�rpr1rsr2)r<r6r�rhr�r9r|s       rr^�mergestate._makerecords�s���������c�$�+�+�&6�7�8�����c�$�+�+�&6�7�8� �;�;�,�,�.�K�H���t�,�*������)�5�:�:�x�j�1�n�+E�F���!���
�
�0�0�8�8�8��Q�4�4�:�:�3�3�;�;�;����1�5�:�:�x�j�1�n�3M�N��
���
�u�z�z�8�*�q�.�/I�J�K�//�0!'�t�'8�'8�'>�'>�'@� A��H��
�
�#�/5�|�|�~�#��I�
�N�N�#�Y�(�1F�%F�G�
�	!B��<�<�#��Z�Z����-�F��N�N�M�6�2�3��rc�H�URU5 URU5 g)z,Write current state on disk (both v1 and v2)N)�_writerecordsv1�_writerecordsv2r`s  rr_�mergestate._writerecords�s�����W�%����W�%rc�p�URRURS5n[U5n[	U5nUS[
:XdeUR
[UR5S-5 UH.upVU[:XdMUR
S[U5-5 M0 UR5 g)z/Write current state on disk in a version 1 file�wbr�
s%s
N)rkrOrPr��nextr(�writerrqr+rrQ)r<r6r �irecords�lrecordsr7rs       rrn�mergestate._writerecordsv1�s����J�J�N�N�4�+�+�U�3����=����>����{�l�*�*�*�	����D�K�K� �5�(�)�#�K�E��
�%�����*�T�"2�2�3�$�	
���	rc
�P�[[[4nURR	UR
S5nUHYupE[
U5S:XdeXB;a[SXE4-pTS[
U5-nUR[Xd[
U5U55 M[ UR5 g)ziWrite current state on disk in a version 2 file

See the docstring for _readrecordsv2 for why we use 't'.rrrs%s%ss>sI%isN)r(r)r+rkrOrVrrXru�_packrQ)r<r6�	allowlistr �keyr�formats       rro�mergestate._writerecordsv2�s���
"�<��?�	��J�J�N�N�4�+�+�U�3�� �I�C��s�8�q�=� �=��#�+�W��{�-B�T���T��*�F�
�G�G�E�&�s�4�y�$�7�8�!�	
���	rc�r�URRRSU-UR55 g�Nsmerge/)rkrOrurr�s   rr��mergestate._make_backup�s%���
�
�����Y��1�4�9�9�;�?rc��URRSU-5nURUR5U5 SSS5 g!,(df   g=fr�)rkrOrur")r<r�r�r�r s     rr��mergestate._restore_backup�s9��
�Z�Z�^�^�I��0�
1�Q��J�J�q�v�v�x��'�2�
1�
1�s�!A	�	
Ac�x�[R"URRR	S5S5 g)NsmergeT)�shutil�rmtreerkrOrrBs rrx�mergestate.reset�s#���
�
�d�j�j�n�n�)�)�(�3�T�:r)rursrqrrN)rXrYrZr[rPrVrrr"r!r'rAr?r@r�r^r_rnror�r�rxr_r`rrr�r��sx�� �K�!�K���������/=�b �D��*%�N �+�Z&�

�
�@�(�;rr�c�4^�\rSrSrU4SjrSrSrSrU=r$)�
memmergestateic�2>�[TU]U5 0Ulgr)�superr>�_backups)r<r�	__class__s  �rr>�memmergestate.__init__s���
�������
rc�>�UR5URU'gr)rr�r�s   rr��memmergestate._make_backups��"&�)�)�+��
�
�h�rc�B�URURUU5 gr)rur�r�s    rr��memmergestate._restore_backup	s���
�
�4�=�=��*�E�2r)r�)	rXrYrZr[r>r�r�r_�
__classcell__)r�s@rr�r�s����.�3�3rr�c��URnURnUR[/5HupgnU(a
U"USSS9 MU"USSS9 M! UR[/5HupgnU"USSS9 M UR[
/5H:upgnUup�U"USSS9 UR
X�5 X�:Xa
U"U	SSS9 M2U"U	SSS9 M< UR[/5HupgnU"USSS9 M UR[/5H upgnU(aU"USSSS9 MU"USSS9 M" UR[/5HupgnU"USSSS9 M UR[/5HupgnM UR[/5HupgnM UR[/5HupgnM UR[/5HcupgnU(a@URU5nUR=(a UR (+nU"UUSSS9 MMU(aX6OSn
U"USSU
S9 Me UR["/5H�upgnUup�nnnU(aNX�:HnU"UUSSS9 X�:wa:U(aU"USSS9 X�:waUR
X�5 MMUR
X�5 M`MbX�:Xa	U"USSSS9 U(dMyU"USSS9 M� UR[$/5HEupgnUun	nU(a#U"USSS9 U"U	SSS9 UR
X�5 M5U"USSS9 U"U	SSS9 MG UR[&/5H5upgnUun	nU(aU"USSS9 UR
X�5 M-U"USSS9 M7 g)z$record merge actions to the dirstateTF)�
p1_tracked�
wc_tracked)r�r��possibly_dirty)r�r��p2_infoN)r�r��parentfiledata)�dirstate�update_filer�r�r��ACTION_PATH_CONFLICT_RESOLVE�copyr�r��ACTION_EXEC�ACTION_KEEP�ACTION_KEEP_ABSENT�ACTION_KEEP_NEWr��	get_entry�any_tracked�added�ACTION_MERGE�ACTION_DIR_RENAME_MOVE_LOCAL�ACTION_LOCAL_DIR_RENAME_GET)rr�branchmerge�getfiledatar�r�r �argsr��f0�origf0�	old_entryr�r��f1�f2�fa�move�anc�flags                    r�
recordupdatesr�
s����}�}�H��&�&�K� ���M�2�6�������d�u�=���e��>�	7� ���M�2�6�����A�%�E�:�7� ���$@�"�E��������A�%�D�9��
�
�f� �
�<���t��>���u��?�F� ���J��3�����A�%�D�9�4� ���$7��<�������d�t�D�
�
��e��=�
=� ���K��4�����A�$�4��M�5� ���K��4�����5� ���$6��;�����<� ���O�R�8�����9� ���J��3����� �*�*�1�-�I�"�.�.�F�y���3F�J���%���	
�0;�[�^��N�����-�	
�4�* ���L�"�5���� $����D�#����J���%���	
��x����t��F��7��M�M�"�(��M�M�"�(�
��w���$�4����t��B�5�U�C�=6�B ���$@�"�E�������D����e��=���t��>��M�M�"� ���d�t�<���u��?�F� ���$?��D�������D����e��=��M�M�"� ���d�t�<�
Er)D�
__future__rrmr��structr]�i18nrr{rrr�r	r
r�utilsr�packrz�unpackrWrr!r(r)r2r1r+r,r-r�r�r�rkr0rXr/r�r*r.�CHANGE_ADDED�CHANGE_REMOVED�CHANGE_MODIFIEDr2r�r�r�r��ACTION_PATH_CONFLICTr�r��ACTION_CREATED�ACTION_DELETED_CHANGED�ACTION_CHANGED_DELETEDr�r�r�r�r�r�r��ACTION_CREATED_MERGE�CONVERT_MERGE_ACTIONSrhr�r�r�r`rr�<module>r�s��"��
�
�����
��
�����
�-�-���������
����
�#��������$��"��
!���� $�� $�� �� ��������4*�4*�n�D�d�N�K�
��D�d�N�K�
�
��4��
F�
�
��4��
I�
�"�4�(��*�5�1��!�	�t�\����T�t�\�J��$�U�+��$�U�+���4� ��)�%�0��*�5�1���$�d�+��!��d�3���e�4�0���$�D�/�J��"�	�t�\���� ���	��j�j�Z	K;�!�K;�\	3�$�	3�=r