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 14C6FA0C47; Tue, 6 Jul 2021 10:31:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7896240688; Tue, 6 Jul 2021 10:31:12 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id A8AFD4067E for ; Tue, 6 Jul 2021 10:31:10 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10036"; a="208896647" X-IronPort-AV: E=Sophos;i="5.83,328,1616482800"; d="scan'208";a="208896647" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2021 01:31:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,328,1616482800"; d="scan'208";a="491241586" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga001.jf.intel.com with ESMTP; 06 Jul 2021 01:31:08 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 6 Jul 2021 01:31:08 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 6 Jul 2021 01:31:08 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Tue, 6 Jul 2021 01:31:08 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Tue, 6 Jul 2021 01:31:07 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hr1N5riQl5BLdOIIN9RBskQ+WSoMltyapJIMRAQKSDuejRgc7FJZflqLGrGaYPI7bDDTvvEKfggOO4l6wwEScNe18RMzBJNp1skUDkrBwi8mtMSAOIgdAvHYSHwZcyWTf/CfGmPwwMfHlJpizYbbSUb3bnSle0WIOh82Qm5NPAeRptB1MNLYz4D/f3uuAHuCwuZeVz8y865sNbJuns3rhzW4nJ93xrgzJO+8DBFsTtnx/wVeaRry7vSm3cI33d99Yf4wh5Jh4+FcEBVJQPHNK0tqP4ZNOLIjnIH34YXG527J97UwOJFSNkz7ThHVMsHpe2Pwll1j/wSAIVyPae6jpA== 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=LL2CiNeE11Fk5n7gZm0uR+cAy/NTwfJ/C+EdJaJGzoE=; b=hwL29cmD7dCQCuRKkoF2UadFqCw80MNCRIrKLWNKe87IpWshgin9Nri6QIMYyrGl7ForO9+Whktg7sbpA76CMc2izaaOQclhfL5r+L18P2mI5JxwmbfxRsFs+DF6mi2lDgArlfjvn784ky9zaVtkkgMzH+Ya7NaIaxAPnmHve5MLMWVuqiA1HizC29j+R6hSwM5fkEU5ga+LTzJwht13xVbdSruBxEhjBcymyVONhjIYEwehNX8o4pcJi9BWeIYwzpbPPDy4EjR0sqxdPNHi044MzK6p+a45XH1v8No3dpZ5bfB7iLUvF6McMQGJieNVV6MalqEAmJ84a/xfekKxGw== 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=LL2CiNeE11Fk5n7gZm0uR+cAy/NTwfJ/C+EdJaJGzoE=; b=s18gHnFAt1tRSRPMccDnzwJt2xSf6FLGp2bqARUSXxwr21iORA9A/sjvPBsOTvG/oNnI0ZKVGaewd8hN8+hud8abFCaTJihfon3xkRKhNZDLw7HgDjBel5EkKH/hKYxTJpxw+oWomdX64wDOr64z4tUpuWfxebBhsoH6xefLnIE= Received: from BN9PR11MB5513.namprd11.prod.outlook.com (2603:10b6:408:102::11) by BN7PR11MB2738.namprd11.prod.outlook.com (2603:10b6:406:b3::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.23; Tue, 6 Jul 2021 08:31:04 +0000 Received: from BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::e9c1:3649:2c25:6e27]) by BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::e9c1:3649:2c25:6e27%3]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 08:31:04 +0000 From: "Ding, Xuan" To: Maxime Coquelin , "Burakov, Anatoly" , "Xia, Chenbo" , "Thomas Monjalon" , David Marchand CC: "dev@dpdk.org" , "Hu, Jiayu" , "Pai G, Sunil" , "Richardson, Bruce" , "Van Haaren, Harry" , "Liu, Yong" , "Ma, WenwuX" Thread-Topic: [dpdk-dev] [PATCH v5 1/2] vhost: enable IOMMU for async vhost Thread-Index: AQHXcXpqbvUY9amCikO+ie2Du6+0b6s0TBaAgAAIPICAAB/9gA== Date: Tue, 6 Jul 2021 08:31:04 +0000 Message-ID: References: <20210531150629.35020-1-xuan.ding@intel.com> <20210705084026.99898-1-xuan.ding@intel.com> <20210705084026.99898-2-xuan.ding@intel.com> <37d0691a-5094-4fea-8557-d117d230dcc8@intel.com> <68f64aa6-59a8-2e17-6eab-a49a6682e626@redhat.com> In-Reply-To: <68f64aa6-59a8-2e17-6eab-a49a6682e626@redhat.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.46.54] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b978c69d-8cc8-4cd0-4100-08d940586537 x-ms-traffictypediagnostic: BN7PR11MB2738: 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-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JimLCaXAvifGhE6loQwh11sLml3kQ3N/ajJnSffkt23tAMvgGdXwkxKpBOgln9QS3/OBpXuT/ynpt/NzAG+tNgRSmqinvneFizirwnGUdJcR9in9hSAXwsOQ0vTuVJCuFZR1wxJX0kV7+yjCIZKpuAi4i9azeFTOLalHFCbuZ3EJ3EVTZVSQYrXsrQggcVGaRDLybfru/AgV9+BlJ2zdFgDkuTz2sM4wF4gT9Ma5YK3nfBlwHCuaqCSTe35fn5ROxd6dbX2UDic1R7GfqFAl7JshgOUBku4O1syx0HbO4SBFBwSBxZ7Dtax2ioP2QTTfnd/QK/TGu8rVLhIQU6CpMaJTjUQcls+GwDcYykRMvfvrHY/lFjlT7DMrOwHY3Vncw/hA6B/EDDD4LKr3+lAPBQ/4tbImeI+Kiidwtd2Xf9s9kXsArNyUppvin+VwVmdn1Kdd2kFIu3qJUsR2GooXYdVl8E6Jw5ZdsCMqceftU4RUNe8CxYfd3MIjx/tbhiNap2v9wG7f9aG/UySCYx4nsBO2lHTAk+GLjcwJKOpAg3t9ZfifvMBsiUCz7ElhYg/zHWr605gWUcyp2nCAsdT/sZ2O0dl82ejubZem8uPDLjGQycki4bUsy0S9fqhRqOs79CcxJi7Cc5pnObeC/CJ81g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5513.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(376002)(346002)(396003)(366004)(39860400002)(136003)(71200400001)(26005)(4326008)(83380400001)(186003)(2906002)(53546011)(107886003)(55016002)(6506007)(8936002)(8676002)(7696005)(9686003)(66446008)(54906003)(478600001)(64756008)(66946007)(33656002)(122000001)(316002)(76116006)(52536014)(110136005)(86362001)(66476007)(66556008)(38100700002)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VUtRZHVXVmVCTzFaUElvTXpzNjBtVG9hUkR0dU5CUjNETGV1elZ3ZkxyR3pp?= =?utf-8?B?MjBpQXI1K0JsVnZIZFlMS1h2NExLdUVuUHlud0dLZUt6M2V3eTM1K0ZuWXFL?= =?utf-8?B?SUREZVhXOXRtUmRzb3BoOGg1d0hnOTRPNzF5REM1aFluTlN6U01jMTYxUjNY?= =?utf-8?B?SkpnOW5YN3h1eDdqNnBtcGVqNGNYT1BGaFJXSm80RzErV0V3Y2hYQ3ZwbnBB?= =?utf-8?B?YkRGdkc3MzlvTHB1NG5EWjJwWng1b3V4TnV4eGFUMHZsMkxPVkpxUkNUdmJP?= =?utf-8?B?RFhwd1QyWXpkR2tMY0NwVWIvaklSaWVZYVYrcmY5OHRUamdQL09mWjltcWFZ?= =?utf-8?B?Q29UVXRoc2VuTXVNVXh4b0tYV0hjNHE4L051bzNjWW83RzlweURhOEFvUWpV?= =?utf-8?B?bHoxYmI3U0MwK3NLZ2JER0hoczZRa2pybHYweTR0R2dPNTRnZzBDamhUcFhs?= =?utf-8?B?d0hoR3kyVFVUNGJxVnQxeTJBaE5WTVBHZWVkZnZ3blY2SEhKMWx2U3lwZHdB?= =?utf-8?B?cTBMTXk1a2VZK0NKNW1pZXVTR1pZK3NaK3pXd2RNUS9ObDQ2dXpacGdFTlUy?= =?utf-8?B?WEVENFBVS1ljTm0rSlhWS0dXb2l3TUJFR25KdFhDZk13NC84Lys5bFBCWVVH?= =?utf-8?B?SS9pUmg2bzlQUk5iY2pzQnNuT0Q4SVY5VjgwbEJNUVF1ZXQzT2laVDN1ZjVm?= =?utf-8?B?RlFnSlhLbGRzTFBmWktUMEZvWm5rQnJib2VaQkZGek5sWUNVMGMzVEpGM0FT?= =?utf-8?B?S290c21OSllaL3VmOENTV0xBV2NiQzVqNzJER29pVlFYTG5iaGJYRmZ0VjBm?= =?utf-8?B?MkU0L2hXalZsVmhLZ0Q0QkRnRHVSZVB3SXl1RjNycEUwOGhyNUF2dFJ0bWo2?= =?utf-8?B?SGNxT05nMk1iRlZjZjUvZHdmeTRlbU1aV3hJM0hMdFlKbHhDakYvUGJma0dp?= =?utf-8?B?Z3U2NW9Wd0l6NGcyaENIcFBTd29ETjlmaGJ3Skg5cE9vSm5OUldYNG1QM1VD?= =?utf-8?B?SFdRSWlIUEd0OEVnNW1zQjY0KzR1MlpXTlJEam1Cc0hjYjE5UkZRLy9ZSHpo?= =?utf-8?B?dUdnTDFsbkRLb01yVFY0d29NaElLajZKSHQ2Y1Bobm9rNEVyK3pobkZPL1Na?= =?utf-8?B?V2pmMGpSbjZwT2VVNGQrMTBmdExTRWFlU2E4YnlTMTlldk1UOGVnam04YXB5?= =?utf-8?B?Y0NyUERuYk8zVjRpTTFBT2w3T3dxN2xrQUxrOXNLNGVDR3BLUWRVWGJ1SXVT?= =?utf-8?B?RW4yY0F5UXlqbTdyUE5nWXVmTXBwZmFOSkxLK1UxQVAyOFhyWFl6UTV3SUhN?= =?utf-8?B?QzU2NWRySkF4ajQrSnlQWDZpZDNycjNJSVJKV2psTEpjK210N2VvZGIrcmcy?= =?utf-8?B?dlQ0MWFpb1VJZVMzYlZQMWRkL29xazlDOHZIWm9EZzVHMG5mbmdsTys4VE5p?= =?utf-8?B?U0JUb2JCcGEvMEZDUnpPNExtWmNzSTI3S0tnME51cFMzUXdlYzl2NTF5T256?= =?utf-8?B?MGJkRGhxdzBGQmJjQzU0c2hza1NJSzN0aTh1elNVcFlEdWJuZWNVc1htMVU0?= =?utf-8?B?VGNPTnIvQW1YSFprNzNlbDErQVJQZWIwL21CREVNc1luU3BpTzMvbVpSK3pj?= =?utf-8?B?ZjJRS3grc2l0cEw0YmRJQ0ttMktoSVVnWUVZRWVIQ29sY0N0VGE2TnRVYU1x?= =?utf-8?B?NHVHb0hSR2ZQNlMzN3lWdit5UGZUMEk1bW0xVTVhUUUvaTVCWVRFWXZSYS9D?= =?utf-8?Q?n4DzrvDd5z9/T7HKW0=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: BN9PR11MB5513.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b978c69d-8cc8-4cd0-4100-08d940586537 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2021 08:31:04.6237 (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: cZt1MkfahtR2yWTDuhmY5iVa7CFpLI5yZGmgzPIdki63fwImwpluKYHMK2QDTbi2izQ0aL/2JhePca1r4jM+CQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2738 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v5 1/2] vhost: enable IOMMU for async vhost 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 Sender: "dev" SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IE1vbmRheSwg SnVseSA1LCAyMDIxIDg6NDYgUE0NCj4gVG86IEJ1cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVy YWtvdkBpbnRlbC5jb20+OyBEaW5nLCBYdWFuDQo+IDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgWGlh LCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsgVGhvbWFzDQo+IE1vbmphbG9uIDx0aG9t YXNAbW9uamFsb24ubmV0PjsgRGF2aWQgTWFyY2hhbmQNCj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhh dC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29t PjsgUGFpIEcsIFN1bmlsDQo+IDxzdW5pbC5wYWkuZ0BpbnRlbC5jb20+OyBSaWNoYXJkc29uLCBC cnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+Ow0KPiBWYW4gSGFhcmVuLCBIYXJyeSA8 aGFycnkudmFuLmhhYXJlbkBpbnRlbC5jb20+OyBMaXUsIFlvbmcNCj4gPHlvbmcubGl1QGludGVs LmNvbT47IE1hLCBXZW53dVggPHdlbnd1eC5tYUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBb ZHBkay1kZXZdIFtQQVRDSCB2NSAxLzJdIHZob3N0OiBlbmFibGUgSU9NTVUgZm9yIGFzeW5jIHZo b3N0DQo+IA0KPiANCj4gDQo+IE9uIDcvNS8yMSAyOjE2IFBNLCBCdXJha292LCBBbmF0b2x5IHdy b3RlOg0KPiA+IE9uIDA1LUp1bC0yMSA5OjQwIEFNLCBYdWFuIERpbmcgd3JvdGU6DQo+ID4+IFRo ZSB1c2Ugb2YgSU9NTVUgaGFzIG1hbnkgYWR2YW50YWdlcywgc3VjaCBhcyBpc29sYXRpb24gYW5k IGFkZHJlc3MNCj4gPj4gdHJhbnNsYXRpb24uIFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgY2FwYmls aXR5IG9mIERNQSBlbmdpbmUgdG8gdXNlDQo+ID4+IElPTU1VIGlmIHRoZSBETUEgZGV2aWNlIGlz IGJvdW5kIHRvIHZmaW8uDQo+ID4+DQo+ID4+IFdoZW4gc2V0IG1lbW9yeSB0YWJsZSwgdGhlIGd1 ZXN0IG1lbW9yeSB3aWxsIGJlIG1hcHBlZA0KPiA+PiBpbnRvIHRoZSBkZWZhdWx0IGNvbnRhaW5l ciBvZiBEUERLLg0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBYdWFuIERpbmcgPHh1YW4uZGlu Z0BpbnRlbC5jb20+DQo+ID4+IC0tLQ0KPiA+PiDCoCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvdmhv c3RfbGliLnJzdCB8wqAgOSArKysrKysNCj4gPj4gwqAgbGliL3Zob3N0L3J0ZV92aG9zdC5owqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMSArDQo+ID4+IMKgIGxpYi92aG9zdC9zb2Nr ZXQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDkgKysrKysrDQo+ID4+ IMKgIGxpYi92aG9zdC92aG9zdC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCAxICsNCj4gPj4gwqAgbGliL3Zob3N0L3Zob3N0X3VzZXIuY8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPj4gwqAgNSBm aWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4+DQo+ID4+ IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvdmhvc3RfbGliLnJzdA0KPiA+PiBi L2RvYy9ndWlkZXMvcHJvZ19ndWlkZS92aG9zdF9saWIucnN0DQo+ID4+IGluZGV4IDA1YzQyYzli MTEuLmMzYmVkYTIzZDkgMTAwNjQ0DQo+ID4+IC0tLSBhL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS92 aG9zdF9saWIucnN0DQo+ID4+ICsrKyBiL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS92aG9zdF9saWIu cnN0DQo+ID4+IEBAIC0xMTgsNiArMTE4LDE1IEBAIFRoZSBmb2xsb3dpbmcgaXMgYW4gb3ZlcnZp ZXcgb2Ygc29tZSBrZXkgVmhvc3QNCj4gPj4gQVBJIGZ1bmN0aW9uczoNCj4gPj4gwqAgwqDCoMKg wqDCoCBJdCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0Lg0KPiA+PiDCoCArwqAgLSBgYFJURV9WSE9T VF9VU0VSX0FTWU5DX1VTRV9WRklPYGANCj4gPj4gKw0KPiA+PiArwqDCoMKgIEluIGFzeW5jaHJv bm91cyBkYXRhIHBhdGgsIHZob3N0IGxpYXJhcnkgaXMgbm90IGF3YXJlIG9mIHdoaWNoDQo+ID4+ IGRyaXZlcg0KPiA+PiArwqDCoMKgIChpZ2JfdWlvL3ZmaW8pIHRoZSBETUEgZGV2aWNlIGlzIGJv dW5kIHRvLiBBcHBsaWNhdGlvbiBzaG91bGQgcGFzcw0KPiA+PiArwqDCoMKgIHRoaXMgZmxhZyB0 byB0ZWxsIHZob3N0IGxpYnJhcnkgd2hldGhlciBJT01NVSBzaG91bGQgYmUgcHJvZ3JhbW1lZA0K PiA+PiArwqDCoMKgIGZvciBndWVzdCBtZW1vcnkuDQo+ID4+ICsNCj4gPj4gK8KgwqDCoCBJdCBp cyBkaXNhYmxlZCBieSBkZWZhdWx0Lg0KPiA+PiArDQo+ID4+IMKgwqDCoCAtIGBgUlRFX1ZIT1NU X1VTRVJfTkVUX0NPTVBMSUFOVF9PTF9GTEFHU2BgDQo+ID4+IMKgIMKgwqDCoMKgwqAgU2luY2Ug djE2LjA0LCB0aGUgdmhvc3QgbGlicmFyeSBmb3J3YXJkcyBjaGVja3N1bSBhbmQgZ3NvDQo+ID4+ IHJlcXVlc3RzIGZvcg0KPiA+PiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3J0ZV92aG9zdC5oIGIv bGliL3Zob3N0L3J0ZV92aG9zdC5oDQo+ID4+IGluZGV4IDhkODc1ZTkzMjIuLmE3NjZlYTdiNmIg MTAwNjQ0DQo+ID4+IC0tLSBhL2xpYi92aG9zdC9ydGVfdmhvc3QuaA0KPiA+PiArKysgYi9saWIv dmhvc3QvcnRlX3Zob3N0LmgNCj4gPj4gQEAgLTM3LDYgKzM3LDcgQEAgZXh0ZXJuICJDIiB7DQo+ ID4+IMKgICNkZWZpbmUgUlRFX1ZIT1NUX1VTRVJfTElORUFSQlVGX1NVUFBPUlTCoMKgwqAgKDFV TEwgPDwgNikNCj4gPj4gwqAgI2RlZmluZSBSVEVfVkhPU1RfVVNFUl9BU1lOQ19DT1BZwqDCoMKg ICgxVUxMIDw8IDcpDQo+ID4+IMKgICNkZWZpbmUgUlRFX1ZIT1NUX1VTRVJfTkVUX0NPTVBMSUFO VF9PTF9GTEFHU8KgwqDCoCAoMVVMTCA8PCA4KQ0KPiA+PiArI2RlZmluZSBSVEVfVkhPU1RfVVNF Ul9BU1lOQ19VU0VfVkZJT8KgwqDCoCAoMVVMTCA8PCA5KQ0KPiA+PiDCoCDCoCAvKiBGZWF0dXJl cy4gKi8NCj4gPj4gwqAgI2lmbmRlZiBWSVJUSU9fTkVUX0ZfR1VFU1RfQU5OT1VOQ0UNCj4gPj4g ZGlmZiAtLWdpdCBhL2xpYi92aG9zdC9zb2NrZXQuYyBiL2xpYi92aG9zdC9zb2NrZXQuYw0KPiA+ PiBpbmRleCA1ZDBkNzI4ZDUyLi43N2M3MjJjODZiIDEwMDY0NA0KPiA+PiAtLS0gYS9saWIvdmhv c3Qvc29ja2V0LmMNCj4gPj4gKysrIGIvbGliL3Zob3N0L3NvY2tldC5jDQo+ID4+IEBAIC00Miw2 ICs0Miw3IEBAIHN0cnVjdCB2aG9zdF91c2VyX3NvY2tldCB7DQo+ID4+IMKgwqDCoMKgwqAgYm9v bCBleHRidWY7DQo+ID4+IMKgwqDCoMKgwqAgYm9vbCBsaW5lYXJidWY7DQo+ID4+IMKgwqDCoMKg wqAgYm9vbCBhc3luY19jb3B5Ow0KPiA+PiArwqDCoMKgIGJvb2wgYXN5bmNfdXNlX3ZmaW87DQo+ ID4+IMKgwqDCoMKgwqAgYm9vbCBuZXRfY29tcGxpYW50X29sX2ZsYWdzOw0KPiA+PiDCoCDCoMKg wqDCoMKgIC8qDQo+ID4+IEBAIC0yNDMsNiArMjQ0LDEzIEBAIHZob3N0X3VzZXJfYWRkX2Nvbm5l Y3Rpb24oaW50IGZkLCBzdHJ1Y3QNCj4gPj4gdmhvc3RfdXNlcl9zb2NrZXQgKnZzb2NrZXQpDQo+ ID4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldi0+YXN5bmNfY29weSA9IDE7DQo+ID4+ IMKgwqDCoMKgwqAgfQ0KPiA+PiDCoCArwqDCoMKgIGlmICh2c29ja2V0LT5hc3luY191c2VfdmZp bykgew0KPiA+PiArwqDCoMKgwqDCoMKgwqAgZGV2ID0gZ2V0X2RldmljZSh2aWQpOw0KPiA+PiAr DQo+ID4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoZGV2KQ0KPiA+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBkZXYtPmFzeW5jX3VzZV92ZmlvID0gMTsNCj4gPj4gK8KgwqDCoCB9DQo+ID4+ICsNCj4g Pj4gwqDCoMKgwqDCoCBWSE9TVF9MT0dfQ09ORklHKElORk8sICJuZXcgZGV2aWNlLCBoYW5kbGUg aXMgJWRcbiIsIHZpZCk7DQo+ID4+IMKgIMKgwqDCoMKgwqAgaWYgKHZzb2NrZXQtPm5vdGlmeV9v cHMtPm5ld19jb25uZWN0aW9uKSB7DQo+ID4+IEBAIC04NzksNiArODg3LDcgQEAgcnRlX3Zob3N0 X2RyaXZlcl9yZWdpc3Rlcihjb25zdCBjaGFyICpwYXRoLA0KPiA+PiB1aW50NjRfdCBmbGFncykN Cj4gPj4gwqDCoMKgwqDCoCB2c29ja2V0LT5leHRidWYgPSBmbGFncyAmIFJURV9WSE9TVF9VU0VS X0VYVEJVRl9TVVBQT1JUOw0KPiA+PiDCoMKgwqDCoMKgIHZzb2NrZXQtPmxpbmVhcmJ1ZiA9IGZs YWdzICYgUlRFX1ZIT1NUX1VTRVJfTElORUFSQlVGX1NVUFBPUlQ7DQo+ID4+IMKgwqDCoMKgwqAg dnNvY2tldC0+YXN5bmNfY29weSA9IGZsYWdzICYgUlRFX1ZIT1NUX1VTRVJfQVNZTkNfQ09QWTsN Cj4gPj4gK8KgwqDCoCB2c29ja2V0LT5hc3luY191c2VfdmZpbyA9IGZsYWdzICYNCj4gUlRFX1ZI T1NUX1VTRVJfQVNZTkNfVVNFX1ZGSU87DQo+ID4+IMKgwqDCoMKgwqAgdnNvY2tldC0+bmV0X2Nv bXBsaWFudF9vbF9mbGFncyA9IGZsYWdzICYNCj4gPj4gUlRFX1ZIT1NUX1VTRVJfTkVUX0NPTVBM SUFOVF9PTF9GTEFHUzsNCj4gPj4gwqAgwqDCoMKgwqDCoCBpZiAodnNvY2tldC0+YXN5bmNfY29w eSAmJg0KPiA+PiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3Zob3N0LmggYi9saWIvdmhvc3Qvdmhv c3QuaA0KPiA+PiBpbmRleCA4MDc4ZGRmZjc5Li5mYjc3NWNlNGVkIDEwMDY0NA0KPiA+PiAtLS0g YS9saWIvdmhvc3Qvdmhvc3QuaA0KPiA+PiArKysgYi9saWIvdmhvc3Qvdmhvc3QuaA0KPiA+PiBA QCAtMzcwLDYgKzM3MCw3IEBAIHN0cnVjdCB2aXJ0aW9fbmV0IHsNCj4gPj4gwqDCoMKgwqDCoCBp bnQxNl90wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicm9hZGNhc3RfcmFycDsNCj4gPj4gwqDCoMKg wqDCoCB1aW50MzJfdMKgwqDCoMKgwqDCoMKgIG5yX3ZyaW5nOw0KPiA+PiDCoMKgwqDCoMKgIGlu dMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXN5bmNfY29weTsNCj4gPj4gK8KgwqDCoCBpbnTCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGFzeW5jX3VzZV92ZmlvOw0KPiA+PiDCoMKgwqDCoMKgIGludMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZXh0YnVmOw0KPiA+PiDCoMKgwqDCoMKgIGludMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbGluZWFyYnVmOw0KPiA+PiDCoMKgwqDCoMKgIHN0cnVjdCB2aG9zdF92 aXJ0cXVldWXCoMKgwqAgKnZpcnRxdWV1ZVtWSE9TVF9NQVhfUVVFVUVfUEFJUlMgKiAyXTsNCj4g Pj4gZGlmZiAtLWdpdCBhL2xpYi92aG9zdC92aG9zdF91c2VyLmMgYi9saWIvdmhvc3Qvdmhvc3Rf dXNlci5jDQo+ID4+IGluZGV4IDhmMGViYTY0MTIuLmYzNzAzZjJlNzIgMTAwNjQ0DQo+ID4+IC0t LSBhL2xpYi92aG9zdC92aG9zdF91c2VyLmMNCj4gPj4gKysrIGIvbGliL3Zob3N0L3Zob3N0X3Vz ZXIuYw0KPiA+PiBAQCAtNDUsNiArNDUsNyBAQA0KPiA+PiDCoCAjaW5jbHVkZSA8cnRlX2NvbW1v bi5oPg0KPiA+PiDCoCAjaW5jbHVkZSA8cnRlX21hbGxvYy5oPg0KPiA+PiDCoCAjaW5jbHVkZSA8 cnRlX2xvZy5oPg0KPiA+PiArI2luY2x1ZGUgPHJ0ZV92ZmlvLmg+DQo+ID4+IMKgIMKgICNpbmNs dWRlICJpb3RsYi5oIg0KPiA+PiDCoCAjaW5jbHVkZSAidmhvc3QuaCINCj4gPj4gQEAgLTE0MSw2 ICsxNDIsMzYgQEAgZ2V0X2Jsa19zaXplKGludCBmZCkNCj4gPj4gwqDCoMKgwqDCoCByZXR1cm4g cmV0ID09IC0xID8gKHVpbnQ2NF90KS0xIDogKHVpbnQ2NF90KXN0YXQuc3RfYmxrc2l6ZTsNCj4g Pj4gwqAgfQ0KPiA+PiDCoCArc3RhdGljIGludA0KPiA+PiArYXN5bmNfZG1hX21hcChzdHJ1Y3Qg cnRlX3Zob3N0X21lbV9yZWdpb24gKnJlZ2lvbiwgYm9vbCBkb19tYXApDQo+ID4+ICt7DQo+ID4+ ICvCoMKgwqAgaW50IHJldCA9IDA7DQo+ID4+ICvCoMKgwqAgdWludDY0X3QgaG9zdF9pb3ZhOw0K PiA+PiArwqDCoMKgIGhvc3RfaW92YSA9IHJ0ZV9tZW1fdmlydDJpb3ZhKCh2b2lkDQo+ID4+ICop KHVpbnRwdHJfdClyZWdpb24tPmhvc3RfdXNlcl9hZGRyKTsNCj4gPj4gK8KgwqDCoCBpZiAoZG9f bWFwKSB7DQo+ID4+ICvCoMKgwqDCoMKgwqDCoCAvKiBBZGQgbWFwcGVkIHJlZ2lvbiBpbnRvIHRo ZSBkZWZhdWx0IGNvbnRhaW5lciBvZiBEUERLLiAqLw0KPiA+PiArwqDCoMKgwqDCoMKgwqAgcmV0 ID0NCj4gcnRlX3ZmaW9fY29udGFpbmVyX2RtYV9tYXAoUlRFX1ZGSU9fREVGQVVMVF9DT05UQUlO RVJfRkQsDQo+ID4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmVnaW9uLT5ob3N0X3VzZXJfYWRkciwNCj4gPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBob3N0X2lvdmEsDQo+ID4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnaW9uLT5zaXplKTsNCj4g Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChyZXQpIHsNCj4gPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJETUEgZW5naW5lIG1hcCBmYWlsZWRcbiIpOw0KPiA+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPiA+PiArwqDCoMKgwqDCoMKg wqAgfQ0KPiA+PiArwqDCoMKgIH0gZWxzZSB7DQo+ID4+ICvCoMKgwqDCoMKgwqDCoCAvKiBSZW1v dmUgbWFwcGVkIHJlZ2lvbiBmcm9tIHRoZSBkZWZhdWx0IGNvbnRhaW5lciBvZiBEUERLLiAqLw0K PiA+PiArwqDCoMKgwqDCoMKgwqAgcmV0ID0NCj4gPj4gcnRlX3ZmaW9fY29udGFpbmVyX2RtYV91 bm1hcChSVEVfVkZJT19ERUZBVUxUX0NPTlRBSU5FUl9GRCwNCj4gPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnaW9uLT5ob3N0X3VzZXJf YWRkciwNCj4gPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaG9zdF9pb3ZhLA0KPiA+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWdpb24tPnNpemUpOw0KPiA+PiArwqDCoMKgwqDCoMKg wqAgaWYgKHJldCkgew0KPiA+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBWSE9TVF9MT0dfQ09O RklHKEVSUiwgIkRNQSBlbmdpbmUgdW5tYXAgZmFpbGVkXG4iKTsNCj4gPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgcmV0dXJuIHJldDsNCj4gPj4gK8KgwqDCoMKgwqDCoMKgIH0NCj4gPj4gK8Kg wqDCoCB9DQo+ID4+ICvCoMKgwqAgcmV0dXJuIHJldDsNCj4gPj4gK30NCj4gPg0KPiA+IFdlJ3Zl IGJlZW4gZGlzY3Vzc2luZyB0aGlzIG9mZiBsaXN0IHdpdGggWHVhbiwgYW5kIHVuZm9ydHVuYXRl bHkgdGhpcyBpcw0KPiA+IGEgYmxvY2tlciBmb3Igbm93Lg0KPiA+DQo+ID4gQ3VycmVudGx5LCB0 aGUgeDg2IElPTU1VIGRvZXMgbm90IHN1cHBvcnQgcGFydGlhbCB1bm1hcCAtIHRoZSBzZWdtZW50 cw0KPiA+IGhhdmUgdG8gYmUgdW5tYXBwZWQgZXhhY3RseSB0aGUgc2FtZSBhZGRyL2xlbiBhcyB0 aGV5IHdlcmUgbWFwcGVkLiBXZQ0KPiA+IGFsc28gY29uY2F0ZW5hdGUgYWRqYWNlbnQgbWFwcGlu Z3MgdG8gcHJldmVudCBmaWxsaW5nIHVwIHRoZSBETUEgbWFwcGluZw0KPiA+IGVudHJ5IHRhYmxl IHdpdGggc3VwZXJmbHVvdXMgZW50cmllcy4NCj4gPg0KPiA+IFRoaXMgbWVhbnMgdGhhdCwgd2hl biB0d28gdW5yZWxhdGVkIG1hcHBpbmdzIGFyZSBjb250aWd1b3VzIGluIG1lbW9yeQ0KPiA+IChl LmcuIGlmIHlvdSBtYXAgcmVnaW9ucyAxIGFuZCAyIGluZGVwZW5kZW50bHksIGJ1dCB0aGV5IGhh cHBlbiB0byBiZQ0KPiA+IHNpdHRpbmcgcmlnaHQgbmV4dCB0byBlYWNoIG90aGVyIGluIHZpcnR1 YWwgbWVtb3J5KSwgd2UgY2Fubm90IGxhdGVyDQo+ID4gdW5tYXAgb25lIG9mIHRoZW0gYmVjYXVz ZSwgZXZlbiB0aG91Z2ggdGhlc2UgYXJlIHR3byBzZXBhcmF0ZQ0KPiBtYXBwaW5ncw0KPiA+IGFz IGZhciBhcyBrZXJuZWwgVkZJTyBpbmZyYXN0cnVjdHVyZSBpcyBjb25jZXJuZWQsIHRoZSBtYXBw aW5nIGdldHMNCj4gPiBjb21wYWN0ZWQgYW5kIGxvb2tzIGxpa2Ugb25lIHNpbmdsZSBtYXBwaW5n IHRvIFZGSU8sIHNvIERQREsgQVBJIHdpbGwNCj4gPiBub3QgbGV0IHVzIHVubWFwIHJlZ2lvbiAx IHdpdGhvdXQgYWxzbyB1bm1hcHBpbmcgcmVnaW9uIDIuDQo+ID4NCj4gPiBUaGUgcHJvcGVyIGZp eCBmb3IgdGhpcyBwcm9ibGVtIHdvdWxkIGJlIHRvIGFsd2F5cyBtYXAgbWVtb3J5DQo+ID4gcGFn ZS1ieS1wYWdlIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgaXQgY29tZXMgZnJvbSAod2UgYWxyZWFkeSBk byB0aGF0IGZvcg0KPiA+IGludGVybmFsIG1lbW9yeSwgYnV0IG5vdCBmb3IgZXh0ZXJuYWwpLiBI b3dldmVyLCB0aGUgcmVhc29uIHRoaXMgd29ya3MNCj4gPiBmb3IgaW50ZXJuYWwgbWVtb3J5IGlz IGJlY2F1c2Ugd2hlbiBtYXBwaW5nIGludGVybmFsIG1lbW9yeSBzZWdtZW50cywNCj4gPiAqd2Ug a25vdyB0aGUgcGFnZSBzaXplKi4gRm9yIGV4dGVybmFsIG1lbW9yeSBzZWdtZW50cywgdGhlcmUg aXMgbm8gc3VjaA0KPiA+IGd1YXJhbnRlZSwgc28gd2UgY2Fubm90IGRlZHVjZSBwYWdlIHNpemUg Zm9yIGEgZ2l2ZW4gbWVtb3J5IHNlZ21lbnQsDQo+IGFuZA0KPiA+IHRodXMgY2FuJ3QgbWFwIHRo aW5ncyBwYWdlLWJ5LXBhZ2UuDQo+ID4NCj4gPiBTbywgdGhlIHByb3BlciBmaXggZm9yIGl0IHdv dWxkIGJlIHRvIGFkZCBwYWdlIHNpemUgdG8gdGhlIFZGSU8gRE1BIEFQSS4NCj4gPiBVbmZvcnR1 bmF0ZWx5LCBpdCBwcm9iYWJseSBoYXMgdG8gd2FpdCB1bnRpbCAyMS4xMSBiZWNhdXNlIGl0IGlz IGFuIEFQSQ0KPiA+IGNoYW5nZS4NCj4gPg0KPiA+IFRoZSBzbGlnaHRseSBoYWNreSBmaXggZm9y IHRoaXMgd291bGQgYmUgdG8gZm9yZWdvIHVzZXIgbWVtIG1hcA0KPiA+IGNvbmNhdGVuYXRpb24g YW5kIHRydXN0IHRoYXQgdXNlciBpcyBub3QgZ29pbmcgdG8gZG8gYW55dGhpbmcgc3R1cGlkLA0K PiA+IGFuZCB3aWxsIG5vdCBzcGFtIHRoZSBWRklPIERNQSBBUEkgd2l0aG91dCByZWFzb24uIEkg d291bGQgcmF0aGVyIG5vdCBnbw0KPiA+IGRvd24gdGhpcyByb2FkLCBidXQgdGhpcyBjb3VsZCBi ZSBhbiBvcHRpb24gaW4gdGhpcyBjYXNlLg0KPiA+DQo+ID4gVGhvdWdodHM/DQo+ID4NCj4gDQo+ IFRoYW5rcyBBbmF0b2x5IGZvciB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIGlzc3Vl Lg0KPiBJdCBtYXkgYmUgcG9zc2libGUgdG8gZWl0aGVyIGNyZWF0ZSBhIHZlcnNpb25lZCBzeW1i b2wgZm9yIHRoaXMgQVBJDQo+IGNoYW5nZSwgb3IgbWF5YmUgZXZlbiB0byBoYXZlIGEgdGVtcG9y YXJ5IGludGVybmFsIEFQSS4NCj4gDQo+IEJ1dCBJIHRoaW5rIHRoaXMgc2VyaWVzIGluIGl0cyBj dXJyZW50IGZvcm0gaXMgbm90IGFjY2VwdGFibGUsIHNvDQo+IHdhaXRpbmcgZm9yIHYyMS4xMSB3 b3VsZCBiZSB0aGUgYmVzdCBvcHRpb24gKHdlIG1heSB3YW50IHRvIHNlbmQgdGhlDQo+IGRlcHJl Y2F0aW9uIG5vdGljZSBpbiB0aGlzIHJlbGVhc2UgdGhvdWdoKS4NCj4gDQo+IEluIHRoaXMgc2Vy aWVzLCBJIGRvbid0IGxpa2UgdGhlIHVzZXIgYXBwbGljYXRpb24gaGFzIHRvIHBhc3MgYSBmbGFn IHRvDQo+IHN0YXRlIHdoZXRoZXIgdGhlIERNQSBlbmdpbmUgdXNlcyBWRklPIG9yIG5vdC4gQUZB SUNULCB0aGlzIG5ldyByZXZpc2lvbg0KPiBkb2VzIG5vdCBpbXBsZW1lbnQgd2hhdCB3YXMgZGlz Y3Vzc2VkIGluIHRoZSBwcmV2aW91cyBvbmUsIGkuZS4NCj4gc3VwcG9ydGluZyBib3RoIElPVkFf QVNfVkEgYW5kIElPVkFfQVNfUEEuDQoNClRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4gSGVyZSBJ IGhvcGUgdG8gZXhwbGFpbiBzb21lIHF1ZXN0aW9uczoNCjEuIFdoZXRoZXIgYm90aCBJT1ZBX0FT X1ZBIGFuZCBJT1ZBX0FTX1BBIGFyZSBzdXBwb3J0ZWQgbm93Pw0KQTogQm90aCBJT1ZBX0FTX1BB IGFuZCBJT1ZBX0FTX1ZBIGFyZSBzdXBwb3J0ZWQgbm93LiBJbiB0aGlzIHZlcnNpb24sIHRoZQ0K dmlydHVhbCBhZGRyZXNzIGlzIHJlcGxhY2VkIHdpdGggaW92YSBhZGRyZXNzIG9mIG1hcHBlZCBy ZWdpb24sIGFuZCB0aGUgaW92YQ0KYWRkcmVzcyBpcyBzZWxlY3RlZCB0byBwcm9ncmFtIHRoZSBJ T01NVSBpbnN0ZWFkIG9mIHZpcnR1YWwgYWRkcmVzcyBvbmx5Lg0KDQoyLiBXaHkgYSBmbGFnIGlz IGNob3NlbiB0byBiZSBwYXNzZWQgYnkgYXBwbGljYXRpb24/DQpBOiBZZXMsIGFzIHdlIGRpc2N1 c3NlZCBiZWZvcmUsIHRoZSBydGVfZWFsX2lvdmFfbW9kZSgpIEFQSSBjYW4gYmUgdXNlZCB0bw0K Z2V0IHRoZSBJT1ZBIG1vZGUsIHNvIGFzIHRvIGRldGVybWluZSB3aGV0aGVyIElPTU1VIHNob3Vs ZCBiZSBwcm9ncmFtbWVkLg0KSG93ZXZlciwgaW4gdGhlIGltcGxlbWVudGF0aW9uIHByb2Nlc3Ms IEkgZm91bmQgYSBwcm9ibGVtLiBUaGF0IGlzIGhvdyB0bwkNCmRpc3Rpbmd1aXNoIHRoZSBWRklP IFBBIGFuZCBJR0JfVUlPIFBBLiBCZWNhdXNlIGZvciBWRklPIGNhc2VzLCB3ZSBzaG91bGQNCmFs d2F5cyBwcm9ncmFtIHRoZSBJT01NVS4gV2hpbGUgaW4gSUdCX1VJTyBjYXNlcywgaXQgZGVwZW5k cyBvbiBJT01NVQ0KY2FwYWJpbGl0eSBvZiBwbGF0Zm9ybS4NCg0KU28gYSBmbGFnIGlzIHNlbGVj dGVkLCBidXQgdGhpcyByZXF1aXJlcyB0aGUgYXBwbGljYXRpb24gdG8gZG8gZXh0cmEgdGhpbmdz Lg0KSSBmaW5kIGFub3RoZXIgc29sdXRpb24sIGlzIHRvIHVzZQ0KI2lmZGVmIFZGSU9fUFJFU0VO VA0KCUlmKHJ0ZV92ZmlvX2lzX2VuYWJsZWQoInZmaW8iKSkNCgkJcHJvZ3JhbV9pb21tdTsNCiNl bmRpZg0KDQpCZWNhdXNlIGFsbCB0aGUgZGV2aWNlcyBhcmUgbWFuYWdlZCBieSBEUERLLCB3ZSBj YW4gZm9sbG93IERQREsgdG8gZG8gdGhlDQpkZWNpc2lvbi4gRG9lcyB0aGlzIG1ha2Ugc2Vuc2Ug Zm9yIHlvdSwgb3IgYW55IHNvbWUgc3VnZ2VzdGlvbnM/DQoNCjMuICBUaGUgcGFydGlhbCB1bm1h cCBpc3N1ZQ0KQTogVGhhbmtzIEFuYXRvbHkgZm9yIHRoZSBkZXRhaWxlZCBleHBsYW5hdGlvbi4g VGhpcyBwcm9ibGVtIHdhcyBmb3VuZCBpbg0KcmVjb25uZWN0aW9uIGNhc2VzLiBBZnRlciBvdXIg b2ZmIGxpc3QgZGlzY3Vzc2lvbiwgdGhlIHNvbHV0aW9uIHJlcXVpcmVzDQpydGVfdmZpb19jb250 YWluZXJfZG1hX21hcC91bm1hcCBBUEkgY2hhbmdlLiBIZXJlIEkgd2FudCB0byBjb25zdWx0DQpp ZiB0aGVyZSBhcmUgc29tZSBob3BlIGZvciB2ZXJzaW9uZWQgc3ltYm9sIG9yIGEgdGVtcG9yYXJ5 IGludGVybmFsIEFQSSANCmJlIHVzZWQgaW4gdGhpcyByZWxlYXNlLg0KDQpUaGFua3MgZm9yIHlv dXIgdGltZSENCg0KUmVnYXJkcywNClh1YW4NCg0KPiANCj4gUmVnYXJkcywNCj4gTWF4aW1lDQoN Cg==