Patches leading towards being able to run GIFT on a modern machine

Sarah Kate <[email protected]> Fri, 7 Oct 2022 16:06:17 -0400
Newsgroups gmane.comp.gnu.gift.general
Message-ID <CANwV=5KMWhUiph=YZ=pof3JJesj927+gaBPE7JCozXbbp9G88g@mail.gmail.com>
--000000000000659d0a05ea7759d7
Content-Type: multipart/alternative; boundary="000000000000659d0905ea7759d5"

--000000000000659d0905ea7759d5
Content-Type: text/plain; charset="UTF-8"

Hello,

Here are 2 patches that help towards being able to run GIFT on a modern
machine.
(Debian 11, g++ 10.2.1)

- modern-cpp.patch allows for compilation
- fix-undefined-behavior-when-writing-errors.patch stops undefined behavior
when GIFT wants to write error messages. It was writing "\n" to console on
an infinite loop for me.

Please consider applying them.

Thanks,
Sarah

--000000000000659d0905ea7759d5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hello,</div><div><br></div><div>Here are 2 patches th=
at help towards being able to run GIFT on a modern machine.</div><div>(Debi=
an 11, g++ 10.2.1)</div><div><br></div><div>- modern-cpp.patch allows for c=
ompilation<br></div><div>- fix-undefined-behavior-when-writing-errors.patch=
 stops undefined behavior when GIFT wants to write error messages. It was w=
riting &quot;\n&quot; to console on an infinite loop for me.<br></div><div>=
<br></div><div>Please consider applying them.</div><div><br></div><div>Than=
ks,</div><div>Sarah<br></div></div>

--000000000000659d0905ea7759d5--

--000000000000659d0a05ea7759d7
Content-Type: text/x-patch; charset="US-ASCII"; name="modern-cpp.patch"
Content-Disposition: attachment; filename="modern-cpp.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_l8ywtrz20>
X-Attachment-Id: f_l8ywtrz20

Y29tbWl0IDkyODAxYTdjNTUwOTc3Yjg3N2Q1NzYwNDc5ODFiZTU4NGE2MzEzYTYKQXV0aG9yOiBT
YXJhaCBLYXRlIDxuZXRjYXRrYXRlQGdtYWlsLmNvbT4KRGF0ZTogICBUaHUgT2N0IDYgMjE6MzM6
MjIgMjAyMiAtMDQwMAoKICAgIEdldCBpdCB0byBidWlsZCB3aXRoIG1vZGVybiBDKysgY29tcGls
ZXIKCmRpZmYgLS1naXQgYS9saWJHSUZUQWNEaXN0YW5jZU1hdHJpeC9pbmNsdWRlL0NQZXJzaXN0
ZW50TWF0cml4LmggYi9saWJHSUZUQWNEaXN0YW5jZU1hdHJpeC9pbmNsdWRlL0NQZXJzaXN0ZW50
TWF0cml4LmgKaW5kZXggNjdjZGVmYS4uMDQ3NzEyZSAxMDA2NDQKLS0tIGEvbGliR0lGVEFjRGlz
dGFuY2VNYXRyaXgvaW5jbHVkZS9DUGVyc2lzdGVudE1hdHJpeC5oCisrKyBiL2xpYkdJRlRBY0Rp
c3RhbmNlTWF0cml4L2luY2x1ZGUvQ1BlcnNpc3RlbnRNYXRyaXguaApAQCAtNzUsNyArNzUsNyBA
QCBDUGVyc2lzdGVudE1hdHJpeDxUPjo6Q1BlcnNpc3RlbnRNYXRyaXgobG9uZyBpblhTaXplLAog
CiB0ZW1wbGF0ZTxjbGFzcyBUPgogYm9vbCBDUGVyc2lzdGVudE1hdHJpeDxUPjo6Y3JlYXRlKGNo
YXIgY29uc3QqIGluRmlsZU5hbWUpY29uc3R7Ci0gIGZzdHJlYW0qIGxGaWxlPW5ldyBmc3RyZWFt
KGluRmlsZU5hbWUsZnN0cmVhbTo6b3V0K2ZzdHJlYW06OmluKTsKKyAgZnN0cmVhbSogbEZpbGU9
bmV3IGZzdHJlYW0oaW5GaWxlTmFtZSxmc3RyZWFtOjpvdXQgfCBmc3RyZWFtOjppbik7CiAgIENQ
ZXJzaXN0ZW50VmVjdG9yPFQ+IGxMaW5lKG1YU2l6ZSk7CiAgIGlmKGxGaWxlKXsKICAgICBmb3Io
bG9uZyBpPTA7CkBAIC0yMDIsNyArMjAyLDcgQEAgYm9vbCBDUGVyc2lzdGVudE1hdHJpeDxUPjo6
c2V0VmFsdWUobG9uZyBpblgsCiAKICAgbUNvbnRlbnQtPmZsdXNoKCk7CiAKLSAgcmV0dXJuICgq
bUNvbnRlbnQpOworICByZXR1cm4gISEoKm1Db250ZW50KTsKIH0KIAogLy8vCmRpZmYgLS1naXQg
YS9saWJHSUZUQWNEaXN0YW5jZU1hdHJpeC9pbmNsdWRlL0NQZXJzaXN0ZW50VmVjdG9yLmggYi9s
aWJHSUZUQWNEaXN0YW5jZU1hdHJpeC9pbmNsdWRlL0NQZXJzaXN0ZW50VmVjdG9yLmgKaW5kZXgg
YmEyYmZhNi4uMWZiMGJkYyAxMDA2NDQKLS0tIGEvbGliR0lGVEFjRGlzdGFuY2VNYXRyaXgvaW5j
bHVkZS9DUGVyc2lzdGVudFZlY3Rvci5oCisrKyBiL2xpYkdJRlRBY0Rpc3RhbmNlTWF0cml4L2lu
Y2x1ZGUvQ1BlcnNpc3RlbnRWZWN0b3IuaApAQCAtMTEwLDEwICsxMTAsMTAgQEAgYm9vbCBDUGVy
c2lzdGVudFZlY3RvcjxUPjo6cmVhZChpc3RyZWFtJiBpblN0cmVhbSwKIAogICAgIGFzc2VydChs
VG9CZVJlYWQ+PTAgJiYgbFRvQmVSZWFkPD0xKTsKIAotICAgIHB1c2hfYmFjayhsVG9CZVJlYWQp
OworICAgIHZlY3RvcjxUPjo6cHVzaF9iYWNrKGxUb0JlUmVhZCk7CiAgIH0KICAgbUxlbmd0aD1p
bkxlbmd0aDsKLSAgcmV0dXJuIGluU3RyZWFtOworICByZXR1cm4gISFpblN0cmVhbTsKIH0KIAog
dGVtcGxhdGU8Y2xhc3MgVD4KQEAgLTEyNSw3ICsxMjUsNyBAQCBib29sIENQZXJzaXN0ZW50VmVj
dG9yPFQ+Ojp3cml0ZShvc3RyZWFtJiBvdXRTdHJlYW0pY29uc3R7CiAJCSAgKmkpOwogICB9CiAg
IG91dFN0cmVhbSA8PCBmbHVzaDsKLSAgcmV0dXJuIG91dFN0cmVhbTsKKyAgcmV0dXJuICEhb3V0
U3RyZWFtOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYkdJRlRBY0ludmVydGVkRmlsZS9j
Yy9DQWNJRkZpbGVTeXN0ZW0uY2MgYi9saWJHSUZUQWNJbnZlcnRlZEZpbGUvY2MvQ0FjSUZGaWxl
U3lzdGVtLmNjCmluZGV4IDRjOGQ1ZTUuLmE3ZGVkMTggMTAwNjQ0Ci0tLSBhL2xpYkdJRlRBY0lu
dmVydGVkRmlsZS9jYy9DQWNJRkZpbGVTeXN0ZW0uY2MKKysrIGIvbGliR0lGVEFjSW52ZXJ0ZWRG
aWxlL2NjL0NBY0lGRmlsZVN5c3RlbS5jYwpAQCAtNjAxLDcgKzYwMSw3IEBAIGJvb2wgQ0FjSUZG
aWxlU3lzdGVtOjpuZXdHZW5lcmF0ZUludmVydGVkRmlsZSgpewogICBpZnN0cmVhbSBsSW5BdXhp
bGlhcnlGaWxlKGxMYXN0RmlsZVVzZWQuY19zdHIoKSk7CiAKICAgY291dCA8PCAiT3BlbmluZyBz
b3J0ZWQgc3RyZWFtIGZvciByZWFkaW5nLiBTdGF0ZSAoc2hvdWxkIGJlICcxJyk6ICIKLSAgICAg
ICA8PCBsSW5BdXhpbGlhcnlGaWxlCisgICAgICAgPDwgISFsSW5BdXhpbGlhcnlGaWxlCiAgICAg
ICAgPDwgZW5kbDsKICAgCiAgIGlmKGxJbkF1eGlsaWFyeUZpbGUpewpkaWZmIC0tZ2l0IGEvbGli
R0lGVEFjSW52ZXJ0ZWRGaWxlL2NjL0NBZGRpdGlvbmFsRG9jdW1lbnRJbmZvcm1hdGlvbi5jYyBi
L2xpYkdJRlRBY0ludmVydGVkRmlsZS9jYy9DQWRkaXRpb25hbERvY3VtZW50SW5mb3JtYXRpb24u
Y2MKaW5kZXggM2EwMzM2ZS4uMmEzZDhhMyAxMDA2NDQKLS0tIGEvbGliR0lGVEFjSW52ZXJ0ZWRG
aWxlL2NjL0NBZGRpdGlvbmFsRG9jdW1lbnRJbmZvcm1hdGlvbi5jYworKysgYi9saWJHSUZUQWNJ
bnZlcnRlZEZpbGUvY2MvQ0FkZGl0aW9uYWxEb2N1bWVudEluZm9ybWF0aW9uLmNjCkBAIC0yNjcs
NyArMjY3LDcgQEAgYm9vbCBDQWRkaXRpb25hbERvY3VtZW50SW5mb3JtYXRpb246Om91dHB1dChv
c3RyZWFtJiBvdXRTdHJlYW0pY29uc3R7CiAJICAgIDw8IG1ERlNxdWFyZVN1bQogCSAgICA8PCAi
ICIgCiAJICAgIDw8IG1TcXVhcmVERkxvZ0lDRlN1bTsKLSByZXR1cm4gb3V0U3RyZWFtOworIHJl
dHVybiAhIW91dFN0cmVhbTsKIH07CiAKIApAQCAtMjk5LDcgKzI5OSw3IEBAIGJvb2wgQ0FkZGl0
aW9uYWxEb2N1bWVudEluZm9ybWF0aW9uOjppbnB1dChpc3RyZWFtJiBpblN0cmVhbSl7CiAgICAg
ICAgPDwgZmx1c2ggCiAgICAgICAgPDwgZW5kbDsKICNlbmRpZgotICByZXR1cm4gaW5TdHJlYW07
CisgIHJldHVybiAhIWluU3RyZWFtOwogfTsKIAogCmRpZmYgLS1naXQgYS9saWJHSUZUQWNJbnZl
cnRlZEZpbGUvY2MvQ0RvY3VtZW50RnJlcXVlbmN5RWxlbWVudC5jYyBiL2xpYkdJRlRBY0ludmVy
dGVkRmlsZS9jYy9DRG9jdW1lbnRGcmVxdWVuY3lFbGVtZW50LmNjCmluZGV4IDg0ZjEzZGIuLjg0
NTY5YzggMTAwNjQ0Ci0tLSBhL2xpYkdJRlRBY0ludmVydGVkRmlsZS9jYy9DRG9jdW1lbnRGcmVx
dWVuY3lFbGVtZW50LmNjCisrKyBiL2xpYkdJRlRBY0ludmVydGVkRmlsZS9jYy9DRG9jdW1lbnRG
cmVxdWVuY3lFbGVtZW50LmNjCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyB1bnNpZ25lZCBjb25z
dCBpbnQgc0ZSRVFfTUFYPShGUkVRX01BWCk7CiBib29sIENEb2N1bWVudEZyZXF1ZW5jeUVsZW1l
bnQ6OmlucHV0KGlzdHJlYW0mIGluU3RyZWFtKXsKICAgaW5TdHJlYW0gPj4gbUNvbnRlbnQubUlE
IAogCSAgID4+IG1Db250ZW50Lm1Eb2N1bWVudEZyZXF1ZW5jeTsKLSAgcmV0dXJuIGluU3RyZWFt
OworICByZXR1cm4gISFpblN0cmVhbTsKIH07CiAKIApAQCAtODcsNyArODcsNyBAQCBib29sIENE
b2N1bWVudEZyZXF1ZW5jeUVsZW1lbnQ6Om91dHB1dChvc3RyZWFtJiBvdXRTdHJlYW0pY29uc3R7
CiAJICAgIDw8ICIgIiAKIAkgICAgPDwgbUNvbnRlbnQubURvY3VtZW50RnJlcXVlbmN5CiAJICAg
IDw8IGVuZGw7Ci0gIHJldHVybiBvdXRTdHJlYW07CisgIHJldHVybiAhIW91dFN0cmVhbTsKIH07
CiAKIApAQCAtMTI0LDcgKzEyNCw3IEBAIGJvb2wgQ0RvY3VtZW50RnJlcXVlbmN5RWxlbWVudDo6
d3JpdGVCaW5hcnkob3N0cmVhbSYgb3V0U3RyZWFtKWNvbnN0ewogICBvdXRTdHJlYW0ud3JpdGUo
KGNoYXIqKXRoaXMsCiAJCSAgc2l6ZW9mKCp0aGlzKSk7CiAjZW5kaWYKLSAgcmV0dXJuIG91dFN0
cmVhbTsKKyAgcmV0dXJuICEhb3V0U3RyZWFtOwogfTsKIAogCmRpZmYgLS1naXQgYS9saWJHSUZU
QWNVUkwyRlRTL2NjL0NBY1VSTDJGVFMuY2MgYi9saWJHSUZUQWNVUkwyRlRTL2NjL0NBY1VSTDJG
VFMuY2MKaW5kZXggZmQxY2JkNS4uNWQyNDdlMCAxMDA2NDQKLS0tIGEvbGliR0lGVEFjVVJMMkZU
Uy9jYy9DQWNVUkwyRlRTLmNjCisrKyBiL2xpYkdJRlRBY1VSTDJGVFMvY2MvQ0FjVVJMMkZUUy5j
YwpAQCAtMTIwLDcgKzEyMCw3IEBAIENBY1VSTDJGVFM6OkNBY1VSTDJGVFMoY29uc3QgQ1hNTEVs
ZW1lbnQmIGluQ29sbGVjdGlvbkVsZW1lbnQpOgogICAgIGNvdXQgPDwgIiAuLi5zdWNjZXNzLiIg
CiAJIDw8IGVuZGw7CiAgIAotICBtV2VsbENvbnN0cnVjdGVkPW1VUkxUb0ZlYXR1cmVGaWxlOwor
ICBtV2VsbENvbnN0cnVjdGVkPSEhbVVSTFRvRmVhdHVyZUZpbGU7CiAgIAogICBtVVJMVG9GRk4u
Y2xlYXIoKTsKICAgbVVSTFRvSUQuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL2xpYk1STUwvY2MvQ0Fj
Y2Vzc29ySW1wbGVtZW50YXRpb24uY2MgYi9saWJNUk1ML2NjL0NBY2Nlc3NvckltcGxlbWVudGF0
aW9uLmNjCmluZGV4IDAyNDcwOTguLmFiYjZlMzAgMTAwNjQ0Ci0tLSBhL2xpYk1STUwvY2MvQ0Fj
Y2Vzc29ySW1wbGVtZW50YXRpb24uY2MKKysrIGIvbGliTVJNTC9jYy9DQWNjZXNzb3JJbXBsZW1l
bnRhdGlvbi5jYwpAQCAtMzEwLDcgKzMxMCw4IEBAIHBhaXI8Ym9vbCxUSUQ+IENBY2Nlc3Nvcklt
cGxlbWVudGF0aW9uOjpVUkxUb0lEKGNvbnN0IHN0cmluZyYgaW5VUkwpY29uc3QKICAgCiAgIGlm
KGxJIT1tVVJMVG9JRC5lbmQoKSkKICAgICB7Ci0gICAgICByZXR1cm4gbWFrZV9wYWlyPGJvb2ws
VElEPih0cnVlLCgqbEkpLnNlY29uZCk7CisgICAgICBhdXRvIHZhbHVlID0gKCpsSSkuc2Vjb25k
OworICAgICAgcmV0dXJuIG1ha2VfcGFpcjxib29sLFRJRD4odHJ1ZSxtb3ZlKHZhbHVlKSk7CiAg
ICAgfQogICBlbHNlCiAgICAgewo=
--000000000000659d0a05ea7759d7
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="fix-undefined-behavior-when-writing-errors.patch"
Content-Disposition: attachment; 
	filename="fix-undefined-behavior-when-writing-errors.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_l8ywvtuj1>
X-Attachment-Id: f_l8ywvtuj1

Y29tbWl0IGZlODJhOTFmMTlhYTE2YmU3ZmIxZTNjMDE5MDE0Zjg4OWU0NzQzNmQKQXV0aG9yOiBT
YXJhaCBLYXRlIDxuZXRjYXRrYXRlQGdtYWlsLmNvbT4KRGF0ZTogICBGcmkgT2N0IDcgMTU6Mjg6
NDggMjAyMiAtMDQwMAoKICAgIEV4Y2VwdGlvbiBvcGVyYXRvcjw8J3MgbmVlZCB0byByZXR1cm4g
dGhlIG9zdHJlYW0KICAgIAogICAgVGhpcyBtYXkgaGF2ZSB3b3JrZWQgYmVmb3JlLCBidXQgaXQg
d2FzIHVuZGVmaW5lZCBiZWhhdmlvci4KCmRpZmYgLS1naXQgYS9saWJNUk1ML2NjL0dJRlRFeGNl
cHRpb25zLmNjIGIvbGliTVJNTC9jYy9HSUZURXhjZXB0aW9ucy5jYwppbmRleCBkMjIyNWI2Li4x
ZDU0Nzc4IDEwMDY0NAotLS0gYS9saWJNUk1ML2NjL0dJRlRFeGNlcHRpb25zLmNjCisrKyBiL2xp
Yk1STUwvY2MvR0lGVEV4Y2VwdGlvbnMuY2MKQEAgLTQ4LDYgKzQ4LDcgQEAgb3N0cmVhbSYgb3Bl
cmF0b3I8PChvc3RyZWFtJiBvdXRTdHJlYW0sY29uc3QgR0lGVEV4Y2VwdGlvbiYgaW5FeGNlcHRp
b24pewogCSAgICAgIDw8IGluRXhjZXB0aW9uLm1NZXNzYWdlCiAJICAgICAgPDwgZmx1c2gKIAkg
ICAgICA8PCBlbmRsOworICAgIHJldHVybiBvdXRTdHJlYW07CiB9CiAKIHZvaWQgR0lGVEV4Y2Vw
dGlvbjo6ZHVtbXkoKXsvL25lZWRlZCBmb3IgUlRUSS9leGNlcHRpb24gY2F0Y2hpbmcKQEAgLTY3
LDYgKzY4LDcgQEAgb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvdXRTdHJlYW0sY29uc3Qg
VkVQcm9ncmFtbWluZ01pc3Rha2UmIGluRXhjZXB0aW9uKXsKIAkgICAgICA8PCBpbkV4Y2VwdGlv
bi5tTWVzc2FnZQogCSAgICAgIDw8IGZsdXNoCiAJICAgICAgPDwgZW5kbDsKKyAgICByZXR1cm4g
b3V0U3RyZWFtOwogfQogCiBWRU5vdEZvdW5kOjpWRU5vdEZvdW5kKGNvbnN0IGNoYXIqIGluTWVz
c2FnZSk6CkBAIC03OCw2ICs4MCw3IEBAIG9zdHJlYW0mIG9wZXJhdG9yPDwob3N0cmVhbSYgb3V0
U3RyZWFtLGNvbnN0IFZFTm90Rm91bmQmIGluRXhjZXB0aW9uKXsKIAkgICAgICA8PCBpbkV4Y2Vw
dGlvbi5tTWVzc2FnZQogCSAgICAgIDw8IGZsdXNoCiAJICAgICAgPDwgZW5kbDsKKyAgICByZXR1
cm4gb3V0U3RyZWFtOwogfQogCiBWRUJhc2VVbmtub3duOjpWRUJhc2VVbmtub3duKGNvbnN0IGNo
YXIqIGluTWVzc2FnZSk6CkBAIC04OSw2ICs5Miw3IEBAIG9zdHJlYW0mIG9wZXJhdG9yPDwob3N0
cmVhbSYgb3V0U3RyZWFtLGNvbnN0IFZFQmFzZVVua25vd24mIGluRXhjZXB0aW9uKXsKIAkgICAg
ICA8PCBpbkV4Y2VwdGlvbi5tTWVzc2FnZQogCSAgICAgIDw8IGZsdXNoCiAJICAgICAgPDwgZW5k
bDsKKyAgICByZXR1cm4gb3V0U3RyZWFtOwogfQogCiAKQEAgLTEwMSw2ICsxMDUsNyBAQCBvc3Ry
ZWFtJiBvcGVyYXRvcjw8KG9zdHJlYW0mIG91dFN0cmVhbSxjb25zdCBWRURvdWJsZUluc2VydCYg
aW5FeGNlcHRpb24pewogCSAgICAgIDw8IGluRXhjZXB0aW9uLm1NZXNzYWdlCiAJICAgICAgPDwg
Zmx1c2gKIAkgICAgICA8PCBlbmRsOworICAgIHJldHVybiBvdXRTdHJlYW07CiB9CiAKIApAQCAt
MTEzLDYgKzExOCw3IEBAIG9zdHJlYW0mIG9wZXJhdG9yPDwob3N0cmVhbSYgb3V0U3RyZWFtLGNv
bnN0IFZFV3JvbmdBY2Nlc3NvciYgaW5FeGNlcHRpb24pewogCSAgICAgIDw8IGluRXhjZXB0aW9u
Lm1NZXNzYWdlCiAJICAgICAgPDwgZmx1c2gKIAkgICAgICA8PCBlbmRsOworICAgIHJldHVybiBv
dXRTdHJlYW07CiB9CiAKIApAQCAtMTI1LDYgKzEzMSw3IEBAIG9zdHJlYW0mIG9wZXJhdG9yPDwo
b3N0cmVhbSYgb3V0U3RyZWFtLGNvbnN0IFZFV3JvbmdBbGdvcml0aG0mIGluRXhjZXB0aW9uKXsK
IAkgICAgICA8PCBpbkV4Y2VwdGlvbi5tTWVzc2FnZQogCSAgICAgIDw8IGZsdXNoCiAJICAgICAg
PDwgZW5kbDsKKyAgICByZXR1cm4gb3V0U3RyZWFtOwogfQogVkVXcm9uZ0Jhc2VUeXBlOjpWRVdy
b25nQmFzZVR5cGUoY29uc3QgY2hhciogaW5NZXNzYWdlKToKICAgICBHSUZURXhjZXB0aW9uKGlu
TWVzc2FnZSl7CkBAIC0xMzUsNiArMTQyLDcgQEAgb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFt
JiBvdXRTdHJlYW0sY29uc3QgVkVXcm9uZ0Jhc2VUeXBlJiBpbkV4Y2VwdGlvbil7CiAJICAgICAg
PDwgaW5FeGNlcHRpb24ubU1lc3NhZ2UKIAkgICAgICA8PCBmbHVzaAogCSAgICAgIDw8IGVuZGw7
CisgICAgcmV0dXJuIG91dFN0cmVhbTsKIH0KIFZFQ29uZmlndXJhdGlvbkVycm9yOjpWRUNvbmZp
Z3VyYXRpb25FcnJvcihjb25zdCBjaGFyKiBpbk1lc3NhZ2UpOgogICAgIEdJRlRFeGNlcHRpb24o
aW5NZXNzYWdlKXsKQEAgLTE0NSw2ICsxNTMsNyBAQCBvc3RyZWFtJiBvcGVyYXRvcjw8KG9zdHJl
YW0mIG91dFN0cmVhbSxjb25zdCBWRUNvbmZpZ3VyYXRpb25FcnJvciYgaW5FeGNlcHRpb24pewog
CSAgICAgIDw8IGluRXhjZXB0aW9uLm1NZXNzYWdlCiAJICAgICAgPDwgZmx1c2gKIAkgICAgICA8
PCBlbmRsOworICAgIHJldHVybiBvdXRTdHJlYW07CiB9CiAKIApAQCAtMTU3LDUgKzE2Niw2IEBA
IG9zdHJlYW0mIG9wZXJhdG9yPDwob3N0cmVhbSYgb3V0U3RyZWFtLGNvbnN0IFZFVW5rbm93blNl
c3Npb24mIGluRXhjZXB0aW9uKXsKIAkgICAgICA8PCBpbkV4Y2VwdGlvbi5tTWVzc2FnZQogCSAg
ICAgIDw8IGZsdXNoCiAJICAgICAgPDwgZW5kbDsKKyAgICByZXR1cm4gb3V0U3RyZWFtOwogfQog
Cg==
--000000000000659d0a05ea7759d7
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaGVscC1HSUZU
IG1haWxpbmcgbGlzdApoZWxwLUdJRlRAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFp
bG1hbi9saXN0aW5mby9oZWxwLWdpZnQK

--000000000000659d0a05ea7759d7--