Cryptography-Digest Digest #954, Volume #9       Fri, 30 Jul 99 00:13:04 EDT

Contents:
  new idxpand (zq)

----------------------------------------------------------------------------

From: zq <[EMAIL PROTECTED]>
Subject: new idxpand
Date: Thu, 29 Jul 1999 20:30:15 -0700

This is a multi-part message in MIME format.
==============20740CC9205EA866876A2EAB
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

 
==============20740CC9205EA866876A2EAB
Content-Type: application/x-unknown-content-type-batfile;
 name="IDXPAND.BAT"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="IDXPAND.BAT"

QHJlbSA9ICIgICEhISBsZWF2ZSB0aGlzIGxpbmUgYXMgaXMgYW5kIGRvIG5vdCBkZWxldGUg
aXQgIQ0KOiAjDQo6ICMgdmVyc2lvbiAxOC4wICA5OS4wNy4yOSAgYWRkIGNvZGUgdG8gaGFu
ZGxlIHNnbWwgY29kZWQgaW5kZXgNCjogIyB2ZXJzaW9uIDE3LjAgIDk4LjExLjMwDQo6ICMg
Zm9ybWF0IG9mIGEgbGluZToNCjogIyB2YXJpYWJsZTogICRiZWZvcmVfbGkgICRsaV9vcl9l
bSAgJGJlZm9yZV9tYWluICAkcmVzdA0KOiAjIGNvbnRlbnRzOiAgIHh4eHh4ICAgICAgIDxM
ST4gICAgICAgQXV0bzxFTj4gICAgICAxLjExWzddW2NdW2l2XSxbdl0NCjogIw0KOiAjDQo6
ICMgSURYUEFORC5CQVQgIEV4cGFuZCBpbmRleCBsb2NhdG9ycw0KOiAjICAgICAgICBpZSB0
aGlzIC0tPjE2MC4zNFsxXSwgWzJdIGJlY29tZSB0aGlzLS0+MTYwLjM0WzFdLCAxNjAuMzRb
Ml0NCjogIyBzdGFydGVkIDk4LTA2LTI0OyBsYXN0IGNoYW5nZSA5OC4xMC4yMA0KOiAjICAg
ICAgICAgIGNoYW5nZSB0byBsb29rIGZvciA8TEk+DQo6ICMNCjogIyAgICAgICAg29vb29sg
ICDb29vb2yAgINvb29vbICAg29vb29sgICDb29vb2yAgINvb29vbICAg29vb29sNCjogIw0K
OiAjICAgICAgICDb29vb2yAgINvb29sgICAg2yAgINsgICDb29vbICAgINvb29vbICAg2yAg
INsgICDb29vbDQo6ICMgICAgICAgICAg2yAgICAg2yAgINsgICAg2yDbICAgINsgICDbICAg
2yAgINsgICDb2yAg2yAgINsgICDbDQo6ICMgICAgICAgICAg2yAgICAg2yAgINsgICAgINsg
ICAgINvb29sgICAg29vb29sgICDbINsg2yAgINsgICDbDQo6ICMgICAgICAgICAg2yAgICAg
2yAgINsgICAg2yDbICAgINsgICAgICAg2yAgINsgICDbICDb2yAgINsgICDbDQo6ICMgICAg
ICAgINvb29vbICAg29vb2yAgICDbICAg2yAgINsgICAgICAg2yAgINsgICDbICAg2yAgINvb
29sNCjogIw0KOiAjICAgICAgICDb29vb2yAgINvb29vbICAg29vb29sgICDb29vb2yAgINvb
29vbICAg29vb29sgICDb29vb2w0KOiAjDQplY2hvIG9mZg0Kc2V0IHdoZXJlPQ0Kc2V0IGRv
czRnPXF1aWV0DQppZiBleGlzdCAlMC5iYXQgZ290byBydW4taXQNCmlmIGV4aXN0IGM6XHV0
XCUwLmJhdCAgIHNldCB3aGVyZT1jOlx1dFwNCmlmIGV4aXN0IGM6XHV0XCUwLmJhdCAgIGdv
dG8gcnVuLWl0DQppZiBleGlzdCBjOlx1dGlsXCUwLmJhdCBzZXQgd2hlcmU9YzpcdXRpbFwN
CmlmIGV4aXN0IGM6XHV0aWxcJTAuYmF0IGdvdG8gcnVuLWl0DQppZiBleGlzdCBjOlxkb3Nc
JTAuYmF0ICBzZXQgd2hlcmU9YzpcZG9zXA0KOnJ1bi1pdA0KDQoNCmlmIC8lT1MlLz09L1dp
bmRvd3NfTlQvIGdvdG8gcnVuX250DQppZiBub3QgLyVkZWJ1ZyUvPT0vLyBwZXJsIC1kICV3
aGVyZSUlMC5iYXQgeyUxfSB7JTJ9IHslM30geyU0fSB7JTV9IHslNn0geyU3fSB7JTh9DQpp
ZiAgICAgLyVkZWJ1ZyUvPT0vLyBwZXJsICAgICV3aGVyZSUlMC5iYXQgeyUxfSB7JTJ9IHsl
M30geyU0fSB7JTV9IHslNn0geyU3fSB7JTh9DQpnb3RvIGVuZG9mcGVybA0KDQo6cnVuX250
DQppZiBub3QgLyVkZWJ1ZyUvPT0vLyBwZXJsbnQgLWQgJXdoZXJlJSUwLmJhdCB7JTF9IHsl
Mn0geyUzfSB7JTR9IHslNX0geyU2fSB7JTd9IHslOH0NCmlmICAgICAvJWRlYnVnJS89PS8v
IHBlcmxudCAgICAld2hlcmUlJTAuYmF0IHslMX0geyUyfSB7JTN9IHslNH0geyU1fSB7JTZ9
IHslN30geyU4fQ0KZ290byBlbmRvZnBlcmwNCiI7DQojIG5vdGU6ISEgbXVzdCB1c2UgTlQg
b3IgRE9TNEdXIHZlcnNpb24gb2YgUGVybCBvciB3aWxsIHJ1biBvdXQgb2YgbWVtb3J5IGZv
ciB0aGUgc29ydA0KJFBlcmxWZXJzaW9uICAgPSAiVmVyc2lvbiA0LjAuMS44IFBhdGNoIExl
dmVsIDM2IjsNCiRQZXJsU2NyaXB0ICAgID0gIklEWFBBTkQiOw0KJGRlc2NyaXB0aW9uICAg
PSAiRXhwYW5kIEluZGV4IExvY2F0b3JzIChCZW5kZXIgJiBTR01MKS4iOw0KJFNjcmlwdFZl
cnNpb24gPSAiMTgiOw0KJFNjcmlwdERhdGUgICAgPSAiOTkuMDcuMjkiOw0KQGFyZ3YgPSAo
KTsNCg0KJERFRkFVTFRfRVhURU5TSU9OID0gIklYUCI7DQokfCA9IDE7ICMgZm9yY2UgYnVm
ZmVyIGZsdXNoIGFmdGVyIGVhY2ggcHJpbnQNCiQqID0gMTsgIyBzZXQgbXVsdGktbGluZSBt
YXRjaCAobGluZSBjYW4gY29udGFpbiBcbidzIHRoYXQgeW91IGluc2VydCApDQokcXVpZXQg
PSAwOyAjIG5vIHByb2dyZXNzIHJlcG9ydHMNCiRrZWVwX2xlYWRpbmdfc3BhY2VzID0gMDsN
Cg0KJG09JGk9JGw9JGU9JHM9ICAkZj0kcj0gICRrPTA7DQokaW5wdXRuYW1lcyAgICAgPSAi
IjsNCiRpbmZpbGVuYW1lICAgICA9ICIiOw0KJGluZmlsZW5hbWV4ICAgID0gIiI7DQokbmFt
ZTggICAgICAgICAgPSAiIjsNCiRleHQzICAgICAgICAgICA9ICIiOw0KJG91dHB1dG5hbWUg
ICAgID0gIiI7DQokd29yZHBlcmZlY3RfZmlsZSA9IDA7DQokY2hlY2tfZm9yX3ppcF9maWxl
ID0gMTsgIyB0aGlzIHNjcmlwdCBvbmx5IGhhbmRsZXMgYXNjaWkgZmlsZXMNCiRjaGFyc190
b19yZWFkID0gMjA7DQokbmV3bGluZSA9ICIiOw0KDQojxMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KIyAgICAg
ICAgICAgIE1BSU4gIE1BSU4gIE1BSU4gIE1BSU4gIE1BSU4gIE1BSU4gIE1BSU4NCiMgICAg
ICAgICAgICBNQUlOICBNQUlOICBNQUlOICBNQUlOICBNQUlOICBNQUlOICBNQUlODQojICAg
ICAgICAgICAgTUFJTiAgTUFJTiAgTUFJTiAgTUFJTiAgTUFJTiAgTUFJTiAgTUFJTg0KI8TE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMQNCnsgIyBNQUlOICBNQUlOICBNQUlOICBNQUlOICBNQUlOICBNQUlOICBN
QUlODQomY2hlY2tfcGVybF92ZXJzaW9uKCk7ICMgc2VlIGlmIHdlIGFyZSBydW5uaW5nIHdp
dGggdGhlIHZlcnNpb24gb2YgcGVybA0KICAjIHRoaXMgcHJvZ3JhbSB3YXMgd3JpdHRlbiBm
b3INCg0KJmdldF9jb21tYW5kX2xpbmVfYXJncygpOyAgIyBnZXQgY29tbWFuZCBsaW5lIGFy
Z3VtZW50cyBpbnRvIHZhcmlhYmxlcw0KDQomZ2V0X2lucHV0X2ZpbGVfbmFtZXMoKTsgICAj
IGdldCBhbGwgaW5wdXQgZmlsZSBuYW1lcyBhbmQgcHV0IGluIGFycmF5DQppZiAoJHF1aWV0
ID09IDApIHsgJmlkZW50aWZ5X3Byb2dyYW1fYW5kX2ZpbGVzKCk7IH0NCg0KJmluaXRpYWxp
emVfYXJyYXlzKCk7DQoNCiRkZWJ1ZyA9ICIiOw0KaWYgKCRFTlZ7IkRFQlVHIn0gbmUgIiIp
IHsgJGRlYnVnID0gJEVOVnsiREVCVUcifTsgfQ0KaWYgKCRFTlZ7ImRlYnVnIn0gbmUgIiIp
IHsgJGRlYnVnID0gJEVOVnsiZGVidWcifTsgfQ0KDQoNCm5leHRfZmlsZTogOw0KIyMjIyMj
IyMjIyMjDQoNCiZnZXRfbmV4dF9uYW1lKCk7ICMgc2VlIGlmIHRoZXJlIGlzIGFub3RoZXIg
aW5wdXQgZmlsZSB0byBwcm9jZXNzDQoNCmlmICgkbW9yZV9pbnB1dCA9PSAwKSAgICAgICAg
ICAgICB7IGdvdG8gZG9uZTsgfQ0KDQomb3Blbl9maWxlcygpOyAjIG9wZW4gaW5wdXQsIG91
dHB1dA0KDQppZiAoJHdvcmRwZXJmZWN0X2ZpbGUpICAgICAgICAgICAgeyBnb3RvIG5leHRf
ZmlsZTsgfQ0KaWYgKCR6aXBfZmlsZSkgICAgICAgICAgICAgICAgICAgIHsgZ290byBuZXh0
X2ZpbGU7IH0NCg0KJHdhMSA9IHNwcmludGYoIlxuaW5wdXQgPSAlLTEyLjEyc7MgIG91dHB1
dCA9ICUtMTIuMTJzICAiLCRpbmZpbGVuYW1leCwkb3V0cHV0bmFtZSk7DQppZiAoJHF1aWV0
ID09IDApIHsgcHJpbnQoICR3YTEpOyB9DQoNCiMgPyA9IDAgb3IgMTsgICsgPSAxIG9yIG1v
cmU7ICogPSAwIG9yIG1vcmUNCg0KIyBpbml0aWFsaXplIHZhcmlhYmxlcw0KJGlubGluZSAg
PSAiIjsNCiRkb19mb3JldmVyID0gMTsNCiRuZXh0bGluZSA9ICIiOw0KJGxpbmVjb3VudCA9
IDk5OTk5Ow0KDQoNCnJlYWRsb29wOiB3aGlsZSAoJGRvX2ZvcmV2ZXIpDQojIyMjIyMjIyMN
CnsNCmlmICgkbmV4dGxpbmUgbmUgIiIpICMgaW4gY2FzZSB3ZSBoYWQgdG8gc3BsaXQgYSBs
aW5lIGZvciBwcm9jZXNzaW5nIHB1cnBvc2VzDQogIHsNCiAgJGlubGluZSA9ICRuZXh0bGlu
ZTsNCiAgJG5leHRsaW5lID0gIiI7DQogIH0NCmVsc2UNCiAgew0KICBpZiAoZW9mKGluKSkg
eyBsYXN0IHJlYWRsb29wOyB9DQogICRpbmxpbmUgPSA8aW4+OyAjZ2V0IGEgbGluZSBmcm9t
IGlucHV0IGZpbGUNCiAgfQ0KDQppZiAoJHF1aWV0ID09IDApDQogIHsNCiAgJGxpbmVjb3Vu
dCsrOw0KICBpZiAoJGxpbmVjb3VudCA+IDUwMCkNCiAgICB7DQogICAgcHJpbnQgKCBTVERP
VVQgIkAiKTsgIyBpZiBtb3JlIHRoYW4gb25lIHBhc3MsIHByaW50ICIxIg0KICAgICRsaW5l
Y291bnQgPSAwOw0KICAgIH0NCiAgfQ0KDQppZiAoJGlubGluZSA9fiAvXiAqJC8pICMgYmxh
bmsgbGluZQ0KICB7DQogIHByaW50IChvdXQgIlxuIik7DQogIG5leHQgcmVhZGxvb3A7DQog
IH0NCg0KaWYgKCRpbmxpbmUgIX4gLyg8TEk+fDxsaT4pLw0KJiYgICRpbmxpbmUgIX4gLyg8
RU0+PEJGPil8KDxlbT48YmY+KS8NCiYmICAkaW5saW5lICF+IC8oPGxvY2F0b3I+KS8NCiAg
ICkNCiAgew0KICBwcmludCAob3V0ICIkaW5saW5lIik7DQogIG5leHQgcmVhZGxvb3A7DQog
IH0NCg0KaWYgKCRpbmxpbmUgPX4gLzxsb2NhdG9yPi8pIHsgJGRvaW5nX3NnbWwgPSAxOyB9
IGVsc2UgeyAkZG9pbmdfc2dtbCA9IDA7IH0NCg0KJGlubGluZV9vcmlnID0gJGlubGluZTsg
IyBzYXZlIHRoZSBvcmlnICRpbmxpbmUgdG8gJGlubGluZV9vcmlnDQoNCmlmICgkZG9pbmdf
c2dtbCkNCiAgew0KICAkaW5saW5lID0gJmNvbnZlcnRfc2dtbF90b19iZW5kZXIoJGlubGlu
ZSk7DQogIH0NCg0KJGlubGluZSA9fiAvXiguKikoPExJPnw8RU0+PEJGPikoLiopLzsgI3Nl
cGFyYXRlIHN0cmluZyBhdCB0aGUgPExJPiBvciA8RU0+DQoNCmlmICgkMiBlcSAiIikgICMg
bm8gaW5kZXhpbmcgcmVmDQogIHsNCiAgJG5ld2xpbmUgLj0gJGlubGluZTsNCiAgZ290byBq
dXN0X3dyaXRlX2l0X291dDsNCiAgfQ0KDQokYmVmb3JlX2xpID0gIiQxIjsgIyBzYXZlc3R1
ZmYgcHJlY2VkaW5nIHRoZSA8TEk+IG9yIHRoZSA8RU0+PEJGPg0KDQokbmV3bGluZSA9ICRi
ZWZvcmVfbGk7DQoNCiRpbmxpbmUgPSAiJDIkMyI7ICMgdGhpcyBpcyB0aGUgc3R1ZmYgZm9y
IG1vcmUgcHJvY2Vzc2luZw0KDQojIG5vdyBjaGVjayBmb3IgYSBjb21tYSBpbiByZWYgdG8g
c2VlIGlmIGFueSBleHBhbnNpb24gbmVjZXNzYXJ5DQppZiAoJGlubGluZSAhfiAvLC8pDQog
IHsNCiAgJG5ld2xpbmUgLj0gJGlubGluZTsNCiAgZ290byBqdXN0X3dyaXRlX2l0X291dDsN
CiAgfSAjIG5vIGNvbW1hLCBub3RoaW5nIHRvIGV4cGFuZA0KDQoNCiMgZ2V0IHJpZCBvZiBj
b21tYXMgdGhhdCBhcmUgb25seSB1c2VkIGZvciByZWFkYWJpbGl0eSwgbm90IGVudGl0eSBz
ZXBlcmF0aW9uDQojIDxMST41RjpBcnQuIDksIFB0LiAxMiwgQXBwLiBBPG4+MQ0KIyA8TEk+
NUY6QXJ0LiA5LCBQYXJ0IDEyLCBBcHAuIEE8bj4xDQojIDxMST41RjpBcnQuIDkgUHQuIDEy
IEFwcC4gQTxuPjENCiMgPExJPjVGOkFydC4gOSwgUHQuIDEyLCBBcHAuIEINCiMgPExJPjVG
OkFydC4gOSwgUHQuIDEyLCBBcHAuQg0KDQojIHJlcGxhY2UgYXJ0LiA5LCB3aXRoIGFydC4g
OSAgIChpZiBub3QgZm9sbG93ZWQgYnkgYW5vdGhlciBhcnQpDQojIHJlcGxhY2UgcHQuIDks
IHdpdGggcHQuIDkgICAgIChpZiBub3QgZm9sbG93ZWQgYnkgYW5vdGhlciBwdA0KIyByZXBs
YWNlIGFwcC4gOSwgd2l0aCBhcHAuIDkgICAoaWYgbm90IGZvbGxvd2VkIGJ5IGFub3RoZXIg
YXBwKQ0KDQojIGRvIG5vdCBjaGFuZ2UgaWYgJ2FydC4geXksIGFydC4geHgnDQojIGRvIG5v
dCBjaGFuZ2UgaWYgJ3B0LiB5eSwgcHQuIHh4Jw0KIyBkbyBub3QgY2hhbmdlIGlmICdhcHAu
IHl5LCBhcHAuIHh4Jw0KDQojIGdldCByaWQgb2YgY29tbWFzIHRoYXQgYXJlIGZvciByZWFk
YWJpbGl0eSBvbmx5LCBub3Qgc2VwYXJhdGlvbiBvZiBlbnRpdGllcw0KDQojIDxMST41OkFy
dC4gMiwgUGFydCAyQSwgQXBwLiBDPG4+NA0KDQppZiAoJGlubGluZSA9fiAvKC4qKVtBYV1y
dFwuID8oW14sXSspLCA/UGFydCA/KC4qKS8pDQogIHsgJGlubGluZSA9ICIkMUFydC4gJDIg
UGFydCAkMyI7IH0NCg0KaWYgKCRpbmxpbmUgPX4gLyguKilbUHBdYXJ0ID8oW14sXSspLCA/
W0FhXXBwXC4gKyguKikvKQ0KICB7ICRpbmxpbmUgPSAiJDFQYXJ0ICQyIEFwcC4gJDMiOyB9
DQoNCiMgPExJPjVGOkFydC4gOSwgUHQuIDEyLCBBcHAuIEE8bj4xDQoNCmlmICgkaW5saW5l
ID1+IC8oLiopW0FhXXJ0XC4gPyhbXixdKyksID9QdFwuID8oLiopLykNCiAgeyAkaW5saW5l
ID0gIiQxQXJ0LiAkMiBQdC4gJDMiOyB9DQoNCmlmICgkaW5saW5lID1+IC8oLiopW1BwXXRc
LiA/KFteLF0rKSwgP1tBYV1wcFwuICsoLiopLykNCiAgeyAkaW5saW5lID0gIiQxUHQuICQy
IEFwcC4gJDMiOyB9DQoNCiMgPExJPkFtdXNlPEVOPjQuMDRbMl0gRm9ybSAxOSwgQW11c2U8
RU4+NC4wNFsyXSBGb3JtIDIxDQojIHNlcGFyYXRlICdGb3JtJ3Mgd2l0aCAnOycsIHJlcGxh
Y2luZyB0aGUgJywnDQokaW5saW5lID1+IHMvRm9ybSAoW14sXXsxLDN9KSwvRm9ybSAkMTsv
ZzsNCg0KaWYgKCRpbmxpbmUgIX4gLywvKSAjIGFmdGVyIGFsbCB0aGUgZXh0cmFuZW91cyBj
b21tYXMgdGFrZW4gb3V0LCBub3RoaW5nIHRvIGRvDQogIHsNCiAgJG5ld2xpbmUgPSAkaW5s
aW5lX29yaWc7DQogIGdvdG8ganVzdF93cml0ZV9pdF9vdXQ7DQogIH0gIyBubyBjb21tYSwg
bm90aGluZyB0byBleHBhbmQNCg0KIyByZXBsYWNlIGNlcnRhaW4gdGhpbmdzIHRvIG1ha2Ug
cmVndWxhciBleHByZXNzaW9ucyBlYXNpZXIgdG8gd3JpdGUNCiMgcmVwbGFjZSBjZXJ0YWlu
IHRoaW5ncyB0byBtYWtlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZWFzaWVyIHRvIHdyaXRlDQoN
CiMgcmVwbGFjZSA8SVQ+ZXQgc2VxLjxSTz4gd2l0aCDkICA7IGxhdGVyIHJldmVyc2UNCiMg
cmVwbGFjZSA8SVQ+ZXQgc2VxLiw8Uk8+IHdpdGgg5CwgIDsgbGF0ZXIgcmV2ZXJzZQ0KJGlu
bGluZSA9fiBzLyA/PElUPiA/ZXQgc2VxXC4/ID88Uk8+L+QvZzsNCiRpbmxpbmUgPX4gcy8g
PzxJVD4gP2V0IHNlcVwuLCA/PFJPPi/kLC9nOw0KDQojIHJlcGxhY2UgJywgRk0nIHdpdGgg
JyBGTScgIChnZXQgcmlkIG9mIHRoZSBjb21tYSkNCiRpbmxpbmUgPX4gcy8gPywgP0ZNLyBG
TS9nOyAjDQoNCiNyZXBsYWNlICcgdGhyb3VnaCAnIHdpdGggPG4+PG4+DQokaW5saW5lID1+
IHMvIHRocm91Z2ggLzxuPjxuPi9nOw0KDQojIHJlcGxhY2UgJ1RhYmxlcycgd2l0aCAnVGFi
bGUnDQokaW5saW5lID1+IHMvVGFibGVzL1RhYmxlL2c7DQoNCiMgcmVwbGFjZSAnRmlncy4n
IHdpdGggJ0ZpZy4nIChvciwgYSB0eXBvLCAnRmlncycgd2l0aCAnRmlnLicNCiRpbmxpbmUg
PX4gcy9GaWdzXC4/IC9GaWdcLiAvZzsNCg0KIyByZXBsYWNlICdGb3Jtcycgd2l0aCAnRm9y
bScgICA8TEk+QXBwIEE6Rm9ybXMgNS4wMiwgNS4wMywgNS4wNQ0KJGlubGluZSA9fiBzL0Zv
cm1zIC9Gb3JtIC9nOw0KDQojIHJlcGxhY2UgJ0FwcHMuJyB3aXRoICdBcHAuJw0KJGlubGlu
ZSA9fiBzL0FwcHNcLi9BcHBcLi9nOw0KDQojIGZpeCBhIG1pc3Rha2U6ICAgPExJPjVBLjM1
OyBGaWcuIDVBPG4+NCAgLS1zYi0tPiA8TEk+NUEuMzU6IEZpZy4gNUE8bj40DQokaW5saW5l
ID1+IHMvOyBGaWcvOiBGaWcvZzsgICMgb2NjdXJzIG9ubHkgb25jZSBpbiB0ZXN0IGRhdGEN
Cg0KIyBmaXggYSBtaXN0YWtlOiAgIDxMST41QS4zNTogRmlnIDVBPG4+NCAgLS1zYi0tPiA8
TEk+NUEuMzU6IEZpZy4gNUE8bj40DQokaW5saW5lID1+IHMvRmlnIC9GaWcuIC9nOyAgIyBv
Y2N1cnMgb25seSBvbmNlIGluIHRlc3QgZGF0YQ0KDQoNCmlmICgkaW5saW5lICF+IC8sLykg
ICAgICAgICAgICAgICB7IGdvdG8ganVzdF93cml0ZV9pdF9vdXQ7IH0gIyBubyBjb21tYSwg
bm90aGluZyB0byBleHBhbmQNCg0KDQppZiAoJGRlYnVnIG5lICIiKSAjIGdldCByaWQgb2Yg
Y3IvbGYgc28gEcTEIGlzIG9uIHNhbWUgbGluZSBhcyBkYXRhDQogIHsNCiAgJGMgPSBjaG9w
ICgkaW5saW5lX29yaWcpOw0KICBwcmludCAob3V0ICJcbm9yaWfExMTExMTEECRpbmxpbmVf
b3JpZxHExCIpOw0KICAkaW5saW5lX29yaWcgLj0gJGM7DQogIHByaW50IChvdXQgIlxudG8g
ZXhwYW5kxMQQJGlubGluZRHExFxuIik7DQogIH0NCg0KIyBkZXRlcm1pbmUgaWYgc3Vic2Vj
dHMgYXJlIGRlbGltaXRlZCBieSBbXSBvciAoKQ0KIyBpZiBjb250YWlucyBib3RoIFtdIGFu
ZCAoKSAodmVyeSByYXJlKSwgdGhlbiBsZWF2ZSBhbG9uZSwgZWxzZQ0KIyByZXBsYWNlICgp
IGJ5IFtdLCBtYWtlIG5vdGUgdG8gY29udmVydCB0aGUgW10gYmFjayB0byAoKSBhdCBlbmQN
Cg0KIyBleDogbWl4ZWQ7IGxlYXZlIGFsb25lLS0+IDxMST48QkY+QXBwLiBbMV0oNSk7IEFw
cC4gWzJdKDUpDQojIGV4OiBjaGFuZ2UgKCkgdG8gW10gICAtLT4gPExJPjEuMTE7IDEuMTIs
ICgxKSwgKDIpOyAxQS4wMDsgMUEuMjANCiRyZXBsYWNlX2JyYWNrZXRzID0gMDsgIyBzdGFy
dCBvdXQgYXMgZmFsc2UNCmlmICgkaW5saW5lID1+IC9cKC8pICMgaWYgKCBleGlzdHMNCiAg
ew0KICBpZiAoJGlubGluZSAhfiAvXFsvKSAjIGJ1dCBbIGRvZXMgbm90IGV4aXN0DQogICAg
ew0KICAgICRyZXBsYWNlX2JyYWNrZXRzID0gMTsgICMgdHJ1ZQ0KICAgICRpbmxpbmUgPX4g
cy9cKC9cWy9nOw0KICAgICRpbmxpbmUgPX4gcy9cKS9cXS9nOw0KICAgIH0NCiAgfQ0KDQoj
IGluaXRpYWxpemUgdmFyaWFibGVzIHVzZWZ1bCB0byBhbGwgdHlwZXMNCg0KJGxpX29yX2Vt
ICAgID0gIiI7ICAjIGxpa2UgdGhlICc8TEk+JyBpbiAnPExJPkFtdXNlPEVOPjEuMDEnDQok
YmVmb3JlX21haW4gPSAiIjsgICMgbGlrZSB0aGUgJ0FtdXNlPEVOPicgaW4gJ0FtdXNlPEVO
PjEuMDEnDQokdHJhaWxpbmdfUk8gPSAwOw0KJGVtYmVkZGVkX1JPID0gMDsNCiRvcGVuaW5n
X0JGICA9IDA7DQoNCiMgaW52b2tpbmcgdGhlIGZvbGxvd2luZyBsaW5lIHJlc3VsdHMgaW4g
PEJGPiBvbmx5IGFwcGVhcmluZyBhdCBiZWdpbm5pbmcNCiMgb2YgbmV3IGxpbmUNCiMkaW5s
aW5lID1+IC9eKDxMST48QkY+fDxFTT48QkY+fDxMST4pKC4qKS87ICMgc3RyaXAgb2ZmIGFu
ZCBzYXZlIDxMST4NCg0KIyBpbnZva2luZyB0aGlzIGxpbmUgcmVzdWx0cyBpbiA8QkY+IGFw
cGVhcmluZyBpbiBmcm9udCBvZiBldmVyeSBlbnRyeQ0KIyBpbiB0aGUgbmV3IGxpbmUNCiRp
bmxpbmUgPX4gL14oPExJPnw8RU0+KSguKikvOyAjIHN0cmlwIG9mZiBhbmQgc2F2ZSA8TEk+
DQokbGlfb3JfZW0gPSAkMTsNCiRpbmxpbmUgICA9ICQyOw0KDQokbmV3bGluZSAuPSAkbGlf
b3JfZW07DQppZiAoJGRlYnVnIG5lICIiKSAgeyAgJG5ld2xpbmUgLj0gIlxuIjsgIH0NCg0K
IyBicmVhayB1cCBsaW5lIGF0IHRoZSBzZW1pY29sb24gb3IgRU9MDQpAcGllY2VzID0gKCk7
DQoNCkBwaWVjZXMgPSBzcGxpdCggLzsvLCRpbmxpbmUpOyAjIGJyZWFrIGFwYXJ0IGxpbmUg
YXQgdGhlIDsgYW5kIEVPTA0KDQpmb3IgKCRpID0gMDsgJGkgPCBAcGllY2VzOyAkaSsrKQ0K
ICB7ICAjIGdldCByaWQgb2YgYW55IGxlYWRpbmcgc3BhY2VzIG9uIGVhY2ggcGllY2UNCiAg
JHBpZWNlc1skaV0gPX4gL14gKiguKikvOw0KICAkcGllY2VzWyRpXSA9ICQxOw0KICB9DQoN
CmRvX3BpZWNlczogIGZvciAoDQojIyMjIyMjIyMNCiAgICAgICAgICAgICAgICAkbWF4X3Bp
ZWNlcyA9IEBwaWVjZXMsICRwaWVjZV9jb3VudCA9IDA7DQogICAgICAgICAgICAgICAgJHBp
ZWNlX2NvdW50IDwgJG1heF9waWVjZXM7DQogICAgICAgICAgICAgICAgJHBpZWNlX2NvdW50
KysNCiAgICAgICAgICAgICAgICApDQp7ICMgZG9fcGllY2VzDQoNCiRpbmxpbmUgPSAkcGll
Y2VzWyRwaWVjZV9jb3VudF07DQoNCg0KDQoNCg0KDQooJHN0dWZmKSA9ICRpbmxpbmUgPX4g
L14oW15cW10qKVxbLzsNCmlmICgkc3R1ZmYgZXEgIiIpICMgbm8gJ1snIGluIHRoZSBsaW5l
DQogIHsNCiAgJGlubGluZSA9fiAvXihbXjAtOV0qKSguKikvOyAjICBpc29sYXRlIHN0dWZm
IGluIGZyb250IG9mIGZpcnN0IHNlYy1tYWluIGRpZ2l0DQogICRiZWZvcmVfbWFpbiA9ICQx
Ow0KICAkaW5saW5lID0gJDI7DQogIH0NCmVsc2UgIyBnb3QgYW4gaXRlbSB3aXRoIGEgJ1sn
IGluIGl0DQogIHsNCiAgJHh4ID0gbGVuZ3RoKCRzdHVmZikgLSAxOw0KICB3aGlsZSAoJHh4
ID49IDApDQogICAgew0KICAgICRjID0gc3Vic3RyKCRzdHVmZiwkeHgsMSk7DQogICAgaWYg
KCRjIGVxICIgIiB8fCAkYyBlcSAiPiIgfHwgJGMgZXEgIskiKSB7IGxhc3Q7IH0NCiAgICAk
eHgtLTsNCiAgICB9DQogIGlmICgkeHggPCAwKSB7ICR4eCA9IDA7IH0NCiAgfQ0KDQokYmVm
b3JlX21haW4gPSBzdWJzdHIoJGlubGluZSwwLCR4eCk7DQokaW5saW5lID0gc3Vic3RyKCRp
bmxpbmUsJHh4KTsNCg0KIyRpbmxpbmUgPX4gL14oW14wLTldKikoWzAtOV0qKFwuWzAtOV0q
KT9cWy4qKSQvOyAjICBpc29sYXRlIHN0dWZmIGluIGZyb250IG9mIGZpcnN0IHNlYy1tYWlu
IGRpZ2l0DQojJGJlZm9yZV9tYWluID0gJDE7ICAjIEFtdXNlPEVOPiAtLSBvciBjb3VsZCBi
ZSBlbXB0eQ0KIyRpbmxpbmUgPSAkMjsgICAgICMgMS4wMVsyXVthXSxbYl0sW2RdDQoNCmlm
ICgkYmVmb3JlX21haW4gPX4gL148QkY+LiokLykNCiAgew0KICBpZigkaW5saW5lID1+IC9e
KC4qKTxSTz4gKiQvKQ0KICAgIHsNCiAgICAkaW5saW5lID0gJDE7DQogICAgJHRyYWlsaW5n
X1JPID0gMTsNCiAgICB9DQogIGVsc2UNCiAgICB7DQogICAgJGVtYmVkZGVkX1JPID0gMTsN
CiAgICB9DQogIH0NCmlmICgkaW5saW5lID1+IC88Uk8+LykgeyAkZW1iZWRkZWRfUk8gPSAx
OyB9DQoNCiMgPExJPjxCRj4yOjxSTz42LjEyWzJdW2RdLCBbM11bYV1baV0sIFtpaV0NCg0K
aWYgKHN1YnN0cigkaW5saW5lLDAsNCkgZXEgIjxSTz4iKQ0KICB7DQogICRiZWZvcmVfbWFp
biAuPSAiPFJPPiI7DQogICRpbmxpbmUgPSBzdWJzdHIoJGlubGluZSw0KTsNCiAgfQ0KDQoN
CiMgPExJPjxCRj41Qjo2Ny4wNls1XVtkXSwgRk0gNjxuPjM4IHRocm91Z2ggRk0gNjxuPjQx
PFJPPg0KDQppZiAoJGlubGluZSA9fiAvKC4qKTxSTz4gKiQvKQ0KICB7DQogICR0cmFpbGlu
Z19STyA9IDE7DQojICAkb3BlbmluZ19CRiA9IDE7DQogICRpbmxpbmUgPSAkMTsgIyBkcm9w
IHRoZSA8Uk8+DQogIH0NCg0KDQokY29tbWEgPSBpbmRleCgkaW5saW5lLCIsIik7DQoNCiMg
Y29tbWEgbWF5IGJlIG5vbi1leGlzdGVudDsgbWVhbnMgd2UgaGF2ZSBsYXN0IHJlZiBhbmQg
dGhlcmUNCiMgYXJlIG5vIGNvbW1hcyBpbiBpdDsgbm90aGluZyB0byBleHBhbmQuDQoNCmlm
ICgkY29tbWEgPCAwKSAjIG5vIGNvbW1hDQogIHsNCiAgJG5ld2xpbmUgLj0gJGJlZm9yZV9t
YWluIC4gJGlubGluZTsNCiAgaWYgKCRwaWVjZV9jb3VudCsxIDwgJG1heF9waWVjZXMpIHsg
JG5ld2xpbmUgLj0gIjsgIjsgfQ0KICBpZiAoJGRlYnVnIG5lICIiKSAgeyAgJG5ld2xpbmUg
Lj0gIlxuIjsgIH0NCiAgbmV4dCBkb19waWVjZXM7ICAjIGRvbmUgd2l0aCB0aGUgcGllY2UN
CiAgfQ0KDQojIHNvIGhhdmUgYSBwaWVjZSB3aXRoIGEgY29tbWE7IGJlZ2luIGV4cGFuc2lv
bg0KDQokY29tbWEgPSAwOw0KDQokaW5saW5lID1+IHMvRk1TL0ZNL2c7DQoNCkB4cGFydHMg
PSAoKTsNCkB4cGFydHMgPSBzcGxpdCggL1xbfFxdLywkaW5saW5lKTsgIyBicmVhayBhcGFy
dCBsaW5lIGF0IHRoZSBbIGFuZCBdJ3MNCg0KJHhtYXhwYXJ0cyA9IEB4cGFydHM7ICMgaG93
IG1hbnkgZWxlbWVudHMgYXJlIHRoZXJlDQoNCiMgc3BsaXQgbGVhdmVzIGVtcHR5IHNsb3Rz
IGluIEBwYXJ0cywgc28gbW92ZSBldmVydGhpbmcgdXAgYW5kIGZpbGwgZW1wdHkgc2xvdHMN
CkBwYXJ0cyA9ICgpOw0KZm9yICgkaT0wLCRqPTA7ICRpIDw9ICR4bWF4cGFydHM7ICRpKysp
DQogIHsNCiAgaWYgKCR4cGFydHNbJGldID1+IC9eICokLykgeyBuZXh0OyB9ICMgZW1wdHkg
ZW50cnk7IHNraXAgb3Zlcg0KICAkYyA9ICIgIjsNCiAgd2hpbGUgKCRjIGVxICIgIikgeyAk
YyA9IGNob3AgKCR4cGFydHNbJGldKTsgfSAjIGRlbGV0ZSB0cmFpbGluZyBibGFua3MNCiAg
JHhwYXJ0c1skaV0gLj0gJGM7DQogICMgaWYgYW4gZW50cnkgaGFzICdUYWJsZScsJ0ZNJywg
b3IgJ0ZpZy4nLCBicmVhayBhcGFydCBhdCAnLCcNCiAgIyBhbiBlbnRyeSBoYXMgYW4gZW1i
ZWRkZWQgY29tbWEsIGJyZWFrIGFwYXJ0IGF0IHRoZSBjb21tYSBhbmQgYWRkIHRvIG1haW4g
YXJyYXkNCiAgaWYgKCR4cGFydHNbJGldID1+IC9bXixdKywvKQ0KICAgIHsNCiAgICBAdHgg
PSAoKTsNCiAgICBAdHggPSBzcGxpdCgvKCwpLywkeHBhcnRzWyRpXSk7DQogICAgZm9yICgk
az0wOyAkdHhbJGtdIG5lICIiOyRrKyssJGorKykNCiAgICAgIHsNCiAgICAgICRwYXJ0c1sk
al0gPSAkdHhbJGtdOw0KICAgICAgfQ0KICAgIH0NCiAgZWxzaWYgKCR4cGFydHNbJGldID1+
IC9eKCwpICooW2EtekEtWjAtOV0rKS8pDQogICAgew0KICAgICRwYXJ0c1skal0gPSAkMTsN
CiAgICAkaisrOw0KICAgICRwYXJ0c1skal0gPSAkMjsNCiAgICAkaisrOw0KICAgIH0NCiAg
ZWxzZQ0KICAgIHsNCiAgICAkcGFydHNbJGpdID0gJHhwYXJ0c1skaV07DQogICAgJGorKzsN
CiAgICB9DQogIH0NCg0KIyByZXNldCBtYXhwYXJ0cyB0byBjb3JyZWN0IG51bWJlcg0KZm9y
ICgkbWF4cGFydHM9MDsgJHBhcnRzWyRtYXhwYXJ0c10gbmUgIiI7ICRtYXhwYXJ0cysrKSB7
IDsgfSAjIGNvdW50IHBhcnRzDQoNCmlmICgkZGVidWcgZXEgInl5eSIpDQogIHsNCiAgcHJp
bnQgKG91dCAiXG5pbmxpbmU9JGlubGluZSIpOw0KICBmb3IgKCR4PTA7JHg8JG1heHBhcnRz
OyR4KyspIHtwcmludCAob3V0ICJcbiR4LS0kcGFydHNbJHhdIik7IH0NCiAgcHJpbnQgKG91
dCAiXG4iKTsNCiAgfQ0KDQpAcm9vdCA9ICgpOw0KJHN0YXJ0aW5nX3Jvb3RpZHggPSAwOw0K
JHJvb3RpZHggPSAwOw0KJHBhcnRzaWR4ID0gMDsNCiRyb290ZW5kID0gMDsNCg0KICMgbG9v
ayBhdCBmaXJzdCBlbGVtZW50IHRvIGJlIGNvcGllZCB0byByb290OyBkZXRlcm1pbmUgd2hh
dCB0aGUgc3RhcnRpbmcNCiAjICRyb290aWR4IHNob3VsZCBiZSAoaW4gY2FzZSB3ZSBoYXZl
IGEgbWlzc2luZyA5OS45OSBhbmQgc3RhcnQgd2l0aCA5OSkNCg0KaWYgKCRiZWZvcmVfbWFp
biA9fiAvUnVsZSAqJC8pDQogIHsNCiAgaWYgKCRwYXJ0c1skcGFydHNpZHhdID1+IC9eW2Et
ekEtWl0qWzAtOV0rXC5bMC05XStbYS16QS1aXSovKQ0KICAgIHsNCiAgICAkc3RhcnRpbmdf
cm9vdGlkeCA9IDA7DQogICAgfQ0KICBlbHNpZiAgKCRwYXJ0c1skcGFydHNpZHhdID1+IC9e
WzAtOV0rLykNCiAgICB7DQogICAgJHN0YXJ0aW5nX3Jvb3RpZHggPSAxOw0KICAgIH0NCiAg
ZWxzaWYgKCRwYXJ0c1skcGFydHNpZHhdID1+IC9eW2Etel0rLykNCiAgICB7DQogICAgJHN0
YXJ0aW5nX3Jvb3RpZHggPSAyOw0KICAgIH0NCiAgZWxzaWYgKCRwYXJ0c1skcGFydHNpZHhd
ID1+IC9eW2l2eF0rLykgIyByb21hbiBudW1iZXI7IHBvc3NpYmx5IGEgW2ldIGxldmVsIDMN
CiAgICB7DQogICAgJHN0YXJ0aW5nX3Jvb3RpZHggPSAzOw0KICAgIH0NCiAgZWxzZQ0KICAg
IHsNCiAgICAkc3RhcnRpbmdfcm9vdGlkeCA9IDA7DQogICAgfQ0KICB9DQoNCg0KIyBjb3B5
IGl0ZW1zIGZyb20gQHBhcnRzIHRvIEByb290LCBhbmQgZXhhbWluZSBmb3IgYSAnOycgICcs
JyBvciBudWxsDQoNCiMgOTktMDYtMjQgaWYgKCRzdGFydGluZ19yb290ID4gMCkgIyBuZWVk
IHRvIGNsZWFyIG91dCBlbnRyaWVzIGFib3ZlIHN0YXJ0aW5nX3Jvb3RpZHgNCmlmICgkc3Rh
cnRpbmdfcm9vdGlkeCA+IDApICMgbmVlZCB0byBjbGVhciBvdXQgZW50cmllcyBhYm92ZSBz
dGFydGluZ19yb290aWR4DQogIHsNCiAgZm9yICgkaT0wOyAkaTwkc3RhcnRpbmdfcm9vdGlk
eDskaSsrKSB7ICRyb290WyRpXSA9ICIiOyB9DQogIH0NCg0KDQpmb3IgKCRpPTAsICRyb290
aWR4ID0gJHN0YXJ0aW5nX3Jvb3RpZHg7DQogICAgICAkcGFydHNbJGldIG5lICIsIiAmJiAk
cGFydHNbJGldIG5lICIiICYmICRwYXJ0c1skaV0gbmUgIjsiOw0KICAgICAgJGkrKywgJHJv
b3RpZHgrKw0KICAgICAgKQ0KICAgIHsNCiAgICAkcm9vdFskcm9vdGlkeF0gPSAkcGFydHNb
JGldOw0KICAgIH0NCg0KJG5leHRkZWxpbSA9ICRpOyAjIHNhdmUgbG9jIG9mIGRlbGltaXRl
ci0tIHRoZSAnLCcgb3IgJzsnDQoNCiRyb290ZW5kID0gJHJvb3RpZHggLSAxOyAjIHNhdmUg
bG9jIG9mIGxhc3QgaXRlbSBpbiBAcm9vdA0KDQojIHNhdmUgd2hlcmUgdGhlIG5ldyBkYXRh
IHN0YXJ0czsgcmlnaHQgYWZ0ZXIgdGhlICwgb3IgOw0KJHBhcnRzaWR4ID0gJGkgKyAxOw0K
DQojIyBmaXJzdCBwcmludCBvdXQgYWNjdW1sYXRlZCBpbmRleCByZWYgKGluIEByb290KQ0K
IyBpZiAoJGl0ZW1jb3VudCAhPSAwKSB7ICRuZXdsaW5lIC49ICI7ICI7IH0gIyBnZXQgb3Vy
ICI7ICIgc2VwZXJhdG9yIGJldHdlZW4gaXRlbXMNCiMgJGl0ZW1jb3VudCsrOyAjIGJ1bXAg
Y291bnRlciBzbyB3ZSBnZXQgc2VwZXJhdG9yIGJldHdlZW4gaXRlbXMgbmV4dCBpdGVtDQoN
CiRuZXdsaW5lIC49ICRiZWZvcmVfbWFpbjsNCiRuZXdsaW5lIC49ICIkcm9vdFswXSI7ICMg
cHV0IG91dCBmaXJzdCBpdGVtIHdpdGhvdXQgYnJhY2tldHMgYXJvdW5kIGl0DQpmb3IgKCRp
PTE7ICRyb290WyRpXSBuZSAiIjsgJGkrKykNCiAgew0KICBpZiAoJHJvb3RbJGldIG5lICI8
bj4iDQogICYmIHN1YnN0cigkcm9vdFskaV0sMCwxKSBuZSAiICINCiAgJiYgc3Vic3RyKCRy
b290WyRpXSwwLDEpIG5lICI6Ig0KICAmJiBzdWJzdHIoJHJvb3RbJGldLDAsMSkgbmUgIuQi
DQogICYmICRyb290WyRpLTFdICAgICAgICAgICBuZSAiIg0KICAgICApDQogICAgew0KICAg
ICRuZXdsaW5lIC49ICJcWyRyb290WyRpXVxdIjsNCiAgICB9DQogIGVsc2UNCiAgICB7DQog
ICAgJG5ld2xpbmUgLj0gJHJvb3RbJGldOw0KICAgIH0NCiAgfQ0KDQojIDk5LTA3LTI4IGlm
ICgkdHJhaWxpbmdfUk8pIHsgJG5ld2xpbmUgLj0gIjxSTz4iOyB9DQppZiAoJHRyYWlsaW5n
X1JPKSB7ICRuZXdsaW5lIC49ICI8Uk8+IjsgfQ0KDQokbmV3bGluZSAuPSAiOyAiOw0KDQpp
ZiAoJGRlYnVnIG5lICIiKSAgeyAgJG5ld2xpbmUgLj0gIlxuIjsgIH0NCg0KaWYgKCRwYXJ0
c1skbmV4dGRlbGltXSBuZSAiLCIpICB7IG5leHQgZG9fcGllY2VzOyB9ICMgZG9uZSwgbm8g
bW9yZSBzdHVmZiBzZXBhcmF0ZWQgYnkgY29tbWENCg0KI2lmIHRvIGhlcmUsIHRoZW4gd2Ug
ZGlkIGZpbmQgYSBjb21tYQ0KDQojICAgIGlkeCAgdmFsdWUgIGxldmVsDQojICAgIC0tLSAg
LS0tLS0gIC0tLS0tDQojICAgICAwICAgIDMuMSAgICAgMQ0KIyAgICAgMSAgICAxICAgICAg
IDINCiMgICAgIDIgICAgYiAgICAgICAzDQojICAgICAzICAgIGkgICAgICAgNA0KIyAgICAg
NCAgICBBICAgICAgIDUNCiMgICAgIDUgICAgRm9ybSAgICA2DQoNCm1hdGNoX2NsYXNzOiA7
DQojIyMjIyMjIyMjIyMjDQoNCiNub3cgZGV0ZXJtaW5lIGNsYXNzIG9mIGRhdGEgb2YgZmly
c3QgaXRlbSBhZnRlciB0aGUgY29tbWENCg0KJGxldmVsID0gMDsNCg0KDQojIGNvdWxkIGJl
IEZNICBvciBGaWcuIG9yIFRhYmxlDQoNCmlmICggKCRwYXJ0c1skcGFydHNpZHhdICF+IC86
LykgIyBUYWJsZSwgRmlnLiBvciBGTSBudW1iZXJzIGhhdmUgYSA8bj4gaW4gdGhlbQ0KJiYg
ICAoJHBhcnRzWyRwYXJ0c2lkeF0gPX4gL14gP1teLF17MSw1fTxuPi8pICMgVGFibGUsIEZp
Zy4gLCBBcHAuLCBvciBGTSBudW1iZXJzIGhhdmUgYSA8bj4gaW4gdGhlbQ0KICAgKQ0KICB7
DQogICMgPExJPkNPTkRJVCBMSU0gMS4wNiwgNy4wMSwgOC4xNDxuPjguMTcgIC8vIG5vIHRh
YmxlLCBmaWcsIG9yIGZtDQogIGlmICgkcm9vdFskcm9vdGVuZF0gPX4gLyhUYWJsZXxGaWdc
LnxGTXxBcHBcLikvKQ0KICAgIHsNCiAgICAkbGV2ZWwgPSA2Ow0KICAgIGdvdG8gZG9uZV9j
bGFzc19tYXRjaGluZzsNCiAgICB9DQogIH0NCg0KIyAgPExJPjVDLjExOiBGaWdzLiA1Qzxu
PjEsIDIsIDMNCiMgIDxMST4ENUMuMTE6IEZpZ3MuIDVDPG4+MQQsBDIELAQzDQojICB3ZSdy
ZSBsb29raW5nIGF0IC0tLS0tLS0tLS1eDQojIGxvb2tpbmcgYXQgdGhlICIyIg0KaWYgKCAo
JHBhcnRzWyRwYXJ0c2lkeF0gIX4gLzovKSAjIFRhYmxlLCBGaWcuIG9yIEZNIG51bWJlcnMg
aGF2ZSBhIDxuPiBpbiB0aGVtDQomJiAgICgkcGFydHNbJHBhcnRzaWR4XSA9fiAvWzAtOV0v
KSAjIFRhYmxlLCBGaWcuIG9yIEZNIG51bWJlcnMgaGF2ZSBhIDxuPiBpbiB0aGVtDQomJiAg
ICgkcm9vdFskcm9vdGVuZF0gPX4gL0ZpZy8pDQomJiAgICgkcm9vdFskcm9vdGVuZF0gPX4g
LzxuPi8pDQogICApDQogICB7DQogICAkbGV2ZWwgPSA3OyAgIyBpdCdzIHNwZWNpYWwNCiAg
IGdvdG8gZG9uZV9jbGFzc19tYXRjaGluZzsNCiAgIH0NCg0KDQppZiAoJHBhcnRzWyRwYXJ0
c2lkeF0gPX4gL15bQS1aXSsvKQ0KICB7DQogICRsZXZlbCA9IDU7DQogIGdvdG8gZG9uZV9j
bGFzc19tYXRjaGluZzsNCiAgfQ0KDQoNCmlmICgkcGFydHNbJHBhcnRzaWR4XSA9fiAvXltp
dnhdKy8pICMgcm9tYW4gbnVtYmVyOyBwb3NzaWJseSBhIFtpXSBsZXZlbCAzDQogICMgc2Vl
IGlmIHRoZXJlIGlzIGEgbGV2ZWwgNCBpbiByb290DQogIHsNCiAgIyBsb29rIHVwIGxldmVs
IGluIHRhYmxlOyB2YWx1ZSBpbiByb290IHNob3VsZCBiZSBsZXNzDQogICRyb290dmFsdWUg
PSAgJHJvbWFueyRyb290WzNdfTsNCiAgJHBhcnRzdmFsdWUgPSAkcm9tYW57JHBhcnRzWyRw
YXJ0c2lkeF19Ow0KICBpZiAoJHBhcnRzdmFsdWUgPiAkcm9vdHZhbHVlKQ0KICAgIHsNCiAg
ICAkbGV2ZWwgPSA0Ow0KICAgIGlmICgkcGFydHNbJHBhcnRzaWR4LTNdID1+IC9eW2Etel0r
LykgIyBhIGZhbHNlIGxldmVsIDQNCiAgICAgIHsNCiAgICAgICRsZXZlbCA9IDM7DQogICAg
ICB9DQogICAgZ290byBkb25lX2NsYXNzX21hdGNoaW5nOw0KICAgIH0NCg0KICAjIHZhbHVl
IG9mIHBhcnRzIGl0ZW0gaXMgbm90IGdyZWF0ZXIgdGhhbiByb290OyBwZXJoYXBzIHBhcnRz
IGl0ZW0gaXMNCiAgIyAgYSBsZXZlbCAzIGl0ZW07IGNoZWNrIGl0IG91dA0KDQogICRyb290
dmFsdWUgPSAkYV90b196eyRyb290WzJdfTsNCiAgJHBhcnRzdmFsdWUgPSAkYV90b196eyRw
YXJ0c1skcGFydHNpZHhdfTsNCiAgaWYgKCRwYXJ0c3ZhbHVlID4gJHJvb3R2YWx1ZSkgeyAk
bGV2ZWwgPSAzOyBnb3RvIGRvbmVfY2xhc3NfbWF0Y2hpbmc7IH0NCiAgfSAjICBpZiAoJHBh
cnRzWyRwYXJ0c2lkeF0gPX4gL15baXZ4XSsvKSAjIHJvbWFuIG51bWJlcjsgcG9zc2libHkg
YSBbaV0gbGV2ZWwgMw0KDQoNCmlmICgkcGFydHNbJHBhcnRzaWR4XSA9fiAvXjxJVD5pPFJP
Pi8pICB7ICRsZXZlbCA9IDM7ICBnb3RvIGRvbmVfY2xhc3NfbWF0Y2hpbmc7IH0NCg0KDQpp
ZiAoJHBhcnRzWyRwYXJ0c2lkeF0gPX4gL148SVQ+bDxSTz4vKSAgeyAkbGV2ZWwgPSAzOyAg
Z290byBkb25lX2NsYXNzX21hdGNoaW5nOyB9DQoNCg0KaWYgKCRwYXJ0c1skcGFydHNpZHhd
ID1+IC9eW2Etel0rLykNCiAgew0KICAjIHNlZSBpZiB0aGVyZSBpcyBhIGxldmVsIDMgaW4g
cm9vdA0KICAkcm9vdHZhbHVlID0gJGFfdG9fenskcm9vdFsyXX07DQogICRwYXJ0c3ZhbHVl
ID0gJGFfdG9fenskcGFydHNbJHBhcnRzaWR4XX07DQogIGlmICgkcGFydHN2YWx1ZSA+ICRy
b290dmFsdWUpICMgOTktMDctMjgNCiAgICB7DQogICAgJGxldmVsID0gMzsgZ290byBkb25l
X2NsYXNzX21hdGNoaW5nOw0KICAgIGlmICgkcGFydHNbJHBhcnRzaWR4LTFdID1+IC9eW2Et
el0rLykgIyBhIGZhbHNlIGxldmVsIDMNCiAgICAgIHsNCiAgICAgICRsZXZlbCA9IDI7DQog
ICAgICB9DQogICAgfQ0KICB9DQoNCg0KaWYgKCRwYXJ0c1skcGFydHNpZHhdID1+IC9eWzAt
OV0rLykNCiAgew0KICAkbGV2ZWwgPSAyOw0KICBnb3RvIGRvbmVfY2xhc3NfbWF0Y2hpbmc7
DQogIH0NCg0KDQppZiAoJHBhcnRzWyRwYXJ0c2lkeF0gPX4gL15bYS16QS1aXSpbMC05XStc
LlswLTldK1thLXpBLVpdKi8pDQogIHsNCiAgJGxldmVsID0gMTsNCiAgZ290byBkb25lX2Ns
YXNzX21hdGNoaW5nOw0KICB9DQoNCg0KIyBjb3VsZCBiZSB0aGVyZSBpcyBub3QgbWF0Y2g7
IHNvIGp1c3QgYXBwZW5kIG5ldyBtYXRlcmlhbCB0byBlbmQgb2Ygcm9vdA0KJGxldmVsID0g
JHJvb3RlbmQgKyAxOw0KZ290byBvdmVybGF5X25ld19pdGVtczsNCg0KDQpwcmludCAoICJc
bmRpZG4ndCBtYXRjaCBwYXR0ZXJuIGluIHBhcnRzW3BhcnRzaWR4XSA9IFwiJHBhcnRzWyRw
YXJ0c2lkeF1cIiIpOw0KcHJpbnQgKCBvdXQgIlxuZGlkbid0IG1hdGNoIHBhdHRlcm4gaW4g
cGFydHNbcGFydHNpZHhdID0gXCIkcGFydHNbJHBhcnRzaWR4XVwiIik7DQoNCmRvbmVfY2xh
c3NfbWF0Y2hpbmc6IDsNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KIyBub3cgc2NhbiBy
b290IHRvIGZpbmQgd2hlcmUgdGhlIGNvbXBhcmlibGUgbGV2ZWwgc3RhcnRzDQoNCiMgMUEu
MDJbMV1bYV1bdmlpXVtFXQ0KIyAxMTExMSAyICAzICA0NDQgIDUNCg0KIyAxLjAxWzRdW2Jd
W2ldW0FdDQojIDExMTEgMiAgMyAgNCAgNQ0KDQojIDEuMDFBWzRdW2JdW2ldW0FdDQojIDEx
MTEgMiAgMyAgNCAgNQ0KDQojICBtb3ZlIG5ldyBvbiB0b3Agb2YgcHJldmlvdXMNCg0KIyAg
PExJPjVDLjExOiBGaWdzLiA1QzxuPjEsIDIsIDMNCiMgIDxMST4ENUMuMTE6IEZpZ3MuIDVD
PG4+MQQsBDIELAQzDQppZiAoJGxldmVsID09IDcpICMgbWVhbnMgd2UgaGF2ZSBhIDk5PG4+
MSwyLDMgZW50cnkgZm9yIEZpZy4NCiAgew0KICAkcm9vdFskcm9vdGVuZF0gPX4gL14oW14+
XSo+KS87DQogICRkMSA9ICQxOw0KICAkcGFydHNbJHBhcnRzaWR4XSA9fiAvXiAqKFswLTld
KykvOw0KICAkZDExID0gJDE7DQogICRyb290WyRyb290ZW5kXSA9ICRkMSAuICRkMTE7DQog
ICRuZXh0ZGVsaW0gPSAkcGFydHNpZHggKyAxOyAjIHBvaW50IHBhc3Qgc2VwYXJhdG9yIG9y
IGVuZCBvZiBsaW5lDQogIGdvdG8gcHJpbnRfcm9vdDsNCiAgfQ0KDQppZiAoJGxldmVsID09
IDYpICMgbWVhbnMgd2UgaGF2ZSBhIDk5PG4+OTkgZW50cnkgZm9yIGEgVGFibGUgb3IgRmln
Lg0KICB7DQogICMgbGFzdCBlbnRyeSBpbiByb290IHNob3VsZCBoYXZlIGEgVGFibGUgb3Ig
RmlnLiBvciBGTQ0KICAkdzEgPSAkcm9vdFskcm9vdGVuZF07ICAgIyB0YWtlIG91dCBvZiBh
cnJheSBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbg0KICAkdzIgPSAkcGFydHNbJHBhcnRzaWR4
XTsgIyB0YWtlIG91dCBvZiBhcnJheSBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbg0KICBpZiAo
JHcxID1+IC8oXi4qKFRhYmxlfEZpZ1wufEZNfEFwcFwuKSkvKQ0KICAgIHsNCiAgICAkdzEg
PSAkMTsgICMganVzdCB3YW50IHRoZSBzdHVmZiB1cCB0byBhbmQgaW5jbHVkaW5nIHRoZSB3
b3JkDQogICAgfQ0KICBlbHNlDQogICAgew0KICAgIHByaW50ICgiXGFcbkJhZCBOZXdzISEi
KTsNCiAgICBwcmludCAoIlxuQ2FuJ3QgZmluZCBcKFRhYmxlfEZpZ1wufEZNfEFwcFwuXCkg
aW4gXCR3MSIpOw0KICAgIHByaW50ICgiXG5vcmlnIGlubGluZSDExBAkaW5saW5lX29yaWcR
xMRcbiIpOw0KICAgIHByaW50ICgiXG5MaW5lIGlnbm9yZWRcblxuIik7DQogICAgbmV4dCBk
b19waWVjZXM7DQogICAgfQ0KICAjIGlzb2xhdGUgdGhlIDk5PG4+OTkgaW4gJHBhcnRzWyRw
YXJ0c2lkeF0NCiAgJHcxIC49ICR3MjsgIyBjYXQgd29yZCBhbmQgOTk8bj45OSB0byBmb3Jt
IGxhc3QgZWxlbWVudCBvZiByb290IGFycmF5DQogICRyb290WyRyb290ZW5kXSA9ICR3MTsN
CiAgJHBhcnRzaWR4Kys7ICMgcG9pbnQgcGFzdCB0aGlzIGl0ZW0gd2UganVzdCB1c2VkDQog
ICRuZXh0ZGVsaW0gPSAkcGFydHNpZHg7DQogIGdvdG8gcHJpbnRfcm9vdDsNCiAgfSAjIGlm
IGxldmVsPTYNCg0KDQojICBpZiAoJGxldmVsICE9IDYpIHsgJHJvb3RlbmQgPSAkbGV2ZWwg
LSAxOyB9DQokcm9vdGVuZCA9ICRsZXZlbCAtIDE7DQoNCmlmICgkcm9vdFskcm9vdGVuZF0g
ZXEgIiwiKSB7ICRyb290ZW5kLS07IH0gIyBtYXkgYmUgYSBjb21tYQ0KDQpvdmVybGF5X25l
d19pdGVtczoNCiMjIyMjIyMjIyMjIyMjIyMjIw0KDQp3aGlsZSAoJHBhcnRzWyRwYXJ0c2lk
eF0gbmUgIiwiDQogICAmJiAgJHBhcnRzWyRwYXJ0c2lkeF0gbmUgIjsiDQogICAmJiAgJHBh
cnRzWyRwYXJ0c2lkeF0gbmUgIiINCiAgICYmICAkcGFydHNpZHggPCAkbWF4cGFydHMNCiAg
ICApDQogIHsNCiAgJHJvb3RbJHJvb3RlbmRdID0gJHBhcnRzWyRwYXJ0c2lkeF07DQogICRy
b290ZW5kKys7DQogICRwYXJ0c2lkeCsrOw0KICB9DQoNCiRyb290ZW5kID0gJHJvb3RlbmQg
LSAxOw0KJG5leHRkZWxpbSA9ICRwYXJ0c2lkeDsNCiRwYXJ0c2lkeCsrOyAjIHBvaW50IHBh
c3QgY29tbWEgdG8gbmV4dCBkYXRhIGVudHJ5DQoNCnByaW50X3Jvb3Q6DQojIyMjIyMjIyMj
DQoNCiMgY2xlYXIgb3V0IHJlc3Qgb2Ygcm9vdCBhcnJheSBmcm9tIGxhc3QgY3ljbGUNCmZv
ciAoJGsgPSAkcm9vdGVuZCsxOyAkayA8IDEwOyAkaysrKSB7ICRyb290WyRrXSA9ICIiOyB9
DQoNCiRuZXdsaW5lIC49ICRiZWZvcmVfbWFpbjsgIyBuZWVkIHRvIHJlcGVhdCB0aGlzIGZv
ciBlYWNoIGl0ZW0NCg0KIyBjYXQgbmV3IGV4cGFuZGVkIGluZGV4IGludG8gbGluZQ0KJG5l
d2xpbmUgLj0gIiRyb290WzBdIjsNCmZvciAoJGk9MTsgJHJvb3RbJGldIG5lICIiOyAkaSsr
KQ0KICB7DQogIGlmICgkcm9vdFskaV0gbmUgIjxuPiINCiAgJiYgc3Vic3RyKCRyb290WyRp
XSwwLDEpIG5lICIgIg0KICAmJiBzdWJzdHIoJHJvb3RbJGldLDAsMSkgbmUgIjoiDQogICYm
IHN1YnN0cigkcm9vdFskaV0sMCwxKSBuZSAi5CINCiAgJiYgJHJvb3RbJGktMV0gICAgICAg
ICAgIG5lICIiDQogICAgICkNCiAgICB7DQogICAgJG5ld2xpbmUgLj0gIlxbJHJvb3RbJGld
XF0iOw0KICAgIH0NCiAgZWxzZQ0KICAgIHsNCiAgICAkbmV3bGluZSAuPSAkcm9vdFskaV07
DQogICAgfQ0KICB9DQoNCmlmICgkdHJhaWxpbmdfUk8pDQogIHsNCiAgaWYgKCRwYXJ0c1sk
cGFydHNpZHgrMV0gZXEgIiIpDQogICAgew0KICAgICRuZXdsaW5lIC49ICI8Uk8+IjsNCiAg
ICB9DQogIH0NCg0KJG5ld2xpbmUgLj0gIjsgIjsNCg0KaWYgKCRkZWJ1ZyBuZSAiIikgIHsg
ICRuZXdsaW5lIC49ICJcbiI7ICB9DQoNCmlmICgkcGFydHNbJHBhcnRzaWR4XSBlcSAiIikN
CiAgew0KICBuZXh0IGRvX3BpZWNlczsNCiAgfQ0KDQppZiAoJHBhcnRzWyRuZXh0ZGVsaW1d
IGVxICIsIiApDQogIHsNCiAgJHBhcnRzaWR4ID0gJG5leHRkZWxpbSArIDE7DQogIGdvdG8g
bWF0Y2hfY2xhc3M7DQogIH0NCg0KfSAjICBlbmQgZG9fcGllY2VzDQoNCg0KZ290byBsaW5l
X2RvbmU7DQoNCg0KanVzdF93cml0ZV9pdF9vdXQ6IDsNCiMjIyMjIyMjIyMjIyMjIyMjIyMj
DQoNCiMgZml4IHByb2JsZW0gd2hlcmUgYSAnLCcgc2VwYXJhdGVkIGZvcm0gaXRlbXM7IHJl
cGxhY2Ugd2l0aCAnOycNCiMgPExJPkFtdXNlPEVOPjQuMDRbMl0gRm9ybSAxOSwgQW11c2U8
RU4+NC4wNFsyXSBGb3JtIDIxDQojIHNlcGFyYXRlICdGb3JtJ3Mgd2l0aCAnOycsIHJlcGxh
Y2luZyB0aGUgJywnDQokbmV3bGluZSA9fiBzL0Zvcm0gKFteLF17MSwzfSksL0Zvcm0gJDE7
L2c7DQoNCiMgbWFrZSBzdXJlIG5vICc7JyBhdCB2ZXJ5IGVuZCBvZiBsaW5lDQokbmV3bGlu
ZSA9fiBzLzsgKiQvLzsgICMgZ2V0IHJpZCBvZiB0cmFpbGluZyAnOycNCiRjID0gY2hvcCAo
JG5ld2xpbmUpOw0KaWYgKCRjIG5lICJcbiIpIHsgJG5ld2xpbmUgLj0gJGM7IH0NCmlmICgk
b3BlbmluZ19CRikgeyAkbmV3bGluZSAuPSAiPFJPPiI7IH0NCiRuZXdsaW5lIC49ICJcbiI7
DQoNCmlmICgkZG9pbmdfc2dtbCkNCiAgew0KICAkbmV3bGluZSA9ICZjb252ZXJ0X2JlbmRl
cl90b19zZ21sKCRuZXdsaW5lKTsNCiAgfQ0KDQpwcmludCAob3V0ICRuZXdsaW5lKTsNCiNw
cmludCAob3V0ICJcbiIpOw0KJG5ld2xpbmUgPSAiIjsNCm5leHQgcmVhZGxvb3A7DQoNCg0K
bGluZV9kb25lOiAgOw0KIyMjIyMjIyMjIyMjIw0KDQppZiAoJHJlcGxhY2VfYnJhY2tldHMg
PT0gMSkNCiAgew0KICAkbmV3bGluZSA9fiBzL1xbL1woL2c7DQogICRuZXdsaW5lID1+IHMv
XF0vXCkvZzsNCiAgfQ0KDQppZiAoJGRvaW5nX3NnbWwpDQogIHsNCiAgJG5ld2xpbmUgPX4g
cy/kLyA8aXRhbGljPmV0IHNlcVwuPFwvaXRhbGljPi9nOw0KICB9DQplbHNlDQogIHsNCiAg
JG5ld2xpbmUgPX4gcy/kLyA8SVQ+ZXQgc2VxXC48Uk8+L2c7DQogIH0NCg0KIyByZXBsYWNl
ICcgRk0nIHdpdGggJywgRk0nICAocmVpbnNlcnQgdGhlIGNvbW1hKQ0KJG5ld2xpbmUgPX4g
cy8gP0ZNLywgRk0vZzsgIw0KDQojIG9yaWdpbmFsbHkgd2FzOiA8TEk+NUY6QXJ0LiA5LCBQ
dC4gMTIsIEFwcC4gQTxuPjENCiMgYmVjYW1lICAgICAgICA6IDxMST41RjpBcnQuIDkgUHQu
IDEyIEFwcC4gQTxuPjENCg0KaWYgKCRuZXdsaW5lID1+IC9eKC4qKUFydFwuICguKikoUHRc
Li4qKS8pDQogIHsgJG5ld2xpbmUgPSAiJDFBcnQuICQyLCAkMyI7IH0NCmlmICgkbmV3bGlu
ZSA9fiAvXiguKilQdFwuICguKilBcHBcLiguKikvKQ0KICB7ICRuZXdsaW5lID0gIiQxUHQu
ICQyLCBBcHAgJDMiOyB9DQokbmV3bGluZSA9fiBzLyAsLywvZzsNCg0KIyBnZXQgcmlkIG9m
IGEgdHJhaWxpbmcgJzsnLCBpZiBleGlzdHMNCiRjID0gIiAiOyAjIGdldCByaWQgb2YgdHJh
aWxpbmcgc3BhY2VzDQp3aGlsZSAoJGMgZXEgIiAiIHx8ICRjIGVxICI7IikNCiAgew0KICAk
YyA9IGNob3AoJG5ld2xpbmUpOw0KICB9DQokbmV3bGluZSAuPSAkYzsNCg0KIyBnZXQgcmlk
IG9mIG11bHRpcGxlIHNwYWNlcyBiZXR3ZWVuIGVudHJpZXM7IG9ubHkgd2FudCAxIHNwYWNl
DQokbmV3bGluZSA9fiBzLyAgKi8gL2c7DQoNCiMgZ2V0IHJpZCBvZiB0aGUgc3BhY2UgZm9s
bG93aW5nIGFuIDxFTj4NCiRuZXdsaW5lID1+IHMvPEVOPiAqLzxFTj4vZzsNCg0KaWYgKCRv
cGVuaW5nX0JGKSB7ICRuZXdsaW5lIC49ICI8Uk8+IjsgfQ0KJG5ld2xpbmUgLj0gIlxuIjsN
Cg0KaWYgKCRkb2luZ19zZ21sKQ0KICB7DQogICRuZXdsaW5lID0gJmNvbnZlcnRfYmVuZGVy
X3RvX3NnbWwoJG5ld2xpbmUpOw0KICB9DQoNCnByaW50ICggb3V0ICRuZXdsaW5lICk7DQok
bmV3bGluZSA9ICIiOw0KDQpuZXh0IHJlYWRsb29wOw0KDQoNCn0gIyBlbmQgcmVhZGxvb3AN
Cg0KDQpjbG9zZSAoaW4pOw0KaWYgKCRvbmVfb3V0cHV0X2ZpbGUgPT0gMCkgIyBpZiBvbmUg
b3V0cHV0IGZpbGUgZm9yIGVhY2ggaW5wdXQgZmlsZQ0KICB7DQogIGNsb3NlICAoIG91dCAp
Ow0KICB9DQoNCmdvdG8gbmV4dF9maWxlOw0KDQpkb25lOiA7DQojIyMjIyMjDQoNCmlmICgg
KCRFTlZ7ImRvbnRkZWxldGUifSBlcSAiIikgJiYgKCRFTlZ7IkRPTlRERUxFVEUifSBlcSAi
IikgKQ0KICB7DQogIGlmICgkdGVtcGZpbGVuYW1lIG5lICIiKSB7IHN5c3RlbSgiZGVsICR0
ZW1wZmlsZW5hbWUiKTsgfQ0KICB9DQoNCmlmICgkcXVpZXQgPT0gMCkgeyBkaWUgKCJcbiRQ
ZXJsU2NyaXB0LS1Kb2IgY29tcGxldGVkXG5cbiIpOyB9DQpkaWUoIlxuIik7DQoNCn0gIyBF
TkQgTUFJTiAgRU5EIE1BSU4gIEVORCBNQUlOICBFTkQgTUFJTg0KDQojxMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xA0KIyAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0X3NnbWxfdG9fYmVuZGVyDQoj
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExA0Kc3ViIGNvbnZlcnRfc2dtbF90b19iZW5kZXIgIygkaW5saW5lKQ0K
IyBjb252ZXJ0cyBhIGxpbmUgZW5jb2RlZCBpbiBzZ21sIHRvIGJlbmRlciBmb3IgcHJvY2Vz
c2luZw0KIyBjYWxsICRuZXdsaW5lID0gJmNvbnZlcnRfc2dtbF90b19iZW5kZXIoJGxpbmV0
b2ZpeHVwKTsNCnsNCmxvY2FsICgkbGluZSkgPSBAXzsgIyBnZXQgdGhlIHBhc3NlZCBpbiBz
dHJpbmcNCiRsaW5lID1+IHMvPGxvY2F0b3I+LzxMST4vZ2lvOw0KJGxpbmUgPX4gcy8maXQ7
LzxJVD4vZ2lvOw0KJGxpbmUgPX4gcy88aXRhbGljPi88SVQ+L2dpbzsNCiRsaW5lID1+IHMv
PFwvaXRhbGljPi88Uk8+L2dpbzsNCiRsaW5lID1+IHMvJmVpdDsvPFJPPi9naW87DQokbGlu
ZSA9fiBzLzxib2xkPi88QkY+L2dpbzsNCiRsaW5lID1+IHMvPFwvYm9sZD4vPFJPPi9naW87
DQokbGluZSA9fiBzLyZlbnNwOy88RU4+L2dpbzsNCiRsaW5lID1+IHMvJnNjOy9ceGM4L2dp
bzsNCiRsaW5lID1+IHMvJmVzYzsvXHhjOS9naW87DQoNCnJldHVybiAkbGluZTsNCn0NCg0K
I8TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMQNCiMgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydF9iZW5k
ZXJfdG9fc2dtbA0KI8TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMQNCnN1YiBjb252ZXJ0X2JlbmRlcl90b19zZ21s
ICMoJGlubGluZSkNCiMgY29udmVydHMgYSBsaW5lIGVuY29kZWQgaW4gYmVuZGVyIGZvciBw
cm9jZXNzaW5nIGJhY2sgdG8gc2dtbA0KIyBjYWxsICRuZXdsaW5lID0gJmNvbnZlcnRfYmVu
ZGVyX3RvX3NnbWwoJGxpbmV0b2ZpeHVwKTsNCnsNCmxvY2FsICgkbGluZSkgPSBAXzsgIyBn
ZXQgdGhlIHBhc3NlZCBpbiBzdHJpbmcNCg0KJGxpbmUgPX4gcy88TEk+Lzxsb2NhdG9yPi9n
aW87DQoNCndoaWxlICgkbGluZSA9fi88QkY+Lio8Uk8+LykNCiAgew0KICAkbGluZSA9fiBz
LzxCRj4vPGJvbGQ+L2k7DQogICRsaW5lID1+IHMvPFJPPi88XC9ib2xkPi9pOw0KICB9DQoN
CndoaWxlICgkbGluZSA9fi88SVQ+Lio8Uk8+LykNCiAgew0KICAkbGluZSA9fiBzLzxJVD4v
PGl0YWxpYz4vaTsNCiAgJGxpbmUgPX4gcy88Uk8+LzxcL2l0YWxpYz4vaTsNCiAgfQ0KDQok
bGluZSA9fiBzL1x4YzgvJnNjOy9naW87DQokbGluZSA9fiBzL1x4YzkvJmVzYzsvZ2lvOw0K
JGxpbmUgPX4gcy88RU4+LyZlbnNwOy9naW87DQoNCnJldHVybiAkbGluZTsNCn0NCg0KDQoj
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExA0KIyAgICAgICAgICBMRUFWRSAhISEgICAgICAgICAgICBuYW1lX3Nv
cnQNCiPExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTEDQpzdWIgbmFtZV9zb3J0ICMgdXNlZCB0byBzb3J0IG5hbWVz
IGFmdGVyIGdldHRpbmcgaW5wdXQgZmlsZSBuYW1lcyBmb3IgaW5wdXQNCnsNCmxvY2FsICgk
aSk7DQoNCmlmIChzdWJzdHIoJGEsMCwxMikgbHQgc3Vic3RyKCRiLDAsMTIpKSB7IHJldHVy
biAtMTsgfQ0KaWYgKHN1YnN0cigkYSwwLDEyKSBndCBzdWJzdHIoJGIsMCwxMikpIHsgcmV0
dXJuICAxOyB9DQojIGlmIHRvIGhlcmUsIHRoZW4gZmlyc3Qga2V5cyBhcmUgZXF1YWwNCnJl
dHVybiAwOw0KfSAjIGVuZCBuYW1lX3NvcnQNCg0KI8TExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQNCiMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdldF9uZXh0X25hbWUNCiPExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQpz
dWIgZ2V0X25leHRfbmFtZSAjIHNlZSBpZiB0aGVyZSBpcyBhbm90aGVyIGlucHV0IGZpbGUg
dG8gcHJvY2Vzcw0Kew0KJG5hbWVjb3VudCsrOw0KaWYgKCRuYW1lY291bnQgPj0gJG1heG5h
bWVzKQ0KICB7DQogICRtb3JlX2lucHV0ID0gMDsNCiAgcmV0dXJuIDA7DQogIH0NCiRpbmZp
bGVuYW1lID0gJG5hbWVzWyRuYW1lY291bnRdOw0KJGluZmlsZW5hbWV4ID0gJGluZmlsZW5h
bWU7ICMgdXNlIHRoZSAneCcgbmFtZSBmb3IgbXNnIHRvIHVzZXINCiRtb3JlX2lucHV0ID0g
MTsNCg0KaWYgKCRnZW5lcmF0ZV9vdXRuYW1lID09IDApIHsgcmV0dXJuIDA7IH0NCg0KJGlu
ZmlsZW5hbWUgPX4gLyhbXlwuXSopKFwuKC4qKSk/LzsNCiMgICAgICAgICAgICAgICAxMTEx
MTExIDIgIDMzMyAyDQokcDEgPSAkMTsNCiRwMyA9ICQzOw0KJG5hbWU4ID0gJDE7DQokZXh0
MyAgPSAkMzsNCiRvdXRwdXRuYW1lID0gc3ByaW50ZigiJXNcLiVzIg0KICAgICAgICAgICAg
ICAgLCAkcDEgLCAkb3V0cHV0X2ZpbGVfZXh0KTsNCnJldHVybiAxOw0KfSAjIGVuZCBnZXRf
bmV4dF9uYW1lDQoNCiPExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTEDQojICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hlY2tfcGVybF92ZXJzaW9uDQojxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0Kc3ViIGNoZWNrX3Blcmxf
dmVyc2lvbiAjIHNlZSBpZiB3ZSBhcmUgcnVubmluZyB3aXRoIHRoZSB2ZXJzaW9uIG9mIHBl
cmwNCnsNCmxvY2FsICgkdmVyLCRkMSwkZDIsJHh4KTsNCiR2ZXIgPSAkXTsgIyBnZXQgdGhl
IHBlcmwgdmVyc2lvbiBhbmQgcGF0Y2ggbGV2ZWwNCg0KIyMgVGhlIERPUyB2ZXJzaW9uIChQ
RVJMLkVYRSkgcHJvdmlkZXMgdGhlIGZvbGxvd2luZw0KIyMNCiMjICRSQ1NmaWxlOiBwZXJs
LmMsdiAkJFJldmlzaW9uOiA0LjAuMS44ICQkRGF0ZTogMTk5My8wMi8wNSAxOTozOTozMCAk
DQojIyBQYXRjaCBsZXZlbDogMzYNCiMjDQojIyBUaGUgTlQgdmVyc2lvbiAoUEVSTC1OVC5F
WEUpIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcNCiMjDQojIyBwZXJsIGZvciBOVCAkJFJldmlz
aW9uOiA0LjAuMS44DQojIyBQYXRjaCBsZXZlbDogMzYNCg0KIyMgJFBlcmxWZXJzaW9uID0g
IlZlcnNpb24gNC4wLjEuOCBQYXRjaCBMZXZlbCAzNiI7DQokdmVyID1+IC9SZXZpc2lvbjog
KFswLTlcLl0qKS87DQokZDEgPSAkMTsNCiR2ZXIgPX4gL1BhdGNoIGxldmVsOiAoWzAtOV0q
KS87DQokZDIgPSAkMTsNCiR4eCA9ICJWZXJzaW9uICIgLiAkZDEgLiAiIFBhdGNoIExldmVs
ICIgLiAkZDI7DQppZiAoJHh4IG5lICRQZXJsVmVyc2lvbikgIyAgPSAiNC4wLjEuOC0tMzYi
Ow0KICB7DQogIHdhcm4oIlxuB1dBUk5JTkchIFRoaXMgUEVSTCBzY3JpcHQgd2FzIHdyaXR0
ZW4gZm9yIFBlcmwgJFBlcmxWZXJzaW9uXG4iKTsNCiAgd2FybigiVGhpcyB2ZXJzaW9uIGlz
ICR4eFxuIik7DQogIHdhcm4oIklmIHlvdSBjb250aW51ZSwgcmVzdWx0cyBtYXkgYmUgbm90
IGFzIHBsYW5uZWQuXG4iKTsNCiAgd2FybigiXG5EbyB5b3Ugd2lzaCB0byBjb250aW51ZT8g
UmVzcG9uZCBZIHRvIGNvbnRpbnVlLlxuIik7DQogICR4eCA9IDxTVERJTj47DQogIGlmICgk
eHggIX4gL1tZeV0vKQ0KICAgIHsNCiAgICBkaWUgKCJcbgdKb2IgYWJvcnRlZC0td3Jvbmcg
dmVyc2lvbiBvZiBwZXJsIChuZWVkICRQZXJsVmVyc2lvbilcbiIpOw0KICAgIH0NCiAgfQ0K
IyBpZiB0byBoZXJlLCB0aGVuIHVzZXIgc2F5cyBwcm9jZWVkIHJlZ2FyZGxlc3M7IGxvdHMg
b2YgbHVjaywgdXNlciENCnJldHVybiAxOw0KfQ0KDQojxMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KIyAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGVja19mb3Jfd29yZHBlcmZlY3QNCiPExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTEDQpzdWIgY2hlY2tfZm9yX3dvcmRwZXJmZWN0DQp7DQojIGNoZWNrIHRvIG1ha2Ugc3Vy
ZSBmaWxlIGlzIG5vdCB3b3JkcGVyZmVjdA0KYmlubW9kZSAoaW4pOyAjY2hhbmdlIGZpbGUg
dG8gcmVhZCBpbiBiaW5hcnkgbW9kZSAoaW5zdGVhZCBvZiBub3JtYWwgYXNjaWkpDQokY2hh
cnNfYWN0dWFsbHlfcmVhZCA9IHJlYWQgKGluLCAkaW5saW5lLCAkY2hhcnNfdG9fcmVhZCk7
DQpjbG9zZSAoIGluICk7ICMgbXVzdCBjbG9zZSBmaWxlIHRvIHJlc2V0IHRoZSAnYmlubW9k
ZScgbW9kZQ0KaWYgKCBzdWJzdHIoJGlubGluZSwwLDQpICBlcSAiXHhmZldQQyIgICAgICAg
ICAgIyBtZWFucyBpdCdzIGEgd29yZHBlcmZlY3QgZmlsZQ0KJiYgICBzdWJzdHIoJGlubGlu
ZSw4LDQpICBlcSAiXHgwMVx4MGFceDAyXHgwMSIgIyBtZWFucyBpdCdzIHZlcnNpb24gNi4x
DQogICApDQogIHsNCiAgcHJpbnQgIgdcbiBJbnB1dCBmaWxlIMTEECAkaW5maWxlbmFtZSAR
xMQgaXMgYSBXb3JkUGVyZmVjdCBmaWxlLS1jYW5ub3QgdXNlLiI7DQogICR3b3JkcGVyZmVj
dF9maWxlID0gMTsNCiAgcmV0dXJuIDE7DQogIH0NCm9wZW4oaW4sIjwkaW5maWxlbmFtZSIp
ICAgfHwgZGllICJDYW4ndCBvcGVuIFxVJGluZmlsZW5hbWVcRS0tJCFcbiI7DQokd29yZHBl
cmZlY3RfZmlsZSA9IDA7DQpyZXR1cm4gMDsNCn0NCg0KI8TExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQNCiMgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hlY2tfZm9yX3ppcA0KI8TExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQNCnN1
YiBjaGVja19mb3JfemlwX2ZpbGUNCnsNCiMgY2hlY2sgdG8gbWFrZSBzdXJlIGZpbGUgaXMg
bm90IHppcA0KYmlubW9kZSAoaW4pOyAjY2hhbmdlIGZpbGUgdG8gcmVhZCBpbiBiaW5hcnkg
bW9kZSAoaW5zdGVhZCBvZiBub3JtYWwgYXNjaWkpDQokY2hhcnNfYWN0dWFsbHlfcmVhZCA9
IHJlYWQgKGluLCAkaW5saW5lLCAkY2hhcnNfdG9fcmVhZCk7DQpjbG9zZSAoIGluICk7ICMg
bXVzdCBjbG9zZSBmaWxlIHRvIHJlc2V0IHRoZSAnYmlubW9kZScgbW9kZQ0KaWYgKCBzdWJz
dHIoJGlubGluZSwwLDUpIGVxICJceDUwXHg0Qlx4MDNceDA0XHgxNCIgKSAjIG1lYW5zIGl0
IGEgemlwIGZpbGUNCiAgew0KICBwcmludCAiB1xuIElucHV0IGZpbGUgxMQQICRpbmZpbGVu
YW1lIBHExCBpcyBhIHppcCBmaWxlLS1jYW5ub3QgdXNlLiI7DQogICR6aXBfZmlsZSA9IDE7
DQogIHJldHVybiAxOw0KICB9DQpvcGVuKGluLCI8JGluZmlsZW5hbWUiKSAgIHx8IGRpZSAi
Q2FuJ3Qgb3BlbiBcVSRpbmZpbGVuYW1lXEUtLSQhXG4iOw0KJHppcF9maWxlID0gMDsNCnJl
dHVybiAwOw0KfQ0KDQojxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KIyAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2V0X2lucHV0X2ZpbGVfbmFtZXMNCiPExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQoNCnN1YiBnZXRfaW5w
dXRfZmlsZV9uYW1lcw0Kew0KIyBnZXQgY29udHJvbCBmaWxlICBkaXJlY3RvcnkgbmFtZQ0K
aWYgKCRzeXN0ZW1uYW1lIG5lICIiKQ0KICB7DQogICRjb250cm9sX2RpciA9ICIiOw0KICAk
Y29udHJvbF9kaXIgPSAkRU5WeyIkc3lzdGVtbmFtZSJ9Ow0KICBpZiAoJGNvbnRyb2xfZGly
IGVxICIiKQ0KICAgIHsNCiAgICAkY29udHJvbF9kaXIgPSAkRU5WeyRzeXN0ZW1uYW1lfTsN
CiAgICB9DQogIGlmICgkY29udHJvbF9kaXIgZXEgIiIpDQogICAgew0KICAgIHByaW50ICgi
XG5cblxhTWlzc2luZyB0aGUgbG9jYXRpb24gb2YgdGhlICRzeXN0ZW1uYW1lIGNvbnRyb2wg
ZmlsZXMiKTsNCiAgICBwcmludCAoIlxuXG51c2UgU0VUICRzeXN0ZW1uYW1lPTxuYW1lPiAg
IHRvIGluZGljYXRlIGxvY2F0aW9uIik7DQogICAgcHJpbnQgKCJcblxuRXhhbXBsZTogIFNF
VCAkc3lzdGVtbmFtZT1DOlxGTE9SSURBXG5cbiIpOw0KICAgIGV4aXQoMTQpOw0KICAgIH0N
CiAgaWYgKCROTCBuZSAiIikgIyB0aGUgcHJlc2VuY2Ugb2YgYSBuZXdsaW5lcy5ubCBmaWxl
IGltcGxpZXMgbmV3bGluZXMgd2lsbCBiZSBydW4sIGhlbmNlIHdlIG5lZWQgdG8gY2hlY2sg
dGhlIC5ubCBmaWxlDQogIHsNCiAgJGkgPSAiJGNvbnRyb2xfZGlyXFwkTkwiOw0KICBpZiAo
LWUgJGkpDQogICAgeyA7IH0NCiAgZWxzZQ0KICAgIHsNCiAgICBwcmludCgiXG5cblxhRmls
ZSDExBAgJGkgEcTEIGRvZXMgbm90IGV4aXN0Iik7DQogICAgcHJpbnQoIlxuXG5BcmUgeW91
IHN1cmUgdGhlIGVudmlyb25tZW50YWwgdmFyaWFibGUgJHN5c3RlbW5hbWUgaXMgY29ycmVj
dD8iKTsNCiAgICBwcmludCgiXG5cbkJ1dCBpbiBhbnkgY2FzZSwgeW91J3ZlIGdvdCBhIHBy
b2JsZW0gdG8gZml4LiAgSm9iIGFib3J0ZWQhIik7DQogICAgcHJpbnQoIlxuXG4iKTsNCiAg
ICBleGl0KDE1KTsNCiAgICB9DQogICAgfQ0KICB9DQpAbmFtZXNfcmF3ID0gYGRpciAkaW5w
dXRuYW1lc2A7ICMgZ2V0IG5hbWVzIG9mIGZpbGVzIHRvIGNvbmNhdGVuYXRlDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICMgQG5hbWVzX3JhdyA9IGBkaXIgKi5gOw0KJGkgPSAwOw0K
JGltYXggPSBAbmFtZXNfcmF3Ow0KaWYgKCRpbWF4IDwgNikNCiAgew0KICBwcmludCgiXG5c
blxhTm8gZmlsZXMgd2l0aCBzcGVjaWZpZWQgbmFtZS5cblxuIik7DQogIGRpZSAoIlxuSm9i
IGFib3J0ZWRcbiIpOw0KICAkbW9yZV9pbnB1dCA9IDA7DQogIH0NCkBuYW1lcyA9ICgpOw0K
Zm9yICgkaSA9IDA7ICRpIDwgJGltYXg7ICRpKyspDQogIHsNCiAgY2hvcCAoJG5hbWVzX3Jh
d1skaV0pOw0KICBpZiAoICgkbmFtZXNfcmF3WyRpXSAhfiAvLipbMC05XXsyfVwtWzAtOV17
Mn1cLVswLTldezJ9LykNCiAgJiYgICAoJG5hbWVzX3Jhd1skaV0gIX4gLy4qWzAtOV17Mn1c
L1swLTldezJ9XC9bMC05XXsyfS8pDQogICAgICkgeyBuZXh0OyB9Ow0KICBpZiAoJG5hbWVz
X3Jhd1skaV0gPX4gLzxESVI+LykgeyBuZXh0OyB9Ow0KICBpZiAoJG5hbWVzX3Jhd1skaV0g
PX4gL15bMC05XXsyfVwvWzAtOV17Mn1cL1swLTldezJ9LykNCiAgICB7ICMgaXQncyBudCBm
b3JtYXQNCiAgICAkeHggPSBzdWJzdHIoJG5hbWVzX3Jhd1skaV0sMzkpOw0KICAgIH0NCiAg
ZWxzZQ0KICAgIHsgIyBpdCdzIGRvcyBmb3JtYXQNCiAgICAkbmFtZXNfcmF3WyRpXSA9fiAv
XihbXiBdKikgKihbXjAtOV0qKVswLTldLzsNCiAgICAkeHggPSAkMSAuICIuIiAuICQyOw0K
ICAgIH0NCg0KICAjbm93IGZvcm1hdCB0aGUgZmlsZSBuYW1lIHRvIGZpeGVkIHNpemUNCiAg
JHh4ID1+IC8oW15cLl0qKShcLiguKikpPy87DQojICAgICAgICAgMTExMTExMSAyICAzMzMg
Mg0KICAkcDEgPSAkMTsNCiAgJHAzID0gJDM7DQogICR5eSA9IHNwcmludGYoIiUtOC44c1wu
JS0zLjNzIg0KICAgICAgICAgICAgICAgLCAkcDEgLCAkcDMpOw0KICBwdXNoIChAbmFtZXMs
JHl5KTsNCiAgfSAjIG5leHQgaQ0KDQojIyAjIG5vdyBzb3J0IHRoZSBzb3J0YXJyYXkNCkBz
b3J0ZWQgID0gc29ydCggbmFtZV9zb3J0IEBuYW1lcyApOw0KDQojIHJlcGxhY2UgbmFtZXMg
aW50byBuYW1lIGFycmF5IHdpdGhvdXQgYW55IHNwYWNlcyBpbiBmaWxlIG5hbWUNCmZvciAo
JGo9MCwgICRpID0gQHNvcnRlZCwgIEBuYW1lcz0oKTskaiA8ICRpOyAkaisrKQ0KICB7DQog
ICRzb3J0ZWRbJGpdID1+IC8oW15cLiBdKikgKihcLihbXiBdKikpPy87DQoNCiMgICAgICAg
ICAgICAgICAgIDExMTExMTExIDIyMjIyIDM0NDQ0NDQgMw0KICAkcDEgPSAkMTsNCiAgJHAz
ID0gJDM7DQogICR5eSA9ICIkMSI7DQogIGlmICgkcDMgbmUgIiIpDQogICAgew0KICAgICR5
eSAuPSAiLiRwMyI7DQogICAgfQ0KICBwdXNoIChAbmFtZXMsJHl5KTsNCiAgfQ0KDQokbmFt
ZWNvdW50ID0gLTE7DQokbWF4bmFtZXMgPSBAbmFtZXM7DQp9DQoNCiPExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
DQojICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZnlfcHJvZ3JhbV9hbmRfZmlsZXMNCiPE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTEDQoNCnN1YiBpZGVudGlmeV9wcm9ncmFtX2FuZF9maWxlcw0Kew0KIyBw
cm9jIHRvIHB1dCBvdXQgYSBiYW5uZXIgb24gc2NyZWVuIGFuZCByZXBvcnQgZmlsZSAoaWYg
dGhlcmUgaXMgb25lKcTEEA0KI8TEEHNvIHVzZXIgY2FuIHZpc3VhbGx5IGluc3VyZSB0aGUg
Y29ycmVjdCBwZXJsIHNjcmlwdCBpcyBiZWluZyB1c2VkDQoNCnByaW50KCJcblBlcmwgU2Ny
aXB0KHYkU2NyaXB0VmVyc2lvbjskU2NyaXB0RGF0ZSkgPSBcVSRQZXJsU2NyaXB0XEUiKTsN
Cg0KI3ByaW50KCJcbiIpOw0KcmV0dXJuIDE7ICNyZXR1cm4gYSB0cnVlDQp9ICMgZW5kIHN1
YiBpZGVudGlmeV9wcm9ncmFtX2FuZF9maWxlcw0KDQojxMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KIyAgICAg
ICAgICAgICAgICAgICAgICAgZ2V0X2NvbW1hbmRfbGluZV9hcmdzDQojxMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xA0KDQpzdWIgZ2V0X2NvbW1hbmRfbGluZV9hcmdzDQp7DQojIGdldCBpbnB1dCwgb3V0cHV0
LCBhbmQgb3B0aW9ucywgYW5kIHN0dWZmIGludG/ExBANCiMgxMQQcHJlZGVmaW5lZCBuYW1l
cyAoZm9yIGZpbGVzKTsgbWFrZSB1cCB5b3VyIG93biBuYW1lcyBmb3Igb3B0aW9uc8TEDQoj
IMTEEGFuZCB1c2UgJ2lmICRvcHRpb25fbmFtZSA9PSBVTkRFRikgZm9yIHByZXNlbmNlIG9y
IGEgdmFsdWUNCmxvY2FsICgkaSk7DQokaT0wOw0KJG9uZV9vdXRwdXRfZmlsZSA9IDA7ICAj
IG9ubHkgMSBvdXRwdXQgZmlsZSwgZXZlbiBpZiBtYW55IGlucHV0IGZpbGVzDQokb25lX291
dHB1dF9maWxlX29wZW4gPSAwOyAgIyBpdCdzIG5vdCBvcGVuIHlldD8NCiRxdWlldCA9IDA7
ICMgbm8gcHJvZ3Jlc3MgcmVwb3J0cw0KJGtlZXBfbGVhZGluZ19zcGFjZXMgPSAwOw0KJG91
dHB1dF9maWxlX2V4dCA9ICIiOw0KJGFyZ2MgPSBAQVJHVjsNCg0KZm9yKCRpPTA7JGk8JGFy
Z2M7JGkrKykNCiAgew0KICBpZiAoJEFSR1ZbJGldID1+IC9ceyhbXlx9XSopXH0vKQ0KICAg
IHsNCiAgICBpZiAoJDEgZXEgIiIpDQogICAgICB7DQogICAgICAkYXJnYyA9ICRpOw0KICAg
ICAgbGFzdDsNCiAgICAgIH0NCiAgICAkYXJndlskaV0gPSAkMTsNCiAgICB9DQogIGVsc2UN
CiAgICB7DQogICAgJGFyZ3ZbJGldID0gJEFSR1ZbJGldOw0KICAgIH0NCiAgfQ0KDQppZigk
YXJnYyA9PSAwKSAjIG5vIHBhcmFtcy0tcHJpbnQgaGVscA0KICB7DQpzeW50YXg6DQojLS0t
LS0jDQogIHByaW50KCJcbiRQZXJsU2NyaXB0KHYkU2NyaXB0VmVyc2lvbil7ZGF0ZT0kU2Ny
aXB0RGF0ZSktLSRkZXNjcmlwdGlvbiIpOw0KICBwcmludCgiXG4iKTsNCiAgcHJpbnQoIlxu
KGllIGV4cGFuZDogPDM+SnVyeSB0cmlhbCBvZiA8TEk+MzguMzJbMV1bYl0sW2NdIik7DQog
IHByaW50KCJcbiAgICAgICAgdG86IDwzPkp1cnkgdHJpYWwgb2YgPExJPjM4LjMyWzFdW2Jd
OzM4LjMyWzFdW2NdIik7DQogIHByaW50KCJcbiIpOw0KICBwcmludCgiXG5TeW50YXg6ICRQ
ZXJsU2NyaXB0IDxpbnB1dC1uYW1lKHMpPiBbPG91dHB1dC1uYW1lLW9yLWV4dD5dIFs8T3B0
aW9ucz5dIik7DQogIHByaW50KCJcbiIpOw0KICBwcmludCgiXG5XaGVyZToiKTsNCiAgcHJp
bnQoIlxuIik7DQogIHByaW50KCJcbiA8aW5wdXQtbmFtZShzKT4gbWF5IGNvbnRhaW4gRE9T
IHdpbGQgY2FyZHMsIG9yIGJlIGp1c3Qgb25lIGZpbGUgbmFtZS4iKTsNCiAgcHJpbnQoIlxu
IDxvdXRwdXQtbmFtZS1vci1leHQ+IGlzIG9wdGlvbmFsLiIpOw0KICBwcmludCgiXG4gaWYg
bm8gbmFtZSBvciBleHRlbnNpb24gZ2l2ZW4sIHRoZW4gdW5pcXVlIGZpbGVzIHdpdGggLiRE
RUZBVUxUX0VYVEVOU0lPTiB3aWxsIGJlIGNyZWF0ZWQuIik7DQogIHByaW50KCJcbiBpZiBh
IC48ZXh0PiBpcyBnaXZlbiwgZWFjaCBpbnB1dCBmaWxlIGdldHMgYSBzZXBhcmF0ZSBvdXRw
dXQgZmlsZSB3aXRoIC5leHQuIik7DQogIHByaW50KCJcbiBpZiBhIGNvbXBsZXRlIG5hbWUg
aXMgZ2l2ZW4sIGFsbCBvdXRwdXQgaXMgcGxhY2VkIGluIHRoaXMgZmlsZS4iKTsNCiAgcHJp
bnQoIlxuIik7DQogIHByaW50KCJcbiAgRXg6ICRQZXJsU2NyaXB0IDE4NiouZ21sIC5hYmMg
ICAgIC8vZWFjaCBvdXRwdXQgZmlsZSBnZXRzIHNlcCBuYW1lIGllIDE4NiouYWJjIik7DQog
IHByaW50KCJcbiAgRXg6ICRQZXJsU2NyaXB0IDE4NiouZ21sICAgICAgICAgIC8vZWFjaCBv
dXRwdXQgZmlsZSBnZXRzIHNlcCBuYW1lIGllIDE4NiouJERFRkFVTFRfRVhURU5TSU9OIik7
DQogIHByaW50KCJcbiAgRXg6ICRQZXJsU2NyaXB0IDE4NiouZ21sIGFsbC5uZXcgIC8vYWxs
IG91dHB1dCBnb2VzIGludG8gb25lIGZpbGUtLS1hbGwubmV3ICIpOw0KICBwcmludCgiXG4i
KTsNCiAgcHJpbnQoIlxuICA8T3B0aW9ucz4gYXJlIG9wdGlvbmFsLiIpOw0KICBwcmludCgi
XG4gICAgL1EgPSBxdWlldCBvcGVyYXRpb25zOyBubyBwcm9ncmVzcyBvciBmaWxlIG5hbWUg
aW5mbyIpOw0KICBwcmludCgiXG4iKTsNCiAgZGllKCJcbiIpOw0KICB9DQoNCmZvcigkaT0w
OyRpPCRhcmdjOyRpKyspDQogIHsNCiAgaWYgKCRhcmd2WyRpXSA9fiAvXihcL3xcLSkvKQ0K
ICAgIHsNCiAgICBpZiAoJGFyZ3ZbJGldID1+IC8oRHxkKS8pIHsgJGRlYnVnID0gMTsgfQ0K
ICAgIGlmICgkYXJndlskaV0gPX4gLyhRfHEpLykgeyAkcXVpZXQgPSAxOyB9DQogICAgaWYg
KCRhcmd2WyRpXSA9fiAvKFF8cSkvKSB7ICRxdWlldCA9IDE7IH0NCiAgICBpZiAoJGFyZ3Zb
JGldID1+IC8oS3xrKS8pIHsgJGtlZXBfbGVhZGluZ19zcGFjZXMgPSAxOyB9DQogICAgbmV4
dDsNCiAgICB9DQogIGlmKHN1YnN0cigkYXJndlskaV0sMCwxKSBlcSAiLiIpICMgbXVzdCBi
ZSBhIGZpbGUgZXh0ZW5zaW9uDQogICAgew0KICAgICRvdXRwdXRfZmlsZV9leHQgPSBzdWJz
dHIoJGFyZ3ZbJGldLDEpOw0KICAgICRnZW5lcmF0ZV9vdXRuYW1lID0gMTsNCiAgICBuZXh0
Ow0KICAgIH0NCiAgaWYoJGlucHV0bmFtZXMgZXEgIiIpDQogICAgew0KICAgICRpbnB1dG5h
bWVzID0gJGFyZ3ZbJGldOw0KICAgIG5leHQ7DQogICAgfQ0KICBpZigkb3V0cHV0bmFtZSBl
cSAiIikNCiAgICB7DQogICAgJG91dHB1dG5hbWUgPSAkYXJndlskaV07DQogICAgJG9uZV9v
dXRwdXRfZmlsZSA9IDE7ICMgb25seSAxIG91dHB1dCBmaWxlLCBldmVuIGlmIG1hbnkgaW5w
dXQgZmlsZXMNCiAgICAkZ2VuZXJhdGVfb3V0bmFtZSA9IDA7DQogICAgJG9uZV9vdXRwdXRf
ZmlsZV9vcGVuID0gMDsgIyBhbmQgdGhhdCBvbmUgZmlsZSBpcyBub3Qgb3BlbiB5ZXQNCiAg
ICBuZXh0Ow0KICAgIH0NCg0KICAjIGlmIHRvIGhlcmUsIHRoZW4gdW5rbm93biB0aGluZyBp
biBjb21tYW5kIGxpbmUNCiAgcHJpbnQoIlxuVW5rbm93biAndGhpbmcnIMTEECAkQVJHVlsk
aV0gEcTELCBvcHRpb24gJGkgaW4gY29tbWFuZCBsaW5lXG4iKTsNCiAgZGllICgiXG5Kb2Ig
YWJvcnRlZFxuIik7DQogIH0NCg0KaWYoJG91dHB1dG5hbWUgZXEgIiIpICMgaW4gY2FzZSBu
b3Qgb3V0cHV0IGV4dGVuc2lvbiBvciBmaWxlIHNwZWNpZmllZA0KICAgICMgdXNlIGRlZmF1
bHQgZXh0ZW5zaW9uDQogIHsNCiAgaWYgKCRvdXRwdXRfZmlsZV9leHQgZXEgIiIpDQogICAg
ew0KICAgICRvdXRwdXRfZmlsZV9leHQgPSAkREVGQVVMVF9FWFRFTlNJT047DQogICAgfQ0K
ICAkb25lX291dHB1dF9maWxlID0gMDsgICMgb25lIG91dHB1dCBmaWxlIHBlciBpbnB1dCBm
aWxlDQogICRnZW5lcmF0ZV9vdXRuYW1lID0gMTsNCiAgIyBub3RlOiAkb3V0cHV0bmFtZSB3
aWxsIGdldCByZWNyZWF0ZWQgYXQgZWFjaCBmZXRjaCBvZiBhbiBpbnB1dCBuYW1lDQogIG5l
eHQ7DQogIH0NCiAgcmV0dXJuIDE7ICMgcmV0dXJuIGEgdHJ1ZQ0KfSAjIGVuZCBvZiBzdWIg
Z2V0X2NvbW1hbmRfbGluZV9hcmdzDQoNCiPExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQojICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcGVuX2ZpbGVzDQojxMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KDQpzdWIgb3Blbl9m
aWxlcw0Kew0KJHdvcmRwZXJmZWN0X2ZpbGUgPSAwOw0KJHppcF9maWxlID0gMDsNCm9wZW4o
aW4sIjwkaW5maWxlbmFtZSIpICAgfHwgZGllICJDYW4ndCBvcGVuIFxVJGluZmlsZW5hbWVc
RS0tJCFcbiI7DQomY2hlY2tfZm9yX3dvcmRwZXJmZWN0KCk7IGlmICgkd29yZHBlcmZlY3Rf
ZmlsZSkgeyByZXR1cm4gMDsgfQ0KJmNoZWNrX2Zvcl96aXBfZmlsZSgpOyAgICBpZiAoJHpp
cF9maWxlKSAgICAgICAgIHsgcmV0dXJuIDA7IH0NCg0KaWYgKCRvbmVfb3V0cHV0X2ZpbGUp
ICMgb25seSAxIG91dHB1dCBmaWxlLCBldmVuIGlmIG1hbnkgaW5wdXQgZmlsZXMNCiAgew0K
ICBpZiAoJG9uZV9vdXRwdXRfZmlsZV9vcGVuID09IDApICMgaXMgdGhhdCBvbmUgZmlsZSBv
cGVuIHlldD8NCiAgICB7DQogICAgJG9uZV9vdXRwdXRfZmlsZV9vcGVuID0gMTsgIyBubywg
b3BlbiBpdCBhbmQgZmxhZyBhcyBvcGVuZWQNCiAgICBvcGVuKG91dCwiPiRvdXRwdXRuYW1l
IikgfHwgZGllICJDYW4ndCBvcGVuIFxVJG91dHB1dG5hbWVcRS0tJCFcbiI7DQogICAgfQ0K
ICBlbHNlDQogICAgew0KICAgIHJldHVybiAxOw0KICAgIH0NCiAgcmV0dXJuIDE7DQogIH0N
Cg0KIyBvcGVuIGEgbmV3IG91dHB1dCBmaWxlIGZvciBlYWNoIGlucHV0IGZpbGUNCm9wZW4o
b3V0LCI+JG91dHB1dG5hbWUiKSB8fCBkaWUgIkNhbid0IG9wZW4gXFUkb3V0cHV0bmFtZVxF
LS0kIVxuIjsNCg0KcmV0dXJuIDE7ICMgcmV0dXJuIGEgdHJ1ZQ0KfSAjIGVuZA0KDQoNCg0K
I8TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMQNCiMgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVf
YXJyYXlzDQojxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE
xMTExMTExMTExMTExMTExMTExMTExA0KDQpzdWIgaW5pdGlhbGl6ZV9hcnJheXMNCnsNCiVy
b21hbiA9ICgpOw0KJWFfdG9feiA9ICgpOw0KDQolcm9tYW4gPSAoImkiLDEsImlpIiwyLCJp
aWkiLDMsIml2Iiw0LCJ2Iiw1LCJ2aSIsNiwidmlpIiw3LCJ2aWlpIiw4DQogICAgICAgICAs
Iml4Iiw5LCJ4IiwxMCwieGkiLDExLCJ4aWkiLDEyLCJ4aWlpIiwxMywieGl2IiwxNCwieHYi
LDE1LCJ4dmkiLDE2DQogICAgICAgICAsInh2aWkiLDE3LCJ4dmlpaSIsMTgsInhpeCIsMTks
Inh4IiwyMCwieHhpIiwyMSwieHhpaSIsMjINCiAgICAgICAgICwieHhpaWkiLDIzLCJ4eGl2
IiwyNCwieHh2IiwyNSwieHh2aSIsMjYsInh4dmlpIiwyNywieHh2aWlpIiwyOA0KICAgICAg
ICAgLCJ4eGl4IiwyOSwieHh4IiwzMA0KICAgICAgICAgKTsNCg0KJWFfdG9feiA9ICgiYSIs
MSwiYiIsMiwiYyIsMywiZCIsNCwiZSIsNSwiZiIsNiwiZyIsNywiaCIsOA0KICAgICAgICAg
ICAgLCJpIiw5LCJqIiwxMCwiayIsMTEsImwiLDEyLCJtIiwxMywibiIsMTQsIm8iLDE1DQog
ICAgICAgICAgICAsInAiLDE2LCJxIiwxNywiciIsMTgsInMiLDE5LCJ0IiwyMCwidSIsMjEs
InYiLDIyDQogICAgICAgICAgICAsInciLDIzLCJ4IiwyNCwieSIsMjUsInoiLDI2DQogICAg
ICAgICAgICApOw0KDQojICMgdG8gdG90YWxseSBjbGVhciBhbiBhc3NvY2lhdGl2ZSBhcnJh
eSBhbmQgbWFrZSBpdCBlbXB0eQ0KIyAlYXNzb2MgPSAoKTsNCiMNCiMgIyBhbiBhc3NvY2lh
dGl2ZSBhcnJheSBpcyBpbml0aWFsaXplZCBhcyBmb2xsb3dzDQojICVhc3NvYyA9ICgia2V5
MSIsInZhbHVlMSIsMiwidmFsdWUyIiwicGkiLDMuMTQxNSk7ICMgbXVzdCBiZSBwYWlycyBv
ZiB2YWx1ZXMNCiMNCiMgIyB0byBhZGQgYSBuZXcga2V5L3ZhbHVlIHBhaXIgdG8gYW4gYXNz
b2NpYXRpdmUgYXJyYXkNCiMgJGFzc29jeyJtaWxlcyJ9ID0gImZyaXNrIjsNCiMNCiMgIyB0
byBhY2Nlc3MgYW4gZWxlbWVudCBvZiBhbiBhc3NvY2lhdGl2ZSBhcnJheSwgdXNlIHtrZXl9
IHRvIGZpbmQgdmFsdWUNCiMgJHZhbHVlID0gJGFzc29jeyJwaSJ9Ow0KIw0KIyAjIGlmIGEg
bm9uLWV4aXN0ZW50IGtleSBpcyB1c2VkLCB0aGUgdmFsdWUgcmV0dXJuZWQgaXMgdW5kZWZp
bmVkICh1bmRlZikgb3IgIiINCiMgJHZhbHVlID0gJGFzc29jeyJnYW1tYSJ9OyAjICR2YWx1
ZSA9ICIiIG9yIHVuZGVmIChpZiAoJHZhbHVlID09IHVuZGVmKSAuLi4NCg0KcmV0dXJuIDE7
DQp9ICMgZW5kIGluaXRpYWxpemVfYXJyYXlzDQoNCl9fRU5EX18NCg0KOmVuZG9mcGVybA0K
DQo6ZG9uZQ0KDQo=
==============20740CC9205EA866876A2EAB==


------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [EMAIL PROTECTED]

You can send mail to the entire list (and sci.crypt) via:

    Internet: [EMAIL PROTECTED]

End of Cryptography-Digest Digest
******************************

Reply via email to