[Dynamite] Re: pigdog-l (fwd)
Ian Holmes
ihh@fruitfly.org
Sun, 9 Apr 2000 13:29:13 -0700 (PDT)
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.
---559023410-684387517-955312153=:8278
Content-Type: TEXT/PLAIN; charset=US-ASCII
On Mon, 10 Apr 2000, Ewan Birney wrote:
> > > there has been a long talk about it on the bioxml mailing list. read the
> > > archives.
> >
> > thanks - will do
>
> Cool. Someone needs to chip in soon before brad goes off and makes
> something different...
It would help if I understood what it was. *sigh*
Chris knows, so I will hassle him to do it.
> Can you resent the idl2stubs code again?
attached - it's also on the wiki.
> I haven't built a cvs repository
> yet for this. I guess....
>
>
> telegraph/src/SeqModule
> /idl/idlstubs.pl
>
>
> looks good to you?
looks good.
> > > BTW - thesis defence tomorrow. <shiiiiiiiiiiit>.
> > >
> > > *should* be ok.
> >
> > break a leg...
> > who are your examiners again?
> >
>
> Anders Krogh and Martin Bishop.
you'll probably get more facetime with Martin Bishop than Guy had in 3
years. ;-)
---559023410-684387517-955312153=:8278
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="idlstubs.pl"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.10.10004091329130.8278@fruitfly>
Content-Description:
Content-Disposition: attachment; filename="idlstubs.pl"
IyEvdXNyL2xvY2FsL2Jpbi9wZXJsIC13DQoNCiMgUHJvdG90eXBlIFRlbGVn
cmFwaCBJREwtdG8tQyBjb21waWxlcg0KDQp1c2UgQ2FycDsgICMgb3IgdW5j
b21tZW50DQojIHN1YiBjYXJwIHsgd2FybiBAXyB9IHN1YiBjcm9hayB7IGRp
ZSBAXyB9DQoNCiMgU291cmNlIG92ZXJ2aWV3Og0KDQojIFByZXByb2Nlc3Nl
cyB0aGUgSURMIHRleHQsIHN0cmlwcGluZyB3aGl0ZXNwYWNlICYgdGFnZ2lu
ZyBjb21tZW50cyB0byB0aGUgdGV4dC4NCg0KIyBCdWlsZHMgYSBuYWl2ZSBJ
REwgcGFyc2UgdHJlZSBvbiB0aGUgdGV4dCwgcHJpbnRpbmcgb3V0cHV0ICh3
aXRoIGNvbW1lbnRzKSB0bw0KIyBhcnJheXMgaW4gYSBsYXlvdXQgc3RydWN0
dXJlIHRoYXQgc3BlY2lmaWVzIHdoZXJlIGNoaWxkIG5vZGVzIG9uIHRoZSBw
YXJzZSB0cmVlDQojIHNob3VsZCBkaXNwbGF5IHRoZWlyIG91dHB1dC4NCg0K
IyBDIHRvIElETCBuYW1lc3BhY2UgbWFwcGluZyBpcyBhIGJpdCBtZXNzaWx5
IGNvZGVkLCBidXQgaXQgd29ya3MNCg0KbXkgJHByb2duYW1lID0gJDA7DQok
cHJvZ25hbWUgPX4gcy8uKlwvLy87DQoNCm15ICR1c2FnZSA9ICINCiRwcm9n
bmFtZSAtIFRlbGVncmFwaCBJREwgdG8gQyBtYXBwaW5nDQoNClVzYWdlOiAk
cHJvZ25hbWUgW29wdGlvbnNdIDxJREwgZmlsZXMuLi4+DQoNClR5cGUgXCIk
cHJvZ25hbWUgLS1oZWxwXCIgZm9yIGhlbHBcblxuIjsNCg0KbXkgJW9wdCA9
IChwcm9nbmFtZSA9PiAkcHJvZ25hbWUsIHJlcG9ydF9pZGxfd2lkdGggPT4g
NDAsIHJlcG9ydF9jX3dpZHRoID0+IDcwKTsNCm15ICgkaGVscF9zdHJpbmcs
ICRvcHRfc3ViX3JlZik7ICAjIGRlY2xhcmUgdGhlc2UgZmlyc3Qgc28gdGhl
IGFub255bW91cyBzdWJyb3V0aW5lcyB3b3JrIHJpZ2h0DQoNCigkaGVscF9z
dHJpbmcsDQogJG9wdF9zdWJfcmVmKSA9IG5ld19vcHRfcGFyc2VyICgiLWgs
LS1oZWxwIiwgIlByaW50IHRoaXMgaGVscCBzdHJpbmciID0+IHN1YiB7IHdh
cm4gJHVzYWdlLCAkaGVscF9zdHJpbmc7IGV4aXQgfSwNCgkJCQkgIi1vLC0t
b3ZlcnZpZXciLCAiQnJpZWYgb3ZlcnZpZXciID0+IHN1YiB7IHdhcm4gJHVz
YWdlLCAkaGVscF9zdHJpbmcsIG92ZXJ2aWV3X3N0cmluZygpOyBleGl0IH0s
DQoJCQkJICItciwtLXJlcG9ydCIsICJSZXBvcnQgbWFwcGluZyB0byBzdGFu
ZGFyZCBlcnJvciIgPT4gc3ViIHsgJG9wdHtyZXBvcnRfdG9fc2NyZWVufSA9
IDEgfSwNCgkJCQkgIi1zLC0tc3Rkb3V0IiwgIlByaW50IHRvIHNjcmVlbiBp
bnN0ZWFkIG9mIGZpbGUiID0+IHN1YiB7ICRvcHR7dG9fc3Rkb3V0fSA9IDEg
fSwNCgkJCQkgIi1sLC0tbGFiZWxzIiwgIkluc2VydCBtb3JlIGNvbW1lbnQg
bGFiZWxzIGludG8gQyBvdXRwdXQiID0+IHN1YiB7ICRvcHR7bGFiZWxzfSA9
IDEgfSk7DQoNCnBhcnNlX29wdHMgKFxAQVJHViwgJG9wdF9zdWJfcmVmLCAk
dXNhZ2UpOw0KDQpkaWUgJHVzYWdlIGlmIEBBUkdWIDwgMTsNCm15IEBpZGxf
ZmlsZW5hbWVzID0gQEFSR1Y7DQoNCmRlZmluZV9ldWNsaWRfc3RyaW5ncygp
Ow0KcmVwb3J0X2V1Y2xpZF9zdHJpbmdzKCkgaWYgZGVmaW5lZCAkb3B0e3Jl
cG9ydF90b19zY3JlZW59Ow0KICAgIA0KIyB3YXJuIHN1YnJvdXRpbmVfZGVm
c19ldmFsKCk7DQpldmFsIHN1YnJvdXRpbmVfZGVmc19ldmFsKCk7DQoNCmZv
cmVhY2ggbXkgJGlkbF9maWxlbmFtZSAoQGlkbF9maWxlbmFtZXMpIHsNCg0K
ICAgIG15ICRjX2ZpbGVuYW1lX3ByZWZpeCA9IGdldF9jX2ZpbGVuYW1lX3By
ZWZpeCAoJGlkbF9maWxlbmFtZSk7DQogICAgbXkgJG91dHB1dCA9IHByZXBy
b2Nlc3NfYW5kX3BhcnNlICgkaWRsX2ZpbGVuYW1lLCBcJW9wdCwgdW5kZWYs
IGlkbF9jZW50cmFsX3R5cGVfcmVnaXN0cnkgPT4ge30pOw0KICAgIHdyaXRl
X291dHB1dCAoJG91dHB1dCwgJGNfZmlsZW5hbWVfcHJlZml4LCBcJW9wdCk7
DQp9DQoNCmV4aXQ7DQoNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0Kc3ViIHByZXBy
b2Nlc3NfYW5kX3BhcnNlIHsNCiAgICBteSAoJGlkbF9maWxlbmFtZSwgJG9w
dF9yZWYsICRwcmVwcm9jZXNzb3JfY29udGV4dF9yZWYsICVwYXJzZXJfY29u
dGV4dCkgPSBAXzsNCg0KICAgIG15ICRpbmNsdWRlZF9maWxlX2NhbGxiYWNr
X3JlZiA9IHN1YiB7ICAjIGNhbGxiYWNrIGZvciAjaW5jbHVkZSdzDQoJcHJl
cHJvY2Vzc19hbmRfcGFyc2UgKHNoaWZ0LCAgICAgICAgIyBvbmx5IGFyZyBv
ZiBjYWxsYmFjayBpcyAjaW5jbHVkZSdkIGZpbGVuYW1lDQoJCQkgICAgICAk
b3B0X3JlZiwNCgkJCSAgICAgICRwcmVwcm9jZXNzb3JfY29udGV4dF9yZWYs
DQoJCQkgICAgICBpbmNsdWRlZF9maWxlID0+IDEsICAjIGZsYWcgdGhhdCBz
dG9wcyB3YXN0ZWZ1bCBwcm9jZXNzaW5nIGZvciAjaW5jbHVkZSdkIGZpbGVz
DQoJCQkgICAgICAlcGFyc2VyX2NvbnRleHQpDQoJfTsNCiAgICBteSAoJHRl
eHRfcmVmLCAkY29tbWVudF9yZWYpID0gcHJlcHJvY2VzcyAoJGlkbF9maWxl
bmFtZSwgJHByZXByb2Nlc3Nvcl9jb250ZXh0X3JlZiwgJGluY2x1ZGVkX2Zp
bGVfY2FsbGJhY2tfcmVmKTsNCg0KICAgIG15ICRub2RlID0gbmV3X25vZGUg
KCR0ZXh0X3JlZiwgJGNvbW1lbnRfcmVmLCAkb3B0X3JlZiwgJXBhcnNlcl9j
b250ZXh0KTsgICMgcm9vdCBvZiBJREwgcGFyc2UgdHJlZQ0KICAgIGNvbW1l
bnRfcm9vdF9ub2RlICgkbm9kZSwgJGlkbF9maWxlbmFtZSkgdW5sZXNzIGRl
ZmluZWQgJHBhcnNlcl9jb250ZXh0e2luY2x1ZGVkX2ZpbGV9Ow0KDQogICAg
cGFyc2UgKCRub2RlKTsNCiAgICAkJG5vZGV7b3V0cHV0fTsNCn0NCg0KIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIw0KDQpzdWIgbmV3X29wdF9wYXJzZXIgew0KICAgIG15
IEBvcHRfaW5mbyA9IEBfOw0KICAgIG15IChAb3B0X3RleHQsICVoZWxwX3Rl
eHQsICVvcHRfc3ViKTsNCiAgICB3aGlsZSAoQG9wdF9pbmZvKSB7DQoJbXkg
JG9wdF90ZXh0ID0gc2hpZnQgQG9wdF9pbmZvOw0KCW15ICRoZWxwX3RleHQg
PSBzaGlmdCBAb3B0X2luZm87DQoJbXkgJG9wdF9zdWJfcmVmID0gc2hpZnQg
QG9wdF9pbmZvOw0KCXB1c2ggQG9wdF90ZXh0LCAkb3B0X3RleHQ7DQoJJGhl
bHBfdGV4dHskb3B0X3RleHR9ID0gJGhlbHBfdGV4dDsNCglmb3JlYWNoIG15
ICRvcHQgKHNwbGl0IC8sLywgJG9wdF90ZXh0KSB7ICRvcHRfc3VieyRvcHR9
ID0gJG9wdF9zdWJfcmVmIH0NCiAgICB9DQogICAgbXkgJG1heF9sZW4gPSBt
YXggKG1hcCAobGVuZ3RoLCBAb3B0X3RleHQpKTsNCiAgICBteSAkaGVscF9z
dHJpbmcgPSAiT3B0aW9uczpcblxuIiAuIGpvaW4gKCIiLCBtYXAgKHNwcmlu
dGYoIiUiLigkbWF4X2xlbisxKS4icyAgJGhlbHBfdGV4dHskX31cbiIsICRf
KSwgQG9wdF90ZXh0KSkgLiAiXG4iOw0KICAgICgkaGVscF9zdHJpbmcsIFwl
b3B0X3N1Yik7DQp9DQoNCnN1YiBwYXJzZV9vcHRzIHsNCiAgICBteSAoJEFS
R1ZfcmVmLCAkaGVscF9zdWJfcmVmLCAkdXNhZ2UpID0gQF87DQogICAgd2hp
bGUgKEAkQVJHVl9yZWYgJiYgJCRBUkdWX3JlZlswXSA9fiAvXi0vKSB7DQoJ
bXkgJG9wdCA9IHNoaWZ0IEAkQVJHVl9yZWY7DQoJaWYgKGRlZmluZWQgJCRo
ZWxwX3N1Yl9yZWZ7JG9wdH0pIHsgJnskJGhlbHBfc3ViX3JlZnskb3B0fX0g
fQ0KCWVsc2UgeyB3YXJuICR1c2FnZTsgZGllICJVbmtub3duIG9wdGlvbjog
XCIkb3B0XCJcblxuIiB9DQogICAgfQ0KfQ0KDQojIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
DQoNCiMgSURMIHByZXByb2Nlc3NpbmcNCg0KIyBHZW5lcmF0ZSBhIHN0cmlu
ZyAkdGV4dCBhbmQgYW4gYXJyYXkgb2Ygc3RyaW5nIHJlZmVyZW5jZXMgQGNv
bW1lbnQNCiMgVGhlIGNvbW1lbnQgJHskY29tbWVudFskaV19IGlzIGFzc29j
aWF0ZWQgd2l0aCB0aGUgZW5kIG9mIHRoZSAkaSd0aCBjaGFyYWN0ZXIgaW4g
JHRleHQNCiMgTm8gbXVsdGlwbGUgd2hpdGVzcGFjZSBydW5zIGFyZSBsZWZ0
IGluICR0ZXh0IGV4Y2VwdCB3aXRoaW4gc3RyaW5nIGxpdGVyYWxzDQoNCiMg
U29tZSBmYWlybHkgdWdseSBsZXhpbmcgaW4gaGVyZSB0byBwdXNoIHdoaXRl
c3BhY2UgaW50byBjb21tZW50cw0KDQojIFRoaW5ncyB3ZSB3aW1wIG91dCBv
Zjogc3RyaW5nIGNvbmNhdGVuYXRpb24sIGxpbmVzIHRoYXQgYmVnaW4gd2l0
aCAnIycuLi4NCg0Kc3ViIHByZXByb2Nlc3Mgew0KICAgIG15ICgkaWRsX2Zp
bGVuYW1lLCAkcHJlcHJvY2Vzc29yX2NvbnRleHRfcmVmLCAkaW5jbHVkZV9j
YWxsYmFja19yZWYpID0gQF87ICAgIyBob29rIGZvciAjaW5jbHVkZSBjYWxs
YmFjaw0KDQogICAgb3BlbiBJRExfRklMRSwgIjwkaWRsX2ZpbGVuYW1lIiBv
ciBkaWUgIkNvdWxkbid0IG9wZW4gXCIkaWRsX2ZpbGVuYW1lXCI6ICIsICQh
Ow0KICAgIG15IEBpZGxfaW5wdXQgPSA8SURMX0ZJTEU+Ow0KICAgIGNsb3Nl
IElETF9GSUxFIG9yIGRpZSAiQ291bGRuJ3QgY2xvc2UgXCIkaWRsX2ZpbGVu
YW1lXCI6ICIsICQhOw0KDQogICAgbXkgJHRleHQgPSAiICIgLiBqb2luICIi
LCBncmVwICEvXlxzKlwjLywgQGlkbF9pbnB1dDsgICAjIGNodWNrIG91dCAn
IycgbGluZXMNCiAgICBteSBAY29tbWVudCA9ICh1bmRlZik7DQogICAgDQog
ICAgbXkgJHBvcyA9IDA7DQogICAgd2hpbGUgKDEpIHsNCgkNCglwb3MoJHRl
eHQpID0gJHBvczsNCglsYXN0IHVubGVzcyAkdGV4dCA9fiAvXC9bXC9cKl18
XCJ8W1xuXHNdezJ9L2c7DQoJJHBvcyA9IHBvcyAkdGV4dDsNCgkNCiMgICAg
d2FybiAicG9zPSRwb3M6ICciLCBzdWJzdHIgKCR0ZXh0LCAkcG9zLCAxMCks
ICInXG4iOw0KDQoJaWYgKHN1YnN0ciAoJHRleHQsICRwb3MgLSAxLCAxKSBl
cSAiXCIiKSB7DQoJICAgIA0KCSAgICBteSAkcXVvdGVfcG9zID0gJHBvcyAt
IDE7DQoJICAgIGlmIChzdWJzdHIgKCR0ZXh0LCAkcG9zLCAxKSBlcSAiXCIi
KSB7ICRwb3MrKyB9DQoJICAgIGVsc2lmICgkdGV4dCA9fiAvW15cXF1cIi9n
KSB7ICRwb3MgPSBwb3MgJHRleHQgfQ0KCSAgICBlbHNlIHsgZGllICJDb3Vs
ZG4ndCBmaW5kIGVuZCBvZiBzdHJpbmcgbGl0ZXJhbCIgfQ0KCSAgICANCgkg
ICAgcHVzaCBAY29tbWVudCwgbWFwICh1bmRlZiwgQGNvbW1lbnQrMC4uJHBv
cy0xKTsNCgkgICAgDQojCXdhcm4gInN0cmluZyBsaXRlcmFsOyB0ZXh0PSci
LCBzdWJzdHIoJHRleHQsMCwkcG9zKSwgIicgKyAnIiwgc3Vic3RyKCR0ZXh0
LCRwb3MsMTApLCAiJy4uLlxuIjsNCgkgICAgDQoJfSBlbHNpZiAoc3Vic3Ry
ICgkdGV4dCwgJHBvcyAtIDIsIDIpID1+IC9cc1xzLykgew0KCSAgICANCgkg
ICAgbXkgJHNwYWNlX3BvcyA9ICRwb3MgLSAyOw0KCSAgICBwb3MoJHRleHQp
ID0gJHNwYWNlX3BvczsNCgkgICAgaWYgKCR0ZXh0ID1+IC9cRyArXC9bXC9c
Kl0vZykgeyAgIyBlbmQtb2YtbGluZSBjb21tZW50DQoJCSRwb3MgPSBwb3Mo
JHRleHQpIC0gMjsgICMgbW92ZSBmb3J3YXJkIHRvIGNvbW1lbnQsIHNvIGFz
IHRvIGJhY2t0cmFjayAmIGVhdCBzcGFjZSBsYXRlcg0KDQoJICAgIH0gZWxz
ZSB7DQoNCgkJcG9zKCR0ZXh0KSA9ICRzcGFjZV9wb3M7DQoJCWlmICgkdGV4
dCA9fiAvXEcoXHMpKFxzKykoXC9bXC9cKl0pL2cpIHsgICMgdHJ5IHRvIHB1
c2ggcHJlLWNvbW1lbnQgd2hpdGVzcGFjZSBpbnRvIHRoZSBjb21tZW50DQoJ
CSAgICBteSAoJHNwYzEsICRzcGMyLCAkc2xhc2gpID0gKCQxLCAkMiwgJDMp
Ow0KCQkgICAgbXkgJHN1YmxlbiA9IGxlbmd0aCgkc3BjMSkgKyBsZW5ndGgo
JHNwYzIpICsgbGVuZ3RoKCRzbGFzaCk7DQoJCSAgICAkc3BjMiA9fiBzL1xu
L1xuXC9cLy9nOw0KCQkgICAgc3Vic3RyICgkdGV4dCwgJHNwYWNlX3Bvcywg
JHN1YmxlbikgPSAiJHNwYzEkc2xhc2gkc3BjMiI7DQoJCSAgICAkcG9zID0g
JHNwYWNlX3BvcyArIDE7ICAjIG1vdmUgZm9yd2FyZCB0byBjb21tZW50LCBz
byBhcyB0byBiYWNrdHJhY2sgJiBlYXQgc3BhY2UgbGF0ZXINCg0KCQl9IGVs
c2UgeyAgIyB3aGl0ZXNwYWNlIHJ1bg0KDQoJCSAgICBwb3MoJHRleHQpID0g
JHBvczsNCgkJICAgIGlmICgkdGV4dCA9fiAvXHMqL2cpIHsgJHBvcyA9IHBv
cyAkdGV4dCB9DQoJCSAgICANCgkJICAgIHB1c2ggQGNvbW1lbnQsIG1hcCAo
dW5kZWYsIEBjb21tZW50KzAuLiRzcGFjZV9wb3MpOw0KCQkgICAgDQoJCSAg
ICBzdWJzdHIgKCR0ZXh0LCAkc3BhY2VfcG9zLCAkcG9zIC0gJHNwYWNlX3Bv
cykgPSAiICI7DQoJCSAgICAkcG9zID0gJHNwYWNlX3BvcyArIDE7DQoNCiMJ
d2FybiAibXVsdGlzcGFjZSBydW47IHRleHQ9JyIsIHN1YnN0cigkdGV4dCww
LCRwb3MpLCAiJyArICciLCBzdWJzdHIoJHRleHQsJHBvcywxMCksICInLi4u
XG4iOw0KDQoJCX0NCgkgICAgfQ0KCSAgICANCgl9IGVsc2lmIChzdWJzdHIg
KCR0ZXh0LCAkcG9zIC0gMiwgMikgZXEgIi8qIikgew0KCSAgICANCgkgICAg
bXkgJGNvbW1lbnRfcG9zID0gJHBvcyAtIDI7DQoJICAgIG15ICRwcmVjb21t
ZW50X3BvcyA9ICRjb21tZW50X3BvczsNCgkgICAgd2hpbGUgKCRwcmVjb21t
ZW50X3BvcyA+IEBjb21tZW50ICYmIHN1YnN0ciAoJHRleHQsICRwcmVjb21t
ZW50X3Bvcy0xLCAxKSBlcSAiICIpIHsgLS0kcHJlY29tbWVudF9wb3MgfQ0K
CSAgICBteSAkcHJlY29tbWVudF9zcGFjZV9sZW4gPSAkY29tbWVudF9wb3Mg
LSAkcHJlY29tbWVudF9wb3M7DQoJICAgIG15ICRwcmVjb21tZW50X3NwYWNl
ID0gIiAiIHggJHByZWNvbW1lbnRfc3BhY2VfbGVuOw0KDQoJICAgIHBvcygk
dGV4dCkgPSAkcG9zOw0KCSAgICB3aGlsZSAoJHRleHQgIX4gLy4qXCpcL1xz
KlxuPy9nKSB7ICAjIGZpbmQgdGhlIGVuZCBvZiBhIG11bHRpbGluZSBjb21t
ZW50DQoJCXBvcyAkdGV4dCA9ICRwb3M7DQoJCSR0ZXh0ID1+IC8uKlxuL2cg
b3IgZGllICJDb3VsZG4ndCBmaW5kIGVuZCBvZiAvKi4uKi8gYmxvY2siOw0K
CQkkcG9zID0gcG9zICR0ZXh0Ow0KCSAgICB9DQoJICAgIA0KCSAgICBteSAk
c3RyID0gJHByZWNvbW1lbnRfc3BhY2UgLiBzdWJzdHIgKCR0ZXh0LCAkY29t
bWVudF9wb3MsICRwb3MgLSAkY29tbWVudF9wb3MpOw0KCSAgICBpZiAoJHBy
ZWNvbW1lbnRfcG9zID4gQGNvbW1lbnQpIHsNCgkJcHVzaCBAY29tbWVudCwg
bWFwICh1bmRlZiwgQGNvbW1lbnQrMC4uJHByZWNvbW1lbnRfcG9zLTIpLCBc
JHN0cjsNCgkgICAgfSBlbHNlIHsNCgkJJCB7JGNvbW1lbnRbJCNjb21tZW50
XX0gLj0gJHN0cjsNCgkgICAgfQ0KCSAgICANCgkgICAgc3Vic3RyICgkdGV4
dCwgJHByZWNvbW1lbnRfcG9zLCAkcG9zIC0gJHByZWNvbW1lbnRfcG9zKSA9
ICIiOw0KCSAgICAkcG9zID0gJHByZWNvbW1lbnRfcG9zIC0gMTsgICAjIGJh
Y2t0cmFjayBpbiBjYXNlIHdlJ3ZlIGNyZWF0ZWQgYW5vdGhlciBkb3VibGUg
c3BhY2UNCgkgICAgDQojCXdhcm4gImNvbW1lbnQgPSciLCAkeyRjb21tZW50
WyQjY29tbWVudF19LCAiJzsgdGV4dD0nIiwgc3Vic3RyKCR0ZXh0LDAsJHBv
cyksICInICsgJyIsIHN1YnN0cigkdGV4dCwkcG9zLDEwKSwgIicuLi5cbiI7
DQoJICAgIA0KCX0gZWxzaWYgKHN1YnN0ciAoJHRleHQsICRwb3MtMiwgMikg
ZXEgIi8vIikgew0KCSAgICANCgkgICAgbXkgJGNvbW1lbnRfcG9zID0gJHBv
cyAtIDI7DQoJICAgIG15ICRwcmVjb21tZW50X3BvcyA9ICRjb21tZW50X3Bv
czsNCgkgICAgd2hpbGUgKCRwcmVjb21tZW50X3BvcyA+IEBjb21tZW50ICYm
IHN1YnN0ciAoJHRleHQsICRwcmVjb21tZW50X3Bvcy0xLCAxKSBlcSAiICIp
IHsgLS0kcHJlY29tbWVudF9wb3MgfQ0KCSAgICBteSAkcHJlY29tbWVudF9z
cGFjZV9sZW4gPSAkY29tbWVudF9wb3MgLSAkcHJlY29tbWVudF9wb3M7DQoJ
ICAgIG15ICRwcmVjb21tZW50X3NwYWNlID0gIiAiIHggJHByZWNvbW1lbnRf
c3BhY2VfbGVuOw0KDQoJICAgIHBvcygkdGV4dCkgPSAkcG9zOw0KCSAgICBt
eSAkY29tbWVudCA9ICRwcmVjb21tZW50X3NwYWNlOw0KCSAgICBpZiAoJHRl
eHQgPX4gL1xHKC4qKS9nKSB7DQoJCSRjb21tZW50ID0gIi8qJDEgKi8iOw0K
CQkkcG9zID0gcG9zICR0ZXh0Ow0KCSAgICB9DQoJICAgICRjb21tZW50IC49
ICJcbiI7DQoNCgkgICAgaWYgKCRwcmVjb21tZW50X3BvcyA+IEBjb21tZW50
KSB7DQoJCXB1c2ggQGNvbW1lbnQsIG1hcCAodW5kZWYsIEBjb21tZW50KzAu
LiRwcmVjb21tZW50X3Bvcy0yKSwgXCRjb21tZW50Ow0KCSAgICB9IGVsc2Ug
ew0KCQkkIHskY29tbWVudFskI2NvbW1lbnRdfSAuPSAkY29tbWVudDsNCgkg
ICAgfQ0KCSAgICANCgkgICAgc3Vic3RyICgkdGV4dCwgJHByZWNvbW1lbnRf
cG9zLCAkcG9zICsgMSAtICRwcmVjb21tZW50X3BvcykgPSAiIjsNCgkgICAg
JHBvcyA9ICRwcmVjb21tZW50X3BvcyAtIDE7ICAgIyBiYWNrdHJhY2sgaW4g
Y2FzZSB3ZSd2ZSBjcmVhdGVkIGFub3RoZXIgZG91YmxlIHNwYWNlDQoJICAg
IA0KIwl3YXJuICJjb21tZW50ID0nIiwgJHskY29tbWVudFskI2NvbW1lbnRd
fSwgIic7IHRleHQ9JyIsIHN1YnN0cigkdGV4dCwwLCRwb3MpLCAiJyArICci
LCBzdWJzdHIoJHRleHQsJHBvcywxMCksICInLi4uXG4iOw0KCSAgICANCgl9
IGVsc2UgeyBkaWUgfQ0KICAgIH0NCg0KIyB1bmNvbW1lbnQgdGhpcyB0byBz
ZWUgYSBzdW1tYXJ5IG9mIHRoZSBwcmVwcm9jZXNzb3IgcmVzdWx0cw0KDQoj
ICAgIGZvciAobXkgJGk9MDsgJGk8bGVuZ3RoKCR0ZXh0KTsgKyskaSkgeyBw
cmludCBzdWJzdHIoJHRleHQsJGksMSk7IGlmIChkZWZpbmVkICRjb21tZW50
WyRpXSkgeyBwcmludCAiLyoqLyIgfSB9IGRpZTsNCg0KICAgIChcJHRleHQs
XEBjb21tZW50KTsNCn0NCg0KIyBTdWJyb3V0aW5lcyB0byByZXRyaWV2ZSAm
IHRpZHkgdXAgY29tbWVudHMNCg0Kc3ViIGNhdF9jb21tZW50cyB7DQogICAg
bXkgKEB1bmRlZl9jb21tZW50X3JlZikgPSBAXzsNCiAgICBteSBAY29tbWVu
dF9yZWYgPSBncmVwIChkZWZpbmVkLCBAdW5kZWZfY29tbWVudF9yZWYpOw0K
ICAgIGNyb2FrICJDb21tZW50IG5vdCBhIHJlZiIgaWYgZ3JlcCAocmVmKCRf
KSBuZSAiU0NBTEFSIiwgQGNvbW1lbnRfcmVmKTsNCiAgICBteSBAY29tbWVu
dCA9IG1hcCAoJCRfLCBAY29tbWVudF9yZWYpOw0KICAgIG15ICgkbGFzdF90
ZXh0LCAkZmlyc3RfbmV3bGluZSk7DQogICAgZm9yIChteSAkaSA9IDA7ICRp
IDwgQGNvbW1lbnQ7ICsrJGkpIHsgIyAkaSBsb29wDQoJaWYgKCRjb21tZW50
WyRpXSA9fiAvXG4uKlxTLykgew0KCSAgICAkbGFzdF90ZXh0ID0gJGk7DQoJ
ICAgICRmaXJzdF9uZXdsaW5lID0gJGkgdW5sZXNzIGRlZmluZWQgJGZpcnN0
X25ld2xpbmU7DQoJfSBlbHNpZiAoJGNvbW1lbnRbJGldID1+IC9cUy4qXG4v
KSB7DQoJICAgICRsYXN0X3RleHQgPSAkaSAtIDE7DQoJICAgICRmaXJzdF9u
ZXdsaW5lID0gJGkgdW5sZXNzIGRlZmluZWQgJGZpcnN0X25ld2xpbmU7DQoJ
fSBlbHNpZiAoJGNvbW1lbnRbJGldID1+IC9cbi8pIHsNCgkgICAgJGZpcnN0
X25ld2xpbmUgPSAkaSB1bmxlc3MgZGVmaW5lZCAkZmlyc3RfbmV3bGluZTsN
Cgl9IGVsc2lmICgkY29tbWVudFskaV0gPX4gL1xTLykgew0KCSAgICAkbGFz
dF90ZXh0ID0gJGk7DQoJfQ0KCSRjb21tZW50WyRpXSA9fiBzLyAqXCpcLyAq
XC9cKiAqLyAvZzsNCgkkY29tbWVudFskaV0gPX4gcy8oXHMqKVwqXC8oXHMq
KVwvXCooXHMqKS8kMSAgJDIgICQzL2c7DQoJaWYgKCRpIDwgQGNvbW1lbnQt
MSAmJiAkY29tbWVudFskaV0gPX4gL1wqXC9ccyokLykgew0KCSAgICBmb3Ig
KG15ICRqID0gJGkgKyAxOyAkaiA8IEBjb21tZW50OyArKyRqKSB7DQoJCWlm
ICgkY29tbWVudFskal0gPX4gL15ccypcL1wqLykgew0KCQkgICAgJGNvbW1l
bnRbJGldID1+IHMvXCpcLyhccyopJC8kMS87DQoJCSAgICAkY29tbWVudFsk
al0gPX4gcy9eKFxzKilcL1wqLyQxIFwqLzsNCgkJICAgICRpID0gJGogLSAx
Ow0KCQkgICAgbGFzdDsgICMgbmV4dCAkaSBsb29wDQoJCX0NCgkgICAgfQ0K
CX0NCiAgICB9DQogICAgaWYgKGRlZmluZWQoJGZpcnN0X25ld2xpbmUpICYm
IGRlZmluZWQoJGxhc3RfdGV4dCkgJiYgJGxhc3RfdGV4dCA+PSAkZmlyc3Rf
bmV3bGluZSkgew0KCWZvciAobXkgJGogPSBAY29tbWVudC0xOyAkaiA+PSAw
OyAtLSRqKSB7DQoJICAgIGxhc3QgaWYgJGNvbW1lbnRbJGpdID1+IHMvKFwq
XC8pKFxzKikvXG4kMVxuLzsNCgl9DQogICAgfQ0KICAgIEBjb21tZW50Ow0K
fQ0KDQpzdWIgY2F0X2VvbF9jb21tZW50cyB7DQogICAgbXkgQGVvbF9jb21t
ZW50cyA9IEBfOw0KICAgIEBlb2xfY29tbWVudHMgPSBncmVwIChkZWZpbmVk
LCBAZW9sX2NvbW1lbnRzKTsNCiAgICBpZiAoQGVvbF9jb21tZW50cykgeyB1
bnNoaWZ0IEBlb2xfY29tbWVudHMsIFwgIiAgIiB9DQogICAgZWxzZSB7IHB1
c2ggQGVvbF9jb21tZW50cywgXCAiXG4iIH0NCiAgICBjYXRfY29tbWVudHMg
KEBlb2xfY29tbWVudHMpOw0KfQ0KDQpzdWIgY2F0X2VuZGJsb2NrX2NvbW1l
bnRzIHsNCiAgICBteSBAZW5kYmxvY2tfY29tbWVudHMgPSBAXzsNCiAgICBA
ZW5kYmxvY2tfY29tbWVudHMgPSBncmVwIChkZWZpbmVkLCBAZW5kYmxvY2tf
Y29tbWVudHMpOw0KICAgIGlmIChAZW5kYmxvY2tfY29tbWVudHMpIHsgdW5z
aGlmdCBAZW5kYmxvY2tfY29tbWVudHMsIFwgIlxuIjsgcHVzaCBAZW5kYmxv
Y2tfY29tbWVudHMsIFwgIlxuIiB9DQogICAgY2F0X2NvbW1lbnRzIChAZW5k
YmxvY2tfY29tbWVudHMpOw0KfQ0KDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQoNCiMg
T3V0cHV0IGZpbGUgbGF5b3V0IHN0cnVjdHVyZSA9IGhhc2ggb2Ygb3V0cHV0
LWZpbGUgc2VjdGlvbiBuYW1lcyB0byBhcnJheSByZWZzLCB3aXRoIG9yZGVy
IHNwZWNpZmllZCBieSBPUkRFUg0KDQpzdWIgbmV3X2xheW91dCB7IG15IChA
b3JkZXIpID0gQF87IHsgT1JERVIgPT4gXEBvcmRlciwgbWFwICgoJF8gPT4g
W10pLCBAb3JkZXIpIH0gfQ0Kc3ViIHNlY3Rpb25fbmFtZXMgeyBteSAoJGxh
eW91dF9yZWYpID0gQF87IEB7JCRsYXlvdXRfcmVme09SREVSfX0gfQ0Kc3Vi
IGxheW91dF9hcnJheSB7IG15ICgkbGF5b3V0X3JlZikgPSBAXzsgbWFwIChA
eyQkbGF5b3V0X3JlZnskX319LCBzZWN0aW9uX25hbWVzICgkbGF5b3V0X3Jl
ZikpIH0NCnN1YiBwdXNocmVmIHsgbXkgJGFycmF5X3JlZiA9IHNoaWZ0OyBw
dXNoIEAkYXJyYXlfcmVmLCBtYXAgKFwkXywgQF8pIH0NCg0KIyBOb2RlIG91
dHB1dCBzdHJ1Y3R1cmUgPSBoYXNoIG9mIGZpbGVuYW1lcyB0byBsYXlvdXRz
DQoNCiMgV2UgbGF0ZXIgZGVmaW5lIG5vZGUgbWV0aG9kcyBwcmludF9YIGFu
ZCBjb21tZW50X1ggZm9yIGFsbCBzZWN0aW9uIG5hbWVzIFggaW4gYW4gb3V0
cHV0LA0KIyBlLmcuIHByaW50X2lmbmRlZl9pZGwsIGNvbW1lbnRfbWlzY19m
dW5jIGV0Yw0KDQojIFNvIHRoaXMgZWZmZWN0aXZlbHkgYmVoYXZlcyBsaWtl
IGEgaGFzaCBvZiBzZWN0aW9uIG5hbWVzIHRoYXQgImtub3dzIiBhIHRoaW5n
IG9yIHR3bw0KIyBhYm91dCB3aGVyZSB0byBwdXQgY2hpbGQgbm9kZSBkZWZp
bml0aW9ucyBhbmQgI2lmbmRlZnMuDQoNCnN1YiBuZXdfb3V0cHV0IHsNCg0K
ICAgIHsgaWRsX2ggPT4gbmV3X2xheW91dCAoaWZuZGVmX2lkbCwgICAgICAg
ICAgIyBvcGVuaW5nIGZvciAibXlfaWRsLmgiDQoJCQkgICBleHBvcnRlZF9k
ZWYsICAgICAgICAjIG1haW4gcGFydCBvZiAibXlfaWRsLmgiDQoJCQkgICBl
bmRpZl9pZGwpLCAgICAgICAgICAjIGNsb3NpbmcNCg0KICAgICAgcHViX2gg
PT4gbmV3X2xheW91dCAoaWZuZGVmX3B1YiwgICAgICAgICAgIyBvcGVuaW5n
IGZvciAibXlfcHViLmgiDQoJCQkgICBpbXBsX3Byb3RvdHlwZSwgICAgICAj
IGltcGxlbWVudGF0aW9uIHByb3RvdHlwZXMNCgkJCSAgIHB1YmxpY19tYWNy
bywgICAgICAgICMgcHVibGljIEV1Y2xpZCBtYWNyb3MNCgkJCSAgIHB1Ymxp
Y19wcm90b3R5cGUsICAgICMgcHVibGljIEV1Y2xpZCBwcm90b3R5cGVzDQoJ
CQkgICBzZXF1ZW5jZV9wcm90b3R5cGUsICAjIGxpc3QgcHJvdG90eXBlcw0K
CQkJICAgZW5kaWZfcHViKSwgICAgICAgICAgIyBjbG9zaW5nDQoNCiAgICAg
IHByaXZfaCA9PiBuZXdfbGF5b3V0IChpZm5kZWZfcHJpdiwgICAgICAgICMg
b3BlbmluZyBmb3IgIm15X3ByaXYuaCINCgkJCSAgICBwcml2YXRlX21hY3Jv
LCAgICAgICMgcHJpdmF0ZSBtYWNyb3MNCgkJCSAgICBwcml2YXRlX3Byb3Rv
dHlwZSwgICMgcHJpdmF0ZSBwcm90b3R5cGVzDQoJCQkgICAgcHJpdmF0ZV9z
dHJ1Y3QsICAgICAjIHByaXZhdGUgc3RydWN0cw0KCQkJICAgIGVuZGlmX3By
aXYpLCAgICAgICAgIyBjbG9zaW5nDQoNCiAgICAgIHByaXZfYyA9PiBuZXdf
bGF5b3V0IChpbmNsdWRlX3ByaXYsICAgICAgICMgb3BlbmluZyBmb3IgIm15
X3ByaXYuYyINCgkJCSAgICBtaXNjX2Z1bmMsICAgICAgICAgICMgbWlzY2Vs
bGFuZW91cyBjb2RlDQoJCQkgICAgb3ZlcnR1cmVfZnVuYywgICAgICAjIGNv
ZGUgZm9yIHByaXZhdGUgaW5pdGlhbGlzZXINCgkJCSAgICBvdmVydHVyZV9m
dW5jX3RhaWwsICMgY2xvc2luZyBicmFjZQ0KCQkJICAgIHN3YW5zb25nX2Z1
bmMsICAgICAgIyBjb2RlIGZvciBwcml2YXRlIGRlc3RydWN0b3INCgkJCSAg
ICBzd2Fuc29uZ19mdW5jX3RhaWwsICMgY2xvc2luZyBicmFjZQ0KCQkJICAg
IHJlZl9mdW5jLCAgICAgICAgICAgIyBjb2RlIGZvciByZWYgZnVuY3Rpb24N
CgkJCSAgICByZWZfZnVuY190YWlsLCAgICAgICMgY2xvc2luZyBicmFjZQ0K
CQkJICAgIHVucmVmX2Z1bmMsICAgICAgICAgIyBjb2RlIGZvciB1bnJlZiBm
dW5jdGlvbg0KCQkJICAgIHVucmVmX2Z1bmNfdGFpbCwgICAgIyBjbG9zaW5n
IGJyYWNlDQoJCQkgICAgZHVtcF9mdW5jLCAgICAgICAgICAjIGNvZGUgZm9y
IHN0cnVjdCBkdW1wIGZ1bmN0aW9uDQoJCQkgICAgZHVtcF9mdW5jX3RhaWws
ICAgICAjIGNsb3NpbmcgYnJhY2UNCgkJCSAgICB2aXJ0dWFsX2Z1bmMsICAg
ICAgICMgY29kZSBmb3IgdmlydHVhbCBmdW5jdGlvbnMNCgkJCSAgICBzZXF1
ZW5jZV9mdW5jLCAgICAgICMgY29kZSBmb3IgbGlzdCBtZXRob2RzDQoJCQkg
ICAgQ0hJTERfZnVuYyksICAgICAgICAjIGNvZGUgZm9yIGFsbCBjaGlsZCBu
b2RlcyBvbiB0aGUgcGFyc2UgdHJlZSAodW5sZXNzIHRoaXMgZmlsZSB3YXMg
I2luY2x1ZGVkKQ0KDQogICAgICBpbXBsX2ggPT4gbmV3X2xheW91dCAoaWZu
ZGVmX2ltcGwsICAgICAgICAgICMgb3BlbmluZyBmb3IgIm15X2ltcGwuaCIN
CgkJCSAgICBleGFtcGxlX3Byb3RvdHlwZSwgICAgIyBleGFtcGxlIHByb3Rv
dHlwZXMNCgkJCSAgICBleGFtcGxlX3N0cnVjdCwgICAgICAgIyBleGFtcGxl
IHN0cnVjdCBkZWZpbml0aW9ucw0KCQkJICAgIGV4YW1wbGVfc3RydWN0X3Rh
aWwsICAjIGNsb3NpbmcgYnJhY2UNCgkJCSAgICBDSElMRF9zdHJ1Y3QsICAg
ICAgICAgIyBzdHJ1Y3QgZGVmaW5pdGlvbnMgZm9yIGNoaWxkIG5vZGVzIG9u
IHRoZSBwYXJzZSB0cmVlICh1bmxlc3MgI2luY2x1ZGVkKQ0KCQkJICAgIGVu
ZGlmX2ltcGwpLCAgICAgICAgICAjIGNsb3NpbmcNCiAgICAgIA0KICAgICAg
aW1wbF9jID0+IG5ld19sYXlvdXQgKGluY2x1ZGVfaW1wbCwgICAgICAgICAg
ICAjIG9wZW5pbmcgZm9yICJteV9pbXBsLmMiDQoJCQkgICAgZXhhbXBsZV91
bnJlZl9mdW5jLCAgICAgICMgZXhhbXBsZSBjb2RlIGZvciBpbnRlcmZhY2Ug
dW5yZWZfaW1wbCBmdW5jdGlvbg0KCQkJICAgIGV4YW1wbGVfdW5yZWZfZnVu
Y190YWlsLCAjIGNsb3NpbmcgYnJhY2UNCgkJCSAgICBleGFtcGxlX2R1bXBf
ZnVuYywgICAgICAgIyBleGFtcGxlIGNvZGUgZm9yIGludGVyZmFjZSBkdW1w
X2ltcGwgZnVuY3Rpb24NCgkJCSAgICBleGFtcGxlX2R1bXBfZnVuY190YWls
LCAgIyBjbG9zaW5nIGJyYWNlDQoJCQkgICAgZXhhbXBsZV9mdW5jLCAgICAg
ICAgICAgICMgbWlzY2VsbGFuZW91cyBleGFtcGxlIGNvZGUNCgkJCSAgICBD
SElMRF9leGFtcGxlX2Z1bmMpICAgICAgIyBleGFtcGxlIGNvZGUgZm9yIGNo
aWxkIG5vZGVzICh1bmxlc3MgI2luY2x1ZGVkKQ0KICAgICAgfQ0KfQ0KDQpz
dWIgYXR0YWNoX2lmbmRlZnMgew0KICAgIG15ICgkb3V0cHV0LCAkaWRsX2Zp
bGVuYW1lKSA9IEBfOw0KICAgIHdoaWxlIChteSAoJGZpbGVuYW1lLCAkbGF5
b3V0X3JlZikgPSBlYWNoICUkb3V0cHV0KSB7DQoJbXkgQHNlY3Rpb25zID0g
c2VjdGlvbl9uYW1lcyAoJGxheW91dF9yZWYpOw0KCW15ICgkaWZuZGVmX3Nl
Y3Rpb24pID0gZ3JlcCAoL2lmbmRlZi8sIEBzZWN0aW9ucyk7DQoJbXkgKCRl
bmRpZl9zZWN0aW9uKSA9IGdyZXAgKC9lbmRpZi8sIEBzZWN0aW9ucyk7DQoJ
aWYgKGRlZmluZWQoJGlmbmRlZl9zZWN0aW9uKSAmJiBkZWZpbmVkKCRlbmRp
Zl9zZWN0aW9uKSkgew0KCSAgICBteSAkY19pbmNsdWRlZF9kZWZpbmUgPSAk
Y19pbmNsdWRlZF9kZWZpbmVfcHJlZml4IC4gdWMoZ2V0X2NfZmlsZW5hbWVf
cHJlZml4KCRpZGxfZmlsZW5hbWUpKSAuICJfIiAuIHVjKCRmaWxlbmFtZSkg
LiAkY19pbmNsdWRlZF9kZWZpbmVfc3VmZml4Ow0KCSAgICBwdXNoIEB7JGxh
eW91dF9yZWYtPnskaWZuZGVmX3NlY3Rpb259fSwgXCAiI2lmbmRlZiAkY19p
bmNsdWRlZF9kZWZpbmVcbiIsIFwgIiNkZWZpbmUgJGNfaW5jbHVkZWRfZGVm
aW5lXG4iLCBcICJcbiI7DQoJICAgIHB1c2ggQHskbGF5b3V0X3JlZi0+eyRl
bmRpZl9zZWN0aW9ufX0sIFwgIlxuIiwgXCAiI2VuZGlmICAgLyogJGNfaW5j
bHVkZWRfZGVmaW5lICovXG4iOw0KCX0NCiAgICB9DQp9DQoNCnN1YiBpbmNv
cnBvcmF0ZV9jaGlsZF9vdXRwdXQgew0KICAgIG15ICgkb3V0cHV0LCAkY2hp
bGRfb3V0cHV0KSA9IEBfOw0KICAgIHdoaWxlIChteSAoJGZpbGVuYW1lLCAk
bGF5b3V0X3JlZikgPSBlYWNoICUkb3V0cHV0KSB7DQoJbXkgKCRjaGlsZF9z
ZWN0aW9uKSA9IGdyZXAgKC9DSElMRC8sIHNlY3Rpb25fbmFtZXMgKCRsYXlv
dXRfcmVmKSk7DQoJaWYgKGRlZmluZWQgJGNoaWxkX3NlY3Rpb24pIHsNCgkg
ICAgcHVzaCBAeyQkb3V0cHV0eyRmaWxlbmFtZX17JGNoaWxkX3NlY3Rpb259
fSwgbGF5b3V0X2FycmF5ICgkJGNoaWxkX291dHB1dHskZmlsZW5hbWV9KTsN
Cgl9IGVsc2Ugew0KCSAgICBmb3JlYWNoIG15ICRzZWN0aW9uIChzZWN0aW9u
X25hbWVzICgkbGF5b3V0X3JlZikpIHsNCgkJcHVzaCBAeyQkb3V0cHV0eyRm
aWxlbmFtZX17JHNlY3Rpb259fSwgQHskJGNoaWxkX291dHB1dHskZmlsZW5h
bWV9eyRzZWN0aW9ufX07DQoJICAgIH0NCgl9DQogICAgfQ0KfQ0KDQpzdWIg
d3JpdGVfb3V0cHV0IHsNCiAgICBteSAoJG91dHB1dCwgJGNfZmlsZW5hbWVf
cHJlZml4LCAkb3B0X3JlZikgPSBAXzsNCiAgICBmb3JlYWNoIG15ICRmaWxl
IChxdyhpZGxfaCBwdWJfaCBpbXBsX2ggaW1wbF9jIHByaXZfaCBwcml2X2Mp
KSB7DQoJbXkgJGxheW91dF9yZWYgPSAkJG91dHB1dHskZmlsZX07DQoJJGZp
bGUgPX4gcy9fKFteX10qKSQvLiQxLzsNCglteSAkZmlsZW5hbWUgPSAkY19m
aWxlbmFtZV9wcmVmaXggLiAiXyIgLiAkZmlsZTsNCglpZiAoZGVmaW5lZCAk
JG9wdF9yZWZ7dG9fc3Rkb3V0fSkgew0KCSAgICBwcmludCAiJSIgeCA4MCwg
IlxuJGZpbGVuYW1lXG4iLCAiJSIgeCA4MCwgIlxuIiwgbWFwICgkJF8sIGxh
eW91dF9hcnJheSAoJGxheW91dF9yZWYpKSwgIjxFT0YgJGZpbGVuYW1lPlxu
XG4iOw0KCX0gZWxzZSB7DQoJICAgIG9wZW4gT1VUUFVUX0ZJTEUsICI+JGZp
bGVuYW1lIiBvciBjcm9hayAiQ291bGRuJ3Qgd3JpdGUgdG8gXCIkZmlsZW5h
bWVcIiI7DQoJICAgIHByaW50IE9VVFBVVF9GSUxFIG1hcCAoJCRfLCBsYXlv
dXRfYXJyYXkgKCRsYXlvdXRfcmVmKSk7DQoJICAgIGNsb3NlIE9VVFBVVF9G
SUxFIG9yIGNyb2FrICJDb3VsZG4ndCB3cml0ZSB0byBcIiRmaWxlbmFtZVwi
IjsNCgl9DQogICAgfQ0KfQ0KDQpzdWIgY29tbWVudF9yb290X25vZGUgew0K
ICAgIG15ICgkbm9kZSwgJGlkbF9maWxlbmFtZSkgPSBAXzsNCiAgICBteSAk
Y19maWxlbmFtZV9wcmVmaXggPSBnZXRfY19maWxlbmFtZV9wcmVmaXggKCRp
ZGxfZmlsZW5hbWUpOw0KICAgIA0KICAgIGNvbW1lbnRfaWZuZGVmX2lkbCAo
JG5vZGUsICIkY19maWxlbmFtZV9wcmVmaXhcX2lkbC5oXG4gKlxuICogQXV0
b2dlbmVyYXRlZCBmcm9tIFwiJGlkbF9maWxlbmFtZVwiXG4gKiIpOw0KICAg
IGNvbW1lbnRfaWZuZGVmX3B1YiAoJG5vZGUsICIkY19maWxlbmFtZV9wcmVm
aXhcX3B1Yi5oXG4gKlxuICogQXV0b2dlbmVyYXRlZCBmcm9tIFwiJGlkbF9m
aWxlbmFtZVwiXG4gKiIpOw0KICAgIGNvbW1lbnRfaWZuZGVmX3ByaXYgKCRu
b2RlLCAiJGNfZmlsZW5hbWVfcHJlZml4XF9wcml2LmhcbiAqXG4gKiBBdXRv
Z2VuZXJhdGVkIGZyb20gXCIkaWRsX2ZpbGVuYW1lXCJcbiAqIik7DQogICAg
Y29tbWVudF9pbmNsdWRlX3ByaXYgKCRub2RlLCAiJGNfZmlsZW5hbWVfcHJl
Zml4XF9wcml2LmNcbiAqXG4gKiBBdXRvZ2VuZXJhdGVkIGZyb20gXCIkaWRs
X2ZpbGVuYW1lXCJcbiAqIik7DQogICAgY29tbWVudF9pZm5kZWZfaW1wbCAo
JG5vZGUsICIkY19maWxlbmFtZV9wcmVmaXhcX2ltcGwuaFxuICpcbiAqIEF1
dG9nZW5lcmF0ZWQgZnJvbSBcIiRpZGxfZmlsZW5hbWVcIlxuICoiKTsNCiAg
ICBjb21tZW50X2luY2x1ZGVfaW1wbCAoJG5vZGUsICIkY19maWxlbmFtZV9w
cmVmaXhcX2ltcGwuY1xuICpcbiAqIEF1dG9nZW5lcmF0ZWQgZnJvbSBcIiRp
ZGxfZmlsZW5hbWVcIlxuICoiKTsNCg0KICAgIHByaW50X2VuZGlmX3B1YiAo
JG5vZGUsICIjaW5jbHVkZSBcIiRjX2ZpbGVuYW1lX3ByZWZpeFxfcHJpdi5o
XCIgICAvKiBwcml2YXRlIGRlZmluaXRpb25zICovXG5cbiIpOw0KICAgIA0K
ICAgIGF0dGFjaF9pZm5kZWZzICgkJG5vZGV7b3V0cHV0fSwgJGlkbF9maWxl
bmFtZSk7DQogICAgDQogICAgcHJpbnRfaWZuZGVmX2lkbCAoJG5vZGUsICIj
aW5jbHVkZSBcIiRjX2V1Y2xpZF9kZWZzX2ZpbGVuYW1lXCJcblxuIik7DQog
ICAgcHJpbnRfaWZuZGVmX3B1YiAoJG5vZGUsICIjaW5jbHVkZSBcIiRjX2Zp
bGVuYW1lX3ByZWZpeFxfaWRsLmhcIlxuXG4iKTsNCiAgICBwcmludF9pZm5k
ZWZfcHJpdiAoJG5vZGUsICIjaW5jbHVkZSBcIiRjX2ZpbGVuYW1lX3ByZWZp
eFxfcHViLmhcIlxuXG4iKTsNCiAgICBwcmludF9pbmNsdWRlX3ByaXYgKCRu
b2RlLCAiI2luY2x1ZGUgXCIkY19maWxlbmFtZV9wcmVmaXhcX3ByaXYuaFwi
XG5cbiIpOw0KICAgIHByaW50X2lmbmRlZl9pbXBsICgkbm9kZSwgIiNpbmNs
dWRlIFwiJGNfZmlsZW5hbWVfcHJlZml4XF9wdWIuaFwiXG5cbiIpOw0KICAg
IHByaW50X2luY2x1ZGVfaW1wbCAoJG5vZGUsICIjaW5jbHVkZSBcIiRjX2Zp
bGVuYW1lX3ByZWZpeFxfaW1wbC5oXCIgICAvKiBjaGFuZ2UgdGhpcyBpZiB5
b3UgcmVuYW1lIHRoZSBmaWxlcyAoISkgKi9cblxuIik7DQogICAgDQogICAg
Y29tbWVudF9pZm5kZWZfcHViICgkbm9kZSwNCgkJCSJcbiIgLg0KCQkJIiAq
IFNlY3Rpb25zOlxuIiAuDQoJCQkiICpcbiIgLg0KCQkJIiAqICAxOiBJbXBs
ZW1lbnRhdGlvbiBmdW5jdGlvbiBwcm90b3R5cGVzXG4iIC4NCgkJCSIgKiAg
MjogUHVibGljIG1hY3Jvc1xuIiAuDQoJCQkiICogIDM6IFB1YmxpYyBmdW5j
dGlvbiBwcm90b3R5cGVzXG4iIC4NCgkJCSIgKiAgNDogUHJvdGVjdGVkIGxp
c3QgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgc3RydWN0dXJlc1xuICoiKTsN
CiAgICANCiAgICBjb21tZW50X2ltcGxfcHJvdG90eXBlICgkbm9kZSwgIlxu
ICogU2VjdGlvbiAxXG4gKlxuICogSW1wbGVtZW50YXRpb24gZnVuY3Rpb24g
cHJvdG90eXBlc1xuICoiKTsNCiAgICANCiAgICBwcmludF9wdWJsaWNfbWFj
cm8gKCRub2RlLCAiXG5cbiIpOw0KICAgIGNvbW1lbnRfcHVibGljX21hY3Jv
ICgkbm9kZSwgIlxuICogU2VjdGlvbiAyXG4gKlxuICogUHVibGljIG1hY3Jv
c1xuICoiKTsNCiAgICANCiAgICBwcmludF9wdWJsaWNfcHJvdG90eXBlICgk
bm9kZSwgIlxuXG4iKTsNCiAgICBjb21tZW50X3B1YmxpY19wcm90b3R5cGUg
KCRub2RlLCAiXG4gKiBTZWN0aW9uIDNcbiAqXG4gKiBQdWJsaWMgZnVuY3Rp
b24gcHJvdG90eXBlc1xuICoiKTsNCiAgICANCiAgICBwcmludF9zZXF1ZW5j
ZV9wcm90b3R5cGUgKCRub2RlLCAiXG5cbiIpOw0KICAgIGNvbW1lbnRfc2Vx
dWVuY2VfcHJvdG90eXBlICgkbm9kZSwgIlxuICogU2VjdGlvbiA0XG4gKlxu
ICogUHJvdGVjdGVkIGxpc3QgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgZGF0
YVxuICoiKTsNCiAgICANCiAgICBjb21tZW50X2lmbmRlZl9wcml2ICgkbm9k
ZSwgIlxuICogUHJpdmF0ZSBwcm90b3R5cGVzLCBtYWNyb3MgJiBzdHJ1Y3R1
cmVzXG4gKiIpOw0KICAgIGNvbW1lbnRfaW5jbHVkZV9wcml2ICgkbm9kZSwg
IlxuICogUHJpdmF0ZSBjb2RlXG4gKiIpOw0KICAgIGNvbW1lbnRfaWZuZGVm
X2ltcGwgKCRub2RlLCAiXG4gKiBFeGFtcGxlIGltcGxlbWVudGF0aW9uIG9i
amVjdCBzdHJ1Y3R1cmVzICYgY29tcGFyaXNvbiBwcm90b3R5cGVzXG4gKiIp
Ow0KICAgIGNvbW1lbnRfaW5jbHVkZV9pbXBsICgkbm9kZSwgIlxuICogRXhh
bXBsZSBpbXBsZW1lbnRhdGlvbiBjb2RlXG4gKiIpOw0KfTsNCiAgICANCiMg
TWFpbiBvYmplY3QgaXMgYSBub2RlIG9mIHRoZSBJREwgcGFyc2UgdHJlZQ0K
Iw0KIyBBbGxvd2VkIGZpZWxkcyBpbiBub2RlIGhhc2g6DQojDQojIHBhcmVu
dF9ub2RlID0gcmVmZXJlbmNlIHRvIHBhcmVudCBub2RlIGhhc2gsIG9yIHVu
ZGVmIGZvciByb290IG5vZGUNCiMgdGV4dF9yZWYgPSByZWZlcmVuY2UgdG8g
cHJlcHJvY2Vzc2VkIHRleHQgc3RyaW5nDQojIGNvbW1lbnRfcmVmID0gcmVm
ZXJlbmNlIHRvIHByZXByb2Nlc3NlZCBjb21tZW50IGFycmF5DQojIG9wdF9y
ZWYgPSByZWZlcmVuY2UgdG8gbWFpbiBwcm9ncmFtIGNvbW1hbmQtbGluZSBv
cHRpb25zIGhhc2gNCiMgdGV4dF9zdGFydCA9IGluZGV4IHRvIHN0YXJ0IG9m
IHVucGFyc2VkIGJsb2NrIGluICQkdGV4dF9yZWYgKHRlbXBvcmFyeSB2YXJp
YWJsZSkNCiMgdGV4dF9sZW4gPSBsZW5ndGggb2YgdW5wYXJzZWQgYmxvY2sg
aW4gJCR0ZXh0X3JlZiAodGVtcG9yYXJ5IHZhcmlhYmxlKQ0KIyBpZGxfc2Nv
cGVfbGlzdCA9IHJlZmVyZW5jZSB0byBhcnJheSBvZiBpbmhlcml0ZWQgc2Nv
cGVzLCBtb2R1bGUtZmlyc3QNCiMgaWRsX2xvY2FsX3RvX2NfZ2xvYmFsX3R5
cGUgPSByZWZlcmVuY2UgdG8gaGFzaCBvZiBzaG9ydCBJREwgdHlwZSBuYW1l
cyBkZWZpbmVkIGluIHRoaXMgc2NvcGUgdG8gZ2xvYmFsIEMgdHlwZXMNCiMg
ZW5jbG9zaW5nX2tleXdvcmQgPSBJREwga2V5d29yZCAibW9kdWxlIiwgImlu
dGVyZmFjZSIsICJzdHJ1Y3QiLCAidW5pb24iIG9yIHVuZGVmIGZvciByb290
IG5vZGUNCiMgZmFjdG9yeSA9IGRlZmluZWQgZm9yIEZhY3RvcnkgaW50ZXJm
YWNlcw0KIyBpZGxfY2VudHJhbF90eXBlX3JlZ2lzdHJ5ID0gcmVmZXJlbmNl
IHRvIGhhc2ggb2YgYWxsIHF1YWxpZmllZCBJREwgdHlwZW5hbWVzIHRvIHJl
ZmVyZW5jZXMgdG8gbm9kZSBoYXNoZXMsIGluY2x1ZGluZyB0aGlzIG9uZQ0K
IyBpbmNsdWRlZF9maWxlID0gZGVmaW5lZCBmb3Igbm9kZXMgaW4gI2luY2x1
ZGUnZCBmaWxlcw0KIyBvdXRwdXQgPSByZWZlcmVuY2UgdG8gb3V0cHV0IGhh
c2gNCg0Kc3ViIG5ld19ub2RlIHsNCiAgICBteSAoJHRleHRfcmVmLCAkY29t
bWVudF9yZWYsICRvcHRfcmVmLCBAb3RoZXJfYXJncykgPSBAXzsNCiAgICBt
eSAkb3V0cHV0ID0gbmV3X291dHB1dCgpOw0KICAgIHsgcGFyZW50X25vZGUg
PT4gdW5kZWYsDQogICAgICB0ZXh0X3JlZiA9PiAkdGV4dF9yZWYsDQogICAg
ICBjb21tZW50X3JlZiA9PiAkY29tbWVudF9yZWYsDQogICAgICBvcHRfcmVm
ID0+ICRvcHRfcmVmLA0KICAgICAgdGV4dF9zdGFydCA9PiAwLA0KICAgICAg
dGV4dF9sZW4gPT4gbGVuZ3RoICQkdGV4dF9yZWYsDQogICAgICBpZGxfc2Nv
cGVfbGlzdCA9PiBbXSwNCiAgICAgIGlkbF9sb2NhbF90b19jX2dsb2JhbF90
eXBlID0+IHt9LA0KICAgICAgZW5jbG9zaW5nX2tleXdvcmQgPT4gdW5kZWYs
DQogICAgICBvdXRwdXQgPT4gJG91dHB1dCwNCiAgICAgIEBvdGhlcl9hcmdz
DQogICAgICB9DQp9DQoNCnN1YiBuZXdfY2hpbGRfbm9kZSB7DQogICAgbXkg
KCRub2RlLCAka2V5d29yZCwgJGlkbF90eXBlLCAkc3RhcnQsICRsZW4sIEBv
dGhlcl9hcmdzKSA9IEBfOw0KDQogICAgY3JvYWsgIkJhZCBrZXl3b3JkIiB1
bmxlc3MgJGtleXdvcmQgPX4gL15tb2R1bGUkfF5pbnRlcmZhY2UkfF5zdHJ1
Y3QkfF51bmlvbiQvOw0KICAgIGNyb2FrICJCYWQgdHlwZSIgdW5sZXNzIGRl
ZmluZWQgJGlkbF90eXBlOw0KICAgIGNyb2FrICJFbXB0eSBub2RlIiB1bmxl
c3MgJGxlbiA+PSAwOw0KDQogICAgbXkgJG91dHB1dCA9IG5ld19vdXRwdXQo
KTsNCiAgICBteSAlY2hpbGRfbm9kZSA9ICggcGFyZW50X25vZGUgPT4gJG5v
ZGUsDQoJCSAgICAgICB0ZXh0X3JlZiA9PiAkJG5vZGV7dGV4dF9yZWZ9LA0K
CQkgICAgICAgY29tbWVudF9yZWYgPT4gJCRub2Rle2NvbW1lbnRfcmVmfSwN
CgkJICAgICAgIG9wdF9yZWYgPT4gJCRub2Rle29wdF9yZWZ9LA0KCQkgICAg
ICAgdGV4dF9zdGFydCA9PiAkc3RhcnQsDQoJCSAgICAgICB0ZXh0X2xlbiA9
PiAkbGVuLA0KCQkgICAgICAgaWRsX3Njb3BlX2xpc3QgPT4gW0B7JCRub2Rl
e2lkbF9zY29wZV9saXN0fX0sICRpZGxfdHlwZV0sDQoJCSAgICAgICBpZGxf
bG9jYWxfdG9fY19nbG9iYWxfdHlwZSA9PiB7fSwNCgkJICAgICAgIGVuY2xv
c2luZ19rZXl3b3JkID0+ICRrZXl3b3JkLA0KCQkgICAgICAgaWRsX2NlbnRy
YWxfdHlwZV9yZWdpc3RyeSA9PiAkJG5vZGV7aWRsX2NlbnRyYWxfdHlwZV9y
ZWdpc3RyeX0sDQoJCSAgICAgICBpbmNsdWRlZF9maWxlID0+ICQkbm9kZXtp
bmNsdWRlZF9maWxlfSwNCgkJICAgICAgIG91dHB1dCA9PiAkb3V0cHV0LA0K
CQkgICAgICAgQG90aGVyX2FyZ3MNCgkJICAgICAgICk7DQogICAgDQogICAg
JCB7JG5vZGUtPntpZGxfY2VudHJhbF90eXBlX3JlZ2lzdHJ5fX0ge2lkbF9x
dWFsaWZpZWRfdHlwZV9uYW1lICgkbm9kZSl9ID0gXCVjaGlsZF9ub2RlOw0K
ICAgIFwlY2hpbGRfbm9kZTsNCn0NCg0Kc3ViIHBhcnNlX2FuZF9kaWUgeyAg
IyBhY3R1YWxseSBpdCBkb2Vzbid0IHJlYWxseSBkaWUsIGJlY2F1c2UgaXQn
cyBzdGlsbCByZWZlcmVuY2VkIGluIHRoZSBnbG9iYWwgdHlwZSByZWdpc3Ry
eSwgYnV0IGhleQ0KICAgIG15ICgkbm9kZSkgPSBAXzsNCiAgICBwYXJzZSAo
JG5vZGUpOw0KICAgIGluY29ycG9yYXRlX2NoaWxkX291dHB1dCAkJG5vZGV7
cGFyZW50X25vZGV9e291dHB1dH0sICQkbm9kZXtvdXRwdXR9Ow0KfQ0KDQpz
dWIgc3Vicm91dGluZV9kZWZzX2V2YWwgew0KICAgIG15ICRkdW1teV9vdXRw
dXQgPSBuZXdfb3V0cHV0KCk7DQogICAgbXkgJGRlZnMgPSAiIjsNCiAgICBm
b3JlYWNoIG15ICRmaWxlbmFtZSAoa2V5cyAlJGR1bW15X291dHB1dCkgew0K
CW15ICRsYXlvdXRfcmVmID0gJCRkdW1teV9vdXRwdXR7JGZpbGVuYW1lfTsN
Cglmb3JlYWNoIG15ICRzZWN0aW9uX25hbWUgKGdyZXAgKCEvQ0hJTEQvLCBz
ZWN0aW9uX25hbWVzICgkbGF5b3V0X3JlZikpKSB7DQoJICAgIG15ICRhcnJh
eV9yZWYgPSAkJGxheW91dF9yZWZ7JHNlY3Rpb25fbmFtZX07DQoJICAgICRk
ZWZzIC49ICJzdWIgcHJpbnRfJHNlY3Rpb25fbmFtZSB7IG15IFwkbm9kZSA9
IHNoaWZ0OyBwdXNocmVmIChcJFwkbm9kZXtvdXRwdXR9eyRmaWxlbmFtZX17
JHNlY3Rpb25fbmFtZX0sIFxAXykgfVxuIjsNCgkgICAgJGRlZnMgLj0gInN1
YiBjb21tZW50XyRzZWN0aW9uX25hbWUgeyBteSBcJG5vZGUgPSBzaGlmdDsg
cHJpbnRfJHNlY3Rpb25fbmFtZSAoXCRub2RlLCBtYWtlX2NvbW1lbnQgKFwk
bm9kZSwgXEBfKSkgfVxuIjsNCgl9DQogICAgfQ0KICAgICRkZWZzOw0KfQ0K
DQpzdWIgbWFrZV9jb21tZW50IHsNCiAgICBteSAoJG5vZGUsICRwcmVhbWJs
ZSwgJGlkbF90eXBlX25hbWUsIEBwb3N0YW1ibGUpID0gQF87DQogICAgbXkg
QGNvbW1lbnQgPSAoKTsNCiAgICBpZiAoZGVmaW5lZCAkJG5vZGV7b3B0X3Jl
Zn17bGFiZWxzfSkgew0KCSRpZGxfdHlwZV9uYW1lID0gIiIgdW5sZXNzIGRl
ZmluZWQgJGlkbF90eXBlX25hbWU7DQoJcHVzaCBAY29tbWVudCwgIlxuLyog
TGFiZWwgKCIsICQkbm9kZXtvcHRfcmVmfXtwcm9nbmFtZX0sICIpXG4gKiAi
LCBpZGxfcXVhbGlmaWVkX3R5cGVfbmFtZSAoJG5vZGUpLCAiXG4gKiAkcHJl
YW1ibGUgJGlkbF90eXBlX25hbWUgQHBvc3RhbWJsZVxuICovXG5cbiI7DQog
ICAgfQ0KICAgIEBjb21tZW50Ow0KfQ0KDQojIG5hbWVzcGFjZSB0cmFuc2xh
dGlvbiBtZXRob2RzDQoNCnN1YiBnZXRfY19maWxlbmFtZV9wcmVmaXggew0K
ICAgIG15ICgkaWRsX2ZpbGVuYW1lKSA9IEBfOw0KICAgIG15ICRjX2ZpbGVu
YW1lX3ByZWZpeDsNCiAgICBpZiAoJGlkbF9maWxlbmFtZSA9fiAvKFx3Kykk
aWRsX21vZHVsZV9zdWZmaXguaWRsJC8pIHsgJGNfZmlsZW5hbWVfcHJlZml4
ID0gbGMgJDEgfQ0KICAgIGVsc2lmICgkaWRsX2ZpbGVuYW1lID1+IC8oXHcr
KS5pZGwkLykgeyAkY19maWxlbmFtZV9wcmVmaXggPSBsYyAkMSB9DQogICAg
ZWxzZSB7ICRjX2ZpbGVuYW1lX3ByZWZpeCA9IGxjICRpZGxfZmlsZW5hbWUg
fQ0KICAgICRjX2ZpbGVuYW1lX3ByZWZpeDsNCn0NCg0Kc3ViIGlkbF9xdWFs
aWZpZWRfdHlwZV9uYW1lIHsNCiAgICBteSAoJG5vZGUpID0gQF87DQogICAg
am9pbiAoIjo6IiwgQCB7JCRub2Rle2lkbF9zY29wZV9saXN0fX0gKTsNCn0N
Cg0Kc3ViIGlzX2Jhc2ljX3R5cGUgew0KICAgIG15ICgkaWRsX3R5cGVfbmFt
ZSkgPSBAXzsNCiAgICAkaWRsX3R5cGVfbmFtZSA9fiAvXihmbG9hdHxkb3Vi
bGV8bG9uZyBkb3VibGV8c2hvcnR8bG9uZ3xsb25nIGxvbmd8dW5zaWduZWQg
c2hvcnR8dW5zaWduZWQgbG9uZ3x1bnNpZ25lZCBsb25nIGxvbmd8Y2hhcnx3
Y2hhcnxib29sZWFufG9jdGV0fGFueSkkLzsNCn0NCg0Kc3ViIGJhc2ljX3R5
cGVfcHJpbnRmIHsNCiAgICBteSAoJGlkbF90eXBlX25hbWUpID0gQF87DQog
ICAgbXkgJHByaW50ZjsNCiAgICBpZiAoJGlkbF90eXBlX25hbWUgPX4gL15m
bG9hdCQvKSB7ICRwcmludGYgPSAiJWYiIH0NCiAgICBlbHNpZiAoJGlkbF90
eXBlX25hbWUgPX4gL14oZG91YmxlfGxvbmcgZG91YmxlKSQvKSB7ICRwcmlu
dGYgPSAiJWciIH0NCiAgICBlbHNpZiAoJGlkbF90eXBlX25hbWUgPX4gL14o
c2hvcnR8bG9uZ3xsb25nXCBsb25nfHVuc2lnbmVkIHNob3J0fHVuc2lnbmVk
IGxvbmd8dW5zaWduZWQgbG9uZyBsb25nfGJvb2xlYW58b2N0ZXR8YW55KSQv
KSB7ICRwcmludGYgPSAiJWQiIH0NCiAgICBlbHNpZiAoJGlkbF90eXBlX25h
bWUgPX4gL14oY2hhcnx3Y2hhcikkLykgeyAkcHJpbnRmID0gIiVjIiB9DQog
ICAgZWxzZSB7IGNyb2FrICJCYWQgdHlwZSBuYW1lICckaWRsX3R5cGVfbmFt
ZSciIH0NCiAgICAkcHJpbnRmOw0KfQ0KDQpzdWIgZ2V0X2lkbF9tZXRob2Rf
cHJlZml4IHsNCiAgICBteSAoJGlkbF9tZXRob2RfbmFtZSkgPSBAXzsNCiAg
ICAkaWRsX21ldGhvZF9uYW1lID1+IHMvJGlkbF92aXJ0dWFsX3N1ZmZpeCQv
LzsNCiAgICAkaWRsX21ldGhvZF9uYW1lOw0KfQ0KDQpzdWIgY2hlY2tfcmVz
ZXJ2ZWQgew0KICAgIG15ICgkaWRsX2xvY2FsX3R5cGUpID0gQF87DQogICAg
Y3JvYWsgIickaWRsX2xvY2FsX3R5cGUnIGlzIGEgcmVzZXJ2ZWQgQyBtZXRo
b2QiIGlmIGRlZmluZWQgJGNfcmVzZXJ2ZWRfbWV0aG9keyRpZGxfbG9jYWxf
dHlwZX07DQp9DQoNCnN1YiBuZXdfdHlwZSB7DQogICAgbXkgKCRub2RlLCRp
ZGxfbG9jYWxfdHlwZSwkY19nbG9iYWxfdHlwZSkgPSBAXzsNCiAgICBjcm9h
ayAiVW5kZWZpbmVkIHR5cGUgbmFtZSIgdW5sZXNzIGRlZmluZWQoJGlkbF9s
b2NhbF90eXBlKSAmJiBkZWZpbmVkKCRjX2dsb2JhbF90eXBlKTsNCiAgICAk
bm9kZS0+e2lkbF9sb2NhbF90b19jX2dsb2JhbF90eXBlfS0+eyRpZGxfbG9j
YWxfdHlwZX0gPSAkY19nbG9iYWxfdHlwZTsNCn0NCg0Kc3ViIHNjb3BlX2lk
bF9sb2NhbF90eXBlIHsNCiAgICBteSAoJG5vZGUsJGlkbF9sb2NhbF90eXBl
KSA9IEBfOw0KICAgIGNyb2FrICInJGlkbF9sb2NhbF90eXBlJyBpcyBhIHJl
c2VydmVkIEMgbWV0aG9kIiBpZiBkZWZpbmVkICRjX3Jlc2VydmVkX21ldGhv
ZHskaWRsX2xvY2FsX3R5cGV9Ow0KICAgIGpvaW4gKCI6OiIsIEB7JG5vZGUt
PnsiaWRsX3Njb3BlX2xpc3QifX0sICRpZGxfbG9jYWxfdHlwZSk7DQp9DQoN
CnN1YiBmaW5kX2lkbF9zY29wZSB7DQogICAgbXkgKCRub2RlLCRpZGxfdHlw
ZSkgPSBAXzsNCiAgICBteSAkc2NvcGVkX2lkbF90eXBlID0gJGlkbF90eXBl
Ow0KICAgIGlmICgkaWRsX3R5cGUgIX4gLzo6Lykgew0KCWZvciAobXkgJHBv
cF9ub2RlID0gJG5vZGU7IGRlZmluZWQoJHBvcF9ub2RlKTsgJHBvcF9ub2Rl
ID0gJHBvcF9ub2RlLT57InBhcmVudF9ub2RlIn0pIHsNCgkgICAgaWYgKGRl
ZmluZWQgJHBvcF9ub2RlLT57ImlkbF9sb2NhbF90b19jX2dsb2JhbF90eXBl
In0tPnskaWRsX3R5cGV9KSB7DQoJCSRzY29wZWRfaWRsX3R5cGUgPSBzY29w
ZV9pZGxfbG9jYWxfdHlwZSAoJHBvcF9ub2RlLCAkaWRsX3R5cGUpOw0KCQls
YXN0Ow0KCSAgICB9DQoJfQ0KICAgIH0NCiAgICAkc2NvcGVkX2lkbF90eXBl
Ow0KfQ0KDQpzdWIgY19tb2R1bGVfcHJlZml4IHsNCiAgICBteSAoJG5vZGUs
JGlkbF9tb2R1bGVfbmFtZSkgPSBAXzsNCiAgICBteSBAaWRsX3Njb3BlX2xp
c3QgPSBAeyRub2RlLT57ImlkbF9zY29wZV9saXN0In19Ow0KICAgIGNyb2Fr
ICJDYW4ndCBkZWZpbmUgb25lIG1vZHVsZSBpbnNpZGUgYW5vdGhlciIgaWYg
ZGVmaW5lZCgkbm9kZS0+eyJlbmNsb3Npbmdfa2V5d29yZCJ9KSB8fCBAeyRu
b2RlLT57ImlkbF9zY29wZV9saXN0In19Ow0KICAgIGNyb2FrICJJbnZhbGlk
IG1vZHVsZSBuYW1lICckaWRsX21vZHVsZV9uYW1lJyIgdW5sZXNzICRpZGxf
bW9kdWxlX25hbWUgPX4gcy8kaWRsX21vZHVsZV9zdWZmaXgkLy87DQogICAg
JGNfZ2xvYmFsX3ByZWZpeCAuICRpZGxfbW9kdWxlX25hbWUgLiAiXyI7DQp9
DQoNCnN1YiBjX3Njb3BlX2xpc3Qgew0KICAgIG15ICgkbm9kZSkgPSBAXzsN
CiAgICBteSBAY19zY29wZSA9IEB7JG5vZGUtPnsiaWRsX3Njb3BlX2xpc3Qi
fX07DQogICAgY3JvYWsgIkludmFsaWQgbW9kdWxlIG5hbWUgJyRjX3Njb3Bl
WzBdJyIgdW5sZXNzIEBjX3Njb3BlID09IDAgfHwgJGNfc2NvcGVbMF0gPX4g
cy8kaWRsX21vZHVsZV9zdWZmaXgkLy87DQogICAgQGNfc2NvcGU7DQp9DQoN
CnN1YiBjX3R5cGUgeyAjIGNvbnZlcnQgImlkbG5hbWUiIGluIE15TW9kdWxl
IChhbmQgcG9zc2libHkgQW5PYmplY3QpIHRvIFRlbGVncmFwaCB0eXBlICJ0
Z015W19PYmplY3RdX2lkbG5hbWUiDQogICAgbXkgKCRub2RlLCRpZGxfbmFt
ZSkgPSBAXzsNCiAgICBjcm9hayAiVW5kZWZpbmVkIHR5cGUgbmFtZSIgdW5s
ZXNzIGRlZmluZWQgJGlkbF9uYW1lOw0KICAgIG15IEBjX3Njb3BlX2xpc3Qg
PSBjX3Njb3BlX2xpc3QoJG5vZGUpOw0KICAgIG15ICRjX21vZHVsZSA9IHNo
aWZ0IEBjX3Njb3BlX2xpc3Q7DQogICAgaWYgKGRlZmluZWQgJCRub2Rle2Zh
Y3Rvcnl9KSB7IHBvcCBAY19zY29wZV9saXN0IH0NCiAgICBwdXNoIEBjX3Nj
b3BlX2xpc3QsICRpZGxfbmFtZTsNCiAgICBzaGlmdCBAY19zY29wZV9saXN0
IGlmIEBjX3Njb3BlX2xpc3QgPiAwICYmICRjX3Njb3BlX2xpc3RbMF0gZXEg
JGNfbW9kdWxlOw0KICAgICRjX2dsb2JhbF9wcmVmaXggLiBqb2luKCJfIiwg
JGNfbW9kdWxlLCBAY19zY29wZV9saXN0KTsNCn0NCg0Kc3ViIGNfc3RydWN0
IHsNCiAgICBjX3R5cGUgKEBfKSAuICJfJGNfc3RydWN0X3N1ZmZpeCI7DQp9
DQoNCnN1YiBjX29iamVjdF90eXBlIHsNCiAgICBteSAoJG5vZGUpID0gQF87
DQogICAgbXkgQGNfc2NvcGVfbGlzdCA9IGNfc2NvcGVfbGlzdCgkbm9kZSk7
DQogICAgY3JvYWsgIkNhbid0IGhhdmUgYSBDIHN0cnVjdCBvciB1bmlvbiBv
dXRzaWRlIGFuIElETCBpbnRlcmZhY2UsIHN0cnVjdCBvciB1bmlvbiIgdW5s
ZXNzIEBjX3Njb3BlX2xpc3QgPiAxOw0KICAgIG15ICRjX21vZHVsZSA9IHNo
aWZ0IEBjX3Njb3BlX2xpc3Q7DQogICAgc2hpZnQgQGNfc2NvcGVfbGlzdCBp
ZiBAY19zY29wZV9saXN0ID4gMCAmJiAkY19zY29wZV9saXN0WzBdIGVxICRj
X21vZHVsZTsNCiAgICAkY19nbG9iYWxfcHJlZml4IC4gam9pbiAoIl8iLCAk
Y19tb2R1bGUsIEBjX3Njb3BlX2xpc3QpOw0KfQ0KDQpzdWIgbWFrZV9jX29i
amVjdF9uYW1lIHsNCiAgICBteSAoJGlkbF90eXBlKSA9IEBfOw0KICAgIG15
ICRjX29iamVjdF9uYW1lID0gJGlkbF90eXBlOw0KICAgIGlmICgkY19vYmpl
Y3RfbmFtZSA9fiAvXihcUykvKSB7IG15ICRjYXAgPSAkMTsgc3Vic3RyICgk
Y19vYmplY3RfbmFtZSwgMCwgMSkgPSBsYyAkY2FwIH0NCiAgICBlbHNlIHsg
Y3JvYWsgIkJhZCBvYmplY3QgbmFtZSAnJGlkbF90eXBlJyIgfQ0KICAgICRj
X29iamVjdF9uYW1lOw0KfQ0KDQpzdWIgY19vYmplY3RfbmFtZSB7DQogICAg
bXkgKCRub2RlKSA9IEBfOw0KICAgIG15IEBjX3Njb3BlX2xpc3QgPSBjX3Nj
b3BlX2xpc3QoJG5vZGUpOw0KICAgIGNyb2FrICJDYW4ndCBoYXZlIGEgQyBz
dHJ1Y3Qgb3IgdW5pb24gb3V0c2lkZSBhbiBJREwgaW50ZXJmYWNlLCBzdHJ1
Y3Qgb3IgdW5pb24iIHVubGVzcyBAY19zY29wZV9saXN0ID4gMTsNCiAgICBt
YWtlX2Nfb2JqZWN0X25hbWUgKHBvcCBAY19zY29wZV9saXN0KTsNCn0NCg0K
c3ViIGNfZW5jbG9zaW5nX3N0cnVjdF9vcl91bmlvbiB7DQogICAgbXkgKCRu
b2RlKSA9IEBfOw0KICAgIG15ICRzdHJ1Y3Rfb3JfdW5pb24gPSAkbm9kZS0+
eyJlbmNsb3Npbmdfa2V5d29yZCJ9IGVxICJ1bmlvbiIgPyAidW5pb24iIDog
InN0cnVjdCI7DQogICAgbXkgQGNfc2NvcGVfbGlzdCA9IGNfc2NvcGVfbGlz
dCgkbm9kZSk7DQogICAgY3JvYWsgIkNhbid0IGhhdmUgYSBDIHN0cnVjdCBv
ciB1bmlvbiBvdXRzaWRlIGFuIElETCBpbnRlcmZhY2UsIHN0cnVjdCBvciB1
bmlvbiIgdW5sZXNzIEBjX3Njb3BlX2xpc3QgPiAxOw0KICAgIG15ICRjX21v
ZHVsZSA9IHNoaWZ0IEBjX3Njb3BlX2xpc3Q7DQogICAgc2hpZnQgQGNfc2Nv
cGVfbGlzdCBpZiBAY19zY29wZV9saXN0ID4gMCAmJiAkY19zY29wZV9saXN0
WzBdIGVxICRjX21vZHVsZTsNCiAgICAkc3RydWN0X29yX3VuaW9uIC4gIiAi
IC4gJGNfZ2xvYmFsX3ByZWZpeCAuIGpvaW4gKCJfIiwgJGNfbW9kdWxlLCBA
Y19zY29wZV9saXN0LCAkY19zdHJ1Y3Rfc3VmZml4KTsNCn0NCg0Kc3ViIGZp
bmRfc2NvcGVfYW5kX2dldF9jX3R5cGUgew0KICAgIG15ICgkbm9kZSwkaWRs
X2xvY2FsX3R5cGUpID0gQF87DQogICAgbXkgJGNfdHlwZTsNCiAgICBpZiAo
ZXhpc3RzICRjX3R5cGVkZWZ7JGlkbF9sb2NhbF90eXBlfSkgew0KCSRjX3R5
cGUgPSAkY190eXBlZGVmeyRpZGxfbG9jYWxfdHlwZX07DQogICAgfSBlbHNl
IHsNCglteSAkaWRsX2dsb2JhbF90eXBlID0gZmluZF9pZGxfc2NvcGUoJG5v
ZGUsJGlkbF9sb2NhbF90eXBlKTsNCglteSAkcmVnZXhwID0gIl4oW146XSs/
KSRpZGxfbW9kdWxlX3N1ZmZpeCIgLiAiOjooLiopXCQiOyAgIyBiZXdhcmUg
Y2xhc2ggYmV0d2VlbiBJREwncyAmIFBlcmwncyAiOjoiDQoJaWYgKCRpZGxf
Z2xvYmFsX3R5cGUgPX4gLyRyZWdleHAvKSB7DQoJICAgIG15ICgkY19tb2R1
bGUsJGlkbF90eXBlX3JlbWFpbmRlcikgPSAoJDEsJDIpOw0KCSAgICBteSBA
Y19zY29wZV9saXN0ID0gc3BsaXQgLzo6LywgJGlkbF90eXBlX3JlbWFpbmRl
cjsNCgkgICAgc2hpZnQgQGNfc2NvcGVfbGlzdCBpZiBAY19zY29wZV9saXN0
ID4gMCAmJiAkY19zY29wZV9saXN0WzBdIGVxICRjX21vZHVsZTsNCgkgICAg
JGNfdHlwZSA9ICRjX2dsb2JhbF9wcmVmaXggLiBqb2luICgiXyIsICRjX21v
ZHVsZSwgQGNfc2NvcGVfbGlzdCk7DQoJfSBlbHNlIHsNCgkgICAgJGNfdHlw
ZSA9ICRpZGxfbG9jYWxfdHlwZTsgICMganVzdCBnaXZlIHVwIG9uIGl0DQoJ
fQ0KICAgIH0NCiAgICAkY190eXBlOw0KfQ0KDQpzdWIgY19leGNlcHRpb25f
bmFtZSB7DQogICAgbXkgKCRub2RlLCAkaWRsX2V4Y2VwdGlvbikgPSBAXzsN
CiAgICBpZiAoZGVmaW5lZCAkJG5vZGV7ZmFjdG9yeX0pIHsgY190eXBlKCRu
b2RlLCAkaWRsX2ZhY3RvcnlfbmFtZSkgLiAiXyRpZGxfZXhjZXB0aW9uIiB9
DQogICAgZWxzZSB7IGNfdHlwZSgkbm9kZSwgJGlkbF9leGNlcHRpb24pIH0N
Cn0NCg0Kc3ViIGNfY29uc3RfZXhjZXB0aW9uX2RlY2wgew0KICAgIG15ICgk
bm9kZSwgJGlkbF9leGNlcHRpb24pID0gQF87DQogICAgbXkgJGNfdHlwZSA9
IGNfdHlwZSgkbm9kZSwgJGlkbF9leGNlcHRpb24pOw0KICAgICJjb25zdCBj
aGFyKiAkY190eXBlID0gXCIiIC4gam9pbiAoIjo6IiwgQCB7JCRub2Rle2lk
bF9zY29wZV9saXN0fX0sICRpZGxfZXhjZXB0aW9uKSAuICJcIjsiOw0KfQ0K
DQpzdWIgY19jb25zdF9leGNlcHRpb25fYXV0b19kZWNsIHsNCiAgICBteSAo
JG5vZGUsICRpZGxfb2JqZWN0X3R5cGUsICRpZGxfZXhjZXB0aW9uKSA9IEBf
Ow0KICAgIG15ICRjX3R5cGUgPSBjX3R5cGUoJG5vZGUsICRpZGxfb2JqZWN0
X3R5cGUpIC4gIl8kaWRsX2V4Y2VwdGlvbiI7DQogICAgImNvbnN0IGNoYXIq
ICRjX3R5cGUgPSBcIiIgLiBqb2luICgiOjoiLCBAIHskJG5vZGV7aWRsX3Nj
b3BlX2xpc3R9fSwgJGlkbF9vYmplY3RfdHlwZSwgJGlkbF9leGNlcHRpb24p
IC4gIlwiOyI7DQp9DQoNCnN1YiBjX2NvbnN0X2ZhY3RvcnlfZXhjZXB0aW9u
X2RlY2wgew0KICAgIG15ICgkbm9kZSwgJGlkbF9leGNlcHRpb24pID0gQF87
DQogICAgbXkgJGNfdHlwZSA9IGNfdHlwZSgkbm9kZSwgJGlkbF9mYWN0b3J5
X25hbWUpIC4gIl8kaWRsX2V4Y2VwdGlvbiI7DQogICAgImNvbnN0IGNoYXIq
ICRjX3R5cGUgPSBcIiIgLiBqb2luICgiOjoiLCBAIHskJG5vZGV7aWRsX3Nj
b3BlX2xpc3R9fSwgJGlkbF9leGNlcHRpb24pIC4gIlwiOyI7DQp9DQoNCiMg
bG9nZ2luZw0KDQpzdWIgdGlkeV9zdHJpbmcgew0KICAgIG15ICgkc3RyaW5n
LCAkd2lkdGgpID0gQF87DQogICAgbXkgQHRpZHk7DQogICAgbXkgJHBvcyA9
IDA7DQogICAgd2hpbGUgKDEpIHsNCglwb3MgJHN0cmluZyA9ICRwb3M7DQoJ
aWYgKCRzdHJpbmcgPX4gL1xHXHMrL2cpIHsgJHBvcyA9IHBvcyAkc3RyaW5n
IH0NCglsYXN0IGlmICRwb3MgPj0gbGVuZ3RoICRzdHJpbmc7DQoJbXkgJGxp
bmUgPSBzdWJzdHIgKCRzdHJpbmcsICRwb3MsICR3aWR0aCk7DQoJaWYgKGxl
bmd0aCgkbGluZSkgPT0gJHdpZHRoICYmIHN1YnN0cigkc3RyaW5nLCAkcG9z
ICsgJHdpZHRoIC0gMSwgMikgIX4gL1xzLykgew0KCSAgICBwb3MgJHN0cmlu
ZyA9ICRwb3M7DQoJICAgIGlmICgkc3RyaW5nID1+IC9cRyguezAsJHdpZHRo
fVxzKVxzKlxTezAsJHdpZHRofS9nKSB7ICRsaW5lID0gJDEgfQ0KCX0NCglw
dXNoIEB0aWR5LCAkbGluZTsNCgkkcG9zICs9IGxlbmd0aCAkbGluZTsNCiAg
ICB9DQogICAgQHRpZHk7DQp9DQoNCnN1YiByZXBvcnQgew0KICAgIG15ICgk
bm9kZSwgJGZyb20sICR0bykgPSBAXzsNCiAgICBpZiAoZGVmaW5lZCgkbm9k
ZS0+e29wdF9yZWZ9LT57cmVwb3J0X3RvX3NjcmVlbn0pICYmICFkZWZpbmVk
KCRub2RlLT57aW5jbHVkZWRfZmlsZX0pKSB7DQoJbXkgJGlkbF93aWR0aCA9
ICQkbm9kZXtvcHRfcmVmfXtyZXBvcnRfaWRsX3dpZHRofTsNCglteSAkY193
aWR0aCA9ICQkbm9kZXtvcHRfcmVmfXtyZXBvcnRfY193aWR0aH07DQoJbXkg
JGluZGVudCA9IDIgKiAoQHskbm9kZS0+eyJpZGxfc2NvcGVfbGlzdCJ9fSAr
IDApOw0KCW15ICRwYWQgPSBtYXggKDAsIDEwIC0gJGluZGVudCk7DQoJbXkg
QGZyb20gPSBtYXAgKCIgIiB4ICRpbmRlbnQgLiAkXywgdGlkeV9zdHJpbmcg
KCRmcm9tLCAkaWRsX3dpZHRoIC0gJGluZGVudCkpOw0KCW15IEB0byA9IHRp
ZHlfc3RyaW5nICgkdG8sICRjX3dpZHRoKTsNCglmb3IgKG15ICRpID0gMDsg
JGkgPCBAdG8gJiYgJGkgPCBAZnJvbTsgKyskaSkgeyAkZnJvbVskaV0gLj0g
IiAiIHggKCRpZGxfd2lkdGggKyAxIC0gbGVuZ3RoICRmcm9tWyRpXSkgfQ0K
CXdoaWxlIChAZnJvbSswIDwgQHRvKzApIHsgcHVzaCBAZnJvbSwgIiAiIHgg
KCRpZGxfd2lkdGggKyAxKSB9DQojCWlmIChAZnJvbSkgeyAkZnJvbVswXSA9
fiAvKCArKSQvOyBteSAkZG90ID0gJDE7ICRkb3QgPX4gdHIvIC8uLzsgJGZy
b21bMF0gPX4gcy8gKyQvJGRvdC8gfQ0KCWZvciAobXkgJGkgPSAwOyAkaSA8
IEB0bzsgKyskaSkgew0KCSAgICB3YXJuICRmcm9tWyRpXSwgKCRpPT0wID8g
IiBDICIgOiAiICAgIiksICR0b1skaV0sICJcbiI7DQoJfQ0KCWZvciAobXkg
JGkgPSBAdG87ICRpIDwgQGZyb207ICsrJGkpIHsgJGZyb21bJGldID1+IHMv
XHMqJC8vOyB3YXJuICRmcm9tWyRpXSwgIlxuIiB9DQoJd2FybiAiXG4iOw0K
ICAgIH0NCn0NCg0KIyBwYXJzZXINCg0Kc3ViIHBhcnNlIHsNCiAgICBteSAo
JG5vZGUpID0gQF87DQogICAgbXkgJHRleHRfcmVmID0gJCRub2Rle3RleHRf
cmVmfTsNCiAgICB3aGlsZSAoJCRub2Rle3RleHRfbGVufSA+IDApIHsNCglt
eSAoJGJlZm9yZV9zdGFydCwgJGJlZm9yZV9sZW4sICRpbnNpZGVfc3RhcnQs
ICRpbnNpZGVfbGVuLCAkbmV4dF9zdGFydCkgPSBuZXh0X2Jsb2NrICgkbm9k
ZSk7DQoNCgljcm9hayAiSSdtIG5vdCBhIFR1cmluZyBtYWNoaW5lIiBpZiAk
aW5zaWRlX2xlbiA8IDAgfHwgJGJlZm9yZV9sZW4gPCAwOw0KDQoJbXkgJHRl
eHRfc3RhcnQgPSAkJG5vZGV7dGV4dF9zdGFydH07DQoJbXkgJG5vZGVfY29t
bWVudF9yZWYgPSAkJG5vZGV7Y29tbWVudF9yZWZ9Ow0KCXByaW50X2V4cG9y
dGVkX2RlZiAoJG5vZGUsIGNhdF9jb21tZW50cyAoQCRub2RlX2NvbW1lbnRf
cmVmIFskdGV4dF9zdGFydCAuLiAkYmVmb3JlX3N0YXJ0IC0gMV0pKTsNCgls
YXN0IHVubGVzcyAkYmVmb3JlX2xlbjsNCgkNCglteSAkYmVmb3JlID0gc3Vi
c3RyICgkJHRleHRfcmVmLCAkYmVmb3JlX3N0YXJ0LCAkYmVmb3JlX2xlbik7
DQoJbXkgJGluc2lkZV9lbmQgPSAkaW5zaWRlX3N0YXJ0ICsgJGluc2lkZV9s
ZW47DQoNCiMJd2FybiAiYmVmb3JlPVwiJGJlZm9yZVwiIGluc2lkZT1cIiIs
IHN1YnN0cigkJHRleHRfcmVmLCRpbnNpZGVfc3RhcnQsJGluc2lkZV9sZW4p
LCAiXCJcbiI7DQoNCglteSBAYmVmb3JlX2NvbW1lbnRzID0gQCRub2RlX2Nv
bW1lbnRfcmVmIFskYmVmb3JlX3N0YXJ0IC4uICRpbnNpZGVfc3RhcnQgLSAx
XTsNCglteSBAaW5zaWRlX2NvbW1lbnRzID0gQCRub2RlX2NvbW1lbnRfcmVm
IFskaW5zaWRlX3N0YXJ0IC4uICRpbnNpZGVfZW5kIC0gMV07DQoNCglpZiAo
JGJlZm9yZSA9fiAvXm1vZHVsZSAoXFMrKSA/JC8pDQoJeyBuZXdfbW9kdWxl
ICgkbm9kZSwgXEBiZWZvcmVfY29tbWVudHMsICQxLCAkaW5zaWRlX3N0YXJ0
LCAkaW5zaWRlX2xlbikgfQ0KCQ0KCWVsc2lmICgkYmVmb3JlID1+IC9eY29u
c3QgKFx3KykgKC4qKSQvICYmICRpbnNpZGVfbGVuPT0wKQ0KCXsgbmV3X2Nv
bnN0ICgkbm9kZSwgXEBiZWZvcmVfY29tbWVudHMsICQxLCAkMikgfQ0KDQoJ
ZWxzaWYgKCRiZWZvcmUgPX4gL15zdHJ1Y3QgKFx3KykgPyQvKQ0KCXsgbmV3
X3N0cnVjdCAoJG5vZGUsIFxAYmVmb3JlX2NvbW1lbnRzLCAkMSwgJGluc2lk
ZV9zdGFydCwgJGluc2lkZV9sZW4pIH0NCg0KCWVsc2lmICgkYmVmb3JlID1+
IC9edHlwZWRlZiBzZXF1ZW5jZTwoLio/KT4gKFx3KykgPyQvICYmICRpbnNp
ZGVfbGVuPT0wKQ0KCXsgbmV3X3R5cGVkZWZfc2VxdWVuY2UgKCRub2RlLCBc
QGJlZm9yZV9jb21tZW50cywgJDEsICQyKSB9DQoNCgllbHNpZiAoJGJlZm9y
ZSA9fiAvXnR5cGVkZWYgKC4qPykgKFx3KykgPyQvICYmICRpbnNpZGVfbGVu
PT0wKQ0KCXsgbmV3X3R5cGVkZWYgKCRub2RlLCBcQGJlZm9yZV9jb21tZW50
cywgJDEsICQyKSB9DQoJDQoJZWxzaWYgKCRiZWZvcmUgPX4gL15lbnVtIChc
dyspID8kLykNCgl7IG5ld19lbnVtICgkbm9kZSwgXEBiZWZvcmVfY29tbWVu
dHMsICQxLCAkaW5zaWRlX3N0YXJ0LCAkaW5zaWRlX2xlbiwgXEBpbnNpZGVf
Y29tbWVudHMpIH0NCg0KCWVsc2lmICgkYmVmb3JlID1+IC9edW5pb24gKFx3
Kykgc3dpdGNoID9cKChbXlwpXSspXCkgPyQvKQ0KCXsgbmV3X3VuaW9uICgk
bm9kZSwgXEBiZWZvcmVfY29tbWVudHMsICQxLCAkMiwgJGluc2lkZV9zdGFy
dCwgJGluc2lkZV9sZW4pIH0NCgkNCgllbHNpZiAoJGJlZm9yZSA9fiAvXmV4
Y2VwdGlvbiAoXHcrKSA/JC8pDQoJeyBuZXdfZXhjZXB0aW9uICgkbm9kZSwg
XEBiZWZvcmVfY29tbWVudHMsICQxLCAkaW5zaWRlX3N0YXJ0LCAkaW5zaWRl
X2xlbikgfQ0KCQ0KCWVsc2lmICgkYmVmb3JlID1+IC9eaW50ZXJmYWNlICgk
aWRsX2ZhY3RvcnlfbmFtZSkgPyQvICYmICRpbnNpZGVfbGVuPT0wKQ0KCXsg
bmV3X2ZhY3RvcnlfZGVjbGFyYXRpb24gKCRub2RlLCBcQGJlZm9yZV9jb21t
ZW50cywgJDEpIH0NCgkNCgllbHNpZiAoJGJlZm9yZSA9fiAvXmludGVyZmFj
ZSAoJGlkbF9mYWN0b3J5X25hbWUpID8kLykNCgl7IG5ld19mYWN0b3J5ICgk
bm9kZSwgXEBiZWZvcmVfY29tbWVudHMsICQxLCAkaW5zaWRlX3N0YXJ0LCAk
aW5zaWRlX2xlbikgfQ0KCQ0KCWVsc2lmICgkYmVmb3JlID1+IC9eaW50ZXJm
YWNlIChcdyspID8kLyAmJiAkaW5zaWRlX2xlbj09MCkNCgl7IG5ld19pbnRl
cmZhY2VfZGVjbGFyYXRpb24gKCRub2RlLCBcQGJlZm9yZV9jb21tZW50cywg
JDEpIH0NCg0KCWVsc2lmICgkYmVmb3JlID1+IC9eaW50ZXJmYWNlIChcdysp
ID8kLykNCgl7IG5ld19iYXNlX2ludGVyZmFjZSAoJG5vZGUsIFxAYmVmb3Jl
X2NvbW1lbnRzLCAkMSwgJGluc2lkZV9zdGFydCwgJGluc2lkZV9sZW4pIH0N
CgkNCgllbHNpZiAoJGJlZm9yZSA9fiAvXmludGVyZmFjZSAoXHcrKSA/OiA/
KFxTKykgPyQvKQ0KCXsgbmV3X2Rlcml2ZWRfaW50ZXJmYWNlICgkbm9kZSwg
XEBiZWZvcmVfY29tbWVudHMsICQxLCAkMiwgJGluc2lkZV9zdGFydCwgJGlu
c2lkZV9sZW4pIH0NCgkNCgllbHNpZiAoJGJlZm9yZSA9fiAvXmludGVyZmFj
ZSAoXHcrKSA/OiA/KC4rLC4rKSA/JC8pDQoJeyBuZXdfbXVsdGlwbHlfZGVy
aXZlZF9pbnRlcmZhY2UgKCRub2RlLCBcQGJlZm9yZV9jb21tZW50cywgJDEs
ICQyLCAkaW5zaWRlX3N0YXJ0LCAkaW5zaWRlX2xlbikgfQ0KCQ0KCWVsc2lm
ICgkYmVmb3JlID1+IC9eYXR0cmlidXRlIChcdyspIChcdyspID8kLyAmJiAk
aW5zaWRlX2xlbj09MCkNCgl7IG5ld19hdHRyaWJ1dGUgKCRub2RlLCBcQGJl
Zm9yZV9jb21tZW50cywgJDEsICQyKSB9DQoNCgllbHNpZiAoJGJlZm9yZSA9
fiAvXnJlYWRvbmx5IGF0dHJpYnV0ZSAoXHcrKSAoXHcrKSA/JC8gJiYgJGlu
c2lkZV9sZW49PTApDQoJeyBuZXdfcmVhZG9ubHlfYXR0cmlidXRlICgkbm9k
ZSwgXEBiZWZvcmVfY29tbWVudHMsICQxLCAkMikgfQ0KDQoJZWxzaWYgKCRi
ZWZvcmUgPX4gL14oW15cKF0rPykgKFx3KykkLykNCgl7IG5ld19kYXRhX21l
bWJlciAoJG5vZGUsIFxAYmVmb3JlX2NvbW1lbnRzLCAkMSwgJDIpIH0NCgkN
CgllbHNpZiAoJGJlZm9yZSA9fiAvXihbXlwoXSspIChcdys/JGlkbF92aXJ0
dWFsX3N1ZmZpeCkoID9cKCkoW15cKV0qKVwpID8kLyAmJiAkaW5zaWRlX2xl
bj09MCkNCgl7IG5ld192aXJ0dWFsX21ldGhvZCAoJG5vZGUsIFxAYmVmb3Jl
X2NvbW1lbnRzLCAkMSwgJDIsICQzLCAkNCkgfQ0KCQ0KCWVsc2lmICgkYmVm
b3JlID1+IC9eKFteXChdKykgKFx3Kz8kaWRsX3ZpcnR1YWxfc3VmZml4KSgg
P1woKShbXlwpXSopXCkgP3JhaXNlcyA/XCgoW15cKV0rKVwpID8kLyAmJiAk
aW5zaWRlX2xlbj09MCkNCgl7IG5ld192aXJ0dWFsX21ldGhvZF9yYWlzZXMg
KCRub2RlLCBcQGJlZm9yZV9jb21tZW50cywgJDEsICQyLCAkMywgJDQsICQ1
KSB9DQoNCgllbHNpZiAoJGJlZm9yZSA9fiAvXihbXlwoXSspIChcdys/KSgg
P1woKShbXlwpXSopXCkgPyQvICYmICRpbnNpZGVfbGVuPT0wKQ0KCXsgbmV3
X21ldGhvZCAoJG5vZGUsIFxAYmVmb3JlX2NvbW1lbnRzLCAkMSwgJDIsICQz
LCAkNCkgfQ0KCQ0KCWVsc2lmICgkYmVmb3JlID1+IC9eKFteXChdKykgKFx3
Kz8pKCA/XCgpKFteXCldKilcKSA/cmFpc2VzID9cKChbXlwpXSspXCkgPyQv
ICYmICRpbnNpZGVfbGVuPT0wKQ0KCXsgbmV3X21ldGhvZF9yYWlzZXMgKCRu
b2RlLCBcQGJlZm9yZV9jb21tZW50cywgJDEsICQyLCAkMywgJDQsICQ1KSB9
DQoNCgllbHNlIHsgZGllICJDb25zdHJ1Y3QgdW5rbm93bjogJGJlZm9yZVxu
IiB9DQoNCglwcmludF9leHBvcnRlZF9kZWYgKCRub2RlLCBjYXRfZW5kYmxv
Y2tfY29tbWVudHMgKEAkbm9kZV9jb21tZW50X3JlZiBbJGluc2lkZV9lbmQg
Li4gJG5leHRfc3RhcnQgLSAxXSkpOw0KDQoJJCRub2Rle3RleHRfbGVufSAr
PSAkdGV4dF9zdGFydCAtICRuZXh0X3N0YXJ0Ow0KCSQkbm9kZXt0ZXh0X3N0
YXJ0fSA9ICRuZXh0X3N0YXJ0Ow0KICAgIH0NCn0NCg0KIyBuZXh0X2Jsb2Nr
IHBhcnNlcyB0aGUgZHVtYmFzcyBwcm9kdWN0aW9uIEJMT0NLIC0+IFNUQVRF
TUVOVDsNCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVEFURU1FTlQgeyBCTE9DSyB9Ow0KDQojIGN1cnJl
bnRseSBiYXJmcyBvbiAieyIgIn0iIG9yICI7IiBpbnNpZGUgc3RyaW5nIGxp
dGVyYWxzIC0gbGF6eQ0KDQpzdWIgbmV4dF9ibG9jayB7DQogICAgbXkgKCRu
b2RlKSA9IEBfOw0KICAgIG15ICRibG9ja19zdGFydCA9ICQkbm9kZXt0ZXh0
X3N0YXJ0fTsNCiAgICBteSAkYmxvY2tfbGVuID0gJCRub2Rle3RleHRfbGVu
fTsNCiAgICBteSAkYmxvY2sgPSBzdWJzdHIgKCQgeyQkbm9kZXt0ZXh0X3Jl
Zn19LCAkYmxvY2tfc3RhcnQsICRibG9ja19sZW4pOw0KIyAgICB3YXJuICJi
bG9jaz1cIiRibG9ja1wiXG4iOw0KDQogICAgbXkgKCRiZWZvcmVfc3RhcnQs
ICRiZWZvcmVfbGVuLCAkaW5zaWRlX3N0YXJ0LCAkaW5zaWRlX2xlbiwgJG5l
eHRfc3RhcnQpOw0KDQogICAgaWYgKCRibG9jayAhfiAvXFMvKSB7DQoNCgkk
YmVmb3JlX3N0YXJ0ID0gJGluc2lkZV9zdGFydCA9ICRuZXh0X3N0YXJ0ID0g
JGJsb2NrX3N0YXJ0ICsgJGJsb2NrX2xlbjsNCgkkYmVmb3JlX2xlbiA9ICRp
bnNpZGVfbGVuID0gMDsNCg0KICAgIH0gZWxzZSB7DQoJDQoJJGJsb2NrID1+
IC87fFx7L2cgb3IgY3JvYWsgIkNvdWxkbid0IGZpbmQgJ1x7JyBvciAnOycg
aW4gYmxvY2sgXCIkYmxvY2tcIiI7DQoJbXkgJHBvcyA9IHBvcyAkYmxvY2s7
DQoJDQoJJGJlZm9yZV9zdGFydCA9ICRibG9ja19zdGFydDsNCgkkYmVmb3Jl
X2xlbiA9ICRwb3MgLSAxOw0KCWlmICgkYmxvY2sgPX4gL14gLykgeyArKyRi
ZWZvcmVfc3RhcnQ7IC0tJGJlZm9yZV9sZW4gfQ0KCWlmICgkYmVmb3JlX2xl
biA8IDApIHsgJGJlZm9yZV9sZW4gPSAwIH0NCgkNCglpZiAoc3Vic3RyICgk
YmxvY2ssICRwb3MgLSAxLCAxKSBlcSAiOyIpIHsNCgkgICAgJGluc2lkZV9z
dGFydCA9ICRibG9ja19zdGFydCArICRwb3M7DQoJICAgICRpbnNpZGVfbGVu
ID0gMDsNCgl9IGVsc2UgeyAgICMgc3Vic3RyICgkYmxvY2ssICRwb3MtMSwg
MSkgZXEgInsiDQoJICAgIG15ICRuZXN0ID0gMTsNCgkgICAgbXkgJGVuZHBv
cyA9ICRwb3M7DQoJICAgIHdoaWxlICgkbmVzdCA+IDAgJiYgJGVuZHBvcyA8
ICRibG9ja19sZW4pIHsNCgkJcG9zKCRibG9jaykgPSAkZW5kcG9zOw0KCQkk
YmxvY2sgPX4gL3t8fS9nIG9yIGNyb2FrICJDb3VsZG4ndCBmaW5kIGNsb3Np
bmcgJ30nIGluIGJsb2NrIFwiJGJsb2NrXCIiOw0KCQkkZW5kcG9zID0gcG9z
ICRibG9jazsNCgkJJG5lc3QgKz0gc3Vic3RyKCRibG9jaywgJGVuZHBvcyAt
IDEsIDEpIGVxICJ7IiA/ICsxIDogLTE7DQoJICAgIH0NCgkgICAgJGluc2lk
ZV9zdGFydCA9ICRibG9ja19zdGFydCArICRwb3M7DQoJICAgICRpbnNpZGVf
bGVuID0gJGVuZHBvcyAtICRwb3MgLSAxOw0KCSAgICBpZiAoJGluc2lkZV9s
ZW4gPCAwKSB7ICRpbnNpZGVfbGVuID0gMCB9DQoJICAgIHBvcygkYmxvY2sp
ID0gJGVuZHBvczsNCgkgICAgJGJsb2NrID1+IC9cRyA/Oy9nIG9yIGNyb2Fr
ICJDb3VsZG4ndCBmaW5kIHRyYWlsaW5nICc7JyBpbiBibG9jayBcIiRibG9j
a1wiIjsNCgkgICAgJHBvcyA9IHBvcyAkYmxvY2s7DQoJfQ0KCXBvcygkYmxv
Y2spID0gJHBvczsNCglpZiAoJGJsb2NrID1+IC9cRyA/L2cpIHsgJHBvcyA9
IHBvcyAkYmxvY2sgfQ0KCSRuZXh0X3N0YXJ0ID0gJGJsb2NrX3N0YXJ0ICsg
JHBvczsNCiAgICB9DQoNCiAgICAoJGJlZm9yZV9zdGFydCwgJGJlZm9yZV9s
ZW4sICRpbnNpZGVfc3RhcnQsICRpbnNpZGVfbGVuLCAkbmV4dF9zdGFydCk7
DQp9DQoNCiMgSURMIHRvIEMgbWFwcGluZw0KDQpzdWIgbmV3X21vZHVsZSB7
DQogICAgbXkgKCRub2RlLCAkYmVmb3JlX2NvbW1lbnRzX3JlZiwgJGlkbF9t
b2R1bGVfbmFtZSwgJGRlZl9zdGFydCwgJGRlZl9sZW4pID0gQF87DQogICAg
bXkgJGNfcHJlZml4ID0gY19tb2R1bGVfcHJlZml4KCRub2RlLCAkaWRsX21v
ZHVsZV9uYW1lKTsNCiAgICByZXBvcnQgKCRub2RlLCAibW9kdWxlICRpZGxf
bW9kdWxlX25hbWUiLCAiKG5hbWVzcGFjZSkgJGNfcHJlZml4Iik7DQoNCiAg
ICBteSAkY2hpbGRfbm9kZSA9IG5ld19jaGlsZF9ub2RlICgkbm9kZSwgIm1v
ZHVsZSIsICRpZGxfbW9kdWxlX25hbWUsICRkZWZfc3RhcnQsICRkZWZfbGVu
KTsNCg0KICAgIGNvbW1lbnRfZXhwb3J0ZWRfZGVmICgkbm9kZSwgIk1vZHVs
ZSIsICRpZGxfbW9kdWxlX25hbWUpOw0KDQogICAgcGFyc2VfYW5kX2RpZSAo
JGNoaWxkX25vZGUpOw0KfQ0KDQpzdWIgbmV3X2NvbnN0IHsNCiAgICBteSAo
JG5vZGUsICRiZWZvcmVfY29tbWVudHNfcmVmLCAkaWRsX3R5cGUsICRpZGxf
Y29uc3RfZXhwcikgPSBAXzsNCiAgICBteSAkY190eXBlID0gY190eXBlKCRu
b2RlLCAkaWRsX3R5cGUpOw0KICAgIA0KICAgIHByaW50X2V4cG9ydGVkX2Rl
ZiAoJG5vZGUsDQoJCQkiY29uc3QgJGNfdHlwZSAkaWRsX2NvbnN0X2V4cHI7
XG4iKTsNCn0NCg0Kc3ViIG5ld19zdHJ1Y3Qgew0KICAgIG15ICgkbm9kZSwg
JGJlZm9yZV9jb21tZW50c19yZWYsICRpZGxfc3RydWN0LCAkZGVmX3N0YXJ0
LCAkZGVmX2xlbikgPSBAXzsNCiAgICBjaGVja19yZXNlcnZlZCAoJGlkbF9z
dHJ1Y3QpOw0KICAgIG15ICRjX3R5cGUgPSBjX3R5cGUoJG5vZGUsICRpZGxf
c3RydWN0KTsNCiAgICBteSAkY19zdHJ1Y3QgPSBjX3N0cnVjdCgkbm9kZSwg
JGlkbF9zdHJ1Y3QpOw0KICAgIHJlcG9ydCAoJG5vZGUsICJzdHJ1Y3QgJGlk
bF9zdHJ1Y3QiLCAidHlwZWRlZiBzdHJ1Y3QgJGNfc3RydWN0IHsgLi4uIH0g
JGNfdHlwZSIpOw0KICAgIG5ld190eXBlICgkbm9kZSwgJGlkbF9zdHJ1Y3Qs
ICRjX3R5cGUpOw0KDQogICAgbXkgJGNoaWxkX25vZGUgPSBuZXdfY2hpbGRf
bm9kZSAoJG5vZGUsICJzdHJ1Y3QiLCAkaWRsX3N0cnVjdCwgJGRlZl9zdGFy
dCwgJGRlZl9sZW4pOw0KICAgIG15ICRjX2NoaWxkX29iamVjdF9uYW1lID0g
Y19vYmplY3RfbmFtZSAoJGNoaWxkX25vZGUpOw0KDQogICAgY29tbWVudF9l
eHBvcnRlZF9kZWYgKCRub2RlLCAkRXVjbGlkIC4gIlN0cnVjdCBkZWZpbml0
aW9ucyBmb3IiLCAkaWRsX3N0cnVjdCk7DQoNCiAgICBwcmludF9leHBvcnRl
ZF9kZWYgKCRub2RlLA0KCQkJIi8qIFN0YXJ0IG9mICRpZGxfc3RydWN0IHN0
cnVjdCBkZWZpbml0aW9ucyAqL1xuIiwNCgkJCSJcbiIsDQoJCQkiLyogRXhj
ZXB0aW9ucyAqL1xuIiwNCgkJCSJcbiIsDQoJCQljX2NvbnN0X2V4Y2VwdGlv
bl9hdXRvX2RlY2wgKCRub2RlLCAkaWRsX3N0cnVjdCwgJGNfbWVtb3J5X2V4
Y2VwdGlvbikgLiAiICAgIC8qIHJhaXNlZCBieSAkY19jYWxsb2NfbWV0aG9k
IGFuZCAkY19tYWxsb2NfbWV0aG9kICovXG4iLA0KCQkJIlxuIiwNCgkJCSIv
KiBUaGUgJGlkbF9zdHJ1Y3Qgc3RydWN0IGl0c2VsZiAqL1xuIiwNCgkJCSJc
biIsDQoJCQkidHlwZWRlZiBzdHJ1Y3QgJGNfc3RydWN0IHsiLA0KCQkJY2F0
X2VvbF9jb21tZW50cyAoQCRiZWZvcmVfY29tbWVudHNfcmVmKSk7DQogICAg
DQogICAgY29tbWVudF9wcml2YXRlX21hY3JvICgkY2hpbGRfbm9kZSwgIlBy
aXZhdGUgbWFjcm9zIGZvciIsICRpZGxfc3RydWN0KTsNCg0KICAgIHByaW50
X3ByaXZhdGVfbWFjcm8gKCRjaGlsZF9ub2RlLA0KCQkJICIjZGVmaW5lICRj
X3R5cGVcXyRjX3JhaXNlX21ldGhvZCgkY19jaGlsZF9vYmplY3RfbmFtZSxF
KSAkY19leGNlcHRpb25fbWFjcm8gKCRjX2NoaWxkX29iamVjdF9uYW1lLCBF
KVxuIiwNCgkJCSAiXG4iKTsNCg0KICAgIGNvbW1lbnRfbWlzY19mdW5jICgk
Y2hpbGRfbm9kZSwgJEV1Y2xpZCAuICJTdHJ1Y3QgY29kZSBmb3IiLCAkaWRs
X3N0cnVjdCk7DQoNCiAgICBwcmludF9taXNjX2Z1bmMgKCRjaGlsZF9ub2Rl
LA0KCQkgICAgICIkY190eXBlKiAkY190eXBlXF8kY19jYWxsb2NfbWV0aG9k
KClcbiIsDQoJCSAgICAgIntcbiIsDQoJCSAgICAgIiAgJGNfdHlwZSogcmVz
dWx0O1xuIiwNCgkJICAgICAiICByZXN1bHQgPSAkY19jYWxsb2NfZnVuYyAo
c2l6ZW9mICgkY19zdHJ1Y3QpKTtcbiIsDQoJCSAgICAgIiAgaWYgKHJlc3Vs
dCA9PSAwKSAkY190eXBlXF8kY19yYWlzZV9tZXRob2QgKDAsICRjX3R5cGVc
XyRjX21lbW9yeV9leGNlcHRpb24pO1xuIiwNCgkJICAgICAiICByZXR1cm4g
cmVzdWx0O1xuIiwNCgkJICAgICAifVxuIiwNCgkJICAgICAiXG4iLA0KCQkg
ICAgICIkY190eXBlKiAkY190eXBlXF8kY19tYWxsb2NfbWV0aG9kKClcbiIs
DQoJCSAgICAgIntcbiIsDQoJCSAgICAgIiAgJGNfdHlwZSogcmVzdWx0O1xu
IiwNCgkJICAgICAiICByZXN1bHQgPSAkY19tYWxsb2NfZnVuYyAoc2l6ZW9m
ICgkY19zdHJ1Y3QpKTtcbiIsDQoJCSAgICAgIiAgaWYgKHJlc3VsdCA9PSAw
KSAkY190eXBlXF8kY19yYWlzZV9tZXRob2QgKDAsICRjX3R5cGVcXyRjX21l
bW9yeV9leGNlcHRpb24pO1xuIiwNCgkJICAgICAiICByZXR1cm4gcmVzdWx0
O1xuIiwNCgkJICAgICAifVxuIiwNCgkJICAgICAiXG4iKTsNCg0KICAgIHBy
aW50X3JlZl9mdW5jICgkY2hpbGRfbm9kZSwNCgkJICAgICJ2b2lkICRjX3R5
cGVcXyRjX3JlZl9tZXRob2RcXyRjX3B0cl9zdWZmaXggKCRjX3R5cGUqICRj
X2NoaWxkX29iamVjdF9uYW1lKVxuIiwNCgkJICAgICJ7XG4iKTsNCg0KICAg
IHByaW50X3JlZl9mdW5jX3RhaWwgKCRjaGlsZF9ub2RlLA0KCQkJICJ9XG4i
LA0KCQkJICJcbiIpOw0KDQogICAgcHJpbnRfdW5yZWZfZnVuYyAoJGNoaWxk
X25vZGUsDQoJCSAgICAgICJ2b2lkICRjX3R5cGVcXyRjX3VucmVmX21ldGhv
ZFxfJGNfcHRyX3N1ZmZpeCAoJGNfdHlwZSogJGNfY2hpbGRfb2JqZWN0X25h
bWUpXG4iLA0KCQkgICAgICAie1xuIik7DQogICAgDQogICAgcHJpbnRfdW5y
ZWZfZnVuY190YWlsICgkY2hpbGRfbm9kZSwNCgkJCSAgICJ9XG4iLA0KCQkJ
ICAgIlxuIik7DQoNCiAgICBwcmludF9kdW1wX2Z1bmMgKCRjaGlsZF9ub2Rl
LA0KCQkgICAgICJ2b2lkICRjX3R5cGVcXyRjX2R1bXBfbWV0aG9kXF8kY19w
dHJfc3VmZml4ICgkY190eXBlKiAkY19jaGlsZF9vYmplY3RfbmFtZVxfJGNf
cHRyX3N1ZmZpeCwgJGNfZmlsZV90eXBlICRjX2ZwX3ZhcilcbiIsDQoJCSAg
ICAgIntcbiIsDQoJCSAgICAgIiAgJGNfZnByaW50Zl9mdW5jICgkY19mcF92
YXIsIFwiIiAuIGlkbF9xdWFsaWZpZWRfdHlwZV9uYW1lICgkY2hpbGRfbm9k
ZSkgLiAiIGR1bXA6XFxuXCIpO1xuIiwNCgkJICAgICAiXG4iKTsNCiAgICAN
CiAgICBwcmludF9kdW1wX2Z1bmNfdGFpbCAoJGNoaWxkX25vZGUsDQoJCQkg
ICJ9XG4iLA0KCQkJICAiXG4iKTsNCiAgICANCiAgICBwYXJzZV9hbmRfZGll
ICgkY2hpbGRfbm9kZSk7DQoNCiAgICBwcmludF9leHBvcnRlZF9kZWYgKCRu
b2RlLA0KCQkJIn0gJGNfdHlwZTtcbiIsDQoJCQkiXG4iLA0KCQkJIi8qICRF
dWNsaWQiLiJTdHJ1Y3QgaGVscGVyIGZ1bmN0aW9ucyBmb3IgJGlkbF9zdHJ1
Y3QgKi9cbiIsDQoJCQkiXG4iLA0KCQkJIiRjX3R5cGUqICRjX3R5cGVcXyRj
X2NhbGxvY19tZXRob2QoKTsgICAgICAgICAgIC8qIGNhbGxvYyB3aXRoIGJ1
aWx0aW4gc2l6ZW9mIChwcmVmZXJyZWQgYWxsb2NhdG9yKSAqL1xuIiwNCgkJ
CSIkY190eXBlKiAkY190eXBlXF8kY19tYWxsb2NfbWV0aG9kKCk7ICAgICAg
ICAgICAvKiBtYWxsb2MgKi9cbiIsDQoJCQkiXG4iLA0KCQkJInZvaWQgJGNf
dHlwZVxfJGNfcmVmX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCAgICgkY190eXBl
Kik7ICAgICAgICAvKiBpbmMgcmVmIGNvdW50IG9mIGNvbnRlbnRzICovXG4i
LA0KCQkJInZvaWQgJGNfdHlwZVxfJGNfdW5yZWZfbWV0aG9kXF8kY19wdHJf
c3VmZml4ICgkY190eXBlKik7ICAgICAgICAvKiBkZWMgcmVmIGNvdW50IG9m
IGNvbnRlbnRzICovXG4iLA0KCQkJInZvaWQgJGNfdHlwZVxfJGNfZHVtcF9t
ZXRob2RcXyRjX3B0cl9zdWZmaXggICgkY190eXBlKiwgJGNfZmlsZV90eXBl
KTsgLyogZHVtcCBjb250ZW50cyB0byBmaWxlICovXG4iLA0KCQkJIlxuIiwN
CgkJCSIvKiBFbmQgb2YgJGlkbF9zdHJ1Y3QgZGVmaW5pdGlvbnMgKi9cbiIs
DQoJCQkiXG4iKTsNCn0NCg0Kc3ViIG5ld190eXBlZGVmX3NlcXVlbmNlIHsN
CiAgICBteSAoJG5vZGUsICRiZWZvcmVfY29tbWVudHNfcmVmLCAkaWRsX2Vs
ZW1lbnRfdHlwZSwgJGlkbF9zZXF1ZW5jZV90eXBlKSA9IEBfOw0KICAgIGNo
ZWNrX3Jlc2VydmVkICgkaWRsX3NlcXVlbmNlX3R5cGUpOw0KICAgIG15ICRj
X2VsZW1lbnRfdHlwZSA9IGZpbmRfc2NvcGVfYW5kX2dldF9jX3R5cGUgKCRu
b2RlLCAkaWRsX2VsZW1lbnRfdHlwZSk7DQogICAgbXkgJGNfc2VxdWVuY2Vf
dHlwZSA9IGNfdHlwZSgkbm9kZSwgJGlkbF9zZXF1ZW5jZV90eXBlKTsNCiAg
ICBteSAkY19vYmplY3RfbmFtZSA9IG1ha2VfY19vYmplY3RfbmFtZSgkaWRs
X3NlcXVlbmNlX3R5cGUpOw0KICAgIG15ICRjX3B0cl9uYW1lID0gIiRjX29i
amVjdF9uYW1lXF8kY19wdHJfc3VmZml4IjsNCiAgICBteSAkY19zdHJ1Y3Qg
PSBjX3N0cnVjdCgkbm9kZSwgJGlkbF9zZXF1ZW5jZV90eXBlKTsNCg0KICAg
IHJlcG9ydCAoJG5vZGUsICJ0eXBlZGVmIHNlcXVlbmNlPCRpZGxfZWxlbWVu
dF90eXBlPiAkaWRsX3NlcXVlbmNlX3R5cGUiLCAiKGxpc3Qgb2JqZWN0KSAk
Y19zZXF1ZW5jZV90eXBlIik7DQoNCiAgICBuZXdfdHlwZSAoJG5vZGUsICRp
ZGxfc2VxdWVuY2VfdHlwZSwgJGNfc2VxdWVuY2VfdHlwZSk7DQoNCiAgICBj
b21tZW50X2V4cG9ydGVkX2RlZiAoJG5vZGUsICRFdWNsaWQgLiAiTGlzdDwk
aWRsX2VsZW1lbnRfdHlwZT4gZGVmaW5pdGlvbnMgZm9yIiwgJGlkbF9zZXF1
ZW5jZV90eXBlKTsNCg0KICAgIHByaW50X2V4cG9ydGVkX2RlZiAoJG5vZGUs
DQoJCQkiLyogU3RhcnQgb2YgJGlkbF9zZXF1ZW5jZV90eXBlIGRlZmluaXRp
b25zICovXG4iLA0KCQkJIlxuIiwNCgkJCSJ0eXBlZGVmIHN0cnVjdCAkY19z
dHJ1Y3QqICRjX3NlcXVlbmNlX3R5cGU7ICAgICAvKiAkaWRsX3NlcXVlbmNl
X3R5cGUgb2JqZWN0ICovIiwNCgkJCWNhdF9lb2xfY29tbWVudHMgKEAkYmVm
b3JlX2NvbW1lbnRzX3JlZiksDQoJCQkiXG4iLA0KCQkJIi8qIEV4Y2VwdGlv
bnMgKi9cbiIsDQoJCQkiXG4iLA0KCQkJbWFwIChjX2NvbnN0X2V4Y2VwdGlv
bl9hdXRvX2RlY2wgKCRub2RlLCAkaWRsX3NlcXVlbmNlX3R5cGUsICRfKSAu
ICJcbiIsIEBjX3NlcXVlbmNlX2V4Y2VwdGlvbnMpLA0KCQkJIlxuIiwNCgkJ
CSIvKiBUeXBlc2FmZSBjb21wYXJlIGZ1bmN0aW9uOiByZXR1cm5zIHNnbihh
LWIpLCBpLmUuIC0xIGlmIGE8YiwgMCBpZiBhPT1iLCArMSBpZiBhPmIgKi9c
biIsDQoJCQkiXG4iLA0KCQkJInR5cGVkZWYgaW50ICgqJGNfc2VxdWVuY2Vf
dHlwZVxfJGNfc2VxdWVuY2VfY21wKSAoJGNfZWxlbWVudF90eXBlLCAkY19l
bGVtZW50X3R5cGUpO1xuIiwNCgkJCSJcbiIsDQoJCQkiLyogJEV1Y2xpZCIu
Ik9iamVjdCBtZXRob2RzICovXG4iLA0KCQkJIlxuIiwNCgkJCSJ2b2lkICRj
X3NlcXVlbmNlX3R5cGVcXyRjX3JlZl9tZXRob2QgICAoJGNfc2VxdWVuY2Vf
dHlwZSk7ICAgICAgICAgLyogaW5jIHJlZiBjb3VudHMgb2YgbGlzdCBlbGVt
ZW50cyAqL1xuIiwNCgkJCSJ2b2lkICRjX3NlcXVlbmNlX3R5cGVcXyRjX3Vu
cmVmX21ldGhvZCAoJGNfc2VxdWVuY2VfdHlwZSk7ICAgICAgICAgLyogZGVj
IHJlZiBjb3VudHMgJiBmcmVlICovXG4iLA0KCQkJInZvaWQgJGNfc2VxdWVu
Y2VfdHlwZVxfJGNfZHVtcF9tZXRob2QgICgkY19zZXF1ZW5jZV90eXBlLCAk
Y19maWxlX3R5cGUpOyAgLyogZHVtcCBlbGVtZW50cyB0byBmaWxlICovXG4i
LA0KCQkJIlxuIiwNCgkJCSIvKiAkRXVjbGlkIi4iTGlzdCBtZXRob2RzXG4i
LA0KCQkJIiAqXG4iLA0KCQkJIiAqIERlZmF1bHQgJiBjb3B5IGNvbnN0cnVj
dG9ycyAqL1xuIiwNCgkJCSJcbiIsDQoJCQkiJGNfc2VxdWVuY2VfdHlwZSAk
Y19zZXF1ZW5jZV90eXBlXF8kY19zZXF1ZW5jZV9uZXcoKTtcbiIsDQoJCQki
JGNfc2VxdWVuY2VfdHlwZSAkY19zZXF1ZW5jZV90eXBlXF8kY19zZXF1ZW5j
ZV9jb3B5ICgkY19zZXF1ZW5jZV90eXBlKTsgIC8qIGNhbGxzIHJlZiAqL1xu
IiwNCgkJCSJcbiIsDQoJCQkiLyogc2l6ZSBtZXRob2QgKi9cbiIsDQoJCQki
XG4iLA0KCQkJInVuc2lnbmVkIGxvbmcgJGNfc2VxdWVuY2VfdHlwZVxfJGNf
c2VxdWVuY2Vfc2l6ZSAoJGNfc2VxdWVuY2VfdHlwZSk7XG4iLA0KCQkJIlxu
IiwNCgkJCSIvKiBnZXQgJiBzZXQgbWV0aG9kcyBtYXkgcmFpc2UgJGNfc2Vx
dWVuY2VfaW5kZXhfZXhjZXB0aW9uICovXG4iLA0KCQkJIlxuIiwNCgkJCSIk
Y19lbGVtZW50X3R5cGUgJGNfc2VxdWVuY2VfdHlwZVxfJGNfc2VxdWVuY2Vf
Z2V0ICgkY19zZXF1ZW5jZV90eXBlLCB1bnNpZ25lZCBsb25nKTtcbiIsDQoJ
CQkidm9pZCAkY19zZXF1ZW5jZV90eXBlXF8kY19zZXF1ZW5jZV9zZXQgKCRj
X3NlcXVlbmNlX3R5cGUsIHVuc2lnbmVkIGxvbmcsICRjX2VsZW1lbnRfdHlw
ZSk7XG4iLA0KCQkJIlxuIiwNCgkJCSIvKiBHZW5lcmFsIGxpc3QgbWV0aG9k
cyAqL1xuIiwNCgkJCSJcbiIsDQoJCQkidm9pZCAkY19zZXF1ZW5jZV90eXBl
XF8kY19zZXF1ZW5jZV9jbGVhciAgICAgICAoJGNfc2VxdWVuY2VfdHlwZSk7
XG4iLA0KCQkJInZvaWQgJGNfc2VxdWVuY2VfdHlwZVxfJGNfc2VxdWVuY2Vf
YXBwZW5kICAgICAgKCRjX3NlcXVlbmNlX3R5cGUsICRjX2VsZW1lbnRfdHlw
ZSk7XG4iLA0KCQkJInZvaWQgJGNfc2VxdWVuY2VfdHlwZVxfJGNfc2VxdWVu
Y2VfYXBwZW5kX2xpc3QgKCRjX3NlcXVlbmNlX3R5cGUsICRjX3NlcXVlbmNl
X3R5cGUpO1xuIiwNCgkJCSJ2b2lkICRjX3NlcXVlbmNlX3R5cGVcXyRjX3Nl
cXVlbmNlX3NvcnQgICAgICAgICgkY19zZXF1ZW5jZV90eXBlKTtcbiIsDQoJ
CQkidm9pZCAkY19zZXF1ZW5jZV90eXBlXF8kY19zZXF1ZW5jZV9zb3J0X3Vu
aXF1ZSAoJGNfc2VxdWVuY2VfdHlwZSk7XG4iLA0KCQkJIlxuIiwNCgkJCSIv
KiBTb3J0IGFzc2VydCBtZXRob2RzIC0gdGhlc2UgcmFpc2UgJGNfc2VxdWVu
Y2VfYXNzZXJ0X2V4Y2VwdGlvbiAqL1xuIiwNCgkJCSJcbiIsDQoJCQkidm9p
ZCAkY19zZXF1ZW5jZV90eXBlXF8kY19zZXF1ZW5jZV9hc3NlcnRfc29ydGVk
ICAgICAgICAoJGNfc2VxdWVuY2VfdHlwZSk7XG4iLA0KCQkJInZvaWQgJGNf
c2VxdWVuY2VfdHlwZVxfJGNfc2VxdWVuY2VfYXNzZXJ0X3VuaXF1ZSAgICAg
ICAgKCRjX3NlcXVlbmNlX3R5cGUpO1xuIiwNCgkJCSJ2b2lkICRjX3NlcXVl
bmNlX3R5cGVcXyRjX3NlcXVlbmNlX2Fzc2VydF9zb3J0ZWRfdW5pcXVlICgk
Y19zZXF1ZW5jZV90eXBlKTtcbiIsDQoJCQkiXG4iLA0KCQkJIi8qIE1vcmUg
JEV1Y2xpZCIuIkxpc3QgbWV0aG9kcyBoZXJlLi4uIGVnIGluc2VydF9zb3J0
ZWQsIGZpbmRfc29ydGVkLi4uICovXG4iLA0KCQkJIlxuIiwNCgkJCSIvKiBF
bmQgb2YgJGlkbF9zZXF1ZW5jZV90eXBlIGRlZmluaXRpb25zICovXG4iLA0K
CQkJIlxuIik7DQogICAgDQogICAgY29tbWVudF9leGFtcGxlX3Byb3RvdHlw
ZSAoJG5vZGUsICJFeGFtcGxlIHByb3RvdHlwZSBmb3IgY29tcGFyaW5nIHR3
byAkaWRsX2VsZW1lbnRfdHlwZVxzIGluIiwgJGlkbF9zZXF1ZW5jZV90eXBl
KTsNCg0KICAgIHByaW50X2V4YW1wbGVfcHJvdG90eXBlICgkbm9kZSwNCgkJ
CSAgImludCAkY19zZXF1ZW5jZV90eXBlXF8kY19zZXF1ZW5jZV9jbXBcXyRj
X2RlZmF1bHRfc3VmZml4ICgkY19lbGVtZW50X3R5cGUgYSwgJGNfZWxlbWVu
dF90eXBlIGIpOyAgIC8qIHJldHVybnMgc2lnbiBvZiBhLWIgKi9cbiIpOw0K
DQogICAgY29tbWVudF9wdWJsaWNfbWFjcm8gKCRub2RlLCAiUHVibGljIG1h
Y3JvcyBmb3IiLCAkaWRsX3NlcXVlbmNlX3R5cGUpOw0KDQogICAgcHJpbnRf
cHVibGljX21hY3JvICgkbm9kZSwNCgkJCSIvKiBOb3QgaW1wbGVtZW50ZWQg
eWV0ICovXG4iLA0KCQkJIlxuIik7DQoNCiAgICBjb21tZW50X3NlcXVlbmNl
X3Byb3RvdHlwZSAoJG5vZGUsICJQcm90ZWN0ZWQgZGVmaW5pdGlvbnMgZm9y
IiwgJGlkbF9zZXF1ZW5jZV90eXBlKTsNCg0KICAgIHByaW50X3NlcXVlbmNl
X3Byb3RvdHlwZSAoJG5vZGUsDQoJCQkgICAgICAiLyogTm90IGltcGxlbWVu
dGVkIHlldCAqL1xuIiwNCgkJCSAgICAgICJcbiIpOw0KDQogICAgY29tbWVu
dF9wcml2YXRlX21hY3JvICgkbm9kZSwgIlByaXZhdGUgbWFjcm9zIGZvciIs
ICRpZGxfc2VxdWVuY2VfdHlwZSk7DQogICAgDQogICAgcHJpbnRfcHJpdmF0
ZV9tYWNybyAoJG5vZGUsDQoJCQkgIiNkZWZpbmUgJGNfc2VxdWVuY2VfdHlw
ZVxfJGNfcmVmX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCgkY19wdHJfbmFtZSkg
JGNfc2VxdWVuY2VfdHlwZVxfJGNfcmVmX21ldGhvZCAoKiRjX3B0cl9uYW1l
KVxuIiwNCgkJCSAiI2RlZmluZSAkY19zZXF1ZW5jZV90eXBlXF8kY191bnJl
Zl9tZXRob2RcXyRjX3B0cl9zdWZmaXgoJGNfcHRyX25hbWUpICRjX3NlcXVl
bmNlX3R5cGVcXyRjX3VucmVmX21ldGhvZCAoKiRjX3B0cl9uYW1lKVxuIiwN
CgkJCSAiI2RlZmluZSAkY19zZXF1ZW5jZV90eXBlXF8kY19kdW1wX21ldGhv
ZFxfJGNfcHRyX3N1ZmZpeCgkY19wdHJfbmFtZSwkY19mcF92YXIpICRjX3Nl
cXVlbmNlX3R5cGVcXyRjX2R1bXBfbWV0aG9kICgqJGNfcHRyX25hbWUsICRj
X2ZwX3ZhcilcbiIsDQoJCQkgIlxuIiwNCgkJCSAiI2RlZmluZSAkY19zZXF1
ZW5jZV90eXBlXF8kY19yYWlzZV9tZXRob2QoJGNfb2JqZWN0X25hbWUsRSkg
JGNfZXhjZXB0aW9uX21hY3JvICgkY19vYmplY3RfbmFtZSwgRSlcbiIsDQoJ
CQkgIlxuIik7DQoNCiAgICBjb21tZW50X3ByaXZhdGVfcHJvdG90eXBlICgk
bm9kZSwgIlByaXZhdGUgcHJvdG90eXBlcyBmb3IiLCAkaWRsX3NlcXVlbmNl
X3R5cGUpOw0KICAgIA0KICAgIHByaW50X3ByaXZhdGVfcHJvdG90eXBlICgk
bm9kZSwNCgkJCSAgICAgIiRjX3NlcXVlbmNlX3R5cGUgJGNfc2VxdWVuY2Vf
dHlwZVxfJGNfY2FsbG9jX21ldGhvZCgpOyAgIC8qIGNhbGxvYyB3aXRoIGJ1
aWx0aW4gc2l6ZW9mIChwcmVmZXJyZWQgYWxsb2NhdG9yKSAqL1xuIiwNCgkJ
CSAgICAgIiRjX3NlcXVlbmNlX3R5cGUgJGNfc2VxdWVuY2VfdHlwZVxfJGNf
bWFsbG9jX21ldGhvZCgpOyAgIC8qIG1hbGxvYyAqL1xuIiwNCgkJCSAgICAg
IlxuIik7DQoNCg0KICAgIGNvbW1lbnRfcHJpdmF0ZV9zdHJ1Y3QgKCRub2Rl
LCAiUHJpdmF0ZSBzdHJ1Y3R1cmVzIGZvciIsICRpZGxfc2VxdWVuY2VfdHlw
ZSk7DQoNCiAgICBwcmludF9wcml2YXRlX3N0cnVjdCAoJG5vZGUsDQoJCQki
LyogTm90IGltcGxlbWVudGVkIHlldCAqL1xuIiwNCgkJCSJcbiIpOw0KDQog
ICAgY29tbWVudF9taXNjX2Z1bmMgKCRjaGlsZF9ub2RlLCAkRXVjbGlkIC4g
Ik9iamVjdCBjb2RlIGZvciIsICRpZGxfc2VxdWVuY2VfdHlwZSk7DQoNCiAg
ICBwcmludF9taXNjX2Z1bmMgKCRjaGlsZF9ub2RlLA0KCQkgICAgICIvKiBO
b3QgaW1wbGVtZW50ZWQgeWV0ICovXG4iLA0KCQkgICAgICJcbiIpOw0KDQoN
CiAgICBjb21tZW50X3NlcXVlbmNlX2Z1bmMgKCRjaGlsZF9ub2RlLCAkRXVj
bGlkIC4gIkxpc3QgY29kZSBmb3IiLCAkaWRsX3NlcXVlbmNlX3R5cGUpOw0K
DQogICAgcHJpbnRfc2VxdWVuY2VfZnVuYyAoJGNoaWxkX25vZGUsDQoJCQkg
Ii8qIE5vdCBpbXBsZW1lbnRlZCB5ZXQgKi9cbiIsDQoJCQkgIlxuIik7DQoN
Cg0KICAgIGNvbW1lbnRfZXhhbXBsZV9mdW5jICgkbm9kZSwgIkV4YW1wbGUg
Y29kZSBmb3IgY29tcGFyaW5nIHR3byAkaWRsX2VsZW1lbnRfdHlwZVxzIGlu
IiwgJGlkbF9zZXF1ZW5jZV90eXBlKTsNCg0KICAgIHByaW50X2V4YW1wbGVf
ZnVuYyAoJG5vZGUsDQoJCQkiaW50ICRjX3NlcXVlbmNlX3R5cGVcXyRjX3Nl
cXVlbmNlX2NtcFxfJGNfZGVmYXVsdF9zdWZmaXggKCRjX2VsZW1lbnRfdHlw
ZSBhLCAkY19lbGVtZW50X3R5cGUgYilcbiIsDQoJCQkie1xuIiwNCgkJCSIg
ICRjX3NlcXVlbmNlX3R5cGVcXyRjX3JhaXNlX21ldGhvZCAoMCwgJGNfc2Vx
dWVuY2VfdHlwZVxfJGNfdW5pbXBsZW1lbnRlZF9leGNlcHRpb24pO1xuIiwN
CgkJCSIgIHJldHVybiAwO1xuIiwNCgkJCSJ9XG4iLA0KCQkJIlxuIik7DQp9
DQoNCnN1YiBuZXdfdHlwZWRlZiB7DQogICAgbXkgKCRub2RlLCAkYmVmb3Jl
X2NvbW1lbnRzX3JlZiwgJGlkbF9vbGRfdHlwZSwgJGlkbF9uZXdfdHlwZSkg
PSBAXzsNCiAgICBjaGVja19yZXNlcnZlZCAoJGlkbF9uZXdfdHlwZSk7DQoN
CiAgICBpZiAoZXhpc3RzICRjX3R5cGVkZWZ7JGlkbF9uZXdfdHlwZX0pIHsN
Cg0KCXJlcG9ydCAoJG5vZGUsICJ0eXBlZGVmICRpZGxfb2xkX3R5cGUgJGlk
bF9uZXdfdHlwZSIsICIoaW5pdGlhbCB0eXBlZGVmIGhhcyBwcmVjZWRlbmNl
KSIpOw0KDQogICAgfSBlbHNlIHsNCg0KCW15ICRjX29sZF90eXBlID0gZmlu
ZF9zY29wZV9hbmRfZ2V0X2NfdHlwZSAoJG5vZGUsICRpZGxfb2xkX3R5cGUp
Ow0KCW15ICRjX25ld190eXBlID0gY190eXBlKCRub2RlLCAkaWRsX25ld190
eXBlKTsNCglteSAkY19wdHJfbmFtZSA9IG1ha2VfY19vYmplY3RfbmFtZSAo
JGlkbF9uZXdfdHlwZSkgLiAiXyRjX3B0cl9zdWZmaXgiOw0KCW15ICRpc19i
YXNpY190eXBlID0gaXNfYmFzaWNfdHlwZSAoJGlkbF9vbGRfdHlwZSk7DQoJ
bXkgJGJhc2ljX3R5cGVfcHJpbnRmID0gJGlzX2Jhc2ljX3R5cGUgPyBiYXNp
Y190eXBlX3ByaW50ZiAoJGlkbF9vbGRfdHlwZSkgOiB1bmRlZjsNCg0KCXJl
cG9ydCAoJG5vZGUsICJ0eXBlZGVmICRpZGxfb2xkX3R5cGUgJGlkbF9uZXdf
dHlwZSIsICJ0eXBlZGVmICRjX29sZF90eXBlICRjX25ld190eXBlIik7DQoJ
bmV3X3R5cGUgKCRub2RlLCAkaWRsX25ld190eXBlLCAkY19uZXdfdHlwZSk7
DQoNCgljb21tZW50X2V4cG9ydGVkX2RlZiAoJG5vZGUsICJUeXBlZGVmICRp
ZGxfb2xkX3R5cGUiLCAkaWRsX25ld190eXBlKTsNCg0KCXByaW50X2V4cG9y
dGVkX2RlZiAoJG5vZGUsDQoJCQkgICAgInR5cGVkZWYgJGNfb2xkX3R5cGUg
JGNfbmV3X3R5cGU7IiwNCgkJCSAgICBjYXRfZW9sX2NvbW1lbnRzIChAJGJl
Zm9yZV9jb21tZW50c19yZWYpLA0KCQkJICAgICJcbiIpOw0KCQ0KCWNvbW1l
bnRfcHVibGljX21hY3JvICgkbm9kZSwgIlB1YmxpYyBtYWNyb3MgZm9yIiwg
JGlkbF9uZXdfdHlwZSk7DQoJDQoJcHJpbnRfcHVibGljX21hY3JvICgkbm9k
ZSwNCgkJCSAgICAoJGlzX2Jhc2ljX3R5cGUNCgkJCSAgICAgPw0KCQkJICAg
ICAiI2RlZmluZSAkY19uZXdfdHlwZVxfJGNfcmVmX21ldGhvZFxfJGNfcHRy
X3N1ZmZpeCgkY19wdHJfbmFtZSlcbiIgLg0KCQkJICAgICAiI2RlZmluZSAk
Y19uZXdfdHlwZVxfJGNfdW5yZWZfbWV0aG9kXF8kY19wdHJfc3VmZml4KCRj
X3B0cl9uYW1lKVxuIiAuDQoJCQkgICAgICIjZGVmaW5lICRjX25ld190eXBl
XF8kY19kdW1wX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCgkY19wdHJfbmFtZSwk
Y19mcF92YXIpICRjX2ZwcmludGZfZnVuYyAoJGNfZnBfdmFyLCBcIiRiYXNp
Y190eXBlX3ByaW50ZlwiLCAqJGNfcHRyX25hbWUpO1xuIg0KCQkJICAgICA6
DQoJCQkgICAgICIjZGVmaW5lICRjX25ld190eXBlXF8kY19yZWZfbWV0aG9k
XF8kY19wdHJfc3VmZml4KCRjX3B0cl9uYW1lKSAkY19vbGRfdHlwZVxfJGNf
cmVmX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCAoJGNfcHRyX25hbWUpXG4iIC4N
CgkJCSAgICAgIiNkZWZpbmUgJGNfbmV3X3R5cGVcXyRjX3VucmVmX21ldGhv
ZFxfJGNfcHRyX3N1ZmZpeCgkY19wdHJfbmFtZSkgJGNfb2xkX3R5cGVcXyRj
X3VucmVmX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCAoJGNfcHRyX25hbWUpXG4i
IC4NCgkJCSAgICAgIiNkZWZpbmUgJGNfbmV3X3R5cGVcXyRjX2R1bXBfbWV0
aG9kXF8kY19wdHJfc3VmZml4KCRjX3B0cl9uYW1lLCRjX2ZwX3ZhcikgJGNf
b2xkX3R5cGVcXyRjX2R1bXBfbWV0aG9kXF8kY19wdHJfc3VmZml4ICgkY19w
dHJfbmFtZSwgJGNfZnBfdmFyKTtcbiIgLg0KCQkJICAgICAiXG4iKSk7DQog
ICAgfQ0KfQ0KDQpzdWIgbmV3X2VudW0gew0KICAgIG15ICgkbm9kZSwgJGJl
Zm9yZV9jb21tZW50c19yZWYsICRpZGxfZW51bSwgJGRlZl9zdGFydCwgJGRl
Zl9sZW4sICRpbnNpZGVfY29tbWVudHNfcmVmKSA9IEBfOw0KICAgIGNoZWNr
X3Jlc2VydmVkICgkaWRsX2VudW0pOw0KICAgIG15ICRjX2VudW0gPSBjX3R5
cGUoJG5vZGUsICRpZGxfZW51bSk7DQogICAgbXkgJGNfcHRyX25hbWUgPSBt
YWtlX2Nfb2JqZWN0X25hbWUoJGlkbF9lbnVtKSAuICJfJGNfcHRyX3N1ZmZp
eCI7DQogICAgbXkgQGNfZW51bV9saXN0ID0gc3BsaXQgLyA/LCA/Lywgc3Vi
c3RyICgkIHskJG5vZGV7dGV4dF9yZWZ9fSwgJGRlZl9zdGFydCwgJGRlZl9s
ZW4pOw0KICAgIA0KICAgIHJlcG9ydCAoJG5vZGUsICJlbnVtICRpZGxfZW51
bSIsICJlbnVtICRjX2VudW0iKTsNCiAgICBuZXdfdHlwZSAoJG5vZGUsICRp
ZGxfZW51bSwgJGNfZW51bSk7DQoNCiAgICBjb21tZW50X2V4cG9ydGVkX2Rl
ZiAoJG5vZGUsICJFbnVtIiwgJGlkbF9lbnVtKTsNCg0KICAgIHByaW50X2V4
cG9ydGVkX2RlZiAoJG5vZGUsDQoJCSAgICAiZW51bSAkY19lbnVtIHsgIiwN
CgkJICAgIGNhdF9jb21tZW50cyAoQCRiZWZvcmVfY29tbWVudHNfcmVmKSwN
CgkJICAgIGpvaW4gKCIsICIsIEBjX2VudW1fbGlzdCksDQoJCSAgICAifTsi
LA0KCQkgICAgY2F0X2VvbF9jb21tZW50cyAoQCRpbnNpZGVfY29tbWVudHNf
cmVmKSwNCgkJICAgICJcbiIpOw0KICAgIA0KICAgIGNvbW1lbnRfcHJpdmF0
ZV9tYWNybyAoJG5vZGUsICJQcml2YXRlIG1hY3JvcyBmb3IiLCAkaWRsX2Vu
dW0pOw0KCQ0KICAgIHByaW50X3ByaXZhdGVfbWFjcm8gKCRub2RlLA0KCQkJ
ICIjZGVmaW5lICRjX2VudW1cXyRjX3JlZl9tZXRob2RcXyRjX3B0cl9zdWZm
aXgoJGNfcHRyX25hbWUpXG4iLA0KCQkJICIjZGVmaW5lICRjX2VudW1cXyRj
X3VucmVmX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCgkY19wdHJfbmFtZSlcbiIs
DQoJCQkgIiNkZWZpbmUgJGNfZW51bVxfJGNfZHVtcF9tZXRob2RcXyRjX3B0
cl9zdWZmaXgoJGNfcHRyX25hbWUsJGNfZnBfdmFyKSAkY19mcHJpbnRmX2Z1
bmMgKCRjX2ZwX3ZhciwgXCIlZFwiLCAqJGNfcHRyX25hbWUpXG4iLA0KCQkJ
ICJcbiIpOw0KfQ0KDQpzdWIgbmV3X3VuaW9uIHsNCiAgICBjcm9hayAiVW5p
b25zIGN1cnJlbnRseSB1bmltcGxlbWVudGVkLi4uIHNvcnJ5IjsNCiMgICAg
bXkgKCRub2RlLCAkYmVmb3JlX2NvbW1lbnRzX3JlZiwgJGlkbF91bmlvbiwg
JGlkbF9zd2l0Y2gsICRkZWZfc3RhcnQsICRkZWZfbGVuKSA9IEBfOw0KIyAg
ICBjaGVja19yZXNlcnZlZCAoJGlkbF91bmlvbik7DQojICAgIG15ICRjX3R5
cGUgPSBjX3R5cGUoJG5vZGUsICRpZGxfdW5pb24pOw0KIyAgICBteSAkY191
bmlvbiA9IGNfc3RydWN0KCRub2RlLCAkaWRsX3VuaW9uKTsNCiMgICAgcmVw
b3J0ICgkbm9kZSwgInVuaW9uICRpZGxfdW5pb24iLCAidHlwZWRlZiB1bmlv
biAkY191bmlvbiB7IC4uLiB9ICRjX3R5cGUiKTsNCiMgICAgbmV3X3R5cGUg
KCRub2RlLCAkaWRsX3VuaW9uLCAkY190eXBlKTsNCiMjICAgICRkZWYgPX4g
cy9jYXNlIFx3KyA/OiA/Ly9nOw0KIyMgICAgJGRlZiA9fiBzL2RlZmF1bHQg
PzogPy8vOw0KIyAgICBhZGRfdG9faW1wbF9oICRub2RlLCAidHlwZWRlZiB1
bmlvbiAkY191bmlvbiB7XG4iOw0KIyAgICBhZGRfdG9faW1wbF9oX2RlbGF5
ZWQgJG5vZGUsICJ9ICRjX3R5cGU7XG4iOw0KIyAgICBteSAkY2hpbGRfbm9k
ZSA9IG5ld19jaGlsZF9ub2RlICgkbm9kZSwgInVuaW9uIiwgJGlkbF91bmlv
biwgJGRlZl9zdGFydCwgJGRlZl9sZW4pOw0KIyAgICBjb21tZW50X2V4cG9y
dGVkX2RlZiAoJG5vZGUsICJ1bmlvbiIsICRpZGxfdW5pb24pOw0KIyAgICBw
YXJzZV9hbmRfZGllICgkY2hpbGRfbm9kZSk7DQp9DQoNCnN1YiBuZXdfZXhj
ZXB0aW9uIHsNCiAgICBteSAoJG5vZGUsICRiZWZvcmVfY29tbWVudHNfcmVm
LCAkaWRsX2V4Y2VwdGlvbiwgJGRlZl9zdGFydCwgJGRlZl9sZW4pID0gQF87
DQogICAgY2hlY2tfcmVzZXJ2ZWQgKCRpZGxfZXhjZXB0aW9uKTsNCiAgICBt
eSAkY190eXBlID0gY19leGNlcHRpb25fbmFtZSgkbm9kZSwgJGlkbF9leGNl
cHRpb24pOw0KDQogICAgcmVwb3J0ICgkbm9kZSwgImV4Y2VwdGlvbiAkaWRs
X2V4Y2VwdGlvbiIsICJjb25zdCBjaGFyKiAkY190eXBlID0gXCIkaWRsX2V4
Y2VwdGlvblwiIik7DQogICAgbmV3X3R5cGUgKCRub2RlLCAkaWRsX2V4Y2Vw
dGlvbiwgJGNfdHlwZSk7DQoNCiAgICBjb21tZW50X2V4cG9ydGVkX2RlZiAo
JG5vZGUsICJFeGNlcHRpb24iLCAkaWRsX2V4Y2VwdGlvbik7DQoNCiAgICBw
cmludF9leHBvcnRlZF9kZWYgKCRub2RlLCBjX2NvbnN0X2V4Y2VwdGlvbl9k
ZWNsICgkbm9kZSwgJGlkbF9leGNlcHRpb24pLA0KCQkJY2F0X2VvbF9jb21t
ZW50cyAoQCRiZWZvcmVfY29tbWVudHNfcmVmKSk7DQp9DQoNCnN1YiBuZXdf
ZmFjdG9yeV9kZWNsYXJhdGlvbiB7ICAjIGRvZXMgbm90aGluZw0KfQ0KDQpz
dWIgbmV3X2ZhY3Rvcnkgew0KICAgIG15ICgkbm9kZSwgJGJlZm9yZV9jb21t
ZW50c19yZWYsICRpZGxfaW50ZXJmYWNlLCAkZGVmX3N0YXJ0LCAkZGVmX2xl
bikgPSBAXzsNCiAgICBteSAkY2hpbGRfbm9kZSA9IG5ld19jaGlsZF9ub2Rl
ICgkbm9kZSwgImludGVyZmFjZSIsICRpZGxfaW50ZXJmYWNlLCAkZGVmX3N0
YXJ0LCAkZGVmX2xlbixmYWN0b3J5PT4xKTsNCiAgICBteSAkY19jaGlsZF9v
YmplY3RfbmFtZSA9IGNfb2JqZWN0X25hbWUgKCRjaGlsZF9ub2RlKTsNCiAg
ICBteSAkY19uYW1lc3BhY2UgPSBjX3R5cGUoJGNoaWxkX25vZGUsICIiKTsN
Cg0KICAgIHJlcG9ydCAoJG5vZGUsICIoZmFjdG9yeSkgaW50ZXJmYWNlICRp
ZGxfaW50ZXJmYWNlIiwgIm5hbWVzcGFjZSAkY19uYW1lc3BhY2UiKTsNCg0K
ICAgIHByaW50X2V4cG9ydGVkX2RlZiAoJG5vZGUsDQoJCSAgICAiLyogU3Rh
cnQgb2YgJGlkbF9pbnRlcmZhY2UgZGVmaW5pdGlvbnMgKi9cbiIsDQoJCSAg
ICAiXG4iKTsNCg0KICAgIGNvbW1lbnRfZXhwb3J0ZWRfZGVmICgkbm9kZSwg
IlN0YXRpYyBpbnRlcmZhY2UiLCAkaWRsX2ludGVyZmFjZSk7DQoNCiAgICBw
cmludF9leHBvcnRlZF9kZWYgKCRjaGlsZF9ub2RlLA0KCQkgICAgY2F0X2Nv
bW1lbnRzIChAJGJlZm9yZV9jb21tZW50c19yZWYpLA0KCQkgICAgIlxuIiwN
CgkJICAgICIvKiBFeGNlcHRpb25zICovXG4iLA0KCQkgICAgIlxuIiwNCgkJ
ICAgIG1hcCAoY19jb25zdF9mYWN0b3J5X2V4Y2VwdGlvbl9kZWNsICgkY2hp
bGRfbm9kZSwgJF8pIC4gIlxuIiwgQGNfZmFjdG9yeV9leGNlcHRpb25zKSk7
DQoNCiAgICBjb21tZW50X3B1YmxpY19tYWNybyAoJG5vZGUsICJQdWJsaWMg
bWFjcm9zIGZvciIsICIkaWRsX2ludGVyZmFjZSBpbnRlcmZhY2UiKTsNCg0K
ICAgIHByaW50X3B1YmxpY19tYWNybyAoJGNoaWxkX25vZGUsDQoJCQkgIiNk
ZWZpbmUgJGNfbmFtZXNwYWNlJGNfcmFpc2VfbWV0aG9kKCRjX2NoaWxkX29i
amVjdF9uYW1lLEUpICRjX2V4Y2VwdGlvbl9tYWNybyAoJGNfY2hpbGRfb2Jq
ZWN0X25hbWUsIEUpXG4iLA0KCQkJIlxuIik7DQogICAgDQogICAgcGFyc2Vf
YW5kX2RpZSAoJGNoaWxkX25vZGUpOw0KDQogICAgcHJpbnRfZXhwb3J0ZWRf
ZGVmICgkbm9kZSwNCgkJICAgICJcbiIsDQoJCSAgICAiLyogRW5kIG9mICRp
ZGxfaW50ZXJmYWNlIGRlZmluaXRpb25zICovXG4iLA0KCQkgICAgIlxuIik7
DQp9DQoNCnN1YiBuZXdfaW50ZXJmYWNlX2RlY2xhcmF0aW9uIHsgICMgZG9l
cyBub3RoaW5nDQp9DQoNCnN1YiBuZXdfYmFzZV9pbnRlcmZhY2Ugew0KICAg
IG15ICgkbm9kZSwgJGJlZm9yZV9jb21tZW50c19yZWYsICRpZGxfaW50ZXJm
YWNlLCAkZGVmX3N0YXJ0LCAkZGVmX2xlbikgPSBAXzsNCiAgICBjaGVja19y
ZXNlcnZlZCAoJGlkbF9pbnRlcmZhY2UpOw0KICAgIG15ICRjX3R5cGUgPSBj
X3R5cGUoJG5vZGUsICRpZGxfaW50ZXJmYWNlKTsNCiAgICBteSAkY19zdHJ1
Y3QgPSBjX3N0cnVjdCgkbm9kZSwgJGlkbF9pbnRlcmZhY2UpOw0KDQogICAg
cmVwb3J0ICgkbm9kZSwgImludGVyZmFjZSAkaWRsX2ludGVyZmFjZSIsICJ0
eXBlZGVmIHN0cnVjdCAkY19zdHJ1Y3QqICRjX3R5cGUiKTsNCiAgICBuZXdf
dHlwZSAoJG5vZGUsICRpZGxfaW50ZXJmYWNlLCAkY190eXBlKTsNCg0KICAg
IG15ICRjaGlsZF9ub2RlID0gbmV3X2NoaWxkX25vZGUgKCRub2RlLCAiaW50
ZXJmYWNlIiwgJGlkbF9pbnRlcmZhY2UsICRkZWZfc3RhcnQsICRkZWZfbGVu
KTsNCiAgICBteSAkY19jaGlsZF9vYmplY3RfbmFtZSA9IGNfb2JqZWN0X25h
bWUgKCRjaGlsZF9ub2RlKTsNCiAgICBteSAkY19wdHJfbmFtZSA9ICIkY19j
aGlsZF9vYmplY3RfbmFtZVxfJGNfcHRyX3N1ZmZpeCI7DQoNCiAgICBwcmlu
dF9leHBvcnRlZF9kZWYgKCRub2RlLA0KCQkgICAgIi8qIFN0YXJ0IG9mICRp
ZGxfaW50ZXJmYWNlIGRlZmluaXRpb25zICovXG4iLA0KCQkgICAgIlxuIik7
DQoNCiAgICBjb21tZW50X2V4cG9ydGVkX2RlZiAoJGNoaWxkX25vZGUsICJJ
bnRlcmZhY2UiLCAkaWRsX2ludGVyZmFjZSk7DQoNCiAgICBwcmludF9leHBv
cnRlZF9kZWYgKCRjaGlsZF9ub2RlLA0KCQkJInR5cGVkZWYgc3RydWN0ICRj
X3N0cnVjdCogJGNfdHlwZTsgICAgIC8qICRpZGxfaW50ZXJmYWNlIG9iamVj
dCAqLyIsDQoJCQljYXRfZW9sX2NvbW1lbnRzIChAJGJlZm9yZV9jb21tZW50
c19yZWYpLA0KCQkJIlxuIiwNCgkJCSIvKiBFeGNlcHRpb25zICovXG4iLA0K
CQkJIlxuIiwNCgkJCW1hcCAoY19jb25zdF9leGNlcHRpb25fZGVjbCAoJGNo
aWxkX25vZGUsICRfKSAuICJcbiIsIEBjX2ludGVyZmFjZV9leGNlcHRpb25z
KSwNCgkJCSJcbiIsDQoJCQkiLyogJEV1Y2xpZCIuIk9iamVjdCBtZXRob2Rz
ICovXG4iLA0KCQkJIlxuIiwNCgkJCSJ2b2lkICRjX3R5cGVcXyRjX3JlZl9t
ZXRob2QgICAoJGNfdHlwZSk7ICAgICAgICAgLyogaW5jIHJlZiBjb3VudCAq
L1xuIiwNCgkJCSJ2b2lkICRjX3R5cGVcXyRjX3VucmVmX21ldGhvZCAoJGNf
dHlwZSk7ICAgICAgICAgLyogZGVjIHJlZiBjb3VudCAmIGZyZWUgKi9cbiIs
DQoJCQkidm9pZCAkY190eXBlXF8kY19kdW1wX21ldGhvZCAgKCRjX3R5cGUs
ICRjX2ZpbGVfdHlwZSk7ICAvKiBkdW1wIHRvIGZpbGUgKi9cbiIsDQoJCQki
XG4iLA0KCQkJIi8qIE90aGVyIG1ldGhvZHMgaWYgYW55ICovXG4iLA0KCQkJ
IlxuIik7DQoNCiAgICBjb21tZW50X3B1YmxpY19tYWNybyAoJGNoaWxkX25v
ZGUsICJQdWJsaWMgbWFjcm9zIGZvciIsICRpZGxfaW50ZXJmYWNlKTsNCg0K
ICAgIHByaW50X3B1YmxpY19tYWNybyAoJGNoaWxkX25vZGUsDQoJCQkgIiNk
ZWZpbmUgJGNfdHlwZVxfJGNfcmFpc2VfbWV0aG9kKCRjX2NoaWxkX29iamVj
dF9uYW1lLEUpICRjX2V4Y2VwdGlvbl9tYWNybyAoJGNfY2hpbGRfb2JqZWN0
X25hbWUsIEUpXG4iLA0KCQkJIlxuIik7DQoNCiAgICBjb21tZW50X2ltcGxf
cHJvdG90eXBlICgkY2hpbGRfbm9kZSwgIkltcGxlbWVudGF0aW9uIHByb3Rv
dHlwZXMgZm9yIiwgJGlkbF9pbnRlcmZhY2UpOw0KDQogICAgcHJpbnRfaW1w
bF9wcm90b3R5cGUgKCRjaGlsZF9ub2RlLA0KCQkJICAidm9pZCAkY190eXBl
XF8kY191bnJlZl9pbXBsX21ldGhvZCAodm9pZCopOyAgICAgICAgIC8qIGlt
cGxlbWVudGF0aW9uIGRlc3RydWN0b3IgKi9cbiIsDQoJCQkgICJ2b2lkICRj
X3R5cGVcXyRjX2R1bXBfaW1wbF9tZXRob2QgKHZvaWQqLCAkY19maWxlX3R5
cGUpOyAgIC8qIGltcGxlbWVudGF0aW9uIGR1bXAgKi9cbiIsDQoJCQkgICJc
biIpOw0KICAgIA0KICAgIGNvbW1lbnRfcHVibGljX3Byb3RvdHlwZSAoJGNo
aWxkX25vZGUsICJQdWJsaWMgcHJvdG90eXBlcyBmb3IiLCAkaWRsX2ludGVy
ZmFjZSk7DQoNCiAgICBwcmludF9wdWJsaWNfcHJvdG90eXBlICgkY2hpbGRf
bm9kZSwNCgkJCSAgICAiJGNfdHlwZSAkY190eXBlXF8kY19jYWxsb2NfbWV0
aG9kKCk7ICAvKiBjYWxsb2Mgd2l0aCBidWlsdGluIHNpemVvZiAocHJlZmVy
cmVkIGFsbG9jYXRvcikgKi9cbiIsDQoJCQkgICAgIiRjX3R5cGUgJGNfdHlw
ZVxfJGNfbWFsbG9jX21ldGhvZCgpOyAgLyogbWFsbG9jICovXG4iLA0KCQkJ
ICAgICJcbiIpOw0KDQogICAgY29tbWVudF9wcml2YXRlX21hY3JvICgkY2hp
bGRfbm9kZSwgIlByaXZhdGUgbWFjcm9zIGZvciIsICRpZGxfaW50ZXJmYWNl
KTsNCg0KICAgIHByaW50X3ByaXZhdGVfbWFjcm8gKCRjaGlsZF9ub2RlLA0K
CQkJICIjZGVmaW5lICRjX3R5cGVcXyRjX3JlZl9tZXRob2RcXyRjX3B0cl9z
dWZmaXgoJGNfcHRyX25hbWUpICRjX3R5cGVcXyRjX3JlZl9tZXRob2QgKCok
Y19wdHJfbmFtZSlcbiIsDQoJCQkgIiNkZWZpbmUgJGNfdHlwZVxfJGNfdW5y
ZWZfbWV0aG9kXF8kY19wdHJfc3VmZml4KCRjX3B0cl9uYW1lKSAkY190eXBl
XF8kY191bnJlZl9tZXRob2QgKCokY19wdHJfbmFtZSlcbiIsDQoJCQkgIiNk
ZWZpbmUgJGNfdHlwZVxfJGNfZHVtcF9tZXRob2RcXyRjX3B0cl9zdWZmaXgo
JGNfcHRyX25hbWUsJGNfZnBfdmFyKSAkY190eXBlXF8kY19kdW1wX21ldGhv
ZCAoKiRjX3B0cl9uYW1lLCAkY19mcF92YXIpXG4iLA0KCQkJICJcbiIsDQoJ
CQkgIiNkZWZpbmUgJGNfdHlwZVxfJGNfYmFzZXN0X21ldGhvZCgkY19jaGls
ZF9vYmplY3RfbmFtZSkgJGNfY2hpbGRfb2JqZWN0X25hbWUgIC8qIGluaGVy
aXRhbmNlIG1hY3JvICovXG4iLA0KCQkJICJcbiIpOw0KCQkJIA0KICAgIGNv
bW1lbnRfcHJpdmF0ZV9wcm90b3R5cGUgKCRjaGlsZF9ub2RlLCAiUHJpdmF0
ZSBwcm90b3R5cGVzIGZvciIsICRpZGxfaW50ZXJmYWNlKTsNCg0KICAgIHBy
aW50X3ByaXZhdGVfcHJvdG90eXBlICgkY2hpbGRfbm9kZSwNCgkJCSAgICAg
IiRjX3R5cGUgJGNfdHlwZVxfJGNfb3ZlcnR1cmVfbWV0aG9kICgkY190eXBl
KTsgIC8qICRFdWNsaWQiLiJPYmplY3QgaW5pdGlhbGlzZXIgKi9cbiIsDQoJ
CQkgICAgICJ2b2lkICRjX3R5cGVcXyRjX3N3YW5zb25nX21ldGhvZCAodm9p
ZCopOyAgICAgICAvKiAkRXVjbGlkIi4iT2JqZWN0IGRlc3RydWN0b3IgKi9c
biIsDQoJCQkgICAgICJcbiIsDQoJCQkgICAgICJ0eXBlZGVmIHZvaWQgKCok
Y190eXBlXF8kY19zd2Fuc29uZ19tZXRob2RcXyRjX3B0cl9zdWZmaXgpICh2
b2lkKik7ICAgICAgICAgIC8qIHBvaW50ZXIgdG8gJGNfc3dhbnNvbmdfbWV0
aG9kICovXG4iLA0KCQkJICAgICAidHlwZWRlZiB2b2lkICgqJGNfdHlwZVxf
JGNfdW5yZWZfaW1wbF9tZXRob2RcXyRjX3B0cl9zdWZmaXgpICh2b2lkKik7
ICAgICAgICAvKiBwb2ludGVyIHRvICRjX3VucmVmX2ltcGxfbWV0aG9kICov
XG4iLA0KCQkJICAgICAidHlwZWRlZiB2b2lkICgqJGNfdHlwZVxfJGNfZHVt
cF9pbXBsX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCkgKHZvaWQqLCAkY19maWxl
X3R5cGUpOyAgLyogcG9pbnRlciB0byAkY19kdW1wX2ltcGxfbWV0aG9kICov
XG4iLA0KCQkJICAgICAiXG4iKTsNCiAgICANCiAgICBjb21tZW50X3ByaXZh
dGVfc3RydWN0ICgkY2hpbGRfbm9kZSwgIlByaXZhdGUgc3RydWN0dXJlcyBm
b3IiLCAkaWRsX2ludGVyZmFjZSk7DQoNCiAgICBwcmludF9wcml2YXRlX3N0
cnVjdCAoJGNoaWxkX25vZGUsDQoJCQkgICAgICJ0eXBlZGVmIHN0cnVjdCAk
Y190eXBlXF8kY19wcml2YXRlX3N1ZmZpeCB7ICAgIC8qICRFdWNsaWQiLiJP
YmplY3QgaW5mbyAqL1xuIiwNCgkJCSAgICAgIiAgdW5zaWduZWQgbG9uZyAk
Y19yZWZfdmFyOyAgLyogcmVmZXJlbmNlIGNvdW50ICovXG4iLA0KCQkJICAg
ICAiICB2b2lkKiAkY19kZXJpdl92YXI7ICAgICAgICAvKiBtb3N0IGRlcml2
ZWQgaW50ZXJmYWNlICovXG4iLA0KCQkJICAgICAiICAkY190eXBlXF8kY19z
d2Fuc29uZ19tZXRob2RcXyRjX3B0cl9zdWZmaXggICAkY19zd2Fuc29uZ192
YXI7ICAgIC8qIHBvaW50ZXIgdG8gdmlydHVhbCAkY19zd2Fuc29uZ19tZXRo
b2QgKi9cbiIsDQoJCQkgICAgICIgICRjX3R5cGVcXyRjX3VucmVmX2ltcGxf
bWV0aG9kXF8kY19wdHJfc3VmZml4ICRjX3VucmVmX2ltcGxfdmFyOyAgLyog
cG9pbnRlciB0byB2aXJ0dWFsICRjX3VucmVmX2ltcGxfbWV0aG9kICovXG4i
LA0KCQkJICAgICAiICAkY190eXBlXF8kY19kdW1wX2ltcGxfbWV0aG9kXF8k
Y19wdHJfc3VmZml4ICAkY19kdW1wX2ltcGxfdmFyOyAgIC8qIHBvaW50ZXIg
dG8gdmlydHVhbCAkY19kdW1wX2ltcGxfbWV0aG9kICovXG4iLA0KCQkJICAg
ICAifSAkY190eXBlXF8kY19wcml2YXRlX3N1ZmZpeDtcbiIsDQoJCQkgICAg
ICJcbiIpOw0KICAgIA0KICAgIGNvbW1lbnRfbWlzY19mdW5jICgkY2hpbGRf
bm9kZSwgJEV1Y2xpZCAuICJPYmplY3QgY29kZSBmb3IiLCAkaWRsX2ludGVy
ZmFjZSk7DQoNCiAgICBwcmludF9taXNjX2Z1bmMgKCRjaGlsZF9ub2RlLA0K
CQkgICAgICIkY190eXBlICRjX3R5cGVcXyRjX2NhbGxvY19tZXRob2QoKVxu
IiwNCgkJICAgICAie1xuIiwNCgkJICAgICAiICAkY190eXBlIHJlc3VsdDtc
biIsDQoJCSAgICAgIiAgcmVzdWx0ID0gJGNfY2FsbG9jX2Z1bmMgKHNpemVv
ZiAoJGNfc3RydWN0KSk7XG4iLA0KCQkgICAgICIgIGlmIChyZXN1bHQgPT0g
MCkgJGNfdHlwZVxfJGNfcmFpc2VfbWV0aG9kICgwLCAkY190eXBlXF8kY19t
ZW1vcnlfZXhjZXB0aW9uKTtcbiIsDQoJCSAgICAgIiAgcmV0dXJuICRjX3R5
cGVcXyRjX292ZXJ0dXJlX21ldGhvZCAocmVzdWx0KTtcbiIsDQoJCSAgICAg
In1cbiIsDQoJCSAgICAgIlxuIiwNCgkJICAgICAiJGNfdHlwZSAkY190eXBl
XF8kY19tYWxsb2NfbWV0aG9kKClcbiIsDQoJCSAgICAgIntcbiIsDQoJCSAg
ICAgIiAgJGNfdHlwZSByZXN1bHQ7XG4iLA0KCQkgICAgICIgIHJlc3VsdCA9
ICRjX21hbGxvY19mdW5jIChzaXplb2YgKCRjX3N0cnVjdCkpO1xuIiwNCgkJ
ICAgICAiICBpZiAocmVzdWx0ID09IDApICRjX3R5cGVcXyRjX3JhaXNlX21l
dGhvZCAoMCwgJGNfdHlwZVxfJGNfbWVtb3J5X2V4Y2VwdGlvbik7XG4iLA0K
CQkgICAgICIgIHJldHVybiAkY190eXBlXF8kY19vdmVydHVyZV9tZXRob2Qg
KHJlc3VsdCk7XG4iLA0KCQkgICAgICJ9XG4iLA0KCQkgICAgICJcbiIpOw0K
DQogICAgcHJpbnRfb3ZlcnR1cmVfZnVuYyAoJGNoaWxkX25vZGUsDQoJCQkg
IiRjX3R5cGUgJGNfdHlwZVxfJGNfb3ZlcnR1cmVfbWV0aG9kICgkY190eXBl
ICRjX2NoaWxkX29iamVjdF9uYW1lKVxuIiwNCgkJCSAie1xuIiwNCgkJCSAi
ICAkY19jaGlsZF9vYmplY3RfbmFtZS0+JGNfcHJpdmF0ZV92YXIuJGNfcmVm
X3ZhciA9IDE7ICAvKiBpbml0aWFsaXNlIHByaXZhdGUgZGF0YSAqL1xuIiwN
CgkJCSAiICAkY19jaGlsZF9vYmplY3RfbmFtZS0+JGNfcHJpdmF0ZV92YXIu
JGNfZGVyaXZfdmFyID0gKHZvaWQqKSAkY19jaGlsZF9vYmplY3RfbmFtZTtc
biIsDQoJCQkgIiAgJGNfY2hpbGRfb2JqZWN0X25hbWUtPiRjX3ByaXZhdGVf
dmFyLiRjX3N3YW5zb25nX3ZhciA9ICRjX3R5cGVcXyRjX3N3YW5zb25nX21l
dGhvZDsgIC8qIGluaXRpYWxpc2UgcHJpdmF0ZSBmdW5jdGlvbiBwb2ludGVy
cyAqL1xuIiwNCgkJCSAiICAkY19jaGlsZF9vYmplY3RfbmFtZS0+JGNfcHJp
dmF0ZV92YXIuJGNfdW5yZWZfaW1wbF92YXIgPSAkY190eXBlXF8kY191bnJl
Zl9pbXBsX21ldGhvZDtcbiIsDQoJCQkgIiAgJGNfY2hpbGRfb2JqZWN0X25h
bWUtPiRjX3ByaXZhdGVfdmFyLiRjX2R1bXBfaW1wbF92YXIgPSAkY190eXBl
XF8kY19kdW1wX2ltcGxfbWV0aG9kO1xuIik7DQoNCiAgICBwcmludF9vdmVy
dHVyZV9mdW5jX3RhaWwgKCRjaGlsZF9ub2RlLA0KCQkJICAgICAgIiAgcmV0
dXJuICRjX2NoaWxkX29iamVjdF9uYW1lO1xuIiwNCgkJCSAgICAgICJ9XG4i
LA0KCQkJICAgICAgIlxuIik7DQogICAgDQogICAgcHJpbnRfc3dhbnNvbmdf
ZnVuYyAoJGNoaWxkX25vZGUsDQoJCQkgInZvaWQgJGNfdHlwZVxfJGNfc3dh
bnNvbmdfbWV0aG9kICh2b2lkKiAkY19jaGlsZF9vYmplY3RfbmFtZSlcbiIs
DQoJCQkgIntcbiIpOw0KICAgIA0KICAgIHByaW50X3N3YW5zb25nX2Z1bmNf
dGFpbCAoJGNoaWxkX25vZGUsDQoJCQkgICAgICAiICAkY19mcmVlX2Z1bmMg
KCgkY190eXBlKSAkY19jaGlsZF9vYmplY3RfbmFtZSk7XG4iLA0KCQkJICAg
ICAgIn1cbiIsDQoJCQkgICAgICAiXG4iKTsNCg0KICAgIHByaW50X3JlZl9m
dW5jICgkY2hpbGRfbm9kZSwNCgkJICAgICJ2b2lkICRjX3R5cGVcXyRjX3Jl
Zl9tZXRob2QgKCRjX3R5cGUgJGNfY2hpbGRfb2JqZWN0X25hbWUpXG4iLA0K
CQkgICAgIntcbiIsDQoJCSAgICAiICArKyRjX2NoaWxkX29iamVjdF9uYW1l
LT4kY19wcml2YXRlX3Zhci4kY19yZWZfdmFyO1xuIiwNCgkJICAgICJ9XG4i
LA0KCQkgICAgIlxuIik7DQoNCiAgICBwcmludF91bnJlZl9mdW5jICgkY2hp
bGRfbm9kZSwNCgkJICAgICAgInZvaWQgJGNfdHlwZVxfJGNfdW5yZWZfbWV0
aG9kICgkY190eXBlICRjX2NoaWxkX29iamVjdF9uYW1lKVxuIiwNCgkJICAg
ICAgIntcbiIsDQoJCSAgICAgICIgIHN3aXRjaCAoJGNfY2hpbGRfb2JqZWN0
X25hbWUtPiRjX3ByaXZhdGVfdmFyLiRjX3JlZl92YXItLSlcbiIsDQoJCSAg
ICAgICIgICAge1xuIiwNCgkJICAgICAgIiAgICBjYXNlIDA6XG4iLA0KCQkg
ICAgICAiICAgICAgJGNfdHlwZVxfJGNfcmFpc2VfbWV0aG9kICgkY19jaGls
ZF9vYmplY3RfbmFtZSwgJGNfdHlwZVxfJGNfcmVmY291bnRfZXhjZXB0aW9u
KTtcbiIsDQoJCSAgICAgICIgICAgICBicmVhaztcbiIsDQoJCSAgICAgICIg
ICAgY2FzZSAxOlxuIiwNCgkJICAgICAgIiAgICAgICgqJGNfY2hpbGRfb2Jq
ZWN0X25hbWUtPiRjX3VucmVmX2ltcGxfdmFyKSAoJGNfY2hpbGRfb2JqZWN0
X25hbWUtPiRjX3ByaXZhdGVfdmFyLiRjX2Rlcml2X3Zhcik7ICAgLyogY2Fs
bCBpbXBsZW1lbnRhdGlvbiBkZXN0cnVjdG9yICovXG4iKTsNCiAgICANCiAg
ICBwcmludF91bnJlZl9mdW5jX3RhaWwgKCRjaGlsZF9ub2RlLA0KCQkJICAg
IiAgICAgICgqJGNfY2hpbGRfb2JqZWN0X25hbWUtPiRjX3N3YW5zb25nX3Zh
cikgKCRjX2NoaWxkX29iamVjdF9uYW1lLT4kY19wcml2YXRlX3Zhci4kY19k
ZXJpdl92YXIpOyAgICAgLyogY2FsbCAkRXVjbGlkIGRlc3RydWN0b3IgKi9c
biIsDQoJCQkgICAiICAgICAgYnJlYWs7XG4iLA0KCQkJICAgIiAgICBkZWZh
dWx0OlxuIiwNCgkJCSAgICIgICAgICBicmVhaztcbiIsDQoJCQkgICAiICAg
IH1cbiIsDQoJCQkgICAifVxuIiwNCgkJCSAgICJcbiIpOw0KDQogICAgcHJp
bnRfZHVtcF9mdW5jICgkY2hpbGRfbm9kZSwNCgkJICAgICAidm9pZCAkY190
eXBlXF8kY19kdW1wX21ldGhvZCAoJGNfdHlwZSAkY19jaGlsZF9vYmplY3Rf
bmFtZSwgJGNfZmlsZV90eXBlICRjX2ZwX3ZhcilcbiIsDQoJCSAgICAgIntc
biIsDQoJCSAgICAgIiAgKCokY19jaGlsZF9vYmplY3RfbmFtZS0+JGNfcHJp
dmF0ZV92YXIuJGNfZHVtcF9pbXBsX3ZhcikgKCRjX2NoaWxkX29iamVjdF9u
YW1lLT4kY19wcml2YXRlX3Zhci4kY19kZXJpdl92YXIsICRjX2ZwX3Zhcik7
XG4iLA0KCQkgICAgICJ9XG4iLA0KCQkgICAgICJcbiIpOw0KICAgIA0KICAg
IGNvbW1lbnRfZXhhbXBsZV91bnJlZl9mdW5jICgkY2hpbGRfbm9kZSwgIkV4
YW1wbGUgJGNfdW5yZWZfaW1wbF9tZXRob2QgY29kZSBmb3IiLCAkaWRsX2lu
dGVyZmFjZSk7DQoNCiAgICBwcmludF9leGFtcGxlX3VucmVmX2Z1bmMgKCRj
aGlsZF9ub2RlLA0KCQkJInZvaWQgJGNfdHlwZVxfJGNfdW5yZWZfaW1wbF9t
ZXRob2QgKHZvaWQqICRjX2NoaWxkX29iamVjdF9uYW1lKVxuIiwNCgkJCSJ7
XG4iLA0KCQkJIiAgcmV0dXJuO1xuIiwNCgkJCSJ9XG4iLA0KCQkJIlxuIik7
CQkJDQoNCiAgICBjb21tZW50X2V4YW1wbGVfZHVtcF9mdW5jICgkY2hpbGRf
bm9kZSwgIkV4YW1wbGUgJGNfZHVtcF9pbXBsX21ldGhvZCBjb2RlIGZvciIs
ICRpZGxfaW50ZXJmYWNlKTsNCg0KICAgIHByaW50X2V4YW1wbGVfZHVtcF9m
dW5jICgkY2hpbGRfbm9kZSwNCgkJCSAgICAgInZvaWQgJGNfdHlwZVxfJGNf
ZHVtcF9pbXBsX21ldGhvZCAoJGNfdHlwZSAkY19jaGlsZF9vYmplY3RfbmFt
ZSwgJGNfZmlsZV90eXBlICRjX2ZwX3ZhcilcbiIsDQoJCQkgICAgICJ7XG4i
LA0KCQkJICAgICAiICAkY19mcHJpbnRmX2Z1bmMgKCRjX2ZwX3ZhciwgXCIi
IC4gaWRsX3F1YWxpZmllZF90eXBlX25hbWUgKCRjaGlsZF9ub2RlKSAuICIg
ZHVtcDpcXG5cIik7XG4iKTsNCiAgICANCiAgICBwcmludF9leGFtcGxlX2R1
bXBfZnVuY190YWlsICgkY2hpbGRfbm9kZSwNCgkJCSAgICAgIn1cbiIsDQoJ
CQkgICAgICJcbiIpOw0KICAgIA0KICAgIGNvbW1lbnRfZXhhbXBsZV9zdHJ1
Y3QgKCRjaGlsZF9ub2RlLCAiRXhhbXBsZSBzdHJ1Y3QgZm9yIiwgJGlkbF9p
bnRlcmZhY2UsICJvYmplY3QiKTsNCg0KICAgIHByaW50X2V4YW1wbGVfc3Ry
dWN0ICgkY2hpbGRfbm9kZSwNCgkJCSAgInR5cGVkZWYgc3RydWN0ICRjX3N0
cnVjdFxuIiwNCgkJCSAgIntcbiIsDQoJCQkgICIgICRjX3R5cGVcXyRjX3By
aXZhdGVfc3VmZml4ICRjX3ByaXZhdGVfdmFyOyAgLyogcHJpdmF0ZSBkYXRh
IChyZXF1aXJlZCkgKi9cbiIsDQoJCQkgICJcbiIpOw0KDQogICAgcHJpbnRf
ZXhhbXBsZV9zdHJ1Y3RfdGFpbCAoJGNoaWxkX25vZGUsDQoJCQkgICAgICAg
IlxuIiwNCgkJCSAgICAgICAiICAvKiBJbXBsZW1lbnRhdGlvbiBkYXRhIGdv
ZXMgaGVyZSAqL1xuIiwNCgkJCSAgICAgICAiXG4iLA0KCQkJICAgICAgICJ9
ICRjX3N0cnVjdDtcbiIsDQoJCQkgICAgICAgIlxuIik7DQoNCiAgICBwYXJz
ZV9hbmRfZGllICgkY2hpbGRfbm9kZSk7DQoNCiAgICBwcmludF9leHBvcnRl
ZF9kZWYgKCRub2RlLA0KCQkgICAgIlxuIiwNCgkJICAgICIvKiBFbmQgb2Yg
JGlkbF9pbnRlcmZhY2UgZGVmaW5pdGlvbnMgKi9cbiIsDQoJCSAgICAiXG4i
KTsNCn0NCg0Kc3ViIG5ld19kZXJpdmVkX2ludGVyZmFjZSB7DQogICAgbXkg
KCRub2RlLCAkYmVmb3JlX2NvbW1lbnRzX3JlZiwgJGlkbF9pbnRlcmZhY2Us
ICRpZGxfYmFzZSwgJGRlZl9zdGFydCwgJGRlZl9sZW4pID0gQF87DQogICAg
Y2hlY2tfcmVzZXJ2ZWQgKCRpZGxfaW50ZXJmYWNlKTsNCiAgICBteSAkY190
eXBlID0gY190eXBlKCRub2RlLCAkaWRsX2ludGVyZmFjZSk7DQogICAgbXkg
JGNfc3RydWN0ID0gY19zdHJ1Y3QoJG5vZGUsICRpZGxfaW50ZXJmYWNlKTsN
CiAgICBteSAkY19iYXNlID0gZmluZF9zY29wZV9hbmRfZ2V0X2NfdHlwZSgk
bm9kZSwgJGlkbF9iYXNlKTsNCiAgICByZXBvcnQgKCRub2RlLCAiaW50ZXJm
YWNlICRpZGxfaW50ZXJmYWNlIDogJGlkbF9iYXNlIiwgInR5cGVkZWYgc3Ry
dWN0ICRjX3N0cnVjdCogJGNfdHlwZSIpOw0KICAgIG5ld190eXBlICgkbm9k
ZSwgJGlkbF9pbnRlcmZhY2UsICRjX3R5cGUpOw0KDQogICAgbXkgJGNoaWxk
X25vZGUgPSBuZXdfY2hpbGRfbm9kZSAoJG5vZGUsICJpbnRlcmZhY2UiLCAk
aWRsX2ludGVyZmFjZSwgJGRlZl9zdGFydCwgJGRlZl9sZW4pOw0KICAgIG15
ICRjX2NoaWxkX29iamVjdF9uYW1lID0gY19vYmplY3RfbmFtZSAoJGNoaWxk
X25vZGUpOw0KICAgIG15ICRjX2Jhc2Vfb2JqZWN0X25hbWUgPSBtYWtlX2Nf
b2JqZWN0X25hbWUgKCRpZGxfYmFzZSk7DQogICAgbXkgJGNfcHRyX25hbWUg
PSAiJGNfY2hpbGRfb2JqZWN0X25hbWVcXyRjX3B0cl9zdWZmaXgiOw0KDQog
ICAgcHJpbnRfZXhwb3J0ZWRfZGVmICgkbm9kZSwNCgkJICAgICJcbiIpOw0K
DQogICAgY29tbWVudF9leHBvcnRlZF9kZWYgKCRub2RlLCAiSW50ZXJmYWNl
IiwgIiRpZGxfaW50ZXJmYWNlIiwgImRlcml2ZWQgZnJvbSIsICRpZGxfYmFz
ZSk7DQoNCiAgICBwcmludF9leHBvcnRlZF9kZWYgKCRub2RlLA0KCQkJIi8q
IFN0YXJ0IG9mICRpZGxfaW50ZXJmYWNlIGRlZmluaXRpb25zICovXG4iLA0K
CQkJIlxuIiwNCgkJCSJ0eXBlZGVmIHN0cnVjdCAkY19zdHJ1Y3QqICRjX3R5
cGU7ICAgICAvKiAkaWRsX2ludGVyZmFjZSBvYmplY3QgKi8iLA0KCQkJY2F0
X2VvbF9jb21tZW50cyAoQCRiZWZvcmVfY29tbWVudHNfcmVmKSwNCgkJCSJc
biIsDQoJCQkiLyogRXhjZXB0aW9ucyAqL1xuIiwNCgkJCSJcbiIsDQoJCQlt
YXAgKGNfY29uc3RfZXhjZXB0aW9uX2RlY2wgKCRjaGlsZF9ub2RlLCAkXykg
LiAiXG4iLCBAY19pbnRlcmZhY2VfZXhjZXB0aW9ucyksDQoJCQkiXG4iLA0K
CQkJIi8qICRFdWNsaWQiLiJPYmplY3QgbWV0aG9kcyAqL1xuIiwNCgkJCSJc
biIsDQoJCQkidm9pZCAkY190eXBlXF8kY19yZWZfbWV0aG9kICAgKCRjX3R5
cGUpOyAgICAgICAgIC8qIGluYyByZWYgY291bnQgKi9cbiIsDQoJCQkidm9p
ZCAkY190eXBlXF8kY191bnJlZl9tZXRob2QgKCRjX3R5cGUpOyAgICAgICAg
IC8qIGRlYyByZWYgY291bnQgJiBmcmVlICovXG4iLA0KCQkJInZvaWQgJGNf
dHlwZVxfJGNfZHVtcF9tZXRob2QgICgkY190eXBlLCAkY19maWxlX3R5cGUp
OyAgLyogZHVtcCB0byBmaWxlICovXG4iLA0KCQkJIlxuIiwNCgkJCSIvKiBP
dGhlciBtZXRob2RzIGlmIGFueSAqL1xuIiwNCgkJCSJcbiIpOw0KDQogICAg
Y29tbWVudF9pbXBsX3Byb3RvdHlwZSAoJGNoaWxkX25vZGUsICJJbXBsZW1l
bnRhdGlvbiBwcm90b3R5cGVzIGZvciIsICRpZGxfaW50ZXJmYWNlKTsNCg0K
ICAgIHByaW50X2ltcGxfcHJvdG90eXBlICgkY2hpbGRfbm9kZSwNCgkJCSAg
ICAgInZvaWQgJGNfdHlwZVxfJGNfdW5yZWZfaW1wbF9tZXRob2QgKHZvaWQq
KSAgICAgICAgICAvKiBpbXBsZW1lbnRhdGlvbiBkZXN0cnVjdG9yICovXG4i
LA0KCQkJICAgICAidm9pZCAkY190eXBlXF8kY19kdW1wX2ltcGxfbWV0aG9k
ICh2b2lkKiwgJGNfZmlsZV90eXBlKTsgICAvKiBpbXBsZW1lbnRhdGlvbiBk
dW1wICovXG4iLA0KCQkJICAgICAiXG4iKTsNCg0KICAgIGNvbW1lbnRfcHVi
bGljX21hY3JvICgkY2hpbGRfbm9kZSwgIlB1YmxpYyBtYWNyb3MgZm9yIiwg
JGlkbF9pbnRlcmZhY2UpOw0KDQogICAgcHJpbnRfcHVibGljX21hY3JvICgk
Y2hpbGRfbm9kZSwNCgkJCSIjZGVmaW5lICRjX3R5cGVcXyRjX3JhaXNlX21l
dGhvZCgkY19jaGlsZF9vYmplY3RfbmFtZSxFKSAkY19leGNlcHRpb25fbWFj
cm8gKCRjX2NoaWxkX29iamVjdF9uYW1lLCBFKVxuIiwNCgkJCSJcbiIpOw0K
DQogICAgY29tbWVudF9wdWJsaWNfcHJvdG90eXBlICgkY2hpbGRfbm9kZSwg
IlB1YmxpYyBwcm90b3R5cGVzIGZvciIsICRpZGxfaW50ZXJmYWNlKTsNCg0K
ICAgIHByaW50X3B1YmxpY19wcm90b3R5cGUgKCRjaGlsZF9ub2RlLA0KCQkJ
ICAgICIkY190eXBlICRjX3R5cGVcXyRjX2NhbGxvY19tZXRob2QoKTsgIC8q
IGNhbGxvYyB3aXRoIGJ1aWx0aW4gc2l6ZW9mIChwcmVmZXJyZWQgYWxsb2Nh
dG9yKSAqL1xuIiwNCgkJCSAgICAiJGNfdHlwZSAkY190eXBlXF8kY19tYWxs
b2NfbWV0aG9kKCk7ICAvKiBtYWxsb2MgKi9cbiIsDQoJCQkgICAgIlxuIik7
DQoNCiAgICBjb21tZW50X3ByaXZhdGVfbWFjcm8gKCRjaGlsZF9ub2RlLCAi
UHJpdmF0ZSBtYWNyb3MgZm9yIiwgJGlkbF9pbnRlcmZhY2UpOw0KDQogICAg
cHJpbnRfcHJpdmF0ZV9tYWNybyAoJGNoaWxkX25vZGUsDQoJCQkgIiNkZWZp
bmUgJGNfdHlwZVxfJGNfcmVmX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCgkY19w
dHJfbmFtZSkgJGNfdHlwZVxfJGNfcmVmX21ldGhvZCAoKiRjX3B0cl9uYW1l
KVxuIiwNCgkJCSAiI2RlZmluZSAkY190eXBlXF8kY191bnJlZl9tZXRob2Rc
XyRjX3B0cl9zdWZmaXgoJGNfcHRyX25hbWUpICRjX3R5cGVcXyRjX3VucmVm
X21ldGhvZCAoKiRjX3B0cl9uYW1lKVxuIiwNCgkJCSAiI2RlZmluZSAkY190
eXBlXF8kY19kdW1wX21ldGhvZFxfJGNfcHRyX3N1ZmZpeCgkY19wdHJfbmFt
ZSwkY19mcF92YXIpICRjX3R5cGVcXyRjX2R1bXBfbWV0aG9kICgqJGNfcHRy
X25hbWUsICRjX2ZwX3ZhcilcbiIsDQoJCQkgIlxuIiwNCgkJCSAiI2RlZmlu
ZSAkY190eXBlXF8kY19iYXNlc3RfbWV0aG9kKCRjX2NoaWxkX29iamVjdF9u
YW1lKSAkY19iYXNlXF8kY19iYXNlc3RfbWV0aG9kKCRjX2NoaWxkX29iamVj
dF9uYW1lLT4kY19iYXNlX29iamVjdF9uYW1lKSAgLyogY2hhaW5lZCBpbmhl
cml0YW5jZSBtYWNybyAqL1xuIiwNCgkJCSAiXG4iKTsNCg0KICAgIGNvbW1l
bnRfcHJpdmF0ZV9wcm90b3R5cGUgKCRub2RlLCAiUHJpdmF0ZSBwcm90b3R5
cGVzIGZvciIsICRpZGxfaW50ZXJmYWNlKTsNCg0KICAgIHByaW50X3ByaXZh
dGVfcHJvdG90eXBlICgkbm9kZSwNCgkJCSAgICAgIiRjX3R5cGUgJGNfdHlw
ZVxfJGNfb3ZlcnR1cmVfbWV0aG9kICgkY190eXBlKTsgIC8qICRFdWNsaWQi
LiJPYmplY3QgaW5pdGlhbGlzZXIgKi9cbiIsDQoJCQkgICAgICJ2b2lkICRj
X3R5cGVcXyRjX3N3YW5zb25nX21ldGhvZCAodm9pZCopOyAgICAgICAvKiAk
RXVjbGlkIi4iT2JqZWN0IGRlc3RydWN0b3IgKi9cbiIsDQoJCQkgICAgICJc
biIpOw0KDQogICAgY29tbWVudF9taXNjX2Z1bmMgKCRjaGlsZF9ub2RlLCAk
RXVjbGlkIC4gIk9iamVjdCBjb2RlIGZvciIsICRpZGxfaW50ZXJmYWNlKTsN
Cg0KICAgIHByaW50X21pc2NfZnVuYyAoJGNoaWxkX25vZGUsDQoJCSAgICAg
IiRjX3R5cGUgJGNfdHlwZVxfJGNfY2FsbG9jX21ldGhvZCgpXG4iLA0KCQkg
ICAgICJ7XG4iLA0KCQkgICAgICIgICRjX3R5cGUgcmVzdWx0O1xuIiwNCgkJ
ICAgICAiICByZXN1bHQgPSAkY19jYWxsb2NfZnVuYyAoc2l6ZW9mICgkY19z
dHJ1Y3QpKTtcbiIsDQoJCSAgICAgIiAgaWYgKHJlc3VsdCA9PSAwKSAkY190
eXBlXF8kY19yYWlzZV9tZXRob2QgKDAsICRjX3R5cGVcXyRjX21lbW9yeV9l
eGNlcHRpb24pO1xuIiwNCgkJICAgICAiICByZXN1bHQtPiRjX2Jhc2Vfb2Jq
ZWN0X25hbWUgPSAkY19iYXNlXF8kY19jYWxsb2NfbWV0aG9kKCk7ICAvKiBj
aGFpbmVkICRjX2NhbGxvY19tZXRob2QgKi9cbiIsDQoJCSAgICAgIiAgaWYg
KHJlc3VsdC0+JGNfYmFzZV9vYmplY3RfbmFtZSA9PSAwKSAkY190eXBlXF8k
Y19yYWlzZV9tZXRob2QgKDAsICRjX3R5cGVcXyRjX21lbW9yeV9leGNlcHRp
b24pO1xuIiwNCgkJICAgICAiICByZXR1cm4gJGNfdHlwZVxfJGNfb3ZlcnR1
cmVfbWV0aG9kIChyZXN1bHQpO1xuIiwNCgkJICAgICAifVxuIiwNCgkJICAg
ICAiXG4iLA0KCQkgICAgICIkY190eXBlICRjX3R5cGVcXyRjX21hbGxvY19t
ZXRob2QoKVxuIiwNCgkJICAgICAie1xuIiwNCgkJICAgICAiICAkY190eXBl
IHJlc3VsdDtcbiIsDQoJCSAgICAgIiAgcmVzdWx0ID0gJGNfbWFsbG9jX2Z1
bmMgKHNpemVvZiAoJGNfc3RydWN0KSk7XG4iLA0KCQkgICAgICIgIGlmIChy
ZXN1bHQgPT0gMCkgJGNfdHlwZVxfJGNfcmFpc2VfbWV0aG9kICgwLCAkY190
eXBlXF8kY19tZW1vcnlfZXhjZXB0aW9uKTtcbiIsDQoJCSAgICAgIiAgcmVz
dWx0LT4kY19iYXNlX29iamVjdF9uYW1lID0gJGNfYmFzZVxfJGNfbWFsbG9j
X21ldGhvZCgpOyAgLyogY2hhaW5lZCAkY19tYWxsb2NfbWV0aG9kICovXG4i
LA0KCQkgICAgICIgIGlmIChyZXN1bHQtPiRjX2Jhc2Vfb2JqZWN0X25hbWUg
PT0gMCkgJGNfdHlwZVxfJGNfcmFpc2VfbWV0aG9kICgwLCAkY190eXBlXF8k
Y19tZW1vcnlfZXhjZXB0aW9uKTtcbiIsDQoJCSAgICAgIiAgcmV0dXJuICRj
X3R5cGVcXyRjX292ZXJ0dXJlX21ldGhvZCAocmVzdWx0KTtcbiIsDQoJCSAg
ICAgIn1cbiIsDQoJCSAgICAgIlxuIiwNCgkJICAgICAidm9pZCAkY190eXBl
XF8kY19yZWZfbWV0aG9kICgkY190eXBlICRjX2NoaWxkX29iamVjdF9uYW1l
KVxuIiwNCgkJICAgICAie1xuIiwNCgkJICAgICAiICAkY19iYXNlXF8kY19y
ZWZfbWV0aG9kICgkY19jaGlsZF9vYmplY3RfbmFtZS0+JGNfYmFzZV9vYmpl
Y3RfbmFtZSk7ICAvKiBjaGFpbmVkICRjX3JlZl9tZXRob2QgKi9cbiIsDQoJ
CSAgICAgIn1cbiIsDQoJCSAgICAgIlxuIiwNCgkJICAgICAidm9pZCAkY190
eXBlXF8kY191bnJlZl9tZXRob2QgKCRjX3R5cGUgJGNfY2hpbGRfb2JqZWN0
X25hbWUpXG4iLA0KCQkgICAgICJ7XG4iLA0KCQkgICAgICIgICRjX2Jhc2Vc
XyRjX3VucmVmX21ldGhvZCAoJGNfY2hpbGRfb2JqZWN0X25hbWUtPiRjX2Jh
c2Vfb2JqZWN0X25hbWUpOyAgLyogY2hhaW5lZCAkY191bnJlZl9tZXRob2Qg
Ki9cbiIsDQoJCSAgICAgIn1cbiIsDQoJCSAgICAgIlxuIiwNCgkJICAgICAi
dm9pZCAkY190eXBlXF8kY19kdW1wX21ldGhvZCAoJGNfdHlwZSAkY19jaGls
ZF9vYmplY3RfbmFtZSwgJGNfZmlsZV90eXBlICRjX2ZwX3ZhcilcbiIsDQoJ
CSAgICAgIntcbiIsDQoJCSAgICAgIiAgKCokY190eXBlXF8kY19iYXNlc3Rf
bWV0aG9kKCRjX2NoaWxkX29iamVjdF9uYW1lKS0+JGNfcHJpdmF0ZV92YXIu
JGNfZHVtcF9pbXBsX3ZhcikgKCRjX3R5cGVcXyRjX2Jhc2VzdF9tZXRob2Qo
JGNfY2hpbGRfb2JqZWN0X25hbWUpLT4kY19wcml2YXRlX3Zhci4kY19kZXJp
dl92YXIsICRjX2ZwX3Zhcik7XG4iLA0KCQkgICAgICJ9XG4iLA0KCQkgICAg
ICJcbiIpOw0KDQogICAgcHJpbnRfb3ZlcnR1cmVfZnVuYyAoJGNoaWxkX25v
ZGUsDQoJCQkgIiRjX3R5cGUgJGNfdHlwZVxfJGNfb3ZlcnR1cmVfbWV0aG9k
ICgkY190eXBlICRjX2NoaWxkX29iamVjdF9uYW1lKVxuIiwNCgkJCSAie1xu
IiwNCgkJCSAiICAkY190eXBlXF8kY19iYXNlc3RfbWV0aG9kKCRjX2NoaWxk
X29iamVjdF9uYW1lKS0+JGNfcHJpdmF0ZV92YXIuJGNfc3dhbnNvbmdfdmFy
ID0gJGNfdHlwZVxfJGNfc3dhbnNvbmdfbWV0aG9kOyAgLyogb3ZlcnJpZGUg
cHJpdmF0ZSBmdW5jdGlvbnMgKi9cbiIsDQoJCQkgIiAgJGNfdHlwZVxfJGNf
YmFzZXN0X21ldGhvZCgkY19jaGlsZF9vYmplY3RfbmFtZSktPiRjX3ByaXZh
dGVfdmFyLiRjX3VucmVmX2ltcGxfdmFyID0gJGNfdHlwZVxfJGNfdW5yZWZf
aW1wbF9tZXRob2Q7XG4iLA0KCQkJICIgICRjX3R5cGVcXyRjX2Jhc2VzdF9t
ZXRob2QoJGNfY2hpbGRfb2JqZWN0X25hbWUpLT4kY19wcml2YXRlX3Zhci4k
Y19kdW1wX2ltcGxfdmFyID0gJGNfdHlwZVxfJGNfZHVtcF9pbXBsX21ldGhv
ZDtcbiIsDQoJCQkgIiAgJGNfdHlwZVxfJGNfYmFzZXN0X21ldGhvZCgkY19j
aGlsZF9vYmplY3RfbmFtZSktPiRjX3ByaXZhdGVfdmFyLiRjX2Rlcml2X3Zh
ciA9ICh2b2lkKikgJGNfY2hpbGRfb2JqZWN0X25hbWU7XG4iKTsNCg0KICAg
IHByaW50X292ZXJ0dXJlX2Z1bmNfdGFpbCAoJGNoaWxkX25vZGUsDQoJCQkg
ICAgICAiICByZXR1cm4gJGNfY2hpbGRfb2JqZWN0X25hbWU7XG4iLA0KCQkJ
ICAgICAgIn1cbiIsDQoJCQkgICAgICAiXG4iKTsNCg0KICAgIHByaW50X3N3
YW5zb25nX2Z1bmMgKCRjaGlsZF9ub2RlLA0KCQkJICJ2b2lkICRjX3R5cGVc
XyRjX3N3YW5zb25nX21ldGhvZCAodm9pZCogJGNfY2hpbGRfb2JqZWN0X25h
bWUpXG4iLA0KCQkJICJ7XG4iKTsNCgkJCSANCiAgICBwcmludF9zd2Fuc29u
Z19mdW5jX3RhaWwgKCRjaGlsZF9ub2RlLA0KCQkJICAgICAgIiAgJGNfYmFz
ZVxfJGNfc3dhbnNvbmdfbWV0aG9kICgodm9pZCopICgoJGNfdHlwZSkgJGNf
Y2hpbGRfb2JqZWN0X25hbWUpLT4kY19iYXNlX29iamVjdF9uYW1lKTsgIC8q
IGNoYWluZWQgJGNfc3dhbnNvbmdfbWV0aG9kICovXG4iLA0KCQkJICAgICAg
IiAgJGNfZnJlZV9mdW5jICgoJGNfdHlwZSkgJGNfY2hpbGRfb2JqZWN0X25h
bWUpOyAgLyogYW5kIGZyZWUgKi9cbiIsDQoJCQkgICAgICAifVxuIiwNCgkJ
CSAgICAgICJcbiIpOw0KICAgIA0KICAgIHByaW50X3JlZl9mdW5jICgkY2hp
bGRfbm9kZSwNCgkJICAgICJ2b2lkICRjX3R5cGVcXyRjX3JlZl9tZXRob2Qg
KCRjX3R5cGUgJGNfY2hpbGRfb2JqZWN0X25hbWUpXG4iLA0KCQkgICAgIntc
biIsDQoJCSAgICAiICAkY19iYXNlXF8kY19yZWZfbWV0aG9kICgkY19jaGls
ZF9vYmplY3RfbmFtZS0+JGNfYmFzZV9vYmplY3RfbmFtZSk7ICAvKiBjaGFp
bmVkICRjX3JlZl9tZXRob2QgKi9cbiIsDQoJCSAgICAifVxuIiwNCgkJICAg
ICJcbiIpOw0KICAgIA0KICAgIHByaW50X3VucmVmX2Z1bmMgKCRjaGlsZF9u
b2RlLA0KCQkgICAgICAidm9pZCAkY190eXBlXF8kY191bnJlZl9tZXRob2Qg
KCRjX3R5cGUgJGNfY2hpbGRfb2JqZWN0X25hbWUpXG4iLA0KCQkgICAgICAi
e1xuIiwNCgkJICAgICAgIiAgJGNfYmFzZVxfJGNfdW5yZWZfbWV0aG9kICgk
Y19jaGlsZF9vYmplY3RfbmFtZS0+JGNfYmFzZV9vYmplY3RfbmFtZSk7ICAv
KiBjaGFpbmVkICRjX3VucmVmX21ldGhvZCAqL1xuIiwNCgkJICAgICAgIn1c
biIsDQoJCSAgICAgICJcbiIpOw0KICAgIA0KICAgIHByaW50X2R1bXBfZnVu
YyAoJGNoaWxkX25vZGUsDQoJCSAgICAgInZvaWQgJGNfdHlwZVxfJGNfZHVt
cF9tZXRob2QgKCRjX3R5cGUgJGNfY2hpbGRfb2JqZWN0X25hbWUsICRjX2Zp
bGVfdHlwZSAkY19mcF92YXIpXG4iLA0KCQkgICAgICJ7XG4iLA0KCQkgICAg
ICIgICgqJGNfdHlwZVxfJGNfYmFzZXN0X21ldGhvZCgkY19jaGlsZF9vYmpl
Y3RfbmFtZSktPiRjX3ByaXZhdGVfdmFyLiRjX2R1bXBfaW1wbF92YXIpICgk
Y190eXBlXF8kY19iYXNlc3RfbWV0aG9kKCRjX2NoaWxkX29iamVjdF9uYW1l
KS0+JGNfcHJpdmF0ZV92YXIuJGNfZGVyaXZfdmFyLCAkY19mcF92YXIpO1xu
IiwNCgkJICAgICAifVxuIiwNCgkJICAgICAiXG4iKTsNCiAgICANCiAgICBj
b21tZW50X2V4YW1wbGVfc3RydWN0ICgkY2hpbGRfbm9kZSwgIkV4YW1wbGUg
c3RydWN0IGZvciIsICRpZGxfaW50ZXJmYWNlLCAib2JqZWN0Iik7DQoNCiAg
ICBwcmludF9leGFtcGxlX3N0cnVjdCAoJGNoaWxkX25vZGUsDQoJCQkgICJ0
eXBlZGVmIHN0cnVjdCAkY19zdHJ1Y3RcbiIsDQoJCQkgICJ7XG4iLA0KCQkJ
ICAiICAkY19iYXNlICRjX2Jhc2Vfb2JqZWN0X25hbWU7ICAvKiBwb2ludGVy
IHRvIGJhc2Ugc3RydWN0IChyZXF1aXJlZCkgKi9cbiIsDQoJCQkgICJcbiIp
Ow0KDQogICAgcHJpbnRfZXhhbXBsZV9zdHJ1Y3RfdGFpbCAoJGNoaWxkX25v
ZGUsDQoJCQkgICAgICAgIlxuIiwNCgkJCSAgICAgICAiICAvKiBJbXBsZW1l
bnRhdGlvbiBkYXRhIGdvZXMgaGVyZSAqL1xuIiwNCgkJCSAgICAgICAiXG4i
LA0KCQkJICAgICAgICJ9ICRjX3N0cnVjdDtcbiIsDQoJCQkgICAgICAgIlxu
Iik7DQoNCiAgICBjb21tZW50X2V4YW1wbGVfdW5yZWZfZnVuYyAoJGNoaWxk
X25vZGUsICJFeGFtcGxlICRjX3VucmVmX2ltcGxfbWV0aG9kIGNvZGUgZm9y
IiwgJGlkbF9pbnRlcmZhY2UpOw0KDQogICAgcHJpbnRfZXhhbXBsZV91bnJl
Zl9mdW5jICgkY2hpbGRfbm9kZSwNCgkJCSAgICAgICJ2b2lkICRjX3R5cGVc
XyRjX3VucmVmX2ltcGxfbWV0aG9kICh2b2lkKiAkY19jaGlsZF9vYmplY3Rf
bmFtZSlcbiIsDQoJCQkgICAgICAie1xuIiwNCgkJCSAgICAgICIgICRjX2Jh
c2VcXyRjX3VucmVmX2ltcGxfbWV0aG9kICgkY19jaGlsZF9vYmplY3RfbmFt
ZS0+JGNfYmFzZV9vYmplY3RfbmFtZSk7ICAgICAvKiBjaGFpbmVkICRjX3Vu
cmVmX2ltcGxfbWV0aG9kICovXG4iLA0KCQkJICAgICAgIn1cbiIsDQoJCQkg
ICAgICAiXG4iKTsNCg0KICAgIGNvbW1lbnRfZXhhbXBsZV9kdW1wX2Z1bmMg
KCRjaGlsZF9ub2RlLCAiRXhhbXBsZSAkY19kdW1wX2ltcGxfbWV0aG9kIGNv
ZGUgZm9yIiwgJGlkbF9pbnRlcmZhY2UpOw0KDQogICAgcHJpbnRfZXhhbXBs
ZV9kdW1wX2Z1bmMgKCRjaGlsZF9ub2RlLA0KCQkJICAgICAidm9pZCAkY190
eXBlXF8kY19kdW1wX2ltcGxfbWV0aG9kICgkY190eXBlICRjX2NoaWxkX29i
amVjdF9uYW1lLCAkY19maWxlX3R5cGUgJGNfZnBfdmFyKVxuIiwNCgkJCSAg
ICAgIntcbiIsDQoJCQkgICAgICIgICRjX2ZwcmludGZfZnVuYyAoJGNfZnBf
dmFyLCBcIiIgLiBpZGxfcXVhbGlmaWVkX3R5cGVfbmFtZSAoJGNoaWxkX25v
ZGUpIC4gIiBkdW1wOlxcblwiKTtcbiIpOw0KICAgIA0KICAgIHByaW50X2V4
YW1wbGVfZHVtcF9mdW5jX3RhaWwgKCRjaGlsZF9ub2RlLA0KCQkJCSAgIlxu
IiwNCgkJCQkgICIgICRjX2Jhc2VcXyRjX2R1bXBfaW1wbF9tZXRob2QgKCRj
X2NoaWxkX29iamVjdF9uYW1lLT4kY19iYXNlX29iamVjdF9uYW1lLCAkY19m
cF92YXIpOyAgICAgLyogY2hhaW5lZCAkY19kdW1wX2ltcGxfbWV0aG9kICov
XG4iLA0KCQkJCSAgIn1cbiIsDQoJCQkJICAiXG4iKTsNCiAgICANCiAgICBw
YXJzZV9hbmRfZGllICgkY2hpbGRfbm9kZSk7DQoNCiAgICBwcmludF9leHBv
cnRlZF9kZWYgKCRub2RlLA0KCQkgICAgIlxuIiwNCgkJICAgICIvKiBFbmQg
b2YgJGlkbF9pbnRlcmZhY2UgZGVmaW5pdGlvbnMgKi9cbiIsDQoJCSAgICAi
XG4iKTsNCn0NCg0Kc3ViIG5ld19tdWx0aXBseV9kZXJpdmVkX2ludGVyZmFj
ZSB7DQogICAgbXkgKCRub2RlLCAkYmVmb3JlX2NvbW1lbnRzX3JlZiwgJGlk
bF9pbnRlcmZhY2UsICRpZGxfYmFzZSwgJGRlZl9zdGFydCwgJGRlZl9sZW4p
ID0gQF87DQogICAgY3JvYWsgIk11bHRpcGxlIGluaGVyaXRhbmNlIG5vdCBz
dXBwb3J0ZWQuLi4gc29ycnkiOw0KfQ0KDQpzdWIgbmV3X2F0dHJpYnV0ZSB7
DQogICAgbXkgKCRub2RlLCAkYmVmb3JlX2NvbW1lbnRzX3JlZiwgJGlkbF90
eXBlLCAkYXR0cmlidXRlX25hbWUpID0gQF87DQogICAgbXkgJGNfdHlwZSA9
IGZpbmRfc2NvcGVfYW5kX2dldF9jX3R5cGUoJG5vZGUsICRpZGxfdHlwZSk7
DQogICAgbXkgJGNfYXR0cmlidXRlX25hbWUgPSBmaW5kX3Njb3BlX2FuZF9n
ZXRfY190eXBlKCRub2RlLCAkYXR0cmlidXRlX25hbWUpOw0KICAgIG15ICRj
X21ldGhvZF9wcmVmaXggPSBjX3R5cGUoJG5vZGUsICRjX2F0dHJpYnV0ZV9u
YW1lKTsNCiAgICBteSAkY19lbmNsb3Npbmdfc3RydWN0X29yX3VuaW9uID0g
Y19lbmNsb3Npbmdfc3RydWN0X29yX3VuaW9uKCRub2RlKTsNCiAgICBteSAk
Y19vYmplY3RfdHlwZSA9IGNfb2JqZWN0X3R5cGUgKCRub2RlKTsNCiAgICBt
eSAkY19vYmplY3RfbmFtZSA9IGNfb2JqZWN0X25hbWUgKCRub2RlKTsNCiAg
ICBteSAkaXNfYmFzaWNfdHlwZSA9IGlzX2Jhc2ljX3R5cGUgKCRpZGxfdHlw
ZSk7DQogICAgbXkgJGJhc2ljX3R5cGVfcHJpbnRmID0gJGlzX2Jhc2ljX3R5
cGUgPyBiYXNpY190eXBlX3ByaW50ZiAoJGlkbF90eXBlKSA6IHVuZGVmOw0K
DQogICAgcmVwb3J0ICgkbm9kZSwgImF0dHJpYnV0ZSAkaWRsX3R5cGUgJGF0
dHJpYnV0ZV9uYW1lIiwgIihpbiAkY19lbmNsb3Npbmdfc3RydWN0X29yX3Vu
aW9uKSAkY190eXBlICRhdHRyaWJ1dGVfbmFtZSIpOw0KDQogICAgY29tbWVu
dF9leHBvcnRlZF9kZWYgKCRub2RlLCAiQXR0cmlidXRlICRpZGxfdHlwZSIs
ICRhdHRyaWJ1dGVfbmFtZSk7DQoNCiAgICBwcmludF9leHBvcnRlZF9kZWYg
KCRub2RlLA0KCQkgICAgIiRjX3R5cGUgJGNfbWV0aG9kX3ByZWZpeFxfZ2V0
ICgkY19vYmplY3RfdHlwZSk7IiwNCgkJICAgIGNhdF9lb2xfY29tbWVudHMg
KEAkYmVmb3JlX2NvbW1lbnRzX3JlZiksDQoJCSAgICAidm9pZCAkY19tZXRo
b2RfcHJlZml4XF9zZXQgKCRjX29iamVjdF90eXBlLCAkY190eXBlKTtcbiIp
Ow0KDQogICAgY29tbWVudF9taXNjX2Z1bmMgKCRub2RlLCAiZ2V0ICYgc2V0
IG1ldGhvZHMgZm9yIGF0dHJpYnV0ZSAkaWRsX3R5cGUiLCAkYXR0cmlidXRl
X25hbWUpOw0KDQogICAgcHJpbnRfbWlzY19mdW5jICgkbm9kZSwNCgkJICAg
ICAiJGNfdHlwZSAkY19tZXRob2RfcHJlZml4XF9nZXQgKCRjX29iamVjdF90
eXBlICRjX29iamVjdF9uYW1lKVxuIiwNCgkJICAgICAie1xuIiwNCgkJICAg
ICAiICAkY190eXBlICRhdHRyaWJ1dGVfbmFtZSA9ICRjX29iamVjdF9uYW1l
LT4kYXR0cmlidXRlX25hbWU7XG4iLA0KCQkgICAgICRpc19iYXNpY190eXBl
ID8gIiIgOiAiICAkY190eXBlXF8kY19yZWZfbWV0aG9kICgkYXR0cmlidXRl
X25hbWUpO1xuIiwNCgkJICAgICAiICByZXR1cm4gJGF0dHJpYnV0ZV9uYW1l
O1xuIiwNCgkJICAgICAifVxuIiwNCgkJICAgICAiXG4iLA0KCQkgICAgICJ2
b2lkICRjX21ldGhvZF9wcmVmaXhcX3NldCAoJGNfb2JqZWN0X3R5cGUgJGNf
b2JqZWN0X25hbWUsICRjX3R5cGUgJGF0dHJpYnV0ZV9uYW1lKVxuIiwNCgkJ
ICAgICAie1xuIiwNCgkJICAgICAkaXNfYmFzaWNfdHlwZSA/ICIiIDogIiAg
JGNfdHlwZVxfJGNfdW5yZWZfbWV0aG9kICgkY19vYmplY3RfbmFtZS0+JGF0
dHJpYnV0ZV9uYW1lKTtcbiIsDQoJCSAgICAgJGlzX2Jhc2ljX3R5cGUgPyAi
IiA6ICIgICRjX3R5cGVcXyRjX3JlZl9tZXRob2QgKCRhdHRyaWJ1dGVfbmFt
ZSk7XG4iLA0KCQkgICAgICIgICRjX29iamVjdF9uYW1lLT4kYXR0cmlidXRl
X25hbWUgPSAkYXR0cmlidXRlX25hbWU7XG4iLA0KCQkgICAgICJ9XG4iLA0K
CQkgICAgICJcbiIpOw0KICAgIA0KICAgIGlmICghJGlzX2Jhc2ljX3R5cGUp
IHsNCgkNCglwcmludF9zd2Fuc29uZ19mdW5jICgkbm9kZSwNCgkJCSAgICAg
IiAgJGNfdHlwZVxfJGNfdW5yZWZfbWV0aG9kXF8kY19wdHJfc3VmZml4ICgm
KCgkY19vYmplY3RfdHlwZSkkY19vYmplY3RfbmFtZSktPiRhdHRyaWJ1dGVf
bmFtZSk7ICAvKiB1bnJlZiB0aGUgJGF0dHJpYnV0ZV9uYW1lICovXG4iKTsN
CiAgICB9DQoNCiAgICBwcmludF9leGFtcGxlX2R1bXBfZnVuYyAoJG5vZGUs
DQoJCQkgICAgICJcbiIsDQoJCQkgICAgICgkaXNfYmFzaWNfdHlwZQ0KCQkJ
ICAgICAgPw0KCQkJICAgICAgIiAgJGNfZnByaW50Zl9mdW5jICgkY19mcF92
YXIsIFwiJGlkbF90eXBlICRhdHRyaWJ1dGVfbmFtZSA9ICRiYXNpY190eXBl
X3ByaW50ZlxcblwiLCAkY19vYmplY3RfbmFtZS0+JGF0dHJpYnV0ZV9uYW1l
KTtcbiINCgkJCSAgICAgIDoNCgkJCSAgICAgICIgICRjX2ZwcmludGZfZnVu
YyAoJGNfZnBfdmFyLCBcIiRpZGxfdHlwZSAkYXR0cmlidXRlX25hbWUgPSB7
XCIpO1xuIiAuDQoJCQkgICAgICAiICAkY190eXBlXF8kY19kdW1wX21ldGhv
ZFxfJGNfcHRyX3N1ZmZpeCAoJiRjX29iamVjdF9uYW1lLT4kYXR0cmlidXRl
X25hbWUsICRjX2ZwX3Zhcik7XG4iIC4NCgkJCSAgICAgICIgICRjX2Zwcmlu
dGZfZnVuYyAoJGNfZnBfdmFyLCBcIn1cXG5cIik7XG4iKSwNCgkJCSAgICAg
IlxuIik7DQogICAgDQogICAgcHJpbnRfZXhhbXBsZV9zdHJ1Y3QgKCRub2Rl
LA0KCQkJICAiICAkY190eXBlICRhdHRyaWJ1dGVfbmFtZTsgICAgIC8qIGF0
dHJpYnV0ZSAkYXR0cmlidXRlX25hbWUgKHJlcXVpcmVkKSAqL1xuIik7DQp9
DQoNCnN1YiBuZXdfcmVhZG9ubHlfYXR0cmlidXRlIHsNCiAgICBteSAoJG5v
ZGUsICRiZWZvcmVfY29tbWVudHNfcmVmLCAkaWRsX3R5cGUsICRhdHRyaWJ1
dGVfbmFtZSkgPSBAXzsNCiAgICBteSAkY190eXBlID0gZmluZF9zY29wZV9h
bmRfZ2V0X2NfdHlwZSgkbm9kZSwgJGlkbF90eXBlKTsNCiAgICBteSAkY19h
dHRyaWJ1dGVfbmFtZSA9IGZpbmRfc2NvcGVfYW5kX2dldF9jX3R5cGUoJG5v
ZGUsICRhdHRyaWJ1dGVfbmFtZSk7DQogICAgbXkgJGNfbWV0aG9kX3ByZWZp
eCA9IGNfdHlwZSgkbm9kZSwgJGNfYXR0cmlidXRlX25hbWUpOw0KICAgIG15
ICRjX2VuY2xvc2luZ19zdHJ1Y3Rfb3JfdW5pb24gPSBjX2VuY2xvc2luZ19z
dHJ1Y3Rfb3JfdW5pb24oJG5vZGUpOw0KICAgIG15ICRjX29iamVjdF90eXBl
ID0gY19vYmplY3RfdHlwZSAoJG5vZGUpOw0KICAgIG15ICRjX29iamVjdF9u
YW1lID0gY19vYmplY3RfbmFtZSAoJG5vZGUpOw0KICAgIG15ICRpc19iYXNp
Y190eXBlID0gaXNfYmFzaWNfdHlwZSAoJGlkbF90eXBlKTsNCiAgICBteSAk
YmFzaWNfdHlwZV9wcmludGYgPSAkaXNfYmFzaWNfdHlwZSA/IGJhc2ljX3R5
cGVfcHJpbnRmICgkaWRsX3R5cGUpIDogdW5kZWY7DQoNCiAgICByZXBvcnQg
KCRub2RlLCAicmVhZG9ubHkgYXR0cmlidXRlICRpZGxfdHlwZSAkYXR0cmli
dXRlX25hbWUiLCAiKGluICRjX2VuY2xvc2luZ19zdHJ1Y3Rfb3JfdW5pb24p
ICRjX3R5cGUgJGF0dHJpYnV0ZV9uYW1lIik7DQoNCiAgICBjb21tZW50X2V4
cG9ydGVkX2RlZiAoJG5vZGUsICJSZWFkb25seSBhdHRyaWJ1dGUgJGlkbF90
eXBlIiwgJGF0dHJpYnV0ZV9uYW1lKTsNCg0KICAgIHByaW50X2V4cG9ydGVk
X2RlZiAoJG5vZGUsDQoJCSAgICAiJGNfdHlwZSAkY19tZXRob2RfcHJlZml4
XF9nZXQgKCRjX29iamVjdF90eXBlKTsiLA0KCQkgICAgY2F0X2VvbF9jb21t
ZW50cyAoQCRiZWZvcmVfY29tbWVudHNfcmVmKSwNCgkJICAgICJ2b2lkICRj
X21ldGhvZF9wcmVmaXhcX3NldCAoJGNfb2JqZWN0X3R5cGUsICRjX3R5cGUp
O1xuIik7DQoNCiAgICBjb21tZW50X21pc2NfZnVuYyAoJG5vZGUsICJnZXQg
bWV0aG9kIGZvciByZWFkb25seSBhdHRyaWJ1dGUgJGlkbF90eXBlIiwgJGF0
dHJpYnV0ZV9uYW1lKTsNCg0KICAgIHByaW50X21pc2NfZnVuYyAoJG5vZGUs
DQoJCSAgICAgIiRjX3R5cGUgJGNfbWV0aG9kX3ByZWZpeFxfZ2V0ICgkY19v
YmplY3RfdHlwZSAkY19vYmplY3RfbmFtZSlcbiIsDQoJCSAgICAgIntcbiIs
DQoJCSAgICAgIiAgJGNfdHlwZSAkYXR0cmlidXRlX25hbWUgPSAkY19vYmpl
Y3RfbmFtZS0+JGF0dHJpYnV0ZV9uYW1lO1xuIiwNCgkJICAgICAkaXNfYmFz
aWNfdHlwZSA/ICIiIDogIiAgJGNfdHlwZVxfJGNfcmVmX21ldGhvZCAoJGF0
dHJpYnV0ZV9uYW1lKTtcbiIsDQoJCSAgICAgIiAgcmV0dXJuICRhdHRyaWJ1
dGVfbmFtZTtcbiIsDQoJCSAgICAgIn1cbiIsDQoJCSAgICAgIlxuIik7DQoN
CiAgICBpZiAoISRpc19iYXNpY190eXBlKSB7DQoNCglwcmludF9zd2Fuc29u
Z19mdW5jICgkbm9kZSwNCgkJCSAgICAgIiAgJGNfdHlwZVxfJGNfdW5yZWZf
bWV0aG9kXF8kY19wdHJfc3VmZml4ICgmKCgkY19vYmplY3RfdHlwZSkkY19v
YmplY3RfbmFtZSktPiRhdHRyaWJ1dGVfbmFtZSk7ICAvKiB1bnJlZiB0aGUg
JGF0dHJpYnV0ZV9uYW1lICovXG4iKTsNCiAgICB9DQoNCiAgICBwcmludF9l
eGFtcGxlX2R1bXBfZnVuYyAoJG5vZGUsDQoJCQkgICAgICJcbiIsDQoJCQkg
ICAgICgkaXNfYmFzaWNfdHlwZQ0KCQkJICAgICAgPw0KCQkJICAgICAgIiAg
JGNfZnByaW50Zl9mdW5jICgkY19mcF92YXIsIFwiJGlkbF90eXBlICRhdHRy
aWJ1dGVfbmFtZSA9ICRiYXNpY190eXBlX3ByaW50ZlxcblwiLCAkY19vYmpl
Y3RfbmFtZS0+JGF0dHJpYnV0ZV9uYW1lKTtcbiINCgkJCSAgICAgIDoNCgkJ
CSAgICAgICIgICRjX2ZwcmludGZfZnVuYyAoJGNfZnBfdmFyLCBcIiRpZGxf
dHlwZSAkYXR0cmlidXRlX25hbWUgPSBce1wiKTtcbiIgLg0KCQkJICAgICAg
IiAgJGNfdHlwZVxfJGNfZHVtcF9tZXRob2RcXyRjX3B0cl9zdWZmaXggKCYk
Y19vYmplY3RfbmFtZS0+JGF0dHJpYnV0ZV9uYW1lLCAkY19mcF92YXIpO1xu
IiAuDQoJCQkgICAgICAiICAkY19mcHJpbnRmX2Z1bmMgKCRjX2ZwX3Zhciwg
XCJcfVxcblwiKTtcbiIpLA0KCQkJICAgICAiXG4iKTsNCiAgICANCiAgICBw
cmludF9leGFtcGxlX3N0cnVjdCAoJG5vZGUsDQoJCQkgICIgICRjX3R5cGUg
JGF0dHJpYnV0ZV9uYW1lOyAgICAgLyogcmVhZG9ubHkgYXR0cmlidXRlICRh
dHRyaWJ1dGVfbmFtZSAocmVxdWlyZWQpICovXG4iKTsNCn0NCg0Kc3ViIG5l
d19kYXRhX21lbWJlciB7DQogICAgbXkgKCRub2RlLCAkYmVmb3JlX2NvbW1l
bnRzX3JlZiwgJGlkbF90eXBlLCAkbWVtYmVyX25hbWUpID0gQF87DQogICAg
bXkgJGNfdHlwZSA9IGZpbmRfc2NvcGVfYW5kX2dldF9jX3R5cGUoJG5vZGUs
ICRpZGxfdHlwZSk7DQogICAgbXkgJGNfZW5jbG9zaW5nX3N0cnVjdF9vcl91
bmlvbiA9IGNfZW5jbG9zaW5nX3N0cnVjdF9vcl91bmlvbigkbm9kZSk7DQog
ICAgbXkgJGlzX2Jhc2ljX3R5cGUgPSBpc19iYXNpY190eXBlICgkaWRsX3R5
cGUpOw0KICAgIG15ICRiYXNpY190eXBlX3ByaW50ZiA9ICRpc19iYXNpY190
eXBlID8gYmFzaWNfdHlwZV9wcmludGYgKCRpZGxfdHlwZSkgOiB1bmRlZjsN
CiAgICBteSAkY19vYmplY3RfbmFtZSA9IGNfb2JqZWN0X25hbWUgKCRub2Rl
KTsNCg0KIyAgICByZXBvcnQgKCRub2RlLCAiKG1lbWJlcikgJGlkbF90eXBl
ICRtZW1iZXJfbmFtZSIsICIoaW4gJGNfZW5jbG9zaW5nX3N0cnVjdF9vcl91
bmlvbikgJGNfdHlwZSAkbWVtYmVyX25hbWUiKTsNCg0KICAgIHByaW50X2V4
cG9ydGVkX2RlZiAoJG5vZGUsDQoJCSAgICAiICAkY190eXBlICRtZW1iZXJf
bmFtZTsiLA0KCQkgICAgY2F0X2VvbF9jb21tZW50cyAoQCRiZWZvcmVfY29t
bWVudHNfcmVmKSk7DQoNCiAgICBpZiAoISRpc19iYXNpY190eXBlKSB7DQoJ
cHJpbnRfcmVmX2Z1bmMgKCRub2RlLA0KCQkJIiAgJGNfdHlwZVxfJGNfcmVm
X21ldGhvZFxfJGNfcHRyX3N1ZmZpeCAoJiRjX29iamVjdF9uYW1lLT4kbWVt
YmVyX25hbWUpOyAgLyogcmVmIHRoZSAkbWVtYmVyX25hbWUgKi9cbiIpOw0K
DQoJcHJpbnRfdW5yZWZfZnVuYyAoJG5vZGUsDQoJCQkiICAkY190eXBlXF8k
Y191bnJlZl9tZXRob2RcXyRjX3B0cl9zdWZmaXggKCYkY19vYmplY3RfbmFt
ZS0+JG1lbWJlcl9uYW1lKTsgIC8qIHVucmVmIHRoZSAkbWVtYmVyX25hbWUg
Ki9cbiIpOw0KICAgIH0NCg0KICAgIHByaW50X2R1bXBfZnVuYyAoJG5vZGUs
DQoJCSAgICAgKCRpc19iYXNpY190eXBlDQoJCSAgICAgID8NCgkJICAgICAg
IiAgJGNfZnByaW50Zl9mdW5jICgkY19mcF92YXIsIFwiJGlkbF90eXBlICRt
ZW1iZXJfbmFtZSA9ICRiYXNpY190eXBlX3ByaW50ZlxuXCIsICRjX29iamVj
dF9uYW1lXF8kY19wdHJfc3VmZml4LT4kbWVtYmVyX25hbWUpO1xuIg0KCQkg
ICAgICA6DQoJCSAgICAgICIgICRjX2ZwcmludGZfZnVuYyAoJGNfZnBfdmFy
LCBcIiRpZGxfdHlwZSAkbWVtYmVyX25hbWUgPSB7XCIpO1xuIiAuDQoJCSAg
ICAgICIgICRjX3R5cGVcXyRjX2R1bXBfbWV0aG9kXF8kY19wdHJfc3VmZml4
ICgmJGNfb2JqZWN0X25hbWVcXyRjX3B0cl9zdWZmaXgtPiRtZW1iZXJfbmFt
ZSwgJGNfZnBfdmFyKTtcbiIgLg0KCQkgICAgICAiICAkY19mcHJpbnRmX2Z1
bmMgKCRjX2ZwX3ZhciwgXCJ9XFxuXCIpO1xuIiksDQoJCSAgICAgICJcbiIp
Ow0KfQ0KDQpzdWIgbmV3X3ZpcnR1YWxfbWV0aG9kIHsNCiAgICBteSAoJG5v
ZGUsICRiZWZvcmVfY29tbWVudHNfcmVmLCAkaWRsX3JldHVybl90eXBlLCAk
aWRsX21ldGhvZF9uYW1lLCAkaWRsX29wZW5pbmdfYnJhY2tldCwgJGlkbF9h
cmdfbGlzdCkgPSBAXzsNCiAgICBjaGVja19yZXNlcnZlZCAoJGlkbF9tZXRo
b2RfbmFtZSk7DQogICAgbXkgJGlkbF9tZXRob2RfcHJlZml4ID0gZ2V0X2lk
bF9tZXRob2RfcHJlZml4ICgkaWRsX21ldGhvZF9uYW1lKTsNCiAgICBteSAk
Y19yZXR1cm5fdHlwZSA9IGZpbmRfc2NvcGVfYW5kX2dldF9jX3R5cGUoJG5v
ZGUsICRpZGxfcmV0dXJuX3R5cGUpOw0KICAgIG15ICRjX3R5cGUgPSBjX3R5
cGUoJG5vZGUsICRpZGxfbWV0aG9kX3ByZWZpeCk7DQogICAgbXkgJGNfcG9p
bnRlcl90eXBlID0gJGNfdHlwZSAuICJfJGNfcHRyX3N1ZmZpeCI7DQogICAg
bXkgJGNfb2JqZWN0X3R5cGUgPSBjX29iamVjdF90eXBlKCRub2RlKTsNCiAg
ICBteSAkY19vYmplY3RfbmFtZSA9IGNfb2JqZWN0X25hbWUoJG5vZGUpOw0K
ICAgIG15ICRjX2FyZ19saXN0ID0gY29udmVydF9hcmdfbGlzdF90b19jICgk
bm9kZSwgJGlkbF9hcmdfbGlzdCk7DQogICAgbXkgJGNfcGFyYW1ldGVyX2xp
c3QgPSBjb252ZXJ0X2FyZ19saXN0X3RvX2NfcGFyYW1ldGVyX2xpc3QgKCRu
b2RlLCAkaWRsX2FyZ19saXN0KTsNCiAgICBteSAkY190eXBlX2xpc3QgPSBj
b252ZXJ0X2FyZ19saXN0X3RvX2NfdHlwZV9saXN0ICgkbm9kZSwgJGlkbF9h
cmdfbGlzdCk7DQoNCiAgICByZXBvcnQgKCRub2RlLCAiKHZpcnR1YWwgbWV0
aG9kKSAkaWRsX3JldHVybl90eXBlICRpZGxfbWV0aG9kX25hbWUoJGlkbF9h
cmdfbGlzdCkiLCAiJGNfcmV0dXJuX3R5cGUgJGNfdHlwZSAoJGNfcGFyYW1l
dGVyX2xpc3QpIik7DQogICAgbmV3X3R5cGUgKCRub2RlLCAkaWRsX21ldGhv
ZF9uYW1lLCAkY190eXBlKTsNCiAgICANCiAgICBjb21tZW50X2V4cG9ydGVk
X2RlZiAoJG5vZGUsICJWaXJ0dWFsIG1ldGhvZCAkaWRsX3JldHVybl90eXBl
IiwgIiRpZGxfbWV0aG9kX3ByZWZpeCgpIik7DQoNCiAgICBwcmludF9leHBv
cnRlZF9kZWYgKCRub2RlLA0KCQkgICAgIiRjX3JldHVybl90eXBlICRjX3R5
cGUgKCRjX3R5cGVfbGlzdCk7IiwNCgkJICAgIGNhdF9lb2xfY29tbWVudHMg
KEAkYmVmb3JlX2NvbW1lbnRzX3JlZikpOyAgICMgY291bGQgZG8gYmV0dGVy
IGhlcmUNCiAgICANCiAgICBjb21tZW50X2ltcGxfcHJvdG90eXBlICgkbm9k
ZSwgInZpcnR1YWwgbWV0aG9kICRpZGxfcmV0dXJuX3R5cGUiLCAiJGlkbF9t
ZXRob2RfcHJlZml4KCkiKTsNCg0KICAgIHByaW50X2ltcGxfcHJvdG90eXBl
ICgkbm9kZSwNCgkJCSAgIiRjX3JldHVybl90eXBlICRjX3R5cGVcXyRjX2Rl
ZmF1bHRfc3VmZml4ICgkY190eXBlX2xpc3QpOyAgICAgICAvKiBkZWZhdWx0
ICRpZGxfbWV0aG9kX3ByZWZpeCBtZXRob2QgKi9cbiIsDQoJCQkgICJcbiIs
DQoJCQkgICJ0eXBlZGVmICRjX3JldHVybl90eXBlICgkY190eXBlXF8kY19w
dHJfc3VmZml4KikgKCRjX3R5cGVfbGlzdCk7ICAgICAvKiBwb2ludGVyIHRv
ICRpZGxfbWV0aG9kX3ByZWZpeCBtZXRob2QgKi9cbiIsDQoJCQkgICJcbiIp
Ow0KDQogICAgcHJpbnRfb3ZlcnR1cmVfZnVuYyAoJG5vZGUsDQoJCQkgIiAg
JGNfb2JqZWN0X25hbWUtPiRpZGxfbWV0aG9kX3ByZWZpeCA9ICRjX3R5cGVc
XyRjX2RlZmF1bHRfc3VmZml4OyAgLyogZGVmYXVsdCAkaWRsX21ldGhvZF9w
cmVmaXggbWV0aG9kICovXG4iKTsNCiAgICANCiAgICBjb21tZW50X3ZpcnR1
YWxfZnVuYyAoJG5vZGUsICJ3cmFwcGVyIGZvciB2aXJ0dWFsIG1ldGhvZCAk
aWRsX3JldHVybl90eXBlIiwgIiRpZGxfbWV0aG9kX3ByZWZpeCgpIik7DQoN
CiAgICBwcmludF92aXJ0dWFsX2Z1bmMgKCRub2RlLA0KCQkJIiRjX3JldHVy
bl90eXBlICRjX3R5cGUgKCRjX2FyZ19saXN0KVxuIiwNCgkJCSJ7XG4iLA0K
CQkJIiAgIiAuICgkY19yZXR1cm5fdHlwZSBlcSAidm9pZCIgPyAiIiA6ICJy
ZXR1cm4gIikgLiAiKCokY19vYmplY3RfbmFtZS0+JGlkbF9tZXRob2RfcHJl
Zml4KSAoJGNfcGFyYW1ldGVyX2xpc3QpO1xuIiwNCgkJCSJ9XG4iLA0KCQkJ
IlxuIik7DQoNCiAgICBwcmludF9leGFtcGxlX3N0cnVjdCAoJG5vZGUsDQoJ
CQkgICIgICRjX3R5cGVcXyRjX3B0cl9zdWZmaXggJGlkbF9tZXRob2RfcHJl
Zml4OyAgICAgICAgIC8qIHBvaW50ZXIgdG8gJGlkbF9tZXRob2RfcHJlZml4
IGZ1bmN0aW9uIChyZXF1aXJlZCkgKi9cbiIpOw0KDQogICAgY29tbWVudF9l
eGFtcGxlX2Z1bmMgKCRub2RlLCAiRXhhbXBsZSBjb2RlIGZvciBkZWZhdWx0
IiwgIiRpZGxfbWV0aG9kX3ByZWZpeCBtZXRob2QiKTsNCg0KICAgIHByaW50
X2V4YW1wbGVfZnVuYyAoJG5vZGUsDQoJCQkiJGNfcmV0dXJuX3R5cGUgJGNf
dHlwZVxfJGNfZGVmYXVsdF9zdWZmaXggKCRjX2FyZ19saXN0KVxuIiwNCgkJ
CSJ7XG4iLA0KCQkJIiAgJGNfb2JqZWN0X3R5cGVcXyRjX3JhaXNlX21ldGhv
ZCAoJGNfb2JqZWN0X25hbWUsICRjX29iamVjdF90eXBlXF8kY191bmltcGxl
bWVudGVkX2V4Y2VwdGlvbik7XG4iLA0KCQkJIiAgcmV0dXJuIiAuICgkY19y
ZXR1cm5fdHlwZSBlcSAidm9pZCIgPyAiIiA6ICIgMCIpIC4gIjtcbiIsDQoJ
CQkifVxuIiwNCgkJCSJcbiIpOw0KfQ0KDQpzdWIgbmV3X3ZpcnR1YWxfbWV0
aG9kX3JhaXNlcyB7DQogICAgbXkgKCRub2RlLCAkYmVmb3JlX2NvbW1lbnRz
X3JlZiwgJGlkbF9yZXR1cm5fdHlwZSwgJGlkbF9tZXRob2RfbmFtZSwgJGlk
bF9vcGVuaW5nX2JyYWNrZXQsICRpZGxfYXJnX2xpc3QsICRpZGxfZXhjZXB0
aW9uc19saXN0KSA9IEBfOw0KICAgIGNoZWNrX3Jlc2VydmVkICgkaWRsX21l
dGhvZF9uYW1lKTsNCiAgICBteSAkaWRsX21ldGhvZF9wcmVmaXggPSBnZXRf
aWRsX21ldGhvZF9wcmVmaXggKCRpZGxfbWV0aG9kX25hbWUpOw0KICAgIG15
ICRjX3JldHVybl90eXBlID0gZmluZF9zY29wZV9hbmRfZ2V0X2NfdHlwZSgk
bm9kZSwgJGlkbF9yZXR1cm5fdHlwZSk7DQogICAgbXkgJGNfdHlwZSA9IGNf
dHlwZSgkbm9kZSwgJGlkbF9tZXRob2RfcHJlZml4KTsNCiAgICBteSAkY19w
b2ludGVyX3R5cGUgPSAkY190eXBlIC4gIl8kY19wdHJfc3VmZml4IjsNCiAg
ICBteSAkY19vYmplY3RfdHlwZSA9IGNfb2JqZWN0X3R5cGUoJG5vZGUpOw0K
ICAgIG15ICRjX29iamVjdF9uYW1lID0gY19vYmplY3RfbmFtZSgkbm9kZSk7
DQogICAgbXkgJGNfYXJnX2xpc3QgPSBjb252ZXJ0X2FyZ19saXN0X3RvX2Mg
KCRub2RlLCAkaWRsX2FyZ19saXN0KTsNCiAgICBteSAkY19wYXJhbWV0ZXJf
bGlzdCA9IGNvbnZlcnRfYXJnX2xpc3RfdG9fY19wYXJhbWV0ZXJfbGlzdCAo
JG5vZGUsICRpZGxfYXJnX2xpc3QpOw0KICAgIG15ICRjX3R5cGVfbGlzdCA9
IGNvbnZlcnRfYXJnX2xpc3RfdG9fY190eXBlX2xpc3QgKCRub2RlLCAkaWRs
X2FyZ19saXN0KTsNCg0KICAgIHJlcG9ydCAoJG5vZGUsICIodmlydHVhbCBt
ZXRob2QpICRpZGxfcmV0dXJuX3R5cGUgJGlkbF9tZXRob2RfbmFtZSgkaWRs
X2FyZ19saXN0KSByYWlzZXMgKCRpZGxfZXhjZXB0aW9uc19saXN0KSIsICIk
Y19yZXR1cm5fdHlwZSAkY190eXBlICgkY19wYXJhbWV0ZXJfbGlzdCkiKTsN
Cg0KICAgIG5ld190eXBlICgkbm9kZSwgJGlkbF9tZXRob2RfbmFtZSwgJGNf
dHlwZSk7DQogICAgY29tbWVudF9leHBvcnRlZF9kZWYgKCRub2RlLCAiVmly
dHVhbCBtZXRob2QgJGlkbF9yZXR1cm5fdHlwZSIsICIkaWRsX21ldGhvZF9w
cmVmaXgoKSByYWlzZXMgKCRpZGxfZXhjZXB0aW9uc19saXN0KSIpOw0KDQog
ICAgcHJpbnRfZXhwb3J0ZWRfZGVmICgkbm9kZSwNCgkJICAgICIkY19yZXR1
cm5fdHlwZSAkY190eXBlICgkY190eXBlX2xpc3QpOyIsDQoJCSAgICBjYXRf
ZW9sX2NvbW1lbnRzIChAJGJlZm9yZV9jb21tZW50c19yZWYpKTsgICAjIGNv
dWxkIGRvIGJldHRlciBoZXJlDQogICAgDQogICAgY29tbWVudF9pbXBsX3By
b3RvdHlwZSAoJG5vZGUsICJ2aXJ0dWFsIG1ldGhvZCAkaWRsX3JldHVybl90
eXBlIiwgIiRpZGxfbWV0aG9kX3ByZWZpeCgpIHJhaXNlcyAoJGlkbF9leGNl
cHRpb25zX2xpc3QpIik7DQoNCiAgICBwcmludF9pbXBsX3Byb3RvdHlwZSAo
JG5vZGUsDQoJCQkgICIkY19yZXR1cm5fdHlwZSAkY190eXBlXF8kY19kZWZh
dWx0X3N1ZmZpeCAoJGNfdHlwZV9saXN0KTsgICAgICAgLyogZGVmYXVsdCAk
aWRsX21ldGhvZF9wcmVmaXggbWV0aG9kICovXG4iLA0KCQkJICAiXG4iLA0K
CQkJICAidHlwZWRlZiAkY19yZXR1cm5fdHlwZSAoJGNfdHlwZVxfJGNfcHRy
X3N1ZmZpeCopICgkY190eXBlX2xpc3QpOyAgICAgLyogcG9pbnRlciB0byAk
aWRsX21ldGhvZF9wcmVmaXggbWV0aG9kICovXG4iLA0KCQkJICAiXG4iKTsN
Cg0KICAgIHByaW50X292ZXJ0dXJlX2Z1bmMgKCRub2RlLA0KCQkJICIgICRj
X29iamVjdF9uYW1lLT4kaWRsX21ldGhvZF9wcmVmaXggPSAkY190eXBlXF8k
Y19kZWZhdWx0X3N1ZmZpeDsgIC8qIGRlZmF1bHQgJGlkbF9tZXRob2RfcHJl
Zml4IG1ldGhvZCAqL1xuIik7DQogICAgDQogICAgY29tbWVudF92aXJ0dWFs
X2Z1bmMgKCRub2RlLCAid3JhcHBlciBmb3IgdmlydHVhbCBtZXRob2QgJGlk
bF9yZXR1cm5fdHlwZSIsICIkaWRsX21ldGhvZF9wcmVmaXgoKSByYWlzZXMg
KCRpZGxfZXhjZXB0aW9uc19saXN0KSIpOw0KDQogICAgcHJpbnRfdmlydHVh
bF9mdW5jICgkbm9kZSwNCgkJCSIkY19yZXR1cm5fdHlwZSAkY190eXBlICgk
Y19hcmdfbGlzdClcbiIsDQoJCQkie1xuIiwNCgkJCSIgICIgLiAoJGNfcmV0
dXJuX3R5cGUgZXEgInZvaWQiID8gIiIgOiAicmV0dXJuICIpIC4gIigqJGNf
b2JqZWN0X25hbWUtPiRpZGxfbWV0aG9kX3ByZWZpeCkgKCRjX3BhcmFtZXRl
cl9saXN0KTtcbiIsDQoJCQkifVxuIiwNCgkJCSJcbiIpOw0KDQogICAgcHJp
bnRfZXhhbXBsZV9zdHJ1Y3QgKCRub2RlLA0KCQkJICAiICAkY190eXBlXF8k
Y19wdHJfc3VmZml4ICRpZGxfbWV0aG9kX3ByZWZpeDsgICAgICAgICAvKiBw
b2ludGVyIHRvICRpZGxfbWV0aG9kX3ByZWZpeCBmdW5jdGlvbiAocmVxdWly
ZWQpICovXG4iKTsNCg0KICAgIGNvbW1lbnRfZXhhbXBsZV9mdW5jICgkbm9k
ZSwgIkV4YW1wbGUgY29kZSBmb3IgZGVmYXVsdCIsICIkaWRsX21ldGhvZF9w
cmVmaXggbWV0aG9kIik7DQoNCiAgICBwcmludF9leGFtcGxlX2Z1bmMgKCRu
b2RlLA0KCQkJIiRjX3JldHVybl90eXBlICRjX3R5cGVcXyRjX2RlZmF1bHRf
c3VmZml4ICgkY19hcmdfbGlzdClcbiIsDQoJCQkie1xuIiwNCgkJCSIgICRj
X29iamVjdF90eXBlXF8kY19yYWlzZV9tZXRob2QgKCRjX29iamVjdF9uYW1l
LCAkY19vYmplY3RfdHlwZVxfJGNfdW5pbXBsZW1lbnRlZF9leGNlcHRpb24p
O1xuIiwNCgkJCSIgIHJldHVybiIgLiAoJGNfcmV0dXJuX3R5cGUgZXEgInZv
aWQiID8gIiIgOiAiIDAiKSAuICI7XG4iLA0KCQkJIn1cbiIsDQoJCQkiXG4i
KTsNCn0NCg0Kc3ViIG5ld19tZXRob2Qgew0KICAgIG15ICgkbm9kZSwgJGJl
Zm9yZV9jb21tZW50c19yZWYsICRpZGxfcmV0dXJuX3R5cGUsICRpZGxfbWV0
aG9kX25hbWUsICRpZGxfb3BlbmluZ19icmFja2V0LCAkaWRsX2FyZ19saXN0
KSA9IEBfOw0KICAgIGNoZWNrX3Jlc2VydmVkICgkaWRsX21ldGhvZF9uYW1l
KTsNCiAgICBteSAkY19yZXR1cm5fdHlwZSA9IGZpbmRfc2NvcGVfYW5kX2dl
dF9jX3R5cGUoJG5vZGUsICRpZGxfcmV0dXJuX3R5cGUpOw0KICAgIG15ICRj
X2Z1bmN0aW9uX25hbWUgPSBjX3R5cGUoJG5vZGUsICRpZGxfbWV0aG9kX25h
bWUpOw0KICAgIG15ICRjX29iamVjdF90eXBlID0gY19vYmplY3RfdHlwZSgk
bm9kZSk7DQogICAgbXkgJGNfb2JqZWN0X25hbWUgPSBjX29iamVjdF9uYW1l
KCRub2RlKTsNCiAgICBteSAkY19hcmdfbGlzdCA9IGNvbnZlcnRfYXJnX2xp
c3RfdG9fYyAoJG5vZGUsICRpZGxfYXJnX2xpc3QpOw0KICAgIG15ICRjX3R5
cGVfbGlzdCA9IGNvbnZlcnRfYXJnX2xpc3RfdG9fY190eXBlX2xpc3QgKCRu
b2RlLCAkaWRsX2FyZ19saXN0KTsNCg0KICAgIHJlcG9ydCAoJG5vZGUsICIo
bWV0aG9kKSAkaWRsX3JldHVybl90eXBlICRpZGxfbWV0aG9kX25hbWUgKCRp
ZGxfYXJnX2xpc3QpIiwgIiRjX3JldHVybl90eXBlICRjX2Z1bmN0aW9uX25h
bWUgKCRjX2FyZ19saXN0KSIpOw0KDQogICAgY29tbWVudF9leHBvcnRlZF9k
ZWYgKCRub2RlLCAiTWV0aG9kICRpZGxfcmV0dXJuX3R5cGUiLCAiJGlkbF9t
ZXRob2RfbmFtZSgpIik7DQoNCiAgICBwcmludF9leHBvcnRlZF9kZWYgKCRu
b2RlLCAiJGNfcmV0dXJuX3R5cGUgJGNfZnVuY3Rpb25fbmFtZSAoJGNfdHlw
ZV9saXN0KTsiLA0KCQkgICAgY2F0X2VvbF9jb21tZW50cyAoQCRiZWZvcmVf
Y29tbWVudHNfcmVmKSk7DQoNCiAgICBjb21tZW50X2V4YW1wbGVfZnVuYyAo
JG5vZGUsICJFeGFtcGxlIGNvZGUgZm9yIiwgJGlkbF9tZXRob2RfbmFtZSk7
DQoNCiAgICBwcmludF9leGFtcGxlX2Z1bmMgKCRub2RlLA0KCQkJIiRjX3Jl
dHVybl90eXBlICRjX2Z1bmN0aW9uX25hbWUgKCRjX2FyZ19saXN0KVxuIiwN
CgkJCSJ7XG4iLA0KCQkJIiAgJGNfb2JqZWN0X3R5cGVcXyRjX3JhaXNlX21l
dGhvZCAoJGNfb2JqZWN0X25hbWUsICRjX29iamVjdF90eXBlXF8kY191bmlt
cGxlbWVudGVkX2V4Y2VwdGlvbik7XG4iLA0KCQkJIiAgcmV0dXJuIiAuICgk
Y19yZXR1cm5fdHlwZSBlcSAidm9pZCIgPyAiIiA6ICIgMCIpIC4gIjtcbiIs
DQoJCQkifVxuIiwNCgkJCSJcbiIpOw0KfQ0KDQpzdWIgbmV3X21ldGhvZF9y
YWlzZXMgew0KICAgIG15ICgkbm9kZSwgJGJlZm9yZV9jb21tZW50c19yZWYs
ICRpZGxfcmV0dXJuX3R5cGUsICRpZGxfbWV0aG9kX25hbWUsICRpZGxfb3Bl
bmluZ19icmFja2V0LCAkaWRsX2FyZ19saXN0LCAkaWRsX2V4Y2VwdGlvbnNf
bGlzdCkgPSBAXzsNCiAgICBjaGVja19yZXNlcnZlZCAoJGlkbF9tZXRob2Rf
bmFtZSk7DQogICAgbXkgJGNfcmV0dXJuX3R5cGUgPSBmaW5kX3Njb3BlX2Fu
ZF9nZXRfY190eXBlKCRub2RlLCAkaWRsX3JldHVybl90eXBlKTsNCiAgICBt
eSAkY19mdW5jdGlvbl9uYW1lID0gY190eXBlKCRub2RlLCAkaWRsX21ldGhv
ZF9uYW1lKTsNCiAgICBteSAkY19vYmplY3RfdHlwZSA9IGNfb2JqZWN0X3R5
cGUoJG5vZGUpOw0KICAgIG15ICRjX29iamVjdF9uYW1lID0gY19vYmplY3Rf
bmFtZSgkbm9kZSk7DQogICAgbXkgJGNfYXJnX2xpc3QgPSBjb252ZXJ0X2Fy
Z19saXN0X3RvX2MgKCRub2RlLCAkaWRsX2FyZ19saXN0KTsNCiAgICBteSAk
Y190eXBlX2xpc3QgPSBjb252ZXJ0X2FyZ19saXN0X3RvX2NfdHlwZV9saXN0
ICgkbm9kZSwgJGlkbF9hcmdfbGlzdCk7DQoNCiAgICByZXBvcnQgKCRub2Rl
LCAiKG1ldGhvZCkgJGlkbF9yZXR1cm5fdHlwZSAkaWRsX21ldGhvZF9uYW1l
ICgkaWRsX2FyZ19saXN0KSByYWlzZXMgKCRpZGxfZXhjZXB0aW9uc19saXN0
KSIsICIkY19yZXR1cm5fdHlwZSAkY19mdW5jdGlvbl9uYW1lICgkY19hcmdf
bGlzdCkiKTsNCg0KICAgIGNvbW1lbnRfZXhwb3J0ZWRfZGVmICgkbm9kZSwg
Ik1ldGhvZCAkaWRsX3JldHVybl90eXBlIiwgIiRpZGxfbWV0aG9kX25hbWUo
KSByYWlzZXMgKCRpZGxfZXhjZXB0aW9uc19saXN0KSIpOw0KDQogICAgcHJp
bnRfZXhwb3J0ZWRfZGVmICgkbm9kZSwgIiRjX3JldHVybl90eXBlICRjX2Z1
bmN0aW9uX25hbWUgKCRjX3R5cGVfbGlzdCk7IiwNCgkJICAgIGNhdF9lb2xf
Y29tbWVudHMgKEAkYmVmb3JlX2NvbW1lbnRzX3JlZikpOw0KDQogICAgY29t
bWVudF9leGFtcGxlX2Z1bmMgKCRub2RlLCAiRXhhbXBsZSBjb2RlIGZvciAi
LCAkaWRsX21ldGhvZF9uYW1lKTsNCg0KICAgIHByaW50X2V4YW1wbGVfZnVu
YyAoJG5vZGUsDQoJCQkiJGNfcmV0dXJuX3R5cGUgJGNfZnVuY3Rpb25fbmFt
ZSAoJGNfYXJnX2xpc3QpXG4iLA0KCQkJIntcbiIsDQoJCQkiICAkY19vYmpl
Y3RfdHlwZVxfJGNfcmFpc2VfbWV0aG9kICgkY19vYmplY3RfbmFtZSwgJGNf
b2JqZWN0X3R5cGVcXyRjX3VuaW1wbGVtZW50ZWRfZXhjZXB0aW9uKTtcbiIs
DQoJCQkiICByZXR1cm4iIC4gKCRjX3JldHVybl90eXBlIGVxICJ2b2lkIiA/
ICIiIDogIiAwIikgLiAiO1xuIiwNCgkJCSJ9XG4iLA0KCQkJIlxuIik7DQp9
DQoNCnN1YiBjb252ZXJ0X2FyZ19saXN0X3RvX2Mgew0KICAgIG15ICgkbm9k
ZSwgJGlkbF9hcmdsaXN0X3N0cmluZykgPSBAXzsNCiAgICBteSBAaWRsX2Fy
ZyA9IHNwbGl0IC8gPywgPy8sICRpZGxfYXJnbGlzdF9zdHJpbmc7DQogICAg
bXkgQGNfYXJnOw0KICAgIGZvcmVhY2ggJGlkbF9hcmcgKEBpZGxfYXJnKSB7
DQoJJGlkbF9hcmcgPX4gL14gPyhcdyspICguKj8pID8oXHcrKSA/JC8gb3Ig
Y3JvYWsgIkNvdWxkbid0IHBhcnNlIGFyZ3VtZW50ICckaWRsX2FyZycgaW4g
JyRpZGxfYXJnbGlzdF9zdHJpbmcnIjsNCglteSAoJGlkbF9pbm91dCwgJGlk
bF90eXBlLCAkYXJnX25hbWUpID0gKCQxLCAkMiwgJDMpOw0KCSRpZGxfaW5v
dXQgPX4gL14oaW58b3V0fGlub3V0KSQvIG9yIGNyb2FrICJNaXNzaW5nIGlu
b3V0IG9uIGFyZyAnJGlkbF9hcmcnIGluICckaWRsX2FyZ2xpc3Rfc3RyaW5n
JyI7DQoJbXkgJGNfdHlwZSA9IGZpbmRfc2NvcGVfYW5kX2dldF9jX3R5cGUo
JG5vZGUsICRpZGxfdHlwZSk7DQoJcHVzaCBAY19hcmcsICIkY190eXBlICRh
cmdfbmFtZSI7DQogICAgfQ0KICAgIHVubGVzcyAoZGVmaW5lZCAkbm9kZS0+
eyJmYWN0b3J5In0pIHsNCglteSAkY19vYmplY3RfdHlwZSA9IGNfb2JqZWN0
X3R5cGUgKCRub2RlKTsNCglteSAkY19vYmplY3RfbmFtZSA9IGNfb2JqZWN0
X25hbWUgKCRub2RlKTsNCgl1bnNoaWZ0IEBjX2FyZywgIiRjX29iamVjdF90
eXBlICRjX29iamVjdF9uYW1lIjsNCiAgICB9DQogICAgam9pbiAoIiwgIiwg
QGNfYXJnKTsNCn0NCg0Kc3ViIGNvbnZlcnRfYXJnX2xpc3RfdG9fY19wYXJh
bWV0ZXJfbGlzdCB7DQogICAgbXkgKCRub2RlLCAkaWRsX2FyZ2xpc3Rfc3Ry
aW5nKSA9IEBfOw0KICAgIG15IEBpZGxfYXJnID0gc3BsaXQgLyA/LCA/Lywg
JGlkbF9hcmdsaXN0X3N0cmluZzsNCiAgICBteSBAY19hcmc7DQogICAgZm9y
ZWFjaCAkaWRsX2FyZyAoQGlkbF9hcmcpIHsNCgkkaWRsX2FyZyA9fiAvXiA/
KFx3KykgKC4qPykgPyhcdyspID8kLyBvciBjcm9hayAiQ291bGRuJ3QgcGFy
c2UgYXJndW1lbnQgJyRpZGxfYXJnJyBpbiAnJGlkbF9hcmdsaXN0X3N0cmlu
ZyciOw0KCW15ICgkaWRsX2lub3V0LCAkaWRsX3R5cGUsICRhcmdfbmFtZSkg
PSAoJDEsICQyLCAkMyk7DQoJJGlkbF9pbm91dCA9fiAvXihpbnxvdXR8aW5v
dXQpJC8gb3IgY3JvYWsgIk1pc3NpbmcgaW5vdXQgb24gYXJnICckaWRsX2Fy
ZycgaW4gJyRpZGxfYXJnbGlzdF9zdHJpbmcnIjsNCglwdXNoIEBjX2FyZywg
JGFyZ19uYW1lOw0KICAgIH0NCiAgICB1bmxlc3MgKGRlZmluZWQgJG5vZGUt
PnsiZmFjdG9yeSJ9KSB7DQoJbXkgJGNfb2JqZWN0X25hbWUgPSBjX29iamVj
dF9uYW1lICgkbm9kZSk7DQoJdW5zaGlmdCBAY19hcmcsICRjX29iamVjdF9u
YW1lOw0KICAgIH0NCiAgICBqb2luICgiLCAiLCBAY19hcmcpOw0KfQ0KDQpz
dWIgY29udmVydF9hcmdfbGlzdF90b19jX3R5cGVfbGlzdCB7DQogICAgbXkg
KCRub2RlLCAkaWRsX2FyZ2xpc3Rfc3RyaW5nKSA9IEBfOw0KICAgIG15IEBp
ZGxfYXJnID0gc3BsaXQgLyA/LCA/LywgJGlkbF9hcmdsaXN0X3N0cmluZzsN
CiAgICBteSBAY19hcmc7DQogICAgZm9yZWFjaCAkaWRsX2FyZyAoQGlkbF9h
cmcpIHsNCgkkaWRsX2FyZyA9fiAvXiA/KFx3KykgKC4qPykgPyhcdyspID8k
LyBvciBjcm9hayAiQ291bGRuJ3QgcGFyc2UgYXJndW1lbnQgJyRpZGxfYXJn
JyBpbiAnJGlkbF9hcmdsaXN0X3N0cmluZyciOw0KCW15ICgkaWRsX2lub3V0
LCAkaWRsX3R5cGUsICRhcmdfbmFtZSkgPSAoJDEsICQyLCAkMyk7DQoJJGlk
bF9pbm91dCA9fiAvXihpbnxvdXR8aW5vdXQpJC8gb3IgY3JvYWsgIk1pc3Np
bmcgaW5vdXQgb24gYXJnICckaWRsX2FyZycgaW4gJyRpZGxfYXJnbGlzdF9z
dHJpbmcnIjsNCglteSAkY190eXBlID0gZmluZF9zY29wZV9hbmRfZ2V0X2Nf
dHlwZSgkbm9kZSwgJGlkbF90eXBlKTsNCglwdXNoIEBjX2FyZywgJGNfdHlw
ZTsNCiAgICB9DQogICAgdW5sZXNzIChkZWZpbmVkICRub2RlLT57ImZhY3Rv
cnkifSkgew0KCW15ICRjX29iamVjdF90eXBlID0gY19vYmplY3RfdHlwZSAo
JG5vZGUpOw0KCXVuc2hpZnQgQGNfYXJnLCAkY19vYmplY3RfdHlwZTsNCiAg
ICB9DQogICAgam9pbiAoIiwgIiwgQGNfYXJnKTsNCn0NCg0KIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIw0KDQojIEV1Y2xpZCBkZWZpbml0aW9ucy4uLiBnbG9iYWxzLi4u
IHVnaA0KDQpzdWIgZGVmaW5lX2V1Y2xpZF9zdHJpbmdzIHsNCg0KIyBOYW1l
IG9mIHByb2dyYW0NCg0KICAgICRFdWNsaWQgPSAiRXVjbGlkIjsNCg0KIyBJ
REwgc3RyaW5ncw0KICAgIA0KICAgIEBpZGxfc3RyaW5ncyA9ICgkaWRsX21v
ZHVsZV9zdWZmaXggPSAiTW9kdWxlIiwNCgkJICAgICRpZGxfZmFjdG9yeV9u
YW1lID0gIkZhY3RvcnkiLA0KCQkgICAgJGlkbF92aXJ0dWFsX3N1ZmZpeCA9
ICJfdmYiKTsNCiAgICANCiMgQyBzdHJpbmdzDQogICAgDQogICAgQGNfc3Ry
aW5ncyA9ICgkY19pbmNsdWRlZF9kZWZpbmVfcHJlZml4ID0gIlRFTEVHUkFQ
SF8iLA0KCQkgICRjX2luY2x1ZGVkX2RlZmluZV9zdWZmaXggPSAiX0lOQ0xV
REVEIiwNCg0KCQkgICRjX2V1Y2xpZF9kZWZzX2ZpbGVuYW1lID0gImV1Y2xp
ZF9kZWZzLmgiLA0KDQoJCSAgJGNfZ2xvYmFsX3ByZWZpeCA9ICJ0ZyIsDQoJ
CSAgJGNfc3RydWN0X3N1ZmZpeCA9ICJzdHIiLA0KCQkgICRjX3ByaXZhdGVf
c3VmZml4ID0gInByaXZhdGUiLA0KCQkgICRjX2RlZmF1bHRfc3VmZml4ID0g
ImRmIiwNCgkJICAkY19wdHJfc3VmZml4ID0gInB0ciIsDQoNCgkJICAkY19w
cml2YXRlX3ZhciA9ICJfcHJpdiIsDQoJCSAgJGNfcmVmX3ZhciA9ICJyZWYi
LA0KCQkgICRjX2Rlcml2X3ZhciA9ICJkZXJpdiIsDQoJCSAgJGNfc3dhbnNv
bmdfdmFyID0gInN3YW5zb25nIiwNCgkJICAkY191bnJlZl9pbXBsX3ZhciA9
ICJ1bnJlZl9pbXBsIiwNCgkJICAkY19kdW1wX2ltcGxfdmFyID0gImR1bXBf
aW1wbCIsDQoNCgkJICAkY19leGNlcHRpb25fbWFjcm8gPSAidGdfcmFpc2Ui
LA0KCQkgIA0KCQkgICRjX2ZwcmludGZfZnVuYyA9ICJ0Z19mcHJpbnRmIiwN
CgkJICAkY19tYWxsb2NfZnVuYyA9ICJ0Z19tYWxsb2MiLA0KCQkgICRjX2Nh
bGxvY19mdW5jID0gInRnX2NhbGxvYyIsDQoJCSAgJGNfZnJlZV9mdW5jID0g
InRnX2ZyZWUiLA0KCQkgIA0KCQkgICRjX2ZpbGVfdHlwZSA9ICJGSUxFKiIs
DQoJCSAgJGNfZnBfdmFyID0gImZwIik7DQogICAgDQojIGV4dGVybmFsIGxp
YnJhcnkgdHlwZWRlZnMNCiAgICANCiAgICAlY190eXBlZGVmID0gKCJRdWFy
ayIgPT4gInRnUXVhcmsiLA0KCQkgICJib29sZWFuIiA9PiAidW5zaWduZWQg
aW50IiwNCgkJICAic3RyaW5nIiA9PiAidGdTdHJpbmciLA0KCQkgICJGaWxl
aGFuZGxlIiA9PiAidGdGaWxlaGFuZGxlIik7DQogICAgDQojIEMgYXV0b2dl
bmVyYXRlZCBtZXRob2RzDQogICAgDQogICAgQGNfbWV0aG9kcyA9ICgkY19y
ZWZfbWV0aG9kID0gInJlZiIsDQoJCSAgJGNfdW5yZWZfbWV0aG9kID0gInVu
cmVmIiwNCgkJICAkY19kdW1wX21ldGhvZCA9ICJkdW1wIiwNCgkJICAkY19j
YWxsb2NfbWV0aG9kID0gImNhbGxvYyIsDQoJCSAgJGNfbWFsbG9jX21ldGhv
ZCA9ICJtYWxsb2MiLA0KCQkgICRjX3JhaXNlX21ldGhvZCA9ICJyYWlzZSIs
DQoJCSAgJGNfZHVtcF9pbXBsX21ldGhvZCA9ICJkdW1wX2ltcGwiLA0KCQkg
ICRjX3VucmVmX2ltcGxfbWV0aG9kID0gInVucmVmX2ltcGwiLA0KCQkgICRj
X2Jhc2VzdF9tZXRob2QgPSAiYmFzZXN0IiwNCgkJICAkY19vdmVydHVyZV9t
ZXRob2QgPSAib3ZlcnR1cmUiLA0KCQkgICRjX3N3YW5zb25nX21ldGhvZCA9
ICJzd2Fuc29uZyIpOw0KDQogICAgQGNfaW50ZXJmYWNlX2V4Y2VwdGlvbnMg
PSAoJGNfcmVmY291bnRfZXhjZXB0aW9uID0gIkJhZFJlZmVyZW5jZUNvdW50
IiwNCgkJCSAgICAgICAkY19tZW1vcnlfZXhjZXB0aW9uID0gIk91dE9mTWVt
b3J5IiwNCgkJCSAgICAgICAkY191bmltcGxlbWVudGVkX2V4Y2VwdGlvbiA9
ICJVbmltcGxlbWVudGVkIik7DQoNCiAgICBAY19mYWN0b3J5X2V4Y2VwdGlv
bnMgPSAoJGNfbWVtb3J5X2V4Y2VwdGlvbiwgJGNfdW5pbXBsZW1lbnRlZF9l
eGNlcHRpb24pOw0KDQojIHNlcXVlbmNlPD4gbWV0aG9kcw0KDQogICAgQGNf
c2VxdWVuY2VfbWV0aG9kcyA9ICgkY19zZXF1ZW5jZV9uZXcgPSAibmV3IiwN
CgkJCSAgICRjX3NlcXVlbmNlX2NvcHkgPSAiY29weSIsDQoJCQkgICAkY19z
ZXF1ZW5jZV9zaXplID0gInNpemUiLA0KCQkJICAgJGNfc2VxdWVuY2VfZ2V0
ID0gImdldCIsDQoJCQkgICAkY19zZXF1ZW5jZV9zZXQgPSAic2V0IiwNCgkJ
CSAgICRjX3NlcXVlbmNlX2NsZWFyID0gImNsZWFyIiwNCgkJCSAgICRjX3Nl
cXVlbmNlX2FwcGVuZCA9ICJhcHBlbmQiLA0KCQkJICAgJGNfc2VxdWVuY2Vf
YXBwZW5kX2xpc3QgPSAiYXBwZW5kX2xpc3QiLA0KCQkJICAgJGNfc2VxdWVu
Y2VfY21wID0gImNtcCIsDQoJCQkgICAkY19zZXF1ZW5jZV9zb3J0ID0gInNv
cnQiLA0KCQkJICAgJGNfc2VxdWVuY2Vfc29ydF91bmlxdWUgPSAic29ydF91
bmlxdWUiLA0KCQkJICAgJGNfc2VxdWVuY2VfYXNzZXJ0X3NvcnRlZCA9ICJh
c3NlcnRfc29ydGVkIiwNCgkJCSAgICRjX3NlcXVlbmNlX2Fzc2VydF91bmlx
dWUgPSAiYXNzZXJ0X3VuaXF1ZSIsDQoJCQkgICAkY19zZXF1ZW5jZV9hc3Nl
cnRfc29ydGVkX3VuaXF1ZSA9ICJhc3NlcnRfc29ydGVkX3VuaXF1ZSIpOw0K
DQogICAgQGNfc2VxdWVuY2VfZXhjZXB0aW9ucyA9IChAY19pbnRlcmZhY2Vf
ZXhjZXB0aW9ucywNCgkJCSAgICAgICRjX3NlcXVlbmNlX2luZGV4X2V4Y2Vw
dGlvbiA9ICJJbmRleE91dE9mQm91bmRzIiwNCgkJCSAgICAgICRjX3NlcXVl
bmNlX2Fzc2VydF9leGNlcHRpb24gPSAiU29ydEFzc2VydEZhaWxlZCIpOw0K
DQojIG1ha2UgYSBsaXN0IG9mIHJlc2VydmVkIG1ldGhvZHMNCiAgICANCiAg
ICAlY19yZXNlcnZlZF9tZXRob2QgPSBtYXAgKCgkXywgMSksIEBjX21ldGhv
ZHMsIEBjX3NlcXVlbmNlX21ldGhvZHMsIEBjX3NlcXVlbmNlX2V4Y2VwdGlv
bnMpOw0KDQojIG1hY3Jvcw0KDQp9DQoNCnN1YiByZXBvcnRfZXVjbGlkX3N0
cmluZ3Mgew0KICAgIHdhcm4gIklETCBzdHJpbmdzOiBAaWRsX3N0cmluZ3Nc
biI7DQogICAgd2FybiAiQyBzdHJpbmdzOiBAY19zdHJpbmdzXG4iOw0KICAg
IHdhcm4gIlJlc2VydmVkIG1ldGhvZHM6IEBjX21ldGhvZHNcbiI7DQogICAg
d2hpbGUgKCgkdG8sJGZyb20pID0gZWFjaCAlY190eXBlZGVmKSB7IHdhcm4g
IkMgKGluaXRpYWwgdHlwZWRlZikgJGZyb20gJHRvXG4iIH0NCn0NCg0KIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIw0KDQpzdWIgbWF4IHsgbXkgJG1heCA9IHNoaWZ0OyBm
b3JlYWNoIChAXykgeyAkbWF4ID0gJF8gaWYgJF8gPiAkbWF4IH0gJG1heCB9
DQpzdWIgbWluIHsgbXkgJG1pbiA9IHNoaWZ0OyBmb3JlYWNoIChAXykgeyAk
bWluID0gJF8gaWYgJF8gPCAkbWluIH0gJG1pbiB9DQoNCiMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMNCg0Kc3ViIG92ZXJ2aWV3X3N0cmluZyB7DQogICAgZGVmaW5lX2V1
Y2xpZF9zdHJpbmdzKCk7DQogICAgIg0KT3ZlcnZpZXc6DQoNCiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCg0KICBXaXNobGlzdDogbGlzdHMNCiAgICAgICAgICAgICNpbmNsdWRl
cw0KICAgICAgICAgICAgdW5pb25zDQogICAgICAgICAgICBsaW5lIG51bWJl
cnMNCiAgICAgICAgICAgIGZpbmFsIGludGVyZmFjZXMNCg0KIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KIElhbiBIb2xtZXMgPGloaFxAZnJ1aXRmbHkub3JnPiAzLzIwLzIwMDAN
CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCg0KIFRlbGVncmFwaEV1Y2xpZCBJREwgdG8gQyBtYXBw
aW5nDQoNCiAgICAgICAgICAgICAgZXVjbGlkX2RlZnMuaCAoc2VwYXJhdGUg
ZmlsZSkNCiAgICAgICAgICAgICAgICAgICAgIw0KICAgICAgICAgICAgICAg
ICAgICBWDQogTXlNb2R1bGUuaWRsIC0tPiBteV9pZGwuaCAjPiBteV9wdWIu
aCAjPiBteV9pbXBsLmggIz4gbXlfaW1wbC5jDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICMgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5e
Xl5eDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYgICAgICAg
ICAgICAgICAgICAgICAgICBeXg0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbXlfcHJpdi5oICAgICAgICAgICAgICAgICAgXl4NCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAg
ICAgIF5eDQogICBcIiM+XCIgbWVhbnMgICAgICAgICAgICAgICAgICAgViAg
ICAgICAgICAgICAgICAgICAgICAgIF5eDQogIFwiI2luY2x1ZGVkIGJ5XCIg
ICAgICAgICAgICAgIG15X3ByaXYuYyAgIFRoaXMgaXMgd2hlcmUgaW1wbGVt
ZW50YXRpb24gY29kZSBnb2VzDQoNCiBteV9pZGwuaCAgY29udGFpbnMgZXh0
ZXJpb3IgSURMLXRvLUMgKHN0cnVjdHMgZGVmaW5lZCBpbiBmdWxsICYgcGFz
c2VkIGFzIHZhbHVlcywNCiAgICAgICAgICAgICBpbnRlcmZhY2VzIGFuZCBz
ZXF1ZW5jZXMgYXMgcG9pbnRlcnMgdG8gYW5vbnltb3VzIHN0cnVjdHMpLA0K
ICAgICAgICAgICAgIGNvbW1lbnRzIHByZXNlcnZlZCwgd2l0aCAkY19yZWZf
bWV0aG9kLyRjX3VucmVmX21ldGhvZC8kY19kdW1wX21ldGhvZCBwcm92aWRl
ZCBvbiBhbGwgbm9uLWJhc2ljIHR5cGVzLA0KICAgICAgICAgICAgICRjX2Nh
bGxvY19tZXRob2QvJGNfbWFsbG9jX21ldGhvZCBvbiBzdHJ1Y3RzLA0KICAg
ICAgICAgICAgIG1vcmUgb24gbGlzdHMgKGluY2x1ZGluZyB0eXBlc2FmZSBz
b3J0cykgLi4uIGJ1dCBsaXN0cyBhcmUgY3VycmVudGx5IHVuaW1wbGVtZW50
ZWQNCg0KIG15X3B1Yi5oICBjb250YWlucyBwcm90b3R5cGVzIGZvciBpbXBs
ZW1lbnRhdGlvbiBmdW5jdGlvbnMgJGNfZHVtcF9pbXBsX21ldGhvZC8kY191
bnJlZl9pbXBsX21ldGhvZA0KICAgICAgICAgICAgIGFzIHdlbGwgYXMgcHVi
bGljIEV1Y2xpZC1pbXBsZW1lbnRlZCBpbnRlcmZhY2UgbWV0aG9kcyAkY19j
YWxsb2NfbWV0aG9kLyRjX21hbGxvY19tZXRob2QvJGNfcmFpc2VfbWV0aG9k
DQogICAgICAgICAgICAgYW5kIHByb3RlY3RlZCBsaXN0IGRhdGENCg0KIG15
X3ByaXYuaCBjb250YWlucyBwcml2YXRlIEV1Y2xpZCBkZWZzLCBwcm90b3R5
cGVzIGFuZCBtYWNyb3MNCg0KIG15X3ByaXYuYyBjb250YWlucyBjb2RlIGZv
ciBFdWNsaWQtaW1wbGVtZW50ZWQgbWV0aG9kcw0KDQogbXlfaW1wbC5oIGNv
bnRhaW5zIG1pbmltYWwgQyBzdHJ1Y3QgZGVmaW5pdGlvbnMgZm9yIEV1Y2xp
ZE9iamVjdHMsDQogICAgICAgICAgICAgd2hpY2ggbXVzdCBoYXZlIHRoZSBm
b2xsb3dpbmcgYXR0cmlidXRlcw0KDQogICAgICAgICAgICAgICAgICAgICog
RXVjbGlkT2JqZWN0IHByaXZhdGUgZGF0YSAoYmFzZSBpbnRlcmZhY2VzIG9u
bHkpDQogICAgICAgICAgICAgICAgICAgICogcHVibGljIHBvaW50ZXIgdG8g
YmFzZSBpbnRlcmZhY2UgKGRlcml2ZWQgaW50ZXJmYWNlcyBvbmx5KQ0KICAg
ICAgICAgICAgICAgICAgICAqIGFueSB2aXJ0dWFsIG1ldGhvZHMgZGVjbGFy
ZWQgaW4gdGhlIGludGVyZmFjZQ0KDQogbXlfaW1wbC5jIGNvbnRhaW5zIGV4
Y2VwdGlvbi1yYWlzaW5nIEMgc3R1YnMgZm9yIGltcGxlbWVudGF0aW9uIG1l
dGhvZHMsIGluY2x1ZGluZw0KDQogICAgICAgICAgICAgICAgICAgICogZGVm
YXVsdHMgZm9yIGFueSBuZXdseSBkZWNsYXJlZCB2aXJ0dWFsIG1ldGhvZHMN
CiAgICAgICAgICAgICAgICAgICAgKiAkY19kdW1wX2ltcGxfbWV0aG9kLyRj
X3VucmVmX2ltcGxfbWV0aG9kIGltcGxlbWVudGF0aW9ucyBmb3IgaW50ZXJm
YWNlcw0KICAgICAgICAgICAgICAgICAgICAqIGNtcCBmdW5jdGlvbnMgZm9y
IGxpc3RzDQoNCiBldWNsaWRfZGVmcy5jDQogICAgICAgICAgIHdpbGwgY29u
dGFpbiBwcm90b3R5cGVzIGZvciBzZWxlY3RlZCBHTk9NRSBHTGliIGRhdGEg
c3RydWN0dXJlcyAmIGFsZ29yaXRobXMNCg0KIFNpbmdsZSBpbmhlcml0YW5j
ZSBpcyBtb2RlbGVkIGFzIHRoZSBwcm9wZXJ0eSBcImhhcyBhIDxiYXNlPiBp
bnRlcmZhY2VcIiB3aXRoDQogZHVtcC10by1maWxlICYgZGVzdHJ1Y3RvciBj
YWxsYmFja3MgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBmaWxsLg0KDQog
Q2FsbGVyIG11c3QgXCJjYXN0XCIgdG8gZ2V0IHRvIHRoZSBiYXNlIGludGVy
ZmFjZSwgZS5nLg0KDQogICAgIG15X2Jhc2VfbWV0aG9kIChteURlcml2ZWRJ
bnRlcmZhY2UtPm15QmFzZUludGVyZmFjZSkNCg0KIFdoZW4gY29weWluZyBp
bnRlcmZhY2VzIG9yIHN0cnVjdHMsIGltcGxlbWVudGF0aW9uIHNob3VsZCBj
YWxsIHJlZiAmIHVucmVmLCBub3QgZnJlZS4NCiBJbnRlcmZhY2VzIHJldHVy
bmVkIGluIHN0cnVjdHMgc2hvdWxkIGJlIHJlZidkOw0KIGNhbGxpbmcgcmVm
IG9uIGFueSBzdHJ1Y3QgcmVmcyBhbGwgdGhlIGVuY2xvc2VkIHR5cGVzLg0K
DQogTGlzdHMgKElETCBzZXF1ZW5jZTxYPidzKSBhcmUgcGFzc2VkIGJ5IHJl
ZmVyZW5jZSwgbGlrZSBpbnRlcmZhY2VzLA0KIGJ1dCB0cmVhdGVkIGFzIGlu
LW1lbW9yeSBvYmplY3RzIGxpa2Ugc3RydWN0cy4NCiBMaXN0cyB3aWxsIGF1
dG9tYXRpY2FsbHkgY2FsbCByZWYvdW5yZWYgb24gdGhlIFgncyB3aGVuIGNv
cHlpbmcuDQoNCiBNb2R1bGUgbmFtZXMgZW5kIGluICRpZGxfbW9kdWxlX3N1
ZmZpeC4NCiBBbGwgJGlkbF9mYWN0b3J5X25hbWUgaW50ZXJmYWNlcyBhcmUg
c3RhdGljLg0KIEFsbCBtZXRob2QgbmFtZXMgZW5kaW5nIGluICRpZGxfdmly
dHVhbF9zdWZmaXggYXJlIHZpcnR1YWwsIGFuZCBtYXkgYmUgb3ZlcnJpZGRl
biBieSBkZXJpdmVkIGludGVyZmFjZXMuDQoNCiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICBU
ZWxlZ3JhcGggZGV2ZWxvcGVycw0KDQogICBJYW4gSG9sbWVzIDxpaGhcQGZy
dWl0Zmx5Lm9yZz4NCiAgIEV3YW4gQmlybmV5IDxiaXJuZXlcQGViaS5hYy51
az4NCiAgIEd1eSBTbGF0ZXIgPGd1eVxAZWJpLmFjLnVrPg0KDQogIFJlbGVh
c2VkIHVuZGVyIHRoZSBHTlUgUHVibGljIExpY2Vuc2UNCiAgQXZhaWxhYmxl
IGZyb20gW0N2c1JlcG9zaXRvcnldDQoNCiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIg0KfQ0K
DQo=
---559023410-684387517-955312153=:8278--