RE: [PATCH v2] printk: fix zero-valued printk timestamps in early boot

"Bird, Tim" <[email protected]> Mon, 26 Jan 2026 17:11:40 +0000
Newsgroups org.kernel.vger.linux-embedded,org.kernel.vger.linux-kernel
Message-ID <MW5PR13MB5632CEFB9AB7AFDA7334307BFD93A@MW5PR13MB5632.namprd13.prod.outlook.com>
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2VlcnQgVXl0dGVyaG9l
dmVuIDxnZWVydEBsaW51eC1tNjhrLm9yZz4NCj4gSGkgVGltLA0KPiANCj4gT24gU2F0LCAyNCBK
YW4gMjAyNiBhdCAyMDo0MSwgVGltIEJpcmQgPHRpbS5iaXJkQHNvbnkuY29tPiB3cm90ZToNCj4g
PiBEdXJpbmcgZWFybHkgYm9vdCwgcHJpbnRrIHRpbWVzdGFtcHMgYXJlIHJlcG9ydGVkIGFzIHpl
cm8gYmVmb3JlDQo+ID4ga2VybmVsIHRpbWVrZWVwaW5nIHN0YXJ0cyAoZS5nLiBiZWZvcmUgdGlt
ZV9pbml0KCkpLiAgVGhpcw0KPiA+IGhpbmRlcnMgYm9vdC10aW1lIG9wdGltaXphdGlvbiBlZmZv
cnRzLiAgVGhpcyBwZXJpb2QgaXMgYWJvdXQgNDAwDQo+ID4gbWlsbGlzZWNvbmRzIGZvciBtYW55
IGN1cnJlbnQgZGVza3RvcCBhbmQgZW1iZWRkZWQgbWFjaGluZXMNCj4gPiBydW5uaW5nIExpbnV4
Lg0KPiA+DQo+ID4gQWRkIHN1cHBvcnQgdG8gc2F2ZSBjeWNsZXMgZHVyaW5nIGVhcmx5IGJvb3Qs
IGFuZCBvdXRwdXQgY29ycmVjdA0KPiA+IHRpbWVzdGFtcCB2YWx1ZXMgYWZ0ZXIgdGltZWtlZXBp
bmcgaXMgaW5pdGlhbGl6ZWQuICBnZXRfY3ljbGVzKCkNCj4gPiBpcyBvcGVyYXRpb25hbCBvbiBh
cm02NCBhbmQgeDg2XzY0IGZyb20ga2VybmVsIHN0YXJ0LiAgQWRkIGNvZGUNCj4gPiBhbmQgdmFy
aWFibGVzIHRvIHNhdmUgY2FsaWJyYXRpb24gdmFsdWVzIHVzZWQgdG8gbGF0ZXIgY29udmVydA0K
PiA+IGN5Y2xlIGNvdW50cyB0byB0aW1lIHZhbHVlcyBpbiB0aGUgZWFybHkgcHJpbnRrcy4gIEFk
ZCBhIGNvbmZpZw0KPiA+IHRvIGNvbnRyb2wgdGhlIGZlYXR1cmUuDQo+ID4NCj4gPiBUaGlzIHlp
ZWxkcyBub24temVybyB0aW1lc3RhbXBzIGZvciBwcmludGtzIGZyb20gdGhlIHZlcnkgc3RhcnQN
Cj4gPiBvZiBrZXJuZWwgZXhlY3V0aW9uLiAgVGhlIHRpbWVzdGFtcHMgYXJlIHJlbGF0aXZlIHRv
IHRoZSBzdGFydCBvZg0KPiA+IHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWVkIGNvdW50ZXIgdXNl
ZCBpbiBnZXRfY3ljbGVzDQo+ID4gKGUuZy4gdGhlIFRTQyBvbiB4ODZfNjQgYW5kIGNudHZjdF9l
bDAgb24gYXJtNjQpLg0KPiA+DQo+ID4gQWxsIHRpbWVzdGFtcHMgcmVmbGVjdCB0aW1lIGZyb20g
cG93ZXItb24gaW5zdGVhZCBvZiB0aW1lIGZyb20NCj4gPiB0aGUga2VybmVsJ3MgdGltZWtlZXBp
bmcgaW5pdGlhbGl6YXRpb24uDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBUaW0gQmlyZCA8dGlt
LmJpcmRAc29ueS5jb20+DQo+ID4gLS0tDQo+ID4gVjEgLT4gVjINCj4gPiAgIFJlbW92ZSBjYWxp
YnJhdGlvbiBDT05GSUcgdmFycw0KPiA+ICAgQWRkICdkZXBlbmRzIG9uJyB0byByZXN0cmljdCBh
cmNoZXMgKHRvIGhhbmRsZSBwcGMgYnVnKQ0KPiA+ICAgQWRkIGVhcmx5X3RzX29mZnNldCB0byBh
dm9pZCBkaXNjb250aW51aXR5DQo+ID4gICBTYXZlIGN5Y2xlcyBpbiB0c19uc2VjLCBhbmQgY29u
dmVydCBvbiBvdXRwdXQNCj4gPiAgIE1vdmUgY29uZGl0aW9uYWwgY29kZSB0byBpbmNsdWRlIGZp
bGUgKGVhcmx5X3RpbWVzLmgpDQo+IA0KPiBUaGFua3MgZm9yIHRoZSB1cGRhdGUhDQo+IA0KPiA+
IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2Vhcmx5X3RpbWVzLmgNCj4g
PiBAQCAtMCwwICsxLDQ4IEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt
Mi4wICovDQo+ID4gKw0KPiA+ICsjaWZuZGVmIF9LRVJORUxfUFJJTlRLX0VBUkxZX1RJTUVTX0gN
Cj4gPiArI2RlZmluZSBfS0VSTkVMX1BSSU5US19FQVJMWV9USU1FU19IDQo+ID4gKw0KPiA+ICsj
aW5jbHVkZSA8bGludXgvdGltZXguaD4NCj4gPiArDQo+ID4gKyNpZiBkZWZpbmVkKENPTkZJR19F
QVJMWV9QUklOVEtfVElNRVMpDQo+ID4gK2V4dGVybiB1MzIgZWFybHlfbXVsdCwgZWFybHlfc2hp
ZnQ7DQo+ID4gK2V4dGVybiB1NjQgZWFybHlfdHNfb2Zmc2V0Ow0KPiA+ICsNCj4gPiArc3RhdGlj
IGlubGluZSB1NjQgZWFybHlfY3ljbGVzKHZvaWQpDQo+ID4gK3sNCj4gPiArICAgICAgIHJldHVy
biAoKHU2NClnZXRfY3ljbGVzKCkgfCAoMVVMTCA8PCA2MykpOw0KPiANCj4gTm8gbmVlZCB0byBj
YXN0IHRvIHU2NCwgYXMgdGhlIHNlY29uZCBvcGVyYW5kIG9mIHRoZSBPUiBpcyB1NjQgYW55d2F5
Lg0KPiBCSVRfVUxMKDYzKQ0KPiANCj4gSSB0aGluayBpdCB3b3VsZCBiZSBnb29kIHRvIGhhdmUg
YSAjZGVmaW5lIGZvciB0aGlzIGF0IHRoZSB0b3AuDQoNCkknbGwgbG9vayBhdCB0aGlzLiAgSXMg
QklUX1VMTCg2MykgcHJlZmVycmVkIG92ZXIgKDFVTEwgPDwgNjMpPw0KDQpEbyB5b3UgdGhpbmsg
c29tZXRoaW5nIGxpa2UgIkhJR0hfQklUNjMiIHdvdWxkIGJlIGdvb2QgZW5vdWdoPw0KDQo+IA0K
PiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW5saW5lIHU2NCBhZGp1c3RfZWFybHlfdHModTY0
IHRzKQ0KPiA+ICt7DQo+ID4gKyAgICAgICAvKiBIaWdoIGJpdCBtZWFucyB0cyBpcyBhIGN5Y2xl
IGNvdW50ICovDQo+ID4gKyAgICAgICBpZiAodW5saWtlbHkodHMgJiAoMVVMTCA8PCA2MykpKQ0K
PiA+ICsgICAgICAgICAgICAgICAvKg0KPiA+ICsgICAgICAgICAgICAgICAgKiBtYXNrIGhpZ2gg
Yml0IGFuZCBjb252ZXJ0IHRvIG5zDQo+ID4gKyAgICAgICAgICAgICAgICAqIE5vdGUgdGhhdCBl
YXJseV9tdWx0IG1heSBiZSAwLCBidXQgdGhhdCdzIE9LIGJlY2F1c2UNCj4gPiArICAgICAgICAg
ICAgICAgICogd2UnbGwganVzdCBtdWx0aXBseSBieSAwIGFuZCByZXR1cm4gMC4gVGhpcyB3aWxs
DQo+ID4gKyAgICAgICAgICAgICAgICAqIG9ubHkgb2NjdXIgaWYgd2UncmUgb3V0cHV0dGluZyBh
IHByaW50ayBtZXNzYWdlDQo+ID4gKyAgICAgICAgICAgICAgICAqIGJlZm9yZSB0aGUgY2FsaWJy
YXRpb24gb2YgdGhlIGVhcmx5IHRpbWVzdGFtcC4NCj4gPiArICAgICAgICAgICAgICAgICogQW55
IG91dHB1dCBhZnRlciB1c2VyIHNwYWNlIHN0YXJ0IChlZy4gZnJvbSBkbWVzZyBvcg0KPiA+ICsg
ICAgICAgICAgICAgICAgKiBqb3VybmFsY3RsKSB3aWxsIHNob3cgY29ycmVjdCB2YWx1ZXMuDQo+
ID4gKyAgICAgICAgICAgICAgICAqLw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gKCgodHMg
JiB+KDFVTEwgPDwgNjMpKSAqIGVhcmx5X211bHQpID4+IGVhcmx5X3NoaWZ0KTsNCj4gDQo+IFBs
ZWFzZSB1c2UgdGhlIG11bF91NjRfdTMyX3NocigpIGhlbHBlci4NCk9LLiAgSSBkaWQgbm90IGtu
b3cgYWJvdXQgdGhhdC4NCg0KSSBjYW4gY2hlY2ssIGJ1dCBkbyB5b3Uga25vdyBvZmZoYW5kIGlm
IHRpbWVzdGFtcHMgZnJvbSBsb2NhbF9jbG9jaygpIG9uIDMyLWJpdCBzeXN0ZW1zIGFyZQ0KYWx3
YXlzIDY0LWJpdCBuYW5vc2Vjb25kcz8gIEkgYXNzdW1lIHNvIGxvb2tpbmcgYXQgdGhlIHByaW50
ayBjb2RlIGFuZA0KbWFraW5nIHNvbWUgYXNzdW1wdGlvbnMuICAoQnV0IHRoYXQncyBkYW5nZXJv
dXMuKQ0KDQo+IA0KPiBQbGVhc2Ugd3JhcCB0aGlzIGJsb2NrIGluIGN1cmx5IGJyYWNlcy4NCj4g
QWx0ZXJuYXRpdmVseSwgeW91IGNhbiBpbnZlcnQgdGhlIGxvZ2ljOg0KPiANCj4gICAgIGlmIChs
aWtlbHkoISh0cyAmIERFRklOSVRJT05fRk9SXzFVTExfTFNINjMpKSkNCj4gICAgICAgICAgICAg
cmV0dXJuIHRzICsgZWFybHlfdHNfb2Zmc2V0Ow0KDQpUaGlzIGlzIHByb2JhYmx5IGEgYmV0dGVy
IHN0cnVjdHVyZSBhbnl3YXkuICBXaWxsIGRvLg0KDQo+IA0KPiA+ICsNCj4gPiArICAgICAgIC8q
IElmIHRpbWVzdGFtcCBpcyBhbHJlYWR5IGluIG5zLCBqdXN0IGFkZCBvZmZzZXQgKi8NCj4gPiAr
ICAgICAgIHJldHVybiB0cyArIGVhcmx5X3RzX29mZnNldDsNCj4gPiArfQ0KPiA+ICsjZWxzZQ0K
PiA+ICtzdGF0aWMgaW5saW5lIHU2NCBlYXJseV9jeWNsZXModm9pZCkNCj4gPiArew0KPiA+ICsg
ICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbmxpbmUgdTY0IGFk
anVzdF9lYXJseV90cyh1NjQgdHMpDQo+ID4gK3sNCj4gPiArICAgICAgIHJldHVybiB0czsNCj4g
PiArfQ0KPiA+ICsjZW5kaWYgLyogQ09ORklHX0VBUkxZX1BSSU5US19USU1FUyAqLw0KPiA+ICsN
Cj4gPiArI2VuZGlmIC8qIF9LRVJORUxfUFJJTlRLX0VBUkxZX1RJTUVTX0ggKi8NCj4gPiArDQo+
ID4gZGlmZiAtLWdpdCBhL2luaXQvS2NvbmZpZyBiL2luaXQvS2NvbmZpZw0KPiA+IGluZGV4IGZh
NzlmZWI4ZmU1Ny4uMDYwYTIyY2RkZDE3IDEwMDY0NA0KPiA+IC0tLSBhL2luaXQvS2NvbmZpZw0K
PiA+ICsrKyBiL2luaXQvS2NvbmZpZw0KPiA+IEBAIC03NzcsNiArNzc3LDE4IEBAIGNvbmZpZyBJ
S0hFQURFUlMNCj4gPiAgICAgICAgICAgb3Igc2ltaWxhciBwcm9ncmFtcy4gIElmIHlvdSBidWls
ZCB0aGUgaGVhZGVycyBhcyBhIG1vZHVsZSwgYSBtb2R1bGUgY2FsbGVkDQo+ID4gICAgICAgICAg
IGtoZWFkZXJzLmtvIGlzIGJ1aWx0IHdoaWNoIGNhbiBiZSBsb2FkZWQgb24tZGVtYW5kIHRvIGdl
dCBhY2Nlc3MgdG8gaGVhZGVycy4NCj4gPg0KPiA+ICtjb25maWcgRUFSTFlfUFJJTlRLX1RJTUVT
DQo+ID4gKyAgICAgICBib29sICJTaG93IG5vbi16ZXJvIHByaW50ayB0aW1lc3RhbXBzIGVhcmx5
IGluIGJvb3QiDQo+ID4gKyAgICAgICBkZWZhdWx0IHkNCj4gPiArICAgICAgIGRlcGVuZHMgb24g
UFJJTlRLDQo+ID4gKyAgICAgICBkZXBlbmRzIG9uIEFSTTY0IHx8IFg4Nl82NA0KPiANCj4gU28g
Zm9yIG5vdyB0aGlzIGlzIGxpbWl0ZWQgdG8gKGEgZmV3KSA2NC1iaXQgcGxhdGZvcm1zLi4uDQoN
ClllcywgYnV0IGl0IHJlYWxseSBzaG91bGRuJ3QgYmUuICBJIGdvdCBzcG9va2VkIHdoZW4gMC1k
YXkgdG9sZCBtZSB0aGF0IHRoZSBjb2RlDQp3b3VsZG4ndCBsaW5rIG9uIHBvd2VycGMsIHNvIEkg
cmVzdHJpY3RlZCBpdCB0byBqdXN0IG1hY2hpbmVzIEkgd2FzIGFjdHVhbGx5IHRlc3RpbmcuDQpC
dXQgdGhpcyBzaG91bGQgd29yayBvbiBzb21lIEFSTTMyIGFuZCBtb3N0IHg4NjMyIHBsYXRmb3Jt
cy4gIEFjdHVhbGx5LCBpdCBzaG91bGQNCndvcmsgb24gYW55dGhpbmcgdGhhdCBoYXMgYSBjeWNs
ZS1jb3VudGVyIGZyb20ga2VybmVsIHN0YXJ0IChzb21lIFJJU0MgbWFjaGluZQ0KbWlnaHQgcXVh
bGlmeSBhcyB3ZWxsKS4gIEhvd2V2ZXIsIEkndmUgc2VlbiBhIGZldyBjYXNlcyB3aGVyZSBzb21l
IHBsYXRmb3JtcyByZXF1aXJlDQprZXJuZWwgaW5pdGlhbGl6YXRpb24gb2YgdGhlaXIgY3ljbGUt
Y291bnRlciwgYW5kIEkgd2FudGVkIHRvIHBsYXkgaXQgc2FmZS4NCg0KSWYgc3VjaCBwbGF0Zm9y
bXMgYXJlIHdlbGwtYmVoYXZlZCBhbmQgcmV0dXJuIDAgYmVmb3JlIHRoZXkgYXJlIGluaXRpYWxp
emVkLCBpdCBzaG91bGQNCnN0aWxsIGJlIHNhZmUgdG8gdHVybiB0aGlzIG9uIC0gaXQganVzdCB3
b24ndCBoYXZlIGFueSBlZmZlY3QuDQoNCkkgcGxhbiB0byBkbyBzb21lIG1vcmUgaW52ZXN0aWdh
dGlvbiBvZiB0aGUgcG93ZXJwYyBlcnJvci4gIEl0IHdhcyANCnBvd2VycGMtbGludXgtbGQ6IGlu
aXQvbWFpbi5vOiBpbiBmdW5jdGlvbiBga2VybmVsX2luaXQnOg0KbWFpbi5jOigucmVmLnRleHQr
MHgxNDQpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX3VkaXZkaTMnDQoNCmZyb20gdGhlIGRl
ZmluaXRpb24gb2YgY2xvY2tzX2NhbGNfbXVsdF9zaGlmdCgpLCB3aGljaCBzZWVtcyB0byBpbmRp
Y2F0ZSBhIGJ1Zw0KaW4gdGhlIHBvd2VycGMgY29kZS4gIEluIHRoZSBsb25nIHJ1biwgSSBzaG91
bGQgdHJ5IHRvIHRyYWNrIGRvd24gdGhhdCBidWcgcmF0aGVyIHRoYW4NCmV4Y2x1ZGUgYSBidW5j
aCBvZiBvdGhlciAobGlrZWx5LXdvcmtpbmcpIGFyY2hlcy4gIEJ1dCBJIHdhcyBwbGF5aW5nIGl0
IGNvbnNlcnZhdGl2ZSBmb3Igbm93Lg0KDQo+IA0KPiA+ICsgICAgICAgaGVscA0KPiA+ICsgICAg
ICAgICBVc2UgYSBjeWNsZS1jb3VudGVyIHRvIHByb3ZpZGUgcHJpbnRrIHRpbWVzdGFtcHMgZHVy
aW5nDQo+ID4gKyAgICAgICAgIGVhcmx5IGJvb3QuICBUaGlzIGFsbG93cyBzZWVpbmcgdGltZXN0
YW1wcyBmb3IgcHJpbnRrcyB0aGF0DQo+ID4gKyAgICAgICAgIHdvdWxkIG90aGVyd2lzZSBzaG93
IGFzIDAuICBOb3RlIHRoYXQgdGhpcyB3aWxsIHNoaWZ0IHRoZQ0KPiA+ICsgICAgICAgICBwcmlu
dGsgdGltZXN0YW1wcyB0byBiZSByZWxhdGl2ZSB0byBtYWNoaW5lIHBvd2VyIG9uLCBpbnN0ZWFk
DQo+ID4gKyAgICAgICAgIG9mIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiBrZXJuZWwgdGltZWtl
ZXBpbmcuDQo+ID4gKw0KPiA+ICBjb25maWcgTE9HX0JVRl9TSElGVA0KPiA+ICAgICAgICAgaW50
ICJLZXJuZWwgbG9nIGJ1ZmZlciBzaXplICgxNiA9PiA2NEtCLCAxNyA9PiAxMjhLQikiDQo+ID4g
ICAgICAgICByYW5nZSAxMiAyNQ0KPiA+IGRpZmYgLS1naXQgYS9pbml0L21haW4uYyBiL2luaXQv
bWFpbi5jDQo+ID4gaW5kZXggYjg0ODE4YWQ5Njg1Li5jYzFhZjI2OTMzZjcgMTAwNjQ0DQo+ID4g
LS0tIGEvaW5pdC9tYWluLmMNCj4gPiArKysgYi9pbml0L21haW4uYw0KPiANCj4gPiBAQCAtMTYw
LDYgKzE2MywxMCBAQCBzdGF0aWMgc2l6ZV90IGluaXRhcmdzX29mZnM7DQo+ID4gICMgZGVmaW5l
IGluaXRhcmdzX29mZnMgMA0KPiA+ICAjZW5kaWYNCj4gPg0KPiA+ICsjaWZkZWYgQ09ORklHX0VB
UkxZX1BSSU5US19USU1FUw0KPiA+ICtzdGF0aWMgdTY0IHN0YXJ0X2N5Y2xlcywgc3RhcnRfbnM7
DQo+IA0KPiBjeWNsZXNfdCBzdGFydF9jeWNsZXM7DQo+IA0KPiAoY3ljbGVzX3QgaXMgdW5zaWdu
ZWQgbG9uZywgaS5lLiBlaXRoZXIgMzItIG9yIDY0LWJpdCkuDQpPSywgSeKAmWxsIHVzZSB0aGlz
IHR5cGUuDQoNCj4gDQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgc3RhdGljIGNoYXIgKmV4ZWN1
dGVfY29tbWFuZDsNCj4gPiAgc3RhdGljIGNoYXIgKnJhbWRpc2tfZXhlY3V0ZV9jb21tYW5kID0g
Ii9pbml0IjsNCj4gPg0KPiA+IEBAIC0xMTE4LDYgKzExMjUsMTEgQEAgdm9pZCBzdGFydF9rZXJu
ZWwodm9pZCkNCj4gPiAgICAgICAgIHRpbWVrZWVwaW5nX2luaXQoKTsNCj4gPiAgICAgICAgIHRp
bWVfaW5pdCgpOw0KPiA+DQo+ID4gKyNpZmRlZiBDT05GSUdfRUFSTFlfUFJJTlRLX1RJTUVTDQo+
ID4gKyAgICAgICBzdGFydF9jeWNsZXMgPSBnZXRfY3ljbGVzKCk7DQo+ID4gKyAgICAgICBzdGFy
dF9ucyA9IGxvY2FsX2Nsb2NrKCk7DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgICAgICAgIC8q
IFRoaXMgbXVzdCBiZSBhZnRlciB0aW1la2VlcGluZyBpcyBpbml0aWFsaXplZCAqLw0KPiA+ICAg
ICAgICAgcmFuZG9tX2luaXQoKTsNCj4gPg0KPiA+IEBAIC0xNjAwLDYgKzE2MTIsMjAgQEAgc3Rh
dGljIGludCBfX3JlZiBrZXJuZWxfaW5pdCh2b2lkICp1bnVzZWQpDQo+ID4NCj4gPiAgICAgICAg
IGRvX3N5c2N0bF9hcmdzKCk7DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJR19FQVJMWV9QUklOVEtf
VElNRVMNCj4gPiArICAgICAgIHU2NCBlbmRfY3ljbGVzLCBlbmRfbnM7DQo+IA0KPiBjeWNsZXNf
dCBlbmRfY3ljbGVzOw0KYWNrLg0KPiANCj4gPiArDQo+ID4gKyAgICAgICAvKiBzZXQgY2FsaWJy
YXRpb24gZGF0YSBmb3IgZWFybHlfcHJpbnRrX3RpbWVzICovDQo+ID4gKyAgICAgICBlbmRfY3lj
bGVzID0gZ2V0X2N5Y2xlcygpOw0KPiA+ICsgICAgICAgZW5kX25zID0gbG9jYWxfY2xvY2soKTsN
Cj4gPiArICAgICAgIGNsb2Nrc19jYWxjX211bHRfc2hpZnQoJmVhcmx5X211bHQsICZlYXJseV9z
aGlmdCwNCj4gPiArICAgICAgICAgICAgICAgKChlbmRfY3ljbGVzIC0gc3RhcnRfY3ljbGVzKSAq
IE5TRUNfUEVSX1NFQykvKGVuZF9ucyAtIHN0YXJ0X25zKSwNCj4gPiArICAgICAgICAgICAgICAg
TlNFQ19QRVJfU0VDLCA1MCk7DQo+IA0KPiBtdWxfdTY0X3U2NF9kaXZfdTY0KCkgaXMgcHJvYmFi
bHkgdGhlIGJlc3QgaGVscGVyIHRoYXQgaXMgYXZhaWxhYmxlDQo+ICh0aGVyZSBpcyBubyBtdWxf
dWxvbmdfdTMyX2Rpdl91NjQoKSkuDQoNCldoYXQgd291bGQgdGhlIG11bF91NjRfdTY0X2Rpdl91
NjQgZG8gaWYgY3ljbGVzX3QgaXMgdTMyPw0KU2hvdWxkIGl0IHNpbGwgYWxsIHdvcmssIGp1c3Qg
bm90IG9wdGltaXplZD8NCg0KPiANCj4gPiArICAgICAgIGVhcmx5X3RzX29mZnNldCA9ICgoc3Rh
cnRfY3ljbGVzICogZWFybHlfbXVsdCkgPj4gZWFybHlfc2hpZnQpIC0gc3RhcnRfbnM7DQo+ID4g
KyAgICAgICBwcl9kZWJ1ZygiRWFybHkgcHJpbnRrIHRpbWVzOiBtdWx0PSV1LCBzaGlmdD0ldSwg
b2Zmc2V0PSVsbHUgbnNcbiIsDQo+ID4gKyAgICAgICAgICAgICAgIGVhcmx5X211bHQsIGVhcmx5
X3NoaWZ0LCBlYXJseV90c19vZmZzZXQpOw0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gICAgICAg
ICBpZiAocmFtZGlza19leGVjdXRlX2NvbW1hbmQpIHsNCj4gPiAgICAgICAgICAgICAgICAgcmV0
ID0gcnVuX2luaXRfcHJvY2VzcyhyYW1kaXNrX2V4ZWN1dGVfY29tbWFuZCk7DQo+ID4gICAgICAg
ICAgICAgICAgIGlmICghcmV0KQ0KPiANCj4gR3J7b2V0amUsZWV0aW5nfXMsDQo+IA0KPiAgICAg
ICAgICAgICAgICAgICAgICAgICBHZWVydA0KPiANClRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHRoZSBy
ZXZpZXcgYW5kIHN1Z2dlc3Rpb25zLiAgSSdtIGF3YXkgZnJvbSBteSBsYWIgZm9yIHRoZSBuZXh0
IHdlZWssDQpidXQgSSdkIHJlYWxseSBsaWtlIHRvIHRlc3QgdGhpcyBvbiBhIDMyLWJpdCBwbGF0
Zm9ybSB0aGF0IGhhcyBhbiBlYXJseSBjeWNsZS1jb3VudGVyIGF2YWlsYWJsZS4NCkknbGwgaGF2
ZSB0byBkbyBzb21lIHJlc2VhcmNoLiAgSSBoYXZlIHNvbWUgMzItYml0IHBsYXRmb3JtcyBpbiBt
eSBsYWIsIGJ1dCBJJ20gbm90IHN1cmUgd2hpY2ggb25lcw0KaGF2ZSBlYXJseS1jeWNsZS1jb3Vu
dGVyIHN1cHBvcnQuICAgRG8gYW55IG9mIHRoZSAzMi1iaXQgcGxhdGZvcm1zIHlvdSdyZSBmYW1p
bGlhciB3aXRoIHN1cHBvcnQNCmVhcmx5IGN5Y2xlLWNvdW50ZXJzICAodGhhdCBpcywgY3ljbGUt
Y291bnRlcnMgdGhhdCBhcmUgcnVubmluZyB3aGVuIHRoZSBrZXJuZWwgc3RhcnRzLCBhbmQgZG9u
J3QNCm5lZWQgYW55IGtlcm5lbCBpbml0aWFsaXphdGlvbiBhdCBhbGwpPw0KIC0tIFRpbQ0KDQo=