RE: Fiddle

Sebastian, Rudy (Rudy.Sebastian@nrc.ca)
Mon, 22 Jun 1998 18:48:03 -0400

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------ =_NextPart_000_01BD9E2F.CA0F0378
Content-Type: text/plain

Attached is a 1d version of Fiddle.

You'll probably have to add the au src directory to the list of include
directories (INCLUDE=) in makeau, so that fiddle.h can be found.

On SGI systems there will be a problem with the tm structure defined in
time.h and the tm macro defined in aucmd2.h. The easiest solution is to
comment out the aucmd2.h definition.

Note that although the program compiles on current systems with the
above modifications, I actually haven't used it for about 6 years.

Rudy

Rudy Sebastian | Email: Rudy.Sebastian@nrc.ca
Institute for Biodiagnostics |
National Research Council Canada | Voice: 204-984-6298
435 Ellice Ave. |
Winnipeg, MB, R3B 1Y6 Canada | Fax: 204-984-7036

-----Original Message-----
From: Alan Boyd [mailto:a.s.f.boyd@hw.ac.uk]
Sent: Thursday, June 11, 1998 08:48
To: BUM List
Subject: Fiddle

Dear Bruker users,

Does anyone have an XWin-NMR AU program that performs the Gareth Morris
'Fiddle' algorithm, used for improving resolution and lineshape?
Preferably adapted for 2D as well as 1D spectra.

Alan

----------------------------------------------------
Dr A S F Boyd Chemistry Department
NMR Spectroscopist Heriot-Watt University
phone: +44-131-451 3214 Riccarton
fax: +44-131-451 3180 Edinburgh
email: a.s.f.boyd@hw.ac.uk EH14 4AS
http://dava.che.hw.ac.uk/ Scotland
----------------------------------------------------

------ =_NextPart_000_01BD9E2F.CA0F0378
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64

eJ8+IjYWAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy
b3NvZnQgTWFpbC5Ob3RlADEIAQmAAQAhAAAAQTIwOTQyMTk4NzA4RDIxMTg2NjYwMEEwMjQ3QjU0
MjEAsQYBIIADAA4AAADOBwYAFgASAC8ANAABAGcBAQWAAwAOAAAAzgcGABYAEgAwAAMAAQA3AQEE
gAEACwAAAFJFOiBGaWRkbGUAOQMBDYAEAAIAAAACAAIAAQOQBgA8CgAAMQAAAB4AMUABAAAAEgAA
AFNFQkFTVElBTkZFQkFBQzY1AAAAAwAaQAAAAAAeADBAAQAAABIAAABTRUJBU1RJQU5GRUJBQUM2
NQAAAAMAGUAAAAAACwACAAEAAAALACsAAAAAAAMALgAAAAAAQAA5APBjqNAvnr0BHgBwAAEAAAAH
AAAARmlkZGxlAAACAXEAAQAAABsAAAABvZVLZSomkIt6ATUR0r1yAIBf/n70AjSZ5fAAAgEJEAEA
AADvBAAA6wQAALoHAABMWkZ1B6mVtAMACgByY3BnMTI14jIDQ3RleAVBAQMB9/8KgAKkA+QHEwKA
D/MAUARWPwhVB7IRJQ5RAwECAGNo4QrAc2V0MgYABsMRJfYzBEYTtzASLBEzCO8J97Y7GB8OMDUR
IgxgYwBQswsJAWQzNhZQC6djATBXEMACQADQaAmAIAQAIOhhIDEdoHYEkACQAiAAIG9mIEZpZGS4
bGUuCqIKhAqAWQhgVCdsAyBwA2BiAaBsjHkgE+AeQCB0bx3gDx8QIWAdgB3gdSBzclBjIGRpGCBj
IXBy9yEAIXEh4mwEAAVAHsELgD5jCkABACKHCJAEIChJAE5DTFVERT0ppSQRIADAa2UiICwiQBUj
QmEFQGYfBGggY40DkWIhUAIQdW5kH1uiTwOgU0dJIkB5I8DcZW0EICHhGCAgA/AgYe8oER3wIJIf
MG0qoSHgIdPWdCuwI8ByGtB0CHAkge8BEAuAHZIDoHQHcSehAHA/IcQsYQDBA2AtKiIgY23EZDIn
oC4gVCHxJnD/AJAHkAVAJsAKQC3gHpEdwfshcQWgbQeAAjAesDGgIdWfMDQtJCvgHoEfW05vDrDv
JuQHQCHgCGBnLAQgkQnAdmErsDJhcAMQB5EekWO/CHAYIDKxKdYr1wGgbyFB3wRhBpAN4CcQHoFz
JqApsE8A0CzgB0Ag9W4nBUB1PxQQHaEnIQWxOaEy8TYgrnkmcBQAH1tSJGB5H2r/PigGUSDAI8AH
MAuQAZEDMLFA3HwgRQDAAxA6B/ClPpEuQDdAbiJgLifQfR9kSQCALeAs4DWBPKJCQx6AIpBhZ25v
QHFj/nNBaTUFOnMHQAfwB5A9ce8T0BIiJDADEUMAcCGgQ9BpQcRWbw3gZUJwAdA0yC05OEoQNjJK
MB9k+DQzNUIQIGBJoRDAHkA3H1BA30aHVwuAAwBwZRJnJqBNQiagUjNCHR4AWT1ASKpBtUZheOdC
cE8ASfY3MBwgPs8/G2otU1JPBRBnC4BHcU21B5BzRXBlU1MfZEYDYY1CcEELYAOgQm95HaBGW0Iy
IXA6YS49oGaGLgbgViBAaHcuANDwLnVrXR9kBmACMEJwqzCwCHBzSPB5JqBKKGBJIVAxMSagMTlK
MCDQMDg6NEqlVFawRRAwVU0gTCOxWBV1Yp5qIsFCcB70Uj8KRD1xv0UQLLAmYAXAPCEUACxde/Zv
B5EAcHkCICFQISMDkUJYTbEtTk1SEMBVNzbHJvNOAHI8oSokIEf3CsAUICewTQWwBRAEIR9zaice
9Cc18WclASHgbV8moDwjPKIHcCCRdguAZ74gGCAxdy5SI6AtcHMT4NVOAD9khVAYIGYEkCDTZ0jh
BTBmVTJEHeA48WXrIGFrATFq4HNOACLQNxDnH1tVsl0fCiBTU27fb+/rcMtuJUQFwEEGAB7gVfT1
cx5DHYBtI7EjAV4wCrHvLGAyoW4lYaJTa/NFoAWgNzeAI8FzGUgGcTVwLVfbJxAFQFUDAB5DdD61
IIAnNjAtcEJwKzRKEDEzADEtNDUxIDMy9DE0cxVSDeAn0AAgAiCbbiVPAGZQUnn7MTgWUOVzFEUi
kG5iCHA2YG4lXyoQQkNW31fgfgNIetE0FEFTe/ZoAkBwOi96L0jwdn+wHXEnoFeVL/VzElMFoHRV
wQsxbk+FnwuGr3F6fYiQAAMA/T9SAwAAHgBCEAEAAAAzAAAAPDE5OTgwNjExMTM0NC5HQUExNDY1
MUBwdXJjZWxsLmNjaGVtLmJlcmtlbGV5LmVkdT4AAAMA3j+vbwAACwAAgAggBgAAAAAAwAAAAAAA
AEYAAAAAA4UAAAAAAAADAAKACCAGAAAAAADAAAAAAAAARgAAAAAQhQAAAAAAAAMABYAIIAYAAAAA
AMAAAAAAAABGAAAAAFKFAADwEwAAHgAQgAggBgAAAAAAwAAAAAAAAEYAAAAAVIUAAAEAAAAEAAAA
OC41AAMACYAIIAYAAAAAAMAAAAAAAABGAAAAAAGFAAAAAAAACwARgAggBgAAAAAAwAAAAAAAAEYA
AAAADoUAAAAAAAADABKACCAGAAAAAADAAAAAAAAARgAAAAARhQAAAAAAAAMAE4AIIAYAAAAAAMAA
AAAAAABGAAAAABiFAAAAAAAAHgAUgAggBgAAAAAAwAAAAAAAAEYAAAAANoUAAAEAAAABAAAAAAAA
AB4AFYAIIAYAAAAAAMAAAAAAAABGAAAAADeFAAABAAAAAQAAAAAAAAAeABaACCAGAAAAAADAAAAA
AAAARgAAAAA4hQAAAQAAAAEAAAAAAAAACwADgAggBgAAAAAAwAAAAAAAAEYAAAAAFIUAAAAAAAAL
AJmACyAGAAAAAADAAAAAAAAARgAAAAAAiAAAAAAAAAsAm4ALIAYAAAAAAMAAAAAAAABGAAAAAAWI
AAAAAAAACwCIgQggBgAAAAAAwAAAAAAAAEYAAAAABoUAAAAAAAADACYAAAAAAAMANgAAAAAAAwCA
EP////8CAfk/AQAAAFgAAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAGAAAAL089TlJDL09VPU9U
VEFXQTEvQ049UkVDSVBJRU5UUy9DTj1JQkQvQ049U0VCQVNUSUFORkVCQUFDNjUAHgD4PwEAAAAQ
AAAAU2ViYXN0aWFuLCBSdWR5AB4AOEABAAAAEgAAAFNFQkFTVElBTkZFQkFBQzY1AAAAAgH7PwEA
AABYAAAAAAAAANynQMjAQhAatLkIACsv4YIBAAAABgAAAC9PPU5SQy9PVT1PVFRBV0ExL0NOPVJF
Q0lQSUVOVFMvQ049SUJEL0NOPVNFQkFTVElBTkZFQkFBQzY1AB4A+j8BAAAAEAAAAFNlYmFzdGlh
biwgUnVkeQAeADlAAQAAABIAAABTRUJBU1RJQU5GRUJBQUM2NQAAAEAABzDQq77MHZ69AUAACDB4
Aw/KL569AR4APQABAAAABQAAAFJFOiAAAAAAHgAdDgEAAAAHAAAARmlkZGxlAAALACkAAAAAAAsA
IwAAAAAAAwAGEOslzh8DAAcQawQAAAMAEBAAAAAAAwAREAAAAAAeAAgQAQAAAGUAAABBVFRBQ0hF
RElTQTFEVkVSU0lPTk9GRklERExFWU9VTExQUk9CQUJMWUhBVkVUT0FERFRIRUFVU1JDRElSRUNU
T1JZVE9USEVMSVNUT0ZJTkNMVURFRElSRUNUT1JJRVMoSU5DAAAAAKJyAgKQBgAOAAAAAQD/////
IAAgAAAAAAA9BAISgAMADgAAAM4HBgAWABAAJgAwAAEAWAECE4ADAA4AAADOBwYAFgAQACYAMAAB
AFgBAhCAAQAJAAAAZmlkZGxlLmgA/gICEYAGALgJAAABAAkAAAPcBAAAAAAhBAAAAAAFAAAACQIA
AAAABQAAAAEC////AKUAAABBC8YAiAAgACAAAAAAACAAIAAAAAAAKAAAACAAAABAAAAAAQABAAAA
AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAF3QAAA/8A
AAAfAAAAHwAAAB0AAAAfAAAAHwAAAA8AAAAFAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAA4AAAAPAAAADwAAAA4AAAAP4AAAD/AAAA/4AA
ACEEAABBC0YAZgAgACAAAAAAACAAIAAAAAAAKAAAACAAAAAgAAAAAQAIAAAAAAAABAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAADAwMAAcGCfALevzwDc2OcApKCg
AICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAgAAAgAAAAICAAIAAAACAAIAA
gIAAAMDAwABwYJ8At6/PANzY5wCkoKAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAA
AAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAHBgnwC3r88A3NjnAKSgoACAgIAAAAD/AAD/
AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAADAwMAAcGCf
ALevzwDc2OcApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAgAAAgAAA
AICAAIAAAACAAIAAgIAAAMDAwABwYJ8At6/PANzY5wCkoKAAgICAAAAA/wAA/wAAAP//AP8AAAD/
AP8A//8AAP///wAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAHBgnwC3r88A3NjnAKSg
oACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAIAAAIAAAACAgACAAAAAgACA
AICAAADAwMAAcGCfALevzwDc2OcApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A
AAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwABwYJ8At6/PANzY5wCkoKAAgICAAAAA/wAA
/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAHBg
nwC3r88A3NjnAKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAIAAAIAA
AACAgACAAAAAgACAAICAAADAwMAAcGCfALevzwDc2OcApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA
/wD/AP//AAD///8AAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwABwYJ8At6/PANzY5wCk
oKAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAACAAACAAAAAgIAAgAAAAIAA
gACAgAAAwMDAAHBgnwC3r88A3NjnAKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////
AAAAAAAAAIAAAIAAAACAgACAAAAAgACAANzY5wCkoKAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A
//8AAP///wABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAETAwMDAwMDAwMDAwMDAwMD
AwMDAQATAAAAEwAAABMAAQ8TDxMPEw8TDxMPEw8TDxMPEw8DAQAAAAAAAAAAAAABEw8TAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEPEw8AExMTExMTExMTExMTExMTExMTExMTAAAAAAAAARMP
DQATExMTExMTEwAAAAAAABMAABMTExMAAAAAEwABDxMPABMTExMTExMTExMTExMTExMTExMTEwAA
AAAAAAETDw0AEwwMExMTExMAEwATAAAAABMTDAwTAAAAAAAAAQ8TDwATDAwTExMTExMTExMTExMT
ExMMDBMAAQAAAAABEw8NABMTExMTEwAAABMAAAAAAAATExMTEwADAQATAAEPEw8AExMTExMTExMT
ExMTExMTExMTExMTAA8DAQAAARMPDQATExMTExAQExAQAAAAEBAAExMTExMADQ8DAQABDw0PABMT
ExMTEBATEBATExMQEBMTExMTEwAPDQ8DAQETDw0AEwwMExMTExMQEAAAABAQExMTDAwTAA0PDQMB
AQ8NDwATDAwTExMTExAQExMTEBATExMMDBMADw0PAwEBEw8NABMTExMTExMTEBAQEBAQEAATExMT
EwANDw0DAQEPDQ8AExMTExMTExMQEBAQEBAQExMTExMTAA8NDwMBARMPDQATExMTExMTExAQABMA
EBAAABMTExMADQ8NAwEBDw0NABMTExMTExMTEBATExMQEBMTExMTEwANDQ0DAQETDw0AEwwMExMT
AAAQEAAAABAQExMTDAwTAA0PDQMBAQ8NDQATDAwTExMTExAQExMTEBATExMMDBMADQ0NAwEBEw8N
ABMTExMAExMTExMTExMTExMTExMTEwANDw0DAQETDw0AExMTExMTExMTExMTExMTExMTExMTAA0N
DQMBAAETDwATExMTAAATAAAAAAATExMTExMTExMADQENAwEAAAETABMTExMTExMTExMTExMTExMT
ExMTEwANDQ0DAQAAAAEAEwwMEw4ODg4ODg4ODg4ODg4TDAwTAA0BDQMBAAAAAAATDAwTDg4ODg4O
Dg4ODg4ODhMMDBMAAQ0BAwEAAAAAABMTExMTExMTExMTExMTExMTExMTEwANAQ0DAQAAABMAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAENAQMBAAAAAAAAAAETDwENAQ0BDQENAQ0BDQENAQ0BDQENAwEA
AAAAAAAAAAETDxMPEw8TDxMPEw8TDxMPEw8TDxMPAQAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAwAAAAAABa0CD4AGAN8FAAAvKg0KICAgZmlkZGxlLmggLSBpbmNsdWRlIGZpbGUgZm9y
IEZJRERMRS4NCiAgICAgICAgICAgICAgPHZhbHVlcy5oPiBtdXN0IGJlIGluY2x1ZGVkIGJlZm9y
ZSB0aGlzIGZpbGUuDQogICBSdWR5IEEuIFNlYmFzdGlhbiwgVW5pdmVyc2l0eSBvZiBNYW5pdG9i
YSwgRGVjLiAxOTkxDQoqLw0KLyoNCiAgIERlYnVnZ2luZyBzd2l0Y2gsIERFQlVHIDEgPT4gaW5m
b3JtYXRpb24gbWVzc2FnZXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBv
cmFyeSBmaWxlcyBOT1QgZGVsZXRlZC4NCiAgICAgICAgICAgICAgICAgICAgIERFQlVHIDAgPT4g
bm8gbWVzc2FnZXMsIGZpbGVzIGRlbGV0ZWQuDQoqLw0KI2RlZmluZSBERUJVRyAwDQovKg0KICAg
T2Zmc2V0cyBmb3IgdGVtcG9yYXJ5IGFuZCBmaW5hbCBkYXRhc2V0cw0KKi8NCiNkZWZpbmUgUFJP
Q05PX09GRlNFVCAxMDAwDQojZGVmaW5lIEVYUE5PX01BWCAgICAgKChsb25nKShNQVhMT05HL1BS
T0NOT19PRkZTRVQpKQ0KI2RlZmluZSBGSUxFTkFNRV9MRU4gMTUNCg0KLyoNCiAgIFByaW50ZiBm
b3JtYXQgdGVtcGxhdGUgZm9yIHV4bm1yIGZpbGVzLg0KICAgSXQgd291bGQgYmUgbmljZSBpZiB0
aGUgY29tcGlsZXIgd2FzIEFOU0kgc28gd2UgY291bGQgaGF2ZQ0KICAgdGhlIHRyYWlsaW5nIHF1
b3RlIQ0KKi8NCiNkZWZpbmUgVVhOTVJfVEVNUExBVEUgIi8lcy9kYXRhLyVzL25tci8lcy8lZC9w
ZGF0YS8lZA0KDQovKg0KICAgVGhlIGxpbmVzaGFwZXMgd2UgYWxsb3cuDQoqLw0KY29uc3QgY2hh
ciAgICAgTE9SRU5UWiAgPSAnTCcgOw0KY29uc3QgY2hhciAgICAgR0FVU1MgICAgPSAnRycgOw0K
DQovKg0KICAgQm9vbGVhbiBjb25zdGFudHMNCiovDQojZGVmaW5lIFRydUUgIDENCiNkZWZpbmUg
RmFsc0UgMA0KI2RlZmluZSBZRVMgJ1knDQojZGVmaW5lIE5PICAnTicNCg0KLyoNCiAgIFBhZ2Ug
YWxpZ25tZW50IHZhbHVlcyBmb3IgQnJ1a2VyIGkvbw0KKi8NCiNkZWZpbmUgUEFHRUFMSUdOIDB4
NDAwDQojZGVmaW5lIFBBR0VBTElHTl9NMSAoUEFHRUFMSUdOLTEpDQovKiBsb2cyIFBBR0VBTElH
TiAqLw0KI2RlZmluZSBQQUdFU0hJRlQgMTANCg0KdHlwZWRlZiBjaGFyICAgRmlsZU5hbWUgW0ZJ
TEVOQU1FX0xFTl0gOw0KdHlwZWRlZiBjaGFyICAgU3RyMTYgWzE3XSA7DQp0eXBlZGVmIGNoYXIg
ICBTdHIzMiBbMzNdIDsNCnR5cGVkZWYgY2hhciAgIFN0cjY0IFs2NV0gOw0KdHlwZWRlZiBjaGFy
ICAgU3RyMTI4IFsxMjldIDsNCnR5cGVkZWYgY2hhciAgIFN0cjI1NiBbMjU3XSA7DQp0eXBlZGVm
IGNoYXIgICBTdHI1MTIgWzUxM10gOw0KdHlwZWRlZiBjaGFyICAgU3RyMTAyNCBbMTAyNV0gOw0K
dHlwZWRlZiBsb25nICAgKiBwTG9uZyA7DQp0eXBlZGVmIGludCAgICAqIHBJbnQgOw0KdHlwZWRl
ZiBkb3VibGUgKiBwRG91YmxlIDsNCnR5cGVkZWYgZmxvYXQgICogcEZsb2F0IDsNCnR5cGVkZWYg
Y2hhciAgICogcENoYXIgOw0KdHlwZWRlZiB2b2lkICAgKiBwVm9pZCA7DQrIqAIFkAYA3AAAABEA
AAADACEOAAAAAAMACzf/////AwAgDvAPAAADAPcPAAAAAAMABTcBAAAAQAAHMIBdQMIdnr0BQAAI
MLBXWsIdnr0BHgABMAEAAAAJAAAAZmlkZGxlLmgAAAAAAgECNwEAAAAAAAAAHgADNwEAAAADAAAA
LmgAAB4ABzcBAAAACQAAAGZpZGRsZS5oAAAAAAMA+n8AAAAAQAD7fwBA3aNXRbMMQAD8fwBA3aNX
RbMMAwD9fwAAAAALAP5/AAAAAAIB+Q8BAAAAEAAAAAEjbvwHCtIRvXIAgF/+fvQULQICkAYADgAA
AAEA/////yAAIAAAAAAAPQQCEoADAA4AAADOBwYAFgAQACYAMAABAFgBAhOAAwAOAAAAzgcGABYA
EgAMAAIAAQASAQIQgAEABwAAAGZpZGRsZQBoAgIRgAYAuAkAAAEACQAAA9wEAAAAACEEAAAAAAUA
AAAJAgAAAAAFAAAAAQL///8ApQAAAEELxgCIACAAIAAAAAAAIAAgAAAAAAAoAAAAIAAAAEAAAAAB
AAEAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAPwAAAD
8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPw
AAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAB/AAAA/wAAAf8AAAP/AA
AH/wAAD/IQQAAEELRgBmACAAIAAAAAAAIAAgAAAAAAAoAAAAIAAAACAAAAABAAgAAAAAAAAEAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwABwYJ8At6/PANzY
5wCkoKAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAACAAACAAAAAgIAAgAAA
AIAAgACAgAAAwMDAAHBgnwC3r88A3NjnAKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA
////AAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAADAwMAAcGCfALevzwDc2OcApKCgAICAgAAA
AP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAMDA
wABwYJ8At6/PANzY5wCkoKAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAACA
AACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAHBgnwC3r88A3NjnAKSgoACAgIAAAAD/AAD/AAAA//8A
/wAAAP8A/wD//wAA////AAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAADAwMAAcGCfALevzwDc
2OcApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAgAAAgAAAAICAAIAA
AACAAIAAgIAAAMDAwABwYJ8At6/PANzY5wCkoKAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8A
AP///wAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAHBgnwC3r88A3NjnAKSgoACAgIAA
AAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAADA
wMAAcGCfALevzwDc2OcApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAA
gAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwABwYJ8At6/PANzY5wCkoKAAgICAAAAA/wAA/wAAAP//
AP8AAAD/AP8A//8AAP///wAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAHBgnwC3r88A
3NjnAKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAIAAAIAAAACAgACA
AAAAgACAAICAAADAwMAAcGCfALevzwDc2OcApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAgAAAgAAAAICAAIAAAACAAIAA3NjnAKSgoACAgIAAAAD/AAD/AAAA//8A/wAA
AP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwHBwcHBwcH
BwcHBwcHBwcHBwcHBwcHBwcAAAAAAAAADBMTExMTExMTExMTExMTExMTExMTExMTBwAAAAAAAAAM
ExMTExMTExMTExMTExMTExMTExMTExMHAAAAAAAAAAwTExMTExMTExMTExMTExMTExMTExMTEwcA
AAAAAAAADBMTExMTExMTExMTExMTExMTExMTExMTBwAAAAAAAAAMExMTExMTExMTExMTExMTExMT
ExMTExMHAAAAAAAAAAwTExMTExMTExMTExMTExMTExMTExMTEwcAAAAAAAAADBMTExMTEwAAAAAA
ExMTExMTExMAExMTBwAAAAAAAAAMExMTEwATABMAAAAAABMTExMAAAATExMHAAAAAAAAAAwTExMT
ABMTExMTAAQAAAAAAAAAABMTEwcAAAAAAAAADBMTExMTExAQEBAAEBAAAAAADwAAExMTBwAAAAAA
AAAMExMTExATEBMQEAAQEBAADw8PAAATExMHAAAAAAAAAAwTExMTEBMTExMTAAAQEAAPDw8AABMT
EwcAAAAAAAAADBMTExMTEw0NDQ0AAAAQAA8PAAAAExMTBwAAAAAAAAAMExMTEw0TDRMNDQABAAAA
AAAAAAATExMHAAAAAAAAAAwTExMTDRMTExMTAA0NAAAAAAIAABMTEwcAAAAAAAAADBMTExMTEwAA
AAAADQ0NAAICAgAAExMTBwAAAAAAAAAMExMTEwATABMAAAAADQ0AAgICAAATExMHAAAAAAAAAAwT
ExMTABMTExMTAAAADQACAgAAABMTEwcAAAAAAAAADBMTExMTExMTExMTAAAAAAAAAAATExMTBwAA
AAAAAAAMExMTExMTExMTExMTEwAAAAATExMTExMHAAAAAAAAAAwTExMTExMTExMTExMTExMTExMT
ExMTEwcAAAAAAAAADBMTExMTExMTExMTExMTExMTExMTExMTBwAAAAAAAAAMExMTExMTExMTExMT
ExMTExMTExMTExMHAAAAAAAAAAwTExMTExMTExMTExMTExMTExMMAAAAAAAAAAAAAAAADBMTExMT
ExMTExMTExMTExMTEwwTEwcMAAAAAAAAAAAMExMTExMTExMTExMTExMTExMTDBMHDAAAAAAAAAAA
AAwTExMTExMTExMTExMTExMTExMMBwwAAAAAAAAAAAAADBMTExMTExMTExMTExMTExMTEwwMAAAA
AAAAAAAAAAAMExMTExMTExMTExMTExMTExMTDAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwM
DAwMAAAAAAAAAAADAAAAAADvwAIPgAYAtrYAAC8qDQogICBGSURETEUgZm9yIEFzcGVjdCBYLTMy
DQoNCiAgIEEuR2liYnMgYW5kIEcuQS5Nb3JyaXMgICAgIEpNUiA5MSw3Ny04MywoMTk5MSkNCiAg
IEcuQS5Nb3JyaXMgYW5kIEQuQ293YnVybiAgIE1SQyAyNywxMDg1LTEwODksKDE5ODkpDQogICBH
LkEuTW9ycmlzICAgICAgICAgICAgICAgICBKTVIgODAsNTQ3LTU1MiwoMTk4OCkNCg0KICAgQWRh
cHRlZCB0byBBTVg1MDAgYW5kIEFNMzAwIHdpdGggWDMyLCBhdCBVbml2ZXJzaXR5IG9mIE1hbml0
b2JhLCBieQ0KICAgUnVkeSBBLiBTZWJhc3RpYW4sIDkyLzAzLzAxLg0KDQogICBGSURETEUgaXMg
YW4gQVUgcHJvZ3JhbSBpbiB3aGljaCB0aGUgY3VycmVudCBkYXRhc2V0IGlzIGRlY29udm9sdXRl
ZA0KICAgd2l0aCBhbiBpZGVhbCBsaW5lc2hhcGUgdG8gcHJvZHVjZSBhIGNvcnJlY3RlZCBmaWQu
IFRoZSBvcmlnaW5hbCBkYXRhDQogICBpcyBub3QgYWx0ZXJlZCwgYW5kIHRoZSByZXN1bHQgY2Fu
IGJlIGZ1cnRoZXIgcHJvY2Vzc2VkIGlmIGRlc2lyZWQuDQoNCiAgIFRoZSBzcGVjdHJ1bSBtdXN0
IGhhdmUgdmVyeSBnb29kIHMvbiwgYW5kIHRoZSByZWZlcmVuY2UgcGVhayBzaG91bGQNCiAgIGJl
IGF0IGxlYXN0IGFzIGludGVuc2UgYXMgdGhlIHBlYWtzIHRoYXQgYXJlIHRvIGJlIGRlY29udm9s
dmVkLiBJZg0KICAgaXQgaXMgb2J2aW91cyB0aGF0IGZpZGRsZSB3aWxsIGhhdmUgdG8gdXNlZCBp
dCBpcyB3aXNlIHRvIGFjcXVpcmUNCiAgIHNldmVyYWwgc3BlY3RyYSB1bmRlciBkaWZmZXJlbnQg
Y29uZGl0aW9ucyAoZXNwZWNpYWxseSBvbmUgd2l0aCByZWR1Y2VkDQogICBkaWdpdGFsIHJlc29s
dXRpb24gYW5kIGxvdHMgb2Ygc2NhbnMpLiBUaGUgcmVmZXJlbmNlIHBlYWsgc2hvdWxkIGJlDQog
ICB3ZWxsIGlzb2xhdGVkIGFuZCBzaG91bGQgaW5jbHVkZSBzb21lIGJhc2VsaW5lLg0KDQogICBG
b3IgQU1YIChBTSkgc3lzdGVtcyB0aGUgZGF0YSBjYW4gYmUgYWNxdWlyZWQgaW4gcXNpbSAoc2lt
KSBvciBxc2VxIChxbikNCiAgIHF1YWRyYXR1cmUgbW9kZXMuIFFGIG1vZGUgc2hvdWxkIGFsc28g
d29yaywgYnV0IGlzbid0IGdlbmVyYWxseSB1c2VkLg0KDQogICBUaGlzIHZlcnNpb24gdXNlcyBh
biBpbmRpcmVjdCBIaWxiZXJ0IHRyYW5zZm9ybSwgdGh1cyB0aGUgZmlkIG11c3QgYmUNCiAgIHpl
cm8tZmlsbGVkIGF0IGxlYXN0IG9uY2UuDQoNCiAgIFRoZSByZWZlcmVuY2UgbGluZSByZWdpb24g
aXMgb2J0YWluZWQgZnJvbSB0aGUgcGFyYW1ldGVycyBGMVAgYW5kIEYyUA0KICAgKGkuZS4gZXhw
YW5kIHRoZSBkZXNpcmVkIHJlZ2lvbiB0byBmdWxsIHNjcmVlbiBhbmQgY2xpY2sgIkRlZlBsb3Qi
KS4NCiAgIE5vdGUgdGhlIGZyZXF1ZW5jeSAoSHopIG9mIHRoZSByZWZlcmVuY2UgcGVhayBhbmQg
dGhlIGRlc2lyZWQgbGluZXdpZHRoDQogICAodGhpcyBpbmZvcm1hdGlvbiBjYW4gYmUgb2J0YWlu
ZWQgYWZ0ZXIgdGhlIHByb2dyYW0gaGFzIHN0YXJ0ZWQpIHdoaWNoDQogICBtYXkgYmUgZW50ZXJl
ZCBtYW51YWxseSBvbiByZXF1ZXN0Lg0KDQogICBEdXJpbmcgcHJvY2Vzc2luZyBpbmRpY2F0aW9u
cyB3aWxsIGJlIGdpdmVuIGFzIHRvIGN1cnJlbnQgcHJvZ3Jlc3MuDQogICBUaGUgdXNlciBpcyBw
cm9tcHRlZCBmb3I6DQogICAgICAgICByZWZlcmVuY2UgZnJlcXVlbmN5LCBtdXN0IGxpZSBiZXR3
ZWVuIEYxUCBhbmQgRjJQLg0KICAgICAgICAgcmVmZXJlbmNlIGxpbmV3aWR0aCwgbXVzdCBiZSA+
PSAwLjUvQVENCiAgICAgICAgIHJlZmVyZW5jZSBsaW5lc2hhcGUsIExvcmVudHppYW4gb3IgR2F1
c3NpYW4NCiAgIFRoZSB1c2VyIGlzIHRoZW4gZ2l2ZW4gYSBjaGFuY2UgdG8gZXhpdC4gSWYgdGhl
IHVzZXIgZG9lcyBub3QgZXhpdA0KICAgcHJvY2Vzc2luZyBjb250aW51ZXMgdW50aWwgY29tcGxl
dGlvbi4NCg0KICAgRmlsZXM6DQogICAgICBUaGUgb3JpZ2luYWwgcHJvY25vIG11c3QgYmUgbGVz
cyB0aGFuIDEwMDAsIGFuZCB0aGUgb3JpZ2luYWwgZXhwbm8NCiAgICAgIGxlc3MgdGhhbiAyMDAw
MDAwIChub3JtYWxseSBub3QgYSBwcm9ibGVtKS4gQmVjYXVzZSBnZW5maWQgYWx3YXlzDQogICAg
ICBzZXRzIHByb2Nubz0xIHRoZSBleHBubyBvZiB0aGUgY29ycmVjdGVkIGZpZCBpcyBhIGNvbWJp
bmF0aW9uIG9mDQogICAgICB0aGUgb3JpZ2lhbCdzIGV4cG5vIGFuZCBwcm9jbm8uIFRodXMNCg0K
ICAgICAgICAgICAgb3JpZ2luYWwgICAgdXNlci5uYW1lLmV4cG5vLnByb2Nubw0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcLw0KICAgICAgICAgICAgY29ycmVjdGVkICAgdXNlci5uYW1lLmV4cG5vKlBST0NOT19PRkZT
RVQrcHJvY25vLjENCg0KICAgICAgSW4gYWRkaXRpb24sIHRlbXBvcmFyeSBwcm9jbm8gZmlsZXMg
YXJlIGNyZWF0ZWQgYXQNCiAgICAgIHVzZXIubmFtZS5leHBuby5wcm9jbm8qUFJPQ05PX09GRlNF
VCtuIHdoZXJlICduJyBpcyAwIHRvIDIgKG9yIDAgdG8NCiAgICAgIDUgaWYgREVCVUcgaXMgaW4g
ZWZmZWN0KS4gVGhlc2UgYXJlIGRlbGV0ZWQgYXQgdGhlIGVuZCBvZiBwcm9jZXNzaW5nDQogICAg
ICAodW5sZXNzIGRlYnVnZ2luZykgYW5kIHdpbGwgbm90IG5vcm1hbGx5IGJlIHNlZW4uDQoNCiAg
IE9ic2VydmF0aW9uczoNCiAgICAgIElmIHRoZSB2ZXJzaW9uIG9mIHV4bm1yIGlzIHByaW9yIHRv
IGFib3V0IDkxMTEwMSwgZm9yIHFzaW0gbW9kZQ0KICAgICAgdGhlIHNwZWN0cnVtIHJlc3VsdGlu
ZyBmcm9tIGZpZGRsZSBpcyBvYnRhaW5lZCBsZWZ0LXJpZ2h0IHJldmVyc2VkDQogICAgICBhbmQg
bXVzdCBiZSBmbGlwcGVkIHVzaW5nIHRoZSAncnYnIGZ1bmN0aW9uLiBBbnkgcmVwcm9jZXNzaW5n
IG9mDQogICAgICB0aGUgZmlkZGxlZCBmaWQgYWxzbyBuZWVkcyBhbiAncnYnIHRvIGJlIGNvcnJl
Y3RseSBvcmllbnRlZC4gQQ0KICAgICAgcmVtaW5kZXIgbWVzc2FnZSBpcyBwcmludGVkIG9uIHRl
cm1pbmF0aW9uLg0KDQogICAgICBOb3RlIHRoYXQgYWx0aG91Z2ggcXNlcSBkYXRhIGNhbiBiZSBm
aWRkbGVkLCB0aGVyZSBzZWVtIHRvIGJlIHNvbWUNCiAgICAgIHN0cmFuZ2UgZWZmZWN0cy4gSXQg
YWxtb3N0IHNlZW1zIHRoYXQgcG9ydGlvbnMgb2YgdGhlIGltYWdpbmFyeSBwb2ludHMNCiAgICAg
IGFyZSBpbnRlcnNwZXJzZWQgaW4gdGhlIHJlYWwgcG9pbnRzLg0KDQogICAgICBJZiB5b3Ugd2Fu
dCB0byBzZWUgdGhlIGVmZmVjdCBvZiBkaWZmZXJlbnQgZGVjb252b2x1dGlvbnMsIGNoYW5nZQ0K
ICAgICAgdGhlIHByb2NubyBvZiB0aGUgb3JpZ2luYWwgZGF0YXNldCBhcyBmb3Igbm9ybWFsIHBy
b2Nlc3NpbmcuIE9uZQ0KICAgICAgdXN1YWxseSBzaG91bGQgdHJ5IGEgZmV3IGNvbWJpbmF0aW9u
cyBvZiBlbS9nbSB3aXRoIGZpZGRsZSB0bw0KICAgICAgb2J0YWluIHRoZSBiZXN0IHJlc3VsdHMu
DQoNCiovDQoNCiNpbmNsdWRlIDxtYXRoLmg+DQojaW5jbHVkZSA8dmFsdWVzLmg+DQojaW5jbHVk
ZSAiZmlkZGxlLmgiDQoNCi8qIFJvdXRpbmVzIHdlIHN1cHBseSAqLw0KDQp2b2lkICAgICBJbmZv
TXNnKCkgOw0Kdm9pZCAgICAgQ2xlYXJTcGVjKCkgOw0Kdm9pZCAgICAgRXh0cmFjdFJlZkxpbmUo
KSA7DQppbnQgICAgICBSZWFkU3BlYygpIDsNCmludCAgICAgIFdyaXRlU3BlYygpIDsNCnZvaWQg
ICAgIFJlbW92ZVByb2MoKSA7DQpkb3VibGUgICBTaWduYWxOb2lzZSgpIDsNCg0KLyogQ29uc3Rh
bnRzIHRoYXQgd2UgbmVlZCAqLw0KDQpjb25zdCBpbnQgICAgICBRRiAgICAgICA9IDAgOyAgICAv
KiBWYWx1ZXMgZm9yIEFRX21vZCAqLw0KY29uc3QgaW50ICAgICAgUVNJTSAgICAgPSAxIDsNCmNv
bnN0IGludCAgICAgIFFTRVEgICAgID0gMiA7DQoNCi8qIFRoZXNlIGFyZSBvYnRhaW5lZCBmcm9t
IHRoZSBjdXJyZW50IGV4cG5vIGFuZCBwcm9jbm8uICovDQoNCmRvdWJsZSAgIHNmcmVxLCBmdWxs
d2lkdGggOw0KZmxvYXQgICAgcmVmbGVmdCwgcmVmcmlnaHQsIGxlZnRvZmZzZXQsIGxpbmVicm9h
ZCA7DQppbnQgICAgICBhY3F1aXNtb2RlIDsNCmludCAgICAgIHRpbWVkb21haW4sIGZ1bGxzaXpl
IDsNCmludCAgICAgIHNfcHJvYywgc19leHAgOw0KRmlsZU5hbWUgc19uYW1lLCBzX3VzZXIsIHNf
ZGlzayA7DQoNCi8qIFRoZXNlIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSB1c2VyLiAqLw0KDQpTdHIz
MiAgICB1c2VyaW5wdXQgOw0KU3RyMTI4ICAgbXNnc3RyaW5nIDsNClN0cjI1NiAgIGRvbmVtc2cg
Ow0KZmxvYXQgICAgZGVmZnJlcSwgcmVmZnJlcSA7ICAgLyogZnJlcXVlbmN5IG9mIGV4cGVyaW1l
bnRhbCByZWZlcmVuY2UgKi8NCmRvdWJsZSAgIGxpbmV3aWR0aCA7ICAgICAgICAgIC8qIGlkZWFs
IGZ1bGwgd2lkdGggYXQgaGFsZiBoZWlnaHQgKi8NCmNoYXIgICAgIGxpbmVzaGFwZSA7ICAgICAg
ICAgIC8qIGxvcmVudHppYW4gb3IgZ2F1c3NpYW4gKi8NCmNoYXIgICAgIHNoYXBlZGVmYXVsdCA7
DQpjaGFyICAgICB5ZXNubyA7DQoNCi8qIFRoZXNlIGFyZSBkZXJpdmVkIGZyb20gdXNlciBhbmQg
ZXhwZXJpbWVudGFsIHZhbHVlcy4gKi8NCg0KaW50ICAgICAgbG9uZ3NpemUsIGRvdWJsZXNpemUs
DQogICAgICAgICBsZWZ0emVyb3MsIHJpZ2h0emVyb3MsDQogICAgICAgICBsZWZ0c3RhcnQsIHJp
Z2h0c3RhcnQsDQogICAgICAgICBkZWZpbmRleCwgcmVmaW5kZXgsDQogICAgICAgICBwcm9jX3Rt
cCwgcHJvY19pZGVhbCwgcHJvY19leHB0bCwgcHJvY19jb3JyZWN0LA0KICAgICAgICAgcHJvY19p
ZGVhbF9zYXYsIHByb2NfZXhwdGxfc2F2LCBwcm9jX3JhdGlvX3NhdiwNCiAgICAgICAgIGV4cF9j
b3JyZWN0LA0KICAgICAgICAgdG1wX2ludCA7DQoNCmxvbmcgICAgIGRlZmhlaWdodCwgcmVmaGVp
Z2h0IDsNCg0KaW50ICAgICAgc2lnbmFsLCBub2lzZSA7DQpkb3VibGUgICBzaW5vX3JlZiwgc2lu
b19zcGVjbCwgc2lub19zcGVjciwgc2lub19zcGVjdHJ1bSwgc2lub19yYXRpbyA7DQoNCmRvdWJs
ZSAgIGh6cHBudCwgYWNxdWlzdGltZSwgbGluZXdpZHRobWluIDsNCg0KLyogVGhlc2UgYXJlIHVz
ZWQgaW4gZG9pbmcgdGhlIGRlY29udm9sdXRpb24uICovDQoNCnJlZ2lzdGVyIGludCBpeCA7DQoN
CmludCAgICAgIGJhZHIsIGJhZGkgOw0KDQpkb3VibGUgICBkZW5vbSwgY3JhdGlvLCByZWFsLCBp
bWFnLA0KICAgICAgICAgdG1wMXIsIHRtcDFpLA0KICAgICAgICAgdG1wMnIsIHRtcDJpLA0KICAg
ICAgICAgbWlucmF0aW9faSxtYXhyYXRpb19pLHN1bXJhdGlvX2ksYXZncmF0aW9faSwNCiAgICAg
ICAgIG1pbnJhdGlvX3IsbWF4cmF0aW9fcixzdW1yYXRpb19yLGF2Z3JhdGlvX3IgOw0KDQovKg0K
ICAgVGhlc2UgYXJlIHBvaW50ZXJzIHRvIHRoZSBkYXRhIGFycmF5cy4gVGhvc2UgZW5kaW5nIGlu
ICJfbyIgYXJlDQogICB0aGUgb3JpZ2luYWwgdmFsdWVzIG9idGFpbmVkIGZyb20gbWFsbG9jLCB3
aGljaCBtdXN0IGJlIHVzZWQgaW4gZnJlZS4NCiAgIFRob3NlIGVuZGluZyBpbiAiX2EiIGhhdmUg
YmVlbiBhbGlnbmVkIHRvIGJlIG9uIGEgcGFnZSAoMTAyNCkgYWRkcmVzcy4NCiAgKi8NCnBMb25n
ICAgIHNwZWMxcl9hID0gTlVMTCwgc3BlYzFyX28gPSBOVUxMLA0KICAgICAgICAgc3BlYzFpX2Eg
PSBOVUxMLCBzcGVjMWlfbyA9IE5VTEwsDQogICAgICAgICBzcGVjMnJfYSA9IE5VTEwsIHNwZWMy
cl9vID0gTlVMTCwNCiAgICAgICAgIHNwZWMyaV9hID0gTlVMTCwgc3BlYzJpX28gPSBOVUxMIDsN
Cg0KcERvdWJsZSAgcmF0aW9yX2EgPSBOVUxMLCByYXRpb3JfbyA9IE5VTEwsDQogICAgICAgICBy
YXRpb2lfYSA9IE5VTEwsIHJhdGlvaV9vID0gTlVMTCA7DQoNCiAgIFNob3dfc3RhdHVzKCAiRmlk
ZGxlOiBTdGFydGluZyIgKSA7DQoNCiAgIC8qIEdldCBzcGVjdHJhbCBwYXJhbWV0ZXJzICovDQoN
CiAgIFNob3dfc3RhdHVzKCAiRmlkZGxlOiBSZWFkaW5nIFBhcmFtZXRlcnMiICkgOw0KDQogICBn
ZXRjdXJkYXRhDQoNCiAgIC8qIFNhdmUgZXhwZXJpbWVudCBwYXRoLiAqLw0KICAgc19wcm9jID0g
cHJvY25vIDsNCiAgIHNfZXhwICA9IGV4cG5vIDsNCiAgICh2b2lkKSBzdHJjcHkoIHNfbmFtZSwg
bmFtZSApIDsNCiAgICh2b2lkKSBzdHJjcHkoIHNfdXNlciwgdXNlciApIDsNCiAgICh2b2lkKSBz
dHJjcHkoIHNfZGlzaywgZGlzayApIDsNCg0KICAgKHZvaWQpIHNwcmludGYoIG1zZ3N0cmluZywN
CiAgICAgICAgICAgICAgICAgICAiXG5EVT0lcywgVVNFUj0lcywgTkFNRT0lcywgRVhQTk89JWQs
IFBST0NOTz0lZCIsDQogICAgICAgICAgICAgICAgICAgc19kaXNrLCBzX3VzZXIsIHNfbmFtZSwg
c19leHAsIHNfcHJvYyApIDsNCiAgIEluZm9Nc2coIG1zZ3N0cmluZyApIDsNCg0KICAgaWYgKCBz
X2V4cCA+PSBFWFBOT19NQVggKQ0KICAgew0KICAgICAgdG1wX2ludCA9IEVYUE5PX01BWCA7DQog
ICAgICAodm9pZCkgc3ByaW50ZiggbXNnc3RyaW5nLA0KICAgICAgICAgICAgICAgICAgICAgICJG
aWRkbGU6IFRoZSBleHBlcmltZW50IG51bWJlciBtdXN0IGJlIGxlc3MgdGhhbiAlZCAhIiwNCiAg
ICAgICAgICAgICAgICAgICAgICB0bXBfaW50ICkgOw0KICAgICAgc3RvcG1zZyggbXNnc3RyaW5n
ICkNCiAgIH0NCg0KICAgaWYgKCBzX3Byb2MgPj0gUFJPQ05PX09GRlNFVCApDQogICB7DQogICAg
ICB0bXBfaW50ID0gUFJPQ05PX09GRlNFVCA7DQogICAgICAodm9pZCkgc3ByaW50ZiggbXNnc3Ry
aW5nLA0KICAgICAgICAgICAgICAgICAgICAgICJGaWRkbGU6IFRoZSBwcm9jZXNzaW5nIG51bWJl
ciBtdXN0IGJlIGxlc3MgdGhhbiAlZCAhIiwNCiAgICAgICAgICAgICAgICAgICAgICB0bXBfaW50
ICkgOw0KICAgICAgc3RvcG1zZyggbXNnc3RyaW5nICkNCiAgIH0NCg0KLyoNCiAgIFNldCB0ZW1w
b3JhcnkgcHJvY25vLiBCZWNhdXNlIGdlbmZpZCBhbHdheXMgc2V0cyBwcm9jbm89MQ0KICAgdGhl
IGV4cG5vIG9mIHRoZSBjb3JyZWN0ZWQgZmlkIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIG9yaWdp
YWwncw0KICAgZXhwbm8gYW5kIHByb2Nuby4NCiovDQogICBwcm9jX3RtcCAgICAgICA9IHNfcHJv
YypQUk9DTk9fT0ZGU0VUIDsNCiAgIHByb2NfaWRlYWwgICAgID0gcHJvY190bXAgKyAwIDsNCiAg
IHByb2NfZXhwdGwgICAgID0gcHJvY190bXAgKyAxIDsNCiAgIHByb2NfY29ycmVjdCAgID0gcHJv
Y190bXAgKyAyIDsNCiAgIHByb2NfaWRlYWxfc2F2ID0gcHJvY190bXAgKyAzIDsNCiAgIHByb2Nf
ZXhwdGxfc2F2ID0gcHJvY190bXAgKyA0IDsNCiAgIHByb2NfcmF0aW9fc2F2ID0gcHJvY190bXAg
KyA1IDsNCiAgIGV4cF9jb3JyZWN0ICAgID0gc19leHAqUFJPQ05PX09GRlNFVCArIHNfcHJvYyA7
DQoNCi8qIFJlYWQgYXBwcm9wcmlhdGUgYWNxdWlzaXRpb24gYW5kIHByb2Nlc3NpbmcgcGFybWFt
ZXRlcnMuICovDQogICBmZXRjaHBhcnMoICJTRiIsICZzZnJlcSApICAgICAgICAgICAgLyogdGhp
cyB3YXMgU0ZPMSAqLw0KICAgZmV0Y2hwYXJzKCAiT0ZGU0VUIiwgJmxlZnRvZmZzZXQgKQ0KICAg
ZmV0Y2hwYXJzKCAiU1ciLCAmZnVsbHdpZHRoICkgICAgICAgIC8qIFNXX3AgaXMgaW4gSHogKi8N
CiAgIGZldGNocGFycyggIlNJIiwgJmZ1bGxzaXplICkNCiAgIGZldGNocGFycyggIlREIiwgJnRp
bWVkb21haW4gKQ0KICAgZmV0Y2hwYXJzKCAiTEIiLCAmbGluZWJyb2FkICkNCiAgIGZldGNocGFy
cyggIkFRX21vZCIsICZhY3F1aXNtb2RlICkNCiAgIGZldGNocGxwYXIoICJGMVAiLCAmcmVmbGVm
dCApDQogICBmZXRjaHBscGFyKCAiRjJQIiwgJnJlZnJpZ2h0ICkNCg0KICAgaWYgKCBhY3F1aXNt
b2RlID09IFFGICkNCiAgIHsNCiAgICAgIHN0b3Btc2coICJGaWRkbGU6IFRoZSBmaWQgd2FzIG5v
dCBhY3F1aXJlZCBpbiBxdWFkcmF0dXJlIG1vZGUhISIgKQ0KICAgfQ0KDQogICAvKg0KICAgICAg
QmVjYXVzZSB0ZCBoYXMgYm90aCByZWFsIGFuZCBpbWFnaW5hcnkgcG9pbnRzLCB3aGlsZSBzaSBo
YXMgb25seSByZWFsDQogICAgICBwb2ludHMsIHRoZSBzcGVjdHJ1bSBoYXMgYmVlbiB6ZXJvLWZp
bGxlZCBpZiBzaSA+PSB0ZC4NCiAgICovDQogICBpZiAoIGZ1bGxzaXplIDwgdGltZWRvbWFpbiAp
DQogICB7DQogICAgICBzdG9wbXNnKCAiRmlkZGxlOiBUaGUgc3BlY3RydW0gaGFzIG5vdCBiZWVu
IHplcm8tZmlsbGVkISEiICkNCiAgIH0NCg0KICAgLyogQ29udmVydCB0byBIZXJ0eiwgcG9pbnRz
LCBldGMuICovDQogICByZWZsZWZ0ICAgICAqPSBzZnJlcSA7DQogICByZWZyaWdodCAgICAqPSBz
ZnJlcSA7DQogICBsZWZ0b2Zmc2V0ICAqPSBzZnJlcSA7DQogICBmdWxsd2lkdGggICAqPSBzZnJl
cSA7DQogICBoenBwbnQgICAgICAgPSBmdWxsd2lkdGgvZnVsbHNpemUgOw0KICAgYWNxdWlzdGlt
ZSAgID0gdGltZWRvbWFpbi8oMi4wKmZ1bGx3aWR0aCkgOw0KICAgbGluZXdpZHRobWluID0gMC41
L2FjcXVpc3RpbWUgOw0KICAgbGVmdHN0YXJ0ICAgID0gMCA7DQogICBsZWZ0emVyb3MgICAgPSAo
bGVmdG9mZnNldC1yZWZsZWZ0KS9oenBwbnQgOw0KICAgcmlnaHRzdGFydCAgID0gKGxlZnRvZmZz
ZXQtcmVmcmlnaHQpL2h6cHBudCA7DQogICByaWdodHplcm9zICAgPSBmdWxsc2l6ZS1yaWdodHN0
YXJ0KzEgOw0KICAgc2hhcGVkZWZhdWx0ID0gKCBsaW5lYnJvYWQgPiAwLjAgKSA/IExPUkVOVFog
OiBHQVVTUyA7DQoNCiAgICh2b2lkKSBzcHJpbnRmKCBtc2dzdHJpbmcsDQogICAgICAgICAgICAg
ICAgICAgIlxuT0ZGU0VUOiAlZiwgRjE6ICVmLCBGMjogJWYsIExCOiAlZiwgXA0KXG5TVzogJWYs
IFNJOiAlZCwgQVE6ICVmLCBIei9wbnQ6ICVmIiwNCiAgICAgICAgICAgICAgICAgICBsZWZ0b2Zm
c2V0LCByZWZsZWZ0LCByZWZyaWdodCwgbGluZWJyb2FkLA0KICAgICAgICAgICAgICAgICAgIGZ1
bGx3aWR0aCwgZnVsbHNpemUsIGFjcXVpc3RpbWUsIGh6cHBudCApIDsNCiAgIEluZm9Nc2coIG1z
Z3N0cmluZyApIDsNCg0KICAgU2hvd19zdGF0dXMoICJGaWRkbGU6IEFsbG9jYXRpbmcgdGVtcG9y
YXJ5IG1lbW9yeSIgKSA7DQogICAvKiBBbGxvY2F0ZSBQQUdFQUxJR05fTTEgZXh0cmEgYnl0ZXMg
Zm9yIGxhdGVyIHBhZ2UgYWxpZ25tZW50ICovDQogICBsb25nc2l6ZSAgID0gc2l6ZW9mKGxvbmcp
KmZ1bGxzaXplICsgUEFHRUFMSUdOX00xIDsNCiAgIGRvdWJsZXNpemUgPSBzaXplb2YoZG91Ymxl
KSpmdWxsc2l6ZSArIFBBR0VBTElHTl9NMSA7DQogICBpZiAoIChzcGVjMXJfbyA9IChwTG9uZykg
bWFsbG9jKGxvbmdzaXplKSApID09IE5VTEwgKQ0KICAgICAgeyAgc3RvcG1zZyggIkZpZGRsZTog
Q2Fubm90IGFsbG9jYXRlIG1lbW9yeSBmb3Igc3BlYzFyX2EiICkgfQ0KICAgaWYgKCAoc3BlYzFp
X28gPSAocExvbmcpIG1hbGxvYyhsb25nc2l6ZSkgKSA9PSBOVUxMICkNCiAgICAgIHsgIHN0b3Bt
c2coICJGaWRkbGU6IENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHNwZWMxaV9hIiApIH0NCiAg
IGlmICggKHNwZWMycl9vID0gKHBMb25nKSBtYWxsb2MobG9uZ3NpemUpICkgPT0gTlVMTCApDQog
ICAgICB7ICBzdG9wbXNnKCAiRmlkZGxlOiBDYW5ub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBzcGVj
MnJfYSIgKSB9DQogICBpZiAoIChzcGVjMmlfbyA9IChwTG9uZykgbWFsbG9jKGxvbmdzaXplKSAp
ID09IE5VTEwgKQ0KICAgICAgeyAgc3RvcG1zZyggIkZpZGRsZTogQ2Fubm90IGFsbG9jYXRlIG1l
bW9yeSBmb3Igc3BlYzJpX2EiICkgfQ0KICAgaWYgKCAocmF0aW9yX28gPSAocERvdWJsZSkgbWFs
bG9jKGRvdWJsZXNpemUpICkgPT0gTlVMTCApDQogICAgICB7ICBzdG9wbXNnKCAiRmlkZGxlOiBD
YW5ub3QgYWxsb2NhdGUgbWVtb3J5IGZvciByYXRpb3JfYSIgKSB9DQogICBpZiAoIChyYXRpb2lf
byA9IChwRG91YmxlKSBtYWxsb2MoZG91Ymxlc2l6ZSkgKSA9PSBOVUxMICkNCiAgICAgIHsgIHN0
b3Btc2coICJGaWRkbGU6IENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHJhdGlvaV9hIiApIH0N
Cg0KICAgLyogQWxpZ24gdGhlIHBvaW50ZXJzIHRvIGEgcGFnZSAoMTAyNCkgYm91bmRhcnkgZm9y
IEJydWtlciBpL28gKi8NCiAgIHNwZWMxcl9hID0gKHBMb25nKSAgICggKChpbnQpc3BlYzFyX28g
KyBQQUdFQUxJR05fTTEpICYgflBBR0VBTElHTl9NMSApIDsNCiAgIHNwZWMxaV9hID0gKHBMb25n
KSAgICggKChpbnQpc3BlYzFpX28gKyBQQUdFQUxJR05fTTEpICYgflBBR0VBTElHTl9NMSApIDsN
CiAgIHNwZWMycl9hID0gKHBMb25nKSAgICggKChpbnQpc3BlYzJyX28gKyBQQUdFQUxJR05fTTEp
ICYgflBBR0VBTElHTl9NMSApIDsNCiAgIHNwZWMyaV9hID0gKHBMb25nKSAgICggKChpbnQpc3Bl
YzJpX28gKyBQQUdFQUxJR05fTTEpICYgflBBR0VBTElHTl9NMSApIDsNCiAgIHJhdGlvcl9hID0g
KHBEb3VibGUpICggKChpbnQpcmF0aW9yX28gKyBQQUdFQUxJR05fTTEpICYgflBBR0VBTElHTl9N
MSApIDsNCiAgIHJhdGlvaV9hID0gKHBEb3VibGUpICggKChpbnQpcmF0aW9pX28gKyBQQUdFQUxJ
R05fTTEpICYgflBBR0VBTElHTl9NMSApIDsNCg0KICAgLyoNCiAgICAgIEdldCByZWZlcmVuY2Ug
bGluZSBkZXRhaWxzLg0KICAgKi8NCiAgIFNob3dfc3RhdHVzKCAiRmlkZGxlOiBSZWFkaW5nIHNw
ZWN0cmFsIHBvaW50cyIgKSA7DQogICBpZiAoIC0xID09IFJlYWRTcGVjKCBzX2Rpc2ssIHNfdXNl
ciwgc19uYW1lLCBzX2V4cCwgc19wcm9jLA0KICAgICAgICAgICAgICAgICAgICAgICAgc3BlYzFy
X2EsIHNwZWMxaV9hLCBmdWxsc2l6ZSApICkNCiAgIHsNCiAgICAgIHN0b3ANCiAgIH0NCg0KICAg
LyogRGVmYXVsdCByZWZlcmVuY2UgcGVhayBpcyBtb3N0IGludGVuc2UgaW4gcmVmZXJlbmNlIHJl
Z2lvbiAqLw0KICAgZGVmaGVpZ2h0ID0gLU1BWExPTkcgOw0KICAgZm9yICggaXg9KGxlZnRzdGFy
dCtsZWZ0emVyb3MpOyBpeDxyaWdodHN0YXJ0OyBpeCsrICkNCiAgIHsNCiAgICAgIGlmICggc3Bl
YzFyX2FbaXhdID4gZGVmaGVpZ2h0ICkNCiAgICAgIHsNCiAgICAgICAgIGRlZmhlaWdodCA9IHNw
ZWMxcl9hW2l4XSA7DQogICAgICAgICBkZWZpbmRleCAgPSBpeCA7DQogICAgICB9DQogICB9DQog
ICBkZWZmcmVxID0gbGVmdG9mZnNldCAtIGRlZmluZGV4Kmh6cHBudCA7DQoNCiAgICh2b2lkKSBz
cHJpbnRmKCBtc2dzdHJpbmcsICJSZWZlcmVuY2UgbGluZSBmcmVxdWVuY3k/IiApIDsNCiAgIGRv
IHsNCiAgICAgICh2b2lkKSBzcHJpbnRmKCB1c2VyaW5wdXQsICIlZiIsIGRlZmZyZXEgKSA7DQog
ICAgICAodm9pZCkgc3RyY3B5KCB1c2VyaW5wdXQsIEdldHMoIG1zZ3N0cmluZywgdXNlcmlucHV0
ICkgKSA7DQogICAgICBpZiAoIDAgPT0gc3RybGVuKHVzZXJpbnB1dCkgfHwgdXNlcmlucHV0WzBd
ID09ICcgJyApDQogICAgICB7DQogICAgICAgICByZWZoZWlnaHQgPSBkZWZoZWlnaHQgOw0KICAg
ICAgICAgcmVmaW5kZXggID0gZGVmaW5kZXggOw0KICAgICAgICAgcmVmZnJlcSAgID0gZGVmZnJl
cSA7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICBzc2NhbmYoIHVzZXJp
bnB1dCwgIiVmIiwgJnJlZmZyZXEgKSA7DQogICAgICAgICAvKiByZWZmcmVxICo9IHNmcmVxIDsg
ICBpZiB3ZSByZWFkIHRoZSB2YWx1ZSBpbiBwcG0gKi8NCiAgICAgICAgIHJlZmluZGV4ICA9IChs
ZWZ0b2Zmc2V0LXJlZmZyZXEpL2h6cHBudCA7DQogICAgICAgICByZWZoZWlnaHQgPSBzcGVjMXJf
YVtyZWZpbmRleF0gOw0KICAgICAgfQ0KICAgfSB3aGlsZSAoIChyZWZmcmVxPHJlZnJpZ2h0KSB8
fCAocmVmZnJlcT5yZWZsZWZ0KSApIDsNCg0KICAgLyoNCiAgICAgIERldGVybWluZSB0aGUgcy9u
IG9mIHRoZSByZWZlcmVuY2UgcmVnaW9uIGFuZCB0aGUgZW50aXJlIHNwZWN0cnVtLg0KICAgICAg
SWYgdGhlIHJlZmVyZW5jZSBpcyBsZXNzIHRoYW4gdGhlIHNwZWN0cnVtIHRoZW4gdGhlIGZpZGRs
ZSByZXN1bHRzDQogICAgICB3aWxsIGJlIHBvb3IuDQogICAqLw0KICAgc2lub19yZWYgICAgICA9
IFNpZ25hbE5vaXNlKCBsZWZ0emVyb3MsIHJpZ2h0c3RhcnQsIHNwZWMxcl9hLA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmc2lnbmFsLCAmbm9pc2UgKTsNCiAgIHNpbm9fc3BlY2wg
ICAgPSBTaWduYWxOb2lzZSggMCwgbGVmdHplcm9zLTEsIHNwZWMxcl9hLA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmc2lnbmFsLCAmbm9pc2UgKTsNCiAgIHNpbm9fc3BlY3IgICAg
PSBTaWduYWxOb2lzZSggcmlnaHR6ZXJvcywgZnVsbHNpemUsIHNwZWMxcl9hLA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmc2lnbmFsLCAmbm9pc2UgKTsNCiAgIHNpbm9fc3BlY3Ry
dW0gPSAoc2lub19zcGVjbCA+IHNpbm9fc3BlY3IpID8gc2lub19zcGVjbCA6IHNpbm9fc3BlY3Ig
Ow0KICAgc2lub19yYXRpbyAgICA9IHNpbm9fcmVmL3Npbm9fc3BlY3RydW0gOw0KDQogICAodm9p
ZCkgc3ByaW50ZiggbXNnc3RyaW5nLA0KICAgICAgICAgICAgICAgICAgICJcblJlZmVyZW5jZSBz
L246ICVmLCBTcGVjdHJ1bSBzL246ICVmLCBSYXRpbzogJWYiLA0KICAgICAgICAgICAgICAgICAg
IHNpbm9fcmVmLCBzaW5vX3NwZWN0cnVtLCBzaW5vX3JhdGlvICkgOw0KICAgaWYgKCAoc2lub19y
YXRpbzwwLjc1KSB8fCAoc2lub19yZWY8NTAuMCkgfHwgKHNpbm9fc3BlY3RydW08NTAuMCkgKQ0K
ICAgew0KICAgICAgKHZvaWQpIHN0cmNhdCggbXNnc3RyaW5nLA0KICAgICAgICAgICAgICAgICAg
ICAgIlxuIFRoZSBTL04gaW5kaWNhdGUgRmlkZGxlIG1heSBub3Qgd29yayB3ZWxsISIgKSA7DQog
ICB9DQogICBJbmZvTXNnKCBtc2dzdHJpbmcgKSA7DQoNCiAgICh2b2lkKSBzcHJpbnRmKCBtc2dz
dHJpbmcsICJJZGVhbCBsaW5ld2lkdGgsIGF0IGxlYXN0ICVmSHo/IiwNCiAgICAgICAgICAgICAg
ICAgICBsaW5ld2lkdGhtaW4gKSA7DQogICBkbyB7DQogICAgICAodm9pZCkgc3ByaW50ZiggdXNl
cmlucHV0LCAiJWYiLCA0LjAqbGluZXdpZHRobWluICkgOw0KICAgICAgKHZvaWQpIHN0cmNweSgg
dXNlcmlucHV0LCBHZXRzKCBtc2dzdHJpbmcsIHVzZXJpbnB1dCApICkgOw0KICAgICAgaWYgKCAw
ID09IHN0cmxlbih1c2VyaW5wdXQpIHx8IHVzZXJpbnB1dFswXSA9PSAnICcgKQ0KICAgICAgew0K
ICAgICAgICAgbGluZXdpZHRoID0gNC4wKmxpbmV3aWR0aG1pbiA7DQogICAgICB9DQogICAgICBl
bHNlDQogICAgICB7DQogICAgICAgICBzc2NhbmYoIHVzZXJpbnB1dCwgIiVsZiIsICZsaW5ld2lk
dGggKSA7DQogICAgICB9DQogICB9IHdoaWxlICggbGluZXdpZHRoPGxpbmV3aWR0aG1pbiApIDsN
Cg0KICAgKHZvaWQpIHNwcmludGYoIG1zZ3N0cmluZywNCiAgICAgICAgICAgICAgICAgICAiSWRl
YWwgbGluZXNoYXBlLCBMb3JlbnR6aWFuLCBvciBHYXVzc2lhbj8iICkgOw0KICAgZG8gew0KICAg
ICAgKHZvaWQpIHNwcmludGYoIHVzZXJpbnB1dCwgIiVjIiwgc2hhcGVkZWZhdWx0ICkgOw0KICAg
ICAgKHZvaWQpIHN0cmNweSggdXNlcmlucHV0LCBHZXRzKCBtc2dzdHJpbmcsIHVzZXJpbnB1dCAp
ICkgOw0KICAgICAgaWYgKCAwID09IHN0cmxlbih1c2VyaW5wdXQpIHx8IHVzZXJpbnB1dFswXSA9
PSAnICcgKQ0KICAgICAgew0KICAgICAgICAgbGluZXNoYXBlID0gc2hhcGVkZWZhdWx0IDsNCiAg
ICAgIH0NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICAgIGxpbmVzaGFwZSA9IHRvdXBwZXIo
IHVzZXJpbnB1dFswXSApIDsNCiAgICAgIH0NCiAgIH0gd2hpbGUgKCBsaW5lc2hhcGUhPUxPUkVO
VFogJiYgbGluZXNoYXBlIT1HQVVTUyApIDsNCg0KICAgKHZvaWQpIHNwcmludGYoIG1zZ3N0cmlu
ZywNCiAgICAgICAgICAgICAgICAgICAiXG5JbmRleDogJWQsIEZyZXE6ICVmLCBIZWlnaHQ6ICVk
LCBXaWR0aDogJWYsIFNoYXBlOiAlYyIsDQogICAgICAgICAgICAgICAgICAgcmVmaW5kZXgsIHJl
ZmZyZXEsIHJlZmhlaWdodCwgbGluZXdpZHRoLCBsaW5lc2hhcGUgKSA7DQogICBJbmZvTXNnKCBt
c2dzdHJpbmcgKSA7DQogICAvKg0KICAgICAgQWxsb3cgdGhlIHVzZXIgdG8gYmFpbCBvdXQuIEZv
cmNlIHRoZW0gdG8gdHlwZSBpbiBhbiBhbnN3ZXIuDQogICAqLw0KICAgKHZvaWQpIHNwcmludGYo
IG1zZ3N0cmluZywgIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlPyAoeS9uKSAiICkgOw0KICAgZG8g
ew0KICAgICAgKHZvaWQpIHN0cmNweSggdXNlcmlucHV0LCBHZXRzKCBtc2dzdHJpbmcsICIgIiAp
ICkgOw0KICAgICAgeWVzbm8gPSB0b3VwcGVyKCB1c2VyaW5wdXRbMF0gKSA7DQogICB9IHdoaWxl
ICggeWVzbm8hPVlFUyAmJiB5ZXNubyE9Tk8gKSA7DQoNCiAgIGlmICggeWVzbm8gPT0gWUVTKQ0K
ICAgew0KICAgICAgU2hvd19zdGF0dXMoICJGaWRkbGU6IENyZWF0aW5nIHRlbXBvcmFyeSBmaWxl
cyIgKSA7DQogICAgICBJbmZvTXNnKCAiXG5XUlAgb24gaWRlYWwiICkgOw0KICAgICAgd3JwKCBw
cm9jX2lkZWFsICkNCiAgICAgIGlmICggQVVFUlIgKQ0KICAgICAgICAgeyAgc3RvcG1zZyggIkZp
ZGRsZTogQ2Fubm90IGRvIFdSUCBvbiBpZGVhbCIgKSB9DQogICAgICAodm9pZCkgSW5mb01zZygg
IlxuV1JQIG9uIHJlZmVyZW5jZSIgKSA7DQogICAgICB3cnAoIHByb2NfZXhwdGwgKQ0KICAgICAg
aWYgKCBBVUVSUiApDQogICAgICAgICB7ICBzdG9wbXNnKCAiRmlkZGxlOiBDYW5ub3QgZG8gV1JQ
IG9uIHJlZmVyZW5jZSIgKSB9DQogICAgICAodm9pZCkgSW5mb01zZyggIlxuV1JQIG9uIGNvcnJl
Y3RlZCIgKSA7DQogICAgICB3cnAoIHByb2NfY29ycmVjdCApDQogICAgICBpZiAoIEFVRVJSICkN
CiAgICAgICAgIHsgIHN0b3Btc2coICJGaWRkbGU6IENhbm5vdCBkbyBXUlAgb24gY29ycmVjdGVk
IiApIH0NCiNpZiBERUJVRw0KICAgICAgKHZvaWQpIEluZm9Nc2coICJcbldSUCBvbiBpZGVhbCBz
YXZlIiApIDsNCiAgICAgIHdycCggcHJvY19pZGVhbF9zYXYgKQ0KICAgICAgaWYgKCBBVUVSUiAp
DQogICAgICAgICB7ICBzdG9wbXNnKCAiRmlkZGxlOiBDYW5ub3QgZG8gV1JQIG9uIGlkZWFsIHNh
dmUiICkgfQ0KICAgICAgKHZvaWQpIEluZm9Nc2coICJcbldSUCBvbiByZWZlcmVuY2Ugc2F2ZSIg
KSA7DQogICAgICB3cnAoIHByb2NfZXhwdGxfc2F2ICkNCiAgICAgIGlmICggQVVFUlIgKQ0KICAg
ICAgICAgeyAgc3RvcG1zZyggIkZpZGRsZTogQ2Fubm90IGRvIFdSUCBvbiByZWZlcmVuY2Ugc2F2
ZSIgKSB9DQogICAgICAodm9pZCkgSW5mb01zZyggIlxuV1JQIG9uIHJhdGlvIHNhdmUiICkgOw0K
ICAgICAgd3JwKCBwcm9jX3JhdGlvX3NhdiApDQogICAgICBpZiAoIEFVRVJSICkNCiAgICAgICAg
IHsgIHN0b3Btc2coICJGaWRkbGU6IENhbm5vdCBkbyBXUlAgb24gcmF0aW8gc2F2ZSIgKSB9DQoj
ZW5kaWYNCg0KICAgICAgLyoNCiAgICAgICAgIEV4dHJhY3QgSGlsYmVydCByZWZlcmVuY2UgbGlu
ZSBhbmQgZ2VuZXJhdGUgaWRlYWwgcmVmZXJlbmNlLg0KICAgICAgKi8NCiAgICAgIEV4dHJhY3RS
ZWZMaW5lKCBsZWZ0c3RhcnQsIGxlZnR6ZXJvcywgcmlnaHRzdGFydCwgcmlnaHR6ZXJvcywNCiAg
ICAgICAgICAgICAgICAgICAgICBmdWxsc2l6ZSwgcmVmaW5kZXgsIGh6cHBudCwgbGluZXdpZHRo
LCBsaW5lc2hhcGUsDQogICAgICAgICAgICAgICAgICAgICAgc3BlYzFyX2EsIHNwZWMxaV9hLCBz
cGVjMnJfYSwgc3BlYzJpX2EgKSA7DQoNCiAgICAgIGlmICggLTEgPT0gV3JpdGVTcGVjKCBzX2Rp
c2ssIHNfdXNlciwgc19uYW1lLCBzX2V4cCwgcHJvY19leHB0bCwNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzcGVjMXJfYSwgc3BlYzFpX2EsIGZ1bGxzaXplICkgKQ0KICAgICAgew0KICAg
ICAgICAgc3RvcA0KICAgICAgfQ0KICAgICAgaWYgKCAtMSA9PSBXcml0ZVNwZWMoIHNfZGlzaywg
c191c2VyLCBzX25hbWUsIHNfZXhwLCBwcm9jX2lkZWFsLA0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNwZWMycl9hLCBzcGVjMmlfYSwgZnVsbHNpemUgKSApDQogICAgICB7DQogICAgICAg
ICBzdG9wDQogICAgICB9DQojaWYgREVCVUcNCiAgICAgIGlmICgtMT09V3JpdGVTcGVjKCBzX2Rp
c2ssIHNfdXNlciwgc19uYW1lLCBzX2V4cCwgcHJvY19leHB0bF9zYXYsDQogICAgICAgICAgICAg
ICAgICAgICAgICAgc3BlYzFyX2EsIHNwZWMxaV9hLCBmdWxsc2l6ZSApICkNCiAgICAgIHsNCiAg
ICAgICAgIHN0b3ANCiAgICAgIH0NCiAgICAgIGlmICgtMT09V3JpdGVTcGVjKCBzX2Rpc2ssIHNf
dXNlciwgc19uYW1lLCBzX2V4cCwgcHJvY19pZGVhbF9zYXYsDQogICAgICAgICAgICAgICAgICAg
ICAgICAgc3BlYzJyX2EsIHNwZWMyaV9hLCBmdWxsc2l6ZSApICkNCiAgICAgIHsNCiAgICAgICAg
IHN0b3ANCiAgICAgIH0NCiNlbmRpZg0KDQogICAgICAvKg0KICAgICAgICAgRG8gaW52ZXJzZSBm
dCwgd2hpY2ggcmVwbGFjZXMgdGhlIHNwZWN0cnVtIChpZSAxciBhbmQgMWkpDQogICAgICAgICBv
ZiB0aGUgcHJvY2Vzc2VkIGRhdGEgbnVtYmVyLCBidXQgbm90IHRoZSBvcmlnaW5hbCBmaWQgb2YN
CiAgICAgICAgIHRoZSBleHBlcmltZW50IG51bWJlci4NCiAgICAgICovDQogICAgICBTaG93X3N0
YXR1cyggIkZpZGRsZTogSUZUIG9uIGlkZWFsIHJlZmVyZW5jZSIgKSA7DQogICAgICBkYXRhc2V0
KCBzX25hbWUsIHNfZXhwLCBwcm9jX2lkZWFsLCBzX2Rpc2ssIHNfdXNlciApDQogICAgICBpZnQN
CiAgICAgIGlmICggQVVFUlIgKQ0KICAgICAgew0KICAgICAgICAgc3RvcG1zZyggIkZpZGRsZTog
Q2Fubm90IGRvIElGVCIgKQ0KICAgICAgfQ0KICAgICAgU2hvd19zdGF0dXMoICJGaWRkbGU6IElG
VCBvbiBleHBlcmltZW50YWwgcmVmZXJlbmNlIiApIDsNCiAgICAgIGRhdGFzZXQoIHNfbmFtZSwg
c19leHAsIHByb2NfZXhwdGwsIHNfZGlzaywgc191c2VyICkNCiAgICAgIGlmdA0KICAgICAgaWYg
KCBBVUVSUiApDQogICAgICB7DQogICAgICAgICBzdG9wbXNnKCAiRmlkZGxlOiBDYW5ub3QgZG8g
SUZUIiApDQogICAgICB9DQogICAgICBTaG93X3N0YXR1cyggIkZpZGRsZTogSUZUIG9uIGNvcHkg
b2Ygb3JpZ2luYWwgc3BlY3RydW0iICkgOw0KICAgICAgZGF0YXNldCggc19uYW1lLCBzX2V4cCwg
cHJvY19jb3JyZWN0LCBzX2Rpc2ssIHNfdXNlciApDQogICAgICBpZnQNCiAgICAgIGlmICggQVVF
UlIgKQ0KICAgICAgew0KICAgICAgICAgc3RvcG1zZyggIkZpZGRsZTogQ2Fubm90IGRvIElGVCIg
KQ0KICAgICAgfQ0KDQogICAgICAvKg0KICAgICAgICAgQ2FsY3VsYXRlIGNvbXBsZXggcmF0aW8g
b2YgdGhlIGlkZWFsL3JlZmVyZW5jZSBmaWRzLg0KICAgICAgICAgTm90ZSB0aGF0IHRoaXMgYXJl
IGRvbmUgb24gZWFjaCBvZiBoYWxmIG9mIHRoZSByZWFsIGFuZA0KICAgICAgICAgaW1hZ2luYXJ5
IHBvaW50cy4gVGh1cyBpZiB0aGUgdXNlciBkaWQgbm90IHplcm9maWxsIHRvIGF0DQogICAgICAg
ICBsZWFzdCB0d2ljZSB0aGUgb3JpZ2luYWwgc2l6ZSwgdGhlIGZpZCBpcyB0cnVuY2F0ZWQuDQog
ICAgICAgICBXZSBkb24ndCBjaGVjayBmb3IgZGl2aWRlIGJ5IHplcm8hDQogICAgICAqLw0KICAg
ICAgU2hvd19zdGF0dXMoICJGaWRkbGU6IFRha2luZyByYXRpbyBvZiBmaWRzOiBpZGVhbC9yZWZl
cmVuY2UiICkgOw0KICAgICAgaWYgKCAtMSA9PSBSZWFkU3BlYyggc19kaXNrLCBzX3VzZXIsIHNf
bmFtZSwgc19leHAsIHByb2NfaWRlYWwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVj
MXJfYSwgc3BlYzFpX2EsIGZ1bGxzaXplICkgKQ0KICAgICAgew0KICAgICAgICAgc3RvcA0KICAg
ICAgfQ0KICAgICAgaWYgKCAtMSA9PSBSZWFkU3BlYyggc19kaXNrLCBzX3VzZXIsIHNfbmFtZSwg
c19leHAsIHByb2NfZXhwdGwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjMnJfYSwg
c3BlYzJpX2EsIGZ1bGxzaXplICkgKQ0KICAgICAgew0KICAgICAgICAgc3RvcA0KICAgICAgfQ0K
ICAgICAgZm9yICggaXg9MDsgaXg8ZnVsbHNpemU7IGl4KysgKQ0KICAgICAgew0KICAgICAgICAg
cmF0aW9yX2FbaXhdID0gMC4wIDsNCiAgICAgICAgIHJhdGlvaV9hW2l4XSA9IDAuMCA7DQogICAg
ICB9DQogICAgICBzdW1yYXRpb19pID0gMC4wIDsNCiAgICAgIHN1bXJhdGlvX3IgPSAwLjAgOw0K
ICAgICAgYXZncmF0aW9faSA9IDAuMCA7DQogICAgICBhdmdyYXRpb19yID0gMC4wIDsNCiAgICAg
IG1heHJhdGlvX2kgPSAtMS4wZTMwIDsNCiAgICAgIG1heHJhdGlvX3IgPSAtMS4wZTMwIDsNCiAg
ICAgIG1pbnJhdGlvX2kgPSAgMS4wZTMwIDsNCiAgICAgIG1pbnJhdGlvX3IgPSAgMS4wZTMwIDsN
CiAgICAgIGZvciAoIGl4PTA7IGl4PChmdWxsc2l6ZS8yKTsgaXgrKyApDQogICAgICB7DQogICAg
ICAgICB0bXAxciA9IChkb3VibGUpIHNwZWMxcl9hW2l4XSA7DQogICAgICAgICB0bXAxaSA9IChk
b3VibGUpIHNwZWMxaV9hW2l4XSA7DQogICAgICAgICB0bXAyciA9IChkb3VibGUpIHNwZWMycl9h
W2l4XSA7DQogICAgICAgICB0bXAyaSA9IChkb3VibGUpIHNwZWMyaV9hW2l4XSA7DQoNCiAgICAg
ICAgIGlmICggZmFicyh0bXAyaSkgPiBmYWJzKHRtcDJyKSApDQogICAgICAgICB7DQogICAgICAg
ICAgICBjcmF0aW8gICAgICAgPSB0bXAyci90bXAyaSA7DQogICAgICAgICAgICBkZW5vbSAgICAg
ICAgPSAxLjAvKGNyYXRpbyp0bXAyciArIHRtcDJpKSA7DQogICAgICAgICAgICByYXRpb2lfYVtp
eF0gPSBkZW5vbSoodG1wMWkqY3JhdGlvLXRtcDFyKSA7DQogICAgICAgICAgICByYXRpb3JfYVtp
eF0gPSBkZW5vbSoodG1wMXIqY3JhdGlvK3RtcDFpKSA7DQogICAgICAgICB9DQogICAgICAgICBl
bHNlDQogICAgICAgICB7DQogICAgICAgICAgICBjcmF0aW8gICAgICAgPSB0bXAyaS90bXAyciA7
DQogICAgICAgICAgICBkZW5vbSAgICAgICAgPSAxLjAvKGNyYXRpbyp0bXAyaSArIHRtcDJyKSA7
DQogICAgICAgICAgICByYXRpb2lfYVtpeF0gPSBkZW5vbSoodG1wMWktY3JhdGlvKnRtcDFyKSA7
DQogICAgICAgICAgICByYXRpb3JfYVtpeF0gPSBkZW5vbSoodG1wMXIrY3JhdGlvKnRtcDFpKSA7
DQogICAgICAgICB9DQogICAgICAgICBzdW1yYXRpb19pICs9IHJhdGlvaV9hW2l4XSA7DQogICAg
ICAgICBzdW1yYXRpb19yICs9IHJhdGlvcl9hW2l4XSA7DQogICAgICAgICBtaW5yYXRpb19pID0g
KCByYXRpb2lfYVtpeF0gPCBtaW5yYXRpb19pICkgPyByYXRpb2lfYVtpeF0gOiBtaW5yYXRpb19p
IDsNCiAgICAgICAgIG1pbnJhdGlvX3IgPSAoIHJhdGlvcl9hW2l4XSA8IG1pbnJhdGlvX3IgKSA/
IHJhdGlvcl9hW2l4XSA6IG1pbnJhdGlvX3IgOw0KICAgICAgICAgbWF4cmF0aW9faSA9ICggcmF0
aW9pX2FbaXhdID4gbWF4cmF0aW9faSApID8gcmF0aW9pX2FbaXhdIDogbWF4cmF0aW9faSA7DQog
ICAgICAgICBtYXhyYXRpb19yID0gKCByYXRpb3JfYVtpeF0gPiBtYXhyYXRpb19yICkgPyByYXRp
b3JfYVtpeF0gOiBtYXhyYXRpb19yIDsNCiAgICAgIH0NCiAgICAgIGF2Z3JhdGlvX2kgPSBzdW1y
YXRpb19pIC8gKGZ1bGxzaXplLzIpIDsNCiAgICAgIGF2Z3JhdGlvX3IgPSBzdW1yYXRpb19yIC8g
KGZ1bGxzaXplLzIpIDsNCg0KI2lmIERFQlVHDQogICAgICAodm9pZCkgc3ByaW50ZiggbXNnc3Ry
aW5nLA0KICAgICAgICAgICAgICAgICAgICAgICJcbkF2ZXJhZ2UgcmF0aW86IHJlYWw9JWcsIGlt
YWdpbmFyeT0lZyIsDQogICAgICAgICAgICAgICAgICAgICAgYXZncmF0aW9fciwgYXZncmF0aW9f
aSApIDsNCiAgICAgIEluZm9Nc2coIG1zZ3N0cmluZyApIDsNCiAgICAgICh2b2lkKSBzcHJpbnRm
KCBtc2dzdHJpbmcsDQogICAgICAgICAgICAgICAgICAgICAgIlxuTWF4aW11bSByYXRpbzogcmVh
bD0lZywgaW1hZ2luYXJ5PSVnIiwNCiAgICAgICAgICAgICAgICAgICAgICBtYXhyYXRpb19yLCBt
YXhyYXRpb19pICkgOw0KICAgICAgSW5mb01zZyggbXNnc3RyaW5nICkgOw0KICAgICAgKHZvaWQp
IHNwcmludGYoIG1zZ3N0cmluZywNCiAgICAgICAgICAgICAgICAgICAgICAiXG5NaW5pbXVtIHJh
dGlvOiByZWFsPSVnLCBpbWFnaW5hcnk9JWciLA0KICAgICAgICAgICAgICAgICAgICAgIG1pbnJh
dGlvX3IsIG1pbnJhdGlvX2kgKSA7DQogICAgICBJbmZvTXNnKCBtc2dzdHJpbmcgKSA7DQoNCiAg
ICAgIC8qDQogICAgICAgICBTYXZlIHRoZSBpZGVhbC9yZWZlcmVuY2UgcmF0aW8gYXMgYSBwcm9j
bm8gZmlsZS4gV2UgaGF2ZSB0bw0KICAgICAgICAgY29udmVydCB0byBpbnRlZ2VyIGluIG9yZGVy
IHRvIGxvb2sgYXQgaXQgaW4gdXhubXIuDQogICAgICAqLw0KICAgICAgQ2xlYXJTcGVjKCBzcGVj
MXJfYSwgc3BlYzFpX2EsIGZ1bGxzaXplICkgOw0KICAgICAgZm9yICggaXg9MDsgaXg8ZnVsbHNp
emU7IGl4KysgKQ0KICAgICAgew0KICAgICAgICAgcmVhbCA9IHJhdGlvcl9hW2l4XSA7DQogICAg
ICAgICBpbWFnID0gcmF0aW9pX2FbaXhdIDsNCg0KICAgICAgICAgaWYgKCByZWFsID4gTUFYTE9O
RyApDQogICAgICAgICB7DQogICAgICAgICAgICBzcGVjMXJfYVtpeF0gPSBNQVhMT05HIDsNCiAg
ICAgICAgIH0NCiAgICAgICAgIGVsc2UNCiAgICAgICAgIHsNCiAgICAgICAgICAgIGlmICggcmVh
bCA8IC1NQVhMT05HICkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgIHNwZWMxcl9hW2l4
XSA9IC1NQVhMT05HIDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAg
ICAgIHsNCiAgICAgICAgICAgICAgIHNwZWMxcl9hW2l4XSA9IChsb25nKSByZWFsIDsNCiAgICAg
ICAgICAgIH0NCiAgICAgICAgIH0NCg0KICAgICAgICAgaWYgKCBpbWFnID4gTUFYTE9ORyApDQog
ICAgICAgICB7DQogICAgICAgICAgICBzcGVjMWlfYVtpeF0gPSBNQVhMT05HIDsNCiAgICAgICAg
IH0NCiAgICAgICAgIGVsc2UNCiAgICAgICAgIHsNCiAgICAgICAgICAgIGlmICggaW1hZyA8IC1N
QVhMT05HICkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgIHNwZWMxaV9hW2l4XSA9IC1N
QVhMT05HIDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsN
CiAgICAgICAgICAgICAgIHNwZWMxaV9hW2l4XSA9IChsb25nKSBpbWFnIDsNCiAgICAgICAgICAg
IH0NCiAgICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGlmICgtMT09V3JpdGVTcGVjKCBzX2Rpc2ss
IHNfdXNlciwgc19uYW1lLCBzX2V4cCwgcHJvY19yYXRpb19zYXYsDQogICAgICAgICAgICAgICAg
ICAgICAgICAgc3BlYzFyX2EsIHNwZWMxaV9hLCBmdWxsc2l6ZSApICkNCiAgICAgIHsNCiAgICAg
ICAgIHN0b3ANCiAgICAgIH0NCiNlbmRpZg0KDQogICAgICAvKg0KICAgICAgICAgSWYgdGhlIHJl
ZmVyZW5jZSByZWdpb24gZG9lc24ndCBoYXZlIG11Y2ggcy9uIHRoZW4gdGhlIGNvcnJlY3RlZA0K
ICAgICAgICAgc3BlY3RydW0gaGFzIGEgdmVyeSByb2xsaW5nIGJhc2VsaW5lIGFuZCBob3JyaWJs
ZSBzL24uIElmIHRoZSBpZGVhbA0KICAgICAgICAgbGluZXdpZHRoIGlzIHRvbyBuYXJyb3cgdGhl
biBmbG9hdGluZyBwb2ludCBleGNlcHRpb25zIG9jY3VyLCB3aGljaA0KICAgICAgICAgaXMgd2h5
IHdlIGNoZWNrIHRoZSBpbnRlbnNpdHkgb2YgdGhlIGZpZCBwb2ludHMuDQogICAgICAqLw0KICAg
ICAgU2hvd19zdGF0dXMoICJGaWRkbGU6IENvcnJlY3RpbmcgdGhlIG9yaWdpbmFsIGZpZDogb3Jp
Z2luYWwqcmF0aW8iICkgOw0KICAgICAgaWYgKCAtMSA9PSBSZWFkU3BlYyggc19kaXNrLCBzX3Vz
ZXIsIHNfbmFtZSwgc19leHAsIHByb2NfY29ycmVjdCwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNwZWMycl9hLCBzcGVjMmlfYSwgZnVsbHNpemUgKSApDQogICAgICB7DQogICAgICAgICBz
dG9wDQogICAgICB9DQoNCiAgICAgIENsZWFyU3BlYyggc3BlYzFyX2EsIHNwZWMxaV9hLCBmdWxs
c2l6ZSApIDsNCiAgICAgIGJhZHIgPSBiYWRpID0gMCA7DQogICAgICBmb3IgKCBpeD0wOyBpeDwo
ZnVsbHNpemUvMik7IGl4KysgKQ0KICAgICAgew0KICAgICAgICAgdG1wMXIgPSByYXRpb3JfYVtp
eF0gOw0KICAgICAgICAgdG1wMWkgPSByYXRpb2lfYVtpeF0gOw0KICAgICAgICAgdG1wMnIgPSAo
ZG91YmxlKSBzcGVjMnJfYVtpeF0gOw0KICAgICAgICAgdG1wMmkgPSAoZG91YmxlKSBzcGVjMmlf
YVtpeF0gOw0KDQogICAgICAgICByZWFsID0gKHRtcDFyKnRtcDJyIC0gdG1wMWkqdG1wMmkpIDsN
CiAgICAgICAgIGltYWcgPSAodG1wMXIqdG1wMmkgKyB0bXAxaSp0bXAycikgOw0KDQogICAgICAg
ICBpZiAoIHJlYWwgPiBNQVhMT05HICkNCiAgICAgICAgIHsNCiAgICAgICAgICAgIGJhZHIrKyA7
DQogICAgICAgICAgICBzcGVjMXJfYVtpeF0gPSBNQVhMT05HIDsNCiAgICAgICAgIH0NCiAgICAg
ICAgIGVsc2UNCiAgICAgICAgIHsNCiAgICAgICAgICAgIGlmICggcmVhbCA8IC1NQVhMT05HICkN
CiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgIGJhZHIrKyA7DQogICAgICAgICAgICAgICBz
cGVjMXJfYVtpeF0gPSAtTUFYTE9ORyA7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNl
DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICBzcGVjMXJfYVtpeF0gPSAobG9uZykgcmVh
bCA7DQogICAgICAgICAgICB9DQogICAgICAgICB9DQoNCiAgICAgICAgIGlmICggaW1hZyA+IE1B
WExPTkcgKQ0KICAgICAgICAgew0KICAgICAgICAgICAgYmFkaSsrIDsNCiAgICAgICAgICAgIHNw
ZWMxaV9hW2l4XSA9IE1BWExPTkcgOw0KICAgICAgICAgfQ0KICAgICAgICAgZWxzZQ0KICAgICAg
ICAgew0KICAgICAgICAgICAgaWYgKCBpbWFnIDwgLU1BWExPTkcgKQ0KICAgICAgICAgICAgew0K
ICAgICAgICAgICAgICAgYmFkaSsrIDsNCiAgICAgICAgICAgICAgIHNwZWMxaV9hW2l4XSA9IC1N
QVhMT05HIDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsN
CiAgICAgICAgICAgICAgIHNwZWMxaV9hW2l4XSA9IChsb25nKSBpbWFnIDsNCiAgICAgICAgICAg
IH0NCiAgICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGlmICggLTEgPT0gV3JpdGVTcGVjKCBzX2Rp
c2ssIHNfdXNlciwgc19uYW1lLCBzX2V4cCwgcHJvY19jb3JyZWN0LA0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNwZWMxcl9hLCBzcGVjMWlfYSwgZnVsbHNpemUgKSApDQogICAgICB7DQog
ICAgICAgICBzdG9wDQogICAgICB9DQoNCiAgICAgIFNob3dfc3RhdHVzKCAiRmlkZGxlOiBVc2lu
ZyBnZW5maWQgdG8gY3JlYXRlIGEgcHJvcGVyIGZpZCIgKSA7DQogICAgICBkYXRhc2V0KCBzX25h
bWUsIHNfZXhwLCBwcm9jX2NvcnJlY3QsIHNfZGlzaywgc191c2VyICkNCiAgICAgIGdlbmZpZCgg
ZXhwX2NvcnJlY3QgKQ0KICAgICAgaWYgKCBBVUVSUiApDQogICAgICB7DQogICAgICAgICBzdG9w
bXNnKCAiRmlkZGxlOiBDYW5ub3QgZG8gR0VORklEIiApDQogICAgICB9DQogICAgICBTaG93X3N0
YXR1cyggIkZpZGRsZTogVHJhbnNmb3JtaW5nIChmdCkgdGhlIGNvcnJlY3RlZCBmaWQiICkgOw0K
ICAgICAgZGF0YXNldCggc19uYW1lLCBleHBfY29ycmVjdCwgMSwgc19kaXNrLCBzX3VzZXIgKQ0K
ICAgICAgZnQNCiAgICAgIGlmICggQVVFUlIgKQ0KICAgICAgew0KICAgICAgICAgc3RvcG1zZygg
IkZpZGRsZTogQ2Fubm90IGRvIEZUIiApDQogICAgICB9DQoNCiAgICAgIFNob3dfc3RhdHVzKCAi
RmlkZGxlOiBSZW1vdmluZyB0ZW1wb3JhcnkgbWVtb3J5IiApIDsNCiAgICAgIGZyZWUoIHNwZWMx
cl9vICkgOw0KICAgICAgZnJlZSggc3BlYzFpX28gKSA7DQogICAgICBmcmVlKCBzcGVjMnJfbyAp
IDsNCiAgICAgIGZyZWUoIHNwZWMyaV9vICkgOw0KICAgICAgZnJlZSggcmF0aW9yX28gKSA7DQog
ICAgICBmcmVlKCByYXRpb2lfbyApIDsNCiNpZiAhIERFQlVHDQogICAgICBTaG93X3N0YXR1cygg
IkZpZGRsZTogUmVtb3ZpbmcgdGVtcG9yYXJ5IGZpbGVzIiApIDsNCiAgICAgIGZvciAoIGl4PTA7
IGl4PDM7IGl4KysgKQ0KICAgICAgew0KICAgICAgICAgUmVtb3ZlUHJvYyggc19kaXNrLCBzX3Vz
ZXIsIHNfbmFtZSwgc19leHAsIHByb2NfdG1wK2l4ICkgOw0KICAgICAgfQ0KI2VuZGlmDQoNCiAg
ICAgICh2b2lkKSBzcHJpbnRmKCBkb25lbXNnLCAiRmlkZGxlOiBGaW5pc2hlZC4gIiApIDsNCiAg
ICAgIGlmICggKGJhZHIhPTApIHx8IChiYWRpIT0wKSApDQogICAgICB7DQogICAgICAgICAodm9p
ZCkgc3ByaW50ZiggbXNnc3RyaW5nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICIlZCByZWFs
IGFuZCAlZCBpbWFnaW5hcnkgcG9pbnRzIHdlcmUgY2xpcHBlZCEgXA0KVHJ5IGluY3JlYXNpbmcg
dGhlIGxpbmV3aWR0aC4gIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFkciwgYmFkaSAp
IDsNCiAgICAgICAgICh2b2lkKSBzdHJjYXQoIGRvbmVtc2csIG1zZ3N0cmluZyApIDsNCiAgICAg
IH0NCiAgICAgIGlmICggYWNxdWlzbW9kZSA9PSBRU0lNICkNCiAgICAgIHsNCiAgICAgICAgICh2
b2lkKSBzcHJpbnRmKCBtc2dzdHJpbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgIlFTSU0g
bW9kZSEgWW91IG1heSBoYXZlIHRvIHJldmVyc2Ugd2l0aCBydi4gIiApIDsNCiAgICAgICAgICh2
b2lkKSBzdHJjYXQoIGRvbmVtc2csIG1zZ3N0cmluZyApIDsNCiAgICAgfQ0KDQojaWYgREVCVUcN
CiAgICAgICh2b2lkKSBzcHJpbnRmKCBtc2dzdHJpbmcsDQogICAgICAgICAgICAgIlJFTUVNQkVS
LCBNQU5VQUxMWSByZW1vdmUgcHJvYyBmaWxlcyBmb3IgZXhwbm8gJWQsIFwNCnN0YXJ0aW5nIGF0
ICVkICEhICIsDQogICAgICAgICAgICAgICAgICAgICAgc19leHAsIHByb2NfdG1wICkgOw0KICAg
ICAgKHZvaWQpIHN0cmNhdCggZG9uZW1zZywgbXNnc3RyaW5nICkgOw0KI2VuZGlmDQoNCiAgIH0g
LyogaWYgeWVzbm8gKi8NCiAgIGVsc2UNCiAgIHsNCiAgICAgICh2b2lkKSBzcHJpbnRmKCBkb25l
bXNnLCAiRmlkZGxlOiBGaW5pc2hlZCBhdCB1c2VyIHJlcXVlc3QhIiApIDsNCiAgIH0NCg0KcXVp
dG1zZyggZG9uZW1zZyApDQoNCi8qDQojaW5jbHVkZSA8bWF0aC5oPg0KKi8NCiNpbmNsdWRlIDx2
YWx1ZXMuaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KI2luY2x1ZGUgPGZjbnRsLmg+DQojaW5jbHVk
ZSA8c3lzL3R5cGVzLmg+DQojaW5jbHVkZSA8c3lzL3N0YXQuaD4NCiNpbmNsdWRlIDxkaXJlbnQu
aD4NCiNpbmNsdWRlICJmaWRkbGUuaCINCg0Kdm9pZCBJbmZvTXNnKCB0ZXh0ICkNCiAgIHBDaGFy
ICAgIHRleHQgOyAgICAgIC8qIG1lc3NhZ2UgdG8gcHJpbnQgKi8NCnsNCiAgIC8qDQogICAgICBX
cml0ZXMgYW4gaW5mb3JtYXRpb25hbCBtZXNzYWdlIHRvIHN0ZGlvLg0KICAgKi8NCiNpZiBERUJV
Rw0KICAgZ2V0dGVybWluYWwNCiAgICh2b2lkKSBwcmludGYoICIlcyIsIHRleHQgKSA7DQogICBl
bmR0ZXJtaW5hbA0KI2VuZGlmDQp9DQoNCnZvaWQgQ2xlYXJTcGVjKCByZWFscG50LCBpbWFncG50
LCBzaXplICkNCiAgIHBMb25nICAgICAgIHJlYWxwbnQgOyAgICAgIC8qIGFycmF5IG9mIHJlYWwg
KGFic29ycHRpb24pICovDQogICBwTG9uZyAgICAgICBpbWFncG50IDsgICAgICAvKiBhcnJheSBv
ZiBpbWFnaW5hcnkgKGRpc3BlcnNpb24pICovDQogICBpbnQgICAgICAgICBzaXplIDsgICAgICAg
ICAvKiBwb2ludHMgaW4gZWFjaCBvZiByZWFsIGFuZCBpbWFnaW5hcnkgKi8NCnsNCiAgIGludCAg
ICAgICAgIGl4IDsgICAgICAgICAgIC8qIGluZGV4IGludG8gYXJyYXlzICovDQoNCiAgIC8qDQog
ICAgICBTZXQgcmVhbCgxcikgYW5kIGltYWdpbmFyeSgxaSkgcG9ydGlvbnMgb2YgdGhlIHNwZWN0
cnVtIHRvIHplcm8uDQogICAqLw0KICAgZm9yICggaXg9MDsgaXg8c2l6ZTsgaXgrKyApDQogICB7
DQogICAgICByZWFscG50W2l4XSA9IDAgOw0KICAgICAgaW1hZ3BudFtpeF0gPSAwIDsNCiAgIH0N
Cg0KfQ0KDQp2b2lkIEV4dHJhY3RSZWZMaW5lKCBsZWZ0c3RhcnQsIGxlZnR6ZXJvcywgcmlnaHRz
dGFydCwgcmlnaHR6ZXJvcywNCiAgICAgICAgICAgICAgICAgICAgIGZ1bGxzaXplLCByZWZpbmRl
eCwgaHpwcG50LCBsaW5ld2lkdGgsIGxpbmVzaGFwZSwNCiAgICAgICAgICAgICAgICAgICAgIHNw
ZWMxciwgc3BlYzFpLCBzcGVjMnIsIHNwZWMyaSApDQogICBpbnQgICAgICAgICBsZWZ0c3RhcnQg
OyAgIC8qIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIG9mIHJlZiByZWdpb24gKi8NCiAgIGludCAgICAg
ICAgIGxlZnR6ZXJvcyA7DQogICBpbnQgICAgICAgICByaWdodHN0YXJ0IDsNCiAgIGludCAgICAg
ICAgIHJpZ2h0emVyb3MgOw0KICAgaW50ICAgICAgICAgZnVsbHNpemUgOw0KICAgaW50ICAgICAg
ICAgcmVmaW5kZXggOyAgICAvKiBpbmRleCBvZiByZWZlcmVuY2UgbGluZSAqLw0KICAgZG91Ymxl
ICAgICAgaHpwcG50IDsNCiAgIGRvdWJsZSAgICAgIGxpbmV3aWR0aCA7DQogICBjaGFyICAgICAg
ICBsaW5lc2hhcGUgOw0KICAgcExvbmcgICAgICAgc3BlYzFyIDsgICAgICAvKiBleHBlcmltZW50
YWwgcmVmZXJlbmNlIGxpbmUgKi8NCiAgIHBMb25nICAgICAgIHNwZWMxaSA7DQogICBwTG9uZyAg
ICAgICBzcGVjMnIgOyAgICAgIC8qIGlkZWFsIHJlZmVyZW5jZSBsaW5lICovDQogICBwTG9uZyAg
ICAgICBzcGVjMmkgOw0Kew0KY29uc3QgZG91YmxlICAgTE4yX3NxcnQgPSBzcXJ0KE1fTE4yKSA7
DQoNCmRvdWJsZSAgIGRlbHRhLCBkZWx0YTIsDQogICAgICAgICBnYW1hLCBnYW1hMiwNCiAgICAg
ICAgIGhlaWdodCwgcG50aW50ZW5zIDsNCg0KbG9uZyAgICAgbGVmdHIsIHJpZ2h0ciwNCiAgICAg
ICAgIGxlZnRpLCByaWdodGksDQogICAgICAgICByZWFsYXZnLCBpbWFnYXZnLA0KICAgICAgICAg
cmVmaGVpZ2h0LCBpeCA7DQoNCiAgIC8qDQogICAgICBFeHRyYWN0IEhpbGJlcnQgcmVmZXJlbmNl
IGxpbmUuIFdlJ3ZlIGFscmVhZHkgcmVhZCB0aGUgcG9pbnRzLg0KICAgICAgWmVybyBwb2ludHMg
b3V0c2lkZSByZWZlcmVuY2UgcmVnaW9uLCBleHRyYXBvbGF0ZQ0KICAgKi8NCiAgIFNob3dfc3Rh
dHVzKCAiRmlkZGxlOiBFeHRyYWN0aW5nIGV4cGVyaW1lbnRhbCByZWZlcmVuY2UgbGluZSIgKSA7
DQoNCiAgIGxlZnRyICAgPSBzcGVjMXJbbGVmdHN0YXJ0K2xlZnR6ZXJvc10gOw0KICAgcmlnaHRy
ICA9IHNwZWMxcltyaWdodHN0YXJ0XSA7DQogICByZWFsYXZnID0gKGxlZnRyK3JpZ2h0cikvMiA7
DQoNCiAgIC8qIFplcm8gb3V0c2lkZSByZWZlcmVuY2UgcmVnaW9uICovDQogICBmb3IgKCBpeD0o
cmVmaW5kZXgtbGVmdHplcm9zKzEpOyBpeDxyZWZpbmRleDsgaXgrKyApDQogICB7DQogICAgICBz
cGVjMXJbcmVmaW5kZXgtaXhdID0gMCA7DQogICAgICBzcGVjMWlbcmVmaW5kZXgtaXhdID0gMCA7
DQogICB9DQogICBmb3IgKCBpeD0ocmlnaHRzdGFydC1yZWZpbmRleCk7IGl4PChmdWxsc2l6ZS1y
ZWZpbmRleCk7IGl4KysgKQ0KICAgew0KICAgICAgc3BlYzFyW3JlZmluZGV4K2l4XSA9IDAgOw0K
ICAgICAgc3BlYzFpW3JlZmluZGV4K2l4XSA9IDAgOw0KICAgfQ0KICAgLyogQWRqdXN0IHJlZmVy
ZW5jZSByZWFsIHBvaW50cyAqLw0KICAgZm9yICggaXg9KGxlZnRzdGFydCtsZWZ0emVyb3MpOyBp
eDxyaWdodHN0YXJ0OyBpeCsrICkNCiAgIHsNCiAgICAgIHNwZWMxcltpeF0gLT0gcmVhbGF2ZyA7
DQogICAgICBzcGVjMWlbaXhdICA9IDAgOw0KICAgfQ0KICAgcmVmaGVpZ2h0ID0gc3BlYzFyW3Jl
ZmluZGV4XSA7DQoNCiAgIC8qIEdlbmVyYXRlIHRoZSBpZGVhbCByZWZlcmVuY2UgbGluZSAqLw0K
DQogICBoZWlnaHQgICA9IHJlZmhlaWdodCA7DQogICBkZWx0YSAgICA9ICgtcmVmaW5kZXgpKmh6
cHBudCAgOw0KICAgZ2FtYSAgICAgPSAwLjUqbGluZXdpZHRoIDsNCiAgIGdhbWEyICAgID0gZ2Ft
YSpnYW1hIDsNCg0KICAgQ2xlYXJTcGVjKCBzcGVjMnIsIHNwZWMyaSwgZnVsbHNpemUgKSA7DQog
ICBpZiAoIGxpbmVzaGFwZSA9PSBMT1JFTlRaICkNCiAgIHsNCiAgICAgIFNob3dfc3RhdHVzKCAi
RmlkZGxlOiBDcmVhdGluZyBpZGVhbCBMb3JlbnR6aWFuIGxpbmUiICkgOw0KDQogICAgICBmb3Ig
KCBpeD0oLXJlZmluZGV4KTsgaXg8KGZ1bGxzaXplLXJlZmluZGV4KTsgaXgrKyApDQogICAgICB7
DQogICAgICAgICBkZWx0YTIgICAgICAgICAgICAgICAgPSBkZWx0YSpkZWx0YSA7DQogICAgICAg
ICBwbnRpbnRlbnMgICAgICAgICAgICAgPSAoaGVpZ2h0KmdhbWEyKS8oZ2FtYTIrZGVsdGEyKSA7
DQogICAgICAgICBzcGVjMnJbcmVmaW5kZXgraXhdICAgPSBwbnRpbnRlbnMgOw0KICAgICAgICAg
c3BlYzJpW3JlZmluZGV4K2l4XSAgID0gLShkZWx0YSpwbnRpbnRlbnMpL2dhbWEgOw0KICAgICAg
ICAgZGVsdGEgICAgICAgICAgICAgICAgKz0gaHpwcG50IDsNCiAgICAgIH0NCiAgIH0NCiAgIGVs
c2UNCiAgIHsNCiAgICAgIC8qDQogICAgICAgICBBcyBmYXIgYXMgSSBjYW4gdGVsbCwgdGhlc2Ug
ZnVuY3Rpb25zIGFyZSBjb3JyZWN0IChBLkcuTWFyc2hhbGwNCiAgICAgICAgIGFuZCBGLlIuVmVy
ZHVuLCBGb3VyaWVyIHRyYW5zZm9ybXMgaW4gbm1yLCBvcHRpY2FsIGFuZCBtYXNzDQogICAgICAg
ICBzcGVjdHJvbWV0cnkpLCBob3dldmVyIHRoZSByZWZlcmVuY2UgcGVha3MgaW4gY29ycmVjdGVk
IHNwZWN0cmENCiAgICAgICAgIGNvbnNpc3RlbnRseSBoYXZlIG5lZ2F0aXZlIHNpZGUgbG9iZXMg
YW5kIGFyZSBhIGxpdHRsZSBuYXJyb3dlcg0KICAgICAgICAgdGhhbiB0aGUgdXNlciBzcGVjaWZp
ZWQuDQogICAgICAqLw0KICAgICAgU2hvd19zdGF0dXMoICJGaWRkbGU6IENyZWF0aW5nIGlkZWFs
IEdhdXNzaWFuIGxpbmUiICkgOw0KDQogICAgICBmb3IgKCBpeD0oLXJlZmluZGV4KTsgaXg8KGZ1
bGxzaXplLXJlZmluZGV4KTsgaXgrKyApDQogICAgICB7DQogICAgICAgICBkZWx0YTIgICAgICAg
ICAgICAgICAgPSBkZWx0YSpkZWx0YSA7DQogICAgICAgICBwbnRpbnRlbnMgICAgICAgICAgICAg
PSBoZWlnaHQqZXhwKC1NX0xOMipkZWx0YTIvZ2FtYTIpIDsNCiAgICAgICAgIHNwZWMycltyZWZp
bmRleCtpeF0gICA9IHBudGludGVucyA7DQogICAgICAgICBzcGVjMmlbcmVmaW5kZXgraXhdICAg
PSAtcG50aW50ZW5zKmVyZihMTjJfc3FydCpkZWx0YS9nYW1hKSA7DQogICAgICAgICBkZWx0YSAg
ICAgICAgICAgICAgICArPSBoenBwbnQgOw0KICAgICAgfQ0KICAgfSAvKiBpZiBsaW5lc2hhcGUg
Ki8NCg0KfQ0KDQp2b2lkIEV4dHJhY3RSZWZMaW5lMSggbGVmdHN0YXJ0LCBsZWZ0emVyb3MsIHJp
Z2h0c3RhcnQsIHJpZ2h0emVyb3MsDQogICAgICAgICAgICAgICAgICAgICBmdWxsc2l6ZSwgcmVm
aW5kZXgsIGh6cHBudCwgbGluZXdpZHRoLCBsaW5lc2hhcGUsDQogICAgICAgICAgICAgICAgICAg
ICBzcGVjMXIsIHNwZWMxaSwgc3BlYzJyLCBzcGVjMmkgKQ0KICAgaW50ICAgICAgICAgbGVmdHN0
YXJ0IDsgICAvKiBsZWZ0IGFuZCByaWdodCBzaWRlcyBvZiByZWYgcmVnaW9uICovDQogICBpbnQg
ICAgICAgICBsZWZ0emVyb3MgOw0KICAgaW50ICAgICAgICAgcmlnaHRzdGFydCA7DQogICBpbnQg
ICAgICAgICByaWdodHplcm9zIDsNCiAgIGludCAgICAgICAgIGZ1bGxzaXplIDsNCiAgIGludCAg
ICAgICAgIHJlZmluZGV4IDsgICAgLyogaW5kZXggb2YgcmVmZXJlbmNlIGxpbmUgKi8NCiAgIGRv
dWJsZSAgICAgIGh6cHBudCA7DQogICBkb3VibGUgICAgICBsaW5ld2lkdGggOw0KICAgY2hhciAg
ICAgICAgbGluZXNoYXBlIDsNCiAgIHBMb25nICAgICAgIHNwZWMxciA7ICAgICAgLyogZXhwZXJp
bWVudGFsIHJlZmVyZW5jZSBsaW5lICovDQogICBwTG9uZyAgICAgICBzcGVjMWkgOw0KICAgcExv
bmcgICAgICAgc3BlYzJyIDsgICAgICAvKiBpZGVhbCByZWZlcmVuY2UgbGluZSAqLw0KICAgcExv
bmcgICAgICAgc3BlYzJpIDsNCnsNCmNvbnN0IGRvdWJsZSAgIExOMl9zcXJ0ID0gc3FydChNX0xO
MikgOw0KDQpkb3VibGUgICBkZWx0YSwgZGVsdGEyLA0KICAgICAgICAgZ2FtYSwgZ2FtYTIsDQog
ICAgICAgICBoZWlnaHQsIHBudGludGVucyA7DQoNCmxvbmcgICAgIGxlZnRyLCByaWdodHIsDQog
ICAgICAgICBsZWZ0aSwgcmlnaHRpLA0KICAgICAgICAgcmVhbGF2ZywgaW1hZ2F2ZywNCiAgICAg
ICAgIHJlZmhlaWdodCwgaXggOw0KDQogICAvKg0KICAgICAgRXh0cmFjdCBIaWxiZXJ0IHJlZmVy
ZW5jZSBsaW5lLiBXZSd2ZSBhbHJlYWR5IHJlYWQgdGhlIHBvaW50cy4NCiAgICAgIFplcm8gcG9p
bnRzIG91dHNpZGUgcmVmZXJlbmNlIHJlZ2lvbiwgZXh0cmFwb2xhdGUNCiAgICovDQogICBTaG93
X3N0YXR1cyggIkZpZGRsZTogRXh0cmFjdGluZyBleHBlcmltZW50YWwgcmVmZXJlbmNlIGxpbmUi
ICkgOw0KDQogICBsZWZ0ciAgID0gc3BlYzFyW2xlZnRzdGFydCtsZWZ0emVyb3NdIDsNCiAgIHJp
Z2h0ciAgPSBzcGVjMXJbcmlnaHRzdGFydF0gOw0KICAgcmVhbGF2ZyA9IChsZWZ0cityaWdodHIp
LzIgOw0KDQogICAvKiBaZXJvIG91dHNpZGUgcmVmZXJlbmNlIHJlZ2lvbiAqLw0KICAgZm9yICgg
aXg9KHJlZmluZGV4LWxlZnR6ZXJvcysxKTsgaXg8cmVmaW5kZXg7IGl4KysgKQ0KICAgew0KICAg
ICAgc3BlYzFyW3JlZmluZGV4LWl4XSA9IDAgOw0KICAgICAgc3BlYzFpW3JlZmluZGV4LWl4XSA9
IDAgOw0KICAgfQ0KICAgZm9yICggaXg9KHJpZ2h0c3RhcnQtcmVmaW5kZXgpOyBpeDwoZnVsbHNp
emUtcmVmaW5kZXgpOyBpeCsrICkNCiAgIHsNCiAgICAgIHNwZWMxcltyZWZpbmRleCtpeF0gPSAw
IDsNCiAgICAgIHNwZWMxaVtyZWZpbmRleCtpeF0gPSAwIDsNCiAgIH0NCiAgIC8qIEFkanVzdCBy
ZWZlcmVuY2UgcmVhbCBwb2ludHMgKi8NCiAgIGZvciAoIGl4PShsZWZ0c3RhcnQrbGVmdHplcm9z
KTsgaXg8cmlnaHRzdGFydDsgaXgrKyApDQogICB7DQogICAgICBzcGVjMXJbaXhdIC09IHJlYWxh
dmcgOw0KICAgICAgc3BlYzFpW2l4XSAgPSAwIDsNCiAgIH0NCiAgIHJlZmhlaWdodCA9IHNwZWMx
cltyZWZpbmRleF0gOw0KDQogICAvKiANCiAgICAgIEdlbmVyYXRlIHRoZSBpZGVhbCByZWZlcmVu
Y2UgbGluZS4gSXQgZW5jb21wYXNzZXMgZXhhY3RseQ0KICAgICAgdGhlIHNhbWUgcmVnaW9uIGFz
IHRoZSBleHBlcmltZW50YWwgcmVmZXJlbmNlIGxpbmUuDQogICAqLw0KDQogICBoZWlnaHQgICA9
IHJlZmhlaWdodCA7DQogICBkZWx0YSAgICA9ICgobGVmdHN0YXJ0K2xlZnR6ZXJvcyktcmVmaW5k
ZXgpKmh6cHBudCAgOw0KICAgZ2FtYSAgICAgPSAwLjUqbGluZXdpZHRoIDsNCiAgIGdhbWEyICAg
ID0gZ2FtYSpnYW1hIDsNCg0KICAgQ2xlYXJTcGVjKCBzcGVjMnIsIHNwZWMyaSwgZnVsbHNpemUg
KSA7DQogICBpZiAoIGxpbmVzaGFwZSA9PSBMT1JFTlRaICkNCiAgIHsNCiAgICAgIFNob3dfc3Rh
dHVzKCAiRmlkZGxlOiBDcmVhdGluZyBpZGVhbCBMb3JlbnR6aWFuIGxpbmUiICkgOw0KDQogICAg
ICBmb3IgKCBpeD0obGVmdHN0YXJ0K2xlZnR6ZXJvcyk7IGl4PHJpZ2h0c3RhcnQ7IGl4KysgKQ0K
ICAgICAgew0KICAgICAgICAgZGVsdGEyICAgICAgICAgICAgICAgID0gZGVsdGEqZGVsdGEgOw0K
ICAgICAgICAgcG50aW50ZW5zICAgICAgICAgICAgID0gKGhlaWdodCpnYW1hMikvKGdhbWEyK2Rl
bHRhMikgOw0KICAgICAgICAgc3BlYzJyW3JlZmluZGV4K2l4XSAgID0gcG50aW50ZW5zIDsNCiAg
ICAgICAgIHNwZWMyaVtyZWZpbmRleCtpeF0gICA9IC0oZGVsdGEqcG50aW50ZW5zKS9nYW1hIDsN
CiAgICAgICAgIGRlbHRhICAgICAgICAgICAgICAgICs9IGh6cHBudCA7DQogICAgICB9DQogICB9
DQogICBlbHNlDQogICB7DQogICAgICAvKg0KICAgICAgICAgQXMgZmFyIGFzIEkgY2FuIHRlbGws
IHRoZXNlIGZ1bmN0aW9ucyBhcmUgY29ycmVjdCAoQS5HLk1hcnNoYWxsDQogICAgICAgICBhbmQg
Ri5SLlZlcmR1biwgRm91cmllciB0cmFuc2Zvcm1zIGluIG5tciwgb3B0aWNhbCBhbmQgbWFzcw0K
ICAgICAgICAgc3BlY3Ryb21ldHJ5KSwgaG93ZXZlciB0aGUgcmVmZXJlbmNlIHBlYWtzIGluIGNv
cnJlY3RlZCBzcGVjdHJhDQogICAgICAgICBjb25zaXN0ZW50bHkgaGF2ZSBuZWdhdGl2ZSBzaWRl
IGxvYmVzIGFuZCBhcmUgYSBsaXR0bGUgbmFycm93ZXINCiAgICAgICAgIHRoYW4gdGhlIHVzZXIg
c3BlY2lmaWVkLg0KICAgICAgKi8NCiAgICAgIFNob3dfc3RhdHVzKCAiRmlkZGxlOiBDcmVhdGlu
ZyBpZGVhbCBHYXVzc2lhbiBsaW5lIiApIDsNCg0KICAgICAgZm9yICggaXg9KGxlZnRzdGFydCts
ZWZ0emVyb3MpOyBpeDxyaWdodHN0YXJ0OyBpeCsrICkNCiAgICAgIHsNCiAgICAgICAgIGRlbHRh
MiAgICAgICAgICAgICAgICA9IGRlbHRhKmRlbHRhIDsNCiAgICAgICAgIHBudGludGVucyAgICAg
ICAgICAgICA9IGhlaWdodCpleHAoLU1fTE4yKmRlbHRhMi9nYW1hMikgOw0KICAgICAgICAgc3Bl
YzJyW3JlZmluZGV4K2l4XSAgID0gcG50aW50ZW5zIDsNCiAgICAgICAgIHNwZWMyaVtyZWZpbmRl
eCtpeF0gICA9IC1wbnRpbnRlbnMqZXJmKExOMl9zcXJ0KmRlbHRhL2dhbWEpIDsNCiAgICAgICAg
IGRlbHRhICAgICAgICAgICAgICAgICs9IGh6cHBudCA7DQogICAgICB9DQogICB9IC8qIGlmIGxp
bmVzaGFwZSAqLw0KDQp9DQoNCnZvaWQgRXh0cmFjdFJlZkxpbmUyKCBsZWZ0c3RhcnQsIGxlZnR6
ZXJvcywgcmlnaHRzdGFydCwgcmlnaHR6ZXJvcywNCiAgICAgICAgICAgICAgICAgICAgIGZ1bGxz
aXplLCByZWZpbmRleCwgaHpwcG50LCBsaW5ld2lkdGgsIGxpbmVzaGFwZSwNCiAgICAgICAgICAg
ICAgICAgICAgIHNwZWMxciwgc3BlYzFpLCBzcGVjMnIsIHNwZWMyaSApDQogICBpbnQgICAgICAg
ICBsZWZ0c3RhcnQgOyAgIC8qIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIG9mIHJlZiByZWdpb24gKi8N
CiAgIGludCAgICAgICAgIGxlZnR6ZXJvcyA7DQogICBpbnQgICAgICAgICByaWdodHN0YXJ0IDsN
CiAgIGludCAgICAgICAgIHJpZ2h0emVyb3MgOw0KICAgaW50ICAgICAgICAgZnVsbHNpemUgOw0K
ICAgaW50ICAgICAgICAgcmVmaW5kZXggOyAgICAvKiBpbmRleCBvZiByZWZlcmVuY2UgbGluZSAq
Lw0KICAgZG91YmxlICAgICAgaHpwcG50IDsNCiAgIGRvdWJsZSAgICAgIGxpbmV3aWR0aCA7DQog
ICBjaGFyICAgICAgICBsaW5lc2hhcGUgOw0KICAgcExvbmcgICAgICAgc3BlYzFyIDsgICAgICAv
KiBleHBlcmltZW50YWwgcmVmZXJlbmNlIGxpbmUgKi8NCiAgIHBMb25nICAgICAgIHNwZWMxaSA7
DQogICBwTG9uZyAgICAgICBzcGVjMnIgOyAgICAgIC8qIGlkZWFsIHJlZmVyZW5jZSBsaW5lICov
DQogICBwTG9uZyAgICAgICBzcGVjMmkgOw0Kew0KY29uc3QgZG91YmxlICAgTE4yX3NxcnQgPSBz
cXJ0KE1fTE4yKSA7DQoNCmRvdWJsZSAgIGRlbHRhLCBkZWx0YTIsDQogICAgICAgICBnYW1hLCBn
YW1hMiwNCiAgICAgICAgIGhlaWdodCwgcG50aW50ZW5zIDsNCg0KbG9uZyAgICAgbGVmdHIsIHJp
Z2h0ciwNCiAgICAgICAgIGxlZnRpLCByaWdodGksDQogICAgICAgICByZWFsYXZnLCBpbWFnYXZn
LA0KICAgICAgICAgcmVhbGFkaiwNCiAgICAgICAgIHJlZmhlaWdodCwgaXggOw0KDQogICAvKg0K
ICAgICAgRXh0cmFjdCBIaWxiZXJ0IHJlZmVyZW5jZSBsaW5lLiBXZSd2ZSBhbHJlYWR5IHJlYWQg
dGhlIHBvaW50cy4NCiAgICAgIFplcm8gcG9pbnRzIG91dHNpZGUgcmVmZXJlbmNlIHJlZ2lvbiwg
ZXh0cmFwb2xhdGUNCiAgICovDQogICBTaG93X3N0YXR1cyggIkZpZGRsZTogRXh0cmFjdGluZyBl
eHBlcmltZW50YWwgcmVmZXJlbmNlIGxpbmUiICkgOw0KDQogICBsZWZ0ciAgID0gc3BlYzFyW2xl
ZnRzdGFydCtsZWZ0emVyb3NdIDsNCiAgIHJpZ2h0ciAgPSBzcGVjMXJbcmlnaHRzdGFydF0gOw0K
ICAgcmVhbGF2ZyA9IChsZWZ0cityaWdodHIpLzIgOw0KICAgaWYgKCByaWdodHIgPD0gbGVmdHIg
KQ0KICAgew0KICAgICAgcmVhbGF2ZyA9IHJpZ2h0ciA7DQogICAgICBsZWZ0ciAgLT0gcmVhbGF2
ZyA7DQogICAgICByaWdodHIgID0gMCA7DQogICB9DQogICBlbHNlDQogICB7DQogICAgICByZWFs
YXZnID0gbGVmdHIgOw0KICAgICAgcmlnaHRyIC09IHJlYWxhdmcgOw0KICAgICAgbGVmdHIgICA9
IDAgOw0KICAgfQ0KDQogICAvKiBFeHRyYXBvbGF0ZSBvdXRzaWRlIHJlZmVyZW5jZSByZWdpb24s
IHdpdGggTG9yZW50emlhbiAoYXBwcm94KSAqLw0KDQogICByZWFsYWRqID0gbGVmdHIqKHJlZmlu
ZGV4LWxlZnR6ZXJvcykgOw0KICAgZm9yICggaXg9KHJlZmluZGV4LWxlZnR6ZXJvcysxKTsgaXg8
cmVmaW5kZXg7IGl4KysgKQ0KICAgew0KICAgICAgc3BlYzFyW3JlZmluZGV4LWl4XSA9IChyZWFs
YWRqLyhpeCppeCkpIDsNCiAgICAgIHNwZWMxaVtyZWZpbmRleC1peF0gPSAwIDsNCiAgIH0NCiAg
IHJlYWxhZGogPSByaWdodHIqKHJpZ2h0c3RhcnQtcmVmaW5kZXgpIDsNCiAgIGZvciAoIGl4PShy
aWdodHN0YXJ0LXJlZmluZGV4KTsgaXg8KGZ1bGxzaXplLXJlZmluZGV4KTsgaXgrKyApDQogICB7
DQogICAgICBzcGVjMXJbcmVmaW5kZXgraXhdID0gKHJlYWxhZGovKGl4Kml4KSkgOw0KICAgICAg
c3BlYzFpW3JlZmluZGV4K2l4XSA9IDAgOw0KICAgfQ0KICAgLyogQWRqdXN0IHJlZmVyZW5jZSBy
ZWFsIHBvaW50cyAqLw0KICAgZm9yICggaXg9KGxlZnRzdGFydCtsZWZ0emVyb3MpOyBpeDxyaWdo
dHN0YXJ0OyBpeCsrICkNCiAgIHsNCiAgICAgIHNwZWMxcltpeF0gLT0gcmVhbGF2ZyA7DQogICAg
ICBzcGVjMWlbaXhdICA9IDAgOw0KICAgfQ0KICAgcmVmaGVpZ2h0ID0gc3BlYzFyW3JlZmluZGV4
XSA7DQoNCiAgIC8qIEdlbmVyYXRlIHRoZSBpZGVhbCByZWZlcmVuY2UgbGluZSBvdmVyIGVudGly
ZSBzcGVjdHJhbCB3aWR0aC4gKi8NCg0KICAgaGVpZ2h0ICAgPSByZWZoZWlnaHQgOw0KICAgZGVs
dGEgICAgPSAoLXJlZmluZGV4KSpoenBwbnQgIDsNCiAgIGdhbWEgICAgID0gMC41KmxpbmV3aWR0
aCA7DQogICBnYW1hMiAgICA9IGdhbWEqZ2FtYSA7DQoNCiAgIENsZWFyU3BlYyggc3BlYzJyLCBz
cGVjMmksIGZ1bGxzaXplICkgOw0KICAgaWYgKCBsaW5lc2hhcGUgPT0gTE9SRU5UWiApDQogICB7
DQogICAgICBTaG93X3N0YXR1cyggIkZpZGRsZTogQ3JlYXRpbmcgaWRlYWwgTG9yZW50emlhbiBs
aW5lIiApIDsNCg0KICAgICAgZm9yICggaXg9KC1yZWZpbmRleCk7IGl4PChmdWxsc2l6ZS1yZWZp
bmRleCk7IGl4KysgKQ0KICAgICAgew0KICAgICAgICAgZGVsdGEyICAgICAgICAgICAgICAgID0g
ZGVsdGEqZGVsdGEgOw0KICAgICAgICAgcG50aW50ZW5zICAgICAgICAgICAgID0gKGhlaWdodCpn
YW1hMikvKGdhbWEyK2RlbHRhMikgOw0KICAgICAgICAgc3BlYzJyW3JlZmluZGV4K2l4XSAgID0g
cG50aW50ZW5zIDsNCiAgICAgICAgIHNwZWMyaVtyZWZpbmRleCtpeF0gICA9IC0oZGVsdGEqcG50
aW50ZW5zKS9nYW1hIDsNCiAgICAgICAgIGRlbHRhICAgICAgICAgICAgICAgICs9IGh6cHBudCA7
DQogICAgICB9DQogICB9DQogICBlbHNlDQogICB7DQogICAgICAvKg0KICAgICAgICAgQXMgZmFy
IGFzIEkgY2FuIHRlbGwsIHRoZXNlIGZ1bmN0aW9ucyBhcmUgY29ycmVjdCAoQS5HLk1hcnNoYWxs
DQogICAgICAgICBhbmQgRi5SLlZlcmR1biwgRm91cmllciB0cmFuc2Zvcm1zIGluIG5tciwgb3B0
aWNhbCBhbmQgbWFzcw0KICAgICAgICAgc3BlY3Ryb21ldHJ5KSwgaG93ZXZlciB0aGUgcmVmZXJl
bmNlIHBlYWtzIGluIGNvcnJlY3RlZCBzcGVjdHJhDQogICAgICAgICBjb25zaXN0ZW50bHkgaGF2
ZSBuZWdhdGl2ZSBzaWRlIGxvYmVzIGFuZCBhcmUgYSBsaXR0bGUgbmFycm93ZXINCiAgICAgICAg
IHRoYW4gdGhlIHVzZXIgc3BlY2lmaWVkLg0KICAgICAgKi8NCiAgICAgIFNob3dfc3RhdHVzKCAi
RmlkZGxlOiBDcmVhdGluZyBpZGVhbCBHYXVzc2lhbiBsaW5lIiApIDsNCg0KICAgICAgZm9yICgg
aXg9KC1yZWZpbmRleCk7IGl4PChmdWxsc2l6ZS1yZWZpbmRleCk7IGl4KysgKQ0KICAgICAgew0K
ICAgICAgICAgZGVsdGEyICAgICAgICAgICAgICAgID0gZGVsdGEqZGVsdGEgOw0KICAgICAgICAg
cG50aW50ZW5zICAgICAgICAgICAgID0gaGVpZ2h0KmV4cCgtTV9MTjIqZGVsdGEyL2dhbWEyKSA7
DQogICAgICAgICBzcGVjMnJbcmVmaW5kZXgraXhdICAgPSBwbnRpbnRlbnMgOw0KICAgICAgICAg
c3BlYzJpW3JlZmluZGV4K2l4XSAgID0gLXBudGludGVucyplcmYoTE4yX3NxcnQqZGVsdGEvZ2Ft
YSkgOw0KICAgICAgICAgZGVsdGEgICAgICAgICAgICAgICAgKz0gaHpwcG50IDsNCiAgICAgIH0N
CiAgIH0gLyogaWYgbGluZXNoYXBlICovDQoNCn0NCg0KaW50IFdyaXRlU3BlYyggZGlza192YWws
IHVzZXJfdmFsLCBuYW1lX3ZhbCwgZXhwX3ZhbCwgcHJvY192YWwsDQogICAgICAgICAgICAgICBy
ZWFscG50LCBpbWFncG50LCBzaXplICkNCiAgIHBDaGFyICAgICAgIGRpc2tfdmFsIDsgICAgIC8q
ICJyb290IiBzdWJkaXIgZm9yIHV4bm1yL0J1cmtlciBpL28gKi8NCiAgIHBDaGFyICAgICAgIHVz
ZXJfdmFsIDsgICAgIC8qIHVzZXIgc3ViZGlyICovDQogICBwQ2hhciAgICAgICBuYW1lX3ZhbCA7
ICAgICAvKiBleHBlcmltZW50IG5hbWUgc3ViZGlyICovDQogICBpbnQgICAgICAgICBleHBfdmFs
IDsgICAgICAvKiBleHBlcmltZW50IG51bWJlciBzdWJkaXIgKi8NCiAgIGludCAgICAgICAgIHBy
b2NfdmFsIDsgICAgIC8qIHByb2Nlc3NlZCBkYXRhIHN1YmRpciAqLw0KICAgcExvbmcgICAgICAg
cmVhbHBudCA7ICAgICAgLyogYXJyYXkgb2YgcmVhbCAoYWJzb3JwdGlvbikgKi8NCiAgIHBMb25n
ICAgICAgIGltYWdwbnQgOyAgICAgIC8qIGFycmF5IG9mIGltYWdpbmFyeSAoZGlzcGVyc2lvbikg
Ki8NCiAgIGludCAgICAgICAgIHNpemUgOyAgICAgICAgIC8qIHBvaW50cyBpbiBlYWNoIG9mIHJl
YWwgYW5kIGltYWdpbmFyeSAqLw0Kew0KICAgU3RyMjU2ICAgICAgc3BlY2ZpbGUgOyAgICAgLyog
cGF0aG5hbWUgb2YgcHJvY2Vzc2VkIGRhdGEgZmlsZSAqLw0KICAgaW50ICAgICAgICAgYnl0ZXNp
emUgOyAgICAgLyogYW1vdW50IG9mIGRhdGEgdG8gcmVhZCBpbiBieXRlcyAqLw0KICAgaW50ICAg
ICAgICAgaW9fZXJyb3IgOyAgICAgLyogVHJ1RSBpcyBpL28gZXJyb3Igb2NjdXJzICovDQogICBp
bnQgICAgICAgICBXcml0ZUJ5dGVzKCkgOyAvKiB3cml0ZXMgZnJvbSBkYXRhIGFycmF5ICovDQoN
CiAgIC8qDQogICAgICBXcml0ZSB0aGUgcmVhbCgxcikgYW5kIGltYWdpbmFyeSgxaSkgcG9ydGlv
bnMgb2YgdGhlIHNwZWN0cnVtLg0KICAgICAgV2UgZXhpdCBpbiB0aGlzIHJvdXRpbmUgaWYgdGhl
cmUgYXJlIGFueSBlcnJvcnMuDQogICAqLw0KICAgYnl0ZXNpemUgPSBzaXplb2YobG9uZykqc2l6
ZSA7DQogICBpb19lcnJvciA9IEZhbHNFIDsNCg0KICAgKHZvaWQpIHNwcmludGYoIHNwZWNmaWxl
LCBVWE5NUl9URU1QTEFURS8xciIsDQogICAgICAgICAgICAgICAgICAgZGlza192YWwsIHVzZXJf
dmFsLCBuYW1lX3ZhbCwgZXhwX3ZhbCwgcHJvY192YWwgKSA7DQogICBpZiAoIChpb19lcnJvciA9
IFdyaXRlQnl0ZXMoIHNwZWNmaWxlLCByZWFscG50LCBieXRlc2l6ZSApICkgPT0gLTEgKQ0KICAg
ew0KICAgICAgQVVFUlIgPSBpb19lcnJvciA7DQogICAgICBzdG9wbXNnKCAiRmlkZGxlOiBDYW5u
b3Qgd3JpdGUgcmVhbCBwb2ludHMiICkNCiAgIH0NCg0KICAgKHZvaWQpIHNwcmludGYoIHNwZWNm
aWxlLCBVWE5NUl9URU1QTEFURS8xaSIsDQogICAgICAgICAgICAgICAgICAgZGlza192YWwsIHVz
ZXJfdmFsLCBuYW1lX3ZhbCwgZXhwX3ZhbCwgcHJvY192YWwgKSA7DQogICBpZiAoIChpb19lcnJv
ciA9IFdyaXRlQnl0ZXMoIHNwZWNmaWxlLCBpbWFncG50LCBieXRlc2l6ZSApICkgPT0gLTEgKQ0K
ICAgew0KICAgICAgQVVFUlIgPSBpb19lcnJvciA7DQogICAgICBzdG9wbXNnKCAiRmlkZGxlOiBD
YW5ub3Qgd3JpdGUgaW1hZ2luYXJ5IHBvaW50cyIgKQ0KICAgfQ0KDQp9DQoNCmludCBSZWFkU3Bl
YyggZGlza192YWwsIHVzZXJfdmFsLCBuYW1lX3ZhbCwgZXhwX3ZhbCwgcHJvY192YWwsDQogICAg
ICAgICAgICAgIHJlYWxwbnQsIGltYWdwbnQsIHNpemUgKQ0KICAgcENoYXIgICAgICAgZGlza192
YWwgOyAgICAgLyogInJvb3QiIHN1YmRpciBmb3IgdXhubXIvQnVya2VyIGkvbyAqLw0KICAgcENo
YXIgICAgICAgdXNlcl92YWwgOyAgICAgLyogdXNlciBzdWJkaXIgKi8NCiAgIHBDaGFyICAgICAg
IG5hbWVfdmFsIDsgICAgIC8qIGV4cGVyaW1lbnQgbmFtZSBzdWJkaXIgKi8NCiAgIGludCAgICAg
ICAgIGV4cF92YWwgOyAgICAgIC8qIGV4cGVyaW1lbnQgbnVtYmVyIHN1YmRpciAqLw0KICAgaW50
ICAgICAgICAgcHJvY192YWwgOyAgICAgLyogcHJvY2Vzc2VkIGRhdGEgc3ViZGlyICovDQogICBw
TG9uZyAgICAgICByZWFscG50IDsgICAgICAvKiBhcnJheSBvZiByZWFsIChhYnNvcnB0aW9uKSAq
Lw0KICAgcExvbmcgICAgICAgaW1hZ3BudCA7ICAgICAgLyogYXJyYXkgb2YgaW1hZ2luYXJ5IChk
aXNwZXJzaW9uKSAqLw0KICAgaW50ICAgICAgICAgc2l6ZSA7ICAgICAgICAgLyogcG9pbnRzIGlu
IGVhY2ggb2YgcmVhbCBhbmQgaW1hZ2luYXJ5ICovDQp7DQogICBTdHIyNTYgICAgICBzcGVjZmls
ZSA7ICAgICAvKiBwYXRobmFtZSBvZiBwcm9jZXNzZWQgZGF0YSBmaWxlICovDQogICBpbnQgICAg
ICAgICBieXRlc2l6ZSA7ICAgICAvKiBhbW91bnQgb2YgZGF0YSB0byByZWFkIGluIGJ5dGVzICov
DQogICBpbnQgICAgICAgICBpb19lcnJvciA7ICAgICAvKiBUcnVFIGlzIGkvbyBlcnJvciBvY2N1
cnMgKi8NCiAgIGludCAgICAgICAgIFJlYWRCeXRlcygpIDsgIC8qIHJlYWRzIGludG8gZGF0YSBh
cnJheSAqLw0KDQogICAvKg0KICAgICAgUmVhZCB0aGUgcmVhbCgxcikgYW5kIGltYWdpbmFyeSgx
aSkgcG9ydGlvbnMgb2YgdGhlIHNwZWN0cnVtLg0KICAgICAgV2UgZXhpdCBpbiB0aGlzIHJvdXRp
bmUgaWYgdGhlcmUgYXJlIGFueSBlcnJvcnMuDQogICAqLw0KICAgYnl0ZXNpemUgPSBzaXplb2Yo
bG9uZykqc2l6ZSA7DQogICBpb19lcnJvciA9IEZhbHNFIDsNCg0KICAgKHZvaWQpIHNwcmludGYo
IHNwZWNmaWxlLCBVWE5NUl9URU1QTEFURS8xciIsDQogICAgICAgICAgICAgICAgICAgZGlza192
YWwsIHVzZXJfdmFsLCBuYW1lX3ZhbCwgZXhwX3ZhbCwgcHJvY192YWwgKSA7DQogICBpZiAoIChp
b19lcnJvciA9IFJlYWRCeXRlcyggc3BlY2ZpbGUsIHJlYWxwbnQsIGJ5dGVzaXplICkgKSA9PSAt
MSApDQogICB7DQogICAgICBBVUVSUiA9IGlvX2Vycm9yIDsNCiAgICAgIHN0b3Btc2coICJGaWRk
bGU6IENhbm5vdCByZWFkIHJlYWwgcG9pbnRzIiApDQogICB9DQoNCiAgICh2b2lkKSBzcHJpbnRm
KCBzcGVjZmlsZSwgVVhOTVJfVEVNUExBVEUvMWkiLA0KICAgICAgICAgICAgICAgICAgIGRpc2tf
dmFsLCB1c2VyX3ZhbCwgbmFtZV92YWwsIGV4cF92YWwsIHByb2NfdmFsICkgOw0KICAgaWYgKCAo
aW9fZXJyb3IgPSBSZWFkQnl0ZXMoIHNwZWNmaWxlLCBpbWFncG50LCBieXRlc2l6ZSApICkgPT0g
LTEgKQ0KICAgew0KICAgICAgQVVFUlIgPSBpb19lcnJvciA7DQogICAgICBzdG9wbXNnKCAiRmlk
ZGxlOiBDYW5ub3QgcmVhZCBpbWFnaW5hcnkgcG9pbnRzIiApDQogICB9DQoNCn0NCg0KaW50IFdy
aXRlQnl0ZXMoIHNwZWNmaWxlLCBieXRlcywgYnl0ZXNpemUgKQ0KICAgcENoYXIgICAgICAgc3Bl
Y2ZpbGUgOyAgICAgLyogcGF0aG5hbWUgb2YgZmlsZSB0byB3cml0ZSAqLw0KICAgcFZvaWQgICAg
ICAgYnl0ZXMgOyAgICAgICAgLyogcG9pbnRlciB0byBieXRlcyB0byB3cml0ZSAqLw0KICAgaW50
ICAgICAgICAgYnl0ZXNpemUgOyAgICAgLyogbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlICovDQp7
DQogICBpbnQgICAgICAgICBmZCA7ICAgICAgICAgICAvKiBmaWxlIGRlc2NyaXB0b3IgKi8NCiAg
IGludCAgICAgICAgIGJ5dGVzd3JpdHRlbiA7IC8qIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSB3
cml0dGVuICovDQogICBpbnQgICAgICAgICBpb19lcnJvciA7ICAgICAvKiBUcnVFIGlmIGkvbyBl
cnJvciBvY2N1cnMgKi8NCg0KICAgaW9fZXJyb3IgID0gRmFsc0UgOw0KDQogICBpZiAoIChmZCA9
IG9wZW4oIHNwZWNmaWxlLCBPX1dST05MWSApICkgPT0gLTEgKQ0KICAgew0KICAgICAgcGVycm9y
KCBzcGVjZmlsZSApIDsNCiAgICAgIGlvX2Vycm9yID0gVHJ1RSA7DQogICB9DQogICBlbHNlDQog
ICB7DQogICAgICBpZiAoIChieXRlc3dyaXR0ZW4gPSB3cml0ZSggZmQsIGJ5dGVzLCBieXRlc2l6
ZSApICkgPT0gLTEgKQ0KICAgICAgew0KICAgICAgICAgcGVycm9yKCBzcGVjZmlsZSApIDsNCiAg
ICAgICAgIGlvX2Vycm9yID0gVHJ1RSA7DQogICAgICB9DQogICAgICBpZiAoICghIGlvX2Vycm9y
KSAmJiAoYnl0ZXN3cml0dGVuICE9IGJ5dGVzaXplKSApDQogICAgICB7DQogICAgICAgICAodm9p
ZCkgcHJpbnRmKCAiXG5cbiVzXG4iLCBzcGVjZmlsZSApIDsNCiAgICAgICAgICh2b2lkKSBwcmlu
dGYoICJFeHBlY3RpbmcgdG8gd3JpdGUgJWQgYnl0ZXMsIG9ubHkgJWQgd2VyZSB4ZmVycmVkXG4i
LA0KICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNpemUsIGJ5dGVzd3JpdHRlbiApIDsNCiAg
ICAgICAgIGlvX2Vycm9yID0gVHJ1RSA7DQogICAgICB9DQogICAgICBpZiAoIGNsb3NlKCBmZCAp
ID09IC0xICkNCiAgICAgIHsNCiAgICAgICAgIHBlcnJvciggc3BlY2ZpbGUgKSA7DQogICAgICAg
ICBpb19lcnJvciA9IFRydUUgOw0KICAgICAgfQ0KICAgfQ0KICAgcmV0dXJuKCBpb19lcnJvciA/
IC0xIDogMCApIDsNCn0NCg0KaW50IFJlYWRCeXRlcyggc3BlY2ZpbGUsIGJ5dGVzLCBieXRlc2l6
ZSApDQogICBwQ2hhciAgICAgICBzcGVjZmlsZSA7ICAgICAvKiBwYXRobmFtZSBvZiBmaWxlIHRv
IHJlYWQgKi8NCiAgIHBWb2lkICAgICAgIGJ5dGVzIDsgICAgICAgIC8qIHBvaW50ZXIgdG8gYnl0
ZXMgdG8gcmVhZCBpbnRvICovDQogICBpbnQgICAgICAgICBieXRlc2l6ZSA7ICAgICAvKiBudW1i
ZXIgb2YgYnl0ZXMgdG8gcmVhZCAqLw0Kew0KICAgaW50ICAgICAgICAgZmQgOyAgICAgICAgICAg
LyogZmlsZSBkZXNjcmlwdG9yICovDQogICBpbnQgICAgICAgICBieXRlc3JlYWQgOyAgICAvKiBu
dW1iZXIgb2YgYnl0ZXMgYWN0dWFsbHkgcmVhZCAqLw0KICAgaW50ICAgICAgICAgaW9fZXJyb3Ig
OyAgICAgLyogVHJ1RSBpZiBpL28gZXJyb3Igb2NjdXJzICovDQoNCiAgIGlvX2Vycm9yID0gRmFs
c0UgOw0KDQogICBpZiAoIChmZCA9IG9wZW4oIHNwZWNmaWxlLCBPX1JET05MWSApICkgPT0gLTEg
KQ0KICAgew0KICAgICAgcGVycm9yKCBzcGVjZmlsZSApIDsNCiAgICAgIGlvX2Vycm9yID0gVHJ1
RSA7DQogICB9DQogICBlbHNlDQogICB7DQogICAgICBpZiAoIChieXRlc3JlYWQgPSByZWFkKCBm
ZCwgYnl0ZXMsIGJ5dGVzaXplICkgKSA9PSAtMSApDQogICAgICB7DQogICAgICAgICBwZXJyb3Io
IHNwZWNmaWxlICkgOw0KICAgICAgICAgaW9fZXJyb3IgPSBUcnVFIDsNCiAgICAgIH0NCiAgICAg
IGlmICggKCEgaW9fZXJyb3IpICYmIChieXRlc3JlYWQgIT0gYnl0ZXNpemUpICkNCiAgICAgIHsN
CiAgICAgICAgICh2b2lkKSBwcmludGYoICJcblxuJXNcbiIsIHNwZWNmaWxlICkgOw0KICAgICAg
ICAgKHZvaWQpIHByaW50ZiggIkV4cGVjdGluZyB0byByZWFkICVkIGJ5dGVzLCBvbmx5ICVkIHdl
cmUgeGZlcnJlZFxuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzaXplLCBieXRlc3Jl
YWQgKSA7DQogICAgICAgICBpb19lcnJvciA9IFRydUUgOw0KICAgICAgfQ0KICAgICAgaWYgKCBj
bG9zZSggZmQgKSA9PSAtMSApDQogICAgICB7DQogICAgICAgICBwZXJyb3IoIHNwZWNmaWxlICkg
Ow0KICAgICAgICAgaW9fZXJyb3IgPSBUcnVFIDsNCiAgICAgIH0NCiAgIH0NCiAgIHJldHVybigg
aW9fZXJyb3IgPyAtMSA6IDAgKSA7DQp9DQoNCmRvdWJsZSBTaWduYWxOb2lzZSggcmVnaW9ubGVm
dCwgcmVnaW9ucmlnaHQsIGRhdGEsIHNpZ25hbCwgbm9pc2UgKQ0KICAgaW50ICAgICAgICAgcmVn
aW9ubGVmdCA7ICAgICAgLyogaW5kZXggb2YgbGVmdCBzaWRlIG9mIHMvbiByZWdpb24gKi8NCiAg
IGludCAgICAgICAgIHJlZ2lvbnJpZ2h0IDsgICAgIC8qIGluZGV4IG9mIHJpZ2h0IHNpZGUgb2Yg
cy9uIHJlZ2lvbiAqLw0KICAgcExvbmcgICAgICAgZGF0YSA7ICAgICAgICAgICAgLyogcG9pbnRl
ciB0byBzdGFydCBvZiBkYXRhIGFycmF5ICovDQogICBwSW50ICAgICAgICBzaWduYWwgOyAgICAg
ICAgICAvKiBtb3N0IGludGVuc2UgcG9pbnQgaW4gcmVnaW9uICovDQogICBwSW50ICAgICAgICBu
b2lzZSA7ICAgICAgICAgICAvKiBybXMgbm9pc2Ugb2YgcmVnaW9uICovDQp7DQojZGVmaW5lIE5v
aXNlUG50IDY0DQogICBpbnQgICAgICAgICBpeCA7ICAgICAgICAgICAgICAvKiBpbmRleCBpbnRv
IGRhdGEgYXJyYXkgKi8NCiAgIGludCAgICAgICAgIHNpZ21pbiwgc2lnbWF4IDsgIC8qIG1pbmlt
dW0gYW5kIG1heGltdW0gcG9pbnRzIGluIHJlZ2lvbiAqLw0KICAgZG91YmxlICAgICAgc3VtbCwg
c3VtciA7ICAgICAgLyogc3VtIG9mIGxlZnQgJiByaWdodCBub2lzZSBwb2ludHMgKi8NCiAgIGRv
dWJsZSAgICAgIGF2Z2wsIGF2Z3IgOyAgICAgIC8qIGF2ZXJhZ2Ugb2YgdGhlIG5vaXNlIHBvaW50
cyAqLw0KICAgZG91YmxlICAgICAgcm1zbCwgcm1zciA7ICAgICAgLyogcm1zIGRldmlhdGlvbiBv
ZiBub2lzZSBwb2ludHMgKi8NCiAgIGRvdWJsZSAgICAgIHJtc3RtcCA7DQogICAvKg0KICAgICAg
VGhpcyByb3V0aW5lIHJldHVybnMgdGhlIHNpZ25hbCB0byBub2lzZSByYXRpbyBvZiB0aGUgZGF0
YSBhcnJheSBmcm9tDQogICAgICBpbmRpY2VzIHJlZ2lvbmxlZnQgdG8gcmVnaW9ucmlnaHQuIFBh
cmFtZXRlcnMgc2lnbmFsIGFuZCBub2lzZSByZXR1cm4NCiAgICAgIHRoZSBpbmRpdmlkdWFsIHZh
bHVlcyBpbiBjYXNlIHRoZXkgYXJlIG5lZWRlZCBzZXBhcmF0ZWx5LiBUaGUgbm9pc2UNCiAgICAg
IGlzIGNhbGN1bGF0ZWQgZnJvbSB0d28gTm9pc2VQbnQgYmxvY2tzIGF0IHRoZSBsZWZ0IGFuZCBy
aWdodCBzaWRlcyBvZg0KICAgICAgdGhlIHJlZ2lvbi4NCiAgICovDQogICBpZiAoIHJlZ2lvbmxl
ZnQgPiByZWdpb25yaWdodCApICAgICAvKiBzd2FwIGluZGljZXMgaWYgbmVjZXNzYXJ5ICovDQog
ICB7DQogICAgICBpeCAgICAgICAgICA9IHJlZ2lvbmxlZnQgOw0KICAgICAgcmVnaW9ubGVmdCAg
PSByZWdpb25yaWdodCA7DQogICAgICByZWdpb25yaWdodCA9IGl4IDsNCiAgIH0NCg0KICAgc3Vt
bCA9IHN1bXIgPSAwLjAgOyAgICAgICAgICAgICAgICAgLyogYXZlcmFnZSBvZiBub2lzZSBwb2lu
dHMgKi8NCiAgIGZvciAoIGl4PTA7IGl4PE5vaXNlUG50OyBpeCsrICkNCiAgIHsNCiAgICAgIHN1
bWwgKz0gZGF0YVtyZWdpb25sZWZ0K2l4XSA7DQogICAgICBzdW1yICs9IGRhdGFbcmVnaW9ucmln
aHQtaXhdIDsNCiAgIH0NCiAgIGF2Z2wgPSBzdW1sL05vaXNlUG50IDsNCiAgIGF2Z3IgPSBzdW1y
L05vaXNlUG50IDsNCg0KICAgc3VtbCA9IHN1bXIgPSAwLjAgOyAgICAgICAgICAgICAgICAgLyog
cm1zIG9mIG5vaXNlIHBvaW50cyAqLw0KICAgZm9yICggaXg9MDsgaXg8Tm9pc2VQbnQ7IGl4Kysg
KQ0KICAgew0KICAgICAgcm1zdG1wID0gYXZnbCAtIGRhdGFbcmVnaW9ubGVmdCtpeF0gOw0KICAg
ICAgc3VtbCAgKz0gcm1zdG1wKnJtc3RtcCA7DQogICAgICBybXN0bXAgPSBhdmdsIC0gZGF0YVty
ZWdpb25yaWdodC1peF0gOw0KICAgICAgc3VtciAgKz0gcm1zdG1wKnJtc3RtcCA7DQogICB9DQog
ICBybXNsID0gc3FydCggc3VtbC9Ob2lzZVBudCApIDsNCiAgIHJtc3IgPSBzcXJ0KCBzdW1yL05v
aXNlUG50ICkgOw0KDQogICAqbm9pc2UgPSAoaW50KSgocm1zbCtybXNyKS8yLjApIDsNCiAgIGlm
ICggKm5vaXNlIDw9IDAgKSAqbm9pc2UgPSAxIDsNCg0KICAgc2lnbWF4ID0gLU1BWExPTkcgOyAg
ICAgICAgICAgICAgICAvKiBmaW5kIG1pbiBhbmQgbWF4IHBvaW50cyAqLw0KICAgc2lnbWluID0g
IE1BWExPTkcgOw0KICAgZm9yICggaXg9cmVnaW9ubGVmdDsgaXg8PXJlZ2lvbnJpZ2h0OyBpeCsr
ICkNCiAgIHsNCiAgICAgIGlmICggZGF0YVtpeF0gPiBzaWdtYXggKSBzaWdtYXggPSBkYXRhW2l4
XSA7DQogICAgICBpZiAoIGRhdGFbaXhdIDwgc2lnbWluICkgc2lnbWluID0gZGF0YVtpeF0gOw0K
ICAgfQ0KICAgaWYgKCBzaWdtYXggPCAwICkgc2lnbWF4ID0gLTEqc2lnbWF4IDsNCiAgIGlmICgg
c2lnbWluIDwgMCApIHNpZ21pbiA9IC0xKnNpZ21pbiA7DQogICAqc2lnbmFsID0gKCBzaWdtYXgg
Pj0gc2lnbWluICkgPyBzaWdtYXggOiBzaWdtaW4gOw0KDQogICByZXR1cm4oIChkb3VibGUpKCpz
aWduYWwpIC8gKGRvdWJsZSkoKm5vaXNlKSApIDsNCg0KfQ0KDQp2b2lkIFJlbW92ZVByb2MoIGRp
c2tfdmFsLCB1c2VyX3ZhbCwgbmFtZV92YWwsIGV4cF92YWwsIHByb2NfdmFsICkNCiAgIHBDaGFy
ICAgICAgIGRpc2tfdmFsIDsgICAgIC8qICJyb290IiBzdWJkaXIgZm9yIHV4bm1yL0J1cmtlciBp
L28gKi8NCiAgIHBDaGFyICAgICAgIHVzZXJfdmFsIDsgICAgIC8qIHVzZXIgc3ViZGlyICovDQog
ICBwQ2hhciAgICAgICBuYW1lX3ZhbCA7ICAgICAvKiBleHBlcmltZW50IG5hbWUgc3ViZGlyICov
DQogICBpbnQgICAgICAgICBleHBfdmFsIDsgICAgICAvKiBleHBlcmltZW50IG51bWJlciBzdWJk
aXIgKi8NCiAgIGludCAgICAgICAgIHByb2NfdmFsIDsgICAgIC8qIHByb2Nlc3NlZCBkYXRhIHN1
YmRpciAqLw0Kew0KICAgU3RyMTI4ICAgICAgZGF0YXBhdGggOyAgICAgLyogcGF0aG5hbWUgb2Yg
ZGlyZWN0b3J5IHRvIHJlbW92ZSAqLw0KICAgdm9pZCAgICAgICAgUmVjUmVtb3ZlKCkgOw0KICAg
LyoNCiAgICAgIFJlbW92ZSBhIHByb2NubyBzdWJkaXJlY3RvcnkgdXNpbmcgb3VyIG93biByZWN1
cnNpdmUgInJlbW92ZSIuDQoNCiAgICAgIE9yaWdpbmFsbHkgYSBzeXN0ZW0gY2FsbCBzdWNoIGFz
IHN5c3RlbSgicm0gLXJmIGRhdGFwYXRoIikgd2FzDQogICAgICB1c2VkLCBob3dldmVyIGlmIHRo
ZSBzaXplIG9mIHRoZSBzcGVjdHJ1bSB3YXMgbGFyZ2UgKGVnIFNJPTI1NmspDQogICAgICBpdCBm
YWlsZWQgd2l0aCB0aGUgbWVzc2FnZQ0KDQogICAgICBOb3RpY2U6IGR1cHJlZyAtIEluc3VmZmlj
aWVudCBtZW1vcnkgdG8gYWxsb2NhdGUgeHh4eCBwYWdlcw0KICAgICAgICAgICAgICAgICAgICAg
LSBzeXN0ZW0gY2FsbCBmYWlsZWQuDQogICAgICAoMiwvdS9leHAvc3Rhbi9ubXIvYXUvYmluL2Zp
ZGRsZSB5eXl5DQogICAgICAgLy91L3Byb2cvOTAxMDAxLjEvY3VyZGlyL3VzZXIvY2Quenp6eikN
Cg0KICAgICAgSSB3b3VsZCBoYXZlIHRyaWVkICJTeXN0ZW0iIGlmIEkgaGFkIGtub3duIGFib3V0
IGl0LCBidXQgaGFkDQogICAgICBhbHJlYWR5IHdyaXR0ZW4gUmVjUmVtb3ZlLg0KICAgKi8NCiAg
ICh2b2lkKSBzcHJpbnRmKCBkYXRhcGF0aCwgVVhOTVJfVEVNUExBVEUiLA0KICAgICAgICAgICAg
ICAgICAgIGRpc2tfdmFsLCB1c2VyX3ZhbCwgbmFtZV92YWwsIGV4cF92YWwsIHByb2NfdmFsICkg
Ow0KICAgUmVjUmVtb3ZlKCBkYXRhcGF0aCApIDsNCn0NCg0Kdm9pZCBSZWNSZW1vdmUoIGZpbGVu
YW1lICkNCiAgIHBDaGFyICAgIGZpbGVuYW1lIDsNCnsNCiAgIHN0cnVjdCAgIHN0YXQgc3RidWYg
Ow0KICAgdm9pZCAgICAgRGlyV2FsaygpIDsNCiAgIC8qDQogICAgICBUaGlzIGZ1bmN0aW9uIHJl
bW92ZXMgZmlsZW5hbWUuIElmIGZpbGVuYW1lIGlzIGEgZGlyZWN0b3J5IGl0IGNhbGxzDQogICAg
ICBEaXJXYWxrIHRvIGhhbmRsZSBhbGwgdGhlIGZpbGVzIGluIGl0Lg0KICAgKi8NCiAgIGlmICgg
c3RhdChmaWxlbmFtZSwmc3RidWYpICE9IC0xICkNCiAgIHsNCiAgICAgIGlmICggKHN0YnVmLnN0
X21vZGUgJiBTX0lGTVQpID09IFNfSUZESVIgKQ0KICAgICAgew0KICAgICAgICAgRGlyV2Fsaygg
ZmlsZW5hbWUsIFJlY1JlbW92ZSApIDsNCiAgICAgICAgICh2b2lkKSBybWRpciggZmlsZW5hbWUg
KSA7DQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgICAodm9pZCkgdW5saW5r
KCBmaWxlbmFtZSApIDsNCiAgICAgIH0NCiAgIH0NCn0NCg0Kdm9pZCBEaXJXYWxrKCBkaXIsIGZj
biApDQogICBwQ2hhciAgICBkaXIgOyAgICAgICAgICAvKiBkaXJlY3RvcnkgdG8gIndhbGsiICov
DQogICB2b2lkICAgICAoKmZjbikoKSA7ICAgICAvKiBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNo
IGZpbGUgaW4gZGlyICovDQp7DQogICBTdHIxMDI0ICAgICAgICBuYW1lIDsNCiAgIHN0cnVjdCBk
aXJlbnQgICpkcCA7DQogICBESVIgICAgICAgICAgICAqZGZkIDsNCiAgIC8qDQogICAgICBUaGlz
IGlzIGEgZ2VuZXJhbCByb3V0aW5lIHRoYXQgYXBwbGllcyBmdW5jdGlvbiAiZmNuIiB0byBlYWNo
IGZpbGUNCiAgICAgIGluIGRpcmVjdG9yeSAiZGlyIi4gSXQgb3BlbnMgdGhlIGRpcmVjdG9yeSwg
bG9vcHMgdGhyb3VnaCB0aGUgZmlsZXMNCiAgICAgIGluIGl0LCBjYWxsaW5nIGZjbiBvbiBlYWNo
LCBjbG9zZXMgdGhlIGRpcmVjdG9yeSBhbmQgcmV0dXJucy4NCiAgICAgIE5vdGUgdGhhdCBEaXJX
YWxrIGFuZCBmY24gY291bGQgYmUgbXV0dWFsbHkgcmVjdXJzaXZlLg0KICAgKi8NCiAgIGlmICgg
KGRmZCA9IG9wZW5kaXIoZGlyKSkgIT0gTlVMTCApDQogICB7DQogICAgICB3aGlsZSAoIChkcCA9
IHJlYWRkaXIoZGZkKSkgIT0gTlVMTCApDQogICAgICB7DQogICAgICAgICBpZiAoIChzdHJjbXAo
ZHAtPmRfbmFtZSwiLiIpICE9IDApICYmDQogICAgICAgICAgICAgIChzdHJjbXAoZHAtPmRfbmFt
ZSwiLi4iKSAhPSAwKSApDQogICAgICAgICB7DQogICAgICAgICAgICAodm9pZCkgc3ByaW50Zigg
bmFtZSwgIiVzLyVzIiwgZGlyLCBkcC0+ZF9uYW1lICkgOw0KICAgICAgICAgICAgKCpmY24pKG5h
bWUpIDsNCiAgICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGNsb3NlZGlyKCBkZmQgKSA7DQogICB9
DQp9DQqtdgIFkAYA1AAAABEAAAADACEOAQAAAAMACzf/////AwAgDsfAAAADAPcPAAAAAAMABTcB
AAAAQAAHMKAvAMIdnr0BQAAIMKCOvcgqnr0BHgABMAEAAAAHAAAAZmlkZGxlAAACAQI3AQAAAAAA
AAAeAAM3AQAAAAEAAAAAAAAAHgAHNwEAAAAHAAAAZmlkZGxlAAADAPp/AAAAAEAA+38AQN2jV0Wz
DEAA/H8AQN2jV0WzDAMA/X8AAAAACwD+fwAAAAACAfkPAQAAABAAAAACI278BwrSEb1yAIBf/n70
JSw=

------ =_NextPart_000_01BD9E2F.CA0F0378--