From: Michael King Date: 2009-03-07T02:34:17+09:00 Subject: [ruby-core:22702] Re: MBARI8 patch fixes bugs caused by incorrect volatile variable declarations --00151751149a53bd8c046476b7de Content-Type: multipart/alternative; boundary=00151751149a53bd81046476b7dc --00151751149a53bd81046476b7dc Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Its been way too long since I have used gdb, and I haven't ever had to look at core files before so the tutorial filled in the gaps of my memory and knowledge. It was just as simple as gdb ruby core, previously I was trying to use just the core file, chalk it up to user error. The back trace (non full) is: #0 0xffffe410 in __kernel_vsyscall () #1 0xb7ddd9a1 in raise () from /lib/tls/i686/cmov/libc.so.6 #2 0xb7ddf2b9 in abort () from /lib/tls/i686/cmov/libc.so.6 #3 0x080ef392 in rb_bug (fmt=0x810a146 "Segmentation fault") at error.c:214 #4 0x080c4ba2 in sigsegv (sig=11) at signal.c:630 #5 #6 0x0806455c in scope_dup (scope=0xb5eb3b64) at eval.c:8368 #7 0x0806476c in blk_copy_prev (block=0xadb5b28) at eval.c:8449 #8 0x0806ad68 in rb_thread_start_0 (fn=0x806b0a7 , arg=0xb60a907c, th=0xa986948) at eval.c:12332 #9 0x0806b2ae in rb_thread_initialize (thread=3054145560, args=3054145660) at eval.c:12509 #10 0x0805f897 in call_cfunc (func=0x806b1ff , recv=3054145560, len=-2, argc=0, argv=0x0) at eval.c:5851 #11 0x0805ede2 in rb_call0 (klass=3084582780, recv=3054145560, id=2961, oid=2961, argc=0, argv=0x0, body=0xb7daff18, flags=2) at eval.c:6009 #12 0x080603dc in rb_call (klass=3084582780, recv=3054145560, mid=2961, argc=0, argv=0x0, scope=1, self=6) at eval.c:6255 #13 0x0806077b in rb_funcall2 (recv=3054145560, mid=2961, argc=0, argv=0x0) at eval.c:6391 #14 0x0806333e in rb_obj_call_init (obj=3054145560, argc=0, argv=0x0) at eval.c:7792 #15 0x0806b1c2 in rb_thread_s_new (argc=0, argv=0x0, klass=3084582780) at eval.c:12463 #16 0x0805f8bb in call_cfunc (func=0x806b18f , recv=3084582780, len=-1, argc=0, argv=0x0) at eval.c:5854 #17 0x0805ede2 in rb_call0 (klass=3084582760, recv=3084582780, id=3353, oid=3353, argc=0, argv=0x0, body=0xb7daff40, flags=0) at eval.c:6009 #18 0x080603dc in rb_call (klass=3084582760, recv=3084582780, mid=3353, argc=0, argv=0x0, scope=0, self=3059129460) at eval.c:6255 #19 0x08059011 in eval_call (self=3059129460, node=0xb7b9f930) at eval.c:3369 #20 0x0805ae8c in rb_eval (self=3059129460, node=0xb7b9f930) at eval.c:4032 #21 0x08058516 in eval_iter (self=3059129460, node=0xb7b9f2f0) at eval.c:3188 #22 0x0805aae3 in rb_eval (self=3059129460, node=0xb7b9f2f0) at eval.c:3928 #23 0x0805f539 in rb_call0 (klass=3082341100, recv=3059129460, id=31121, oid=31121, argc=0, argv=0x0, body=0xb7b9f2a0, flags=2) at eval.c:6160 #24 0x080603dc in rb_call (klass=3082341100, recv=3059129460, mid=31121, argc=0, argv=0x0, scope=2, self=3059129460) at eval.c:6255 #25 0x0805aef3 in rb_eval (self=3059129460, node=0xb7b9eff8) at eval.c:4041 #26 0x08058923 in eval_ensure (self=3059129460, node=0xb7b9ef94) at eval.c:3286 #27 0x0805acb6 in rb_eval (self=3059129460, node=0xb7b9ef94) at eval.c:3981 #28 0x0805d09e in rb_yield_0 (val=3059105960, self=3059129460, klass=0, flags=1, avalue=2) at eval.c:5195 #29 0x0806b18d in rb_thread_yield (arg=3059105960, th=0x9fd0990) at eval.c:12435 #30 0x0806ae9c in rb_thread_start_0 (fn=0x806b0a7 , arg=0xb65640a8, th=0x9fd0990) at eval.c:12353 #31 0x0806b2f6 in rb_thread_start (klass=3084582780, args=3059105960) at eval.c:12530 #32 0x0805f897 in call_cfunc (func=0x806b2b0 , recv=3084582780, len=-2, argc=0, argv=0x0) at eval.c:5851 #33 0x0805ede2 in rb_call0 (klass=3052748260, recv=184084296, id=0, oid=7842062, argc=8, argv=0x24, body=0x13c1, flags=-1079738288) at eval.c:6009 #34 0x0806ae9c in rb_thread_start_0 (fn=0x806b0a7 , arg=0xb5f53de4, th=0xaf8e748) at eval.c:12353 #35 0x0806b2f6 in rb_thread_start (klass=3084582780, args=3052748260) at eval.c:12530 #36 0x0805f897 in call_cfunc (func=0x806b2b0 , recv=3084582780, len=-2, argc=0, argv=0x0) at eval.c:5851 #37 0x0805ede2 in rb_call0 (klass=8, recv=3, id=0, oid=2496773745, argc=59024170, argv=0x7c948c26, body=0xa63e1e8d, flags=-1289285975) at eval.c:6009 #38 0x000000d2 in ?? () #39 0x00000008 in ?? () #40 0x00000003 in ?? () #41 0x00000000 in ?? () The bt full is much longer so it is attached as a file instead of inline. - Michael On Thu, Mar 5, 2009 at 4:07 PM, Brent Roman wrote: > > Michael, > > That backtrace is indeed too short. And, there should be a symbol table if > you built with -g. > > When working with a core file, you need to tell gdb where to find the > executable. > > Here's a good tutorial: > http://www.network-theory.co.uk/articles/gccdebug.html > > Glad to hear that it doesn't take too long to segfault... > You probably can use the corefile you have just by pointing gdb at the ruby > executable > after reading the tutorial. > > - brent > > > Michael King-2 wrote: > > > > gdb -core core > > bt full > > #0 0xffffe410 in __kernel_vsyscall () > > No symbol table available. > > #1 0xb7dac9a1 in ?? () > > No symbol table available. > > > > I'm thinking that this is much shorter than it should be. This build was > > compiled with -O0 -g. > > > > At the moment it takes about 10 minutes for the test case to run and > > segfault. > > > > - Michael > > > > On Thu, Mar 5, 2009 at 12:28 PM, Brent Roman wrote: > > > >> > >> Michael, > >> > >> A 'C'-stack backtrace from gdb would be nice. > >> Trim the top off it if it is deeper than 50 levels or so. > >> The core file would be troublesome, as it will likely be very large > >> and require my duplicating your execution environment to load it. > >> > >> How difficult is it to reproduce the bug there? (seconds or days?) > >> To produce the best stack trace, compile with -O0 -g and > >> use the "full" qualifier in gdb. > >> > >> - brent > >> > >> > > > > -- > View this message in context: > http://www.nabble.com/MBARI8-patch-fixes-bugs-caused-by-incorrect-volatile-variable-declarations-tp22259357p22361849.html > Sent from the ruby-core mailing list archive at Nabble.com. > > > --00151751149a53bd81046476b7dc Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Its been way too long since I have used gdb, and I haven't ever had to = look at core files before so the tutorial filled in the gaps of my memory a= nd knowledge. It was just as simple as gdb ruby core, previously I was tryi= ng to use just the core file, chalk it up to user error.

The back trace (non full) is:
#0=A0 0xffffe410 in __kernel_vsyscall = ()
#1=A0 0xb7ddd9a1 in raise () from /lib/tls/i686/cmov/libc.so.6
#2= =A0 0xb7ddf2b9 in abort () from /lib/tls/i686/cmov/libc.so.6
#3=A0 0x080= ef392 in rb_bug (fmt=3D0x810a146 "Segmentation fault") at error.c= :214
#4=A0 0x080c4ba2 in sigsegv (sig=3D11) at signal.c:630
#5=A0 <signal = handler called>
#6=A0 0x0806455c in scope_dup (scope=3D0xb5eb3b64) at= eval.c:8368
#7=A0 0x0806476c in blk_copy_prev (block=3D0xadb5b28) at ev= al.c:8449
#8=A0 0x0806ad68 in rb_thread_start_0 (fn=3D0x806b0a7 <rb_thread_yield&g= t;, arg=3D0xb60a907c, th=3D0xa986948) at eval.c:12332
#9=A0 0x0806b2ae i= n rb_thread_initialize (thread=3D3054145560, args=3D3054145660) at eval.c:1= 2509
#10 0x0805f897 in call_cfunc (func=3D0x806b1ff <rb_thread_initia= lize>, recv=3D3054145560, len=3D-2, argc=3D0, argv=3D0x0) at eval.c:5851=
#11 0x0805ede2 in rb_call0 (klass=3D3084582780, recv=3D3054145560, id=3D296= 1, oid=3D2961, argc=3D0, argv=3D0x0, body=3D0xb7daff18, flags=3D2) at eval.= c:6009
#12 0x080603dc in rb_call (klass=3D3084582780, recv=3D3054145560,= mid=3D2961, argc=3D0, argv=3D0x0, scope=3D1, self=3D6) at eval.c:6255
#13 0x0806077b in rb_funcall2 (recv=3D3054145560, mid=3D2961, argc=3D0, arg= v=3D0x0) at eval.c:6391
#14 0x0806333e in rb_obj_call_init (obj=3D305414= 5560, argc=3D0, argv=3D0x0) at eval.c:7792
#15 0x0806b1c2 in rb_thread_s= _new (argc=3D0, argv=3D0x0, klass=3D3084582780) at eval.c:12463
#16 0x0805f8bb in call_cfunc (func=3D0x806b18f <rb_thread_s_new>, rec= v=3D3084582780, len=3D-1, argc=3D0, argv=3D0x0) at eval.c:5854
#17 0x080= 5ede2 in rb_call0 (klass=3D3084582760, recv=3D3084582780, id=3D3353, oid=3D= 3353, argc=3D0, argv=3D0x0, body=3D0xb7daff40, flags=3D0) at eval.c:6009 #18 0x080603dc in rb_call (klass=3D3084582760, recv=3D3084582780, mid=3D335= 3, argc=3D0, argv=3D0x0, scope=3D0, self=3D3059129460) at eval.c:6255
#1= 9 0x08059011 in eval_call (self=3D3059129460, node=3D0xb7b9f930) at eval.c:= 3369
#20 0x0805ae8c in rb_eval (self=3D3059129460, node=3D0xb7b9f930) at= eval.c:4032
#21 0x08058516 in eval_iter (self=3D3059129460, node=3D0xb7b9f2f0) at eval.= c:3188
#22 0x0805aae3 in rb_eval (self=3D3059129460, node=3D0xb7b9f2f0) = at eval.c:3928
#23 0x0805f539 in rb_call0 (klass=3D3082341100, recv=3D30= 59129460, id=3D31121, oid=3D31121, argc=3D0, argv=3D0x0, body=3D0xb7b9f2a0,= flags=3D2) at eval.c:6160
#24 0x080603dc in rb_call (klass=3D3082341100, recv=3D3059129460, mid=3D311= 21, argc=3D0, argv=3D0x0, scope=3D2, self=3D3059129460) at eval.c:6255
#= 25 0x0805aef3 in rb_eval (self=3D3059129460, node=3D0xb7b9eff8) at eval.c:4= 041
#26 0x08058923 in eval_ensure (self=3D3059129460, node=3D0xb7b9ef94)= at eval.c:3286
#27 0x0805acb6 in rb_eval (self=3D3059129460, node=3D0xb7b9ef94) at eval.c:= 3981
#28 0x0805d09e in rb_yield_0 (val=3D3059105960, self=3D3059129460, = klass=3D0, flags=3D1, avalue=3D2) at eval.c:5195
#29 0x0806b18d in rb_th= read_yield (arg=3D3059105960, th=3D0x9fd0990) at eval.c:12435
#30 0x0806ae9c in rb_thread_start_0 (fn=3D0x806b0a7 <rb_thread_yield>= , arg=3D0xb65640a8, th=3D0x9fd0990) at eval.c:12353
#31 0x0806b2f6 in rb= _thread_start (klass=3D3084582780, args=3D3059105960) at eval.c:12530
#3= 2 0x0805f897 in call_cfunc (func=3D0x806b2b0 <rb_thread_start>, recv= =3D3084582780, len=3D-2, argc=3D0, argv=3D0x0) at eval.c:5851
#33 0x0805ede2 in rb_call0 (klass=3D3052748260, recv=3D184084296, id=3D0, o= id=3D7842062, argc=3D8, argv=3D0x24, body=3D0x13c1, flags=3D-1079738288) at= eval.c:6009
#34 0x0806ae9c in rb_thread_start_0 (fn=3D0x806b0a7 <rb_= thread_yield>, arg=3D0xb5f53de4, th=3D0xaf8e748) at eval.c:12353
#35 0x0806b2f6 in rb_thread_start (klass=3D3084582780, args=3D3052748260) a= t eval.c:12530
#36 0x0805f897 in call_cfunc (func=3D0x806b2b0 <rb_thr= ead_start>, recv=3D3084582780, len=3D-2, argc=3D0, argv=3D0x0) at eval.c= :5851
#37 0x0805ede2 in rb_call0 (klass=3D8, recv=3D3, id=3D0, oid=3D249= 6773745, argc=3D59024170, argv=3D0x7c948c26, body=3D0xa63e1e8d, flags=3D-12= 89285975) at eval.c:6009
#38 0x000000d2 in ?? ()
#39 0x00000008 in ?? ()
#40 0x00000003 in ?? = ()
#41 0x00000000 in ?? ()

The bt full is much longer so it is at= tached as a file instead of inline.

- Michael

On Thu, Mar 5, 2009 at 4:07 PM, Brent Roman <brent@mbari.org> wrote:

Michael,

That backtrace is indeed too short. =A0And, there should be a symbol table = if
you built with -g.

When working with a core file, you need to tell gdb where to find the
executable.

Here's a good tutorial:
http://www.network-theory.co.uk/articles/gccdebug.html

Glad to hear that it doesn't take too long to segfault...
You probably can use the corefile you have just by pointing gdb at the ruby=
executable
after reading the tutorial.

- brent


Michael King-2 wrote:
>
> gdb -core core
> bt full
> #0 =A00xffffe410 in __kernel_vsyscall ()
> No symbol table available.
> #1 =A00xb7dac9a1 in ?? ()
> No symbol table available.
>
> I'm thinking that this is much shorter than it should be. This bui= ld was
> compiled with -O0 -g.
>
> At the moment it takes about 10 minutes for the test case to run and > segfault.
>
> - Michael
>
> On Thu, Mar 5, 2009 at 12:28 PM, Brent Roman <brent@mbari.org> wrote:
>
>>
>> Michael,
>>
>> A 'C'-stack backtrace from gdb would be nice.
>> Trim the top off it if it is deeper than 50 levels or so.
>> The core file would be troublesome, as it will likely be very larg= e
>> and require my duplicating your execution environment to load it.<= br> >>
>> How difficult is it to reproduce the bug there? (seconds or days?)=
>> To produce the best stack trace, compile with -O0 =A0-g and
>> =A0use the "full" qualifier in gdb.
>>
>> - brent
>>
>>
>

--
View this message in context: http://www.nabble.com/MBARI8-patch-fixes-bu= gs-caused-by-incorrect-volatile-variable-declarations-tp22259357p22361849.h= tml
Sent from the ruby-core mailing li= st archive at Nabble.com.



--00151751149a53bd81046476b7dc-- --00151751149a53bd8c046476b7de Content-Type: text/plain; charset=UTF-8; name="full_stack_trace.txt" Content-Disposition: attachment; filename="full_stack_trace.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_frz58map0 IzAgIDB4ZmZmZmU0MTAgaW4gX19rZXJuZWxfdnN5c2NhbGwgKCkKTm8gc3ltYm9sIHRhYmxlIGlu Zm8gYXZhaWxhYmxlLgojMSAgMHhiN2RkZDlhMSBpbiByYWlzZSAoKSBmcm9tIC9saWIvdGxzL2k2 ODYvY21vdi9saWJjLnNvLjYKTm8gc3ltYm9sIHRhYmxlIGluZm8gYXZhaWxhYmxlLgojMiAgMHhi N2RkZjJiOSBpbiBhYm9ydCAoKSBmcm9tIC9saWIvdGxzL2k2ODYvY21vdi9saWJjLnNvLjYKTm8g c3ltYm9sIHRhYmxlIGluZm8gYXZhaWxhYmxlLgojMyAgMHgwODBlZjM5MiBpbiByYl9idWcgKGZt dD0weDgxMGExNDYgIlNlZ21lbnRhdGlvbiBmYXVsdCIpIGF0IGVycm9yLmM6MjE0CglidWYgPSAi L2NudS9QQUNLQUdFUy9ydWJ5LTEuOC42LXAyODctMTMtNi4wNi9saWIvcnVieS8xLjgvZHJiL2Ry Yi5yYjoxNDEzOiBcMDAwXDAwMFwwMDBcMDAwVEXvv73vv73vv71A77+977+977+977+92rdcMDAy XDAwMFwwMDBcMDAwUu+/vd2377+9Qu+/ve+/vVwyMTDvv73vv73vv73vv73vv73vv73vv71IQO+/ ve+/ve+/ve+/vd2377+9Qu+/ve+/vVwwMDFcMDAwXDAwMFwwMDDvv71A77+977+9YSdcMDAwXDAw MEBF77+977+9eEHvv73vv73vv71B77+977+9XDIwMlwyMDZcMDA1XGLvv71C77+977+9XDAwMVww MDBcMDAwXDAwMDTvv73vv73vv73vv73vv71cMDA1XGJcMDAyXDAwMFwwMDBcMDAwXG5cMDAwXDAw MFwwMDB4Qe+/ve+/ve+/ve+/vVwwMDVcYlwwMDBcMDAwXDAwMFwwMDBcMDAxXDAwMFwwMDBcMDAw cu+/vVwwMDFcMDAwTFwwMDFcMDAwXDAwMO+/vUrvv73vv71hJ1wwMDBcMDAwIi4uLgoJYXJncyA9 IDB4YmZhNDVmZDQgIlxiZDJcYu+/vWLvv73vv70g77+977+977+9XHYiCglvdXQgPSAoRklMRSAq KSAweGI3ZWRmZjgwCglsZW4gPSA2OAojNCAgMHgwODBjNGJhMiBpbiBzaWdzZWd2IChzaWc9MTEp IGF0IHNpZ25hbC5jOjYzMApObyBsb2NhbHMuCiM1ICA8c2lnbmFsIGhhbmRsZXIgY2FsbGVkPgpO byBzeW1ib2wgdGFibGUgaW5mbyBhdmFpbGFibGUuCiM2ICAweDA4MDY0NTVjIGluIHNjb3BlX2R1 cCAoc2NvcGU9MHhiNWViM2I2NCkgYXQgZXZhbC5jOjgzNjgKCXRibCA9IChJRCAqKSAweGEKCXZh cnMgPSAoVkFMVUUgKikgMHhhZGI2NmU4CiM3ICAweDA4MDY0NzZjIGluIGJsa19jb3B5X3ByZXYg KGJsb2NrPTB4YWRiNWIyOCkgYXQgZXZhbC5jOjg0NDkKCXRtcCA9IChzdHJ1Y3QgQkxPQ0sgKikg MHhhZGI2NmU4Cgl2YXJzID0gKHN0cnVjdCBSVmFybWFwICopIDB4MAojOCAgMHgwODA2YWQ2OCBp biByYl90aHJlYWRfc3RhcnRfMCAoZm49MHg4MDZiMGE3IDxyYl90aHJlYWRfeWllbGQ+LCBhcmc9 MHhiNjBhOTA3YywgdGg9MHhhOTg2OTQ4KSBhdCBldmFsLmM6MTIzMzIKCWR1bW15ID0ge3ZhciA9 IDB4YmZhNDYzOTgsIGJvZHkgPSAweDgwNjAzZGMsIHNlbGYgPSAzMDgzODQ4MzQwLCBmcmFtZSA9 IHtzZWxmID0gMzA1OTA5NjEwMCwgYXJnYyA9IDE5MDAxLCBsYXN0X2Z1bmMgPSAxOTAwMSwgb3Jp Z19mdW5jID0gMCwgCiAgICBsYXN0X2NsYXNzID0gMCwgcHJldiA9IDB4YjdjZmNhNmMsIHRtcCA9 IDB4MCwgbm9kZSA9IDB4MmYsIGl0ZXIgPSAtMTIwOTEzNDI5NiwgZmxhZ3MgPSAyLCB1bmlxID0g MTZ9LCBzY29wZSA9IDB4NzdiOSwga2xhc3MgPSAzMDgyMzQ2NTAwLCAKICBjcmVmID0gMHhiNjU2 MWEyNCwgaXRlciA9IDAsIHZtb2RlID0gLTEyMDkxNDA1MTYsIGZsYWdzID0gLTEyMDkxMzQzMDQs IHVuaXEgPSAtMTYsIGR5bmFfdmFycyA9IDB4YmZhNDYzYTgsIG9yaWdfdGhyZWFkID0gMzA4NTAx ODEyOSwgCiAgd3JhcHBlciA9IDMwODU4MzI5OTIsIGJsb2NrX29iaiA9IDQsIG91dGVyID0gMHhi NjBhOTA3YywgcHJldiA9IDB4YWRiNWIyOH0KCXRoX3NhdmUgPSAodm9sYXRpbGUgcmJfdGhyZWFk X3QpIDB4YTk4Njk0OAoJdGhyZWFkID0gMzA1NDE0NTU2MAoJc2F2ZWRfYmxvY2sgPSAoc3RydWN0 IEJMT0NLICogdm9sYXRpbGUpIDB4MAoJc3RhdHVzID0gMzA4NDU2Nzc0MAoJc3RhdGUgPSAyCiM5 ICAweDA4MDZiMmFlIGluIHJiX3RocmVhZF9pbml0aWFsaXplICh0aHJlYWQ9MzA1NDE0NTU2MCwg YXJncz0zMDU0MTQ1NjYwKSBhdCBldmFsLmM6MTI1MDkKCXRoID0gKHJiX3RocmVhZF90KSAweGE5 ODY5NDgKIzEwIDB4MDgwNWY4OTcgaW4gY2FsbF9jZnVuYyAoZnVuYz0weDgwNmIxZmYgPHJiX3Ro cmVhZF9pbml0aWFsaXplPiwgcmVjdj0zMDU0MTQ1NTYwLCBsZW49LTIsIGFyZ2M9MCwgYXJndj0w eDApIGF0IGV2YWwuYzo1ODUxCk5vIGxvY2Fscy4KIzExIDB4MDgwNWVkZTIgaW4gcmJfY2FsbDAg KGtsYXNzPTMwODQ1ODI3ODAsIHJlY3Y9MzA1NDE0NTU2MCwgaWQ9Mjk2MSwgb2lkPTI5NjEsIGFy Z2M9MCwgYXJndj0weDAsIGJvZHk9MHhiN2RhZmYxOCwgZmxhZ3M9MikgYXQgZXZhbC5jOjYwMDkK CWxlbiA9IC0yCglfZnJhbWUgPSB7c2VsZiA9IDMwNTQxNDU1NjAsIGFyZ2MgPSAwLCBsYXN0X2Z1 bmMgPSAyOTYxLCBvcmlnX2Z1bmMgPSAyOTYxLCBsYXN0X2NsYXNzID0gMzA4NDU4Mjc4MCwgcHJl diA9IDB4YmZhNDZhNDQsIHRtcCA9IDB4MCwgCiAgbm9kZSA9IDB4YjdiOWY5MzAsIGl0ZXIgPSAy LCBmbGFncyA9IDAsIHVuaXEgPSA2ODE2NTQ2fQoJX2l0ZXIgPSB7aXRlciA9IDIsIHByZXYgPSAw eGJmYTQ2N2YwfQoJYjIgPSAoTk9ERSAqKSAweGJmYTQ2YjQ0CglyZXN1bHQgPSA4CglpdHIgPSAy Cgl0aWNrID0gNjgwNzM0MAoJc2FmZSA9IC0xCiMxMiAweDA4MDYwM2RjIGluIHJiX2NhbGwgKGts YXNzPTMwODQ1ODI3ODAsIHJlY3Y9MzA1NDE0NTU2MCwgbWlkPTI5NjEsIGFyZ2M9MCwgYXJndj0w eDAsIHNjb3BlPTEsIHNlbGY9NikgYXQgZXZhbC5jOjYyNTUKCWJvZHkgPSAoTk9ERSAqKSAweGI3 ZGFmZjE4Cglub2V4ID0gMgoJaWQgPSAyOTYxCgllbnQgPSAoc3RydWN0IGNhY2hlX2VudHJ5ICop IDB4ODExNWVkMAojMTMgMHgwODA2MDc3YiBpbiByYl9mdW5jYWxsMiAocmVjdj0zMDU0MTQ1NTYw LCBtaWQ9Mjk2MSwgYXJnYz0wLCBhcmd2PTB4MCkgYXQgZXZhbC5jOjYzOTEKTm8gbG9jYWxzLgoj MTQgMHgwODA2MzMzZSBpbiByYl9vYmpfY2FsbF9pbml0IChvYmo9MzA1NDE0NTU2MCwgYXJnYz0w LCBhcmd2PTB4MCkgYXQgZXZhbC5jOjc3OTIKCV9pdGVyID0ge2l0ZXIgPSAxLCBwcmV2ID0gMHhi ZmE0NmE4NH0KIzE1IDB4MDgwNmIxYzIgaW4gcmJfdGhyZWFkX3NfbmV3IChhcmdjPTAsIGFyZ3Y9 MHgwLCBrbGFzcz0zMDg0NTgyNzgwKSBhdCBldmFsLmM6MTI0NjMKCXRoID0gKHJiX3RocmVhZF90 KSAweGE5ODY5NDgKIzE2IDB4MDgwNWY4YmIgaW4gY2FsbF9jZnVuYyAoZnVuYz0weDgwNmIxOGYg PHJiX3RocmVhZF9zX25ldz4sIHJlY3Y9MzA4NDU4Mjc4MCwgbGVuPS0xLCBhcmdjPTAsIGFyZ3Y9 MHgwKSBhdCBldmFsLmM6NTg1NApObyBsb2NhbHMuCiMxNyAweDA4MDVlZGUyIGluIHJiX2NhbGww IChrbGFzcz0zMDg0NTgyNzYwLCByZWN2PTMwODQ1ODI3ODAsIGlkPTMzNTMsIG9pZD0zMzUzLCBh cmdjPTAsIGFyZ3Y9MHgwLCBib2R5PTB4YjdkYWZmNDAsIGZsYWdzPTApIGF0IGV2YWwuYzo2MDA5 CglsZW4gPSAtMQoJX2ZyYW1lID0ge3NlbGYgPSAzMDg0NTgyNzgwLCBhcmdjID0gMCwgbGFzdF9m dW5jID0gMzM1Mywgb3JpZ19mdW5jID0gMzM1MywgbGFzdF9jbGFzcyA9IDMwODQ1ODI3NjAsIHBy ZXYgPSAweGJmYTQ2ZjU0LCB0bXAgPSAweDAsIAogIG5vZGUgPSAweGI3YjlmOTMwLCBpdGVyID0g MiwgZmxhZ3MgPSAwLCB1bmlxID0gNjgxNjU0NX0KCV9pdGVyID0ge2l0ZXIgPSAyLCBwcmV2ID0g MHhiZmE0NmRjNH0KCWIyID0gKE5PREUgKikgMHgxM2JkCglyZXN1bHQgPSA3NQoJaXRyID0gMgoJ dGljayA9IDY4MDczNDAKCXNhZmUgPSAtMQojMTggMHgwODA2MDNkYyBpbiByYl9jYWxsIChrbGFz cz0zMDg0NTgyNzYwLCByZWN2PTMwODQ1ODI3ODAsIG1pZD0zMzUzLCBhcmdjPTAsIGFyZ3Y9MHgw LCBzY29wZT0wLCBzZWxmPTMwNTkxMjk0NjApIGF0IGV2YWwuYzo2MjU1Cglib2R5ID0gKE5PREUg KikgMHhiN2RhZmY0MAoJbm9leCA9IDAKCWlkID0gMzM1MwoJZW50ID0gKHN0cnVjdCBjYWNoZV9l bnRyeSAqKSAweDgxMTM5ZTAKIzE5IDB4MDgwNTkwMTEgaW4gZXZhbF9jYWxsIChzZWxmPTMwNTkx Mjk0NjAsIG5vZGU9MHhiN2I5ZjkzMCkgYXQgZXZhbC5jOjMzNjkKCXJlY3YgPSAzMDg0NTgyNzgw CglhcmdjID0gMAoJYXJndiA9IChWQUxVRSAqKSAweDAKIzIwIDB4MDgwNWFlOGMgaW4gcmJfZXZh bCAoc2VsZj0zMDU5MTI5NDYwLCBub2RlPTB4YjdiOWY5MzApIGF0IGV2YWwuYzo0MDMyCglyZXN1 bHQgPSA0CiMyMSAweDA4MDU4NTE2IGluIGV2YWxfaXRlciAoc2VsZj0zMDU5MTI5NDYwLCBub2Rl PTB4YjdiOWYyZjApIGF0IGV2YWwuYzozMTg4CglfaXRlciA9IHtpdGVyID0gMSwgcHJldiA9IDB4 YmZhNDZmOTR9CglfYmxvY2sgPSB7dmFyID0gMHgwLCBib2R5ID0gMHhiN2I5Zjc2NCwgc2VsZiA9 IDMwNTkxMjk0NjAsIGZyYW1lID0ge3NlbGYgPSAzMDU5MTI5NDYwLCBhcmdjID0gMCwgbGFzdF9m dW5jID0gMzExMjEsIG9yaWdfZnVuYyA9IDMxMTIxLCAKICAgIGxhc3RfY2xhc3MgPSAzMDgyMzQx MTAwLCBwcmV2ID0gMHhiZmE0NzMzYywgdG1wID0gMHgwLCBub2RlID0gMHhiN2I5ZjJmMCwgaXRl ciA9IDAsIGZsYWdzID0gMCwgdW5pcSA9IDY4MTY1NDR9LCBzY29wZSA9IDB4YjYwYTkwNTQsIGts YXNzID0gMzA4MjM0MTEwMCwgCiAgY3JlZiA9IDB4YjdiOGM5NDgsIGl0ZXIgPSAwLCB2bW9kZSA9 IDAsIGZsYWdzID0gMSwgdW5pcSA9IDEwOTQxMywgZHluYV92YXJzID0gMHgwLCBvcmlnX3RocmVh ZCA9IDMyMTUyMjQyODAsIHdyYXBwZXIgPSAwLCBibG9ja19vYmogPSAwLCAKICBvdXRlciA9IDB4 OTVkYjUxMCwgcHJldiA9IDB4OTVkYjUxMH0KCV90YWcgPSB7YnVmID0ge3tfX2ptcGJ1ZiA9IHsz MTEyMSwgLTEwNzk3NDI1OTIsIC0xMDc5NzQzMDk2LCAtMTA3OTc0MzAwMCwgLTEwNzk3NDMzOTIs IDEzNDU3OTM2MX0sIF9fbWFza193YXNfc2F2ZWQgPSAwLCBfX3NhdmVkX21hc2sgPSB7X192YWwg PSB7CiAgICAgICAgICAxNTQzMDA1MDQsIDMyMTUyMjU3MDQsIDMyMTUyMjQwODgsIDEzNDU5MDA5 MiwgMzA1OTA5MTMyMCwgMzA4MjQ3OTg0MCwgMzIxNTIyNDA1NiwgMTM1MDM2MDA4LCAxNjU3OCwg MzIxNTIyNTcwNCwgMzIxNTIyNDA1NiwgMTM0NTY4ODYyLCAxLCAKICAgICAgICAgIDE1NTU4MTUy MCwgMCwgMTY1NzgsIDEsIDIsIDMyMTUyMjQwODgsIDEzNTEyMjA4MSwgMTU1NTgxNDcyLCAxNjU3 OCwgNCwgNDA2MzM0LCAyLCA3NzIxLCAzMjE1MjI0MTg0LCAxMzQ1OTA3OTMsIDMwNTkwOTEzMjAs IDE2NTc4LCA0LCAKICAgICAgICAgIDMyMTUyMjQzMjR9fX19LCBmcmFtZSA9IDB4YmZhNDZmNTQs IGl0ZXIgPSAweGJmYTQ2Zjk0LCB0YWcgPSAzLCByZXR2YWwgPSA0LCBzY29wZSA9IDB4YjYwYTkw NTQsIGRzdCA9IDAsIHByZXYgPSAweGJmYTQ2ZTk4LCBibGtpZCA9IDEwOTQxM30KCXN0YXRlID0g MAoJcmVzdWx0ID0gMzIxNTIyNTcwNAojMjIgMHgwODA1YWFlMyBpbiByYl9ldmFsIChzZWxmPTMw NTkxMjk0NjAsIG5vZGU9MHhiN2I5ZjJmMCkgYXQgZXZhbC5jOjM5MjgKCXJlc3VsdCA9IDQKIzIz IDB4MDgwNWY1MzkgaW4gcmJfY2FsbDAgKGtsYXNzPTMwODIzNDExMDAsIHJlY3Y9MzA1OTEyOTQ2 MCwgaWQ9MzExMjEsIG9pZD0zMTEyMSwgYXJnYz0wLCBhcmd2PTB4MCwgYm9keT0weGI3YjlmMmEw LCBmbGFncz0yKSBhdCBldmFsLmM6NjE2MAoJbm9kZSA9IChOT0RFICopIDB4YjdiOWY5ODAKCWkg PSAwCglub3B0ID0gMAoJX3RhZyA9IHtidWYgPSB7e19fam1wYnVmID0gezMxMTIxLCAxNTQzMDA1 MDQsIC0xMDc5NzQxNTkyLCAtMTA3OTc0MjQwOCwgLTEwNzk3NDI4OTYsIDEzNDYwNzQ1Mn0sIF9f bWFza193YXNfc2F2ZWQgPSAwLCBfX3NhdmVkX21hc2sgPSB7X192YWwgPSB7CiAgICAgICAgICAz MDgyMzQxMTAwLCAzMDU5MTA1ODIwLCAwLCAzMDgyMzQwNjgwLCAwLCAzMjE1MjI1NjQwLCA0Mjk0 OTY3Mjk1LCAzMDgyNDc5NDgwLCA0LCAwLCAzMTE0NSwgMTU0MzAwNTA0LCAzMjE1MjI1NzA0LCAz MjE1MjI0NjAwLCAxMzUwMzU3NDYsIDMwNTMwLCAKICAgICAgICAgIDMwNTkxMjk0NjAsIDMxMTQ1 LCAzMTE0NSwgMSwgMTM2OTAzMzUyLCAzMDgyMzkyNzIwLCAyLCAzMDUzMCwgNSwgMzIxNTIyNDY0 OCwgMTM1MTIxNjYyLCAwLCAwLCAzMDU0MTQ1NjIwLCAzMDgyNDc5OTgwLCAwfX19fSwgZnJhbWUg PSAweGJmYTQ2ZjU0LCAKICBpdGVyID0gMHhiZmE0NmY5NCwgdGFnID0gMSwgcmV0dmFsID0gNCwg c2NvcGUgPSAweGI2MGE5MDU0LCBkc3QgPSAwLCBwcmV2ID0gMHhiZmE0NzI2YywgYmxraWQgPSAw fQoJX29sZCA9IChzdHJ1Y3QgUlZhcm1hcCAqIHZvbGF0aWxlKSAweGI2NTU3MTAwCglfY2xhc3Mg PSAzMDgyMzQxMTAwCglfdm1vZGUgPSAwCglfb2xkID0gKHN0cnVjdCBTQ09QRSAqIHZvbGF0aWxl KSAweGI2NTY0MDFjCglfc2NvcGUgPSAoc3RydWN0IFNDT1BFICopIDB4YjYwYTkwNTQKCXN0YXRl ID0gMAoJbG9jYWxfdmFycyA9IChWQUxVRSAqKSAweDAKCXNhdmVkX2NyZWYgPSAoTk9ERSAqIHZv bGF0aWxlKSAweGI3YjhjOTQ4CglfZnJhbWUgPSB7c2VsZiA9IDMwNTkxMjk0NjAsIGFyZ2MgPSAw LCBsYXN0X2Z1bmMgPSAzMTEyMSwgb3JpZ19mdW5jID0gMzExMjEsIGxhc3RfY2xhc3MgPSAzMDgy MzQxMTAwLCBwcmV2ID0gMHhiZmE0NzMzYywgdG1wID0gMHgwLCAKICBub2RlID0gMHhiN2I5ZWZm OCwgaXRlciA9IDAsIGZsYWdzID0gMCwgdW5pcSA9IDY4MTY1NDR9CglfaXRlciA9IHtpdGVyID0g MCwgcHJldiA9IDB4YmZhNDczMjh9CgliMiA9IChOT0RFICopIDB4YjdiOWYyYjQKCXJlc3VsdCA9 IDMwNTkwOTEzMjAKCWl0ciA9IDAKCXRpY2sgPSA2ODA3MzQwCglzYWZlID0gLTEKIzI0IDB4MDgw NjAzZGMgaW4gcmJfY2FsbCAoa2xhc3M9MzA4MjM0MTEwMCwgcmVjdj0zMDU5MTI5NDYwLCBtaWQ9 MzExMjEsIGFyZ2M9MCwgYXJndj0weDAsIHNjb3BlPTIsIHNlbGY9MzA1OTEyOTQ2MCkgYXQgZXZh bC5jOjYyNTUKCWJvZHkgPSAoTk9ERSAqKSAweGI3YjhjNWM0Cglub2V4ID0gMgoJaWQgPSAzMTEy MQoJZW50ID0gKHN0cnVjdCBjYWNoZV9lbnRyeSAqKSAweDgxMTA2MjAKIzI1IDB4MDgwNWFlZjMg aW4gcmJfZXZhbCAoc2VsZj0zMDU5MTI5NDYwLCBub2RlPTB4YjdiOWVmZjgpIGF0IGV2YWwuYzo0 MDQxCglyZXN1bHQgPSA0CiMyNiAweDA4MDU4OTIzIGluIGV2YWxfZW5zdXJlIChzZWxmPTMwNTkx Mjk0NjAsIG5vZGU9MHhiN2I5ZWY5NCkgYXQgZXZhbC5jOjMyODYKCXJldHZhbCA9IDQKCWVycmlu Zm8gPSA0CglzdGF0ZSA9IDgKCXJlc3VsdCA9IDEzNDYwMDc4MwojMjcgMHgwODA1YWNiNiBpbiBy Yl9ldmFsIChzZWxmPTMwNTkxMjk0NjAsIG5vZGU9MHhiN2I5ZWY5NCkgYXQgZXZhbC5jOjM5ODEK CXJlc3VsdCA9IDQKIzI4IDB4MDgwNWQwOWUgaW4gcmJfeWllbGRfMCAodmFsPTMwNTkxMDU5NjAs IHNlbGY9MzA1OTEyOTQ2MCwga2xhc3M9MCwgZmxhZ3M9MSwgYXZhbHVlPTIpIGF0IGV2YWwuYzo1 MTk1CglfdGFnID0ge2J1ZiA9IHt7X19qbXBidWYgPSB7NTA1NywgMTU0MzAwNTA0LCAtMTA3OTc0 MTU5MiwgLTEwNzk3NDE1MjgsIC0xMDc5NzQxODg4LCAxMzQ1OTg2Mjd9LCBfX21hc2tfd2FzX3Nh dmVkID0gMCwgX19zYXZlZF9tYXNrID0ge19fdmFsID0gewogICAgICAgICAgMzIxNTIyNTUwMCwg MTM0NjExOTMyLCAzMDcxNTY0NDIwLCAwLCAxNTcxMzY3MjgsIDMyMSwgMTYwMDc5ODg4LCAzMjE1 MjI4MjI0LCAwLCAxNDMwMTQyODAsIDkxMiwgMzA4NTgzMzA0OCwgMzA4NTgzMjk5MiwgOTI4LCAz MDg1ODMyOTkyLCAKICAgICAgICAgIDMyMTUyMjU2NDAsIDMwODU3NzY4NzcsIDMwODU4MzMwNDgs IDMwODU4MjY3ODAsIDMwODU4MzMwNDgsIDE1NTA1MjY2NCwgMzA4NTgzMzA0OCwgMzA4NTgzMjk5 MiwgMTI4LCAzMDg1ODMyOTkyLCAzMjE1MjI1NjgwLCAzMDg1Nzc2ODc3LCAKICAgICAgICAgIDE3 NDczMjU4MCwgMzIxNTIyNTYyNCwgMzA4NTgzMjk5MiwgMTU1MDUyNjY0LCAzMDg1ODMyOTkyfX19 fSwgZnJhbWUgPSAweGJmYTQ3MzNjLCBpdGVyID0gMHhiZmE0NzMyOCwgdGFnID0gMCwgcmV0dmFs ID0gNCwgc2NvcGUgPSAweGI2NTY0MDFjLCAKICBkc3QgPSAwLCBwcmV2ID0gMHhiZmE0NzNmOCwg YmxraWQgPSAwfQoJX2l0ZXIgPSB7aXRlciA9IDAsIHByZXYgPSAweGJmYTQ3NzQ0fQoJX2NsYXNz ID0gMzA4MjM0MTEwMAoJX29sZCA9IChzdHJ1Y3QgUlZhcm1hcCAqIHZvbGF0aWxlKSAweGI2NTYw NzE0Cglub2RlID0gKE5PREUgKiB2b2xhdGlsZSkgMHhiN2I5ZWY1OAoJcmVzdWx0ID0gNAoJb2xk X2NyZWYgPSAzMDgyMzQwNjgwCglvbGRfd3JhcHBlciA9IDAKCWJsb2NrID0gKHN0cnVjdCBCTE9D SyAqIHZvbGF0aWxlKSAweDkzMjcwMjAKCW9sZF9zY29wZSA9IChzdHJ1Y3QgU0NPUEUgKiB2b2xh dGlsZSkgMHhiNjU2NDAxYwoJb2xkX3Ztb2RlID0gMAoJZnJhbWUgPSB7c2VsZiA9IDMwNTkxMjk0 NjAsIGFyZ2MgPSAwLCBsYXN0X2Z1bmMgPSA1MTM3LCBvcmlnX2Z1bmMgPSA1MTM3LCBsYXN0X2Ns YXNzID0gMzA4MjM0MTEwMCwgcHJldiA9IDB4YmZhNDc3MDQsIHRtcCA9IDB4MCwgbm9kZSA9IDB4 YjdiOWYxOWMsIAogIGl0ZXIgPSAwLCBmbGFncyA9IDAsIHVuaXEgPSA2MzY4NDE5fQoJY25vZGUg PSAoTk9ERSAqKSAweGI3YjlmMTljCglsYW1iZGEgPSAxCglzdGF0ZSA9IDAKIzI5IDB4MDgwNmIx OGQgaW4gcmJfdGhyZWFkX3lpZWxkIChhcmc9MzA1OTEwNTk2MCwgdGg9MHg5ZmQwOTkwKSBhdCBl dmFsLmM6MTI0MzUKCXRibCA9IChjb25zdCBJRCAqKSAweDk5ZWUxNjQKIzMwIDB4MDgwNmFlOWMg aW4gcmJfdGhyZWFkX3N0YXJ0XzAgKGZuPTB4ODA2YjBhNyA8cmJfdGhyZWFkX3lpZWxkPiwgYXJn PTB4YjY1NjQwYTgsIHRoPTB4OWZkMDk5MCkgYXQgZXZhbC5jOjEyMzUzCglfdGFnID0ge2J1ZiA9 IHt7X19qbXBidWYgPSB7NTA1NywgLTEwNzk3MzkzMjgsIC0xMDc5NzM5ODMyLCAtMTA3OTc0MTI0 MCwgLTEwNzk3NDE0NzIsIDEzNDY1NTU0Nn0sIF9fbWFza193YXNfc2F2ZWQgPSAwLCBfX3NhdmVk X21hc2sgPSB7X192YWwgPSB7CiAgICAgICAgICAzMDg1ODMzMDAwLCA4LCAyLCA1NiwgNzg0MjA2 MiwgNjYsIDcwMSwgMzA4NTgyNjc4MCwgMywgMzIxNTIyNTk2MCwgMTM1MTk3NjI4LCAzMDg0NTgy NzgwLCAzMDg1ODMyOTkyLCA0Mjk0OTY3MjgwLCAzMjE1MjI1OTYwLCAzMDg1MDE4MTI5LCAKICAg ICAgICAgIDMwODU4MzI5OTIsIDY5MiwgNTA1NywgMTU0MzAwNDQ4LCAzMDU5MTA1ODAwLCAzMjE1 MjI1OTkyLCAxMzQ2ODk1MzQsIDMwODQ1ODI3ODAsIDMsIDMyMTUyMjYwMjQsIDE2NzU3ODAwMCwg MCwgMzA1OTEwNTgwMCwgMzIxNTIyNjA1NiwgMTM0NjU0NzU2LCAKICAgICAgICAgIDMwODQ1ODI3 ODB9fX19LCBmcmFtZSA9IDB4YmZhNDc3MDQsIGl0ZXIgPSAweGJmYTQ3NzQ0LCB0YWcgPSAyLCBy ZXR2YWwgPSA0LCBzY29wZSA9IDB4YjY1NjQwMWMsIGRzdCA9IDAsIHByZXYgPSAweGJmYTQ3OTU0 LCBibGtpZCA9IDB9Cgl0aF9zYXZlID0gKHZvbGF0aWxlIHJiX3RocmVhZF90KSAweDlmZDA5OTAK CXRocmVhZCA9IDMwNTkxMDU4MDAKCXNhdmVkX2Jsb2NrID0gKHN0cnVjdCBCTE9DSyAqIHZvbGF0 aWxlKSAweDkzMjcwMjAKCXN0YXR1cyA9IDE2NzU3ODY1MgoJc3RhdGUgPSAwCiMzMSAweDA4MDZi MmY2IGluIHJiX3RocmVhZF9zdGFydCAoa2xhc3M9MzA4NDU4Mjc4MCwgYXJncz0zMDU5MTA1OTYw KSBhdCBldmFsLmM6MTI1MzAKTm8gbG9jYWxzLgojMzIgMHgwODA1Zjg5NyBpbiBjYWxsX2NmdW5j IChmdW5jPTB4ODA2YjJiMCA8cmJfdGhyZWFkX3N0YXJ0PiwgcmVjdj0zMDg0NTgyNzgwLCBsZW49 LTIsIGFyZ2M9MCwgYXJndj0weDApIGF0IGV2YWwuYzo1ODUxCk5vIGxvY2Fscy4KIzMzIDB4MDgw NWVkZTIgaW4gcmJfY2FsbDAgKGtsYXNzPTMwNTI3NDgyNjAsIHJlY3Y9MTg0MDg0Mjk2LCBpZD0w LCBvaWQ9Nzg0MjA2MiwgYXJnYz04LCBhcmd2PTB4MjQsIGJvZHk9MHgxM2MxLCBmbGFncz0tMTA3 OTczODI4OCkgYXQgZXZhbC5jOjYwMDkKCWxlbiA9IDAKCV9mcmFtZSA9IHtzZWxmID0gMzA4NDU4 Mjc4MCwgYXJnYyA9IDAsIGxhc3RfZnVuYyA9IDUwNTcsIG9yaWdfZnVuYyA9IDUwNTcsIGxhc3Rf Y2xhc3MgPSAzMDg0NTgyNzYwLCBwcmV2ID0gMHg4MTBmMmEwLCB0bXAgPSAweDAsIG5vZGUgPSAw eGI3YjlmMTljLCAKICBpdGVyID0gMiwgZmxhZ3MgPSAwLCB1bmlxID0gNjM2ODQyMH0KCV9pdGVy ID0ge2l0ZXIgPSAtMTI0MjIxOTc1NiwgcHJldiA9IDB4MX0KCWIyID0gKE5PREUgKikgMHgwCgly ZXN1bHQgPSA1MTM3CglpdHIgPSA1MTM3Cgl0aWNrID0gNjgwNzM0MAoJc2FmZSA9IC0xMjQyMjEw Mjk2CiMzNCAweDA4MDZhZTljIGluIHJiX3RocmVhZF9zdGFydF8wIChmbj0weDgwNmIwYTcgPHJi X3RocmVhZF95aWVsZD4sIGFyZz0weGI1ZjUzZGU0LCB0aD0weGFmOGU3NDgpIGF0IGV2YWwuYzox MjM1MwoJX3RhZyA9IHtidWYgPSB7e19fam1wYnVmID0gezUwNTcsIC0xMDc5NzM4Mjg4LCAtMTA3 OTczODc5MiwgLTEwNzk3NDAyMDAsIC0xMDc5NzQwNDMyLCAxMzQ2NTU1NDZ9LCBfX21hc2tfd2Fz X3NhdmVkID0gMCwgX19zYXZlZF9tYXNrID0ge19fdmFsID0gewogICAgICAgICAgMzA4NTgzMzAw MCwgOCwgNCwgMzA1Mjc0ODI4MCwgNzg0MjA2MiwgNjYsIDcwMSwgMzA4NTgyNjc4MCwgMywgMzIx NTIyNzAwMCwgMTM1MTk3NjI4LCAzMDg0NTgyNzgwLCAzMDg1ODMyOTkyLCA0Mjk0OTY3MjgwLCAz MjE1MjI3MDAwLCAzMDg1MDE4MTI5LCAKICAgICAgICAgIDMwODU4MzI5OTIsIDY5MiwgNTA1Nywg MTg0MDg1MDY0LCAzMDUyNzQ4MjIwLCAzMjE1MjI3MDMyLCAxMzQ2ODk1MzQsIDMwODQ1ODI3ODAs IDMsIDMyMTUyMjcwNjQsIDE4NDA4NDI5NiwgMCwgMzA1Mjc0ODIyMCwgMzIxNTIyNzA5NiwgMTM0 NjU0NzU2LCAKICAgICAgICAgIDMwODQ1ODI3ODB9fX19LCBmcmFtZSA9IDB4YmZhNDdiMTQsIGl0 ZXIgPSAweGJmYTQ3YjU0LCB0YWcgPSAyLCByZXR2YWwgPSA0LCBzY29wZSA9IDB4YjVmNTNkZDAs IGRzdCA9IDAsIHByZXYgPSAweGJmYTQ3ZDY0LCBibGtpZCA9IDB9Cgl0aF9zYXZlID0gKHZvbGF0 aWxlIHJiX3RocmVhZF90KSAweGFmOGU3NDgKCXRocmVhZCA9IDMwNTI3NDgyMjAKCXNhdmVkX2Js b2NrID0gKHN0cnVjdCBCTE9DSyAqIHZvbGF0aWxlKSAweGFmOGVhNDgKCXN0YXR1cyA9IDE4NDA4 NDk0OAoJc3RhdGUgPSAwCiMzNSAweDA4MDZiMmY2IGluIHJiX3RocmVhZF9zdGFydCAoa2xhc3M9 MzA4NDU4Mjc4MCwgYXJncz0zMDUyNzQ4MjYwKSBhdCBldmFsLmM6MTI1MzAKTm8gbG9jYWxzLgoj MzYgMHgwODA1Zjg5NyBpbiBjYWxsX2NmdW5jIChmdW5jPTB4ODA2YjJiMCA8cmJfdGhyZWFkX3N0 YXJ0PiwgcmVjdj0zMDg0NTgyNzgwLCBsZW49LTIsIGFyZ2M9MCwgYXJndj0weDApIGF0IGV2YWwu Yzo1ODUxCk5vIGxvY2Fscy4KIzM3IDB4MDgwNWVkZTIgaW4gcmJfY2FsbDAgKGtsYXNzPTgsIHJl Y3Y9MywgaWQ9MCwgb2lkPTI0OTY3NzM3NDUsIGFyZ2M9NTkwMjQxNzAsIGFyZ3Y9MHg3Yzk0OGMy NiwgYm9keT0weGE2M2UxZThkLCBmbGFncz0tMTI4OTI4NTk3NSkgYXQgZXZhbC5jOjYwMDkKCWxl biA9IC0xMjEwMzY2MzA0CglfZnJhbWUgPSB7c2VsZiA9IDMwODQ1ODI3ODAsIGFyZ2MgPSAwLCBs YXN0X2Z1bmMgPSA1MDU3LCBvcmlnX2Z1bmMgPSA1MDU3LCBsYXN0X2NsYXNzID0gMzA4NDU4Mjc2 MCwgcHJldiA9IDB4ODEwZjJhMCwgdG1wID0gMHgwLCBub2RlID0gMHhiN2I5ZjE5YywgCiAgaXRl ciA9IDIsIGZsYWdzID0gMCwgdW5pcSA9IDY2NjE0Mjd9CglfaXRlciA9IHtpdGVyID0gMTcyMTIw MjY0LCBwcmV2ID0gMHg0MDAwfQoJYjIgPSAoTk9ERSAqKSAweDFiCglyZXN1bHQgPSAwCglpdHIg PSAwCgl0aWNrID0gNjgwNzM0MAoJc2FmZSA9IDE3MjA1MDc5NwojMzggMHgwMDAwMDBkMiBpbiA/ PyAoKQpObyBzeW1ib2wgdGFibGUgaW5mbyBhdmFpbGFibGUuCiMzOSAweDAwMDAwMDA4IGluID8/ ICgpCk5vIHN5bWJvbCB0YWJsZSBpbmZvIGF2YWlsYWJsZS4KIzQwIDB4MDAwMDAwMDMgaW4gPz8g KCkKTm8gc3ltYm9sIHRhYmxlIGluZm8gYXZhaWxhYmxlLgojNDEgMHgwMDAwMDAwMCBpbiA/PyAo KQpObyBzeW1ib2wgdGFibGUgaW5mbyBhdmFpbGFibGUuCgoK --00151751149a53bd8c046476b7de--