[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: BTW
>> Now mnemoÄfe witkg segfaults most of the time :)
>>
>> The segfaults now are caused when you pass a bad URL, (ie http://localhost
>> is a bad url for us, as opposed to http://localhost/), and a few other
>> minor problems.
>>
>> Andrew
Has anyone ever told you you're a genius :)
When are we going to get together to hammer out this MP stuff (with anyone else who wants) ???
Joe.
--
Joe Vaughan <joev@freddyfrog.com>
PGP: Mail joev@freddyfrog.com with Subject: "Gimme PGP Key"
-------------------------------------------------------LÑ@œ @4Îÿ¿4Îÿ¿ÀÏÿ¿0 h 4Îÿ¿ ™™™ ŠÙ@aL@4Îÿ¿´Ïÿ¿
0 mailto:joev@mnemonic.org œ @œ
>From jfb11@darkstar.inlink.com Tue Sep 2 02:04:08 1997
Received: from darkstar.inlink.com ([206.196.97.112] EHLO darkstar.inlink.com ident: NO-IDENT-SERVICE [port 18436]) by cal052204.student.utwente.nl with ESMTP id <4181-10117>; Tue, 2 Sep 1997 02:03:59 +0200
Received: from localhost (jfb11@localhost)
by darkstar.inlink.com (8.8.5/8.8.5) with SMTP id SAA14926
for <mnemonic-dev@oloon.student.utwente.nl>; Mon, 1 Sep 1997 18:55:32 -0500
Date: Mon, 1 Sep 1997 18:55:31 -0500 (CDT)
From: Jim Bresler <jfb11@darkstar.inlink.com>
To: mnemonic-dev@cal052204.student.utwente.nl
Subject: List of about 15 bugs in netmanager/clientmanager/distmanager/utils
Message-ID: <Pine.LNX.3.95.970901185230.14924A-200000@darkstar.inlink.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1074995251-873158131=:14924"
Return-Path: <jfb11@darkstar.inlink.com>
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
--8323328-1074995251-873158131=:14924
Content-Type: TEXT/PLAIN; charset=US-ASCII
Hi, this has a list of a bunch of bugs in Mnemonic. Note that a
bug may be listed up to three times because of the way it was tested.
Whenever a bug is listed, it has a stack trace of where the error would
occur if applicable. Also, if it is a memmory it also gives a stack trace
as to where the memmory was allocated.
Note that this has a total of about 90 things listed, many of
which are bad C++ and should be fixed. In a few hours, I will be posting
a long list of things done that shouldn't be according to "Effective C++"
and "More Effective C++."
--8323328-1074995251-873158131=:14924
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=mn1
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970901185531.14924B@darkstar.inlink.com>
Content-Description:
ICAgICAgICAgICAgICAgICAgICAgIE1uZW1vbmljIFNvdXJjZSBBbmFseXNp
cw0KICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlZCBieSBJbnN1cmUr
KyB2MS4zDQoNCltIVFRQUmVxdWVzdDEwLmNjOjQyXSAqKkxFQUtfQVNTSUdO
KioNCg0KICBNZW1vcnkgbGVha2VkIGR1ZSB0byBwb2ludGVyIHJlYXNzaWdu
bWVudDogPHJldHVybj4NCg0KICBMb3N0IGJsb2NrIDogMHgwODQyZDVkOCB0
aHJ1IDB4MDg0MmQ5ZDcgKDEwMjQgYnl0ZXMpDQogICAgICAgICAgICAgICBi
bG9jayBhbGxvY2F0ZWQgYXQ6DQogICAgICAgICAgICAgICAgICAgICAgICAg
IG1hbGxvYygpICAoaW50ZXJmYWNlKQ0KICAgICAgICAgICAgIEhUVFBSZXF1
ZXN0Ojplc2NhcGUoKSAgSFRUUFJlcXVlc3QuY2MsIDE3DQogICAgICAgICAg
ICAgSFRUUFJlcXVlc3QxMDo6U2VuZCgpICBIVFRQUmVxdWVzdDEwLmNjLCAz
OQ0KICAgICAgICBIVFRQSGFuZGxlcjo6U2VuZENvbW1hbmQoKSAgSFRUUEhh
bmRsZXIuY2MsIDQ2MA0KICAgICAgICBIVFRQSGFuZGxlcjo6TWFrZVJlcXVl
c3QoKSAgSFRUUEhhbmRsZXIuY2MsIDI4OA0KICAgICAgICAgIEhUVFBIYW5k
bGVyOjpHZXRPYmplY3QoKSAgSFRUUEhhbmRsZXIuY2MsIDE3Mw0KICAgICAg
ICAgIEhUVFBIYW5kbGVyOjpHZXRPYmplY3QoKSAgSFRUUEhhbmRsZXIuY2Ms
IDE1Mw0KICAgIE5ldHdvcmtNYW5hZ2VyOjpEb0Nvbm5lY3Rpb24oKSAgbmV0
bWFuYWdlci5jYywgMTI3DQoNCiAgU3RhY2sgdHJhY2Ugd2hlcmUgdGhlIGVy
cm9yIG9jY3VycmVkOg0KICAgICAgICAgICAgIEhUVFBSZXF1ZXN0MTA6OlNl
bmQoKSAgSFRUUFJlcXVlc3QxMC5jYywgNDINCiAgICAgICAgSFRUUEhhbmRs
ZXI6OlNlbmRDb21tYW5kKCkgIEhUVFBIYW5kbGVyLmNjLCA0NjANCiAgICAg
ICAgSFRUUEhhbmRsZXI6Ok1ha2VSZXF1ZXN0KCkgIEhUVFBIYW5kbGVyLmNj
LCAyODgNCiAgICAgICAgICBIVFRQSGFuZGxlcjo6R2V0T2JqZWN0KCkgIEhU
VFBIYW5kbGVyLmNjLCAxNzMNCiAgICAgICAgICBIVFRQSGFuZGxlcjo6R2V0
T2JqZWN0KCkgIEhUVFBIYW5kbGVyLmNjLCAxNTMNCiAgICBOZXR3b3JrTWFu
YWdlcjo6RG9Db25uZWN0aW9uKCkgIG5ldG1hbmFnZXIuY2MsIDEyNw0KICAg
ICAgICBOZXR3b3JrTWFuYWdlcjo6RmV0Y2hVUkwoKSAgbmV0bWFuYWdlci5j
YywgMTkyDQogICAgTmV0d29ya01hbmFnZXI6OkZldGNoVVJMTWVzcygpICBu
ZXRtYW5hZ2VyLmgsIDExNQ0KDQpbSFRUUFJlcXVlc3QxMC5jYzo0Ml0gKipM
RUFLX0FTU0lHTioqDQoNCiAgTWVtb3J5IGxlYWtlZCBkdWUgdG8gcG9pbnRl
ciByZWFzc2lnbm1lbnQ6IDxyZXR1cm4+DQoNCiAgTG9zdCBibG9jayA6IDB4
MDg0NTM1OTggdGhydSAweDA4NDUzOTk3ICgxMDI0IGJ5dGVzKQ0KICAgICAg
ICAgICAgICAgYmxvY2sgYWxsb2NhdGVkIGF0Og0KICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYWxsb2MoKSAgKGludGVyZmFjZSkNCiAgICAgICAgICAg
ICBIVFRQUmVxdWVzdDo6ZXNjYXBlKCkgIEhUVFBSZXF1ZXN0LmNjLCAxNw0K
ICAgICAgICAgICAgIEhUVFBSZXF1ZXN0MTA6OlNlbmQoKSAgSFRUUFJlcXVl
c3QxMC5jYywgMzkNCiAgICAgICAgSFRUUEhhbmRsZXI6OlNlbmRDb21tYW5k
KCkgIEhUVFBIYW5kbGVyLmNjLCA0NjANCiAgICAgICAgSFRUUEhhbmRsZXI6
Ok1ha2VSZXF1ZXN0KCkgIEhUVFBIYW5kbGVyLmNjLCAyODgNCiAgICAgICAg
ICBIVFRQSGFuZGxlcjo6R2V0T2JqZWN0KCkgIEhUVFBIYW5kbGVyLmNjLCAx
NzMNCiAgICAgICAgICBIVFRQSGFuZGxlcjo6R2V0T2JqZWN0KCkgIEhUVFBI
YW5kbGVyLmNjLCAxNTMNCiAgICBOZXR3b3JrTWFuYWdlcjo6RG9Db25uZWN0
aW9uKCkgIG5ldG1hbmFnZXIuY2MsIDEyNw0KDQogIFN0YWNrIHRyYWNlIHdo
ZXJlIHRoZSBlcnJvciBvY2N1cnJlZDoNCiAgICAgICAgICAgICBIVFRQUmVx
dWVzdDEwOjpTZW5kKCkgIEhUVFBSZXF1ZXN0MTAuY2MsIDQyDQogICAgICAg
IEhUVFBIYW5kbGVyOjpTZW5kQ29tbWFuZCgpICBIVFRQSGFuZGxlci5jYywg
NDYwDQogICAgICAgIEhUVFBIYW5kbGVyOjpNYWtlUmVxdWVzdCgpICBIVFRQ
SGFuZGxlci5jYywgMjg4DQogICAgICAgICAgSFRUUEhhbmRsZXI6OkdldE9i
amVjdCgpICBIVFRQSGFuZGxlci5jYywgMTczDQogICAgICAgICAgSFRUUEhh
bmRsZXI6OkdldE9iamVjdCgpICBIVFRQSGFuZGxlci5jYywgMTUzDQogICAg
TmV0d29ya01hbmFnZXI6OkRvQ29ubmVjdGlvbigpICBuZXRtYW5hZ2VyLmNj
LCAxMjcNCiAgICAgICAgTmV0d29ya01hbmFnZXI6OkZldGNoVVJMKCkgIG5l
dG1hbmFnZXIuY2MsIDE5Mg0KICAgIE5ldHdvcmtNYW5hZ2VyOjpGZXRjaFVS
TE1lc3MoKSAgbmV0bWFuYWdlci5oLCAxMTUNCg0KW0hUVFBSZXF1ZXN0MTAu
Y2M6NDJdICoqTEVBS19BU1NJR04qKg0KDQogIE1lbW9yeSBsZWFrZWQgZHVl
IHRvIHBvaW50ZXIgcmVhc3NpZ25tZW50OiA8cmV0dXJuPg0KDQogIExvc3Qg
YmxvY2sgOiAweDA4NDUzNWQ4IHRocnUgMHgwODQ1MzlkNyAoMTAyNCBieXRl
cykNCiAgICAgICAgICAgICAgIGJsb2NrIGFsbG9jYXRlZCBhdDoNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWFsbG9jKCkgIChpbnRlcmZhY2UpDQog
ICAgICAgICAgICAgSFRUUFJlcXVlc3Q6OmVzY2FwZSgpICBIVFRQUmVxdWVz
dC5jYywgMTcNCiAgICAgICAgICAgICBIVFRQUmVxdWVzdDEwOjpTZW5kKCkg
IEhUVFBSZXF1ZXN0MTAuY2MsIDM5DQogICAgICAgIEhUVFBIYW5kbGVyOjpT
ZW5kQ29tbWFuZCgpICBIVFRQSGFuZGxlci5jYywgNDYwDQogICAgICAgIEhU
VFBIYW5kbGVyOjpNYWtlUmVxdWVzdCgpICBIVFRQSGFuZGxlci5jYywgMjg4
DQogICAgICAgICAgSFRUUEhhbmRsZXI6OkdldE9iamVjdCgpICBIVFRQSGFu
ZGxlci5jYywgMTczDQogICAgICAgICAgSFRUUEhhbmRsZXI6OkdldE9iamVj
dCgpICBIVFRQSGFuZGxlci5jYywgMTUzDQogICAgTmV0d29ya01hbmFnZXI6
OkRvQ29ubmVjdGlvbigpICBuZXRtYW5hZ2VyLmNjLCAxMjcNCg0KICBTdGFj
ayB0cmFjZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQ6DQogICAgICAgICAg
ICAgSFRUUFJlcXVlc3QxMDo6U2VuZCgpICBIVFRQUmVxdWVzdDEwLmNjLCA0
Mg0KICAgICAgICBIVFRQSGFuZGxlcjo6U2VuZENvbW1hbmQoKSAgSFRUUEhh
bmRsZXIuY2MsIDQ2MA0KICAgICAgICBIVFRQSGFuZGxlcjo6TWFrZVJlcXVl
c3QoKSAgSFRUUEhhbmRsZXIuY2MsIDI4OA0KICAgICAgICAgIEhUVFBIYW5k
bGVyOjpHZXRPYmplY3QoKSAgSFRUUEhhbmRsZXIuY2MsIDE3Mw0KICAgICAg
ICAgIEhUVFBIYW5kbGVyOjpHZXRPYmplY3QoKSAgSFRUUEhhbmRsZXIuY2Ms
IDE1Mw0KICAgIE5ldHdvcmtNYW5hZ2VyOjpEb0Nvbm5lY3Rpb24oKSAgbmV0
bWFuYWdlci5jYywgMTI3DQogICAgICAgIE5ldHdvcmtNYW5hZ2VyOjpGZXRj
aFVSTCgpICBuZXRtYW5hZ2VyLmNjLCAxOTINCiAgICBOZXR3b3JrTWFuYWdl
cjo6RmV0Y2hVUkxNZXNzKCkgIG5ldG1hbmFnZXIuaCwgMTE1DQoNClttZXNz
bWFuYWdlci5jYzo1M10gKipSRUFEX0JBRF9JTkRFWCoqDQoNCiAgUmVhZGlu
ZyBhcnJheSBvdXQgb2YgcmFuZ2U6IGdyb3Vwc1ttZ3JvdXBdW2ldDQoNCiAg
SW5kZXggdXNlZCA6IDEwDQoNCiAgVmFsaWQgcmFuZ2U6IDAgdGhydSA5IChp
bmNsdXNpdmUpDQoNCiAgU3RhY2sgdHJhY2Ugd2hlcmUgdGhlIGVycm9yIG9j
Y3VycmVkOg0KICAgICBNZXNzYWdlTWFuYWdlcjo6U2VuZE1lc3NhZ2UoKSAg
bWVzc21hbmFnZXIuY2MsIDUzDQogICAgIFRDUENvbm5lY3Rpb246OkNoYW5n
ZVN0YXR1cygpICBUQ1BDb25uZWN0aW9uLmNjLCAyODcNCiBUQ1BDb25uZWN0
aW9uOjpDcmVhdGVDb25uZWN0aW9uKCkgIFRDUENvbm5lY3Rpb24uY2MsIDgz
DQogICAgICAgICAgVENQQ29ubmVjdGlvbjo6Q29ubmVjdCgpICBUQ1BDb25u
ZWN0aW9uLmNjLCA3Mw0KICAgICAgICBIVFRQSGFuZGxlcjo6TWFrZVJlcXVl
c3QoKSAgSFRUUEhhbmRsZXIuY2MsIDI0NQ0KICAgICAgICAgIEhUVFBIYW5k
bGVyOjpHZXRPYmplY3QoKSAgSFRUUEhhbmRsZXIuY2MsIDE3Mw0KICAgICAg
ICAgIEhUVFBIYW5kbGVyOjpHZXRPYmplY3QoKSAgSFRUUEhhbmRsZXIuY2Ms
IDE1Mw0KICAgIE5ldHdvcmtNYW5hZ2VyOjpEb0Nvbm5lY3Rpb24oKSAgbmV0
bWFuYWdlci5jYywgMTI3DQogICAgICAgIE5ldHdvcmtNYW5hZ2VyOjpGZXRj
aFVSTCgpICBuZXRtYW5hZ2VyLmNjLCAxOTINCiAgICBOZXR3b3JrTWFuYWdl
cjo6RmV0Y2hVUkxNZXNzKCkgIG5ldG1hbmFnZXIuaCwgMTE1DQoNCg0KW21u
ZW1vbmljLmNjOjE0XSAqKlJFVFVSTl9JTkNPTlNJU1RFTlQoMikqKg0KICBG
dW5jdGlvbiBtYWluIGhhcyBhbiBpbmNvbnNpc3RlbnQgcmV0dXJuIHR5cGUu
DQogIERlY2xhcmVkIHJldHVybiB0eXBlICJpbnQiLCBidXQgcmV0dXJucyBu
byB2YWx1ZS4NCj4+IGludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltd
KSB7DQpbSGFzaC5jYzozM10gRXJyb3I6IHN5bnRheCBlcnJvciBhdCBvciBu
ZWFyICdbJw0KPj4gICAgIExpc3QgPSBuZXcgKEhhc2hFbGVtICopW1NpemVd
Ow0KW0hhc2guY2M6MzZdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNp
b24gaW4gYXNzaWdubWVudDogSGFzaEVsZW0gKiA9IHZvaWQgKg0KPj4gICAg
ICAgTGlzdFtpXSA9IE5VTEw7DQpbSGFzaC5jYzoxMTFdICoqUkVUVVJOX0RB
TkdMSU5HKioNCiAgUmV0dXJuaW5nIHBvaW50ZXIgdG8gbG9jYWwgdmFyaWFi
bGU6IGJ1Zi4NCj4+ICAgcmV0dXJuIGJ1ZjsgLyogTm90IGdvb2QhICovDQpb
SGFzaC5jYzoxMzRdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24g
aW4gYXNzaWdubWVudDogSGFzaEVsZW0gKiA9IHZvaWQgKg0KPj4gICBTdWJF
bGVtPU5VTEw7DQpbbGlzdC5jYzo0NV0gV2FybmluZzogNS4xNy0xOiBiYWQg
Y29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBzdHJ1Y3QgTElTVElURU0gKiA9
IHZvaWQgKg0KPj4gICBsaXN0aG9vay0+cHJldj1OVUxMOw0KW2xpc3QuY2M6
NDZdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdu
bWVudDogc3RydWN0IExJU1RJVEVNICogPSB2b2lkICoNCj4+ICAgbGlzdGhv
b2stPm5leHQ9TlVMTDsNCltsaXN0LmNjOjEyNl0gV2FybmluZzogNS4xNy0x
OiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBzdHJ1Y3QgTElTVElU
RU0gKiA9IHZvaWQgKg0KPj4gICBuZXdJdGVtLT5uZXh0PU5VTEw7DQpbdGhy
ZWFkLmg6MzRdIFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50cyBwYXNz
ZWQgdG8gZnVuY3Rpb24gJ3B0aHJlYWRfbXV0ZXhfaW5pdCcNCnwgICAgZGVj
bGFyZWQgYXQ6IFsvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjI1M10NCnwgIGV4
cGVjdGVkIGFyZ3M6IChwdGhyZWFkX211dGV4X3QgKiwgcHRocmVhZF9tdXRl
eGF0dHJfdCBjb25zdCAqKQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJlYWRf
bXV0ZXhfdCAqLCB2b2lkICopDQo+PiAgICAgICAgICAgICBpZiAocHRocmVh
ZF9tdXRleF9pbml0KCZtdXRleCwgcHRocmVhZF9tdXRleGF0dHJfZGVmYXVs
dCkgIT0gMCkNClt0aHJlYWQuaDo1NV0gV2FybmluZzogMTMtMjogd3Jvbmcg
YXJndW1lbnRzIHBhc3NlZCB0byBmdW5jdGlvbiAncHRocmVhZF9jb25kX2lu
aXQnDQp8ICAgIGRlY2xhcmVkIGF0OiBbL3Vzci9pbmNsdWRlL3B0aHJlYWQu
aDoyOTBdDQp8ICBleHBlY3RlZCBhcmdzOiAocHRocmVhZF9jb25kX3QgKiwg
cHRocmVhZF9jb25kYXR0cl90IGNvbnN0ICopDQp8ICAgIHBhc3NlZCBhcmdz
OiAocHRocmVhZF9jb25kX3QgKiwgdm9pZCAqKQ0KPj4gICAgICAgICAgICAg
aWYgKHB0aHJlYWRfY29uZF9pbml0KCZjb25kLCBwdGhyZWFkX2NvbmRhdHRy
X2RlZmF1bHQpICE9IDApDQpbdGhyZWFkLmg6MzRdIFdhcm5pbmc6IDEzLTI6
IHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZnVuY3Rpb24gJ3B0aHJlYWRf
bXV0ZXhfaW5pdCcNCnwgICAgZGVjbGFyZWQgYXQ6IFsvdXNyL2luY2x1ZGUv
cHRocmVhZC5oOjI1M10NCnwgIGV4cGVjdGVkIGFyZ3M6IChwdGhyZWFkX211
dGV4X3QgKiwgcHRocmVhZF9tdXRleGF0dHJfdCBjb25zdCAqKQ0KfCAgICBw
YXNzZWQgYXJnczogKHB0aHJlYWRfbXV0ZXhfdCAqLCB2b2lkICopDQo+PiAg
ICAgICAgICAgICBpZiAocHRocmVhZF9tdXRleF9pbml0KCZtdXRleCwgcHRo
cmVhZF9tdXRleGF0dHJfZGVmYXVsdCkgIT0gMCkNClt0aHJlYWQuaDo1NV0g
V2FybmluZzogMTMtMjogd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBmdW5j
dGlvbiAncHRocmVhZF9jb25kX2luaXQnDQp8ICAgIGRlY2xhcmVkIGF0OiBb
L3Vzci9pbmNsdWRlL3B0aHJlYWQuaDoyOTBdDQp8ICBleHBlY3RlZCBhcmdz
OiAocHRocmVhZF9jb25kX3QgKiwgcHRocmVhZF9jb25kYXR0cl90IGNvbnN0
ICopDQp8ICAgIHBhc3NlZCBhcmdzOiAocHRocmVhZF9jb25kX3QgKiwgdm9p
ZCAqKQ0KPj4gICAgICAgICAgICAgaWYgKHB0aHJlYWRfY29uZF9pbml0KCZj
b25kLCBwdGhyZWFkX2NvbmRhdHRyX2RlZmF1bHQpICE9IDApDQpbVGFnLmg6
MzRdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdu
bWVudDogTm9kZSAqID0gdm9pZCAqDQo+PiAgICAgICAgIE5vZGUoKSB7IHNp
YmxpbmcgPSBOVUxMOyB9DQpbU3RhdHVzTWVzc2FnZS5oOjI3XSBXYXJuaW5n
OiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IGNoYXIg
KiA9IHZvaWQgKg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgZXhwbCA9
IE5VTEw7DQpbVHJhbnNmZXJGaWx0ZXIuaDoyNF0gV2FybmluZzogNS4xNy0x
OiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBUcmFuc2ZlckZpbHRl
ciAqID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0
ID0gTlVMTDsNCltUYWcuaDozNF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29u
dmVyc2lvbiBpbiBhc3NpZ25tZW50OiBOb2RlICogPSB2b2lkICoNCj4+ICAg
ICAgICAgTm9kZSgpIHsgc2libGluZyA9IE5VTEw7IH0NClt0aHJlYWQuaDoz
NF0gV2FybmluZzogMTMtMjogd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBm
dW5jdGlvbiAncHRocmVhZF9tdXRleF9pbml0Jw0KfCAgICBkZWNsYXJlZCBh
dDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjUzXQ0KfCAgZXhwZWN0ZWQg
YXJnczogKHB0aHJlYWRfbXV0ZXhfdCAqLCBwdGhyZWFkX211dGV4YXR0cl90
IGNvbnN0ICopDQp8ICAgIHBhc3NlZCBhcmdzOiAocHRocmVhZF9tdXRleF90
ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhyZWFkX211dGV4
X2luaXQoJm11dGV4LCBwdGhyZWFkX211dGV4YXR0cl9kZWZhdWx0KSAhPSAw
KQ0KW3RocmVhZC5oOjU1XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVu
dHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX2NvbmRfaW5pdCcNCnwg
ICAgZGVjbGFyZWQgYXQ6IFsvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjI5MF0N
CnwgIGV4cGVjdGVkIGFyZ3M6IChwdGhyZWFkX2NvbmRfdCAqLCBwdGhyZWFk
X2NvbmRhdHRyX3QgY29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6IChwdGhy
ZWFkX2NvbmRfdCAqLCB2b2lkICopDQo+PiAgICAgICAgICAgICBpZiAocHRo
cmVhZF9jb25kX2luaXQoJmNvbmQsIHB0aHJlYWRfY29uZGF0dHJfZGVmYXVs
dCkgIT0gMCkNCltUYWcuaDozNF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29u
dmVyc2lvbiBpbiBhc3NpZ25tZW50OiBOb2RlICogPSB2b2lkICoNCj4+ICAg
ICAgICAgTm9kZSgpIHsgc2libGluZyA9IE5VTEw7IH0NClt0aHJlYWQuaDoz
NF0gV2FybmluZzogMTMtMjogd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBm
dW5jdGlvbiAncHRocmVhZF9tdXRleF9pbml0Jw0KfCAgICBkZWNsYXJlZCBh
dDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjUzXQ0KfCAgZXhwZWN0ZWQg
YXJnczogKHB0aHJlYWRfbXV0ZXhfdCAqLCBwdGhyZWFkX211dGV4YXR0cl90
IGNvbnN0ICopDQp8ICAgIHBhc3NlZCBhcmdzOiAocHRocmVhZF9tdXRleF90
ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhyZWFkX211dGV4
X2luaXQoJm11dGV4LCBwdGhyZWFkX211dGV4YXR0cl9kZWZhdWx0KSAhPSAw
KQ0KW3RocmVhZC5oOjU1XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVu
dHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX2NvbmRfaW5pdCcNCnwg
ICAgZGVjbGFyZWQgYXQ6IFsvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjI5MF0N
CnwgIGV4cGVjdGVkIGFyZ3M6IChwdGhyZWFkX2NvbmRfdCAqLCBwdGhyZWFk
X2NvbmRhdHRyX3QgY29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6IChwdGhy
ZWFkX2NvbmRfdCAqLCB2b2lkICopDQo+PiAgICAgICAgICAgICBpZiAocHRo
cmVhZF9jb25kX2luaXQoJmNvbmQsIHB0aHJlYWRfY29uZGF0dHJfZGVmYXVs
dCkgIT0gMCkNCltTdGF0dXNNZXNzYWdlLmg6MjddIFdhcm5pbmc6IDUuMTct
MTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDogY2hhciAqID0gdm9p
ZCAqDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBleHBsID0gTlVMTDsN
CltUYWcuaDozNF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBp
biBhc3NpZ25tZW50OiBOb2RlICogPSB2b2lkICoNCj4+ICAgICAgICAgTm9k
ZSgpIHsgc2libGluZyA9IE5VTEw7IH0NCltndGtCcm93c2VyLmNjOjY5XSBX
YXJuaW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6
IEd0a1dpZGdldCAqID0gdm9pZCAqDQo+PiAgICAgICAgIGJ1dHRvbmJhcj0g
TlVMTDsNCltndGtCcm93c2VyLmNjOjk0XSBXYXJuaW5nOiAxMy0yOiB3cm9u
ZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdndGtfc2lnbmFsX2Nv
bm5lY3Rfb2JqZWN0Jw0KfCAgICBkZWNsYXJlZCBhdDogWy91c3IvbG9jYWwv
aW5jbHVkZS9ndGsvZ3Rrc2lnbmFsLmg6ODddDQp8ICBleHBlY3RlZCBhcmdz
OiAoR3RrT2JqZWN0ICosIGdjaGFyICosIEd0a1NpZ25hbEZ1bmMsIEd0a09i
amVjdCAqKQ0KfCAgICBwYXNzZWQgYXJnczogKEd0a09iamVjdCAqLCBjaGFy
ICosIEd0a1NpZ25hbEZ1bmMsIHZvaWQgKikNCj4+ICAgICAgICAgICAgICAg
ICAoR3RrU2lnbmFsRnVuYykgZG9fbWVudV9leGl0LCBOVUxMKTsNClt0aHJl
YWQuaDozNF0gV2FybmluZzogMTMtMjogd3JvbmcgYXJndW1lbnRzIHBhc3Nl
ZCB0byBmdW5jdGlvbiAncHRocmVhZF9tdXRleF9pbml0Jw0KfCAgICBkZWNs
YXJlZCBhdDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjUzXQ0KfCAgZXhw
ZWN0ZWQgYXJnczogKHB0aHJlYWRfbXV0ZXhfdCAqLCBwdGhyZWFkX211dGV4
YXR0cl90IGNvbnN0ICopDQp8ICAgIHBhc3NlZCBhcmdzOiAocHRocmVhZF9t
dXRleF90ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhyZWFk
X211dGV4X2luaXQoJm11dGV4LCBwdGhyZWFkX211dGV4YXR0cl9kZWZhdWx0
KSAhPSAwKQ0KW3RocmVhZC5oOjU1XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBh
cmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX2NvbmRfaW5p
dCcNCnwgICAgZGVjbGFyZWQgYXQ6IFsvdXNyL2luY2x1ZGUvcHRocmVhZC5o
OjI5MF0NCnwgIGV4cGVjdGVkIGFyZ3M6IChwdGhyZWFkX2NvbmRfdCAqLCBw
dGhyZWFkX2NvbmRhdHRyX3QgY29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6
IChwdGhyZWFkX2NvbmRfdCAqLCB2b2lkICopDQo+PiAgICAgICAgICAgICBp
ZiAocHRocmVhZF9jb25kX2luaXQoJmNvbmQsIHB0aHJlYWRfY29uZGF0dHJf
ZGVmYXVsdCkgIT0gMCkNClttZXNzbWFuYWdlci5jYzoyMF0gV2FybmluZzog
NS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBNZXNzYWdl
UmVjZWl2ZXIgKiA9IHZvaWQgKg0KPj4gICAgICAgICAgICAgICAgICAgICAg
ICAgZ3JvdXBzW2ldW2pdID0gTlVMTDsNClttZXNzbWFuYWdlci5jYzo0MF0g
V2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50
OiBNZXNzYWdlUmVjZWl2ZXIgKiA9IHZvaWQgKg0KPj4gICAgICAgICBncm91
cHNbbWdyb3VwXVtpXSA9IE5VTEw7DQpbbWVzc21hbmFnZXIuY2M6NDZdIFdh
cm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDog
TWVzc2FnZVJlY2VpdmVyICogPSB2b2lkICoNCj4+ICAgICAgICAgZm9yKGk9
MDtpPDE2O2krKykgZ3JvdXBzW21ncm91cF1baV0gPSBOVUxMOw0KW21lc3Nt
YW5hZ2VyLmNjOjQ1XSAqKlJFQURfVU5JTklUX01FTShyZWFkKSoqDQogIFJl
YWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnk6IGkNCj4+ICAgICAgICAgaW51
c2VbaV0gPSAwOw0KW3RocmVhZC5oOjM0XSBXYXJuaW5nOiAxMy0yOiB3cm9u
ZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX211dGV4
X2luaXQnDQp8ICAgIGRlY2xhcmVkIGF0OiBbL3Vzci9pbmNsdWRlL3B0aHJl
YWQuaDoyNTNdDQp8ICBleHBlY3RlZCBhcmdzOiAocHRocmVhZF9tdXRleF90
ICosIHB0aHJlYWRfbXV0ZXhhdHRyX3QgY29uc3QgKikNCnwgICAgcGFzc2Vk
IGFyZ3M6IChwdGhyZWFkX211dGV4X3QgKiwgdm9pZCAqKQ0KPj4gICAgICAg
ICAgICAgaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXgsIHB0aHJlYWRf
bXV0ZXhhdHRyX2RlZmF1bHQpICE9IDApDQpbdGhyZWFkLmg6NTVdIFdhcm5p
bmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZnVuY3Rpb24g
J3B0aHJlYWRfY29uZF9pbml0Jw0KfCAgICBkZWNsYXJlZCBhdDogWy91c3Iv
aW5jbHVkZS9wdGhyZWFkLmg6MjkwXQ0KfCAgZXhwZWN0ZWQgYXJnczogKHB0
aHJlYWRfY29uZF90ICosIHB0aHJlYWRfY29uZGF0dHJfdCBjb25zdCAqKQ0K
fCAgICBwYXNzZWQgYXJnczogKHB0aHJlYWRfY29uZF90ICosIHZvaWQgKikN
Cj4+ICAgICAgICAgICAgIGlmIChwdGhyZWFkX2NvbmRfaW5pdCgmY29uZCwg
cHRocmVhZF9jb25kYXR0cl9kZWZhdWx0KSAhPSAwKQ0KW1N0YXR1c01lc3Nh
Z2UuaDoyN10gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBh
c3NpZ25tZW50OiBjaGFyICogPSB2b2lkICoNCj4+ICAgICAgICAgICAgICAg
ICAgICAgICAgIGV4cGwgPSBOVUxMOw0KW1RDUENvbm5lY3Rpb24uY2M6MjZd
IFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVu
dDogcHRocmVhZF90ICogPSB2b2lkICoNCj4+ICAgICAgICAgbG9va3VwID0g
TlVMTDsNCltUQ1BDb25uZWN0aW9uLmNjOjQwXSBXYXJuaW5nOiAxMy0yOiB3
cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX2pv
aW4nDQp8ICAgIGRlY2xhcmVkIGF0OiBbL3Vzci9pbmNsdWRlL3B0aHJlYWQu
aDoxODFdDQp8ICBleHBlY3RlZCBhcmdzOiAocHRocmVhZF90LCB2b2lkICoq
KQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJlYWRfdCwgdm9pZCAqKQ0KPj4g
ICAgICAgICAgICAgICAgIHB0aHJlYWRfam9pbigqbG9va3VwLE5VTEwpOw0K
W1RDUENvbm5lY3Rpb24uY2M6MTI5XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBh
cmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX2NyZWF0ZScN
CnwgICAgZGVjbGFyZWQgYXQ6IFsvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjE2
N10NCnwgIGV4cGVjdGVkIGFyZ3M6IChwdGhyZWFkX3QgKiwgcHRocmVhZF9h
dHRyX3QgY29uc3QgKiwgdm9pZCAqKCopKHZvaWQgKiksIHZvaWQgKikNCnwg
ICAgcGFzc2VkIGFyZ3M6IChwdGhyZWFkX3QgKiwgdm9pZCAqLCB2b2lkICoo
Kikodm9pZCAqdmZkKSwgVENQQ29ubmVjdGlvbiAqKQ0KPj4gICAgICAgICBw
dGhyZWFkX2NyZWF0ZShuZXdfdGhyZWFkLE5VTEwsbG9va3VwX2FuZF9jb25u
ZWN0LHRoaXMpOw0KW1N0YXR1c01lc3NhZ2UuaDoyN10gV2FybmluZzogNS4x
Ny0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBjaGFyICogPSB2
b2lkICoNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGwgPSBOVUxM
Ow0KW3RocmVhZC5oOjM0XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVu
dHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX211dGV4X2luaXQnDQp8
ICAgIGRlY2xhcmVkIGF0OiBbL3Vzci9pbmNsdWRlL3B0aHJlYWQuaDoyNTNd
DQp8ICBleHBlY3RlZCBhcmdzOiAocHRocmVhZF9tdXRleF90ICosIHB0aHJl
YWRfbXV0ZXhhdHRyX3QgY29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6IChw
dGhyZWFkX211dGV4X3QgKiwgdm9pZCAqKQ0KPj4gICAgICAgICAgICAgaWYg
KHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXgsIHB0aHJlYWRfbXV0ZXhhdHRy
X2RlZmF1bHQpICE9IDApDQpbdGhyZWFkLmg6NTVdIFdhcm5pbmc6IDEzLTI6
IHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZnVuY3Rpb24gJ3B0aHJlYWRf
Y29uZF9pbml0Jw0KfCAgICBkZWNsYXJlZCBhdDogWy91c3IvaW5jbHVkZS9w
dGhyZWFkLmg6MjkwXQ0KfCAgZXhwZWN0ZWQgYXJnczogKHB0aHJlYWRfY29u
ZF90ICosIHB0aHJlYWRfY29uZGF0dHJfdCBjb25zdCAqKQ0KfCAgICBwYXNz
ZWQgYXJnczogKHB0aHJlYWRfY29uZF90ICosIHZvaWQgKikNCj4+ICAgICAg
ICAgICAgIGlmIChwdGhyZWFkX2NvbmRfaW5pdCgmY29uZCwgcHRocmVhZF9j
b25kYXR0cl9kZWZhdWx0KSAhPSAwKQ0KW1NTTENvbm5lY3Rpb24uY2M6Mjdd
IFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVu
dDogcHRocmVhZF90ICogPSB2b2lkICoNCj4+ICAgICAgICAgbG9va3VwID0g
TlVMTDsNCltTU0xDb25uZWN0aW9uLmNjOjUxXSBXYXJuaW5nOiA1LjE3LTE6
IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IHB0aHJlYWRfdCAqID0g
dm9pZCAqDQo+PiAgICAgICAgIGxvb2t1cCA9IE5VTEw7DQpbU1NMQ29ubmVj
dGlvbi5jYzo4MF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBp
biBhc3NpZ25tZW50OiBwdGhyZWFkX3QgKiA9IHZvaWQgKg0KPj4gICAgICAg
ICBsb29rdXAgPSBOVUxMOw0KW1NTTENvbm5lY3Rpb24uY2M6MTEzXSBXYXJu
aW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9u
ICdwdGhyZWFkX2pvaW4nDQp8ICAgIGRlY2xhcmVkIGF0OiBbL3Vzci9pbmNs
dWRlL3B0aHJlYWQuaDoxODFdDQp8ICBleHBlY3RlZCBhcmdzOiAocHRocmVh
ZF90LCB2b2lkICoqKQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJlYWRfdCwg
dm9pZCAqKQ0KPj4gICAgICAgICAgICAgICAgIHB0aHJlYWRfam9pbigqbG9v
a3VwLE5VTEwpOw0KW1NTTENvbm5lY3Rpb24uY2M6MTMxXSBXYXJuaW5nOiA1
LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IFNTTCAqID0g
dm9pZCAqDQo+PiAgICAgICAgIHNzbCA9IE5VTEw7DQpbU1NMQ29ubmVjdGlv
bi5jYzoyMDNdIFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50cyBwYXNz
ZWQgdG8gZnVuY3Rpb24gJ3B0aHJlYWRfY3JlYXRlJw0KfCAgICBkZWNsYXJl
ZCBhdDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MTY3XQ0KfCAgZXhwZWN0
ZWQgYXJnczogKHB0aHJlYWRfdCAqLCBwdGhyZWFkX2F0dHJfdCBjb25zdCAq
LCB2b2lkICooKikodm9pZCAqKSwgdm9pZCAqKQ0KfCAgICBwYXNzZWQgYXJn
czogKHB0aHJlYWRfdCAqLCB2b2lkICosIHZvaWQgKigqKSh2b2lkICp2ZmQp
LCBTU0xDb25uZWN0aW9uICopDQo+PiAgICAgICAgIHB0aHJlYWRfY3JlYXRl
KG5ld190aHJlYWQsTlVMTCxzbG9va3VwX2FuZF9jb25uZWN0LHRoaXMpOw0K
W1N0YXR1c01lc3NhZ2UuaDoyN10gV2FybmluZzogNS4xNy0xOiBiYWQgY29u
dmVyc2lvbiBpbiBhc3NpZ25tZW50OiBjaGFyICogPSB2b2lkICoNCj4+ICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4cGwgPSBOVUxMOw0KW1N0YXR1c01l
c3NhZ2UuaDoyN10gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBp
biBhc3NpZ25tZW50OiBjaGFyICogPSB2b2lkICoNCj4+ICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4cGwgPSBOVUxMOw0KW3RocmVhZC5oOjM0XSBXYXJu
aW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9u
ICdwdGhyZWFkX211dGV4X2luaXQnDQp8ICAgIGRlY2xhcmVkIGF0OiBbL3Vz
ci9pbmNsdWRlL3B0aHJlYWQuaDoyNTNdDQp8ICBleHBlY3RlZCBhcmdzOiAo
cHRocmVhZF9tdXRleF90ICosIHB0aHJlYWRfbXV0ZXhhdHRyX3QgY29uc3Qg
KikNCnwgICAgcGFzc2VkIGFyZ3M6IChwdGhyZWFkX211dGV4X3QgKiwgdm9p
ZCAqKQ0KPj4gICAgICAgICAgICAgaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgm
bXV0ZXgsIHB0aHJlYWRfbXV0ZXhhdHRyX2RlZmF1bHQpICE9IDApDQpbdGhy
ZWFkLmg6NTVdIFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50cyBwYXNz
ZWQgdG8gZnVuY3Rpb24gJ3B0aHJlYWRfY29uZF9pbml0Jw0KfCAgICBkZWNs
YXJlZCBhdDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjkwXQ0KfCAgZXhw
ZWN0ZWQgYXJnczogKHB0aHJlYWRfY29uZF90ICosIHB0aHJlYWRfY29uZGF0
dHJfdCBjb25zdCAqKQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJlYWRfY29u
ZF90ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhyZWFkX2Nv
bmRfaW5pdCgmY29uZCwgcHRocmVhZF9jb25kYXR0cl9kZWZhdWx0KSAhPSAw
KQ0KW1RyYW5zZmVyRmlsdGVyLmg6MjRdIFdhcm5pbmc6IDUuMTctMTogYmFk
IGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDogVHJhbnNmZXJGaWx0ZXIgKiA9
IHZvaWQgKg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA9IE5V
TEw7DQpbSFRUUERhdGUuY2M6MTRdIFdhcm5pbmc6IDEzLTI6IHdyb25nIGFy
Z3VtZW50cyBwYXNzZWQgdG8gZnVuY3Rpb24gJ3RpbWUnDQp8ICAgIGRlY2xh
cmVkIGF0OiBbL3Vzci9pbmNsdWRlL3RpbWUuaDo4Ml0NCnwgIGV4cGVjdGVk
IGFyZ3M6ICh0aW1lX3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6ICh2b2lkICop
DQo+PiAgICAgdGltZV90IHggPSB0aW1lKE5VTEwpOw0KW3RocmVhZC5oOjM0
XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1
bmN0aW9uICdwdGhyZWFkX211dGV4X2luaXQnDQp8ICAgIGRlY2xhcmVkIGF0
OiBbL3Vzci9pbmNsdWRlL3B0aHJlYWQuaDoyNTNdDQp8ICBleHBlY3RlZCBh
cmdzOiAocHRocmVhZF9tdXRleF90ICosIHB0aHJlYWRfbXV0ZXhhdHRyX3Qg
Y29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6IChwdGhyZWFkX211dGV4X3Qg
Kiwgdm9pZCAqKQ0KPj4gICAgICAgICAgICAgaWYgKHB0aHJlYWRfbXV0ZXhf
aW5pdCgmbXV0ZXgsIHB0aHJlYWRfbXV0ZXhhdHRyX2RlZmF1bHQpICE9IDAp
DQpbdGhyZWFkLmg6NTVdIFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50
cyBwYXNzZWQgdG8gZnVuY3Rpb24gJ3B0aHJlYWRfY29uZF9pbml0Jw0KfCAg
ICBkZWNsYXJlZCBhdDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjkwXQ0K
fCAgZXhwZWN0ZWQgYXJnczogKHB0aHJlYWRfY29uZF90ICosIHB0aHJlYWRf
Y29uZGF0dHJfdCBjb25zdCAqKQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJl
YWRfY29uZF90ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhy
ZWFkX2NvbmRfaW5pdCgmY29uZCwgcHRocmVhZF9jb25kYXR0cl9kZWZhdWx0
KSAhPSAwKQ0KW0hUVFBSZXNwb25zZS5jYzoyMV0gV2FybmluZzogNS4xNy0x
OiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBIVFRQRGF0ZSAqID0g
dm9pZCAqDQo+PiAgICAgV2FpdFVudGlsPU5VTEw7DQpbSFRUUFJlc3BvbnNl
LmNjOjIyXSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFz
c2lnbm1lbnQ6IGNoYXIgKiA9IHZvaWQgKg0KPj4gICAgIG9sZD1OVUxMOw0K
W0hUVFBSZXNwb25zZS5jYzo2NV0gV2FybmluZzogNS4xNy0xOiBiYWQgY29u
dmVyc2lvbiBpbiBhc3NpZ25tZW50OiBjaGFyICogPSB2b2lkICoNCj4+ICAg
ICAgICAgICAgICAgICAgICAgICAgIG9sZD1OVUxMOw0KW3RocmVhZC5oOjM0
XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1
bmN0aW9uICdwdGhyZWFkX211dGV4X2luaXQnDQp8ICAgIGRlY2xhcmVkIGF0
OiBbL3Vzci9pbmNsdWRlL3B0aHJlYWQuaDoyNTNdDQp8ICBleHBlY3RlZCBh
cmdzOiAocHRocmVhZF9tdXRleF90ICosIHB0aHJlYWRfbXV0ZXhhdHRyX3Qg
Y29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6IChwdGhyZWFkX211dGV4X3Qg
Kiwgdm9pZCAqKQ0KPj4gICAgICAgICAgICAgaWYgKHB0aHJlYWRfbXV0ZXhf
aW5pdCgmbXV0ZXgsIHB0aHJlYWRfbXV0ZXhhdHRyX2RlZmF1bHQpICE9IDAp
DQpbdGhyZWFkLmg6NTVdIFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50
cyBwYXNzZWQgdG8gZnVuY3Rpb24gJ3B0aHJlYWRfY29uZF9pbml0Jw0KfCAg
ICBkZWNsYXJlZCBhdDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjkwXQ0K
fCAgZXhwZWN0ZWQgYXJnczogKHB0aHJlYWRfY29uZF90ICosIHB0aHJlYWRf
Y29uZGF0dHJfdCBjb25zdCAqKQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJl
YWRfY29uZF90ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhy
ZWFkX2NvbmRfaW5pdCgmY29uZCwgcHRocmVhZF9jb25kYXR0cl9kZWZhdWx0
KSAhPSAwKQ0KW1N0YXR1c01lc3NhZ2UuaDoyN10gV2FybmluZzogNS4xNy0x
OiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBjaGFyICogPSB2b2lk
ICoNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGwgPSBOVUxMOw0K
W0hUVFBIYW5kbGVyLmg6MTA0XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252
ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IEhUVFBSZXNwb25zZSAqID0gdm9pZCAq
DQo+PiAgIGh0dHBfZmlsZSgpIHtyZXM9TlVMTDtyZXE9TlVMTDtJbmZvPU5V
TEw7bmV4dD1OVUxMO30NCltIVFRQSGFuZGxlci5oOjEwNF0gV2FybmluZzog
NS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBIVFRQUmVx
dWVzdCAqID0gdm9pZCAqDQo+PiAgIGh0dHBfZmlsZSgpIHtyZXM9TlVMTDty
ZXE9TlVMTDtJbmZvPU5VTEw7bmV4dD1OVUxMO30NCltIVFRQSGFuZGxlci5o
OjEwNF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3Np
Z25tZW50OiBDb25uZWN0aW9uSW5mbyAqID0gdm9pZCAqDQo+PiAgIGh0dHBf
ZmlsZSgpIHtyZXM9TlVMTDtyZXE9TlVMTDtJbmZvPU5VTEw7bmV4dD1OVUxM
O30NCltIVFRQSGFuZGxlci5oOjEwNF0gV2FybmluZzogNS4xNy0xOiBiYWQg
Y29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBodHRwX2ZpbGUgKiA9IHZvaWQg
Kg0KPj4gICBodHRwX2ZpbGUoKSB7cmVzPU5VTEw7cmVxPU5VTEw7SW5mbz1O
VUxMO25leHQ9TlVMTDt9DQpbVHJhbnNmZXJGaWx0ZXIuaDoyNF0gV2Fybmlu
ZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBUcmFu
c2ZlckZpbHRlciAqID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAgICAgICAg
ICAgICBuZXh0ID0gTlVMTDsNCltIVFRQSGFuZGxlci5jYzo1N10gV2Fybmlu
ZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBOZXRT
dHJlYW0gKiA9IHZvaWQgKg0KPj4gICAgICAgICAgICAgICAgIGNvbm5zW2ld
LmNvbm4gPSBOVUxMOw0KW0hUVFBIYW5kbGVyLmNjOjU4XSBXYXJuaW5nOiA1
LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IGh0dHBfZmls
ZSAqID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAgICAgY29ubnNbaV0uZmls
ZSA9IE5VTEw7DQpbSFRUUEhhbmRsZXIuY2M6MTE0XSBXYXJuaW5nOiA1LjE3
LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IE5ldFN0cmVhbSAq
ID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbm5zW2ldLmNvbm4gPSBOVUxMOyAvLyByYWNlIGNvbmRpdGlvbiBoZXJl
Li4uIHVzZSBsb2NhbCB2YXIuDQpbSFRUUEhhbmRsZXIuY2M6MTE5XSBXYXJu
aW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IGh0
dHBfZmlsZSAqID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbm5zW2ldLmZpbGUgPSBOVUxMOw0KW0hUVFBIYW5kbGVy
LmNjOjE1M10gV2FybmluZzogMTMtMTogbm8gbWF0Y2ggZm9yIG92ZXJsb2Fk
ZWQgZnVuY3Rpb24gJ0dldE9iamVjdCcNCj4+ICAgICAgICAgcmV0dXJuIEdl
dE9iamVjdChzX3VybCwgTlVMTCwgMCwgTlVMTCwgaWQsIG1ncm91cCk7DQpb
SFRUUEhhbmRsZXIuY2M6MTczXSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1
bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdNYWtlUmVxdWVzdCcNCnwgICAg
ZGVjbGFyZWQgYXQ6IFtIVFRQSGFuZGxlci5oOjE2NV0NCnwgIGV4cGVjdGVk
IGFyZ3M6IChodHRwX2ZpbGUgKiosIE5ldFN0cmVhbSAqKiwgY2hhciAqLCBp
bnQsIEhUVFBVcmwgKiwgaW50LCBpbnQsIGludCwgaW50KQ0KfCAgICBwYXNz
ZWQgYXJnczogKGh0dHBfZmlsZSAqKiwgTmV0U3RyZWFtICoqLCB2b2lkICos
IGludCwgSFRUUFVybCAqLCBpbnQsIGludCwgaW50LCBpbnQpDQo+PiAgICAg
ICAgIGVsc2UgICAgICAgICAgICBjaW5kZXggPSBNYWtlUmVxdWVzdCgmZmls
ZSwgJmNvbm4sIE5VTEwsIDAsIHVybCwgaWQsIG1ncm91cCwgSFRUUF8xXzAs
IEdFVCk7DQpbSFRUUEhhbmRsZXIuY2M6MjY4XSBXYXJuaW5nOiA1LjE3LTE6
IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IGh0dHBfZmlsZSAqID0g
dm9pZCAqDQo+PiAgICAgICAgICgqZmlsZSktPm5leHQgPSBOVUxMOw0KW0hU
VFBIYW5kbGVyLmNjOjMzM10gV2FybmluZzogMTMtMjogd3JvbmcgYXJndW1l
bnRzIHBhc3NlZCB0byBmdW5jdGlvbiAnTWFrZVJlcXVlc3QnDQp8ICAgIGRl
Y2xhcmVkIGF0OiBbSFRUUEhhbmRsZXIuaDoxNjVdDQp8ICBleHBlY3RlZCBh
cmdzOiAoaHR0cF9maWxlICoqLCBOZXRTdHJlYW0gKiosIGNoYXIgKiwgaW50
LCBIVFRQVXJsICosIGludCwgaW50LCBpbnQsIGludCkNCnwgICAgcGFzc2Vk
IGFyZ3M6IChodHRwX2ZpbGUgKiosIE5ldFN0cmVhbSAqKiwgdm9pZCAqLCBp
bnQsIEhUVFBVcmwgKiwgaW50LCBpbnQsIGludCwgaW50KQ0KPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpbmRleCA9IE1h
a2VSZXF1ZXN0KCZmaWxlLCAmY29ubiwgTlVMTCwgMCwgdXJsLCBpZCwgY29u
bnNbaV0uZmlsZS0+bWdyb3VwLCBIVFRQXzBfOSwgR0VUKTsNCltIVFRQSGFu
ZGxlci5jYzozOTJdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24g
aW4gYXNzaWdubWVudDogaHR0cF9maWxlICogPSB2b2lkICoNCj4+ICAgICAg
ICAgZmlsZS0+bmV4dD1OVUxMOyAvKiBPciBlbHNlIHRoZSBmaWxlIGRlc3Ry
dWN0ZXIgd2lsbCBkZXN0cnVjdCB0aGlzICovDQpbSFRUUEhhbmRsZXIuY2M6
NDA1XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2ln
bm1lbnQ6IE5ldFN0cmVhbSAqID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25uLT5jb25uID0gTlVMTDsNCltIVFRQSGFuZGxlci5j
Yzo0MTBdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNz
aWdubWVudDogaHR0cF9maWxlICogPSB2b2lkICoNCj4+ICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbm4tPmZpbGUgPSBOVUxMOw0KW3RocmVhZC5oOjM0
XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1
bmN0aW9uICdwdGhyZWFkX211dGV4X2luaXQnDQp8ICAgIGRlY2xhcmVkIGF0
OiBbL3Vzci9pbmNsdWRlL3B0aHJlYWQuaDoyNTNdDQp8ICBleHBlY3RlZCBh
cmdzOiAocHRocmVhZF9tdXRleF90ICosIHB0aHJlYWRfbXV0ZXhhdHRyX3Qg
Y29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6IChwdGhyZWFkX211dGV4X3Qg
Kiwgdm9pZCAqKQ0KPj4gICAgICAgICAgICAgaWYgKHB0aHJlYWRfbXV0ZXhf
aW5pdCgmbXV0ZXgsIHB0aHJlYWRfbXV0ZXhhdHRyX2RlZmF1bHQpICE9IDAp
DQpbdGhyZWFkLmg6NTVdIFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50
cyBwYXNzZWQgdG8gZnVuY3Rpb24gJ3B0aHJlYWRfY29uZF9pbml0Jw0KfCAg
ICBkZWNsYXJlZCBhdDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjkwXQ0K
fCAgZXhwZWN0ZWQgYXJnczogKHB0aHJlYWRfY29uZF90ICosIHB0aHJlYWRf
Y29uZGF0dHJfdCBjb25zdCAqKQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJl
YWRfY29uZF90ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhy
ZWFkX2NvbmRfaW5pdCgmY29uZCwgcHRocmVhZF9jb25kYXR0cl9kZWZhdWx0
KSAhPSAwKQ0KW3RocmVhZC5oOjM0XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBh
cmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX211dGV4X2lu
aXQnDQp8ICAgIGRlY2xhcmVkIGF0OiBbL3Vzci9pbmNsdWRlL3B0aHJlYWQu
aDoyNTNdDQp8ICBleHBlY3RlZCBhcmdzOiAocHRocmVhZF9tdXRleF90ICos
IHB0aHJlYWRfbXV0ZXhhdHRyX3QgY29uc3QgKikNCnwgICAgcGFzc2VkIGFy
Z3M6IChwdGhyZWFkX211dGV4X3QgKiwgdm9pZCAqKQ0KPj4gICAgICAgICAg
ICAgaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXgsIHB0aHJlYWRfbXV0
ZXhhdHRyX2RlZmF1bHQpICE9IDApDQpbdGhyZWFkLmg6NTVdIFdhcm5pbmc6
IDEzLTI6IHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZnVuY3Rpb24gJ3B0
aHJlYWRfY29uZF9pbml0Jw0KfCAgICBkZWNsYXJlZCBhdDogWy91c3IvaW5j
bHVkZS9wdGhyZWFkLmg6MjkwXQ0KfCAgZXhwZWN0ZWQgYXJnczogKHB0aHJl
YWRfY29uZF90ICosIHB0aHJlYWRfY29uZGF0dHJfdCBjb25zdCAqKQ0KfCAg
ICBwYXNzZWQgYXJnczogKHB0aHJlYWRfY29uZF90ICosIHZvaWQgKikNCj4+
ICAgICAgICAgICAgIGlmIChwdGhyZWFkX2NvbmRfaW5pdCgmY29uZCwgcHRo
cmVhZF9jb25kYXR0cl9kZWZhdWx0KSAhPSAwKQ0KW1N0YXR1c01lc3NhZ2Uu
aDoyN10gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3Np
Z25tZW50OiBjaGFyICogPSB2b2lkICoNCj4+ICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cGwgPSBOVUxMOw0KW0hUVFBIYW5kbGVyLmg6MTA0XSBXYXJu
aW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IEhU
VFBSZXNwb25zZSAqID0gdm9pZCAqDQo+PiAgIGh0dHBfZmlsZSgpIHtyZXM9
TlVMTDtyZXE9TlVMTDtJbmZvPU5VTEw7bmV4dD1OVUxMO30NCltIVFRQSGFu
ZGxlci5oOjEwNF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBp
biBhc3NpZ25tZW50OiBIVFRQUmVxdWVzdCAqID0gdm9pZCAqDQo+PiAgIGh0
dHBfZmlsZSgpIHtyZXM9TlVMTDtyZXE9TlVMTDtJbmZvPU5VTEw7bmV4dD1O
VUxMO30NCltIVFRQSGFuZGxlci5oOjEwNF0gV2FybmluZzogNS4xNy0xOiBi
YWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBDb25uZWN0aW9uSW5mbyAq
ID0gdm9pZCAqDQo+PiAgIGh0dHBfZmlsZSgpIHtyZXM9TlVMTDtyZXE9TlVM
TDtJbmZvPU5VTEw7bmV4dD1OVUxMO30NCltIVFRQSGFuZGxlci5oOjEwNF0g
V2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50
OiBodHRwX2ZpbGUgKiA9IHZvaWQgKg0KPj4gICBodHRwX2ZpbGUoKSB7cmVz
PU5VTEw7cmVxPU5VTEw7SW5mbz1OVUxMO25leHQ9TlVMTDt9DQpbSFRUUFNI
YW5kbGVyLmg6NzZdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24g
aW4gYXNzaWdubWVudDogSFRUUFJlc3BvbnNlICogPSB2b2lkICoNCj4+ICAg
aHR0cHNfZmlsZSgpIHtyZXM9TlVMTDtyZXE9TlVMTDtJbmZvPU5VTEw7bmV4
dD1OVUxMO30NCltIVFRQU0hhbmRsZXIuaDo3Nl0gV2FybmluZzogNS4xNy0x
OiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBIVFRQUmVxdWVzdCAq
ID0gdm9pZCAqDQo+PiAgIGh0dHBzX2ZpbGUoKSB7cmVzPU5VTEw7cmVxPU5V
TEw7SW5mbz1OVUxMO25leHQ9TlVMTDt9DQpbSFRUUFNIYW5kbGVyLmg6NzZd
IFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVu
dDogQ29ubmVjdGlvbkluZm8gKiA9IHZvaWQgKg0KPj4gICBodHRwc19maWxl
KCkge3Jlcz1OVUxMO3JlcT1OVUxMO0luZm89TlVMTDtuZXh0PU5VTEw7fQ0K
W0hUVFBTSGFuZGxlci5oOjc2XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252
ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IGh0dHBzX2ZpbGUgKiA9IHZvaWQgKg0K
Pj4gICBodHRwc19maWxlKCkge3Jlcz1OVUxMO3JlcT1OVUxMO0luZm89TlVM
TDtuZXh0PU5VTEw7fQ0KW1RyYW5zZmVyRmlsdGVyLmg6MjRdIFdhcm5pbmc6
IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDogVHJhbnNm
ZXJGaWx0ZXIgKiA9IHZvaWQgKg0KPj4gICAgICAgICAgICAgICAgICAgICAg
ICAgbmV4dCA9IE5VTEw7DQpbSFRUUFNIYW5kbGVyLmNjOjMyXSBXYXJuaW5n
OiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IFNTTENv
bm5lY3Rpb24gKiA9IHZvaWQgKg0KPj4gICAgICAgICAgICAgICAgIGNvbm5z
W2ldLmNvbm4gPSBOVUxMOw0KW0hUVFBTSGFuZGxlci5jYzozM10gV2Fybmlu
ZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBodHRw
c19maWxlICogPSB2b2lkICoNCj4+ICAgICAgICAgICAgICAgICBjb25uc1tp
XS5maWxlID0gTlVMTDsNCltIVFRQU0hhbmRsZXIuY2M6NzFdIFdhcm5pbmc6
IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDogU1NMQ29u
bmVjdGlvbiAqID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbm5zW2ldLmNvbm4gPSBOVUxMOyAvLyByYWNlIGNvbmRp
dGlvbiBoZXJlLi4uIHVzZSBsb2NhbCB2YXIuDQpbSFRUUFNIYW5kbGVyLmNj
Ojc2XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2ln
bm1lbnQ6IGh0dHBzX2ZpbGUgKiA9IHZvaWQgKg0KPj4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25uc1tpXS5maWxlID0gTlVMTDsNCltI
VFRQU0hhbmRsZXIuY2M6MTEwXSBXYXJuaW5nOiAxMy0xOiBubyBtYXRjaCBm
b3Igb3ZlcmxvYWRlZCBmdW5jdGlvbiAnR2V0T2JqZWN0Jw0KPj4gICAgICAg
ICByZXR1cm4gR2V0T2JqZWN0KHNfdXJsLCBOVUxMLCAwLCBOVUxMLCBpZCwg
bWdyb3VwKTsNCltIVFRQU0hhbmRsZXIuY2M6MTI4XSBXYXJuaW5nOiAxMy0y
OiB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdNYWtlUmVx
dWVzdCcNCnwgICAgZGVjbGFyZWQgYXQ6IFtIVFRQU0hhbmRsZXIuaDoxMTVd
DQp8ICBleHBlY3RlZCBhcmdzOiAoaHR0cHNfZmlsZSAqKiwgU1NMQ29ubmVj
dGlvbiAqKiwgY2hhciAqLCBpbnQsIEhUVFBTVXJsICosIGludCwgaW50LCBp
bnQsIGludCkNCnwgICAgcGFzc2VkIGFyZ3M6IChodHRwc19maWxlICoqLCBT
U0xDb25uZWN0aW9uICoqLCB2b2lkICosIGludCwgSFRUUFNVcmwgKiwgaW50
LCBpbnQsIGludCwgaW50KQ0KPj4gICAgICAgICBlbHNlICAgICAgICAgICAg
Y2luZGV4ID0gTWFrZVJlcXVlc3QoJmZpbGUsICZjb25uLCBOVUxMLCAwLCB1
cmwsIGlkLCBtZ3JvdXAsIEhUVFBfMV8wLCBHRVQpOw0KW0hUVFBTSGFuZGxl
ci5jYzoyMTVdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4g
YXNzaWdubWVudDogaHR0cHNfZmlsZSAqID0gdm9pZCAqDQo+PiAgICAgICAg
ICgqZmlsZSktPm5leHQgPSBOVUxMOw0KW0hUVFBTSGFuZGxlci5jYzoyNzNd
IFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZnVu
Y3Rpb24gJ01ha2VSZXF1ZXN0Jw0KfCAgICBkZWNsYXJlZCBhdDogW0hUVFBT
SGFuZGxlci5oOjExNV0NCnwgIGV4cGVjdGVkIGFyZ3M6IChodHRwc19maWxl
ICoqLCBTU0xDb25uZWN0aW9uICoqLCBjaGFyICosIGludCwgSFRUUFNVcmwg
KiwgaW50LCBpbnQsIGludCwgaW50KQ0KfCAgICBwYXNzZWQgYXJnczogKGh0
dHBzX2ZpbGUgKiosIFNTTENvbm5lY3Rpb24gKiosIHZvaWQgKiwgaW50LCBI
VFRQU1VybCAqLCBpbnQsIGludCwgaW50LCBpbnQpDQo+PiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2luZGV4ID0gTWFrZVJl
cXVlc3QoJmZpbGUsICZjb25uLCBOVUxMLCAwLCB1cmwsIGlkLCBjb25uc1tp
XS5maWxlLT5tZ3JvdXAsIEhUVFBfMF85LCBHRVQpOw0KW0hUVFBTSGFuZGxl
ci5jYzozMjhdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4g
YXNzaWdubWVudDogaHR0cHNfZmlsZSAqID0gdm9pZCAqDQo+PiAgICAgICAg
IGZpbGUtPm5leHQ9TlVMTDsgLyogT3IgZWxzZSB0aGUgZmlsZSBkZXN0cnVj
dGVyIHdpbGwgZGVzdHJ1Y3QgdGhpcyAqLw0KW0hUVFBTSGFuZGxlci5jYzoz
NDFdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdu
bWVudDogU1NMQ29ubmVjdGlvbiAqID0gdm9pZCAqDQo+PiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25uLT5jb25uID0gTlVMTDsNCltIVFRQU0hhbmRs
ZXIuY2M6MzQ2XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGlu
IGFzc2lnbm1lbnQ6IGh0dHBzX2ZpbGUgKiA9IHZvaWQgKg0KPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgY29ubi0+ZmlsZSA9IE5VTEw7DQpbdGhyZWFk
Lmg6MzRdIFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50cyBwYXNzZWQg
dG8gZnVuY3Rpb24gJ3B0aHJlYWRfbXV0ZXhfaW5pdCcNCnwgICAgZGVjbGFy
ZWQgYXQ6IFsvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjI1M10NCnwgIGV4cGVj
dGVkIGFyZ3M6IChwdGhyZWFkX211dGV4X3QgKiwgcHRocmVhZF9tdXRleGF0
dHJfdCBjb25zdCAqKQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJlYWRfbXV0
ZXhfdCAqLCB2b2lkICopDQo+PiAgICAgICAgICAgICBpZiAocHRocmVhZF9t
dXRleF9pbml0KCZtdXRleCwgcHRocmVhZF9tdXRleGF0dHJfZGVmYXVsdCkg
IT0gMCkNClt0aHJlYWQuaDo1NV0gV2FybmluZzogMTMtMjogd3JvbmcgYXJn
dW1lbnRzIHBhc3NlZCB0byBmdW5jdGlvbiAncHRocmVhZF9jb25kX2luaXQn
DQp8ICAgIGRlY2xhcmVkIGF0OiBbL3Vzci9pbmNsdWRlL3B0aHJlYWQuaDoy
OTBdDQp8ICBleHBlY3RlZCBhcmdzOiAocHRocmVhZF9jb25kX3QgKiwgcHRo
cmVhZF9jb25kYXR0cl90IGNvbnN0ICopDQp8ICAgIHBhc3NlZCBhcmdzOiAo
cHRocmVhZF9jb25kX3QgKiwgdm9pZCAqKQ0KPj4gICAgICAgICAgICAgaWYg
KHB0aHJlYWRfY29uZF9pbml0KCZjb25kLCBwdGhyZWFkX2NvbmRhdHRyX2Rl
ZmF1bHQpICE9IDApDQpbU3RhdHVzTWVzc2FnZS5oOjI3XSBXYXJuaW5nOiA1
LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IGNoYXIgKiA9
IHZvaWQgKg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgZXhwbCA9IE5V
TEw7DQpbSFRUUEhhbmRsZXIuaDoxMDRdIFdhcm5pbmc6IDUuMTctMTogYmFk
IGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDogSFRUUFJlc3BvbnNlICogPSB2
b2lkICoNCj4+ICAgaHR0cF9maWxlKCkge3Jlcz1OVUxMO3JlcT1OVUxMO0lu
Zm89TlVMTDtuZXh0PU5VTEw7fQ0KW0hUVFBIYW5kbGVyLmg6MTA0XSBXYXJu
aW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IEhU
VFBSZXF1ZXN0ICogPSB2b2lkICoNCj4+ICAgaHR0cF9maWxlKCkge3Jlcz1O
VUxMO3JlcT1OVUxMO0luZm89TlVMTDtuZXh0PU5VTEw7fQ0KW0hUVFBIYW5k
bGVyLmg6MTA0XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGlu
IGFzc2lnbm1lbnQ6IENvbm5lY3Rpb25JbmZvICogPSB2b2lkICoNCj4+ICAg
aHR0cF9maWxlKCkge3Jlcz1OVUxMO3JlcT1OVUxMO0luZm89TlVMTDtuZXh0
PU5VTEw7fQ0KW0hUVFBIYW5kbGVyLmg6MTA0XSBXYXJuaW5nOiA1LjE3LTE6
IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IGh0dHBfZmlsZSAqID0g
dm9pZCAqDQo+PiAgIGh0dHBfZmlsZSgpIHtyZXM9TlVMTDtyZXE9TlVMTDtJ
bmZvPU5VTEw7bmV4dD1OVUxMO30NCltQcm94eUhhbmRsZXIuY2M6NzddIFdh
cm5pbmc6IDEzLTE6IG5vIG1hdGNoIGZvciBvdmVybG9hZGVkIGZ1bmN0aW9u
ICdHZXRPYmplY3QnDQo+PiAgICAgICAgIHJldCA9IHByb3RvY29sX0hUVFAt
PkdldE9iamVjdChzX3VybCwgcHJveHlfaG9zdCwgcHJveHlfcG9ydCwgTlVM
TCwgaWQsIG1ncm91cCk7DQpbU3RhdHVzTWVzc2FnZS5oOjI3XSBXYXJuaW5n
OiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IGNoYXIg
KiA9IHZvaWQgKg0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgZXhwbCA9
IE5VTEw7DQpbVXJsLmNjOjEyM10gV2FybmluZzogNS4xNy0xOiBiYWQgY29u
dmVyc2lvbiBpbiBhc3NpZ25tZW50OiBjaGFyICogPSB2b2lkICoNCj4+ICAg
ICB1c2VyID0gYXV0aCA9IGhvc3QgPSBOVUxMOw0KW1VybC5jYzoxNjBdIFdh
cm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDog
Y2hhciAqID0gdm9pZCAqDQo+PiAgICAgICAgIHRlbXAyID0gTlVMTDsNCltT
dGF0dXNNZXNzYWdlLmg6MjddIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZl
cnNpb24gaW4gYXNzaWdubWVudDogY2hhciAqID0gdm9pZCAqDQo+PiAgICAg
ICAgICAgICAgICAgICAgICAgICBleHBsID0gTlVMTDsNClt0aHJlYWQuaDoz
NF0gV2FybmluZzogMTMtMjogd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBm
dW5jdGlvbiAncHRocmVhZF9tdXRleF9pbml0Jw0KfCAgICBkZWNsYXJlZCBh
dDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjUzXQ0KfCAgZXhwZWN0ZWQg
YXJnczogKHB0aHJlYWRfbXV0ZXhfdCAqLCBwdGhyZWFkX211dGV4YXR0cl90
IGNvbnN0ICopDQp8ICAgIHBhc3NlZCBhcmdzOiAocHRocmVhZF9tdXRleF90
ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhyZWFkX211dGV4
X2luaXQoJm11dGV4LCBwdGhyZWFkX211dGV4YXR0cl9kZWZhdWx0KSAhPSAw
KQ0KW3RocmVhZC5oOjU1XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVu
dHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX2NvbmRfaW5pdCcNCnwg
ICAgZGVjbGFyZWQgYXQ6IFsvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjI5MF0N
CnwgIGV4cGVjdGVkIGFyZ3M6IChwdGhyZWFkX2NvbmRfdCAqLCBwdGhyZWFk
X2NvbmRhdHRyX3QgY29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6IChwdGhy
ZWFkX2NvbmRfdCAqLCB2b2lkICopDQo+PiAgICAgICAgICAgICBpZiAocHRo
cmVhZF9jb25kX2luaXQoJmNvbmQsIHB0aHJlYWRfY29uZGF0dHJfZGVmYXVs
dCkgIT0gMCkNCltUcmFuc2ZlckZpbHRlci5oOjI0XSBXYXJuaW5nOiA1LjE3
LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IFRyYW5zZmVyRmls
dGVyICogPSB2b2lkICoNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIG5l
eHQgPSBOVUxMOw0KW0hUVFBIYW5kbGVyLmg6MTA0XSBXYXJuaW5nOiA1LjE3
LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IEhUVFBSZXNwb25z
ZSAqID0gdm9pZCAqDQo+PiAgIGh0dHBfZmlsZSgpIHtyZXM9TlVMTDtyZXE9
TlVMTDtJbmZvPU5VTEw7bmV4dD1OVUxMO30NCltIVFRQSGFuZGxlci5oOjEw
NF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25t
ZW50OiBIVFRQUmVxdWVzdCAqID0gdm9pZCAqDQo+PiAgIGh0dHBfZmlsZSgp
IHtyZXM9TlVMTDtyZXE9TlVMTDtJbmZvPU5VTEw7bmV4dD1OVUxMO30NCltI
VFRQSGFuZGxlci5oOjEwNF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVy
c2lvbiBpbiBhc3NpZ25tZW50OiBDb25uZWN0aW9uSW5mbyAqID0gdm9pZCAq
DQo+PiAgIGh0dHBfZmlsZSgpIHtyZXM9TlVMTDtyZXE9TlVMTDtJbmZvPU5V
TEw7bmV4dD1OVUxMO30NCltIVFRQSGFuZGxlci5oOjEwNF0gV2FybmluZzog
NS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25tZW50OiBodHRwX2Zp
bGUgKiA9IHZvaWQgKg0KPj4gICBodHRwX2ZpbGUoKSB7cmVzPU5VTEw7cmVx
PU5VTEw7SW5mbz1OVUxMO25leHQ9TlVMTDt9DQpbbmV0bWFuYWdlci5jYzo3
OV0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25t
ZW50OiBQcm90b2NvbEhhbmRsZXIgKiA9IHZvaWQgKg0KPj4gICAgICAgICAg
ICAgICAgIHByb3RvY29sc1tpXSA9IE5VTEw7DQpbbmV0bWFuYWdlci5jYzo4
NF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVyc2lvbiBpbiBhc3NpZ25t
ZW50OiBjaGFyIGNvbnN0ICogPSB2b2lkICoNCj4+ICAgICAgICAgICAgICAg
ICBjb25uW2ldLT51cmwgPSBOVUxMOw0KW25ldG1hbmFnZXIuY2M6ODVdIFdh
cm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDog
Y2hhciBjb25zdCAqID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAgICAgY29u
bltpXS0+cGFyZW50ID0gTlVMTDsNCltuZXRtYW5hZ2VyLmNjOjg3XSBXYXJu
aW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IFBy
b3RvY29sSGFuZGxlciAqID0gdm9pZCAqDQo+PiAgICAgICAgICAgICAgICAg
Y29ubltpXS0+d2hvID0gTlVMTDsNCltuZXRtYW5hZ2VyLmNjOjE3MF0gV2Fy
bmluZzogMTMtMTogbm8gbWF0Y2ggZm9yIG92ZXJsb2FkZWQgZnVuY3Rpb24g
J0ZldGNoVVJMX2InDQo+PiAgICAgICAgIHJldHVybiBGZXRjaFVSTF9iKGlk
LHVybCxOVUxMLG1ncm91cCk7DQpbbmV0bWFuYWdlci5jYzoxNzNdIFdhcm5p
bmc6IDEzLTE6IG5vIG1hdGNoIGZvciBvdmVybG9hZGVkIGZ1bmN0aW9uICdG
ZXRjaFVSTF9iJw0KPj4gICAgICAgICByZXR1cm4gRmV0Y2hVUkxfYihpZCx1
cmwsTlVMTCwtMSk7DQpbbmV0bWFuYWdlci5jYzoyMDhdIFdhcm5pbmc6IDEz
LTE6IG5vIG1hdGNoIGZvciBvdmVybG9hZGVkIGZ1bmN0aW9uICdGZXRjaFVS
TCcNCj4+ICAgICAgICAgRmV0Y2hVUkwoaWQsdXJsLE5VTEwsbWdyb3VwKTsN
CltuZXRtYW5hZ2VyLmNjOjIxMV0gV2FybmluZzogMTMtMTogbm8gbWF0Y2gg
Zm9yIG92ZXJsb2FkZWQgZnVuY3Rpb24gJ0ZldGNoVVJMJw0KPj4gICAgICAg
ICBGZXRjaFVSTChpZCx1cmwsTlVMTCwtMSk7DQpbbmV0bWFuYWdlci5jYzoy
MjZdIFdhcm5pbmc6IDEzLTE6IG5vIG1hdGNoIGZvciBvdmVybG9hZGVkIGZ1
bmN0aW9uICdQb3N0VVJMJw0KPj4gICAgICAgICByZXR1cm4gUG9zdFVSTChp
ZCx1cmwsTlVMTCxtZ3JvdXApOw0KW25ldG1hbmFnZXIuY2M6MjI5XSBXYXJu
aW5nOiAxMy0xOiBubyBtYXRjaCBmb3Igb3ZlcmxvYWRlZCBmdW5jdGlvbiAn
UG9zdFVSTCcNCj4+ICAgICAgICAgcmV0dXJuIFBvc3RVUkwoaWQsdXJsLE5V
TEwsLTEpOw0KW25ldG1hbmFnZXIuY2M6MjQ0XSBXYXJuaW5nOiAxMy0xOiBu
byBtYXRjaCBmb3Igb3ZlcmxvYWRlZCBmdW5jdGlvbiAnUHV0VVJMJw0KPj4g
ICAgICAgICByZXR1cm4gUHV0VVJMKGlkLHVybCxOVUxMLG1ncm91cCk7DQpb
bmV0bWFuYWdlci5jYzoyNDddIFdhcm5pbmc6IDEzLTE6IG5vIG1hdGNoIGZv
ciBvdmVybG9hZGVkIGZ1bmN0aW9uICdQdXRVUkwnDQo+PiAgICAgICAgIHJl
dHVybiBQdXRVUkwoaWQsdXJsLE5VTEwsLTEpOw0KW25ldG1hbmFnZXIuY2M6
MzA0XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9uIGluIGFzc2ln
bm1lbnQ6IFRyYW5zZmVyRmlsdGVyICogPSB2b2lkICoNCj4+ICAgICAgICAg
Y29ubltpZF0tPmZpbHRlciA9IE5VTEw7DQpbbmV0bWFuYWdlci5jYzozNDVd
IFdhcm5pbmc6IDEzLTI6IHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZnVu
Y3Rpb24gJ3B0aHJlYWRfY3JlYXRlJw0KfCAgICBkZWNsYXJlZCBhdDogWy91
c3IvaW5jbHVkZS9wdGhyZWFkLmg6MTY3XQ0KfCAgZXhwZWN0ZWQgYXJnczog
KHB0aHJlYWRfdCAqLCBwdGhyZWFkX2F0dHJfdCBjb25zdCAqLCB2b2lkICoo
Kikodm9pZCAqKSwgdm9pZCAqKQ0KfCAgICBwYXNzZWQgYXJnczogKHB0aHJl
YWRfdCAqLCB2b2lkICosIHZvaWQgKigqKSh2b2lkICpubSksIE5ldHdvcmtN
YW5hZ2VyICopDQo+PiAgICAgICAgIHB0aHJlYWRfY3JlYXRlKG15dGhyZWFk
LE5VTEwsbmV0X2Nfa2x1ZGdlLHRoaXMpOw0KW25ldG1hbmFnZXIuY2M6Mzcy
XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRvIGZ1
bmN0aW9uICdzZWxlY3QnDQp8ICAgIGRlY2xhcmVkIGF0OiBbL3Vzci9pbmNs
dWRlL3N5cy90aW1lLmg6NThdDQp8ICBleHBlY3RlZCBhcmdzOiAoaW50LCBm
ZF9zZXQgKiwgZmRfc2V0ICosIGZkX3NldCAqLCBzdHJ1Y3QgdGltZXZhbCAq
KQ0KfCAgICBwYXNzZWQgYXJnczogKGludCwgZmRfc2V0ICosIHZvaWQgKiwg
dm9pZCAqLCB2b2lkICopDQo+PiAgICAgICAgICAgICAgICAgd2hpbGUoc2Vs
ZWN0KDI1NiwmZnMsTlVMTCxOVUxMLE5VTEwpPT0oLTEpKTsNCltUcmFuc2Zl
ckZpbHRlci5oOjI0XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBjb252ZXJzaW9u
IGluIGFzc2lnbm1lbnQ6IFRyYW5zZmVyRmlsdGVyICogPSB2b2lkICoNCj4+
ICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBOVUxMOw0KW1RyYW5z
ZmVyRmlsdGVyLmg6MjRdIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZlcnNp
b24gaW4gYXNzaWdubWVudDogVHJhbnNmZXJGaWx0ZXIgKiA9IHZvaWQgKg0K
Pj4gICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA9IE5VTEw7DQpbVHJh
bnNmZXJGaWx0ZXIuaDoyNF0gV2FybmluZzogNS4xNy0xOiBiYWQgY29udmVy
c2lvbiBpbiBhc3NpZ25tZW50OiBUcmFuc2ZlckZpbHRlciAqID0gdm9pZCAq
DQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID0gTlVMTDsNCltT
dGF0dXNNZXNzYWdlLmg6MjddIFdhcm5pbmc6IDUuMTctMTogYmFkIGNvbnZl
cnNpb24gaW4gYXNzaWdubWVudDogY2hhciAqID0gdm9pZCAqDQo+PiAgICAg
ICAgICAgICAgICAgICAgICAgICBleHBsID0gTlVMTDsNClt0aHJlYWQuaDoz
NF0gV2FybmluZzogMTMtMjogd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBm
dW5jdGlvbiAncHRocmVhZF9tdXRleF9pbml0Jw0KfCAgICBkZWNsYXJlZCBh
dDogWy91c3IvaW5jbHVkZS9wdGhyZWFkLmg6MjUzXQ0KfCAgZXhwZWN0ZWQg
YXJnczogKHB0aHJlYWRfbXV0ZXhfdCAqLCBwdGhyZWFkX211dGV4YXR0cl90
IGNvbnN0ICopDQp8ICAgIHBhc3NlZCBhcmdzOiAocHRocmVhZF9tdXRleF90
ICosIHZvaWQgKikNCj4+ICAgICAgICAgICAgIGlmIChwdGhyZWFkX211dGV4
X2luaXQoJm11dGV4LCBwdGhyZWFkX211dGV4YXR0cl9kZWZhdWx0KSAhPSAw
KQ0KW3RocmVhZC5oOjU1XSBXYXJuaW5nOiAxMy0yOiB3cm9uZyBhcmd1bWVu
dHMgcGFzc2VkIHRvIGZ1bmN0aW9uICdwdGhyZWFkX2NvbmRfaW5pdCcNCnwg
ICAgZGVjbGFyZWQgYXQ6IFsvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjI5MF0N
CnwgIGV4cGVjdGVkIGFyZ3M6IChwdGhyZWFkX2NvbmRfdCAqLCBwdGhyZWFk
X2NvbmRhdHRyX3QgY29uc3QgKikNCnwgICAgcGFzc2VkIGFyZ3M6IChwdGhy
ZWFkX2NvbmRfdCAqLCB2b2lkICopDQo+PiAgICAgICAgICAgICBpZiAocHRo
cmVhZF9jb25kX2luaXQoJmNvbmQsIHB0aHJlYWRfY29uZGF0dHJfZGVmYXVs
dCkgIT0gMCkNCltTdGF0dXNNZXNzYWdlLmg6MjddIFdhcm5pbmc6IDUuMTct
MTogYmFkIGNvbnZlcnNpb24gaW4gYXNzaWdubWVudDogY2hhciAqID0gdm9p
ZCAqDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBleHBsID0gTlVMTDsN
CltUcmFuc2ZlckZpbHRlci5oOjI0XSBXYXJuaW5nOiA1LjE3LTE6IGJhZCBj
b252ZXJzaW9uIGluIGFzc2lnbm1lbnQ6IFRyYW5zZmVyRmlsdGVyICogPSB2
b2lkICoNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBOVUxM
Ow0KW21lc3NtYW5hZ2VyLmNjOjUzXSAqKlJFQURfQkFEX0lOREVYKioNCg0K
ICBSZWFkaW5nIGFycmF5IG91dCBvZiByYW5nZTogZ3JvdXBzW21ncm91cF1b
aV0NCg0KICBJbmRleCB1c2VkIDogMTANCg0KICBWYWxpZCByYW5nZTogMCB0
aHJ1IDkgKGluY2x1c2l2ZSkNCg0KICBTdGFjayB0cmFjZSB3aGVyZSB0aGUg
ZXJyb3Igb2NjdXJyZWQ6DQogICAgIE1lc3NhZ2VNYW5hZ2VyOjpTZW5kTWVz
c2FnZSgpICBtZXNzbWFuYWdlci5jYywgNTMNCiAgICAgVENQQ29ubmVjdGlv
bjo6Q2hhbmdlU3RhdHVzKCkgIFRDUENvbm5lY3Rpb24uY2MsIDI4Nw0KIFRD
UENvbm5lY3Rpb246OkNyZWF0ZUNvbm5lY3Rpb24oKSAgVENQQ29ubmVjdGlv
bi5jYywgODMNCiAgICAgICAgICBUQ1BDb25uZWN0aW9uOjpDb25uZWN0KCkg
IFRDUENvbm5lY3Rpb24uY2MsIDczDQogICAgICAgIEhUVFBIYW5kbGVyOjpN
YWtlUmVxdWVzdCgpICBIVFRQSGFuZGxlci5jYywgMjQ1DQogICAgICAgICAg
SFRUUEhhbmRsZXI6OkdldE9iamVjdCgpICBIVFRQSGFuZGxlci5jYywgMTcz
DQogICAgICAgICAgSFRUUEhhbmRsZXI6OkdldE9iamVjdCgpICBIVFRQSGFu
ZGxlci5jYywgMTUzDQogICAgTmV0d29ya01hbmFnZXI6OkRvQ29ubmVjdGlv
bigpICBuZXRtYW5hZ2VyLmNjLCAxMjcNCiAgICAgICAgTmV0d29ya01hbmFn
ZXI6OkZldGNoVVJMKCkgIG5ldG1hbmFnZXIuY2MsIDE5Mg0KICAgIE5ldHdv
cmtNYW5hZ2VyOjpGZXRjaFVSTE1lc3MoKSAgbmV0bWFuYWdlci5oLCAxMTUN
Cg==
--8323328-1074995251-873158131=:14924--
- References:
- BTW
- From: Andrew J Berkley <berkley@wam.umd.edu>