From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 57592A00C3; Mon, 15 Aug 2022 19:29:07 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3DB5F4014F; Mon, 15 Aug 2022 19:29:07 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 4983A40146 for ; Mon, 15 Aug 2022 19:29:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1660584545; x=1692120545; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=PPHY43YIWYH9vcs8+LnAAEi6leSY9jcHeEBqQZf5Ld0=; b=GKrBwV6aqn4trDkmbFxq5CnNxlgM2iIaGZzE99xgHB0hYhZXGWiwZ6T7 3ptTwX4hTpglfG3SDwt7CAiAD8ZS1uIq1/hPprRLJErr2yDgx+HLeRw/f avl7t783it8BB1E8f2y9U+0rlHqsGe3KeK/zNH0VW92wUUmHjG7b+Y0nO +Xql/LlVWqiWopOcY4ATMOphMNEJT9gYOVW3ZyScxPSy4iX90o0BOfQNY /JeYWGj34E20UutMjuwainZ9wVNycf039G19ir4O3NBC1PI1LV1cp2rLc Tb3oftsB+Sf7Kl3VmC0BzpeGPLtYxOegkr0HoDD2drEtW36SPMxibdItf g==; X-IronPort-AV: E=McAfee;i="6400,9594,10440"; a="318007746" X-IronPort-AV: E=Sophos;i="5.93,238,1654585200"; d="scan'208";a="318007746" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Aug 2022 10:28:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,238,1654585200"; d="scan'208";a="582966366" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga006.jf.intel.com with ESMTP; 15 Aug 2022 10:28:53 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Mon, 15 Aug 2022 10:28:53 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Mon, 15 Aug 2022 10:28:52 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28 via Frontend Transport; Mon, 15 Aug 2022 10:28:52 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.47) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.28; Mon, 15 Aug 2022 10:28:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LDKXtYL8prjhrsfHqgm/fR9IbxV8vCIqlvKKKHtxmWq590Q0N+t14Nq0k1v9256yusLvrQki521u4gndYnU7W5ky2IdslkE42ZSQ7oosT676rq/unI2dLKAp0eiJg5DesIe0afrB3fsGrXLbzy+38ZhsHKhF6KLz9GuXNhmXRctihPrYxfgpJ72tF4OQjNgqXaIqohxkCObDVWNOEdHUwNQr7bEe8MFqAXTNOv9M6fL9jRPLWdcr83UvjZBAICT/6YgZcLcWCkn7Vj0ZIQROv6z4QXq4pRVjBqyMc4FL7Q6/6FZJ5AwuHjCgoMPacDsL1+0vbzW/eN4wNkQknX8D8g== 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=PPHY43YIWYH9vcs8+LnAAEi6leSY9jcHeEBqQZf5Ld0=; b=j1jdAhe1v5+nfGbCaqNeihOGUvnzeA5VsvUjRLgF9eVYwz3QeW9skHm854uSwR1wVjVfLZ3n9UzgTmlwuS+NdlUWy3Uko/ZP2c0GEAppdIWO6u2MZ84VMSg3xGjl+BYus1fPAekEvSK2OAGY3DhCKxfUl7c/HigTbW2BLKmumXZ8h0fjbKiZXDu72wbl0J4kBokBpp5kIKKM5YkI0Q5+Ig/HtPxK9aAkJ2mGRS02bjBhObi+nLsHhSuknvkGMBgb7856g4ds7iCSBaZ2YBwAYe5cN4wgLHhyYRhHW6oWSfcG3TD3mDlOzV5Cfh49VmXyQ2wJZDEniZnzhELMj5HWCA== 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 BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by CY5PR11MB6186.namprd11.prod.outlook.com (2603:10b6:930:26::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.25; Mon, 15 Aug 2022 17:28:50 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::1836:7b0f:fcdc:8566]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::1836:7b0f:fcdc:8566%7]) with mapi id 15.20.5525.011; Mon, 15 Aug 2022 17:28:50 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "thomas@monjalon.net" , "gakhil@marvell.com" , "hemant.agrawal@nxp.com" CC: "maxime.coquelin@redhat.com" , "mdr@ashroe.eu" , "Richardson, Bruce" , "david.marchand@redhat.com" , "stephen@networkplumber.org" Subject: RE: [PATCH v4 4/7] drivers/baseband: update PMDs to expose queue per operation Thread-Topic: [PATCH v4 4/7] drivers/baseband: update PMDs to expose queue per operation Thread-Index: AQHYkNCixvG0D96QAkWQNNE4ix7HIK1xhXmAgABR6vCAAQ/EgIARSdgKgCxCuLA= Date: Mon, 15 Aug 2022 17:28:50 +0000 Message-ID: References: <1655491040-183649-6-git-send-email-nicolas.chautru@intel.com> <1657067022-54373-1-git-send-email-nicolas.chautru@intel.com> <1657067022-54373-5-git-send-email-nicolas.chautru@intel.com> <934b8642-c52d-c1f1-6de4-728e110ab26b@redhat.com> In-Reply-To: <934b8642-c52d-c1f1-6de4-728e110ab26b@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4a0c6324-670a-4c4d-7fe2-08da7ee39e2d x-ms-traffictypediagnostic: CY5PR11MB6186:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3wDbDTaDj/LgBu66HkCjZoeuFVOjj1k/n92nFlWqQ68Tdmpw3Oh9qWcuH1dr57i66YSBQ7CXlAHsacul40sImdWCfGZefqU/C3LudkUQAJlZYhPDWiH+JzCPZF/ai+ClJY7gkciRy08toVeLCgShNAuRXkREC9u4WMbhfMygWBIrHZ7Qr8uC8sTzeAi5UmbB5Iu5KDZE2NgFp43IN9SPiRA8Lgiz9yGz15W+YyZBEe+emXNu4eKgfSib2hFUBJ1OLKcBsZqALy0Hv4ZwNRWidgcfCWiFgrMomWPmcXt3lEL+IGwg9J0ZPNo/lf59p0tzJSRvUdXcVSSOIo7MSlGXh1jdZtHFV5ch78G4xoilB6gX/+Svj69lTj2LwiMYiAQ87A+HDE93e712ITHB4aBw2aRvyRm0J81NMmHKlobgOz5kOBQjp0eVu1jg0ttJa6z/YpNGbwz/eI2wRgB0aNWKoKAv4bUFZcDbOrbWZo+KRW1qwwY539Vvcm4Uttt+MG/lIdVXsry8m5stdOx8RmR/MTYoN60HL16czzWF4nK2CQ22Fbn8GlMYkdgwZiaEZI0aQfHyNJfhoJjdpAWOcUNL006LdtJ8lYOH+F9Pl7PXyICcPATOxDR5AdEnr6IHSE1YKJKuRq7U+llvPKscrf9vxbYVgcJFmTeghRf1sHgSKhqSzAFh3+OtpS2aWGCUimRFsTpys3mavN02MxL7r4o6qHd/XP+h5YbtlbGf2R6icLlTy6JOQfqYKoxw1Oy5BsydrnXbYwC+WZx3JxAK7GIzS903BD1aEI72NQQPrHatpsYfDc/tGRUBf11d7a0Gc5HP x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(39860400002)(346002)(136003)(376002)(366004)(396003)(64756008)(71200400001)(186003)(6506007)(53546011)(7696005)(9686003)(26005)(55016003)(478600001)(41300700001)(83380400001)(86362001)(38070700005)(122000001)(76116006)(33656002)(82960400001)(38100700002)(2906002)(110136005)(66946007)(15650500001)(30864003)(66556008)(54906003)(5660300002)(52536014)(8936002)(316002)(66476007)(4326008)(66446008)(8676002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NEJRY0JnV2RUQjVVMS9VN002OC9tN0liNGQwSnpFTmdFZXI5RHdNc1R5M0Zn?= =?utf-8?B?dVJjWEVSSW9FSFI4eUlGcHhsOEExRUExa09IWDRneWQ4eUNTMFFHajJheVcx?= =?utf-8?B?YXJXSG8wYi9HMUhMaU1LNEZjcWwzYjJBNGNXcURpNDVXMlNhSW1jU0k3cWZn?= =?utf-8?B?KzVWdjJYWTJKZVFMam9zaWZrM0hoaXBRSkU4cnByMUJlSHVsdHZleGJCRS8y?= =?utf-8?B?aDdYVTZ4RWEzSkV2Y2wwYVVIOFNieVB6dmNWRS8zem5uQ1lPdVdSZ1VUWTQr?= =?utf-8?B?YjA2UWtEZEZPWnJOMEJJNysyN3JHZzBLcU9aZmVUT2J1TlVyRzhHY1o1MnVv?= =?utf-8?B?WmZ6YzNpa1hrelFjbU82SnI0bE1LVzkyeVJYbzlKSzRLa1M4VThHK05Hcjhm?= =?utf-8?B?eHRDY0JJbVBPb2tkV2dFZzM5NWl3aU5jM0lvMkVrb2FnckhyS3JsV2V5dkpG?= =?utf-8?B?MSthMlZ6S1QzQmlKaHlzYndOZXcrZ2hmVGV1dUh0WkVHclFzOXA0NkQ4Ullw?= =?utf-8?B?QnZ1K0Q5Z3BZNFFCNE56VENWUWh0Y21oZnpHZEEzTGdWTkViaEVaeTM2aUY0?= =?utf-8?B?UFpvRnFBYlloVVFqQnl6b2paSWwvaXI4YXhZV0Myb0VSZ2RpWkg5UWYwMlNl?= =?utf-8?B?R0NybGpmYVR3SHlNcEhCclE4MVpDbW56ak5FemREZTcwYXVXMVVoY0dXT0Nv?= =?utf-8?B?eUlvMnJSbnd5RmM0SXhNQk5HU2FuUkZ5b0VrWk9KOGxFVGNsVDFlaUhJS0lC?= =?utf-8?B?bDhNMHQ0bEhZZi81WmpGSG1rRzFGT3RDVmh3VmROTC82QmY2cGdQbGZJdjZ5?= =?utf-8?B?ZkRVb3Zoc2lTWmtWOG1TbDRlR0hmRmsyMHpIeklVR2c5VTdiVjVWWTZwckQy?= =?utf-8?B?RWNOaEtCdUE3dG1XWU1kdlJzYlg4OU1yRkoyeVlQeDhmTGJGVHdKOUZ3NWZJ?= =?utf-8?B?Z2k2ZGxqQ010RzRDMm9CcnE2ZHhXNDFob0lJaS91SDYzbFpqL2Fxc0VCMElF?= =?utf-8?B?ekNqWTdaeFp3cUN5b3ZGWUVZUlBJd0svUzBCMFk5ekphVGFOTlZvdG8rUXlH?= =?utf-8?B?VnhJRzB0aXd3dmtqVDA2NEdnbXQ3V1d5aGxxMi9Kd0xlcjJ6K0tyRXZ6dWJp?= =?utf-8?B?VlhnanpXZmlROVd6YUlFNWcreEEvR2hjeFB3Q1VVZFRYUnhPOXJKM0FEM3Nu?= =?utf-8?B?a3duVGYxRnZJOEFXREI4OE9sSHNZbWRWTTdFSnJNUVAwNkQ3UDB2bDdoQ1Nu?= =?utf-8?B?WDFkWVkzTDMzZldrcEFRcmN1ckVIWXQ1MFc5dnBweWVFbERKd0Z4bG5nMitz?= =?utf-8?B?L1RjZnhiVGpnd1dmYS9xYUwrc3dFMWNSVGE1Q1hGNFBRRHEwNklVSFRLQmJk?= =?utf-8?B?d29wTlA2RE9RUjdJelBzL05IYlBjb0k5SjBuRkw5bExXTFR2ZEEwam5jRW4y?= =?utf-8?B?cVdGZk8xekE1d0daMDV6VGk2dklkVnVQVHFzVTlOd3FObXp2RCtUck5qSjlj?= =?utf-8?B?dTJ4M0hFNEdVOXFLdDZPd3VVMklhS3BTMUlFZWdPVzQwWTA3Q0hGWVZ4cldM?= =?utf-8?B?dG1uSFVja254YTFUUW9ub3RidGhhSWd6dzBqQThPK0U0clRZN1JpcUhqOTVS?= =?utf-8?B?bU5tUmhHbUdUZ3BtMU1rbFg0d2d5QVhxT2VnblU0aWhObkVleVNVS1JKTThw?= =?utf-8?B?clBRSnBPNExJSGZpU2Z0WVd3cWhvWFUvSU9ybXhESUk1eXdaaEVCODNOVlZL?= =?utf-8?B?ZDdXYjFIMTdpZGdmekxOVDNlK2FWY1RYdmRWc3gyNnhqTVF6Vk1ZL0FobG0z?= =?utf-8?B?eG9DL2QwMkw2TzlKczRETWRFZ0l5cFNRT2E2SzA4bGpxNnl6aitQNVdydXpO?= =?utf-8?B?bmNHeFEwQ1dXcXdhT3ltNmpjcHREbzVKRE9maEVUbDBmbXpnajZUc05kdlJ1?= =?utf-8?B?RjVpQlp5Q0pWV3h5QUhnSUk1QWQ1VkF0Sk1hUmJSczBkT2xqQ2RzTysvYTls?= =?utf-8?B?WG9EaG5SdDRkeUtqL0d4ZDEwWFpPcG9BUHRRaFE0WUZ5aHVMY1hWMzFMS0Jk?= =?utf-8?B?N2dUb0s4dFpFcUdpR1FhZlAxenVvRzA5S0QyOFBWa1JvalFUbk9iam1lNlZC?= =?utf-8?Q?gaLHu60xWD4d8RMQxWoqnX/BO?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a0c6324-670a-4c4d-7fe2-08da7ee39e2d X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2022 17:28:50.2648 (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: dPNB4SLKbKpFwbCxNNRUTAd40VQ/RJYsXD3y4BdIYe3yJfSNTG3t4nwMvsbymLO4LQhGWNzXaIoL67JrXnt1ue02+y1LWV9n8fSoDsQPBMU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6186 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgVG9tLCANCg0KQmFjayBmcm9tIHRpbWUgb2ZmLCByZXBseWluZyB0byB0aGF0IHByZXZpb3Vz IGVtYWlsLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFRvbSBSaXgg PHRyaXhAcmVkaGF0LmNvbT4NCj4gU2VudDogTW9uZGF5LCBKdWx5IDE4LCAyMDIyIDY6MjEgQU0N Cj4gVG86IENoYXV0cnUsIE5pY29sYXMgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+OyBkZXZA ZHBkay5vcmc7DQo+IHRob21hc0Btb25qYWxvbi5uZXQ7IGdha2hpbEBtYXJ2ZWxsLmNvbTsgaGVt YW50LmFncmF3YWxAbnhwLmNvbQ0KPiBDYzogbWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb207IG1k ckBhc2hyb2UuZXU7IFJpY2hhcmRzb24sIEJydWNlDQo+IDxicnVjZS5yaWNoYXJkc29uQGludGVs LmNvbT47IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207DQo+IHN0ZXBoZW5AbmV0d29ya3BsdW1i ZXIub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgNC83XSBkcml2ZXJzL2Jhc2ViYW5kOiB1 cGRhdGUgUE1EcyB0byBleHBvc2UgcXVldWUNCj4gcGVyIG9wZXJhdGlvbg0KPiANCj4gDQo+IE9u IDcvNy8yMiAxMDoxOSBBTSwgQ2hhdXRydSwgTmljb2xhcyB3cm90ZToNCj4gPiBIaSBUb20sDQo+ ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogVG9tIFJpeCA8 dHJpeEByZWRoYXQuY29tPg0KPiA+PiBTZW50OiBUaHVyc2RheSwgSnVseSA3LCAyMDIyIDY6MjEg QU0NCj4gPj4gVG86IENoYXV0cnUsIE5pY29sYXMgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+ OyBkZXZAZHBkay5vcmc7DQo+ID4+IHRob21hc0Btb25qYWxvbi5uZXQ7IGdha2hpbEBtYXJ2ZWxs LmNvbTsgaGVtYW50LmFncmF3YWxAbnhwLmNvbQ0KPiA+PiBDYzogbWF4aW1lLmNvcXVlbGluQHJl ZGhhdC5jb207IG1kckBhc2hyb2UuZXU7IFJpY2hhcmRzb24sIEJydWNlDQo+ID4+IDxicnVjZS5y aWNoYXJkc29uQGludGVsLmNvbT47IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207DQo+ID4+IHN0 ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgNC83 XSBkcml2ZXJzL2Jhc2ViYW5kOiB1cGRhdGUgUE1EcyB0byBleHBvc2UNCj4gPj4gcXVldWUgcGVy IG9wZXJhdGlvbg0KPiA+Pg0KPiA+Pg0KPiA+PiBPbiA3LzYvMjIgMjoxMCBQTSwgQ2hhdXRydSwg Tmljb2xhcyB3cm90ZToNCj4gPj4+IEhpIFRvbSwNCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+DQo+ ID4+Pj4gU2VudDogV2VkbmVzZGF5LCBKdWx5IDYsIDIwMjIgOToxNSBBTQ0KPiA+Pj4+IFRvOiBD aGF1dHJ1LCBOaWNvbGFzIDxuaWNvbGFzLmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3Jn Ow0KPiA+Pj4+IHRob21hc0Btb25qYWxvbi5uZXQ7IGdha2hpbEBtYXJ2ZWxsLmNvbTsNCj4gaGVt YW50LmFncmF3YWxAbnhwLmNvbQ0KPiA+Pj4+IENjOiBtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNv bTsgbWRyQGFzaHJvZS5ldTsgUmljaGFyZHNvbiwgQnJ1Y2UNCj4gPj4+PiA8YnJ1Y2UucmljaGFy ZHNvbkBpbnRlbC5jb20+OyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tOw0KPiA+Pj4+IHN0ZXBo ZW5AbmV0d29ya3BsdW1iZXIub3JnDQo+ID4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCA0Lzdd IGRyaXZlcnMvYmFzZWJhbmQ6IHVwZGF0ZSBQTURzIHRvIGV4cG9zZQ0KPiA+Pj4+IHF1ZXVlIHBl ciBvcGVyYXRpb24NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gT24gNy81LzIyIDU6MjMgUE0sIE5p Y29sYXMgQ2hhdXRydSB3cm90ZToNCj4gPj4+Pj4gQWRkIHN1cHBvcnQgaW4gZXhpc3RpbmcgYmJk ZXYgUE1EcyBmb3IgdGhlIGV4cGxpY2l0IG51bWJlciBvZg0KPiA+Pj4+PiBxdWV1ZSBhbmQgcHJp b3JpdHkgZm9yIGVhY2ggb3BlcmF0aW9uIHR5cGUgY29uZmlndXJlZCBvbiB0aGUgZGV2aWNlLg0K PiA+Pj4+Pg0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIENoYXV0cnUgPG5pY29sYXMu Y2hhdXRydUBpbnRlbC5jb20+DQo+ID4+Pj4+IC0tLQ0KPiA+Pj4+PiAgICAgZHJpdmVycy9iYXNl YmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYyAgICAgICAgICAgfCAyOQ0KPiArKysrKysrKysr KysrLS0NCj4gPj4gLS0tLQ0KPiA+Pj4+IC0tLQ0KPiA+Pj4+PiAgICAgZHJpdmVycy9iYXNlYmFu ZC9mcGdhXzVnbnJfZmVjL3J0ZV9mcGdhXzVnbnJfZmVjLmMgfCAgOCArKysrKysNCj4gPj4+Pj4g ICAgIGRyaXZlcnMvYmFzZWJhbmQvZnBnYV9sdGVfZmVjL2ZwZ2FfbHRlX2ZlYy5jICAgICAgIHwg IDggKysrKysrDQo+ID4+Pj4+ICAgICBkcml2ZXJzL2Jhc2ViYW5kL2xhMTJ4eC9iYmRldl9sYTEy eHguYyAgICAgICAgICAgICB8ICA3ICsrKysrKw0KPiA+Pj4+PiAgICAgZHJpdmVycy9iYXNlYmFu ZC90dXJib19zdy9iYmRldl90dXJib19zb2Z0d2FyZS5jICAgfCAxMQ0KPiArKysrKysrKw0KPiA+ Pj4+PiAgICAgNSBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMo LSkNCj4gPj4+Pj4NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAw L3J0ZV9hY2MxMDBfcG1kLmMNCj4gPj4+Pj4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVf YWNjMTAwX3BtZC5jDQo+ID4+Pj4+IGluZGV4IDE3YmE3OTguLmQ1NjhkMGQgMTAwNjQ0DQo+ID4+ Pj4+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPj4+ Pj4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYw0KPiA+Pj4+ PiBAQCAtOTY2LDYgKzk2Niw3IEBADQo+ID4+Pj4+ICAgICAJCXN0cnVjdCBydGVfYmJkZXZfZHJp dmVyX2luZm8gKmRldl9pbmZvKQ0KPiA+Pj4+PiAgICAgew0KPiA+Pj4+PiAgICAgCXN0cnVjdCBh Y2MxMDBfZGV2aWNlICpkID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPj4+Pj4gKwlpbnQg aTsNCj4gPj4+Pj4NCj4gPj4+Pj4gICAgIAlzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9v cF9jYXAgYmJkZXZfY2FwYWJpbGl0aWVzW10gPSB7DQo+ID4+Pj4+ICAgICAJCXsNCj4gPj4+Pj4g QEAgLTEwNjIsMTkgKzEwNjMsMjMgQEANCj4gPj4+Pj4gICAgIAlmZXRjaF9hY2MxMDBfY29uZmln KGRldik7DQo+ID4+Pj4+ICAgICAJZGV2X2luZm8tPmRldmljZV9zdGF0dXMgPQ0KPiBSVEVfQkJE RVZfREVWX05PVF9TVVBQT1JURUQ7DQo+ID4+Pj4+DQo+ID4+Pj4+IC0JLyogVGhpcyBpc24ndCBp ZGVhbCBiZWNhdXNlIGl0IHJlcG9ydHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHF1ZXVlcw0KPiA+ Pj4+IGJ1dA0KPiA+Pj4+PiAtCSAqIGRvZXMgbm90IHByb3ZpZGUgaW5mbyBvbiBob3cgbWFueSBj YW4gYmUgdXBsaW5rL2Rvd25saW5rIG9yDQo+ID4+Pj4gZGlmZmVyZW50DQo+ID4+Pj4+IC0JICog cHJpb3JpdGllcw0KPiA+Pj4+PiAtCSAqLw0KPiA+Pj4+PiAtCWRldl9pbmZvLT5tYXhfbnVtX3F1 ZXVlcyA9DQo+ID4+Pj4+IC0JCQlkLT5hY2MxMDBfY29uZi5xX2RsXzVnLm51bV9hcXNfcGVyX2dy b3VwcyAqDQo+ID4+Pj4+IC0JCQlkLT5hY2MxMDBfY29uZi5xX2RsXzVnLm51bV9xZ3JvdXBzICsN Cj4gPj4+Pj4gLQkJCWQtPmFjYzEwMF9jb25mLnFfdWxfNWcubnVtX2Fxc19wZXJfZ3JvdXBzICoN Cj4gPj4+Pj4gLQkJCWQtPmFjYzEwMF9jb25mLnFfdWxfNWcubnVtX3Fncm91cHMgKw0KPiA+Pj4+ PiAtCQkJZC0+YWNjMTAwX2NvbmYucV9kbF80Zy5udW1fYXFzX3Blcl9ncm91cHMgKg0KPiA+Pj4+ PiAtCQkJZC0+YWNjMTAwX2NvbmYucV9kbF80Zy5udW1fcWdyb3VwcyArDQo+ID4+Pj4+IC0JCQlk LT5hY2MxMDBfY29uZi5xX3VsXzRnLm51bV9hcXNfcGVyX2dyb3VwcyAqDQo+ID4+Pj4+ICsJLyog RXhwb3NlIG51bWJlciBvZiBxdWV1ZXMgKi8NCj4gPj4+Pj4gKwlkZXZfaW5mby0+bnVtX3F1ZXVl c1tSVEVfQkJERVZfT1BfTk9ORV0gPSAwOw0KPiA+Pj4+PiArCWRldl9pbmZvLT5udW1fcXVldWVz W1JURV9CQkRFVl9PUF9UVVJCT19ERUNdID0NCj4gPj4+Pj4gK2QtPmFjYzEwMF9jb25mLnFfdWxf NGcubnVtX2Fxc19wZXJfZ3JvdXBzICoNCj4gPj4+Pj4gICAgIAkJCWQtPmFjYzEwMF9jb25mLnFf dWxfNGcubnVtX3Fncm91cHM7DQo+ID4+Pj4+ICsJZGV2X2luZm8tPm51bV9xdWV1ZXNbUlRFX0JC REVWX09QX1RVUkJPX0VOQ10gPSBkLQ0KPiA+Pj4+PiBhY2MxMDBfY29uZi5xX2RsXzRnLm51bV9h cXNfcGVyX2dyb3VwcyAqDQo+ID4+Pj4+ICsJCQlkLT5hY2MxMDBfY29uZi5xX2RsXzRnLm51bV9x Z3JvdXBzOw0KPiA+Pj4+PiArCWRldl9pbmZvLT5udW1fcXVldWVzW1JURV9CQkRFVl9PUF9MRFBD X0RFQ10gPSBkLQ0KPiA+Pj4+PiBhY2MxMDBfY29uZi5xX3VsXzVnLm51bV9hcXNfcGVyX2dyb3Vw cyAqDQo+ID4+Pj4+ICsJCQlkLT5hY2MxMDBfY29uZi5xX3VsXzVnLm51bV9xZ3JvdXBzOw0KPiA+ Pj4+PiArCWRldl9pbmZvLT5udW1fcXVldWVzW1JURV9CQkRFVl9PUF9MRFBDX0VOQ10gPSBkLQ0K PiA+Pj4+PiBhY2MxMDBfY29uZi5xX2RsXzVnLm51bV9hcXNfcGVyX2dyb3VwcyAqDQo+ID4+Pj4+ ICsJCQlkLT5hY2MxMDBfY29uZi5xX2RsXzVnLm51bV9xZ3JvdXBzOw0KPiA+Pj4+PiArCWRldl9p bmZvLT5xdWV1ZV9wcmlvcml0eVtSVEVfQkJERVZfT1BfVFVSQk9fREVDXSA9DQo+IGQtDQo+ID4+ Pj4+IGFjYzEwMF9jb25mLnFfdWxfNGcubnVtX3Fncm91cHM7DQo+ID4+Pj4+ICsJZGV2X2luZm8t PnF1ZXVlX3ByaW9yaXR5W1JURV9CQkRFVl9PUF9UVVJCT19FTkNdID0NCj4gZC0NCj4gPj4+Pj4g YWNjMTAwX2NvbmYucV9kbF80Zy5udW1fcWdyb3VwczsNCj4gPj4+Pj4gKwlkZXZfaW5mby0+cXVl dWVfcHJpb3JpdHlbUlRFX0JCREVWX09QX0xEUENfREVDXSA9IGQtDQo+ID4+Pj4+IGFjYzEwMF9j b25mLnFfdWxfNWcubnVtX3Fncm91cHM7DQo+ID4+Pj4+ICsJZGV2X2luZm8tPnF1ZXVlX3ByaW9y aXR5W1JURV9CQkRFVl9PUF9MRFBDX0VOQ10gPSBkLQ0KPiA+Pj4+PiBhY2MxMDBfY29uZi5xX2Rs XzVnLm51bV9xZ3JvdXBzOw0KPiA+Pj4+PiArCWRldl9pbmZvLT5tYXhfbnVtX3F1ZXVlcyA9IDA7 DQo+ID4+Pj4+ICsJZm9yIChpID0gUlRFX0JCREVWX09QX1RVUkJPX0RFQzsgaSA8DQo+IFJURV9C QkRFVl9PUF9MRFBDX0VOQzsNCj4gPj4+PiBpKyspDQo+ID4+Pj4NCj4gPj4+PiBzaG91bGQgdGhp cyBiZSBpIDw9wqAgPw0KPiA+Pj4+DQo+ID4+PiBUaGFua3MNCj4gPj4+DQo+ID4+Pj4+ICsJCWRl dl9pbmZvLT5tYXhfbnVtX3F1ZXVlcyArPSBkZXZfaW5mby0NCj4gPm51bV9xdWV1ZXNbaV07DQo+ ID4+Pj4+ICAgICAJZGV2X2luZm8tPnF1ZXVlX3NpemVfbGltID0gQUNDMTAwX01BWF9RVUVVRV9E RVBUSDsNCj4gPj4+Pj4gICAgIAlkZXZfaW5mby0+aGFyZHdhcmVfYWNjZWxlcmF0ZWQgPSB0cnVl Ow0KPiA+Pj4+PiAgICAgCWRldl9pbmZvLT5tYXhfZGxfcXVldWVfcHJpb3JpdHkgPSBkaWZmIC0t Z2l0DQo+ID4+Pj4+IGEvZHJpdmVycy9iYXNlYmFuZC9mcGdhXzVnbnJfZmVjL3J0ZV9mcGdhXzVn bnJfZmVjLmMNCj4gPj4+Pj4gYi9kcml2ZXJzL2Jhc2ViYW5kL2ZwZ2FfNWducl9mZWMvcnRlX2Zw Z2FfNWducl9mZWMuYw0KPiA+Pj4+PiBpbmRleCA1N2IxMmFmLi5iNDk4MmFmIDEwMDY0NA0KPiA+ Pj4+PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2ZwZ2FfNWducl9mZWMvcnRlX2ZwZ2FfNWducl9m ZWMuYw0KPiA+Pj4+PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2ZwZ2FfNWducl9mZWMvcnRlX2Zw Z2FfNWducl9mZWMuYw0KPiA+Pj4+PiBAQCAtMzc5LDYgKzM3OSwxNCBAQA0KPiA+Pj4+PiAgICAg CQlpZiAoaHdfcV9pZCAhPSBGUEdBX0lOVkFMSURfSFdfUVVFVUVfSUQpDQo+ID4+Pj4+ICAgICAJ CQlkZXZfaW5mby0+bWF4X251bV9xdWV1ZXMrKzsNCj4gPj4+Pj4gICAgIAl9DQo+ID4+Pj4+ICsJ LyogRXhwb3NlIG51bWJlciBvZiBxdWV1ZSBwZXIgb3BlcmF0aW9uIHR5cGUgKi8NCj4gPj4+Pj4g KwlkZXZfaW5mby0+bnVtX3F1ZXVlc1tSVEVfQkJERVZfT1BfTk9ORV0gPSAwOw0KPiA+Pj4+PiAr CWRldl9pbmZvLT5udW1fcXVldWVzW1JURV9CQkRFVl9PUF9UVVJCT19ERUNdID0gMDsNCj4gPj4+ Pj4gKwlkZXZfaW5mby0+bnVtX3F1ZXVlc1tSVEVfQkJERVZfT1BfVFVSQk9fRU5DXSA9IDA7DQo+ ID4+Pj4+ICsJZGV2X2luZm8tPm51bV9xdWV1ZXNbUlRFX0JCREVWX09QX0xEUENfREVDXSA9DQo+ IGRldl9pbmZvLQ0KPiA+Pj4+PiBtYXhfbnVtX3F1ZXVlcyAvIDI7DQo+ID4+Pj4+ICsJZGV2X2lu Zm8tPm51bV9xdWV1ZXNbUlRFX0JCREVWX09QX0xEUENfRU5DXSA9DQo+IGRldl9pbmZvLQ0KPiA+ Pj4+PiBtYXhfbnVtX3F1ZXVlcyAvIDI7DQo+ID4+Pj4+ICsJZGV2X2luZm8tPnF1ZXVlX3ByaW9y aXR5W1JURV9CQkRFVl9PUF9MRFBDX0RFQ10gPSAxOw0KPiA+Pj4+PiArCWRldl9pbmZvLT5xdWV1 ZV9wcmlvcml0eVtSVEVfQkJERVZfT1BfTERQQ19FTkNdID0gMTsNCj4gPj4+Pj4gICAgIH0NCj4g Pj4+Pj4NCj4gPj4+Pj4gICAgIC8qKg0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNl YmFuZC9mcGdhX2x0ZV9mZWMvZnBnYV9sdGVfZmVjLmMNCj4gPj4+Pj4gYi9kcml2ZXJzL2Jhc2Vi YW5kL2ZwZ2FfbHRlX2ZlYy9mcGdhX2x0ZV9mZWMuYw0KPiA+Pj4+PiBpbmRleCAyYTMzMGM0Li5k YzdmNDc5IDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2ZwZ2FfbHRlX2Zl Yy9mcGdhX2x0ZV9mZWMuYw0KPiA+Pj4+PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2ZwZ2FfbHRl X2ZlYy9mcGdhX2x0ZV9mZWMuYw0KPiA+Pj4+PiBAQCAtNjU1LDYgKzY1NSwxNCBAQCBzdHJ1Y3Qg X19ydGVfY2FjaGVfYWxpZ25lZCBmcGdhX3F1ZXVlIHsNCj4gPj4+Pj4gICAgIAkJaWYgKGh3X3Ff aWQgIT0gRlBHQV9JTlZBTElEX0hXX1FVRVVFX0lEKQ0KPiA+Pj4+PiAgICAgCQkJZGV2X2luZm8t Pm1heF9udW1fcXVldWVzKys7DQo+ID4+Pj4+ICAgICAJfQ0KPiA+Pj4+PiArCS8qIEV4cG9zZSBu dW1iZXIgb2YgcXVldWUgcGVyIG9wZXJhdGlvbiB0eXBlICovDQo+ID4+Pj4+ICsJZGV2X2luZm8t Pm51bV9xdWV1ZXNbUlRFX0JCREVWX09QX05PTkVdID0gMDsNCj4gPj4+Pj4gKwlkZXZfaW5mby0+ bnVtX3F1ZXVlc1tSVEVfQkJERVZfT1BfVFVSQk9fREVDXSA9DQo+IGRldl9pbmZvLQ0KPiA+Pj4+ PiBtYXhfbnVtX3F1ZXVlcyAvIDI7DQo+ID4+Pj4+ICsJZGV2X2luZm8tPm51bV9xdWV1ZXNbUlRF X0JCREVWX09QX1RVUkJPX0VOQ10gPQ0KPiBkZXZfaW5mby0NCj4gPj4+Pj4gbWF4X251bV9xdWV1 ZXMgLyAyOw0KPiA+Pj4+PiArCWRldl9pbmZvLT5udW1fcXVldWVzW1JURV9CQkRFVl9PUF9MRFBD X0RFQ10gPSAwOw0KPiA+Pj4+PiArCWRldl9pbmZvLT5udW1fcXVldWVzW1JURV9CQkRFVl9PUF9M RFBDX0VOQ10gPSAwOw0KPiA+Pj4+PiArCWRldl9pbmZvLT5xdWV1ZV9wcmlvcml0eVtSVEVfQkJE RVZfT1BfVFVSQk9fREVDXSA9IDE7DQo+ID4+Pj4+ICsJZGV2X2luZm8tPnF1ZXVlX3ByaW9yaXR5 W1JURV9CQkRFVl9PUF9UVVJCT19FTkNdID0NCj4gMTsNCj4gPj4+Pj4gICAgIH0NCj4gPj4+Pj4N Cj4gPj4+Pj4gICAgIC8qKg0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9s YTEyeHgvYmJkZXZfbGExMnh4LmMNCj4gPj4+Pj4gYi9kcml2ZXJzL2Jhc2ViYW5kL2xhMTJ4eC9i YmRldl9sYTEyeHguYw0KPiA+Pj4+PiBpbmRleCBjMWY4OGM2Li5lOTllYTlhIDEwMDY0NA0KPiA+ Pj4+PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2xhMTJ4eC9iYmRldl9sYTEyeHguYw0KPiA+Pj4+ PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2xhMTJ4eC9iYmRldl9sYTEyeHguYw0KPiA+Pj4+PiBA QCAtMTAyLDYgKzEwMiwxMyBAQCBzdHJ1Y3QgYmJkZXZfbGExMnh4X3BhcmFtcyB7DQo+ID4+Pj4+ ICAgICAJZGV2X2luZm8tPm1pbl9hbGlnbm1lbnQgPSA2NDsNCj4gPj4+Pj4gICAgIAlkZXZfaW5m by0+ZGV2aWNlX3N0YXR1cyA9DQo+IFJURV9CQkRFVl9ERVZfTk9UX1NVUFBPUlRFRDsNCj4gPj4+ Pj4NCj4gPj4+Pj4gKwlkZXZfaW5mby0+bnVtX3F1ZXVlc1tSVEVfQkJERVZfT1BfTk9ORV0gPSAw Ow0KPiA+Pj4+PiArCWRldl9pbmZvLT5udW1fcXVldWVzW1JURV9CQkRFVl9PUF9UVVJCT19ERUNd ID0gMDsNCj4gPj4+Pj4gKwlkZXZfaW5mby0+bnVtX3F1ZXVlc1tSVEVfQkJERVZfT1BfVFVSQk9f RU5DXSA9IDA7DQo+ID4+Pj4+ICsJZGV2X2luZm8tPm51bV9xdWV1ZXNbUlRFX0JCREVWX09QX0xE UENfREVDXSA9DQo+ID4+Pj4gTEExMlhYX01BWF9RVUVVRVMgLyAyOw0KPiA+Pj4+PiArCWRldl9p bmZvLT5udW1fcXVldWVzW1JURV9CQkRFVl9PUF9MRFBDX0VOQ10gPQ0KPiA+Pj4+IExBMTJYWF9N QVhfUVVFVUVTIC8gMjsNCj4gPj4+Pj4gKwlkZXZfaW5mby0+cXVldWVfcHJpb3JpdHlbUlRFX0JC REVWX09QX0xEUENfREVDXSA9IDE7DQo+ID4+Pj4+ICsJZGV2X2luZm8tPnF1ZXVlX3ByaW9yaXR5 W1JURV9CQkRFVl9PUF9MRFBDX0VOQ10gPSAxOw0KPiA+Pj4+PiAgICAgCXJ0ZV9iYmRldl9sb2df ZGVidWcoImdvdCBkZXZpY2UgaW5mbyBmcm9tICV1IiwgZGV2LT5kYXRhLQ0KPiA+ZGV2X2lkKTsN Cj4gPj4+Pj4gICAgIH0NCj4gPj4+Pj4NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFz ZWJhbmQvdHVyYm9fc3cvYmJkZXZfdHVyYm9fc29mdHdhcmUuYw0KPiA+Pj4+PiBiL2RyaXZlcnMv YmFzZWJhbmQvdHVyYm9fc3cvYmJkZXZfdHVyYm9fc29mdHdhcmUuYw0KPiA+Pj4+PiBpbmRleCBk YmM1NTI0Li42NDdlNzA2IDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL3R1 cmJvX3N3L2JiZGV2X3R1cmJvX3NvZnR3YXJlLmMNCj4gPj4+Pj4gKysrIGIvZHJpdmVycy9iYXNl YmFuZC90dXJib19zdy9iYmRldl90dXJib19zb2Z0d2FyZS5jDQo+ID4+Pj4+IEBAIC0yNTYsNiAr MjU2LDE3IEBAIHN0cnVjdCB0dXJib19zd19xdWV1ZSB7DQo+ID4+Pj4+ICAgICAJZGV2X2luZm8t PmRhdGFfZW5kaWFubmVzcyA9IFJURV9MSVRUTEVfRU5ESUFOOw0KPiA+Pj4+PiAgICAgCWRldl9p bmZvLT5kZXZpY2Vfc3RhdHVzID0NCj4gUlRFX0JCREVWX0RFVl9OT1RfU1VQUE9SVEVEOw0KPiA+ Pj4+Pg0KPiA+Pj4+PiArCWNvbnN0IHN0cnVjdCBydGVfYmJkZXZfb3BfY2FwICpvcF9jYXAgPQ0K PiBiYmRldl9jYXBhYmlsaXRpZXM7DQo+ID4+Pj4gU2hvdWxkIHRoaXMgYmUgZG9uZSB0aHJvdWdo IGRldiBpbnN0ZWFkIG9mIGFzc2lnbmluZyBkaXJlY3RseSA/DQo+ID4+PiBJIGFtIG5vdCBzdXJl IEkgZm9sbG93IHlvdXIgc3VnZ2VzdGlvbi4gRG8geW91IG1pbmQgY2xhcmlmeWluZz8NCj4gPj4g YmJkZXZfY2FwYWJpbGl0ZXMgaXMgYSBjb25zdCBkZWZpbmVkIGluIHRoaXMgZnVuY3Rpb24sIGRv IHlvdSByZWFsbHkNCj4gPj4gbmVlZCB0byBsb29wIG92ZXIgaXQgdG8gZmluZCBpbmZvcm1hdGlv biB0aGF0IGlzIGNvbnN0YW50ID8NCj4gPiBJIHN0aWxsIG1pc3MgeW91ciBwb2ludC4gTm90ZSB0 aGF0IHRoaXMgY29uc3RhbnQgaXMgbm90IGFsd2F5cyB0aGUgc2FtZSBhdA0KPiBidWlsZCB0aW1l IChiYXNlZCBvbiB3aGF0IFNESyBpdCBjYW4gbGlua3MgdG8pLg0KPiA+IFdoYXQgd291bGQgc3Vn Z2VzdD8NCj4gDQo+IE9wZXJhdGlvbnMgdGhhdCBjYW4gYmUgZG9uZSBhdCBjb21waWxlIHRpbWUs IHNob3VsZCBiZS7CoCBVc2VsZXNzIHRoZXJlIGlzIGENCj4gZ29vZCByZWFzb24uDQo+IA0KPiBZ b3UgbmVlZCB0byBwcm92aWRlIGEgZ29vZCByZWFzb24gb3IgbWFrZSB0aGUgY2hhbmdlLg0KDQpJ IGJlbGlldmUgdGhpcyBpcyBtb3JlIGdyYWNlZnVsLCBzY2FsYWJsZSBhbmQgbWFpbnRhaW5hYmxl IHRoaXMgd2F5LiANCkF0IGJ1aWxkIHRpbWUgd2UgYWxyZWFkeSBkZWZpbmUgdGhlIGxpc3Qgb2Yg Y2FwYWJpbGl0eSB0aGVuIHdlIGp1c3QgcHJvY2VzcyB0aGF0IGluZm9ybWF0aW9uIHdpdGhvdXQg cmlzayBvZiBkaXNjb25uZWN0IGJldHdlZW4gdHdvIHBpZWNlcyBvZiBjb2RlLiANClRoZSBkcmF3 YmFjayBpcyBleGVjdXRpb24gdGltZSBidXQgdGhpcyBmdW5jdGlvbiBpcyBub3QgdGltZSBzZW5z aXRpdGl2ZSAoZW51bWVyYXRpb24pLg0KSSBjb3VsZCBjaGFuZ2UgaXQgYnV0IHRoZSBjb2RlIHdv dWxkIGJlIHBvb3JlciB3aXRoIHJpc2sgb2YgYnJlYWtpbmcgc3R1ZmYgaW4gdGhlIGZ1dHVyZSAo cmVkdW5kYW50IGluZm9ybWF0aW9uIGluIHRoZSBjb2RlIGhlbmNlIGJ1ZyBwcm9uZSkuDQpJZS4g ZGVmaW5pbmcgdGhlIG51bWJlciBvZiBvcGVyYXRpb25zIGFuZCBxdWV1ZXMgdXNpbmcgYW5vdGhl ciBzZXJpZSBvZiAgI2RlZmluZS4gDQpGcm9tIG15IHBvaW50IG9mIHZpZXcgdGhhdCB3b3VsZCBi ZSBzb21ldGhpbmcgdGhhdCB3ZSB3b3VsZCBub3QgZG8gaW50ZXJuYWxseSBmb3IgdGhlIHJlYXNv bnMgYWJvdmUsIGJ1dCBpZiB5b3UgaW5zaXN0IEkgd2lsbCBqdXN0IGNoYW5nZSBhY2NvcmRpbmds eSBzbyB0aGF0IHRvIG1vdmUgb24uIA0KTm90IGEgYmlnIGRlYWwsIGxldCB1cyBrbm93LiANCg0K VGhhbmtzDQpOaWMNCg0KPiANCj4gVG9tDQo+IA0KPiA+DQo+ID4gVGhhbmtzDQo+ID4gTmljDQo+ ID4NCj4gPg0KPiA+PiBUb20NCj4gPj4NCj4gPj4+PiBUb20NCj4gPj4+Pg0KPiA+Pj4+PiArCWlu dCBudW1fb3BfdHlwZSA9IDA7DQo+ID4+Pj4+ICsJZm9yICg7IG9wX2NhcC0+dHlwZSAhPSBSVEVf QkJERVZfT1BfTk9ORTsgKytvcF9jYXApDQo+ID4+Pj4+ICsJCW51bV9vcF90eXBlKys7DQo+ID4+ Pj4+ICsJb3BfY2FwID0gYmJkZXZfY2FwYWJpbGl0aWVzOw0KPiA+Pj4+PiArCWlmIChudW1fb3Bf dHlwZSA+IDApIHsNCj4gPj4+Pj4gKwkJaW50IG51bV9xdWV1ZV9wZXJfdHlwZSA9IGRldl9pbmZv LQ0KPiA+bWF4X251bV9xdWV1ZXMgLw0KPiA+Pj4+IG51bV9vcF90eXBlOw0KPiA+Pj4+PiArCQlm b3IgKDsgb3BfY2FwLT50eXBlICE9IFJURV9CQkRFVl9PUF9OT05FOw0KPiArK29wX2NhcCkNCj4g Pj4+Pj4gKwkJCWRldl9pbmZvLT5udW1fcXVldWVzW29wX2NhcC0+dHlwZV0gPQ0KPiA+Pj4+IG51 bV9xdWV1ZV9wZXJfdHlwZTsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gICAgIAly dGVfYmJkZXZfbG9nX2RlYnVnKCJnb3QgZGV2aWNlIGluZm8gZnJvbSAldVxuIiwgZGV2LQ0KPiA+ ZGF0YS0NCj4gPj4+Pj4gZGV2X2lkKTsNCj4gPj4+Pj4gICAgIH0NCj4gPj4+Pj4NCg0K