Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A9E9C43381 for ; Wed, 20 Mar 2019 17:56:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 562AB2175B for ; Wed, 20 Mar 2019 17:56:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726936AbfCTR4T (ORCPT ); Wed, 20 Mar 2019 13:56:19 -0400 Received: from mga12.intel.com ([192.55.52.136]:40476 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726529AbfCTR4S (ORCPT ); Wed, 20 Mar 2019 13:56:18 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Mar 2019 10:56:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,249,1549958400"; d="scan'208";a="127127921" Received: from orsmsx108.amr.corp.intel.com ([10.22.240.6]) by orsmga008.jf.intel.com with ESMTP; 20 Mar 2019 10:56:17 -0700 Received: from orsmsx121.amr.corp.intel.com (10.22.225.226) by ORSMSX108.amr.corp.intel.com (10.22.240.6) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 20 Mar 2019 10:56:16 -0700 Received: from orsmsx103.amr.corp.intel.com ([169.254.5.129]) by ORSMSX121.amr.corp.intel.com ([169.254.10.155]) with mapi id 14.03.0415.000; Wed, 20 Mar 2019 10:56:16 -0700 From: "Gix, Brian" To: "Stotland, Inga" , "linux-bluetooth@vger.kernel.org" CC: "luiz.dentz@gmail.com" , "marcel@holtmann.org" , "johan.hedberg@gmail.com" Subject: RE: [PATCH BlueZ v3 1/1] mesh: Add APIs for Provisioner and Config Client Thread-Topic: [PATCH BlueZ v3 1/1] mesh: Add APIs for Provisioner and Config Client Thread-Index: AQHU3pbhYDSdrvdplEmfEAXs+bKJmqYUigYAgAA/h3A= Date: Wed, 20 Mar 2019 17:56:16 +0000 Message-ID: References: <20190319210029.24734-1-brian.gix@intel.com> <20190319210029.24734-2-brian.gix@intel.com> <4562230ce67aade420b7c9c173a3771f71ce4868.camel@intel.com> In-Reply-To: <4562230ce67aade420b7c9c173a3771f71ce4868.camel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMzc5MmIyYWYtZWU0MC00NmE4LTk1MDEtYTIzMzMyN2MwZjg2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoia2g0dHFQdXZVaE90VlhOSTVhMDEyYU5PcThXUWtNelUzZ0l2ZkE2bk03UVBteUFwV2hJcDhsMUVqNU03STNmVCJ9 x-originating-ip: [10.22.254.138] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org SGkgSW5nYSwNCg0KPiBGcm9tOiBTdG90bGFuZCwgSW5nYQ0KPiANCj4gSGkgQnJpYW4sDQo+IA0K PiBPbiBUdWUsIDIwMTktMDMtMTkgYXQgMTQ6MDAgLTA3MDAsIEJyaWFuIEdpeCB3cm90ZToNCj4g PiBUaGUgYWRkZWQgRC1CdXMgQVBJcyBlbmFibGUgQXBwbGljYXRpb25zIHRvIGZ1bmN0aW9uIGlu IGEgUHJvdmlzaW9uZXINCj4gPiBJbml0aWF0b3Igcm9sZSwgYW5kIGFzIGEgQ29uZmlndXJhdGlv biBDbGllbnQuDQo+ID4gLS0tDQo+ID4gIGRvYy9tZXNoLWFwaS50eHQgfCAzNjMNCj4gPiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+ID4g IDEgZmlsZSBjaGFuZ2VkLCAzNDggaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pDQo+ID4N Cj4gPiBkaWZmIC0tZ2l0IGEvZG9jL21lc2gtYXBpLnR4dCBiL2RvYy9tZXNoLWFwaS50eHQgaW5k ZXgNCj4gPiAwYjM0MWEwZjkuLjg1ZDFmODNkMiAxMDA2NDQNCj4gPiAtLS0gYS9kb2MvbWVzaC1h cGkudHh0DQo+ID4gKysrIGIvZG9jL21lc2gtYXBpLnR4dA0KPiA+IEBAIC0zMCw2ICszMCw3IEBA IE1ldGhvZHM6DQo+ID4gIAkJCW9yZy5ibHVlei5tZXNoLkVycm9yLkludmFsaWRBcmd1bWVudHMN Cj4gPg0KPiA+ICAJdm9pZCBDYW5jZWwodm9pZCkNCj4gPiArDQo+ID4gIAkJQ2FuY2VscyBhbiBv dXRzdGFuZGluZyBwcm92aXNpb25pbmcgcmVxdWVzdCBpbml0aWF0ZWQgYnkNCj4gSm9pbigpDQo+ ID4gIAkJbWV0aG9kLg0KPiA+DQo+ID4gQEAgLTEwOSw2ICsxMTAsMzcgQEAgTWV0aG9kczoNCj4g PiAgCQlQb3NzaWJsZUVycm9yczoNCj4gPiAgCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuTm90Rm91 bmQNCj4gPg0KPiA+ICsJdWludDY0IHRva2VuIENyZWF0ZU5ldHdvcmsob2JqZWN0IGFwcF9yb290 LCBhcnJheXtieXRlfVsxNl0NCj4gPiB1dWlkKQ0KPiA+ICsNCj4gPiArCQlUaGlzIGlzIHRoZSBm aXJzdCBtZXRob2QgdGhhdCBhbiBhcHBsaWNhdGlvbiBjYWxscyB0bw0KPiA+IGJlY29tZQ0KPiA+ ICsJCWEgUHJvdmlzaW9uZXIgbm9kZSwgYW5kIGEgQ29uZmlndXJhdGlvbiBDbGllbnQgb24gYQ0K PiA+IG5ld2x5DQo+ID4gKwkJY3JlYXRlZCBNZXNoIE5ldHdvcmsuDQo+ID4gKw0KPiA+ICsJCVRo ZSBhcHBfcm9vdCBwYXJhbWV0ZXIgaXMgYSBELUJ1cyBvYmplY3Qgcm9vdCBwYXRoIG9mDQo+ID4g dGhlDQo+ID4gKwkJYXBwbGljYXRpb24gdGhhdCBpbXBsZW1lbnRzIG9yZy5ibHVlei5tZXNoLkFw cGxpY2F0aW9uMQ0KPiA+ICsJCWludGVyZmFjZSwgYW5kIGEgb3JnLmJsdWV6Lm1lc2guUHJvdmlz aW9uZXIxIGludGVyZmFjZS4NCj4gPiBUaGUNCj4gPiArCQlhcHBsaWNhdGlvbiByZXByZXNlbnRz IGEgbm9kZSB3aGVyZSBjaGlsZCBtZXNoIGVsZW1lbnRzDQo+ID4gaGF2ZQ0KPiA+ICsJCXRoZWly IG93biBvYmplY3RzIHRoYXQgaW1wbGVtZW50DQo+ID4gb3JnLmJsdWV6Lm1lc2guRWxlbWVudDEN Cj4gPiArCQlpbnRlcmZhY2UuIFRoZSBhcHBsaWNhdGlvbiBoaWVyYXJjaHkgYWxzbyBjb250YWlu cyBhDQo+ID4gcHJvdmlzaW9uDQo+ID4gKwkJYWdlbnQgb2JqZWN0IHRoYXQgaW1wbGVtZW50cw0K PiA+IG9yZy5ibHVlei5tZXNoLlByb3Zpc2lvbkFnZW50MQ0KPiA+ICsJCWludGVyZmFjZS4gVGhl IHN0YW5kYXJkIERCdXMuT2JqZWN0TWFuYWdlciBpbnRlcmZhY2UNCj4gPiBtdXN0IGJlDQo+ID4g KwkJYXZhaWxhYmxlIG9uIHRoZSBhcHBfcm9vdCBwYXRoLg0KPiA+ICsNCj4gPiArCQlUaGUgdXVp ZCBwYXJhbWV0ZXIgaXMgYSAxNi1ieXRlIGFycmF5IHRoYXQgY29udGFpbnMNCj4gPiBEZXZpY2Ug VVVJRC4NCj4gPiArDQo+ID4gKwkJVGhlIHJldHVybmVkIHRva2VuIG11c3QgYmUgcHJlc2VydmVk IGJ5IHRoZSBhcHBsaWNhdGlvbg0KPiA+IGluDQo+ID4gKwkJb3JkZXIgdG8gYXV0aGVudGljYXRl IGl0c2VsZiB0byB0aGUgbWVzaCBkYWVtb24gYW5kDQo+ID4gYXR0YWNoIHRvDQo+ID4gKwkJdGhl IG5ldHdvcmsgYXMgYSBtZXNoIG5vZGUgYnkgY2FsbGluZyBBdHRhY2goKSBtZXRob2QNCj4gPiBv cg0KPiA+ICsJCXBlcm1hbmVudGx5IHJlbW92ZSB0aGUgaWRlbnRpdHkgb2YgdGhlIG1lc2ggbm9k ZSBieQ0KPiA+IGNhbGxpbmcNCj4gPiArCQlMZWF2ZSgpIG1ldGhvZC4NCj4gPiArDQo+ID4gKwkJ VGhlIG90aGVyIGluZm9ybWF0aW9uIHRoZSBibHVldG9vdGgtbWVzaGQgZGFlbW9uIHdpbGwNCj4g PiBwcmVzZXJ2ZQ0KPiA+ICsJCWFib3V0IHRoZSBpbml0aWFsIG5vZGUsIGlzIHRvIGdpdmUgaXQg dGhlIGluaXRpYWwNCj4gPiBwcmltYXJ5DQo+ID4gKwkJdW5pY2FzdCBhZGRyZXNzICgweDAwMDEp LCBhbmQgY3JlYXRlIGFuZCBhc3NpZ24gYQ0KPiA+IG5ldF9rZXkgYXMgdGhlDQo+ID4gKwkJcHJp bWFyeSBuZXR3b3JrIG5ldF9pbmRleCAoMHgwMDApLg0KPiA+ICsNCj4gPiArCQlQb3NzaWJsZUVy cm9yczoNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuSW52YWxpZEFyZ3VtZW50cw0KPiA+ DQo+ID4gIE1lc2ggTm9kZSBIaWVyYXJjaHkNCj4gPiAgPT09PT09PT09PT09PT09PT09PQ0KPiA+ IEBAIC0xNDYsNiArMTc4LDMwIEBAIE1ldGhvZHM6DQo+ID4gIAkJCW9yZy5ibHVlei5tZXNoLkVy cm9yLkludmFsaWRBcmd1bWVudHMNCj4gPiAgCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuTm90Rm91 bmQNCj4gPg0KPiA+ICsJdm9pZCBTZW5kV2l0aERldmljZUtleShvYmplY3QgZWxlbWVudF9wYXRo LCB1aW50MTYgZGVzdGluYXRpb24sDQo+ID4gKwkJCQkJdWludDE2IG5ldF9pbmRleCwgYXJyYXl7 Ynl0ZX0NCj4gPiBkYXRhKQ0KPiA+ICsNCj4gPiArCQlUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNl bmQgYSBtZXNzYWdlIG9yaWdpbmF0ZWQgYnkgYQ0KPiA+IGxvY2FsDQo+ID4gKwkJbW9kZWwgZW5j b2RlZCB3aXRoIHRoZSBkZXZpY2Uga2V5IG9mIHRoZSByZW1vdGUgbm9kZS4NCj4gPiArDQo+ID4g KwkJVGhlIGVsZW1lbnRfcGF0aCBwYXJhbWV0ZXIgaXMgdGhlIG9iamVjdCBwYXRoIG9mIGFuDQo+ ID4gZWxlbWVudCBmcm9tDQo+ID4gKwkJYSBjb2xsZWN0aW9uIG9mIHRoZSBhcHBsaWNhdGlvbiBl bGVtZW50cyAoc2VlIE1lc2gNCj4gPiBBcHBsaWNhdGlvbg0KPiA+ICsJCUhpZXJhcmNoeSBzZWN0 aW9uKS4NCj4gPiArDQo+ID4gKwkJVGhlIGRlc3RpbmF0aW9uIHBhcmFtZXRlciBjb250YWlucyB0 aGUgZGVzdGluYXRpb24NCj4gPiBhZGRyZXNzLiBUaGlzDQo+ID4gKwkJZGVzdGluYXRpb24gbXVz dCBiZSBhIHVpbnQxNiB0byBhIHVuaWNhc3QgYWRkcmVzcywgb3IgYQ0KPiA+IHdlbGwNCj4gPiAr CQlrbm93biBncm91cCBhZGRyZXNzLg0KPiA+ICsNCj4gPiArCQlUaGUgbmV0X2luZGV4IHBhcmFt ZXRlciBpcyB0aGUgc3VibmV0IGluZGV4IG9mIHRoZQ0KPiA+IG5ldHdvcmsgb24NCj4gPiArCQl3 aGljaCB0aGUgbWVzc2FnZSBpcyB0byBiZSBzZW50Lg0KPiA+ICsNCj4gPiArCQlUaGUgZGF0YSBw YXJhbWV0ZXIgaXMgYW4gb3V0Z29pbmcgbWVzc2FnZSB0byBiZQ0KPiA+IGVuY3lwdGVkIGJ5IHRo ZQ0KPiA+ICsJCW1lc2hkIGRhZW1vbiBhbmQgc2VudCBvbi4NCj4gPiArDQo+ID4gKwkJUG9zc2li bGUgZXJyb3JzOg0KPiA+ICsJCQlvcmcuYmx1ZXoubWVzaC5FcnJvci5JbnZhbGlkQXJndW1lbnRz DQo+ID4gKwkJCW9yZy5ibHVlei5tZXNoLkVycm9yLk5vdEZvdW5kDQo+ID4gKw0KPiA+ICAJdm9p ZCBQdWJsaXNoKG9iamVjdCBlbGVtZW50X3BhdGgsIHVpbnQxNiBtb2RlbCwgYXJyYXl7Ynl0ZX0N Cj4gPiBkYXRhKQ0KPiA+DQo+ID4gIAkJVGhpcyBtZXRob2QgaXMgdXNlZCB0byBzZW5kIGEgcHVi bGljYXRpb24gb3JpZ2luYXRlZCBieSBhIGxvY2FsDQo+IEBADQo+ID4gLTIyNCwxMiArMjgwLDIx MSBAQCBQcm9wZXJ0aWVzOg0KPiA+ICAJCVRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIHdoZXRoZXIg dGhlIHBlcmlvZGljIGJlYWNvbmluZyBpcw0KPiA+ICAJCWVuYWJsZWQgKHRydWUpIG9yIGRpc2Fi bGVkIChmYWxzZSkuDQo+ID4NCj4gPiArCXVpbnQ4IEJlYWNvbkZsYWdzIFtyZWFkLW9ubHldDQo+ ID4gKw0KPiA+ICsJCVRoaXMgcHJvcGVydHkgbWF5IGJlIHJlYWQgYXQgYW55IHRpbWUgdG8gZGV0 ZXJtaW5lIHRoZQ0KPiA+IGZsYWcNCj4gPiArCQlmaWVsZCBzZXR0aW5nIG9uIHNlbnQgYW5kIHJl Y2VpdmVkIGJlYWNvbnMgb2YgdGhlDQo+ID4gcHJpbWFyeQ0KPiA+ICsJCW5ldHdvcmsga2V5Lg0K PiA+ICsNCj4gPiArCXVpbnQzMiBJdkluZGV4IFtyZWFkLW9ubHldDQo+ID4gKw0KPiA+ICsJCVRo aXMgcHJvcGVydHkgbWF5IGJlIHJlYWQgYXQgYW55IHRpbWUgdG8gZGV0ZXJtaW5lIHRoZQ0KPiA+ IElWX0luZGV4DQo+ID4gKwkJdGhhdCB0aGUgY3VycmVudCBuZXR3b3JrIGlzIG9uLiBUaGlzIGlu Zm9ybWF0aW9uIGlzDQo+ID4gb25seSB1c2VmdWwNCj4gPiArCQlmb3IgcHJvdmlzaW9uaW5nLg0K PiA+ICsNCj4gPiAgCXVpbnQzMiBTZWNvbmRzU2luY2VMYXN0SGVhcmQgW3JlYWQtb25seV0NCj4g Pg0KPiA+ICAJCVRoaXMgcHJvcGVydHkgbWF5IGJlIHJlYWQgYXQgYW55IHRpbWUgdG8gZGV0ZXJt aW5lIHRoZQ0KPiBudW1iZXIgb2YNCj4gPiAgCQlzZWNvbmRzIHNpbmNlIG1lc2ggbmV0d29yayBs YXllciB0cmFmZmljIHdhcyBsYXN0IGRldGVjdGVkDQo+IG9uDQo+ID4gIAkJdGhpcyBub2RlJ3Mg bmV0d29yay4NCj4gPg0KPiA+ICtNZXNoIFByb3Zpc2lvbmluZyBIaWVyYXJjaHkNCj4gPiArPT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ICtTZXJ2aWNlCQlvcmcuYmx1ZXoubWVzaA0K PiA+ICtJbnRlcmZhY2UJb3JnLmJsdWV6Lm1lc2guUHJvdmlzaW9uaW5nMQ0KPiANCj4gV2UgbWF5 IHdhbnQgdG8gY2FsbCB0aGlzIGludGVyZmFjZSAib3JnLmJsdWV6Lm1lc2guTWFuYWdlcjEiLCBi ZWNhdXNlIGl0DQo+IGNvbnRhaW5zIG1ldGhvZHMgc3VycGFzc2luZyBwcm92aXNpb25pbmcgcHJv Y2VkdXJlDQo+IA0KPiA+ICtPYmplY3QgcGF0aAkvb3JnL2JsdWV6L21lc2gvbm9kZTx4eHh4Pg0K PiA+ICsJCXdoZXJlIHh4eHggaXMgYSA0LWRpZ2l0IGhleGFkZWNpbWFsIG51bWJlciBnZW5lcmF0 ZWQgYnkNCj4gPiBkYWVtb24NCj4gPiArDQo+ID4gK01ldGhvZHM6DQo+ID4gKwl2b2lkIFVucHJv dmlzaW9uZWRTY2FuKHVpbnQxNiBzZWNvbmRzKQ0KPiA+ICsNCj4gPiArCQlUaGlzIG1ldGhvZCBp cyB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzDQo+ID4gKwkJb3JnLmJsdWV6 Lm1lc2guUHJvdmlzaW9uZXIxIGludGVyZmFjZSB0byBzdGFydA0KPiA+IGxpc3RlbmluZw0KPiA+ ICsJCShzY2FubmluZykgZm9yIHVucHJvdmlzaW9uZWQgZGV2aWNlcyBpbiB0aGUgYXJlYS4NCj4g PiBTY2FubmluZw0KPiA+ICsJCXdpbGwgY29udGludWUgZm9yIHRoZSBzcGVjaWZpZWQgbnVtYmVy IG9mIHNlY29uZHMsIG9yLA0KPiA+IGlmIDAgaXMNCj4gPiArCQlzcGVjaWZpZWQsIHRoZW4gY29u dGludW91c2x5IHVudGlsDQo+ID4gVW5wcm92aXNpb25lZFNjYW5DYW5jZWwoKSBpcw0KPiA+ICsJ CWNhbGxlZCBvciBpZiBBZGROb2RlKCkgbWV0aG9kIGlzIGNhbGxlZC4NCj4gPiArDQo+ID4gKwkJ RWFjaCB0aW1lIGEgdW5pcXVlIHVucHJvdmlzaW9uZWQgYmVhY29uIGlzIGhlYXJkLCB0aGUNCj4g PiArCQlTY2FuUmVzdWx0KCkgbWV0aG9kIG9uIHRoZSBhcHAgd2lsbCBiZSBjYWxsZWQgd2l0aCB0 aGUNCj4gPiByZXN1bHQuDQo+ID4gKw0KPiA+ICsJCVBvc3NpYmxlRXJyb3JzOg0KPiA+ICsJCQlv cmcuYmx1ZXoubWVzaC5FcnJvci5Ob3RBdXRob3JpemVkDQo+ID4gKw0KPiA+ICsJdm9pZCBVbnBy b3Zpc2lvbmVkU2NhbkNhbmNlbCh2b2lkKQ0KPiA+ICsNCj4gPiArCQlUaGlzIG1ldGhvZCBpcyB1 c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzDQo+ID4gKwkJb3JnLmJsdWV6Lm1l c2guUHJvdmlzaW9uZXIxIGludGVyZmFjZSB0byBzdG9wIGxpc3RlbmluZw0KPiA+ICsJCShzY2Fu bmluZykgZm9yIHVucHJvdmlzaW9uZWQgZGV2aWNlcyBpbiB0aGUgYXJlYS4NCj4gPiArDQo+ID4g KwkJUG9zc2libGVFcnJvcnM6DQo+ID4gKwkJCW9yZy5ibHVlei5tZXNoLkVycm9yLk5vdEF1dGhv cml6ZWQNCj4gPiArDQo+ID4gKwl2b2lkIEFkZE5vZGUoYXJyYXl7Ynl0ZX1bMTZdIHV1aWQpDQo+ ID4gKw0KPiA+ICsJCVRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHRoYXQg c3VwcG9ydHMNCj4gPiArCQlvcmcuYmx1ZXoubWVzaC5Qcm92aXNpb25lcjEgaW50ZXJmYWNlIHRv IGFkZCB0aGUNCj4gPiArCQl1bnByb3Zpc2lvbmVkIGRldmljZSBzcGVjaWZpZWQgYnkgdXVpZCwg dG8gdGhlIE5ldHdvcmsuDQo+ID4gKw0KPiA+ICsJCVRoZSB1dWlkIHBhcmFtZXRlciBpcyBhIDE2 LWJ5dGUgYXJyYXkgdGhhdCBjb250YWlucw0KPiA+IERldmljZSBVVUlEDQo+ID4gKwkJb2YgdGhl IHVucHJvdmlzaW9uZWQgZGV2aWNlIHRvIGJlIGFkZGVkIHRvIHRoZSBuZXR3b3JrLg0KPiA+ICsN Cj4gPiArCQlQb3NzaWJsZUVycm9yczoNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuSW52 YWxpZEFyZ3VtZW50cw0KPiA+ICsJCQlvcmcuYmx1ZXoubWVzaC5FcnJvci5Ob3RBdXRob3JpemVk DQo+ID4gKw0KPiA+ICsJdm9pZCBBZGROZXRLZXkodWludDE2IG5ldF9pbmRleCkNCj4gDQo+IA0K PiBJIHN1Z2dlc3Qgd2UgY2hhbmdlIHRoaXMgbWV0aG9kIHRvDQo+ICBBZGROZXRLZXkodWludDE2 IGRlc3QsIHVpbnQxNiBuZXRfaW5kZXgpDQo+IA0KPiBTaW5jZSBpbiB0aGUgY3VycmVudCBwcm9w b3NlZCBhcHByb2FjaCB0aGUgZGFlbW9uIGlzIHRoZSBvbmx5IGVudGl0eSBpbg0KPiBwb3NzZXNz aW9uIG9mIGtleSB2YXVlcywgdGhlIGNvbmZpZ3VyYXRpb24gbWVzc2FnZXMgdGhhdCBjb250YWlu IHRoZSBrZXkNCj4gdmFsdWVzIGluIHRoZWlyIHBheWxvYWQgd2lsbCBuZWVkIHRvIGJlIGdlbmVy YXRlZCBieSB0aGUgZGFlbW9uLg0KPiBUaGUgbW9kaWZpZWQgbWV0aG9kIHdpbGwgYWxsb3cgdG8g c2VuZCB0aGUgbmV0d29yayBrZXkocykgdG8gYW55IG5vZGUuDQo+IElmIGEgbmV0d29yayBrZXkg c3BlY2lmaWVkIGJ5IHRoZSBuZXRfaW5kZXgsIGRvZXMgbm90IGV4aXN0LCBpdCB3aWxsIGJlDQo+ IGdlbmVyYXRlZCBhbmQgcmVjb3JkZWQsIGVmZmVjdGl2ZWx5IGNyZWF0aW5nIGEgbmV3IHN1Ym5l dC4NCj4gQWx0ZXJuYXRpdmVseSwgdGhpcyBmdW5jdGlvbmFsaXR5IGNhbiBiZSBjb3ZlcmVkIGJ5 IHR3byBtZXRob2RzOg0KPiBDcmVhdGVTdWJuZXQodWludDE2IG5ldF9pbmRleCkgdG8gZ2VuZXJh dGUgYSBrZXkgdmFsdWUgYW5kDQo+IEFkZE5ldEtleSh1aW50MTYgZGVzdCwgdWludDE2IG5ldF9p bmRleCkgdG8gc2VuZCB0aGUga2V5cyB0byBhIHJlbW90ZSBvcg0KPiBsb2NhbCBub2RlDQoNClNv IEkgdGhpbmsgdGhlIGJpZ2dlc3QgcHJvYmxlbSB3aXRoIGhhdmluZyBtZXRob2RzICpzb21ldGlt ZXMqIGFkZCBhIGtleSB0byB0aGUgKmxvY2FsKiBkYXRhYmFzZSwgYnV0IGFsd2F5cyBhZGQgdGhl IGtleSB0byBhIHJlbW90ZSBub2RlIGlzIEluZGV0ZXJtaW5hY2llcy4gV2UgYXJlIHRyeWluZyB0 byBwb3RlbnRpYWxseSBkbyB0d28gdGhpbmdzIGF0IG9uY2UsIGFuZCBlaXRoZXIgb25lIG9yIGJv dGggY2FuIGZhaWwuDQoNCkkgc3Ryb25nbHkgYmVsaWV2ZSB0aGF0IHRoZSBtZXRob2QgY2FsbHMg dG8gYWRkIGEga2V5IChvciBkZWxldGUgaXQgb3IgdXBkYXRlIGl0KSB0byBvdXIgbG9jYWwga2V5 IHN0b3JhZ2UgbmVlZHMgdG8gYmUgYSBkaXN0aW5jdCByZXF1ZXN0cy4uLiBZZXMsIHdlIG9ubHkg c2F2ZSAqb25lKiBtZXRob2QgY2FsbCBieSBvdmVybG9hZGluZyB0aGUgZnVuY3Rpb25hbGl0eSBp bnRvIGEgc2luZ2xlIGNhbGwuICBCdXQgc2VwYXJhdGluZyAgTG9jYWwgb3BlcmF0aW9ucyBmcm9t IFJlbW90ZSBvcGVyYXRpb25zICBrZWVwcyBpdCBjbGVhciwgaWYgdGhlcmUgaXMgYSBmYWlsdXJl LCBhdCBleGFjdGx5IHdoaWNoIHN0ZXAgdGhlIGZhaWx1cmUgb2NjdXJyZWQuIFRoZSBBcHBsaWNh dGlvbiBpcyBub3QgbGVmdCB3b25kZXJpbmcgaWYgdGhlcmUgaXMgYW4gdW51c2VkIGtleSBpbiB0 aGUgbG9jYWwgZGF0YWJhc2UsIG9yIGlmIHRoZSByZW1vdGUgZGV2aWNlIG5vdyBoYXMgYSBrZXkg dGhhdCBub2JvZHkgZWxzZSBkb2VzLg0KDQoNCg0KPiANCj4gPiArDQo+ID4gKwkJVGhpcyBtZXRo b2QgaXMgdXNlZCBieSB0aGUgYXBwbGljYXRpb24gdGhhdCBzdXBwb3J0cw0KPiA+ICsJCW9yZy5i bHVlei5tZXNoLlByb3Zpc2lvbmVyMSBpbnRlcmZhY2UgdG8gZ2VuZXJhdGUgYW5kDQo+ID4gYWRk IGEgbmV3DQo+ID4gKwkJbmV0d29yayBzdWJuZXQga2V5Lg0KPiA+ICsNCj4gPiArCQlUaGUgbmV0 X2luZGV4IHBhcmFtZXRlciBpcyBhIDEyLWJpdCB2YWx1ZSAoMHgwMDEtMHhGRkYpDQo+ID4gKwkJ c3BlY2lmeWluZyB3aGljaCBuZXQga2V5IHRvIGFkZC4NCj4gPiArDQo+ID4gKwkJVGhpcyBjYWxs IGFmZmVjdHMgdGhlIGxvY2FsIGJsdWV0b290aC1kYWVtb24ga2V5DQo+ID4gZGF0YWJhc2Ugb25s eS4NCj4gPiArDQo+ID4gKwkJUG9zc2libGVFcnJvcnM6DQo+ID4gKwkJCW9yZy5ibHVlei5tZXNo LkVycm9yLkludmFsaWRBcmd1bWVudHMNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuTm90 QXV0aG9yaXplZA0KPiA+ICsJCQlvcmcuYmx1ZXoubWVzaC5FcnJvci5BbHJlYWR5RXhpc3RzDQo+ ID4gKw0KPiA+ICsJdm9pZCBVcGRhdGVOZXRLZXkodWludDE2IG5ldF9pbmRleCkNCj4gDQo+IEkg c3VnZ2VzdCB3ZSBjaGFuZ2UgdGhpcyBtZXRob2QgdG8gVXBkYXRlTmV0S2V5KHVpbnQxNiBkZXN0 LCB1aW50MTYNCj4gbmV0X2luZGV4KQ0KPiBUaGlzIHdpbGwgYWxsb3cgdG8gc2VuZCBhbiB1cGRh dGVkIHZhbHVlIG9mIHRoZSBuZXR3b3JrIGtleSB0byBhbnkgbm9kZS4gSWYNCj4gdGhlIHVwZGF0 ZWQgbmV0d29yayBrZXkgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSBuZXRfaW5kZXgsIGRvZXMgbm90 IGV4aXN0LCBpdA0KPiB3aWxsIGJlIGdlbmVyYXRlZCBhbmQgcmVjb3JkZWQuDQo+IA0KDQpTYW1l IGNvbW1lbnQgaGVyZS4uLiAgSSBpbnRlbmRlZCB0aGlzIGZvciB0aGlzIG1ldGhvZCB0byBtb2Rp ZnkgdGhlIGxvY2FsIGtleSBkYXRhYmFzZSBvbmx5LCB3aXRoIG5vIG92ZXJsb2FkZWQgZnVuY3Rp b25hbGl0eSBvZiBzZW5kaW5nIHRoZSB1cGRhdGUga2V5IHRvIG9uZSBvZiB0aGUgcG90ZW50aWFs bHkgaHVuZHJlZHMgb2Ygb3RoZXIgbm9kZXMuDQoNCg0KPiANCj4gPiArDQo+ID4gKwkJVGhpcyBt ZXRob2QgaXMgdXNlZCBieSB0aGUgYXBwbGljYXRpb24gdGhhdCBzdXBwb3J0cw0KPiA+ICsJCW9y Zy5ibHVlei5tZXNoLlByb3Zpc2lvbmVyMSBpbnRlcmZhY2UgdG8gZ2VuZXJhdGUgYSBuZXcNCj4g PiBuZXR3b3JrDQo+ID4gKwkJc3VibmV0IGtleSwgYW5kIHNldCBpdCdzIGtleSByZWZyZXNoIHN0 YXRlIHRvIFBoYXNlIDEuDQo+ID4gKw0KPiA+ICsJCVRoZSBuZXRfaW5kZXggcGFyYW1ldGVyIGlz IGEgMTItYml0IHZhbHVlICgweDAwMC0weEZGRikNCj4gPiArCQlzcGVjaWZ5aW5nIHdoaWNoIG5l dCBrZXkgdG8gdXBkYXRlLiBOb3RlIHRoYXQgdGhlDQo+ID4gc3VibmV0IG11c3QNCj4gPiArCQll eGlzdCBwcmlvciB0byB1cGRhdGluZy4NCj4gPiArDQo+ID4gKwkJVGhpcyBjYWxsIGFmZmVjdHMg dGhlIGxvY2FsIGJsdWV0b290aC1kYWVtb24ga2V5DQo+ID4gZGF0YWJhc2Ugb25seS4NCj4gPiAr DQo+ID4gKwkJUG9zc2libGVFcnJvcnM6DQo+ID4gKwkJCW9yZy5ibHVlei5tZXNoLkVycm9yLklu dmFsaWRBcmd1bWVudHMNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuTm90QXV0aG9yaXpl ZA0KPiA+ICsJCQlvcmcuYmx1ZXoubWVzaC5FcnJvci5Eb2VzTm90RXhpc3QNCj4gPiArDQo+ID4g Kwl2b2lkIERlbGV0ZU5ldEtleSh1aW50MTYgbmV0X2luZGV4KQ0KPiA+ICsNCj4gPiArCQlUaGlz IG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzDQo+ID4gKwkJ b3JnLmJsdWV6Lm1lc2guUHJvdmlzaW9uZXIxIGludGVyZmFjZSB0byBkZWxldGUgYQ0KPiA+IHN1 Ym5ldC4NCj4gPiArDQo+ID4gKwkJVGhlIG5ldF9pbmRleCBwYXJhbWV0ZXIgaXMgYSAxMi1iaXQg dmFsdWUgKDB4MDAxLTB4RkZGKQ0KPiA+ICsJCXNwZWNpZnlpbmcgd2hpY2ggbmV0IGtleSB0byBk ZWxldGUuIFRoZSBwcmltYXJ5IG5ldCBrZXkNCj4gPiAoMHgwMDApDQo+ID4gKwkJbWF5IG5vdCBi ZSBkZWxldGVkLg0KPiA+ICsNCj4gPiArCQlUaGlzIGNhbGwgYWZmZWN0cyB0aGUgbG9jYWwgYmx1 ZXRvb3RoLWRhZW1vbiBrZXkNCj4gPiBkYXRhYmFzZSBvbmx5Lg0KPiA+ICsNCj4gPiArCQlQb3Nz aWJsZUVycm9yczoNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuSW52YWxpZEFyZ3VtZW50 cw0KPiA+ICsJCQlvcmcuYmx1ZXoubWVzaC5FcnJvci5Ob3RBdXRob3JpemVkDQo+ID4gKwkJCW9y Zy5ibHVlei5tZXNoLkVycm9yLkRvZXNOb3RFeGlzdA0KPiA+ICsNCj4gPiArCXZvaWQgU2V0S2V5 UGhhc2UodWludDE2IG5ldF9pbmRleCwgdWludDggcGhhc2UpDQo+ID4gKwkJVGhpcyBtZXRob2Qg aXMgdXNlZCB0byBzZXQgdGhlIG1hc3RlciBrZXkgdXBkYXRlIHBoYXNlDQo+ID4gb2YgdGhlDQo+ ID4gKwkJZ2l2ZW4gc3VibmV0Lg0KPiA+ICsNCj4gPiArCQlUaGUgbmV0X2luZGV4IHBhcmFtZXRl ciBpcyBhIDEyLWJpdCB2YWx1ZSAoMHgwMDAtMHhGRkYpDQo+ID4gKwkJc3BlY2lmeWluZyB3aGlj aCBzdWJuZXQgcGhhc2UgdG8gc2V0Lg0KPiA+ICsNCj4gPiArCQlUaGUgcGhhc2UgcGFyYW1ldGVy IGlzIHVzZWQgdG8gY3ljbGUgdGhlIGxvY2FsIGtleQ0KPiA+IGRhdGFiYXNlDQo+ID4gKwkJdGhy b3VnaCB0aGUgcGhhc2VzIGFzIGRlZmluZWQgYnkgdGhlIE1lc2ggUHJvZmlsZQ0KPiA+IFNwZWNp ZmljYXRpb24uDQo+ID4gKwkJQWxsb3dlZCB2YWx1ZXM6DQo+ID4gKwkJCTAgLSBDYW5jZWwgS2V5 IFJlZnJlc2ggKE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tDQo+ID4gUGhhc2UgMSwNCj4gPiArCQkJ CWFuZCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIG9uY2UgdGhlIG5ldw0KPiA+IGtleSBoYXMNCj4g PiArCQkJCXN0YXJ0ZWQgcHJvcGFnYXRpbmcpDQo+ID4gKwkJCTEgLSBJbnZhbGlkIEFyZ3VtZW50 IChzZWUgTmV0S2V5VXBkYXRlIG1ldGhvZCkNCj4gPiArCQkJMiAtIEdvIHRvIFBoYXNlIDIgKE1h eSBvbmx5IGJlIGNhbGxlZCBmcm9tDQo+ID4gUGhhc2UgMSkNCj4gPiArCQkJMyAtIENvbXBsZXRl IEtleSBSZWZyZXNoIHByb2NlZHVyZSAoTWF5IG9ubHkgYmUNCj4gPiBjYWxsZWQNCj4gPiArCQkJ CWZyb20gUGhhc2UgMikNCj4gPiArDQo+ID4gKwkJVGhpcyBjYWxsIGFmZmVjdHMgdGhlIGxvY2Fs IGJsdWV0b290aC1kYWVtb24ga2V5DQo+ID4gZGF0YWJhc2Ugb25seS4NCg0KDQpUaGlzIG1ldGhv ZCBpcyBhbHNvIGludGVuZGVkIHRvIG1vZGlmeSB0aGUgc3RhdGUgb2YgdGhlIGtleXMgbG9jYWxs eSBvbmx5LiAgT25seSBhZnRlciB0aGUgbG9jYWwgcGhhc2UgaGFzIGJlZW4gcmVjb3JkZWQgd291 bGQgdGhlIHBoYXNlIGNoYW5nZSBiZSBwcm9wb2dhdGVkIHRvIHRoZSB3aWRlciBtZXNoDQoNCg0K PiA+ICsNCj4gPiArCQlQb3NzaWJsZUVycm9yczoNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJy b3IuSW52YWxpZEFyZ3VtZW50cw0KPiA+ICsJCQlvcmcuYmx1ZXoubWVzaC5FcnJvci5Ob3RBdXRo b3JpemVkDQo+ID4gKwkJCW9yZy5ibHVlei5tZXNoLkVycm9yLkRvZXNOb3RFeGlzdA0KPiA+ICsN Cj4gPiArCXZvaWQgQWRkQXBwS2V5KHVpbnQxNiBuZXRfaW5kZXgsIHVpbnQxNiBhcHBfaW5kZXgp DQo+IA0KPiBTaW1pbGFyIHRvIHRoZSBuZXR3b3JrIGtleSBtZXRob2RzLCBuZWVkcyB0byBpbmNs dWRlIGRlc3QgcGFyYW1ldGVyDQo+IA0KPiA+ICsNCj4gPiArCQlUaGlzIG1ldGhvZCBpcyB1c2Vk IGJ5IHRoZSBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzDQo+ID4gKwkJb3JnLmJsdWV6Lm1lc2gu UHJvdmlzaW9uZXIxIGludGVyZmFjZSB0byBnZW5lcmF0ZSBhbmQNCj4gPiBhZGQgYSBuZXcNCj4g PiArCQlhcHBsaWNhdGlvbiBrZXkuDQo+ID4gKw0KPiA+ICsJCVRoZSBuZXRfaW5kZXggcGFyYW1l dGVyIGlzIGEgMTItYml0IHZhbHVlICgweDAwMC0weEZGRikNCj4gPiArCQlzcGVjaWZ5aW5nIHdo aWNoIG5ldCBrZXkgdG8gYmluZCB0aGUgYXBwbGljYXRpb24ga2V5DQo+ID4gdG8uDQo+ID4gKw0K PiA+ICsJCVRoZSBhcHBfaW5kZXggcGFyYW1ldGVyIGlzIGEgMTItYml0IHZhbHVlICgweDAwMC0w eEZGRikNCj4gPiArCQlzcGVjaWZ5aW5nIHdoaWNoIGFwcCBrZXkgdG8gYWRkLg0KPiA+ICsNCj4g PiArCQlUaGlzIGNhbGwgYWZmZWN0cyB0aGUgbG9jYWwgYmx1ZXRvb3RoLWRhZW1vbiBrZXkNCj4g PiBkYXRhYmFzZSBvbmx5Lg0KPiA+ICsNCj4gPiArCQlQb3NzaWJsZUVycm9yczoNCj4gPiArCQkJ b3JnLmJsdWV6Lm1lc2guRXJyb3IuSW52YWxpZEFyZ3VtZW50cw0KPiA+ICsJCQlvcmcuYmx1ZXou bWVzaC5FcnJvci5Ob3RBdXRob3JpemVkDQo+ID4gKwkJCW9yZy5ibHVlei5tZXNoLkVycm9yLkFs cmVhZHlFeGlzdHMNCj4gPiArDQo+ID4gKwl2b2lkIFVwZGF0ZUFwcEtleSh1aW50MTYgYXBwX2lu ZGV4KQ0KPiA+ICsNCj4gPiArCQlUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlv biB0aGF0IHN1cHBvcnRzDQo+ID4gKwkJb3JnLmJsdWV6Lm1lc2guUHJvdmlzaW9uZXIxIGludGVy ZmFjZSB0byBnZW5lcmF0ZSBhIG5ldw0KPiA+ICsJCWFwcGxpY2F0aW9uIGtleS4NCj4gPiArDQo+ ID4gKwkJVGhlIGFwcF9pbmRleCBwYXJhbWV0ZXIgaXMgYSAxMi1iaXQgdmFsdWUgKDB4MDAwLTB4 RkZGKQ0KPiA+ICsJCXNwZWNpZnlpbmcgd2hpY2ggYXBwIGtleSB0byB1cGRhdGUuIE5vdGUgdGhh dCB0aGUNCj4gPiBzdWJuZXQgdGhhdA0KPiA+ICsJCXRoZSBrZXkgaXMgYm91bmQgdG8gbXVzdCBl eGlzdCBhbmQgYmUgaW4gUGhhc2UgMS4NCj4gPiArDQo+ID4gKwkJVGhpcyBjYWxsIGFmZmVjdHMg dGhlIGxvY2FsIGJsdWV0b290aC1kYWVtb24ga2V5DQo+ID4gZGF0YWJhc2Ugb25seS4NCj4gPiAr DQo+ID4gKwkJUG9zc2libGVFcnJvcnM6DQo+ID4gKwkJCW9yZy5ibHVlei5tZXNoLkVycm9yLklu dmFsaWRBcmd1bWVudHMNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuTm90QXV0aG9yaXpl ZA0KPiA+ICsJCQlvcmcuYmx1ZXoubWVzaC5FcnJvci5Eb2VzTm90RXhpc3QNCj4gPiArDQo+ID4g Kwl2b2lkIERlbGV0ZUFwcEtleSh1aW50MTYgYXBwX2luZGV4KQ0KPiA+ICsNCj4gPiArCQlUaGlz IG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzDQo+ID4gKwkJ b3JnLmJsdWV6Lm1lc2guUHJvdmlzaW9uZXIxIGludGVyZmFjZSB0byBkZWxldGUgYW4NCj4gPiBh cHBsaWNhdGlvbg0KPiA+ICsJCWtleS4NCj4gPiArDQo+ID4gKwkJVGhlIGFwcF9pbmRleCBwYXJh bWV0ZXIgaXMgYSAxMi1iaXQgdmFsdWUgKDB4MDAwLTB4RkZGKQ0KPiA+ICsJCXNwZWNpZnlpbmcg d2hpY2ggYXBwIGtleSB0byBkZWxldGUuDQo+ID4gKw0KPiA+ICsJCVRoaXMgY2FsbCBhZmZlY3Rz IHRoZSBsb2NhbCBibHVldG9vdGgtZGFlbW9uIGtleQ0KPiA+IGRhdGFiYXNlIG9ubHkuDQo+ID4g Kw0KPiA+ICsJCVBvc3NpYmxlRXJyb3JzOg0KPiA+ICsJCQlvcmcuYmx1ZXoubWVzaC5FcnJvci5J bnZhbGlkQXJndW1lbnRzDQo+ID4gKwkJCW9yZy5ibHVlei5tZXNoLkVycm9yLk5vdEF1dGhvcml6 ZWQNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuRG9lc05vdEV4aXN0DQo+ID4gKw0KPiA+ ICsJdm9pZCBEZWxldGVSZW1vdGVOb2RlKHVpbnQxNiBwcmltYXJ5LCB1aW50OCBjbnQpDQo+IA0K PiBMZXQncyBjYWxsIHRoaXMgbWV0aG9kIERlbGV0ZU5vZGUoKQ0KPiBEbyB3ZSBuZWVkIHRvIHNw ZWNpZnkgdGhlIGVsZW1lbnQgY291bnQ/DQoNCkkgd2FudCB0byBiZSBjbGVhciB0aGF0IHRoaXMg YWdhaW4gb25seSBhZmZlY3RzIHRoZSBsb2NhbCBrZXkgZGF0YWJhc2UuICBXZSBkbyBoYXZlIHRo ZSBhYmlsaXR5IHRvIGRlbGV0ZSBMb2NhbCBub2RlcyB3aXRoIHRoZSBMZWF2ZSgpIG1ldGhvZC4g IEkgd2FudCB0byBiZSBjbGVhciB3aXRoIHRoaXMgbWV0aG9kIHRoYXQgYWdhaW4sIG5vIGNvbW11 bmljYXRpb24gaXMgbWFkZS4uLiBUaGlzIHNpbXBseSBkZWxldGVzIGEgUmVtb3RlIE5vZGUgRGV2 aWNlIGtleSBmcm9tIHRoZSBsb2NhbCBkYXRhYmFzZS4gIEkgaW5jbHVkZWQgYSBjb3VudCBwYXJh bWV0ZXIgc28gdGhhdCBzdG9yYWdlIG9mIHRoZSBkZXZpY2Uga2V5cyBjb3VsZCBiZSBvcHRpbWl6 ZWQgc3VjaCB0aGF0IGFsbCBlbGVtZW50IHVuaWNhc3QgYWRkcmVzc2VzIGFyZSBhY2NvdW50ZWQg Zm9yLiAgSXQgaXMgMTAwJSBsZWdhbCB0byBzZW5kIGEgRGV2aWNlIEtleSBlbmNvZGVkIG1lc3Nh Z2UgdG8gYSBub24tcHJpbWFyeSBlbGVtZW50IG9mIGEgTm9kZSwgc28gd2UgbWlnaHQgaGF2ZSBy ZWR1bmRhbnQgc3RvcmFnZXMgb2YgdGhlIGRldmljZSBrZXlzIHVuZGVyIGV2ZXJ5IHVuaWNhc3Qg YWRkcmVzcywgaW4gdGhlIGxvY2FsIGRhdGFiYXNlLg0KDQo+IA0KPiA+ICsNCj4gPiArCQlUaGlz IG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzDQo+ID4gKwkJ b3JnLmJsdWV6Lm1lc2guUHJvdmlzaW9uZXIxIGludGVyZmFjZSB0byBkZWxldGUgYQ0KPiA+IHJl bW90ZSBub2RlDQo+ID4gKwkJZnJvbSB0aGUgbG9jYWwgZGV2aWNlIGtleSBkYXRhYmFzZS4NCj4g PiArDQo+ID4gKwkJVGhlIHByaW1hcnkgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdW5pY2FzdCBh ZGRyZXNzIG9mDQo+ID4gdGhlDQo+ID4gKwkJdGhlIG5vZGUgYmVpbmcgZGVsZXRlZCwgYW5kIHRo ZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdA0KPiA+IHdlcmUNCj4gPiArCQlhc3NpZ25lZCB0byBp dC4NCj4gPiArDQo+ID4gKwkJVGhpcyBjYWxsIGFmZmVjdHMgdGhlIGxvY2FsIGJsdWV0b290aC1k YWVtb24ga2V5DQo+ID4gZGF0YWJhc2Ugb25seS4NCj4gPiArDQo+ID4gKwkJUG9zc2libGVFcnJv cnM6DQo+ID4gKwkJCW9yZy5ibHVlei5tZXNoLkVycm9yLkludmFsaWRBcmd1bWVudHMNCj4gPiAr CQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuTm90QXV0aG9yaXplZA0KPiA+ICsJCQlvcmcuYmx1ZXou bWVzaC5FcnJvci5Eb2VzTm90RXhpc3QNCj4gPg0KPiA+ICBNZXNoIEFwcGxpY2F0aW9uIEhpZXJh cmNoeQ0KPiA+ICA9PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+IEBAIC0yNDcsNiArNTAy LDcgQEAgQW4gZXhhbXBsZSBtZXNoIGFwcGxpY2F0aW9uIGhpZXJhcmNoeSBtYXkgbG9vaw0KPiA+ IGxpa2UgdGhpczoNCj4gPiAgCQkJfCAgIC0gb3JnLmZyZWVkZXNrdG9wLkRCdXMuT2JqZWN0TWFu YWdlcg0KPiA+ICAJCQl8ICAgLSBvcmcuYmx1ZXoubWVzaC5BcHBsaWNhdGlvbjENCj4gPiAgCQkJ fCAgIC0gb3JnLmJsdWV6Lm1lc2guQXR0ZW50aW9uMSAob3B0aW9uYWwpDQo+ID4gKwkJCXwgICAt IG9yZy5ibHVlei5tZXNoLlByb3Zpc2lvbmVyMQ0KPiA+IChvcHRpb25hbCxQcm92aXNpb25lcikN Cj4gPiAgCQkJfA0KPiA+ICAJCQktPiAvY29tL2V4YW1wbGUvYWdlbnQNCj4gPiAgCQkJfCB8ICAg LSBvcmcuYmx1ZXoubWVzaC5Qcm92aXNpb25BZ2VudDENCj4gPiBAQCAtMzI1LDYgKzU4MSwyMiBA QCBNZXRob2RzOg0KPiA+DQo+ID4gIAkJVGhlIGRhdGEgcGFyYW1ldGVyIGlzIHRoZSBpbmNvbWlu ZyBtZXNzYWdlLg0KPiA+DQo+ID4gKwl2b2lkIERldktleU1lc3NhZ2VSZWNlaXZlZCh1aW50MTYg c291cmNlLCB1aW50MTYgbmV0X2luZGV4LA0KPiA+ICsJCQkJCQkJYXJyYXl7Ynl0ZX0NCj4gPiBk YXRhKQ0KPiA+ICsNCj4gPiArCQlUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgbWVzaGQgZGFlbW9u IHdoZW4gYSBtZXNzYWdlDQo+ID4gYXJyaXZlcw0KPiA+ICsJCWFkZHJlc3NlZCB0byB0aGUgYXBw bGljYXRpb24sIHdoaWNoIHdhcyBzZW50IHdpdGggdGhlDQo+ID4gcmVtb3RlDQo+ID4gKwkJbm9k ZSdzIGRldmljZSBrZXkuDQo+ID4gKw0KPiA+ICsJCVRoZSBzb3VyY2UgcGFyYW1ldGVyIGlzIHVu aWNhc3QgYWRkcmVzcyBvZiB0aGUgcmVtb3RlDQo+ID4gKwkJbm9kZS1lbGVtZW50IHRoYXQgc2Vu dCB0aGUgbWVzc2FnZS4NCj4gPiArDQo+ID4gKwkJVGhlIG5ldF9pbmRleCBwYXJhbWV0ZXIgaW5k aWNhdGVzIHdoYXQgc3VibmV0IHRoZQ0KPiA+IG1lc3NhZ2Ugd2FzDQo+ID4gKwkJcmVjZWl2ZWQg b24sIGFuZCBpZiBhIHJlc3BvbnNlIGlzIHJlcXVpcmVkLCB0aGUgc2FtZQ0KPiA+IHN1Ym5ldA0K PiA+ICsJCW11c3QgYmUgdXNlZCB0byBzZW5kIHRoZSByZXNwb25zZS4NCj4gPiArDQo+ID4gKwkJ VGhlIGRhdGEgcGFyYW1ldGVyIGlzIHRoZSBpbmNvbWluZyBtZXNzYWdlLg0KPiA+ICsNCj4gPiAg CXZvaWQgVXBkYXRlTW9kZWxDb25maWd1cmF0aW9uKHVpbnQxNiBtb2RlbF9pZCwgZGljdCBjb25m aWcpDQo+ID4NCj4gPiAgCQlUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgYmx1ZXRvb3RoLW1lc2hk IGRhZW1vbiB3aGVuIGENCj4gbW9kZWwncw0KPiA+IEBAIC0zODMsNyArNjU1LDcgQEAgT2JqZWN0 IHBhdGgJZnJlZWx5IGRlZmluYWJsZQ0KPiA+ICBUaGlzIGlzIGFuIG9wdGlvbmFsIGludGVyZmFj ZSB0aGF0IGltcGxlbWVudHMgaGVhbHRoIGF0dGVudGlvbiB0aW1lci4NCj4gPg0KPiA+ICBNZXRo b2RzOg0KPiA+IC0Jdm9pZCBTZXRUaW1lcih1aW50OCBlbGVtZW50X2luZGV4LCAgdWludDE2IHRp bWUpDQo+ID4gKwl2b2lkIFNldFRpbWVyKHVpbnQ4IGVsZW1lbnRfaW5kZXgsIHVpbnQxNiB0aW1l KQ0KPiA+DQo+ID4gIAkJVGhlIGVsZW1lbnRfaW5kZXggcGFyYW1ldGVyIGlzIHRoZSBlbGVtZW50 J3MgaW5kZXggd2l0aGluDQo+IHRoZQ0KPiA+ICAJCW5vZGUgd2hlcmUgdGhlIGhlYWx0aCBzZXJ2 ZXIgbW9kZWwgaXMgaG9zdGVkLg0KPiA+IEBAIC00MDYsNiArNjc4LDc2IEBAIE1ldGhvZHM6DQo+ ID4gIAkJCW9yZy5ibHVlei5tZXNoLkVycm9yLk5vdFN1cHBvcnRlZA0KPiA+DQo+ID4NCj4gPiAr TWVzaCBQcm92aXNpb25lciBIaWVyYXJjaHkNCj4gPiArPT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KPiA+ICtTZXJ2aWNlCQl1bmlxdWUgbmFtZQ0KPiA+ICtJbnRlcmZhY2UJb3JnLmJsdWV6 Lm1lc2guUHJvdmlzaW9uZXIxDQo+ID4gK09iamVjdCBwYXRoCWZyZWVseSBkZWZpbmFibGUNCj4g PiArDQo+ID4gKwlTY2FuUmVzdWx0KGludDggcnNzaSwgYXJyYXl7Ynl0ZX0gZGF0YSkNCj4gPiAr DQo+ID4gKwkJVGhlIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSB0aGUgYmx1ZXRvb3RoLW1lc2hkIGRh ZW1vbg0KPiA+IHdoZW4gYQ0KPiA+ICsJCXVuaXF1ZSBVVUlEIGhhcyBiZWVuIHNlZW4gZHVyaW5n IFVucHJvdmlzaW9uZWRTY2FuKCkNCj4gPiBmb3INCj4gPiArCQl1bnByb3ZzaW9uZWQgZGV2aWNl cy4NCj4gPiArDQo+ID4gKwkJVGhlIHJzc2kgcGFyYW1ldGVyIGlzIGEgc2lnbmVkLCBub3JtYWxp emVkIG1lYXN1cmVtZW50DQo+ID4gb2YgdGhlDQo+ID4gKwkJc2lnbmFsIHN0cmVuZ3RoIG9mIHRo ZSByZWNpZXZlZCB1bnByb3Zpc2lvbmVkIGJlYWNvbi4NCj4gPiArDQo+ID4gKwkJVGhlIGRhdGEg cGFyYW1ldGVyIGlzIGEgdmFyaWFibGUgbGVuZ3RoIGJ5dGUgYXJyYXksDQo+ID4gdGhhdCBtYXkN Cj4gPiArCQloYXZlIDEsIDIgb3IgMyBkaXN0aW5jdCBmaWVsZHMgY29udGFpbmVkIGluIGl0DQo+ ID4gaW5jbHVkaW5nIHRoZSAxNg0KPiA+ICsJCWJ5dGUgcmVtb3RlIGRldmljZSBVVUlEIChhbHdh eXMpLCBhIDMyIGJpdCBtYXNrIG9mIE9PQg0KPiA+ICsJCWF1dGhlbnRpY2F0aW9uIGZsYWdzIChv cHRpb25hbCksIGFuZCBhIDMyIGJpdCBVUkkgaGFzaA0KPiA+IChpZiBVUkkNCj4gPiArCQliaXQg c2V0IGluIE9PQiBtYXNrKS4gV2hldGhlciB0aGVzZSBmaWVsZHMgZXhpc3Qgb3Igbm90DQo+ID4g aXMgYQ0KPiA+ICsJCWRlY2lzaW9uIG9mIHRoZSByZW1vdGUgZGV2aWNlLg0KPiA+ICsNCj4gPiAr CQlJZiBhIGJlYWNvbiB3aXRoIGEgVVVJRCB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gcmVwb3J0ZWQN Cj4gPiBpcw0KPiA+ICsJCXJlY2lldmVkIGJ5IHRoZSBkYWVtb24sIGl0IHdpbGwgYmUgc2lsZW50 bHkgZGlzY2FyZGVkDQo+ID4gdW5sZXNzIGl0DQo+ID4gKwkJd2FzIHJlY2lldmVkIGF0IGEgaGln aGVyIHJzc2kgcG93ZXIgbGV2ZWwuDQo+ID4gKw0KPiA+ICsNCj4gPiArCXVpbnQxNiBuZXRfaW5k ZXgsIHVpbnQ4IGZsYWdzLCB1aW50MzIgaXZfaW5kZXgsIHVpbnQxNiB1bmljYXN0DQo+ID4gKwkJ CQkJCQlSZXF1ZXN0UHJvdkRhdGENCj4gPiAoKQ0KPiA+ICsNCj4gPiArCQlUaGlzIG1ldGhvZCBp cyBpbXBsZW1lbnRlZCBieSBhIFByb3Zpc2lvbmVyIGNhcGFibGUNCj4gPiBhcHBsaWNhdGlvbg0K PiA+ICsJCWFuZCBpcyBjYWxsZWQgd2hlbiB0aGUgcmVtb3RlIGRldmljZSBoYXMgYmVlbiBmdWxs eQ0KPiA+ICsJCWF1dGhlbnRpY2F0ZWQgYW5kIGNvbmZpcm1lZC4NCj4gPiArDQo+ID4gKwkJUmV0 dXJuIFBhcmFtZXRlcnMgYXJlIGZyb20gdGhlIE1lc2ggUHJvZmlsZSBTcGVjOg0KPiA+ICsJCW5l dF9pbmRleCAtIFN1Ym5ldCBpbmRleCBvZiB0aGUgbmV0X2tleQ0KPiA+ICsJCWZsYWdzIC0gRmxh Z3MgZm9yIElWX1VwZGF0ZSBhbmQgS2V5IFJlZnJlc2gNCj4gPiArCQlpdl9pbmRleCAtIEN1cnJl bnQgSXZJbmRleCBiZWluZyB1c2VkIG9uIHRoZSBuZXR3b3JrDQo+ID4gKwkJdW5pY2FzdCAtIFBy aW1hcnkgVW5pY2FzdCBhZGRyZXNzIG9mIHRoZSBuZXcgbm9kZQ0KPiA+ICsNCj4gPiArCQlQb3Nz aWJsZUVycm9yczoNCj4gPiArCQkJb3JnLmJsdWV6Lm1lc2guRXJyb3IuQWJvcnQNCj4gPiArDQo+ ID4gKwl2b2lkIEFkZE5vZGVDb21wbGV0ZShhcnJheXtieXRlfVsxNl0gdXVpZCwgdWludDE2IHVu aWNhc3QsDQo+ID4gdWludDggY291bnQpDQo+ID4gKw0KPiA+ICsJCVRoaXMgbWV0aG9kIGlzIGNh bGxlZCB3aGVuIHRoZSBub2RlIHByb3Zpc2lvbmluZw0KPiA+IGluaXRpYXRlZA0KPiA+ICsJCWJ5 IGFuIEFkZE5vZGUoKSBtZXRob2QgY2FsbCBzdWNjZXNzZnVsbHkgY29tcGxldGVkLg0KPiA+ICsN Cj4gPiArCQlUaGUgdW5pY2FzdCBwYXJhbWV0ZXIgaXMgdGhlIHByaW1hcnkgYWRkcmVzcyB0aGF0 IGhhcw0KPiA+IGJlZW4NCj4gPiArCQlhc3NpZ25lZCB0byB0aGUgbmV3IG5vZGUsIGFuZCB0aGUg YWRkcmVzcyBvZiBpdCdzDQo+ID4gY29uZmlnIHNlcnZlci4NCj4gPiArDQo+ID4gKwkJVGhlIGNv dW50IHBhcmFtZXRlciBpcyB0aGUgbnVtYmVyIG9mIHVuaWNhc3QgYWRkcmVzc2VzDQo+ID4gYXNz aWduZWQNCj4gPiArCQl0byB0aGUgbmV3IG5vZGUuDQo+ID4gKw0KPiA+ICsJCVRoZSBuZXcgbm9k ZSBtYXkgbm93IGJlIHNlbnQgbWVzc2FnZXMgdXNpbmcgdGhlDQo+ID4gY3JlZGVudGlhbHMNCj4g PiArCQlzdXBwbGllZCBieSB0aGUgUmVxdWVzdFByb3ZEYXRhIG1ldGhvZC4NCj4gPiArDQo+ID4g Kwl2b2lkIEFkZE5vZGVGYWlsZWQoYXJyYXl7Ynl0ZX1bMTZdIHV1aWQsIHN0cmluZyByZWFzb24p DQo+ID4gKw0KPiA+ICsJCVRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBub2RlIHByb3Zp c2lvbmluZw0KPiA+IGluaXRpYXRlZCBieQ0KPiA+ICsJCUFkZE5vZGUoKSBoYXMgZmFpbGVkLiBE ZXBlbmRpbmcgb24gaG93IGZhciBQcm92aXNpb25pbmcNCj4gPiArCQlwcm9jZWVkZWQgYmVmb3Jl IGZhaWxpbmcsIHNvbWUgY2xlYW51cCBvZiBjYWNoZWQgZGF0YQ0KPiA+IG1heSBiZQ0KPiA+ICsJ CXJlcXVpcmVkLg0KPiA+ICsNCj4gPiArCQlUaGUgcmVhc29uIHBhcmFtZXRlciBpZGVudGlmaWVz IHRoZSByZWFzb24gZm9yDQo+ID4gcHJvdmlzaW9uaW5nDQo+ID4gKwkJZmFpbHVyZS4gVGhlIGRl ZmluZWQgdmFsdWVzIGFyZTogImFib3J0ZWQiLCAidGltZW91dCIsDQo+ID4gKwkJImJhZC1wZHUi LCAiY29uZmlybWF0aW9uLWZhaWxlZCIsICJvdXQtb2YtcmVzb3VyY2VzIiwNCj4gPiArCQkiZGVj cnlwdGlvbi1lcnJvciIsICJ1bmV4cGVjdGVkLWVycm9yIiwNCj4gPiArCQkiY2Fubm90LWFzc2ln bi1hZGRyZXNzZXMiLg0KPiA+ICsNCj4gPiAgUHJvdmlzaW9uaW5nIEFnZW50IEhpZXJhcmNoeQ0K PiA+ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gIFNlcnZpY2UJCXVuaXF1ZSBu YW1lDQo+ID4gQEAgLTQ0MSw2ICs3ODMsNyBAQCBNZXRob2RzOg0KPiA+ICAJCXRoZSBsb2NhbCBy b2xlIGlzIFByb3Zpc2lvbmVyLg0KPiA+DQo+ID4gIAl2b2lkIERpc3BsYXlTdHJpbmcoc3RyaW5n IHZhbHVlKQ0KPiA+ICsNCj4gPiAgCQlUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgRGFl bW9uIGhhcyBzb21ldGhpbmcNCj4gaW1wb3J0YW50DQo+ID4gIAkJZm9yIHRoZSBBZ2VudCB0byBE aXNwbGF5LCBidXQgZG9lcyBub3QgcmVxdWlyZSBhbnkgYWRkaXRpb25hbA0KPiA+ICAJCWlucHV0 IGxvY2FsbHkuIEZvciBpbnN0YW5jZTogIkVudGVyICJBQkNERSIgb24gcmVtb3RlDQo+IGRldmlj ZSIuDQo+ID4gQEAgLTQ1MSw5ICs3OTQsOCBAQCBNZXRob2RzOg0KPiA+ICAJCWZvciB0aGUgQWdl bnQgdG8gRGlzcGxheSwgYnV0IGRvZXMgbm90IHJlcXVpcmUgYW55IGFkZGl0aW9uYWwNCj4gPiAg CQlpbnB1dCBsb2NhbGx5LiBGb3IgaW5zdGFuY2U6ICJFbnRlciAxNDkzOTI2NCBvbiByZW1vdGUN Cj4gZGV2aWNlIi4NCj4gPg0KPiA+IC0JCVRoZSB0eXBlIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhl IGRpc3BsYXkNCj4gPiBtZXRob2QuICBBbGxvd2VkIHZhbHVlcw0KPiA+ICsJCVRoZSB0eXBlIHBh cmFtZXRlciBpbmRpY2F0ZXMgdGhlIGRpc3BsYXkgbWV0aG9kLg0KPiA+IEFsbG93ZWQgdmFsdWVz DQo+ID4gIAkJYXJlOg0KPiA+IC0NCj4gPiAgCQkJImJsaW5rIiAtIExvY2FsbHkgYmxpbmsgTEVE DQo+ID4gIAkJCSJiZWVwIiAtIExvY2FsbHkgbWFrZSBhIG5vaXNlDQo+ID4gIAkJCSJ2aWJyYXRl IiAtIExvY2FsbHkgdmlicmF0ZQ0KPiA+IEBAIC00NjYsMTIgKzgwOCwxMSBAQCBNZXRob2RzOg0K PiA+DQo+ID4gIAl1aW50MzIgUHJvbXB0TnVtZXJpYyhzdHJpbmcgdHlwZSkNCj4gPg0KPiA+IC0J CVRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBEYWVtb24gaGFzIHJlcXVpcmVzIHRoZQ0K PiA+IHVzZXIgdG8NCj4gPiAtCQllbnRlciBhIDEtOTk5OTk5OTkgZGlnaXQgZGVjaW1hbCB2YWx1 ZS4NCj4gPiArCQlUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgRGFlbW9uIHJlcXVlc3Rz IHRoZSB1c2VyDQo+ID4gdG8NCj4gPiArCQllbnRlciBhIGRlY2ltYWwgdmFsdWUgYmV0d2VlbiAx LTk5OTk5OTk5Lg0KPiA+DQo+ID4gIAkJVGhlIHR5cGUgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUg aW5wdXQgbWV0aG9kLiBBbGxvd2VkDQo+IHZhbHVlcw0KPiA+ICAJCWFyZToNCj4gPiAtDQo+ID4g IAkJCSJibGluayIgLSBFbnRlciB0aW1lcyByZW1vdGUgTEVEIGJsaW5rZWQNCj4gPiAgCQkJImJl ZXAiIC0gRW50ZXIgdGltZXMgcmVtb3RlIGRldmljZSBiZWVwZWQNCj4gPiAgCQkJInZpYnJhdGUi IC0gRW50ZXIgdGltZXMgcmVtb3RlIGRldmljZSB2aWJyYXRlZCBAQCAtDQo+IDQ4MywxNCArODI0 LDEzDQo+ID4gQEAgTWV0aG9kczoNCj4gPiAgCQlUaGlzIGFnZW50IHNob3VsZCBwcm9tcHQgdGhl IHVzZXIgZm9yIHNwZWNpZmljIGlucHV0Lg0KPiA+IEZvcg0KPiA+ICAJCWluc3RhbmNlOiAiRW50 ZXIgdmFsdWUgYmVpbmcgZGlzcGxheWVkIGJ5IHJlbW90ZSBkZXZpY2UiLg0KPiA+DQo+ID4gLQlh cnJheXtieXRlfSBQcm9tcHRTdGF0aWMoc3RyaW5nIHR5cGUpDQo+ID4gKwlhcnJheXtieXRlfVsx Nl0gUHJvbXB0U3RhdGljKHN0cmluZyB0eXBlKQ0KPiA+DQo+ID4gIAkJVGhpcyBtZXRob2QgaXMg Y2FsbGVkIHdoZW4gdGhlIERhZW1vbiByZXF1aXJlcyBhIDE2IG9jdGV0DQo+IGJ5dGUNCj4gPiAg CQlhcnJheSwgYXMgYW4gT3V0LW9mLUJhbmQgYXV0aGVudGljYXRpb24uDQo+ID4NCj4gPiAgCQlU aGUgdHlwZSBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSBpbnB1dCBtZXRob2QuIEFsbG93ZWQNCj4g dmFsdWVzDQo+ID4gIAkJYXJlOg0KPiA+IC0NCj4gPiAgCQkJInN0YXRpYy1vb2IiIC0gcmV0dXJu IDE2IG9jdGV0IGFycmF5DQo+ID4gIAkJCSJpbi1hbHBoYSIgLSByZXR1cm4gMTYgb2N0ZXQgYWxw aGEgYXJyYXkNCj4gPg0KPiA+IEBAIC01MTEsNyArODUxLDYgQEAgUHJvcGVydGllczoNCj4gPiAg CWFycmF5e3N0cmluZ30gQ2FwYWJpbGl0aWVzIFtyZWFkLW9ubHldDQo+ID4NCj4gPiAgCQlBbiBh cnJheSBvZiBzdHJpbmdzIHdpdGggdGhlIGZvbGxvd2luZyBhbGxvd2VkIHZhbHVlczoNCj4gPiAt DQo+ID4gIAkJCSJibGluayINCj4gPiAgCQkJImJlZXAiDQo+ID4gIAkJCSJ2aWJyYXRlIg0KPiA+ IEBAIC01MjgsNyArODY3LDYgQEAgUHJvcGVydGllczoNCj4gPg0KPiA+ICAJCUluZGljYXRlcyBh dmFpbGFiaWxpdHkgb2YgT09CIGRhdGEuIEFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCB0aGUNCj4g PiAgCQlmb2xsb3dpbmcgYWxsb3dlZCB2YWx1ZXM6DQo+ID4gLQ0KPiA+ICAJCQkib3RoZXIiDQo+ ID4gIAkJCSJ1cmkiDQo+ID4gIAkJCSJtYWNoaW5lLWNvZGUtMmQiDQo+ID4gQEAgLTU0Niw4ICs4 ODQsMyBAQCBQcm9wZXJ0aWVzOg0KPiA+DQo+ID4gIAkJVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlm aWVyIHBvaW50cyB0byBvdXQtb2YtYmFuZCAoT09CKQ0KPiA+ICAJCWluZm9ybWF0aW9uIChlLmcu LCBhIHB1YmxpYyBrZXkpDQo+ID4gLQ0KPiA+IC0NCj4gPiAtTWVzaCBQcm92aXNpb25lciBIaWVy YXJjaHkNCj4gPiAtPT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPiAtPFRCRD4NCj4gPg0K PiA+DQo+IA0KPiANCj4gSW5nYQ0K