Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1232854 > unrolled thread

Re: [PATCH v3 1/5] Input: goodix - reset device at init

Started byBastien Nocera <hadess@hadess.net>
First post2015-09-25 16:50 +0200
Last post2015-10-01 16:50 +0200
Articles 6 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH v3 1/5] Input: goodix - reset device at init Bastien Nocera <hadess@hadess.net> - 2015-09-25 16:50 +0200
    RE: [PATCH v3 1/5] Input: goodix - reset device at init "Tirdea, Irina" <irina.tirdea@intel.com> - 2015-09-25 23:10 +0200
      Re: [PATCH v3 1/5] Input: goodix - reset device at init Bastien Nocera <hadess@hadess.net> - 2015-09-29 04:10 +0200
        RE: [PATCH v3 1/5] Input: goodix - reset device at init "Tirdea, Irina" <irina.tirdea@intel.com> - 2015-09-29 19:50 +0200
          Re: [PATCH v3 1/5] Input: goodix - reset device at init Bastien Nocera <hadess@hadess.net> - 2015-09-30 13:20 +0200
            RE: [PATCH v3 1/5] Input: goodix - reset device at init "Tirdea, Irina" <irina.tirdea@intel.com> - 2015-10-01 16:50 +0200

#1232854 — Re: [PATCH v3 1/5] Input: goodix - reset device at init

FromBastien Nocera <hadess@hadess.net>
Date2015-09-25 16:50 +0200
SubjectRe: [PATCH v3 1/5] Input: goodix - reset device at init
Message-ID<qcCtX-4lE-13@gated-at.bofh.it>
On Thu, 2015-09-10 at 14:04 +0000, Tirdea, Irina wrote:
> 
> > -----Original Message-----
> > From: Bastien Nocera [mailto:hadess@hadess.net]
> > Sent: 09 September, 2015 20:03
> > To: Tirdea, Irina; linux-input@vger.kernel.org
> > Cc: linux-kernel@vger.kernel.org; Rob Herring; Pawel Moll; Ian
> > Campbell; Kumar Gala; Purdila, Octavian; Dmitry Torokhov; Mark
> > Rutland; devicetree@vger.kernel.org
> > Subject: Re: [PATCH v3 1/5] Input: goodix - reset device at init
> > 
> > On Thu, 2015-07-30 at 11:27 +0000, Tirdea, Irina wrote:
> > > I can send some additional patches that will simplify testing the
> > > configuration update to the Goodix device. I think this feature
> > > is
> > > the easiest
> > > to test so we can determine if writing to the interrupt pin
> > > actually
> > > works.
> > > However, even if it is a BIOS problem and the code will work, the
> > > warning
> > > will still be printed in dmesg.
> > 
> > 
> > Somehow missed this mail before replying to the current patchset.
> > I'd
> > be fine with that, though it's still not clear to me whether the
> > BIOS/hardware is at fault, or the code that's being added to the
> > driver
> > ;)
> > 
> 
> The reset procedure is described in the Goodix GT911 datasheet [1]
> and is
> used for power-on reset and power management. The power-on sequence
> is described in chapter 6.1. I2C Timing, in the Power-on Timing
> diagram.
> The sequence for putting the device to sleep is described in chapter
> 7.1. Operating Modes, c) Sleep mode. These sequences use the
> interrupt
> pin as output.
> 
> The warning you mentioned comes from the following code in the goodix
> driver, which sets the interrupt to be used as output:
> 
> +       error = gpiod_direction_output(ts->gpiod_int, ts->client-
> >addr == 0x14);
> 
> The gpiod_direction_output() call ends up in
> drivers/pinctrl/intel/pinctrl-baytrail.c:
> /*
>  * Before making any direction modifications, do a check if gpio
>  * is set for direct IRQ.  On baytrail, setting GPIO to output does
>  * not make sense, so let's at least warn the caller before they
> shoot
>  * themselves in the foot.
>  */
> WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN,
> 	"Potential Error: Setting GPIO with direct_irq_en to output");
> 
> So the problem comes from using the gpio interrupt pin as output,
> which 
> should not work on Baytrail if BYT_DIRECT_IRQ_EN is set by BIOS.
> The above warning is introduced and discussed in [2] and [3]. As I
> mentioned,
> this could be a real HW issue or the BIOS sets BYT_DIRECT_IRQ_EN when
> it should not. I have also tested these patches on a Baytrail
> plarform
> (that uses the same pinctrl driver), but I did not see any issues
> since
> BYT_DIRECT_IRQ_EN is not set in my case for the interrupt gpio pin.

Do we have a way to work-around this in the GPIO driver?

> To determine if using the interrupt pin as output works, you can test
> updating
> the goodix configuration [4].

Right, the problem being that it's a later patch in the branch, and
that the driver will fail to probe if there's an error from the GPIO
call.

Would you have a patch for me to test that would bypass this error, or
at least fallback gracefully to not resetting, not probing GPIOs if
they're badly setup?

Cheers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1233068

From"Tirdea, Irina" <irina.tirdea@intel.com>
Date2015-09-25 23:10 +0200
Message-ID<qcIpH-4D0-1@gated-at.bofh.it>
In reply to#1232854
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQmFzdGllbiBOb2NlcmEg
W21haWx0bzpoYWRlc3NAaGFkZXNzLm5ldF0NCj4gU2VudDogMjUgU2VwdGVtYmVyLCAyMDE1IDE3
OjQ0DQo+IFRvOiBUaXJkZWEsIElyaW5hOyBsaW51eC1pbnB1dEB2Z2VyLmtlcm5lbC5vcmcNCj4g
Q2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IFJvYiBIZXJyaW5nOyBQYXdlbCBNb2xs
OyBJYW4gQ2FtcGJlbGw7IEt1bWFyIEdhbGE7IFB1cmRpbGEsIE9jdGF2aWFuOyBEbWl0cnkgVG9y
b2tob3Y7IE1hcmsNCj4gUnV0bGFuZDsgZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmcNCj4gU3Vi
amVjdDogUmU6IFtQQVRDSCB2MyAxLzVdIElucHV0OiBnb29kaXggLSByZXNldCBkZXZpY2UgYXQg
aW5pdA0KPiANCj4gT24gVGh1LCAyMDE1LTA5LTEwIGF0IDE0OjA0ICswMDAwLCBUaXJkZWEsIEly
aW5hIHdyb3RlOg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4g
RnJvbTogQmFzdGllbiBOb2NlcmEgW21haWx0bzpoYWRlc3NAaGFkZXNzLm5ldF0NCj4gPiA+IFNl
bnQ6IDA5IFNlcHRlbWJlciwgMjAxNSAyMDowMw0KPiA+ID4gVG86IFRpcmRlYSwgSXJpbmE7IGxp
bnV4LWlucHV0QHZnZXIua2VybmVsLm9yZw0KPiA+ID4gQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtl
cm5lbC5vcmc7IFJvYiBIZXJyaW5nOyBQYXdlbCBNb2xsOyBJYW4NCj4gPiA+IENhbXBiZWxsOyBL
dW1hciBHYWxhOyBQdXJkaWxhLCBPY3RhdmlhbjsgRG1pdHJ5IFRvcm9raG92OyBNYXJrDQo+ID4g
PiBSdXRsYW5kOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZw0KPiA+ID4gU3ViamVjdDogUmU6
IFtQQVRDSCB2MyAxLzVdIElucHV0OiBnb29kaXggLSByZXNldCBkZXZpY2UgYXQgaW5pdA0KPiA+
ID4NCj4gPiA+IE9uIFRodSwgMjAxNS0wNy0zMCBhdCAxMToyNyArMDAwMCwgVGlyZGVhLCBJcmlu
YSB3cm90ZToNCj4gPiA+ID4gSSBjYW4gc2VuZCBzb21lIGFkZGl0aW9uYWwgcGF0Y2hlcyB0aGF0
IHdpbGwgc2ltcGxpZnkgdGVzdGluZyB0aGUNCj4gPiA+ID4gY29uZmlndXJhdGlvbiB1cGRhdGUg
dG8gdGhlIEdvb2RpeCBkZXZpY2UuIEkgdGhpbmsgdGhpcyBmZWF0dXJlDQo+ID4gPiA+IGlzDQo+
ID4gPiA+IHRoZSBlYXNpZXN0DQo+ID4gPiA+IHRvIHRlc3Qgc28gd2UgY2FuIGRldGVybWluZSBp
ZiB3cml0aW5nIHRvIHRoZSBpbnRlcnJ1cHQgcGluDQo+ID4gPiA+IGFjdHVhbGx5DQo+ID4gPiA+
IHdvcmtzLg0KPiA+ID4gPiBIb3dldmVyLCBldmVuIGlmIGl0IGlzIGEgQklPUyBwcm9ibGVtIGFu
ZCB0aGUgY29kZSB3aWxsIHdvcmssIHRoZQ0KPiA+ID4gPiB3YXJuaW5nDQo+ID4gPiA+IHdpbGwg
c3RpbGwgYmUgcHJpbnRlZCBpbiBkbWVzZy4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gU29tZWhvdyBt
aXNzZWQgdGhpcyBtYWlsIGJlZm9yZSByZXBseWluZyB0byB0aGUgY3VycmVudCBwYXRjaHNldC4N
Cj4gPiA+IEknZA0KPiA+ID4gYmUgZmluZSB3aXRoIHRoYXQsIHRob3VnaCBpdCdzIHN0aWxsIG5v
dCBjbGVhciB0byBtZSB3aGV0aGVyIHRoZQ0KPiA+ID4gQklPUy9oYXJkd2FyZSBpcyBhdCBmYXVs
dCwgb3IgdGhlIGNvZGUgdGhhdCdzIGJlaW5nIGFkZGVkIHRvIHRoZQ0KPiA+ID4gZHJpdmVyDQo+
ID4gPiA7KQ0KPiA+ID4NCj4gPg0KPiA+IFRoZSByZXNldCBwcm9jZWR1cmUgaXMgZGVzY3JpYmVk
IGluIHRoZSBHb29kaXggR1Q5MTEgZGF0YXNoZWV0IFsxXQ0KPiA+IGFuZCBpcw0KPiA+IHVzZWQg
Zm9yIHBvd2VyLW9uIHJlc2V0IGFuZCBwb3dlciBtYW5hZ2VtZW50LiBUaGUgcG93ZXItb24gc2Vx
dWVuY2UNCj4gPiBpcyBkZXNjcmliZWQgaW4gY2hhcHRlciA2LjEuIEkyQyBUaW1pbmcsIGluIHRo
ZSBQb3dlci1vbiBUaW1pbmcNCj4gPiBkaWFncmFtLg0KPiA+IFRoZSBzZXF1ZW5jZSBmb3IgcHV0
dGluZyB0aGUgZGV2aWNlIHRvIHNsZWVwIGlzIGRlc2NyaWJlZCBpbiBjaGFwdGVyDQo+ID4gNy4x
LiBPcGVyYXRpbmcgTW9kZXMsIGMpIFNsZWVwIG1vZGUuIFRoZXNlIHNlcXVlbmNlcyB1c2UgdGhl
DQo+ID4gaW50ZXJydXB0DQo+ID4gcGluIGFzIG91dHB1dC4NCj4gPg0KPiA+IFRoZSB3YXJuaW5n
IHlvdSBtZW50aW9uZWQgY29tZXMgZnJvbSB0aGUgZm9sbG93aW5nIGNvZGUgaW4gdGhlIGdvb2Rp
eA0KPiA+IGRyaXZlciwgd2hpY2ggc2V0cyB0aGUgaW50ZXJydXB0IHRvIGJlIHVzZWQgYXMgb3V0
cHV0Og0KPiA+DQo+ID4gK8KgwqDCoMKgwqDCoMKgZXJyb3IgPSBncGlvZF9kaXJlY3Rpb25fb3V0
cHV0KHRzLT5ncGlvZF9pbnQsIHRzLT5jbGllbnQtDQo+ID4gPmFkZHIgPT0gMHgxNCk7DQo+ID4N
Cj4gPiBUaGUgZ3Bpb2RfZGlyZWN0aW9uX291dHB1dCgpIGNhbGwgZW5kcyB1cCBpbg0KPiA+IGRy
aXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWJheXRyYWlsLmM6DQo+ID4gLyoNCj4gPiDCoCog
QmVmb3JlIG1ha2luZyBhbnkgZGlyZWN0aW9uIG1vZGlmaWNhdGlvbnMsIGRvIGEgY2hlY2sgaWYg
Z3Bpbw0KPiA+IMKgKiBpcyBzZXQgZm9yIGRpcmVjdCBJUlEuwqDCoE9uIGJheXRyYWlsLCBzZXR0
aW5nIEdQSU8gdG8gb3V0cHV0IGRvZXMNCj4gPiDCoCogbm90IG1ha2Ugc2Vuc2UsIHNvIGxldCdz
IGF0IGxlYXN0IHdhcm4gdGhlIGNhbGxlciBiZWZvcmUgdGhleQ0KPiA+IHNob290DQo+ID4gwqAq
IHRoZW1zZWx2ZXMgaW4gdGhlIGZvb3QuDQo+ID4gwqAqLw0KPiA+IFdBUk4ocmVhZGwoY29uZl9y
ZWcpICYgQllUX0RJUkVDVF9JUlFfRU4sDQo+ID4gCSJQb3RlbnRpYWwgRXJyb3I6IFNldHRpbmcg
R1BJTyB3aXRoIGRpcmVjdF9pcnFfZW4gdG8gb3V0cHV0Iik7DQo+ID4NCj4gPiBTbyB0aGUgcHJv
YmxlbSBjb21lcyBmcm9tIHVzaW5nIHRoZSBncGlvIGludGVycnVwdCBwaW4gYXMgb3V0cHV0LA0K
PiA+IHdoaWNoDQo+ID4gc2hvdWxkIG5vdCB3b3JrIG9uIEJheXRyYWlsIGlmIEJZVF9ESVJFQ1Rf
SVJRX0VOIGlzIHNldCBieSBCSU9TLg0KPiA+IFRoZSBhYm92ZSB3YXJuaW5nIGlzIGludHJvZHVj
ZWQgYW5kIGRpc2N1c3NlZCBpbiBbMl0gYW5kIFszXS4gQXMgSQ0KPiA+IG1lbnRpb25lZCwNCj4g
PiB0aGlzIGNvdWxkIGJlIGEgcmVhbCBIVyBpc3N1ZSBvciB0aGUgQklPUyBzZXRzIEJZVF9ESVJF
Q1RfSVJRX0VOIHdoZW4NCj4gPiBpdCBzaG91bGQgbm90LiBJIGhhdmUgYWxzbyB0ZXN0ZWQgdGhl
c2UgcGF0Y2hlcyBvbiBhIEJheXRyYWlsDQo+ID4gcGxhcmZvcm0NCj4gPiAodGhhdCB1c2VzIHRo
ZSBzYW1lIHBpbmN0cmwgZHJpdmVyKSwgYnV0IEkgZGlkIG5vdCBzZWUgYW55IGlzc3Vlcw0KPiA+
IHNpbmNlDQo+ID4gQllUX0RJUkVDVF9JUlFfRU4gaXMgbm90IHNldCBpbiBteSBjYXNlIGZvciB0
aGUgaW50ZXJydXB0IGdwaW8gcGluLg0KPiANCj4gRG8gd2UgaGF2ZSBhIHdheSB0byB3b3JrLWFy
b3VuZCB0aGlzIGluIHRoZSBHUElPIGRyaXZlcj8NCj4gDQo+ID4gVG8gZGV0ZXJtaW5lIGlmIHVz
aW5nIHRoZSBpbnRlcnJ1cHQgcGluIGFzIG91dHB1dCB3b3JrcywgeW91IGNhbiB0ZXN0DQo+ID4g
dXBkYXRpbmcNCj4gPiB0aGUgZ29vZGl4IGNvbmZpZ3VyYXRpb24gWzRdLg0KPiANCj4gUmlnaHQs
IHRoZSBwcm9ibGVtIGJlaW5nIHRoYXQgaXQncyBhIGxhdGVyIHBhdGNoIGluIHRoZSBicmFuY2gs
IGFuZA0KPiB0aGF0IHRoZSBkcml2ZXIgd2lsbCBmYWlsIHRvIHByb2JlIGlmIHRoZXJlJ3MgYW4g
ZXJyb3IgZnJvbSB0aGUgR1BJTw0KPiBjYWxsLg0KPiANCg0KVGhlIHdhcm5pbmcgZnJvbSB5b3Vy
IGRtZXNnIG91dHB1dCB3aWxsIG5vdCBjYXVzZSBwcm9iZSB0byBmYWlsLg0KSWYgeW91IGxvb2sg
YXQgdGhlIGNvZGUgZm9yIGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQsIGl0IHdpbGwganVzdCBw
cmludA0KYSB3YXJuaW5nIGFuZCBjb250aW51ZSBbMV06DQoJV0FSTihyZWFkbChjb25mX3JlZykg
JiBCWVRfRElSRUNUX0lSUV9FTiwNCgkJIlBvdGVudGlhbCBFcnJvcjogU2V0dGluZyBHUElPIHdp
dGggZGlyZWN0X2lycV9lbiB0byBvdXRwdXQiKTsNCkkgdGhvdWdodCBwcm9iZSBmaW5pc2hlcyBz
dWNjZXNzZnVsbHksIGJ1dCBkdWUgdG8gdGhlIHdhcm5pbmcgaW4gZG1lc2cgeW91DQphcmUgbm90
IHN1cmUgd2hldGhlciB0aGUgSVJRIEdQSU8gcGluIGNhbiBiZSB1c2VkIGFzIG91dHB1dC4NCklm
IHByb2JlIGZhaWxzLCBpdCBtdXN0IGJlIGZvciBhbm90aGVyIHJlYXNvbiB0aGFuIHRoZSBkaXJl
Y3RfaXJxX2VuIHdhcm5pbmcuDQoNCj4gV291bGQgeW91IGhhdmUgYSBwYXRjaCBmb3IgbWUgdG8g
dGVzdCB0aGF0IHdvdWxkIGJ5cGFzcyB0aGlzIGVycm9yLCBvcg0KPiBhdCBsZWFzdCBmYWxsYmFj
ayBncmFjZWZ1bGx5IHRvIG5vdCByZXNldHRpbmcsIG5vdCBwcm9iaW5nIEdQSU9zIGlmDQo+IHRo
ZXkncmUgYmFkbHkgc2V0dXA/DQoNCklmIHRoZSBkcml2ZXIgZmFpbHMgdG8gaW5pdGlhbGl6ZSB0
aGUgR1BJT3MsIGl0IHdpbGwgYXQgbGVhc3QgcHJpbnQgc29tZQ0KIkZhaWxlZCB0byBnZXQgR1BJ
TyIgd2FybmluZ3MgaW4gZG1lc2cuIERvIHlvdSBoYXZlIHN1Y2ggbWVzc2FnZXMgaW4NCmRtZXNn
IG9yIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIHdoeSBwcm9iZSBmYWlscz8NCg0KVGhl
IGN1cnJlbnQgY29kZSB3aWxsIGlnbm9yZSBHUElPcyBpZiB0aGV5IGFyZSBub3QgZGVmaW5lZCBp
biBBQ1BJDQooc2VlIHRoZSBjaGVjayBmb3IgLUVOT0VOVCksIGJ1dCBkb2VzIG5vdCBpZ25vcmUg
b3RoZXIgZXJyb3IgY29kZXMuDQpJZiB5b3Ugd2FudCB0byBieXBhc3MgYWxsIEdQSU8gZXJyb3Jz
LCB5b3UgY2FuIHVzZSB0aGUgY29kZSBiZWxvdy4NCg0KVGhhbmtzLA0KSXJpbmENCg0KZGlmZiAt
LWdpdCBhL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vZ29vZGl4LmMgYi9kcml2ZXJzL2lucHV0
L3RvdWNoc2NyZWVuL2dvb2RpeC5jDQppbmRleCA5YzU4NTgzLi5mN2VjMGJhIDEwMDY0NA0KLS0t
IGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi9nb29kaXguYw0KKysrIGIvZHJpdmVycy9pbnB1
dC90b3VjaHNjcmVlbi9nb29kaXguYw0KQEAgLTUyOCw5ICs1MjgsNyBAQCBzdGF0aWMgaW50IGdv
b2RpeF90c19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LA0KICAgICAgICB0cy0+Y2xp
ZW50ID0gY2xpZW50Ow0KICAgICAgICBpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCB0cyk7DQog
DQotICAgICAgIGVycm9yID0gZ29vZGl4X2dldF9ncGlvX2NvbmZpZyh0cywgaWQpOw0KLSAgICAg
ICBpZiAoZXJyb3IpDQotICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yOw0KKyAgICAgICBnb29k
aXhfZ2V0X2dwaW9fY29uZmlnKHRzLCBpZCk7DQogDQogICAgICAgIGlmICh0cy0+Z3Bpb2RfaW50
ICYmIHRzLT5ncGlvZF9yc3QpIHsNCiAgICAgICAgICAgICAgICAvKiByZXNldCB0aGUgY29udHJv
bGxlciAqLw0KDQoNClsxXSBodHRwOi8vbHhyLmZyZWUtZWxlY3Ryb25zLmNvbS9zb3VyY2UvZHJp
dmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtYmF5dHJhaWwuYyNMMzM3DQoNCg==
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1234640

FromBastien Nocera <hadess@hadess.net>
Date2015-09-29 04:10 +0200
Message-ID<qdSwG-Wh-3@gated-at.bofh.it>
In reply to#1233068
On Fri, 2015-09-25 at 21:04 +0000, Tirdea, Irina wrote:
> 
> > -----Original Message-----
> > From: Bastien Nocera [mailto:hadess@hadess.net]
> > Sent: 25 September, 2015 17:44
> > To: Tirdea, Irina; linux-input@vger.kernel.org
> > Cc: linux-kernel@vger.kernel.org; Rob Herring; Pawel Moll; Ian
> > Campbell; Kumar Gala; Purdila, Octavian; Dmitry Torokhov; Mark
> > Rutland; devicetree@vger.kernel.org
> > Subject: Re: [PATCH v3 1/5] Input: goodix - reset device at init
> > 
> > On Thu, 2015-09-10 at 14:04 +0000, Tirdea, Irina wrote:
> > > 
> > > > -----Original Message-----
> > > > From: Bastien Nocera [mailto:hadess@hadess.net]
> > > > Sent: 09 September, 2015 20:03
> > > > To: Tirdea, Irina; linux-input@vger.kernel.org
> > > > Cc: linux-kernel@vger.kernel.org; Rob Herring; Pawel Moll; Ian
> > > > Campbell; Kumar Gala; Purdila, Octavian; Dmitry Torokhov; Mark
> > > > Rutland; devicetree@vger.kernel.org
> > > > Subject: Re: [PATCH v3 1/5] Input: goodix - reset device at
> > > > init
> > > > 
> > > > On Thu, 2015-07-30 at 11:27 +0000, Tirdea, Irina wrote:
> > > > > I can send some additional patches that will simplify testing
> > > > > the
> > > > > configuration update to the Goodix device. I think this
> > > > > feature
> > > > > is
> > > > > the easiest
> > > > > to test so we can determine if writing to the interrupt pin
> > > > > actually
> > > > > works.
> > > > > However, even if it is a BIOS problem and the code will work,
> > > > > the
> > > > > warning
> > > > > will still be printed in dmesg.
> > > > 
> > > > 
> > > > Somehow missed this mail before replying to the current
> > > > patchset.
> > > > I'd
> > > > be fine with that, though it's still not clear to me whether
> > > > the
> > > > BIOS/hardware is at fault, or the code that's being added to
> > > > the
> > > > driver
> > > > ;)
> > > > 
> > > 
> > > The reset procedure is described in the Goodix GT911 datasheet
> > > [1]
> > > and is
> > > used for power-on reset and power management. The power-on
> > > sequence
> > > is described in chapter 6.1. I2C Timing, in the Power-on Timing
> > > diagram.
> > > The sequence for putting the device to sleep is described in
> > > chapter
> > > 7.1. Operating Modes, c) Sleep mode. These sequences use the
> > > interrupt
> > > pin as output.
> > > 
> > > The warning you mentioned comes from the following code in the
> > > goodix
> > > driver, which sets the interrupt to be used as output:
> > > 
> > > +       error = gpiod_direction_output(ts->gpiod_int, ts->client-
> > > > addr == 0x14);
> > > 
> > > The gpiod_direction_output() call ends up in
> > > drivers/pinctrl/intel/pinctrl-baytrail.c:
> > > /*
> > >  * Before making any direction modifications, do a check if gpio
> > >  * is set for direct IRQ.  On baytrail, setting GPIO to output
> > > does
> > >  * not make sense, so let's at least warn the caller before they
> > > shoot
> > >  * themselves in the foot.
> > >  */
> > > WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN,
> > > 	"Potential Error: Setting GPIO with direct_irq_en to output");
> > > 
> > > So the problem comes from using the gpio interrupt pin as output,
> > > which
> > > should not work on Baytrail if BYT_DIRECT_IRQ_EN is set by BIOS.
> > > The above warning is introduced and discussed in [2] and [3]. As
> > > I
> > > mentioned,
> > > this could be a real HW issue or the BIOS sets BYT_DIRECT_IRQ_EN
> > > when
> > > it should not. I have also tested these patches on a Baytrail
> > > plarform
> > > (that uses the same pinctrl driver), but I did not see any issues
> > > since
> > > BYT_DIRECT_IRQ_EN is not set in my case for the interrupt gpio
> > > pin.
> > 
> > Do we have a way to work-around this in the GPIO driver?
> > 
> > > To determine if using the interrupt pin as output works, you can
> > > test
> > > updating
> > > the goodix configuration [4].
> > 
> > Right, the problem being that it's a later patch in the branch, and
> > that the driver will fail to probe if there's an error from the
> > GPIO
> > call.
> > 
> 
> The warning from your dmesg output will not cause probe to fail.
> If you look at the code for byt_gpio_direction_output, it will just
> print
> a warning and continue [1]:
> 	WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN,
> 		"Potential Error: Setting GPIO with direct_irq_en to
> output");
> I thought probe finishes successfully, but due to the warning in
> dmesg you
> are not sure whether the IRQ GPIO pin can be used as output.
> If probe fails, it must be for another reason than the direct_irq_en
> warning.
> 
> > Would you have a patch for me to test that would bypass this error,
> > or
> > at least fallback gracefully to not resetting, not probing GPIOs if
> > they're badly setup?
> 
> If the driver fails to initialize the GPIOs, it will at least print
> some
> "Failed to get GPIO" warnings in dmesg. Do you have such messages in
> dmesg or any additional information on why probe fails?
> 
> The current code will ignore GPIOs if they are not defined in ACPI
> (see the check for -ENOENT), but does not ignore other error codes.
> If you want to bypass all GPIO errors, you can use the code below.

The failure isn't there, it's when running goodix_i2c_test():
Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: i2c test failed attempt 1: -121
Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: i2c test failed attempt 2: -121
Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: I2C communication failure: -121
Sep 25 16:39:20 winbook kernel: Goodix-TS: probe of i2c-GDIX1001:00 failed with error -121

The GPIO setup seems to work (bar the warnings), and the reset as well,
but then the device fails to communicate. Likely a fallout from the
reset actually failing.

Swapping around the RST and INT pins leads to the same problem. Either
this device's GPIO PINs aren't actually functional, and the firmware
contains garbage, or something else is wrong.

I'm not sure how we can detect, and blacklist, those devices. At least
my original device, the Onda v975w, and the WinBook TW100 would have
those problems.

Cheers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1235436

From"Tirdea, Irina" <irina.tirdea@intel.com>
Date2015-09-29 19:50 +0200
Message-ID<qe7cm-50W-9@gated-at.bofh.it>
In reply to#1234640
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQmFzdGllbiBOb2NlcmEg
W21haWx0bzpoYWRlc3NAaGFkZXNzLm5ldF0NCj4gU2VudDogMjkgU2VwdGVtYmVyLCAyMDE1IDU6
MDQNCj4gVG86IFRpcmRlYSwgSXJpbmE7IGxpbnV4LWlucHV0QHZnZXIua2VybmVsLm9yZw0KPiBD
YzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgUm9iIEhlcnJpbmc7IFBhd2VsIE1vbGw7
IElhbiBDYW1wYmVsbDsgS3VtYXIgR2FsYTsgUHVyZGlsYSwgT2N0YXZpYW47IERtaXRyeSBUb3Jv
a2hvdjsgTWFyaw0KPiBSdXRsYW5kOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZw0KPiBTdWJq
ZWN0OiBSZTogW1BBVENIIHYzIDEvNV0gSW5wdXQ6IGdvb2RpeCAtIHJlc2V0IGRldmljZSBhdCBp
bml0DQo+IA0KPiBPbiBGcmksIDIwMTUtMDktMjUgYXQgMjE6MDQgKzAwMDAsIFRpcmRlYSwgSXJp
bmEgd3JvdGU6DQo+ID4NCjxzbmlwPg0KPiA+DQo+ID4gVGhlIHdhcm5pbmcgZnJvbSB5b3VyIGRt
ZXNnIG91dHB1dCB3aWxsIG5vdCBjYXVzZSBwcm9iZSB0byBmYWlsLg0KPiA+IElmIHlvdSBsb29r
IGF0IHRoZSBjb2RlIGZvciBieXRfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0LCBpdCB3aWxsIGp1c3QN
Cj4gPiBwcmludA0KPiA+IGEgd2FybmluZyBhbmQgY29udGludWUgWzFdOg0KPiA+IAlXQVJOKHJl
YWRsKGNvbmZfcmVnKSAmIEJZVF9ESVJFQ1RfSVJRX0VOLA0KPiA+IAkJIlBvdGVudGlhbCBFcnJv
cjogU2V0dGluZyBHUElPIHdpdGggZGlyZWN0X2lycV9lbiB0bw0KPiA+IG91dHB1dCIpOw0KPiA+
IEkgdGhvdWdodCBwcm9iZSBmaW5pc2hlcyBzdWNjZXNzZnVsbHksIGJ1dCBkdWUgdG8gdGhlIHdh
cm5pbmcgaW4NCj4gPiBkbWVzZyB5b3UNCj4gPiBhcmUgbm90IHN1cmUgd2hldGhlciB0aGUgSVJR
IEdQSU8gcGluIGNhbiBiZSB1c2VkIGFzIG91dHB1dC4NCj4gPiBJZiBwcm9iZSBmYWlscywgaXQg
bXVzdCBiZSBmb3IgYW5vdGhlciByZWFzb24gdGhhbiB0aGUgZGlyZWN0X2lycV9lbg0KPiA+IHdh
cm5pbmcuDQo+ID4NCj4gPiA+IFdvdWxkIHlvdSBoYXZlIGEgcGF0Y2ggZm9yIG1lIHRvIHRlc3Qg
dGhhdCB3b3VsZCBieXBhc3MgdGhpcyBlcnJvciwNCj4gPiA+IG9yDQo+ID4gPiBhdCBsZWFzdCBm
YWxsYmFjayBncmFjZWZ1bGx5IHRvIG5vdCByZXNldHRpbmcsIG5vdCBwcm9iaW5nIEdQSU9zIGlm
DQo+ID4gPiB0aGV5J3JlIGJhZGx5IHNldHVwPw0KPiA+DQo+ID4gSWYgdGhlIGRyaXZlciBmYWls
cyB0byBpbml0aWFsaXplIHRoZSBHUElPcywgaXQgd2lsbCBhdCBsZWFzdCBwcmludA0KPiA+IHNv
bWUNCj4gPiAiRmFpbGVkIHRvIGdldCBHUElPIiB3YXJuaW5ncyBpbiBkbWVzZy4gRG8geW91IGhh
dmUgc3VjaCBtZXNzYWdlcyBpbg0KPiA+IGRtZXNnIG9yIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0
aW9uIG9uIHdoeSBwcm9iZSBmYWlscz8NCj4gPg0KPiA+IFRoZSBjdXJyZW50IGNvZGUgd2lsbCBp
Z25vcmUgR1BJT3MgaWYgdGhleSBhcmUgbm90IGRlZmluZWQgaW4gQUNQSQ0KPiA+IChzZWUgdGhl
IGNoZWNrIGZvciAtRU5PRU5UKSwgYnV0IGRvZXMgbm90IGlnbm9yZSBvdGhlciBlcnJvciBjb2Rl
cy4NCj4gPiBJZiB5b3Ugd2FudCB0byBieXBhc3MgYWxsIEdQSU8gZXJyb3JzLCB5b3UgY2FuIHVz
ZSB0aGUgY29kZSBiZWxvdy4NCj4gDQo+IFRoZSBmYWlsdXJlIGlzbid0IHRoZXJlLCBpdCdzIHdo
ZW4gcnVubmluZ8KgZ29vZGl4X2kyY190ZXN0KCk6DQo+IFNlcCAyNSAxNjozOToyMCB3aW5ib29r
IGtlcm5lbDogR29vZGl4LVRTIGkyYy1HRElYMTAwMTowMDogaTJjIHRlc3QgZmFpbGVkIGF0dGVt
cHQgMTogLTEyMQ0KPiBTZXAgMjUgMTY6Mzk6MjAgd2luYm9vayBrZXJuZWw6IEdvb2RpeC1UUyBp
MmMtR0RJWDEwMDE6MDA6IGkyYyB0ZXN0IGZhaWxlZCBhdHRlbXB0IDI6IC0xMjENCj4gU2VwIDI1
IDE2OjM5OjIwIHdpbmJvb2sga2VybmVsOiBHb29kaXgtVFMgaTJjLUdESVgxMDAxOjAwOiBJMkMg
Y29tbXVuaWNhdGlvbiBmYWlsdXJlOiAtMTIxDQo+IFNlcCAyNSAxNjozOToyMCB3aW5ib29rIGtl
cm5lbDogR29vZGl4LVRTOiBwcm9iZSBvZiBpMmMtR0RJWDEwMDE6MDAgZmFpbGVkIHdpdGggZXJy
b3IgLTEyMQ0KPiANCg0KQXJlIHlvdSB1c2luZyB2NiBvZiB0aGUgcGF0Y2hlcz8gVGhlcmUgd2Fz
IGFuIGlzc3VlIHdpdGggcmVzZXQgdGhhdCBBbGVrc2VpIHJlcG9ydGVkDQphbmQgd2FzIGZpeGVk
IGluIHY2IChhbHRob3VnaCBoZSBoYWQgYSBkaWZmZXJlbnQgaTJjIGVycm9yIGFuZCBhIGRpZmZl
cmVudCBzY2VuYXJpbykuDQoNCj4gVGhlIEdQSU8gc2V0dXAgc2VlbXMgdG8gd29yayAoYmFyIHRo
ZSB3YXJuaW5ncyksIGFuZCB0aGUgcmVzZXQgYXMgd2VsbCwNCj4gYnV0IHRoZW4gdGhlIGRldmlj
ZSBmYWlscyB0byBjb21tdW5pY2F0ZS4gTGlrZWx5IGEgZmFsbG91dCBmcm9tIHRoZQ0KPiByZXNl
dCBhY3R1YWxseSBmYWlsaW5nLg0KPiANCj4gU3dhcHBpbmcgYXJvdW5kIHRoZSBSU1QgYW5kIElO
VCBwaW5zIGxlYWRzIHRvIHRoZSBzYW1lIHByb2JsZW0uIEVpdGhlcg0KPiB0aGlzIGRldmljZSdz
IEdQSU8gUElOcyBhcmVuJ3QgYWN0dWFsbHkgZnVuY3Rpb25hbCwgYW5kIHRoZSBmaXJtd2FyZQ0K
PiBjb250YWlucyBnYXJiYWdlLCBvciBzb21ldGhpbmcgZWxzZSBpcyB3cm9uZy4NCj4gDQoNCkkg
YWdyZWUuIEVpdGhlciB0aGUgaW50ZXJydXB0IHBpbiBjYW5ub3QgYmUgdXNlZCBhcyBvdXRwdXQg
aW4geW91ciBjb25maWd1cmF0aW9uDQpvciB0aGVyZSBhcmUgc29tZSBzcGVjaWZpY3MgaW4gdGhl
IEFDUEkgdGFibGVzIHRoYXQgcHJldmVudCB1c2luZyB0aGVzZSBwaW5zLiANCg0KPiBJJ20gbm90
IHN1cmUgaG93IHdlIGNhbiBkZXRlY3QsIGFuZCBibGFja2xpc3QsIHRob3NlIGRldmljZXMuIEF0
IGxlYXN0DQo+IG15IG9yaWdpbmFsIGRldmljZSwgdGhlIE9uZGEgdjk3NXcsIGFuZCB0aGUgV2lu
Qm9vayBUVzEwMCB3b3VsZCBoYXZlDQo+IHRob3NlIHByb2JsZW1zLg0KPiANCg0KSSBjYW4gdXNl
IERNSSBxdWlya3MgdG8gZXhjbHVkZSB0aGVzZSBkZXZpY2VzIGZyb20gdXNpbmcgdGhlIGZlYXR1
cmVzIHRoYXQNCmRlcGVuZCBvbiB0aGUgZ3BpbyBwaW5zLiBJIGFscmVhZHkgaGF2ZSB0aGUgRE1J
IGluZm9ybWF0aW9uIGZvciBXaW5Cb29rIFRXMTAwDQphbmQgV2luQm9vayBUVzcwMC4gQ291bGQg
eW91IHRlbGwgbWUgdGhlIERNSV9TWVNfVkVORE9SIGFuZA0KRE1JX1BST0RVQ1RfTkFNRSBmb3Ig
T25kYSB2OTc1dyBzbyBJIGNhbiBhZGQgaXQgYXMgd2VsbD8NCg0KVGhhbmtzLA0KSXJpbmENCg0K
PiBDaGVlcnMNCg==
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1236173

FromBastien Nocera <hadess@hadess.net>
Date2015-09-30 13:20 +0200
Message-ID<qenAu-3ml-11@gated-at.bofh.it>
In reply to#1235436
On Tue, 2015-09-29 at 17:47 +0000, Tirdea, Irina wrote:
> 
> > -----Original Message-----
> > From: Bastien Nocera [mailto:hadess@hadess.net]
> > Sent: 29 September, 2015 5:04
> > To: Tirdea, Irina; linux-input@vger.kernel.org
> > Cc: linux-kernel@vger.kernel.org; Rob Herring; Pawel Moll; Ian
> > Campbell; Kumar Gala; Purdila, Octavian; Dmitry Torokhov; Mark
> > Rutland; devicetree@vger.kernel.org
> > Subject: Re: [PATCH v3 1/5] Input: goodix - reset device at init
> > 
> > On Fri, 2015-09-25 at 21:04 +0000, Tirdea, Irina wrote:
> > > 
> <snip>
> > > 
> > > The warning from your dmesg output will not cause probe to fail.
> > > If you look at the code for byt_gpio_direction_output, it will
> > > just
> > > print
> > > a warning and continue [1]:
> > > 	WARN(readl(conf_reg) & BYT_DIRECT_IRQ_EN,
> > > 		"Potential Error: Setting GPIO with direct_irq_en to
> > > output");
> > > I thought probe finishes successfully, but due to the warning in
> > > dmesg you
> > > are not sure whether the IRQ GPIO pin can be used as output.
> > > If probe fails, it must be for another reason than the
> > > direct_irq_en
> > > warning.
> > > 
> > > > Would you have a patch for me to test that would bypass this
> > > > error,
> > > > or
> > > > at least fallback gracefully to not resetting, not probing
> > > > GPIOs if
> > > > they're badly setup?
> > > 
> > > If the driver fails to initialize the GPIOs, it will at least
> > > print
> > > some
> > > "Failed to get GPIO" warnings in dmesg. Do you have such messages
> > > in
> > > dmesg or any additional information on why probe fails?
> > > 
> > > The current code will ignore GPIOs if they are not defined in
> > > ACPI
> > > (see the check for -ENOENT), but does not ignore other error
> > > codes.
> > > If you want to bypass all GPIO errors, you can use the code
> > > below.
> > 
> > The failure isn't there, it's when running goodix_i2c_test():
> > Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: i2c test
> > failed attempt 1: -121
> > Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: i2c test
> > failed attempt 2: -121
> > Sep 25 16:39:20 winbook kernel: Goodix-TS i2c-GDIX1001:00: I2C
> > communication failure: -121
> > Sep 25 16:39:20 winbook kernel: Goodix-TS: probe of i2c-GDIX1001:00 
> > failed with error -121
> > 
> 
> Are you using v6 of the patches? There was an issue with reset that
> Aleksei reported
> and was fixed in v6 (although he had a different i2c error and a
> different scenario).

Pretty certain. Your current patchset is at:
https://github.com/hadess/gt9xx/tree/irina-tirdea

And the patches are yours, with the prefix and Documentation removed.

> > The GPIO setup seems to work (bar the warnings), and the reset as
> > well,
> > but then the device fails to communicate. Likely a fallout from the
> > reset actually failing.
> > 
> > Swapping around the RST and INT pins leads to the same problem.
> > Either
> > this device's GPIO PINs aren't actually functional, and the
> > firmware
> > contains garbage, or something else is wrong.
> > 
> 
> I agree. Either the interrupt pin cannot be used as output in your
> configuration
> or there are some specifics in the ACPI tables that prevent using
> these pins. 
> 
> > I'm not sure how we can detect, and blacklist, those devices. At
> > least
> > my original device, the Onda v975w, and the WinBook TW100 would
> > have
> > those problems.
> > 
> 
> I can use DMI quirks to exclude these devices from using the features
> that
> depend on the gpio pins. I already have the DMI information for
> WinBook TW100
> and WinBook TW700. Could you tell me the DMI_SYS_VENDOR and
> DMI_PRODUCT_NAME for Onda v975w so I can add it as well?

I don't have access to the Onda v975w anymore, but let me CC: a few
people that could also help with testing.

Carlos, Cosimo, Christian, there's a patchset for you to test on the
Onda v975w at:
https://github.com/hadess/gt9xx/commits/irina-tirdea

Doing an "rmmod goodix ; insmod ./goodix_backport.ko" should be enough
to test whether the patch set works. If it doesn't work correctly,
you'll need to reboot the machine, swap the irq_idx and rst_idx values
at:
https://github.com/hadess/gt9xx/commit/c27de79f494c2b2e7a198ff4d27976ae93669dbd#diff-dddc2849e36327439530f3e2faacec4fR321

and try again.

If all that fails, could you please send the output of "dmidecode" to
Irina?

Cheers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1237473

From"Tirdea, Irina" <irina.tirdea@intel.com>
Date2015-10-01 16:50 +0200
Message-ID<qeNlh-7wZ-31@gated-at.bofh.it>
In reply to#1236173
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogbXJnYXJuYWNob0BnbWFp
bC5jb20gW21haWx0bzptcmdhcm5hY2hvQGdtYWlsLmNvbV0gT24gQmVoYWxmIE9mIENhcmxvcyBH
YXJuYWNobw0KPiBTZW50OiAzMCBTZXB0ZW1iZXIsIDIwMTUgMTc6MDINCj4gVG86IEJhc3RpZW4g
Tm9jZXJhDQo+IENjOiBUaXJkZWEsIElyaW5hOyBsaW51eC1pbnB1dEB2Z2VyLmtlcm5lbC5vcmc7
IENvc2ltbyBDZWNjaGk7IENocmlzdGlhbiBIZXJnZXJ0OyBsaW51eC1rZXJuZWxAdmdlci5rZXJu
ZWwub3JnOyBSb2IgSGVycmluZzsgUGF3ZWwNCj4gTW9sbDsgSWFuIENhbXBiZWxsOyBLdW1hciBH
YWxhOyBQdXJkaWxhLCBPY3RhdmlhbjsgRG1pdHJ5IFRvcm9raG92OyBNYXJrIFJ1dGxhbmQ7IGRl
dmljZXRyZWVAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMS81XSBJ
bnB1dDogZ29vZGl4IC0gcmVzZXQgZGV2aWNlIGF0IGluaXQNCj4gDQo+IEhleSwNCj4gDQoNCkhp
IENhcmxvcyBhbmQgQmFzdGllbiwNCg0KVGhhbmtzIGZvciB5b3VyIGhlbHAgYW5kIGZvciB0ZXN0
aW5nIHRoZXNlIHBhdGNoZXMhDQoNCjxzbmlwPg0KDQo+ID4+ID4gSSdtIG5vdCBzdXJlIGhvdyB3
ZSBjYW4gZGV0ZWN0LCBhbmQgYmxhY2tsaXN0LCB0aG9zZSBkZXZpY2VzLiBBdA0KPiA+PiA+IGxl
YXN0DQo+ID4+ID4gbXkgb3JpZ2luYWwgZGV2aWNlLCB0aGUgT25kYSB2OTc1dywgYW5kIHRoZSBX
aW5Cb29rIFRXMTAwIHdvdWxkDQo+ID4+ID4gaGF2ZQ0KPiA+PiA+IHRob3NlIHByb2JsZW1zLg0K
PiA+PiA+DQo+ID4+DQo+ID4+IEkgY2FuIHVzZSBETUkgcXVpcmtzIHRvIGV4Y2x1ZGUgdGhlc2Ug
ZGV2aWNlcyBmcm9tIHVzaW5nIHRoZSBmZWF0dXJlcw0KPiA+PiB0aGF0DQo+ID4+IGRlcGVuZCBv
biB0aGUgZ3BpbyBwaW5zLiBJIGFscmVhZHkgaGF2ZSB0aGUgRE1JIGluZm9ybWF0aW9uIGZvcg0K
PiA+PiBXaW5Cb29rIFRXMTAwDQo+ID4+IGFuZCBXaW5Cb29rIFRXNzAwLiBDb3VsZCB5b3UgdGVs
bCBtZSB0aGUgRE1JX1NZU19WRU5ET1IgYW5kDQo+ID4+IERNSV9QUk9EVUNUX05BTUUgZm9yIE9u
ZGEgdjk3NXcgc28gSSBjYW4gYWRkIGl0IGFzIHdlbGw/DQo+ID4NCj4gPiBJIGRvbid0IGhhdmUg
YWNjZXNzIHRvIHRoZSBPbmRhIHY5NzV3IGFueW1vcmUsIGJ1dCBsZXQgbWUgQ0M6IGEgZmV3DQo+
ID4gcGVvcGxlIHRoYXQgY291bGQgYWxzbyBoZWxwIHdpdGggdGVzdGluZy4NCj4gPg0KPiA+IENh
cmxvcywgQ29zaW1vLCBDaHJpc3RpYW4sIHRoZXJlJ3MgYSBwYXRjaHNldCBmb3IgeW91IHRvIHRl
c3Qgb24gdGhlDQo+ID4gT25kYSB2OTc1dyBhdDoNCj4gPiBodHRwczovL2dpdGh1Yi5jb20vaGFk
ZXNzL2d0OXh4L2NvbW1pdHMvaXJpbmEtdGlyZGVhDQo+ID4NCj4gPiBEb2luZyBhbiAicm1tb2Qg
Z29vZGl4IDsgaW5zbW9kIC4vZ29vZGl4X2JhY2twb3J0LmtvIiBzaG91bGQgYmUgZW5vdWdoDQo+
ID4gdG8gdGVzdCB3aGV0aGVyIHRoZSBwYXRjaCBzZXQgd29ya3MuIElmIGl0IGRvZXNuJ3Qgd29y
ayBjb3JyZWN0bHksDQo+ID4geW91J2xsIG5lZWQgdG8gcmVib290IHRoZSBtYWNoaW5lLCBzd2Fw
IHRoZSBpcnFfaWR4IGFuZCByc3RfaWR4IHZhbHVlcw0KPiA+IGF0Og0KPiA+IGh0dHBzOi8vZ2l0
aHViLmNvbS9oYWRlc3MvZ3Q5eHgvY29tbWl0L2MyN2RlNzlmNDk0YzJiMmU3YTE5OGZmNGQyNzk3
NmFlOTM2NjlkYmQjZGlmZi0NCj4gZGRkYzI4NDllMzYzMjc0Mzk1MzBmM2UyZmFhY2VjNGZSMzIx
DQo+ID4NCj4gPiBhbmQgdHJ5IGFnYWluLg0KPiANCj4gVW5zd2FwcGVkIGRvZXMgZmFpbCB3aXRo
Og0KPiANCj4gc2VwIDMwIDE1OjM3OjI5IHRhYmxldCBrZXJuZWw6IEdvb2RpeC1UUyBpMmMtR0RJ
WDEwMDE6MDA6IGkyYyB0ZXN0DQo+IGZhaWxlZCBhdHRlbXB0IDE6IC0xMjENCj4gc2VwIDMwIDE1
OjM3OjI5IHRhYmxldCBrZXJuZWw6IEdvb2RpeC1UUyBpMmMtR0RJWDEwMDE6MDA6IGkyYyB0ZXN0
DQo+IGZhaWxlZCBhdHRlbXB0IDI6IC0xMjENCj4gc2VwIDMwIDE1OjM3OjI5IHRhYmxldCBrZXJu
ZWw6IEdvb2RpeC1UUyBpMmMtR0RJWDEwMDE6MDA6IEkyQw0KPiBjb21tdW5pY2F0aW9uIGZhaWx1
cmU6IC0xMjENCj4gc2VwIDMwIDE1OjM3OjI5IHRhYmxldCBrZXJuZWw6IEdvb2RpeC1UUzogcHJv
YmUgb2YgaTJjLUdESVgxMDAxOjAwDQo+IGZhaWxlZCB3aXRoIGVycm9yIC0xMjENCj4gDQo+IFN3
YXBwaW5nIHRoZSB2YWx1ZXMgdHJpZ2dlcnMgc29tZSBlcnJvcnM6DQo+IA0KPiBzZXAgMzAgMTU6
NDg6MTcgdGFibGV0IGtlcm5lbDogLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0t
DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBXQVJOSU5HOiBDUFU6IDEgUElEOiAy
MzQxIGF0DQo+IGRyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWJheXRyYWlsLmM6MzQyDQo+
IGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwKCkNCj4gc2VwIDMwIDE1OjQ4OjE3
IHRhYmxldCBrZXJuZWw6IFBvdGVudGlhbCBFcnJvcjogU2V0dGluZyBHUElPIHdpdGgNCj4gZGly
ZWN0X2lycV9lbiB0byBvdXRwdXQNCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6IE1v
ZHVsZXMgbGlua2VkIGluOg0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIGdvb2Rp
eF9iYWNrcG9ydChPRSspIHI4NzIzYnMoT0UpIG5mc2QNCj4gbG9ja2QgZ3JhY2Ugc3VucnBjIFts
YXN0IHVubG9hZGVkOiBnb29kaXhdDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBD
UFU6IDEgUElEOiAyMzQxIENvbW06IGluc21vZCBUYWludGVkOg0KPiBHICAgICAgICAgICBPRSAg
IDQuMy4wLXJjMSsgIzM2DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBIYXJkd2Fy
ZSBuYW1lOiBUbyBiZSBmaWxsZWQgYnkgTy5FLk0uDQo+IFRvIGJlIGZpbGxlZCBieSBPLkUuTS4v
QXB0aW8gQ1JCLCBCSU9TIDUuNi41IDA3LzI1LzIwMTQNCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxl
dCBrZXJuZWw6ICAwMDAwMDAwMCAwMDAwMDAwMCBkM2Y2MWMwOCBjMTNiMzQ3Zg0KPiBkM2Y2MWM0
OCBkM2Y2MWMzOCBjMTBhOWUxZCBjMjBmMTBlMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtl
cm5lbDogIGQzZjYxYzY0IDAwMDAwOTI1IGMyMGYxMTFjIDAwMDAwMTU2DQo+IGMxM2U3Y2UxIGMx
M2U3Y2UxIGY4MDU4MGI4IGY1M2E0YjBjDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVs
OiAgMDAwMDAxNTYgZDNmNjFjNTAgYzEwYTllOTMgMDAwMDAwMDkNCj4gZDNmNjFjNDggYzIwZjEw
ZTAgZDNmNjFjNjQgZDNmNjFjNzgNCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6IENh
bGwgVHJhY2U6DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNiMzQ3Zj5d
IGR1bXBfc3RhY2srMHg0OC8weDY5DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAg
WzxjMTBhOWUxZD5dIHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4OGQvMHhkMA0KPiBzZXAgMzAgMTU6
NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjZTE+XSA/DQo+IGJ5dF9ncGlvX2RpcmVjdGlv
bl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxj
MTNlN2NlMT5dID8NCj4gYnl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGExLzB4YjANCj4gc2Vw
IDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGE5ZTkzPl0gd2Fybl9zbG93cGF0aF9m
bXQrMHgzMy8weDQwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2Nl
MT5dIGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0ODox
NyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2M0MD5dID8gYnl0X2dwaW9faXJxX2hhbmRsZXIrMHhi
MC8weGIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWJjMz5dDQo+
IF9ncGlvZF9kaXJlY3Rpb25fb3V0cHV0X3JhdysweDYzLzB4MzUwDQo+IHNlcCAzMCAxNTo0ODox
NyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWYxYT5dIGdwaW9kX2RpcmVjdGlvbl9vdXRwdXQrMHgy
YS8weDUwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTEyYjg0Nj5dID8g
bXNsZWVwKzB4MzYvMHg0MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8Zjlm
ZjM4YWU+XSBnb29kaXhfcmVzZXQrMHgzZS8weDkwDQo+IFtnb29kaXhfYmFja3BvcnRdDQo+IHNl
cCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZmNDBmYT5dDQo+IGdvb2RpeF90c19w
cm9iZSsweDEyYS8weDVhYSBbZ29vZGl4X2JhY2twb3J0XQ0KPiBzZXAgMzAgMTU6NDg6MTcgdGFi
bGV0IGtlcm5lbDogIFs8YzE0MmE1YTQ+XSA/IGFjcGlfZGV2aWNlX3dha2V1cCsweDdhLzB4ODAN
Cj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNDJhZDg0Pl0gPyBhY3BpX2Rl
dl9wbV9hdHRhY2grMHg3MS8weDg3DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAg
WzxjMTkyNDI3MT5dIGkyY19kZXZpY2VfcHJvYmUrMHgxMjEvMHgxZDANCj4gc2VwIDMwIDE1OjQ4
OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxYzc3ZGEyPl0gPyBfcmF3X3NwaW5fdW5sb2NrKzB4MjIv
MHgzMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8ZjlmZjNmZDA+XSA/DQo+
IGdvb2RpeF9jb25maWdfY2IrMHhjMC8weGMwIFtnb29kaXhfYmFja3BvcnRdDQo+IHNlcCAzMCAx
NTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMjEyNT5dID8gZHJpdmVyX3N5c2ZzX2FkZCsw
eDc1LzB4YTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWIyYjI0Pl0g
ZHJpdmVyX3Byb2JlX2RldmljZSsweDIwNC8weDRjMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0
IGtlcm5lbDogIFs8YzE1YjJlM2M+XSA/IF9fZHJpdmVyX2F0dGFjaCsweDVjLzB4YTANCj4gc2Vw
IDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWIyZTNjPl0gPyBfX2RyaXZlcl9hdHRh
Y2grMHg1Yy8weGEwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMmU3
OT5dIF9fZHJpdmVyX2F0dGFjaCsweDk5LzB4YTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBr
ZXJuZWw6ICBbPGMxNWIyZGUwPl0gPyBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4NGMwLzB4NGMwDQo+
IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMDkyZj5dIGJ1c19mb3JfZWFj
aF9kZXYrMHg0Zi8weDgwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTVi
MjJkZT5dIGRyaXZlcl9hdHRhY2grMHgxZS8weDIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQg
a2VybmVsOiAgWzxjMTViMmRlMD5dID8gZHJpdmVyX3Byb2JlX2RldmljZSsweDRjMC8weDRjMA0K
PiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YjFlNzc+XSBidXNfYWRkX2Ry
aXZlcisweDFmNy8weDJhMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8Zjlm
ZjcwMDA+XSA/IDB4ZjlmZjcwMDANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBb
PGY5ZmY3MDAwPl0gPyAweGY5ZmY3MDAwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVs
OiAgWzxjMTViMzk4ZD5dIGRyaXZlcl9yZWdpc3RlcisweDVkLzB4ZjANCj4gc2VwIDMwIDE1OjQ4
OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxOTI0ZGFhPl0gaTJjX3JlZ2lzdGVyX2RyaXZlcisweDJh
LzB4YTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMDAwNDVmPl0gPyBk
b19vbmVfaW5pdGNhbGwrMHg5Zi8weDFmMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5l
bDogIFs8ZjlmZjcwMTI+XQ0KPiBnb29kaXhfdHNfZHJpdmVyX2luaXQrMHgxMi8weDE0IFtnb29k
aXhfYmFja3BvcnRdDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTAwMDQ2
YT5dIGRvX29uZV9pbml0Y2FsbCsweGFhLzB4MWYwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQg
a2VybmVsOiAgWzxmOWZmNzAwMD5dID8gMHhmOWZmNzAwMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFi
bGV0IGtlcm5lbDogIFs8YzEwZDI0ODY+XSA/IF9fbWlnaHRfc2xlZXArMHgzNi8weGEwDQo+IHNl
cCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTEwM2ZkND5dID8NCj4gdHJhY2VfaGFy
ZGlycXNfb25fY2FsbGVyKzB4MTQvMHgyMjANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu
ZWw6ICBbPGMxMWMxYzVjPl0gPyBmcmVlX3BhZ2VzX3ByZXBhcmUrMHgxOWMvMHgzODANCj4gc2Vw
IDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMjBiY2U4Pl0gPyBrbWVtX2NhY2hlX2Fs
bG9jX3RyYWNlKzB4YTgvMHgyYTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBb
PGMxMWJhYzNmPl0gPyBkb19pbml0X21vZHVsZSsweDIxLzB4MWIwDQo+IHNlcCAzMCAxNTo0ODox
NyB0YWJsZXQga2VybmVsOiAgWzxjMTFiYWM2ZT5dIGRvX2luaXRfbW9kdWxlKzB4NTAvMHgxYjAN
Cj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMTRiNjliPl0gbG9hZF9tb2R1
bGUrMHgxM2RiLzB4MTk4MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEx
NGJlMjk+XSBTeVNfZmluaXRfbW9kdWxlKzB4ODkvMHhkMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFi
bGV0IGtlcm5lbDogIFs8YzExZDk1MzI+XSA/IHZtX21tYXBfcGdvZmYrMHg2Mi8weDgwDQo+IHNl
cCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMWM3ODdmMD5dIHN5c2VudGVyX2RvX2Nh
bGwrMHgxMi8weDEyDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAtLS1bIGVuZCB0
cmFjZSBlMGY2NjMwNTY0OGIwNjM5IF0tLS0NCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu
ZWw6IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQ0KPiBzZXAgMzAgMTU6NDg6
MTcgdGFibGV0IGtlcm5lbDogV0FSTklORzogQ1BVOiAxIFBJRDogMjM0MSBhdA0KPiBkcml2ZXJz
L3BpbmN0cmwvaW50ZWwvcGluY3RybC1iYXl0cmFpbC5jOjM0Mg0KPiBieXRfZ3Bpb19kaXJlY3Rp
b25fb3V0cHV0KzB4YTEvMHhiMCgpDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBQ
b3RlbnRpYWwgRXJyb3I6IFNldHRpbmcgR1BJTyB3aXRoDQo+IGRpcmVjdF9pcnFfZW4gdG8gb3V0
cHV0DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBNb2R1bGVzIGxpbmtlZCBpbjoN
Cj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBnb29kaXhfYmFja3BvcnQoT0UrKSBy
ODcyM2JzKE9FKSBuZnNkDQo+IGxvY2tkIGdyYWNlIHN1bnJwYyBbbGFzdCB1bmxvYWRlZDogZ29v
ZGl4XQ0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogQ1BVOiAxIFBJRDogMjM0MSBD
b21tOiBpbnNtb2QgVGFpbnRlZDoNCj4gRyAgICAgICAgVyAgT0UgICA0LjMuMC1yYzErICMzNg0K
PiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogSGFyZHdhcmUgbmFtZTogVG8gYmUgZmls
bGVkIGJ5IE8uRS5NLg0KPiBUbyBiZSBmaWxsZWQgYnkgTy5FLk0uL0FwdGlvIENSQiwgQklPUyA1
LjYuNSAwNy8yNS8yMDE0DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgMDAwMDAw
MDAgMDAwMDAwMDAgZDNmNjFiZmMgYzEzYjM0N2YNCj4gZDNmNjFjM2MgZDNmNjFjMmMgYzEwYTll
MWQgYzIwZjEwZTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBkM2Y2MWM1OCAw
MDAwMDkyNSBjMjBmMTExYyAwMDAwMDE1Ng0KPiBjMTNlN2NlMSBjMTNlN2NlMSBmODA1ODBiOCBm
NTNhNGIwYw0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIDAwMDAwMTU2IGQzZjYx
YzQ0IGMxMGE5ZTkzIDAwMDAwMDA5DQo+IGQzZjYxYzNjIGMyMGYxMGUwIGQzZjYxYzU4IGQzZjYx
YzZjDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBDYWxsIFRyYWNlOg0KPiBzZXAg
MzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzYjM0N2Y+XSBkdW1wX3N0YWNrKzB4NDgv
MHg2OQ0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEwYTllMWQ+XSB3YXJu
X3Nsb3dwYXRoX2NvbW1vbisweDhkLzB4ZDANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu
ZWw6ICBbPGMxM2U3Y2UxPl0gPw0KPiBieXRfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KzB4YTEvMHhi
MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjZTE+XSA/DQo+IGJ5
dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJs
ZXQga2VybmVsOiAgWzxjMTBhOWU5Mz5dIHdhcm5fc2xvd3BhdGhfZm10KzB4MzMvMHg0MA0KPiBz
ZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjZTE+XSBieXRfZ3Bpb19kaXJl
Y3Rpb25fb3V0cHV0KzB4YTEvMHhiMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDog
IFs8YzEzZTdjNDA+XSA/IGJ5dF9ncGlvX2lycV9oYW5kbGVyKzB4YjAvMHhiMA0KPiBzZXAgMzAg
MTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZWFiYzM+XQ0KPiBfZ3Bpb2RfZGlyZWN0aW9u
X291dHB1dF9yYXcrMHg2My8weDM1MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDog
IFs8YzEzZTc4NTM+XSA/DQo+IGJ5dF9ncGlvX2RpcmVjdGlvbl9pbnB1dCsweDQzLzB4NTANCj4g
c2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxM2VhZjFhPl0gZ3Bpb2RfZGlyZWN0
aW9uX291dHB1dCsweDJhLzB4NTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBb
PGY5ZmYzN2U0Pl0NCj4gZ29vZGl4X2ludF9zeW5jLmlzcmEuNCsweDE0LzB4MzAgW2dvb2RpeF9i
YWNrcG9ydF0NCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmYzOGY1Pl0g
Z29vZGl4X3Jlc2V0KzB4ODUvMHg5MA0KPiBbZ29vZGl4X2JhY2twb3J0XQ0KPiBzZXAgMzAgMTU6
NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8ZjlmZjQwZmE+XQ0KPiBnb29kaXhfdHNfcHJvYmUrMHgx
MmEvMHg1YWEgW2dvb2RpeF9iYWNrcG9ydF0NCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu
ZWw6ICBbPGMxNDJhNWE0Pl0gPyBhY3BpX2RldmljZV93YWtldXArMHg3YS8weDgwDQo+IHNlcCAz
MCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTQyYWQ4ND5dID8gYWNwaV9kZXZfcG1fYXR0
YWNoKzB4NzEvMHg4Nw0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE5MjQy
NzE+XSBpMmNfZGV2aWNlX3Byb2JlKzB4MTIxLzB4MWQwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJs
ZXQga2VybmVsOiAgWzxjMWM3N2RhMj5dID8gX3Jhd19zcGluX3VubG9jaysweDIyLzB4MzANCj4g
c2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmYzZmQwPl0gPw0KPiBnb29kaXhf
Y29uZmlnX2NiKzB4YzAvMHhjMCBbZ29vZGl4X2JhY2twb3J0XQ0KPiBzZXAgMzAgMTU6NDg6MTcg
dGFibGV0IGtlcm5lbDogIFs8YzE1YjIxMjU+XSA/IGRyaXZlcl9zeXNmc19hZGQrMHg3NS8weGEw
DQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMmIyND5dIGRyaXZlcl9w
cm9iZV9kZXZpY2UrMHgyMDQvMHg0YzANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6
ICBbPGMxNWIyZTNjPl0gPyBfX2RyaXZlcl9hdHRhY2grMHg1Yy8weGEwDQo+IHNlcCAzMCAxNTo0
ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViMmUzYz5dID8gX19kcml2ZXJfYXR0YWNoKzB4NWMv
MHhhMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YjJlNzk+XSBfX2Ry
aXZlcl9hdHRhY2grMHg5OS8weGEwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAg
WzxjMTViMmRlMD5dID8gZHJpdmVyX3Byb2JlX2RldmljZSsweDRjMC8weDRjMA0KPiBzZXAgMzAg
MTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YjA5MmY+XSBidXNfZm9yX2VhY2hfZGV2KzB4
NGYvMHg4MA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YjIyZGU+XSBk
cml2ZXJfYXR0YWNoKzB4MWUvMHgyMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDog
IFs8YzE1YjJkZTA+XSA/IGRyaXZlcl9wcm9iZV9kZXZpY2UrMHg0YzAvMHg0YzANCj4gc2VwIDMw
IDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWIxZTc3Pl0gYnVzX2FkZF9kcml2ZXIrMHgx
ZjcvMHgyYTANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmY3MDAwPl0g
PyAweGY5ZmY3MDAwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZmNzAw
MD5dID8gMHhmOWZmNzAwMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1
YjM5OGQ+XSBkcml2ZXJfcmVnaXN0ZXIrMHg1ZC8weGYwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJs
ZXQga2VybmVsOiAgWzxjMTkyNGRhYT5dIGkyY19yZWdpc3Rlcl9kcml2ZXIrMHgyYS8weGEwDQo+
IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTAwMDQ1Zj5dID8gZG9fb25lX2lu
aXRjYWxsKzB4OWYvMHgxZjANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5
ZmY3MDEyPl0NCj4gZ29vZGl4X3RzX2RyaXZlcl9pbml0KzB4MTIvMHgxNCBbZ29vZGl4X2JhY2tw
b3J0XQ0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEwMDA0NmE+XSBkb19v
bmVfaW5pdGNhbGwrMHhhYS8weDFmMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDog
IFs8ZjlmZjcwMDA+XSA/IDB4ZjlmZjcwMDANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu
ZWw6ICBbPGMxMGQyNDg2Pl0gPyBfX21pZ2h0X3NsZWVwKzB4MzYvMHhhMA0KPiBzZXAgMzAgMTU6
NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzExMDNmZDQ+XSA/DQo+IHRyYWNlX2hhcmRpcnFzX29u
X2NhbGxlcisweDE0LzB4MjIwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxj
MTFjMWM1Yz5dID8gZnJlZV9wYWdlc19wcmVwYXJlKzB4MTljLzB4MzgwDQo+IHNlcCAzMCAxNTo0
ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTIwYmNlOD5dID8ga21lbV9jYWNoZV9hbGxvY190cmFj
ZSsweGE4LzB4MmEwDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTFiYWMz
Zj5dID8gZG9faW5pdF9tb2R1bGUrMHgyMS8weDFiMA0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0
IGtlcm5lbDogIFs8YzExYmFjNmU+XSBkb19pbml0X21vZHVsZSsweDUwLzB4MWIwDQo+IHNlcCAz
MCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiAgWzxjMTE0YjY5Yj5dIGxvYWRfbW9kdWxlKzB4MTNk
Yi8weDE5ODANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMTRiZTI5Pl0g
U3lTX2Zpbml0X21vZHVsZSsweDg5LzB4ZDANCj4gc2VwIDMwIDE1OjQ4OjE3IHRhYmxldCBrZXJu
ZWw6ICBbPGMxMWQ5NTMyPl0gPyB2bV9tbWFwX3Bnb2ZmKzB4NjIvMHg4MA0KPiBzZXAgMzAgMTU6
NDg6MTcgdGFibGV0IGtlcm5lbDogIFs8YzFjNzg3ZjA+XSBzeXNlbnRlcl9kb19jYWxsKzB4MTIv
MHgxMg0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogLS0tWyBlbmQgdHJhY2UgZTBm
NjYzMDU2NDhiMDYzYSBdLS0tDQo+IHNlcCAzMCAxNTo0ODoxNyB0YWJsZXQga2VybmVsOiBHb29k
aXgtVFMgaTJjLUdESVgxMDAxOjAwOiBJRCA5MjcxLCB2ZXJzaW9uOiAxMDIwDQo+IHNlcCAzMCAx
NTo0ODoxNyB0YWJsZXQga2VybmVsOiBHb29kaXgtVFMgaTJjLUdESVgxMDAxOjAwOiBEaXJlY3QN
Cj4gZmlybXdhcmUgbG9hZCBmb3IgZ29vZGl4XzkyNzFfY2ZnLmJpbiBmYWlsZWQgd2l0aCBlcnJv
ciAtMg0KPiBzZXAgMzAgMTU6NDg6MTcgdGFibGV0IGtlcm5lbDogR29vZGl4LVRTIGkyYy1HRElY
MTAwMTowMDogRmFsbGluZyBiYWNrDQo+IHRvIHVzZXIgaGVscGVyDQo+IA0KPiAuLi4gYW5kIGFm
dGVyIGEgd2hpbGU6DQo+IA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogaW5wdXQ6
IEdvb2RpeCBDYXBhY2l0aXZlIFRvdWNoU2NyZWVuIGFzDQo+IC9kZXZpY2VzL3BsYXRmb3JtLzgw
ODYwRjQxOjA1L2kyYy01L2kyYy1HRElYMTAwMTowMC9pbnB1dC9pbnB1dDYNCj4gc2VwIDMwIDE1
OjQ5OjE3IHRhYmxldCBrZXJuZWw6IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0t
LQ0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogV0FSTklORzogQ1BVOiAxIFBJRDog
NzUgYXQNCj4gZHJpdmVycy9waW5jdHJsL2ludGVsL3BpbmN0cmwtYmF5dHJhaWwuYzozNDINCj4g
Ynl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGExLzB4YjAoKQ0KPiBzZXAgMzAgMTU6NDk6MTcg
dGFibGV0IGtlcm5lbDogUG90ZW50aWFsIEVycm9yOiBTZXR0aW5nIEdQSU8gd2l0aA0KPiBkaXJl
Y3RfaXJxX2VuIHRvIG91dHB1dA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogTW9k
dWxlcyBsaW5rZWQgaW46DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgZ29vZGl4
X2JhY2twb3J0KE9FKSByODcyM2JzKE9FKSBuZnNkDQo+IGxvY2tkIGdyYWNlIHN1bnJwYyBbbGFz
dCB1bmxvYWRlZDogZ29vZGl4XQ0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogQ1BV
OiAxIFBJRDogNzUgQ29tbToga3dvcmtlci8xOjINCj4gVGFpbnRlZDogRyAgICAgICAgVyAgT0Ug
ICA0LjMuMC1yYzErICMzNg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogSGFyZHdh
cmUgbmFtZTogVG8gYmUgZmlsbGVkIGJ5IE8uRS5NLg0KPiBUbyBiZSBmaWxsZWQgYnkgTy5FLk0u
L0FwdGlvIENSQiwgQklPUyA1LjYuNSAwNy8yNS8yMDE0DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJs
ZXQga2VybmVsOiBXb3JrcXVldWU6IGV2ZW50cyByZXF1ZXN0X2Zpcm13YXJlX3dvcmtfZnVuYw0K
PiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIDAwMDAwMDAwIDAwMDAwMDAwIGY3MjE5
Y2U4IGMxM2IzNDdmDQo+IGY3MjE5ZDI4IGY3MjE5ZDE4IGMxMGE5ZTFkIGMyMGYxMGUwDQo+IHNl
cCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgZjcyMTlkNDQgMDAwMDAwNGIgYzIwZjExMWMg
MDAwMDAxNTYNCj4gYzEzZTdjZTEgYzEzZTdjZTEgZjgwNTgwYjggZjUzYTRiMGMNCj4gc2VwIDMw
IDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICAwMDAwMDE1NiBmNzIxOWQzMCBjMTBhOWU5MyAwMDAw
MDAwOQ0KPiBmNzIxOWQyOCBjMjBmMTBlMCBmNzIxOWQ0NCBmNzIxOWQ1OA0KPiBzZXAgMzAgMTU6
NDk6MTcgdGFibGV0IGtlcm5lbDogQ2FsbCBUcmFjZToNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxl
dCBrZXJuZWw6ICBbPGMxM2IzNDdmPl0gZHVtcF9zdGFjaysweDQ4LzB4NjkNCj4gc2VwIDMwIDE1
OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGE5ZTFkPl0gd2Fybl9zbG93cGF0aF9jb21tb24r
MHg4ZC8weGQwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2NlMT5d
ID8NCj4gYnl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGExLzB4YjANCj4gc2VwIDMwIDE1OjQ5
OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxM2U3Y2UxPl0gPw0KPiBieXRfZ3Bpb19kaXJlY3Rpb25f
b3V0cHV0KzB4YTEvMHhiMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEw
YTllOTM+XSB3YXJuX3Nsb3dwYXRoX2ZtdCsweDMzLzB4NDANCj4gc2VwIDMwIDE1OjQ5OjE3IHRh
YmxldCBrZXJuZWw6ICBbPGMxM2U3Y2UxPl0gYnl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGEx
LzB4YjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxM2U3YzQwPl0gPyBi
eXRfZ3Bpb19pcnFfaGFuZGxlcisweGIwLzB4YjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBr
ZXJuZWw6ICBbPGMxM2VhYmMzPl0NCj4gX2dwaW9kX2RpcmVjdGlvbl9vdXRwdXRfcmF3KzB4NjMv
MHgzNTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMTFkMzBiPl0gPyBm
cmVlX2lycSsweDRiLzB4YzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMx
NDJhODdkPl0gPw0KPiBhY3BpX2Rldl9ydW50aW1lX3N1c3BlbmQrMHg3Yi8weDdiDQo+IHNlcCAz
MCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWYxYT5dIGdwaW9kX2RpcmVjdGlvbl9v
dXRwdXQrMHgyYS8weDUwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZm
MzJkMD5dIGdvb2RpeF9zdXNwZW5kKzB4NTAvMHgxMDANCj4gW2dvb2RpeF9iYWNrcG9ydF0NCj4g
c2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJjMGZkPl0gPyBfX3JwbV9jYWxs
YmFjaysweDVkLzB4ODANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJh
M2EyPl0NCj4gcG1fZ2VuZXJpY19ydW50aW1lX3N1c3BlbmQrMHgyMi8weDQwDQo+IHNlcCAzMCAx
NTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTQyYTg4ZD5dDQo+IGFjcGlfc3Vic3lzX3J1bnRp
bWVfc3VzcGVuZCsweDEwLzB4MWUNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBb
PGMxNWJjMGQyPl0gX19ycG1fY2FsbGJhY2srMHgzMi8weDgwDQo+IHNlcCAzMCAxNTo0OToxNyB0
YWJsZXQga2VybmVsOiAgWzxjMTQyYTg3ZD5dID8NCj4gYWNwaV9kZXZfcnVudGltZV9zdXNwZW5k
KzB4N2IvMHg3Yg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmMxNDg+
XSBycG1fY2FsbGJhY2srMHgyOC8weDkwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs
OiAgWzxjMTQyYTg3ZD5dID8NCj4gYWNwaV9kZXZfcnVudGltZV9zdXNwZW5kKzB4N2IvMHg3Yg0K
PiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmNlM2E+XSBycG1fc3VzcGVu
ZCsweDEyYS8weDcyMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEwZmZm
YmI+XSA/IHRyYWNlX2hhcmRpcnFzX29mZisweGIvMHgxMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFi
bGV0IGtlcm5lbDogIFs8YzEwZjNmZDQ+XSA/IF9fd2FrZV91cCsweDQ0LzB4NTANCj4gc2VwIDMw
IDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJkNWE2Pl0gcnBtX2lkbGUrMHhhNi8weDQx
MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmUxYWI+XSB1cGRhdGVf
YXV0b3N1c3BlbmQrMHgzYi8weDYwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAg
WzxjMTViZTIxOD5dDQo+IHBtX3J1bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2RlbGF5KzB4NDgvMHg2
MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEwYzQ5NDI+XSA/IHByb2Nl
c3Nfb25lX3dvcmsrMHgxMzIvMHg1ZTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6
ICBbPGY5ZmYzZjgyPl0NCj4gZ29vZGl4X2NvbmZpZ19jYisweDcyLzB4YzAgW2dvb2RpeF9iYWNr
cG9ydF0NCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWM4MWFiPl0NCj4g
cmVxdWVzdF9maXJtd2FyZV93b3JrX2Z1bmMrMHgyYi8weDUwDQo+IHNlcCAzMCAxNTo0OToxNyB0
YWJsZXQga2VybmVsOiAgWzxjMTBjNDllMD5dIHByb2Nlc3Nfb25lX3dvcmsrMHgxZDAvMHg1ZTAN
Cj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGM0OTQyPl0gPyBwcm9jZXNz
X29uZV93b3JrKzB4MTMyLzB4NWUwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAg
WzxjMTBjNGUyOT5dIHdvcmtlcl90aHJlYWQrMHgzOS8weDQzMA0KPiBzZXAgMzAgMTU6NDk6MTcg
dGFibGV0IGtlcm5lbDogIFs8YzEwYzRkZjA+XSA/IHByb2Nlc3Nfb25lX3dvcmsrMHg1ZTAvMHg1
ZTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGNhZTE2Pl0ga3RocmVh
ZCsweGE2LzB4YzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxYzc3ZTE3
Pl0gPyBfcmF3X3NwaW5fdW5sb2NrX2lycSsweDI3LzB4NDANCj4gc2VwIDMwIDE1OjQ5OjE3IHRh
YmxldCBrZXJuZWw6ICBbPGMxYzc4NzIxPl0gcmV0X2Zyb21fa2VybmVsX3RocmVhZCsweDIxLzB4
MzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGNhZDcwPl0gPw0KPiBr
dGhyZWFkX2NyZWF0ZV9vbl9ub2RlKzB4MTMwLzB4MTMwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJs
ZXQga2VybmVsOiAtLS1bIGVuZCB0cmFjZSBlMGY2NjMwNTY0OGIwNjNiIF0tLS0NCj4gc2VwIDMw
IDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6IC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0t
LS0tLQ0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogV0FSTklORzogQ1BVOiAyIFBJ
RDogMjM1MyBhdA0KPiBkcml2ZXJzL3BpbmN0cmwvaW50ZWwvcGluY3RybC1iYXl0cmFpbC5jOjM0
Mg0KPiBieXRfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KzB4YTEvMHhiMCgpDQo+IHNlcCAzMCAxNTo0
OToxNyB0YWJsZXQga2VybmVsOiBQb3RlbnRpYWwgRXJyb3I6IFNldHRpbmcgR1BJTyB3aXRoDQo+
IGRpcmVjdF9pcnFfZW4gdG8gb3V0cHV0DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs
OiBNb2R1bGVzIGxpbmtlZCBpbjoNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBn
b29kaXhfYmFja3BvcnQoT0UpIHI4NzIzYnMoT0UpIG5mc2QNCj4gbG9ja2QgZ3JhY2Ugc3VucnBj
IFtsYXN0IHVubG9hZGVkOiBnb29kaXhdDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs
OiBDUFU6IDIgUElEOiAyMzUzIENvbW06IHN5c3RlbWQtdWRldmQNCj4gVGFpbnRlZDogRyAgICAg
ICAgVyAgT0UgICA0LjMuMC1yYzErICMzNg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5l
bDogSGFyZHdhcmUgbmFtZTogVG8gYmUgZmlsbGVkIGJ5IE8uRS5NLg0KPiBUbyBiZSBmaWxsZWQg
YnkgTy5FLk0uL0FwdGlvIENSQiwgQklPUyA1LjYuNSAwNy8yNS8yMDE0DQo+IHNlcCAzMCAxNTo0
OToxNyB0YWJsZXQga2VybmVsOiAgMDAwMDAwMDAgMDAwMDAwMDAgZDhiYmRjNzAgYzEzYjM0N2YN
Cj4gZDhiYmRjYjAgZDhiYmRjYTAgYzEwYTllMWQgYzIwZjEwZTANCj4gc2VwIDMwIDE1OjQ5OjE3
IHRhYmxldCBrZXJuZWw6ICBkOGJiZGNjYyAwMDAwMDkzMSBjMjBmMTExYyAwMDAwMDE1Ng0KPiBj
MTNlN2NlMSBjMTNlN2NlMSBmODA1ODBiOCBmNTNhNGIwYw0KPiBzZXAgMzAgMTU6NDk6MTcgdGFi
bGV0IGtlcm5lbDogIDAwMDAwMTU2IGQ4YmJkY2I4IGMxMGE5ZTkzIDAwMDAwMDA5DQo+IGQ4YmJk
Y2IwIGMyMGYxMGUwIGQ4YmJkY2NjIGQ4YmJkY2UwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQg
a2VybmVsOiBDYWxsIFRyYWNlOg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8
YzEzYjM0N2Y+XSBkdW1wX3N0YWNrKzB4NDgvMHg2OQ0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0
IGtlcm5lbDogIFs8YzEwYTllMWQ+XSB3YXJuX3Nsb3dwYXRoX2NvbW1vbisweDhkLzB4ZDANCj4g
c2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxM2U3Y2UxPl0gPw0KPiBieXRfZ3Bp
b19kaXJlY3Rpb25fb3V0cHV0KzB4YTEvMHhiMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtl
cm5lbDogIFs8YzEzZTdjZTE+XSA/DQo+IGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8w
eGIwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTBhOWU5Mz5dIHdhcm5f
c2xvd3BhdGhfZm10KzB4MzMvMHg0MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDog
IFs8YzEzZTdjZTE+XSBieXRfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KzB4YTEvMHhiMA0KPiBzZXAg
MzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjNDA+XSA/IGJ5dF9ncGlvX2lycV9o
YW5kbGVyKzB4YjAvMHhiMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEz
ZWFiYzM+XQ0KPiBfZ3Bpb2RfZGlyZWN0aW9uX291dHB1dF9yYXcrMHg2My8weDM1MA0KPiBzZXAg
MzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE0MmE2YWE+XSA/IGFjcGlfZGV2X3J1bnRp
bWVfcmVzdW1lKzB4MzcvMHgzNw0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8
YzEzZWFmMWE+XSBncGlvZF9kaXJlY3Rpb25fb3V0cHV0KzB4MmEvMHg1MA0KPiBzZXAgMzAgMTU6
NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE0MmE1YTQ+XSA/IGFjcGlfZGV2aWNlX3dha2V1cCsw
eDdhLzB4ODANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmYzODI3Pl0g
Z29vZGl4X3Jlc3VtZSsweDI3LzB4NzANCj4gW2dvb2RpeF9iYWNrcG9ydF0NCj4gc2VwIDMwIDE1
OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJhM2UyPl0gcG1fZ2VuZXJpY19ydW50aW1lX3Jl
c3VtZSsweDIyLzB4NDANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNDJh
NmM1Pl0NCj4gYWNwaV9zdWJzeXNfcnVudGltZV9yZXN1bWUrMHgxYi8weDFlDQo+IHNlcCAzMCAx
NTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTViYzBkMj5dIF9fcnBtX2NhbGxiYWNrKzB4MzIv
MHg4MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE0MmE2YWE+XSA/IGFj
cGlfZGV2X3J1bnRpbWVfcmVzdW1lKzB4MzcvMHgzNw0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0
IGtlcm5lbDogIFs8YzE1YmMxNDg+XSBycG1fY2FsbGJhY2srMHgyOC8weDkwDQo+IHNlcCAzMCAx
NTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTQyYTZhYT5dID8gYWNwaV9kZXZfcnVudGltZV9y
ZXN1bWUrMHgzNy8weDM3DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTVi
Y2FiMz5dIHJwbV9yZXN1bWUrMHg1MDMvMHg3NjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBr
ZXJuZWw6ICBbPGMxMGY0NzEwPl0gPyB3YWtlX2F0b21pY190X2Z1bmN0aW9uKzB4NzAvMHg3MA0K
PiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmRlMWU+XSBfX3BtX3J1bnRp
bWVfcmVzdW1lKzB4NGUvMHg5MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8
ZjlmZjM3Nzc+XSBnb29kaXhfb3BlbisweDM3LzB4OTANCj4gW2dvb2RpeF9iYWNrcG9ydF0NCj4g
c2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxOGY5ZTNmPl0gaW5wdXRfb3Blbl9k
ZXZpY2UrMHg3Zi8weGEwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTkw
MmM1Yj5dIGV2ZGV2X29wZW4rMHgxNmIvMHgxYTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBr
ZXJuZWw6ICBbPGMxMjFiOWZkPl0gY2hyZGV2X29wZW4rMHg4ZC8weDFhMA0KPiBzZXAgMzAgMTU6
NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMWI5NzA+XSA/IGNkZXZfcHV0KzB4MjAvMHgyMA0K
PiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMTUyMzA+XSBkb19kZW50cnlf
b3Blbi5pc3JhLjE2KzB4MTMwLzB4MmQwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs
OiAgWzxjMTIxYjk3MD5dID8gY2Rldl9wdXQrMHgyMC8weDIwDQo+IHNlcCAzMCAxNTo0OToxNyB0
YWJsZXQga2VybmVsOiAgWzxjMTIxNjcwZj5dIHZmc19vcGVuKzB4NGYvMHg2MA0KPiBzZXAgMzAg
MTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMjVlMjI+XSBwYXRoX29wZW5hdCsweDFhMi8w
eDEwYjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMWU5MjI0Pl0gPyB1
bm1hcF9zaW5nbGVfdm1hKzB4M2Q0LzB4NTYwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2Vy
bmVsOiAgWzxjMTFjYjE4Mj5dID8gcmVsZWFzZV9wYWdlcysweGIyLzB4MWMwDQo+IHNlcCAzMCAx
NTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTIyN2Q0Mj5dIGRvX2ZpbHBfb3BlbisweDYyLzB4
YzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxYzc3ZGEyPl0gPyBfcmF3
X3NwaW5fdW5sb2NrKzB4MjIvMHgzMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDog
IFs8YzEyMzgxYjc+XSA/IF9fYWxsb2NfZmQrMHg5Ny8weDE2MA0KPiBzZXAgMzAgMTU6NDk6MTcg
dGFibGV0IGtlcm5lbDogIFs8YzEyMTZhYzg+XSBkb19zeXNfb3BlbisweDExOC8weDIxMA0KPiBz
ZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMTZiZTI+XSBTeVNfb3BlbisweDIy
LzB4MzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxYzc4N2YwPl0gc3lz
ZW50ZXJfZG9fY2FsbCsweDEyLzB4MTINCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6
IC0tLVsgZW5kIHRyYWNlIGUwZjY2MzA1NjQ4YjA2M2MgXS0tLQ0KPiBzZXAgMzAgMTU6NDk6MTcg
dGFibGV0IGtlcm5lbDogLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tDQo+IHNl
cCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiBXQVJOSU5HOiBDUFU6IDIgUElEOiAyMzUzIGF0
DQo+IGRyaXZlcnMvcGluY3RybC9pbnRlbC9waW5jdHJsLWJheXRyYWlsLmM6MzQyDQo+IGJ5dF9n
cGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwKCkNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxl
dCBrZXJuZWw6IFBvdGVudGlhbCBFcnJvcjogU2V0dGluZyBHUElPIHdpdGgNCj4gZGlyZWN0X2ly
cV9lbiB0byBvdXRwdXQNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6IE1vZHVsZXMg
bGlua2VkIGluOg0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIGdvb2RpeF9iYWNr
cG9ydChPRSkgcjg3MjNicyhPRSkgbmZzZA0KPiBsb2NrZCBncmFjZSBzdW5ycGMgW2xhc3QgdW5s
b2FkZWQ6IGdvb2RpeF0NCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6IENQVTogMiBQ
SUQ6IDIzNTMgQ29tbTogc3lzdGVtZC11ZGV2ZA0KPiBUYWludGVkOiBHICAgICAgICBXICBPRSAg
IDQuMy4wLXJjMSsgIzM2DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiBIYXJkd2Fy
ZSBuYW1lOiBUbyBiZSBmaWxsZWQgYnkgTy5FLk0uDQo+IFRvIGJlIGZpbGxlZCBieSBPLkUuTS4v
QXB0aW8gQ1JCLCBCSU9TIDUuNi41IDA3LzI1LzIwMTQNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxl
dCBrZXJuZWw6ICAwMDAwMDAwMCAwMDAwMDAwMCBkOGJiZGM2NCBjMTNiMzQ3Zg0KPiBkOGJiZGNh
NCBkOGJiZGM5NCBjMTBhOWUxZCBjMjBmMTBlMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtl
cm5lbDogIGQ4YmJkY2MwIDAwMDAwOTMxIGMyMGYxMTFjIDAwMDAwMTU2DQo+IGMxM2U3Y2UxIGMx
M2U3Y2UxIGY4MDU4MGI4IGY1M2E0YjBjDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs
OiAgMDAwMDAxNTYgZDhiYmRjYWMgYzEwYTllOTMgMDAwMDAwMDkNCj4gZDhiYmRjYTQgYzIwZjEw
ZTAgZDhiYmRjYzAgZDhiYmRjZDQNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6IENh
bGwgVHJhY2U6DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNiMzQ3Zj5d
IGR1bXBfc3RhY2srMHg0OC8weDY5DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAg
WzxjMTBhOWUxZD5dIHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4OGQvMHhkMA0KPiBzZXAgMzAgMTU6
NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzEzZTdjZTE+XSA/DQo+IGJ5dF9ncGlvX2RpcmVjdGlv
bl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxj
MTNlN2NlMT5dID8NCj4gYnl0X2dwaW9fZGlyZWN0aW9uX291dHB1dCsweGExLzB4YjANCj4gc2Vw
IDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMGE5ZTkzPl0gd2Fybl9zbG93cGF0aF9m
bXQrMHgzMy8weDQwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2Nl
MT5dIGJ5dF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQrMHhhMS8weGIwDQo+IHNlcCAzMCAxNTo0OTox
NyB0YWJsZXQga2VybmVsOiAgWzxjMTNlN2M0MD5dID8gYnl0X2dwaW9faXJxX2hhbmRsZXIrMHhi
MC8weGIwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWJjMz5dDQo+
IF9ncGlvZF9kaXJlY3Rpb25fb3V0cHV0X3JhdysweDYzLzB4MzUwDQo+IHNlcCAzMCAxNTo0OTox
NyB0YWJsZXQga2VybmVsOiAgWzxjMWM3NmVmND5dID8NCj4gc2NoZWR1bGVfaHJ0aW1lb3V0X3Jh
bmdlX2Nsb2NrKzB4MTA0LzB4MjgwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAg
WzxjMTQyYTZhYT5dID8gYWNwaV9kZXZfcnVudGltZV9yZXN1bWUrMHgzNy8weDM3DQo+IHNlcCAz
MCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTNlYWYxYT5dIGdwaW9kX2RpcmVjdGlvbl9v
dXRwdXQrMHgyYS8weDUwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZm
MzdlND5dDQo+IGdvb2RpeF9pbnRfc3luYy5pc3JhLjQrMHgxNC8weDMwIFtnb29kaXhfYmFja3Bv
cnRdDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxmOWZmMzg0Nz5dIGdvb2Rp
eF9yZXN1bWUrMHg0Ny8weDcwDQo+IFtnb29kaXhfYmFja3BvcnRdDQo+IHNlcCAzMCAxNTo0OTox
NyB0YWJsZXQga2VybmVsOiAgWzxjMTViYTNlMj5dIHBtX2dlbmVyaWNfcnVudGltZV9yZXN1bWUr
MHgyMi8weDQwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTQyYTZjNT5d
DQo+IGFjcGlfc3Vic3lzX3J1bnRpbWVfcmVzdW1lKzB4MWIvMHgxZQ0KPiBzZXAgMzAgMTU6NDk6
MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmMwZDI+XSBfX3JwbV9jYWxsYmFjaysweDMyLzB4ODAN
Cj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNDJhNmFhPl0gPyBhY3BpX2Rl
dl9ydW50aW1lX3Jlc3VtZSsweDM3LzB4MzcNCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJu
ZWw6ICBbPGMxNWJjMTQ4Pl0gcnBtX2NhbGxiYWNrKzB4MjgvMHg5MA0KPiBzZXAgMzAgMTU6NDk6
MTcgdGFibGV0IGtlcm5lbDogIFs8YzE0MmE2YWE+XSA/IGFjcGlfZGV2X3J1bnRpbWVfcmVzdW1l
KzB4MzcvMHgzNw0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE1YmNhYjM+
XSBycG1fcmVzdW1lKzB4NTAzLzB4NzYwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs
OiAgWzxjMTBmNDcxMD5dID8gd2FrZV9hdG9taWNfdF9mdW5jdGlvbisweDcwLzB4NzANCj4gc2Vw
IDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxNWJkZTFlPl0gX19wbV9ydW50aW1lX3Jl
c3VtZSsweDRlLzB4OTANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGY5ZmYz
Nzc3Pl0gZ29vZGl4X29wZW4rMHgzNy8weDkwDQo+IFtnb29kaXhfYmFja3BvcnRdDQo+IHNlcCAz
MCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMThmOWUzZj5dIGlucHV0X29wZW5fZGV2aWNl
KzB4N2YvMHhhMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8YzE5MDJjNWI+
XSBldmRldl9vcGVuKzB4MTZiLzB4MWEwDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVs
OiAgWzxjMTIxYjlmZD5dIGNocmRldl9vcGVuKzB4OGQvMHgxYTANCj4gc2VwIDMwIDE1OjQ5OjE3
IHRhYmxldCBrZXJuZWw6ICBbPGMxMjFiOTcwPl0gPyBjZGV2X3B1dCsweDIwLzB4MjANCj4gc2Vw
IDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMjE1MjMwPl0gZG9fZGVudHJ5X29wZW4u
aXNyYS4xNisweDEzMC8weDJkMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDogIFs8
YzEyMWI5NzA+XSA/IGNkZXZfcHV0KzB4MjAvMHgyMA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0
IGtlcm5lbDogIFs8YzEyMTY3MGY+XSB2ZnNfb3BlbisweDRmLzB4NjANCj4gc2VwIDMwIDE1OjQ5
OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMjI1ZTIyPl0gcGF0aF9vcGVuYXQrMHgxYTIvMHgxMGIw
DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMTFlOTIyND5dID8gdW5tYXBf
c2luZ2xlX3ZtYSsweDNkNC8weDU2MA0KPiBzZXAgMzAgMTU6NDk6MTcgdGFibGV0IGtlcm5lbDog
IFs8YzExY2IxODI+XSA/IHJlbGVhc2VfcGFnZXMrMHhiMi8weDFjMA0KPiBzZXAgMzAgMTU6NDk6
MTcgdGFibGV0IGtlcm5lbDogIFs8YzEyMjdkNDI+XSBkb19maWxwX29wZW4rMHg2Mi8weGMwDQo+
IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMWM3N2RhMj5dID8gX3Jhd19zcGlu
X3VubG9jaysweDIyLzB4MzANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMx
MjM4MWI3Pl0gPyBfX2FsbG9jX2ZkKzB4OTcvMHgxNjANCj4gc2VwIDMwIDE1OjQ5OjE3IHRhYmxl
dCBrZXJuZWw6ICBbPGMxMjE2YWM4Pl0gZG9fc3lzX29wZW4rMHgxMTgvMHgyMTANCj4gc2VwIDMw
IDE1OjQ5OjE3IHRhYmxldCBrZXJuZWw6ICBbPGMxMjE2YmUyPl0gU3lTX29wZW4rMHgyMi8weDMw
DQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAgWzxjMWM3ODdmMD5dIHN5c2VudGVy
X2RvX2NhbGwrMHgxMi8weDEyDQo+IHNlcCAzMCAxNTo0OToxNyB0YWJsZXQga2VybmVsOiAtLS1b
IGVuZCB0cmFjZSBlMGY2NjMwNTY0OGIwNjNkIF0tLS0NCj4gDQo+IFRoZSB0b3VjaHNjcmVlbiB3
b3JrcyB0aG91Z2ggYWZ0ZXIgdGhpcy4gVGhpcyBpcyBhbGwgb3ZlciB+NC4zLjAtcmMxDQo+IChh
N2Q1YzE4OTcxOTgsIGEgY291cGxlIG9mIHdlZWtzIG9sZCkNCj4gDQoNClRoaXMgaXMgd2hhdCBJ
IGV4cGVjdGVkIHRvIGhhcHBlbi4gSG93ZXZlciwgaXQgaXMgcmF0aGVyIGFubm95aW5nIHRvIHJl
Y2VpdmUNCnRoaXMgYmF5dHJhaWwgcGluY3RybCB3YXJuaW5nIGV2ZXJ5IHRpbWUgZ3Bpb2RfZGly
ZWN0aW9uX291dHB1dCBpcyBjYWxsZWQgZm9yDQp0aGUgaW50ZXJydXB0IGdwaW8gcGluIChub3Qg
dG8gbWVudGlvbiBkZWxheXMgaW4gaW5pdGlhbGl6YXRpb24pLiBJIHRoaW5rIHRoZSBzYWZlc3QN
CndheSBpcyB0byByZW1vdmUgdGhlIG5ld2x5IGFkZGVkIGZ1bmN0aW9uYWxpdHkgZm9yIHRoaXMg
ZGV2aWNlIGFzIHdlbGwuDQoNCj4gPg0KPiA+IElmIGFsbCB0aGF0IGZhaWxzLCBjb3VsZCB5b3Ug
cGxlYXNlIHNlbmQgdGhlIG91dHB1dCBvZiAiZG1pZGVjb2RlIiB0bw0KPiA+IElyaW5hPw0KPiAN
Cj4gQXR0YWNoZWQuDQo+IA0KDQpBcHBhcmVudGx5IHRoZSBzeXN0ZW0gdmVuZG9yIGFuZCBwcm9k
dWN0IG5hbWUgYXJlIG5vdCBzZXQgZm9yIHRoaXMgZGV2aWNlDQooIlRvIGJlIGZpbGxlZCBieSBP
LkUuTS4iKS4gQWx0aG91Z2ggaXQgaXMgbm90IGFzIHJlbGlhYmxlLCBJIHdpbGwgZG8gdGhlIGRt
aSBtYXRjaA0KdXNpbmcgQklPUyB2ZW5kb3IsIHByb2R1Y3QgVVVJRCwgYm9hcmQgdmVuZG9yIGFu
ZCBib2FyZCBuYW1lLiBQbGVhc2UgbGV0DQptZSBrbm93IGlmIHlvdSBzZWUgYW55IHByb2JsZW0g
d2l0aCB0aGlzIGFwcHJvYWNoLg0KDQpJIHdpbGwgc2VuZCBhIG5ldyB2ZXJzaW9uIG9mIHBhdGNo
ZXMgaW4gd2hpY2ggdGhlIGZ1bmN0aW9uYWxpdHkgdGhhdCBkZXBlbmRzDQpvbiB0aGUgZ3BpbyBw
aW5zIGlzIHNraXBwZWQgZm9yIE9uZGEgdjk3NXcsIFdpbkJvb2sgVFcxMDAgYW5kDQpXaW5Cb29r
IFRXNzAwLiANCg0KVGhhbmtzLA0KSXJpbmENCg0KPiBDaGVlcnMsDQo+ICAgQ2FybG9zDQo=
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web