From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2078.outbound.protection.outlook.com [40.107.244.78]) by sourceware.org (Postfix) with ESMTPS id 373B83858D1E for ; Wed, 20 Apr 2022 19:08:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 373B83858D1E ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RU97FNi2sN7DMm7g9kMOZfBQ4Tg19OLUYAvQaWm3NKArr6Ctlx1GofxO5QEvZkPKYe7GQfuCRZGaxYiwBOFUl1fn3OffT7ufjKHh30kHOrHYF2WJpYh9ivvQahsjRXqcsgJTkmE9U5SpgvxDkwhk7AzMoS5fSfYB/ySwhMk/cyq9OFg3EkyCNMIzWc/PtXo6mPesqHmew/wdAuqlJZcTOPzKE2Xa7t+PLbqKkyT/2wzH7sMd4fi8AQfL0v1+TBNUKzoEflRv75Qa0BqgUKOj7MEFUQlk4XAIkf5FisqRluVd8wbEIDtvXEUrA48eQv0/MSt4zRozzCOAAfnhjkTa5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=74HR/EeKa20ntX0fTEYQZJReLIkKSvYmvRpMlQCkK+Y=; b=Dvf4j4v/e1Wbv0+7bwlDPrcM1iUuolap6ThhM8Jt14eO6cGhNpW1vH4HLEZ76pu/Z936B7quGTl4b3pulgobWqa/Nmc9P2ZrMR6XFi0h0bqN6cUlCCCkeMyRvjPkdjs6qL/6oDvuq5OvqSdDE9MkqWh4eCueh/WLiNmX4bPWo2mNzhGFFI9JXKA27TgxVy4/lkp5BA0/zKnkBNnnVY3izfuqKfYkGzbILTyaTkiIx62cn6dJwJiWwSn2PbrynS+VtQdCSJWTYOYvzE14UzVUjHO+EhOH/d3YhUEJNMRN1/CJoT41DvykQG7NvinDxVfqpoxTKS1o6Mn072FR0VLXrw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none Received: from DM6PR12MB4219.namprd12.prod.outlook.com (2603:10b6:5:217::14) by BYAPR12MB2759.namprd12.prod.outlook.com (2603:10b6:a03:61::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.25; Wed, 20 Apr 2022 19:08:43 +0000 Received: from DM6PR12MB4219.namprd12.prod.outlook.com ([fe80::1811:c817:6ced:7312]) by DM6PR12MB4219.namprd12.prod.outlook.com ([fe80::1811:c817:6ced:7312%5]) with mapi id 15.20.5186.014; Wed, 20 Apr 2022 19:08:43 +0000 From: "Potharla, Rupesh" To: Andrew Burgess , Tom Tromey , "Potharla, Rupesh via Gdb-patches" CC: "George, Jini Susan" , "Parasuraman, Hariharan" , "Sharma, Alok Kumar" Subject: RE: GDB/Fortran: Support for Assumed Rank Zero. Thread-Topic: GDB/Fortran: Support for Assumed Rank Zero. Thread-Index: AdhPHIhtItVA7FXxR1mxw9qPo/2AqgAR6eyAACFjbwAAFzg+gAAf2jGgAA5VbwAAD8E6UAB6jVG8AAPcHNAAZJiUgAAHAtRw Date: Wed, 20 Apr 2022 19:08:43 +0000 Message-ID: References: <20220413112753.4c6f1128@f35-zws-1> <20220414142845.281b878d@f35-zws-1> <20220415123112.697ff872@f35-zws-1> <87tuaqy0uz.fsf@tromey.com> <87sfq7rd94.fsf@redhat.com> In-Reply-To: <87sfq7rd94.fsf@redhat.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Enabled=true; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SetDate=2022-04-20T18:43:00Z; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Method=Standard; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Name=AMD Official Use Only-AIP 2.0; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ActionId=af34924c-b2a2-4231-8aa3-56ee4178c3f7; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ContentBits=1 msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_enabled: true msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_setdate: 2022-04-20T19:08:40Z msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_method: Standard msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_name: AMD Official Use Only-AIP 2.0 msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_siteid: 3dd8961f-e488-4e60-8e11-a82d994e183d msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_actionid: c0f04610-0161-45c9-950f-8b7661e7008c msip_label_88914ebd-7e6c-4e12-a031-a9906be2db14_contentbits: 0 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1aa68f65-4b2f-46b3-e759-08da2301303f x-ms-traffictypediagnostic: BYAPR12MB2759:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kB8QmWuxuBYm73TK0/bazZISF20sXtwm7s7MQ4KviAZemkn546H1A37MUISxUdpCBRDX7cqNfEqBBVn69i5yixgTEuRqlU7upW3Tkvz0hId6OV643cXKzSELHmRcDqe1HsqX+4TXScYefXHyNUREJcqWUJ31WGA3oEGcmpHxq6qM2APpMQNEMvDFe7oouctDdiOg7WMYGDkcKXmWUhkXnIsoFo5sWb41hmVIN+ONjoNTi09DUz5iKATace5+6AcKHKvzAFlCk0OPAfUwnxf2pNixSRRoplfw5n+BKoxh5pfgorJmuh5THEwYqggRa3DpmwAxW8wzCy+vw9gkUP3S2801RUk5mfFpOYBllSY+UqfIppAUnQkskbQGHRmecqOK2lu+A3qkOFZhMTXL2FNFGG5QCt4MEoRxNYNP/hGSKbcO5dtxAP9w1/zl7hWddFKknzJTTlLnRp4Aml03Qlb1uDDaQUK3hmIsAgl3NgIcydHGJ15vdQw2qUdHOu8Twjr65FbxEqdJjbe7qlStLqH/oRqNgsa7MOsUsLeEHUoPjeoRFLBGcMCYDxXpqhG1IVsQRynWa+HvadBMbvz7MwvigXi3UZ9q8RH6U2CB+a7WEC2DOnJf3fxPd46YtrBpHzqSMJ11s4LWUVFWIxc9cKDXYd+PjRCLKvX5cCgFMaJgeHKfeWDOPeZ8QbadHsY72H6qCLDQmkV5MNtdhaalKBP4QQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4219.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(2906002)(8936002)(33656002)(186003)(99936003)(53546011)(55236004)(9686003)(83380400001)(26005)(7696005)(6506007)(508600001)(86362001)(52536014)(5660300002)(66946007)(66476007)(54906003)(316002)(110136005)(4326008)(8676002)(64756008)(66556008)(66446008)(122000001)(76116006)(55016003)(38070700005)(38100700002)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?MvcfLsWP7VzXgTUksRGGHMpn82wV+TEY3tOWmjavS9UXunk8LV0Kip01lHVR?= =?us-ascii?Q?4pMnKVetUpbhURht09sATBaif3FYkQnaQyVcedU3qWs5HaxySnMZoPENSFTT?= =?us-ascii?Q?aF1EnbbpEwwxBWzA06s3fCDojlH2zge3gwoSJTET7w3Qf7l+DE0Cq99dhqM4?= =?us-ascii?Q?wSi0p2PackIVUjK7neVJjdf0wfTYwbHXig6DC2jBkdEXXjBvpXnebpYrMAr2?= =?us-ascii?Q?XMrh5RSdrdx4JLFNMuTo3dIIr8Jpepz8FE3RVHR0prJio06ozpZY4l1bNOqv?= =?us-ascii?Q?MUHTct6m/0IPAfDOGzMZk8FMLRftuIs9yUaiI8QPSzbqFMJgjnbey2TlbUZD?= =?us-ascii?Q?VGsfzJX7tJWO4nl3LfznbpIX85PyLKDzAAh5UsLKwEc435/6fVhYNViMOA1Y?= =?us-ascii?Q?OUMW10gm0fNeff3/eCZvZWKlruK3bmTEbNQdMPzhhWfJgjQjJ79+inVN0aDk?= =?us-ascii?Q?lIJyM9mNEhN/Ffz+MGveXe0dKhJqsASO89VqOAExBWKv+Q3IkZG4TRpMF+1f?= =?us-ascii?Q?g7EFMLm8MGNsBF8JOsKrOy0lqSzAbVHqGFigMiyCweVp3mMRO3/FQev7MeNY?= =?us-ascii?Q?8FoecFYaABEgJb5+7UgBOcbulUW59E3USGZ96kmWFUT1HYf8ohu3DSnsXwDR?= =?us-ascii?Q?CGUF5BOBlwV0rBKFufaffRWotPb1Afe6R/u9meUF7U3loIIJf0U4Esus0Q50?= =?us-ascii?Q?n66awVjWKNO828Aww3Hs+toA7dDsf7o4p4Yw69aW6Kqg/xrtrSZIrPSzKn8p?= =?us-ascii?Q?VfS/zlSQUPZJA3fJdcmk8eaFuAjfY4bh3Cnupwf1gd0gMaeH7zW6oE7fV+db?= =?us-ascii?Q?ClOSLKviG8oAouCWjwvSSOqLECt6nGh9QWCn0OFdAOWIyJnzhOFeh2JUN+EX?= =?us-ascii?Q?60pcID3OIj2BEL+Umyj3OweyAWANZxIkdWzWGn0DuWDM3BHz2Eab/x7uGnp3?= =?us-ascii?Q?uq8OFaE3aAfeS66Aow5D1XrlzhnYxRaV5nhu2UJrG2Lbsw/fCBp34OAYL1v4?= =?us-ascii?Q?a68xx0Z3P+LhI5HCyV8sXFH/F9apwHEFGi9p7ENAc/OXQqdXXls+Vls97dxT?= =?us-ascii?Q?IpMo5+MlLDluRWZHSnLy1vNRRX29BnNHYS1YerAscZufT/K2ohhI/C2zEt6/?= =?us-ascii?Q?6tWbYWrET5n+R9uWi0fMU0xg75jQohlessLdCGnMvoHW7SL9+ZCpwtAlKA7/?= =?us-ascii?Q?cqsmKD9C8RxeEj81kfWL45cb7enko0ODffMGilqbraiw3gFP3NT2o8yP4pXX?= =?us-ascii?Q?r9lpR68tYpi6st4gkVjvL3A/DNKHNqW3eJW4YbujJ83auBB17Vg5XoOPtNTv?= =?us-ascii?Q?Ii810u54vvs8Mscxt7avwMxfYEOJupLfqUIpNe1irMp+fi3z7jwtn7PpQSLQ?= =?us-ascii?Q?Jj4ZTPMSx8SAfGrMoMNheSHQsayCAUKtQUdnkEOZZwLMTnCmT8xDkeErHKo0?= =?us-ascii?Q?ruKRQ24oKOWAGvzCU7n37lY9S8Mczna6cUotUj9A1DqqsVF4PGmQaoo5HM8Q?= =?us-ascii?Q?ZS9PcYW1NIqUC1zUmbh4y65u2YbC6LctF8bABOMOXXYZS6LeI4LMhakFzES9?= =?us-ascii?Q?M5ENTMhsfbRfAniZ/f4JAUsiKbtQbiKnqnnNOAQiTDcCot9+kTsqO3pnBgIg?= =?us-ascii?Q?dzN5o/lNnKevY0cfIuSKKcZ04RSYjB5W3uSSHvWA8XAL5Su/oCVxbG67Vxbf?= =?us-ascii?Q?5icQMkKZRDM5DpyycqYAGaqgJ8QZTh+S8x7MGidPBPp5XbBI?= Content-Type: multipart/mixed; boundary="_002_DM6PR12MB4219F77ECE1E36BCD2E07A0EE7F59DM6PR12MB4219namp_" MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4219.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1aa68f65-4b2f-46b3-e759-08da2301303f X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2022 19:08:43.7467 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pFmYWPN/YGdl7KvM12bxtjX2L84ocKbqrTDAXxSuZnztqRXEi4RGvacW7sLuD4O8ormQt25AcVEVSPXtfvsKwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB2759 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Apr 2022 19:08:50 -0000 --_002_DM6PR12MB4219F77ECE1E36BCD2E07A0EE7F59DM6PR12MB4219namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only] Thanks, Andrew, Made suggested code changes and attached the updated patch. Requesting to r= eview the code changes. =20 Regards, Rupesh P >> From 5357e50f3083d6fcbdcab4ca8932ae123d32773b Mon Sep 17 00:00:00 >2001 >> From: rupothar >> Date: Fri, 8 Apr 2022 16:05:41 +0530 >> Subject: [PATCH] gdb/fortran: Support for assumed rank zero >> >> If a variable is passed to function in FORTRAN as an argument the >> variable is treated as an array with rank zero. GDB currently does >> not support the case for assumed rank 0. This patch provides support >> for assumed rank 0 and updates the testcase as well. >> >> Without patch: >> Breakpoint 1, arank::sub1 (a=3D> failed to resolve dynamic array rank>) at assumedrank.f90:11 >> 11 PRINT *, RANK(a) >> (gdb) p a >> failed to resolve dynamic array rank >> (gdb) p rank(a) >> failed to resolve dynamic array rank >> >> With patch: >> Breakpoint 1, arank::sub1 (a=3D0) at assumedrank.f90:11 >> 11 PRINT *, RANK(a) >> (gdb) p a >> $1 =3D 0 >> (gdb) p rank(a) >> $2 =3D 0 >> --- >> gdb/gdbtypes.c | 11 +++++++---- >> gdb/gdbtypes.h | 1 - >> gdb/testsuite/gdb.fortran/assumedrank.exp | 7 +++++++ >> gdb/testsuite/gdb.fortran/assumedrank.f90 | 3 +++ >> 4 files changed, 17 insertions(+), 5 deletions(-) >> >> diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index >> 49ecb199b07..afedd1f61b7 100644 >> --- a/gdb/gdbtypes.c >> +++ b/gdb/gdbtypes.c >> @@ -2398,10 +2398,13 @@ resolve_dynamic_array_or_string (struct type >> *type, >> >> if (rank =3D=3D 0) >> { >> - /* The dynamic property list juggling below was from the origina= l >> - patch. I don't understand what this is all about, so I've >> - commented it out for now and added the following error. */ >> - error (_("failed to resolve dynamic array rank")); >> + /* Rank is zero, if a variable is passed as an argument to a >> + function. GDB considers the variable as an array so discard >> + the array type and return the target type which is of variabl= e. */ >> + type->main_type->target_type->main_type->dyn_prop_list >> + =3D type->main_type->dyn_prop_list; >> + type =3D TYPE_TARGET_TYPE (type); >> + return type; > >I don't think this is correct, but I'm not completely sure what the correc= t thing >to do is. > >TYPE here was created with a call to copy_type. After this call TYPE is a= copy >of the original dynamic type, but I believe that this is only a shallow co= py (see >copy_type in gdbtypes.c), so target_type will point at the same type objec= t as >the original dynamic type. > >When you copy the dyn_prop_list like you do above you are modifying the >original target_type object. The next time this function is called we'll = end up >modifying the same target_type object again. I don't think this is correc= t. > >Also I don't think we are supposed to be creating multiple pointers to the >same dyn_prop_list object like you're doing, I think you need to call >copy_dynamic_prop_list. > >That said, I'm a little concerned that by just copying over the properties= like >this you're discarding any dynamic properties that might already exist on = the >target_type - though I'm not sure if it's possible to create a target_type= that >actually has any dynamic properties of its own.... maybe that's a problem = we >can leave until such a case crops up? >I do suspect it might only be the data location that you really care about= , so >maybe we should only be copying that property? Yes, the change was made only for data location for printing the value. =20 >Anyway, if we don't worry about dynamic properties that might already exis= t >on target_type, then the following code seems to work, but I've only done = a >quick test: So far, I have not seen dynamic properties for array elements for rank0. I = picked up the below code changes and updated the patch. =20 > if (rank =3D=3D 0) > { > /* Rank is zero if a variable is passed as an argument to a > function. In this case the resolved type should not be an > array, but should instead be that of an array element. */ > struct type *dynamic_array_type =3D type; > type =3D copy_type (TYPE_TARGET_TYPE (dynamic_array_type)); > struct dynamic_prop_list *prop_list > =3D TYPE_MAIN_TYPE (dynamic_array_type)->dyn_prop_list; > if (prop_list !=3D nullptr) > { > struct obstack *obstack > =3D &type->objfile_owner ()->objfile_obstack; > TYPE_MAIN_TYPE (type)->dyn_prop_list > =3D copy_dynamic_prop_list (obstack, prop_list); > } > return type; > } > >You'll notice I also changed the comment within this block as I found the >original comment hard to understand. Apologies for the hard comment, Thanks for the correction.=20 >What do you think? > >Thanks, >Andrew > > >> } >> else if (type->code () =3D=3D TYPE_CODE_STRING && rank !=3D 1) >> { >> diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index >> 769328cc9cd..7437e1db8ab 100644 >> --- a/gdb/gdbtypes.h >> +++ b/gdb/gdbtypes.h >> @@ -2092,7 +2092,6 @@ extern void allocate_gnat_aux_type (struct type >> *); #define TYPE_REFERENCE_TYPE(thistype) (thistype)->reference_type >> #define TYPE_RVALUE_REFERENCE_TYPE(thistype) >> (thistype)->rvalue_reference_type #define TYPE_CHAIN(thistype) >> (thistype)->chain -#define TYPE_DYN_PROP(thistype) >> TYPE_MAIN_TYPE(thistype)->dyn_prop_list >> /* * Note that if thistype is a TYPEDEF type, you have to call check_ty= pedef. >> But check_typedef does set the TYPE_LENGTH of the TYPEDEF type, >> so you only have to call check_typedef once. Since allocate_value >> diff --git a/gdb/testsuite/gdb.fortran/assumedrank.exp >> b/gdb/testsuite/gdb.fortran/assumedrank.exp >> index 69cd168125f..bd058e01e89 100644 >> --- a/gdb/testsuite/gdb.fortran/assumedrank.exp >> +++ b/gdb/testsuite/gdb.fortran/assumedrank.exp >> @@ -58,6 +58,13 @@ while { $test_count < 500 } { >> } >> } >> >> + # XFAIL rank 0 for flang. >> + if {$test_count =3D=3D 1 && [test_compiler_info {clang-*}]} { >> + setup_xfail "*-*-*" >> + fail "compiler does not support rank 0" >> + continue >> + } >> + >> if ($found_final_breakpoint) { >> break >> } >> diff --git a/gdb/testsuite/gdb.fortran/assumedrank.f90 >> b/gdb/testsuite/gdb.fortran/assumedrank.f90 >> index 7f077c3f014..7f7cf2c1f3e 100644 >> --- a/gdb/testsuite/gdb.fortran/assumedrank.f90 >> +++ b/gdb/testsuite/gdb.fortran/assumedrank.f90 >> @@ -19,16 +19,19 @@ >> >> PROGRAM arank >> >> + REAL :: array0 >> REAL :: array1(10) >> REAL :: array2(1, 2) >> REAL :: array3(3, 4, 5) >> REAL :: array4(4, 5, 6, 7) >> >> + array0 =3D 0 >> array1 =3D 1.0 >> array2 =3D 2.0 >> array3 =3D 3.0 >> array4 =3D 4.0 >> >> + call test_rank (array0) >> call test_rank (array1) >> call test_rank (array2) >> call test_rank (array3) >> -- >> 2.17.1 --_002_DM6PR12MB4219F77ECE1E36BCD2E07A0EE7F59DM6PR12MB4219namp_ Content-Type: application/octet-stream; name="0001-gdb-fortran-Support-for-assumed-rank-zero.patch" Content-Description: 0001-gdb-fortran-Support-for-assumed-rank-zero.patch Content-Disposition: attachment; filename="0001-gdb-fortran-Support-for-assumed-rank-zero.patch"; size=4849; creation-date="Wed, 20 Apr 2022 18:45:31 GMT"; modification-date="Wed, 20 Apr 2022 19:08:43 GMT" Content-Transfer-Encoding: base64 RnJvbSBmYmZhMmY0YzI2ZWVlZjc1NDc2MDNhYWZhZmI5NTI1ZDY2ZDFiMTcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBydXBvdGhhciA8cnVwZXNoLnBvdGhhcmxhQGFtZC5jb20+CkRh dGU6IEZyaSwgOCBBcHIgMjAyMiAxNjowNTo0MSArMDUzMApTdWJqZWN0OiBbUEFUQ0hdIGdkYi9m b3J0cmFuOiBTdXBwb3J0IGZvciBhc3N1bWVkIHJhbmsgemVybwoKSWYgYSB2YXJpYWJsZSBpcyBw YXNzZWQgdG8gZnVuY3Rpb24gaW4gRk9SVFJBTiBhcyBhbiBhcmd1bWVudCB0aGUKdmFyaWFibGUg aXMgdHJlYXRlZCBhcyBhbiBhcnJheSB3aXRoIHJhbmsgemVyby4gIEdEQiBjdXJyZW50bHkgZG9l cwpub3Qgc3VwcG9ydCB0aGUgY2FzZSBmb3IgYXNzdW1lZCByYW5rIDAuICBUaGlzIHBhdGNoIHBy b3ZpZGVzIHN1cHBvcnQKZm9yIGFzc3VtZWQgcmFuayAwIGFuZCB1cGRhdGVzIHRoZSB0ZXN0Y2Fz ZSBhcyB3ZWxsLgoKV2l0aG91dCBwYXRjaDoKQnJlYWtwb2ludCAxLCBhcmFuazo6c3ViMSAoYT08 ZXJyb3IgcmVhZGluZyB2YXJpYWJsZToKICBmYWlsZWQgdG8gcmVzb2x2ZSBkeW5hbWljIGFycmF5 IHJhbms+KSBhdCBhc3N1bWVkcmFuay5mOTA6MTEKMTEgICAgICAgUFJJTlQgKiwgUkFOSyhhKQoo Z2RiKSBwIGEKZmFpbGVkIHRvIHJlc29sdmUgZHluYW1pYyBhcnJheSByYW5rCihnZGIpIHAgcmFu ayhhKQpmYWlsZWQgdG8gcmVzb2x2ZSBkeW5hbWljIGFycmF5IHJhbmsKCldpdGggcGF0Y2g6CkJy ZWFrcG9pbnQgMSwgYXJhbms6OnN1YjEgKGE9MCkgYXQgYXNzdW1lZHJhbmsuZjkwOjExCjExICAg ICAgIFBSSU5UICosIFJBTksoYSkKKGdkYikgcCBhCiQxID0gMAooZ2RiKSBwIHJhbmsoYSkKJDIg PSAwCi0tLQogZ2RiL2dkYnR5cGVzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMSAr KysrKysrKysrKysrKysrLS0tLS0KIGdkYi9nZGJ0eXBlcy5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDQgKysrLQogZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hc3N1bWVkcmFuay5l eHAgfCAgNiArKysrKysKIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXNzdW1lZHJhbmsuZjkw IHwgIDMgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwppbmRleCA0 OWVjYjE5OWIwNy4uNDdjZjQ0MmEyZDUgMTAwNjQ0Ci0tLSBhL2dkYi9nZGJ0eXBlcy5jCisrKyBi L2dkYi9nZGJ0eXBlcy5jCkBAIC0yMzk4LDEwICsyMzk4LDIxIEBAIHJlc29sdmVfZHluYW1pY19h cnJheV9vcl9zdHJpbmcgKHN0cnVjdCB0eXBlICp0eXBlLAogCiAgICAgICBpZiAocmFuayA9PSAw KQogCXsKLQkgIC8qIFRoZSBkeW5hbWljIHByb3BlcnR5IGxpc3QganVnZ2xpbmcgYmVsb3cgd2Fz IGZyb20gdGhlIG9yaWdpbmFsCi0JICAgICBwYXRjaC4gIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0 IHRoaXMgaXMgYWxsIGFib3V0LCBzbyBJJ3ZlCi0JICAgICBjb21tZW50ZWQgaXQgb3V0IGZvciBu b3cgYW5kIGFkZGVkIHRoZSBmb2xsb3dpbmcgZXJyb3IuICAqLwotCSAgZXJyb3IgKF8oImZhaWxl ZCB0byByZXNvbHZlIGR5bmFtaWMgYXJyYXkgcmFuayIpKTsKKwkgIC8qIFJhbmsgaXMgemVybywg aWYgYSB2YXJpYWJsZSBpcyBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gYQorCSAgICAgZnVuY3Rp b24uICBJbiB0aGlzIGNhc2UgdGhlIHJlc29sdmVkIHR5cGUgc2hvdWxkIG5vdCBiZSBhbgorCSAg ICAgYXJyYXksIGJ1dCBzaG91bGQgaW5zdGVhZCBiZSB0aGF0IG9mIGFuIGFycmF5IGVsZW1lbnQu ICAqLworCSAgc3RydWN0IHR5cGUgKmR5bmFtaWNfYXJyYXlfdHlwZSA9IHR5cGU7CisJICB0eXBl ID0gY29weV90eXBlIChUWVBFX1RBUkdFVF9UWVBFIChkeW5hbWljX2FycmF5X3R5cGUpKTsKKwkg IHN0cnVjdCBkeW5hbWljX3Byb3BfbGlzdCAqcHJvcF9saXN0CisJICAgID0gVFlQRV9NQUlOX1RZ UEUgKGR5bmFtaWNfYXJyYXlfdHlwZSktPmR5bl9wcm9wX2xpc3Q7CisJICBpZiAocHJvcF9saXN0 ICE9IG51bGxwdHIpCisJICAgIHsKKwkgICAgICBzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFjaworCQk9 ICZ0eXBlLT5vYmpmaWxlX293bmVyICgpLT5vYmpmaWxlX29ic3RhY2s7CisJICAgICAgVFlQRV9N QUlOX1RZUEUgKHR5cGUpLT5keW5fcHJvcF9saXN0CisJCT0gY29weV9keW5hbWljX3Byb3BfbGlz dCAob2JzdGFjaywgcHJvcF9saXN0KTsKKwkgICAgfQorCSAgcmV0dXJuIHR5cGU7CiAJfQogICAg ICAgZWxzZSBpZiAodHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfU1RSSU5HICYmIHJhbmsgIT0g MSkKIAl7CkBAIC01NTg5LDcgKzU2MDAsNyBAQCBjcmVhdGVfY29waWVkX3R5cGVzX2hhc2ggKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogCiAvKiBSZWN1cnNpdmVseSBjb3B5IChkZWVwIGNvcHkp IGEgZHluYW1pYyBhdHRyaWJ1dGUgbGlzdCBvZiBhIHR5cGUuICAqLwogCi1zdGF0aWMgc3RydWN0 IGR5bmFtaWNfcHJvcF9saXN0ICoKK3N0cnVjdCBkeW5hbWljX3Byb3BfbGlzdCAqCiBjb3B5X2R5 bmFtaWNfcHJvcF9saXN0IChzdHJ1Y3Qgb2JzdGFjayAqb2JqZmlsZV9vYnN0YWNrLAogCQkJc3Ry dWN0IGR5bmFtaWNfcHJvcF9saXN0ICpsaXN0KQogewpkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVz LmggYi9nZGIvZ2RidHlwZXMuaAppbmRleCA3NjkzMjhjYzljZC4uOTkyNzNkMTRjMWYgMTAwNjQ0 Ci0tLSBhL2dkYi9nZGJ0eXBlcy5oCisrKyBiL2dkYi9nZGJ0eXBlcy5oCkBAIC0yMDkyLDcgKzIw OTIsNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAq KTsKICNkZWZpbmUgVFlQRV9SRUZFUkVOQ0VfVFlQRSh0aGlzdHlwZSkgKHRoaXN0eXBlKS0+cmVm ZXJlbmNlX3R5cGUKICNkZWZpbmUgVFlQRV9SVkFMVUVfUkVGRVJFTkNFX1RZUEUodGhpc3R5cGUp ICh0aGlzdHlwZSktPnJ2YWx1ZV9yZWZlcmVuY2VfdHlwZQogI2RlZmluZSBUWVBFX0NIQUlOKHRo aXN0eXBlKSAodGhpc3R5cGUpLT5jaGFpbgotI2RlZmluZSBUWVBFX0RZTl9QUk9QKHRoaXN0eXBl KSAgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT5keW5fcHJvcF9saXN0CiAvKiAqIE5vdGUgdGhh dCBpZiB0aGlzdHlwZSBpcyBhIFRZUEVERUYgdHlwZSwgeW91IGhhdmUgdG8gY2FsbCBjaGVja190 eXBlZGVmLgogICAgQnV0IGNoZWNrX3R5cGVkZWYgZG9lcyBzZXQgdGhlIFRZUEVfTEVOR1RIIG9m IHRoZSBUWVBFREVGIHR5cGUsCiAgICBzbyB5b3Ugb25seSBoYXZlIHRvIGNhbGwgY2hlY2tfdHlw ZWRlZiBvbmNlLiAgU2luY2UgYWxsb2NhdGVfdmFsdWUKQEAgLTI4ODIsNiArMjg4MSw5IEBAIGV4 dGVybiBzdHJ1Y3QgdHlwZSAqY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUsCiAJCQkJCSBzdHJ1Y3QgdHlwZSAqdHlwZSwKIAkJCQkJIGh0YWJfdCBjb3BpZWRfdHlw ZXMpOwogCitleHRlcm4gc3RydWN0IGR5bmFtaWNfcHJvcF9saXN0ICogY29weV9keW5hbWljX3By b3BfbGlzdAorICAoc3RydWN0IG9ic3RhY2sgKm9iamZpbGVfb2JzdGFjaywgc3RydWN0IGR5bmFt aWNfcHJvcF9saXN0ICpsaXN0KTsKKwogZXh0ZXJuIHN0cnVjdCB0eXBlICpjb3B5X3R5cGUgKGNv bnN0IHN0cnVjdCB0eXBlICp0eXBlKTsKIAogZXh0ZXJuIGJvb2wgdHlwZXNfZXF1YWwgKHN0cnVj dCB0eXBlICosIHN0cnVjdCB0eXBlICopOwpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9hc3N1bWVkcmFuay5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Fzc3Vt ZWRyYW5rLmV4cAppbmRleCA2OWNkMTY4MTI1Zi4uZTk0MjliNDRhOWEgMTAwNjQ0Ci0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXNzdW1lZHJhbmsuZXhwCisrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vYXNzdW1lZHJhbmsuZXhwCkBAIC01OCw2ICs1OCwxMiBAQCB3aGlsZSB7 ICR0ZXN0X2NvdW50IDwgNTAwIH0gewogCSAgICB9CiAJfQogCisJIyBDdXJyZW50bHksIGZsYW5n IGRvZXMgbm90IHN1cHBvcnQgcmFuazAuCisJaWYgeyR0ZXN0X2NvdW50ID09IDEgJiYgW3Rlc3Rf Y29tcGlsZXJfaW5mbyB7Y2xhbmctKn1dfSB7CisJICAgdW5zdXBwb3J0ZWQgImNvbXBpbGVyIGRv ZXMgbm90IHN1cHBvcnQgcmFuayAwIgorCSAgIGNvbnRpbnVlCisJfQorCiAJaWYgKCRmb3VuZF9m aW5hbF9icmVha3BvaW50KSB7CiAJICAgIGJyZWFrCiAJfQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9hc3N1bWVkcmFuay5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2Fzc3VtZWRyYW5rLmY5MAppbmRleCA3ZjA3N2MzZjAxNC4uN2Y3Y2YyYzFmM2UgMTAwNjQ0 Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXNzdW1lZHJhbmsuZjkwCisrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXNzdW1lZHJhbmsuZjkwCkBAIC0xOSwxNiArMTksMTkg QEAKIAogUFJPR1JBTSAgYXJhbmsKIAorICBSRUFMIDo6IGFycmF5MAogICBSRUFMIDo6IGFycmF5 MSgxMCkKICAgUkVBTCA6OiBhcnJheTIoMSwgMikKICAgUkVBTCA6OiBhcnJheTMoMywgNCwgNSkK ICAgUkVBTCA6OiBhcnJheTQoNCwgNSwgNiwgNykKIAorICBhcnJheTAgPSAwCiAgIGFycmF5MSA9 IDEuMAogICBhcnJheTIgPSAyLjAKICAgYXJyYXkzID0gMy4wCiAgIGFycmF5NCA9IDQuMAogCisg IGNhbGwgdGVzdF9yYW5rIChhcnJheTApCiAgIGNhbGwgdGVzdF9yYW5rIChhcnJheTEpCiAgIGNh bGwgdGVzdF9yYW5rIChhcnJheTIpCiAgIGNhbGwgdGVzdF9yYW5rIChhcnJheTMpCi0tIAoyLjE3 LjEKCg== --_002_DM6PR12MB4219F77ECE1E36BCD2E07A0EE7F59DM6PR12MB4219namp_--