From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26154 invoked by alias); 21 Aug 2009 16:31:12 -0000 Received: (qmail 26135 invoked by uid 22791); 21 Aug 2009 16:31:06 -0000 X-SWARE-Spam-Status: No, hits=-1.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_21,J_CHICKENPOX_41,J_CHICKENPOX_46,J_CHICKENPOX_53 X-Spam-Check-By: sourceware.org Received: from web112501.mail.gq1.yahoo.com (HELO web112501.mail.gq1.yahoo.com) (98.137.26.74) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Fri, 21 Aug 2009 16:30:58 +0000 Received: (qmail 41889 invoked by uid 60001); 21 Aug 2009 16:30:56 -0000 Message-ID: <956852.40151.qm@web112501.mail.gq1.yahoo.com> Received: from [124.125.223.248] by web112501.mail.gq1.yahoo.com via HTTP; Fri, 21 Aug 2009 09:30:55 PDT Date: Fri, 21 Aug 2009 16:59:00 -0000 From: paawan oza Subject: Re: final i386.floating.record.patch To: Hui Zhu Cc: Michael Snyder , "gdb-patches@sourceware.org" , Mark Kettenis MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-605222989-1250872255=:40151" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00344.txt.bz2 --0-605222989-1250872255=:40151 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 15510 Hu Hui, please find the ChageLog and floating point patch attached as you suggested. Sorry for not pasting it in email-body becasue of space and tabs issues. Do we need to update wiki? Regards, Oza. --- On Wed, 8/19/09, Hui Zhu wrote: > From: Hui Zhu > Subject: Re: final i386.floating.record.patch > To: "paawan oza" > Cc: "Michael Snyder" , "gdb-patches@sourceware.org" <= gdb-patches@sourceware.org>, "Mark Kettenis" > Date: Wednesday, August 19, 2009, 7:47 AM > Oops, this is not the bug in fp > patch.=A0 Sorry for it. >=20 > After patch http://sourceware.org/ml/gdb-patches/2009-08/msg00272.html >=20 > Everything is OK. >=20 > I post a new patch that remove space in the tail. > I think you need write a changelog.=A0 You can get a > example from > src/ChangeLog.=A0 Please Let each line doesn't bigger > than 72. >=20 > Thanks, > Hui >=20 > On Wed, Aug 19, 2009 at 09:13, Hui Zhu > wrote: > > Could you try cvs-head? > > > > On Tue, Aug 18, 2009 at 21:48, paawan oza > wrote: > >> Hi, > >> > >> Another analysis and observation is: > >> > >> I used gdb-6.8.50.20090803 and everything seemed > okay. > >> Hui used gdb-6.8.50.20090817 and patch was still > the same and gdb threw these error. > >> was there any thing major changed in gdb ? > >> > >> and gdb throws error in > >> ../../src/gdb/utils.c:1200: > >> > >> which looks like somebody has allocated memory too > much or something has gone wrong in error checking. > >> > >> > >> the floating-point-patch is still the same, if it > works fine with gdb-6.8.50.20090803, it is high unlikely > that why should it throw memory allocation error with > gdb-6.8.50.20090817 (unless system is dangerously low in > virtual memory, swap space is full). > >> > >> Regards, > >> Oza. > >> > >> > >> > >> --- On Mon, 8/17/09, paawan oza > wrote: > >> > >>> From: paawan oza > >>> Subject: Re: final i386.floating.record.patch > >>> To: "Michael Snyder" , > "Hui Zhu" > >>> Cc: "gdb-patches@sourceware.org" > , > "Mark Kettenis" > >>> Date: Monday, August 17, 2009, 9:40 PM > >>> Hi Hui, > >>> > >>> I test the same and it seems working fine. > Another thing I > >>> observe is, vertual memory is low problem and > may be gdb's > >>> virtual address space gets exhausted or any > other limit! > >>> highly unlikely though. > >>> > >>> please see the atached log. > >>> > >>> > linux-p94d:/home/oza/mk_patch/take_diff/gdb_current/gdb-6.8.50.20090803/g= db > >>> # ./gdb ./test_floats > >>> GNU gdb (GDB) 6.8.50.20090803 > >>> Copyright (C) 2009 Free Software Foundation, > Inc. > >>> License GPLv3+: GNU GPL version 3 or later > > >>> This is free software: you are free to change > and > >>> redistribute it. > >>> There is NO WARRANTY, to the extent permitted > by law. > >>> Type "show copying" > >>> and "show warranty" for details. > >>> This GDB was configured as > "i686-pc-linux-gnu". > >>> For bug reporting instructions, please see: > >>> ... > >>> Setting up the environment for debugging gdb. > >>> Function "internal_error" not defined. > >>> Make breakpoint pending on future shared > library load? (y > >>> or [n]) [answered N; input not from terminal] > >>> Function "info_command" not defined. > >>> Make breakpoint pending on future shared > library load? (y > >>> or [n]) [answered N; input not from terminal] > >>> > /home/oza/mk_patch/take_diff/gdb_current/gdb-6.8.50.20090803/gdb/.gdbinit= :8: > >>> Error in sourced command file: > >>> No breakpoint number 0. > >>> (gdb) start > >>> Temporary breakpoint 1 at 0x8048c94: file > ./test_floats.c, > >>> line 196. > >>> Starting program: > >>> > /home/oza/mk_patch/take_diff/gdb_current/gdb-6.8.50.20090803/gdb/test_flo= ats > >>> > >>> Temporary breakpoint 1, main () at > ./test_floats.c:196 > >>> 196=A0 =A0 =A0 =A0=A0=A0init_floats(); > >>> (gdb) record > >>> (gdb) c > >>> Continuing. > >>> result is 369.438751 > >>> result is 10.320001 > >>> result is 23.008301 > >>> result is 0.000000 > >>> result is 10.450000 > >>> result is 10.776012 > >>> result is 495830.968750 > >>> result is -181.778748 > >>> result is 12.525923 > >>> result is 2.195619 > >>> result is 5.055601 > >>> result is inf > >>> result is inf > >>> result is -0.988032 > >>> result is 0.154251 > >>> result is -6.405331 > >>> result is 1.537475 > >>> The next instruction is syscall exit_group.=A0 > It will > >>> make the program exit.=A0 Do you want to stop > the > >>> program?([y] or n) y > >>> Process record: inferior program stopped. > >>> > >>> Program received signal SIGTRAP, > Trace/breakpoint trap. > >>> 0xffffe405 in __kernel_vsyscall () > >>> (gdb) > >>> > >>> Regards, > >>> Oza. > >>> > >>> > >>> > >>> > >>> --- On Mon, 8/17/09, Hui Zhu > >>> wrote: > >>> > >>> > From: Hui Zhu > >>> > Subject: Re: final > i386.floating.record.patch > >>> > To: "Michael Snyder" > >>> > Cc: "paawan oza" , > >>> "gdb-patches@sourceware.org" > >>> , > >>> "Mark Kettenis" > >>> > Date: Monday, August 17, 2009, 12:06 PM > >>> > Get some error with this patch. > >>> > cat fp.c > >>> > #include > >>> > #include > >>> > #include > >>> > > >>> > /* the test intends to test following > insns. > >>> > flds faddp fstps fstpl fldl fxch fabs > fdivrp fmulp > >>> fsubrp > >>> > fucomp fnstsw fsqrt > >>> > fchs f2xm1 fyl2x fxtract fprem1 fld > fdecstp fld1 > >>> fldl2t > >>> > fldl2e FLDPI > >>> > FLDLG2 FLDLN2 > >>> > FLDZ fincstp ffree fptan fpatan fincstp > fsincos > >>> frndint > >>> > fscale fsin fcos fcmovb > >>> > fcmovbe fcmove fcmovu fcmovnb fcmovnbe > fsave frstor > >>> fstsw > >>> > */ > >>> > > >>> > float no1,no2,no3,no4,no5,no6,no7; > >>> > double x =3D 100.345, y =3D 25.7789; > >>> > long double ldx =3D > 88888888888888888888.88, ldy =3D > >>> > 9999999999999999999.99; > >>> > float result,resultd,resultld; > >>> > float *float_memory; > >>> > > >>> > /* initialization of floats */ > >>> > void init_floats() > >>> > { > >>> >=A0 no1 =3D 10.45; > >>> >=A0 no2 =3D 20.77; > >>> >=A0 no3 =3D 156.89874646; > >>> >=A0 no4 =3D 14.56; > >>> >=A0 no5 =3D 11.11; > >>> >=A0 no6 =3D 66.77; > >>> >=A0 no7 =3D 88.88; > >>> >=A0 float_memory =3D malloc(sizeof(float) * > 4); > >>> >=A0 *float_memory =3D 256.256; > >>> >=A0 *(float_memory + 1) =3D 356.356; > >>> >=A0 *(float_memory + 2) =3D 456.456; > >>> >=A0 *(float_memory + 3) =3D 556.556; > >>> > } > >>> > > >>> > /* marks FPU stack as empty */ > >>> > void empty_fpu_stack() > >>> > { > >>> >=A0 asm ("ffree %st(1) \n\t" > >>> > =A0 =A0 =A0 "ffree %st(2) \n\t" > >>> > =A0 =A0 =A0 "ffree %st(3) \n\t" > >>> > =A0 =A0 =A0 "ffree %st(4) \n\t" > >>> > =A0 =A0 =A0 "ffree %st(5) \n\t" > >>> > =A0 =A0 =A0 "ffree %st(6) \n\t" > >>> > =A0 =A0 =A0 "ffree %st(7)"); > >>> > } > >>> > > >>> > /* tests floating point arithmatic */ > >>> > void test_arith_floats() > >>> > { > >>> >=A0 result =3D no1 + no2 + no3 + no4 + no5 + > no6 + > >>> no7; > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D fmodf(no2,no1); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 resultd =3D fmod(x,y); > >>> >=A0 printf("result is %f\n",resultd); > >>> > > >>> >=A0 resultld =3D fmodl(ldy,ldy); > >>> >=A0 printf("result is %f\n",resultld); > >>> > > >>> >=A0 result =3D fabsf(no1); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D no3 / no4; > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D no1 * no2 * no3 * no4; > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D no1 - no2 - no3 - no4; > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> > > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("fchs"); > >>> > > >>> >=A0 /* test for f2xm1 */ > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("f2xm1"); > >>> > > >>> >=A0 asm ("fyl2x"); > >>> > > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("fxtract"); > >>> > > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("fprem1"); > >>> > > >>> >=A0 /* decrement fpu stack pointer only > status > >>> register should > >>> > get affected */ > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> > > >>> >=A0 empty_fpu_stack(); > >>> > > >>> >=A0 asm ("fld1"); > >>> >=A0 asm ("fldl2t"); > >>> >=A0 asm ("fldl2e"); > >>> >=A0 asm ("fldpi"); > >>> >=A0 asm ("fldlg2"); > >>> >=A0 asm ("fldln2"); > >>> >=A0 asm ("fldz"); > >>> > > >>> >=A0 empty_fpu_stack(); > >>> >=A0 /* finishing emptying the stack */ > >>> > > >>> >=A0 result =3D sqrt(no3); > >>> >=A0 printf("result is %f\n",result); > >>> > } > >>> > > >>> > void test_log_exp_floats() > >>> > { > >>> >=A0 result =3D log10(no3); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D log(no3); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D exp10(no3); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D exp(no3); > >>> >=A0 printf("result is %f\n",result); > >>> > } > >>> > > >>> > void test_trigo_floats() > >>> > { > >>> >=A0 result =3D sin(30); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D cos(30); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D tan(30); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 result =3D atan(30); > >>> >=A0 printf("result is %f\n",result); > >>> > > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("fptan"); > >>> > > >>> >=A0 /* changes st1 and popping register > stack */ > >>> >=A0 asm ("fpatan"); > >>> > > >>> >=A0 asm("fincstp"); > >>> >=A0 asm ("fld %0" : :"m"(float_memory)); > >>> >=A0 asm ("fsincos"); > >>> > > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("frndint"); > >>> > > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("fld %0" : > :"m"(*(float_memory+1))); > >>> >=A0 asm ("fscale"); > >>> > > >>> >=A0 empty_fpu_stack(); > >>> > > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("fsin"); > >>> >=A0 asm ("fcos"); > >>> > > >>> >=A0 /* currently we assume condition likely > and > >>> always record > >>> > the registers > >>> >=A0 code could be optimized only if the > flag is set > >>> then > >>> > record */ > >>> >=A0 asm ("fld %0" : :"m"(*float_memory)); > >>> >=A0 asm ("fld %0" : > :"m"(*(float_memory+1))); > >>> >=A0 asm ("fcmovb %st(1), %st"); > >>> >=A0 asm ("fcmovbe %st(1), %st"); > >>> >=A0 asm ("fcmove %st(1), %st"); > >>> >=A0 asm ("fcmovu %st(1), %st"); > >>> >=A0 asm ("fcmovnb %st(1), %st"); > >>> >=A0 asm ("fcmovnbe %st(1), %st"); > >>> > > >>> >=A0 empty_fpu_stack(); > >>> >=A0 /* finished emtyping the stack */ > >>> > } > >>> > > >>> > void test_compare_floats() > >>> > { > >>> > =A0=A0=A0ldy =3D 88888888888888888888.88; > >>> > =A0=A0=A0if (ldx =3D=3D ldy) > >>> > =A0 =A0=A0=A0ldy =3D > >>> > 7777777777777777777777777777.777; > >>> > =A0=A0=A0else > >>> > =A0 =A0=A0=A0ldy =3D > >>> > 666666666666666666666666666.666; > >>> > } > >>> > > >>> > /* test loading and saving of FPU > environment */ > >>> > void test_fpu_env() > >>> > { > >>> >=A0 asm ("fsave %0" : "=3Dm"(*float_memory) : > ); > >>> >=A0 asm ("frstor %0" : : > "m"(*float_memory)); > >>> >=A0 asm ("fstsw %ax"); > >>> > } > >>> > > >>> > int main() > >>> > { > >>> > =A0=A0=A0init_floats(); > >>> > =A0=A0=A0test_arith_floats(); > >>> > =A0=A0=A0test_log_exp_floats(); > >>> > =A0=A0=A0test_trigo_floats(); > >>> > =A0=A0=A0test_compare_floats(); > >>> > =A0=A0=A0test_fpu_env(); > >>> > } > >>> > > >>> > > >>> > > >>> > ./gdb ./a.out > >>> > GNU gdb (GDB) 6.8.50.20090817-cvs > >>> > Copyright (C) 2009 Free Software > Foundation, Inc. > >>> > License GPLv3+: GNU GPL version 3 or > later > >>> > This is free software: you are free to > change and > >>> > redistribute it. > >>> > There is NO WARRANTY, to the extent > permitted by > >>> law. > >>> > Type "show copying" > >>> > and "show warranty" for details. > >>> > This GDB was configured as > "i686-pc-linux-gnu". > >>> > For bug reporting instructions, please > see: > >>> > ... > >>> > Setting up the environment for debugging > gdb. > >>> > Function "internal_error" not defined. > >>> > Make breakpoint pending on future shared > library load? > >>> (y > >>> > or [n]) > >>> > [answered N; input not from terminal] > >>> > Function "info_command" not defined. > >>> > Make breakpoint pending on future shared > library load? > >>> (y > >>> > or [n]) > >>> > [answered N; input not from terminal] > >>> > /home/teawater/gdb/bgdbno/gdb/.gdbinit:8: > Error in > >>> sourced > >>> > command file: > >>> > No breakpoint number 0. > >>> > (gdb) start > >>> > During symbol reading, DW_AT_name missing > from > >>> > DW_TAG_base_type. > >>> > Temporary breakpoint 1 at 0x8048c74: file > fp.c, line > >>> 196. > >>> > Starting program: > /home/teawater/gdb/bgdbno/gdb/a.out > >>> > > >>> > Temporary breakpoint 1, main () at > fp.c:196 > >>> > 196=A0=A0=A0 =A0=A0=A0init_floats(); > >>> > (gdb) record > >>> > (gdb) c > >>> > Continuing. > >>> > ../../src/gdb/utils.c:1200: > internal-error: virtual > >>> memory > >>> > exhausted. > >>> > A problem internal to GDB has been > detected, > >>> > further debugging may prove unreliable. > >>> > Quit this debugging session? (y or n) n > >>> > ../../src/gdb/utils.c:1200: > internal-error: virtual > >>> memory > >>> > exhausted. > >>> > A problem internal to GDB has been > detected, > >>> > further debugging may prove unreliable. > >>> > Create a core file of GDB? (y or n) n > >>> > > >>> > Program received signal SIGTRAP, > Trace/breakpoint > >>> trap. > >>> > 0xb7eba9bc in memcpy () from > >>> /lib/tls/i686/cmov/libc.so.6 > >>> > (gdb) quit > >>> > A debugging session is active. > >>> > > >>> > =A0=A0=A0 Inferior 1 [process 15657] will > be > >>> > killed. > >>> > > >>> > Quit anyway? (y or n) y > >>> > > >>> > > >>> > Thanks, > >>> > Hui > >>> > > >>> > On Mon, Aug 17, 2009 at 05:16, Michael > Snyder > >>> > wrote: > >>> > > paawan oza wrote: > >>> > >> > >>> > >> Hi Hui & Michael, > >>> > >> Now we revert status registers > also. > >>> > >> please find the patch attached. > >>> > >> I am sorry, if I am not pasting > the patch in > >>> > email-body due to tabs&spaces > >>> > >> problem faced by Michael last > time. > >>> > >> Regards, > >>> > >> Oza. > >>> > > > >>> > > Looking good! > >>> > > > >>> > > There were some conflicts between > your changes > >>> and a > >>> > check-in that > >>> > > happened after your submission =A0-- > =A0I've taken > >>> the > >>> > liberty of merging > >>> > > your changes with the cvs head, > fixing up the > >>> > conflicts. =A0Hope you > >>> > > don't mind =A0-- =A0merged patch > attached. > >>> > > > >>> > > I'll review your tests next. > >>> > > > >>> > > Can you write up a change log entry > for this > >>> patch? > >>> > > > >>> > > Hui, Mark, any more comments? > >>> > > > >>> > > Cheers, > >>> > > Michael > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > >>> > >>> > >>> > >>> > >> > >> > >> > >> > > > =20=20=20=20=20=20= --0-605222989-1250872255=:40151 Content-Type: application/octet-stream; name="i386.record.float.aug-21.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="i386.record.float.aug-21.patch" Content-length: 19472 LS0tCiBpMzg2LXRkZXAuYyB8ICAzODkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAxIGZp bGUgY2hhbmdlZCwgMzY5IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygt KQoKLS0tIGEvaTM4Ni10ZGVwLmMKKysrIGIvaTM4Ni10ZGVwLmMKQEAgLTMx OTYsNiArMzE5Niw3NCBAQCBpMzg2X3JlY29yZF9wdXNoIChzdHJ1Y3QgaTM4 Nl9yZWNvcmRfcyAqCiAgIHJldHVybiAwOwogfQogCisKKy8qIERlZmluZXMg Y29udGVudHMgdG8gcmVjb3JkLiAgKi8KKyNkZWZpbmUgSTM4Nl9TQVZFX0ZQ VV9SRUdTICAgICAgICAgICAgICAweGZmZmQKKyNkZWZpbmUgSTM4Nl9TQVZF X0ZQVV9FTlYgICAgICAgICAgICAgICAweGZmZmUKKyNkZWZpbmUgSTM4Nl9T QVZFX0ZQVV9FTlZfUkVHX1NUQUNLICAgICAweGZmZmYKKworLyogUmVjb3Jk IHRoZSB2YWx1ZSBvZiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgd2hpY2gg d2lsbCBiZSBjaGFuZ2VkIGJ5IHRoZQorICAgY3VycmVudCBpbnN0cnVjdGlv biB0byAicmVjb3JkX2FyY2hfbGlzdCIuICBSZXR1cm4gLTEgaWYgc29tZXRo aW5nIGlzIHdyb25nLgorKi8KKworc3RhdGljIGludCBpMzg2X3JlY29yZF9m bG9hdHMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpMzg2X3JlY29yZF9zICppciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpcmVn bnVtKQoreworICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJj aF90ZGVwIChnZGJhcmNoKTsKKyAgaW50IGk7CisKKyAgLyogT3phOiBCZWNh dXNlIG9mIGZsb2F0aW5nIHBvaW50IGluc24gcHVzaC9wb3Agb2YgZnB1IHN0 YWNrIGlzIGdvaW5nIHRvCisgICAgIGhhcHBlbi4gIEN1cnJlbnRseSB3ZSBz dG9yZSBzdDAtc3Q3IHJlZ2lzdGVycywgYnV0IHdlIG5lZWQgbm90IHN0b3Jl IGFsbAorICAgICByZWdpc3RlcnMgYWxsIHRoZSB0aW1lLCBpbiBmdXR1cmUg d2UgdXNlIGZ0YWcgcmVnaXN0ZXIgYW5kIHJlY29yZCBvbmx5CisgICAgIHRo b3NlIHdobyBhcmUgbm90IG1hcmtlZCBhcyBhbiBlbXB0eS4gICovCisKKyAg aWYgKEkzODZfU0FWRV9GUFVfUkVHUyA9PSBpcmVnbnVtKQorICAgIHsKKyAg ICAgIGZvciAoaSA9IEkzODdfU1QwX1JFR05VTSAodGRlcCk7IGkgPD0gSTM4 N19TVDBfUkVHTlVNICh0ZGVwKSArIDc7IGkrKykKKyAgICAgICAgeworICAg ICAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKGlyLT5yZWdj YWNoZSwgaSkpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0K KyAgICB9CisgIGVsc2UgaWYgKEkzODZfU0FWRV9GUFVfRU5WID09IGlyZWdu dW0pCisgICAgeworICAgICAgZm9yIChpID0gSTM4N19GQ1RSTF9SRUdOVU0g KHRkZXApOyBpIDw9IEkzODdfRk9QX1JFR05VTSAodGRlcCk7IGkrKykKKwkg ICAgICB7CisJICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAo aXItPnJlZ2NhY2hlLCBpKSkKKwkgICAgICAgIHJldHVybiAtMTsKKwkgICAg ICB9CisgICAgfQorICBlbHNlIGlmIChJMzg2X1NBVkVfRlBVX0VOVl9SRUdf U1RBQ0sgPT0gaXJlZ251bSkKKyAgICB7CisgICAgICBmb3IgKGkgPSBJMzg3 X1NUMF9SRUdOVU0gKHRkZXApOyBpIDw9IEkzODdfRk9QX1JFR05VTSAodGRl cCk7IGkrKykKKyAgICAgIHsKKyAgICAgICAgaWYgKHJlY29yZF9hcmNoX2xp c3RfYWRkX3JlZyAoaXItPnJlZ2NhY2hlLCBpKSkKKyAgICAgICAgICByZXR1 cm4gLTE7CisgICAgICB9CisgICAgfQorICBlbHNlIGlmICgoaXJlZ251bSA+ PSBJMzg3X1NUMF9SRUdOVU0gKHRkZXApKSAmJgorICAgICAgICAgICAoaXJl Z251bSA8PSBJMzg3X0ZPUF9SRUdOVU0gKHRkZXApKSkKKyAgICB7CisgICAg ICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfcmVnIChpci0+cmVnY2FjaGUs aXJlZ251bSkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgIGVsc2UK KyAgICB7CisgICAgICAvKiBQYXJhbWV0ZXIgZXJyb3IuICAqLworICAgICAg cmV0dXJuIC0xOworICAgIH0KKyAgaWYoSTM4Nl9TQVZFX0ZQVV9FTlYgIT0g aXJlZ251bSkKKyAgICB7CisgICAgZm9yIChpID0gSTM4N19GQ1RSTF9SRUdO VU0gKHRkZXApOyBpIDw9IEkzODdfRk9QX1JFR05VTSAodGRlcCk7IGkrKykK KyAgICAgIHsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcg KGlyLT5yZWdjYWNoZSwgaSkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICAg IH0KKyAgICB9CisgIHJldHVybiAwOworfQorCiAvKiBQYXJzZSB0aGUgY3Vy cmVudCBpbnN0cnVjdGlvbiBhbmQgcmVjb3JkIHRoZSB2YWx1ZXMgb2YgdGhl IHJlZ2lzdGVycyBhbmQKICAgIG1lbW9yeSB0aGF0IHdpbGwgYmUgY2hhbmdl ZCBpbiBjdXJyZW50IGluc3RydWN0aW9uIHRvICJyZWNvcmRfYXJjaF9saXN0 Ii4KICAgIFJldHVybiAtMSBpZiBzb21ldGhpbmcgd3JvbmcuICovCkBAIC0z MjE0LDYgKzMyODIsNyBAQCBpMzg2X3Byb2Nlc3NfcmVjb3JkIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiCiAgIFVMT05HRVNUIHRtcHVsb25nZXN0OwogICB1aW50 MzJfdCBvcGNvZGU7CiAgIHN0cnVjdCBpMzg2X3JlY29yZF9zIGlyOworICBz dHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJh cmNoKTsKICAgaW50IHJleCA9IDA7CiAgIHVpbnQ4X3QgcmV4X3cgPSAtMTsK ICAgdWludDhfdCByZXhfciA9IDA7CkBAIC00MjYwLDggKzQzMjksNyBAQCBy ZXN3aXRjaDoKIAl9CiAgICAgICBicmVhazsKIAotICAgICAgLyogZmxvYXRz ICovCi0gICAgICAvKiBJdCBqdXN0IHJlY29yZCB0aGUgbWVtb3J5IGNoYW5n ZSBvZiBpbnN0cmN1dGlvbi4gKi8KKyAgICAvKiBGbG9hdHMuICAqLwogICAg IGNhc2UgMHhkODoKICAgICBjYXNlIDB4ZDk6CiAgICAgY2FzZSAweGRhOgpA QCAtNDI3NSw0NSArNDM0Myw1NiBAQCByZXN3aXRjaDoKICAgICAgIGlyLnJl ZyB8PSAoKG9wY29kZSAmIDcpIDw8IDMpOwogICAgICAgaWYgKGlyLm1vZCAh PSAzKQogCXsKLQkgIC8qIG1lbW9yeSAqLworCSAgLyogTWVtb3J5LiAqLwog CSAgdWludDY0X3QgdG1wdTY0OwogCiAJICBpZiAoaTM4Nl9yZWNvcmRfbGVh X21vZHJtX2FkZHIgKCZpciwgJnRtcHU2NCkpCiAJICAgIHJldHVybiAtMTsK IAkgIHN3aXRjaCAoaXIucmVnKQogCSAgICB7Ci0JICAgIGNhc2UgMHgwMDoK LQkgICAgY2FzZSAweDAxOgogCSAgICBjYXNlIDB4MDI6CisgICAgICAgICAg ICBjYXNlIDB4MTI6CisgICAgICAgICAgICBjYXNlIDB4MjI6CisgICAgICAg ICAgICBjYXNlIDB4MzI6CisJICAgICAgLyogRm9yIGZjb20sIGZpY29tIG5v dGhpbmcgdG8gZG8uICAqLworICAgICAgICAgICAgICBicmVhazsKIAkgICAg Y2FzZSAweDAzOgorICAgICAgICAgICAgY2FzZSAweDEzOgorICAgICAgICAg ICAgY2FzZSAweDIzOgorICAgICAgICAgICAgY2FzZSAweDMzOgorCSAgICAg IC8qIEZvciBmY29tcCwgZmljb21wIHBvcCBGUFUgc3RhY2ssIHN0b3JlIGFs bC4gICovCisgICAgICAgICAgICAgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMg KGdkYmFyY2gsICZpciwgSTM4Nl9TQVZFX0ZQVV9SRUdTKSkKKyAgICAgICAg ICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgY2FzZSAweDAwOgorICAgICAgICAgICAgY2FzZSAweDAxOgog CSAgICBjYXNlIDB4MDQ6CiAJICAgIGNhc2UgMHgwNToKIAkgICAgY2FzZSAw eDA2OgogCSAgICBjYXNlIDB4MDc6CiAJICAgIGNhc2UgMHgxMDoKIAkgICAg Y2FzZSAweDExOgotCSAgICBjYXNlIDB4MTI6Ci0JICAgIGNhc2UgMHgxMzoK IAkgICAgY2FzZSAweDE0OgogCSAgICBjYXNlIDB4MTU6CiAJICAgIGNhc2Ug MHgxNjoKIAkgICAgY2FzZSAweDE3OgogCSAgICBjYXNlIDB4MjA6CiAJICAg IGNhc2UgMHgyMToKLQkgICAgY2FzZSAweDIyOgotCSAgICBjYXNlIDB4MjM6 CiAJICAgIGNhc2UgMHgyNDoKIAkgICAgY2FzZSAweDI1OgogCSAgICBjYXNl IDB4MjY6CiAJICAgIGNhc2UgMHgyNzoKIAkgICAgY2FzZSAweDMwOgogCSAg ICBjYXNlIDB4MzE6Ci0JICAgIGNhc2UgMHgzMjoKLQkgICAgY2FzZSAweDMz OgogCSAgICBjYXNlIDB4MzQ6CiAJICAgIGNhc2UgMHgzNToKIAkgICAgY2Fz ZSAweDM2OgogCSAgICBjYXNlIDB4Mzc6CisgICAgICAgICAgICAgIC8qIEZv ciBmYWRkLCBmbXVsLCBmc3ViLCBmc3ViciwgZmRpdiwgZmRpdnIsIGZpYWRk LCBmaW11bCwKKyAgICAgICAgICAgICAgICAgZmlzdWIsIGZpc3ViciwgZmlk aXYsIGZpZGl2ciwgbW9kUi9NLnJlZyBpcyBhbiBleHRlbnNpb24KKyAgICAg ICAgICAgICAgICAgb2YgY29kZSwgIGFsd2F5cyBhZmZlY3RzIHN0KDApIHJl Z2lzdGVyLiAgKi8KKyAgICAgICAgICAgICAgaWYgKGkzODZfcmVjb3JkX2Zs b2F0cyAoZ2RiYXJjaCwgJmlyLCBJMzg3X1NUMF9SRUdOVU0gKHRkZXApKSkK KyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAJICAgICAgYnJlYWs7CiAJ ICAgIGNhc2UgMHgwODoKIAkgICAgY2FzZSAweDBhOgpAQCAtNDMyMiw2ICs0 NDAxLDcgQEAgcmVzd2l0Y2g6CiAJICAgIGNhc2UgMHgxOToKIAkgICAgY2Fz ZSAweDFhOgogCSAgICBjYXNlIDB4MWI6CisgICAgICAgICAgICBjYXNlIDB4 MWQ6CiAJICAgIGNhc2UgMHgyODoKIAkgICAgY2FzZSAweDI5OgogCSAgICBj YXNlIDB4MmE6CkBAIC00MzMwLDkgKzQ0MTAsMTQgQEAgcmVzd2l0Y2g6CiAJ ICAgIGNhc2UgMHgzOToKIAkgICAgY2FzZSAweDNhOgogCSAgICBjYXNlIDB4 M2I6CisgICAgICAgICAgICBjYXNlIDB4M2M6CisgICAgICAgICAgICBjYXNl IDB4M2Q6CiAJICAgICAgc3dpdGNoIChpci5yZWcgJiA3KQogCQl7CiAJCWNh c2UgMDoKKwkJICAvKiBIYW5kbGluZyBmbGQsIGZpbGQuICAqLworCQkgIGlm IChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwgSTM4Nl9TQVZF X0ZQVV9SRUdTKSkKKwkJICAgIHJldHVybiAtMTsKIAkJICBicmVhazsKIAkJ Y2FzZSAxOgogCQkgIHN3aXRjaCAoaXIucmVnID4+IDQpCkBAIC00MzQ2LDYg KzQ0MzEsNyBAQCByZXN3aXRjaDoKIAkJCXJldHVybiAtMTsKIAkJICAgICAg YnJlYWs7CiAJCSAgICBjYXNlIDM6CisJCSAgICAgIGJyZWFrOwogCQkgICAg ZGVmYXVsdDoKIAkJICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAodG1wdTY0LCAyKSkKIAkJCXJldHVybiAtMTsKQEAgLTQzNTYsMTUgKzQ0 NDIsNDkgQEAgcmVzd2l0Y2g6CiAJCSAgc3dpdGNoIChpci5yZWcgPj4gNCkK IAkJICAgIHsKIAkJICAgIGNhc2UgMDoKKwkJICAgICAgaWYgKHJlY29yZF9h cmNoX2xpc3RfYWRkX21lbSAodG1wdTY0LCA0KSkKKwkJCXJldHVybiAtMTsK KwkJICAgICAgaWYgKDMgPT0gKGlyLnJlZyAmIDcpKQorCQkJeworCQkJICAv KiBGb3IgZnN0cCBtMzJmcC4gICovCisJCQkgIGlmIChpMzg2X3JlY29yZF9m bG9hdHMgKGdkYmFyY2gsICZpciwKKwkJCQkJCSAgSTM4Nl9TQVZFX0ZQVV9S RUdTKSkKKwkJCSAgICByZXR1cm4gLTE7CisJCQl9CisJCSAgICAgIGJyZWFr OwogCQkgICAgY2FzZSAxOgogCQkgICAgICBpZiAocmVjb3JkX2FyY2hfbGlz dF9hZGRfbWVtICh0bXB1NjQsIDQpKQogCQkJcmV0dXJuIC0xOworCQkgICAg ICBpZiAoKDMgPT0gKGlyLnJlZyAmIDcpKQorCQkJICB8fCAoNSA9PSAoaXIu cmVnICYgNykpCisJCQkgIHx8ICg3ID09IChpci5yZWcgJiA3KSkpCisJCQl7 CisJCQkgIC8qIEZvciBmc3RwIGluc24uICAqLworCQkJICBpZiAoaTM4Nl9y ZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsCisJCQkJCQkgIEkzODZfU0FW RV9GUFVfUkVHUykpCisJCQkgICAgcmV0dXJuIC0xOworCQkJfQogCQkgICAg ICBicmVhazsKIAkJICAgIGNhc2UgMjoKIAkJICAgICAgaWYgKHJlY29yZF9h cmNoX2xpc3RfYWRkX21lbSAodG1wdTY0LCA4KSkKIAkJCXJldHVybiAtMTsK KwkJICAgICAgaWYgKDMgPT0gKGlyLnJlZyAmIDcpKQorCQkJeworCQkJICAv KiBGb3IgZnN0cCBtNjRmcC4gICovCisJCQkgIGlmIChpMzg2X3JlY29yZF9m bG9hdHMgKGdkYmFyY2gsICZpciwKKwkJCQkJCSAgSTM4Nl9TQVZFX0ZQVV9S RUdTKSkKKwkJCSAgICByZXR1cm4gLTE7CisJCQl9CiAJCSAgICAgIGJyZWFr OwogCQkgICAgY2FzZSAzOgorCQkgICAgICBpZiAoKDMgPD0gKGlyLnJlZyAm IDcpKSAmJiAoNiA8PSAoaXIucmVnICYgNykpKQorCQkJeworCQkJICAvKiBG b3IgZmlzdHAsIGZibGQsIGZpbGQsIGZic3RwLiAgKi8KKwkJCSAgaWYgKGkz ODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLAorCQkJCQkJICBJMzg2 X1NBVkVfRlBVX1JFR1MpKQorCQkJICAgIHJldHVybiAtMTsKKwkJCX0KKwkJ ICAgICAgLyogRmFsbCB0aHJvdWdoICovCiAJCSAgICBkZWZhdWx0OgogCQkg ICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1NjQsIDIp KQogCQkJcmV0dXJuIC0xOwpAQCAtNDM3NCwxMSArNDQ5NCwyMSBAQCByZXN3 aXRjaDoKIAkJfQogCSAgICAgIGJyZWFrOwogCSAgICBjYXNlIDB4MGM6Cisg ICAgICAgICAgICAgIC8qIEluc24gZmxkZW52LiAgKi8KKyAgICAgICAgICAg ICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMzg2X1NBVkVf RlBVX0VOVl9SRUdfU1RBQ0spKQorICAgICAgICAgICAgICAgIHJldHVybiAt MTsKKyAgICAgICAgICAgICAgYnJlYWs7CiAJICAgIGNhc2UgMHgwZDoKLQkg ICAgY2FzZSAweDFkOgorICAgICAgICAgICAgICAvKiBJbnNuIGZsZGN3LiAg Ki8KKyAgICAgICAgICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2Ri YXJjaCwgJmlyLCBJMzg3X0ZDVFJMX1JFR05VTSAodGRlcCkpKQorICAgICAg ICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgYnJlYWs7CiAJ ICAgIGNhc2UgMHgyYzoKLQkgICAgY2FzZSAweDNjOgotCSAgICBjYXNlIDB4 M2Q6CisgICAgICAgICAgICAgIC8qIEluc24gZnJzdG9yLiAgKi8KKyAgICAg ICAgICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmly LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJMzg2 X1NBVkVfRlBVX0VOVl9SRUdfU1RBQ0spKQorICAgICAgICAgICAgICAgIHJl dHVybiAtMTsKIAkgICAgICBicmVhazsKIAkgICAgY2FzZSAweDBlOgogCSAg ICAgIGlmIChpci5kZmxhZykKQEAgLTQzOTYsNiArNDUyNiw5IEBAIHJlc3dp dGNoOgogCSAgICBjYXNlIDB4MmY6CiAJICAgICAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX21lbSAodG1wdTY0LCAyKSkKIAkJcmV0dXJuIC0xOworICAg ICAgICAgICAgICAvKiBJbnNuIGZzdHAsIGZic3RwLiAgKi8KKyAgICAgICAg ICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCBJ Mzg2X1NBVkVfRlBVX1JFR1MpKQorICAgICAgICAgICAgICAgIHJldHVybiAt MTsKIAkgICAgICBicmVhazsKIAkgICAgY2FzZSAweDFmOgogCSAgICBjYXNl IDB4M2U6CkBAIC00NDE3LDEwICs0NTUwLDE3IEBAIHJlc3dpdGNoOgogCQl9 CiAJICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTY0 LCA4MCkpCiAJCXJldHVybiAtMTsKKwkgICAgICAvKiBJbnNuIGZzYXZlLiAg Ki8KKwkgICAgICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAm aXIsCisJCQkJICAgICAgSTM4Nl9TQVZFX0ZQVV9FTlZfUkVHX1NUQUNLKSkK KwkJcmV0dXJuIC0xOwogCSAgICAgIGJyZWFrOwogCSAgICBjYXNlIDB4M2Y6 CiAJICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTY0 LCA4KSkKIAkJcmV0dXJuIC0xOworCSAgICAgIC8qIEluc24gZmlzdHAuICAq LworCSAgICAgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZp ciwgSTM4Nl9TQVZFX0ZQVV9SRUdTKSkKKwkJcmV0dXJuIC0xOwogCSAgICAg IGJyZWFrOwogCSAgICBkZWZhdWx0OgogCSAgICAgIGlyLmFkZHIgLT0gMjsK QEAgLTQ0MjksOCArNDU2OSwyMTEgQEAgcmVzd2l0Y2g6CiAJICAgICAgYnJl YWs7CiAJICAgIH0KIAl9CisgICAgICAvKiBPcGNvZGUgaXMgYW4gZXh0ZW5z aW9uIG9mIG1vZFIvTSBieXRlLiAgKi8KKyAgICAgIGVsc2UKKyAgICAgICAg eworCSAgc3dpdGNoIChvcGNvZGUpCisJICAgIHsKKwkgICAgY2FzZSAweGQ4 OgorCSAgICAgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZp ciwgSTM4N19TVDBfUkVHTlVNICh0ZGVwKSkpCisJCXJldHVybiAtMTsKKwkg ICAgICBicmVhazsKKwkgICAgY2FzZSAweGQ5OgorCSAgICAgIGlmICgweDBj ID09IChpci5tb2RybSA+PiA0KSkKKwkJeworCQkgIGlmICgoaXIubW9kcm0g JiAweDBmKSA8PSA3KQorCQkgICAgeworCQkgICAgICBpZiAoaTM4Nl9yZWNv cmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsCisJCQkJCSAgICAgIEkzODZfU0FW RV9GUFVfUkVHUykpCisJCQlyZXR1cm4gLTE7CisJCSAgICB9CisgICAgICAg ICAgICAgICAgICBlbHNlCisJCSAgICB7CisJCSAgICAgIGlmIChpMzg2X3Jl Y29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwKKwkJCQkJICAgICAgSTM4N19T VDBfUkVHTlVNICh0ZGVwKSkpCisJCQlyZXR1cm4gLTE7CisJCSAgICAgIC8q IElmIG9ubHkgc3QoMCkgaXMgY2hhbmdpbmcsIHRoZW4gd2UgaGF2ZSBhbHJl YWR5CisJCQkgcmVjb3JkZWQuICAqLworCQkgICAgICBpZiAoKGlyLm1vZHJt ICYgMHgwZikgLSAweDA4KQorCQkJeworCQkJICBpZiAoaTM4Nl9yZWNvcmRf ZmxvYXRzIChnZGJhcmNoLCAmaXIsCisJCQkJCQkgIEkzODdfU1QwX1JFR05V TSAodGRlcCkgKworCQkJCQkJICAoKGlyLm1vZHJtICYgMHgwZikgLSAweDA4 KSkpCisJCQkgICAgcmV0dXJuIC0xOworCQkJfQorCQkgICAgfQorCQl9Cisg ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisJCSAgc3dp dGNoIChpci5tb2RybSkKKwkJICAgIHsKKwkJICAgIGNhc2UgMHhlMDoKKwkJ ICAgIGNhc2UgMHhlMToKKwkJICAgIGNhc2UgMHhmMDoKKwkJICAgIGNhc2Ug MHhmNToKKwkJICAgIGNhc2UgMHhmODoKKwkJICAgIGNhc2UgMHhmYToKKwkJ ICAgIGNhc2UgMHhmYzoKKwkJICAgIGNhc2UgMHhmZToKKwkJICAgIGNhc2Ug MHhmZjoKKwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJj aCwgJmlyLAorCQkJCQkgICAgICBJMzg3X1NUMF9SRUdOVU0gKHRkZXApKSkK KwkJCXJldHVybiAtMTsKKwkJICAgICAgYnJlYWs7CisJCSAgICBjYXNlIDB4 ZjE6CisJCSAgICBjYXNlIDB4ZjI6CisJCSAgICBjYXNlIDB4ZjM6CisJCSAg ICBjYXNlIDB4ZjQ6CisJCSAgICBjYXNlIDB4ZjY6CisJCSAgICBjYXNlIDB4 Zjc6CisJCSAgICBjYXNlIDB4ZTg6CisJCSAgICBjYXNlIDB4ZTk6CisJCSAg ICBjYXNlIDB4ZWE6CisJCSAgICBjYXNlIDB4ZWI6CisJCSAgICBjYXNlIDB4 ZWM6CisJCSAgICBjYXNlIDB4ZWQ6CisJCSAgICBjYXNlIDB4ZWU6CisJCSAg ICBjYXNlIDB4Zjk6CisJCSAgICBjYXNlIDB4ZmI6CisJCSAgICAgIGlmIChp Mzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwKKwkJCQkJICAgICAg STM4Nl9TQVZFX0ZQVV9SRUdTKSkKKwkJCXJldHVybiAtMTsKKwkJICAgICAg YnJlYWs7CisJCSAgICBjYXNlIDB4ZmQ6CisJCSAgICAgIGlmIChpMzg2X3Jl Y29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwKKwkJCQkJICAgICAgSTM4N19T VDBfUkVHTlVNICh0ZGVwKSkpCisJCQlyZXR1cm4gLTE7CisJCSAgICAgIGlm IChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwKKwkJCQkJICAg ICAgSTM4N19TVDBfUkVHTlVNICh0ZGVwKSArIDEpKQorCQkJcmV0dXJuIC0x OworCQkgICAgICBicmVhazsKKwkJICAgIH0KKwkJfQorICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMHhkYToKKyAgICAgICAgICAg ICAgaWYgKDB4ZTkgPT0gaXIubW9kcm0pCisgICAgICAgICAgICAgICAgewor CQkgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwgSTM4 Nl9TQVZFX0ZQVV9SRUdTKSkKKwkJICAgIHJldHVybiAtMTsKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYgKCgweDBjID09IGly Lm1vZHJtID4+IDQpIHx8ICgweDBkID09IGlyLm1vZHJtID4+IDQpKQorICAg ICAgICAgICAgICAgIHsKKwkJICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChn ZGJhcmNoLCAmaXIsCisJCQkJCSAgSTM4N19TVDBfUkVHTlVNICh0ZGVwKSkp CisJCSAgICByZXR1cm4gLTE7CisJCSAgaWYgKCgoaXIubW9kcm0gJiAweDBm KSA+IDApICYmICgoaXIubW9kcm0gJiAweDBmKSA8PSA3KSkKKwkJICAgIHsK KwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmly LAorCQkJCQkgICAgICBJMzg3X1NUMF9SRUdOVU0gKHRkZXApICsKKwkJCQkJ ICAgICAgKGlyLm1vZHJtICYgMHgwZikpKQorCQkJcmV0dXJuIC0xOworCQkg ICAgfQorCQkgIGVsc2UgaWYgKChpci5tb2RybSAmIDB4MGYpIC0gMHgwOCkK KwkJICAgIHsKKwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2Ri YXJjaCwgJmlyLAorCQkJCQkgICAgICBJMzg3X1NUMF9SRUdOVU0gKHRkZXAp ICsKKwkJCQkJICAgICAgKChpci5tb2RybSAmIDB4MGYpIC0gMHgwOCkpKQor CQkJcmV0dXJuIC0xOworCQkgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDB4ZGI6Cisg ICAgICAgICAgICAgIGlmICgweGUzID09IGlyLm1vZHJtKQorICAgICAgICAg ICAgICAgIHsKKwkJICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNo LCAmaXIsIEkzODZfU0FWRV9GUFVfRU5WKSkKKwkJICAgIHJldHVybiAtMTsK KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UgaWYgKCgw eDBjID09IGlyLm1vZHJtID4+IDQpIHx8ICgweDBkID09IGlyLm1vZHJtID4+ IDQpKQorICAgICAgICAgICAgICAgIHsKKwkJICBpZiAoaTM4Nl9yZWNvcmRf ZmxvYXRzIChnZGJhcmNoLCAmaXIsCisJCQkJCSAgSTM4N19TVDBfUkVHTlVN ICh0ZGVwKSkpCisJCSAgICByZXR1cm4gLTE7CisJCSAgaWYgKCgoaXIubW9k cm0gJiAweDBmKSA+IDApICYmICgoaXIubW9kcm0gJiAweDBmKSA8PSA3KSkK KwkJICAgIHsKKwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2Ri YXJjaCwgJmlyLAorCQkJCQkgICAgICBJMzg3X1NUMF9SRUdOVU0gKHRkZXAp ICsKKwkJCQkJICAgICAgKGlyLm1vZHJtICYgMHgwZikpKQorCQkJcmV0dXJu IC0xOworCQkgICAgfQorCQkgIGVsc2UgaWYgKChpci5tb2RybSAmIDB4MGYp IC0gMHgwOCkKKwkJICAgIHsKKwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zs b2F0cyAoZ2RiYXJjaCwgJmlyLAorCQkJCQkgICAgICBJMzg3X1NUMF9SRUdO VU0gKHRkZXApICsKKwkJCQkJICAgICAgKChpci5tb2RybSAmIDB4MGYpIC0g MHgwOCkpKQorCQkJcmV0dXJuIC0xOworCQkgICAgfQorICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl IDB4ZGM6CisgICAgICAgICAgICAgIGlmICgoMHgwYyA9PSBpci5tb2RybSA+ PiA0KQorCQkgIHx8ICgweDBkID09IGlyLm1vZHJtID4+IDQpCisJCSAgfHwg KDB4MGYgPT0gaXIubW9kcm0gPj4gNCkpCisgICAgICAgICAgICAgICAgewor CQkgIGlmICgoaXIubW9kcm0gJiAweDBmKSA8PSA3KQorCQkgICAgeworCQkg ICAgICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsCisJ CQkJCSAgICAgIEkzODdfU1QwX1JFR05VTSAodGRlcCkgKworCQkJCQkgICAg ICAoaXIubW9kcm0gJiAweDBmKSkpCisJCQlyZXR1cm4gLTE7CisJCSAgICB9 CisJCSAgZWxzZQorCQkgICAgeworCQkgICAgICBpZiAoaTM4Nl9yZWNvcmRf ZmxvYXRzIChnZGJhcmNoLCAmaXIsCisJCQkJCSAgICAgIEkzODdfU1QwX1JF R05VTSAodGRlcCkgKworCQkJCQkgICAgICAoKGlyLm1vZHJtICYgMHgwZikg LSAweDA4KSkpCisJCQlyZXR1cm4gLTE7CisJCSAgICB9CisgICAgICAgICAg ICAgICAgfQorCSAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAweGRk OgorICAgICAgICAgICAgICBpZiAoMHgwYyA9PSBpci5tb2RybSA+PiA0KQor ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGlmIChpMzg2 X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkzODdfRlRBR19SRUdOVU0g KHRkZXApKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBpZiAoKDB4MGQg PT0gaXIubW9kcm0gPj4gNCkgfHwgKDB4MGUgPT0gaXIubW9kcm0gPj4gNCkp CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgaWYgKChp ci5tb2RybSAmIDB4MGYpIDw9IDcpCisgICAgICAgICAgICAgICAgICAgIHsK KwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmly LAorCQkJCQkgICAgICBJMzg3X1NUMF9SRUdOVU0gKHRkZXApICsKKwkJCQkJ ICAgICAgKGlyLm1vZHJtICYgMHgwZikpKQorCQkJcmV0dXJuIC0xOworICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBlbHNlCisg ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICBp ZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsCisJCQkJCSAg ICAgIEkzODZfU0FWRV9GUFVfUkVHUykpCisgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgY2FzZSAweGRlOgorICAgICAgICAgICAgICBpZiAoKDB4MGMgPT0gaXIu bW9kcm0gPj4gNCkKKwkJICB8fCAoMHgwZSA9PSBpci5tb2RybSA+PiA0KQor CQkgIHx8ICgweDBmID09IGlyLm1vZHJtID4+IDQpCisJCSAgfHwgKDB4ZDkg PT0gaXIubW9kcm0pKQorICAgICAgICAgICAgICAgIHsKKwkJICBpZiAoaTM4 Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsIEkzODZfU0FWRV9GUFVf UkVHUykpCisJCSAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMHhkZjoK KyAgICAgICAgICAgICAgaWYgKDB4ZTAgPT0gaXIubW9kcm0pCisgICAgICAg ICAgICAgICAgeworCQkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcg KGlyLnJlZ2NhY2hlLCBJMzg2X0VBWF9SRUdOVU0pKQorCQkgICAgcmV0dXJu IC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSBp ZiAoKDB4MGYgPT0gaXIubW9kcm0gPj4gNCkgfHwgKDB4MGUgPT0gaXIubW9k cm0gPj4gNCkpCisgICAgICAgICAgICAgICAgeworCQkgIGlmIChpMzg2X3Jl Y29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwgSTM4Nl9TQVZFX0ZQVV9SRUdT KSkKKwkJICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgIGJyZWFrOworCSAgICB9CisJfQogICAgICAgYnJlYWs7Ci0K ICAgICAgIC8qIHN0cmluZyBvcHMgKi8KICAgICAgIC8qIG1vdnNTICovCiAg ICAgY2FzZSAweGE0OgpAQCAtNDgzNSwxMiArNTE3OCwxOCBAQCByZXN3aXRj aDoKICAgICAgIGJyZWFrOwogCiAgICAgICAvKiBmd2FpdCAqLwotICAgICAg LyogWFhYICovCiAgICAgY2FzZSAweDliOgotICAgICAgcHJpbnRmX3VuZmls dGVyZWQgKF8oIlByb2Nlc3MgcmVjb3JkIGRvZXNuJ3Qgc3VwcG9ydCBpbnN0 cnVjdGlvbiAiCi0JCQkgICAiZndhaXQuXG4iKSk7Ci0gICAgICBpci5hZGRy IC09IDE7Ci0gICAgICBnb3RvIG5vX3N1cHBvcnQ7CisgICAgICBpZiAodGFy Z2V0X3JlYWRfbWVtb3J5IChpci5hZGRyLCAmdG1wdTgsIDEpKQorICAgICAg ICB7CisgICAgICAgICAgaWYgKHJlY29yZF9kZWJ1ZykKKyAgICAgICAgICAg IHByaW50Zl91bmZpbHRlcmVkIChfKCJQcm9jZXNzIHJlY29yZDogZXJyb3Ig cmVhZGluZyBtZW1vcnkgYXQgIgorCQkJCSAiYWRkciAweCVzIGxlbiA9IDEu XG4iKSwKKwkJCSAgICAgICBwYWRkcmVzcyAoZ2RiYXJjaCwgaXIuYWRkcikp OworICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgb3Bj b2RlID0gKHVpbnQzMl90KSB0bXB1ODsKKyAgICAgIGlyLmFkZHIrKzsKKyAg ICAgIGdvdG8gcmVzd2l0Y2g7CiAgICAgICBicmVhazsKIAogICAgICAgLyog aW50MyAqLwo= --0-605222989-1250872255=:40151 Content-Type: application/octet-stream; name="floating.ChangeLog.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="floating.ChangeLog.patch" Content-length: 615 LS0tIGdkYi5vcmlnL0NoYW5nZUxvZwkyMDA5LTA4LTIxIDIxOjM3OjE4LjAw MDAwMDAwMCAtMDQwMAorKysgZ2RiLm5ldy9mbG9hdGluZy5DaGFuZ2VMb2cJ MjAwOS0wOC0yMSAyMTozNzoxMy4wMDAwMDAwMDAgLTA0MDAKQEAgLTEsMyAr MSw5IEBACisyMDA5LTA4LTIxICBPemEgUGF3YW5kZWVwICA8cGFhd2FuMTk4 MkB5YWhvby5jb20+CisKKyAgICAgICAgKiBpMzg2LXRkZXAuYzogIFN1cHBv cnQgZm9yIGZsb2F0aW5nIHBvaW50IHJlY29yZGluZy4KKyAgICAgICAgUmVj b3JkcyBhbmQgUmVwbGF5IHRoZSBpMzg2IGZsb2F0aW5nIHBvaW50IHJlZ2lz dGVycywKKyAgICAgICAgb2YgaTM4NyBGUFUuCisKIDIwMDktMDgtMTkgIFJh bGYgV2lsZGVuaHVlcyAgPFJhbGYuV2lsZGVuaHVlc0BnbXguZGU+CiAKIAkq IGNvbmZpZ3VyZS5hYzogQ2FsbCBBQ19ESVNBQkxFX09QVElPTl9DSEVDS0lO Ry4K --0-605222989-1250872255=:40151--