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 174ECA054D; Thu, 26 May 2022 00:09:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0793240146; Thu, 26 May 2022 00:09:16 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 4EEBF40143 for ; Thu, 26 May 2022 00:09:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653516554; x=1685052554; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=zKKsEd6ltJaTobBc5Go+yp+FAj+TeL9fwn4SFPt3JmU=; b=KDbOhQ+Xndj2X8++0cwhJ4kyaIacAdvb7K43qgRzFf6AtAPgjIj4ntON PGzs4TJqzx3JoEdDoh3q83gLBXrXECRQZIz8aVGhJT0k9K+z2uaWEHzAf NH4A2QLk7jxqWM7Bc6HNT2EmCw8SAAEYPZTiBJE+6L/U+1cPqI121roji wE2tf/S45tzlDvRt9nUkqYtJeWnx3nHlnsNlpw8EZnIAXBIi3mFIKUWNI IsKkivm5SUhtkRorYGSRltWy0Wo2zVJvSru0i9BsL4K/fUu9wb3WiXiES foBTlj3tS5xMij4U/CH53/90mRRx6NE+fR0qErud98kZSXP89Wthknw2d g==; X-IronPort-AV: E=McAfee;i="6400,9594,10358"; a="254444869" X-IronPort-AV: E=Sophos;i="5.91,252,1647327600"; d="scan'208";a="254444869" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 May 2022 15:09:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,252,1647327600"; d="scan'208";a="642560500" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga004.fm.intel.com with ESMTP; 25 May 2022 15:09:13 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 25 May 2022 15:09:12 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 25 May 2022 15:09:12 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 25 May 2022 15:09:12 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.173) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 25 May 2022 15:09:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nkdnZwiBKhKrdSnGPbZFtz+L2trtRi87HCYBKmPmZbca0K9AAftCXwuxQHPSlWd3lF+H+qdcyRDEuJGrixMwTrwvnHSsQFvcxopK0QXbEvzRRYQNyPmZaAPrNmr+qDDZbI+gaC8bKOkrQQtfa8vfi1nhiq9Nc7qdSshHXXzIcSXrDi8sUSp9Os0oxLtfeNs15aH9kgZfvoO7r5Rc6hQuLXA2eZonX5bBq3Rw7c+Fy8DyXolQL3SwG1XEHCTc2NfifSMq3Lik+EjFzk6vWqol4M1z4Ac4pIkZ3PVjwDYdFOB1elyLPXpKek+j1FInHTcT58iR4TNlxlxQeKH93CX5+A== 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=zKKsEd6ltJaTobBc5Go+yp+FAj+TeL9fwn4SFPt3JmU=; b=WCo7obI6nR1OahNlBderQbG+K6x+cp2mf2vnoSOIIAyHc2Tw4NhDIFkslWyF5nAK5PdQIzhKRLaQcrRjQzZyyZYMkNd8F4nJGDIuOZUhxljqp+FTuo2sn+IIq+qZTYVE3d11ALFlPUm4so9I1F2AcmLzDQ8z5talplPh3LY9VF5o/rsp4XMcHlfkJ7lrqrXAFdPMvpP2/cqIi/dCYMwozv+XIb3/hM2gHbcGus2xCPXoHas+mZQNjWeYJF+JWZYTOiAMwt3JCNNiGRVLlJ2ENoMF7B1j2MFum0/VMxIWwZc1VPJpz9/8gX7hZUyxm1pei7v4a2rEnER+MRPCpwj5mA== 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 BYAPR11MB2885.namprd11.prod.outlook.com (2603:10b6:a03:87::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13; Wed, 25 May 2022 22:09:10 +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; Wed, 25 May 2022 22:09:09 +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 v5 5/5] baseband/acc100: configuration of ACC101 from PF Thread-Topic: [PATCH v5 5/5] baseband/acc100: configuration of ACC101 from PF Thread-Index: AQHYbwOkS1uf7p8lqUads3AL6cy6kK0vl4+AgACSVNA= Date: Wed, 25 May 2022 22:09:09 +0000 Message-ID: References: <1651083423-33202-1-git-send-email-nicolas.chautru@intel.com> <1653350912-53876-1-git-send-email-nicolas.chautru@intel.com> <1653350912-53876-6-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.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: a2de1d7e-0741-4b17-6b20-08da3e9b317a x-ms-traffictypediagnostic: BYAPR11MB2885: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: IaNoN7jdvfxun8Rt5lX8L4gQ5sOHs7ISQma+Ecdd0zlC39WVWrvYLrVr+sZwK/qt8+JUOpAkfddOVId0EieuVE4TNdiEOohO3FDnvitKebl1+B9iDnpJE1Xyl5KXy8vPisQFgo/MN7+vYl/r+jWT6YONP0OTofx3OWGvAaQOXj5rypgHo/QW0DVnLILFuwWyHpFIo0TA7A/Sw88SAhEsY/qunR70g0KeYHTuJNq1aGY+evogi+2/eKxS5+yQ2i/xwG1DjyTpZ5VJX613T5Wv3GZAItwtk/4dio9IW2S/bGva3GWgCPtYGHQMmWYe5SA3u6XKNq0zdglf7EJdcqDt71FW64BYoyKcTH6UTJiO+mrK+Ia9zH7IV2TPCjD2sC2TpXjxP2xYbPQbFN2aHA/sjCjAzm1qEAmEOmSejmotUtpVqWhlyL/hVrVPnBomn5lvXDjkFALSOsSAdFD1KE5Unv5QDSU4ZUZp2tUqDeuEhYhd/ZS/ozeELRpNiW1T3fZT/CoYPjjQv1vuerVzf6rh0LdFO124Lm1J0g8BKzEZn6YDSWQvf3FNpQiu8WMqRccKqTawsJGq0xeHdhqOAxpI5I6b6ZNiw8peSvEfd7PsuB37B2apd98b2aBjv/6SIsYs9TwptHLsHqxuXyj6Q4EVmy5707mWSkv5gGRMOcqbUkhWXmFyjQcaHEQO4Xwj3qoA2tk0cDHM9KsnQ/TXVuKcsA== 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)(66946007)(316002)(76116006)(6506007)(19627235002)(38070700005)(33656002)(8676002)(55016003)(38100700002)(54906003)(110136005)(4326008)(82960400001)(122000001)(5660300002)(83380400001)(8936002)(9686003)(52536014)(66556008)(64756008)(66476007)(66446008)(30864003)(2906002)(71200400001)(186003)(86362001)(53546011)(26005)(7696005)(508600001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YWVaMmhxdGZvaWRIZ0NFOXpwd1ZPaGVQMk5mMWVlZDhjWmx0ZlJVUWZJUlNS?= =?utf-8?B?RmE1ZDNLOXcyZmNqVmM5YzhqUlU3ZHlYbm81QTdTaDAvUFFocFk3U1BtUVla?= =?utf-8?B?ZXViZkkzSVNDNTZoK2ptaWNaOVpmOVNtNnFob0VtaTlaREJMdkJ1dXFvRUx5?= =?utf-8?B?b2huUnR3dHd1L0MwYktlMVlNU1dtMmVwWnRhWCtMYlV3Y2RsYjMwWDVDTmtp?= =?utf-8?B?cEkxNmtuNkRxY1Z5ekUyY3lwMStOWkdDclhkc2Y0TUZSNTduOXJrS2t2WnFT?= =?utf-8?B?QkV0Rms1N2dZSXBKcE9mN2JKTmdmS2hNU2MxNm80eEkzVmZVVFJPb1V0Y1M3?= =?utf-8?B?YSthaGtzNmxLL0daZzZ0TG9NYnJZWGFvOUU3VEJDcUpHVEtCZFA4MDN2ZWg3?= =?utf-8?B?WnhBbUhGQkNtckRVOE1KSGs3aHhPSTBiUHhwRG1ILzhYdEpSRnhOQVdkZlVv?= =?utf-8?B?NU1rbmQrRVZXemlCRStjWE1pYWVFbkZBRHhZWjRTQVU4Z3htaHZrMkNLRDYx?= =?utf-8?B?aWMrMDlVZEZVbEdzMkdyVnRTK3RRMG9RNVI4eEh4NTRFVlpCeGsyYWxGc0VF?= =?utf-8?B?UG9zN2d2UnVPMTJCdldBSlJaUGRKTGw4ZGtYSlJ4U2tXZ3Y4ZERFVmFkMEJR?= =?utf-8?B?SXZsRGV4bmVybERXSnFqKzFnRld6dzljRnFaWEE3cHRmVDhqLzJraGxqUDJZ?= =?utf-8?B?UnpMT09aWkMzVkFmL1dMSDc3K3VJN3MvRGd4UnYvNEVoQkRFUzFnVTFEQ1BP?= =?utf-8?B?N1Z3VzJxMVkrcThpdlNVb0g4RzZOdjdMZWVFU2FEVkFMWHl4dGxmSHIrWFE2?= =?utf-8?B?SmNVWmRIMXdTNTRFVy9HQS9zRFFXN1liR2w5SWc1WUd2ZmRrRGxuRzJ4STZF?= =?utf-8?B?MWZ6R1NVVk9laDFKQWdGRzVPdTQvZlh1YVNKNmQ2aGNRVjJsRFhyQzdTZzhM?= =?utf-8?B?OTlaVjYrSGNKeGw4ZTFERXd3QWcyZkhNcUEyQ2dya1FSQ1JlYlQwVDBNUkRh?= =?utf-8?B?anpQajdrUU00YjhNdFQ1VG1FWDAxcjRZTEJxYnRPZnY3aFEranR1alZiTDJT?= =?utf-8?B?UmlvMkhidUplaDQ2MFplZFVmNDNLeHdhOVA0U1ovNGJVYnlKZStTSWZLU2lD?= =?utf-8?B?a0xSUGFjQmdSc3l1c0V1YlpqSG16emRFMmVFL3YvZ0p6ekZHeE5yYlFRRFU4?= =?utf-8?B?L1NsSTBJbkl1S3FpMThqdWpieHhZdXZLOGRZaEpaKzhtRk14cU9QUGNBc2VC?= =?utf-8?B?aERJcFQ4VGVrK3Z6VlVrbUVIL1BOU2xCZ1V2Tjdnd2p4VGpaZ0l5dmRpTW1o?= =?utf-8?B?TDA2Y1UzV0cwMDN6M2FGYlhtUE95WWNuN0drNGxCQjJVNEFyVDdhcDhEVCtR?= =?utf-8?B?KzRER2VCL05IK1NGQUpzeWpQMGdvMVl5Mmhzaks1Y3VIMXJUenNCZDhtVEV6?= =?utf-8?B?SFBYenlEeitVb0xvRDBPcDhlRE4rMkkySVRVTlMwVGo5QlI3ZG5vOU1qcCtk?= =?utf-8?B?em91Y0U5YTBaRVZHTG9yNmFTMUsyUVNNYXRtd2tpclROaXBZYVlEY0Fjb3Y2?= =?utf-8?B?eHVHbjdiSTMwTWdnb2dZcE95VVBCakxMSVgxUS9TQlpxZlZabFQ0Ni91R1ZL?= =?utf-8?B?MW9MVjBTZk8zaXVTOGhOd3pYWWY1OExXZDhlRUNtRzJCTXAzS1IyVEtkbHBw?= =?utf-8?B?cWwyRlFwTkExNkxoM0tZaDhuOGwrcXRXSVRxZEVnemRoZEo5Z2ZIOW5Vd1Nk?= =?utf-8?B?ZVh2NnZ3NWV0ZU5EL3FhbGtSNFRXZ1Y1bDUraW5tWnB2WGpYMEwydUxRU0Q4?= =?utf-8?B?R3pLMlJkbXRFYTZaZlM5aWFtYU4xSVZySUw3U2NyY1RvU01oNHpPVi92MjR1?= =?utf-8?B?a1NrajU2VlV3Vm42VG1sVDQrd052cmlFa0M5NjkzUWxkdGdpSUZWNWVRQTBQ?= =?utf-8?B?ZXFhNG9aVnBZVG54eS9TdnltRm90TW10bHU4U1BFZllPYjh6NnptUWh0aFJu?= =?utf-8?B?ODhacmpjS1FhRW80dlJKL1Yxa0VNUGw0SFUyS3ZKZUxTYzFUNlpTdTF6bzda?= =?utf-8?B?eVg0NjdiNDBDekFHYnNWbTJhS3B2eXZHTE14MmcxRjdvTVVveXkybXkzeER6?= =?utf-8?B?QmdyV3lpcS9HT0cwNGtrZ3NYWlJmVi9kS2VmWUI4MlBBd3V2ekhwcEZ3MXlH?= =?utf-8?B?S0RxaG5VYVJodnQxMUNpRkxmN2FSbE42VnFhbDNmS0luNURGWGdQOWNUOTZt?= =?utf-8?B?aEFBT1V0SVFlRnFGR3VYK1RtZlRPMEJpQWFlZ2lqN1d1M0NWVWZ2Z1JhNFZE?= =?utf-8?B?WW9FT3hrWVE5Y25LZ29MeUFJbFVveDBOMk93Y2J0dk5lUHVrNmI5UmVoNGtG?= =?utf-8?Q?pQ6OQXXN9282Zpuw=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: a2de1d7e-0741-4b17-6b20-08da3e9b317a X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2022 22:09:09.7149 (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: GWt/j5LUeUjkm2S90+QXwHHOX6InQpuWX2xtJ/99Mpn+OkeuEtwEwY1r/wlMES5Kf9xX9Ni4ZnEv3PVXgO/Cp/ro/v7Teu3P7lzlfrohbZA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2885 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 bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNk YXksIE1heSAyNSwgMjAyMiA2OjI1IEFNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNvbGFz LmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOw0KPiBnYWtoaWxAbWFydmVsbC5jb207 IHRyaXhAcmVkaGF0LmNvbQ0KPiBDYzogdGhvbWFzQG1vbmphbG9uLm5ldDsgS2luc2VsbGEsIFJh eSA8cmF5LmtpbnNlbGxhQGludGVsLmNvbT47DQo+IFJpY2hhcmRzb24sIEJydWNlIDxicnVjZS5y aWNoYXJkc29uQGludGVsLmNvbT47DQo+IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207IFZhcmdhcywg SGVybmFuIDxoZXJuYW4udmFyZ2FzQGludGVsLmNvbT47DQo+IGRhdmlkLm1hcmNoYW5kQHJlZGhh dC5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NSA1LzVdIGJhc2ViYW5kL2FjYzEwMDogY29u ZmlndXJhdGlvbiBvZiBBQ0MxMDEgZnJvbQ0KPiBQRg0KPiANCj4gSGkgTmljb2xhcywNCj4gDQo+ IE9uIDUvMjQvMjIgMDI6MDgsIE5pY29sYXMgQ2hhdXRydSB3cm90ZToNCj4gPiBBZGRpbmcgY29t cGFuaW9uIGZ1bmN0aW9uIHNwZWNpZmljIHRvIEFDQzEwMCBhbmQgaXQgY2FuIGJlIGNhbGxlZCBm cm9tDQo+ID4gYmJkZXYtdGVzdCB3aGVuIHJ1bm5pbmcgZnJvbSBQRi4NCj4gPg0KPiA+IFNpZ25l ZC1vZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4g PiAtLS0NCj4gPiAgIGFwcC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jICAgICAgICAgfCAg MjIgKystDQo+ID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX2NmZy5oIHwg IDE3ICsrDQo+ID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jIHwg MzAyDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgIGRyaXZlcnMvYmFz ZWJhbmQvYWNjMTAwL3ZlcnNpb24ubWFwICAgICAgfCAgIDIgKy0NCj4gPiAgIDQgZmlsZXMgY2hh bmdlZCwgMzM2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0t Z2l0IGEvYXBwL3Rlc3QtYmJkZXYvdGVzdF9iYmRldl9wZXJmLmMNCj4gPiBiL2FwcC90ZXN0LWJi ZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ID4gaW5kZXggMGZhMTE5YS4uODliMWU3OSAxMDA2NDQN Cj4gPiAtLS0gYS9hcHAvdGVzdC1iYmRldi90ZXN0X2JiZGV2X3BlcmYuYw0KPiA+ICsrKyBiL2Fw cC90ZXN0LWJiZGV2L3Rlc3RfYmJkZXZfcGVyZi5jDQo+ID4gQEAgLTYzLDYgKzYzLDggQEANCj4g PiAgICNkZWZpbmUgQUNDMTAwX1FNR1JfSU5WQUxJRF9JRFggLTENCj4gPiAgICNkZWZpbmUgQUND MTAwX1FNR1JfUlIgMQ0KPiA+ICAgI2RlZmluZSBBQ0MxMDBfUU9TX0dCUiAwDQo+ID4gKyNkZWZp bmUgQUNDMTAxUEZfRFJJVkVSX05BTUUgICAoImludGVsX2FjYzEwMV9wZiIpDQo+ID4gKyNkZWZp bmUgQUNDMTAxVkZfRFJJVkVSX05BTUUgICAoImludGVsX2FjYzEwMV92ZiIpDQo+ID4gICAjZW5k aWYNCj4gPg0KPiA+ICAgI2RlZmluZSBPUFNfQ0FDSEVfU0laRSAyNTZVDQo+ID4gQEAgLTcxMSwx MSArNzEzLDEyIEBAIHR5cGVkZWYgaW50ICh0ZXN0X2Nhc2VfZnVuY3Rpb24pKHN0cnVjdA0KPiBh Y3RpdmVfZGV2aWNlICphZCwNCj4gPiAgICNlbmRpZg0KPiA+ICAgI2lmZGVmIFJURV9CQVNFQkFO RF9BQ0MxMDANCj4gPiAgIAlpZiAoKGdldF9pbml0X2RldmljZSgpID09IHRydWUpICYmDQo+ID4g LQkJKCFzdHJjbXAoaW5mby0+ZHJ2LmRyaXZlcl9uYW1lLCBBQ0MxMDBQRl9EUklWRVJfTkFNRSkp KQ0KPiB7DQo+ID4gKwkJCSgoIXN0cmNtcChpbmZvLT5kcnYuZHJpdmVyX25hbWUsDQo+IEFDQzEw MFBGX0RSSVZFUl9OQU1FKSkgfHwNCj4gPiArCQkJKCFzdHJjbXAoaW5mby0+ZHJ2LmRyaXZlcl9u YW1lLA0KPiBBQ0MxMDFQRl9EUklWRVJfTkFNRSkpKSkgew0KPiA+ICAgCQlzdHJ1Y3QgcnRlX2Fj YzEwMF9jb25mIGNvbmY7DQo+ID4gICAJCXVuc2lnbmVkIGludCBpOw0KPiA+DQo+ID4gLQkJcHJp bnRmKCJDb25maWd1cmUgQUNDMTAwIEZFQyBEcml2ZXIgJXMgd2l0aCBkZWZhdWx0DQo+IHZhbHVl c1xuIiwNCj4gPiArCQlwcmludGYoIkNvbmZpZ3VyZSBBQ0MxMDAvQUNDMTAxIEZFQyBEcml2ZXIg JXMgd2l0aCBkZWZhdWx0DQo+ID4gK3ZhbHVlc1xuIiwNCj4gPiAgIAkJCQlpbmZvLT5kcnYuZHJp dmVyX25hbWUpOw0KPiA+DQo+ID4gICAJCS8qIGNsZWFyIGRlZmF1bHQgY29uZmlndXJhdGlvbiBi ZWZvcmUgaW5pdGlhbGl6YXRpb24gKi8gQEAgLQ0KPiA3NjAsMTANCj4gPiArNzYzLDE3IEBAIHR5 cGVkZWYgaW50ICh0ZXN0X2Nhc2VfZnVuY3Rpb24pKHN0cnVjdCBhY3RpdmVfZGV2aWNlICphZCwN Cj4gPiAgIAkJY29uZi5xX2RsXzVnLmFxX2RlcHRoX2xvZzIgPSBBQ0MxMDBfUU1HUl9BUV9ERVBU SDsNCj4gPg0KPiA+ICAgCQkvKiBzZXR1cCBQRiB3aXRoIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRp b24gKi8NCj4gPiAtCQlyZXQgPSBydGVfYWNjMTAwX2NvbmZpZ3VyZShpbmZvLT5kZXZfbmFtZSwg JmNvbmYpOw0KPiA+IC0JCVRFU1RfQVNTRVJUX1NVQ0NFU1MocmV0LA0KPiA+IC0JCQkJIkZhaWxl ZCB0byBjb25maWd1cmUgQUNDMTAwIFBGIGZvciBiYmRldg0KPiAlcyIsDQo+ID4gLQkJCQlpbmZv LT5kZXZfbmFtZSk7DQo+ID4gKwkJaWYgKCFzdHJjbXAoaW5mby0+ZHJ2LmRyaXZlcl9uYW1lLA0K PiBBQ0MxMDBQRl9EUklWRVJfTkFNRSkpIHsNCj4gPiArCQkJcmV0ID0gcnRlX2FjYzEwMF9jb25m aWd1cmUoaW5mby0+ZGV2X25hbWUsICZjb25mKTsNCj4gPiArCQkJVEVTVF9BU1NFUlRfU1VDQ0VT UyhyZXQsDQo+ID4gKwkJCQkJIkZhaWxlZCB0byBjb25maWd1cmUgQUNDMTAwIFBGIGZvcg0KPiBi YmRldiAlcyIsDQo+ID4gKwkJCQkJaW5mby0+ZGV2X25hbWUpOw0KPiA+ICsJCX0gZWxzZSB7DQo+ ID4gKwkJCXJldCA9IHJ0ZV9hY2MxMDFfY29uZmlndXJlKGluZm8tPmRldl9uYW1lLCAmY29uZik7 DQo+ID4gKwkJCVRFU1RfQVNTRVJUX1NVQ0NFU1MocmV0LA0KPiA+ICsJCQkJCSJGYWlsZWQgdG8g Y29uZmlndXJlIEFDQzEwMSBQRiBmb3INCj4gYmJkZXYgJXMiLA0KPiA+ICsJCQkJCWluZm8tPmRl dl9uYW1lKTsNCj4gPiArCQl9DQo+IA0KPiBIYXZpbmcgYSBzaW5nbGUgZnVuY3Rpb24gZm9yIGNv bmZpZ3VyYXRpb24sIGFuZCBhIHNpbmdsZSBkcml2ZXIgd291bGQgYXZvaWQNCj4gdGhpcy4NCj4g DQo+IFlvdSBjYW4ga2VlcCB0aGUgcnRlX2FjYzEwMF9jb25maWd1cmUgYW5kIHJ0ZV9hY2MxMDBf Y29uZmlndXJlIGZ1bmN0aW9ucw0KPiBhbG1vc3QgdW5tb2RpZmllZCwganVzdCByZW1vdmUgcnRl XyBwcmVmaXggYW5kIHJlbW92ZSB0aGVtIGZyb20gZXhwb3J0ZWQNCj4gQVBJLiBUaGVuIGludHJv ZHVjZSBhIHJ0ZV9hY2MxMHhfY29uZmlndXJlIHdoaWNoIGNhbGwgcHJvcGVyIGNvbmZpZ3VyYXRp b24NCj4gZnVuY3Rpb24gYmFzZWQgb24gZGV2aWNlIElELg0KPiANCg0KT2sgZmFpciBlbm91Z2gu IFRoYW5rcyENCg0KPiA+ICAgCX0NCj4gPiAgICNlbmRpZg0KPiA+ICAgCS8qIExldCdzIHJlZnJl c2ggdGhpcyBub3cgdGhpcyBpcyBjb25maWd1cmVkICovIGRpZmYgLS1naXQNCj4gPiBhL2RyaXZl cnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfY2ZnLmgNCj4gPiBiL2RyaXZlcnMvYmFzZWJh bmQvYWNjMTAwL3J0ZV9hY2MxMDBfY2ZnLmgNCj4gPiBpbmRleCBkMjMzZTQyLi4yZTNjNDNmIDEw MDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfY2ZnLmgN Cj4gPiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX2NmZy5oDQo+ID4g QEAgLTEwNiw2ICsxMDYsMjMgQEAgc3RydWN0IHJ0ZV9hY2MxMDBfY29uZiB7DQo+ID4gICBpbnQN Cj4gPiAgIHJ0ZV9hY2MxMDBfY29uZmlndXJlKGNvbnN0IGNoYXIgKmRldl9uYW1lLCBzdHJ1Y3Qg cnRlX2FjYzEwMF9jb25mDQo+ID4gKmNvbmYpOw0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgKiBDb25m aWd1cmUgYSBBQ0MxMDEgZGV2aWNlDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSBkZXZfbmFtZQ0K PiA+ICsgKiAgIFRoZSBuYW1lIG9mIHRoZSBkZXZpY2UuIFRoaXMgaXMgdGhlIHNob3J0IGZvcm0g b2YgUENJIEJERiwgZS5nLiAwMDowMS4wLg0KPiA+ICsgKiAgIEl0IGNhbiBhbHNvIGJlIHJldHJp ZXZlZCBmb3IgYSBiYmRldiBkZXZpY2UgZnJvbSB0aGUgZGV2X25hbWUgZmllbGQgaW4NCj4gdGhl DQo+ID4gKyAqICAgcnRlX2JiZGV2X2luZm8gc3RydWN0dXJlIHJldHVybmVkIGJ5IHJ0ZV9iYmRl dl9pbmZvX2dldCgpLg0KPiA+ICsgKiBAcGFyYW0gY29uZg0KPiA+ICsgKiAgIENvbmZpZ3VyYXRp b24gdG8gYXBwbHkgdG8gQUNDMTAxIEhXLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4g KyAqICAgWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSB2YWx1ZSBvbiBmYWlsdXJlLg0KPiA+ICsg Ki8NCj4gPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK2ludA0KPiA+ICtydGVfYWNjMTAxX2Nv bmZpZ3VyZShjb25zdCBjaGFyICpkZXZfbmFtZSwgc3RydWN0IHJ0ZV9hY2MxMDBfY29uZg0KPiA+ ICsqY29uZik7DQo+ID4gKw0KPiA+ICAgI2lmZGVmIF9fY3BsdXNwbHVzDQo+ID4gICB9DQo+ID4g ICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2Fj YzEwMF9wbWQuYw0KPiA+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQu Yw0KPiA+IGluZGV4IGUzNzA2ZTAuLjc4YzQ1ZDIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9i YXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYw0KPiA+ICsrKyBiL2RyaXZlcnMvYmFzZWJh bmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPiBAQCAtNTAwNSwzICs1MDA1LDMwNSBAQCBz dGF0aWMgaW50IGFjYzEwMF9wY2lfcmVtb3ZlKHN0cnVjdA0KPiBydGVfcGNpX2RldmljZSAqcGNp X2RldikNCj4gPiAgIAlydGVfYmJkZXZfbG9nX2RlYnVnKCJQRiBUaXAgY29uZmlndXJhdGlvbiBj b21wbGV0ZSBmb3IgJXMiLA0KPiBkZXZfbmFtZSk7DQo+ID4gICAJcmV0dXJuIDA7DQo+ID4gICB9 DQo+ID4gKw0KPiA+ICsNCj4gPiArLyogSW5pdGlhbCBjb25maWd1cmF0aW9uIG9mIGEgQUNDMTAx IGRldmljZSBwcmlvciB0byBydW5uaW5nDQo+ID4gK2NvbmZpZ3VyZSgpICovIGludCBydGVfYWNj MTAxX2NvbmZpZ3VyZShjb25zdCBjaGFyICpkZXZfbmFtZSwgc3RydWN0DQo+ID4gK3J0ZV9hY2Mx MDBfY29uZiAqY29uZikgew0KPiA+ICsJcnRlX2JiZGV2X2xvZyhJTkZPLCAicnRlX2FjYzEwMV9j b25maWd1cmUiKTsNCj4gPiArCXVpbnQzMl90IHZhbHVlLCBhZGRyZXNzLCBzdGF0dXM7DQo+ID4g KwlpbnQgcWdfaWR4LCB0ZW1wbGF0ZV9pZHgsIHZmX2lkeCwgYWNjLCBpOw0KPiA+ICsJc3RydWN0 IHJ0ZV9iYmRldiAqYmJkZXYgPSBydGVfYmJkZXZfZ2V0X25hbWVkX2RldihkZXZfbmFtZSk7DQo+ ID4gKw0KPiA+ICsJLyogQ29tcGlsZSB0aW1lIGNoZWNrcyAqLw0KPiA+ICsJUlRFX0JVSUxEX0JV R19PTihzaXplb2Yoc3RydWN0IGFjYzEwMF9kbWFfcmVxX2Rlc2MpICE9IDI1Nik7DQo+ID4gKwlS VEVfQlVJTERfQlVHX09OKHNpemVvZih1bmlvbiBhY2MxMDBfZG1hX2Rlc2MpICE9IDI1Nik7DQo+ ID4gKwlSVEVfQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgYWNjMTAwX2Zjd190ZCkgIT0gMjQp Ow0KPiA+ICsJUlRFX0JVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGFjYzEwMF9mY3dfdGUpICE9 IDMyKTsNCj4gPiArDQo+ID4gKwlpZiAoYmJkZXYgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRl dl9sb2coRVJSLA0KPiA+ICsJCSJJbnZhbGlkIGRldl9uYW1lICglcyksIG9yIGRldmljZSBpcyBu b3QgeWV0IGluaXRpYWxpc2VkIiwNCj4gPiArCQlkZXZfbmFtZSk7DQo+ID4gKwkJcmV0dXJuIC1F Tk9ERVY7DQo+ID4gKwl9DQo+ID4gKwlzdHJ1Y3QgYWNjMTAwX2RldmljZSAqZCA9IGJiZGV2LT5k YXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArDQo+ID4gKwkvKiBTdG9yZSBjb25maWd1cmF0aW9uICov DQo+ID4gKwlydGVfbWVtY3B5KCZkLT5hY2MxMDBfY29uZiwgY29uZiwgc2l6ZW9mKGQtPmFjYzEw MF9jb25mKSk7DQo+ID4gKw0KPiA+ICsJLyogUENJZSBCcmlkZ2UgY29uZmlndXJhdGlvbiAqLw0K PiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBId1BmUGNpZUdwZXhCcmlkZ2VDb250cm9sLA0KPiBB Q0MxMDFfQ0ZHX1BDSV9CUklER0UpOw0KPiA+ICsJZm9yIChpID0gMTsgaSA8IEFDQzEwMV9HUEVY X0FYSU1BUF9OVU07IGkrKykNCj4gPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsDQo+IEh3UGZQY2ll R3BleEF4aUFkZHJNYXBwaW5nV2luZG93UGV4QmFzZUhpZ2ggKyBpDQo+ID4gKyogMTYsIDApOw0K PiA+ICsNCj4gPiArCS8qIFByZXZlbnQgYmxvY2tpbmcgQVhJIHJlYWQgb24gQlJFU1AgZm9yIEFY SSBXcml0ZSAqLw0KPiA+ICsJYWRkcmVzcyA9IEh3UGZQY2llR3BleEF4aVBpb0NvbnRyb2w7DQo+ ID4gKwl2YWx1ZSA9IEFDQzEwMV9DRkdfUENJX0FYSTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUo ZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsNCj4gPiArCS8qIEV4cGxpY2l0bHkgcmVsZWFzaW5n IEFYSSBpbmNsdWRpbmcgYSAybXMgZGVsYXkgb24gQUNDMTAxICovDQo+ID4gKwl1c2xlZXAoMjAw MCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIEhXUGZEbWFBeGlDb250cm9sLCAxKTsNCj4g PiArDQo+ID4gKwkvKiBTZXQgdGhlIGRlZmF1bHQgNUdETCBETUEgY29uZmlndXJhdGlvbiAqLw0K PiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBIV1BmRG1hSW5ib3VuZERyYWluRGF0YVNpemUsDQo+ ID4gK0FDQzEwMV9ETUFfSU5CT1VORCk7DQo+ID4gKw0KPiA+ICsJLyogRW5hYmxlIGdyYW51bGFy IGR5bmFtaWMgY2xvY2sgZ2F0aW5nICovDQo+ID4gKwlhZGRyZXNzID0gSFdQZkhpQ2xrR2F0ZUh5 c3RSZWc7DQo+ID4gKwl2YWx1ZSA9IEFDQzEwMV9DTE9DS19HQVRJTkdfRU47DQo+ID4gKwlhY2Mx MDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ID4gKwkvKiBTZXQgZGVm YXVsdCBkZXNjcmlwdG9yIHNpZ25hdHVyZSAqLw0KPiA+ICsJYWRkcmVzcyA9IEhXUGZEbWFEZXNj cmlwdG9yU2lnbmF0dXR1cmU7DQo+ID4gKwl2YWx1ZSA9IDA7DQo+ID4gKwlhY2MxMDBfcmVnX3dy aXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ID4gKwkvKiBFbmFibGUgdGhlIEVycm9y IERldGVjdGlvbiBpbiBETUEgKi8NCj4gPiArCXZhbHVlID0gQUNDMTAxX0NGR19ETUFfRVJST1I7 DQo+ID4gKwlhZGRyZXNzID0gSFdQZkRtYUVycm9yRGV0ZWN0aW9uRW47DQo+ID4gKwlhY2MxMDBf cmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ID4gKwkvKiBBWEkgQ2FjaGUg Y29uZmlndXJhdGlvbiAqLw0KPiA+ICsJdmFsdWUgPSBBQ0MxMDFfQ0ZHX0FYSV9DQUNIRTsNCj4g PiArCWFkZHJlc3MgPSBIV1BmRG1hQXhjYWNoZVJlZzsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUo ZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsNCj4gPiArCS8qIERlZmF1bHQgRE1BIENvbmZpZ3Vy YXRpb24gKFFtZ3IgRW5hYmxlZCkgKi8NCj4gPiArCWFkZHJlc3MgPSBIV1BmRG1hQ29uZmlnMFJl ZzsNCj4gPiArCXZhbHVlID0gMDsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywg dmFsdWUpOw0KPiA+ICsJYWRkcmVzcyA9IEhXUGZEbWFRbWFuZW47DQo+ID4gKwl2YWx1ZSA9IDA7 DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ID4g KwkvKiBEZWZhdWx0IFJMSU0vQUxFTiBjb25maWd1cmF0aW9uICovDQo+ID4gKwlhZGRyZXNzID0g SFdQZkRtYUNvbmZpZzFSZWc7DQo+ID4gKwlpbnQgYWxlbl9yID0gMHhGOw0KPiA+ICsJaW50IGFs ZW5fdyA9IDB4NzsNCj4gPiArCXZhbHVlID0gKDEgPDwgMzEpICsgKGFsZW5fdyA8PCAyMCkgICsg KDEgPDwgNikgKyBhbGVuX3I7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZh bHVlKTsNCj4gPiArDQo+ID4gKwkvKiBDb25maWd1cmUgRE1BIFFtYW5hZ2VyIGFkZHJlc3NlcyAq Lw0KPiA+ICsJYWRkcmVzcyA9IEhXUGZEbWFRbWdyQWRkclJlZzsNCj4gPiArCXZhbHVlID0gSFdQ ZlFtZ3JFZ3Jlc3NRdWV1ZXNUZW1wbGF0ZTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRk cmVzcywgdmFsdWUpOw0KPiA+ICsNCj4gPiArCS8qID09PT09IFFtZ3IgQ29uZmlndXJhdGlvbiA9 PT09PSAqLw0KPiA+ICsJLyogQ29uZmlndXJhdGlvbiBvZiB0aGUgQVF1ZXVlIERlcHRoIFFNR1Jf R1JQXzBfREVQVEhfTE9HMg0KPiBmb3IgVUwgKi8NCj4gPiArCWludCB0b3RhbFFncyA9IGNvbmYt PnFfdWxfNGcubnVtX3Fncm91cHMgKw0KPiA+ICsJCQljb25mLT5xX3VsXzVnLm51bV9xZ3JvdXBz ICsNCj4gPiArCQkJY29uZi0+cV9kbF80Zy5udW1fcWdyb3VwcyArDQo+ID4gKwkJCWNvbmYtPnFf ZGxfNWcubnVtX3Fncm91cHM7DQo+ID4gKwlmb3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IHRvdGFs UWdzOyBxZ19pZHgrKykgew0KPiA+ICsJCWFkZHJlc3MgPSBIV1BmUW1nckRlcHRoTG9nMkdycCAr DQo+ID4gKwkJQUNDMTAxX0JZVEVTX0lOX1dPUkQgKiBxZ19pZHg7DQo+ID4gKwkJdmFsdWUgPSBh cURlcHRoKHFnX2lkeCwgY29uZik7DQo+ID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNz LCB2YWx1ZSk7DQo+ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyVGhvbGRHcnAgKw0KPiA+ICsJCUFD QzEwMV9CWVRFU19JTl9XT1JEICogcWdfaWR4Ow0KPiA+ICsJCXZhbHVlID0gKDEgPDwgMTYpICsg KDEgPDwgKGFxRGVwdGgocWdfaWR4LCBjb25mKSAtIDEpKTsNCj4gPiArCQlhY2MxMDBfcmVnX3dy aXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwkvKiBUZW1wbGF0 ZSBQcmlvcml0eSBpbiBpbmNyZW1lbnRhbCBvcmRlciAqLw0KPiA+ICsJZm9yICh0ZW1wbGF0ZV9p ZHggPSAwOyB0ZW1wbGF0ZV9pZHggPCBBQ0MxMDFfTlVNX1RNUEw7DQo+ID4gKwkJCXRlbXBsYXRl X2lkeCsrKSB7DQo+ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzBJbmR4ICsN Cj4gQUNDMTAxX0JZVEVTX0lOX1dPUkQgKiB0ZW1wbGF0ZV9pZHg7DQo+ID4gKwkJdmFsdWUgPSBB Q0MxMDFfVE1QTF9QUklfMDsNCj4gPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZh bHVlKTsNCj4gPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnMUluZHggKw0KPiBB Q0MxMDFfQllURVNfSU5fV09SRCAqIHRlbXBsYXRlX2lkeDsNCj4gPiArCQl2YWx1ZSA9IEFDQzEw MV9UTVBMX1BSSV8xOw0KPiA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUp Ow0KPiA+ICsJCWFkZHJlc3MgPSBIV1BmUW1nckdycFRtcGxhdGVSZWcyaW5keCArDQo+IEFDQzEw MV9CWVRFU19JTl9XT1JEICogdGVtcGxhdGVfaWR4Ow0KPiA+ICsJCXZhbHVlID0gQUNDMTAxX1RN UExfUFJJXzI7DQo+ID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzNJbmR4ICsNCj4gQUNDMTAxX0JZ VEVTX0lOX1dPUkQgKiB0ZW1wbGF0ZV9pZHg7DQo+ID4gKwkJdmFsdWUgPSBBQ0MxMDFfVE1QTF9Q UklfMzsNCj4gPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiAr CX0NCj4gPiArDQo+ID4gKwlhZGRyZXNzID0gSFdQZlFtZ3JHcnBQcmlvcml0eTsNCj4gPiArCXZh bHVlID0gQUNDMTAxX0NGR19RTUdSX0hJX1A7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFk ZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ID4gKwkvKiBUZW1wbGF0ZSBDb25maWd1cmF0aW9uICov DQo+ID4gKwlmb3IgKHRlbXBsYXRlX2lkeCA9IDA7IHRlbXBsYXRlX2lkeCA8IEFDQzEwMV9OVU1f VE1QTDsNCj4gPiArCQkJdGVtcGxhdGVfaWR4KyspIHsNCj4gPiArCQl2YWx1ZSA9IDA7DQo+ID4g KwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzRJbmR4DQo+ID4gKwkJCQkrIEFDQzEw MV9CWVRFU19JTl9XT1JEICogdGVtcGxhdGVfaWR4Ow0KPiA+ICsJCWFjYzEwMF9yZWdfd3JpdGUo ZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsJfQ0KPiA+ICsJLyogNEdVTCAqLw0KPiA+ICsJaW50 IG51bVFncyA9IGNvbmYtPnFfdWxfNGcubnVtX3Fncm91cHM7DQo+ID4gKwlpbnQgbnVtUXFzQWNj ID0gMDsNCj4gPiArCXZhbHVlID0gMDsNCj4gPiArCWZvciAocWdfaWR4ID0gbnVtUXFzQWNjOyBx Z19pZHggPCAobnVtUWdzICsgbnVtUXFzQWNjKTsNCj4gcWdfaWR4KyspDQo+ID4gKwkJdmFsdWUg fD0gKDEgPDwgcWdfaWR4KTsNCj4gPiArCWZvciAodGVtcGxhdGVfaWR4ID0gQUNDMTAxX1NJR19V TF80RzsNCj4gPiArCQkJdGVtcGxhdGVfaWR4IDw9IEFDQzEwMV9TSUdfVUxfNEdfTEFTVDsNCj4g PiArCQkJdGVtcGxhdGVfaWR4KyspIHsNCj4gPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBs YXRlUmVnNEluZHgNCj4gPiArCQkJCSsgQUNDMTAxX0JZVEVTX0lOX1dPUkQgKiB0ZW1wbGF0ZV9p ZHg7DQo+ID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwl9 DQo+ID4gKwkvKiA1R1VMICovDQo+ID4gKwludW1RcXNBY2MgKz0gbnVtUWdzOw0KPiA+ICsJbnVt UWdzCT0gY29uZi0+cV91bF81Zy5udW1fcWdyb3VwczsNCj4gPiArCXZhbHVlID0gMDsNCj4gPiAr CWludCBudW1FbmdpbmVzID0gMDsNCj4gPiArCWZvciAocWdfaWR4ID0gbnVtUXFzQWNjOyBxZ19p ZHggPCAobnVtUWdzICsgbnVtUXFzQWNjKTsNCj4gcWdfaWR4KyspDQo+ID4gKwkJdmFsdWUgfD0g KDEgPDwgcWdfaWR4KTsNCj4gPiArCWZvciAodGVtcGxhdGVfaWR4ID0gQUNDMTAxX1NJR19VTF81 RzsNCj4gPiArCQkJdGVtcGxhdGVfaWR4IDw9IEFDQzEwMV9TSUdfVUxfNUdfTEFTVDsNCj4gPiAr CQkJdGVtcGxhdGVfaWR4KyspIHsNCj4gPiArCQkvKiBDaGVjayBlbmdpbmUgcG93ZXItb24gc3Rh dHVzICovDQo+ID4gKwkJYWRkcmVzcyA9IEh3UGZGZWNVbDVnSWJEZWJ1Z1JlZyArDQo+ID4gKwkJ CQlBQ0MxMDFfRU5HSU5FX09GRlNFVCAqIHRlbXBsYXRlX2lkeDsNCj4gPiArCQlzdGF0dXMgPSAo YWNjMTAwX3JlZ19yZWFkKGQsIGFkZHJlc3MpID4+IDQpICYgMHhGOw0KPiA+ICsJCWFkZHJlc3Mg PSBIV1BmUW1nckdycFRtcGxhdGVSZWc0SW5keA0KPiA+ICsJCQkJKyBBQ0MxMDFfQllURVNfSU5f V09SRCAqIHRlbXBsYXRlX2lkeDsNCj4gPiArCQlpZiAoc3RhdHVzID09IDEpIHsNCj4gPiArCQkJ YWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwkJCW51bUVuZ2luZXMr KzsNCj4gPiArCQl9IGVsc2UNCj4gPiArCQkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCAw KTsNCj4gPiArI2lmIFJURV9BQ0MxMDFfU0lOR0xFX0ZFQyA9PSAxDQo+ID4gKwkJdmFsdWUgPSAw Ow0KPiA+ICsjZW5kaWYNCj4gPiArCX0NCj4gPiArCXByaW50ZigiTnVtYmVyIG9mIDVHVUwgZW5n aW5lcyAlZFxuIiwgbnVtRW5naW5lcyk7DQo+ID4gKwkvKiA0R0RMICovDQo+ID4gKwludW1RcXNB Y2MgKz0gbnVtUWdzOw0KPiA+ICsJbnVtUWdzCT0gY29uZi0+cV9kbF80Zy5udW1fcWdyb3VwczsN Cj4gPiArCXZhbHVlID0gMDsNCj4gPiArCWZvciAocWdfaWR4ID0gbnVtUXFzQWNjOyBxZ19pZHgg PCAobnVtUWdzICsgbnVtUXFzQWNjKTsNCj4gcWdfaWR4KyspDQo+ID4gKwkJdmFsdWUgfD0gKDEg PDwgcWdfaWR4KTsNCj4gPiArCWZvciAodGVtcGxhdGVfaWR4ID0gQUNDMTAxX1NJR19ETF80RzsN Cj4gPiArCQkJdGVtcGxhdGVfaWR4IDw9IEFDQzEwMV9TSUdfRExfNEdfTEFTVDsNCj4gPiArCQkJ dGVtcGxhdGVfaWR4KyspIHsNCj4gPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVn NEluZHgNCj4gPiArCQkJCSsgQUNDMTAxX0JZVEVTX0lOX1dPUkQgKiB0ZW1wbGF0ZV9pZHg7DQo+ ID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7ICNpZg0KPiBSVEVfQUND MTAxX1NJTkdMRV9GRUMgPT0gMQ0KPiA+ICsJCQl2YWx1ZSA9IDA7DQo+ID4gKyNlbmRpZg0KPiA+ ICsJfQ0KPiA+ICsJLyogNUdETCAqLw0KPiA+ICsJbnVtUXFzQWNjICs9IG51bVFnczsNCj4gPiAr CW51bVFncwk9IGNvbmYtPnFfZGxfNWcubnVtX3Fncm91cHM7DQo+ID4gKwl2YWx1ZSA9IDA7DQo+ ID4gKwlmb3IgKHFnX2lkeCA9IG51bVFxc0FjYzsgcWdfaWR4IDwgKG51bVFncyArIG51bVFxc0Fj Yyk7DQo+IHFnX2lkeCsrKQ0KPiA+ICsJCXZhbHVlIHw9ICgxIDw8IHFnX2lkeCk7DQo+ID4gKwlm b3IgKHRlbXBsYXRlX2lkeCA9IEFDQzEwMV9TSUdfRExfNUc7DQo+ID4gKwkJCXRlbXBsYXRlX2lk eCA8PSBBQ0MxMDFfU0lHX0RMXzVHX0xBU1Q7DQo+ID4gKwkJCXRlbXBsYXRlX2lkeCsrKSB7DQo+ ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzRJbmR4DQo+ID4gKwkJCQkrIEFD QzEwMV9CWVRFU19JTl9XT1JEICogdGVtcGxhdGVfaWR4Ow0KPiA+ICsJCWFjYzEwMF9yZWdfd3Jp dGUoZCwgYWRkcmVzcywgdmFsdWUpOyAjaWYNCj4gUlRFX0FDQzEwMV9TSU5HTEVfRkVDID09IDEN Cj4gPiArCQl2YWx1ZSA9IDA7DQo+ID4gKyNlbmRpZg0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCS8q IFF1ZXVlIEdyb3VwIEZ1bmN0aW9uIG1hcHBpbmcgKi8NCj4gPiArCWludCBxbWFuX2Z1bmNfaWRb OF0gPSB7MCwgMiwgMSwgMywgNCwgMCwgMCwgMH07DQo+ID4gKwlhZGRyZXNzID0gSFdQZlFtZ3JH cnBGdW5jdGlvbjA7DQo+ID4gKwl2YWx1ZSA9IDA7DQo+ID4gKwlmb3IgKHFnX2lkeCA9IDA7IHFn X2lkeCA8IDg7IHFnX2lkeCsrKSB7DQo+ID4gKwkJYWNjID0gYWNjRnJvbVFnaWQocWdfaWR4LCBj b25mKTsNCj4gPiArCQl2YWx1ZSB8PSBxbWFuX2Z1bmNfaWRbYWNjXTw8KHFnX2lkeCAqIDQpOw0K PiA+ICsJfQ0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4g Kw0KPiA+ICsJLyogQ29uZmlndXJhdGlvbiBvZiB0aGUgQXJiaXRyYXRpb24gUUdyb3VwIGRlcHRo IHRvIDEgKi8NCj4gPiArCWZvciAocWdfaWR4ID0gMDsgcWdfaWR4IDwgdG90YWxRZ3M7IHFnX2lk eCsrKSB7DQo+ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyQXJiUURlcHRoR3JwICsNCj4gPiArCQlB Q0MxMDFfQllURVNfSU5fV09SRCAqIHFnX2lkeDsNCj4gPiArCQl2YWx1ZSA9IDA7DQo+ID4gKwkJ YWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ ICsJLyogRW5hYmxpbmcgQVF1ZXVlcyB0aHJvdWdoIHRoZSBRdWV1ZSBoaWVyYXJjaHkqLw0KPiA+ ICsJZm9yICh2Zl9pZHggPSAwOyB2Zl9pZHggPCBBQ0MxMDFfTlVNX1ZGUzsgdmZfaWR4KyspIHsN Cj4gPiArCQlmb3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IEFDQzEwMV9OVU1fUUdSUFM7IHFnX2lk eCsrKSB7DQo+ID4gKwkJCXZhbHVlID0gMDsNCj4gPiArCQkJaWYgKHZmX2lkeCA8IGNvbmYtPm51 bV92Zl9idW5kbGVzICYmDQo+ID4gKwkJCQkJcWdfaWR4IDwgdG90YWxRZ3MpDQo+ID4gKwkJCQl2 YWx1ZSA9ICgxIDw8IGFxTnVtKHFnX2lkeCwgY29uZikpIC0gMTsNCj4gPiArCQkJYWRkcmVzcyA9 IEhXUGZRbWdyQXFFbmFibGVWZg0KPiA+ICsJCQkJCSsgdmZfaWR4ICogQUNDMTAxX0JZVEVTX0lO X1dPUkQ7DQo+ID4gKwkJCXZhbHVlICs9IChxZ19pZHggPDwgMTYpOw0KPiA+ICsJCQlhY2MxMDBf cmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0K PiA+ICsJLyogVGhpcyBwb2ludGVyIHRvIEFSQU0gKDEyOGtCKSBpcyBzaGlmdGVkIGJ5IDIgKDRC IHBlciByZWdpc3RlcikgKi8NCj4gPiArCXVpbnQzMl90IGFyYW1fYWRkcmVzcyA9IDA7DQo+ID4g Kwlmb3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IHRvdGFsUWdzOyBxZ19pZHgrKykgew0KPiA+ICsJ CWZvciAodmZfaWR4ID0gMDsgdmZfaWR4IDwgY29uZi0+bnVtX3ZmX2J1bmRsZXM7IHZmX2lkeCsr KSB7DQo+ID4gKwkJCWFkZHJlc3MgPSBIV1BmUW1nclZmQmFzZUFkZHIgKyB2Zl9pZHgNCj4gPiAr CQkJCQkqIEFDQzEwMV9CWVRFU19JTl9XT1JEICsgcWdfaWR4DQo+ID4gKwkJCQkJKiBBQ0MxMDFf QllURVNfSU5fV09SRCAqIDY0Ow0KPiA+ICsJCQl2YWx1ZSA9IGFyYW1fYWRkcmVzczsNCj4gPiAr CQkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwkJCS8qIE9mZnNl dCBBUkFNIEFkZHJlc3MgZm9yIG5leHQgbWVtb3J5IGJhbmsNCj4gPiArCQkJICogLSBpbmNyZW1l bnQgb2YgNEINCj4gPiArCQkJICovDQo+ID4gKwkJCWFyYW1fYWRkcmVzcyArPSBhcU51bShxZ19p ZHgsIGNvbmYpICoNCj4gPiArCQkJCQkoMSA8PCBhcURlcHRoKHFnX2lkeCwgY29uZikpOw0KPiA+ ICsJCX0NCj4gPiArCX0NCj4gPiArDQo+ID4gKwlpZiAoYXJhbV9hZGRyZXNzID4gQUNDMTAxX1dP UkRTX0lOX0FSQU1fU0laRSkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiQVJBTSBDb25m aWd1cmF0aW9uIG5vdCBmaXR0aW5nICVkDQo+ICVkXG4iLA0KPiA+ICsJCQkJYXJhbV9hZGRyZXNz LA0KPiBBQ0MxMDFfV09SRFNfSU5fQVJBTV9TSVpFKTsNCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsN Cj4gPiArCX0NCj4gPiArDQo+ID4gKwkvKiA9PT09IEhJIENvbmZpZ3VyYXRpb24gPT09PSAqLw0K PiA+ICsNCj4gPiArCS8qIE5vIEluZm8gUmluZy9NU0kgYnkgZGVmYXVsdCAqLw0KPiA+ICsJYWNj MTAwX3JlZ193cml0ZShkLCBIV1BmSGlJbmZvUmluZ0ludFdyRW5SZWdQZiwgMCk7DQo+ID4gKwlh Y2MxMDBfcmVnX3dyaXRlKGQsIEhXUGZIaUluZm9SaW5nVmYycGZMb1dyRW5SZWcsIDApOw0KPiA+ ICsJYWNjMTAwX3JlZ193cml0ZShkLCBIV1BmSGlDZmdNc2lJbnRXckVuUmVnUGYsIDB4RkZGRkZG RkYpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBIV1BmSGlDZmdNc2lWZjJwZkxvV3JFblJl ZywgMHhGRkZGRkZGRik7DQo+ID4gKwkvKiBQcmV2ZW50IEJsb2NrIG9uIFRyYW5zbWl0IEVycm9y ICovDQo+ID4gKwlhZGRyZXNzID0gSFdQZkhpQmxvY2tUcmFuc21pdE9uRXJyb3JFbjsNCj4gPiAr CXZhbHVlID0gMDsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0K PiA+ICsJLyogUHJldmVudHMgdG8gZHJvcCBNU0kgKi8NCj4gPiArCWFkZHJlc3MgPSBIV1BmSGlN c2lEcm9wRW5hYmxlUmVnOw0KPiA+ICsJdmFsdWUgPSAwOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0 ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwkvKiBTZXQgdGhlIFBGIE1vZGUgcmVnaXN0ZXIg Ki8NCj4gPiArCWFkZHJlc3MgPSBIV1BmSGlQZk1vZGU7DQo+ID4gKwl2YWx1ZSA9IChjb25mLT5w Zl9tb2RlX2VuKSA/IEFDQzEwMV9QRl9WQUwgOiAwOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShk LCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwkvKiBFeHBsaWNpdGx5IHJlbGVhc2luZyBBWEkgYWZ0 ZXIgUEYgTW9kZSBhbmQgMiBtcyAqLw0KPiA+ICsJdXNsZWVwKDIwMDApOw0KPiA+ICsJYWNjMTAw X3JlZ193cml0ZShkLCBIV1BmRG1hQXhpQ29udHJvbCwgMSk7DQo+ID4gKw0KPiA+ICsJLyogUW9T IG92ZXJmbG93IGluaXQgKi8NCj4gPiArCXZhbHVlID0gMTsNCj4gPiArCWFkZHJlc3MgPSBIV1Bm UW9zbW9uQUV2YWxPdmVyZmxvdzA7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3Ms IHZhbHVlKTsNCj4gPiArCWFkZHJlc3MgPSBIV1BmUW9zbW9uQkV2YWxPdmVyZmxvdzA7DQo+ID4g KwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ID4gKwkvKiBI QVJRIEREUiBDb25maWd1cmF0aW9uICovDQo+ID4gKwl1bnNpZ25lZCBpbnQgZGRyU2l6ZUluTWIg PSBBQ0MxMDFfSEFSUV9ERFI7DQo+ID4gKwlmb3IgKHZmX2lkeCA9IDA7IHZmX2lkeCA8IGNvbmYt Pm51bV92Zl9idW5kbGVzOyB2Zl9pZHgrKykgew0KPiA+ICsJCWFkZHJlc3MgPSBIV1BmRG1hVmZE ZHJCYXNlUncgKyB2Zl9pZHgNCj4gPiArCQkJCSogMHgxMDsNCj4gPiArCQl2YWx1ZSA9ICgodmZf aWR4ICogKGRkclNpemVJbk1iIC8gNjQpKSA8PCAxNikgKw0KPiA+ICsJCQkJKGRkclNpemVJbk1i IC0gMSk7DQo+ID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4g Kwl9DQo+ID4gKwl1c2xlZXAoQUNDMTAxX0xPTkdfV0FJVCk7DQo+ID4gKw0KPiA+ICsJcnRlX2Ji ZGV2X2xvZ19kZWJ1ZygiUEYgVElQIGNvbmZpZ3VyYXRpb24gY29tcGxldGUgZm9yICVzIiwNCj4g ZGV2X25hbWUpOw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXANCj4gPiBiL2RyaXZlcnMvYmFzZWJhbmQv YWNjMTAwL3ZlcnNpb24ubWFwDQo+ID4gaW5kZXggNDA2MDRjNy4uMzdiODUwZiAxMDA2NDQNCj4g PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC92ZXJzaW9uLm1hcA0KPiA+ICsrKyBiL2Ry aXZlcnMvYmFzZWJhbmQvYWNjMTAwL3ZlcnNpb24ubWFwDQo+ID4gQEAgLTYsNSArNiw1IEBAIEVY UEVSSU1FTlRBTCB7DQo+ID4gICAJZ2xvYmFsOg0KPiA+DQo+ID4gICAJcnRlX2FjYzEwMF9jb25m aWd1cmU7DQo+ID4gLQ0KPiA+ICsJcnRlX2FjYzEwMV9jb25maWd1cmU7DQo+ID4gICB9Ow0KDQo=