From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 52D30A00C2; Fri, 24 Apr 2020 14:37:57 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2C7391C1F9; Fri, 24 Apr 2020 14:37:57 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id B6A201C1E7 for ; Fri, 24 Apr 2020 14:37:54 +0200 (CEST) IronPort-SDR: Dh+T1EZqW3vsvFz9JqBIW79hOyZsRKCgpM198yD4H1uKr5bxqE75nXN8fcgLCcXU4JOu8iONo5 rSQKz/Ok+mVA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Apr 2020 05:37:53 -0700 IronPort-SDR: dnqWuAs5sonaZdy5hUxINkTE2GtmxHaiQl2yCjuHnnOF4HfWkYnfpM4owfDoeG1U1UsvGkNrC2 SxrQtXJF90yw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,311,1583222400"; d="scan'208";a="259799913" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga006.jf.intel.com with ESMTP; 24 Apr 2020 05:37:53 -0700 Received: from fmsmsx158.amr.corp.intel.com (10.18.116.75) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 24 Apr 2020 05:36:58 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx158.amr.corp.intel.com (10.18.116.75) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 24 Apr 2020 05:36:58 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.50) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 24 Apr 2020 05:36:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jr4fGG3Dhv+/soZgLWa4VKxuXhnLa9jogbGoNRzIQ2CiakFeg+kI5TlPrJQZml+Pua2SO580O4kqInInFi5B1TftIUv6W+jVUwmXZTUYMkd1la3K60fdd0AGKkpL6w+ik/xDhhlhQ/IB0Kz6VZLdJoYfe/B98RjsH7d1EEnBXPIh2jEQKLLXbEfGfQDvNRSUzP1ajElTmJx/rmbMX+zfMUs0dWLwX5NcqqQyfJ23hu4FXPGQruMQrxmFVG6LLST41zX6ybGksf6XN8LfKZT+pJbEjpG7a5KjZR6UaE6FGIb0eWKaxMrV9synDxtFjh0VI4dpGAv4myEZrg1+A1Mw2Q== 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-SenderADCheck; bh=/712tcQt4gV+Yykae2muTdsLIh5zUZ5e5N6zxjWSU98=; b=X+e6Ic9SZvDXx4ISGJB3sS40JUIaiGaGD22fjykAByvpkXv9m4V+ngPPrIn2yyegzqltxK8zP90KTwbzA3h9BAUjisuGfltQGcL7zA9mAFf82L79aR/DCyKGO4VBecDEba6aA3+kWTgOqWiMxJww6hvl+mWacSR/VltZLnGUNodAtc4Y8tkVVyyPOdSohX9GKkY8dG1RWV1Z2j/GVe400UDK3wBJOiNSA/pN53mWTDkt1jXodErhj9QTqL530UHsIA0RIhNUwEHzwVCAeouEvTRYgfbLg1IbNCSdB5mIvpehQdc7m5g6BNso2na1mPXgIkZ8VVvrcqkGrCnqOAcAag== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/712tcQt4gV+Yykae2muTdsLIh5zUZ5e5N6zxjWSU98=; b=MDF8aEZUE1H0FOs6+ZAZY2VZxh16PWPkwiBCOyYpaF9WMscTpt6402FMbuT9jZH8+S8pDVYxob2swqSPzb/ilkorDEd9M/DruPuHKrcQQd75e2iITE5XgXHVb6MmrbQvClyavtfXUIUZ4tIV+WjR1Kitgj09GyRIN89zmQ2l15Y= Received: from BYAPR11MB3301.namprd11.prod.outlook.com (2603:10b6:a03:7f::26) by BYAPR11MB3142.namprd11.prod.outlook.com (2603:10b6:a03:85::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.13; Fri, 24 Apr 2020 12:35:58 +0000 Received: from BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f8cb:58cd:e958:fff4]) by BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f8cb:58cd:e958:fff4%6]) with mapi id 15.20.2937.020; Fri, 24 Apr 2020 12:35:58 +0000 From: "Ananyev, Konstantin" To: Anoob Joseph , "Lukas Bartosik [C]" CC: "akhil.goyal@nxp.com" , "Nicolau, Radu" , Narayana Prasad Raju Athreya , "dev@dpdk.org" , "orika@mellanox.com" , "Doherty, Declan" , "Drost, MariuszX" , "Lu, Wenzhuo" , "Wu, Jingjing" Thread-Topic: [dpdk-dev] [EXT] RE: [PATCH] examples/ipsec-secgw: fix dropping of initial IPsec pkts Thread-Index: AQHWF+QXSQpHaMRBEEaElm/zptd2/6iDqdlAgAGuWoCAAtiI8A== Date: Fri, 24 Apr 2020 12:35:58 +0000 Message-ID: References: <1586345520-3205-1-git-send-email-lbartosik@marvell.com> <139b63ab-6ce0-1657-2754-37e1347143bc@marvell.com> <9bde6651-8dc2-30df-036e-a0670327b6a8@marvell.com> <97c667bb-e6fa-808b-107a-c94b5917aabc@marvell.com> In-Reply-To: Accept-Language: en-GB, 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.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=konstantin.ananyev@intel.com; x-originating-ip: [192.198.151.170] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d496489b-04be-4a59-d14d-08d7e84c0a7f x-ms-traffictypediagnostic: BYAPR11MB3142: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 03838E948C x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB3301.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(366004)(346002)(376002)(39860400002)(136003)(396003)(64756008)(6506007)(8676002)(76116006)(66446008)(71200400001)(66476007)(66946007)(81156014)(5660300002)(53546011)(52536014)(7696005)(30864003)(2906002)(66556008)(86362001)(26005)(478600001)(110136005)(33656002)(966005)(54906003)(316002)(8936002)(4326008)(186003)(55016002)(9686003)(107886003)(19627235002); DIR:OUT; SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: k73EHj72aaaE6i83GiW13RcOSh0lgAkwBQrH1ZhPFIr5btXeIraMnD/cPmlE0hC95PL5nQd8VEDnEX9oeM6G2EspCKmU2fFcfIZtDp0cA5isF6FthHa6JoAMwhITR6aYjZH8xpfbZHp56SWDF/d2h3jj+gZcdDacoSvM1ufT2GHTwZ1C6FpSR/G3CBL9GCjVQ8cs+1pU6lVdWUyX4FVU58I6kKsZz4Vo4zeqOm/d3nSbFAxkSp6slv//4Fx6psDcTCyVXNy+RxlMdeQYGGVCIS5F2t20LwqOPXuWUyjEYs3T4WOmie72gWuIVPmGvwyKscKbX76SFKfxe22c1AuP7OvI6ThIXt5dUst/1Zw3DSDtlIFzILQmvu9m7PEvTDBwW+DacoJzWJOtd8IrInr/QDxOnjcYbAH2kJtQq2tFMmwmcWoOBdNHEVrH4nO3aDWOgx/gcgBtmlGGMH3rByuYVxe/yaVU2iRZ8wNx+TSFSYfK+OBIDtRAyx4a9mgeZv90LWapFQIt9XiCH6hpJLooUw== x-ms-exchange-antispam-messagedata: fOuh6cWioU6XDhw59LcrMkORBc+tWNepRphdzThgwhThakCMCEWHv5QW3jt3yQJZnUoj/MeOJr/7U4UQngxHKoV+pURkdn0Yad90fU6iORVAOWEqR8rBdvjAd27ldpnDsXomN77TEqbTzOyXi+u/Hg== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: d496489b-04be-4a59-d14d-08d7e84c0a7f X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2020 12:35:58.4413 (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: YVs8N8IAOAmYGxw4b3fuT9GUdnPu/NsSyaA7+Z7RypFx8AANEX417Fq7RytT2JTcJaXTwGTrPwzdBCKicFO3YfT9ztC2H49LC0EcnH/ptCo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3142 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [EXT] RE: [PATCH] examples/ipsec-secgw: fix dropping of initial IPsec pkts X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiA+DQo+ID4gSGkgTHVrYXMsDQo+ID4NCj4gPiBBcG9sb2dpZXMgZm9yIGRlbGF5IHdpdGggcmVz cG9uc2UuDQo+ID4NCj4gPiA+IERvIHlvdSBoYXZlIGFueSB0aG91Z2h0cyBob3cgYm90aCBjYXNl cyBjb3VsZCBiZSBjb3ZlcmVkOg0KPiA+ID4gMS4gSW5saW5lIG5vdCBhcHBsaWVkIHRvIGluYm91 bmQgSVBzZWMgcGt0cyBmb3Igc2hvcnQgZHVyYXRpb24gb2YgdGltZQ0KPiA+ID4gYWZ0ZXIgcnRl X2V0aF9kZXZfc3RhcnQoKSBidXQgYmVmb3JlIHNhX2luaXQoKSBpcyBleGVjdXRlZCAod2hpY2gg Y3JlYXRlcyBTQXMpLg0KPiA+ID4gMi4gU0FzIG5vdCBzdXJ2aXZpbmcgcnRlX2V0aF9kZXZfc3Rh cnQoKSBvbiBpeGdiZSBkcml2ZXIuDQo+ID4NCj4gPiBObywgcmlnaHQgbm93IEkgZG9uJ3QgaGF2 ZSBhbiBpZGVhIGhvdyBib3RoIGNhbiBiZSBzYXRpc2ZpZWQuDQo+ID4gQWJvdXQgMSkgLSB3aHkg ZG8geW91IGNvbnNpZGVyIHRoYXQgYXMgcHJvYmxlbT8NCj4gPiBBcyBJIHVuZGVyc3RhbmQgd2hl biBpbmxpbmUgZGV2aWNlIGlzIHN0YXJ0ZWQgYnkgbm90IHByb3Blcmx5IHByb2dyYW1tZWQgeWV0 LA0KPiA+IHRoZXNlIHBhY2tldHMgd2lsbCBiZSB0cmVhdGVkIGJ5IGRldmljZSBhcyBub24taXBz ZWMgb25lcyAoanVzdCBwbGFpbi10ZXh0DQo+ID4gcGFja2V0cykuDQo+ID4gVGhlbiBsYXRlciBp biBpcHNlYy1zZWNndyBSWCBwYXRoIHRoZXkgd2lsbCBwcm9iYWJseSBiZSBqdXN0IGRyb3BwZWQu DQo+ID4gU28gbm8gaGFybSBoZXJlLCBubz8NCj4gDQo+IFtBbm9vYl0gWWVzLCB3aGVuIFNBcyBh cmUgbm90IHlldCBjcmVhdGVkIGFuZCBkZXZpY2UgaXMgc3RhcnRlZCB0aGVuIEhXIHRyZWF0cyBJ UHNlYyBwYWNrZXRzIGFzIGNsZWFyIHBhY2tldHMgYW5kIGRvZXMgbm90IGFwcGx5IGlubGluZSB0 bw0KPiB0aGVtLiBUaGUgSVBzZWMgcGFja2V0cyBhcnJpdmUgYXQgYXBwbGljYXRpb24gbGV2ZWwu IFRoaXMgcG9pbnRzIGF0IGEgc2VyaW91cyBoYXJkd2FyZSBpc3N1ZSBhcyBhIHBhY2tldCBpbnRl bmRlZCBmb3IgSVBzZWMgaGFzIHJlYWNoZWQNCj4gYXBwbGljYXRpb24gd2l0aG91dCBiZWluZyBJ UHNlYyBwcm9jZXNzZWQuIEFwcGxpY2F0aW9uIHdvdWxkIGNoZWNrIGlmIHNlc3Npb24gaXMgY3Jl YXRlZCBhbmQgc2luY2UgdGhlIHNlc3Npb24gaXMgYXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9mDQo+ IHByb2Nlc3NpbmcgdGhlIHBhY2tldCAoaW4gdGhlIGFwcGxpY2F0aW9uKSwgaXQgd291bGQgbG9v ayBsaWtlIGEgaGFyZHdhcmUgaXNzdWUgd2hlbiBpdCBpcyBqdXN0IGEgZmFsc2UgcG9zaXRpdmUu DQoNCkkgc3RpbGwgbm90IHN1cmUgd2h5IGlzIHRoYXQgYmlnIGRlYWwsIGJ1dCBvaywgY2FuIHdl IHRoZW4ganVzdCBkbw0KaXQgaW4gYSBkaWZmZXJlbnQgd2F5IGZvciBwb2xsIHZzIGV2ZW50IG1v ZGUgZm9yIG5vdzoNCmZvciBldmVudCBtb2RlIGRvIGRldl9zdGFydCgpIGFmdGVyIHNhX2luaXQo KSwNCmZvciBwb2xsIG1vZGUgbGVhdmUgdGhpbmdzIGFzIGl0IChkZXZfc3RhcnQoKSwgdGhlbiBz YV9pbml0KCkpLg0KV291bGQgdGhhdCBhZGRyZXNzIHRoZSBpc3N1ZT8NCg0KPiA+DQo+ID4gQWJv dXQgMikgLSBsb29raW5nIGF0IGl4Z2JlIGNvZGUsIEkgdGhpbmsgaXQgY2FuIGJlIGNoYW5nZWQg dG8gbWFrZSBpcHNlYyBmbG93cyB0bw0KPiA+IHN1cnZpdmUgZGV2aWNlIHN0YXJ0L3N0b3AgKHRo b3VnaCBtb3N0IGxpa2VseSBub3QgaW4gMjAuMDUgdGltZWZyYW1lKS4NCj4gPiBTbyBJIGFtIG5v dCBzdXJlIHNob3VsZCB3ZSBkbyBpdCBhdCBhbGwuDQo+ID4gT2J2aW91c2x5IGZvciBpeGdiZSAo d2l0aCAxSyBtYXggU0EpIGl0IGlzIG5vdCBhIHByb2JsZW0gdG8gc2F2ZSBleHRyYSBpbmZvIGFi b3V0DQo+ID4gSFcgZmxvd3MgYW5kIHJlc3RvcmUgdGhlbSBhZnRlciBzdG9wL3N0YXJ0Lg0KPiA+ IFRob3VnaCBmb3IgbW9kZXJuIGRldmljZXMgdGhhdCBtaWdodCBoYXZlIG1pbGxpb25zIG9mIGZs b3dzIG1haW50YWluaW5nIHN1Y2gNCj4gPiBpbmZvIGluIFBNRCBtaWdodCBiZWNvbWUgYSBzaWdu aWZpY2FudCBvdmVyaGVhZC4NCj4gPiBBcyBnZW5lcmljIHF1ZXN0aW9uIC0gaG93IFBNRCBzaG91 bGQgYmVoYXZlIGluIHN1Y2ggc2l0dWF0aW9uPw0KPiA+IFNob3VsZCBpdCBzdXBwb3J0IGZsb3dz IHN1cnZpdmFsIHRocm91Z2ggZGV2X3N0YXJ0L2Rldl9zdG9wLCBvciBzaG91bGQgaXQgYmUgYXBw DQo+ID4gcmVzcG9uc2liaWxpdHkgdG8gcmVwcm9ncmFtIGZsb3dzIGFmdGVyIGRldi1zdGFydC9k ZXZfc3RvcC4NCj4gDQo+IFtBbm9vYl0gSSBiZWxpZXZlIHRoZSBzcGVjIHRhbGtzIGFib3V0IHRo ZSBiZWhhdmlvciBkdXJpbmcgc3RhcnQvc3RvcCBhbmQgaW5pdGlhbGl6YXRpb24uDQo+IA0KPiAi RmxvdyBydWxlcyBhcmUgbm90IG1haW50YWluZWQgYmV0d2VlbiBzdWNjZXNzaXZlIHBvcnQgaW5p dGlhbGl6YXRpb25zLiBBbiBhcHBsaWNhdGlvbiBleGl0aW5nIHdpdGhvdXQgcmVsZWFzaW5nIHRo ZW0gYW5kIHJlc3RhcnRpbmcgbXVzdCByZS0NCj4gY3JlYXRlIHRoZW0gZnJvbSBzY3JhdGNoLiIN Cj4gDQo+ICJQTURzLCBub3QgYXBwbGljYXRpb25zLCBhcmUgcmVzcG9uc2libGUgZm9yIG1haW50 YWluaW5nIGZsb3cgcnVsZXMgY29uZmlndXJhdGlvbiB3aGVuIHN0b3BwaW5nIGFuZCByZXN0YXJ0 aW5nIGEgcG9ydCBvciBwZXJmb3JtaW5nIG90aGVyDQo+IGFjdGlvbnMgd2hpY2ggbWF5IGFmZmVj dCB0aGVtLiINCg0KQnV0IGl0IGFsc28gc2F5czoNCi0gRFBESyBkb2VzIG5vdCBrZWVwIHRyYWNr IG9mIGZsb3cgcnVsZXMgZGVmaW5pdGlvbnMgb3IgZmxvdyBydWxlIG9iamVjdHMNCj4gPiBhdXRv bWF0aWNhbGx5Lg0KPiA+ICAgQXBwbGljYXRpb25zIG1heSBrZWVwIHRyYWNrIG9mIHRoZSBmb3Jt ZXIgYW5kIG11c3Qga2VlcCB0cmFjayBvZiB0aGUgbGF0dGVyLg0KPiA+ICAgUE1EcyBtYXkgYWxz byBkbyBpdCBmb3IgaW50ZXJuYWwgbmVlZHMsIGhvd2V2ZXIgdGhpcyBtdXN0IG5vdCBiZSByZWxp ZWQgb24gYnkNCj4gPiBhcHBsaWNhdGlvbnMuDQoNCj4gDQo+IEZyb20gdGhlIGFib3ZlIHR3bywg Zm9sbG93aW5nIGlzIHdoYXQgSSBjb3VsZCBjb25jbHVkZSwNCj4gMS4gQWNyb3NzIGluaXRpYWxp emF0aW9ucyBydGVfZmxvdyBydWxlcyBhcmUgbm90IGV4cGVjdGVkIHRvIGJlIHJldGFpbmVkLg0K PiAyLiBBY3Jvc3MgcmVzdGFydHMgKGRldiBzdGFydC9zdG9wKSwgUE1EcyBoYXZlIHRvIGVuc3Vy ZSBydGVfZmxvdyBydWxlcyBzdXJ2aXZlLg0KDQpPaywgSSBnZXQgeW91ciBvcGluaW9uLCBidXQg SSB3b3VsZCBsaWtlIG1vcmUgaW5wdXQgZnJvbSB0aGUgcmVzdCBvZiB0aGUgY29tbXVuaXR5Lg0K SW4gcGFydGljdWxhciBmcm9tIFBNRC9mbG93L3NlY3VyaXR5IGRlc2lnbmVycy9tYWludGFpbmVy cy91c2Vycy4NClNob3VsZCBQTUQgYmUgcmVzcG9uc2libGUgZm9yIGtlZXBpbmcvcmVzdG9yaW5n IGFsbCBmbG93cyBydWxlcyBjb25maWcgYWNjcm9zcw0KZGV2X3N0YXJ0L2Rldl9zdG9wPw0KSWYg eWVzLCBkb2VzIGFueW9uZSBzZWUgYW55IGltcGxpY2F0aW9ucyB3aXRoIHRoYXQgaW4gdGVybXMg b2Y6DQotIGluY3JlYXNlZCBtZW1vcnkgZm9vdHByaW50DQotIHRpbWUgZGV2X3N0YXJ0IHdvdWxk IHRha2UNCi0gdGltZSBmbG93X3J1bGVfYWRkL2RlbCB3aWxsIHRha2UNCi0gcG9zc2libGUgc3Rv cmluZyBvZiBhdXRoL2NyeXB0byBrZXlzIGluc2lkZSB0aGUgUE1EDQogDQpCVFcsIEkgYXNzdW1l IHRoYXQgb2N0ZW9udHgyIGRvZXMga2VlcCBpcHNlYyAoYWxsPykgZmxvdyBydWxlcyBhY3Jvc3Mg ZGV2X3N0YXJ0L2Rldl9zdG9wPw0KSWYgc28sIGRvZXMgSFcgY2FuIGtlZXAgaXQsIG9yIFBNRCBy ZXN0b3JlcyBpdCBhdCBzdGFydD8NCk9yIHlvdSBqdXN0IHJlbHkgb24gdGFibGUgc2hhcmVkIGJl dHdlZW4gSFcgYW5kIFNXPyAgIA0KDQo+IEkgaGF2ZW4ndCBsb29rZWQgYXQgdGhlIGl4Z2JlIFBN RCB5ZXQsIGJ1dCB0ZWNobmljYWxseSBzdGFydC9zdG9wIHNob3VsZCBvbmx5IGJlIGFib3V0IHdo ZXRoZXIgdGhlIGRldmljZSBpcyBydW5uaW5nLiANCg0KTm90IG9ubHkuDQpJdCBkb2VzIEhXIHJl c2V0L2luaXQsICBzdGFydHMgUlgvVFggcXVldWVzLCBzZWxlY3RzIFJYL1RYIGZ1bmN0aW9ucywN CmFwcGxpZXMvcmVzdG9yZXMgc2V0dGluZ3MgdG8gSFcsIGV0Yy4gDQoNCj4gSSBiZWxpZXZlIHRo ZXJlIGFyZQ0KPiBvdGhlciBzZXR0aW5ncyBhbHNvIHdoaWNoIG5lZWQgdG8gYmUgcmV0YWluZWQg YmV0d2VlbiBzdGFydC9zdG9wLg0KPiANCj4gRnJvbSBodHRwczovL2RvYy5kcGRrLm9yZy9hcGkv cnRlX19ldGhkZXZfOGguaHRtbA0KPiANCj4gUGxlYXNlIG5vdGUgdGhhdCBzb21lIGNvbmZpZ3Vy YXRpb24gaXMgbm90IHN0b3JlZCBiZXR3ZWVuIGNhbGxzIHRvIHJ0ZV9ldGhfZGV2X3N0b3AoKS9y dGVfZXRoX2Rldl9zdGFydCgpLiBUaGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gd2lsbA0KPiBi ZSByZXRhaW5lZDoNCj4gDQo+IC0gTVRVDQo+IC0gZmxvdyBjb250cm9sIHNldHRpbmdzDQo+IC0g cmVjZWl2ZSBtb2RlIGNvbmZpZ3VyYXRpb24gKHByb21pc2N1b3VzIG1vZGUsIGFsbC1tdWx0aWNh c3QgbW9kZSwNCj4gICBoYXJkd2FyZSBjaGVja3N1bSBtb2RlLCBSU1MvVk1EUSBzZXR0aW5ncyBl dGMuKQ0KPiAtIFZMQU4gZmlsdGVyaW5nIGNvbmZpZ3VyYXRpb24NCj4gLSBkZWZhdWx0IE1BQyBh ZGRyZXNzDQo+IC0gTUFDIGFkZHJlc3NlcyBzdXBwbGllZCB0byBNQUMgYWRkcmVzcyBhcnJheQ0K PiAtIGZsb3cgZGlyZWN0b3IgZmlsdGVyaW5nIG1vZGUgKGJ1dCBub3QgZmlsdGVyaW5nIHJ1bGVz KQ0KPiAtIE5JQyBxdWV1ZSBzdGF0aXN0aWNzIG1hcHBpbmdzDQo+IA0KPiBGbG93IGRpcmVjdG9y IHJlZmVycyB0byBydGVfZmxvdywgcmlnaHQ/DQoNClllcywgYW5kIGl0IHNheXMgbW9kZSwgbm90 IHJ1bGVzLg0KIA0KPiA+IEkgbG9va2VkIHRocm91Z2ggUEcgZm9yIHJ0ZV9mbG93LCBhbmQgaXQg c2VlbXMgYSBiaXQgY29udmVyc2lvbmFsIGhlcmUgKGF0IGxlYXN0DQo+ID4gZm9yIG1lKToNCj4g PiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtDQo+ID4g M0FfX2RvYy5kcGRrLm9yZ19ndWlkZXNfcHJvZy01Rmd1aWRlX3J0ZS0NCj4gPiA1RmZsb3cuaHRt bCZkPUR3SUdhUSZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1qUGZCOHJ3d3ZpUlN4eUxXcw0K PiA+IDJuNkItDQo+ID4gV1lMbjF2OVN5VE1yVDVFUXFoMlRVJm09cFVhNlhIendWQTJJUDdVRWU1 Yjk4aG9zSG1IanhsTE9tbjNJeEgNCj4gPiBoWlFBQSZzPTJCTTRpeVNOeVMwc3Z6RzI2QjBQaUc4 aFFvQVQyY2xBdGt4aUpyeXRkYUkmZT0gICgxMS43KToNCj4gPiBGb3JtIG9uZSBzaWRlOg0KPiA+ IC0gRFBESyBkb2VzIG5vdCBrZWVwIHRyYWNrIG9mIGZsb3cgcnVsZXMgZGVmaW5pdGlvbnMgb3Ig ZmxvdyBydWxlIG9iamVjdHMNCj4gPiBhdXRvbWF0aWNhbGx5Lg0KPiA+ICAgQXBwbGljYXRpb25z IG1heSBrZWVwIHRyYWNrIG9mIHRoZSBmb3JtZXIgYW5kIG11c3Qga2VlcCB0cmFjayBvZiB0aGUg bGF0dGVyLg0KPiA+ICAgUE1EcyBtYXkgYWxzbyBkbyBpdCBmb3IgaW50ZXJuYWwgbmVlZHMsIGhv d2V2ZXIgdGhpcyBtdXN0IG5vdCBiZSByZWxpZWQgb24gYnkNCj4gPiBhcHBsaWNhdGlvbnMuDQo+ ID4gQnV0IGEgYml0IGJlbG93Og0KPiA+IC0gUE1Ecywgbm90IGFwcGxpY2F0aW9ucywgYXJlIHJl c3BvbnNpYmxlIGZvciBtYWludGFpbmluZyBmbG93IHJ1bGVzDQo+ID4gY29uZmlndXJhdGlvbg0K PiA+ICAgIHdoZW4gc3RvcHBpbmcgYW5kIHJlc3RhcnRpbmcgYSBwb3J0IG9yIHBlcmZvcm1pbmcg b3RoZXIgYWN0aW9ucyB3aGljaCBtYXkNCj4gPiBhZmZlY3QgdGhlbS4NCj4gPiAgIFRoZXkgY2Fu IG9ubHkgYmUgZGVzdHJveWVkIGV4cGxpY2l0bHkgYnkgYXBwbGljYXRpb25zLg0KPiA+DQo+ID4g V291bGQgbGlrZSB0byBrbm93IHdoYXQgcnRlX2Zsb3cgbWFpbnRhaW5lcnMgYW5kIG90aGVyIGlu dGVyZXN0ZWQgcGFydGllcyB0aGluaw0KPiA+IGFib3V0IGl0Pw0KPiANCj4gW0Fub29iXSBJIGRv IGFncmVlIHRoYXQgdGhlIGFib3ZlIHR3byBwb2ludHMgY2FuIGJlIG1pc2xlYWRpbmcuIEJ1dCBp dCBhY3R1YWxseSBkZXNjcmliZXMgdGhlIHVzYWdlIG9mIHJ0ZV9mbG93IEFQSS4NCj4gDQo+IDEu ICJEUERLIGRvZXMgbm90IGtlZXAgdHJhY2sgb2YgZmxvdyBydWxlcyBkZWZpbml0aW9ucyBvciBm bG93IHJ1bGUgb2JqZWN0cyBhdXRvbWF0aWNhbGx5LiBBcHBsaWNhdGlvbnMgbWF5IGtlZXAgdHJh Y2sgb2YgdGhlIGZvcm1lciBhbmQNCj4gbXVzdCBrZWVwIHRyYWNrIG9mIHRoZSBsYXR0ZXIuIg0K PiBEUERLIHJ0ZV9mbG93IHNwZWMgZG9lc24ndCBwcm92aWRlIGFuIEFQSSB0byBjaGVjayBpZiBh IHJ1bGUgaXMgYWxyZWFkeSBjcmVhdGVkLiBBcHBsaWNhdGlvbiBpcyBjb25maWd1cmluZyBoYXJk d2FyZSByZXNvdXJjZXMgdXNpbmcgcnRlX2Zsb3cNCj4gYW5kIGl0IGhhcyB0byBrZWVwIHRyYWNr IG9mIHdoYXQgaXMgY29uZmlndXJlZC4NCj4gDQo+IDIuICJQTURzLCBub3QgYXBwbGljYXRpb25z LCBhcmUgcmVzcG9uc2libGUgZm9yIG1haW50YWluaW5nIGZsb3cgcnVsZXMgY29uZmlndXJhdGlv biB3aGVuIHN0b3BwaW5nIGFuZCByZXN0YXJ0aW5nIGEgcG9ydCBvciBwZXJmb3JtaW5nDQo+IG90 aGVyIGFjdGlvbnMgd2hpY2ggbWF5IGFmZmVjdCB0aGVtLiINCj4gSW4gdGhpcyBjYXNlLCB3ZSBh cmUgdGFsa2luZyBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIGhhcmR3YXJlLiBPbmNlIHRoZSBydWxl cyBhcmUgY29uZmlndXJlZCwgaXQgc2hvdWxkIHN1cnZpdmUgYWNyb3NzIHN0b3Atc3RhcnQuIEFw cGxpY2F0aW9uIGlzDQo+IG5vdCByZXF1aXJlZCB0byBkZXN0cm95IGFuZCBjcmVhdGUgcnRlX2Zs b3dzIGluIHN1Y2ggY2FzZS4NCj4gDQo+IEluIGZpcnN0IGNhc2UsIHdlIGFyZSB0YWxraW5nIGFi b3V0IHJ0ZV9mbG93IG9iamVjdHMgJiBydWxlcyAobGlrZSBzZXNzaW9uIGluIGNhc2Ugb2YgcnRl X3NlY3VyaXR5KSBhbmQgaW4gdGhlIHNlY29uZCB3ZSBhcmUgdGFsa2luZyBhYm91dA0KPiBoYXJk d2FyZSBzdGF0ZS4NCj4gDQo+IEkgdGhpbmsgdGhpcyBwYXRjaCBjYW4gYmUgZGVsYXllZCB0aWxs IGl4Z2JlIGNhbiBiZSBmaXhlZC4gSGF2aW5nIGl0IGluIDIwLjA4IHRpbWVmcmFtZSBzaG91bGQg YmUgZmluZS4NCj4gDQo+ID4NCj4gPiBLb25zdGFudGluDQo+ID4NCj4gPiA+DQo+ID4gPiBUaGFu a3MsDQo+ID4gPiBMdWthc3oNCj4gPiA+DQo+ID4gPiBPbiAxNi4wNC4yMDIwIDE0OjI4LCBMdWth cyBCYXJ0b3NpayBbQ10gd3JvdGU6DQo+ID4gPiA+IEhpIEtvbnN0YW50aW4sDQo+ID4gPiA+DQo+ ID4gPiA+IFBsZWFzZSBzZWUgbXkgYW5zd2VyIGJlbG93Lg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFu a3MsDQo+ID4gPiA+IEx1a2Fzeg0KPiA+ID4gPg0KPiA+ID4gPiBPbiAxNi4wNC4yMDIwIDAxOjQ3 LCBBbmFueWV2LCBLb25zdGFudGluIHdyb3RlOg0KPiA+ID4gPj4gRXh0ZXJuYWwgRW1haWwNCj4g PiA+ID4+DQo+ID4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+PiAtLS0NCj4gPiA+ID4+DQo+ID4g PiA+Pg0KPiA+ID4gPj4gSGkgTHVrYXN6LA0KPiA+ID4gPj4NCj4gPiA+ID4+PiBIaSBLb25zdGFu dGluLA0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4gSW4gdGhpcyBwYXRjaCBJIG1vdmVkIHRoZSBzYV9p bml0KCkgYmVmb3JlIHJ0ZV9ldGhfZGV2X3N0YXJ0KCkgaW4NCj4gPiA+ID4+PiBvcmRlciB0byBh dm9pZCBkcm9wcGluZyBvZiBJUHNlYyBwa3RzIHdoZW4gYSB0cmFmZmljIGZsb3dzIGFuZCB0aGUg aXBzZWMtDQo+ID4gc2VjZ3cgYXBwbGljYXRpb24gaXMgc3RhcnRlZC4NCj4gPiA+ID4+Pg0KPiA+ ID4gPj4+IEhvd2V2ZXIgSSByZW1lbWJlciB0aGF0IGR1cmluZyByZXZpZXcgb2YgZXZlbnQgbW9k ZSBwYXRjaGVzIHlvdQ0KPiA+ID4gPj4+IG1lbnRpb25lZCB0aGF0IG1vdmluZyBzYV9pbml0KCkg YmVmb3JlIHJ0ZV9ldGhfZGV2X3N0YXJ0KCkgaXMgYW4NCj4gPiA+ID4+PiBpc3N1ZSBmb3Igb25l IG9mIHRoZSBJbnRlbCBkcml2ZXJzLg0KPiA+ID4gPj4NCj4gPiA+ID4+IFllcywgSSB0aGluayBz by4NCj4gPiA+ID4+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1o dHRwLTNBX19tYWlscy5kcGRrLm9yZ18NCj4gPiA+ID4+IGFyY2hpdmVzX2Rldl8yMDE5LQ0KPiA+ ID4NCj4gPiAyRERlY2VtYmVyXzE1MzkwOC5odG1sJmQ9RHdJR2FRJmM9bktqV2VjMmI2UjBtT3lQ YXo3eHRmUSZyPVNjaFINCj4gPiBIaEU3R0xDDQo+ID4gPiBqRVk0aTJhMWJ5akNfRnBXZ1JMdHE0 LQ0KPiA+ID4ga0x2S3AzXzg0Jm09dzN4aDk0T3g0eEloYWJmRS0NCj4gPiBuRDJWYkVXYmgySlRt aXNjVk1iNnBKWmNZbyZzPTlyRHRSUEdLMlFCRA0KPiA+ID4gQWNZOFZRZjBIUXpYSU50UXp1Y3dJ eFU3REIyTkQ1cyZlPQ0KPiA+ID4gPj4gTW92aW5nIHRoYXQgcGllY2Ugb2YgY29kZSAoZGV2X3N0 YXJ0KSBhZnRlciBzYV9pbml0KCkgYnJlYWtzIGl4Z2JlIGlubGluZS0NCj4gPiBjcnlwdG8gc3Vw cG9ydC4NCj4gPiA+ID4+IEFzIEkgdW5kZXJzdGFuZCwgYmVjYXVzZSBjb25maWd1cmVkIGlwc2Vj IGZsb3dzIGRvbid0IHBlcnNpc3QgZGV2X3N0YXJ0KCkuDQo+ID4gPiA+PiBBdCBsZWFzdCBmb3Ig aXhnYmUgUE1ELg0KPiA+ID4gPj4gQW55IHJlYXNvbiB3aHkgdG8gbW92ZSB0aGF0IGNvZGUgYXQg YWxsPw0KPiA+ID4gPj4NCj4gPiA+ID4NCj4gPiA+ID4gW0x1a2Fzel0gV2UncmUgb2JzZXJ2aW5n IGlzc3VlIGluIGlubGluZSBtb2RlLiBXaGVuIHRyYWZmaWMgZmxvd3MNCj4gPiA+ID4gYW5kIGlw c2VjLXNlY2d3IGFwcGxpY2F0aW9uIGlzIHN0YXJ0ZWQgdGhlbiBmb3Igc2hvcnQgcGVyaW9kIG9m IHRpbWUNCj4gPiA+ID4gaW5saW5lIGlzIG5vdCBhcHBsaWVkIGJ5IEhXIGFuZCBJUHNlYyBwYWNr ZXRzIHJlYWNoIHRoZSBhcHBsaWNhdGlvbi4NCj4gPiA+ID4gVGhpcyBpcyBiZWNhdXNlDQo+ID4g PiA+IHNhX2luaXQoKSAod2hpY2ggY3JlYXRlcyBzZWN1cml0eSBhc3NvY2lhdGlvbnMgU0FzIGZv ciBIVykgaXMgZXhlY3V0ZWQgYWZ0ZXINCj4gPiBydGVfZXRoX2Rldl9zdGFydCgpLg0KPiA+ID4g PiBUaGF0J3MgdGhlIHJlYXNvbiBJIG1vdmVkIHRoZSBjb2RlLiBBbmQgdGhhdCBtb3ZlbWVudCBm aXhlcyB0aGUNCj4gPiA+ID4gaXNzdWUgYmVjYXVzZSBub3cgU0FzIGFyZSBhbHJlYWR5IGNyZWF0 ZWQgd2hlbiBldGggcG9ydHMgYXJlIHN0YXJ0ZWQuDQo+ID4gPiA+DQo+ID4gPiA+IFdvdWxkIGl0 IGJlIHBvc3NpYmxlIHRvIGZpeCB0aGUgaXhnYmUgc28gdGhhdCBTQXMgd291bGQgc3Vydml2ZQ0K PiA+IHJ0ZV9ldGhfZGV2X3N0YXJ0KCkgPw0KPiA+ID4gPiBEbyB5b3UgaGF2ZSBhbnkgb3RoZXIg aWRlYSBob3cgd2UgY291bGQgY292ZXIgYm90aCBjYXNlcyA/DQo+ID4gPiA+DQo+ID4gPiA+PiAg PiBJcyB0aGlzIHN0aWxsIHRoZSBjYXNlID8NCj4gPiA+ID4+DQo+ID4gPiA+PiBBRkFJSywgeWVz Lg0KPiA+ID4gPj4gVGhhbmtzIGZvciBicmluZ2luZyBpdCB0byBhdHRlbnRpb24uDQo+ID4gPiA+ PiBLb25zdGFudGluDQo+ID4gPiA+Pg0KPiA+ID4gPj4NCj4gPiA+ID4+Pg0KPiA+ID4gPj4+IFRo YW5rcywNCj4gPiA+ID4+PiBMdWthc3oNCj4gPiA+ID4+Pg0KPiA+ID4gPj4+IE9uIDA4LjA0LjIw MjAgMTM6MzIsIEx1a2FzeiBCYXJ0b3NpayB3cm90ZToNCj4gPiA+ID4+Pj4gSW4gaW5saW5lIGV2 ZW50IG1vZGUgd2hlbiB0cmFmZmljIGZsb3dzIGFuZCB0aGUgaXBzZWMtc2VjZ3cgYXBwDQo+ID4g PiA+Pj4+IGlzIHN0YXJ0ZWQgdGhlbiBmb3Igc2hvcnQgcGVyaW9kIG9mIHRpbWUgSVBzZWMgcGFj a2V0cyBhcnJpdmUgYXQNCj4gPiA+ID4+Pj4gYXBwbGljYXRpb24gd2l0aG91dCBiZWluZyBkZWNy eXB0ZWQgYW5kIGFyZSBkcm9wcGVkIGJ5IHRoZQ0KPiA+ID4gPj4+PiBhcHBsaWNhdGlvbi4gVGhp cyBoYXBwZW5zIGJlY2F1c2UgZXRoIHBvcnRzIGFyZSBzdGFydGVkIGJlZm9yZQ0KPiA+ID4gPj4+ PiBjcmVhdGlvbiBvZiBpbmxpbmUgc2Vzc2lvbnMgYW5kIElQc2VjIGZsb3dzLiBUaGlzIGZpeCBy ZWFycmFuZ2VzDQo+ID4gPiA+Pj4+IHRoZSBjb2RlIGluIHN1Y2ggYSB3YXkgdGhhdCBldGggcG9y dHMgYXJlIGFsd2F5cyBzdGFydGVkIGFmdGVyDQo+ID4gPiA+Pj4+IGNyZWF0aW9uIG9mIGlubGlu ZSBzZXNzaW9ucyBhbmQgSVBzZWMgZmxvd3MuDQo+ID4gPiA+Pj4+DQo+ID4gPiA+Pj4+IENoYW5n ZS1JZDogSWZkZGM0NDYwODJmYjI4OTdmODE1NTk1MTdmOTBlMWVlNjAzZTEzZjMNCj4gPiA+ID4+ Pj4gU2lnbmVkLW9mZi1ieTogTHVrYXN6IEJhcnRvc2lrIDxsYmFydG9zaWtAbWFydmVsbC5jb20+ DQo+ID4gPiA+Pj4+IC0tLQ0KPiA+ID4gPj4+PiAgZXhhbXBsZXMvaXBzZWMtc2VjZ3cvZXZlbnRf aGVscGVyLmMgfCAyNg0KPiA+ID4gPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgZXhh bXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYyAgfA0KPiA+ID4gPj4+PiAyNiArKysrKysr KysrKysrLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNl cnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkNCj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pj4gZGlmZiAt LWdpdCBhL2V4YW1wbGVzL2lwc2VjLXNlY2d3L2V2ZW50X2hlbHBlci5jDQo+ID4gPiA+Pj4+IGIv ZXhhbXBsZXMvaXBzZWMtc2VjZ3cvZXZlbnRfaGVscGVyLmMNCj4gPiA+ID4+Pj4gaW5kZXggMDc2 ZjFmMi4uZGE4NjFlNCAxMDA2NDQNCj4gPiA+ID4+Pj4gLS0tIGEvZXhhbXBsZXMvaXBzZWMtc2Vj Z3cvZXZlbnRfaGVscGVyLmMNCj4gPiA+ID4+Pj4gKysrIGIvZXhhbXBsZXMvaXBzZWMtc2VjZ3cv ZXZlbnRfaGVscGVyLmMNCj4gPiA+ID4+Pj4gQEAgLTE1MjYsNyArMTUyNiw2IEBAIGludDMyX3QN Cj4gPiA+ID4+Pj4gIGVoX2RldnNfaW5pdChzdHJ1Y3QgZWhfY29uZiAqY29uZikgIHsNCj4gPiA+ ID4+Pj4gIAlzdHJ1Y3QgZXZlbnRtb2RlX2NvbmYgKmVtX2NvbmY7DQo+ID4gPiA+Pj4+IC0JdWlu dDE2X3QgcG9ydF9pZDsNCj4gPiA+ID4+Pj4gIAlpbnQgcmV0Ow0KPiA+ID4gPj4+Pg0KPiA+ID4g Pj4+PiAgCWlmIChjb25mID09IE5VTEwpIHsNCj4gPiA+ID4+Pj4gQEAgLTE1NTgsMTYgKzE1NTcs NiBAQCBlaF9kZXZzX2luaXQoc3RydWN0IGVoX2NvbmYgKmNvbmYpDQo+ID4gPiA+Pj4+ICAJLyog RGlzcGxheSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uICovDQo+ID4gPiA+Pj4+ICAJZWhfZGlz cGxheV9jb25mKGNvbmYpOw0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+PiAtCS8qIFN0b3AgZXRoIGRl dmljZXMgYmVmb3JlIHNldHRpbmcgdXAgYWRhcHRlciAqLw0KPiA+ID4gPj4+PiAtCVJURV9FVEhf Rk9SRUFDSF9ERVYocG9ydF9pZCkgew0KPiA+ID4gPj4+PiAtDQo+ID4gPiA+Pj4+IC0JCS8qIFVz ZSBvbmx5IHRoZSBwb3J0cyBlbmFibGVkICovDQo+ID4gPiA+Pj4+IC0JCWlmICgoY29uZi0+ZXRo X3BvcnRtYXNrICYgKDEgPDwgcG9ydF9pZCkpID09IDApDQo+ID4gPiA+Pj4+IC0JCQljb250aW51 ZTsNCj4gPiA+ID4+Pj4gLQ0KPiA+ID4gPj4+PiAtCQlydGVfZXRoX2Rldl9zdG9wKHBvcnRfaWQp Ow0KPiA+ID4gPj4+PiAtCX0NCj4gPiA+ID4+Pj4gLQ0KPiA+ID4gPj4+PiAgCS8qIFNldHVwIGV2 ZW50ZGV2ICovDQo+ID4gPiA+Pj4+ICAJcmV0ID0gZWhfaW5pdGlhbGl6ZV9ldmVudGRldihlbV9j b25mKTsNCj4gPiA+ID4+Pj4gIAlpZiAocmV0IDwgMCkgew0KPiA+ID4gPj4+PiBAQCAtMTU4OSwy MSArMTU3OCw2IEBAIGVoX2RldnNfaW5pdChzdHJ1Y3QgZWhfY29uZiAqY29uZikNCj4gPiA+ID4+ Pj4gIAkJcmV0dXJuIHJldDsNCj4gPiA+ID4+Pj4gIAl9DQo+ID4gPiA+Pj4+DQo+ID4gPiA+Pj4+ IC0JLyogU3RhcnQgZXRoIGRldmljZXMgYWZ0ZXIgc2V0dGluZyB1cCBhZGFwdGVyICovDQo+ID4g PiA+Pj4+IC0JUlRFX0VUSF9GT1JFQUNIX0RFVihwb3J0X2lkKSB7DQo+ID4gPiA+Pj4+IC0NCj4g PiA+ID4+Pj4gLQkJLyogVXNlIG9ubHkgdGhlIHBvcnRzIGVuYWJsZWQgKi8NCj4gPiA+ID4+Pj4g LQkJaWYgKChjb25mLT5ldGhfcG9ydG1hc2sgJiAoMSA8PCBwb3J0X2lkKSkgPT0gMCkNCj4gPiA+ ID4+Pj4gLQkJCWNvbnRpbnVlOw0KPiA+ID4gPj4+PiAtDQo+ID4gPiA+Pj4+IC0JCXJldCA9IHJ0 ZV9ldGhfZGV2X3N0YXJ0KHBvcnRfaWQpOw0KPiA+ID4gPj4+PiAtCQlpZiAocmV0IDwgMCkgew0K PiA+ID4gPj4+PiAtCQkJRUhfTE9HX0VSUigiRmFpbGVkIHRvIHN0YXJ0IGV0aCBkZXYgJWQsICVk IiwNCj4gPiA+ID4+Pj4gLQkJCQkgICBwb3J0X2lkLCByZXQpOw0KPiA+ID4gPj4+PiAtCQkJcmV0 dXJuIHJldDsNCj4gPiA+ID4+Pj4gLQkJfQ0KPiA+ID4gPj4+PiAtCX0NCj4gPiA+ID4+Pj4gLQ0K PiA+ID4gPj4+PiAgCXJldHVybiAwOw0KPiA+ID4gPj4+PiAgfQ0KPiA+ID4gPj4+Pg0KPiA+ID4g Pj4+PiBkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYw0KPiA+ ID4gPj4+PiBiL2V4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMNCj4gPiA+ID4+Pj4g aW5kZXggNWZkZTRmNy4uZTAzYmQ4OSAxMDA2NDQNCj4gPiA+ID4+Pj4gLS0tIGEvZXhhbXBsZXMv aXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYw0KPiA+ID4gPj4+PiArKysgYi9leGFtcGxlcy9pcHNl Yy1zZWNndy9pcHNlYy1zZWNndy5jDQo+ID4gPiA+Pj4+IEBAIC0yODI5LDYgKzI4MjksMTkgQEAg bWFpbihpbnQzMl90IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiA+ID4gPj4+PiAgCWlmIChyZXQgPCAw KQ0KPiA+ID4gPj4+PiAgCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsICJlaF9kZXZzX2luaXQgZmFp bGVkLCBlcnI9JWRcbiIsIHJldCk7DQo+ID4gPiA+Pj4+DQo+ID4gPiA+Pj4+ICsJLyogUmVwbGlj YXRlIGVhY2ggY29udGV4dCBwZXIgc29ja2V0ICovDQo+ID4gPiA+Pj4+ICsJZm9yIChpID0gMDsg aSA8IE5CX1NPQ0tFVFMgJiYgaSA8IHJ0ZV9zb2NrZXRfY291bnQoKTsgaSsrKSB7DQo+ID4gPiA+ Pj4+ICsJCXNvY2tldF9pZCA9IHJ0ZV9zb2NrZXRfaWRfYnlfaWR4KGkpOw0KPiA+ID4gPj4+PiAr CQlpZiAoKHNvY2tldF9jdHhbc29ja2V0X2lkXS5tYnVmX3Bvb2wgIT0gTlVMTCkgJiYNCj4gPiA+ ID4+Pj4gKwkJCShzb2NrZXRfY3R4W3NvY2tldF9pZF0uc2FfaW4gPT0gTlVMTCkgJiYNCj4gPiA+ ID4+Pj4gKwkJCShzb2NrZXRfY3R4W3NvY2tldF9pZF0uc2Ffb3V0ID09IE5VTEwpKSB7DQo+ID4g PiA+Pj4+ICsJCQlzYV9pbml0KCZzb2NrZXRfY3R4W3NvY2tldF9pZF0sIHNvY2tldF9pZCk7DQo+ ID4gPiA+Pj4+ICsJCQlzcDRfaW5pdCgmc29ja2V0X2N0eFtzb2NrZXRfaWRdLCBzb2NrZXRfaWQp Ow0KPiA+ID4gPj4+PiArCQkJc3A2X2luaXQoJnNvY2tldF9jdHhbc29ja2V0X2lkXSwgc29ja2V0 X2lkKTsNCj4gPiA+ID4+Pj4gKwkJCXJ0X2luaXQoJnNvY2tldF9jdHhbc29ja2V0X2lkXSwgc29j a2V0X2lkKTsNCj4gPiA+ID4+Pj4gKwkJfQ0KPiA+ID4gPj4+PiArCX0NCj4gPiA+ID4+Pj4gKw0K PiA+ID4gPj4+PiAgCS8qIHN0YXJ0IHBvcnRzICovDQo+ID4gPiA+Pj4+ICAJUlRFX0VUSF9GT1JF QUNIX0RFVihwb3J0aWQpIHsNCj4gPiA+ID4+Pj4gIAkJaWYgKChlbmFibGVkX3BvcnRfbWFzayAm ICgxIDw8IHBvcnRpZCkpID09IDApIEBAIC0yODY2LDE5DQo+ID4gPiA+Pj4+ICsyODc5LDYgQEAg bWFpbihpbnQzMl90IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiA+ID4gPj4+PiAgCQkJcnRlX2V4aXQo RVhJVF9GQUlMVVJFLCAiZmFpbGVkIGF0IHJlYXNzZW1ibGUgaW5pdCIpOw0KPiA+ID4gPj4+PiAg CX0NCj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pj4gLQkvKiBSZXBsaWNhdGUgZWFjaCBjb250ZXh0IHBl ciBzb2NrZXQgKi8NCj4gPiA+ID4+Pj4gLQlmb3IgKGkgPSAwOyBpIDwgTkJfU09DS0VUUyAmJiBp IDwgcnRlX3NvY2tldF9jb3VudCgpOyBpKyspIHsNCj4gPiA+ID4+Pj4gLQkJc29ja2V0X2lkID0g cnRlX3NvY2tldF9pZF9ieV9pZHgoaSk7DQo+ID4gPiA+Pj4+IC0JCWlmICgoc29ja2V0X2N0eFtz b2NrZXRfaWRdLm1idWZfcG9vbCAhPSBOVUxMKSAmJg0KPiA+ID4gPj4+PiAtCQkJKHNvY2tldF9j dHhbc29ja2V0X2lkXS5zYV9pbiA9PSBOVUxMKSAmJg0KPiA+ID4gPj4+PiAtCQkJKHNvY2tldF9j dHhbc29ja2V0X2lkXS5zYV9vdXQgPT0gTlVMTCkpIHsNCj4gPiA+ID4+Pj4gLQkJCXNhX2luaXQo JnNvY2tldF9jdHhbc29ja2V0X2lkXSwgc29ja2V0X2lkKTsNCj4gPiA+ID4+Pj4gLQkJCXNwNF9p bml0KCZzb2NrZXRfY3R4W3NvY2tldF9pZF0sIHNvY2tldF9pZCk7DQo+ID4gPiA+Pj4+IC0JCQlz cDZfaW5pdCgmc29ja2V0X2N0eFtzb2NrZXRfaWRdLCBzb2NrZXRfaWQpOw0KPiA+ID4gPj4+PiAt CQkJcnRfaW5pdCgmc29ja2V0X2N0eFtzb2NrZXRfaWRdLCBzb2NrZXRfaWQpOw0KPiA+ID4gPj4+ PiAtCQl9DQo+ID4gPiA+Pj4+IC0JfQ0KPiA+ID4gPj4+PiAtDQo+ID4gPiA+Pj4+ICAJY2hlY2tf YWxsX3BvcnRzX2xpbmtfc3RhdHVzKGVuYWJsZWRfcG9ydF9tYXNrKTsNCj4gPiA+ID4+Pj4NCj4g PiA+ID4+Pj4gIAkvKiBsYXVuY2ggcGVyLWxjb3JlIGluaXQgb24gZXZlcnkgbGNvcmUgKi8NCj4g PiA+ID4+PiA+DQo=