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 647D7A0544 for ; Thu, 22 Dec 2022 08:23:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5C915427EB; Thu, 22 Dec 2022 08:23:49 +0100 (CET) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id B20D2400D7; Thu, 22 Dec 2022 08:23:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1671693827; x=1703229827; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=aeFF0AbFhbIpOIbA1v/wVKckjlFjy16hjIoBgLSvHU4=; b=XB6EyMiXIKAUIuUOPMi+hchgg79RcwDvwRp31DzyMoiT7F/ECaY1juhL 0c2S3fNdRRUBg8PuiAF+1NSIFAGn3L53EPCBkoVyHvvDR9M3bA6P2D14o W19nabNi6voPC0TkzVuCrnQbHrf9HVqoDUXP/yRcGh1EU5hvyj3Iw0Er3 Ip+jAmG7pfy7hT/lMcSMEuenr5XTMIE2NDGbcKlBrMAfSRNeYn87bhtPC dsZ7lTJUhFohL19YcebyXqgONjNPv97n+irpMoVLbRM2+AeTh6dg/QXGX 6GwKcnd7aIXE5P7rXTbQLgRQSzKEh+f4nvM6B50SHtAzc9dbfIAQy3osx g==; X-IronPort-AV: E=McAfee;i="6500,9779,10568"; a="382289460" X-IronPort-AV: E=Sophos;i="5.96,264,1665471600"; d="scan'208";a="382289460" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Dec 2022 23:23:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10568"; a="651684347" X-IronPort-AV: E=Sophos;i="5.96,264,1665471600"; d="scan'208";a="651684347" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga002.jf.intel.com with ESMTP; 21 Dec 2022 23:23:42 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 21 Dec 2022 23:23:41 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Wed, 21 Dec 2022 23:23:41 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.176) 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.2507.16; Wed, 21 Dec 2022 23:23:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BfxAx8Sx9cZ7NAAO17Fe6c28tkyMN4ZyS2dVVN9C0ctSLuvJSU3gVb+1yY9sl4dSKdTUbOgLSEuUn9s7l/lnS+gafwXnKS0h5vZf9I7/KIr1vxlfIH8M0ddN8F4BjUHEEkyJz3/KiTfC/+cwbzzPAavjB6C0jCpmkHDt3n6PNXvXUIWALxQlxjfR6oxhFuFWKEo6BX9hIA5s2QwCIwqUpeTjQujA4Zga9KpT4pimkCnP1IKicZbtgz9nk59fUJr7om7q2Eb0FiWNTrDMKI0g4iMx5X4p+NeZFLnVog5Ylw3PVt6UaTKEDcuHHAt47OyfDI8hl2NEm3zeppc+vAi0Ig== 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=aeFF0AbFhbIpOIbA1v/wVKckjlFjy16hjIoBgLSvHU4=; b=lhrkgKQRsr4ugbiWNOEXPRryEq21tcs0o9ICgCCVlM5NMMb4KIEMUr+7PrQinFSjz6DKQ8sOonWvQzjFvIOLozeStVDJHzVxaZ7LqLpMooKA19l79/LYn4CBkZi78DlTkhVt9DTEpv9xy7mDvbZDs0RADGnE+yT8Zih2rmzc8DXHR1Z2Las7fE13UAWrLABbTP0s0u9DXbXvSLuuZ5UWOGC9UXgrVwFPha//dA3+Z8axNIrHtfrT0X2gwqvZjV3QyE+C7PrzI3+X9ojOoCwNck0GE4GZdjKeB/675Ic0/Gp94X+9Y0Jl4J7Cxh6hQXBbGyfFW31m6MJs4igzqx1BWw== 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 SJ0PR11MB6765.namprd11.prod.outlook.com (2603:10b6:a03:47b::10) by DM4PR11MB8179.namprd11.prod.outlook.com (2603:10b6:8:18e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.12; Thu, 22 Dec 2022 07:23:39 +0000 Received: from SJ0PR11MB6765.namprd11.prod.outlook.com ([fe80::1193:2129:4750:3da0]) by SJ0PR11MB6765.namprd11.prod.outlook.com ([fe80::1193:2129:4750:3da0%5]) with mapi id 15.20.5924.016; Thu, 22 Dec 2022 07:23:39 +0000 From: "You, KaisenX" To: Ferruh Yigit , "dev@dpdk.org" , "Burakov, Anatoly" , David Marchand CC: "stable@dpdk.org" , "Yang, Qiming" , "Zhou, YidingX" , "Wu, Jingjing" , "Xing, Beilei" , "Zhang, Qi Z" , Luca Boccassi , "Mcnamara, John" , Kevin Traynor Subject: RE: [PATCH] net/iavf:fix slow memory allocation Thread-Topic: [PATCH] net/iavf:fix slow memory allocation Thread-Index: AQHY+loFeMqmz4GLVk6MziI+2SKeuq5kN+YAgAdiwzCAABz/gIAAQP4AgAqCgmCAAhYWAIABJkeg Date: Thu, 22 Dec 2022 07:23:39 +0000 Message-ID: References: <20221117065726.277672-1-kaisenx.you@intel.com> <3ad04278-59c0-0c60-5c8c-9e57f33bb0de@amd.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR11MB6765:EE_|DM4PR11MB8179:EE_ x-ms-office365-filtering-correlation-id: 72dd82c2-5660-499b-8be3-08dae3ed725e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VIelgWQnYEP9QqD+9s67f8jYjgrMASpIB/ohkHzud75p2JmnDwJW8rXeagn5U99pJKGMEBWLywA/DCSHyOdpK4d9pfOVNOIS1dvjawdINzm0R3cciYU5GF/e6/gPfybt6tcDCuYnTYIf4SuLtdP1bqiV/zglKAXnJlhjUxMv5LcROpAxv2BOcw+XqfVGXpr3sE1Ghytr6FeNa42tMIqo/dUiEevRpJTbaOFkQacYPrs8t7SIer7ELEE6QXePNXhE8cQnUWSEAINq7jY6CvZ6NBpdm8JOpMYQ/PbfV6YJBioSzfTmRo3N3Werzby0cbf6jpU2Ul39HXRMI4SNlg6+OqFo6iawDfY6mNHToOmf3rY+IFX1oFji+8pILCWKa/hW6Yq6Lsv/YPgX8rLyRMla8kW8k8tPkoBbeiv4i268K0k1MObBhI0DU701sjoBRtDoBI9q9m2pHG9j7OgV0927saX7pHO+tzaQH81/KbvU8+5SZ9UC2KTgJlsUD2JclgjvOGRYFrkv/XPMyTv2+r7yUW7Gopzhax3j7iKG4oCv+nHzzKKALhuTh9CQFerUbf0Bj0cVLjBre5nFLKkVxOQYifm89ukAPDITK3LheTYgtQJebil02re0tpeWjlvq3OYp0oI6ufbYhoQWa565TMWC6PAYx5Z6uExA1z9Da5ZXI502fhjwy0qN3qGTTjDxJ6EGD3tuQ8Gbu2jN2r+OdfYkWFIflr0ZAdOh/nUkK5foqaQ= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB6765.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(136003)(366004)(376002)(396003)(346002)(39860400002)(451199015)(33656002)(55016003)(41300700001)(76116006)(8676002)(83380400001)(66446008)(66476007)(66946007)(64756008)(4326008)(5660300002)(30864003)(52536014)(66556008)(8936002)(966005)(53546011)(6506007)(71200400001)(7696005)(110136005)(54906003)(478600001)(26005)(316002)(9686003)(186003)(82960400001)(38070700005)(86362001)(122000001)(38100700002)(2906002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WHZNcUtGZEMxNC9IWVhDaVliS2FNY3pFZXhCQitGREFrQlh5NWY3d2c0Tmkx?= =?utf-8?B?Ni8vaDVwcWFOQ2pVaGF4ZTFuUDVld3EzVXdUTFJuU3pZRDczUWFYWjVYUnda?= =?utf-8?B?SFhPNHBnZ2lHYlN6QzVJQnVhK3cyWTBCR0h0eUVmWmh5MU5LTXVBdVJGdFRr?= =?utf-8?B?M0J4eUdjdy8yV1poZlBoRzcra29qckdqdnpKT3MvMFJrcGZoaTRlSm52enZq?= =?utf-8?B?ZEgza3VTanV4TlQ2Z0tFU2hWbFM4bHJBeVpxeklkdlNjOHZiaGx4dGpLaUNa?= =?utf-8?B?MjZJUnMrV2JHUkZCbWs2Y3BYaVIyb2RzRzF6bDZuOXp6dmEyYXNkRmlNMHd3?= =?utf-8?B?SHM4dXYzVGdEQU5VM2hrWVFoTGdhd05ReXkxUWwyR21zS3JuY3RQOEV3emlz?= =?utf-8?B?QTR0dFdRQUppcjdUM0c3K0ZBNUdKQzZnZmZnb2tUOGt3MFJIVE1EeXpqaTA5?= =?utf-8?B?OTRkNWtKczBRdzZFRnZ5bmJFUlV5RW1aYmpSc3lHdGtKMjhwdkFuQUdMK1lX?= =?utf-8?B?K0xYZjQxQ25pci9ILzRIaTJSTDNBQ2toZ25pRzVJT2U4Qk4xdEJ2cEoxQTdL?= =?utf-8?B?RzR2VDlpb001L2RiYnlpVC9rZXNwWUlET3BDZXZXTWNLSlFSZWhnZERVWXlv?= =?utf-8?B?dzVicEFDUmo4aVY3cUhMSjY4NFJXZWhvUkdRWXNPY3ZPMjE3eDhuTXZvY3hT?= =?utf-8?B?dnVXcFAvUFh5cjMxLzQyOCtNblFTWW01VHB6N0MrVTRWTWZBZWwvNGc2WC9N?= =?utf-8?B?Z3NKWmJKY01PWXVzazdsZGFuQzRKc3o1TlFFbittczZoUVhhOW53Nk85VGJE?= =?utf-8?B?aDBPazYrc2kyc0tEaUtjdDk3STdkY2NlcHZFZEprQlhQWU5GV1ZML3ByeE9r?= =?utf-8?B?VndDa1BPajRxeTBpbStGRnlVc3luZFVBQmRnUGUwK0dXc29nVTNiVThzd3Ra?= =?utf-8?B?ckpRNzAzZkx4S29lNVlqc2ZVWGVMQXpsaWRoaUtMc3hMQzJhL3c3RHBvUUJq?= =?utf-8?B?Nmt5R3FIK0ZDZ0hralFSWHlMbUNUZjJ4ZVRzanNER1dTSDVHa01rcy9wOXRz?= =?utf-8?B?VmtUYWYxZ25IMHZxcUYybzBvSnJ1b25sVnYwK21MM3ZEMEdXbmNGcEJ4OFN6?= =?utf-8?B?YWJTaFBxdTVwSVQxazVjVkl4eWp3K05ON1pabnY2MFk2ZTdObndYam55TWFK?= =?utf-8?B?U2pKL0R5cGVhOCtFS09pUWFTWlZMQkZlZUNiaEdqcW1yM0RYVG5YaXNRSUN2?= =?utf-8?B?TWlLL2dnaVBFUGZqYmZzZEJBbE5jT0orZllNN2hmang3c0JpclM2RzdyL3l5?= =?utf-8?B?TFlka1Q4ekxUcXdVRldFZjRTd2hBbmFHaUJzeUxLVisxNFF4TVFHaEVkVEZ6?= =?utf-8?B?T1A3Y3RNSS9DQWdwVTlCV2EraURrMENEaUtqQ0U1L3kxdHJRYUFYSzE3aUZL?= =?utf-8?B?akpObnN2ZmpZWWd1ZFA1VmRDV3Rmc2lCSXhLY0dXRzk3aWRCR0NSemNOL01w?= =?utf-8?B?QkRiM0pkc0pQbmppVWM1S2xQTTYzNnZLemZqRUNZWmxXeWhGS2NPb1p0VjBB?= =?utf-8?B?UlU2b3hrTzBWWU9vWDB4YnFoTVVwZmJQclA3aVhvNmRYcDF6OFJEQXZ1aEgy?= =?utf-8?B?OTJtYnNrdFhJS1I2WmpOc2dZWEtZVFhsYUtzM3dXOGJNVGU4S3Rpbk1zYjRB?= =?utf-8?B?WlJTZjN6dEttTm9NcDJmOVF3cXp1SW1SQzh4WnlRQ043ejZHWFRLRUVQa3BM?= =?utf-8?B?TDlKb1lQTUVRc09LaC9WeFFUNHQyVmZrbTNrK3NvUlRqbkQwZXo2WHVrZ3F0?= =?utf-8?B?NUZhdUh2Y2ttZDV3aDlxcTY2bS83Wk5lQzhHYXhCWUkwSTBuMXRUbWNkdHVP?= =?utf-8?B?L0tzckVFWXRyZXIvNElmUC9yTTM5Tkc3bEVtZmlnNTAwVDVQdHpiUEVpWnNQ?= =?utf-8?B?SmpGUHQ3NU5oNWFrNmxqekpPZGZweENVWm1sNTNvR3dYSFhZYldCSGZnVEtG?= =?utf-8?B?d2ttQnBTeGROdkRPREpTdDFxaVV2eE9meDk1UWxyK09xQVpIeU96dGRQczM0?= =?utf-8?B?eXlCWmtpUkR0Ync3YlN4MVM0d290cng5em4wclplaEpmLy8xU01lTk1JMXJ5?= =?utf-8?Q?xy5OsSBQ/CxHRbunOSuNieGGC?= 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: SJ0PR11MB6765.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72dd82c2-5660-499b-8be3-08dae3ed725e X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Dec 2022 07:23:39.1588 (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: nj8ai21bohGfcnKJCxnzJyiGqPLG3UFCgEcTWQW49KGYuZ3dQzbTftT65wVkI4HUdMA5gEVErgzdIrQ7XIf+Lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB8179 X-OriginatorOrg: intel.com X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gU2VudDogMjAyMuW5tDEy5pyIMjHml6UgMjE6NDkNCj4g VG86IFlvdSwgS2Fpc2VuWCA8a2Fpc2VueC55b3VAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBC dXJha292LA0KPiBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsgRGF2aWQgTWFy Y2hhbmQNCj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+IENjOiBzdGFibGVAZHBkay5v cmc7IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgWmhvdSwgWWlkaW5nWA0K PiA8eWlkaW5neC56aG91QGludGVsLmNvbT47IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50 ZWwuY29tPjsgWGluZywNCj4gQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+OyBaaGFuZywg UWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBMdWNhDQo+IEJvY2Nhc3NpIDxibHVjYUBkZWJp YW4ub3JnPjsgTWNuYW1hcmEsIEpvaG4NCj4gPGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgS2V2 aW4gVHJheW5vciA8a3RyYXlub3JAcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSF0g bmV0L2lhdmY6Zml4IHNsb3cgbWVtb3J5IGFsbG9jYXRpb24NCj4gDQo+IE9uIDEyLzIwLzIwMjIg Njo1MiBBTSwgWW91LCBLYWlzZW5YIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAYW1k LmNvbT4NCj4gPj4gU2VudDogMjAyMuW5tDEy5pyIMTPml6UgMjE6MjgNCj4gPj4gVG86IFlvdSwg S2Fpc2VuWCA8a2Fpc2VueC55b3VAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBCdXJha292LA0K PiA+PiBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsgRGF2aWQgTWFyY2hhbmQN Cj4gPj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+ID4+IENjOiBzdGFibGVAZHBkay5v cmc7IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgWmhvdSwNCj4gPj4gWWlk aW5nWCA8eWlkaW5neC56aG91QGludGVsLmNvbT47IFd1LCBKaW5namluZw0KPiA+PiA8amluZ2pp bmcud3VAaW50ZWwuY29tPjsgWGluZywgQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+OyBa aGFuZywNCj4gPj4gUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBMdWNhIEJvY2Nhc3NpIDxi bHVjYUBkZWJpYW4ub3JnPjsNCj4gPj4gTWNuYW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50 ZWwuY29tPjsgS2V2aW4gVHJheW5vcg0KPiA+PiA8a3RyYXlub3JAcmVkaGF0LmNvbT4NCj4gPj4g U3ViamVjdDogUmU6IFtQQVRDSF0gbmV0L2lhdmY6Zml4IHNsb3cgbWVtb3J5IGFsbG9jYXRpb24N Cj4gPj4NCj4gPj4gT24gMTIvMTMvMjAyMiA5OjM1IEFNLCBGZXJydWggWWlnaXQgd3JvdGU6DQo+ ID4+PiBPbiAxMi8xMy8yMDIyIDc6NTIgQU0sIFlvdSwgS2Fpc2VuWCB3cm90ZToNCj4gPj4+Pg0K PiA+Pj4+DQo+ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+IEZyb206 IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGFtZC5jb20+DQo+ID4+Pj4+IFNlbnQ6IDIwMjLl ubQxMuaciDjml6UgMjM6MDQNCj4gPj4+Pj4gVG86IFlvdSwgS2Fpc2VuWCA8a2Fpc2VueC55b3VA aW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBCdXJha292LA0KPiA+Pj4+PiBBbmF0b2x5IDxhbmF0 b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsgRGF2aWQgTWFyY2hhbmQNCj4gPj4+Pj4gPGRhdmlkLm1h cmNoYW5kQHJlZGhhdC5jb20+DQo+ID4+Pj4+IENjOiBzdGFibGVAZHBkay5vcmc7IFlhbmcsIFFp bWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgWmhvdSwNCj4gPj4+Pj4gWWlkaW5nWCA8eWlk aW5neC56aG91QGludGVsLmNvbT47IFd1LCBKaW5namluZw0KPiA+Pj4+PiA8amluZ2ppbmcud3VA aW50ZWwuY29tPjsgWGluZywgQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+Ow0KPiA+Pj4+ PiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBMdWNhIEJvY2Nhc3NpDQo+ID4+ Pj4+IDxibHVjYUBkZWJpYW4ub3JnPjsgTWNuYW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50 ZWwuY29tPjsNCj4gPj4gS2V2aW4NCj4gPj4+Pj4gVHJheW5vciA8a3RyYXlub3JAcmVkaGF0LmNv bT4NCj4gPj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSF0gbmV0L2lhdmY6Zml4IHNsb3cgbWVtb3J5 IGFsbG9jYXRpb24NCj4gPj4+Pj4NCj4gPj4+Pj4gT24gMTEvMTcvMjAyMiA2OjU3IEFNLCBLYWlz ZW4gWW91IHdyb3RlOg0KPiA+Pj4+Pj4gSW4gc29tZSBjYXNlcywgdGhlIERQREsgZG9lcyBub3Qg YWxsb2NhdGUgaHVnZXBhZ2UgaGVhcCBtZW1vcnkNCj4gdG8NCj4gPj4+Pj4gc29tZQ0KPiA+Pj4+ Pj4gc29ja2V0cyBkdWUgdG8gdGhlIHVzZXIgc2V0dGluZyBwYXJhbWV0ZXJzIChlLmcuIC1sIDQw LTc5LCBTT0NLRVQNCj4gPj4+Pj4+IDAgaGFzIG5vIG1lbW9yeSkuDQo+ID4+Pj4+PiBXaGVuIHRo ZSBpbnRlcnJ1cHQgdGhyZWFkIHJ1bnMgb24gdGhlIGNvcnJlc3BvbmRpbmcgY29yZSBvZiB0aGlz DQo+ID4+Pj4+PiBzb2NrZXQsIGVhY2ggYWxsb2NhdGlvbi9yZWxlYXNlIHdpbGwgZXhlY3V0ZSBh IHdob2xlIHNldCBvZiBoZWFwDQo+ID4+Pj4+PiBhbGxvY2F0aW9uL3JlbGVhc2Ugb3BlcmF0aW9u cyxyZXN1bHRpbmcgaW4gcG9vciBwZXJmb3JtYW5jZS4NCj4gPj4+Pj4+IEluc3RlYWQgd2UgY2Fs bCBtYWxsb2MoKSB0byBnZXQgbWVtb3J5IGZyb20gdGhlIHN5c3RlbSdzIGhlYXANCj4gPj4+Pj4+ IHNwYWNlIHRvIGZpeCB0aGlzIHByb2JsZW0uDQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBI aSBLYWlzZW4sDQo+ID4+Pj4+DQo+ID4+Pj4+IFVzaW5nIGxpYmMgbWFsbG9jIGNhbiBpbXByb3Zl IHBlcmZvcm1hbmNlIGZvciB0aGlzIGNhc2UsIGJ1dCBJDQo+ID4+Pj4+IHdvdWxkIGxpa2UgdG8g dW5kZXJzdGFuZCByb290IGNhdXNlIG9mIHRoZSBwcm9ibGVtLg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0K PiA+Pj4+PiBBcyBmYXIgYXMgSSBjYW4gc2VlLCBpbnRlcnJ1cHQgY2FsbGJhY2tzIGFyZSBydW4g YnkgaW50ZXJydXB0DQo+ID4+Pj4+IHRocmVhZA0KPiA+Pj4+PiAoImVhbC1pbnRyLSB0aHJlYWQi KSwgYW5kIGludGVycnVwdCB0aHJlYWQgY3JlYXRlZCBieQ0KPiA+PiAncnRlX2N0cmxfdGhyZWFk X2NyZWF0ZSgpJyBBUEkuDQo+ID4+Pj4+DQo+ID4+Pj4+ICdydGVfY3RybF90aHJlYWRfY3JlYXRl KCknIGNvbW1lbnQgbWVudGlvbnMgdGhhdCAiQ1BVIGFmZmluaXR5DQo+ID4+Pj4+IHJldHJpZXZl ZCBhdCB0aGUgdGltZSAncnRlX2VhbF9pbml0KCknIHdhcyBjYWxsZWQsIg0KPiA+Pj4+Pg0KPiA+ Pj4+PiBBbmQgJ3J0ZV9lYWxfaW5pdCgpJyBpcyBydW4gb24gbWFpbiBsY29yZSwgd2hpY2ggaXMg dGhlIGZpcnN0DQo+ID4+Pj4+IGxjb3JlIGluIHRoZSBjb3JlIGxpc3QgKHVubGVzcyBvdGhlcndp c2UgZGVmaW5lZCB3aXRoIC0tbWFpbi1sY29yZSkuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNvLCB0aGUg aW50ZXJydXB0cyBzaG91bGQgYmUgcnVubmluZyBvbiBhIGNvcmUgdGhhdCBoYXMgaHVnZXBhZ2Vz DQo+ID4+Pj4+IGFsbG9jYXRlZCBmb3IgaXQsIGFtIEkgbWlzc2luZyBzb21ldGhpbmcgaGVyZT8N Cj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+PiBUaGFuayBmb3IgeW91ciBjb21tZW50cy4gIExldCBt ZSB0cnkgdG8gZXhwbGFpbiB0aGUgcm9vdCBjYXVzZSBoZXJlOg0KPiA+Pj4+IGVhbF9pbnRyX3Ro cmVhZCB0aGUgQ1BVIGluIHRoZSBjb3JyZXNwb25kaW5nIHNsb3QgZG9lcyBub3QgY3JlYXRlDQo+ ID4+IG1lbW9yeSBwb29sLg0KPiA+Pj4+IFRoYXQgcmVzdWx0cyBpbiBmcmVxdWVudCBtZW1vcnkg c3Vic2VxdWVudGx5IGNyZWF0aW5nL2Rlc3RydWN0aW5nLg0KPiA+Pj4+DQo+ID4+Pj4gV2hlbiB0 ZXN0cG1kIHN0YXJ0ZWQsIHRoZSBwYXJhbWV0ZXIgKGUuZy4gLWwgNDAtNzkpIGlzIHNldC4NCj4g Pj4+PiBEaWZmZXJlbnQgT1MgaGFzIGRpZmZlcmVudCB0b3BvbG9neS4gU29tZSBPUyBsaWtlIFNV U0Ugb25seSBjcmVhdGVzDQo+ID4+Pj4gbWVtb3J5IHBvb2wgZm9yIG9uZSBDUFUgc2xvdCwgd2hp bGUgb3RoZXIgc3lzdGVtIGNyZWF0ZXMgZm9yIHR3by4NCj4gPj4+PiBUaGF0IGlzIHdoeSB0aGUg cHJvYmxlbSBvY2N1cnMgd2hlbiB1c2luZyBtZW1vcmllcyBpbiBkaWZmZXJlbnQgT1MuDQo+ID4+ Pg0KPiA+Pj4NCj4gPj4+IEl0IGlzIHRlc3RwbWQgYXBwbGljYXRpb24gdGhhdCBkZWNpZGVzIGZy b20gd2hpY2ggc29ja2V0IHRvIGFsbG9jYXRlDQo+ID4+PiBtZW1vcnkgZnJvbSwgcmlnaHQuIFRo aXMgaXMgbm90aGluZyBzcGVjaWZpYyB0byBPUy4NCj4gPj4+DQo+ID4+PiBBcyBmYXIgYXMgSSBy ZW1lbWJlciwgdGVzdHBtZCBsb2dpYyBpcyB0b28gYWxsb2NhdGUgZnJvbSBzb2NrZXQgdGhhdA0K PiA+Pj4gaXRzIGNvcmVzIGFyZSB1c2VkIChwcm92aWRlZCB3aXRoIC1sIHBhcmFtZXRlciksIGFu ZCBhbGxvY2F0ZSBmcm9tDQo+ID4+PiBzb2NrZXQgdGhhdCBkZXZpY2UgaXMgYXR0YWNoZWQgdG8u DQo+ID4+Pg0KPiA+Pj4gU28sIGluIGEgZHVhbCBzb2NrZXQgc3lzdGVtLCBpZiBhbGwgdXNlZCBj b3JlcyBhcmUgaW4gc29ja2V0IDEgYW5kDQo+ID4+PiB0aGUgTklDIGlzIGluIHNvY2tldCAxLCBu byBtZW1vcnkgaXMgYWxsb2NhdGVkIGZvciBzb2NrZXQgMC4gVGhpcyBpcw0KPiA+Pj4gdG8gb3B0 aW1pemUgbWVtb3J5IGNvbnN1bXB0aW9uLg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBDYW4geW91IHBs ZWFzZSBjb25maXJtIHRoYXQgdGhlIHByb2JsZW0geW91IGFyZSBvYnNlcnZpbmcgaXMgYmVjYXVz ZQ0KPiA+Pj4gaW50ZXJydXB0IGhhbmRsZXIgaXMgcnVubmluZyBvbiBhIENQVSwgd2hpY2ggZG9l c24ndCBoYXZlIG1lbW9yeQ0KPiA+Pj4gYWxsb2NhdGVkIGZvciBpdHMgc29ja2V0Pw0KPiA+Pj4N Cj4gPj4+IEluIHRoaXMgY2FzZSB3aGF0IEkgZG9uJ3QgdW5kZXJzdGFuZCBpcyB3aHkgaW50ZXJy dXB0cyBpcyBub3QNCj4gPj4+IHJ1bm5pbmcgb24gbWFpbiBsY29yZSwgd2hpY2ggc2hvdWxkIGJl IGZpcnN0IGNvcmUgaW4gdGhlIGxpc3QsIGZvciAiLWwgNDAtNzkiDQo+ID4+PiBzYW1wbGUgaXQg c2hvdWxkIGJlIGxjb3JlIDQwLg0KPiA+Pj4gRm9yIHlvdXIgY2FzZSwgaXMgaW50ZXJydXB0IGhh bmRsZXIgcnVuIG9uIGNvcmUgMD8gT3IgYW55IGFyYml0cmFyeSBjb3JlPw0KPiA+Pj4gSWYgc28s IGNhbiB5b3UgcGxlYXNlIGNvbmZpcm0gd2hlbiB5b3UgcHJvdmlkZSBjb3JlIGxpc3QgYXMgIi1s IDAsNDAtNzkiDQo+ID4+PiBmaXhlcyB0aGUgaXNzdWU/DQo+ID4+Pg0KPiA+IEZpcnN0IG9mIGFs bCwgc29ycnkgdG8gcmVwbHkgdG8geW91IHNvIGxhdGUuDQo+ID4gSSBjYW4gY29uZmlybSB0aGF0 IHRoZSBwcm9ibGVtIEkgb2JzZXJ2ZWQgaXMgYmVjYXVzZSAgaW50ZXJydXB0DQo+ID4gaGFuZGxl ciBpcyBydW5uaW5nIG9uIGEgQ1BVLCB3aGljaCBkb2Vzbid0IGhhdmUgbWVtb3J5IGFsbG9jYXRl ZCBmb3IgaXRzDQo+IHNvY2tldC4NCj4gPg0KPiA+IEluIG15IGNhc2UsIGludGVycnVwdCBoYW5k bGVyIGlzIHJ1bm5pbmcgb24gY29yZSAwLg0KPiA+IEkgdHJpZWQgcHJvdmlkaW5nICItbCAwLDQw LTc5IiBhcyBhIHN0YXJ0dXAgcGFyYW1ldGVyLCB0aGlzIGlzc3VlIGNhbiBiZQ0KPiByZXNvbHZl ZC4NCj4gPg0KPiA+IEkgY29ycmVjdGVkIHRoZSBwcmV2aW91cyBzdGF0ZW1lbnQgdGhhdCB0aGlz IHByb2JsZW0gZG9lcyAgb25seSBvY2N1cg0KPiA+IG9uIHRoZSBTVVNFIHN5c3RlbS4gSW4gYW55 IE9TLCB0aGlzIHByb2JsZW0gb2NjdXJzIGFzIGxvbmcgYXMgdGhlDQo+ID4gcmFuZ2Ugb2Ygc3Rh cnR1cCBwYXJhbWV0ZXJzIGlzIG9ubHkgb24gbm9kZTEuDQo+ID4NCj4gPj4+DQo+ID4+Pj4+DQo+ ID4+Pj4+DQo+ID4+Pj4+IEFuZCB3aGF0IGFib3V0IHVzaW5nICdydGVfbWFsbG9jX3NvY2tldCgp JyBBUEkgKGluc3RlYWQgb2YNCj4gPj4+Pj4gcnRlX21hbGxvYyksIHdoaWNoIGdldHMgJ3NvY2tl dCcgYXMgcGFyYW1ldGVyLCBhbmQgcHJvdmlkZSB0aGUNCj4gPj4+Pj4gc29ja2V0IHRoYXQgZGV2 aWNlcyBpcyBvbiBhcyBwYXJhbWV0ZXIgdG8gdGhpcyBBUEk/IElzIGl0IHBvc3NpYmxlDQo+ID4+ Pj4+IHRvIHRlc3QNCj4gPj4gdGhpcz8NCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+PiBBcyB0byB0 aGUgcmVhc29uIGZvciBub3QgdXNpbmcgcnRlX21hbGxvY19zb2NrZXQuIEkgdGhvdWdodA0KPiA+ Pj4+IHJ0ZV9tYWxsb2Nfc29ja2V0KCkgY291bGQgc29sdmUgdGhlIHByb2JsZW0gdG9vLiBBbmQg dGhlDQo+ID4+Pj4gYXBwcm9wcmlhdGUgcGFyYW1ldGVyIHNob3VsZCBiZSB0aGUgc29ja2V0X2lk IHRoYXQgY3JlYXRlZCB0aGUNCj4gPj4+PiBtZW1vcnkgcG9vbCBmb3IgRFBESyBpbml0aWFsaXph dGlvbi4gQXNzdW1pbmcgdGhhdD4gdGhlIHNvY2tldF9pZA0KPiA+Pj4+IG9mIHRoZSBpbml0aWFs bHkgYWxsb2NhdGVkIG1lbW9yeSA9IDEsIGZpcnN0IGxldCB0aGUNCj4gPj4+IGVhbF9pbnRyX3Ro cmVhZA0KPiA+Pj4+IGRldGVybWluZSBpZiBpdCBpcyBvbiB0aGUgc29ja2V0X2lkLCB0aGVuIHJl Y29yZCB0aGlzIHNvY2tldF9pZCBpbg0KPiA+Pj4+IHRoZSBlYWxfaW50cl90aHJlYWQgYW5kIHBh c3MgaXQgdG8gdGhlIGlhdmZfZXZlbnRfdGhyZWFkLiAgQnV0DQo+ID4+Pj4gdGhlcmUgc2VlbXMg bm8gd2F5IHRvIGxpbmsgdGhpcyBwYXJhbWV0ZXIgdG8gdGhlDQo+ID4+Pj4gaWF2Zl9kZXZfZXZl bnRfcG9zdCgpDQo+ID4+IGZ1bmN0aW9uLiBUaGF0IGlzIHdoeSBydGVfbWFsbG9jX3NvY2tldCBp cyBub3QgdXNlZC4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IEkgd2FzIHRoaW5raW5nIHNvY2tldCBp ZCBvZiBkZXZpY2UgY2FuIGJlIHVzZWQsIGJ1dCB0aGF0IHdvbid0IGhlbHANCj4gPj4+IGlmIHRo ZSBjb3JlIHRoYXQgaW50ZXJydXB0IGhhbmRsZXIgcnVucyBpcyBpbiBkaWZmZXJlbnQgc29ja2V0 Lg0KPiA+Pj4gQW5kIEkgYWxzbyBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgd2F5IHRvIGdldCBz b2NrZXQgdGhhdCBpbnRlcnJ1cHQNCj4gPj4+IHRocmVhZCBpcyBvbi4gQERhdmlkIG1heSBoZWxw IHBlcmhhcHMuDQo+ID4+Pg0KPiA+Pj4gU28gcXVlc3Rpb24gaXMgd2h5IGludGVycnVwdCB0aHJl YWQgaXMgbm90IHJ1bm5pbmcgb24gbWFpbiBsY29yZS4NCj4gPj4+DQo+ID4+DQo+ID4+IE9LIGFm dGVyIHNvbWUgdGFsayB3aXRoIERhdmlkLCB3aGF0IEkgYW0gbWlzc2luZyBpcw0KPiAncnRlX2N0 cmxfdGhyZWFkX2NyZWF0ZSgpJw0KPiA+PiBkb2VzIE5PVCBydW4gb24gbWFpbiBsY29yZSwgaXQg Y2FuIHJ1biBvbiBhbnkgY29yZSBleGNlcHQgZGF0YSBwbGFuZQ0KPiBjb3Jlcy4NCj4gPj4NCj4g Pj4gRHJpdmVyICJpYXZmLWV2ZW50LXRocmVhZCIgdGhyZWFkIChpYXZmX2Rldl9ldmVudF9oYW5k bGUoKSkgYW5kDQo+ID4+IGludGVycnVwdCB0aHJlYWQgKHNvIGRyaXZlciBpbnRlcnJ1cHQgY2Fs bGJhY2sgaWF2Zl9kZXZfZXZlbnRfcG9zdCgpKQ0KPiA+PiBjYW4gcnVuIG9uIGFueSBjb3JlLCBt YWtpbmcgaXQgaGFyZCB0byBtYW5hZ2UuDQo+ID4+IEFuZCBpdCBzZWVtcyBpdCBpcyBub3QgcG9z c2libGUgdG8gY29udHJvbCB3aGVyZSBpbnRlcnJ1cHQgdGhyZWFkIHRvIHJ1bi4NCj4gPj4NCj4g Pj4gT25lIG9wdGlvbiBjYW4gYmUgYWxsb2NhdGluZyBodWdlcGFnZXMgZm9yIGFsbCBzb2NrZXRz LCBidXQgdGhpcw0KPiA+PiByZXF1aXJlcyB1c2VyIGludm9sdmVtZW50LCBhbmQgY2FuJ3QgaGFw cGVuIHRyYW5zcGFyZW50bHkuDQo+ID4+DQo+ID4+IE90aGVyIG9wdGlvbiBjYW4gYmUgdG8gY29u dHJvbCB3aGVyZSAiaWF2Zi1ldmVudC10aHJlYWQiIHJ1biwgbGlrZQ0KPiA+PiB1c2luZyAncnRl X3RocmVhZF9jcmVhdGUoKScgdG8gY3JlYXRlIHRocmVhZCBhbmQgcHJvdmlkZSBhdHRyaWJ1dGUg dG8NCj4gPj4gcnVuIGl0IG9uIG1haW4gbGNvcmUgKHJ0ZV9sY29yZV9jcHVzZXQocnRlX2dldF9t YWluX2xjb3JlKCkpKT8NCj4gPj4NCj4gPj4gQ2FuIHlvdSBwbGVhc2UgdGVzdCBhYm92ZSBvcHRp b24/DQo+ID4+DQo+ID4+DQo+ID4gVGhlIGZpcnN0IG9wdGlvbiBjYW4gc29sdmUgdGhpcyBpc3N1 ZS4gYnV0IHRvIGJvcnJvdyBmcm9tIHlvdXINCj4gPiBwcmV2aW91cyBzYXlpbmcsICJpbiBhIGR1 YWwgc29ja2V0IHN5c3RlbSwgaWYgYWxsIHVzZWQgY29yZXMgYXJlIGluDQo+ID4gc29ja2V0IDEg YW5kIHRoZSBOSUMgaXMgaW4gc29ja2V0IDEsICBubyBtZW1vcnkgaXMgYWxsb2NhdGVkIGZvciBz b2NrZXQgMC4NCj4gVGhpcyBpcyB0byBvcHRpbWl6ZSBtZW1vcnkgY29uc3VtcHRpb24uIg0KPiA+ IEkgdGhpbmsgaXQncyB1bnJlYXNvbmFibGUgdG8gZG8gc28uDQo+ID4NCj4gPiBBYm91dCBvdGhl ciBvcHRpb24uIEluICIgcnRlX2VhbF9pbnRyX2luaXQiIGZ1bmN0aW9uLCBBZnRlciB0aGUgdGhy ZWFkDQo+ID4gaXMgY3JlYXRlZCwgSSBzZXQgdGhlIHRocmVhZCBhZmZpbml0eSBmb3IgZWFsLWlu dHItdGhyZWFkLCBidXQgaXQgZG9lcyBub3Qgc29sdmUNCj4gdGhpcyBpc3N1ZS4NCj4gDQo+IEhp IEthaXNlbiwNCj4gDQo+IFRoZXJlIGFyZSB0d28gdGhyZWFkcyBpbnZvbHZlZCwNCj4gDQo+IEZp cnN0IG9uZSBpcyBpbnRlcnJ1cHQgdGhyZWFkLCAiZWFsLWludHItdGhyZWFkIiwgY3JlYXRlZCBi eSAncnRlX2VhbF9pbnRyX2luaXQoKScuDQo+IA0KPiBTZWNvbmQgb25lIGlzIGlhdmYgZXZlbnQg aGFuZGxlciwgImlhdmYtZXZlbnQtdGhyZWFkIiwgY3JlYXRlZCBieQ0KPiAnaWF2Zl9kZXZfZXZl bnRfaGFuZGxlcl9pbml0KCknLg0KPiANCj4gRmlyc3Qgb25lIHRyaWdnZXJlZCBieSBpbnRlcnJ1 cHQgYW5kIHB1dHMgYSBtZXNzYWdlIHRvIGEgbGlzdCwgc2Vjb25kIG9uZQ0KPiBjb25zdW1lcyBm cm9tIHRoZSBsaXN0IGFuZCBwcm9jZXNzZXMgdGhlIG1lc3NhZ2UuDQo+IFNvIEkgYXNzdW1lIHR3 byB0aHJlYWQgYmVpbmcgaW4gZGlmZmVyZW50IHNvY2tldHMsIG9yIG1lbW9yeSBiZWluZw0KPiBh bGxvY2F0ZWQgaW4gYSBkaWZmZXJlbnQgc29ja2V0IHRoYW4gdGhlIGNvcmVzIHJ1bm5pbmcgY2F1 c2VzIHRoZQ0KPiBwZXJmb3JtYW5jZSBpc3N1ZS4NCj4gDQo+IERpZCB5b3UgdGVzdCB0aGUgc2Vj b25kIHRocmVhZCwgImlhdmYtZXZlbnQtdGhyZWFkIiwgYWZmaWxpYXRlZCB0byBtYWluIGNvcmU/ DQo+IChieSBjcmVhdGluZyB0aHJlYWQgdXNpbmcgJ3J0ZV90aHJlYWRfY3JlYXRlKCknIEFQSSkN Cj4gDQo+IA0KSSB0cmllZCB0byB1c2UgJydydGVfdGhyZWFkX2NyZWF0ZSgpICdBUEkgY3JlYXRl cyB0aGUgc2Vjb25kIHRocmVhZCwgDQpidXQgdGhpcyBpc3N1ZSBzdGlsbCBleGlzdHMuDQoNCkJl Y2F1c2UgbWFsbG9jIGlzIGV4ZWN1dGVkIGJ5ICJlYWxfaW50cl90aHJlYWQiLCBpdCBoYXMgbm90 aGluZyANCnRvIGRvIHdpdGggImlhdmZfZXZlbnRfdGhyZWFkIi4NCg0KQnV0IEkgZm91bmQgYSBw YXRjaCBzaW1pbGFyIHRvIG15IGlzc3Vl77yaDQpodHRwczovL3BhdGNod29yay5kcGRrLm9yZy9w cm9qZWN0L2RwZGsvcGF0Y2gvMjAyMjEyMjExMDQ4NTguMjk2NTMwLTEtZGF2aWQubWFyY2hhbmRA cmVkaGF0LmNvbS8NCkFjY29yZGluZyB0byB0aGUgcGF0Y2ggbW9kaWZpY2F0aW9uLCB0aGlzIGlz c3VlIGNhbiBiZSBzb2x2ZWQuDQoNCj4gPj4NCj4gPj4+PiBMZXQgbWUga25vdyBpZiB0aGVyZSBp cyBhbnl0aGluZyBlbHNlIHVuY2xlYXIuDQo+ID4+Pj4+DQo+ID4+Pj4+PiBGaXhlczogY2I1YzFi OTFmNzZmICgibmV0L2lhdmY6IGFkZCB0aHJlYWQgZm9yIGV2ZW50IGNhbGxiYWNrcyIpDQo+ID4+ Pj4+PiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gU2lnbmVkLW9mZi1i eTogS2Fpc2VuIFlvdSA8a2Fpc2VueC55b3VAaW50ZWwuY29tPg0KPiA+Pj4+Pj4gLS0tDQo+ID4+ Pj4+PiAgZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3ZjaG5sLmMgfCA4ICsrKy0tLS0tDQo+ID4+Pj4+ PiAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gPj4+ Pj4+DQo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3ZjaG5sLmMN Cj4gPj4+Pj4+IGIvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3ZjaG5sLmMgaW5kZXggZjkyZGFmOTdm Mi4uYTA1NzkxZmU0OA0KPiA+Pj4+Pj4gMTAwNjQ0DQo+ID4+Pj4+PiAtLS0gYS9kcml2ZXJzL25l dC9pYXZmL2lhdmZfdmNobmwuYw0KPiA+Pj4+Pj4gKysrIGIvZHJpdmVycy9uZXQvaWF2Zi9pYXZm X3ZjaG5sLmMNCj4gPj4+Pj4+IEBAIC0zNiw3ICszNiw2IEBAIHN0cnVjdCBpYXZmX2V2ZW50X2Vs ZW1lbnQgew0KPiA+Pj4+Pj4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldjsNCj4gPj4+Pj4+ICAJ ZW51bSBydGVfZXRoX2V2ZW50X3R5cGUgZXZlbnQ7DQo+ID4+Pj4+PiAgCXZvaWQgKnBhcmFtOw0K PiA+Pj4+Pj4gLQlzaXplX3QgcGFyYW1fYWxsb2Nfc2l6ZTsNCj4gPj4+Pj4+ICAJdWludDhfdCBw YXJhbV9hbGxvY19kYXRhWzBdOw0KPiA+Pj4+Pj4gIH07DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQEAg LTgwLDcgKzc5LDcgQEAgaWF2Zl9kZXZfZXZlbnRfaGFuZGxlKHZvaWQgKnBhcmFtDQo+ID4+IF9f cnRlX3VudXNlZCkNCj4gPj4+Pj4+ICAJCVRBSUxRX0ZPUkVBQ0hfU0FGRShwb3MsICZwZW5kaW5n LCBuZXh0LA0KPiBzYXZlX25leHQpIHsNCj4gPj4+Pj4+ICAJCQlUQUlMUV9SRU1PVkUoJnBlbmRp bmcsIHBvcywgbmV4dCk7DQo+ID4+Pj4+PiAgCQkJcnRlX2V0aF9kZXZfY2FsbGJhY2tfcHJvY2Vz cyhwb3MtPmRldiwNCj4gcG9zLSBldmVudCwNCj4gPj4gcG9zLT5wYXJhbSk7DQo+ID4+Pj4+PiAt CQkJcnRlX2ZyZWUocG9zKTsNCj4gPj4+Pj4+ICsJCQlmcmVlKHBvcyk7DQo+ID4+Pj4+PiAgCQl9 DQo+ID4+Pj4+PiAgCX0NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBAQCAtOTQsMTQgKzkzLDEzIEBAIGlh dmZfZGV2X2V2ZW50X3Bvc3Qoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYsDQo+ID4+IHsNCj4g Pj4+Pj4+ICAJc3RydWN0IGlhdmZfZXZlbnRfaGFuZGxlciAqaGFuZGxlciA9ICZldmVudF9oYW5k bGVyOw0KPiA+Pj4+Pj4gIAljaGFyIG5vdGlmeV9ieXRlOw0KPiA+Pj4+Pj4gLQlzdHJ1Y3QgaWF2 Zl9ldmVudF9lbGVtZW50ICplbGVtID0gcnRlX21hbGxvYyhOVUxMLA0KPiBzaXplb2YoKmVsZW0p DQo+ID4+Pj4+ICsgcGFyYW1fYWxsb2Nfc2l6ZSwgMCk7DQo+ID4+Pj4+PiArCXN0cnVjdCBpYXZm X2V2ZW50X2VsZW1lbnQgKmVsZW0gPSBtYWxsb2Moc2l6ZW9mKCplbGVtKSArDQo+ID4+Pj4+PiAr cGFyYW1fYWxsb2Nfc2l6ZSk7DQo+ID4+Pj4+PiAgCWlmICghZWxlbSkNCj4gPj4+Pj4+ICAJCXJl dHVybjsNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAgCWVsZW0tPmRldiA9IGRldjsNCj4gPj4+Pj4+ICAJ ZWxlbS0+ZXZlbnQgPSBldmVudDsNCj4gPj4+Pj4+ICAJZWxlbS0+cGFyYW0gPSBwYXJhbTsNCj4g Pj4+Pj4+IC0JZWxlbS0+cGFyYW1fYWxsb2Nfc2l6ZSA9IHBhcmFtX2FsbG9jX3NpemU7DQo+ID4+ Pj4+PiAgCWlmIChwYXJhbSAmJiBwYXJhbV9hbGxvY19zaXplKSB7DQo+ID4+Pj4+PiAgCQlydGVf bWVtY3B5KGVsZW0tPnBhcmFtX2FsbG9jX2RhdGEsIHBhcmFtLA0KPiA+Pj4+PiBwYXJhbV9hbGxv Y19zaXplKTsNCj4gPj4+Pj4+ICAJCWVsZW0tPnBhcmFtID0gZWxlbS0+cGFyYW1fYWxsb2NfZGF0 YTsgQEAgLTE2NSw3DQo+ICsxNjMsNw0KPiA+Pj4+PiBAQA0KPiA+Pj4+Pj4gaWF2Zl9kZXZfZXZl bnRfaGFuZGxlcl9maW5pKHZvaWQpDQo+ID4+Pj4+PiAgCXN0cnVjdCBpYXZmX2V2ZW50X2VsZW1l bnQgKnBvcywgKnNhdmVfbmV4dDsNCj4gPj4+Pj4+ICAJVEFJTFFfRk9SRUFDSF9TQUZFKHBvcywg JmhhbmRsZXItPnBlbmRpbmcsIG5leHQsDQo+IHNhdmVfbmV4dCkgew0KPiA+Pj4+Pj4gIAkJVEFJ TFFfUkVNT1ZFKCZoYW5kbGVyLT5wZW5kaW5nLCBwb3MsIG5leHQpOw0KPiA+Pj4+Pj4gLQkJcnRl X2ZyZWUocG9zKTsNCj4gPj4+Pj4+ICsJCWZyZWUocG9zKTsNCj4gPj4+Pj4+ICAJfQ0KPiA+Pj4+ Pj4gIH0NCj4gPj4+Pj4+DQo+ID4+Pj4NCj4gPj4+DQo+ID4NCg0K