From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 24D26C433F5 for ; Mon, 23 May 2022 17:06:59 +0000 (UTC) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 090444067B; Mon, 23 May 2022 19:06:58 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 81A5C40156 for ; Mon, 23 May 2022 19:06:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653325616; x=1684861616; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=DYWgg/6lPMjHzvon+YruoG7/16jqPHQZYDtJGnJkxDM=; b=n5lIzt0JkxZTPR9txI0bPNjrVunsTrjaasKTktIwTLPLoQEN8Zsp0j9e OAE7m6A1iTc72a1UEGRL4FjwHj5kZdo/UBdX92jfwXelnG0iO09+Y3QbP LLNhMzTvIeZX0fHcCt5+cKwHtgQaghGSWDDQPg1Fs/LtAg515SsUiGjxL beBHxdtU/dHHHrIISdeDi5HP1VUFW7NQ8MXMwn0k0y6UTgUv+mAmVqZnN NVEXHQb98W7cv6EkoAezPTHNYOeruQfWf9eyvM346CNf1hmS8/JCKDC9A N+Yq+BSmsJH0sDRlMiaGq0eLNEloG2Iz3ZNrPqdNFgN2GQkMEsQsZNoob g==; X-IronPort-AV: E=McAfee;i="6400,9594,10356"; a="273405668" X-IronPort-AV: E=Sophos;i="5.91,246,1647327600"; d="scan'208";a="273405668" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 May 2022 10:06:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,246,1647327600"; d="scan'208";a="819903394" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga006.fm.intel.com with ESMTP; 23 May 2022 10:06:55 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 23 May 2022 10:06:55 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 23 May 2022 10:06:54 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 23 May 2022 10:06:54 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.171) 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.2308.27; Mon, 23 May 2022 10:06:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mwcituKAyVz6goZ0WLvUfzT/5hVM9qbRBz9xPC2vrD7DHnE3ugNPDgX9wmatm+TIG0QdGwyxw/E3NX3IxC5I+yP2tznAtcb6oa4+gKLL6E4h76hnWUbQD9YR0Kd6O0BiDo9hZjutC9GDrt2SClfBVUOUoo7bBWrZ757WmfqlX9qnvNfHMt84hsJgGpP1TlnHxTVji13YgN3TcWTgG4d+kM7bxrXGFPf3AqC6Tj9MTHLLbYiQIMp219SPsfo705pqXt7MIXHHFW6laCFc67qAaUUqMgX/Ug1TKAt/DjQDQeiY+ciQQZ3219WZaGZBl41GnA6dcS/FdEapxXk1KcmAvg== 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=DYWgg/6lPMjHzvon+YruoG7/16jqPHQZYDtJGnJkxDM=; b=bKgReoimv8h0zIKOJbJmpzwBqcaxQCCsECVTux+Ta/uPz+eRnhGGBuN8k/vOPM2rpFNZN+tWQMS92UkngsEKDhATF4aVfBV2W7RwYluyFBl87Ot2H+qJl2BT0n++hA99aHZF+13eCWPFGdQAidbckGKGawbhNlbm+FyDICGGB63UIuesbyjsmFOvXAwUne5JKpn3BdLpWCuQnV9lRRQXyhhNL21uFcf9Vq62Yej6w5Y4NVWOSICIx7sn4hKNf+SEdR2fjk6xxebHzFWoPzoCL7bZi0swL32yLjVfo684DkKy7Cslz8IZQurcF67POInykM4JAm/M7aYWAKNvHpGPzQ== 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 BN6PR11MB3873.namprd11.prod.outlook.com (2603:10b6:405:83::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Mon, 23 May 2022 17:06:50 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::40f:170c:c586:7219]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::40f:170c:c586:7219%2]) with mapi id 15.20.5273.023; Mon, 23 May 2022 17:06:50 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" , "gakhil@marvell.com" , "trix@redhat.com" CC: "thomas@monjalon.net" , "Kinsella, Ray" , "Richardson, Bruce" , "hemant.agrawal@nxp.com" , "Vargas, Hernan" , "david.marchand@redhat.com" Subject: RE: [PATCH v3 3/4] baseband/acc100: configuration of ACC101 from PF Thread-Topic: [PATCH v3 3/4] baseband/acc100: configuration of ACC101 from PF Thread-Index: AQHYaWdrYQzXIRVKuE2K9ZfMaeXFE60mpxOAgAYTZjA= Date: Mon, 23 May 2022 17:06:50 +0000 Message-ID: References: <1651083423-33202-1-git-send-email-nicolas.chautru@intel.com> <1652734113-124047-1-git-send-email-nicolas.chautru@intel.com> <1652734113-124047-4-git-send-email-nicolas.chautru@intel.com> In-Reply-To: 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.401.20 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: e313f6b5-883f-4731-dc08-08da3cdea0d5 x-ms-traffictypediagnostic: BN6PR11MB3873:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr 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: 8NVQTXGFuSTeDQzNe7yT9jVa83mt+HKIYumIhgZUiGfb77eYaR8qQ5Glx42rR/uyxSfXiCpMe3dJDZB5po5qbaVkRJkQdQlxBBTNHcaSkuD3zN0/naKxHUL9vnGBkN3BqOUr299smufjNNfoz6YMusj9fkMzXaRQOXMRdS58j1O3tc3qrKIFroh7eFAicqmzxAGZQP5FOX/wCtpkwL+Monkd4dhXyKEqAtHhN3o+OnUm0q8+QyS0T4P4qApdTe2ks+m0PJSw5vEMu54F9D1HaxHGvf1Cs/C3Hj9GpPTLxKjZt8QpOaIK1/a1Ifred+Zh/rk+XGz1EoiCLD1qPdAuPDcMaMxHSDttm5udGZKpvBK1KeBQzjOVjxfRMcrCIe5lQUEwYG/eF/8BlURakPu1+JPrjh6kPLeif2y6E1XJPN8lmsusuy2cSSIK+WOcmAETh48NnNkNareYHmN+jKL6FvUgA7ayYR+4h4XtScl5Zgva3nyAMn9WkT6fzKj0udkYTt9bf2Pq3S3RyvrSxdQ/oXFrbz2ugFQM5oc0uZGdyFgcvXtWqFMGv557AmFbZxDtwaeJz0d+/ML/XleGRzieE3Asp2WFJANHc8yzcoSBqqfYZOYCDKjVC5YklnkOXvrXmyDdzjzA5J5oHN1znwFvENj3O0M9i/Qd9CZ452F75OTN3sAsBQ9Ffm6Gc/Str9hPM149Rj5S6nei04TGTKr8uA== 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:(13230001)(366004)(8676002)(76116006)(82960400001)(7696005)(316002)(122000001)(54906003)(5660300002)(71200400001)(52536014)(66946007)(66476007)(64756008)(110136005)(30864003)(55016003)(86362001)(66446008)(66556008)(19627235002)(38100700002)(508600001)(53546011)(9686003)(38070700005)(4326008)(33656002)(26005)(8936002)(6506007)(186003)(83380400001)(2906002)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?czA2NGRJK3ZZQ05mVjlSQ3ZSdVY0M2loWENvNVJ2eFFXVHNFUHpRUHE5U2li?= =?utf-8?B?YUd5cncvVzRTNW1qbnkxdGtYazB5RUNvR09kdThrMnhQRWg4eHFSa2x2Rllp?= =?utf-8?B?MCt6TlhnV1l1S2orbGVqc1JuZk96emRhbUdyc3I2RWM4ZXVIRytWNVM1b3lG?= =?utf-8?B?SHVsQTF3ZnBqRkZrL1Rna2swOXVhZkpzaXRuUWkxa3VDRHhkYkwrLy9rQkE0?= =?utf-8?B?T0tEcGNTUUZNZ05Md3U0TWUrNXBNdDFiWW55Q1drZUpDaXpKSTVCU0hFck9G?= =?utf-8?B?b0NWWTdLK05Gcjg3dk9zYVNqbjRsWmN4UWVNNFpYYkpQY0R1Q3FjVUgwVUFP?= =?utf-8?B?RVhQVHdCazFkRmVETHRWcnVTVUlUcDBBclh0OTY2cFo0ZncyZjVobWhtdmhZ?= =?utf-8?B?RXk2Tm9qY1l4cWx3eENKMEloV3Qwcnd6OExGaU5Cc3RqM2NYQm5ZWnZNUnNY?= =?utf-8?B?NmE0bHhzRCtWalFYNS9ybVRhMVhBRGpBS0E1d2VyVTJFb2xaQ2gwWW1kVXJk?= =?utf-8?B?RXBIT0J4N3p2ZDJkSWZXWDg0bkVEVzNqVTlnRVhWUi9OemJBaTU3dE5CSE5x?= =?utf-8?B?OHZoQUJIQ1Vwakh5T3BTOFh3TndpM3l4b1h4dkhDZmdLQmpKTEN6Q2tMT0VV?= =?utf-8?B?c25ObjZlYWJoSFE4a0s5TkV4aVpwVjhTbCtDM1RiRDdlYVVocnZpaGpVS3Nn?= =?utf-8?B?emh0UXo5bHZFdU9OR203RHBWTVQyZmlBMTBBcCtNRzljd1pvZ0NKaStnRWpS?= =?utf-8?B?cDVTZDJsZGJDQ1B1eDd1Qk5JMW5RUExFSFNxdFg1RTBiYkFJTzRJNHZEM3lu?= =?utf-8?B?eXRFd3NEeE52OVZQRkZxT3RhT3phc3Y1S0hjL1VqS2RtVExxZFhsYkJHTW1W?= =?utf-8?B?bTJ4QzdIcG8ydHB4L2hLRFM3SWFPejcyb1g3QmQ0MURUcklsZnZVZjJRRFdU?= =?utf-8?B?c01hSmtmbVY5eTVCN2tUUUFzWUlIdTZmenVhTHNlWUdXZ2gyOTIwVU9tRWk1?= =?utf-8?B?OUZMWUp4Rk5RRHBqWHN5TXNsaExpVC9keHpGWjZGU2xoZHB3RWNGZlpkZEw2?= =?utf-8?B?dk94eXM1cHdSdmZ1bmp5T0VhLzU0TktFK2poNEl6RE1qTElEK2YySnk3SnYz?= =?utf-8?B?WFhNWGlhSzZoMmVic1QrUjlYRnB2ZGRBenlneEtseWZNNStFaG9ZL2hsS2NS?= =?utf-8?B?UjhwOGM0NWl1VUZ2UmV3M2xIdklLM205Y1k0WjBPc0RRSkM0K3pVQzU1bHhu?= =?utf-8?B?YUxMV3BrM3dCakgrWDNPUDFhMy9DVm80cGl0NytsV2RwbVBGQzNCT1BIRGlF?= =?utf-8?B?ZHBWaHJqME1hZDdiNEVOZkhiQ0JyaVEyRWwrSTFiQTlmQXhYZ01ZTDdIcmVT?= =?utf-8?B?TkZaZCtIVWt0LzFmTldYZFA5WmIyWjZXVVRveEdoVFRLb2ZtWDV6bmo5WWlE?= =?utf-8?B?a1dodkJCTk9aY1NCUk05RithblYwOWo1c3lkZmQxVUVPMFczbk52UzRHcHk3?= =?utf-8?B?b1NpakFFck1IUWZpcWNrMmxTVjlUWG0vVHhYZHN3OEZ3NURlY0dXdlFqM0hI?= =?utf-8?B?K2VnM09ObHF6QlpOQmZIWUkvYmc2cXI1WXBMcUprNURCWmpad0ZjVGhjcHJI?= =?utf-8?B?SXBEVlVqTklCRFhTKzRYY1lTLy9vOXZiYkN4bnFFcWZianJZYnVrSjA3SWNk?= =?utf-8?B?ZE56K3JUSHNPaWVOUDM4dkd5MGVRVTJ3dThLRnZ1QTJPWE9TYWNtK3M3RjR5?= =?utf-8?B?blhYbHhQci9DeEwyUU5nSTBNSmJQN1pBSkZvQjhMQ2J3ay8vVjl1RnNhSzQ0?= =?utf-8?B?Smo2NWFOUS9xSXg1NklwL0VoNEFrRFVMcyt2Q2luQTdyNXZDeDJTdVFGVVR1?= =?utf-8?B?ZHhCQ0g5SHNza1ZKMWV3eDJrcHNBQ2lqVllIR2s5ajJaOGphZzE3YjRSQ1l4?= =?utf-8?B?eHBaQkd6WVpKL1FCRmo5QU1IYkFMaDBHT1NMVU8wMEZUTVpDd2JGc2hDa2h4?= =?utf-8?B?NGE3KzVSZ3NRb29xNGU0OVF0UDhrL3BjV3Fpb0NKQ2hLeGx4dzJ6ZDZodHJr?= =?utf-8?B?b1pmVHNFdmxrTzF5YkFIanN6RUtZRnhyd0pWN2NaYmhjVUpGRVI3RzBHSHpW?= =?utf-8?B?WkV4aW5PMlE5NG81V3Mxc0NqL05mcGlXYUdodVhVaGVSYmllanEzTUFxNUFH?= =?utf-8?B?OW1sMEEyMC94Uy9uZnpvZC9oTGNFb2NtQXVLYlFVVUNhMG1MYVI3STUwbmZ3?= =?utf-8?B?b3hudnpNUEVkQVpLMXE3WFh0aUpCbDJzb0FZaitscXdBY1NyUjFUcFJ6UnVx?= =?utf-8?B?R3VMamYvZU1ZNkdLZUF5SUthRk1mTzVacVJRRHFpR3Zna2dnc3U4YVNCMlIv?= =?utf-8?Q?WuFXtODGq670tOk8=3D?= 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: e313f6b5-883f-4731-dc08-08da3cdea0d5 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2022 17:06:50.4654 (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: OBuItWDI9hEeeOSWtO3keB249PNy6+8/iD2lL+nFPPkYGcrUDunxlxH3V6UxOcCldmZcl4y34k0h1A2zpe1H/aPOfSHjBDIqkMIblnEfCOE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB3873 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 SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUaHVyc2Rh eSwgTWF5IDE5LCAyMDIyIDE6MTQgUE0NCj4gVG86IENoYXV0cnUsIE5pY29sYXMgPG5pY29sYXMu Y2hhdXRydUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmc7DQo+IGdha2hpbEBtYXJ2ZWxsLmNvbTsg dHJpeEByZWRoYXQuY29tDQo+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBLaW5zZWxsYSwgUmF5 IDxyYXkua2luc2VsbGFAaW50ZWwuY29tPjsNCj4gUmljaGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJp Y2hhcmRzb25AaW50ZWwuY29tPjsNCj4gaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgVmFyZ2FzLCBI ZXJuYW4gPGhlcm5hbi52YXJnYXNAaW50ZWwuY29tPjsNCj4gZGF2aWQubWFyY2hhbmRAcmVkaGF0 LmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDMvNF0gYmFzZWJhbmQvYWNjMTAwOiBjb25m aWd1cmF0aW9uIG9mIEFDQzEwMSBmcm9tDQo+IFBGDQo+IA0KPiBIaSBOaWNvbGFzLA0KPiANCj4g T24gNS8xNi8yMiAyMjo0OCwgTmljb2xhcyBDaGF1dHJ1IHdyb3RlOg0KPiAgPiBBZGRpbmcgY29t cGFuaW9uIGZ1bmN0aW9uIHNwZWNpZmljIHRvIEFDQzEwMCBhbmQgaXQgID4gY2FuIGJlIGNhbGxl ZCBmcm9tDQo+IGJiZGV2LXRlc3Qgd2hlbiBydW5uaW5nIGZyb20gUEYuDQo+ICA+DQo+ICA+IFNp Z25lZC1vZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4g ID4gLS0tDQo+ICA+ICAgYXBwL3Rlc3QtYmJkZXYvdGVzdF9iYmRldl9wZXJmLmMgICAgICAgICB8 ICAyMiArKy0NCj4gID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX2NmZy5o IHwgIDE3ICsrDQo+ICA+ICAgZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQu YyB8IDMwMg0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICA+ICAgZHJpdmVy cy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXAgICAgICB8ICAgMiArLQ0KPiAgPiAgIDQgZmls ZXMgY2hhbmdlZCwgMzM2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+ICA+DQo+ICA+ IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1iYmRldi90ZXN0X2JiZGV2X3BlcmYuYw0KPiBiL2FwcC90 ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ICA+IGluZGV4IDBmYTExOWEuLmIxMGI5M2Qg MTAwNjQ0DQo+ICA+IC0tLSBhL2FwcC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ICA+ ICsrKyBiL2FwcC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ICA+IEBAIC02Myw2ICs2 Myw4IEBADQo+ICA+ICAgI2RlZmluZSBBQ0MxMDBfUU1HUl9JTlZBTElEX0lEWCAtMQ0KPiAgPiAg ICNkZWZpbmUgQUNDMTAwX1FNR1JfUlIgMQ0KPiAgPiAgICNkZWZpbmUgQUNDMTAwX1FPU19HQlIg MA0KPiAgPiArI2RlZmluZSBBQ0MxMDFQRl9EUklWRVJfTkFNRSAgICgiaW50ZWxfYWNjMTAxX3Bm IikNCj4gID4gKyNkZWZpbmUgQUNDMTAxVkZfRFJJVkVSX05BTUUgICAoImludGVsX2FjYzEwMV92 ZiIpDQo+ICA+ICAgI2VuZGlmDQo+ICA+DQo+ICA+ICAgI2RlZmluZSBPUFNfQ0FDSEVfU0laRSAy NTZVDQo+ICA+IEBAIC03MTEsMTEgKzcxMywxMiBAQCB0eXBlZGVmIGludCAodGVzdF9jYXNlX2Z1 bmN0aW9uKShzdHJ1Y3QNCj4gYWN0aXZlX2RldmljZSAqYWQsDQo+ICA+ICAgI2VuZGlmDQo+ICA+ ICAgI2lmZGVmIFJURV9CQVNFQkFORF9BQ0MxMDANCj4gID4gICAJaWYgKChnZXRfaW5pdF9kZXZp Y2UoKSA9PSB0cnVlKSAmJg0KPiAgPiAtCQkoIXN0cmNtcChpbmZvLT5kcnYuZHJpdmVyX25hbWUs IEFDQzEwMFBGX0RSSVZFUl9OQU1FKSkpDQo+IHsNCj4gID4gKwkJCSgoIXN0cmNtcChpbmZvLT5k cnYuZHJpdmVyX25hbWUsDQo+IEFDQzEwMFBGX0RSSVZFUl9OQU1FKSkgfHwNCj4gID4gKwkJCSgh c3RyY21wKGluZm8tPmRydi5kcml2ZXJfbmFtZSwNCj4gQUNDMTAxUEZfRFJJVkVSX05BTUUpKSkp IHsNCj4gID4gICAJCXN0cnVjdCBydGVfYWNjMTAwX2NvbmYgY29uZjsNCj4gID4gICAJCXVuc2ln bmVkIGludCBpOw0KPiAgPg0KPiAgPiAtCQlwcmludGYoIkNvbmZpZ3VyZSBBQ0MxMDAgRkVDIERy aXZlciAlcyB3aXRoIGRlZmF1bHQNCj4gdmFsdWVzXG4iLA0KPiAgPiArCQlwcmludGYoIkNvbmZp Z3VyZSBBQ0MxMFggRkVDIERyaXZlciAlcyB3aXRoIGRlZmF1bHQNCj4gdmFsdWVzXG4iLA0KPiAg PiAgIAkJCQlpbmZvLT5kcnYuZHJpdmVyX25hbWUpOw0KPiAgPg0KPiAgPiAgIAkJLyogY2xlYXIg ZGVmYXVsdCBjb25maWd1cmF0aW9uIGJlZm9yZSBpbml0aWFsaXphdGlvbiAqLw0KPiAgPiBAQCAt NzYwLDEwICs3NjMsMTcgQEAgdHlwZWRlZiBpbnQgKHRlc3RfY2FzZV9mdW5jdGlvbikoc3RydWN0 DQo+IGFjdGl2ZV9kZXZpY2UgKmFkLA0KPiAgPiAgIAkJY29uZi5xX2RsXzVnLmFxX2RlcHRoX2xv ZzIgPSBBQ0MxMDBfUU1HUl9BUV9ERVBUSDsNCj4gID4NCj4gID4gICAJCS8qIHNldHVwIFBGIHdp dGggY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiAqLw0KPiAgPiAtCQlyZXQgPSBydGVfYWNjMTAw X2NvbmZpZ3VyZShpbmZvLT5kZXZfbmFtZSwgJmNvbmYpOw0KPiAgPiAtCQlURVNUX0FTU0VSVF9T VUNDRVNTKHJldCwNCj4gID4gLQkJCQkiRmFpbGVkIHRvIGNvbmZpZ3VyZSBBQ0MxMDAgUEYgZm9y IGJiZGV2DQo+ICVzIiwNCj4gID4gLQkJCQlpbmZvLT5kZXZfbmFtZSk7DQo+ICA+ICsJCWlmICgh c3RyY21wKGluZm8tPmRydi5kcml2ZXJfbmFtZSwNCj4gQUNDMTAwUEZfRFJJVkVSX05BTUUpKSB7 DQo+ICA+ICsJCQlyZXQgPSBydGVfYWNjMTAwX2NvbmZpZ3VyZShpbmZvLT5kZXZfbmFtZSwgJmNv bmYpOw0KPiAgPiArCQkJVEVTVF9BU1NFUlRfU1VDQ0VTUyhyZXQsDQo+ICA+ICsJCQkJCSJGYWls ZWQgdG8gY29uZmlndXJlIEFDQzEwMCBQRiBmb3INCj4gYmJkZXYgJXMiLA0KPiAgPiArCQkJCQlp bmZvLT5kZXZfbmFtZSk7DQo+ICA+ICsJCX0gZWxzZSB7DQo+ICA+ICsJCQlyZXQgPSBydGVfYWNj MTAxX2NvbmZpZ3VyZShpbmZvLT5kZXZfbmFtZSwgJmNvbmYpOw0KPiAgPiArCQkJVEVTVF9BU1NF UlRfU1VDQ0VTUyhyZXQsDQo+ICA+ICsJCQkJCSJGYWlsZWQgdG8gY29uZmlndXJlIEFDQzEwMSBQ RiBmb3INCj4gYmJkZXYgJXMiLA0KPiAgPiArCQkJCQlpbmZvLT5kZXZfbmFtZSk7DQo+ICA+ICsJ CX0NCj4gID4gICAJfQ0KPiAgPiAgICNlbmRpZg0KPiAgPiAgIAkvKiBMZXQncyByZWZyZXNoIHRo aXMgbm93IHRoaXMgaXMgY29uZmlndXJlZCAqLw0KPiAgPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9i YXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9jZmcuaA0KPiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNj MTAwL3J0ZV9hY2MxMDBfY2ZnLmgNCj4gID4gaW5kZXggZDIzM2U0Mi4uMmUzYzQzZiAxMDA2NDQN Cj4gID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9jZmcuaA0KPiAg PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX2NmZy5oDQo+ICA+IEBA IC0xMDYsNiArMTA2LDIzIEBAIHN0cnVjdCBydGVfYWNjMTAwX2NvbmYgew0KPiAgPiAgIGludA0K PiAgPiAgIHJ0ZV9hY2MxMDBfY29uZmlndXJlKGNvbnN0IGNoYXIgKmRldl9uYW1lLCBzdHJ1Y3Qg cnRlX2FjYzEwMF9jb25mDQo+ICpjb25mKTsNCj4gID4NCj4gID4gKy8qKg0KPiAgPiArICogQ29u ZmlndXJlIGEgQUNDMTAxIGRldmljZQ0KPiAgPiArICoNCj4gID4gKyAqIEBwYXJhbSBkZXZfbmFt ZQ0KPiAgPiArICogICBUaGUgbmFtZSBvZiB0aGUgZGV2aWNlLiBUaGlzIGlzIHRoZSBzaG9ydCBm b3JtIG9mIFBDSSBCREYsIGUuZy4NCj4gMDA6MDEuMC4NCj4gID4gKyAqICAgSXQgY2FuIGFsc28g YmUgcmV0cmlldmVkIGZvciBhIGJiZGV2IGRldmljZSBmcm9tIHRoZSBkZXZfbmFtZQ0KPiBmaWVs ZCBpbiB0aGUNCj4gID4gKyAqICAgcnRlX2JiZGV2X2luZm8gc3RydWN0dXJlIHJldHVybmVkIGJ5 IHJ0ZV9iYmRldl9pbmZvX2dldCgpLg0KPiAgPiArICogQHBhcmFtIGNvbmYNCj4gID4gKyAqICAg Q29uZmlndXJhdGlvbiB0byBhcHBseSB0byBBQ0MxMDEgSFcuDQo+ICA+ICsgKg0KPiAgPiArICog QHJldHVybg0KPiAgPiArICogICBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIHZhbHVlIG9uIGZh aWx1cmUuDQo+ICA+ICsgKi8NCj4gID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiAgPiAraW50DQo+ ICA+ICtydGVfYWNjMTAxX2NvbmZpZ3VyZShjb25zdCBjaGFyICpkZXZfbmFtZSwgc3RydWN0IHJ0 ZV9hY2MxMDBfY29uZg0KPiAqY29uZik7ICA+ICsNCj4gID4gICAjaWZkZWYgX19jcGx1c3BsdXMN Cj4gID4gICB9DQo+ICA+ICAgI2VuZGlmDQo+ICA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2Vi YW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAv cnRlX2FjYzEwMF9wbWQuYw0KPiAgPiBpbmRleCBkYWYyY2UwLi5iMDNjZWRjIDEwMDY0NA0KPiAg PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ICA+ICsr KyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gID4gQEAgLTQ5 MjEsMyArNDkyMSwzMDUgQEAgc3RhdGljIGludCBhY2MxMDBfcGNpX3JlbW92ZShzdHJ1Y3QNCj4g cnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYpDQo+ICA+ICAgCXJ0ZV9iYmRldl9sb2dfZGVidWcoIlBG IFRpcCBjb25maWd1cmF0aW9uIGNvbXBsZXRlIGZvciAlcyIsDQo+IGRldl9uYW1lKTsNCj4gID4g ICAJcmV0dXJuIDA7DQo+ICA+ICAgfQ0KPiAgPiArDQo+ICA+ICsNCj4gID4gKy8qIEluaXRpYWwg Y29uZmlndXJhdGlvbiBvZiBhIEFDQzEwMSBkZXZpY2UgcHJpb3IgdG8gcnVubmluZw0KPiBjb25m aWd1cmUoKSAqLw0KPiAgPiAraW50DQo+ICA+ICtydGVfYWNjMTAxX2NvbmZpZ3VyZShjb25zdCBj aGFyICpkZXZfbmFtZSwgc3RydWN0IHJ0ZV9hY2MxMDBfY29uZg0KPiAqY29uZikgID4gK3sgUGxl YXNlIGRvbid0IGludHJvZHVjZSBuZXcgQVBJIGZvciBldmVyeSBuZXcgdmFyaWFudC4NCj4gWW91 IHNob3VsZCBoYXZlIGEgc2luZ2xlIEFQSSwgYW5kIHdpdGhpbiBpdCBjYWxsIHNwZWNpZmljIGNv bmZpZ3VyYXRpb24gZnVuY3Rpb24NCj4gYmFzZWQgb24gdGhlIGRldmljZSBJRC4NCj4gDQo+IEl0 IHdpbGwgYmUgZWFzaWVyIGZvciB0aGUgYXBwbGljYXRpb24gd2hpY2ggY2FsbHMgaXQgbm90IHRv IGhhdmUgdG8ga25vdyB3aGljaA0KPiB2YXJpYW50IGl0IGlzIGZvci4NCg0KTm90ZSB0aGF0IHRo aXMgaXMgbm90IGJlaW5nIHVzZWQgYnkgdXNlciBhcHBsaWNhdGlvbiwgdGhpcyBpcyBhIGNvbXBh bmlvbiBmdW5jdGlvbiB1c2VkIGFzIHBhcnQgb2YgYmJkZXYtdGVzdA0Kc28gdGhhdCB0aGUgZGV2 aWNlIGNvbmZpZ3VyYXRpb24gY2FuIGJlIGRvbmUgd2l0aG91dCByZWx5aW5nIG9uIG90aGVyIGlu Z3JlZGllbnRzIG91dHNpZGUgb2YgRFBESyAocGZfYmJfY29uZmlnKS4NCg0KPiANCj4gID4gKwly dGVfYmJkZXZfbG9nKElORk8sICJydGVfYWNjMTAxX2NvbmZpZ3VyZSIpOw0KPiAgPiArCXVpbnQz Ml90IHZhbHVlLCBhZGRyZXNzLCBzdGF0dXM7DQo+ICA+ICsJaW50IHFnX2lkeCwgdGVtcGxhdGVf aWR4LCB2Zl9pZHgsIGFjYywgaTsNCj4gID4gKwlzdHJ1Y3QgcnRlX2JiZGV2ICpiYmRldiA9IHJ0 ZV9iYmRldl9nZXRfbmFtZWRfZGV2KGRldl9uYW1lKTsNCj4gID4gKw0KPiAgPiArCS8qIENvbXBp bGUgdGltZSBjaGVja3MgKi8NCj4gID4gKwlSVEVfQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3Qg YWNjMTAwX2RtYV9yZXFfZGVzYykgIT0gMjU2KTsNCj4gID4gKwlSVEVfQlVJTERfQlVHX09OKHNp emVvZih1bmlvbiBhY2MxMDBfZG1hX2Rlc2MpICE9IDI1Nik7DQo+ICA+ICsJUlRFX0JVSUxEX0JV R19PTihzaXplb2Yoc3RydWN0IGFjYzEwMF9mY3dfdGQpICE9IDI0KTsNCj4gID4gKwlSVEVfQlVJ TERfQlVHX09OKHNpemVvZihzdHJ1Y3QgYWNjMTAwX2Zjd190ZSkgIT0gMzIpOw0KPiAgPiArDQo+ ICA+ICsJaWYgKGJiZGV2ID09IE5VTEwpIHsNCj4gID4gKwkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ ICA+ICsJCSJJbnZhbGlkIGRldl9uYW1lICglcyksIG9yIGRldmljZSBpcyBub3QgeWV0IGluaXRp YWxpc2VkIiwNCj4gID4gKwkJZGV2X25hbWUpOw0KPiAgPiArCQlyZXR1cm4gLUVOT0RFVjsNCj4g ID4gKwl9DQo+ICA+ICsJc3RydWN0IGFjYzEwMF9kZXZpY2UgKmQgPSBiYmRldi0+ZGF0YS0+ZGV2 X3ByaXZhdGU7DQo+ICA+ICsNCj4gID4gKwkvKiBTdG9yZSBjb25maWd1cmF0aW9uICovDQo+ICA+ ICsJcnRlX21lbWNweSgmZC0+YWNjMTAwX2NvbmYsIGNvbmYsIHNpemVvZihkLT5hY2MxMDBfY29u ZikpOw0KPiAgPiArDQo+ICA+ICsJLyogUENJZSBCcmlkZ2UgY29uZmlndXJhdGlvbiAqLw0KPiAg PiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgSHdQZlBjaWVHcGV4QnJpZGdlQ29udHJvbCwNCj4gQUND MTAxX0NGR19QQ0lfQlJJREdFKTsNCj4gID4gKwlmb3IgKGkgPSAxOyBpIDwgQUNDMTAxX0dQRVhf QVhJTUFQX05VTTsgaSsrKQ0KPiAgPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsDQo+IEh3UGZQY2ll R3BleEF4aUFkZHJNYXBwaW5nV2luZG93UGV4QmFzZUhpZ2ggKw0KPiBpICogMTYsIDApOw0KPiAg PiArDQo+ICA+ICsJLyogUHJldmVudCBibG9ja2luZyBBWEkgcmVhZCBvbiBCUkVTUCBmb3IgQVhJ IFdyaXRlICovDQo+ICA+ICsJYWRkcmVzcyA9IEh3UGZQY2llR3BleEF4aVBpb0NvbnRyb2w7DQo+ ICA+ICsJdmFsdWUgPSBBQ0MxMDFfQ0ZHX1BDSV9BWEk7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0 ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsNCj4gID4gKwkvKiBFeHBsaWNpdGx5IHJlbGVh c2luZyBBWEkgYXMgdGhpcyBtYXkgYmUgc3RvcHBlZCBhZnRlciBQRiBGTFIvQk1FICovDQo+ICA+ ICsJdXNsZWVwKDIwMDApOw0KPiBUaGlzIHNsZWVwIGxvb2tzIHdlaXJkLCBlc3BlY2lhbGx5IHdo ZW4gQUNDMTAwIGRvZXMgbm90IHJlcXVpcmUgaXQuDQo+IElzbid0IHRoZXJlIGEgd2F5IHRvIGtu b3cgaXQgaXMgcmVhZHkgdG8gcmVsZWFzZSB0aGUgQVhJPyBPciBhdCBsZWFzdCBkb2N1bWVudA0K PiB3aHkgaXQgaXMgbmVjZXNzYXJ5Lg0KDQpUaGlzIGlzIGludGVudGlvbmFsIGFuZCBIVyBzcGVj aWZpYyBmb3IgQUNDMTAxLiBUaGVyZSB3b3VsZCBiZSBubyBwdWJsaWMgZG9jdW1lbnRhdGlvbg0K Zm9yIHRoaXMsIGJ1dCBJIGNhbiBhZGQgYSBjb21tZW50LiANCg0KPiANCj4gID4gKwlhY2MxMDBf cmVnX3dyaXRlKGQsIEhXUGZEbWFBeGlDb250cm9sLCAxKTsNCj4gID4gKw0KPiAgPiArCS8qIFNl dCB0aGUgZGVmYXVsdCA1R0RMIERNQSBjb25maWd1cmF0aW9uICovDQo+ICA+ICsJYWNjMTAwX3Jl Z193cml0ZShkLCBIV1BmRG1hSW5ib3VuZERyYWluRGF0YVNpemUsDQo+IEFDQzEwMV9ETUFfSU5C T1VORCk7DQo+ICA+ICsNCj4gID4gKwkvKiBFbmFibGUgZ3JhbnVsYXIgZHluYW1pYyBjbG9jayBn YXRpbmcgKi8NCj4gID4gKwlhZGRyZXNzID0gSFdQZkhpQ2xrR2F0ZUh5c3RSZWc7DQo+ICA+ICsJ dmFsdWUgPSBBQ0MxMDFfQ0xPQ0tfR0FUSU5HX0VOOw0KPiAgPiArCWFjYzEwMF9yZWdfd3JpdGUo ZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArDQo+ICA+ICsJLyogU2V0IGRlZmF1bHQgZGVzY3Jp cHRvciBzaWduYXR1cmUgKi8NCj4gID4gKwlhZGRyZXNzID0gSFdQZkRtYURlc2NyaXB0b3JTaWdu YXR1dHVyZTsNCj4gID4gKwl2YWx1ZSA9IDA7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBh ZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsNCj4gID4gKwkvKiBFbmFibGUgdGhlIEVycm9yIERldGVj dGlvbiBpbiBETUEgKi8NCj4gID4gKwl2YWx1ZSA9IEFDQzEwMV9DRkdfRE1BX0VSUk9SOw0KPiAg PiArCWFkZHJlc3MgPSBIV1BmRG1hRXJyb3JEZXRlY3Rpb25FbjsNCj4gID4gKwlhY2MxMDBfcmVn X3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4gKw0KPiAgPiArCS8qIEFYSSBDYWNoZSBj b25maWd1cmF0aW9uICovDQo+ICA+ICsJdmFsdWUgPSBBQ0MxMDFfQ0ZHX0FYSV9DQUNIRTsNCj4g ID4gKwlhZGRyZXNzID0gSFdQZkRtYUF4Y2FjaGVSZWc7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0 ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsNCj4gID4gKwkvKiBEZWZhdWx0IERNQSBDb25m aWd1cmF0aW9uIChRbWdyIEVuYWJsZWQpICovDQo+ICA+ICsJYWRkcmVzcyA9IEhXUGZEbWFDb25m aWcwUmVnOw0KPiAgPiArCXZhbHVlID0gMDsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFk ZHJlc3MsIHZhbHVlKTsNCj4gID4gKwlhZGRyZXNzID0gSFdQZkRtYVFtYW5lbjsNCj4gID4gKwl2 YWx1ZSA9IDA7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ ICA+ICsNCj4gID4gKwkvKiBEZWZhdWx0IFJMSU0vQUxFTiBjb25maWd1cmF0aW9uICovDQo+ICA+ ICsJYWRkcmVzcyA9IEhXUGZEbWFDb25maWcxUmVnOw0KPiAgPiArCWludCBhbGVuX3IgPSAweEY7 DQo+ICA+ICsJaW50IGFsZW5fdyA9IDB4NzsNCj4gID4gKwl2YWx1ZSA9ICgxIDw8IDMxKSArIChh bGVuX3cgPDwgMjApICArICgxIDw8IDYpICsgYWxlbl9yOw0KPiAgPiArCWFjYzEwMF9yZWdfd3Jp dGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArDQo+ICA+ICsJLyogQ29uZmlndXJlIERNQSBR bWFuYWdlciBhZGRyZXNzZXMgKi8NCj4gID4gKwlhZGRyZXNzID0gSFdQZkRtYVFtZ3JBZGRyUmVn Ow0KPiAgPiArCXZhbHVlID0gSFdQZlFtZ3JFZ3Jlc3NRdWV1ZXNUZW1wbGF0ZTsNCj4gID4gKwlh Y2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4gKw0KPiAgPiArCS8qID09 PT09IFFtZ3IgQ29uZmlndXJhdGlvbiA9PT09PSAqLw0KPiAgPiArCS8qIENvbmZpZ3VyYXRpb24g b2YgdGhlIEFRdWV1ZSBEZXB0aCBRTUdSX0dSUF8wX0RFUFRIX0xPRzINCj4gZm9yIFVMICovDQo+ ICA+ICsJaW50IHRvdGFsUWdzID0gY29uZi0+cV91bF80Zy5udW1fcWdyb3VwcyArDQo+ICA+ICsJ CQljb25mLT5xX3VsXzVnLm51bV9xZ3JvdXBzICsNCj4gID4gKwkJCWNvbmYtPnFfZGxfNGcubnVt X3Fncm91cHMgKw0KPiAgPiArCQkJY29uZi0+cV9kbF81Zy5udW1fcWdyb3VwczsNCj4gID4gKwlm b3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IHRvdGFsUWdzOyBxZ19pZHgrKykgew0KPiAgPiArCQlh ZGRyZXNzID0gSFdQZlFtZ3JEZXB0aExvZzJHcnAgKw0KPiAgPiArCQlBQ0MxMDFfQllURVNfSU5f V09SRCAqIHFnX2lkeDsNCj4gID4gKwkJdmFsdWUgPSBhcURlcHRoKHFnX2lkeCwgY29uZik7DQo+ ICA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCQlhZGRy ZXNzID0gSFdQZlFtZ3JUaG9sZEdycCArDQo+ICA+ICsJCUFDQzEwMV9CWVRFU19JTl9XT1JEICog cWdfaWR4Ow0KPiAgPiArCQl2YWx1ZSA9ICgxIDw8IDE2KSArICgxIDw8IChhcURlcHRoKHFnX2lk eCwgY29uZikgLSAxKSk7DQo+ICA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFs dWUpOw0KPiAgPiArCX0NCj4gID4gKw0KPiAgPiArCS8qIFRlbXBsYXRlIFByaW9yaXR5IGluIGlu Y3JlbWVudGFsIG9yZGVyICovDQo+ICA+ICsJZm9yICh0ZW1wbGF0ZV9pZHggPSAwOyB0ZW1wbGF0 ZV9pZHggPCBBQ0MxMDFfTlVNX1RNUEw7DQo+ICA+ICsJCQl0ZW1wbGF0ZV9pZHgrKykgew0KPiAg PiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnMEluZHggKw0KPiBBQ0MxMDFfQllU RVNfSU5fV09SRCAqDQo+IHRlbXBsYXRlX2lkeDsNCj4gID4gKwkJdmFsdWUgPSBBQ0MxMDFfVE1Q TF9QUklfMDsNCj4gID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ ICA+ICsJCWFkZHJlc3MgPSBIV1BmUW1nckdycFRtcGxhdGVSZWcxSW5keCArDQo+IEFDQzEwMV9C WVRFU19JTl9XT1JEICoNCj4gdGVtcGxhdGVfaWR4Ow0KPiAgPiArCQl2YWx1ZSA9IEFDQzEwMV9U TVBMX1BSSV8xOw0KPiAgPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsN Cj4gID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzJpbmR4ICsNCj4gQUNDMTAx X0JZVEVTX0lOX1dPUkQgKg0KPiB0ZW1wbGF0ZV9pZHg7DQo+ICA+ICsJCXZhbHVlID0gQUNDMTAx X1RNUExfUFJJXzI7DQo+ICA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUp Ow0KPiAgPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnM0luZHggKw0KPiBBQ0Mx MDFfQllURVNfSU5fV09SRCAqDQo+IHRlbXBsYXRlX2lkeDsNCj4gID4gKwkJdmFsdWUgPSBBQ0Mx MDFfVE1QTF9QUklfMzsNCj4gID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1 ZSk7DQo+IEZvciBib3RoIEFDQzEwMCBhbmQgQUNDMTAxLCBBQ0MxMHhfTlVNX1RNUEwgaXMgMzIu DQo+IElzbid0IHRoZXJlIGEgYnVnIGhlcmUgb3IgaW4gQUNDMTAwPw0KPiANCj4gQUNDMTAwIHBl cmZvcm1zIGEgbW9kdWxvIDggb24gdGVtcGxhdGVfaWR4LCBidXQgQUNDMTAxIGRvZXMgbm90LiBC dXQgdGhlDQo+IHJlZ2lzdGVycyBtYXBwaW5nIGlzIHRoZSBzYW1lLCBzbyBJIGd1ZXNzIHRoaXMg aXMgdGhlIHNhbWUgSFcgYmxvY2suDQo+IA0KPiBJIHRoaW5rIEFDQzEwMCBpcyB0aGUgYnVnZ3kg b25lLCBiZWNhdXNlIGl0IHNlZW1zIHdlaXJkIHRvIHdyaXRlIHRoZSBzYW1lDQo+IHJlZ2lzdGVy IHdpdGggdGhlIHNhbWUgdmFsdWUgbXVsdGlwbGUgdGltZXMuDQo+IA0KPiBJbiBjYXNlIGl0IGlz IEFDQzEwMCB0aGF0IGlzIGJ1Z2d5LCBpdCBuZWVkcyB0byBiZSBmaXhlZCBpbiBhIGRlZGljYXRl ZCBwYXRjaCwNCj4gd2l0aCBwcm9wZXIgZml4ZXMgdGFnIHNvIHRoYXQgaXQgaXMgYmFja3BvcnRl ZC4NCg0KWWVzIHRoZXJlIGEgbnVtYmVyIG9mIHBhdGNoZXMgcGVuZGluZyBmb3IgQUNDMTAwLCB0 aGlzIGNhbiBiZSBkb25lIHRocm91Z2ggb3RoZXIgc2VyaWUuDQoNCj4gDQo+ICA+ICsJfQ0KPiAg PiArDQo+ICA+ICsJYWRkcmVzcyA9IEhXUGZRbWdyR3JwUHJpb3JpdHk7DQo+ICA+ICsJdmFsdWUg PSBBQ0MxMDFfQ0ZHX1FNR1JfSElfUDsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJl c3MsIHZhbHVlKTsNCj4gID4gKw0KPiAgPiArCS8qIFRlbXBsYXRlIENvbmZpZ3VyYXRpb24gKi8N Cj4gID4gKwlmb3IgKHRlbXBsYXRlX2lkeCA9IDA7IHRlbXBsYXRlX2lkeCA8IEFDQzEwMV9OVU1f VE1QTDsNCj4gID4gKwkJCXRlbXBsYXRlX2lkeCsrKSB7DQo+ICA+ICsJCXZhbHVlID0gMDsNCj4g ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzRJbmR4DQo+ICA+ICsJCQkJKyBB Q0MxMDFfQllURVNfSU5fV09SRCAqIHRlbXBsYXRlX2lkeDsNCj4gID4gKwkJYWNjMTAwX3JlZ193 cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsJfQ0KPiAgPiArCS8qIDRHVUwgKi8NCj4g ID4gKwlpbnQgbnVtUWdzID0gY29uZi0+cV91bF80Zy5udW1fcWdyb3VwczsNCj4gID4gKwlpbnQg bnVtUXFzQWNjID0gMDsNCj4gID4gKwl2YWx1ZSA9IDA7DQo+ICA+ICsJZm9yIChxZ19pZHggPSBu dW1RcXNBY2M7IHFnX2lkeCA8IChudW1RZ3MgKyBudW1RcXNBY2MpOw0KPiBxZ19pZHgrKykNCj4g ID4gKwkJdmFsdWUgfD0gKDEgPDwgcWdfaWR4KTsNCj4gID4gKwlmb3IgKHRlbXBsYXRlX2lkeCA9 IEFDQzEwMV9TSUdfVUxfNEc7DQo+ICA+ICsJCQl0ZW1wbGF0ZV9pZHggPD0gQUNDMTAxX1NJR19V TF80R19MQVNUOw0KPiAgPiArCQkJdGVtcGxhdGVfaWR4KyspIHsNCj4gID4gKwkJYWRkcmVzcyA9 IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzRJbmR4DQo+ICA+ICsJCQkJKyBBQ0MxMDFfQllURVNfSU5f V09SRCAqIHRlbXBsYXRlX2lkeDsNCj4gID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNz LCB2YWx1ZSk7DQo+ICA+ICsJfQ0KPiAgPiArCS8qIDVHVUwgKi8NCj4gID4gKwludW1RcXNBY2Mg Kz0gbnVtUWdzOw0KPiAgPiArCW51bVFncwk9IGNvbmYtPnFfdWxfNWcubnVtX3Fncm91cHM7DQo+ ICA+ICsJdmFsdWUgPSAwOw0KPiAgPiArCWludCBudW1FbmdpbmVzID0gMDsNCj4gID4gKwlmb3Ig KHFnX2lkeCA9IG51bVFxc0FjYzsgcWdfaWR4IDwgKG51bVFncyArIG51bVFxc0FjYyk7DQo+IHFn X2lkeCsrKQ0KPiAgPiArCQl2YWx1ZSB8PSAoMSA8PCBxZ19pZHgpOw0KPiAgPiArCWZvciAodGVt cGxhdGVfaWR4ID0gQUNDMTAxX1NJR19VTF81RzsNCj4gID4gKwkJCXRlbXBsYXRlX2lkeCA8PSBB Q0MxMDFfU0lHX1VMXzVHX0xBU1Q7DQo+ICA+ICsJCQl0ZW1wbGF0ZV9pZHgrKykgew0KPiAgPiAr CQkvKiBDaGVjayBlbmdpbmUgcG93ZXItb24gc3RhdHVzICovDQo+ICA+ICsJCWFkZHJlc3MgPSBI d1BmRmVjVWw1Z0liRGVidWdSZWcgKw0KPiAgPiArCQkJCUFDQzEwMV9FTkdJTkVfT0ZGU0VUICog dGVtcGxhdGVfaWR4Ow0KPiAgPiArCQlzdGF0dXMgPSAoYWNjMTAwX3JlZ19yZWFkKGQsIGFkZHJl c3MpID4+IDQpICYgMHhGOw0KPiAgPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVn NEluZHgNCj4gID4gKwkJCQkrIEFDQzEwMV9CWVRFU19JTl9XT1JEICogdGVtcGxhdGVfaWR4Ow0K PiAgPiArCQlpZiAoc3RhdHVzID09IDEpIHsNCj4gID4gKwkJCWFjYzEwMF9yZWdfd3JpdGUoZCwg YWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCQkJbnVtRW5naW5lcysrOw0KPiAgPiArCQl9IGVsc2UN Cj4gID4gKwkJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgMCk7DQo+ICA+ICsjaWYgUlRF X0FDQzEwMV9TSU5HTEVfRkVDID09IDENCj4gID4gKwkJdmFsdWUgPSAwOw0KPiAgPiArI2VuZGlm DQo+ICA+ICsJfQ0KPiAgPiArCXByaW50ZigiTnVtYmVyIG9mIDVHVUwgZW5naW5lcyAlZFxuIiwg bnVtRW5naW5lcyk7DQo+ICA+ICsJLyogNEdETCAqLw0KPiAgPiArCW51bVFxc0FjYyArPSBudW1R Z3M7DQo+ICA+ICsJbnVtUWdzCT0gY29uZi0+cV9kbF80Zy5udW1fcWdyb3VwczsNCj4gID4gKwl2 YWx1ZSA9IDA7DQo+ICA+ICsJZm9yIChxZ19pZHggPSBudW1RcXNBY2M7IHFnX2lkeCA8IChudW1R Z3MgKyBudW1RcXNBY2MpOw0KPiBxZ19pZHgrKykNCj4gID4gKwkJdmFsdWUgfD0gKDEgPDwgcWdf aWR4KTsNCj4gID4gKwlmb3IgKHRlbXBsYXRlX2lkeCA9IEFDQzEwMV9TSUdfRExfNEc7DQo+ICA+ ICsJCQl0ZW1wbGF0ZV9pZHggPD0gQUNDMTAxX1NJR19ETF80R19MQVNUOw0KPiAgPiArCQkJdGVt cGxhdGVfaWR4KyspIHsNCj4gID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzRJ bmR4DQo+ICA+ICsJCQkJKyBBQ0MxMDFfQllURVNfSU5fV09SRCAqIHRlbXBsYXRlX2lkeDsNCj4g ID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsjaWYgUlRF X0FDQzEwMV9TSU5HTEVfRkVDID09IDENCj4gID4gKwkJCXZhbHVlID0gMDsNCj4gID4gKyNlbmRp Zg0KPiAgPiArCX0NCj4gID4gKwkvKiA1R0RMICovDQo+ICA+ICsJbnVtUXFzQWNjICs9IG51bVFn czsNCj4gID4gKwludW1RZ3MJPSBjb25mLT5xX2RsXzVnLm51bV9xZ3JvdXBzOw0KPiAgPiArCXZh bHVlID0gMDsNCj4gID4gKwlmb3IgKHFnX2lkeCA9IG51bVFxc0FjYzsgcWdfaWR4IDwgKG51bVFn cyArIG51bVFxc0FjYyk7DQo+IHFnX2lkeCsrKQ0KPiAgPiArCQl2YWx1ZSB8PSAoMSA8PCBxZ19p ZHgpOw0KPiAgPiArCWZvciAodGVtcGxhdGVfaWR4ID0gQUNDMTAxX1NJR19ETF81RzsNCj4gID4g KwkJCXRlbXBsYXRlX2lkeCA8PSBBQ0MxMDFfU0lHX0RMXzVHX0xBU1Q7DQo+ICA+ICsJCQl0ZW1w bGF0ZV9pZHgrKykgew0KPiAgPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnNElu ZHgNCj4gID4gKwkJCQkrIEFDQzEwMV9CWVRFU19JTl9XT1JEICogdGVtcGxhdGVfaWR4Ow0KPiAg PiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4gKyNpZiBSVEVf QUNDMTAxX1NJTkdMRV9GRUMgPT0gMQ0KPiAgPiArCQl2YWx1ZSA9IDA7DQo+ICA+ICsjZW5kaWYN Cj4gID4gKwl9DQo+ICA+ICsNCj4gID4gKwkvKiBRdWV1ZSBHcm91cCBGdW5jdGlvbiBtYXBwaW5n ICovDQo+ICA+ICsJaW50IHFtYW5fZnVuY19pZFs4XSA9IHswLCAyLCAxLCAzLCA0LCAwLCAwLCAw fTsNCj4gID4gKwlhZGRyZXNzID0gSFdQZlFtZ3JHcnBGdW5jdGlvbjA7DQo+ICA+ICsJdmFsdWUg PSAwOw0KPiAgPiArCWZvciAocWdfaWR4ID0gMDsgcWdfaWR4IDwgODsgcWdfaWR4KyspIHsNCj4g ID4gKwkJYWNjID0gYWNjRnJvbVFnaWQocWdfaWR4LCBjb25mKTsNCj4gID4gKwkJdmFsdWUgfD0g cW1hbl9mdW5jX2lkW2FjY108PChxZ19pZHggKiA0KTsNCj4gID4gKwl9DQo+ICA+ICsJYWNjMTAw X3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ICA+ICsNCj4gID4gKwkvKiBDb25maWd1 cmF0aW9uIG9mIHRoZSBBcmJpdHJhdGlvbiBRR3JvdXAgZGVwdGggdG8gMSAqLw0KPiAgPiArCWZv ciAocWdfaWR4ID0gMDsgcWdfaWR4IDwgdG90YWxRZ3M7IHFnX2lkeCsrKSB7DQo+ICA+ICsJCWFk ZHJlc3MgPSBIV1BmUW1nckFyYlFEZXB0aEdycCArDQo+ICA+ICsJCUFDQzEwMV9CWVRFU19JTl9X T1JEICogcWdfaWR4Ow0KPiAgPiArCQl2YWx1ZSA9IDA7DQo+ICA+ICsJCWFjYzEwMF9yZWdfd3Jp dGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCX0NCj4gID4gKw0KPiAgPiArCS8qIEVuYWJs aW5nIEFRdWV1ZXMgdGhyb3VnaCB0aGUgUXVldWUgaGllcmFyY2h5Ki8NCj4gID4gKwlmb3IgKHZm X2lkeCA9IDA7IHZmX2lkeCA8IEFDQzEwMV9OVU1fVkZTOyB2Zl9pZHgrKykgew0KPiAgPiArCQlm b3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IEFDQzEwMV9OVU1fUUdSUFM7IHFnX2lkeCsrKSB7DQo+ ICA+ICsJCQl2YWx1ZSA9IDA7DQo+ICA+ICsJCQlpZiAodmZfaWR4IDwgY29uZi0+bnVtX3ZmX2J1 bmRsZXMgJiYNCj4gID4gKwkJCQkJcWdfaWR4IDwgdG90YWxRZ3MpDQo+ICA+ICsJCQkJdmFsdWUg PSAoMSA8PCBhcU51bShxZ19pZHgsIGNvbmYpKSAtIDE7DQo+ICA+ICsJCQlhZGRyZXNzID0gSFdQ ZlFtZ3JBcUVuYWJsZVZmDQo+ICA+ICsJCQkJCSsgdmZfaWR4ICogQUNDMTAxX0JZVEVTX0lOX1dP UkQ7DQo+ICA+ICsJCQl2YWx1ZSArPSAocWdfaWR4IDw8IDE2KTsNCj4gID4gKwkJCWFjYzEwMF9y ZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCQl9DQo+ICA+ICsJfQ0KPiAgPiAr DQo+ICA+ICsJLyogVGhpcyBwb2ludGVyIHRvIEFSQU0gKDEyOGtCKSBpcyBzaGlmdGVkIGJ5IDIg KDRCIHBlciByZWdpc3RlcikgKi8NCj4gID4gKwl1aW50MzJfdCBhcmFtX2FkZHJlc3MgPSAwOw0K PiAgPiArCWZvciAocWdfaWR4ID0gMDsgcWdfaWR4IDwgdG90YWxRZ3M7IHFnX2lkeCsrKSB7DQo+ ICA+ICsJCWZvciAodmZfaWR4ID0gMDsgdmZfaWR4IDwgY29uZi0+bnVtX3ZmX2J1bmRsZXM7IHZm X2lkeCsrKSB7DQo+ICA+ICsJCQlhZGRyZXNzID0gSFdQZlFtZ3JWZkJhc2VBZGRyICsgdmZfaWR4 DQo+ICA+ICsJCQkJCSogQUNDMTAxX0JZVEVTX0lOX1dPUkQgKyBxZ19pZHgNCj4gID4gKwkJCQkJ KiBBQ0MxMDFfQllURVNfSU5fV09SRCAqIDY0Ow0KPiAgPiArCQkJdmFsdWUgPSBhcmFtX2FkZHJl c3M7DQo+ICA+ICsJCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4g KwkJCS8qIE9mZnNldCBBUkFNIEFkZHJlc3MgZm9yIG5leHQgbWVtb3J5IGJhbmsNCj4gID4gKwkJ CSAqIC0gaW5jcmVtZW50IG9mIDRCDQo+ICA+ICsJCQkgKi8NCj4gID4gKwkJCWFyYW1fYWRkcmVz cyArPSBhcU51bShxZ19pZHgsIGNvbmYpICoNCj4gID4gKwkJCQkJKDEgPDwgYXFEZXB0aChxZ19p ZHgsIGNvbmYpKTsNCj4gID4gKwkJfQ0KPiAgPiArCX0NCj4gID4gKw0KPiAgPiArCWlmIChhcmFt X2FkZHJlc3MgPiBBQ0MxMDFfV09SRFNfSU5fQVJBTV9TSVpFKSB7DQo+ICA+ICsJCXJ0ZV9iYmRl dl9sb2coRVJSLCAiQVJBTSBDb25maWd1cmF0aW9uIG5vdCBmaXR0aW5nICVkDQo+ICVkXG4iLA0K PiAgPiArCQkJCWFyYW1fYWRkcmVzcywNCj4gQUNDMTAxX1dPUkRTX0lOX0FSQU1fU0laRSk7DQo+ ICA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiAgPiArCX0NCj4gID4gKw0KPiAgPiArCS8qID09PT0g SEkgQ29uZmlndXJhdGlvbiA9PT09ICovDQo+ICA+ICsNCj4gID4gKwkvKiBObyBJbmZvIFJpbmcv TVNJIGJ5IGRlZmF1bHQgKi8NCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIEhXUGZIaUluZm9S aW5nSW50V3JFblJlZ1BmLCAwKTsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIEhXUGZIaUlu Zm9SaW5nVmYycGZMb1dyRW5SZWcsIDApOw0KPiAgPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgSFdQ ZkhpQ2ZnTXNpSW50V3JFblJlZ1BmLCAweEZGRkZGRkZGKTsNCj4gID4gKwlhY2MxMDBfcmVnX3dy aXRlKGQsIEhXUGZIaUNmZ01zaVZmMnBmTG9XckVuUmVnLCAweEZGRkZGRkZGKTsNCj4gID4gKwkv KiBQcmV2ZW50IEJsb2NrIG9uIFRyYW5zbWl0IEVycm9yICovDQo+ICA+ICsJYWRkcmVzcyA9IEhX UGZIaUJsb2NrVHJhbnNtaXRPbkVycm9yRW47DQo+ICA+ICsJdmFsdWUgPSAwOw0KPiAgPiArCWFj YzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiAgPiArCS8qIFByZXZlbnRzIHRv IGRyb3AgTVNJICovDQo+ICA+ICsJYWRkcmVzcyA9IEhXUGZIaU1zaURyb3BFbmFibGVSZWc7DQo+ ICA+ICsJdmFsdWUgPSAwOw0KPiAgPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFs dWUpOw0KPiAgPiArCS8qIFNldCB0aGUgUEYgTW9kZSByZWdpc3RlciAqLw0KPiAgPiArCWFkZHJl c3MgPSBIV1BmSGlQZk1vZGU7DQo+ICA+ICsJdmFsdWUgPSAoY29uZi0+cGZfbW9kZV9lbikgPyBB Q0MxMDFfUEZfVkFMIDogMDsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZh bHVlKTsNCj4gID4gKwkvKiBFeHBsaWNpdGx5IHJlbGVhc2luZyBBWEkgYWZ0ZXIgUEYgTW9kZSBh bmQgMiBtcyAqLw0KPiAgPiArCXVzbGVlcCgyMDAwKTsNCj4gID4gKwlhY2MxMDBfcmVnX3dyaXRl KGQsIEhXUGZEbWFBeGlDb250cm9sLCAxKTsNCj4gID4gKw0KPiAgPiArCS8qIFFvUyBvdmVyZmxv dyBpbml0ICovDQo+ICA+ICsJdmFsdWUgPSAxOw0KPiAgPiArCWFkZHJlc3MgPSBIV1BmUW9zbW9u QUV2YWxPdmVyZmxvdzA7DQo+ICA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1 ZSk7DQo+ICA+ICsJYWRkcmVzcyA9IEhXUGZRb3Ntb25CRXZhbE92ZXJmbG93MDsNCj4gID4gKwlh Y2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gID4gKw0KPiAgPiArCS8qIEhB UlEgRERSIENvbmZpZ3VyYXRpb24gKi8NCj4gID4gKwl1bnNpZ25lZCBpbnQgZGRyU2l6ZUluTWIg PSBBQ0MxMDFfSEFSUV9ERFI7DQo+ICA+ICsJZm9yICh2Zl9pZHggPSAwOyB2Zl9pZHggPCBjb25m LT5udW1fdmZfYnVuZGxlczsgdmZfaWR4KyspIHsNCj4gID4gKwkJYWRkcmVzcyA9IEhXUGZEbWFW ZkRkckJhc2VSdyArIHZmX2lkeA0KPiAgPiArCQkJCSogMHgxMDsNCj4gID4gKwkJdmFsdWUgPSAo KHZmX2lkeCAqIChkZHJTaXplSW5NYiAvIDY0KSkgPDwgMTYpICsNCj4gID4gKwkJCQkoZGRyU2l6 ZUluTWIgLSAxKTsNCj4gID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7 DQo+ICA+ICsJfQ0KPiAgPiArCXVzbGVlcChBQ0MxMDFfTE9OR19XQUlUKTsNCj4gID4gKw0KPiAg PiArCXJ0ZV9iYmRldl9sb2dfZGVidWcoIlBGIFRJUCBjb25maWd1cmF0aW9uIGNvbXBsZXRlIGZv ciAlcyIsDQo+IGRldl9uYW1lKTsNCj4gID4gKwlyZXR1cm4gMDsNCj4gID4gK30NCj4gID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3ZlcnNpb24ubWFwDQo+IGIvZHJpdmVy cy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXANCj4gID4gaW5kZXggNDA2MDRjNy4uMzdiODUw ZiAxMDA2NDQNCj4gID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXAN Cj4gID4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXANCj4gID4gQEAg LTYsNSArNiw1IEBAIEVYUEVSSU1FTlRBTCB7DQo+ICA+ICAgCWdsb2JhbDoNCj4gID4NCj4gID4g ICAJcnRlX2FjYzEwMF9jb25maWd1cmU7DQo+ICA+IC0NCj4gID4gKwlydGVfYWNjMTAxX2NvbmZp Z3VyZTsNCj4gID4gICB9Ow0KDQo=