From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id f9brNVKJGWo37yYAWB0awg (envelope-from ) for ; Fri, 29 May 2026 08:40:50 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=NNSgSjK1; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id CC6141E062; Fri, 29 May 2026 08:40:50 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 8B2561E062 for ; Fri, 29 May 2026 08:40:48 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8E68B4BA23CB for ; Fri, 29 May 2026 12:40:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8E68B4BA23CB Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=NNSgSjK1 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by sourceware.org (Postfix) with ESMTPS id 7EC334BA2E2A for ; Fri, 29 May 2026 12:40:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7EC334BA2E2A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7EC334BA2E2A Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=192.198.163.11 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1780058417; cv=fail; b=ZLfiEECZdknlM2rxbXsvGcZEwh6QTHUjID3DoD628tX3Bd4E727JSjTTaymPxl2yhR8/KA1+SM9SHcvJ6RefN6vUGM/1Aewq4hvNF2Uf229/SsiIgXvhGLrJerF4xbIXNpHB+pEMur+sBI5jB3bC43Dw2KaOocGG0gOh5YFnNsU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1780058417; c=relaxed/simple; bh=KwqT4uIPrIXPSu5hmEc/VlZYI3GnawZ+UOY8nYQuc04=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Zwlq6UKPM4Oirsha4e2Yd9Ekfn8kZSCsrs8l1/LBleuLjXGi3vOyfaOyUm0kor5Db8h/UqJ0HOeAjHZURWTVhbn1eSi73JTwk3646QPP5dWW5C68Ucsv2N14Yn0izRWZxeWzv6oX7MYGVwMguOVAN0WSzR/rwbZxDRt8PCC9Iuo= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=NNSgSjK1 DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7EC334BA2E2A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1780058417; x=1811594417; h=from:to:subject:date:message-id:references:in-reply-to: mime-version:content-transfer-encoding; bh=KwqT4uIPrIXPSu5hmEc/VlZYI3GnawZ+UOY8nYQuc04=; b=NNSgSjK1KRcdRprgC154yRI0cz4qfxXQ0IqBsWTfvmfCV1bfzFK42wKw 64QXvjHsVdPsPH0y+momEr49Ynpl58tTw99Oy45P2vq2V3Dj4Y5il2yGh gv3lHDm6977GyuMx66XpRS+IDIZvE1VlKMLwB0D+j0eMi49U+WfdLKpnd uXmzkiyngubKNE3C9rn5aPsqYx+bStIm2ltsNbh4mqMDjt8CRgYU6n9hi qsB9dA8sfanYMKN417rSIAVvVgD+qNCV8UdqzZrPTu4rKS7YYT5S3Mvev hLKbHX1fU+aVzAIBXV5F6W3aAYhNXQm13isj3RwiOglXM/FcQZQzFhnM9 A==; X-CSE-ConnectionGUID: ey/rh+KtS9SWr62EupdebQ== X-CSE-MsgGUID: baQ8hNnIQB6z+uENXVpZmw== X-IronPort-AV: E=McAfee;i="6800,10657,11801"; a="91481904" X-IronPort-AV: E=Sophos;i="6.24,175,1774335600"; d="scan'208";a="91481904" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 May 2026 05:40:15 -0700 X-CSE-ConnectionGUID: xhsMdRL4SrSrs35+DbmnTg== X-CSE-MsgGUID: U3HOT++8SxauPk9ZAWaQUA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.24,175,1774335600"; d="scan'208";a="242031885" Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91]) by orviesa010.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 May 2026 05:40:15 -0700 Received: from FMSMSX902.amr.corp.intel.com (10.18.126.91) by fmsmsx902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Fri, 29 May 2026 05:40:14 -0700 Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by FMSMSX902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Fri, 29 May 2026 05:40:14 -0700 Received: from BL0PR03CU003.outbound.protection.outlook.com (52.101.53.19) by edgegateway.intel.com (192.55.55.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Fri, 29 May 2026 05:40:10 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QLzilmut0S4s3g408vWq1isMxm1/a659uXnFxNTUN02Yu+/zRUHkE0oXbfXXmeUH6rvXbyGKrHKTZi7QUOK806lRXSl8pi62F2TdlerEQ8iX0rwNXHIRH+Xl7V6jfaGgI3YeA8h9Tbs2mILE/ZNexITEg9lWvtIPEZdPwbObXv+muctlcHpx/3bcgAX/HEvq75uZcpnd+Oa7bHRtqEP+nr01wC/Od1GJwl3/sq7YsuM7v5G/b/awwg4RNaJf1tVFcURg+yoCoMc55AbRYFBZpJ34rur8nc6MFuZyRQ7F7tth5VPkvMHgrRoOIF5/tS8LEhE7FBIB4ge5c9bk/pKljw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=s/r/PXl10o6k+dAEnW/9YrU9rCI6MMxyPYW0Fr7HuIw=; b=xy5xqMrs7YvzJ3gKAzjVPWfI2KUzho2S2NaXe0EcfhQu59HhH8OHIbtzDcAqKqRDZKqqzIxaLTOui/sjm7kpYzoRrHCdNp00YhH6EDzxIGn1GsyR+0GMHO2yEPOaXJSksX8BGKf8SLW7JV/6UzSqib+cDUYrOtjBN0N5o4SXg1k1G1NCUkEtO7s4vW2zPHPaSYm5VOZdYY5RBIWONFTxRuuD3fiB/wrHY1gJA3+/pISKSbGIrGlfBC30gBfdViHJCpadWtCxcsqw/tFGZfeWSNoUeTJn+EV+4OU9TKJKdBlzs6zAKsBxYmZCz9EszLr1NGAABDXEIioZjngypvrWcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SN7PR11MB7638.namprd11.prod.outlook.com (2603:10b6:806:34b::22) by SA2PR11MB5162.namprd11.prod.outlook.com (2603:10b6:806:114::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.15; Fri, 29 May 2026 12:40:07 +0000 Received: from SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::7a35:98d:f02c:b011]) by SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::7a35:98d:f02c:b011%3]) with mapi id 15.21.0071.011; Fri, 29 May 2026 12:40:07 +0000 From: "Schimpe, Christina" To: Guinevere Larsen , "gdb-patches@sourceware.org" Subject: RE: [PATCH v3 5/7] gdb/record: extract the PC to record_full_instruction Thread-Topic: [PATCH v3 5/7] gdb/record: extract the PC to record_full_instruction Thread-Index: AQHc5Im7lf0Oqd8ybkmoyssvKHaiQ7YlAGFg Date: Fri, 29 May 2026 12:40:07 +0000 Message-ID: References: <20260515163706.3355686-1-guinevere@redhat.com> <20260515163706.3355686-7-guinevere@redhat.com> In-Reply-To: <20260515163706.3355686-7-guinevere@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN7PR11MB7638:EE_|SA2PR11MB5162:EE_ x-ms-office365-filtering-correlation-id: 0ebce8ff-72e9-429f-1f2c-08debd7f6a24 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|366016|1800799024|38070700021|22082099003|18002099003|4143699003|56012099006|6133799003|11063799006|3023799007; x-microsoft-antispam-message-info: b3vrYS11+5husStGqPMT4DqUTweJIuNSzIhM50zwwyP5BZttFAq8ibbg/s73fGgGV82t6+E8JWleboRsOvNdhg1c0t3Wnk74TFYphwW+Zvn8GETRI6Yjs34lJ0qk/uQYyNP9XPXr94+yVw1c/LQTMdz0f0jHZHT0ZRAYcrspOUNYiH9L0ixvv0CRgh38Iec6W0MDmig1wBbEygeqDjqAVHld3jqKoUWZV0K3xKm0P8idOUdACSfjLs18Dqm5l8UO2MNdJrsH4oLOBdRJIKR9CS6gLQcA0Q1EeeoqLeB6zKYaS+k02CnTCqe1wrZXNo9R+JLQoolFvNMTzPYYCug9XScoFuCUvyRkesB4zpH5CMxy7lyl4RqgQpGd8WhBAML+um3O6loayeBmP1JsSh360vKB9mQkg6edV9T7YXqujZqvEtLWTpdLYqV5dMy61H0ogZH5zsM4XcC9VqbL0f4rUnsbPSkUhOOeDmrwHDziMUkMjoP936W75y4sl6ONmgzWQySvJOQ8b1aBb8dvflEV7cZUUkwTMeA9cFQy9fnz5zLYog4YezSjwuRiLcXbR45QN4Clk+q+gydT+/lz9kM3Py2Hthj+s/mWqW7JDriKhC3HQSV5ffAEHBFa6he8r3iIIl8IN37SD2s3f0Kp5sE7AwhSgQKE7BMtNinmKG1oKmBDuoGtiNVcRxBPpk+NA+WtyD8nfZOOTab3jtZz1nc79TathVLwhte1xt19iP9PICYKsOmscexEVucIrqyNUfXK x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR11MB7638.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024)(38070700021)(22082099003)(18002099003)(4143699003)(56012099006)(6133799003)(11063799006)(3023799007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M0dCTXpzbll5b3h0T3ZoL3J4VThmMkNLQUh1ekt1MFltTm9WMnViRnNSS0oz?= =?utf-8?B?MFdtQXpHb3hFUmtrQXphZFlodWxmRzJoYWFsb3huUENXREpQNDVyS0Y5ZjZ1?= =?utf-8?B?OE94UENFMFRoYmo0dDJIY255OUZGSThYbUw5R1VhbTNlTy9RZTN2SVd4L0Vm?= =?utf-8?B?bHF6MUdaa2x3RGs0aFRNc2Ridm1vd05mektxTEVKQzhpalB3NytvTER3ZUJJ?= =?utf-8?B?RDlEWHhhM0Ryb0Roa3dUVVFFZnZDbXpPVitoZW9nTmJ4dVRyVkl2T2FydTNZ?= =?utf-8?B?R3RQSld1NDFmVDRzSXFqQkFBUVV4NSt3TVpYaktoRlV1dTdqNTAvQUo1cEwv?= =?utf-8?B?RXNPSGUyVGJzcjZGMHZ0aHFtKyt3bmlZRHoxY3dSRXp1Z202Q2tDbkhab2I0?= =?utf-8?B?Mnp0elVTY3YrcTNQckJmY2ZHek5WdDFZQndVMnJudSt0QTFzMWJ1SStDc0tY?= =?utf-8?B?L2NQdUZ3VG0wbVU5R204enhFR1RZT0plRlIrS1RQbjIxdnhJb2xicnR6dkJj?= =?utf-8?B?a2hWOStIempjQ2JjOFIvK1dFOFJuQkE0Qm16WTZFWHlXbElDU081dmdxSkdS?= =?utf-8?B?SnpXTTNhNWpJK3lIMmR3dEg0a3g0NDZqVENSeEpzck5ZZlNLZ1BzTjdOUWgy?= =?utf-8?B?bmROR2IwcFJQeThNOXArQ2pPWG44dVJtNVgyTm5EV0puU3lJMWt0dkFCTTJi?= =?utf-8?B?UzZoNjhuTkk2OHhEZTZZb0N1SHZtaFpCNkc2N2EyUHJ1T0FBaFQ1RjN3dkF3?= =?utf-8?B?NlBPaWlFNlpvMGtuQXpNSjNzR0J4eFhuRUkwcVlUQWNvMk1jV0U2LzNEV3pi?= =?utf-8?B?TzNOTElLekxmbGt1SDByd005OVFxckpacW1rd1ZXSE1jTXZ0SUI0Mk51Umkw?= =?utf-8?B?SVBLS1A2S1Q0YUZxSHQzdUR1dFRvUDg0NVM2cDdQZGY0VGFVRGZaZ3BSRlUv?= =?utf-8?B?TW1STmo1SEl4d0d2RlRXVnIweFlOZ3lMR2VRSWJIUG1jZDk1cnErVXo0RHFx?= =?utf-8?B?ZE5mYnF1Q094S1NSbnBaNFRkV2xwL3RwQ0UrM1IvY2hRNHQ4YXBkdDV5Yzg4?= =?utf-8?B?aWJXQ0VORFIyQnFURTE1TWdxMDU4aXdCTXh6bmZ1WHRVRTBNMVJjcDI0dVdj?= =?utf-8?B?QUVSTHVPVS82aU56RzBoYmhSUTRNRktTZ1JIK2xwYUFBSTE3ZEk2VXdFTGgw?= =?utf-8?B?WGtpekNqM0p2emZlL1dCQUpxRnNIUG4vbnp4RUJ1dDNMNTFWQzI4UG05d0Mx?= =?utf-8?B?dWYvM0VTZXkyYk1ucUxkWWFqOS85RzE0ZXZSTGxCbWg2bXlTSmZvWWtRTURv?= =?utf-8?B?R05Xelh1NjhnUnhTcVUweTdMMGtxL3J3MHovQzYrREdNekhFS20vZCtWZGwv?= =?utf-8?B?SVdpQk1FejdHY1FyVzhFZGNIalBLd3pKQk0yQWh3bzVYdFNoT3BNUEZYanBk?= =?utf-8?B?aU1yVXZvR1RPa01JaDdPeEZacFhNNnZHZE9KWXFibEp3V2Y3T29PQzg0RDFv?= =?utf-8?B?WUttVngwM0E1cVRwbGpDa0k2RHQxT1N4UzFaWnBnaWZnZmVYL2JLdG1lZ0xy?= =?utf-8?B?WFhBOHk2VUF0MEtPOHU2ZXhhb0c2L1JRbUV4Mlc1Y2pqOVRQTWh3QWVKbjdq?= =?utf-8?B?dUxmUWFXRnZ4Yk5EaXBMS2hLdzZaL3ZaR1Y0cE9oOW9SQ2pQV0N3cFdNU2M3?= =?utf-8?B?TjBoQktrY0ZKUzRoVklCRmZaZGlZNHNRVldUN1hPTXlEL0Q4ZmNUUGJ2cnFp?= =?utf-8?B?S1h4a3ZRSkIycEtoSHp3MVRVRXdoYnRhSFppZFU4NkUwUlp1Tk1LUlBqRVRB?= =?utf-8?B?MHVTTzVudUd5VkY3ZVI3Tjc2TzV2Wlk3ZXhjM29WdWlXMStqc0piMTl5M2E4?= =?utf-8?B?R1QxVFZxMnZFL3lLUGQyT3phSUplQjRFZ0JFSDFWMFVVcmpZWVZwczM3aDRw?= =?utf-8?B?SnIxT1RvSituWmZIcGpEbUpvbnlNSVlDTzN2MjQrMENFZ3BNbDB0a3RXUmdj?= =?utf-8?B?Q3ZvNFZuOU9XVEI1YnBnVFZFSldFN0taSHZjM0ltNXA1OFdBNnZiUG1ZRVV4?= =?utf-8?B?Qy95MGZMZjR2bnhvUEgxRlJscFlMbEFtQ3p6M3dYMVlQY3A4SEw4eGtWdG92?= =?utf-8?B?N2FqYm9PVVlyYnN0TEJFSHdnT0JtTFVNcHA0T0JtNmtLbWFlRVBSbFY4V2RT?= =?utf-8?B?REJpVnk3a1hwS21lQ2I4aHhaam5CQURJVmNTd2J2MmZ6am11QTAvS0t2M3U2?= =?utf-8?B?alF6eGN3T0owRmhldTVaVVFIeENONnQxQWJkMGdqdzA1OFVIQ29BZ0hNd1Qx?= =?utf-8?B?bFBFLzZpSHBpNyt2dmxLUzR4NTlEeTNiMTM5Q1dFYkN1WHN2bVZqUT09?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: VCenQFnpR3w5rUSN5JkJMfTQBPXSid9W9GcRiEG7mSxsnUp8ZaKaPHCUzslJNvBlvKqkTSFSd4yZylpdcfmtX6Ds43+A3D1ztEbkulyI/IW49FFNk0KYtrNCL/JanMJKOMAjC+tO0q4NOuUpbbZFFWLMXfycUFN8AQeqRwMAlwG0rHOtQvZX34A10ZFpmYGlpFUr1frjJc+H97VUe6pYM1sB+3XjEFn38gq5UKLsagX2+J6mamSQu9VLrNprkwlFNSscS2RRfP6q5wokpZbnlqpDisc66A8ODQrPG/gwqwsrajo5Pz2NnWKAe4EnXboArJ82HxGZRQElyMzEQ52QQA== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB7638.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ebce8ff-72e9-429f-1f2c-08debd7f6a24 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 May 2026 12:40:07.2000 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yt4lLtnDZx0Rp8hs6dB1ZfS8nalqu10HR6lnpRm/nkFj1e6V0iz3ZhAQHY4vPX+eRp0n2afYOM+oYpQMDkfZJWia+P3eYOH1Vh2UCACyVrU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5162 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHdWluZXZlcmUgTGFyc2VuIDxn dWluZXZlcmVAcmVkaGF0LmNvbT4NCj4gU2VudDogRnJlaXRhZywgMTUuIE1haSAyMDI2IDE4OjM3 DQo+IFRvOiBnZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZw0KPiBDYzogR3VpbmV2ZXJlIExhcnNl biA8Z3VpbmV2ZXJlQHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2MyA1LzddIGdkYi9y ZWNvcmQ6IGV4dHJhY3QgdGhlIFBDIHRvIHJlY29yZF9mdWxsX2luc3RydWN0aW9uDQo+IA0KPiBU aGlzIGNvbW1pdCBtYWtlcyBpdCBzbyB0aGUgUEMgaXMgbm90IHNhdmVkIGFzIHBhcnQgb2YgdGhl DQo+IHJlY29yZF9mdWxsX2luc3RydWN0aW9uIGVmZmVjdHMsIGJ1dCByYXRoZXIgZ2V0cyBhIHNw ZWNpYWwgbG9jYXRpb24uDQo+IFRoYXQgaXMgYmVjYXVzZSBhIGNvdXBsZSBvZiBjb21tYW5kcyB3 b3VsZCByZWFsbHkgYmVuZWZpdCBmcm9tIGl0IGJlaW5nIGVhc3kNCj4gdG8gZmluZCB0aGUgUEMg KGVzcGVjaWFsbHkgb25lcyBmcm9tIHJlY29yZC1idHJhY2UgdGhhdCdzIGhhdmVuJ3QgYmVlbg0K PiBpbXBsZW1lbnRlZCB0byByZWNvcmQtZnVsbCB5ZXQsIHN1Y2ggYXMgdGhlIG9uZXMgaW4gUFIg cmVjb3JkLzE4MDU5KSwgd2hpbGUNCj4gYWxzbyBwb3NzaWJseSBhbGxvd2luZyBmb3Igb25lIGZl d2VyIHJlc2l6aW5nIG9mIHRoZSBlZmZlY3QgdmVjdG9yIChhbmQgc2F2aW5nDQo+IGFuIGVudGly ZSBieXRlIGluIHRoZSBwcm9jZXNzKS4NCj4gDQo+IFRoaXMgY29tbWl0IGFsc28gcmVmYWN0b3Jl ZCByZWNvcmRfZnVsbF9yZWFkX2VudHJ5X2Zyb21fYmZkIGFuZA0KPiByZWNvcmRfZnVsbF93cml0 ZV9lbnRyeV90b19iZmQsIHRvIG1ha2UgdGhlbSBtZXRob2RzIG9mDQo+IHJlY29yZF9mdWxsX3Jl Z19lbnRyeSBhbmQgcmVjb3JkX2Z1bGxfbWVtX2VudHJ5LCBhbmQgYWxzbyBjcmVhdGVzIHNpbWls YXINCj4gbWV0aG9kcyBmb3IgcmVjb3JkX2Z1bGxfZW50cnkgYW5kIHJlY29yZF9mdWxsX2luc3Ry dWN0aW9uLg0KPiBUaGVzZSBjb3VsZCBiZSB0dXJuZWQgaW50byBjb25zdHJ1Y3RvcnMgaW4gYSBm dXR1cmUgc3RlcCBvZg0KPiBjKytpZmljYXRpb24sIGJ1dCBpdCBmZWx0IGxpa2UgdG9vIG11Y2gg Y2hhbmdlIGZvciBhIHNpbmdsZSBjb21taXQuDQo+IC0tLQ0KPiAgZ2RiL3JlY29yZC1mdWxsLmMg fCAzODYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAg MSBmaWxlIGNoYW5nZWQsIDIzOSBpbnNlcnRpb25zKCspLCAxNDcgZGVsZXRpb25zKC0pDQo+IA0K PiBkaWZmIC0tZ2l0IGEvZ2RiL3JlY29yZC1mdWxsLmMgYi9nZGIvcmVjb3JkLWZ1bGwuYyBpbmRl eA0KPiA4Y2FiZDZlOTQzOC4uMTc2OTZlMDdjMGQgMTAwNjQ0DQo+IC0tLSBhL2dkYi9yZWNvcmQt ZnVsbC5jDQo+ICsrKyBiL2dkYi9yZWNvcmQtZnVsbC5jDQo+IEBAIC0xNDMsNiArMTQzLDE0IEBA IHN0cnVjdCByZWNvcmRfZnVsbF9tZW1fZW50cnkNCj4gDQo+ICAgIERJU0FCTEVfQ09QWV9BTkRf QVNTSUdOIChyZWNvcmRfZnVsbF9tZW1fZW50cnkpOw0KPiANCj4gKyAgLyogQ3JlYXRlIGEgbWVt X2VudHJ5IGZyb20gYSBiZmQgZmlsZSwgd2hlbiByZXN0b3JpbmcgYSByZWNvcmRpbmcuDQo+ICsq Lw0KPiArICBzdGF0aWMgcmVjb3JkX2Z1bGxfbWVtX2VudHJ5IGZyb21fYmZkIChiZmQgKmNiZmQs IGFzZWN0aW9uKiBvc2VjLA0KPiArCQkJCQkgaW50ICpiZmRfb2Zmc2V0KTsNCj4gKw0KPiArICAv KiBTYXZlIHRoaXMgbWVtIGVudHJ5IHRvIGEgYmZkIGZpbGUuICAqLw0KPiArICB2b2lkIHRvX2Jm ZCAoZ2RiX2JmZF9yZWZfcHRyIG9iZmQsIGFzZWN0aW9uICpvc2VjLCBpbnQgKmJmZF9vZmZzZXQs DQo+ICsJICAgICAgIGdkYmFyY2ggKmdkYmFyY2gpOw0KPiArDQoNCkkgYmVsaWV2ZSBvbmx5IGlu IG9uZSBvZiB0aG9zZSB0b19iZmQgZnVuY3Rpb25zIHRoZSBnZGJhcmNoIHBhcmFtZXRlciBpcyB1 c2VkLg0KRGlkIHlvdSBpbnRlbnRpb25hbGx5IGtlZXAgaXQgdGhlIGZ1bmN0aW9uIHdoaWNoIGRv bid0IGhhdmUgdXNlIHRoZSBwYXJhbWV0ZXIgaW4gdG9fYmZkID8NCg0KQW5kIGl0IG1pZ2h0IGJl IGEgZ29vZCBpZGVhIHRvIGRlc2NyaWJlIHRoZSBwYXJhbWV0ZXJzIGEgYml0LCB0b28uIPCfmIoN Cg0KPiAgICBnZGJfYnl0ZSAqZ2V0X2xvYyAoKQ0KPiAgICB7DQo+ICAgICAgaWYgKGxlbiA+IHNp emVvZiAodS5idWYpKQ0KPiBAQCAtMjUyLDYgKzI2MCwxNCBAQCBzdHJ1Y3QgcmVjb3JkX2Z1bGxf cmVnX2VudHJ5DQo+IA0KPiAgICBESVNBQkxFX0NPUFlfQU5EX0FTU0lHTiAocmVjb3JkX2Z1bGxf cmVnX2VudHJ5KTsNCj4gDQo+ICsgIC8qIENyZWF0ZSBhIHJlZ19lbnRyeSBmcm9tIGEgYmZkIGZp bGUsIHdoZW4gcmVzdG9yaW5nIGEgcmVjb3JkaW5nLg0KPiArKi8NCj4gKyAgc3RhdGljIHJlY29y ZF9mdWxsX3JlZ19lbnRyeSBmcm9tX2JmZCAoYmZkICpjYmZkLCBhc2VjdGlvbiogb3NlYywNCj4g KwkJCQkJIGludCAqYmZkX29mZnNldCk7DQo+ICsNCj4gKyAgLyogU2F2ZSB0aGlzIHJlZyBlbnRy eSB0byBhIGJmZCBmaWxlLiAgKi8NCj4gKyAgdm9pZCB0b19iZmQgKGdkYl9iZmRfcmVmX3B0ciBv YmZkLCBhc2VjdGlvbiAqb3NlYywgaW50ICpiZmRfb2Zmc2V0LA0KPiArCSAgICAgICBnZGJhcmNo ICpnZGJhcmNoKTsNCj4gKw0KPiAgICBnZGJfYnl0ZSAqZ2V0X2xvYyAoKQ0KPiAgICB7DQo+ICAg ICAgaWYgKGxlbiA+IHNpemVvZiAodS5idWYpKQ0KPiBAQCAtMzE0LDYgKzMzMCwxMyBAQCBjbGFz cyByZWNvcmRfZnVsbF9lbnRyeQ0KPiANCj4gICAgRElTQUJMRV9DT1BZX0FORF9BU1NJR04gKHJl Y29yZF9mdWxsX2VudHJ5KTsNCj4gDQo+ICsgIC8qIENyZWF0ZSBhIGdlbmVyaWMgZW50cnkgZnJv bSBhIGJmZCBmaWxlLCB3aGVuIHJlc3RvcmluZyBhDQo+ICsgcmVjb3JkaW5nLiAgKi8gIHN0YXRp YyB2b2lkIGZyb21fYmZkIChiZmQgKmNiZmQsIGFzZWN0aW9uKiBvc2VjLCBpbnQNCj4gKyAqYmZk X29mZnNldCk7DQo+ICsNCj4gKyAgLyogU2F2ZSB0aGlzIGVudHJ5IHRvIGEgYmZkIGZpbGUuICAq Lw0KPiArICB2b2lkIHRvX2JmZCAoZ2RiX2JmZF9yZWZfcHRyIG9iZmQsIGFzZWN0aW9uICpvc2Vj LCBpbnQgKmJmZF9vZmZzZXQsDQo+ICsJICAgICAgIGdkYmFyY2ggKmdkYmFyY2gpOw0KPiArDQo+ ICAgIHJlY29yZF9mdWxsX3JlZ19lbnRyeSYgcmVnICgpDQo+ICAgIHsNCj4gICAgICBnZGJfYXNz ZXJ0ICh0eXBlICgpID09IHJlY29yZF9mdWxsX3JlZyk7IEBAIC0zNzQsNiArMzk3LDcgQEAgY2xh c3MNCj4gcmVjb3JkX2Z1bGxfZW50cnkNCj4gICAgICAgdGhpcyBvbmU7DQo+ICAgICAqIHNpZ3Zh bDogV2hldGhlciB0aGUgaW5mZXJpb3IgcmVjZWl2ZWQgYSBzaWduYWwgd2hpbGUgdGhlIGZvbGxv d2luZw0KPiAgICAgICBpbnN0cnVjdGlvbiB3YXMgYmVpbmcgcmVjb3JkZWQ7DQo+ICsgICAqIHBj OiBUaGUgUHJvZ3JhbSBDb3VudGVyIGZvciB3aGVyZSB0aGUgaW5zdHJ1Y3Rpb24gc3RhcnRzOw0K DQoiZm9yIHdoZXJlIiBzb3VuZHMgYSBiaXQgb2RkLCB3aGF0IGRvIHlvdSB0aGluayBhYm91dDoN Cg0KVGhlIFByb2dyYW0gQ291bnRlciBhdCB0aGUgc3RhcnQgb2YgdGhlIGluc3RydWN0aW9uLg0K DQo+ICAgICAqIGVmZmVjdHM6IEEgbGlzdCBvZiByZWNvcmRfZnVsbF9lbnRyeSBzdHJ1Y3R1cmVz LCBlYWNoIG9mIHdoaWNoDQo+ICAgICAgIGRlc2NyaWJpbmcgb25lIGVmZmVjdCB0aGF0IHRoZSBp bnN0cnVjdGlvbiBoYXMgb24gdGhlIGluZmVyaW9yLg0KPiANCj4gQEAgLTM4OCwxMCArNDEyLDE4 IEBAIHN0cnVjdCByZWNvcmRfZnVsbF9pbnN0cnVjdGlvbg0KPiAgICB1aW50MzJfdCBpbnNuX251 bTsNCj4gICAgc3RkOjpvcHRpb25hbDxnZGJfc2lnbmFsPiBzaWd2YWw7DQo+ICAgIHN0ZDo6dmVj dG9yPHJlY29yZF9mdWxsX2VudHJ5PiBlZmZlY3RzOw0KPiArICByZWNvcmRfZnVsbF9yZWdfZW50 cnkgcGM7DQo+IA0KPiAgICAvKiBFeGVjdXRlIHRoZSBmdWxsIGluc3RydWN0aW9uLiAgQXMgYSBz aWRlIGVmZmVjdCwgc2V0DQo+ICAgICAgIHJlY29yZF9mdWxsX3N0b3BfcmVhc29uLiAgKi8NCj4g ICAgdm9pZCBleGVjX2luc24gKHJlZ2NhY2hlICpyZWdjYWNoZSk7DQo+ICsNCj4gKyAgLyogQ3Jl YXRlIGEgZnVsbCByZWNvcmRlZCBpbnN0cnVjdGlvbiBmcm9tIGEgYmZkLiAgKi8gIHN0YXRpYyB2 b2lkDQo+ICsgZnJvbV9iZmQgKGJmZCAqY2JmZCwgYXNlY3Rpb24qIG9zZWMsIGludCAqYmZkX29m ZnNldCk7DQo+ICsNCj4gKyAgLyogU2F2ZSB0aGlzIGluc3RydWN0aW9uIHRvIGEgYmZkIGZpbGUu ICAqLw0KPiArICB2b2lkIHRvX2JmZCAoZ2RiX2JmZF9yZWZfcHRyIG9iZmQsIGFzZWN0aW9uICpv c2VjLCBpbnQgKmJmZF9vZmZzZXQsDQo+ICsJICAgICAgIGdkYmFyY2ggKmdkYmFyY2gpOw0KPiAg fTsNCj4gDQo+ICAvKiBJZiB0cnVlLCBxdWVyeSBpZiBQUkVDIGNhbm5vdCByZWNvcmQgbWVtb3J5 IEBAIC02OTUsNyArNzI3LDEwIEBADQo+IHJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGRfcmVnIChz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKQ0KPiANCj4gICAgcmVnY2FjaGUt PmNvb2tlZF9yZWFkIChyZWdudW0sIHJlYy5nZXRfbG9jICgpKTsNCj4gDQo+IC0gIHJlY29yZF9m dWxsX2FyY2hfbGlzdF9hZGQgKHJlYyk7DQo+ICsgIGlmIChyZWdudW0gPT0gZ2RiYXJjaF9wY19y ZWdudW0gKHJlZ2NhY2hlLT5hcmNoICgpKSkNCj4gKyAgICAgIHJlY29yZF9mdWxsX2luY29tcGxl dGVfaW5zdHJ1Y3Rpb24ucGMgPSBzdGQ6Om1vdmUgKHJlYy5yZWcgKCkpOw0KPiArIGVsc2UNCj4g KyAgICByZWNvcmRfZnVsbF9hcmNoX2xpc3RfYWRkIChyZWMpOw0KDQpOaXQ6IGluZGVudCBpcyBv bmx5IDIgc3BhY2VzLg0KDQo+ICAgIHJldHVybiAwOw0KPiAgfQ0KPiBAQCAtODQ5LDYgKzg4NCw3 IEBAIHN0YXRpYyBlbnVtIHRhcmdldF9zdG9wX3JlYXNvbg0KPiByZWNvcmRfZnVsbF9zdG9wX3Jl YXNvbg0KPiANCj4gIHZvaWQgcmVjb3JkX2Z1bGxfaW5zdHJ1Y3Rpb246OmV4ZWNfaW5zbiAocmVn Y2FjaGUgKnJlZ2NhY2hlKSAgew0KPiArICBwYy5leGVjdXRlIChyZWdjYWNoZSk7DQo+ICAgIGZv ciAoYXV0byAmZW50cnkgOiBlZmZlY3RzKQ0KPiAgICAgIGlmIChlbnRyeS5leGVjdXRlIChyZWdj YWNoZSkpDQo+ICAgICAgICByZWNvcmRfZnVsbF9zdG9wX3JlYXNvbiA9IFRBUkdFVF9TVE9QUEVE X0JZX1dBVENIUE9JTlQ7IEBAIC0NCj4gMjIwNyw2OCArMjI0Myw4OCBAQCBuZXRvcmRlcjMyICh1 aW50MzJfdCBpbnB1dCkNCj4gICAgcmV0dXJuIHJldDsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgdm9p ZA0KPiAtcmVjb3JkX2Z1bGxfcmVhZF9lbnRyeV9mcm9tX2JmZCAoYmZkICpjYmZkLCBhc2VjdGlv biAqb3NlYywgaW50ICpiZmRfb2Zmc2V0KQ0KPiArcmVjb3JkX2Z1bGxfcmVnX2VudHJ5DQo+ICty ZWNvcmRfZnVsbF9yZWdfZW50cnk6OmZyb21fYmZkIChiZmQgKmNiZmQsIGFzZWN0aW9uICpvc2Vj LCBpbnQNCj4gKypiZmRfb2Zmc2V0KQ0KPiAgew0KPiAtICB1aW50OF90IHJlY3R5cGU7DQo+IC0g IHVpbnQzMl90IHJlZ251bSwgbGVuOw0KPiAtICB1aW50NjRfdCBhZGRyOw0KPiArICB1aW50MzJf dCByZWdudW07DQo+ICAgIHJlZ2NhY2hlICpjYWNoZSA9IGdldF90aHJlYWRfcmVnY2FjaGUgKGlu ZmVyaW9yX3RocmVhZCAoKSk7DQo+IA0KPiArICAvKiBHZXQgcmVnaXN0ZXIgbnVtYmVyIHRvIHJl Z251bS4gICovDQo+ICsgIGJmZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgJnJlZ251bSwgc2l6ZW9m IChyZWdudW0pLA0KPiArCQliZmRfb2Zmc2V0KTsNCj4gKyAgcmVnbnVtID0gbmV0b3JkZXIzMiAo cmVnbnVtKTsNCj4gKw0KPiArICByZWNvcmRfZnVsbF9yZWdfZW50cnkgcmVnIChjYWNoZS0+YXJj aCAoKSwgcmVnbnVtKTsNCj4gKw0KPiArICAvKiBHZXQgdmFsLiAgKi8NCj4gKyAgYmZkY29yZV9y ZWFkIChjYmZkLCBvc2VjLCByZWcuZ2V0X2xvYyAoKSwNCj4gKwkJcmVnLmxlbiwgYmZkX29mZnNl dCk7DQo+ICsNCj4gKyAgaWYgKHJlY29yZF9kZWJ1ZykNCj4gKyAgICBnZGJfcHJpbnRmIChnZGJf c3RkbG9nLA0KPiArCQkiICBSZWFkaW5nIHJlZ2lzdGVyICVkICgxICINCj4gKwkJInBsdXMgJWx1 IHBsdXMgJWQgYnl0ZXMpXG4iLA0KPiArCQlyZWcubnVtLA0KPiArCQkodW5zaWduZWQgbG9uZykg c2l6ZW9mIChyZWdudW0pLA0KPiArCQlyZWcubGVuKTsNCj4gKyAgcmV0dXJuIHJlZzsNCj4gKw0K PiArfQ0KPiArDQo+ICtyZWNvcmRfZnVsbF9tZW1fZW50cnkNCj4gK3JlY29yZF9mdWxsX21lbV9l bnRyeTo6ZnJvbV9iZmQgKGJmZCAqY2JmZCwgYXNlY3Rpb24gKm9zZWMsIGludA0KPiArKmJmZF9v ZmZzZXQpIHsNCj4gKyAgdWludDMyX3QgbGVuOw0KPiArICB1aW50NjRfdCBhZGRyOw0KPiArDQo+ ICsgIC8qIEdldCBsZW4uICAqLw0KPiArICBiZmRjb3JlX3JlYWQgKGNiZmQsIG9zZWMsICZsZW4s IHNpemVvZiAobGVuKSwgYmZkX29mZnNldCk7ICBsZW4gPQ0KPiArIG5ldG9yZGVyMzIgKGxlbik7 DQo+ICsNCj4gKyAgLyogR2V0IGFkZHIuICAqLw0KPiArICBiZmRjb3JlX3JlYWQgKGNiZmQsIG9z ZWMsICZhZGRyLCBzaXplb2YgKGFkZHIpLA0KPiArCQliZmRfb2Zmc2V0KTsNCj4gKyAgYWRkciA9 IG5ldG9yZGVyNjQgKGFkZHIpOw0KPiArDQo+ICsgIHJlY29yZF9mdWxsX21lbV9lbnRyeSBtZW0g KGFkZHIsIGxlbik7DQo+ICsNCj4gKyAgLyogR2V0IHZhbC4gICovDQo+ICsgIGJmZGNvcmVfcmVh ZCAoY2JmZCwgb3NlYywgbWVtLmdldF9sb2MgKCksDQo+ICsJCWxlbiwgYmZkX29mZnNldCk7DQo+ ICsNCj4gKyAgaWYgKHJlY29yZF9kZWJ1ZykNCj4gKyAgICBnZGJfcHJpbnRmIChnZGJfc3RkbG9n LA0KPiArCQkiICBSZWFkaW5nIG1lbW9yeSAlcyAoMSBwbHVzICINCj4gKwkJIiVsdSBwbHVzICVs dSBwbHVzICVkIGJ5dGVzKVxuIiwNCj4gKwkJcGFkZHJlc3MgKGdldF9jdXJyZW50X2FyY2ggKCks DQo+ICsJCQkgIG1lbS5hZGRyKSwNCj4gKwkJKHVuc2lnbmVkIGxvbmcpIHNpemVvZiAoYWRkciks DQo+ICsJCSh1bnNpZ25lZCBsb25nKSBzaXplb2YgKGxlbiksDQo+ICsJCWxlbik7DQo+ICsNCj4g KyAgcmV0dXJuIG1lbTsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArcmVjb3JkX2Z1bGxfZW50cnk6 OmZyb21fYmZkIChiZmQgKmNiZmQsIGFzZWN0aW9uICpvc2VjLCBpbnQNCj4gKypiZmRfb2Zmc2V0 KSB7DQo+ICsgIHVpbnQ4X3QgcmVjdHlwZTsNCj4gKyAgcmVjb3JkX2Z1bGxfZW50cnkgcmVjOw0K PiArDQo+ICAgIGJmZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgJnJlY3R5cGUsIHNpemVvZiAocmVj dHlwZSksIGJmZF9vZmZzZXQpOw0KPiAgICBzd2l0Y2ggKHJlY3R5cGUpDQo+ICAgICAgew0KPiAg ICAgIGNhc2UgcmVjb3JkX2Z1bGxfcmVnOiAvKiByZWcgKi8NCj4gICAgICAgIHsNCj4gLQkvKiBH ZXQgcmVnaXN0ZXIgbnVtYmVyIHRvIHJlZ251bS4gICovDQo+IC0JYmZkY29yZV9yZWFkIChjYmZk LCBvc2VjLCAmcmVnbnVtLCBzaXplb2YgKHJlZ251bSksIGJmZF9vZmZzZXQpOw0KPiAtCXJlZ251 bSA9IG5ldG9yZGVyMzIgKHJlZ251bSk7DQo+IC0NCj4gLQlyZWNvcmRfZnVsbF9lbnRyeSByZWMg KHJlY29yZF9mdWxsX3JlZywgY2FjaGUtPmFyY2ggKCksIHJlZ251bSk7DQo+IC0NCj4gLQkvKiBH ZXQgdmFsLiAgKi8NCj4gLQliZmRjb3JlX3JlYWQgKGNiZmQsIG9zZWMsIHJlYy5nZXRfbG9jICgp LA0KPiAtCQkgICAgICByZWMucmVnICgpLmxlbiwgYmZkX29mZnNldCk7DQo+IC0NCj4gLQlpZiAo cmVjb3JkX2RlYnVnKQ0KPiAtCSAgZ2RiX3ByaW50ZiAoZ2RiX3N0ZGxvZywNCj4gLQkJICAgICAg IiAgUmVhZGluZyByZWdpc3RlciAlZCAoMSAiDQo+IC0JCSAgICAgICJwbHVzICVsdSBwbHVzICVk IGJ5dGVzKVxuIiwNCj4gLQkJICAgICAgcmVjLnJlZyAoKS5udW0sDQo+IC0JCSAgICAgICh1bnNp Z25lZCBsb25nKSBzaXplb2YgKHJlZ251bSksDQo+IC0JCSAgICAgIHJlYy5yZWcgKCkubGVuKTsN Cj4gLQ0KPiAtCXJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGQgKHJlYyk7DQo+ICsJcmVjLmVudHJ5 ID0gc3RkOjptb3ZlIChyZWNvcmRfZnVsbF9yZWdfZW50cnk6OmZyb21fYmZkDQo+ICsJCQkJKGNi ZmQsIG9zZWMsIGJmZF9vZmZzZXQpKTsNCj4gIAlicmVhazsNCj4gICAgICAgIH0NCj4gDQo+ICAg ICAgY2FzZSByZWNvcmRfZnVsbF9tZW06IC8qIG1lbSAqLw0KPiAgICAgICAgew0KPiAtCS8qIEdl dCBsZW4uICAqLw0KPiAtCWJmZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgJmxlbiwgc2l6ZW9mIChs ZW4pLCBiZmRfb2Zmc2V0KTsNCj4gLQlsZW4gPSBuZXRvcmRlcjMyIChsZW4pOw0KPiAtDQo+IC0J LyogR2V0IGFkZHIuICAqLw0KPiAtCWJmZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgJmFkZHIsIHNp emVvZiAoYWRkciksDQo+IC0JCSAgICAgIGJmZF9vZmZzZXQpOw0KPiAtCWFkZHIgPSBuZXRvcmRl cjY0IChhZGRyKTsNCj4gLQ0KPiAtCXJlY29yZF9mdWxsX2VudHJ5IHJlYyAocmVjb3JkX2Z1bGxf bWVtLCBhZGRyLCBsZW4pOw0KPiAtDQo+IC0JLyogR2V0IHZhbC4gICovDQo+IC0JYmZkY29yZV9y ZWFkIChjYmZkLCBvc2VjLCByZWMuZ2V0X2xvYyAoKSwgbGVuLCBiZmRfb2Zmc2V0KTsNCj4gLQ0K PiAtCWlmIChyZWNvcmRfZGVidWcpDQo+IC0JICBnZGJfcHJpbnRmIChnZGJfc3RkbG9nLA0KPiAt CQkgICAgICAiICBSZWFkaW5nIG1lbW9yeSAlcyAoMSBwbHVzICINCj4gLQkJICAgICAgIiVsdSBw bHVzICVsdSBwbHVzICVkIGJ5dGVzKVxuIiwNCj4gLQkJICAgICAgcGFkZHJlc3MgKGdldF9jdXJy ZW50X2FyY2ggKCksDQo+IC0JCQkJcmVjLm1lbSAoKS5hZGRyKSwNCj4gLQkJICAgICAgKHVuc2ln bmVkIGxvbmcpIHNpemVvZiAoYWRkciksDQo+IC0JCSAgICAgICh1bnNpZ25lZCBsb25nKSBzaXpl b2YgKGxlbiksDQo+IC0JCSAgICAgIGxlbik7DQo+IC0NCj4gLQlyZWNvcmRfZnVsbF9hcmNoX2xp c3RfYWRkIChyZWMpOw0KPiArCXJlYy5lbnRyeSA9IHN0ZDo6bW92ZSAocmVjb3JkX2Z1bGxfbWVt X2VudHJ5Ojpmcm9tX2JmZA0KPiArCQkJCShjYmZkLCBvc2VjLCBiZmRfb2Zmc2V0KSk7DQo+ICAJ YnJlYWs7DQo+ICAgICAgICB9DQo+IA0KPiBAQCAtMjI3OSw2ICsyMzM1LDM5IEBAIHJlY29yZF9m dWxsX3JlYWRfZW50cnlfZnJvbV9iZmQgKGJmZCAqY2JmZCwNCj4gYXNlY3Rpb24gKm9zZWMsIGlu dCAqYmZkX29mZnNldCkNCj4gIAkJCSAgICBiZmRfZ2V0X2ZpbGVuYW1lIChjYmZkKSkpOw0KPiAg ICAgICAgYnJlYWs7DQo+ICAgICAgfQ0KPiArICByZWNvcmRfZnVsbF9hcmNoX2xpc3RfYWRkIChy ZWMpOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICtyZWNvcmRfZnVsbF9pbnN0cnVjdGlvbjo6ZnJv bV9iZmQgKGJmZCAqY2JmZCwgYXNlY3Rpb24gKm9zZWMsIGludA0KPiArKmJmZF9vZmZzZXQpIHsN Cj4gKyAgdWludDMyX3QgZWZmX2NvdW50ID0gMDsNCj4gKyAgdWludDhfdCBzaWd2YWw7DQo+ICsg IHVpbnQzMl90IGluc25fbnVtOw0KPiArDQo+ICsgIC8qIEZpcnN0IHJlYWQgdGhlIGdlbmVyaWMg aW5mb3JtYXRpb24gZm9yIGFuIGluc3RydWN0aW9uLiAgKi8NCj4gKyAgYmZkY29yZV9yZWFkIChj YmZkLCBvc2VjLCAmc2lndmFsLCBzaXplb2YgKHVpbnQ4X3QpLCBiZmRfb2Zmc2V0KTsNCj4gKyAg YmZkY29yZV9yZWFkIChjYmZkLCBvc2VjLCAmZWZmX2NvdW50LCBzaXplb2YgKHVpbnQzMl90KSwN Cj4gKwkJYmZkX29mZnNldCk7DQo+ICsgIGJmZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgJmluc25f bnVtLCBzaXplb2YgKHVpbnQzMl90KSwNCj4gKwkJYmZkX29mZnNldCk7DQo+ICsNCj4gKyAgcmVj b3JkX2Z1bGxfaW5jb21wbGV0ZV9pbnN0cnVjdGlvbi5pbnNuX251bSA9IG5ldG9yZGVyMzIgKGlu c25fbnVtKTsNCj4gKyBpZiAoc2lndmFsICE9IEdEQl9TSUdOQUxfMCkNCj4gKyAgICByZWNvcmRf ZnVsbF9pbmNvbXBsZXRlX2luc3RydWN0aW9uLnNpZ3ZhbCA9IChnZGJfc2lnbmFsKSBzaWd2YWw7 DQo+ICsNCj4gKyAgcmVjb3JkX2Z1bGxfaW5jb21wbGV0ZV9pbnN0cnVjdGlvbi5wYw0KPiArICAg ID0gcmVjb3JkX2Z1bGxfcmVnX2VudHJ5Ojpmcm9tX2JmZCAoY2JmZCwgb3NlYywgYmZkX29mZnNl dCk7DQo+ICsNCj4gKyAgZWZmX2NvdW50ID0gbmV0b3JkZXIzMiAoZWZmX2NvdW50KTsNCj4gKw0K PiArICAvKiBUaGlzIGRlYWxzIHdpdGggYWxsIHRoZSBzaWRlIGVmZmVjdHMuICAqLyB3aGlsZSAo ZWZmX2NvdW50ID4gMCkNCj4gKyAgICB7DQo+ICsgICAgICBlZmZfY291bnQtLTsNCj4gKw0KPiAr ICAgICAgcmVjb3JkX2Z1bGxfZW50cnk6OmZyb21fYmZkIChjYmZkLCBvc2VjLCBiZmRfb2Zmc2V0 KTsNCj4gKyAgICB9DQo+ICB9DQo+IA0KPiAgLyogUmVzdG9yZSB0aGUgZXhlY3V0aW9uIGxvZyBm cm9tIGNvcmUgZmlsZSBDQkZELiAgKi8gQEAgLTIzMjUsMzAgKzI0MTQsOA0KPiBAQCByZWNvcmRf ZnVsbF9yZXN0b3JlIChzdHJ1Y3QgYmZkICZjYmZkKQ0KPiAgICAgICAgd2hpbGUgKGJmZF9vZmZz ZXQgPCBvc2VjX3NpemUpDQo+ICAJew0KPiAgCSAgcmVjb3JkX2Z1bGxfcmVzZXRfaW5jb21wbGV0 ZSAoKTsNCj4gLQkgIHVpbnQzMl90IGVmZl9jb3VudCA9IDA7DQo+IC0JICB1aW50OF90IHNpZ3Zh bDsNCj4gLQkgIHVpbnQzMl90IGluc25fbnVtOw0KPiAtDQo+IC0JICAvKiBGaXJzdCByZWFkIHRo ZSBnZW5lcmljIGluZm9ybWF0aW9uIGZvciBhbiBpbnN0cnVjdGlvbi4gICovDQo+IC0JICBiZmRj b3JlX3JlYWQgKCZjYmZkLCBvc2VjLCAmc2lndmFsLCBzaXplb2YgKHVpbnQ4X3QpLCAmYmZkX29m ZnNldCk7DQo+IC0JICBiZmRjb3JlX3JlYWQgKCZjYmZkLCBvc2VjLCAmZWZmX2NvdW50LCBzaXpl b2YgKHVpbnQzMl90KSwNCj4gLQkJCSZiZmRfb2Zmc2V0KTsNCj4gLQkgIGJmZGNvcmVfcmVhZCAo JmNiZmQsIG9zZWMsICZpbnNuX251bSwgc2l6ZW9mICh1aW50MzJfdCksDQo+IC0JCQkmYmZkX29m ZnNldCk7DQo+IC0NCj4gLQkgIHJlY29yZF9mdWxsX2luY29tcGxldGVfaW5zdHJ1Y3Rpb24uaW5z bl9udW0gPSBuZXRvcmRlcjMyDQo+IChpbnNuX251bSk7DQo+IC0JICBpZiAoc2lndmFsICE9IEdE Ql9TSUdOQUxfMCkNCj4gLQkgICAgcmVjb3JkX2Z1bGxfaW5jb21wbGV0ZV9pbnN0cnVjdGlvbi5z aWd2YWwgPSAoZ2RiX3NpZ25hbCkgc2lndmFsOw0KPiANCj4gLQkgIGVmZl9jb3VudCA9IG5ldG9y ZGVyMzIgKGVmZl9jb3VudCk7DQo+IC0NCj4gLQkgIC8qIFRoaXMgZGVhbHMgd2l0aCBhbGwgdGhl IHNpZGUgZWZmZWN0cy4gICovDQo+IC0JIHdoaWxlIChlZmZfY291bnQgPiAwKQ0KPiAtCSAgIHsN Cj4gLQkgICAgIGVmZl9jb3VudC0tOw0KPiAtDQo+IC0JICAgICByZWNvcmRfZnVsbF9yZWFkX2Vu dHJ5X2Zyb21fYmZkICgmY2JmZCwgb3NlYywgJmJmZF9vZmZzZXQpOw0KPiAtCSAgIH0NCj4gKwkg IHJlY29yZF9mdWxsX2luc3RydWN0aW9uOjpmcm9tX2JmZCAoJmNiZmQsIG9zZWMsICZiZmRfb2Zm c2V0KTsNCj4gDQo+ICAJICByZWNvcmRfZnVsbF9zYXZlX2luc3RydWN0aW9uICgpOw0KPiAgCX0N Cj4gQEAgLTI0MDQsNzEgKzI0NzEsMTA5IEBAIGNtZF9yZWNvcmRfZnVsbF9yZXN0b3JlIChjb25z dCBjaGFyICphcmdzLCBpbnQNCj4gZnJvbV90dHkpDQo+ICAgIHJlY29yZF9mdWxsX29wZW4gKG51 bGxwdHIsIGZyb21fdHR5KTsgIH0NCj4gDQo+IC1zdGF0aWMgdm9pZA0KPiAtcmVjb3JkX2Z1bGxf d3JpdGVfZW50cnlfdG9fYmZkIChyZWNvcmRfZnVsbF9lbnRyeSAmZW50cnksDQo+IC0JCQkJZ2Ri X2JmZF9yZWZfcHRyIG9iZmQsDQo+IC0JCQkJYXNlY3Rpb24gKm9zZWMsIGludCAqYmZkX29mZnNl dCwNCj4gLQkJCQlnZGJhcmNoICpnZGJhcmNoKQ0KPiArdm9pZA0KPiArcmVjb3JkX2Z1bGxfcmVn X2VudHJ5Ojp0b19iZmQgKGdkYl9iZmRfcmVmX3B0ciBvYmZkLA0KPiArCQkJICAgICAgIGFzZWN0 aW9uICpvc2VjLCBpbnQgKmJmZF9vZmZzZXQsDQo+ICsJCQkgICAgICAgZ2RiYXJjaCAqZ2RiYXJj aCkNCj4gK3sNCj4gKyAgdWludDMyX3QgcmVnbnVtOw0KPiArDQo+ICsgIGlmIChyZWNvcmRfZGVi dWcpDQo+ICsgICAgZ2RiX3ByaW50ZiAoZ2RiX3N0ZGxvZywNCj4gKwkJIiAgV3JpdGluZyByZWdp c3RlciAlZCAoMSAiDQo+ICsJCSJwbHVzICVsdSBwbHVzICVkIGJ5dGVzKVxuIiwNCj4gKwkJdGhp cy0+bnVtLA0KPiArCQkodW5zaWduZWQgbG9uZykgc2l6ZW9mIChyZWdudW0pLA0KPiArCQl0aGlz LT5sZW4pOw0KPiArDQo+ICsgIC8qIFdyaXRlIHJlZ251bS4gICovDQo+ICsgIHJlZ251bSA9IG5l dG9yZGVyMzIgKHRoaXMtPm51bSk7DQo+ICsgIGJmZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBv c2VjLCAmcmVnbnVtLCBzaXplb2YgKHJlZ251bSksDQo+ICsgYmZkX29mZnNldCk7DQo+ICsNCj4g KyAgLyogV3JpdGUgcmVndmFsLiAgKi8NCj4gKyAgYmZkY29yZV93cml0ZSAob2JmZC5nZXQgKCks IG9zZWMsIHRoaXMtPmdldF9sb2MgKCksIHRoaXMtPmxlbiwNCj4gK2JmZF9vZmZzZXQpOyB9DQo+ ICsNCj4gK3ZvaWQNCj4gK3JlY29yZF9mdWxsX21lbV9lbnRyeTo6dG9fYmZkIChnZGJfYmZkX3Jl Zl9wdHIgb2JmZCwNCj4gKwkJCSAgICAgICBhc2VjdGlvbiAqb3NlYywgaW50ICpiZmRfb2Zmc2V0 LA0KPiArCQkJICAgICAgIGdkYmFyY2ggKmdkYmFyY2gpDQo+ICt7DQo+ICsgIHVpbnQzMl90IGxl bjsNCj4gKyAgdWludDY0X3QgYWRkcjsNCj4gKw0KPiArICBpZiAocmVjb3JkX2RlYnVnKQ0KPiAr ICAgIGdkYl9wcmludGYgKGdkYl9zdGRsb2csDQo+ICsJCSIgIFdyaXRpbmcgbWVtb3J5ICVzICgx IHBsdXMgIg0KPiArCQkiJWx1IHBsdXMgJWx1IHBsdXMgJWQgYnl0ZXMpXG4iLA0KPiArCQlwYWRk cmVzcyAoZ2RiYXJjaCwgdGhpcy0+YWRkciksDQo+ICsJCSh1bnNpZ25lZCBsb25nKSBzaXplb2Yg KGFkZHIpLA0KPiArCQkodW5zaWduZWQgbG9uZykgc2l6ZW9mIChsZW4pLA0KPiArCQl0aGlzLT5s ZW4pOw0KPiArDQo+ICsgIC8qIFdyaXRlIG1lbWxlbi4gICovDQo+ICsgIGxlbiA9IG5ldG9yZGVy MzIgKHRoaXMtPmxlbik7DQo+ICsgIGJmZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBvc2VjLCAm bGVuLCBzaXplb2YgKGxlbiksIGJmZF9vZmZzZXQpOw0KPiArDQo+ICsgIC8qIFdyaXRlIG1lbWFk ZHIuICAqLw0KPiArICBhZGRyID0gbmV0b3JkZXI2NCAodGhpcy0+YWRkcik7DQo+ICsgIGJmZGNv cmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBvc2VjLCAmYWRkciwgc2l6ZW9mIChhZGRyKSwgYmZkX29m ZnNldCk7DQo+ICsNCj4gKyAgLyogV3JpdGUgbWVtdmFsLiAgKi8NCj4gKyAgYmZkY29yZV93cml0 ZSAob2JmZC5nZXQgKCksIG9zZWMsIHRoaXMtPmdldF9sb2MgKCksIHRoaXMtPmxlbiwNCj4gK2Jm ZF9vZmZzZXQpOyB9DQo+ICsNCj4gK3ZvaWQNCj4gK3JlY29yZF9mdWxsX2VudHJ5Ojp0b19iZmQg KGdkYl9iZmRfcmVmX3B0ciBvYmZkLCBhc2VjdGlvbiAqb3NlYywNCj4gKwkJCSAgIGludCAqYmZk X29mZnNldCwgZ2RiYXJjaCAqZ2RiYXJjaCkNCj4gIHsNCj4gICAgLyogU2F2ZSBlbnRyeS4gICov DQo+ICAgIHVpbnQ4X3QgdHlwZTsNCj4gLSAgdWludDMyX3QgcmVnbnVtLCBsZW47DQo+IC0gIHVp bnQ2NF90IGFkZHI7DQo+IA0KPiAtICB0eXBlID0gZW50cnkudHlwZSAoKTsNCj4gKyAgdHlwZSA9 IHRoaXMtPnR5cGUgKCk7DQo+ICAgIGJmZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBvc2VjLCAm dHlwZSwgc2l6ZW9mICh0eXBlKSwgYmZkX29mZnNldCk7DQo+IA0KPiAgICBzd2l0Y2ggKHR5cGUp DQo+ICAgICAgew0KPiAgICAgIGNhc2UgcmVjb3JkX2Z1bGxfcmVnOiAvKiByZWcgKi8NCj4gLSAg ICAgIHsNCj4gLQlhdXRvICZyZWcgPSBlbnRyeS5yZWcgKCk7DQo+IC0JaWYgKHJlY29yZF9kZWJ1 ZykNCj4gLQkgIGdkYl9wcmludGYgKGdkYl9zdGRsb2csDQo+IC0JCSAgICAgICIgIFdyaXRpbmcg cmVnaXN0ZXIgJWQgKDEgIg0KPiAtCQkgICAgICAicGx1cyAlbHUgcGx1cyAlZCBieXRlcylcbiIs DQo+IC0JCSAgICAgIHJlZy5udW0sDQo+IC0JCSAgICAgICh1bnNpZ25lZCBsb25nKSBzaXplb2Yg KHJlZ251bSksDQo+IC0JCSAgICAgIHJlZy5sZW4pOw0KPiAtDQo+IC0JLyogV3JpdGUgcmVnbnVt LiAgKi8NCj4gLQlyZWdudW0gPSBuZXRvcmRlcjMyIChyZWcubnVtKTsNCj4gLQliZmRjb3JlX3dy aXRlIChvYmZkLmdldCAoKSwgb3NlYywgJnJlZ251bSwgc2l6ZW9mIChyZWdudW0pLA0KPiBiZmRf b2Zmc2V0KTsNCj4gLQ0KPiAtCS8qIFdyaXRlIHJlZ3ZhbC4gICovDQo+IC0JYmZkY29yZV93cml0 ZSAob2JmZC5nZXQgKCksIG9zZWMsIGVudHJ5LmdldF9sb2MgKCksIHJlZy5sZW4sIGJmZF9vZmZz ZXQpOw0KPiAtCWJyZWFrOw0KPiAtICAgICAgfQ0KPiArICAgICAgcmVnICgpLnRvX2JmZCAob2Jm ZCwgb3NlYywgYmZkX29mZnNldCwgZ2RiYXJjaCk7DQo+ICsgICAgICBicmVhazsNCj4gDQo+ICAg ICAgY2FzZSByZWNvcmRfZnVsbF9tZW06IC8qIG1lbSAqLw0KPiAtICAgICAgew0KPiAtCWF1dG8g Jm1lbSA9IGVudHJ5Lm1lbSAoKTsNCj4gLQlpZiAocmVjb3JkX2RlYnVnKQ0KPiAtCSAgZ2RiX3By aW50ZiAoZ2RiX3N0ZGxvZywNCj4gLQkJICAgICAgIiAgV3JpdGluZyBtZW1vcnkgJXMgKDEgcGx1 cyAiDQo+IC0JCSAgICAgICIlbHUgcGx1cyAlbHUgcGx1cyAlZCBieXRlcylcbiIsDQo+IC0JCSAg ICAgIHBhZGRyZXNzIChnZGJhcmNoLCBtZW0uYWRkciksDQo+IC0JCSAgICAgICh1bnNpZ25lZCBs b25nKSBzaXplb2YgKGFkZHIpLA0KPiAtCQkgICAgICAodW5zaWduZWQgbG9uZykgc2l6ZW9mIChs ZW4pLA0KPiAtCQkgICAgICBtZW0ubGVuKTsNCj4gLQ0KPiAtCS8qIFdyaXRlIG1lbWxlbi4gICov DQo+IC0JbGVuID0gbmV0b3JkZXIzMiAobWVtLmxlbik7DQo+IC0JYmZkY29yZV93cml0ZSAob2Jm ZC5nZXQgKCksIG9zZWMsICZsZW4sIHNpemVvZiAobGVuKSwgYmZkX29mZnNldCk7DQo+IC0NCj4g LQkvKiBXcml0ZSBtZW1hZGRyLiAgKi8NCj4gLQlhZGRyID0gbmV0b3JkZXI2NCAobWVtLmFkZHIp Ow0KPiAtCWJmZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBvc2VjLCAmYWRkciwgc2l6ZW9mIChh ZGRyKSwgYmZkX29mZnNldCk7DQo+IC0NCj4gLQkvKiBXcml0ZSBtZW12YWwuICAqLw0KPiAtCWJm ZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBvc2VjLCBlbnRyeS5nZXRfbG9jICgpLCBtZW0ubGVu LA0KPiAtCQkgICAgICAgYmZkX29mZnNldCk7DQo+IC0JYnJlYWs7DQo+IC0gICAgICB9DQo+ICsg ICAgICBtZW0gKCkudG9fYmZkIChvYmZkLCBvc2VjLCBiZmRfb2Zmc2V0LCBnZGJhcmNoKTsNCj4g KyAgICAgIGJyZWFrOw0KPiAgICAgIH0NCj4gDQo+ICB9DQo+IA0KPiArdm9pZA0KPiArcmVjb3Jk X2Z1bGxfaW5zdHJ1Y3Rpb246OnRvX2JmZCAoZ2RiX2JmZF9yZWZfcHRyIG9iZmQsIGFzZWN0aW9u ICpvc2VjLA0KPiArCQkJCSBpbnQgKmJmZF9vZmZzZXQsIGdkYmFyY2ggKmdkYmFyY2gpIHsNCj4g KyAgdWludDMyX3QgZWZmX2NvdW50ID0gKHVpbnQzMl90KSB0aGlzLT5lZmZlY3RzLnNpemUgKCk7 DQo+ICsgIHVpbnQzMl90IGluc25fbnVtID0gdGhpcy0+aW5zbl9udW07DQo+ICsgIHVpbnQ4X3Qg c2lndmFsID0gKHRoaXMtPnNpZ3ZhbC5oYXNfdmFsdWUgKCkpDQo+ICsJCSAgICAgPyB0aGlzLT5z aWd2YWwudmFsdWUgKCkNCj4gKwkJICAgICA6IEdEQl9TSUdOQUxfMDsNCj4gKw0KPiArICAvKiBT aWduYWwuICAqLw0KPiArICBiZmRjb3JlX3dyaXRlIChvYmZkLmdldCAoKSwgb3NlYywgJnNpZ3Zh bCwgc2l6ZW9mIChzaWd2YWwpLA0KPiArYmZkX29mZnNldCk7DQo+ICsgIGVmZl9jb3VudCA9IG5l dG9yZGVyMzIgKGVmZl9jb3VudCk7DQo+ICsgIC8qIE51bWJlciBvZiBlZmZlY3RzLiAgKi8NCj4g KyAgYmZkY29yZV93cml0ZSAob2JmZC5nZXQgKCksIG9zZWMsICZlZmZfY291bnQsIHNpemVvZiAo ZWZmX2NvdW50KSwNCj4gKwkJIGJmZF9vZmZzZXQpOw0KPiArICAvKiBJbnN0cnVjdGlvbiBudW1i ZXIuICAqLw0KPiArICBiZmRjb3JlX3dyaXRlIChvYmZkLmdldCAoKSwgb3NlYywgJmluc25fbnVt LCBzaXplb2YgKHVpbnQzMl90KSwNCj4gKwkJIGJmZF9vZmZzZXQpOw0KPiArDQo+ICsgIHRoaXMt PnBjLnRvX2JmZCAob2JmZCwgb3NlYywgYmZkX29mZnNldCwgZ2RiYXJjaCk7DQo+ICsNCj4gKyAg Zm9yIChhdXRvICZlbnRyeSA6IHRoaXMtPmVmZmVjdHMpDQo+ICsgICAgew0KPiArICAgICAgZW50 cnkudG9fYmZkIChvYmZkLCBvc2VjLCBiZmRfb2Zmc2V0LCBnZGJhcmNoKTsNCj4gKyAgICB9DQo+ ICt9DQo+ICsNCj4gIC8qIFNhdmUgdGhlIGV4ZWN1dGlvbiBsb2cgdG8gYSBmaWxlLiAgV2UgdXNl IGEgbW9kaWZpZWQgZWxmIGNvcmVmaWxlDQo+ICAgICBmb3JtYXQsIHdpdGggYW4gZXh0cmEgc2Vj dGlvbiBmb3Igb3VyIGRhdGEuICAqLw0KPiANCj4gQEAgLTI1MTAsNiArMjYxNSw3IEBAIHJlY29y ZF9mdWxsX2Jhc2VfdGFyZ2V0OjpzYXZlX3JlY29yZCAoY29uc3QgY2hhcg0KPiAqcmVjZmlsZW5h bWUpDQo+ICAgICAgew0KPiAgICAgICAgLyogTnVtYmVyIG9mIGVmZmVjdHMgb2YgYW4gaW5zdHJ1 Y3Rpb24uICAqLw0KPiAgICAgICAgc2F2ZV9zaXplICs9IHNpemVvZiAodWludDMyX3QpICsgc2l6 ZW9mICh1aW50OF90KSArIHNpemVvZiAodWludDMyX3QpOw0KPiArICAgICAgc2F2ZV9zaXplICs9 IDQgKyByZWNvcmRfZnVsbF9saXN0W2ldLnBjLmxlbjsNCj4gICAgICAgIGZvciAoYXV0byAmZW50 cnkgOiByZWNvcmRfZnVsbF9saXN0W2ldLmVmZmVjdHMpDQo+ICAJc3dpdGNoIChlbnRyeS50eXBl ICgpKQ0KPiAgCSAgew0KPiBAQCAtMjU1MSwyNyArMjY1Nyw3IEBAIHJlY29yZF9mdWxsX2Jhc2Vf dGFyZ2V0OjpzYXZlX3JlY29yZCAoY29uc3QgY2hhcg0KPiAqcmVjZmlsZW5hbWUpDQo+ICAgICAg IHJlY29yZCBsaXN0LiAgKi8NCj4gICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWNvcmRfZnVsbF9s aXN0LnNpemUgKCk7IGkrKykNCj4gICAgICB7DQo+IC0gICAgICB1aW50MzJfdCBlZmZfY291bnQg PSAodWludDMyX3QpIHJlY29yZF9mdWxsX2xpc3RbaV0uZWZmZWN0cy5zaXplICgpOw0KPiAtICAg ICAgdWludDMyX3QgaW5zbl9udW0gPSByZWNvcmRfZnVsbF9saXN0W2ldLmluc25fbnVtOw0KPiAt ICAgICAgdWludDhfdCBzaWd2YWwgPSAocmVjb3JkX2Z1bGxfbGlzdFtpXS5zaWd2YWwuaGFzX3Zh bHVlICgpKQ0KPiAtCQkJID8gcmVjb3JkX2Z1bGxfbGlzdFtpXS5zaWd2YWwudmFsdWUgKCkNCj4g LQkJCSA6IEdEQl9TSUdOQUxfMDsNCj4gLQ0KPiAtICAgICAgLyogU2lnbmFsLiAgKi8NCj4gLSAg ICAgIGJmZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBvc2VjLCAmc2lndmFsLCBzaXplb2YgKHNp Z3ZhbCksICZiZmRfb2Zmc2V0KTsNCj4gLSAgICAgIGVmZl9jb3VudCA9IG5ldG9yZGVyMzIgKGVm Zl9jb3VudCk7DQo+IC0gICAgICAvKiBOdW1iZXIgb2YgZWZmZWN0cy4gICovDQo+IC0gICAgICBi ZmRjb3JlX3dyaXRlIChvYmZkLmdldCAoKSwgb3NlYywgJmVmZl9jb3VudCwgc2l6ZW9mIChlZmZf Y291bnQpLA0KPiAtCQkgICAgICZiZmRfb2Zmc2V0KTsNCj4gLSAgICAgIC8qIEluc3RydWN0aW9u IG51bWJlci4gICovDQo+IC0gICAgICBiZmRjb3JlX3dyaXRlIChvYmZkLmdldCAoKSwgb3NlYywg Jmluc25fbnVtLCBzaXplb2YgKHVpbnQzMl90KSwNCj4gLQkJICAgICAmYmZkX29mZnNldCk7DQo+ IC0NCj4gLSAgICAgIGZvciAoYXV0byAmZW50cnkgOiByZWNvcmRfZnVsbF9saXN0W2ldLmVmZmVj dHMpDQo+IC0Jew0KPiAtCSAgcmVjb3JkX2Z1bGxfd3JpdGVfZW50cnlfdG9fYmZkIChlbnRyeSwg b2JmZCwgb3NlYywgJmJmZF9vZmZzZXQsDQo+IC0JCQkJCSAgZ2RiYXJjaCk7DQo+IC0JfQ0KPiAr ICAgICAgcmVjb3JkX2Z1bGxfbGlzdFtpXS50b19iZmQgKG9iZmQsIG9zZWMsICZiZmRfb2Zmc2V0 LCBnZGJhcmNoKTsNCj4gICAgICAgIC8qIEV4ZWN1dGUgZW50cnkuICAqLw0KPiAgICAgICAgaWYg KGkgPCByZWNvcmRfZnVsbF9uZXh0X2luc24pDQo+ICAJcmVjb3JkX2Z1bGxfbGlzdFtpXS5leGVj X2luc24gKHJlZ2NhY2hlKTsgQEAgLTI2NDgsNiArMjczNCw5IEBADQo+IG1haW50ZW5hbmNlX3By aW50X3JlY29yZF9pbnN0cnVjdGlvbiAoY29uc3QgY2hhciAqYXJncywgaW50IGZyb21fdHR5KQ0K PiAgICBhdXRvIHRvX3ByaW50ID0gcmVjb3JkX2Z1bGxfbGlzdC5iZWdpbiAoKSArIG9mZnNldDsN Cj4gDQo+ICAgIGdkYmFyY2ggKmFyY2ggPSBjdXJyZW50X2luZmVyaW9yICgpLT5hcmNoICgpOw0K PiArICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOw0KPiArICBnZXRfdXNlcl9wcmlu dF9vcHRpb25zICgmb3B0cyk7DQo+ICsgIG9wdHMucmF3ID0gdHJ1ZTsNCj4gDQo+ICAgIGZvciAo YXV0byAmZW50cnkgOiB0b19wcmludC0+ZWZmZWN0cykNCj4gICAgICB7DQo+IEBAIC0yNjYxLDkg KzI3NTAsNiBAQCBtYWludGVuYW5jZV9wcmludF9yZWNvcmRfaW5zdHJ1Y3Rpb24gKGNvbnN0IGNo YXINCj4gKmFyZ3MsIGludCBmcm9tX3R0eSkNCj4gIAkJCQkJIGVudHJ5LmdldF9sb2MgKCkpOw0K PiAgCSAgICAgIGdkYl9wcmludGYgKCJSZWdpc3RlciAlcyBjaGFuZ2VkOiAiLA0KPiAgCQkJICBn ZGJhcmNoX3JlZ2lzdGVyX25hbWUgKGFyY2gsIGVudHJ5LnJlZyAoKS5udW0pKTsNCj4gLQkgICAg ICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOw0KPiAtCSAgICAgIGdldF91c2VyX3By aW50X29wdGlvbnMgKCZvcHRzKTsNCj4gLQkgICAgICBvcHRzLnJhdyA9IHRydWU7DQo+ICAJICAg ICAgdmFsdWVfcHJpbnQgKHZhbCwgZ2RiX3N0ZG91dCwgJm9wdHMpOw0KPiAgCSAgICAgIGdkYl9w cmludGYgKCJcbiIpOw0KPiAgCSAgICAgIGJyZWFrOw0KPiBAQCAtMjY4Miw2ICsyNzY4LDEyIEBA IG1haW50ZW5hbmNlX3ByaW50X3JlY29yZF9pbnN0cnVjdGlvbiAoY29uc3QNCj4gY2hhciAqYXJn cywgaW50IGZyb21fdHR5KQ0KPiAgCSAgICB9DQo+ICAJfQ0KPiAgICAgIH0NCj4gKyAgdHlwZSAq cmVndHlwZSA9IGdkYmFyY2hfcmVnaXN0ZXJfdHlwZSAoYXJjaCwgdG9fcHJpbnQtPnBjLm51bSk7 DQo+ICsgIHZhbHVlICp2YWwgPSB2YWx1ZV9mcm9tX2NvbnRlbnRzIChyZWd0eXBlLCB0b19wcmlu dC0+cGMuZ2V0X2xvYyAoKSk7DQo+ICsgIGdkYl9wcmludGYgKCJSZWdpc3RlciAlcyBjaGFuZ2Vk OiAiLA0KPiArCSAgICAgIGdkYmFyY2hfcmVnaXN0ZXJfbmFtZSAoYXJjaCwgdG9fcHJpbnQtPnBj Lm51bSkpOw0KPiArICB2YWx1ZV9wcmludCAodmFsLCBnZGJfc3Rkb3V0LCAmb3B0cyk7DQo+ICsg IGdkYl9wcmludGYgKCJcbiIpOw0KPiAgfQ0KPiANCj4gIElOSVRfR0RCX0ZJTEUgKHJlY29yZF9m dWxsKQ0KPiAtLQ0KPiAyLjU0LjANCj4gDQoNCkJlc2lkZXMgdGhvc2Ugbml0cywgTEdUTToNCg0K UmV2aWV3ZWQtQnk6IENocmlzdGluYSBTY2hpbXBlIDxjaHJpc3RpbmEuc2NoaW1wZUBpbnRlbC5j b20+DQoNCkNocmlzdGluYQ0KSW50ZWwgRGV1dHNjaGxhbmQgR21iSA0KUmVnaXN0ZXJlZCBBZGRy ZXNzOiBEb3JuYWNoZXIgU3RyYXNzZSAxLCA4NTYyMiBGZWxka2lyY2hlbiwgR2VybWFueQ0KVGVs OiArNDkgODkgOTkxIDQzMCwgd3d3LmludGVsLmRlDQpNYW5hZ2luZyBEaXJlY3RvcnM6IEhhcnJ5 IERlbWFzLCBKZWZmcmV5IFNjaG5laWRlcm1hbiwgWWluIENob25nIFNvcnJlbGwNCkNoYWlycGVy c29uIG9mIHRoZSBTdXBlcnZpc29yeSBCb2FyZDogTmljb2xlIExhdQ0KUmVnaXN0ZXJlZCBTZWF0 OiBNdW5pY2gNCkNvbW1lcmNpYWwgUmVnaXN0ZXI6IEFtdHNnZXJpY2h0IE11ZW5jaGVuIEhSQiAx ODY5MjgK