Return-path: Received: from comal.ext.ti.com ([198.47.26.152]:48252 "EHLO comal.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750853Ab3A2S2r (ORCPT ); Tue, 29 Jan 2013 13:28:47 -0500 From: "Zigman, Eran" To: Girish Bn , "Coelho, Luciano" CC: "linux-wireless@vger.kernel.org" Subject: RE: wl12xx (ol_R5.SP3.05) drivers + firmware (ol_R5.SP3.05) doesn't work on WL1271 (HW PG 2.0) Date: Tue, 29 Jan 2013 18:28:39 +0000 Message-ID: <58098F92B10CE64E898E9D20B13AA4830B5CD498@DNCE05.ent.ti.com> (sfid-20130129_192851_314604_35AC51AE) References: <45566970CF58C74CB52107862E0541CD1D1CB484@POCITMSEXMB02.LntUniverse.com> <1355945507.5373.2.camel@cumari.coelho.fi> <58098F92B10CE64E898E9D20B13AA4830B58C497@DNCE05.ent.ti.com> <45566970CF58C74CB52107862E0541CD1D1ED65D@POCITMSEXMB02.LntUniverse.com> In-Reply-To: <45566970CF58C74CB52107862E0541CD1D1ED65D@POCITMSEXMB02.LntUniverse.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org List-ID: SGkgR2lyaXNoLA0KDQpQRzIuMCB3YXMgc3RvcHBlZCBiZWVuIHN1cHBvcnRlZCBkdWUgdG8gUlgg TWlzbWF0Y2ggcHJvYmxlbSB0aGF0IGNhbWUgZHVlIHRvICJ3cm9uZy9wcm9ibGVtYXRpYyIgUFBE VSBjb21wbGV0ZSBpbnRlcnJ1cHQuIEluIFBHMy4wIHdlIG1vdmVkIGluIDEyN3ggdG8gd29yayBh cyAxMjh4IGRldmljZXMsIGFuZCBzb2x2ZWQgdGhhdCBpc3N1ZS4NCg0KVGhhbmtzIGFuZCBSZWdh cmRzLA0KDQpFcmFuIFppZ21hbg0KVGV4YXMgSW5zdHJ1bWVudHMgSW5jDQpFQ1MgQXBwbGljYXRp b24gDQpDZWxsOiA0MDgtNjgwOTczNCwgT2ZmaWNlOiA3MjEzNzI2DQoNCg0KLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCkZyb206IEdpcmlzaCBCbiBbbWFpbHRvOkdpcmlzaC5CTkBsbnRpZXMu Y29tXSANClNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDI0LCAyMDEzIDEwOjQ4IFBNDQpUbzogWmln bWFuLCBFcmFuOyBDb2VsaG8sIEx1Y2lhbm8NCkNjOiBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5l bC5vcmcNClN1YmplY3Q6IFJFOiB3bDEyeHggKG9sX1I1LlNQMy4wNSkgZHJpdmVycyArIGZpcm13 YXJlIChvbF9SNS5TUDMuMDUpIGRvZXNuJ3Qgd29yayBvbiBXTDEyNzEgKEhXIFBHIDIuMCkNCg0K SGkgVEkgRGV2ZWxvcGVycywNCg0KSSBhbSBzdGlsbCB3YWl0aW5nIGZvciByZXBseSBmcm9tIFRJ IG9uIHdoZXRoZXIgb3VyIGhhcmR3YXJlIGNhbiBydW4gc3VjY2Vzc2Z1bGx5IHJ1biB0aGUgb2xf UjUuU1AzLjA1IHBhY2thZ2Ugb3Igbm90Lg0KV2Ugc3BlbmQgaHVnZSBhbW91bnQgb2YgdGltZSBp biB0ZXN0aW5nIHRoZSBwYWNrYWdlLiBXZSBhcmUgc2VlaW5nIHRoZSBpc3N1ZSB3aXRoIHRoZSBm aXJtd2FyZSBiaW5hcmllcyBvbmx5LiBXZSBkb24ndCBoYXZlIGFuIGFueSBjb250cm9sIG9uIHRo ZSBmaXJtd2FyZSBiaW5hcmllcyBhbmQgaXQgYSBibGFjayBib3ggdG8gdXMuDQpJZiB0aGUgZmly bXdhcmUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGUgb2xkZXIgaGFyZHdhcmUsIHBsZWFzZSBhcHBs eSBhIHBhdGNoIHRvIHRoZSBkcml2ZXIgd2hpY2ggd2lsbCByZXN0cmljdCBydW5uaW5nIHRoZSBu ZXcgZHJpdmVycyBvbiB0aGUgb2xkZXIgaGFyZHdhcmUuDQpJdCB3aWxsIGFsc28gaGVscCB0byBh dm9pZCBwZW9wbGUgc3BlbmRpbmcgdGltZSBvbiB0aGUgbmV3IGRyaXZlcnMgd2l0aCBvbGQgaGFy ZHdhcmUuDQpXZSB3YW50ZWQgdG8gbWFrZSBjcnVjaWFsIGRlY2lzaW9uIGZvciBvdXIgTmV0d29y ayBTZXJ2ZXIgcHJvZHVjdCBmZWF0dXJlcyBiYXNlZCBvbiB0aGUgb3V0Y29tZSBvZiB0ZXN0aW5n IG9sX1I1LlNQMy4wNSBwYWNrYWdlIHdoaWNoIHdlIGNvdWxkbid0IGFjaGlldmUuDQpUaGlzIGhh cyBkaXNhcHBvaW50ZWQgdXMgYSBsb3QNCg0KVGhhbmtzICYgUmVnYXJkcywNCkdpcmlzaA0KDQot LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogR2lyaXNoIEJuDQpTZW50OiBGcmlkYXks IEphbnVhcnkgMDQsIDIwMTMgOToxMSBBTQ0KVG86ICdaaWdtYW4sIEVyYW4nOyAnQ29lbGhvLCBM dWNpYW5vJw0KQ2M6ICdsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmcnDQpTdWJqZWN0OiBS RTogd2wxMnh4IChvbF9SNS5TUDMuMDUpIGRyaXZlcnMgKyBmaXJtd2FyZSAob2xfUjUuU1AzLjA1 KSBkb2Vzbid0IHdvcmsgb24gV0wxMjcxIChIVyBQRyAyLjApDQoNCkhpLA0KDQpEbyB5b3UgaGF2 ZSBhbnkgdXBkYXRlcyBvbiB0aGUgdGVzdGluZyBhdCB5b3VyIHNpZGU/IExldCB1cyBrbm93IGFu eSBwYXRoIGZvcndhcmQgb24gdGhpcz8NCg0KVGhhbmtzICYgUmVnYXJkcywNCkdpcmlzaA0KTCZU IElFUywNCktJQURCIEluZHVzdHJpYWwgQXJlYSwNCkhlYmJhbC1Ib290YWdhbGxpLCBNeXNvcmUg LSA1NzAgMDE4DQpUZWxlcGhvbmUgOiAgRElEKzkxLTgyMS0yNDA1NTUyDQpNb2JpbGU6ICs5MS05 NzQxMjA2NDAyDQpFLW1haWwgSUQgOkdpcmlzaC5CTkBsbnRpZXMuY29tDQp3d3cubG50aWVzLmNv bQ0KDQpUaGlzIG1haWwgaXMgY2xhc3NpZmllZCBhcyA6DQooICApIEwmVCBJRVMgUHJvcHJpZXRh cnkNCiggICkgTCZUIElFUyBDb25maWRlbnRpYWwNCihYKSBMJlQgSUVTIEludGVybmFsIFVzZQ0K KCApIEwmVCBJRVMgR2VuZXJhbCBCdXNpbmVzcw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KRnJvbTogR2lyaXNoIEJuDQpTZW50OiBGcmlkYXksIERlY2VtYmVyIDI4LCAyMDEyIDY6MTcg UE0NClRvOiAnWmlnbWFuLCBFcmFuJzsgQ29lbGhvLCBMdWNpYW5vDQpDYzogbGludXgtd2lyZWxl c3NAdmdlci5rZXJuZWwub3JnDQpTdWJqZWN0OiBSRTogd2wxMnh4IChvbF9SNS5TUDMuMDUpIGRy aXZlcnMgKyBmaXJtd2FyZSAob2xfUjUuU1AzLjA1KSBkb2Vzbid0IHdvcmsgb24gV0wxMjcxIChI VyBQRyAyLjApDQoNCkhpLA0KDQpUaGFua3MgZm9yIHRoZSBzdXBwb3J0DQpDYW4geW91IGxldCB1 cyBrbm93IHdoZXRoZXIgeW91IHdlcmUgYWJsZSB0byByZXByb2R1Y2UgdGhlIGlzc3VlIHVzaW5n IFI1LlNQMyBvbiBXTDEyNzFMIChIVyBQRyAyLjApIG9uIExpbnV4Pw0KDQogVGhhbmtzICYgUmVn YXJkcywNCkdpcmlzaA0KTCZUIElFUywNCktJQURCIEluZHVzdHJpYWwgQXJlYSwNCkhlYmJhbC1I b290YWdhbGxpLCBNeXNvcmUgLSA1NzAgMDE4DQpUZWxlcGhvbmUgOiAgRElEKzkxLTgyMS0yNDA1 NTUyDQpNb2JpbGU6ICs5MS05NzQxMjA2NDAyDQpFLW1haWwgSUQgOkdpcmlzaC5CTkBsbnRpZXMu Y29tDQp3d3cubG50aWVzLmNvbQ0KDQpUaGlzIG1haWwgaXMgY2xhc3NpZmllZCBhcyA6DQooICAp IEwmVCBJRVMgUHJvcHJpZXRhcnkNCiggICkgTCZUIElFUyBDb25maWRlbnRpYWwNCihYKSBMJlQg SUVTIEludGVybmFsIFVzZQ0KKCApIEwmVCBJRVMgR2VuZXJhbCBCdXNpbmVzcw0KDQotLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogWmlnbWFuLCBFcmFuIFttYWlsdG86ZXJhbnpAdGku Y29tXQ0KU2VudDogU2F0dXJkYXksIERlY2VtYmVyIDIyLCAyMDEyIDEyOjM2IEFNDQpUbzogQ29l bGhvLCBMdWNpYW5vOyBHaXJpc2ggQm4NCkNjOiBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5v cmcNClN1YmplY3Q6IFJFOiB3bDEyeHggKG9sX1I1LlNQMy4wNSkgZHJpdmVycyArIGZpcm13YXJl IChvbF9SNS5TUDMuMDUpIGRvZXNuJ3Qgd29yayBvbiBXTDEyNzEgKEhXIFBHIDIuMCkNCg0KTHVj YSwNCldlIGhhdmUgdGVzdGVkIHRoZSBiZWxvdyByZWxlYXNlIFI1LlNQMyBvbiBBTTMzNXggYW5k IFdMMTI3MUwgKEhXIFBHIDMueCkgb24gTGludXggYnV0IG5vdCBvbiBQRyAyLjAuDQpJIGFtIG5v dCBzdXJlIGlmIHRoZSBSNS5TUDMgZHJpdmVyL2Zpcm13YXJlIHdvdWxkIGhhdmUgYW55IGxpbWl0 YXRpb25zIG9mIG9sZCB2ZXJzaW9uIFBHMi4wLg0KV2Ugd2lsbCBydW4gdGhlIGV4YWN0IHNjZW5h cmlvcyB0aGF0IHlvdSBtZW50aW9uZWQgZm9yIFdMNiAoUEczLngpIGFuZCB1cGRhdGUuDQoNCg0K Q2FuIHlvdSBwbGVhc2Ugc2hlZCBzb21lIGxpZ2h0IG9uIHRoaXMgYWN0aXZpdHksIGN1c3RvbWVy Li4uDQoNClRoYW5rcyBhbmQgUmVnYXJkcywNCg0KRXJhbiBaaWdtYW4NClRleGFzIEluc3RydW1l bnRzIEluYw0KRUNTIEFwcGxpY2F0aW9uDQpDZWxsOiA0MDgtNjgwOTczNCwgT2ZmaWNlOiA3MjEz NzI2DQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENvZWxobywgTHVjaWFu bw0KU2VudDogV2VkbmVzZGF5LCBEZWNlbWJlciAxOSwgMjAxMiAxMTozMiBBTQ0KVG86IFppZ21h biwgRXJhbjsgR2lyaXNoIEJuDQpDYzogbGludXgtd2lyZWxlc3NAdmdlci5rZXJuZWwub3JnDQpT dWJqZWN0OiBSZTogd2wxMnh4IChvbF9SNS5TUDMuMDUpIGRyaXZlcnMgKyBmaXJtd2FyZSAob2xf UjUuU1AzLjA1KSBkb2Vzbid0IHdvcmsgb24gV0wxMjcxIChIVyBQRyAyLjApDQoNCkhpIEVyYW4s DQoNCkNhbiB5b3UgcGxlYXNlIGNoZWNrIEdpcmlzaCdzIGVtYWlsIGJlbG93IGFuZCBoZWxwIGhp bSB3aXRoIHRoaXM/DQoNClRoYW5rcyENCg0KLS0NCkx1Y2EuDQoNCk9uIFdlZCwgMjAxMi0xMi0x OSBhdCAxNDo0MSArMDAwMCwgR2lyaXNoIEJuIHdyb3RlOg0KPiBIaSwNCj4NCj4gV2UgYXJlIGNs aWVudCBpcyB1c2luZyB0aGUgSm9yamluIFdHNzMxMC0wMCBXTEFOL0JUL0ZNIE1vZHVsZSBmb3Ig b25lIG9mIHRoZSBXTEFOIHNlcnZlciBtb2R1bGUuDQo+IFdlIGFyZSBwb3J0aW5nIHRoZSBMaW51 eCBvcGVuIHNvdXJjZSBkcml2ZXJzIHRvIFdMMTI3MSBiYXNlZCBKb3JqaW4gbW9kdWxlLiBPdXIg a2VybmVsIHZlcnNpb24gaXMgMi42LjI4LjIgYW5kIHByb2Nlc3NvciBpcyBMUEMzMTMwLiBUaGUg UEcgdmVyIG9mIFdsMTI3MSBpcyAyLg0KPiBSZWNlbnRseSB3ZSBoYXZlIGJhY2sgcG9ydGVkIHRo ZSB3bDEyeHggZHJpdmVycyBmcm9tIHRoZSBUSS1PcGVuTGluayANCj4gc2l0ZSBXZSBoYXZlIHRh a2VuIHRoZSB3bDEyeHggZHJpdmVycyBmcm9tIA0KPiBodHRwczovL2dpdGh1Yi5jb20vVEktT3Bl bkxpbmsvd2wxMnh4IGFuZCBicmFuY2ggcjVfamIgYW5kIHRhZw0KPiBvbF9SNS5TUDMuMDUgQWxz byB3ZSBoYWQgdGFrZW4gdGhlIGZpcm13YXJlIGZyb20gDQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9U SS1PcGVuTGluay90aS11dGlscyBhbmQgYnJhbmNoIHI1X2piIGFuZCB0YWcNCj4gb2xfUjUuU1Az LjA1IFRoZSBzdXBwbGljYW50IGFsc28gd2FzIHRha2VuIGZyb20gDQo+IGh0dHBzOi8vZ2l0aHVi LmNvbS9USS1PcGVuTGluay9ob3N0YXAgYW5kIGJyYW5jaCByNV9qYiBhbmQgdGFnDQo+IG9sX1I1 LlNQMy4wNQ0KPg0KPiBXZSB1c2luZyB0aGUgbXVsdGktcm9sZSBmZWF0dXJlIG9mIHRoZSBkcml2 ZXIuDQo+IFdlIGhhZCBzcGVjaWZpY2FsbHkgdGFrZW4gYWJvdmUgcGFja2FnZSBhcyB3ZSB3YW50 ZWQgdGhlIEFQIGNoYW5uZWwgc3dpdGNoIGZ1bmN0aW9uYWxpdHkuIFRoaXMgZmVhdHVyZSBoYW5k bGVzIGEgcGFydGljdWxhciBjYXNlIGxpa2UgaWYgeW91IHN0YXJ0ZWQgdGhlIFNUQSBvbiBDaGFu bmVsIFggYW5kIGFsc28geW91IHdpbGwgc3RhcnQgQVAgKFAyUCBHcm91cCBPd25lcikgb24gdGhl IHNhbWUgY2hhbm5lbCAoQ2hhbm5lbCBYKS4gTm93IGlmIHlvdSBjaGFuZ2UgdGhlIGNoYW5uZWwg b2YgU3RhdGlvbiB0byBDaGFubmVsKFkpLCB0aGUgZHJpdmVyIGF1dG9tYXRpY2FsbHkgd2lsbCB0 YWtlIGNhcmUgb2YgcmVzdGFydGluZyB0aGUgQVAoUDJQIEdPKSBvbiB0aGUgc2FtZSBjaGFubmVs KENoYW5uZWwgWSkuDQo+DQo+IFdlIGFyZSBmYWNpbmcgaXNzdWUgd2l0aCB0aGlzIHBhY2thZ2Ug YW5kIHRoZSBkcml2ZXJzIHdvbid0IHdvcmsgcHJvcGVybHkgZm9yIHVzLg0KPiBUaGUgbWFqb3Ig aXNzdWVzIHNlZW4gd2l0aCB0aGlzIHBhY2thZ2UgYXJlIDEuIFdlIGFibGUgdG8gZG8gdGhlIHNj YW4gDQo+IGFuZCBjb25uZWN0IHRvIGFuIGVuY3J5cHRlZCBuZXR3b3JrLiAgQnV0IHdoZW4gd2Ug cnVuIERIQ1AgY2xpZW50IG9uIHdsYW4wIHRvIGdldCB0aGUgSVAgYWRkcmVzcyBmcm9tIHRoZSBB Y2Nlc3MgUG9pbnQsIHRoZSBkcml2ZXIgdGhyb3dzICJ3bDEyeHg6IEJlYWNvbiBsb3NzIGRldGVj dGVkIiBtZXNzYWdlIGFuZCB0aGUgY29ubmVjdGlvbiBicmVha3MgYW5kIHRoZSBkcml2ZXIgZ2V0 cyBpbnRvIFNDQU4gbW9kZSBhbmQgd2lsbCB0cnkgdG8gcmVjb25uZWN0IHRvIHRoZSBBY2Nlc3Mg UG9pbnQuIEV2ZW50dWFsbHkgd2UgZG9uJ3QgcmVjZWl2ZSB0aGUgSVAgYWRkcmVzcyBmcm9tIHRo ZSBBY2Nlc3MgUG9pbnQuDQo+IDIuIEkgd2FzIGFibGUgdG8gc3RhcnQgdGhlIFN0YXRpb24gYW5k IEFQIHJvbGUgb24gdGhlIHNhbWUgY2hhbm5lbC4gQnV0IHRoZSBhZnRlciBzdGF0aW5nIHRoZSBB UCByb2xlLCBzdGF0aW9uIHJvbGUgd2lsbCBiZSBkaXNjb25uZWN0ZWQgYXV0b21hdGljYWxseSBh bmQgSSB3b24ndCBiZSBhYmxlIHRvIGRvIHNjYW4gYW5kIGNvbm5lY3Rpb24gb24gU1RBLg0KPiAz LiBBbHNvIGNhbm5vdCBjb25uZWN0IHRvIG15IFN5c3RlbSB3aGljaCBpcyBhY3RpbmcgYXMgUDJQ IEdyb3VwIE93bmVyKEFQKSBmcm9tIGFueSBvdGhlciBXaS1GaSBkZXZpY2UgbGlrZSBpUGhvbmUv TGFwdG9wIG9yIGFueSBvdGhlci4gVGhlIGlzc3VlIGlzIHNlZW4gd2hlbiBTeXN0ZW0gaXMgc2V0 IHRvIFAyUCBHTyBlaXRoZXIgdXNpbmcgU2luZ2xlIFJvbGUgZmlybXdhcmUgb25seSBvciB1c2lu ZyBNdWx0aS1yb2xlIGZpcm13YXJlLg0KPg0KPiBXZSBzdXNwZWN0IHRoZSBpc3N1ZSB3aXRoIHRo ZSBhYm92ZSB2ZXJzaW9ucyBvZiAob2xfUjUuU1AzLjA1KSB3bDEyN3ggDQo+IGZpcm13YXJlIGFu ZCBzdXJwcmlzaW5nbHkgYWxsIHRoZSBhYm92ZSB0aHJlZSBpc3N1ZXMgYXJlIE5PVCBzZWVuIHdo ZW4gDQo+IEkgdXNlIHRoZSBiZWxvdyBmaXJtd2FyZSB2ZXJzaW9ucyAod2hpY2ggaXMgcXVpdGUg b2xkKSBTaW5nbGUgUm9sZQ0KPiAoU1IpOiAgUmV2IDYuMy43LjAuMTA1DQo+IE11bHRpLVJvbGUo TVIpOiBSZXYgNi41LjUuMC4yMQ0KPg0KPg0KPiBUaGUgZmlybXdhcmUgdmVyc2lvbnMgdGFrZW4g ZnJvbQ0KPiBodHRwczovL2dpdGh1Yi5jb20vVEktT3BlbkxpbmsvdGktdXRpbHMgYW5kIGJyYW5j aCByNV9qYiBhbmQgdGFnDQo+IG9sX1I1LlNQMy4wNSBhcmUgU2luZ2xlIFJvbGUgKFNSKTogIFJl diA2LjMuMTAuMC4xMzIgTXVsdGktUm9sZSAoTVIpOg0KPiBSZXYgNi41LjcuMC40Mg0KPg0KPiBD YW4geW91IGxldCB1cyBrbm93IHdoZXRoZXIgV2wxMjcxIGh3IFBHIFZlciAyLjAgY2FuIHJ1biB0 aGUgb2xfUjUuU1AzLjA1IGZpcm13YXJlIHN1Y2Nlc3NmdWxseSBvciBhbnkgaGFyZHdhcmUgbGlt aXRhdGlvbnMgd2l0aCBXbDEyNzE/DQo+IEFueSBzdWdnZXN0aW9ucyBvbiB0aGUgYWJvdmUgaXNz dWVzIHdpbGwgYmUgZ3JlYXRseSBoZWxwZnVsDQo+DQo+DQo+IFRoYW5rcyAmIFJlZ2FyZHMsDQo+ IEdpcmlzaA0KPiBMJlQgSUVTLA0KPiBLSUFEQiBJbmR1c3RyaWFsIEFyZWEsDQo+IEhlYmJhbC1I b290YWdhbGxpLCBNeXNvcmUgLSA1NzAgMDE4DQo+IFRlbGVwaG9uZSA6ICBESUQrOTEtODIxLTI0 MDU1NTINCj4gTW9iaWxlOiArOTEtOTc0MTIwNjQwMg0KPiBFLW1haWwgSUQgOkdpcmlzaC5CTkBs bnRpZXMuY29tDQo+IHd3dy5sbnRpZXMuY29tDQo+DQo+IFRoaXMgbWFpbCBpcyBjbGFzc2lmaWVk IGFzIDoNCj4gKCAgKSBMJlQgSUVTIFByb3ByaWV0YXJ5DQo+ICggICkgTCZUIElFUyBDb25maWRl bnRpYWwNCj4gKFgpIEwmVCBJRVMgSW50ZXJuYWwgVXNlDQo+ICggKSBMJlQgSUVTIEdlbmVyYWwg QnVzaW5lc3MNCj4NCj4gTGFyc2VuICYgVG91YnJvIExpbWl0ZWQNCj4NCj4gd3d3LmxhcnNlbnRv dWJyby5jb20NCj4NCj4gVGhpcyBFbWFpbCBtYXkgY29udGFpbiBjb25maWRlbnRpYWwgb3IgcHJp dmlsZWdlZCBpbmZvcm1hdGlvbiBmb3IgdGhlIGludGVuZGVkIHJlY2lwaWVudCAocykuIElmIHlv dSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBkbyBub3QgdXNlIG9yIGRp c3NlbWluYXRlIHRoZSBpbmZvcm1hdGlvbiwgbm90aWZ5IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSBp dCBmcm9tIHlvdXIgc3lzdGVtLg0KDQpMYXJzZW4gJiBUb3Vicm8gTGltaXRlZA0KDQp3d3cubGFy c2VudG91YnJvLmNvbQ0KDQpUaGlzIEVtYWlsIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBvciBw cml2aWxlZ2VkIGluZm9ybWF0aW9uIGZvciB0aGUgaW50ZW5kZWQgcmVjaXBpZW50IChzKS4gSWYg eW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIGRvIG5vdCB1c2Ugb3Ig ZGlzc2VtaW5hdGUgdGhlIGluZm9ybWF0aW9uLCBub3RpZnkgdGhlIHNlbmRlciBhbmQgZGVsZXRl IGl0IGZyb20geW91ciBzeXN0ZW0uDQo=