From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Hermida, Isaac" To: Luiz Augusto von Dentz CC: "linux-bluetooth@vger.kernel.org" Subject: Re: how to advertise a GATT service only for LE or BR/EDR? Date: Mon, 9 Oct 2017 12:00:26 +0000 Message-ID: <59DB64D8.3090704@digi.com> References: <59CD26BE.8040803@digi.com> <59CDEBDF.3090200@digi.com> <59D1E4B0.2000106@digi.com> <59D3343B.6020103@digi.com> <59D501B9.9030602@digi.com> <59DB4D93.3050200@digi.com> In-Reply-To: Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: SGkgTHVpeiwNCg0KT24gMTAvMDkvMjAxNyAwMTozMCBQTSwgTHVpeiBBdWd1c3RvIHZvbiBEZW50 eiB3cm90ZToNCj4gSGkgSXNhYWMsDQo+DQo+IE9uIE1vbiwgT2N0IDksIDIwMTcgYXQgMToyMSBQ TSwgSGVybWlkYSwgSXNhYWMgPElzYWFjLkhlcm1pZGFAZGlnaS5jb20+IHdyb3RlOg0KPj4gSGkg THVpeiwNCj4+DQo+PiBPbiAxMC8wNS8yMDE3IDExOjQwIEFNLCBMdWl6IEF1Z3VzdG8gdm9uIERl bnR6IHdyb3RlOg0KPj4+IEhpIElzYWFjLA0KPj4+DQo+Pj4gT24gV2VkLCBPY3QgNCwgMjAxNyBh dCA2OjQzIFBNLCBIZXJtaWRhLCBJc2FhYyA8SXNhYWMuSGVybWlkYUBkaWdpLmNvbT4gd3JvdGU6 DQo+Pj4+IEhpIEx1aXosDQo+Pj4+DQo+Pj4+IE9uIDEwLzAzLzIwMTcgMDg6NTQgQU0sIEhlcm1p ZGEsIElzYWFjIHdyb3RlOg0KPj4+Pj4gSGkgTHVpeiwNCj4+Pj4+DQo+Pj4+PiBPbiAxMC8wMi8y MDE3IDA2OjAwIFBNLCBMdWl6IEF1Z3VzdG8gdm9uIERlbnR6IHdyb3RlOg0KPj4+Pj4+IEhpIElz YWFjLA0KPj4+Pj4+DQo+Pj4+Pj4gT24gTW9uLCBPY3QgMiwgMjAxNyBhdCAxMDowMyBBTSwgSGVy bWlkYSwgSXNhYWMgPElzYWFjLkhlcm1pZGFAZGlnaS5jb20+IHdyb3RlOg0KPj4+Pj4+PiBIaSBM dWl6IGV0IGFsbCwNCj4+Pj4+Pj4NCj4+Pj4+Pj4gT24gMDkvMjkvMjAxNyAwODo0NCBBTSwgSGVy bWlkYSwgSXNhYWMgd3JvdGU6DQo+Pj4+Pj4+PiBIaSBMdWl6LA0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+ IE9uIDA5LzI4LzIwMTcgMDg6MjEgUE0sIEx1aXogQXVndXN0byB2b24gRGVudHogd3JvdGU6DQo+ Pj4+Pj4+Pj4gSGkgSXNhYWMsDQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiBPbiBUaHUsIFNlcCAyOCwg MjAxNyBhdCA3OjQzIFBNLCBIZXJtaWRhLCBJc2FhYyA8SXNhYWMuSGVybWlkYUBkaWdpLmNvbT4g d3JvdGU6DQo+Pj4+Pj4+Pj4+IEhpIGdyb3VwLA0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBBcyBw YXJ0IG9mIHRoZSBibHVldG9vdGggU0lHIGNlcnRpZmljYXRpb24gdGhlcmUgYXJlIHR3byB0ZXN0 IGNhc2VzDQo+Pj4+Pj4+Pj4+IC9UUC9HQVIvQ0wvQkktMzQtQyBhbmQgL1RQL0dBUi9DTC9CSS0z NS1DICh5b3UgY2FuIHNlZSB0aGV5IGRlZmluZWQgaW4NCj4+Pj4+Pj4+Pj4gdW5pdC90ZXN0LWdh dHQuYykuDQo+Pj4+Pj4+Pj4+IEN1cnJlbnRseSBJIGFtIGFibGUgdG8gcnVuIHRoZSAidGVzdC9l eGFtcGxlLWdhdHQtc2VydmVyIiBhbmQgc2VlIG15DQo+Pj4+Pj4+Pj4+IGN1c3RvbSBzZXJ2aWNl cyBhbmQgY2hhcmFjdGVyaXN0aWNzLCBidXQgSSBuZWVkIHRvIGRlZmluZSBhbiBzcGVjaWZpYw0K Pj4+Pj4+Pj4+PiBzZXJ2aWNlL2NoYXJhY3RlcmlzdGljIHRvIGJlIG9ubHkgYWNjZXNzaWJsZSB0 cm91Z2ggTEUgb3IgQlIvRURSDQo+Pj4+Pj4+Pj4+IHRyYW5zcG9ydCBwYXJhbWV0ZXIuIEkgd2Fz IGRpZ2dpbmcgaW50byB0aGUgY29kZSBidXQgSSB3YXMgdW5hYmxlIHRvDQo+Pj4+Pj4+Pj4+IGZp bmQgaG93IHRvIHNldCBpdCBmb3IgdGhlIEdBVFQgc2VydmVyLg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+ Pj4+PiBJbiBvdGhlciB3b3Jkcywgd2hhdCBJIHdhbnQgdG8gZG8gaXMgbGF1bmNoIHRoZSBnYXR0 LXNlcnZlciBhbmQgdGhlbiwNCj4+Pj4+Pj4+Pj4gd2hlbiBpbnNwZWN0aW5nIHRoZSBzZXJ2aWNl cy9jaGFyYWN0ZXJpc3RpYyB3aXRoIGdhdHR0b29sLCB0aGUgcmV0dXJuZWQNCj4+Pj4+Pj4+Pj4g bGlzdCBzaG91bGQgYmUgZGlmZmVyZW50IGlmIEkgcnVuIGdhdHR0b29sIHdpdGggIi1wIDMxIiBv ciBub3QgKG5vdGljZQ0KPj4+Pj4+Pj4+PiBob3cgdGhlIGdhdHR0b29sIHByb21wdCBpcyBzZXQg dG8gTEUgb3IgQlIpLg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiAjIGdhdHR0b29sIC1JIC1iIDAw OjQwOjlEOjk4Ojk5OkJEIC1wIDANCj4+Pj4+Pj4+Pj4gWzAwOjQwOjlEOjk4Ojk5OkJEXVtMRV0+ IGNvbm5lY3QNCj4+Pj4+Pj4+Pj4gQXR0ZW1wdGluZyB0byBjb25uZWN0IHRvIDAwOjQwOjlEOjk4 Ojk5OkJEDQo+Pj4+Pj4+Pj4+IENvbm5lY3Rpb24gc3VjY2Vzc2Z1bA0KPj4+Pj4+Pj4+PiBbMDA6 NDA6OUQ6OTg6OTk6QkRdW0xFXT4gcHJpbWFyeQ0KPj4+Pj4+Pj4+PiBhdHRyIGhhbmRsZTogMHgw MDAxLCBlbmQgZ3JwIGhhbmRsZTogMHgwMDA1IHV1aWQ6DQo+Pj4+Pj4+Pj4+IDAwMDAxODAwLTAw MDAtMTAwMC04MDAwLTAwODA1ZjliMzRmYg0KPj4+Pj4+Pj4+PiBhdHRyIGhhbmRsZTogMHgwMDA2 LCBlbmQgZ3JwIGhhbmRsZTogMHgwMDA5IHV1aWQ6DQo+Pj4+Pj4+Pj4+IDAwMDAxODAxLTAwMDAt MTAwMC04MDAwLTAwODA1ZjliMzRmYg0KPj4+Pj4+Pj4+PiBhdHRyIGhhbmRsZTogMHgwMDBhLCBl bmQgZ3JwIGhhbmRsZTogMHgwMDBkIHV1aWQ6DQo+Pj4+Pj4+Pj4+IDAwMDAxODBmLTAwMDAtMTAw MC04MDAwLTAwODA1ZjliMzRmYg0KPj4+Pj4+Pj4+PiBhdHRyIGhhbmRsZTogMHgwMDBlLCBlbmQg Z3JwIGhhbmRsZTogMHgwMDFkIHV1aWQ6DQo+Pj4+Pj4+Pj4+IDEyMzQ1Njc4LTEyMzQtNTY3OC0x MjM0LTU2Nzg5YWJjZGVmMA0KPj4+Pj4+Pj4+PiBhdHRyIGhhbmRsZTogMHgwMDFlLCBlbmQgZ3Jw IGhhbmRsZTogMHgwMDI1IHV1aWQ6DQo+Pj4+Pj4+Pj4+IDAwMDAxODBkLTAwMDAtMTAwMC04MDAw LTAwODA1ZjliMzRmYg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiAjIC90bXAv Z2F0dHRvb2wgLUkgLWIgMDA6NDA6OUQ6OTg6OTk6QkQgLXAgMzENCj4+Pj4+Pj4+Pj4gWzAwOjQw OjlEOjk4Ojk5OkJEXVtCUl0+IGNvbm5lY3QNCj4+Pj4+Pj4+Pj4gQXR0ZW1wdGluZyB0byBjb25u ZWN0IHRvIDAwOjQwOjlEOjk4Ojk5OkJEDQo+Pj4+Pj4+Pj4+IENvbm5lY3Rpb24gc3VjY2Vzc2Z1 bA0KPj4+Pj4+Pj4+PiBbMDA6NDA6OUQ6OTg6OTk6QkRdW0JSXT4gcHJpbWFyeQ0KPj4+Pj4+Pj4+ PiBhdHRyIGhhbmRsZTogMHgwMDAxLCBlbmQgZ3JwIGhhbmRsZTogMHgwMDA1IHV1aWQ6DQo+Pj4+ Pj4+Pj4+IDAwMDAxODAwLTAwMDAtMTAwMC04MDAwLTAwODA1ZjliMzRmYg0KPj4+Pj4+Pj4+PiBh dHRyIGhhbmRsZTogMHgwMDA2LCBlbmQgZ3JwIGhhbmRsZTogMHgwMDA5IHV1aWQ6DQo+Pj4+Pj4+ Pj4+IDAwMDAxODAxLTAwMDAtMTAwMC04MDAwLTAwODA1ZjliMzRmYg0KPj4+Pj4+Pj4+PiBhdHRy IGhhbmRsZTogMHgwMDBhLCBlbmQgZ3JwIGhhbmRsZTogMHgwMDE5IHV1aWQ6DQo+Pj4+Pj4+Pj4+ IDEyMzQ1Njc4LTEyMzQtNTY3OC0xMjM0LTU2Nzg5YWJjZGVmMA0KPj4+Pj4+Pj4+PiBhdHRyIGhh bmRsZTogMHgwMDFhLCBlbmQgZ3JwIGhhbmRsZTogMHgwMDFkIHV1aWQ6DQo+Pj4+Pj4+Pj4+IDAw MDAxODBmLTAwMDAtMTAwMC04MDAwLTAwODA1ZjliMzRmYg0KPj4+Pj4+Pj4+PiBhdHRyIGhhbmRs ZTogMHgwMDFlLCBlbmQgZ3JwIGhhbmRsZTogMHgwMDI1IHV1aWQ6DQo+Pj4+Pj4+Pj4+IDAwMDAx ODBkLTAwMDAtMTAwMC04MDAwLTAwODA1ZjliMzRmYg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pg0K Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBJIGFtIHVzaW5nIGJsdWV6IDUuNDEuIElzIHBvc3NpYmxl IHRvIGFkdmVydGlzZSBhIHNlcnZpY2Ugb25seSBmb3IgTEUgb3INCj4+Pj4+Pj4+Pj4gQlI/IEkg Z3Vlc3MgaXQgc2hvdWxkIGJlY2F1c2UgaXMgcGFydCBvZiB0aGUgU0lHIGNlcnRpZmljYXRpb24g YW5kIGlzDQo+Pj4+Pj4+Pj4+IHBhcnQgb2YgdGhlIHVuaXQvdGVzdC1nYXR0Lg0KPj4+Pj4+Pj4+ IFRoaXMgbWlnaHQgYmUgYmVjYXVzZSB0aGUgc3BlYyB3YXMgbm8gY2xlYXIgYWJvdXQgdGhlIGRh dGFiYXNlIGJlaW5nDQo+Pj4+Pj4+Pj4gYmVhcmVyIHNwZWNpZmljLCB3aGljaCBpbiBteSBvcGlu aW9uIHRoaXMgaXMgYSBvdmVyc2lnaHQgc2luY2UgdGhlbiB3ZQ0KPj4+Pj4+Pj4+IGNhbid0IHJl cHJlc2VudCBhdHRyaWJ1dGVzIG9mIGR1YWwgbW9kZSBkZXZpY2VzIHdpdGggYSB1bmlmaWVkIG9i amVjdCwNCj4+Pj4+Pj4+PiBhbmQgSSByZWFsbHkgd29uZGVyIGlmIHRoaXMgaGFzIHRvIGJlIGZv cmNlZCB1cCBpbnRvIHRoZSBBUEksIGlmIGl0DQo+Pj4+Pj4+Pj4gZG9lcyB0aGVuIHdlIHdvdWxk IGhhdmUgdG8gZW5jb2RlIGJlYXJlciBpbmZvcm1hdGlvbiBpbnRvIHRoZSBvYmplY3QNCj4+Pj4+ Pj4+PiBwYXRoIChhcmdoISkgZm9yIGNsaWVudCBhbmQgZm9yIHNlcnZlciB3b3VsZCBwcm9iYWJs eSBuZWVkIGEgcHJvcGVydHkNCj4+Pj4+Pj4+PiB0ZWxsaW5nIHdoaWNoIGJlYXJlciB0aGlzIHdv dWxkIGJlIGF2YWlsYWJsZSBhbmQgZW5jb2RlIHRoaXMgaW50byB0bw0KPj4+Pj4+Pj4+IHRoZSBk YXRhYmFzZSB3aGljaCBtYXkgbGVhdmUgZ2FwcyBpbiB0aGUgaGFuZGxlcyBvciBqdXN0IGR1cGxp Y2F0ZQ0KPj4+Pj4+Pj4+IGV2ZXJ5dGhpbmcsIGZvciBzZXJ2ZXIgSWQgcHJvYmFibHkganVzdCBo aWRlIHRoZSBzZXJ2aWNlcyBiYXNlZCBvbiB0aGUNCj4+Pj4+Pj4+PiBiZWFyZXIsIGJ1dCB3ZSBz dGlsbCBuZWVkIHRvIHN0b3JlIHRoZSBDQ0MgY29uZmlndXJhdGlvbiBpbiBhIGJlYXJlcg0KPj4+ Pj4+Pj4+IHNwZWNpZmljIG1hbm5lci4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IFNv LCB3aGF0IGNhbiBJIGRvIGluIG9yZGVyIHRvIHBhc3MgdGhhdCBzcGVjaWZpYyBibHVldG9vdGgg U0lHIHRlc3RzPw0KPj4+Pj4+Pj4gVGhhdCB0ZXN0IGNhc2VzIG5lZWQgdG8gZW5zdXJlIHRoYXQg YW4gc3BlY2lmaWMgc2VydmljZS9jaGFyIGluIG9ubHkNCj4+Pj4+Pj4+IGFjY2Vzc2libGUgb24g TEUgb3IgQlIsIHNvIHRoZXkgaGFkIHRvIGJlIGRpZmZlcmVudC4NCj4+Pj4+Pj4+IERvIHlvdSBo YXZlIGFueSBpZGVhIG9yIHN1Z2dlc3Rpb24/IEl0IHdvdWxkIGJlIHJlYWxseSB3ZWxjb21lLCBp ZiBub3QgSQ0KPj4+Pj4+Pj4gaGF2ZSBubyBpZGVhIGhvdyB0byBwcm9jZWVkIHRvIGNvbXBsZXRl IHRoZSBTSUcgdmFsaWRhdGlvbiB3aXRoIGJsdWV6IHN0dWZmLg0KPj4+Pj4+Pj4gSSB3YXMgZXZl biB0cnlpbmcgdG8gbW9kaWZ5IHNvbWUgZmlsZXMgaW50byB0aGUgY29kZSwgYnV0IEkgYW0gbm90 DQo+Pj4+Pj4+PiBmYW1pbGlhciB3aXRoIHRoYXQgYW5kIGl0IG9idmlvdXNseSBkaWQgbm90IHdv cmsuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IEkgdW5kZXJzdGFuZCB0aGUgc2lsZW50IHRvIHRoaXMgbGFz dCBxdWVzdGlvbiBhcyBhIG5vLiBTbyBJIGFzc3VtZSB0aGF0DQo+Pj4+Pj4+IGFueSB1c2VyIHRy eWluZyB0byBwYXNzIHRoaXMgdGVzdCB3aWxsIGZhaWwgKGF0IGxlYXN0IGlmIHVzaW5nIGJsdWV6 KS4NCj4+Pj4+Pj4gU28gc2hvdWxkIHRoZSBzcGVjaWZpY2F0aW9uIGJlIGNoYW5nZWQ/IFNob3Vs ZCBibHVleiBhZGFwdCB0byBpdD8gSW4gdGhlDQo+Pj4+Pj4+IGN1cnJlbnQgc3RhdGUgdGhhdCBT SUcgY2VydGlmaWNhdGlvbiBjYW4gbm90IGJlIHBhc3NlZC4NCj4+Pj4+Pg0KPj4+Pj4+IFRoYXQg aWYgeW91IHdhbnQgdG8gcXVhbGlmeSB3aXRoIEdBVFQgb3ZlciBCUi9FRFIsIHNvbWV0aGluZyB0 aGF0IHdlDQo+Pj4+Pj4gbWF5IGFjdHVhbGx5IGhhdmUgYW4gb3B0aW9uIHRvIGRpc2FibGUgaW4g dGhlIGZ1dHVyZSwgb3IgcGVyaGFwcyBqdXN0DQo+Pj4+Pj4gcmVtb3ZlIGl0IGVudGlyZWx5IGdp dmVuIHRoaXMgdGVzdHMgd291bGQgcG9zc2libGUgYWZmZWN0IHRoYXQgR0FUVA0KPj4+Pj4+IGRh dGFiYXNlIGxheW91dCwgZWl0aGVyIGJ5IGNyZWF0aW5nIGhhbmRsZSBnYXBzIG9yIGR1cGxpY2F0 aW9uLiBTbw0KPj4+Pj4+IHBlcmhhcHMgeW91IGNvdWxkIGdpdmUgc29tZSBmZWVkYmFjayBpZiB5 b3UgZG8gaW50ZW5kIHRvIHVzZSBHQVRUIG92ZXINCj4+Pj4+PiBCUi9FRFIgb3Igbm90PyBJZiBp dCB0dXJuIG91dCBubyBvbmUgYmVuZWZpdCBmcm9tIGl0IElkIGp1c3QgcmVtb3ZlDQo+Pj4+Pj4g aXQuDQo+Pj4+Pj4NCj4+Pj4+DQo+Pj4+PiBUaGFua3MgZm9yIHRoZSBxdWljayByZXBseS4gSSBk byBub3Qga25vdyBob3cgYW55IG90aGVyIHBlb3BsZSB3YXMgYWJsZQ0KPj4+Pj4gdG8gcGFzcyB0 aGVzZSBTSUcgbGFiIHRlc3RzIChCSS0zNC1DIGFuZCBCSS0zNS1DKS4NCj4+Pj4+IEkgZG8gbm90 IHBsYW4gdG8gdXNlIEdBVFQgb3ZlciBCUi9FRFIuIEZvciBtZSBqdXN0IHJlbW92aW5nIGl0IHdv dWxkIGJlDQo+Pj4+PiBlbm91Z2guIElmIHlvdSBjYW4gcG9pbnQgbWUgd2hlcmUvaG93IHRvIGRv IHRoYXQgaXQgd291bGQgYmUgZ3JlYXQgc28gSQ0KPj4+Pj4gY2FuIGRpZyBpbiB0aGUgY29kZSAo SSBhbSBub3QgZmFtaWxpYXIgd2l0aCB0aGF0IGNvZGUpLg0KPj4+Pj4NCj4+Pj4+IFRoeCwNCj4+ Pj4+ICAgICAgICBJc2FhYw0KPj4+Pg0KPj4+Pg0KPj4+PiBZZXN0ZXJkYXkgSSBkaWQgYXBwbHkg dGhlIHBhdGNoIChnYXR0OiBSZW1vdmUgc3VwcG9ydCBvZiBBVFQgb3Zlcg0KPj4+PiBCUi9FRFIp IG9uIGJsdWV6LTUuNDEgKG15IGN1cnJlbnQgdmVyc2lvbikgYW5kIHBhc3NlZCBpdCB0byB0aGUg bGFiLiBJDQo+Pj4+IHdhcyB3YWl0aW5nIGZvciB0aGVpciBmZWVkYmFjayBidXQgSSBkaWQgbm90 IGdldCBhIHJlcGx5IHlldCwgc28ganVzdCB0bw0KPj4+PiBsZXQgeW91IGtub3cgdGhhdCBJIGdl dCB0aGUgcGF0Y2ggYW5kIGFwcGxpZWQgaXQuDQo+Pj4+IEFzIEkgc2VlIGl0LCB0aGF0IHBhdGNo IHJlbW92ZWQgdGhlIHN1cHBvcnQgZm9yIEFUVCBvdmVyIEJSL0VEUiwgc28gSQ0KPj4+PiBndWVz cyB0aGF0IGFub3RoZXIgd2F5IHRvIHBhc3MgdGhhdCB0ZXN0IGlzIG1vZGlmeWluZyB0aGUgZmly bXdhcmUgb2YNCj4+Pj4gdGhlIGJsdWV0b290aCBjaGlwIHRvIGRpc2FibGUgaXQgYXQgYSBodyBs ZXZlbC4NCj4+Pj4gQW5kLCBpbiBvcmRlciB0byBwYXNzIHRoZSBvdGhlciB0ZXN0IGNhc2UgKEJJ LTM1LUMpLCBJIHdpbGwgbmVlZCB0byBkbw0KPj4+PiBub3QgYXBwbHkgdGhlIG1lbnRpb25lZCBw YXRjaCBhbmQgY3JlYXRlIGEgc2ltaWxhciBvbmUgZm9yIEFUVCBvdmVyIExFLA0KPj4+PiBvciBp cyB0aGVyZSBhbm90aGVyIHdheSB0byBhY2NvbXBsaXNoIC9UUC9HQVIvQ0wvQkktMzUtQz8NCj4+ Pg0KPj4+IElkIGFzc3VtZSB5b3Ugd291bGQgbm90IGhhdmUgdG8gcnVuIHRob3NlIHRlc3RzIGlm IEFUVCBvdmVyIEJSL0VEUiBpcw0KPj4+IG5vdCBzdXBwb3J0ZWQ6DQo+Pj4NCj4+PiA0LjUuNzIg VFAvR0FSL0NML0JJLTM1LUMgW1JlYWQgQ2hhcmFjdGVyaXN0aWMgVmFsdWUgXHUyMDEzIEludmFs aWQNCj4+PiBUcmFuc3BvcnQgQWNjZXNzIG92ZXINCj4+PiBMRV0NCj4+PiBWZXJpZnkgR2VuZXJp YyBBdHRyaWJ1dGUgUHJvZmlsZSBjbGllbnQgYmVoYXZpb3Igd2hlbiBhbiBhdHRlbXB0IHRvDQo+ Pj4gdXNlIExFIHRyYW5zcG9ydCB0byBleGVjdXRlDQo+Pj4gdGhlIFJlYWQgQ2hhcmFjdGVyaXN0 aWMgVmFsdWUgcHJvY2VkdXJlIG9uIGEgY2hhcmFjdGVyaXN0aWMgY29udGFpbmVkDQo+Pj4gd2l0 aGluIGEgc2VydmljZSBkZWZpbmVkDQo+Pj4gZm9yIHVzZSBvbmx5IG92ZXIgQlIvRURSIHRyYW5z cG9ydC4NCj4+Pg0KPj4+IFdpdGhvdXQgQlIvRURSIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBydW4g dGhpcyB0ZXN0IGFzIGFsbCB0aGUNCj4+PiBhdHRyaWJ1dGVzIHNob3VsZCBiZSB2YWxpZC4NCj4+ Pg0KPj4NCj4+DQo+PiBPdXIgcHJvZHVjdCBpcyBkdWFsIHNvIHRob3NlIHRlc3RzIGFyZSBtYW5k YXRvcnkuIEFkZGl0aW9uYWxseSwgb3VyDQo+PiBwcm9kdWN0IGlzIDQuMiwgbm8gNC4wLg0KPj4g VGhlIHBhdGNoIHlvdSBwcm9wb3NlZCAoZ2F0dDogUmVtb3ZlIHN1cHBvcnQgb2YgQVRUIG92ZXIg QlIvRURSKSBpcyBub3QNCj4+IHZhbGlkIGFuZCB3aWxsIG5vdCB3b3JrIChpZiB5b3Ugd2FudCBJ IGNhbiBhZGQgZGV0YWlscyB0byB0aGUgb3RoZXINCj4+IHRocmVhZCkgYW5kIGl0IHdpbGwgYnJl YWsgb3RoZXIgdGVzdHMgbmVlZGVkIGZvciB0aGUgY2VydGlmaWNhdGlvbi4gSQ0KPj4gd291bGQg c3VnZ2VzdCB0byByZWplY3QgaXQuDQo+PiBUbyBwdXQgc29tZSBsaWdodCBpbiB0ZXN0cyBCSS0z NC1DIGFuZCBCSS0zNS1DLCBpdCBjb25zaXN0cyBpbiBkZWZpbmUgYQ0KPj4gY2hhcmFjdGVyaXN0 aWMgb25seSBhdmFpbGFibGUgdGhyb3VnaCB0aGUgdHJhbnNwb3J0IGxheWVyIExFIG9yIEJSL0VE UiwNCj4+IHNvIGluIG9uZSBjYXNlIHRoZSB2YWx1ZSBjYW4gYmUgcmVhZCwgYW5kIGluIHRoZSBv dGhlciBjYXNlIGl0IGlzDQo+PiByZWplY3RlZC4gSSBjYW4gYWRkIG1vcmUgZGV0YWlscyBpZiBu ZWVkZWQuDQo+DQo+IEltIHByZXR0eSBzdXJlIGl0IGlzIHBvc3NpYmxlIHNpbmNlIGNocm9tZSBP UyBoYXMgZG9uZSBpdDoNCj4NCj4gaHR0cHM6Ly93d3cuYmx1ZXRvb3RoLm9yZy90cGcvUUxJX3Zp ZXdRREwuY2ZtP3FpZD0yMjMzMw0KPg0KPiBUaG91Z2ggSSBjYW4gc2VlIHRoZSBBVFQgb3ZlciBC Ui9FRFIgaXMgaW4gZmFjdCBtYW5kYXRvcnksIHRoZSBJQ1Mgc2F5czoNCj4NCj4gQy4xOiBNYW5k YXRvcnkgSUYgKFNVTSBJQ1MgMTIvMiDigJxCbHVldG9vdGggQmFzaWMgUmF0ZSBDb3JlIEhvc3QN Cj4gQ29uZmlndXJhdGlvbuKAnSBPUiBTVU0gSUNTIDEyLzkNCj4g4oCcQmx1ZXRvb3RoIEJhc2lj IFJhdGUgYW5kIExvdyBFbmVyZ3kgQ29tYmluZWQgQ29yZSBIb3N0DQo+IENvbmZpZ3VyYXRpb27i gJ0pIGlzIHN1cHBvcnRlZCwNCj4gb3RoZXJ3aXNlIEV4Y2x1ZGVkLg0KPg0KDQpJIGFtIHJlYWxs eSBsaWtlIGEgbmV3YmllIG9uIHRoaXMgc28gSSBoYXZlIHJlYWxseSBub3RoaW5nIHRvIGhlbHAg b24gDQp0aGF0IGFuZCBJIGNhbiBiZSBjb21wbGV0ZWx5IHdyb25nIHdpdGggbXkgY29tbWVudHMu IFRoYXQgbGluayB5b3Ugc2VuZCANCmlzIGFib3V0IDIwMTQsIGFuZCB0aGUgc3BlY2lmaWNhdGlv biB0YWxrcyBhYm91dCA0LjAuIFByb2JhYmx5IHRoZSANCmNlcnRpZmljYXRpb24gaGFzIGJlZW4g dXBkYXRlZCBmb3IgNC4yLiBJIHRoaW5rKD8pIHRoYXQgaWYgd2Ugd2VyZSA0LjAsIA0KdGhlbiB3 ZSBzaG91bGQgbm90IGJlIGFjY29tcGxpc2ggdGhhdCB0ZXN0IGNhc2UuDQoNCj4+IEN1cnJlbnRs eSB0aGUgd29ya2Fyb3VuZCB0aGF0IEkgYW0gZG9pbmcgaXMgcmVjb3JkIHRoZSB0eXBlIG9mDQo+ PiBjb25uZWN0aW9uIChMRSBvciBCUi9FRFIpIGFuZCByZXR1cm4gdGhlIGVycm9yIGNvZGUgZm9y IG9uZSBzcGVjaWZpYw0KPj4gY2hhcmFjdGVyaXN0aWMgKHRoYXQgSSByZWdpc3RlciBpbiBteSBn YXR0IHNlcnZlciBhcHBsaWNhdGlvbiksIHNvIEkNCj4+IGN1c3RvbWl6ZSBteSBhcHBsaWNhdGlv bi4gVGhlIGxhYiBkaWQgbm90IGNvbmZpcm0vZGlzbWlzcyBpdCB5ZXQsIGJ1dA0KPj4gaG9wZWZ1 bGx5IGl0IGlzIHdoYXQgdGhleSBuZWVkLg0KPg0KPiBBZmFpayBhbnkgc2VydmljZSBub3QgcmVn aXN0ZXJlZCBvdmVyIFNEUCBzaG91bGQgbm90IGJlIGF2YWlsYWJsZSBvdmVyDQo+IEJSL0VEUiwg d2hpY2ggaXMgcGVyaGFwcyB3aHkgdGhlIGN1cnJlbnQgY29kZSBvbmx5IGRvZXMgZXhwb3NlIEdB VFQNCj4gYW5kIEdBUCBzZXJ2aWNlLCBub3RoaW5nIGVsc2UuIE5vdyBJIGhhdmVuJ3QgZm91bmQg YW55dGhpbmcNCj4gcHJvaGliaXRpbmcgR0FUVCBkaXNjb3ZlcnkgdG8gaGFwcGVuIG92ZXIgQlIv RURSLCBqdXN0IGV4Y2hhbmdlIE1UVSwNCj4gYnV0IHRoZSBTRFAgc2VydmljZSBhbHJlYWR5IGNh cnJpZXMgdGhlIGhhbmRsZXMgd2hpY2ggSSBhc3N1bWUgaXMgd2hhdA0KPiBQVFMgdXNlcyBnaXZl biB0aGVyZSBhcmUgdGVzdHMgbGlrZToNCj4NCj4gNC40LjE1IFRQL0dBRC9TUi9CVi0wNy1DIFtE aXNjb3ZlciBQcmltYXJ5IFNlcnZpY2VzIHVzaW5nIFNEUCAtIGZyb20gU2VydmVyXQ0KPg0KDQpU aGF0IHdhcyB0aGUgcG9pbnQgdGhhdCBpbml0aWFsbHkgY29uZnVzZWQgbWUgYW5kIEkgZGlkIG5v dCB1bmRlcnN0YW5kIA0KdGhlIGNlcnQgbGFiLiBJIHRob3VnaCB0aGF0IEdBVFQvQVRUIHdhcyBv bmx5IExFLg0KDQpEZXRhaWxlZCBHQVRUL0FUVCBpbmZvcm1hdGlvbjogQmx1ZXRvb3RoIENvcmUg U3BlY2lmaWNhdGlvbiB2NS4wIA0KaHR0cHM6Ly93d3cuYmx1ZXRvb3RoLmNvbS9zcGVjaWZpY2F0 aW9ucy9ibHVldG9vdGgtY29yZS1zcGVjaWZpY2F0aW9uDQoNCkFjY29yZGluZyB0byB0aGlzIGRv Y3VtZW50IChwYWdlIDI1NCksIOKAmEdBVFQgYW5kIEFUVCBhcmUgbm90IHRyYW5zcG9ydCANCnNw ZWNpZmljIGFuZCBjYW4gYmUgdXNlZCBpbiBib3RoIEJSL0VEUiBhbmQgTEUuIEhvd2V2ZXIsIEdB VFQgYW5kIEFUVCANCmFyZSBtYW5kYXRvcnkgdG8gaW1wbGVtZW50IGluIExFIHNpbmNlIGl0IGlz IHVzZWQgZm9yIGRpc2NvdmVyaW5nIHNlcnZpY2VzLuKAmQ0KDQoNCj4gQW55d2F5LCB0aGUgZW5k IHJlc3VsdCBpcyB0aGF0IHdlIGNhbm5vdCBjb21wbGV0ZWx5IGRpc2FibGUgQVRUIG92ZXINCj4g QlIvRURSLCBhbmQgbWlnaHQgaGF2ZSB0byBwdXNoIHRoZSBiZWFyZXIgZGV0YWlscyB1cCB0byB0 aGUNCj4gYXBwbGljYXRpb24uDQo+DQoNCkluIGZhY3QsIEkgdGhpbmsgd2Ugc2hvdWxkIG5vdC4N Cg0KPiBOb3RlIHRoYXQgZXhwb3NpbmcgdGhlIGNvbm5lY3RlZCBiZWFyZXIgaXMgbm90IGVub3Vn aCBpbiBjYXNlIGEgZGV2aWNlDQo+IGNvbm5lY3RzIG92ZXIgYm90aCBiZWFyZXJzIHRoZSBhcHBs aWNhdGlvbiB3aWxsIGhhdmUgbm8gbWVhbnMgdG8NCj4gZGlzdGluZ3Vpc2ggaW4gd2hpY2ggYmVh cmVyIHRoZSBjb21tYW5kIGlzIGNvbWluZyBmcm9tLCB0aGlzIGFwcGVhcnMNCj4gdG8gYmUgYSBw cm9ibGVtIHRvIEFuZHJvaWQgSEFMIGFzIHdlbGw6DQo+DQo+IGh0dHBzOi8vYW5kcm9pZC5nb29n bGVzb3VyY2UuY29tL3BsYXRmb3JtL2hhcmR3YXJlL2xpYmhhcmR3YXJlLysvbWFzdGVyL2luY2x1 ZGUvaGFyZHdhcmUvYnRfZ2F0dF9zZXJ2ZXIuaCM3MQ0KPg0KPiBTbyBwcm9iYWJseSBldmVyeW9u ZSBpcyBwYXNzaW5nIHdpdGggYSBjdXN0b20gYXBwbGljYXRpb24gd2hpY2gNCj4gZGV0ZWN0cywg b3IgYXNrcyB0aGUgdXNlciBpbnB1dCwgd2hlbiB0byByZXR1cm4gYW4gZXJyb3IuDQo+DQoNClRo YXQgd2FzLCBpbiBmYWN0LCBvdXIgcHJvYmxlbSB0byBwYXNzIHRoaXMgY2VydGlmaWNhdGlvbiB0 ZXN0IGNhc2VzLiANCkFuZCBiYXNlZCB0aGF0IEkgZGlkIG5vdCBmaW5kIG90aGVyIHVzZXIgY29t cGxhaW5pbmcgYWJvdXQgdGhhdCwgSSANCmFzc3VtZSBpdCBpcyBzb21ldGhpbmcgIm5ldyIgb3Ig d2VsbCB0aGV5IHBhc3MgdGhlIHRlc3QgYnkgZG9pbmcgc29tZSANCmN1c3RvbSBhZGp1c3RtZW50 cy4NCg0KPj4gVGhhbmtzIGZvciB0aGUgc3VwcG9ydCBvbiB0aGlzIGlzc3VlLiBMZXQgbWUga25v dyBpZiBJIGNhbiBoZWxwIGluDQo+PiBhbnl0aGluZywgaWYgSSBuZWVkIHRvIHByb3ZpZGUgbW9y ZSBkZXRhaWxzLCBpZiB5b3Ugd2FudCBhIHJlcGx5IGluIHRoZQ0KPj4gcGF0Y2ggdGhyZWFkIG9y IGFueSBvdGhlciBzdHVmZi4NCj4+IFJlZ2FyZHMsDQo+PiAgICAgSXNhYWMNCj4=