Patch for branch changeset splitting in BreakAllChangesetCyclesPass

Дмитрий Оксенчук <[email protected]> Tue, 3 Feb 2015 12:40:12 +0300
Newsgroups gmane.comp.version-control.subversion.cvs2svn.devel
Message-ID <CA+POfmtKm5nZ_jz8D6kFqBXGxi=Ay-hqXeAw4ievRCZMvPDwNA@mail.gmail.com>
------=_Part_7318_1866753239.1422964023354
Content-Type: multipart/alternative; 
	boundary="----=_Part_7319_1933088850.1422964023354"

------=_Part_7319_1933088850.1422964023354
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

First of all I'd like to thank you for the great project that really helped
up to covert our CVS repo to Git.

During the conversion I've found two bugs in cvs2svn and this email
contains the patch for the first bug. The patch for the second bug I'll
send in a separate email. I'm not sure that the patches fix all the cases
and don't introduce new bugs, but they work fine in our case.

Consider the following history extract (from the attached repo):

o (1: mod A.cpp) -- o (3: mod A.cpp) -- o (4: add C.cpp) -- trunk
 \                                       \
  o (2: add B.cpp) ---------------------- o (5: branch C.cpp) -- symbol00968

Branch symbol00968 was branched from revision 1 in trunk and file B.cpp was
added in the branch (if we checkout the branch in CVS at the date after
revision 2, we get two files: A.cpp and B.cpp). Then C.cpp was added in
trunk and the trunk revision was set as a branch point for the branch (if
we checkout the branch from CVS at the date after revision 3, we get three
files).

cvs2svn in InitializeChangesetsPass groups all the branch commits in one
changeset and then splits it in BreakAllChangesetCyclesPass if necessary.
It takes into account file modifications and ignores file additions in a
branch, so after conversion we have the following history:

o (1: mod A.cpp) -- o (3: mod A.cpp) -- o (4: add C.cpp) -- trunk
                                         \
  o (2: add B.cpp) ---------------------- o (5: branch A.cpp:1, C.cpp:4) --
symbol00968

In Git the branch at revision 2 has only B.cpp, but in CVS it has both
A.cpp and B.cpp.

After the patch BreakAllChangesetCyclesPass takes into account the first
revision in a branch and splits the branch changeset if the first revision
is in the middle of the branch changeset's predecessors.

Best regards,
Dmitry

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=3096431

To unsubscribe from this discussion, e-mail: [[email protected]].
------=_Part_7319_1933088850.1422964023354
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<br><br>First of all I&#39;d like to thank you for the =
great project that really helped up to covert our CVS repo to Git.<br><br>D=
uring the conversion I&#39;ve found two bugs in cvs2svn and this email cont=
ains the patch for the first bug. The patch for the second bug I&#39;ll sen=
d in a separate email. I&#39;m not sure that the patches fix all the cases =
and don&#39;t introduce new bugs, but they work fine in our case.<br><br>Co=
nsider the following history extract (from the attached repo):<div><br><fon=
t face=3D"monospace, monospace">o (1: mod A.cpp) -- o (3: mod A.cpp) -- o (=
4: add C.cpp) -- trunk<br>=C2=A0\ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 \<br>=C2=A0 o (2: add B.cpp) ---------------------- o (5:=
 branch C.cpp) -- symbol00968</font><div><br></div><div><font face=3D"arial=
, helvetica, sans-serif">Branch=C2=A0symbol00968 was branched from revision=
 1 in trunk and file B.cpp was added in the branch (if we checkout the bran=
ch in CVS at the date after revision 2, we get two files: A.cpp and B.cpp).=
 Then C.cpp was added in trunk and the trunk revision was set as a branch p=
oint for the branch (</font><span style=3D"font-family:arial,helvetica,sans=
-serif">if we checkout the branch from CVS at the date after revision 3, we=
 get three files).</span></div><div><span style=3D"font-family:arial,helvet=
ica,sans-serif"><br></span></div><div><span style=3D"font-family:arial,helv=
etica,sans-serif">cvs2svn in=C2=A0</span><font face=3D"arial, helvetica, sa=
ns-serif">InitializeChangesetsPass groups all the branch commits in one cha=
ngeset and then splits it in=C2=A0BreakAllChangesetCyclesPass if necessary.=
 It takes into account file modifications and ignores file additions in a b=
ranch, so after conversion we have the following history:</font></div><div>=
<font face=3D"arial, helvetica, sans-serif"><br></font></div><div><div><fon=
t face=3D"monospace, monospace">o (1: mod A.cpp) -- o (3: mod A.cpp) -- o (=
4: add C.cpp) -- trunk</font></div><div><font face=3D"monospace, monospace"=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\<=
/font></div><div><font face=3D"monospace, monospace">=C2=A0 o (2: add B.cpp=
) ---------------------- o (5: branch A.cpp:1, C.cpp:4) -- symbol00968</fon=
t></div></div><div><font face=3D"arial, helvetica, sans-serif"><br></font><=
/div><div><span style=3D"font-family:arial,helvetica,sans-serif">In Git t</=
span><font face=3D"arial, helvetica, sans-serif">he branch at revision 2 ha=
s only B.cpp, but in CVS it has both A.cpp and B.cpp.</font></div></div><di=
v><font face=3D"arial, helvetica, sans-serif"><br></font></div><div><font f=
ace=3D"arial, helvetica, sans-serif">After the patch=C2=A0</font><span styl=
e=3D"font-family:arial,helvetica,sans-serif">BreakAllChangesetCyclesPass</s=
pan><span style=3D"font-family:arial,helvetica,sans-serif">=C2=A0takes into=
 account the first revision in a branch and splits the branch changeset if =
the first revision is in the middle of the branch changeset&#39;s predecess=
ors.</span></div><div><span style=3D"font-family:arial,helvetica,sans-serif=
"><br></span></div><div><span style=3D"font-family:arial,helvetica,sans-ser=
if">Best regards,</span></div><div><span style=3D"font-family:arial,helveti=
ca,sans-serif">Dmitry</span></div></div>

------=_Part_7319_1933088850.1422964023354--

------=_Part_7318_1866753239.1422964023354
Content-Type: application/x-gzip; name=test-cvs-repo.tgz
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i5p3gxoe1
Content-Disposition: attachment; filename=test-cvs-repo.tgz

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
3M5rqmviQjnt5nYWpLtey3vSF4fpVxu6cyH1uq3hqV8cs99IvXJJ6kipbx+7O9c1daakt4/evNMl
SvfiwP1qurTTseQXz/yvpoNYPjgvDtGvpsNh2bcaPOmLI+mrh2XnQuqTC8bbB5SpDe6rek/94rj6
ZurOqdeNEk99++jauTz1kNEVbx9dOxdSZ818++C6puLEdArHFwfYtxNHOoR6BG+fI6+pODG3+Pbp
5prqmpgQK94+8gLSrSsLz3n7wLum8sTSs+n2YXdNxYmpZ9Ptg+6aaiWORJzpZuSMA+lOPZtuHmY7
FSfmDrh5lO1USKyDId08ynYqTswtvnmU7VTXxIz1N89qcXN9JP5ON4+t2JBu3UvznDePrZ2KE1N/
5pvH1k51TUwom29mxFiR7kERMd88ie1U18TEsvnm67m4WTYSuuUXB9NX0210i4Ru+WYSjBvdIh/o
m0kw4hjz8bh9zOBQ0HyUbx8zAekelNZebuJXT5lrqpXYyN3zzZdptt3dyHnKi6Pvq+m28xhf+d88
8Gw7j9E4LjdPZbbHsdFwKzcPNytI9yC2WG6ev66ZKC2NlXLz7HXNdE1L5lBuHn6Wke5Bzu9y8/l9
zURpWfzN902uma5pycrK7aNmW5lRC+vtowati9qX9WYSvGa6puWUt48eT3dq5c0ceM10TUvGW2+e
tGwbL9ljvXnO2u54ff7hGW/mvWumlZY8t948c23L7Sc8rzePmM50TkZebx4w28ebnjntZsxrdOLQ
3NBunmr21EAzQ7t5qOyJgZy23TzN4AYaJbt5eOD22elA3H77gQ5EUstut996IMdej7Y86e23HWYi
T5r/q5ICkynh7eC43XAl+z8ffn5//9uf33z+w/9+//Hdh4//8b9+/tN//L8fH97+8Y8zzYePH54+
vPn557/ev3n37tK6S471SOveX51LD3c3u+luzel0uX2OZ8M/nS43X0za9XT54R9//uv/PL1/fPrN
b5+ePrz9zd+sRgjzi2fr3zUf/7aQw/y/r39+sJhrtuOT8PWHYLkk++G+/M1aRH/+9Pj05vP9/Q/v
Lufe579++v3Xfvfbyw8+fnh8+vzm6dPnx79Hy/4uf+bx/78Ow/kff/5b1TgOcM35y8ff4uXvdR//
WlM4jn+18sN9+Fs1iP/8Nz/+P71/8+76HtKbt2/fPz6+ultTy6O/nh3mlzzs2c4/YX7Lw57t/BOC
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
lWgnPZ2StzP+Q5Sscmxf9NBvZY2UNXHW2yl/Znp998M//vz/9M/T+8en3/zfxxD9H3/+W9UIYW6K
Nf/d6vz38aHL+X/PL7m19MPxsYp8fDY0XeLH0vn4w334WzWI//zp8enN5/v7H95dBsDnv376/dd+
99vLDz5+eHz6/Obp0+fHv0fL/i5/fnr/5t16vPzm7dv3j4+v7pYXP/oChvU58TEXUPDCivU58RXn
5Vfrc+LXeOV48njmePZ45HjxuNStOy77B6/Phl/jUrd7XOoOj3NdCx7nuga9sonw+jz4Nc51LXmc
61r2uNQtHpe6rrdJXdfbpK7rbVLX9fLyrPV58Guc60bXy0u01ufBr3GuG10vL9Nanwe/xqWu661S
1/UWqeu6itR1Xbxga30G/Brnusl18aKt9RnwFedlW+tz39c4102uN0td15WlruvKUtePY5K6rjdJ
XdfLi7jW576vca6bXS8v5Fqf+15xXsq1Pvd9jXPd7P0Qpa7rjVLX9Uap63pN6rpek7qul5dwrc99
X+Nct7he8aviesWviusVvyquV/yquF7xq+J6xa8K9MpOMOtz39e41B0e57o1eJzrVvM4163QKzvB
rM99X+Nct2aPS93icalbPS51Xa/4T3W94lfV9Yq/NdcrftVcr/hVc73iV831il811yt+1Vyv+FVz
veJXzfWKXzXXK37VXK/4VXdd4lfddYlfddclftVdl/hVd13iV911iV911yV+1V2X+FV3XeJXw4+j
+NVwveJXw/WKXw3XK341XK/41XC94lfD9YpfDdcrfjVcr/jVcL3sV+a8JNu+mPOSbPtizkuy7Ys5
L8m2L+a8JNsWm/OS7FtszkuycbE5L8nOxea8JFsXm/OSbPtizkuyebE5L8nuxea8JNsXm/OSbPti
zkuygbE5L8kOxua8JO8rmvOS7GFszkuyW7E5L8l2xea8JPsVm/OSbFhszkuySbI5L8mWxea8JHsW
m/OSbFpszkuyI/L6WPc1LnVdb5G6rpf9ypyjZENjc16SHY3NuUi2NDbnKNnT2JyXZFNjc16SXY3N
eUm2NTbnJdnX2JyXZGNjc16SnY3NeUleWDTnJXm/0ZyX5JVFc16SdxbNeUleWjTnJXlr0ZyX5LVF
c16SV5TMeUneUTLnInkdyZyL5H0kcy6Sl3HMuUjexjHnInkdx5yL5H0ccy6SF3LMuUjeyDHnH3kl
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
2rJU29rYXEfa2uQV3rS1sbmOtLWxuY60tcn7u2lrS1Lt0GYnGx1pa0vShq1Nf7u1ySfl0tYmL/Tm
rY1tceStjW1x5K2NbXFkkCZXy7Aaqba1ScsyjEbasLXJT32C4KibDEULTkkO4qhxEMIoOKdUO/fX
RBY799dEFjv3V4FaaVa9RqW/JrLYub8mnNi5Zyac2LkTJpzYuRNqvEa5WN0iuFbdGqQUJLy6+/nT
298/vrp/fPr84e3Tq7u3n/7wh/cfn358/Zvf3L9+dXd3Zw/j7t2bp/c/xmBHKx7imP88/vfqxzd/
evrp0+f79a9yCTw+XX57/7u//PHV3b9/fvPx7U/vH1/dfXz/l6cf7aG/OtJ1TWfl0jkP4XKkxjmd
fTtdm+mapgv9chH0kNLlSJ7S5RfS1ZmuUrowZuvaJdfFqM7pXhBbZrqy013addGY7GjdJd2zvsv9
i+nujkzHFwyOby/Mv/aAvw78tYWMv+b4YGhFnq3IaEWbHTRF5UtznnV5/Gor8sPRCCROM3FC4kv9
OA9nfgjlMrhOie3LnX8kPvrjKm+tJrj+NR85US/OehH1LhA0j0uMlxngYuGneunrQuKBOJTZZmbj
zPk4JY9euoyRc+aSvpr5+omM41/R+2qdB9djqCPpGOsPsT0/G2L51sm1M85TgU7XNo9BPQ6upe87
v04Zx7OMRxvHca6UfkvGdWJKxnT55+WgXcZWuynjcX7rIL2ku5zV+XJuPxtV3xyka2w88IE5hmma
J3F/KO0CLeejn19MuM/nnbHOYXHInYbybMi9fKj3sKCMcZ6eF1u6jJPzof52xp0uUurI/jBmY+Ph
88+G1XccoevA5YzT4Y+k+QuN/fJApcYe6SKljpr6MtJCmPPH+XT6vtSJUidOXed5dSxxvxjCL0q9
rGrZzDODjNdh9X0GyRmXvdCZX+bozHNiKecjNb4jX6zqe/Uwo8uJdQzO73RUT3j37v3j27vXr6/M
8POn/7h7ffnHvVl7ffd0+dHd63/76cPj/fHX+/9883j/85vHp/vH9+8/3n/4eP+vv/vtv9z/0+f3
f/7w+OHTx/tLhn++W6k6p+o71Tu7t7s3xz++kZTS9Wu2RtlCuTVbu2arnO3mttVrtsJKx63Zys52
nXKQM76Y8oC/D09P79+dU15T7cTLg0n6r8i8ciHz9A7qhvArMs9c6Iw5t1Fm+xW9MXMhc9fM8Ve0
eeVamTPnfLG1Xzsd8s72oGeDxXhrM6+pVt7kKXO7tZFpJ7tOHtTKdGsrdy7OHDlz/nWZo2ROnPlF
X/l2Zu+NNe9T5np75pWLM0tvvHjsvp3ZeyPqedZ+ReJI5xk31l48Kb52ou1m7tn5F5y7X2vmTrUS
y9G6eUZAtgf7r+nLlWgnjXqEbvara6bXdz/8488//vzjzz/+/OPPP/78488//vx3/PP/Ad+dgoIA
4AEA
------=_Part_7318_1866753239.1422964023354
Content-Type: application/octet-stream; 
	name=0001-Fixed-branch-changeset-splitting-on-pass-11.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i5p3hhx11
Content-Disposition: attachment; 
	filename=0001-Fixed-branch-changeset-splitting-on-pass-11.patch

RnJvbSBkZDRlNzUwNzJkZGUwYmQwMGZiZjE5OWJhNzcxMTZhN2VmYjVkODFmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cnkgT2tzZW5jaHVrIDxva3NlbmNodWtAeWFuZGV4LnJ1
PgpEYXRlOiBGcmksIDMwIEphbiAyMDE1IDE5OjQ3OjQ1ICswMzAwClN1YmplY3Q6IFtQQVRDSF0g
Rml4ZWQgYnJhbmNoIGNoYW5nZXNldCBzcGxpdHRpbmcgb24gcGFzcyAxMQoKVGhlcmUgYXJlIDIg
dHlwZXMgb2YgY2hhbmdlc2V0cyBpbiBTVk46IHJldmlzaW9uIGNoYW5nZXNldCAobW9kaWZpZXMg
ZmlsZXMpIGFuZCBicmFuY2ggY2hhbmdlc2V0IChpbiBTVk4gY29waWVzIGZpbGVzIHRvIGJyYW5j
aCkKClN1cHBvc2Ugd2UgaGF2ZSA0IGNoYW5nZXNldHMgZnJvbSB0aGUgaGlzdG9yeTogVDEgQjEg
VDIgQjIKVDEsIFQyIC0gcmV2aXNpb24gY2hhbmdlc2V0cyBpbiB0cnVuawpCMSAtIHJldmlzaW9u
IGNoYW5nZXNldCB0aGF0IGFkZHMgZmlsZXMgKGZpcnN0IGNoYW5nZXNldCBpbiBicmFuY2gpCkIy
IC0gYnJhbmNoIGNoYW5nZXNldCBkZXBlbmRlbnQgb24gYWRkZWQgZmlsZXMgaW4gVDIgKHByb2Jh
Ymx5IENWUyBidWcpCgpPbiBwYXNzIDcgY3ZzMnN2biBncm91cHMgYWxsIHRoZSBmaWxlcyBpbnRv
IG9uZSBicmFuY2ggY2hhbmdlc2V0IEIyIGRlcGVuZGVudCBvbiBUMSAoc29tZSBmaWxlcykgYW5k
IFQyIChvdGhlciBmaWxlcykuIFRoZW4gb24gcGFzcyAxMSBpdCBjb3VsZCBzcGxpdCB0aGUgYmln
IGNoYW5nZXNldCBpbnRvIEIwIChkZXBlbmRlbnQgb24gVDEpIGFuZCBCMiogKGRlcGVuZGVudCBv
biBUMikgaWYgc29tZSBvZiB0aGUgZmlsZXMgaW4gQjEgZGVwZW5kZWQgb24gVDEuIEJ1dCBCMSBj
b250YWlucyBvbmx5IGZpbGUgYWRkaXRpb25zIGFuZCBkb2Vzbid0IGRlcGVuZCBvbiBhbnkgb3Ro
ZXIgY2hhbmdlc2V0LiBXb3JraW5nIGNvcHkgYXQgQjEgaW4gY29udmVydGVkIHJlcG9zaXRvcnkg
Y29udGFpbnMgb25seSBhZGRlZCBmaWxlcyBpbiBzcGl0ZSBvZiBtYW55IGJyYW5jaCBwb2ludHMg
YXQgVDEuIFRoaXMgY3JlYXRlcyBhZGRpdGlvbmFsIHJvb3QgaW4gR2l0IGFuZCB2aW9sYXRlcyBw
cmluY2lwbGUgInNhbWUgYnJhbmNoIGNvbnRlbnQgaW4gY29udmVydGVkIHJlcG9zaXRvcnkiLgoK
VGhlIGZpeCBzcGxpdHMgdGhlIGJpZyBicmFuY2ggY2hhbmdlc2V0IChCMikgaWYgdGhlIGZpcnN0
IHJldmlzaW9uIGNoYW5nZXNldCBpbiB0aGUgYnJhbmNoIChCMSkgaXMgYmV0d2VlbiBkZXBlbmRl
bnQgY2hhbmdlc2V0cyAoVDEgYW5kIFQyKS4gQWRkaXRpb25hbCByZXZpc2lvbiBCMCBpcyBpZ25v
cmVkIG9uIHRoZSBvdXRwdXQgcGFzcyAxNiAoc2ltcGxlIGNvcHkgZnJvbSBUcnVuaykuCi0tLQog
Y3ZzMnN2bl9saWIvY2hhbmdlc2V0LnB5IHwgIDggKysrKysrKysKIGN2czJzdm5fbGliL3Bhc3Nl
cy5weSAgICB8IDI5ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNoYW5n
ZWQsIDI5IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY3ZzMnN2
bl9saWIvY2hhbmdlc2V0LnB5IGIvY3ZzMnN2bl9saWIvY2hhbmdlc2V0LnB5CmluZGV4IDEwMjJl
MGEuLjlkNzU1ZGUgMTAwNjQ0Ci0tLSBhL2N2czJzdm5fbGliL2NoYW5nZXNldC5weQorKysgYi9j
dnMyc3ZuX2xpYi9jaGFuZ2VzZXQucHkKQEAgLTE0Myw2ICsxNDMsMTQgQEAgY2xhc3MgT3JkZXJl
ZENoYW5nZXNldChDaGFuZ2VzZXQpOgogICAgICAgcmV0dmFsLmFkZChjdnNfaXRlbS5jdnNfZmls
ZS5wcm9qZWN0KQogICAgIHJldHVybiByZXR2YWwKIAorICBkZWYgZ2V0X2xvZF9pZChzZWxmKToK
KyAgICBsb2RfaWQgPSBOb25lCisgICAgZm9yIGN2c19pdGVtIGluIHNlbGYuaXRlcl9jdnNfaXRl
bXMoKToKKyAgICAgIGlmIGxvZF9pZCBpcyBOb25lOgorICAgICAgICBsb2RfaWQgPSBjdnNfaXRl
bS5sb2QuaWQKKyAgICAgIGFzc2VydCBsb2RfaWQgPT0gY3ZzX2l0ZW0ubG9kLmlkCisgICAgcmV0
dXJuIGxvZF9pZAorCiAgIGRlZiBjcmVhdGVfZ3JhcGhfbm9kZShzZWxmLCBjdnNfaXRlbV90b19j
aGFuZ2VzZXRfaWQpOgogICAgIHRpbWVfcmFuZ2UgPSBUaW1lUmFuZ2UoKQogCmRpZmYgLS1naXQg
YS9jdnMyc3ZuX2xpYi9wYXNzZXMucHkgYi9jdnMyc3ZuX2xpYi9wYXNzZXMucHkKaW5kZXggMjgy
Y2VjOS4uNzVmMDdjZCAxMDA2NDQKLS0tIGEvY3ZzMnN2bl9saWIvcGFzc2VzLnB5CisrKyBiL2N2
czJzdm5fbGliL3Bhc3Nlcy5weQpAQCAtMTIyMiw2ICsxMjIyLDggQEAgY2xhc3MgQnJlYWtBbGxD
aGFuZ2VzZXRDeWNsZXNQYXNzKFBhc3MpOgogCiAgICAgc2VsZi5jaGFuZ2VzZXRfZ3JhcGguZGVs
ZXRlX2NoYW5nZXNldChjaGFuZ2VzZXQpCiAKKyAgICBmaXJzdF9sb2Rfb3JkaW5hbCA9IHNlbGYu
Zmlyc3RfbG9kX29yZGluYWxbY2hhbmdlc2V0LnN5bWJvbC5pZF0KKwogICAgICMgQSBtYXAgeyBj
dnNfYnJhbmNoX2lkIDogKG1heF9wcmVkX29yZGluYWwsIG1pbl9zdWNjX29yZGluYWwpIH0KICAg
ICBvcmRpbmFsX2xpbWl0cyA9IHt9CiAgICAgZm9yIGN2c19icmFuY2ggaW4gY2hhbmdlc2V0Lml0
ZXJfY3ZzX2l0ZW1zKCk6CkBAIC0xMjM4LDYgKzEyNDAsOSBAQCBjbGFzcyBCcmVha0FsbENoYW5n
ZXNldEN5Y2xlc1Bhc3MoUGFzcyk6CiAgICAgICAgICAgICBzZWxmLmN2c19pdGVtX3RvX2NoYW5n
ZXNldF9pZFtzdWNjX2lkXSwgc3lzLm1heGludCkKICAgICAgICAgbWluX3N1Y2Nfb3JkaW5hbCA9
IG1pbihtaW5fc3VjY19vcmRpbmFsLCBzdWNjX29yZGluYWwpCiAKKyAgICAgIGlmIG1heF9wcmVk
X29yZGluYWwgPCBmaXJzdF9sb2Rfb3JkaW5hbDoKKyAgICAgICAgbWluX3N1Y2Nfb3JkaW5hbCA9
IG1pbihtaW5fc3VjY19vcmRpbmFsLCBmaXJzdF9sb2Rfb3JkaW5hbCkKKwogICAgICAgYXNzZXJ0
IG1heF9wcmVkX29yZGluYWwgPCBtaW5fc3VjY19vcmRpbmFsCiAgICAgICBvcmRpbmFsX2xpbWl0
c1tjdnNfYnJhbmNoLmlkXSA9IChtYXhfcHJlZF9vcmRpbmFsLCBtaW5fc3VjY19vcmRpbmFsLCkK
IApAQCAtMTI4MCwxOSArMTI4NSwyMiBAQCBjbGFzcyBCcmVha0FsbENoYW5nZXNldEN5Y2xlc1Bh
c3MoUGFzcyk6CiAgICAgICAgIGZvciBpZCBpbiBub2RlLnByZWRfaWRzCiAgICAgICAgIGlmIGlk
IGluIHNlbGYub3JkaW5hbHMKICAgICAgICAgXQotICAgIHByZWRfb3JkaW5hbHMuc29ydCgpCiAg
ICAgc3VjY19vcmRpbmFscyA9IFsKICAgICAgICAgc2VsZi5vcmRpbmFsc1tpZF0KICAgICAgICAg
Zm9yIGlkIGluIG5vZGUuc3VjY19pZHMKICAgICAgICAgaWYgaWQgaW4gc2VsZi5vcmRpbmFscwog
ICAgICAgICBdCi0gICAgc3VjY19vcmRpbmFscy5zb3J0KCkKLSAgICBpZiBwcmVkX29yZGluYWxz
IGFuZCBzdWNjX29yZGluYWxzIFwKLSAgICAgICAgICAgYW5kIHByZWRfb3JkaW5hbHNbLTFdID49
IHN1Y2Nfb3JkaW5hbHNbMF06Ci0gICAgICBzZWxmLl9zcGxpdF9yZXRyb2dyYWRlX2NoYW5nZXNl
dChzZWxmLmNoYW5nZXNldF9kYltub2RlLmlkXSkKLSAgICAgIHJldHVybiBUcnVlCi0gICAgZWxz
ZToKLSAgICAgIHJldHVybiBGYWxzZQorICAgIGlmIHByZWRfb3JkaW5hbHMgYW5kIHN1Y2Nfb3Jk
aW5hbHM6CisgICAgICBwcmVkX29yZGluYWxzLnNvcnQoKQorICAgICAgY2hhbmdlc2V0ID0gc2Vs
Zi5jaGFuZ2VzZXRfZGJbbm9kZS5pZF0KKyAgICAgIGZpcnN0X2xvZF9vcmRpbmFsID0gc2VsZi5m
aXJzdF9sb2Rfb3JkaW5hbC5nZXQoY2hhbmdlc2V0LnN5bWJvbC5pZCwgTm9uZSkKKyAgICAgIGlm
IGZpcnN0X2xvZF9vcmRpbmFsIGlzIG5vdCBOb25lIGFuZCBwcmVkX29yZGluYWxzWzBdIDwgZmly
c3RfbG9kX29yZGluYWw6CisgICAgICAgIHN1Y2Nfb3JkaW5hbHMuYXBwZW5kKGZpcnN0X2xvZF9v
cmRpbmFsKQorICAgICAgc3VjY19vcmRpbmFscy5zb3J0KCkKKyAgICAgIGlmIHByZWRfb3JkaW5h
bHNbLTFdID49IHN1Y2Nfb3JkaW5hbHNbMF06CisgICAgICAgIHNlbGYuX3NwbGl0X3JldHJvZ3Jh
ZGVfY2hhbmdlc2V0KGNoYW5nZXNldCkKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4g
RmFsc2UKIAogICBkZWYgYnJlYWtfc2VnbWVudChzZWxmLCBzZWdtZW50KToKICAgICAiIiJCcmVh
ayBhIGNoYW5nZXNldCBpbiBTRUdNRU5UWzE6LTFdLgpAQCAtMTM4NCwxMiArMTM5MiwxNyBAQCBj
bGFzcyBCcmVha0FsbENoYW5nZXNldEN5Y2xlc1Bhc3MoUGFzcyk6CiAgICAgIyBBIGxpc3Qgb2Yg
YWxsIEJyYW5jaENoYW5nZXNldCBpZHM6CiAgICAgYnJhbmNoX2NoYW5nZXNldF9pZHMgPSBbXQog
ICAgIG1heF9jaGFuZ2VzZXRfaWQgPSAwCisgICAgIyBBIG1hcCB7bG9kX2lkIDogb3JkaW5hbH0K
KyAgICBzZWxmLmZpcnN0X2xvZF9vcmRpbmFsID0ge30KICAgICBmb3IgY2hhbmdlc2V0IGluIHNl
bGYuZ2V0X3NvdXJjZV9jaGFuZ2VzZXRzKCk6CiAgICAgICBzZWxmLmNoYW5nZXNldF9kYi5zdG9y
ZShjaGFuZ2VzZXQpCiAgICAgICBzZWxmLmNoYW5nZXNldF9ncmFwaC5hZGRfY2hhbmdlc2V0KGNo
YW5nZXNldCkKICAgICAgIGlmIGlzaW5zdGFuY2UoY2hhbmdlc2V0LCBPcmRlcmVkQ2hhbmdlc2V0
KToKICAgICAgICAgb3JkZXJlZF9jaGFuZ2VzZXRfbWFwW2NoYW5nZXNldC5vcmRpbmFsXSA9IGNo
YW5nZXNldC5pZAogICAgICAgICBzZWxmLm9yZGluYWxzW2NoYW5nZXNldC5pZF0gPSBjaGFuZ2Vz
ZXQub3JkaW5hbAorICAgICAgICBsb2RfaWQgPSBjaGFuZ2VzZXQuZ2V0X2xvZF9pZCgpCisgICAg
ICAgIHNlbGYuZmlyc3RfbG9kX29yZGluYWxbbG9kX2lkXSA9IG1pbihjaGFuZ2VzZXQub3JkaW5h
bCwKKyAgICAgICAgICAgICBzZWxmLmZpcnN0X2xvZF9vcmRpbmFsLmdldChsb2RfaWQsIHN5cy5t
YXhpbnQpKQogICAgICAgZWxpZiBpc2luc3RhbmNlKGNoYW5nZXNldCwgQnJhbmNoQ2hhbmdlc2V0
KToKICAgICAgICAgYnJhbmNoX2NoYW5nZXNldF9pZHMuYXBwZW5kKGNoYW5nZXNldC5pZCkKICAg
ICAgIG1heF9jaGFuZ2VzZXRfaWQgPSBtYXgobWF4X2NoYW5nZXNldF9pZCwgY2hhbmdlc2V0Lmlk
KQotLSAKMS45LjUubXN5c2dpdC4wCgo=
------=_Part_7318_1866753239.1422964023354--