public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03  7:46 Peter van Hoof
  0 siblings, 0 replies; 5+ messages in thread
From: Peter van Hoof @ 2002-04-03  7:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/4330; it has been noted by GNATS.

From: Peter van Hoof <p.van-hoof@qub.ac.uk>
To: rth@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, 
    nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: optimization/4330: Optimizer generates illegal assembly code
Date: Wed, 03 Apr 2002 15:31:09 +0100

 This is a multi-part message in MIME format.
 --------------060208020305070509010903
 Content-Type: text/plain; charset=us-ascii; format=flowed
 Content-Transfer-Encoding: 7bit
 
 The file in question has been attached, this time not compressed.
 
 
 rth@gcc.gnu.org wrote:
 
 > Synopsis: Optimizer generates illegal assembly code
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: rth
 > State-Changed-When: Wed Apr  3 00:48:26 2002
 > State-Changed-Why:
 >     bunzip2: Compressed file ends unexpectedly; perhaps it is corrupted?
 >     
 >     Could you re-send the file please?
 > 
 > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330
 > 
 
 
 -- 
 Peter van Hoof
 APS Division - Physics Department
 Queen's University Belfast
 Belfast, BT7 1NN
 Northern Ireland
 Home Page: http://star.pst.qub.ac.uk/~pvh
 
 --------------060208020305070509010903
 Content-Type: application/vnd.sun.xml.impress;
  name="rauch.i"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="rauch.i"
 
 IyA0ICJyYXVjaC5jIgojIDEgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMuaCIgMQoKIyAxICIv
 b3B0L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1
 ZGUvc3RkaW8uaCIgMSAzCiMgMTQgIi9vcHQvbG9jYWwvbGliL2djYy1saWIvc3BhcmMtc3Vu
 LXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9zdGRpby5oIiAzCiMgMSAiL29wdC9sb2NhbC9s
 aWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N0ZGFyZy5o
 IiAxIDMKIyA0MyAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIu
 OC8zLjAuMS9pbmNsdWRlL3N0ZGFyZy5oIiAzCnR5cGVkZWYgX19idWlsdGluX3ZhX2xpc3Qg
 X19nbnVjX3ZhX2xpc3Q7CiMgMTUgIi9vcHQvbG9jYWwvbGliL2djYy1saWIvc3BhcmMtc3Vu
 LXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9zdGRpby5oIiAyIDMKIyAzNCAiL29wdC9sb2Nh
 bC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N0ZGlv
 LmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKXN0ZGlvLmgJMS43OAk5OS8xMi8wOCBTTUkiCgoj
 IDEgIi91c3IvaW5jbHVkZS9pc28vc3RkaW9faXNvLmgiIDEgMwojIDMyICIvdXNyL2luY2x1
 ZGUvaXNvL3N0ZGlvX2lzby5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylzdGRpb19pc28uaAkx
 LjIJOTkvMTAvMjUgU01JIgoKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3Rz
 LmgiIDEgMwojIDEzICIvdXNyL2luY2x1ZGUvc3lzL2ZlYXR1cmVfdGVzdHMuaCIgMwojcHJh
 Z21hIGlkZW50ICJAKCMpZmVhdHVyZV90ZXN0cy5oCTEuMTgJOTkvMDcvMjYgU01JIgoKIyAx
 ICIvdXNyL2luY2x1ZGUvc3lzL2lzYV9kZWZzLmgiIDEgMwojIDkgIi91c3IvaW5jbHVkZS9z
 eXMvaXNhX2RlZnMuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMpaXNhX2RlZnMuaAkxLjIwCTk5
 LzA1LzA0IFNNSSIKIyAxNiAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3RzLmgiIDIg
 MwojIDM2ICIvdXNyL2luY2x1ZGUvaXNvL3N0ZGlvX2lzby5oIiAyIDMKIyAxICIvdXNyL2lu
 Y2x1ZGUvc3lzL3ZhX2xpc3QuaCIgMSAzCiMgOSAiL3Vzci9pbmNsdWRlL3N5cy92YV9saXN0
 LmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKXZhX2xpc3QuaAkxLjEyCTk5LzA1LzA0IFNNSSIK
 IyAyNiAiL3Vzci9pbmNsdWRlL3N5cy92YV9saXN0LmgiIDMKdHlwZWRlZiB2b2lkICpfX3Zh
 X2xpc3Q7CiMgMzcgIi91c3IvaW5jbHVkZS9pc28vc3RkaW9faXNvLmgiIDIgMwojIDEgIi91
 c3IvaW5jbHVkZS9zdGRpb190YWcuaCIgMSAzCiMgOSAiL3Vzci9pbmNsdWRlL3N0ZGlvX3Rh
 Zy5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylzdGRpb190YWcuaAkxLjMJOTgvMDQvMjAgU01J
 IgojIDIxICIvdXNyL2luY2x1ZGUvc3RkaW9fdGFnLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgX19G
 SUxFIF9fRklMRTsKIyAzOCAiL3Vzci9pbmNsdWRlL2lzby9zdGRpb19pc28uaCIgMiAzCiMg
 MSAiL3Vzci9pbmNsdWRlL3N0ZGlvX2ltcGwuaCIgMSAzCiMgOSAiL3Vzci9pbmNsdWRlL3N0
 ZGlvX2ltcGwuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMpc3RkaW9faW1wbC5oCTEuOAk5OS8w
 Ni8xMCBTTUkiCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvaXNhX2RlZnMuaCIgMSAzCiMgMTIg
 Ii91c3IvaW5jbHVkZS9zdGRpb19pbXBsLmgiIDIgMwojIDIyICIvdXNyL2luY2x1ZGUvc3Rk
 aW9faW1wbC5oIiAzCnR5cGVkZWYgaW50IHNzaXplX3Q7CiMgMzggIi91c3IvaW5jbHVkZS9z
 dGRpb19pbXBsLmgiIDMKc3RydWN0IF9fRklMRQp7CgoKCgogICAgICAgIHNzaXplX3QgX2Nu
 dDsKICAgICAgICB1bnNpZ25lZCBjaGFyICpfcHRyOwoKICAgICAgICB1bnNpZ25lZCBjaGFy
 ICpfYmFzZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIF9mbGFnOwogICAgICAgIHVuc2lnbmVk
 IGNoYXIgX2ZpbGU7CiAgICAgICAgdW5zaWduZWQgX19vcmllbnRhdGlvbjoyOwogICAgICAg
 IHVuc2lnbmVkIF9faW9ub2xvY2s6MTsKICAgICAgICB1bnNpZ25lZCBfX2ZpbGxlcjo1Owp9
 OwojIDM5ICIvdXNyL2luY2x1ZGUvaXNvL3N0ZGlvX2lzby5oIiAyIDMKIyA3NSAiL3Vzci9p
 bmNsdWRlL2lzby9zdGRpb19pc28uaCIgMwp0eXBlZGVmIF9fRklMRSBGSUxFOwoKCgoKCgoK
 dHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwoKCgoKdHlwZWRlZiBsb25nIGZwb3NfdDsK
 IyAxNDcgIi91c3IvaW5jbHVkZS9pc28vc3RkaW9faXNvLmgiIDMKZXh0ZXJuIF9fRklMRSBf
 X2lvYlsyMF07CiMgMTY0ICIvdXNyL2luY2x1ZGUvaXNvL3N0ZGlvX2lzby5oIiAzCmV4dGVy
 biBpbnQgcmVtb3ZlKGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgcmVuYW1lKGNvbnN0IGNo
 YXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIEZJTEUgKnRtcGZpbGUodm9pZCk7CmV4dGVy
 biBjaGFyICp0bXBuYW0oY2hhciAqKTsKZXh0ZXJuIGludCBmY2xvc2UoRklMRSAqKTsKZXh0
 ZXJuIGludCBmZmx1c2goRklMRSAqKTsKZXh0ZXJuIEZJTEUgKmZvcGVuKGNvbnN0IGNoYXIg
 KiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIEZJTEUgKmZyZW9wZW4oY29uc3QgY2hhciAqLCBj
 b25zdCBjaGFyICosIEZJTEUgKik7CmV4dGVybiB2b2lkIHNldGJ1ZihGSUxFICosIGNoYXIg
 Kik7CmV4dGVybiBpbnQgc2V0dmJ1ZihGSUxFICosIGNoYXIgKiwgaW50LCBzaXplX3QpOwoK
 ZXh0ZXJuIGludCBmcHJpbnRmKEZJTEUgKiwgY29uc3QgY2hhciAqLCAuLi4pOwoKZXh0ZXJu
 IGludCBmc2NhbmYoRklMRSAqLCBjb25zdCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHBy
 aW50Zihjb25zdCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHNjYW5mKGNvbnN0IGNoYXIg
 KiwgLi4uKTsKCmV4dGVybiBpbnQgc3ByaW50ZihjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4u
 KTsKCmV4dGVybiBpbnQgc3NjYW5mKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4p
 OwpleHRlcm4gaW50IHZmcHJpbnRmKEZJTEUgKiwgY29uc3QgY2hhciAqLCBfX3ZhX2xpc3Qp
 OwpleHRlcm4gaW50IHZwcmludGYoY29uc3QgY2hhciAqLCBfX3ZhX2xpc3QpOwpleHRlcm4g
 aW50IHZzcHJpbnRmKGNoYXIgKiwgY29uc3QgY2hhciAqLCBfX3ZhX2xpc3QpOwpleHRlcm4g
 aW50IGZnZXRjKEZJTEUgKik7CmV4dGVybiBjaGFyICpmZ2V0cyhjaGFyICosIGludCwgRklM
 RSAqKTsKZXh0ZXJuIGludCBmcHV0YyhpbnQsIEZJTEUgKik7CmV4dGVybiBpbnQgZnB1dHMo
 Y29uc3QgY2hhciAqLCBGSUxFICopOwoKCmV4dGVybiBpbnQgZ2V0YyhGSUxFICopOwpleHRl
 cm4gaW50IHB1dGMoaW50LCBGSUxFICopOwoKCgpleHRlcm4gaW50IGdldGNoYXIodm9pZCk7
 CmV4dGVybiBpbnQgcHV0Y2hhcihpbnQpOwoKZXh0ZXJuIGNoYXIgKmdldHMoY2hhciAqKTsK
 ZXh0ZXJuIGludCBwdXRzKGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgdW5nZXRjKGludCwg
 RklMRSAqKTsKZXh0ZXJuIHNpemVfdCBmcmVhZCh2b2lkICosIHNpemVfdCwgc2l6ZV90LCBG
 SUxFICopOwpleHRlcm4gc2l6ZV90IGZ3cml0ZShjb25zdCB2b2lkICosIHNpemVfdCwgc2l6
 ZV90LCBGSUxFICopOwpleHRlcm4gaW50IGZnZXRwb3MoRklMRSAqLCBmcG9zX3QgKik7CmV4
 dGVybiBpbnQgZnNlZWsoRklMRSAqLCBsb25nLCBpbnQpOwpleHRlcm4gaW50IGZzZXRwb3Mo
 RklMRSAqLCBjb25zdCBmcG9zX3QgKik7CmV4dGVybiBsb25nIGZ0ZWxsKEZJTEUgKik7CmV4
 dGVybiB2b2lkIHJld2luZChGSUxFICopOwoKCmV4dGVybiB2b2lkIGNsZWFyZXJyKEZJTEUg
 Kik7CmV4dGVybiBpbnQgZmVvZihGSUxFICopOwpleHRlcm4gaW50IGZlcnJvcihGSUxFICop
 OwoKZXh0ZXJuIHZvaWQgcGVycm9yKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGludCBfX2Zp
 bGJ1ZihGSUxFICopOwpleHRlcm4gaW50IF9fZmxzYnVmKGludCwgRklMRSAqKTsKIyAzNyAi
 L29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNs
 dWRlL3N0ZGlvLmgiIDIgMwojIDE1MSAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1z
 dW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIHVuc2lnbmVk
 IGNoYXIgX3NpYnVmW10sIF9zb2J1ZltdOwojIDE5MyAiL29wdC9sb2NhbC9saWIvZ2NjLWxp
 Yi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJu
 IHVuc2lnbmVkIGNoYXIgKl9idWZlbmR0YWJbXTsKZXh0ZXJuIEZJTEUgKl9sYXN0YnVmOwoj
 IDMgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMuaCIgMgojIDEgIi91c3IvaW5jbHVkZS9zdGRs
 aWIuaCIgMSAzCiMgMTYgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwojcHJhZ21hIGlkZW50
 ICJAKCMpc3RkbGliLmgJMS40Nwk5OS8xMS8wMyBTTUkiCgojIDEgIi9vcHQvbG9jYWwvbGli
 L2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9pc28vc3RkbGli
 X2lzby5oIiAxIDMKIyAzNyAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29s
 YXJpczIuOC8zLjAuMS9pbmNsdWRlL2lzby9zdGRsaWJfaXNvLmgiIDMKI3ByYWdtYSBpZGVu
 dCAiQCgjKXN0ZGxpYl9pc28uaAkxLjIJOTkvMTIvMjEgU01JIgoKIyAxICIvdXNyL2luY2x1
 ZGUvc3lzL2ZlYXR1cmVfdGVzdHMuaCIgMSAzCiMgNDAgIi9vcHQvbG9jYWwvbGliL2djYy1s
 aWIvc3BhcmMtc3VuLXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9pc28vc3RkbGliX2lzby5o
 IiAyIDMKCgoKCgoKZXh0ZXJuIHVuc2lnbmVkIGNoYXIgX19jdHlwZVtdOwojIDU3ICIvb3B0
 L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUv
 aXNvL3N0ZGxpYl9pc28uaCIgMwp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgaW50IHF1b3Q7
 CiAgICAgICAgaW50IHJlbTsKfSBkaXZfdDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBs
 b25nIHF1b3Q7CiAgICAgICAgbG9uZyByZW07Cn0gbGRpdl90OwojIDk2ICIvb3B0L2xvY2Fs
 L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUvaXNvL3N0
 ZGxpYl9pc28uaCIgMwp0eXBlZGVmIGxvbmcgd2NoYXJfdDsKCgoKCgoKZXh0ZXJuIHZvaWQg
 YWJvcnQodm9pZCk7CmV4dGVybiBpbnQgYWJzKGludCk7CmV4dGVybiBpbnQgYXRleGl0KHZv
 aWQgKCopKHZvaWQpKTsKZXh0ZXJuIGRvdWJsZSBhdG9mKGNvbnN0IGNoYXIgKik7CmV4dGVy
 biBpbnQgYXRvaShjb25zdCBjaGFyICopOwpleHRlcm4gbG9uZyBpbnQgYXRvbChjb25zdCBj
 aGFyICopOwpleHRlcm4gdm9pZCAqYnNlYXJjaChjb25zdCB2b2lkICosIGNvbnN0IHZvaWQg
 Kiwgc2l6ZV90LCBzaXplX3QsCiAgICAgICAgaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0
 IHZvaWQgKikpOwpleHRlcm4gdm9pZCAqY2FsbG9jKHNpemVfdCwgc2l6ZV90KTsKZXh0ZXJu
 IGRpdl90IGRpdihpbnQsIGludCk7CmV4dGVybiB2b2lkIGV4aXQoaW50KTsKZXh0ZXJuIHZv
 aWQgZnJlZSh2b2lkICopOwpleHRlcm4gY2hhciAqZ2V0ZW52KGNvbnN0IGNoYXIgKik7CmV4
 dGVybiBsb25nIGludCBsYWJzKGxvbmcpOwpleHRlcm4gbGRpdl90IGxkaXYobG9uZywgbG9u
 Zyk7CmV4dGVybiB2b2lkICptYWxsb2Moc2l6ZV90KTsKZXh0ZXJuIGludCBtYmxlbihjb25z
 dCBjaGFyICosIHNpemVfdCk7CmV4dGVybiBzaXplX3QgbWJzdG93Y3Mod2NoYXJfdCAqLCBj
 b25zdCBjaGFyICosIHNpemVfdCk7CmV4dGVybiBpbnQgbWJ0b3djKHdjaGFyX3QgKiwgY29u
 c3QgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gdm9pZCBxc29ydCh2b2lkICosIHNpemVfdCwg
 c2l6ZV90LAogICAgICAgIGludCAoKikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKTsK
 ZXh0ZXJuIGludCByYW5kKHZvaWQpOwpleHRlcm4gdm9pZCAqcmVhbGxvYyh2b2lkICosIHNp
 emVfdCk7CmV4dGVybiB2b2lkIHNyYW5kKHVuc2lnbmVkIGludCk7CmV4dGVybiBkb3VibGUg
 c3RydG9kKGNvbnN0IGNoYXIgKiwgY2hhciAqKik7CmV4dGVybiBsb25nIGludCBzdHJ0b2wo
 Y29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwpleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQg
 c3RydG91bChjb25zdCBjaGFyICosIGNoYXIgKiosIGludCk7CmV4dGVybiBpbnQgc3lzdGVt
 KGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgd2N0b21iKGNoYXIgKiwgd2NoYXJfdCk7CmV4
 dGVybiBzaXplX3Qgd2NzdG9tYnMoY2hhciAqLCBjb25zdCB3Y2hhcl90ICosIHNpemVfdCk7
 CiMgMTkgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMiAzCiMgNzkgIi91c3IvaW5jbHVkZS9z
 dGRsaWIuaCIgMwp0eXBlZGVmIGxvbmcgdWlkX3Q7CiMgMTEyICIvdXNyL2luY2x1ZGUvc3Rk
 bGliLmgiIDMKZXh0ZXJuIHZvaWQgX2V4aXRoYW5kbGUodm9pZCk7CiMgMTUwICIvdXNyL2lu
 Y2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGludCBta3N0ZW1wKGNoYXIgKik7CiMgNCAiLi4v
 Li4vc291cmNlL2NkZGVmaW5lcy5oIiAyCiMgMSAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9z
 cGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL21hdGguaCIgMSAzCiMgMjMgIi9v
 cHQvbG9jYWwvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVk
 ZS9tYXRoLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKW1hdGguaAkyLjEwCTk5LzA3LzI5IFNN
 SSIKCiMgMSAiL3Vzci9pbmNsdWRlL2lzby9tYXRoX2lzby5oIiAxIDMKCgoKCgoKCiNwcmFn
 bWEgaWRlbnQgIkAoIyltYXRoX2lzby5oCTEuMQk5OS8wNy8zMCBTTUkiCiMgMjAgIi91c3Iv
 aW5jbHVkZS9pc28vbWF0aF9pc28uaCIgMwp0eXBlZGVmIHVuaW9uIF9oX3ZhbCB7CiAgICAg
 ICAgdW5zaWduZWQgbG9uZyBfaVtzaXplb2YoZG91YmxlKSAvIHNpemVvZih1bnNpZ25lZCBs
 b25nKV07CiAgICAgICAgZG91YmxlIF9kOwp9IF9oX3ZhbDsKCgpleHRlcm4gY29uc3QgX2hf
 dmFsIF9faHVnZV92YWw7CiMgMzcgIi91c3IvaW5jbHVkZS9pc28vbWF0aF9pc28uaCIgMwpl
 eHRlcm4gZG91YmxlIGFjb3MgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgYXNpbiAoZG91Ymxl
 KTsKZXh0ZXJuIGRvdWJsZSBhdGFuIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGF0YW4yIChk
 b3VibGUsIGRvdWJsZSk7CmV4dGVybiBkb3VibGUgY29zIChkb3VibGUpOwpleHRlcm4gZG91
 YmxlIHNpbiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB0YW4gKGRvdWJsZSk7CgpleHRlcm4g
 ZG91YmxlIGNvc2ggKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgc2luaCAoZG91YmxlKTsKZXh0
 ZXJuIGRvdWJsZSB0YW5oIChkb3VibGUpOwoKZXh0ZXJuIGRvdWJsZSBleHAgKGRvdWJsZSk7
 CmV4dGVybiBkb3VibGUgZnJleHAgKGRvdWJsZSwgaW50ICopOwpleHRlcm4gZG91YmxlIGxk
 ZXhwIChkb3VibGUsIGludCk7CmV4dGVybiBkb3VibGUgbG9nIChkb3VibGUpOwpleHRlcm4g
 ZG91YmxlIGxvZzEwIChkb3VibGUpOwpleHRlcm4gZG91YmxlIG1vZGYgKGRvdWJsZSwgZG91
 YmxlICopOwoKZXh0ZXJuIGRvdWJsZSBwb3cgKGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGRv
 dWJsZSBzcXJ0IChkb3VibGUpOwoKZXh0ZXJuIGRvdWJsZSBjZWlsIChkb3VibGUpOwpleHRl
 cm4gZG91YmxlIGZhYnMgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgZmxvb3IgKGRvdWJsZSk7
 CmV4dGVybiBkb3VibGUgZm1vZCAoZG91YmxlLCBkb3VibGUpOwojIDI2ICIvb3B0L2xvY2Fs
 L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUvbWF0aC5o
 IiAyIDMKIyA1ICIuLi8uLi9zb3VyY2UvY2RkZWZpbmVzLmgiIDIKIyAxICIvdXNyL2luY2x1
 ZGUvYXNzZXJ0LmgiIDEgMwojIDExICIvdXNyL2luY2x1ZGUvYXNzZXJ0LmgiIDMKI3ByYWdt
 YSBpZGVudCAiQCgjKWFzc2VydC5oCTEuOQk5Mi8wNy8xNCBTTUkiCgoKCgoKCmV4dGVybiB2
 b2lkIF9fYXNzZXJ0KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOwojIDYgIi4u
 Ly4uL3NvdXJjZS9jZGRlZmluZXMuaCIgMgojIDEgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIg
 MSAzCiMgMTYgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMp
 c3RyaW5nLmgJMS4yNAk5OS8wOC8xMCBTTUkiCgojIDEgIi91c3IvaW5jbHVkZS9pc28vc3Ry
 aW5nX2lzby5oIiAxIDMKIyAyOCAiL3Vzci9pbmNsdWRlL2lzby9zdHJpbmdfaXNvLmgiIDMK
 I3ByYWdtYSBpZGVudCAiQCgjKXN0cmluZ19pc28uaAkxLjIJOTkvMTEvMDkgU01JIgoKCiMg
 MSAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3RzLmgiIDEgMwojIDMyICIvdXNyL2lu
 Y2x1ZGUvaXNvL3N0cmluZ19pc28uaCIgMiAzCiMgNjAgIi91c3IvaW5jbHVkZS9pc28vc3Ry
 aW5nX2lzby5oIiAzCmV4dGVybiBpbnQgbWVtY21wKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9p
 ZCAqLCBzaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtY3B5KHZvaWQgKiwgY29uc3Qgdm9pZCAq
 LCBzaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtbW92ZSh2b2lkICosIGNvbnN0IHZvaWQgKiwg
 c2l6ZV90KTsKZXh0ZXJuIHZvaWQgKm1lbXNldCh2b2lkICosIGludCwgc2l6ZV90KTsKZXh0
 ZXJuIGNoYXIgKnN0cmNhdChjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgc3Ry
 Y21wKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnN0cmNweShj
 aGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgc3RyY29sbChjb25zdCBjaGFyICos
 IGNvbnN0IGNoYXIgKik7CmV4dGVybiBzaXplX3Qgc3RyY3Nwbihjb25zdCBjaGFyICosIGNv
 bnN0IGNoYXIgKik7CmV4dGVybiBjaGFyICpzdHJlcnJvcihpbnQpOwpleHRlcm4gc2l6ZV90
 IHN0cmxlbihjb25zdCBjaGFyICopOwpleHRlcm4gY2hhciAqc3RybmNhdChjaGFyICosIGNv
 bnN0IGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIGludCBzdHJuY21wKGNvbnN0IGNoYXIgKiwg
 Y29uc3QgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gY2hhciAqc3RybmNweShjaGFyICosIGNv
 bnN0IGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIHNpemVfdCBzdHJzcG4oY29uc3QgY2hhciAq
 LCBjb25zdCBjaGFyICopOwpleHRlcm4gY2hhciAqc3RydG9rKGNoYXIgKiwgY29uc3QgY2hh
 ciAqKTsKZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtKGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXpl
 X3QpOwojIDExMiAiL3Vzci9pbmNsdWRlL2lzby9zdHJpbmdfaXNvLmgiIDMKZXh0ZXJuIHZv
 aWQgKm1lbWNocihjb25zdCB2b2lkICosIGludCwgc2l6ZV90KTsKZXh0ZXJuIGNoYXIgKnN0
 cmNocihjb25zdCBjaGFyICosIGludCk7CmV4dGVybiBjaGFyICpzdHJwYnJrKGNvbnN0IGNo
 YXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnN0cnJjaHIoY29uc3QgY2hhciAq
 LCBpbnQpOwpleHRlcm4gY2hhciAqc3Ryc3RyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAq
 KTsKIyAxOSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMKIyA3ICIuLi8uLi9zb3VyY2Uv
 Y2RkZWZpbmVzLmgiIDIKIyAxICIvdXNyL2luY2x1ZGUvZmxvYXQuaCIgMSAzCiMgMTYgIi91
 c3IvaW5jbHVkZS9mbG9hdC5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylmbG9hdC5oCTEuMTgJ
 OTkvMDUvMDQgU01JIgojIDI1ICIvdXNyL2luY2x1ZGUvZmxvYXQuaCIgMwpleHRlcm4gaW50
 IF9fZmx0X3JvdW5kcyh2b2lkKTsKIyA4ICIuLi8uLi9zb3VyY2UvY2RkZWZpbmVzLmgiIDIK
 IyAxICIvb3B0L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4x
 L2luY2x1ZGUvbGltaXRzLmgiIDEgMwojIDExICIvb3B0L2xvY2FsL2xpYi9nY2MtbGliL3Nw
 YXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUvbGltaXRzLmgiIDMKIyAxICIvb3B0
 L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUv
 c3lzbGltaXRzLmgiIDEgMwojIDI1ICIvb3B0L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1
 bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUvc3lzbGltaXRzLmgiIDMKI3ByYWdtYSBpZGVu
 dCAiQCgjKWxpbWl0cy5oCTEuNTEJOTkvMTAvMDggU01JIgoKIyAxICIvdXNyL2luY2x1ZGUv
 c3lzL2ZlYXR1cmVfdGVzdHMuaCIgMSAzCiMgMjggIi9vcHQvbG9jYWwvbGliL2djYy1saWIv
 c3BhcmMtc3VuLXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9zeXNsaW1pdHMuaCIgMiAzCiMg
 MSAiL3Vzci9pbmNsdWRlL3N5cy9pc2FfZGVmcy5oIiAxIDMKIyAyOSAiL29wdC9sb2NhbC9s
 aWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N5c2xpbWl0
 cy5oIiAyIDMKIyAxICIvdXNyL2luY2x1ZGUvaXNvL2xpbWl0c19pc28uaCIgMSAzCiMgMjgg
 Ii91c3IvaW5jbHVkZS9pc28vbGltaXRzX2lzby5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIyls
 aW1pdHNfaXNvLmgJMS4xCTk5LzA4LzA5IFNNSSIKIyAzMCAiL29wdC9sb2NhbC9saWIvZ2Nj
 LWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N5c2xpbWl0cy5oIiAy
 IDMKIyAxMiAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8z
 LjAuMS9pbmNsdWRlL2xpbWl0cy5oIiAyIDMKIyA5ICIuLi8uLi9zb3VyY2UvY2RkZWZpbmVz
 LmgiIDIKIyAxNyAiLi4vLi4vc291cmNlL2NkZGVmaW5lcy5oIgp2b2lkIGNkRGVmaW5lcyh2
 b2lkKTsKCgpkb3VibGUgZnVkZ2UobG9uZyBpbnQgaXBudCk7CgoKdm9pZCBicm9rZW4odm9p
 ZCk7CgoKCnZvaWQgZml4aXQodm9pZCk7CgoKdm9pZCB0ZXN0Y29kZSh2b2lkKTsKCgp2b2lk
 ICpteV9tYWxsb2MoCiAgICAgICAgc2l6ZV90IHNpemUKICAgICAgICApOwoKCnZvaWQgYmFk
 X21hbGxvYyh2b2lkKTsKIyA2MyAiLi4vLi4vc291cmNlL2NkZGVmaW5lcy5oIgp0eXBlZGVm
 IHN0cnVjdAp7CiMgNzMgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMuaCIKICAgICAgICBpbnQg
 aVJlZGlzRnVuIDsKCgoKICAgICAgICBpbnQgaXBDb250OwoKCiAgICAgICAgaW50IElvblN0
 ZzsKCgogICAgICAgIGludCBuZWxlbTsKCgogICAgICAgIGZsb2F0IFRhdUNvbiA7CgoKICAg
 ICAgICBmbG9hdCBDb2xVTDsKCgogICAgICAgIGZsb2F0IFRhdUluOwoKCiAgICAgICAgZmxv
 YXQgVGF1VG90IDsKCgogICAgICAgIGZsb2F0IEZyYWNJbndkOwoKCgogICAgICAgIGZsb2F0
 IHB1bXAgOwoKCiAgICAgICAgZG91YmxlIHhJbnRlbnNpdHkgOwoKCiAgICAgICAgZG91Ymxl
 IHBob3RzOwoKCiAgICAgICAgZmxvYXQgZ2YgOwoKCiAgICAgICAgZmxvYXQgUGVzYyAsIFBk
 ZXN0OwoKCiAgICAgICAgZmxvYXQgZGFtcCwgZGFtcHJlbCA7CgoKICAgICAgICBmbG9hdCBk
 VGF1OwoKCiAgICAgICAgZG91YmxlIGNvb2wgLCBoZWF0IDsKCgogICAgICAgIGZsb2F0IENv
 bE92VG90IDsKCgogICAgICAgIGZsb2F0IGNzOwoKCiAgICAgICAgZmxvYXQgV0xBbmc7CgoK
 ICAgICAgICBmbG9hdCBFbmVyZ3lLOwoKCiAgICAgICAgZmxvYXQgRW5lcmd5UnlkOwoKCiAg
 ICAgICAgZmxvYXQgRW5lcmd5RXJnOwoKCiAgICAgICAgZmxvYXQgRW5lcmd5V047CgoKCiAg
 ICAgICAgZmxvYXQgb3BhY2l0eTsKCgogICAgICAgIGZsb2F0IGdMbyAsIGdIaSA7CgoKICAg
 ICAgICBmbG9hdCBQb3BMbyAsIFBvcEhpICwgUG9wT3BjIDsKCgogICAgICAgIGZsb2F0IEF1
 bCA7CgoKICAgICAgICBmbG9hdCBBb3ZUb3QgOwoKCgoKICAgICAgICBmbG9hdCBjczE7CgoK
 ICAgICAgICBmbG9hdCBvdHM7Cgp9RW1MaW5lOwoKCgoKdm9pZCBEdW1wTGluZShFbUxpbmUg
 KiB0KTsKCgp2b2lkIGNkRVhJVChpbnQpOwojIDE5MCAiLi4vLi4vc291cmNlL2NkZGVmaW5l
 cy5oIgpleHRlcm4gRklMRSAqaW9RUVE7CgpleHRlcm4gRklMRSAqaW9NQVA7CgoKCmV4dGVy
 biBGSUxFKiBpb1BybkVycjsKCgpleHRlcm4gaW50IGxnUHJuRXJyOwoKCmV4dGVybiBsb25n
 IGludCBuem9uZTsKCgoKZXh0ZXJuIGxvbmcgaW50IGl0ZXJhdGlvbjsKCgpleHRlcm4gaW50
 IG5DYWxsZWQ7CgoKCgpleHRlcm4gY29uc3QgaW50IGlwUmVjRXNjIDsKCmV4dGVybiBjb25z
 dCBpbnQgaXBSZWNOZXRFc2MgOwoKZXh0ZXJuIGNvbnN0IGludCBpcFJlY1JhZCA7CgoKCmV4
 dGVybiBjb25zdCBpbnQgaXBQUkQ7CgpleHRlcm4gY29uc3QgaW50IGlwQ1JEOwoKZXh0ZXJu
 IGNvbnN0IGludCBpcENSRFc7CgoKCmV4dGVybiBjb25zdCBpbnQgaXBIMXM7CmV4dGVybiBj
 b25zdCBpbnQgaXBIMnM7CmV4dGVybiBjb25zdCBpbnQgaXBIMnA7CgoKCgoKCmV4dGVybiBj
 b25zdCBpbnQgaXBIZTFzMVM7CgoKZXh0ZXJuIGNvbnN0IGludCBpcEhlMnMzUzsKZXh0ZXJu
 IGNvbnN0IGludCBpcEhlMnMxUzsKZXh0ZXJuIGNvbnN0IGludCBpcEhlMnAzUDA7CmV4dGVy
 biBjb25zdCBpbnQgaXBIZTJwM1AxOwpleHRlcm4gY29uc3QgaW50IGlwSGUycDNQMjsKZXh0
 ZXJuIGNvbnN0IGludCBpcEhlMnAxUDsKCgpleHRlcm4gY29uc3QgaW50IGlwSGUzczNTOwpl
 eHRlcm4gY29uc3QgaW50IGlwSGUzczFTOwpleHRlcm4gY29uc3QgaW50IGlwSGUzcDNQOwpl
 eHRlcm4gY29uc3QgaW50IGlwSGUzZDNEOwpleHRlcm4gY29uc3QgaW50IGlwSGUzZDFEOwpl
 eHRlcm4gY29uc3QgaW50IGlwSGUzcDFQOwoKCmV4dGVybiBjb25zdCBpbnQgaXBIZTRzM1M7
 CmV4dGVybiBjb25zdCBpbnQgaXBIZTRzMVM7CmV4dGVybiBjb25zdCBpbnQgaXBIZTRwM1A7
 CmV4dGVybiBjb25zdCBpbnQgaXBIZTRkM0Q7CmV4dGVybiBjb25zdCBpbnQgaXBIZTRkMUQ7
 CmV4dGVybiBjb25zdCBpbnQgaXBIZTRmM0Y7CmV4dGVybiBjb25zdCBpbnQgaXBIZTRmMUY7
 CmV4dGVybiBjb25zdCBpbnQgaXBIZTRwMVA7CgoKCmV4dGVybiBjb25zdCBpbnQgaXBIZUx5
 bWFuWzVdOwoKCgpleHRlcm4gY29uc3QgaW50IGlwSFlEUk9HRU4gOwpleHRlcm4gY29uc3Qg
 aW50IGlwSEVMSVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcExJVEhJVU0gOwpleHRlcm4gY29u
 c3QgaW50IGlwQkVSWUxMSVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcEJPUk9OIDsKZXh0ZXJu
 IGNvbnN0IGludCBpcENBUkJPTiA7CmV4dGVybiBjb25zdCBpbnQgaXBOSVRST0dFTiA7CmV4
 dGVybiBjb25zdCBpbnQgaXBPWFlHRU4gOwpleHRlcm4gY29uc3QgaW50IGlwRkxVT1JJTkUg
 OwpleHRlcm4gY29uc3QgaW50IGlwTkVPTiA7CmV4dGVybiBjb25zdCBpbnQgaXBTT0RJVU0g
 OwpleHRlcm4gY29uc3QgaW50IGlwTUFHTkVTSVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcEFM
 VU1JTklVTSA7CmV4dGVybiBjb25zdCBpbnQgaXBTSUxJQ09OIDsKZXh0ZXJuIGNvbnN0IGlu
 dCBpcFBIT1NQSE9SVVMgOwpleHRlcm4gY29uc3QgaW50IGlwU1VMUEhVUiA7CmV4dGVybiBj
 b25zdCBpbnQgaXBDSExPUklORSA7CmV4dGVybiBjb25zdCBpbnQgaXBBUkdPTiA7CmV4dGVy
 biBjb25zdCBpbnQgaXBQT1RBU0lVTSA7CmV4dGVybiBjb25zdCBpbnQgaXBDQUxDSVVNIDsK
 ZXh0ZXJuIGNvbnN0IGludCBpcFNDQU5ESVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcFRJVEFO
 SVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcFZBTkFESVVNIDsKZXh0ZXJuIGNvbnN0IGludCBp
 cENIUk9NSVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcE1BTkdBTkVTRSA7CmV4dGVybiBjb25z
 dCBpbnQgaXBJUk9OIDsKZXh0ZXJuIGNvbnN0IGludCBpcENPQkFMVCA7CmV4dGVybiBjb25z
 dCBpbnQgaXBOSUNLRUwgOwpleHRlcm4gY29uc3QgaW50IGlwQ09QUEVSIDsKZXh0ZXJuIGNv
 bnN0IGludCBpcFpJTkMgOwojIDM2MSAiLi4vLi4vc291cmNlL2NkZGVmaW5lcy5oIgpleHRl
 cm4gY29uc3QgZG91YmxlIFplcm9OdW07CiMgMzg4ICIuLi8uLi9zb3VyY2UvY2RkZWZpbmVz
 LmgiCiAgICAgICAgZXh0ZXJuIEZJTEUgKmRlYnVnX2ZwOwojIDUxNSAiLi4vLi4vc291cmNl
 L2NkZGVmaW5lcy5oIgpkb3VibGUgQW51VW5pdChmbG9hdCBlbmVyZ3kpOwoKCnZvaWQgU2hv
 d01lKHZvaWQpOwoKCnZvaWQgVG90YWxJbnNhbml0eSh2b2lkKTsKCgp2b2lkIGNhcDQoCiAg
 ICAgICAgICAgICAgICBjaGFyICpjaENBUCAsCgogICAgICAgICAgICAgICAgY2hhciAqY2hM
 YWIpOwoKCnZvaWQgY2FwcyhjaGFyICpjaENhcmQgKTsKCgpkb3VibGUgZTIoZG91YmxlIHQs
 CiAgICAgICAgICBkb3VibGUgdGxuKTsKCgpkb3VibGUgZWUxKGRvdWJsZSB4KTsKCgpkb3Vi
 bGUgRkZtdFJlYWQoY2hhciAqY2hDYXJkLAogICAgICAgICAgbG9uZyBpbnQgKmlwbnQsCiAg
 ICAgICAgICBsb25nIGludCBsYXN0LAogICAgICAgICAgaW50ICpsZ0VPTCk7CgoKdm9pZCBp
 bnNhbmUodm9pZCk7CgoKCmludCBsZ01hdGNoKGNoYXIgKmNoS2V5LAogICAgICAgICAgY2hh
 ciAqY2hDYXJkKTsKCgp2b2lkIEdldEVsZW0oY2hhciAqY2hDYXJkLAogIGxvbmcgaW50ICpq
 KTsKCgoKdm9pZCBHZXRRdW90ZShjaGFyICpjaExhYmVsLAogICAgICAgICAgICAgIGNoYXIg
 KmNoQ2FyZCApOwojIDU2OSAiLi4vLi4vc291cmNlL2NkZGVmaW5lcy5oIgpkb3VibGUgcG93
 aSggZG91YmxlICwgbG9uZyBpbnQgKTsKCgpsb25nIGludCBpcG93KCBsb25nLCBsb25nICk7
 CgoKCnZvaWQgUHJpbnRFODIoIEZJTEUqLCBkb3VibGUgKTsKCnZvaWQgUHJpbnRFNzEoIEZJ
 TEUqLCBkb3VibGUgKTsKCnZvaWQgUHJpbnRFOTMoIEZJTEUqLCBkb3VibGUgKTsKCgpjaGFy
 ICpQcmludEVmbXQoY29uc3QgY2hhciAqZm10LCBkb3VibGUgdmFsICk7CgoKdm9pZCBOb051
 bWIoY2hhciAqY2hDYXJkKTsKCgpkb3VibGUgc2V4cChkb3VibGUgeCk7CgoKZG91YmxlIHNp
 Z24oZG91YmxlIGEsZG91YmxlIGIgKTsKIyA2MjAgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMu
 aCIKbG9uZyBtaW4obG9uZyxsb25nKTsKc2hvcnQgc21heChzaG9ydCxzaG9ydCk7CmRvdWJs
 ZSBmbWF4KGRvdWJsZSxkb3VibGUpOwpkb3VibGUgZm1pbihkb3VibGUsZG91YmxlKTsKCgpk
 b3VibGUgdmZtYXgoIGRvdWJsZSwuLi4gKTsKCgpkb3VibGUgdmZtaW4oIGRvdWJsZSwuLi4g
 KTsKIyA2NDQgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMuaCIKdm9pZCBkYmdfcHJpbnRmKGlu
 dCBkZWJ1ZywgY29uc3QgY2hhciAqZm10LCAuLi4pOwoKZG91YmxlIHFnMzIoCiAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgIGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3Vi
 bGUoKikoZG91YmxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgoKCgoK
 dm9pZCBzcHNvcnQoCgogICAgICAgICAgZmxvYXQgeFtdLAoKICAgICAgICAgIGxvbmcgaW50
 IG4sCgogICAgICAgICAgbG9uZyBpbnQgaXBlcm1bXSwKCgogICAgICAgICAgaW50IGtmbGFn
 LAoKICAgICAgICAgIGludCAqaWVyKTsKCgp2b2lkIGNoSW9uTGJsKCBjaGFyKiwgRW1MaW5l
 ICogdCApOwoKCgpjaGFyKiBjaExpbmVMYmwoRW1MaW5lICogdCApOwojIDUgInJhdWNoLmMi
 IDIKIyAxICIuLi8uLi9zb3VyY2UvcGh5c2NvbnN0LmgiIDEKIyA2ICJyYXVjaC5jIiAyCiMg
 MSAiLi4vLi4vc291cmNlL29wYWNpdHkuaCIgMQoKCgp2b2lkIE9wYWNpdHlDcmVhdGVBbGwo
 dm9pZCk7CgoKdm9pZCBPcGFjaXR5QWRkMVN1YnNoZWxsKGxvbmcgaW50IGlwLAogIGxvbmcg
 aW50IGssCiAgbG9uZyBpbnQgaiwKICBmbG9hdCBhYnVuZGFuY2UsCiAgY2hhciBjaFN0YXQg
 KTsKCgp2b2lkIE9wYWNpdHlBZGRUb3RhbCh2b2lkKTsKCgp2b2lkIFB1bk9wYWMoRklMRSAq
 IGlvLAogIGxvbmcgaW50IG5wKTsKCgoKdm9pZCBPcGFjaXR5QWRkMUVsZW1lbnQoCgogICAg
 ICAgICAgICAgICAgbG9uZyBpbnQgaXBaKTsKCgoKdm9pZCBPcGFjaXR5WmVybyh2b2lkKTsK
 Cgp2b2lkIE9wYWNpdHlaZXJvT2xkKHZvaWQpOwoKCnZvaWQgT3BhY2l0eUFkZDFTdWJzaGVs
 bEluZHVjKAoKICBsb25nIGludCBpcE9wYWMsCgogIGxvbmcgaW50IGxvdywKCiAgbG9uZyBp
 bnQgaWhpLAoKICBmbG9hdCBhLAoKICBkb3VibGUgYiwKCiAgY2hhciBjaFN0YXQgKTsKCgoK
 CgoKCmV4dGVybiBzdHJ1Y3QgdF9vcGFjQ29tIHsKCgoKCgoKICAgICAgICBmbG9hdCBUYXVB
 YnNHZW9bMl1bNDAwMExdOwogICAgICAgIGZsb2F0IFRhdVNjYXRHZW9bMl1bNDAwMExdOwoK
 CgogICAgICAgIGZsb2F0IFRhdVRvdGFsR2VvWzJdWzQwMDBMXTsKCgoKICAgICAgICBmbG9h
 dCBUYXVBYnNGYWNlWzQwMDBMXSwKICAgICAgICAgIFRhdVNjYXRGYWNlWzQwMDBMXTsKCgog
 ICAgICAgIGRvdWJsZSBvcGFjWzQwMDBMXTsKCgogICAgICAgIGRvdWJsZSBvcGFjc3ZbNDAw
 MExdOwoKCiAgICAgICAgZG91YmxlIE9sZE9wYWNTYXZlWzQwMDBMXTsKCgogICAgICAgIGRv
 dWJsZSBzY2F0b3BbNDAwMExdICwKCgogICAgICAgICAgYWxiZWRvWzQwMDBMXSwKCgogICAg
 ICAgICAgc2N0c2F2WzQwMDBMXTsKCgoKICAgICAgICBkb3VibGUgT3BhY1N0YXRpY1s0MDAw
 TF07CgoKICAgICAgICBkb3VibGUgRnJlZUZyZWVPcGFjaXR5WzQwMDBMXTsKCgogICAgICAg
 IGRvdWJsZSBFeHBab25lWzQwMDBMXTsKCgoKICAgICAgICBmbG9hdCBlMlRhdUFic1s0MDAw
 TF07CgoKICAgICAgICBmbG9hdCBFeHBtVGF1WzQwMDBMXTsKCgoKICAgICAgICBmbG9hdCB0
 bW5bNDAwMExdOwoKCgoKICAgICAgICBpbnQgbGdPcGFjU3RhdGljOwoKCgoKCgogICAgICAg
 IGludCBsZ1JlZG9TdGF0aWM7CgoKCgogICAgICAgIGRvdWJsZSAqT3BhY1N0YWNrIDsKCgog
 ICAgICAgIGZsb2F0IHRwY2FoWzJdOwoKCiAgICAgICAgZmxvYXQgdGF1bWluOwoKCgogICAg
 ICAgIGZsb2F0IHRsYW1pbjsKCgogICAgICAgIGludCBsZ0Nhc2VCOwoKCiAgICAgICAgaW50
 IGxnQ2FzZUJfSHVtbWVyU3RvcmV5OwoKCiAgICAgICAgZmxvYXQgdGVsZWMsCiAgICAgICAg
 ICB0aG1pbjsKCgogICAgICAgIGludCBsZ09wYWNOZWc7CgoKCiAgICAgICAgaW50IGxnU2Nh
 dE9OOwoKCiAgICAgICAgaW50IGxnTmVnT3BhY0lPOwoKCgoKCiAgICAgICAgaW50IGxnQ29t
 cGlsZU9wYWM7CgoKICAgICAgICBpbnQgbGdPcGFjRXhpc3Q7CgoKCiAgICAgICAgaW50IGxn
 VXNlRmlsZU9wYWMgOwoKCgogICAgICAgIGludCBsZ1RhdU91dE9uOwoKCiAgICAgICAgY2hh
 ciBjaE9wY1R5cFs1XTsKCgoKCiAgICAgICAgbG9uZyBpbnQgbk9wYWNUb3Q7CiMgMTkxICIu
 Li8uLi9zb3VyY2Uvb3BhY2l0eS5oIgogICAgICAgIGxvbmcgaW50IGlwSE9wYWNbMzBMXVsx
 MF0sCgoKICAgICAgICBpcFJheVNjYXQsCgoKICAgICAgICBpb3Bjb20sCgoKICAgICAgICBp
 cHByLAogICAgICAgIGlvcHByLAoKCiAgICAgICAgaXBCcmVtcywKCgogICAgICAgIGlwaG1y
 YSwKCgogICAgICAgIGlwaG1vcCwKCgogICAgICAgIGloMnBudFsyXSwKICAgICAgICBpaDJw
 b2YsCgoKICAgICAgICBpb3BoZTFbOV0sCgoKICAgICAgICBpb3B0cmksCiMgMjUzICIuLi8u
 Li9zb3VyY2Uvb3BhY2l0eS5oIgogICAgICAgIGlwRWxlbWVudFszXVs3XVszMExdWzMwTF0s
 CgoKICAgICAgICBpbjFbM10sCgoKICAgICAgICBpcG8zZXhjWzNdLAogICAgICAgIGlwbzNl
 eGMzWzNdLAogICAgICAgIGlwbzFleGNbM10sCgoKICAgICAgICBpb3BvMmQsCgoKICAgICAg
 ICBpcG1nZXgsCiAgICAgICAgaXBPcE1nRXgsCgoKICAgICAgICBpY2EyZXhbMl0sCiAgICAg
 ICAgaWNhMm9wOwoKCiAgICAgICAgbG9uZyBpbnQgaXBDS3NoZWxsOwoKICAgICAgICB9IG9w
 YWM7CiMgNyAicmF1Y2guYyIgMgojIDEgIi4uLy4uL3NvdXJjZS9wYXRoLmgiIDEKCgoKCmV4
 dGVybiBjaGFyIGNoRGF0YVBhdGhbODFdOwoKCmV4dGVybiBpbnQgbGdEYXRhUGF0aFNldDsK
 IyA4ICJyYXVjaC5jIiAyCiMgMSAiLi4vLi4vc291cmNlL2NhbGxlZC5oIiAxCgpleHRlcm4g
 c3RydWN0IHRfY2FsbGVkIHsKCgoKICAgICAgICBpbnQgbGdCdXN0ZWQ7CgoKCiAgICAgICAg
 aW50IGxnVGFsazsKCgoKICAgICAgICBpbnQgbGdUYWxrRm9yY2U7CgoKCiAgICAgICAgaW50
 IGxnVGFsa0lzT0s7CgogICAgICAgIH0gY2FsbGVkOwojIDkgInJhdWNoLmMiIDIKIyAxICIu
 Li8uLi9zb3VyY2UvcmZpZWxkLmgiIDEKCgoKdm9pZCByZmllbGRfemVybyggbG9uZyBsbyAs
 IGxvbmcgaWhpICk7CgoKZXh0ZXJuIGludCBsZ1JmaWVsZE1hbGxvY2VkOwoKZXh0ZXJuIHN0
 cnVjdCB0X3JmaWVsZCB7CiMgMTkgIi4uLy4uL3NvdXJjZS9yZmllbGQuaCIKICAgICAgICBs
 b25nIGludCBuZmx1eDsKCgogICAgICAgIGxvbmcgaW50IG51cHBlcjsKCgogICAgICAgIGZs
 b2F0IGVtbTsKCgogICAgICAgIGZsb2F0IGVnYW1yeTsKCgogICAgICAgIGZsb2F0IEZsdXhG
 YWludDsKCgogICAgICAgIGZsb2F0ICphbnUgOwoKCgogICAgICAgIGZsb2F0ICpBbnVPcmcg
 OwoKCiAgICAgICAgZmxvYXQgKndpZGZseCA7CgoKICAgICAgICBmbG9hdCAqYW51bG9nICwK
 ICAgICAgICAgICphbnVzcXIgLAogICAgICAgICAgKmFudTIgLAogICAgICAgICAgKmFudTMg
 OwoKCgoKCiAgICAgICAgZmxvYXQgKmZsdXggOwoKCiAgICAgICAgZmxvYXQgKmNvbnZvYyA7
 CgoKICAgICAgICBmbG9hdCAqT2NjTnVtYkluY2lkQ29udCA7CgoKICAgICAgICBmbG9hdCAq
 T2NjTnVtYkRpZmZDb250IDsKCgoKICAgICAgICBkb3VibGUgKkNvbnRCb2x0eiA7CgoKCiAg
 ICAgICAgZmxvYXQgKkNvbkVtaXRMb2NhbCA7CgoKICAgICAgICBmbG9hdCAqQ29uRW1pdFJl
 ZmxlYyA7CgoKCgogICAgICAgIGZsb2F0ICpDb25FbWl0T3V0IDsKCgogICAgICAgIGZsb2F0
 ICpDb25JbnRlck91dCA7CgoKICAgICAgICBmbG9hdCAqQ29uUmVmSW5jaWQgOwoKCgoKICAg
 ICAgICBmbG9hdCAqVGhyb3dPdXQgOwoKCgogICAgICAgIGZsb2F0ICpTdW1tZWRDb24gOwog
 ICAgICAgIGZsb2F0ICpTdW1tZWREaWYgOwogICAgICAgIGZsb2F0ICpTdW1tZWRPY2MgOwoK
 CgogICAgICAgIGZsb2F0ICpDb25PVFNfbG9jYWxfcGhvdG9ucyAsCgogICAgICAgICAgICAg
 ICAgKkNvbk9UU19sb2NhbF9PVFNfcmF0ZSA7CgoKCiAgICAgICAgZmxvYXQKCiAgICAgICAg
 ICAgICAgICAqb3RzbGluICwKCiAgICAgICAgICAgICAgICAqb3RzY29uICwKCgoKICAgICAg
 ICAgICAgICAgICAqb3RzbGluTmV3ICwKICAgICAgICAgICAgICAgICAqb3RzY29uTmV3ICwK
 CiAgICAgICAgICAgICAgICAqb3V0bGluICwKICAgICAgICAgICAgICAgICoqb3Rzc2F2IDsK
 CgogICAgICAgIGZsb2F0ICpyZWZsaW4gOwoKCiAgICAgICAgZmxvYXQgKkZsdXhTYXZlIDsK
 CgoKICAgICAgICBmbG9hdCBTdW1PdXRDb24sCiAgICAgICAgICBTdW1JbmNDb24sCgogICAg
 ICAgICAgKlNhdk91dENvbiAsCiAgICAgICAgICBTdW1IT3V0Q29uLAogICAgICAgICAgU3Vt
 SEluY0NvbiwKCiAgICAgICAgICBTdW1PdXRNYXg7CgogICAgICAgIGxvbmcgaW50IGlwU3Vt
 T3V0TWF4OwoKCgogICAgICAgIGZsb2F0IERpZmZQdW1wT247CgoKICAgICAgICBjaGFyICoq
 Y2hMaW5lTGFiZWwgOwoKCiAgICAgICAgY2hhciAqKmNoQ29udExhYmVsIDsKCgogICAgICAg
 IGZsb2F0ICpnZmYgLAogICAgICAgICAgKmdmZmhlMiA7CgoKCiAgICAgICAgY2hhciBjaERm
 ZlRybnNbNF07CgoKCgogICAgICAgIGludCBsZ091dE9ubHk7CgoKCiAgICAgICAgbG9uZyBp
 bnQgaXBFbmVyZ3lCcmVtc1RoaW47CiAgICAgICAgZmxvYXQgRW5lcmd5QnJlbXNUaGluOwoK
 CiAgICAgICAgbG9uZyBpbnQgaXBNYXhCb2x0OwoKCgogICAgICAgIGRvdWJsZSAqY29tdXAg
 LAogICAgICAgICAgKmNvbWRuIDsKCgoKICAgICAgICBmbG9hdCAqY3NpZ2ggLAogICAgICAg
 ICAgKmNzaWdjIDsKCiAgICAgICAgZG91YmxlIGNvbXRvdCwKICAgICAgICAgIGNtaGVhdCwK
 ICAgICAgICAgIGNtY29vbCwKICAgICAgICAgIGNvbW9mZiwKICAgICAgICAgIGNpbnJhdDsK
 CgogICAgICAgIGludCBsZ0NvbVVuZHI7CgoKCgoKICAgICAgICBkb3VibGUgdG90cG93WzEw
 XSwKICAgICAgICAgIHNsb3BlWzEwXSwKICAgICAgICAgIGN1dG9mZlszXVsxMF0sCiAgICAg
 ICAgICBzcGZhY1sxMF07CiAgICAgICAgbG9uZyBpbnQgbnNwZWMsCiAgICAgICAgICBpcHNw
 ZWM7CgoKCiAgICAgICAgZG91YmxlICoqdE51UnlkICwKICAgICAgICAgICoqdHNsb3AgLAoK
 ICAgICAgICAgICoqdEZsdXhMb2cgLAoKCiAgICAgICAgICByYW5nZVsyXVsxMF07CgoKICAg
 ICAgICBmbG9hdCAqQ29uVGFiUmVhZCA7CgoKCiAgICAgICAgY2hhciBjaFNwTm9ybVsxMF1b
 NV0sCiAgICAgICAgICBjaFJTcGVjWzEwXVs1XSwKICAgICAgICAgIGNoU3BUeXBlWzEwXVs2
 XTsKCgogICAgICAgIEZJTEUgKmlvVGFibGVSZWFkWzEwXTsKCn0gcmZpZWxkOwojIDEwICJy
 YXVjaC5jIiAyCiMgMSAiLi4vLi4vc291cmNlL3JlYmluYXRtb3NwaGVyZS5oIiAxCgoKdm9p
 ZCBSZWJpbkF0bW9zcGhlcmUoCgogIGxvbmcgbkNvbnQgLAoKICAgICAgICAgICBmbG9hdCBT
 dGFyRW5lcltdICwKCiAgICAgICAgICAgZmxvYXQgU3RhckZsdXhbXSAsCgogICAgICAgICAg
 ICBmbG9hdCBDbG91ZHlGbHV4W10gLAoKICBsb25nIG5FZGdlICwKCiAgICAgICAgICAgZmxv
 YXQgQWJzb3JiRWRnZVtdICk7CiMgMTEgInJhdWNoLmMiIDIKIyAxICIuLi8uLi9zb3VyY2Uv
 cmF1Y2guaCIgMQoKCnZvaWQgQ29uY2F0UmF1Y2godm9pZCk7CgoKCmludCBHZXRSYXVjaCh2
 b2lkKTsKCgp2b2lkIERvUmF1Y2gobG9uZyBpbnQgKm5zdGFyLAogIGRvdWJsZSB0ZW1wLAog
 IGRvdWJsZSBhbG9nZywKICBsb25nIGludCBpYWJ1bmQpOwojIDEyICJyYXVjaC5jIiAyCiMg
 MjcgInJhdWNoLmMiCnZvaWQgRG9SYXVjaChsb25nIGludCAqbnN0YXIsCiAgZG91YmxlIHRl
 bXAsCiAgZG91YmxlIGFsb2dnLAogIGxvbmcgaW50IGlhYnVuZCkKewoKICAgICAgICBGSUxF
 ICppb0lOIDsKICAgICAgICBjaGFyIGNoTGluZVs4MV07CgogICAgICAgIGxvbmcgaW50IGks
 CiAgICAgICAgICBpcEdyYXYsCiAgICAgICAgICBpcEdyYXZVcCwKICAgICAgICAgIGosCiAg
 ICAgICAgICBpcFRlZmYgLAogICAgICAgICAgaXBUZWZmVXAsCiAgICAgICAgICBrOwoKCgog
 ICAgICAgIGZsb2F0CiAgICAgICAgICAqZmx1eDEgLAogICAgICAgICAgKmZsdXgyIDsKCiAg
 ICAgICAgZG91YmxlIGZhY3QxLAogICAgICAgICAgZmFjdDIsCiAgICAgICAgICBmcjEsCiAg
 ICAgICAgICBmcjIsCiAgICAgICAgICBmcjMsCiAgICAgICAgICBmcjQsCiAgICAgICAgICBs
 dW1pLAogICAgICAgICAgY2hrLAogICAgICAgICAgeHZhbDsKCiAgICAgICAgc3RhdGljIGRv
 dWJsZSB0ZWZmWzY2XT17NTAwMDAuLDUwMDAwLiw1MDAwMC4sNTAwMDAuLDYwMDAwLiw2MDAw
 MC4sCiAgICAgICAgICA2MDAwMC4sNjAwMDAuLDcwMDAwLiw3MDAwMC4sNzAwMDAuLDcwMDAw
 Liw4MDAwMC4sODAwMDAuLDgwMDAwLiwKICAgICAgICAgIDgwMDAwLiw5MDAwMC4sOTAwMDAu
 LDkwMDAwLiw5MDAwMC4sMTAwMDAwLiwxMDAwMDAuLDEwMDAwMC4sMTAwMDAwLiwKICAgICAg
 ICAgIDExMDAwMC4sMTEwMDAwLiwxMTAwMDAuLDEyMDAwMC4sMTIwMDAwLiwxMjAwMDAuLDEz
 MDAwMC4sMTMwMDAwLiwKICAgICAgICAgIDEzMDAwMC4sMTQwMDAwLiwxNDAwMDAuLDE0MDAw
 MC4sMTUwMDAwLiwxNTAwMDAuLDE1MDAwMC4sMTYwMDAwLiwKICAgICAgICAgIDE2MDAwMC4s
 MTYwMDAwLiwxNzAwMDAuLDE3MDAwMC4sMTcwMDAwLiwxODAwMDAuLDE4MDAwMC4sMTgwMDAw
 LiwKICAgICAgICAgIDE5MDAwMC4sMTkwMDAwLiwxOTAwMDAuLDIwMDAwMC4sMjAwMDAwLiwy
 MDAwMDAuLDMwMDAwMC4sMzAwMDAwLiwKICAgICAgICAgIDMwMDAwMC4sNDAwMDAwLiw0MDAw
 MDAuLDUwMDAwMC4sNTAwMDAwLiw2MDAwMDAuLDcwMDAwMC4sODAwMDAwLiwKICAgICAgICAg
 IDkwMDAwMC4sMTAwMDAwMC59OwoKICAgICAgICBzdGF0aWMgZG91YmxlIHhsb2dnWzY2XT17
 NS4sNi4sNy4sOC4sNS4sNi4sNy4sOC4sNS4sNi4sNy4sOC4sCiAgICAgICAgICA1Liw2Liw3
 Liw4Liw1Liw2Liw3Liw4Liw1Liw2Liw3Liw4Liw2Liw3Liw4Liw2Liw3Liw4Liw2Liw3LiwK
 ICAgICAgICAgIDguLDYuLDcuLDguLDYuLDcuLDguLDYuLDcuLDguLDYuLDcuLDguLDYuLDcu
 LDguLDYuLDcuLDguLDcuLAogICAgICAgICAgOC4sOS4sNy4sOC4sOS4sOC4sOS4sOC4sOS4s
 OS4sOS4sOS4sOS4sOS59OwoKICAgICAgICBzdGF0aWMgZG91YmxlIHR2YWxbMjRdPXs1MDAw
 MC4sNjAwMDAuLDcwMDAwLiw4MDAwMC4sOTAwMDAuLDEwMDAwMC4sCiAgICAgICAgICAxMTAw
 MDAuLDEyMDAwMC4sMTMwMDAwLiwxNDAwMDAuLDE1MDAwMC4sMTYwMDAwLiwxNzAwMDAuLDE4
 MDAwMC4sCiAgICAgICAgICAxOTAwMDAuLDIwMDAwMC4sMzAwMDAwLiw0MDAwMDAuLDUwMDAw
 MC4sNjAwMDAwLiw3MDAwMDAuLDgwMDAwMC4sCiAgICAgICAgICA5MDAwMDAuLDEwMDAwMDAu
 fTsKCgoKCiAgICAgICAgc3RhdGljIGxvbmcganZhbFsyNF1bNV09ewogICAgICAgICAgICAg
 ICAgezIsMyw0LDUsNX0sCiAgICAgICAgICAgICAgICB7Niw3LDgsOSw5fSwKICAgICAgICAg
 ICAgICAgIHsxMCwxMSwxMiwxMywxM30sCiAgICAgICAgICAgICAgICB7MTQsMTUsMTYsMTcs
 MTd9LAogICAgICAgICAgICAgICAgezE4LDE5LDIwLDIxLDIxfSwKICAgICAgICAgICAgICAg
 IHsyMiwyMywyNCwyNSwyNX0sCiAgICAgICAgICAgICAgICB7MjYsMjYsMjcsMjgsMjh9LAog
 ICAgICAgICAgICAgICAgezI5LDI5LDMwLDMxLDMxfSwKICAgICAgICAgICAgICAgIHszMiwz
 MiwzMywzNCwzNH0sCiAgICAgICAgICAgICAgICB7MzUsMzUsMzYsMzcsMzd9LAogICAgICAg
 ICAgICAgICAgezM4LDM4LDM5LDQwLDQwfSwKICAgICAgICAgICAgICAgIHs0MSw0MSw0Miw0
 Myw0M30sCiAgICAgICAgICAgICAgICB7NDQsNDQsNDUsNDYsNDZ9LAogICAgICAgICAgICAg
 ICAgezQ3LDQ3LDQ4LDQ5LDQ5fSwKICAgICAgICAgICAgICAgIHs1MCw1MCw1MSw1Miw1Mn0s
 CiAgICAgICAgICAgICAgICB7NTMsNTMsNTMsNTQsNTV9LAogICAgICAgICAgICAgICAgezU2
 LDU2LDU2LDU3LDU4fSwKICAgICAgICAgICAgICAgIHs1OSw1OSw1OSw1OSw2MH0sCiAgICAg
 ICAgICAgICAgICB7NjEsNjEsNjEsNjEsNjJ9LAogICAgICAgICAgICAgICAgezYzLDYzLDYz
 LDYzLDYzfSwKICAgICAgICAgICAgICAgIHs2NCw2NCw2NCw2NCw2NH0sCiAgICAgICAgICAg
 ICAgICB7NjUsNjUsNjUsNjUsNjV9LAogICAgICAgICAgICAgICAgezY2LDY2LDY2LDY2LDY2
 fSwKICAgICAgICAgICAgICAgIHs2Nyw2Nyw2Nyw2Nyw2N30KICAgICAgICB9OwoKICAgICAg
 ICBzaXplX3QgbkJsb2Nrc2l6ZSA9IChzaXplX3QpcmZpZWxkLm51cHBlcipzaXplb2YoZmxv
 YXQgKTsKIyAxMjEgInJhdWNoLmMiCiAgICAgICAgaWYoIChmbHV4MSA9IChmbG9hdCopbWFs
 bG9jKG5CbG9ja3NpemUgKSApID09IDAgKQogICAgICAgICAgICAgICAgYmFkX21hbGxvYygp
 OwogICAgICAgIGlmKCAoZmx1eDIgPSAoZmxvYXQqKW1hbGxvYyhuQmxvY2tzaXplICkgKSA9
 PSAwICkKICAgICAgICAgICAgICAgIGJhZF9tYWxsb2MoKTsKCiAgICAgICAgaWYoIGxnRGF0
 YVBhdGhTZXQgKQogICAgICAgIHsKCiAgICAgICAgICAgICAgICBzdHJjcHkoIGNoTGluZSAs
 IGNoRGF0YVBhdGggKTsKICAgICAgICAgICAgICAgIGlmKCBpYWJ1bmQgPT0gMCApCiAgICAg
 ICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICBzdHJjYXQoIGNoTGluZSwg
 InJhdWNoX3NvbGFyLm1vZCIgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
 IGVsc2UKICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNh
 dCggY2hMaW5lLCAicmF1Y2hfaGFsby5tb2QiICk7CiAgICAgICAgICAgICAgICB9CiAgICAg
 ICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CgogICAgICAgICAgICAgICAgaWYoIGlhYnVu
 ZCA9PSAwICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
 Y3B5KCBjaExpbmUsICJyYXVjaF9zb2xhci5tb2QiICk7CiAgICAgICAgICAgICAgICB9CiAg
 ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
 ICAgICAgIHN0cmNweSggY2hMaW5lLCAicmF1Y2hfaGFsby5tb2QiICk7CiAgICAgICAgICAg
 ICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggKGlvSU4gPSBmb3BlbiggY2hMaW5lICwg
 InJiIiApKSA9PSAwICkKICAgICAgICB7CgogICAgICAgICAgICAgICAgZnByaW50ZiggaW9R
 UVEsICJFcnJvcjogUmF1Y2ggc3RlbGxhciBhdG1vc3BoZXJlIGZpbGUgcmF1Y2hfc29sYXIu
 bW9kIG9yIHJhdWNoX2hhbG8ubW9kIG5vdCBmb3VuZC5cbiIgKTsKICAgICAgICAgICAgICAg
 IGZwcmludGYoIGlvUVFRLCAiIFRoZSBwYXRoIEkgdHJpZWQ6ID09JXM9PVxuIiwgY2hMaW5l
 ICk7CiAgICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwgIiBBbmQgaGVyZSBjb21lcyBp
 dHMgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb246XG4iICk7CiAgICAgICAgICAgICAgICBm
 b3IoIGk9MDsgaSA8IDgxOyBpKysgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
 ICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwgIiAnJWMnPSUjMDJ4IiwgY2hMaW5lW2ldLCAo
 dW5zaWduZWQgaW50KWNoTGluZVtpXSApOwogICAgICAgICAgICAgICAgICAgICAgICBpZigg
 Y2hMaW5lW2ldID09ICdcMCcgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg
 ICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLCAiXG4iICk7CiAgICAgICAgICAgICAgICBw
 dXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAgICAgICAgICBjZEVYSVQoMSk7
 CiAgICAgICAgfQoKCiAgICAgICAgaWYoIGFicyggZnJlYWQoIGZsdXgxLCAxLCBuQmxvY2tz
 aXplLGlvSU4gKSAtIChpbnQpbkJsb2Nrc2l6ZSApICE9MCApCiAgICAgICAgewogICAgICAg
 ICAgICAgICAgZnByaW50ZiggaW9RUVEsICIgcHJvYmxlbSB0cnlpbmcgdG8gcmVhZCByYXVj
 aC5tb2Qgd2F2ZWxlbmd0aHMgXG4iICk7CiAgICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FR
 USwgIiBJIGV4cGVjdGVkIHRvIHJlYWQgJWxpIHdvcmRzLCBidXQgZnJlYWQgd2FzIHNob3J0
 XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAobG9uZyluQmxvY2tzaXplICk7CiAgICAg
 ICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAgICAgICAg
 ICBjZEVYSVQoMSk7CiAgICAgICAgfQoKICAgICAgICBmb3IoIGo9MDsgaiA8IHJmaWVsZC5u
 dXBwZXI7IGorKyApCiAgICAgICAgewoKCiAgICAgICAgICAgICAgICByZmllbGQudE51Unlk
 W2pdW3JmaWVsZC5uc3BlY10gPSBmbHV4MVtqXTsKICAgICAgICB9CgoKICAgICAgICBpZigg
 MCApIHsKICAgICAgICAgICAgICAgIGZvciggaj0wOyBqIDwgNjY7IGorKyApIHsKICAgICAg
 ICAgICAgICAgICAgICAgICAgaWYoIGFicyggZnJlYWQoIHJmaWVsZC5mbHV4LCAxLCBuQmxv
 Y2tzaXplLCBpb0lOICkgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50
 KW5CbG9ja3NpemUgKSAhPSAwICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 IGZwcmludGYoIGlvUVFRLCAiIHByb2JsZW0gdHJ5aW5nIHRvIHJlYWQgcmF1Y2ggbW9kZWwg
 JWxpXG4iLCBqKzEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRm
 KCBpb1FRUSwgIiBJIGV4cGVjdGVkIHRvIHJlYWQgJWxpIHdvcmRzLCBidXQgZnJlYWQgd2Fz
 IHNob3J0XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs
 b25nKW5CbG9ja3NpemUgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRz
 KCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgY2RFWElUKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
 ICAgICAgICAgIGx1bWkgPSAwLjsKCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciggaz0x
 OyBrIDwgcmZpZWxkLm51cHBlcjsgaysrICkgewogICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgIGx1bWkgKz0gKHJmaWVsZC50TnVSeWRba11bcmZpZWxkLm5zcGVjXSAtIHJmaWVs
 ZC50TnVSeWRbay0xXVtyZmllbGQubnNwZWNdKSoKICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgIChyZmllbGQuZmx1eFtrXSArIHJmaWVsZC5mbHV4W2stMV0pLzIu
 OwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBj
 aGsgPSBwb3cobHVtaSooMi45OTc5MjQ1OGUxMCoxLjA5NzM3MzE1Njg1NDllNSkvKDMuMTQx
 NTkyNjUzNTg5NzkzMjM4NDYyNjQzKjMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzLzYwLiox
 LjM4MDY1MDNlLTE2KjEuMzgwNjUwM2UtMTYqMS4zODA2NTAzZS0xNioxLjM4MDY1MDNlLTE2
 Lyg2LjYyNjA2ODc2ZS0yNy8oMi4qMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMpKS8oNi42
 MjYwNjg3NmUtMjcvKDIuKjMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzKSkvKDYuNjI2MDY4
 NzZlLTI3LygyLiozLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MykpLzIuOTk3OTI0NThlMTAv
 Mi45OTc5MjQ1OGUxMCksMC4yNSk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiggZmFi
 cygodGVmZltqXS1jaGspL3RlZmZbal0pID4gMC4wMiApIHsKICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICBwcmludGYoICIqKiogV0FSTklORywgVF9lZmYgZGlzY3JlcGFuY3kg
 Zm9yIG1vZGVsICVsaSwgZXhwZWN0ZWQgdGVmZiAlLjJmLCAiLAogICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgaisxLCB0ZWZmW2pdKTsKICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICBwcmludGYoImxvZyhnKSAlLjJmLCBpbnRlZ3JhdGlvbiB5aWVs
 ZGVkIHRlZmYgJS4yZlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgIHhsb2dnW2pdLCBjaGsgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
 ICAgICAgICAgfQogICAgICAgIH0KCgogICAgICAgIGlwVGVmZiA9IC0xOwogICAgICAgIGZv
 ciggaj0wOyBqIDwgMjM7IGorKyApCiAgICAgICAgewogICAgICAgICAgICAgICAgaWYoIHR2
 YWxbal0gPD0gdGVtcCAmJiB0dmFsW2orMV0gPiB0ZW1wICkKICAgICAgICAgICAgICAgIHsK
 CiAgICAgICAgICAgICAgICAgICAgICAgIGlwVGVmZiA9IGo7CiAgICAgICAgICAgICAgICAg
 ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KCgogICAgICAgIGlm
 KCBpcFRlZmY8MCApCiAgICAgICAgewoKICAgICAgICAgICAgICAgIGlmKCB0dmFsWzIzXSA9
 PSB0ZW1wICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaXBU
 ZWZmID0gMjM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAg
 ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLAog
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgUmVxdWVzdGVkIHRlbXBlcmF0dXJl
 IG9mJTExLjJlIGlzIG5vdCB3aXRoaW4gdGhlIHJhbmdlIgogICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICIlMTAuMmUgdG8gZSUxMC4yZVxuIiwKICAgICAgICAgICAgICAgICAg
 ICAgICAgICB0ZW1wLCB0dmFsWzBdLCB0dmFsWzIzXSApOwogICAgICAgICAgICAgICAgICAg
 ICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAgICAgICAgICAgICAg
 ICAgIGNkRVhJVCgxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CgoKICAgICAgICBp
 cFRlZmZVcCA9ICgoKGlwVGVmZisxKTwoMjMpKSA/IChpcFRlZmYrMSkgOiAoMjMpKTsKCgoK
 CgoKCiAgICAgICAgeHZhbCA9IChhbG9nZyAtIDUuMCk7CgogICAgICAgIGlwR3JhdiA9IChs
 b25nKSh4dmFsKTsKICAgICAgICBpcEdyYXYgPSAoKCgwKT4oaXBHcmF2KSkgPyAoMCkgOiAo
 aXBHcmF2KSk7CiAgICAgICAgaXBHcmF2ID0gKCgoaXBHcmF2KTwoNCkpID8gKGlwR3Jhdikg
 OiAoNCkpOwogICAgICAgIGlwR3JhdlVwID0gKCgoaXBHcmF2KzEpPCg0KSkgPyAoaXBHcmF2
 KzEpIDogKDQpKTsKIyAyODAgInJhdWNoLmMiCiAgICAgICAgZnIxID0geHZhbCAtIChmbG9h
 dCkoaXBHcmF2KTsKICAgICAgICBmcjIgPSAoMS4gLSBmcjEpOwoKCiAgICAgICAgaWYoIGlw
 VGVmZlVwID09IGlwVGVmZiApCiAgICAgICAgewogICAgICAgICAgICAgICAgZnIzID0gMC47
 CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICAgICBmcjMg
 PSAoKHRlbXAgLSB0dmFsW2lwVGVmZl0pLyh0dmFsW2lwVGVmZlVwXSAtIHR2YWxbaXBUZWZm
 XSkpOwogICAgICAgIH0KICAgICAgICBmcjQgPSAxLiAtIGZyMzsKCiAgICAgICAgaWYoIGZy
 Mz4xLiB8fCBmcjMgPCAwLiApCiAgICAgICAgewogICAgICAgICAgICAgICAgZnByaW50Zigg
 aW9RUVEsCiAgICAgICAgICAgICAgICAgICAgICAgICIgZnIzIGluc2FuaXR5IGluIERvUmF1
 Y2hcbiIgKTsKICAgICAgICAgICAgICAgIFNob3dNZSgpOwogICAgICAgICAgICAgICAgcHV0
 cyggIltTdG9wIGluIERvUmF1Y2hdIiApOwogICAgICAgICAgICAgICAgY2RFWElUKDEpOwog
 ICAgICAgIH0KCiAgICAgICAgaWYoIGZyMj4xLiB8fCBmcjIgPCAwLiApCiAgICAgICAgewog
 ICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEsCiAgICAgICAgICAgICAgICAgICAgICAg
 ICIgZnIyIGluc2FuaXR5IGluIERvUmF1Y2hcbiIgKTsKICAgICAgICAgICAgICAgIFNob3dN
 ZSgpOwogICAgICAgICAgICAgICAgcHV0cyggIltTdG9wIGluIERvUmF1Y2hdIiApOwogICAg
 ICAgICAgICAgICAgY2RFWElUKDEpOwogICAgICAgIH0KCgogICAgICAgIGlmKCBmc2Vlayhp
 b0lOLCAoanZhbFtpcFRlZmZdW2lwR3Jhdl0tMSkqbkJsb2Nrc2l6ZSwgMCApIT0gMCApCiAg
 ICAgICAgewogICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEsICIgRXJyb3IxIHNlZWtp
 bmcgUmF1Y2ggYXRtb3NwaGVyZSU0bGRcbiIsCiAgICAgICAgICAgICAgICAgIGp2YWxbaXBU
 ZWZmXVtpcEdyYXZdICk7CiAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVj
 aF0iICk7CiAgICAgICAgICAgICAgICBjZEVYSVQoMSk7CiAgICAgICAgfQoKICAgICAgICBp
 ZiggYWJzKCBmcmVhZCggZmx1eDEsIDEgLCBuQmxvY2tzaXplLCBpb0lOICkgLQogICAgICAg
 ICAgICAgICAgKGludCluQmxvY2tzaXplKSAhPSAwICkKICAgICAgICB7CiAgICAgICAgICAg
 ICAgICBmcHJpbnRmKCBpb1FRUSwgIiBFcnJvcjEgdHJ5aW5nIHRvIHJlYWQgUmF1Y2ggYXRt
 b3NwaGVyZSU0bGRcbiIsCiAgICAgICAgICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZd
 ICk7CiAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAg
 ICAgICAgICAgICBjZEVYSVQoMSk7CiAgICAgICAgfQoKICAgICAgICBpZiggY2FsbGVkLmxn
 VGFsayApCiAgICAgICAgewoKICAgICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLAogICAg
 ICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAqIDw8PCBSYXVj
 aCBtb2RlbCAlM2xkIHJlYWQgaW4iCiAgICAgICAgICAgICAgICAgICAgICAgICIuICBUX2Vm
 ZiA9ICUxMC4yZiBsb2coZykgPSAlOC41ZiAgPj4+ICAgICAgICAgKlxuIiwKCiAgICAgICAg
 ICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZdLTEsCiAgICAgICAgICAgICAgICAgICB0
 ZWZmW2p2YWxbaXBUZWZmXVtpcEdyYXZdLTJdLAogICAgICAgICAgICAgICAgICB4bG9nZ1tq
 dmFsW2lwVGVmZl1baXBHcmF2XS0yXSApOwogICAgICAgIH0KCiAgICAgICAgaWYoIGZzZWVr
 KGlvSU4sIChqdmFsW2lwVGVmZlVwXVtpcEdyYXZdLTEpKm5CbG9ja3NpemUsIDAgKSE9IDAg
 KQogICAgICAgIHsKICAgICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLCAiIEVycm9yMiBz
 ZWVraW5nIFJhdWNoIGF0bW9zcGhlcmUlNGxkXG4iLAogICAgICAgICAgICAgICAgICBqdmFs
 W2lwVGVmZlVwXVtpcEdyYXZdICk7CiAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4g
 RG9SYXVjaF0iICk7CiAgICAgICAgICAgICAgICBjZEVYSVQoMSk7CiAgICAgICAgfQoKICAg
 ICAgICBpZiggYWJzKCBmcmVhZCggZmx1eDIsIDEgLCBuQmxvY2tzaXplLCBpb0lOICkgLQog
 ICAgICAgICAgICAgICAgKGludCluQmxvY2tzaXplKSAhPSAwICkKICAgICAgICB7CiAgICAg
 ICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwgIiBFcnJvcjIgdHJ5aW5nIHRvIHJlYWQgUmF1
 Y2ggYXRtb3NwaGVyZSU0bGRcbiIsCiAgICAgICAgICAgICAgICAgIGp2YWxbaXBUZWZmVXBd
 W2lwR3Jhdl0gKTsKICAgICAgICAgICAgICAgIHB1dHMoICJbU3RvcCBpbiBEb1JhdWNoXSIg
 KTsKICAgICAgICAgICAgICAgIGNkRVhJVCgxKTsKICAgICAgICB9CgoKICAgICAgICBmb3Io
 IGk9MDsgaTxyZmllbGQubnVwcGVyOyArK2kgKQogICAgICAgIHsKICAgICAgICAgICAgICAg
 IGZsdXgxW2ldID0gKGZsb2F0KWxvZzEwKCAoKCgxZS0zNyk+KGZsdXgxW2ldKSkgPyAoMWUt
 MzcpIDogKGZsdXgxW2ldKSkgKTsKICAgICAgICAgICAgICAgIGZsdXgyW2ldID0gKGZsb2F0
 KWxvZzEwKCAoKCgxZS0zNyk+KGZsdXgyW2ldKSkgPyAoMWUtMzcpIDogKGZsdXgyW2ldKSkg
 KTsKICAgICAgICB9CgogICAgICAgIGlmKCBjYWxsZWQubGdUYWxrICkKICAgICAgICB7CiAg
 ICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwgIiAgICAgICAgICAgICAgICAgICAgICAg
 KiA8PDwgUmF1Y2ggbW9kZWwgJTNsZCByZWFkIGluLiAgVF9lZmYgPSAlMTAuMmYgbG9nKGcp
 ID0gJTguNWYgID4+PiAgICAgICAgICpcbiIsCiAgICAgICAgICAgICAgICAgIGp2YWxbaXBU
 ZWZmVXBdW2lwR3Jhdl0tMSwKICAgICAgICAgICAgICAgICAgIHRlZmZbanZhbFtpcFRlZmZV
 cF1baXBHcmF2XS0yXSwKICAgICAgICAgICAgICAgICAgeGxvZ2dbanZhbFtpcFRlZmZVcF1b
 aXBHcmF2XS0yXSApOwogICAgICAgIH0KIyAzODQgInJhdWNoLmMiCiAgICAgICAgaWYoIHRl
 bXAgPiAyMDAwMDAuICkKICAgICAgICB7CiAgICAgICAgICAgICAgICBmYWN0MSA9IGxvZzEw
 KHRlbXAvdHZhbFtpcFRlZmZdKSo0LjsKICAgICAgICAgICAgICAgIGZhY3QyID0gbG9nMTAo
 dGVtcC90dmFsW2lwVGVmZlVwXSkqNC47CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAg
 ICB7CiAgICAgICAgICAgICAgICBmYWN0MSA9IDAuOwogICAgICAgICAgICAgICAgZmFjdDIg
 PSAwLjsKICAgICAgICB9CgoKICAgICAgICBmb3IoIGo9MDsgaiA8IHJmaWVsZC5udXBwZXI7
 IGorKyApCiAgICAgICAgewogICAgICAgICAgICAgICAgcmZpZWxkLmZsdXhbal0gPQogICAg
 ICAgICAgICAgICAgICAgICAgICAoZmxvYXQpKGZyNCooZmx1eDFbal0gKyBmYWN0MSkgKyBm
 cjMqKGZsdXgyW2pdICsgZmFjdDIpKTsKICAgICAgICB9CgoKICAgICAgICBpZiggaXBHcmF2
 IDwgNCApCiAgICAgICAgewoKCiAgICAgICAgICAgICAgICBpZiggZnNlZWsoaW9JTiwgKGp2
 YWxbaXBUZWZmXVtpcEdyYXZVcF0tMSkqbkJsb2Nrc2l6ZSwgMCApIT0gMCApCiAgICAgICAg
 ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLCAiIEVy
 cm9yMyBzZWVraW5nIFJhdWNoIGF0bW9zcGhlcmUlNGxkXG4iLAogICAgICAgICAgICAgICAg
 ICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZVcF0gKTsKICAgICAgICAgICAgICAgICAg
 ICAgICAgcHV0cyggIltTdG9wIGluIERvUmF1Y2hdIiApOwogICAgICAgICAgICAgICAgICAg
 ICAgICBjZEVYSVQoMSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYo
 IGFicyggZnJlYWQoIGZsdXgxLCAxICwgbkJsb2Nrc2l6ZSwgaW9JTiApIC0KICAgICAgICAg
 ICAgICAgICAgICAgICAgKGludCluQmxvY2tzaXplKSAhPSAwICkKICAgICAgICAgICAgICAg
 IHsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEsICIgRXJyb3IzIHRy
 eWluZyB0byByZWFkIFJhdWNoIGF0bW9zcGhlcmUlNGxkXG4iLAogICAgICAgICAgICAgICAg
 ICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZdICk7CiAgICAgICAgICAgICAgICAgICAg
 ICAgIHB1dHMoICJbU3RvcCBpbiBEb1JhdWNoXSIgKTsKICAgICAgICAgICAgICAgICAgICAg
 ICAgY2RFWElUKDEpOwogICAgICAgICAgICAgICAgfQoKCiAgICAgICAgICAgICAgICBmb3Io
 IGk9MDsgaTxyZmllbGQubnVwcGVyOyArK2kgKQogICAgICAgICAgICAgICAgewogICAgICAg
 ICAgICAgICAgICAgICAgICBmbHV4MVtpXSA9IChmbG9hdClsb2cxMCggKCgoMWUtMzcpPihm
 bHV4MVtpXSkpID8gKDFlLTM3KSA6IChmbHV4MVtpXSkpICk7CiAgICAgICAgICAgICAgICB9
 CgogICAgICAgICAgICAgICAgaWYoIGNhbGxlZC5sZ1RhbGsgKQogICAgICAgICAgICAgICAg
 ewogICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwKICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAqIDw8PCBSYXVj
 aCBtb2RlbCAlM2xkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgcmVhZCBp
 bi4gIFRfZWZmID0gJTEwLjJmIGxvZyhnKSA9ICU4LjVmICA+Pj4gICAgICAgICAqXG4iLAog
 ICAgICAgICAgICAgICAgICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZVcF0tMSwKICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgdGVmZltqdmFsW2lwVGVmZl1baXBHcmF2VXBdLTJd
 LAogICAgICAgICAgICAgICAgICAgICAgICAgIHhsb2dnW2p2YWxbaXBUZWZmXVtpcEdyYXZV
 cF0tMl0gKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggZnNlZWso
 aW9JTiwgKGp2YWxbaXBUZWZmVXBdW2lwR3JhdlVwXS0xKSpuQmxvY2tzaXplLCAwICkhPSAw
 ICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50Zigg
 aW9RUVEsICIgRXJyb3IyIHNlZWtpbmcgUmF1Y2ggYXRtb3NwaGVyZSU0bGRcbiIsCiAgICAg
 ICAgICAgICAgICAgICAgICAgICAganZhbFtpcFRlZmZVcF1baXBHcmF2XSApOwogICAgICAg
 ICAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAg
 ICAgICAgICAgICAgICAgIGNkRVhJVCgxKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
 ICAgICAgICBpZiggYWJzKCBmcmVhZCggZmx1eDIsIDEgLCBuQmxvY2tzaXplLCBpb0lOICkg
 LQogICAgICAgICAgICAgICAgICAgICAgICAoaW50KW5CbG9ja3NpemUpICE9IDAgKQogICAg
 ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwg
 IiBFcnJvcjIgdHJ5aW5nIHRvIHJlYWQgUmF1Y2ggYXRtb3NwaGVyZSU0bGRcbiIsCiAgICAg
 ICAgICAgICAgICAgICAgICAgICAganZhbFtpcFRlZmZVcF1baXBHcmF2XSApOwogICAgICAg
 ICAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAg
 ICAgICAgICAgICAgICAgIGNkRVhJVCgxKTsKICAgICAgICAgICAgICAgIH0KCgogICAgICAg
 ICAgICAgICAgZm9yKCBpPTA7IGk8cmZpZWxkLm51cHBlcjsgKytpICkKICAgICAgICAgICAg
 ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZmx1eDJbaV0gPSAoZmxvYXQpbG9nMTAo
 ICgoKDFlLTM3KT4oZmx1eDJbaV0pKSA/ICgxZS0zNykgOiAoZmx1eDJbaV0pKSApOwogICAg
 ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCBjYWxsZWQubGdUYWxrICkKICAg
 ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEs
 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAg
 ICAgKiA8PDwgUmF1Y2ggbW9kZWwgJTNsZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAiIHJlYWQgaW4uICBUX2VmZiA9ICUxMC4yZiBsb2coZykgPSAlOC41ZiAgPj4+ICAg
 ICAgICAgKlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBqdmFsW2lwVGVmZlVwXVtp
 cEdyYXZVcF0tMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVmZltqdmFsW2lwVGVm
 ZlVwXVtpcEdyYXZVcF0tMl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgeGxvZ2dbanZh
 bFtpcFRlZmZVcF1baXBHcmF2VXBdLTJdICk7CiAgICAgICAgICAgICAgICB9CgoKCiAgICAg
 ICAgICAgICAgICBmb3IoIGo9MDsgaiA8IHJmaWVsZC5udXBwZXI7IGorKyApCiAgICAgICAg
 ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsdXgxW2pdID0gKGZsb2F0KSgo
 Zmx1eDFbal0gKyBmYWN0MSkqZnI0ICsgKGZsdXgyW2pdICsgZmFjdDIpKmZyMyk7CiAgICAg
 ICAgICAgICAgICB9CgoKCiAgICAgICAgICAgICAgICBmb3IoIGo9MDsgaiA8IHJmaWVsZC5u
 dXBwZXI7IGorKyApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
 IHJmaWVsZC5mbHV4W2pdID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxv
 YXQpcG93KDEwLixmcjIqcmZpZWxkLmZsdXhbal0gKyBmcjEqZmx1eDFbal0pOwogICAgICAg
 ICAgICAgICAgICAgICAgICBpZiggcmZpZWxkLmZsdXhbal0gPCAxZS0zNyApCiAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgcmZpZWxkLmZsdXhbal0gPSAwLjsKICAgICAgICAg
 ICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKCgogICAgICAgICAg
 ICAgICAgZm9yKCBqPTA7IGogPCByZmllbGQubnVwcGVyOyBqKysgKQogICAgICAgICAgICAg
 ICAgewogICAgICAgICAgICAgICAgICAgICAgICByZmllbGQuZmx1eFtqXSA9IChmbG9hdClw
 b3coMTAuLHJmaWVsZC5mbHV4W2pdKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHJm
 aWVsZC5mbHV4W2pdIDwgMWUtMzcgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 IHJmaWVsZC5mbHV4W2pdID0gMC47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQoKCiAg
 ICAgICAgbHVtaSA9IDAuOwoKICAgICAgICBmb3IoIGs9MTsgayA8IHJmaWVsZC5udXBwZXI7
 IGsrKyApIHsKICAgICAgICAgICAgICAgIGx1bWkgKz0gKHJmaWVsZC50TnVSeWRba11bcmZp
 ZWxkLm5zcGVjXSAtIHJmaWVsZC50TnVSeWRbay0xXVtyZmllbGQubnNwZWNdKSoKICAgICAg
 ICAgICAgICAgICAgICAgICAgKHJmaWVsZC5mbHV4W2tdICsgcmZpZWxkLmZsdXhbay0xXSkv
 Mi47CiAgICAgICAgfQoKICAgICAgICBjaGsgPSBwb3cobHVtaSooMi45OTc5MjQ1OGUxMCox
 LjA5NzM3MzE1Njg1NDllNSkvKDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzKjMuMTQxNTky
 NjUzNTg5NzkzMjM4NDYyNjQzLzYwLioxLjM4MDY1MDNlLTE2KjEuMzgwNjUwM2UtMTYqMS4z
 ODA2NTAzZS0xNioxLjM4MDY1MDNlLTE2Lyg2LjYyNjA2ODc2ZS0yNy8oMi4qMy4xNDE1OTI2
 NTM1ODk3OTMyMzg0NjI2NDMpKS8oNi42MjYwNjg3NmUtMjcvKDIuKjMuMTQxNTkyNjUzNTg5
 NzkzMjM4NDYyNjQzKSkvKDYuNjI2MDY4NzZlLTI3LygyLiozLjE0MTU5MjY1MzU4OTc5MzIz
 ODQ2MjY0MykpLzIuOTk3OTI0NThlMTAvMi45OTc5MjQ1OGUxMCksMC4yNSk7CgoKCiAgICAg
 ICAgaWYoIGZhYnMoKHRlbXAtY2hrKS90ZW1wKSA+IDAuMTAgJiYgY2FsbGVkLmxnVGFsayAp
 CiAgICAgICAgewoKCgogICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEsCiAgICAgICAg
 ICAgICAgICAgICAgICAgICAiKioqIFdBUk5JTkcsIFRfZWZmIGRpc2NyZXBhbmN5IGZvciB0
 aGlzIG1vZGVsLCBleHBlY3RlZCB0ZWZmICUuMmYsICIKICAgICAgICAgICAgICAgICAgICAg
 ICAgICJsb2coZykgJS4yZiwgaW50ZWdyYXRpb24geWllbGRlZCB0ZWZmICUuMmYsIGRlbHRh
 ICUuMmYlJVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAsIGFsb2dnLCBjaGss
 IChjaGstdGVtcCkvdGVtcCoxMDAuICk7CiAgICAgICAgICAgICAgICBpbnNhbmUoKTsKICAg
 ICAgICAgICAgICAgIFNob3dNZSgpOwogICAgICAgICAgICAgICAgcHV0cyggIltTdG9wIGlu
 IERvUmF1Y2hdIiApOwogICAgICAgICAgICAgICAgY2RFWElUKDEpOwogICAgICAgIH0KIyA1
 NTkgInJhdWNoLmMiCiAgICAgICAgZm9yKCBqPTA7IGogPCByZmllbGQubnVwcGVyOyBqKysg
 KQogICAgICAgIHsKCiAgICAgICAgICAgICAgICByZmllbGQudHNsb3Bbal1bcmZpZWxkLm5z
 cGVjXSA9IHJmaWVsZC5mbHV4W2pdOwogICAgICAgIH0KCiAgICAgICAgKm5zdGFyID0gcmZp
 ZWxkLm51cHBlciA7CiAgICAgICAgZmNsb3NlKCBpb0lOICk7CgogICAgICAgIGZyZWUoZmx1
 eDEpOwogICAgICAgIGZyZWUoZmx1eDIpOwoKCgoKCgogICAgICAgIHJldHVybjsKfQo=
 --------------060208020305070509010903--
 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03 15:28 rth
  0 siblings, 0 replies; 5+ messages in thread
From: rth @ 2002-04-03 15:28 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, rth, vanhoof

Synopsis: Optimizer generates illegal assembly code

State-Changed-From-To: open->closed
State-Changed-By: rth
State-Changed-When: Wed Apr  3 15:28:55 2002
State-Changed-Why:
    Fixed for gcc 3.1.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03 14:10 rth
  0 siblings, 0 replies; 5+ messages in thread
From: rth @ 2002-04-03 14:10 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, rth, vanhoof

Synopsis: Optimizer generates illegal assembly code

Responsible-Changed-From-To: unassigned->rth
Responsible-Changed-By: rth
Responsible-Changed-When: Wed Apr  3 14:10:13 2002
Responsible-Changed-Why:
    .

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03 10:53 rth
  0 siblings, 0 replies; 5+ messages in thread
From: rth @ 2002-04-03 10:53 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, vanhoof

Synopsis: Optimizer generates illegal assembly code

State-Changed-From-To: feedback->open
State-Changed-By: rth
State-Changed-When: Wed Apr  3 10:53:47 2002
State-Changed-Why:
    Replacement file received.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03  0:48 rth
  0 siblings, 0 replies; 5+ messages in thread
From: rth @ 2002-04-03  0:48 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, vanhoof

Synopsis: Optimizer generates illegal assembly code

State-Changed-From-To: open->feedback
State-Changed-By: rth
State-Changed-When: Wed Apr  3 00:48:26 2002
State-Changed-Why:
    bunzip2: Compressed file ends unexpectedly; perhaps it is corrupted?
    
    Could you re-send the file please?

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2002-04-03 23:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-03  7:46 optimization/4330: Optimizer generates illegal assembly code Peter van Hoof
  -- strict thread matches above, loose matches on Subject: below --
2002-04-03 15:28 rth
2002-04-03 14:10 rth
2002-04-03 10:53 rth
2002-04-03  0:48 rth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).