three *.f90 files attached

Charlie Zender <[email protected]> Tue, 12 Aug 2003 11:46:06 -0700
Newsgroups gmane.comp.compilers.g95
Message-ID <[email protected]>
> If you are reading this, your mail reader may not support MIME.
> Some parts of this message will be readable as plain text.

--12.Aug.2003mysteryboxofun
Content-Type: application/octet-stream; name="sng_mdl.f90"
Content-Description: ~/f/sng_mdl.f90
Content-Transfer-Encoding: base64

ISAkSGVhZGVyJAoKISBQdXJwb3NlOiBMaWJyYXJ5IG9mIEZvcnRyYW4gc3RyaW5nIG1hbmlw
dWxhdGlvbiByb3V0aW5lcwoKISBDb3B5cmlnaHQgKEMpIDE5OTctLTIwMDMgQ2hhcmxpZSBa
ZW5kZXIKISBMaWNlbnNlIFN1bW1hcnk6IFgxMS1zdHlsZSBmcmVlLCBub24tcmVzdHJpY3Rp
dmUsIG5vbi1jb3B5bGVmdC4KISBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQohIGNvcHkgb2YgdGhpcyBz
b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKISAiU29m
dHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCiEgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAohIGRpc3RyaWJ1dGUsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucwohIHRvIHdob20g
dGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgcHJvdmlkZWQgdGhhdCB0aGUg
YWJvdmUKISBjb3B5cmlnaHQgbm90aWNlKHMpIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl
IGFwcGVhciBpbiBhbGwgY29waWVzIG9mCiEgdGhlIFNvZnR3YXJlIGFuZCB0aGF0IGJvdGgg
dGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMKISBwZXJtaXNzaW9uIG5v
dGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLgohIFRIRSBTT0ZUV0FS
RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF
WFBSRVNTCiEgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgohIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVAohIE9GIFRISVJEIFBBUlRZIFJJR0hU
Uy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKISBIT0xERVJT
IElOQ0xVREVEIElOIFRISVMgTk9USUNFIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBPUiBB
TlkgU1BFQ0lBTAohIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUywgT1IgQU5Z
IERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcKISBGUk9NIExPU1MgT0YgVVNFLCBEQVRB
IE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAohIE5FR0xJ
R0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OCiEgV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdB
UkUuCiEgRXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5hbWUgb2Yg
YSBjb3B5cmlnaHQgaG9sZGVyCiEgc2hhbGwgbm90IGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcg
b3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZQohIG9yIG90aGVyIGRlYWxp
bmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRp
b24KISBvZiB0aGUgY29weXJpZ2h0IGhvbGRlci4KCiEgVGhlIG9yaWdpbmFsIGF1dGhvciBv
ZiB0aGlzIHNvZnR3YXJlLCBDaGFybGllIFplbmRlciwgd2FudHMgdG8gcmVjZWl2ZQohIHlv
dXIgc3VnZ2VzdGlvbnMsIHRoYW5rcywgYnVnLXJlcG9ydHMsIGFuZCBwYXRjaGVzIHRvIGlt
cHJvdmUgaXQuCiEgQ2hhcmxpZSBaZW5kZXIgPHplbmRlciBhdCB1Y2kgZG90IGVkdT4KISBE
ZXBhcnRtZW50IG9mIEVhcnRoIFN5c3RlbSBTY2llbmNlCiEgVW5pdmVyc2l0eSBvZiBDYWxp
Zm9ybmlhIGF0IElydmluZQohIElydmluZSwgQ0EgOTI2OTctMzEwMAoKISBUaGVzZSByb3V0
aW5lcyBjb250YWluIHRoZSBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIHRvIHBhcnNlIGNvbW1h
bmQgbGluZSBhcmd1bWVudHMKISBodHRwOi8vd3d3LndpbnRlcmFjdGVyLmNvbS9mMmtjbGkv
aW5kZXguaHRtIHByb3ZpZGVzIGYya2NsaSBtb2R1bGUgCiEgcmVxdWlyZWQgYnkgc29tZSAo
bm9uLVVOSVgpIEY5WCBjb21waWxlcnMuIEYySyBwcm92aWRlcyBmdW5jdGlvbnMgbmF0aXZl
bHkuCiEgQSBzdGFuZGFsb25lIHRlc3QgcHJvZ3JhbSwgc25nLkY5MCwgaXMgdXNlZCB0byBk
ZW1vbnN0cmF0ZSBzbmdfbWRsLkY5MAoKISBSZWN1cnNpdmUgSS9POgohIERvIG5vdCBlbWJl
ZCBwcmludCBzdGF0bWVudHMgaW4gYSBmdW5jdGlvbiB3aG9zZSByZXN1bHQgaXMgYmVpbmcg
cHJpbnRlZAoKISBOeUw5NyBwLiAzMTg6IFBPVCwgVElQLCBBUFQKISBGb3IgZm9ybWF0dGVk
IEkvTywgY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIG9yIGJsYW5rcyBhcmUgYWRkZWQsCiEg
ZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGZpZWxkIHdpZHRoIGlzIHRvbyBzbWFsbCBvciB0
b28gbGFyZ2UuCiEgRm9yIGlucHV0LCB0cnVuY2F0aW9uIG9jY3VycyBvbiB0aGUgbGVmdCwg
YW5kIGJsYW5rIHBhZGRpbmcgb24gdGhlIHJpZ2h0OwohIGZvciBvdXRwdXQsIHRydW5jYXRp
b24gb2NjdXJzIG9uIHRoZSByaWdodCwgYW5kIGJsYWsgcGFkZGluZyBvbiB0aGUgbGVmdAoK
ISBOb3RlcyBvbiBQUkNfREJMLCBhdXRvLXByb21vdGlvbiwgb3ZlcmxvYWRpbmc6CiEgQXNz
dW1lIFBSQ19EQkwgaXMgZGVmaW5lZCB3aGVuIGNvbXBpbGVyIGlzIHBhc3NlZCBhdXRvcHJv
bW90aW9uIGZsYWdzICgiLXI4IikKISBUaGlzIG1lYW5zIGFsbCBmbG9hdHMgYXJlIHByb21v
dGVkIHRvIGRvdWJsZSBwcmVjaXNpb24KISBBcyBhIHJlc3VsdCwgZnRuX2FyZ19nZXRfZmx0
KCkgaXMgaWRlbnRpY2FsIHRvIGZ0bl9hcmdfZ2V0X2RibCgpIGluIHByZWNpc2lvbgohIFRo
dXMgY29tcGlsZXIgY2Fubm90IGRpc2FtYmlndWF0ZSBvdmVybG9hZGluZyB0aGVzZSB0d28g
ZnVuY3Rpb25zCiEgUmVzdWx0IGlzIE9LIG9uIGFsbCBrbm93biBjb21waWxlcnMgZXhjZXB0
IExhaGV5IGxmOTUgd2hpY2ggY29tcGxhaW5zCiEgU29sdXRpb24gaXMgdG8gZGVmaW5lIGZ0
bl9hcmdfZ2V0X2ZsdCgpIG9ubHkgd2hlbiBhdXRvLXByb21vdGlvbiBpcyBub3QgZW5hYmxl
ZAohIEFsdGVybmF0ZSBzb2x1dGlvbiBpcyBuZXZlciB1c2UgYXV0by1wcm9tb3Rpb24gd2l0
aCBsZjk1CgohIFVzYWdlOgohdXNlIHNuZ19tZGwgISBbbWRsXSBTdHJpbmcgbWFuaXB1bGF0
aW9uCgptb2R1bGUgc25nX21kbCAhIFttZGxdIFN0cmluZyBtYW5pcHVsYXRpb24KCgoKICBp
bXBsaWNpdCBub25lCiAgcHVibGljICEgW3N0dF0gU3ltYm9scyBhcmUgcHVibGljIHVubGVz
cyBpbmRpdmlkdWFsbHkgcXVhbGlmaWVkIGFzIHByaXZhdGUKICBwcml2YXRlOjpmdG5fYXJn
X2dldF9kYmwsZnRuX2FyZ19nZXRfaW50LGZ0bl9hcmdfZ2V0X2xnYyxmdG5fYXJnX2dldF9z
bmcKCiAgcHJpdmF0ZTo6ZnRuX2FyZ19nZXRfZmx0CgoKICAhIE92ZXJsb2FkZWQgY29tbWFu
ZCBsaW5lIGFyZ3VtZW50IHJldHJpZXZhbCBmdW5jdGlvbnMKICBpbnRlcmZhY2UgZnRuX2Fy
Z19nZXQKICAgICBtb2R1bGUgcHJvY2VkdXJlIGZ0bl9hcmdfZ2V0X2RibCxmdG5fYXJnX2dl
dF9pbnQsZnRuX2FyZ19nZXRfbGdjLGZ0bl9hcmdfZ2V0X3NuZwoKCiAgICAgbW9kdWxlIHBy
b2NlZHVyZSBmdG5fYXJnX2dldF9mbHQKCiAgZW5kIGludGVyZmFjZSAhIGZ0bl9hcmdfZ2V0
Cgpjb250YWlucwoKCiAgISBEZWNsYXJlIGZvcndhcmQtY29tcGF0aWJsZSBGMksgZnVuY3Rp
b25zCiAgaW50ZWdlciBmdW5jdGlvbiBjb21tYW5kX2FyZ3VtZW50X2NvdW50KCkgISBbZm5j
XSBGb3J0cmFuIGludHJpbnNpYyAoRjJLKQogICAgISBQdXJwb3NlOiBSZXR1cm4gbnVtYmVy
IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgKG5vdCBjb3VudGluZyBwcm9ncmFtIG5hbWUp
CiAgICAhIFN0YW5kYXJkaXplZCBGMksgcmVwbGFjZW1lbnQgZm9yIEY3Ny9GOVggaWFyZ2Mo
KQogICAgaW50ZXJmYWNlCiAgICAgICBpbnRlZ2VyIGZ1bmN0aW9uIGlhcmdjKCkgISBbZm5j
XSBGb3J0cmFuIGludHJpbnNpYwogICAgICAgZW5kIGZ1bmN0aW9uIGlhcmdjCiAgICBlbmQg
aW50ZXJmYWNlCiAgICBjb21tYW5kX2FyZ3VtZW50X2NvdW50PWlhcmdjKCkKICAgIHJldHVy
bgogIGVuZCBmdW5jdGlvbiBjb21tYW5kX2FyZ3VtZW50X2NvdW50CgogIHN1YnJvdXRpbmUg
Z2V0X2NvbW1hbmRfYXJndW1lbnQoYXJnX2lkeCxhcmdfdmFsKQogICAgISBQdXJwb3NlOiBS
ZXR1cm4gc3BlY2lmaWVkIGNvbW1hbmQgbGluZSBhcmd1bWVudAogICAgISBTdGFuZGFyZGl6
ZWQgRjJLIHJlcGxhY2VtZW50IGZvciBGNzcvRjlYIGlhcmdjKCkKICAgIGludGVnZXIsaW50
ZW50KGluKTo6YXJnX2lkeCAhIEkgW2lkeF0gQXJndW1lbnQgY291bnRlcgogICAgY2hhcmFj
dGVyKGxlbj0qKSxpbnRlbnQob3V0KTo6YXJnX3ZhbCAhIEkvTyBbc25nXSBTdHJpbmcgdG8g
Y29weSBpbnRvIG9wdF92YWwKICAgIGludGVyZmFjZQogICAgICAgc3Vicm91dGluZSBnZXRh
cmcoaWR4LHZhbCkgISBbZm5jXSBGb3J0cmFuIGludHJpbnNpYwogICAgICAgICBpbnRlZ2Vy
LGludGVudChpbik6OmlkeAogICAgICAgICBjaGFyYWN0ZXIobGVuPSopLGludGVudChvdXQp
Ojp2YWwKICAgICAgIGVuZCBzdWJyb3V0aW5lIGdldGFyZwogICAgZW5kIGludGVyZmFjZQog
ICAgY2FsbCBnZXRhcmcoYXJnX2lkeCxhcmdfdmFsKQogICAgcmV0dXJuCiAgZW5kIHN1YnJv
dXRpbmUgZ2V0X2NvbW1hbmRfYXJndW1lbnQKCgogIGludGVnZXIgZnVuY3Rpb24gZnRuX3N0
cmxlbihzbmcpICEgW25icl0gTGVuZ3RoIG9mIHN0cmluZwogICAgISBQdXJwb3NlOiBSZXR1
cm4gbGVuZ3RoIG9mIHN0cmluZyBwcmVjZWRpbmcgZmlyc3QgbnVsbCBjaGFyYWN0ZXIKICAg
ICEgRm9ydHJhbiBpbnRyaW5zaWMgbGVuKHNuZykgaXMgcmV0dXJuZWQgaWYgc3RyaW5nIGlz
IG5vdCBOVUwtdGVybWluYXRlZAogICAgISBQcm90b3R5cGU6CiAgICAhIGludGVnZXIgZnRu
X3N0cmxlbiAhIFtuYnJdIExlbmd0aCBvZiBzdHJpbmcKICAgIGltcGxpY2l0IG5vbmUKICAg
ICEgSW5wdXQKICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KGluKTo6c25nCiAgICAhIExv
Y2FsCiAgICBpbnRlZ2VyIGlkeAogICAgaW50ZWdlciBsbmcKICAgICEgTWFpbiBDb2RlCiAg
ICAhIE5vcm1hbGx5LCBsZW5ndGggb2Ygc3RyaW5nIGlzIHBvc2l0aW9uIG9mIGZpcnN0IGlu
c2lnbmlmaWNhbnQgY2hhcmFjdGVyIG1pbnVzIG9uZQogICAgZnRuX3N0cmxlbj1mdG5fc3Ry
ZmljKHNuZyktMSAhIFtpZHhdIEZpcnN0IE5VTCBvciA4LWJpdCBjaGFyYWN0ZXIgcG9zaXRp
b24KICAgICEgU3RyaW5nIGxlbmd0aCBtYXkgbm90IGV4Y2VlZCBidWZmZXIgc2l6ZQogICAg
aWYgKGZ0bl9zdHJsZW4gPiBsZW4oc25nKSkgZnRuX3N0cmxlbj1sZW4oc25nKQogICAgISBT
dHJpbmcgbGVuZ3RoIG1heSBub3QgYmUgbGVzcyB0aGFuIDAKICAgICEgU3RyaW5ncyBpbml0
aWFsaXplZCB0byAnJyBzaG91bGQgaGF2ZSBsZW5ndGggMCBub3QgLTEKICAgIGlmIChmdG5f
c3RybGVuIDwgMCAub3IuIHNuZyA9PSAnJykgZnRuX3N0cmxlbj0wCiAgICByZXR1cm4KICBl
bmQgZnVuY3Rpb24gZnRuX3N0cmxlbiAhIGVuZCBmdG5fc3RybGVuKCkKCiAgaW50ZWdlciBm
dW5jdGlvbiBmdG5fb3B0X2xuZ19nZXQoc25nKQogICAgISBQdXJwb3NlOiBSZXR1cm4gbGVu
Z3RoIG9mIG9wdGlvbiBzdHJpbmcgcHJlY2VkaW5nIHNwYWNlIG9yIGVxdWFscyBjaGFyYWN0
ZXIKICAgICEgQW55IHByZWNlZGluZyBkYXNoZXMgYXJlIE5PVCBjb3VudGVkIHRvd2FyZHMg
b3B0aW9uIGxlbmd0aAogICAgISBGb3J0cmFuIGludHJpbnNpYyBsZW4oc25nKSBpcyByZXR1
cm5lZCBpZiBzdHJpbmcgaXMgbm90IE5VTC10ZXJtaW5hdGVkCiAgICAhIFByb3RvdHlwZToK
ICAgICEgaW50ZWdlciBmdG5fb3B0X2xuZ19nZXQgISBbbmJyXSBMZW5ndGggb2Ygb3B0aW9u
CiAgICAhIFVzYWdlOgogICAgISBDYWxsIGZ0bl9vcHRfbG5nX2dldCB3aXRoIHRoZSBmdWxs
IG9wdGlvbiBzdHJpbmcsIGUuZy4sCiAgICAhIGZ0bl9vcHRfbG5nX2dldCgnLS1kYmdfbHZs
PTUnKSBhbmQgZnRuX29wdF9sbmdfZ2V0IHdpbGwgcmV0dXJuIHRoZQogICAgISBsZW5ndGgg
b2YgdGhlIG9wdGlvbiBzdHJpbmcKICAgICEgb3B0X3NuZz1hcmdfdmFsKDM6MitmdG5fb3B0
X2xuZ19nZXQoYXJnX3ZhbCkpICEgW3NuZ10gT3B0aW9uIHN0cmluZwogICAgISBpZiAob3B0
X3NuZyA9PSAnZGJnJykgdGhlbiAuLi4KICAgIGltcGxpY2l0IG5vbmUKICAgICEgSW5wdXQK
ICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KGluKTo6c25nCiAgICAhIExvY2FsCiAgICBp
bnRlZ2VyIGlkeAogICAgaW50ZWdlciBsZW5fc25nCiAgICBpbnRlZ2VyOjpkc2hfbmJyPTAg
ISBbbmJyXSBOdW1iZXIgb2YgZGFzaGVzCiAgICAhIE1haW4gQ29kZQogICAgISBMZW5ndGgg
b2Ygb3B0aW9uIHN0cmluZyBpcyBvbmUgbGVzcyB0aGFuIHBvc2l0aW9uIG9mIGZpcnN0IHNw
YWNlIG9yIGVxdWFsIHNpZ24KICAgIGxlbl9zbmc9bGVuKHNuZykKICAgIGlmIChsZW5fc25n
ID49IDEpIHRoZW4KICAgICAgIGlmIChzbmcoMToxKSA9PSAnLScpIGRzaF9uYnI9MSAhIFtu
YnJdIE51bWJlciBvZiBkYXNoZXMKICAgIGVuZGlmCiAgICBpZiAobGVuX3NuZyA+PSAyKSB0
aGVuCiAgICAgICBpZiAoc25nKDE6MikgPT0gJy0tJykgZHNoX25icj0yICEgW25icl0gTnVt
YmVyIG9mIGRhc2hlcwogICAgZW5kaWYKICAgIGRvIGlkeD0xLGxlbl9zbmcKICAgICAgICEg
TG9vayBmb3IgZmlyc3QgYWJub3JtYWwgY2hhcmFjdGVyCiAgICAgICBpZiAoc25nKGlkeDpp
ZHgpID09ICcgJyAub3IuIHNuZyhpZHg6aWR4KSA9PSAnPScpIGdvdG8gMTAwCiAgICBlbmQg
ZG8gISBlbmQgbG9vcCBvdmVyIGNoYXJhY3RlcnMKMTAwIGNvbnRpbnVlCiAgICBmdG5fb3B0
X2xuZ19nZXQ9aWR4LTEtZHNoX25icgogICAgISBTdHJpbmdzIGluaXRpYWxpemVkIHRvICcn
IHNob3VsZCBoYXZlIGxlbmd0aCAwCiAgICBpZiAoZnRuX29wdF9sbmdfZ2V0IDwgMCAub3Iu
IHNuZyA9PSAnJykgZnRuX29wdF9sbmdfZ2V0PTAKICAgIHJldHVybgogIGVuZCBmdW5jdGlv
biBmdG5fb3B0X2xuZ19nZXQgISBlbmQgZnRuX29wdF9sbmdfZ2V0KCkKCiAgc3Vicm91dGlu
ZSBmdG5fZ2V0YXJnX3dycCggJiAhIFtzYnJdIENhbGwgZ2V0YXJnKCkgYW5kIGluY3JlbWVu
dCBhcmdfaWR4CiAgICAgICBhcmdfaWR4LCAmICEgSS9PIFtpZHhdIEFyZ3VtZW50IGNvdW50
ZXIKICAgICAgIGFyZ192YWwpICEgSS9PIFtzbmddIFN0cmluZyB0byBjb3B5IGludG8gb3B0
X3ZhbAogICAgISBQdXJwb3NlOiBXcmFwcGVyIGZvciBnZXRhcmcoKSBpbnRyaW5zaWMgdGhh
dCBpbmNyZW1lbnRzIGFyZ3VtZW50IGNvdW50ZXIKICAgICEgQXJndW1lbnQgaW5kZXggaXMg
aW5jcmVtZW50ZWQgYWZ0ZXIgZ2V0YXJnKCkgaXMgY2FsbGVkCiAgICAhIFVzYWdlOgogICAg
ISBjYWxsIGZ0bl9nZXRhcmdfd3JwKGFyZ19pZHgsYXJnX3ZhbCkgISBbc2JyXSBDYWxsIGdl
dGFyZygpIGFuZCBpbmNyZW1lbnQgYXJnX2lkeAogICAgdXNlIGRiZ19tZGwgISBbbWRsXSBE
ZWJ1Z2dpbmcgY29uc3RhbnRzLCBwcmdfbm0sIGRiZ19sdmwKICAgIGltcGxpY2l0IG5vbmUK
ICAgICEgQ29tbW9ucwogICAgISBJbnB1dAogICAgISBJbnB1dC9PdXRwdXQKICAgIGludGVn
ZXIsaW50ZW50KGlub3V0KTo6YXJnX2lkeCAhIEkvTyBbaWR4XSBBcmd1bWVudCBjb3VudGVy
CiAgICBjaGFyYWN0ZXIobGVuPSopLGludGVudChpbm91dCk6OmFyZ192YWwgISBJL08gW3Nu
Z10gU3RyaW5nIHRvIGNvcHkgaW50byBvcHRfdmFsCiAgICAhIE91dHB1dAogICAgISBMb2Nh
bAogICAgISBNYWluIENvZGUKICAgIGNhbGwgZ2V0X2NvbW1hbmRfYXJndW1lbnQoYXJnX2lk
eCxhcmdfdmFsKQogICAgaWYgKGRiZ19sdmwgPj0gZGJnX2lvKSB3cml0ZSAoNiwnKDJhLGky
LDJhKScpIHByZ19ubSgxOmZ0bl9zdHJsc2MocHJnX25tKSksICYKICAgICAgICAgJzogREVC
VUcgZnRuX2dldGFyZ193cnAoKSByZXBvcnRzIGFyZ19pZHggPSAnLGFyZ19pZHgsJywgYXJn
X3ZhbCA9ICcsYXJnX3ZhbCgxOmxlbl90cmltKGFyZ192YWwpKQogICAgISBJbmNyZW1lbnQg
Y291bnRlciBmb3IgbmV4dCByZWFkCiAgICBhcmdfaWR4PWFyZ19pZHgrMQogICAgcmV0dXJu
CiAgZW5kIHN1YnJvdXRpbmUgZnRuX2dldGFyZ193cnAKCiAgc3Vicm91dGluZSBmdG5fZ2V0
YXJnX2VyciggJiAhIFtzYnJdIEVycm9yIGhhbmRsZXIgZm9yIGdldGFyZygpCiAgICAgICBh
cmdfaWR4LCAmICEgSS9PIFtpZHhdIEFyZ3VtZW50IGNvdW50ZXIKICAgICAgIGFyZ192YWwp
ICEgSS9PIFtzbmddIFN0cmluZyB0byBjb3B5IGludG8gb3B0X3ZhbAogICAgISBQdXJwb3Nl
OiBIYW5kbGUgb3B0aW9uIG5vdCBmb3VuZCBlcnJvcnMgZm9yIGdldG9wdCgpCiAgICAhIFJv
dXRpbmUgYXNzdW1lcyBhcmdfaWR4IHBvaW50cyB0byBhcmdfdmFsCiAgICAhIFR5cGljYWxs
eSBhcmdfaWR4IGlzIGFkdmFuY2VkIGJlZm9yZSBvcHRpb24gcmVjb2duaXRpb24gaXMgYXR0
ZW1wdGVkLAogICAgISB0aHVzIGFyZ19pZHggbWF5IG5lZWQgdG8gYmUgZGVjcmVtZW50ZWQg
YmVmb3JlIGZ0bl9nZXRhcmdfZXJyKCkgaXMgY2FsbGVkCiAgICAhIFVzYWdlOgogICAgISBj
YWxsIGZ0bl9nZXRhcmdfZXJyKGFyZ19pZHgsYXJnX3ZhbCkgISBbc2JyXSBFcnJvciBoYW5k
bGVyIGZvciBnZXRhcmcoKQogICAgdXNlIGRiZ19tZGwgISBbbWRsXSBEZWJ1Z2dpbmcgY29u
c3RhbnRzLCBwcmdfbm0sIGRiZ19sdmwKICAgIGltcGxpY2l0IG5vbmUKICAgICEgQ29tbW9u
cwogICAgISBJbnB1dAogICAgISBJbnB1dC9PdXRwdXQKICAgIGludGVnZXIsaW50ZW50KGlu
b3V0KTo6YXJnX2lkeCAhIEkvTyBbaWR4XSBBcmd1bWVudCBjb3VudGVyCiAgICBjaGFyYWN0
ZXIobGVuPSopLGludGVudChpbm91dCk6OmFyZ192YWwgISBJL08gW3NuZ10gU3RyaW5nIHRv
IGNvcHkgaW50byBvcHRfdmFsCiAgICAhIE91dHB1dAogICAgISBMb2NhbAogICAgaW50ZWdl
ciBhcmdfbmJyICEgW25icl0gTnVtYmVyIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKICAg
IGludGVnZXIgZXhpdF9zdGF0dXMgISBbZW5tXSBQcm9ncmFtIGV4aXQgc3RhdHVzCiAgICAh
IE1haW4gQ29kZQogICAgYXJnX25icj1jb21tYW5kX2FyZ3VtZW50X2NvdW50KCkgISBbbmJy
XSBOdW1iZXIgb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwogICAgd3JpdGUgKDYsJygyYSkn
KSBwcmdfbm0oMTpmdG5fc3RybHNjKHByZ19ubSkpLCc6IEVSUk9SIE9wdGlvbiBub3QgcmVj
b2duaXplZCcKICAgIHdyaXRlICg2LCcoMmEpJykgcHJnX25tKDE6ZnRuX3N0cmxzYyhwcmdf
bm0pKSwnOiBISU5UIE9wdGlvbiBzeW50YXggaXMgbmVhcmx5IFBPU0lYL0dOVSBjb21wbGlh
bnQ6JwogICAgd3JpdGUgKDYsJygyYSknKSBwcmdfbm0oMTpmdG5fc3RybHNjKHByZ19ubSkp
LCAmCiAgICAgICAgICc6IFNob3J0IG9wdGlvbiBzeW50YXggaXMgZGFzaC1rZXktc3BhY2Ut
dmFsdWUsIGUuZy4sIC1EIDInCiAgICB3cml0ZSAoNiwnKDNhKScpIHByZ19ubSgxOmZ0bl9z
dHJsc2MocHJnX25tKSksICYKICAgICAgICAgJzogTG9uZyBvcHRpb24gc3ludGF4IGlzIGRh
c2gtZGFzaC1rZXktc3BhY2UtdmFsdWUsIGUuZy4sIC0tZGJnIDInLCAmCiAgICAgICAgICcs
IG9yIGRhc2gtZGFzaC1rZXktZXF1YWwtdmFsdWUsIGUuZy4sIC0tZGJnPTIgKHByZWZlcnJl
ZCknCiAgICAhIFN1YnRyYWN0IDEgZnJvbSBhcmdfaWR4IGJlY2F1c2UgcnVsZSBpcyB0aGF0
IGFyZ19pZHggaXMgaW5jcmVtZW50ZWQgYmVmb3JlIG9wdGlvbiByZWNvZ25pdGlvbiBpcyBh
dHRlbXB0ZWQKICAgIHdyaXRlICg2LCcoMmEsaTIsMmEpJykgcHJnX25tKDE6ZnRuX3N0cmxz
Yyhwcmdfbm0pKSwgJgogICAgICAgICAnOiBERUJVRyBmdG5fZ2V0YXJnX2VycigpIHJlcG9y
dHMgYXJnX2lkeCA9ICcsYXJnX2lkeCwnLCBhcmdfdmFsID0gJyxhcmdfdmFsKDE6bGVuX3Ry
aW0oYXJnX3ZhbCkpCiAgICBpZiAoYXJnX2lkeCsxIDw9IGFyZ19uYnIpIHRoZW4KICAgICAg
IGFyZ19pZHg9YXJnX2lkeCsxICEgW2lkeF0gQ291bnRpbmcgaW5kZXgKICAgICAgIGNhbGwg
Z2V0X2NvbW1hbmRfYXJndW1lbnQoYXJnX2lkeCxhcmdfdmFsKQogICAgICAgd3JpdGUgKDYs
JygyYSxpMiwyYSknKSBwcmdfbm0oMTpmdG5fc3RybHNjKHByZ19ubSkpLCAmCiAgICAgICAg
ICAgICc6IERFQlVHIE5leHQgYXJndW1lbnQgdmFsdWUgaXMgYXJnX3ZhbCgnLGFyZ19pZHgs
JykgPSAnLGFyZ192YWwKICAgIGVsc2UKICAgICAgIHdyaXRlICg2LCcoMmEpJykgcHJnX25t
KDE6ZnRuX3N0cmxzYyhwcmdfbm0pKSwgJgogICAgICAgICAgICAnOiBERUJVRyBObyBtb3Jl
IGFyZ3VtZW50cyBmb3VuZCcKICAgIGVuZGlmICEgZW5kaWYgbm90IGxhc3QgYXJndW1lbnQK
ICAgIGV4aXRfc3RhdHVzPS0xICEgW2VubV0gUHJvZ3JhbSBleGl0IHN0YXR1cwogICAgY2Fs
bCBleGl0KGV4aXRfc3RhdHVzKSAhIEV4aXQgd2l0aCBjdXJyZW50IGV4aXQgc3RhdHVzCiAg
ICByZXR1cm4KICBlbmQgc3Vicm91dGluZSBmdG5fZ2V0YXJnX2VycgoKICAhIE5vdGVzIGNv
bW1vbiB0byBhbGwgYXJnX2dldCgpIHJvdXRpbmVzOgogICEgYXJnX3ZhbCBpcyBhc3N1bWVk
IHRvIGJlIHByZXNlbnQgYXMgYSBjb21tYW5kIGxpbmUgbGluZSBvcHRpb24KICAhIE9uIGlu
cHV0LCBmaXJzdCB0d28gY2hhcmFjdGVycyBvZiBhcmdfdmFsIGFyZSBhc3N1bWVkIHRvIGJl
IGRhc2hlcywKICAhIGFsdGhvdWdoIHRoaXMgd291bGQgbm90IGJlIHRvbyBkaWZmaWN1bHQg
dG8gY2hhbmdlLgogICEgUm91dGluZSBhY2NlcHRzIG9wdGlvbnMgc3BlY2lmaWVkIGluIFBP
U0lYIGZvcm1hdDogIi0tb3B0X3NuZyB2YWwiIG9yICItLW9wdF9zbmc9dmFsIiAocHJlZmVy
cmVkKQogICEgQ2FzZSAxOiBPcHRpb24gc3RyaW5nIGFuZCB2YWx1ZSBhcmUgc2VwYXJhdGVk
IGJ5IHNwYWNlICIgIiBjb25qdW5jdGlvbgogICEgT24gaW5wdXQsIGFyZ192YWwgaXMgYXNz
dW1lZCB0byBob2xkIG9wdGlvbiBzdHJpbmcgd2l0aCBkYXNoZXMsIGUuZy4sICItLW9wdF9z
bmciCiAgISBPbiBvdXRwdXQsIGFyZ192YWwgaG9sZHMgY29ycmVzcG9uZGluZyBhcmd1bWVu
dCwgZS5nLiwgIjczIgogICEgUm91dGluZSB1c2VzIGdldGFyZygpIHRvIG9idGFpbiBhcmdf
dmFsLCB0aGVuIGluY3JlbWVudHMgYXJnX2lkeAogICEgQ2FzZSAyOiBPcHRpb24gc3RyaW5n
IGFuZCB2YWx1ZSBhcmUgc2VwYXJhdGVkIGJ5IGVxdWFscyAiPSIgY29uanVuY3Rpb24KICAh
IE9uIGlucHV0IGFuZCBvdXRwdXQsIGFyZ192YWwgaG9sZHMgZW50aXJlIG9wdGlvbiBhbmQg
dmFsdWUsIGUuZy4sICItLW9wdF9zbmc9NzMiCiAgISBSb3V0aW5lcyBkbyBub3QgY2FsbCBn
ZXRhcmcoKSB0byBjaGFuZ2UgYXJnX3ZhbCBhbmQgZG8gbm90IGluY3JlbWVudCBhcmdfaWR4
CgogIHN1YnJvdXRpbmUgZnRuX2FyZ19nZXRfZGJsKCAmICEgW3Nicl0gUHJvY2VzcyBkb3Vi
bGUtdmFsdWVkIGNvbW1hbmQgbGluZSBhcmd1bWVudAogICAgICAgYXJnX2lkeCwgJiAhIEkv
TyBbaWR4XSBBcmd1bWVudCBjb3VudGVyCiAgICAgICBhcmdfdmFsLCAmICEgSS9PIFtzbmdd
IERvdWJsZSB0byBjb3B5IGludG8gb3B0X3ZhbAogICAgICAgb3B0X3ZhbCkgISBPIFtmcmNd
IFZhcmlhYmxlIHRvIHJlY2VpdmUgY29weSBvZiBhcmdfdmFsCiAgICAhIFB1cnBvc2U6IENv
cHkgY29tbWFuZC1saW5lIGRvdWJsZSBhcmd1bWVudCBhcmdfdmFsIGludG8gdmFyaWFibGUg
b3B0X3ZhbAogICAgISBVc2FnZToKICAgICEgY2FsbCBmdG5fYXJnX2dldF9kYmwoYXJnX2lk
eCxhcmdfdmFsLG9wdF92YWwpICEgW3Nicl0gUHJvY2VzcyBkb3VibGUtdmFsdWVkIGNvbW1h
bmQgbGluZSBhcmd1bWVudAogICAgdXNlIGRiZ19tZGwgISBbbWRsXSBEZWJ1Z2dpbmcgY29u
c3RhbnRzLCBwcmdfbm0sIGRiZ19sdmwKICAgIGltcGxpY2l0IG5vbmUKICAgICEgUGFyYW1l
dGVycwogICAgY2hhcmFjdGVyKGxlbj0qKSxwYXJhbWV0ZXI6OnNicl9ubT0nZnRuX2FyZ19n
ZXRfZGJsJyAhIFtzbmddIFN1YnJvdXRpbmUgbmFtZQogICAgISBDb21tb25zCiAgICAhIElu
cHV0CiAgICAhIElucHV0L091dHB1dAogICAgaW50ZWdlcixpbnRlbnQoaW5vdXQpOjphcmdf
aWR4ICEgSS9PIFtpZHhdIEFyZ3VtZW50IGNvdW50ZXIKICAgIGNoYXJhY3RlcihsZW49Kiks
aW50ZW50KGlub3V0KTo6YXJnX3ZhbCAhIEkvTyBbc25nXSBEb3VibGUgdG8gY29weSBpbnRv
IG9wdF92YWwKICAgICEgT3V0cHV0CiAgICByZWFsKHNlbGVjdGVkX3JlYWxfa2luZChwPTEy
KSksaW50ZW50KG91dCk6Om9wdF92YWwgISBPIFtzbmddIFZhcmlhYmxlIHRvIHJlY2VpdmUg
Y29weSBvZiBhcmdfdmFsCiAgICAhIExvY2FsCiAgICBpbnRlZ2VyIGlkeAogICAgaW50ZWdl
ciBhcmdfbG5nICEgW25icl0gTGVuZ3RoIG9mIGFyZ3VtZW50CiAgICBpbnRlZ2VyIG9wdF9s
bmcgISBbbmJyXSBMZW5ndGggb2Ygb3B0aW9uCiAgICBpbnRlZ2VyIGFyZ192YWxfc3J0X2lk
eCAhIFtpZHhdIFN0YXJ0aW5nIHBvc2l0aW9uIG9mIGFyZ3VtZW50IHZhbHVlCiAgICBsb2dp
Y2FsIG9wdF9jbmpfaXNfc3BjICEgW2ZsZ10gT3B0aW9uIGNvbmp1bmN0aW9uIGlzIHNwYWNl
IGNoYXJhY3RlcgogICAgISBNYWluIENvZGUKICAgICEgUHJpbnQgYW55IGRpYWdub3N0aWNz
IGJlZm9yZSBjdXJyZW50IHZhbHVlIG9mIGFyZ192YWwgaXMgb3ZlcndyaXR0ZW4KICAgIGFy
Z19sbmc9bGVuX3RyaW0oYXJnX3ZhbCkgISBbbmJyXSBMZW5ndGggb2YgYXJndW1lbnQKICAg
IG9wdF9sbmc9ZnRuX29wdF9sbmdfZ2V0KGFyZ192YWwpICEgW25icl0gTGVuZ3RoIG9mIG9w
dGlvbgogICAgaWYgKGRiZ19sdmwgPj0gZGJnX2lvKSB0aGVuCiAgICAgICB3cml0ZSAoNiwn
KDJhLGkyLDNhLGkyKScpIHByZ19ubSgxOmZ0bl9zdHJsc2MocHJnX25tKSksICYKICAgICAg
ICAgICAgJzogREVCVUcgJy8vc2JyX25tLy8nKCkgcmVwb3J0cyBhcmdfaWR4ID0gJyxhcmdf
aWR4LCAgJgogICAgICAgICAgICAnLCBGdWxsIG9wdGlvbiA9ICcnJyxhcmdfdmFsKDE6YXJn
X2xuZyksJycnLCBMZW5ndGggPSAnLGFyZ19sbmcKICAgIGVuZGlmICEgZW5kaWYgZGJnCiAg
ICAhIERldGVybWluZSB3aGV0aGVyIGZvcm1hdCBpcyAtLW9wdF9zbmc9dmFsIG9yIC0tb3B0
X3NuZyB2YWwKICAgICEgQWRkIDIgdG8gY292ZXIgcHJlbGltaW5hcnkgZGFzaGVzCiAgICBp
ZiAob3B0X2xuZysyIDwgYXJnX2xuZykgdGhlbgogICAgICAgb3B0X2Nual9pc19zcGM9LmZh
bHNlLiAhIFtmbGddIE9wdGlvbiBjb25qdW5jdGlvbiBpcyBzcGFjZSBjaGFyYWN0ZXIKICAg
ICAgIGFyZ192YWxfc3J0X2lkeD0zK29wdF9sbmcrMSAhIFtpZHhdIFN0YXJ0aW5nIHBvc2l0
aW9uIG9mIGFyZ3VtZW50IHZhbHVlCiAgICAgICBpZiAoZGJnX2x2bCA+PSBkYmdfaW8pIHRo
ZW4KICAgICAgICAgIHdyaXRlICg2LCcoOGEpJykgcHJnX25tKDE6ZnRuX3N0cmxzYyhwcmdf
bm0pKSwgJgogICAgICAgICAgICAgICAnOiBERUJVRyAnLy9zYnJfbm0vLycoKSBkaWFzc2Vt
YmxlcyBhcmd1bWVudCBpbnRvIE9wdGlvbiA9ICcnJywgJgogICAgICAgICAgICAgICBhcmdf
dmFsKDM6MitvcHRfbG5nKSwnJycsIGNvbmp1bmN0aW9uIGlzICcnJywgJgogICAgICAgICAg
ICAgICBhcmdfdmFsKDMrb3B0X2xuZzozK29wdF9sbmcpLCcnJywgYXJndW1lbnQgPSAnJycs
ICYKICAgICAgICAgICAgICAgYXJnX3ZhbChhcmdfdmFsX3NydF9pZHg6YXJnX2xuZyksJycn
JyAhIFF1b3RlIHN5bnRheCBpcyBteXN0aWNhbAogICAgICAgZW5kaWYgISBlbmRpZiBkYmcK
ICAgIGVsc2UKICAgICAgIG9wdF9jbmpfaXNfc3BjPS50cnVlLiAhIFtmbGddIE9wdGlvbiBj
b25qdW5jdGlvbiBpcyBzcGFjZSBjaGFyYWN0ZXIKICAgICAgIGFyZ192YWxfc3J0X2lkeD0x
ICEgW2lkeF0gU3RhcnRpbmcgcG9zaXRpb24gb2YgYXJndW1lbnQgdmFsdWUKICAgIGVuZGlm
ICEgZW5kaWYKICAgIGlmIChvcHRfY25qX2lzX3NwYykgdGhlbgogICAgICAgISBPYnRhaW4g
dmFsdWUgb2Ygb3B0aW9uIGJ5IGdldHRpbmcgbmV4dCBjb21tYW5kIGxpbmUgYXJndW1lbnQK
ICAgICAgICEgTmV3IGFyZ3VtZW50cyB3aWxsIGFsdGVyIGlucHV0IHZhbHVlcyBvZiBhcmdf
aWR4LGFyZ192YWwKICAgICAgIGNhbGwgZ2V0X2NvbW1hbmRfYXJndW1lbnQoYXJnX2lkeCxh
cmdfdmFsKQogICAgICAgISBJbmNyZW1lbnQgY291bnRlciBmb3IgbmV4dCByZWFkCiAgICAg
ICBhcmdfaWR4PWFyZ19pZHgrMQogICAgICAgISBTYW5pdHkgY2hlY2tzCiAgICAgICBhcmdf
bG5nPWxlbl90cmltKGFyZ192YWwpICEgW25icl0gTGVuZ3RoIG9mIGFyZ3VtZW50CiAgICAg
ICBpZiAoYXJnX2xuZyA8PSAwKSBzdG9wICdmdG5fPz8/X2FyZ19nZXQoKSByZXBvcnRzIG9w
dGlvbiBsYWNrcyBhcmd1bWVudCcKICAgIGVuZGlmICEgZW5kaWYgb3B0X2Nual9pc19zcGMK
ICAgICEgUmVhZCBhcmd1bWVudCBpbnRvIGRvdWJsZSBhbmQgcmV0dXJuCiAgICByZWFkIChh
cmdfdmFsKGFyZ192YWxfc3J0X2lkeDphcmdfbG5nKSwqKSBvcHRfdmFsICEgW25icl0gVmFy
aWFibGUgdG8gcmVjZWl2ZSBjb3B5IG9mIGFyZ192YWwKICAgIGlmIChkYmdfbHZsID49IGRi
Z19pbykgdGhlbgogICAgICAgd3JpdGUgKDYsJygyYSxnMTIuNiknKSBwcmdfbm0oMTpmdG5f
c3RybHNjKHByZ19ubSkpLCAmCiAgICAgICAgICAgICc6IERFQlVHICcvL3Nicl9ubS8vJygp
IGFzc2lnbmVkIGFyZ3VtZW50IHZhbHVlID0gJyxvcHRfdmFsCiAgICBlbmRpZiAhIGVuZGlm
CiAgICByZXR1cm4KICBlbmQgc3Vicm91dGluZSBmdG5fYXJnX2dldF9kYmwKCgogIHN1YnJv
dXRpbmUgZnRuX2FyZ19nZXRfZmx0KCAmICEgW3Nicl0gUHJvY2VzcyBmbG9hdC12YWx1ZWQg
Y29tbWFuZCBsaW5lIGFyZ3VtZW50CiAgICAgICBhcmdfaWR4LCAmICEgSS9PIFtpZHhdIEFy
Z3VtZW50IGNvdW50ZXIKICAgICAgIGFyZ192YWwsICYgISBJL08gW3NuZ10gRmxvYXQgdG8g
Y29weSBpbnRvIG9wdF92YWwKICAgICAgIG9wdF92YWwpICEgTyBbZnJjXSBWYXJpYWJsZSB0
byByZWNlaXZlIGNvcHkgb2YgYXJnX3ZhbAogICAgISBQdXJwb3NlOiBDb3B5IGNvbW1hbmQt
bGluZSBmbG9hdCBhcmd1bWVudCBhcmdfdmFsIGludG8gdmFyaWFibGUgb3B0X3ZhbAogICAg
ISBVc2FnZToKICAgICEgY2FsbCBmdG5fYXJnX2dldF9mbHQoYXJnX2lkeCxhcmdfdmFsLG9w
dF92YWwpICEgW3Nicl0gUHJvY2VzcyBmbG9hdC12YWx1ZWQgY29tbWFuZCBsaW5lIGFyZ3Vt
ZW50CiAgICB1c2UgZGJnX21kbCAhIFttZGxdIERlYnVnZ2luZyBjb25zdGFudHMsIHByZ19u
bSwgZGJnX2x2bAogICAgaW1wbGljaXQgbm9uZQogICAgISBQYXJhbWV0ZXJzCiAgICBjaGFy
YWN0ZXIobGVuPSopLHBhcmFtZXRlcjo6c2JyX25tPSdmdG5fYXJnX2dldF9mbHQnICEgW3Nu
Z10gU3Vicm91dGluZSBuYW1lCiAgICAhIENvbW1vbnMKICAgICEgSW5wdXQKICAgICEgSW5w
dXQvT3V0cHV0CiAgICBpbnRlZ2VyLGludGVudChpbm91dCk6OmFyZ19pZHggISBJL08gW2lk
eF0gQXJndW1lbnQgY291bnRlcgogICAgY2hhcmFjdGVyKGxlbj0qKSxpbnRlbnQoaW5vdXQp
OjphcmdfdmFsICEgSS9PIFtzbmddIEZsb2F0IHRvIGNvcHkgaW50byBvcHRfdmFsCiAgICAh
IE91dHB1dAogICAgcmVhbChzZWxlY3RlZF9yZWFsX2tpbmQocD02KSksaW50ZW50KG91dCk6
Om9wdF92YWwgISBPIFtzbmddIFZhcmlhYmxlIHRvIHJlY2VpdmUgY29weSBvZiBhcmdfdmFs
CiAgICAhIExvY2FsCiAgICBpbnRlZ2VyIGlkeAogICAgaW50ZWdlciBhcmdfbG5nICEgW25i
cl0gTGVuZ3RoIG9mIGFyZ3VtZW50CiAgICBpbnRlZ2VyIG9wdF9sbmcgISBbbmJyXSBMZW5n
dGggb2Ygb3B0aW9uCiAgICBpbnRlZ2VyIGFyZ192YWxfc3J0X2lkeCAhIFtpZHhdIFN0YXJ0
aW5nIHBvc2l0aW9uIG9mIGFyZ3VtZW50IHZhbHVlCiAgICBsb2dpY2FsIG9wdF9jbmpfaXNf
c3BjICEgW2ZsZ10gT3B0aW9uIGNvbmp1bmN0aW9uIGlzIHNwYWNlIGNoYXJhY3RlcgogICAg
ISBNYWluIENvZGUKICAgICEgUHJpbnQgYW55IGRpYWdub3N0aWNzIGJlZm9yZSBjdXJyZW50
IHZhbHVlIG9mIGFyZ192YWwgaXMgb3ZlcndyaXR0ZW4KICAgIGFyZ19sbmc9bGVuX3RyaW0o
YXJnX3ZhbCkgISBbbmJyXSBMZW5ndGggb2YgYXJndW1lbnQKICAgIG9wdF9sbmc9ZnRuX29w
dF9sbmdfZ2V0KGFyZ192YWwpICEgW25icl0gTGVuZ3RoIG9mIG9wdGlvbgogICAgaWYgKGRi
Z19sdmwgPj0gZGJnX2lvKSB0aGVuCiAgICAgICB3cml0ZSAoNiwnKDJhLGkyLDNhLGkyKScp
IHByZ19ubSgxOmZ0bl9zdHJsc2MocHJnX25tKSksICYKICAgICAgICAgICAgJzogREVCVUcg
Jy8vc2JyX25tLy8nKCkgcmVwb3J0cyBhcmdfaWR4ID0gJyxhcmdfaWR4LCAgJgogICAgICAg
ICAgICAnLCBGdWxsIG9wdGlvbiA9ICcnJyxhcmdfdmFsKDE6YXJnX2xuZyksJycnLCBMZW5n
dGggPSAnLGFyZ19sbmcKICAgIGVuZGlmICEgZW5kaWYgZGJnCiAgICAhIERldGVybWluZSB3
aGV0aGVyIGZvcm1hdCBpcyAtLW9wdF9zbmc9dmFsIG9yIC0tb3B0X3NuZyB2YWwKICAgICEg
QWRkIDIgdG8gY292ZXIgcHJlbGltaW5hcnkgZGFzaGVzCiAgICBpZiAob3B0X2xuZysyIDwg
YXJnX2xuZykgdGhlbgogICAgICAgb3B0X2Nual9pc19zcGM9LmZhbHNlLiAhIFtmbGddIE9w
dGlvbiBjb25qdW5jdGlvbiBpcyBzcGFjZSBjaGFyYWN0ZXIKICAgICAgIGFyZ192YWxfc3J0
X2lkeD0zK29wdF9sbmcrMSAhIFtpZHhdIFN0YXJ0aW5nIHBvc2l0aW9uIG9mIGFyZ3VtZW50
IHZhbHVlCiAgICAgICBpZiAoZGJnX2x2bCA+PSBkYmdfaW8pIHRoZW4KICAgICAgICAgIHdy
aXRlICg2LCcoOGEpJykgcHJnX25tKDE6ZnRuX3N0cmxzYyhwcmdfbm0pKSwgJgogICAgICAg
ICAgICAgICAnOiBERUJVRyAnLy9zYnJfbm0vLycoKSBkaWFzc2VtYmxlcyBhcmd1bWVudCBp
bnRvIE9wdGlvbiA9ICcnJywgJgogICAgICAgICAgICAgICBhcmdfdmFsKDM6MitvcHRfbG5n
KSwnJycsIGNvbmp1bmN0aW9uIGlzICcnJywgJgogICAgICAgICAgICAgICBhcmdfdmFsKDMr
b3B0X2xuZzozK29wdF9sbmcpLCcnJywgYXJndW1lbnQgPSAnJycsICYKICAgICAgICAgICAg
ICAgYXJnX3ZhbChhcmdfdmFsX3NydF9pZHg6YXJnX2xuZyksJycnJyAhIFF1b3RlIHN5bnRh
eCBpcyBteXN0aWNhbAogICAgICAgZW5kaWYgISBlbmRpZiBkYmcKICAgIGVsc2UKICAgICAg
IG9wdF9jbmpfaXNfc3BjPS50cnVlLiAhIFtmbGddIE9wdGlvbiBjb25qdW5jdGlvbiBpcyBz
cGFjZSBjaGFyYWN0ZXIKICAgICAgIGFyZ192YWxfc3J0X2lkeD0xICEgW2lkeF0gU3RhcnRp
bmcgcG9zaXRpb24gb2YgYXJndW1lbnQgdmFsdWUKICAgIGVuZGlmICEgZW5kaWYKICAgIGlm
IChvcHRfY25qX2lzX3NwYykgdGhlbgogICAgICAgISBPYnRhaW4gdmFsdWUgb2Ygb3B0aW9u
IGJ5IGdldHRpbmcgbmV4dCBjb21tYW5kIGxpbmUgYXJndW1lbnQKICAgICAgICEgTmV3IGFy
Z3VtZW50cyB3aWxsIGFsdGVyIGlucHV0IHZhbHVlcyBvZiBhcmdfaWR4LGFyZ192YWwKICAg
ICAgIGNhbGwgZ2V0X2NvbW1hbmRfYXJndW1lbnQoYXJnX2lkeCxhcmdfdmFsKQogICAgICAg
ISBJbmNyZW1lbnQgY291bnRlciBmb3IgbmV4dCByZWFkCiAgICAgICBhcmdfaWR4PWFyZ19p
ZHgrMQogICAgICAgISBTYW5pdHkgY2hlY2tzCiAgICAgICBhcmdfbG5nPWxlbl90cmltKGFy
Z192YWwpICEgW25icl0gTGVuZ3RoIG9mIGFyZ3VtZW50CiAgICAgICBpZiAoYXJnX2xuZyA8
PSAwKSBzdG9wICdmdG5fPz8/X2FyZ19nZXQoKSByZXBvcnRzIG9wdGlvbiBsYWNrcyBhcmd1
bWVudCcKICAgIGVuZGlmICEgZW5kaWYgb3B0X2Nual9pc19zcGMKICAgICEgUmVhZCBhcmd1
bWVudCBpbnRvIGZsb2F0IGFuZCByZXR1cm4KICAgIHJlYWQgKGFyZ192YWwoYXJnX3ZhbF9z
cnRfaWR4OmFyZ19sbmcpLCopIG9wdF92YWwgISBbbmJyXSBWYXJpYWJsZSB0byByZWNlaXZl
IGNvcHkgb2YgYXJnX3ZhbAogICAgaWYgKGRiZ19sdmwgPj0gZGJnX2lvKSB0aGVuCiAgICAg
ICB3cml0ZSAoNiwnKDJhLGcxMi42KScpIHByZ19ubSgxOmZ0bl9zdHJsc2MocHJnX25tKSks
ICYKICAgICAgICAgICAgJzogREVCVUcgJy8vc2JyX25tLy8nKCkgYXNzaWduZWQgYXJndW1l
bnQgdmFsdWUgPSAnLG9wdF92YWwKICAgIGVuZGlmICEgZW5kaWYKICAgIHJldHVybgogIGVu
ZCBzdWJyb3V0aW5lIGZ0bl9hcmdfZ2V0X2ZsdAoKCiAgc3Vicm91dGluZSBmdG5fYXJnX2dl
dF9pbnQoICYgISBbc2JyXSBQcm9jZXNzIGludGVnZXItdmFsdWVkIGNvbW1hbmQgbGluZSBh
cmd1bWVudAogICAgICAgYXJnX2lkeCwgJiAhIEkvTyBbaWR4XSBBcmd1bWVudCBjb3VudGVy
CiAgICAgICBhcmdfdmFsLCAmICEgSS9PIFtzbmddIEludGVnZXIgdG8gY29weSBpbnRvIG9w
dF92YWwKICAgICAgIG9wdF92YWwpICEgTyBbbmJyXSBWYXJpYWJsZSB0byByZWNlaXZlIGNv
cHkgb2YgYXJnX3ZhbAogICAgISBQdXJwb3NlOiBDb3B5IGNvbW1hbmQtbGluZSBpbnRlZ2Vy
IGFyZ3VtZW50IGFyZ192YWwgaW50byB2YXJpYWJsZSBvcHRfdmFsCiAgICAhIFVzYWdlOgog
ICAgISBjYWxsIGZ0bl9hcmdfZ2V0X2ludChhcmdfaWR4LGFyZ192YWwsb3B0X3ZhbCkgISBb
c2JyXSBQcm9jZXNzIGludGVnZXItdmFsdWVkIGNvbW1hbmQgbGluZSBhcmd1bWVudAogICAg
dXNlIGRiZ19tZGwgISBbbWRsXSBEZWJ1Z2dpbmcgY29uc3RhbnRzLCBwcmdfbm0sIGRiZ19s
dmwKICAgIGltcGxpY2l0IG5vbmUKICAgICEgUGFyYW1ldGVycwogICAgY2hhcmFjdGVyKGxl
bj0qKSxwYXJhbWV0ZXI6OnNicl9ubT0nZnRuX2FyZ19nZXRfaW50JyAhIFtzbmddIFN1YnJv
dXRpbmUgbmFtZQogICAgISBDb21tb25zCiAgICAhIElucHV0CiAgICAhIElucHV0L091dHB1
dAogICAgaW50ZWdlcixpbnRlbnQoaW5vdXQpOjphcmdfaWR4ICEgSS9PIFtpZHhdIEFyZ3Vt
ZW50IGNvdW50ZXIKICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KGlub3V0KTo6YXJnX3Zh
bCAhIEkvTyBbc25nXSBJbnRlZ2VyIHRvIGNvcHkgaW50byBvcHRfdmFsCiAgICAhIDIwMDMw
NDI5OiBDaGFuZ2Ugb3B0X3ZhbCB0byBpbm91dCBzaW5jZSBkYmdfbHZsIGl0c2VsZiBtYXkg
YmUgYW4gb3B0X3ZhbCBidXQgaXMgcmVmZXJlbmNlZCBvbiBMSFMKICAgIGludGVnZXIsaW50
ZW50KGlub3V0KTo6b3B0X3ZhbCAhIE8gW3NuZ10gVmFyaWFibGUgdG8gcmVjZWl2ZSBjb3B5
IG9mIGFyZ192YWwKICAgICEgT3V0cHV0CiAgICAhIExvY2FsCiAgICBpbnRlZ2VyIGlkeAog
ICAgaW50ZWdlciBhcmdfbG5nICEgW25icl0gTGVuZ3RoIG9mIGFyZ3VtZW50CiAgICBpbnRl
Z2VyIG9wdF9sbmcgISBbbmJyXSBMZW5ndGggb2Ygb3B0aW9uCiAgICBpbnRlZ2VyIGFyZ192
YWxfc3J0X2lkeCAhIFtpZHhdIFN0YXJ0aW5nIHBvc2l0aW9uIG9mIGFyZ3VtZW50IHZhbHVl
CiAgICBsb2dpY2FsIG9wdF9jbmpfaXNfc3BjICEgW2ZsZ10gT3B0aW9uIGNvbmp1bmN0aW9u
IGlzIHNwYWNlIGNoYXJhY3RlcgogICAgISBNYWluIENvZGUKICAgICEgUHJpbnQgYW55IGRp
YWdub3N0aWNzIGJlZm9yZSBjdXJyZW50IHZhbHVlIG9mIGFyZ192YWwgaXMgb3ZlcndyaXR0
ZW4KICAgIGFyZ19sbmc9bGVuX3RyaW0oYXJnX3ZhbCkgISBbbmJyXSBMZW5ndGggb2YgYXJn
dW1lbnQKICAgIG9wdF9sbmc9ZnRuX29wdF9sbmdfZ2V0KGFyZ192YWwpICEgW25icl0gTGVu
Z3RoIG9mIG9wdGlvbgogICAgaWYgKGRiZ19sdmwgPj0gZGJnX2lvKSB0aGVuCiAgICAgICB3
cml0ZSAoNiwnKDJhLGkyLDNhLGkyKScpIHByZ19ubSgxOmZ0bl9zdHJsc2MocHJnX25tKSks
ICYKICAgICAgICAgICAgJzogREVCVUcgJy8vc2JyX25tLy8nKCkgcmVwb3J0cyBhcmdfaWR4
ID0gJyxhcmdfaWR4LCAgJgogICAgICAgICAgICAnLCBGdWxsIG9wdGlvbiA9ICcnJyxhcmdf
dmFsKDE6YXJnX2xuZyksJycnLCBMZW5ndGggPSAnLGFyZ19sbmcKICAgIGVuZGlmICEgZW5k
aWYgZGJnCiAgICAhIERldGVybWluZSB3aGV0aGVyIGZvcm1hdCBpcyAtLW9wdF9zbmc9dmFs
IG9yIC0tb3B0X3NuZyB2YWwKICAgICEgQWRkIDIgdG8gY292ZXIgcHJlbGltaW5hcnkgZGFz
aGVzCiAgICBpZiAob3B0X2xuZysyIDwgYXJnX2xuZykgdGhlbgogICAgICAgb3B0X2Nual9p
c19zcGM9LmZhbHNlLiAhIFtmbGddIE9wdGlvbiBjb25qdW5jdGlvbiBpcyBzcGFjZSBjaGFy
YWN0ZXIKICAgICAgIGFyZ192YWxfc3J0X2lkeD0zK29wdF9sbmcrMSAhIFtpZHhdIFN0YXJ0
aW5nIHBvc2l0aW9uIG9mIGFyZ3VtZW50IHZhbHVlCiAgICAgICBpZiAoZGJnX2x2bCA+PSBk
YmdfaW8pIHRoZW4KICAgICAgICAgIHdyaXRlICg2LCcoOGEpJykgcHJnX25tKDE6ZnRuX3N0
cmxzYyhwcmdfbm0pKSwgJgogICAgICAgICAgICAgICAnOiBERUJVRyAnLy9zYnJfbm0vLyco
KSBkaWFzc2VtYmxlcyBhcmd1bWVudCBpbnRvIE9wdGlvbiA9ICcnJywgJgogICAgICAgICAg
ICAgICBhcmdfdmFsKDM6MitvcHRfbG5nKSwnJycsIGNvbmp1bmN0aW9uIGlzICcnJywgJgog
ICAgICAgICAgICAgICBhcmdfdmFsKDMrb3B0X2xuZzozK29wdF9sbmcpLCcnJywgYXJndW1l
bnQgPSAnJycsICYKICAgICAgICAgICAgICAgYXJnX3ZhbChhcmdfdmFsX3NydF9pZHg6YXJn
X2xuZyksJycnJyAhIFF1b3RlIHN5bnRheCBpcyBteXN0aWNhbAogICAgICAgZW5kaWYgISBl
bmRpZiBkYmcKICAgIGVsc2UKICAgICAgIG9wdF9jbmpfaXNfc3BjPS50cnVlLiAhIFtmbGdd
IE9wdGlvbiBjb25qdW5jdGlvbiBpcyBzcGFjZSBjaGFyYWN0ZXIKICAgICAgIGFyZ192YWxf
c3J0X2lkeD0xICEgW2lkeF0gU3RhcnRpbmcgcG9zaXRpb24gb2YgYXJndW1lbnQgdmFsdWUK
ICAgIGVuZGlmICEgZW5kaWYKICAgIGlmIChvcHRfY25qX2lzX3NwYykgdGhlbgogICAgICAg
ISBPYnRhaW4gdmFsdWUgb2Ygb3B0aW9uIGJ5IGdldHRpbmcgbmV4dCBjb21tYW5kIGxpbmUg
YXJndW1lbnQKICAgICAgICEgTmV3IGFyZ3VtZW50cyB3aWxsIGFsdGVyIGlucHV0IHZhbHVl
cyBvZiBhcmdfaWR4LGFyZ192YWwKICAgICAgIGNhbGwgZ2V0X2NvbW1hbmRfYXJndW1lbnQo
YXJnX2lkeCxhcmdfdmFsKQogICAgICAgISBJbmNyZW1lbnQgY291bnRlciBmb3IgbmV4dCBy
ZWFkCiAgICAgICBhcmdfaWR4PWFyZ19pZHgrMQogICAgICAgISBTYW5pdHkgY2hlY2tzCiAg
ICAgICBhcmdfbG5nPWxlbl90cmltKGFyZ192YWwpICEgW25icl0gTGVuZ3RoIG9mIGFyZ3Vt
ZW50CiAgICAgICBpZiAoYXJnX2xuZyA8PSAwKSBzdG9wICdmdG5fYXJnX2dldF9pbnQoKSBy
ZXBvcnRzIG9wdGlvbiBsYWNrcyBhcmd1bWVudCcKICAgIGVuZGlmICEgZW5kaWYgb3B0X2Nu
al9pc19zcGMKICAgICEgUmVhZCBhcmd1bWVudCBpbnRvIGludGVnZXIgYW5kIHJldHVybgog
ICAgcmVhZCAoYXJnX3ZhbChhcmdfdmFsX3NydF9pZHg6YXJnX2xuZyksKikgb3B0X3ZhbCAh
IFtuYnJdIFZhcmlhYmxlIHRvIHJlY2VpdmUgY29weSBvZiBhcmdfdmFsCiAgICBpZiAoZGJn
X2x2bCA+PSBkYmdfaW8pIHRoZW4KICAgICAgIHdyaXRlICg2LCcoMmEsZzEyLjYpJykgcHJn
X25tKDE6ZnRuX3N0cmxzYyhwcmdfbm0pKSwgJgogICAgICAgICAgICAnOiBERUJVRyAnLy9z
YnJfbm0vLycoKSBhc3NpZ25lZCBhcmd1bWVudCB2YWx1ZSA9ICcsb3B0X3ZhbAogICAgZW5k
aWYgISBlbmRpZgogICAgcmV0dXJuCiAgZW5kIHN1YnJvdXRpbmUgZnRuX2FyZ19nZXRfaW50
CgogIHN1YnJvdXRpbmUgZnRuX2FyZ19nZXRfbGdjKCAmICEgW3Nicl0gUHJvY2VzcyBsb2dp
Y2FsLXZhbHVlZCBjb21tYW5kIGxpbmUgYXJndW1lbnQKICAgICAgIGFyZ19pZHgsICYgISBJ
L08gW2lkeF0gQXJndW1lbnQgY291bnRlcgogICAgICAgYXJnX3ZhbCwgJiAhIEkvTyBbc25n
XSBMb2dpY2FsIHRvIGNvcHkgaW50byBvcHRfdmFsCiAgICAgICBvcHRfdmFsKSAhIE8gW25i
cl0gVmFyaWFibGUgdG8gcmVjZWl2ZSBjb3B5IG9mIGFyZ192YWwKICAgICEgUHVycG9zZTog
Q29weSBjb21tYW5kLWxpbmUgbG9naWNhbCBhcmd1bWVudCBhcmdfdmFsIGludG8gdmFyaWFi
bGUgb3B0X3ZhbAogICAgISBVc2FnZToKICAgICEgY2FsbCBmdG5fYXJnX2dldF9sZ2MoYXJn
X2lkeCxhcmdfdmFsLG9wdF92YWwpICEgW3Nicl0gUHJvY2VzcyBsb2dpY2FsLXZhbHVlZCBj
b21tYW5kIGxpbmUgYXJndW1lbnQKICAgIHVzZSBkYmdfbWRsICEgW21kbF0gRGVidWdnaW5n
IGNvbnN0YW50cywgcHJnX25tLCBkYmdfbHZsCiAgICBpbXBsaWNpdCBub25lCiAgICAhIFBh
cmFtZXRlcnMKICAgIGNoYXJhY3RlcihsZW49KikscGFyYW1ldGVyOjpzYnJfbm09J2Z0bl9h
cmdfZ2V0X2xnYycgISBbc25nXSBTdWJyb3V0aW5lIG5hbWUKICAgICEgQ29tbW9ucwogICAg
ISBJbnB1dAogICAgISBJbnB1dC9PdXRwdXQKICAgIGludGVnZXIsaW50ZW50KGlub3V0KTo6
YXJnX2lkeCAhIEkvTyBbaWR4XSBBcmd1bWVudCBjb3VudGVyCiAgICBjaGFyYWN0ZXIobGVu
PSopLGludGVudChpbm91dCk6OmFyZ192YWwgISBJL08gW3NuZ10gTG9naWNhbCB0byBjb3B5
IGludG8gb3B0X3ZhbAogICAgISBPdXRwdXQKICAgIGxvZ2ljYWwsaW50ZW50KG91dCk6Om9w
dF92YWwgISBPIFtmbGddIFZhcmlhYmxlIHRvIHJlY2VpdmUgY29weSBvZiBhcmdfdmFsCiAg
ICAhIExvY2FsCiAgICBpbnRlZ2VyIGlkeAogICAgaW50ZWdlciBhcmdfbG5nICEgW25icl0g
TGVuZ3RoIG9mIGFyZ3VtZW50CiAgICBpbnRlZ2VyIG9wdF9sbmcgISBbbmJyXSBMZW5ndGgg
b2Ygb3B0aW9uCiAgICBpbnRlZ2VyIGFyZ192YWxfc3J0X2lkeCAhIFtpZHhdIFN0YXJ0aW5n
IHBvc2l0aW9uIG9mIGFyZ3VtZW50IHZhbHVlCiAgICBsb2dpY2FsIG9wdF9jbmpfaXNfc3Bj
ICEgW2ZsZ10gT3B0aW9uIGNvbmp1bmN0aW9uIGlzIHNwYWNlIGNoYXJhY3RlcgogICAgISBN
YWluIENvZGUKICAgICEgUHJpbnQgYW55IGRpYWdub3N0aWNzIGJlZm9yZSBjdXJyZW50IHZh
bHVlIG9mIGFyZ192YWwgaXMgb3ZlcndyaXR0ZW4KICAgIGFyZ19sbmc9bGVuX3RyaW0oYXJn
X3ZhbCkgISBbbmJyXSBMZW5ndGggb2YgYXJndW1lbnQKICAgIG9wdF9sbmc9ZnRuX29wdF9s
bmdfZ2V0KGFyZ192YWwpICEgW25icl0gTGVuZ3RoIG9mIG9wdGlvbgogICAgaWYgKGRiZ19s
dmwgPj0gZGJnX2lvKSB0aGVuCiAgICAgICB3cml0ZSAoNiwnKDJhLGkyLDNhLGkyKScpIHBy
Z19ubSgxOmZ0bl9zdHJsc2MocHJnX25tKSksICYKICAgICAgICAgICAgJzogREVCVUcgJy8v
c2JyX25tLy8nKCkgcmVwb3J0cyBhcmdfaWR4ID0gJyxhcmdfaWR4LCAgJgogICAgICAgICAg
ICAnLCBGdWxsIG9wdGlvbiA9ICcnJyxhcmdfdmFsKDE6YXJnX2xuZyksJycnLCBMZW5ndGgg
PSAnLGFyZ19sbmcKICAgIGVuZGlmICEgZW5kaWYgZGJnCiAgICAhIERldGVybWluZSB3aGV0
aGVyIGZvcm1hdCBpcyAtLW9wdF9zbmc9dmFsIG9yIC0tb3B0X3NuZyB2YWwKICAgICEgQWRk
IDIgdG8gY292ZXIgcHJlbGltaW5hcnkgZGFzaGVzCiAgICBpZiAob3B0X2xuZysyIDwgYXJn
X2xuZykgdGhlbgogICAgICAgb3B0X2Nual9pc19zcGM9LmZhbHNlLiAhIFtmbGddIE9wdGlv
biBjb25qdW5jdGlvbiBpcyBzcGFjZSBjaGFyYWN0ZXIKICAgICAgIGFyZ192YWxfc3J0X2lk
eD0zK29wdF9sbmcrMSAhIFtpZHhdIFN0YXJ0aW5nIHBvc2l0aW9uIG9mIGFyZ3VtZW50IHZh
bHVlCiAgICAgICBpZiAoZGJnX2x2bCA+PSBkYmdfaW8pIHRoZW4KICAgICAgICAgIHdyaXRl
ICg2LCcoOGEpJykgcHJnX25tKDE6ZnRuX3N0cmxzYyhwcmdfbm0pKSwgJgogICAgICAgICAg
ICAgICAnOiBERUJVRyAnLy9zYnJfbm0vLycoKSBkaWFzc2VtYmxlcyBhcmd1bWVudCBpbnRv
IE9wdGlvbiA9ICcnJywgJgogICAgICAgICAgICAgICBhcmdfdmFsKDM6MitvcHRfbG5nKSwn
JycsIGNvbmp1bmN0aW9uIGlzICcnJywgJgogICAgICAgICAgICAgICBhcmdfdmFsKDMrb3B0
X2xuZzozK29wdF9sbmcpLCcnJywgYXJndW1lbnQgPSAnJycsICYKICAgICAgICAgICAgICAg
YXJnX3ZhbChhcmdfdmFsX3NydF9pZHg6YXJnX2xuZyksJycnJyAhIFF1b3RlIHN5bnRheCBp
cyBteXN0aWNhbAogICAgICAgZW5kaWYgISBlbmRpZiBkYmcKICAgIGVsc2UKICAgICAgIG9w
dF9jbmpfaXNfc3BjPS50cnVlLiAhIFtmbGddIE9wdGlvbiBjb25qdW5jdGlvbiBpcyBzcGFj
ZSBjaGFyYWN0ZXIKICAgICAgIGFyZ192YWxfc3J0X2lkeD0xICEgW2lkeF0gU3RhcnRpbmcg
cG9zaXRpb24gb2YgYXJndW1lbnQgdmFsdWUKICAgIGVuZGlmICEgZW5kaWYKICAgIGlmIChv
cHRfY25qX2lzX3NwYykgdGhlbgogICAgICAgISBPYnRhaW4gdmFsdWUgb2Ygb3B0aW9uIGJ5
IGdldHRpbmcgbmV4dCBjb21tYW5kIGxpbmUgYXJndW1lbnQKICAgICAgICEgTmV3IGFyZ3Vt
ZW50cyB3aWxsIGFsdGVyIGlucHV0IHZhbHVlcyBvZiBhcmdfaWR4LGFyZ192YWwKICAgICAg
IGNhbGwgZ2V0X2NvbW1hbmRfYXJndW1lbnQoYXJnX2lkeCxhcmdfdmFsKQogICAgICAgISBJ
bmNyZW1lbnQgY291bnRlciBmb3IgbmV4dCByZWFkCiAgICAgICBhcmdfaWR4PWFyZ19pZHgr
MQogICAgICAgISBTYW5pdHkgY2hlY2tzCiAgICAgICBhcmdfbG5nPWxlbl90cmltKGFyZ192
YWwpICEgW25icl0gTGVuZ3RoIG9mIGFyZ3VtZW50CiAgICAgICBpZiAoYXJnX2xuZyA8PSAw
KSBzdG9wICdmdG5fYXJnX2dldF9sZ2MoKSByZXBvcnRzIG9wdGlvbiBsYWNrcyBhcmd1bWVu
dCcKICAgIGVuZGlmICEgZW5kaWYgb3B0X2Nual9pc19zcGMKICAgICEgUmVhZCBhcmd1bWVu
dCBpbnRvIGludGVnZXIgYW5kIHJldHVybgogICAgcmVhZCAoYXJnX3ZhbChhcmdfdmFsX3Ny
dF9pZHg6YXJnX2xuZyksKikgb3B0X3ZhbCAhIFtuYnJdIFZhcmlhYmxlIHRvIHJlY2VpdmUg
Y29weSBvZiBhcmdfdmFsCiAgICBpZiAoZGJnX2x2bCA+PSBkYmdfaW8pIHRoZW4KICAgICAg
IHdyaXRlICg2LCcoMmEsZzEyLjYpJykgcHJnX25tKDE6ZnRuX3N0cmxzYyhwcmdfbm0pKSwg
JgogICAgICAgICAgICAnOiBERUJVRyAnLy9zYnJfbm0vLycoKSBhc3NpZ25lZCBhcmd1bWVu
dCB2YWx1ZSA9ICcsb3B0X3ZhbAogICAgZW5kaWYgISBlbmRpZgogICAgcmV0dXJuCiAgZW5k
IHN1YnJvdXRpbmUgZnRuX2FyZ19nZXRfbGdjCgogIHN1YnJvdXRpbmUgZnRuX2FyZ19nZXRf
c25nKCAmICEgW3Nicl0gUHJvY2VzcyBzdHJpbmctdmFsdWVkIGNvbW1hbmQgbGluZSBhcmd1
bWVudAogICAgICAgYXJnX2lkeCwgJiAhIEkvTyBbaWR4XSBBcmd1bWVudCBjb3VudGVyCiAg
ICAgICBhcmdfdmFsLCAmICEgSS9PIFtzbmddIFN0cmluZyB0byBjb3B5IGludG8gb3B0X3Zh
bAogICAgICAgb3B0X3ZhbCkgISBPIFtzbmddIFZhcmlhYmxlIHRvIHJlY2VpdmUgY29weSBv
ZiBhcmdfdmFsCiAgICAhIFB1cnBvc2U6IENvcHkgY29tbWFuZC1saW5lIHN0cmluZyBhcmd1
bWVudCBhcmdfdmFsIGludG8gdmFyaWFibGUgb3B0X3ZhbAogICAgISBvcHRfdmFsIGlzIHVu
Y2hhbmdlZCBpZiBhcmdfdmFsIGNhbm5vdCBiZSBjb3BpZWQKICAgICEgUmVtYWluZGVyIG9m
IG9wdF92YWwgaXMgTlVMLWluaXRpYWxpemVkCiAgICAhIFVzYWdlOgogICAgISBjYWxsIGZ0
bl9hcmdfZ2V0X3NuZyhhcmdfaWR4LGFyZ192YWwsb3B0X3ZhbCkgISBbc2JyXSBQcm9jZXNz
IHN0cmluZy12YWx1ZWQgY29tbWFuZCBsaW5lIGFyZ3VtZW50CiAgICB1c2UgZGJnX21kbCAh
IFttZGxdIERlYnVnZ2luZyBjb25zdGFudHMsIHByZ19ubSwgZGJnX2x2bAogICAgaW1wbGlj
aXQgbm9uZQogICAgISBQYXJhbWV0ZXJzCiAgICBjaGFyYWN0ZXIobGVuPSopLHBhcmFtZXRl
cjo6c2JyX25tPSdmdG5fYXJnX2dldF9zbmcnICEgW3NuZ10gU3Vicm91dGluZSBuYW1lCiAg
ICAhIENvbW1vbnMKICAgICEgSW5wdXQKICAgICEgSW5wdXQvT3V0cHV0CiAgICBpbnRlZ2Vy
LGludGVudChpbm91dCk6OmFyZ19pZHggISBJL08gW2lkeF0gQXJndW1lbnQgY291bnRlcgog
ICAgY2hhcmFjdGVyKGxlbj0qKSxpbnRlbnQoaW5vdXQpOjphcmdfdmFsICEgSS9PIFtzbmdd
IFN0cmluZyB0byBjb3B5IGludG8gb3B0X3ZhbAogICAgISBPdXRwdXQKICAgIGNoYXJhY3Rl
cihsZW49KiksaW50ZW50KG91dCk6Om9wdF92YWwgISBPIFtzbmddIFZhcmlhYmxlIHRvIHJl
Y2VpdmUgY29weSBvZiBhcmdfdmFsCiAgICAhIExvY2FsCiAgICBpbnRlZ2VyIGlkeAogICAg
aW50ZWdlciBsZW5fdmFyICEgW25icl0gTGVuZ3RoIG9mIHN0cmluZyB2YXJpYWJsZQogICAg
aW50ZWdlciBhcmdfbG5nICEgW25icl0gTGVuZ3RoIG9mIGFyZ3VtZW50CiAgICBpbnRlZ2Vy
IG9wdF9sbmcgISBbbmJyXSBMZW5ndGggb2Ygb3B0aW9uCiAgICBpbnRlZ2VyIGFyZ192YWxf
c3J0X2lkeCAhIFtpZHhdIFN0YXJ0aW5nIHBvc2l0aW9uIG9mIGFyZ3VtZW50IHZhbHVlCiAg
ICBsb2dpY2FsIG9wdF9jbmpfaXNfc3BjICEgW2ZsZ10gT3B0aW9uIGNvbmp1bmN0aW9uIGlz
IHNwYWNlIGNoYXJhY3RlcgogICAgaW50ZWdlciBubGxfc3J0X2lkeCAhIFtpZHhdIEZpcnN0
IE5VTCBwb3NpdGlvbiBpbiBvcHRfdmFsCiAgICAhIE1haW4gQ29kZQogICAgISBQcmludCBh
bnkgZGlhZ25vc3RpY3MgYmVmb3JlIGN1cnJlbnQgdmFsdWUgb2YgYXJnX3ZhbCBpcyBvdmVy
d3JpdHRlbgogICAgbGVuX3Zhcj1sZW4ob3B0X3ZhbCkgISBbbmJyXSBMZW5ndGggb2Ygc3Ry
aW5nIHZhcmlhYmxlCiAgICBhcmdfbG5nPWxlbl90cmltKGFyZ192YWwpICEgW25icl0gTGVu
Z3RoIG9mIGFyZ3VtZW50CiAgICBvcHRfbG5nPWZ0bl9vcHRfbG5nX2dldChhcmdfdmFsKSAh
IFtuYnJdIExlbmd0aCBvZiBvcHRpb24KICAgIGlmIChkYmdfbHZsID49IGRiZ19pbykgdGhl
bgogICAgICAgd3JpdGUgKDYsJygyYSxpMiwzYSxpMiknKSBwcmdfbm0oMTpmdG5fc3RybHNj
KHByZ19ubSkpLCAmCiAgICAgICAgICAgICc6IERFQlVHICcvL3Nicl9ubS8vJygpIHJlcG9y
dHMgYXJnX2lkeCA9ICcsYXJnX2lkeCwgICYKICAgICAgICAgICAgJywgT3B0aW9uID0gJycn
LGFyZ192YWwoMTphcmdfbG5nKSwnJycsIExlbmd0aCA9ICcsYXJnX2xuZwogICAgZW5kaWYg
ISBlbmRpZgogICAgISBEZXRlcm1pbmUgd2hldGhlciBmb3JtYXQgaXMgLS1vcHRfc25nPXZh
bCBvciAtLW9wdF9zbmcgdmFsCiAgICAhIEFkZCAyIHRvIGNvdmVyIHByZWxpbWluYXJ5IGRh
c2hlcwogICAgaWYgKG9wdF9sbmcrMiA8IGFyZ19sbmcpIHRoZW4KICAgICAgIG9wdF9jbmpf
aXNfc3BjPS5mYWxzZS4gISBbZmxnXSBPcHRpb24gY29uanVuY3Rpb24gaXMgc3BhY2UgY2hh
cmFjdGVyCiAgICAgICBhcmdfdmFsX3NydF9pZHg9MytvcHRfbG5nKzEgISBbaWR4XSBTdGFy
dGluZyBwb3NpdGlvbiBvZiBhcmd1bWVudCB2YWx1ZQogICAgICAgaWYgKGRiZ19sdmwgPj0g
ZGJnX2lvKSB0aGVuCiAgICAgICAgICB3cml0ZSAoNiwnKDhhKScpIHByZ19ubSgxOmZ0bl9z
dHJsc2MocHJnX25tKSksICYKICAgICAgICAgICAgICAgJzogREVCVUcgJy8vc2JyX25tLy8n
KCkgZGlhc3NlbWJsZXMgYXJndW1lbnQgaW50byBPcHRpb24gPSAnJycsICYKICAgICAgICAg
ICAgICAgYXJnX3ZhbCgzOjIrb3B0X2xuZyksJycnLCBjb25qdW5jdGlvbiBpcyAnJycsICYK
ICAgICAgICAgICAgICAgYXJnX3ZhbCgzK29wdF9sbmc6MytvcHRfbG5nKSwnJycsIGFyZ3Vt
ZW50ID0gJycnLCAmCiAgICAgICAgICAgICAgIGFyZ192YWwoYXJnX3ZhbF9zcnRfaWR4OmFy
Z19sbmcpLCcnJycgISBRdW90ZSBzeW50YXggaXMgbXlzdGljYWwKICAgICAgIGVuZGlmICEg
ZW5kaWYgZGJnCiAgICBlbHNlCiAgICAgICBvcHRfY25qX2lzX3NwYz0udHJ1ZS4gISBbZmxn
XSBPcHRpb24gY29uanVuY3Rpb24gaXMgc3BhY2UgY2hhcmFjdGVyCiAgICAgICBhcmdfdmFs
X3NydF9pZHg9MSAhIFtpZHhdIFN0YXJ0aW5nIHBvc2l0aW9uIG9mIGFyZ3VtZW50IHZhbHVl
CiAgICBlbmRpZiAhIGVuZGlmCiAgICBpZiAob3B0X2Nual9pc19zcGMpIHRoZW4KICAgICAg
ICEgT2J0YWluIHZhbHVlIG9mIG9wdGlvbiBieSBnZXR0aW5nIG5leHQgY29tbWFuZCBsaW5l
IGFyZ3VtZW50CiAgICAgICAhIE5ldyBhcmd1bWVudHMgd2lsbCBhbHRlciBpbnB1dCB2YWx1
ZXMgb2YgYXJnX2lkeCxhcmdfdmFsCiAgICAgICBjYWxsIGdldF9jb21tYW5kX2FyZ3VtZW50
KGFyZ19pZHgsYXJnX3ZhbCkKICAgICAgICEgSW5jcmVtZW50IGNvdW50ZXIgZm9yIG5leHQg
cmVhZAogICAgICAgYXJnX2lkeD1hcmdfaWR4KzEKICAgICAgICEgU2FuaXR5IGNoZWNrcwog
ICAgICAgYXJnX2xuZz1sZW5fdHJpbShhcmdfdmFsKSAhIFtuYnJdIExlbmd0aCBvZiBhcmd1
bWVudAogICAgICAgaWYgKGFyZ19sbmcgPD0gMCkgc3RvcCAnZnRuXz8/P19hcmdfZ2V0KCkg
cmVwb3J0cyBvcHRpb24gbGFja3MgYXJndW1lbnQnCiAgICAgICBpZiAoYXJnX2xuZyA+IGxl
bl92YXIpIHRoZW4KICAgICAgICAgIHdyaXRlICg2LCcoMmEsaTUsYSxpNSknKSBwcmdfbm0o
MTpmdG5fc3RybHNjKHByZ19ubSkpLCAmCiAgICAgICAgICAgICAgICc6IEVSUk9SICcvL3Ni
cl9ubS8vJygpIHJlcG9ydHMgYXJndW1lbnQgbGVuZ3RoID0gJyxhcmdfbG5nLCAmCiAgICAg
ICAgICAgICAgICcgdG9vIGxvbmcgdG8gZml0IGludG8gdmFyaWFibGUgbGVuZ3RoICcsbGVu
X3ZhcgogICAgICAgICAgc3RvcAogICAgICAgZW5kaWYgISBlbmRpZiBhcmdfbG5nID4gbGVu
X3ZhcgogICAgZW5kaWYgISBlbmRpZiBvcHRfY25qX2lzX3NwYwogICAgISBSZWFkIGFyZ3Vt
ZW50IGludG8gc3RyaW5nIGFuZCByZXR1cm4KICAgIHJlYWQgKGFyZ192YWwoYXJnX3ZhbF9z
cnRfaWR4OmFyZ19sbmcpLCcoYSknKSBvcHRfdmFsICEgW3NuZ10gVmFyaWFibGUgdG8gcmVj
ZWl2ZSBjb3B5IG9mIGFyZ192YWwKICAgICEgTlVMLWluaXRpYWxpemUgcmVtYWluZGVyIG9m
IG9wdF92YWwKICAgIG5sbF9zcnRfaWR4PWFyZ19sbmctYXJnX3ZhbF9zcnRfaWR4KzIgISBb
aWR4XSBGaXJzdCBOVUwgcG9zaXRpb24gaW4gb3B0X3ZhbAogICAgZG8gaWR4PW5sbF9zcnRf
aWR4LGxlbl92YXIKICAgICAgIG9wdF92YWwoaWR4OmlkeCk9Y2hhcigwKSAhIFtzbmddIFZh
cmlhYmxlIHRvIHJlY2VpdmUgY29weSBvZiBhcmdfdmFsCiAgICBlbmQgZG8gISBlbmQgbG9v
cCBvdmVyIGNoYXJhY3RlcnMKICAgIGlmIChkYmdfbHZsID49IGRiZ19pbykgdGhlbgogICAg
ICAgd3JpdGUgKDYsJyg0YSknKSBwcmdfbm0oMTpmdG5fc3RybHNjKHByZ19ubSkpLCAmCiAg
ICAgICAgICAgICc6IERFQlVHICcvL3Nicl9ubS8vJygpIGFzc2lnbmVkIGFyZ3VtZW50IHZh
bHVlID0gJyxvcHRfdmFsKDE6bGVuX3RyaW0ob3B0X3ZhbCkpLCc8LS1FbmQgb2Ygb3B0X3Zh
bCBzdHJpbmcnCiAgICAgICBjYWxsIGZ0bl9zdHJwcm4ob3B0X3ZhbCkgISBbZm5jXSBQcmlu
dCBjaGFyYWN0ZXIgdmFsdWVzIG9mIHN0cmluZwogICAgZW5kaWYgISBlbmRpZgogICAgcmV0
dXJuCiAgZW5kIHN1YnJvdXRpbmUgZnRuX2FyZ19nZXRfc25nCgogIGludGVnZXIgZnVuY3Rp
b24gZnRuX3N0cnN0cihzbmcxLHNuZzIpICEgW2lkeF0gTG9jYXRpb24gb2Ygc25nMiBpbiBz
bmcxCiAgICAhIFB1cnBvc2U6IFJldHVybiB0aGUgbG9jYXRpb24gb2Ygc2Vjb25kIHN0cmlu
ZyBpbiB0aGUgZmlyc3QKICAgICEgRm9ydHJhbiBpbnRyaW5zaWMgbGVuKHNuZykgaXMgcmV0
dXJuZWQgaWYgc3RyaW5nIGlzIG5vdCBOVUwtdGVybWluYXRlZAogICAgISBSZXR1cm4gLTEg
aWYgc25nMSBkb2VzIG5vdCBjb250YWluIHNuZzEKICAgICEgUHJvdG90eXBlOgogICAgISBp
bnRlZ2VyIGZ0bl9zdHJzdHIgISBbaWR4XSBMb2NhdGlvbiBvZiBzbmcxIGluIHNuZzIKICAg
IGltcGxpY2l0IG5vbmUKICAgICEgSW5wdXQKICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50
KGluKTo6c25nMQogICAgY2hhcmFjdGVyKGxlbj0qKSxpbnRlbnQoaW4pOjpzbmcyCiAgICAh
IExvY2FsCiAgICBpbnRlZ2VyIGxlbjEKICAgIGludGVnZXIgbGVuMgogICAgaW50ZWdlciBs
bmcxCiAgICBpbnRlZ2VyIGxuZzIKICAgIGludGVnZXIgaWR4MQogICAgaW50ZWdlciBpZHgy
CiAgICAhIEluaXRpYWxpemUKICAgIGlkeDI9MCAhIENFV0kgZm9yIGxmOTUKICAgICEgTWFp
biBDb2RlCiAgICBsZW4xPWxlbihzbmcxKQogICAgbGVuMj1sZW4oc25nMikKICAgIGxuZzE9
ZnRuX3N0cmxlbihzbmcxKSAhIFtuYnJdIExlbmd0aCBvZiBzdHJpbmcKICAgIGxuZzI9ZnRu
X3N0cmxlbihzbmcyKSAhIFtuYnJdIExlbmd0aCBvZiBzdHJpbmcKICAgIGRvIGlkeDE9MSxs
bmcxCiAgICAgICBpZiAoc25nMShpZHgxOmlkeDEpID09IHNuZzIoMToxKSkgdGhlbgogICAg
ICAgICAgZG8gaWR4Mj0yLGxuZzIKICAgICAgICAgICAgIGlmIChzbmcxKGlkeDEraWR4Mi0x
OmlkeDEraWR4Mi0xKSAvPSBzbmcyKGlkeDI6aWR4MikpIGdvdG8gMjAwCiAgICAgICAgICBl
bmQgZG8gISBlbmQgbG9vcCBvdmVyIGNoYXJhY3RlcnMKICAgICAgICAgIGdvdG8gMTAwCiAg
ICAgICBlbmRpZiAhIGVuZGlmCjIwMCBjb250aW51ZQogICAgZW5kIGRvICEgZW5kIGxvb3Ag
b3ZlciBjaGFyYWN0ZXJzCjEwMCBjb250aW51ZQogICAgaWYgKGlkeDIgPT0gbG5nMisxKSB0
aGVuCiAgICAgICBmdG5fc3Ryc3RyPWlkeDEKICAgIGVsc2UKICAgICAgIGZ0bl9zdHJzdHI9
LTEKICAgIGVuZGlmICEgZW5kaWYKICAgIHJldHVybgogIGVuZCBmdW5jdGlvbiBmdG5fc3Ry
c3RyCgogIHN1YnJvdXRpbmUgZnRuX3N0cmluaShzbmcpICEgW3NuZ10gc25nKDE6bGVuKT1O
VUwKICAgICEgUHVycG9zZTogSW5pdGlhbGl6ZSBhbGwgZWxlbWVudHMgb2YgYSBjaGFyYWN0
ZXIgYXJyYXkgdG8gY2hhcigwKQogICAgISBVc2FnZToKICAgICEgY2FsbCBmdG5fc3RyaW5p
KHNuZykgISBbc25nXSBzbmcoMTpsZW4pPU5VTAogICAgaW1wbGljaXQgbm9uZQogICAgISBJ
bnB1dC9PdXRwdXQKICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KG91dCk6OnNuZyAhIEkv
TyBbc25nXSBTdHJpbmcgdG8gaW5pdGlhbGl6ZQogICAgISBMb2NhbAogICAgaW50ZWdlciBp
ZHgKICAgIGludGVnZXIgbG5nCiAgICAhIE1haW4gQ29kZQogICAgbG5nPWxlbihzbmcpCiAg
ICBkbyBpZHg9MSxsbmcKICAgICAgIHNuZyhpZHg6aWR4KT1jaGFyKDApCiAgICBlbmQgZG8g
ISBlbmQgbG9vcCBvdmVyIGNoYXJhY3RlcnMKICAgICEgd3JpdGUgKDYsKikgJ2Z0bl9zdHJp
bmkoKTogSW5pdGlhbGl6ZWQgc3RyaW5nIG9mIGxlbmd0aCcsbG5nCiAgICByZXR1cm4KICBl
bmQgc3Vicm91dGluZSBmdG5fc3RyaW5pCgogIHN1YnJvdXRpbmUgZnRuX3N0cm51bChzbmcp
ICEgW3Nicl0gTlVMLWluaXRpYWxpemUgYWxsIGNoYXJhY3RlcnMgYWZ0ZXIgTFNDCiAgICAh
IFB1cnBvc2U6IENoYW5nZSBzcGFjZSBjaGFyYWN0ZXJzIHRvIE5VTCBjaGFyYWN0ZXJzIGlu
IGEgc3RyaW5nCiAgICAhIFNwYWNlcyBhZnRlciBsYXN0IHNpZ25pZmljYW50IGNoYXJhY3Rl
ciAoTFNDKSBpbiBzdHJpbmcgYXJlIGNoYW5nZWQgdG8gTlVMCiAgICAhIFNwYWNlcyBiZWZv
cmUgTFNDIGFyZSBub3QgYWZmZWN0ZWQKICAgICEgVXNhZ2U6CiAgICAhIGNhbGwgZnRuX3N0
cm51bChzbmcpICEgW3Nicl0gTlVMLWluaXRpYWxpemUgYWxsIGNoYXJhY3RlcnMgYWZ0ZXIg
TFNDCiAgICBpbXBsaWNpdCBub25lCiAgICAhIElucHV0L091dHB1dAogICAgY2hhcmFjdGVy
KGxlbj0qKSxpbnRlbnQoaW5vdXQpOjpzbmcgISBJL08gW3NuZ10gU3RyaW5nIHRvIE5VTC1p
bml0aWFsaXplCiAgICAhIExvY2FsCiAgICBpbnRlZ2VyIGlkeAogICAgaW50ZWdlciBsbmcK
ICAgIGludGVnZXIgbHN0X3Nnbl9jaHJfaWR4CiAgICAhIE1haW4gQ29kZQogICAgbG5nPWZ0
bl9zdHJsZW4oc25nKSAhIFtuYnJdIExlbmd0aCBvZiBzdHJpbmcKICAgIGxzdF9zZ25fY2hy
X2lkeD1mdG5fc3RybHNjKHNuZykKICAgIGRvIGlkeD1sc3Rfc2duX2Nocl9pZHgrMSxsbmcK
ICAgICAgIGlmKHNuZyhpZHg6aWR4KSA9PSAnICcpIHNuZyhpZHg6aWR4KT1jaGFyKDApCiAg
ICBlbmQgZG8gISBlbmQgbG9vcCBvdmVyIGNoYXJhY3RlcnMKICAgIHJldHVybgogIGVuZCBz
dWJyb3V0aW5lIGZ0bl9zdHJudWwKCiAgaW50ZWdlciBmdW5jdGlvbiBmdG5fc3RybHNjKHNu
ZykKICAgICEgUHVycG9zZTogUmV0dXJuIHBvc2l0aW9uIG9mIGxhc3Qgc2lnbmlmaWNhbnQg
Y2hhcmFjdGVyIChMU0MpIGluIHN0cmluZwogICAgISBMU0MgaXMgbGFzdCBjaGFyYWN0ZXIg
dGhhdCBpcyBub3QgYSBzcGFjZSBvciBhIE5VTCBjaGFyYWN0ZXIKICAgICEgUm91dGluZSBp
cyB1c2VmdWwgaW4gZGV0ZXJtaW5pbmcgZWZmZWN0aXZlIGxlbmd0aHMgb2Ygc3RyaW5ncyB3
aGljaAogICAgISBtYXkgaGF2ZSBiZWVuIHBhZGRlZCBieSBjb21waWxlciBvciBzaGVsbC4K
ICAgICEgQXV0b21hdGljIHBhZGRpbmcgaXMgYWx3YXlzIGRvbmUgd2l0aCBzcGFjZXMgb3Ig
TlVMcywgc28gdGhpcyByb3V0aW5lCiAgICAhIHRlbGxzIHVzIGhvdyBsb25nIHRoZSBub24t
cGFkZGVkIHBvcnRpb24gb2YgdGhlIHN0cmluZyBpcy4KICAgICEgUm91dGluZSB3aWxsIG1p
cy1oYW5kbGUgdXNlci1kZWZpbmVkIHN0cmluZ3MgdGhhdCBlbmQgaW4gc3BhY2VzCiAgICAh
IExTQyBpcyBhbHdheXMgPD0gbGVuKHNuZykKICAgICEgVXNhZ2U6CiAgICAhIHBzbj1mdG5f
c3RybHNjKHNuZykgISBbaWR4XSBMYXN0IHNpZ25pZmljYW50IGNoYXJhY3RlciBwb3NpdGlv
bgogICAgISBQcm90b3R5cGU6CiAgICAhIGludGVnZXIgZnRuX3N0cmxzYyAhIFtpZHhdIExh
c3Qgc2lnbmlmaWNhbnQgY2hhcmFjdGVyIHBvc2l0aW9uCiAgICBpbXBsaWNpdCBub25lCiAg
ICAhIElucHV0CiAgICBjaGFyYWN0ZXIobGVuPSopLGludGVudChpbik6OnNuZwogICAgISBM
b2NhbAogICAgaW50ZWdlciBpZHgKICAgIGludGVnZXIgbG5nCiAgICAhIE1haW4gQ29kZQog
ICAgbG5nPWxlbihzbmcpCiAgICBkbyBpZHg9bG5nLDEsLTEKICAgICAgICEgTG9vayBmb3Ig
bGFzdCBub3JtYWwgY2hhcmFjdGVyCiAgICAgICBpZiAoc25nKGlkeDppZHgpIC89ICcgJy5h
bmQuc25nKGlkeDppZHgpIC89IGNoYXIoMCkpIGdvdG8gMTAwCiAgICBlbmQgZG8gISBlbmQg
bG9vcCBvdmVyIGNoYXJhY3RlcnMKMTAwIGNvbnRpbnVlCiAgICBmdG5fc3RybHNjPWlkeAog
ICAgcmV0dXJuCiAgZW5kIGZ1bmN0aW9uIGZ0bl9zdHJsc2MKCiAgaW50ZWdlciBmdW5jdGlv
biBmdG5fc3RyZmljKHNuZykgISBbaWR4XSBGaXJzdCBOVUwgb3IgOC1iaXQgY2hhcmFjdGVy
IHBvc2l0aW9uCiAgICAhIFB1cnBvc2U6IFJldHVybiBwb3NpdGlvbiBvZiBmaXJzdCBpbnNp
Z25pZmljYW50IGNoYXJhY3RlciAoRklDKSBpbiBzdHJpbmcKICAgICEgRklDIGlzIGZpcnN0
IE5VTCBjaGFyYWN0ZXIgaW4gc3RyaW5nLCBvciBmaXJzdCA4LWJpdCBjaGFyYWN0ZXIsIGku
ZS4sIGlhY2hhciA+IDEyNwogICAgISBGSUMgaXMgbGVuKHNuZykrMSBpZiBzdHJpbmcgaGFz
IG5vIE5VTCBjaGFyYWN0ZXIgYW5kIG5vIGlhY2hhciA+IDEyNwogICAgISBVc2FnZToKICAg
ICEgcHNuPWZ0bl9zdHJmaWMoc25nKSAhIFtpZHhdIEZpcnN0IE5VTCBvciA4LWJpdCBjaGFy
YWN0ZXIgcG9zaXRpb24KICAgICEgUHJvdG90eXBlOgogICAgISBpbnRlZ2VyIGZ0bl9zdHJm
aWMgISBbaWR4XSBGaXJzdCBOVUwgb3IgOC1iaXQgY2hhcmFjdGVyIHBvc2l0aW9uCiAgICBp
bXBsaWNpdCBub25lCiAgICAhIElucHV0CiAgICBjaGFyYWN0ZXIobGVuPSopLGludGVudChp
bik6OnNuZyAhIEkgW3NuZ10gU3RyaW5nIHRvIGV4YW1pbmUKICAgICEgTG9jYWwKICAgIGlu
dGVnZXIgaWR4CiAgICBpbnRlZ2VyIGxuZwogICAgISBNYWluIENvZGUKICAgIGxuZz1sZW4o
c25nKQogICAgZG8gaWR4PTEsbG5nCiAgICAgICAhIExvb2sgZm9yIGZpcnN0IGFibm9ybWFs
IGNoYXJhY3RlcgogICAgICAgaWYgKHNuZyhpZHg6aWR4KSA9PSBjaGFyKDApIC5vci4gaWFj
aGFyKHNuZyhpZHg6aWR4KSkgPiAxMjcpIGdvdG8gMTAwCiAgICBlbmQgZG8gISBlbmQgbG9v
cCBvdmVyIGNoYXJhY3RlcnMKMTAwIGNvbnRpbnVlCiAgICBmdG5fc3RyZmljPWlkeCAhIFtp
ZHhdIEZpcnN0IE5VTCBvciA4LWJpdCBjaGFyYWN0ZXIgcG9zaXRpb24KICAgIHJldHVybgog
IGVuZCBmdW5jdGlvbiBmdG5fc3RyZmljCgogIHN1YnJvdXRpbmUgZnRuX3N0cnBybihzbmcp
ICEgW2ZuY10gUHJpbnQgY2hhcmFjdGVyIHZhbHVlcyBvZiBzdHJpbmcKICAgICEgUHVycG9z
ZTogUHJpbnQgY2hhcmFjdGVyIHZhbHVlcyBvZiBzdHJpbmcKICAgICEgVXNhZ2U6CiAgICAh
IGNhbGwgZnRuX3N0cnBybihzbmcpICEgW2ZuY10gUHJpbnQgY2hhcmFjdGVyIHZhbHVlcyBv
ZiBzdHJpbmcKICAgIGltcGxpY2l0IG5vbmUKICAgICEgSW5wdXQKICAgIGNoYXJhY3Rlcihs
ZW49KiksaW50ZW50KGluKTo6c25nCiAgICAhIExvY2FsCiAgICBjaGFyYWN0ZXIoMSkgY2hy
X2NyciAhIFtzbmddIEN1cnJlbnQgY2hhcmFjdGVyCiAgICBpbnRlZ2VyIGlkeAogICAgaW50
ZWdlciBsbmcKICAgIGludGVnZXIgaWFjaHJfY3JyICEgW2VubV0gSW50ZWdlciByZXByZXNl
bnRpbmcgY3VycmVudCBjaGFyYWN0ZXIKICAgICEgTWFpbiBDb2RlCiAgICBsbmc9bGVuKHNu
ZykKICAgIGRvIGlkeD0xLGxuZwogICAgICAgISBQcmludCBlYWNoIG5vcm1hbCBjaGFyYWN0
ZXIKICAgICAgIGNocl9jcnI9c25nKGlkeDppZHgpICEgW3NuZ10gQ3VycmVudCBjaGFyYWN0
ZXIKICAgICAgIGlhY2hyX2Nycj1pYWNoYXIoY2hyX2NycikgISBbZW5tXSBJbnRlZ2VyIHJl
cHJlc2VudGluZyBjdXJyZW50IGNoYXJhY3RlcgogICAgICAgaWYgKGlkeCA8IGxuZykgdGhl
bgogICAgICAgICAgaWYgKGlhY2hyX2NyciA9PSAwKSB0aGVuCiAgICAgICAgICAgICB3cml0
ZSAoNiwnKGEzLGEzLGkzLGEyKScsYWR2YW5jZT0ibm8iKSAnTlVMJywnID0gJyxpYWNocl9j
cnIsJywgJwogICAgICAgICAgZWxzZSBpZiAoaWFjaHJfY3JyID09IDMyKSB0aGVuCiAgICAg
ICAgICAgICB3cml0ZSAoNiwnKGE1LGEzLGkzLGEyKScsYWR2YW5jZT0ibm8iKSAnU1BBQ0Un
LCcgPSAnLGlhY2hyX2NyciwnLCAnCiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICB3cml0
ZSAoNiwnKGExLGEzLGkzLGEyKScsYWR2YW5jZT0ibm8iKSBjaHJfY3JyLCcgPSAnLGlhY2hy
X2NyciwnLCAnCiAgICAgICAgICBlbmRpZiAhIGVuZGlmCiAgICAgICBlbHNlCiAgICAgICAg
ICBpZiAoaWFjaHJfY3JyID09IDApIHRoZW4KICAgICAgICAgICAgIHdyaXRlICg2LCcoYTMs
YTMsaTMpJykgJ05VTCcsJyA9ICcsaWFjaHJfY3JyLCcsICcKICAgICAgICAgIGVsc2UgaWYg
KGlhY2hyX2NyciA9PSAzMikgdGhlbgogICAgICAgICAgICAgd3JpdGUgKDYsJyhhNSxhMyxp
MyknKSAnU1BBQ0UnLCcgPSAnLGlhY2hyX2NyciwnLCAnCiAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICB3cml0ZSAoNiwnKGExLGEzLGkzKScpIGNocl9jcnIsJyA9ICcsaWFjaHJfY3Jy
LCcsICcKICAgICAgICAgIGVuZGlmICEgZW5kaWYKICAgICAgIGVuZGlmICEgZW5kaWYKICAg
IGVuZCBkbyAhIGVuZCBsb29wIG92ZXIgY2hhcmFjdGVycwogICAgcmV0dXJuCiAgZW5kIHN1
YnJvdXRpbmUgZnRuX3N0cnBybgoKICBzdWJyb3V0aW5lIGZ0bl9zdHJjcHkoc25nMSxzbmcy
KQogICAgISBQdXJwb3NlOiBDb3B5IHNuZzIgaW50byBzbmcxCiAgICAhIFNwYWNlIHJlbWFp
bmluZyBhdCBlbmQgb2Ygc25nMSBpcyBOVUwtaW5pdGlhbGl6ZWQKICAgICEgVGhpcyBmdW5j
dGlvbiB3b3JrcyB3ZWxsIGF0IGNvcHlpbmcgZml4ZWQgc3RyaW5ncyBpbnRvIHZhcmlhYmxl
cywgZS5nLiwKICAgICEgVXNhZ2U6CiAgICAhIGNhbGwgZnRuX3N0cmNweShzbmcsJ0hlbGxv
IFdvcmxkJykgISBbZm5jXSBDb3B5IHNuZzIgaW50byBzbmcxLCBOVUwtdGVybWluYXRlIHVu
dXNlZCBzcGFjZQogICAgdXNlIGRiZ19tZGwgISBbbWRsXSBEZWJ1Z2dpbmcgY29uc3RhbnRz
LCBwcmdfbm0sIGRiZ19sdmwKICAgIGltcGxpY2l0IG5vbmUKICAgICEgQ29tbW9ucwogICAg
ISBJbnB1dAogICAgY2hhcmFjdGVyKGxlbj0qKSxpbnRlbnQoaW4pOjpzbmcyCiAgICAhIElu
cHV0L091dHB1dAogICAgY2hhcmFjdGVyKGxlbj0qKSxpbnRlbnQoaW5vdXQpOjpzbmcxCiAg
ICAhIExvY2FsCiAgICBpbnRlZ2VyIGxlbjEKICAgIGludGVnZXIgbGVuMgogICAgaW50ZWdl
ciBsbmcxCiAgICBpbnRlZ2VyIGxuZzIKICAgICEgTWFpbiBDb2RlCiAgICBsZW4xPWxlbihz
bmcxKQogICAgbGVuMj1sZW4oc25nMikKICAgICEgSW5pdGlhbGl6ZSBzbmcxIGJlZm9yZSBk
aWFnbm9zdGljIGZ0bl9zdHJsZW4oc25nMSkgaXMgZXZhbHVhdGVkCiAgICAhIFRoaXMgaGFu
ZGxlcyBzaXR1YXRpb24gd2hlbiBzbmcxIGlzIGxhcmdlIGVub3VnaCwgYnV0IG5vdC1pbml0
aWFsaXplZCBpbiBjYWxsaW5nIHJvdXRpbmUKICAgICEgT3RoZXJ3aXNlIHNvbWUgY29tcGls
ZXJzLCBlLmcuLCBsZjk1IGluIGRlYnVnIG1vZGUsIG1heSBjb21wbGFpbiBpbiBmdG5fc3Ry
bGVuKHNuZzEpLT5mdG5fc3RyZmljKCkKICAgICEgd2hlbiB0aGV5IGFyZSB1bmFibGUgdG8g
ZGV0ZXJtaW5lIHN0cmluZyBsZW5ndGgKICAgICEgSW5pdGlhbGl6ZSBzbmcxIGJlZm9yZSBj
b3B5aW5nIHNuZzIgaW50byBzbmcxIFdMT0cgc2luY2UgZnRuX3N0cmNweSgpIGJlaGF2aW9y
CiAgICAhIGlzIGludGVuZGVkIHRvIG1pbWljIEMgbGlicmFyeSBzdHJjcHkoKSB3aGljaCBO
VUwtdGVybWluYXRlcyB0aGUgY29weSwgYW5kIHRodXMKICAgICEgYWxsIG1hdGVyaWFsIGFm
dGVyIHRoZSBOVUwgbWF5IGJlIGFzc3VtZWQgdG8gYmUgdW5kZWZpbmVkLCBpLmUuLCBzZXQg
dG8gTlVMLgogICAgISBUaGlzIGlzIG5vdCBlcXVpdmFsZW50IHRvIGNhbGxpbmcgZnRuX3N0
cm51bChzbmcxKSBhZnRlciB0aGUgY29weSBzaW5jZSB3aGVuIHNuZzEgaXMgdW5kZWZpbmVk
CiAgICAhIFRoZXJlIGNvdWxkIGJlIGNvcm5lciBjYXNlcyB3aGVyZSBjb250ZW50cyBvZiB1
bmRlZmluZWQgc25nMSBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkKICAgICEgZm9sbG93aW5nIGNv
cHkgb2Ygc25nMiBpcyBub3QgTlVMIG9yIDgtYml0LiBSZXN1bHRzIGFyZSB1bnByZWRpY2F0
YWJsZSBpbiB0aGF0IGNhc2UuCiAgICAhIEhlbmNlIGluaXRpYWxpemUgc25nMSB0byBOVUwg
YmVmb3JlIHVzaW5nIGZ0bl9zdHJsZW4oc25nMSkgYW5kIGJlZm9yZSBjb3B5aW5nIHNuZzIK
ICAgIGNhbGwgZnRuX3N0cmluaShzbmcxKSAhIFtzbmddIHNuZygxOmxlbik9TlVMCiAgICBs
bmcxPWZ0bl9zdHJsZW4oc25nMSkgISBbbmJyXSBMZW5ndGggb2Ygc3RyaW5nCiAgICBsbmcy
PWZ0bl9zdHJsZW4oc25nMikgISBbbmJyXSBMZW5ndGggb2Ygc3RyaW5nCiAgICBpZiAobGVu
MSA8IGxuZzIpIHRoZW4KICAgICAgIHdyaXRlICg2LCcoYSxhKScpIHByZ19ubSgxOmZ0bl9z
dHJsZW4ocHJnX25tKSksJzogRVJST1IgbGVuMSA8IGxuZzIgaW4gZnRuX3N0cmNweSgpJwog
ICAgICAgd3JpdGUgKDYsJyhhLGkzLGEsaTMsMmEpJykgJ2xlbjEgPSAnLGxlbjEsJywgbG5n
MSA9ICcsbG5nMSwnLCBzbmcxID0gJyxzbmcxCiAgICAgICB3cml0ZSAoNiwnKGEsaTMsYSxp
MywyYSknKSAnbGVuMiA9ICcsbGVuMiwnLCBsbmcyID0gJyxsbmcyLCcsIHNuZzIgPSAnLHNu
ZzIKICAgICAgIHN0b3AgJ0VYSVRfRkFJTFVSRSBmcm9tIGZ0bl9zdHJjcHkoKScKICAgIGVu
ZGlmICEgZW5kaWYKICAgIHNuZzEoMTpsbmcyKT1zbmcyKDE6bG5nMikKICAgIHJldHVybgog
IGVuZCBzdWJyb3V0aW5lIGZ0bl9zdHJjcHkKCiAgaW50ZWdlciBmdW5jdGlvbiBmdG5fc3Ry
Y21wKHNuZzEsc25nMikgISBbZm5jXSBDb21wYXJlIHNuZzEgdG8gc25nMjogLTEsMCwxIGlm
ZiBzbmcxIDwsPSw+IHNuZzIKICAgICEgUHVycG9zZTogQ29tcGFyZSBzbmcyIHRvIHNuZzEK
ICAgICEgUmV0dXJucyBhbiBpbnRlZ2VyIGxlc3MgdGhhbiwgZXF1YWwgdG8sIG9yIGdyZWF0
ZXIgdGhhbgogICAgISB6ZXJvIGlmIHNuZzEgaXMgZm91bmQsIHJlc3BlY3RpdmVseSwgdG8g
YmUgbGVzcyB0aGFuLCB0bwogICAgISBtYXRjaCwgb3IgYmUgZ3JlYXRlciB0aGFuIHNuZzIu
CiAgICAhIFVzYWdlOgogICAgISBpZihmdG5fc3RyY21wKHNuZzEsIkhlbGxvIFdvcmxkIik9
PTApIHRoZW4gISBbZm5jXSBDb21wYXJlIHNuZzEgdG8gc25nMjogLTEsMCwxIGlmZiBzbmcx
IDwsPSw+IHNuZzIKICAgIHVzZSBkYmdfbWRsICEgW21kbF0gRGVidWdnaW5nIGNvbnN0YW50
cywgcHJnX25tLCBkYmdfbHZsCiAgICBpbXBsaWNpdCBub25lCiAgICAhIENvbW1vbnMKICAg
ICEgSW5wdXQKICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KGluKTo6c25nMQogICAgY2hh
cmFjdGVyKGxlbj0qKSxpbnRlbnQoaW4pOjpzbmcyCiAgICAhIElucHV0L091dHB1dAogICAg
ISBMb2NhbAogICAgaW50ZWdlciBpZHggISBbaWR4XSBDb3VudGluZyBpZHgKICAgIGludGVn
ZXIgbGVuMQogICAgaW50ZWdlciBsZW4yCiAgICBpbnRlZ2VyIGxuZzEKICAgIGludGVnZXIg
bG5nMgogICAgaW50ZWdlciBsbmdfbWluCiAgICAhIE1haW4gQ29kZQogICAgbGVuMT1sZW4o
c25nMSkKICAgIGxlbjI9bGVuKHNuZzIpCiAgICBsbmcxPWZ0bl9zdHJsZW4oc25nMSkgISBb
bmJyXSBMZW5ndGggb2Ygc3RyaW5nCiAgICBsbmcyPWZ0bl9zdHJsZW4oc25nMikgISBbbmJy
XSBMZW5ndGggb2Ygc3RyaW5nCiAgICBpZiAoLmZhbHNlLikgdGhlbgogICAgICAgISBJZiB0
aGlzIGRlYnVnZ2luZyBibG9jayBpcyB0dXJuZWQgb24gdGhlbiBhdHRlbXB0aW5nIHRvIHBy
aW50LGZ0bl9zdHJjbXAoKQogICAgICAgISB3aWxsIGNhdXNlIGEgcmVjdXJzaXZlIEkvTyBl
cnJvciBhdCBydW50aW1lCiAgICAgICB3cml0ZSAoNiwnKDJhKScpIHByZ19ubSgxOmZ0bl9z
dHJsZW4ocHJnX25tKSksJzogREVCVUcgRGlhZ25vc3RpY3MgZnJvbSBmdG5fc3RyY21wKCkn
CiAgICAgICB3cml0ZSAoNiwnKDIoYSxpMyksMmEpJykgJ2xlbjEgPSAnLGxlbjEsJywgbG5n
MSA9ICcsbG5nMSwnLCBzbmcxID0gJyxzbmcxCiAgICAgICB3cml0ZSAoNiwnKDIoYSxpMyks
MmEpJykgJ2xlbjIgPSAnLGxlbjIsJywgbG5nMiA9ICcsbG5nMiwnLCBzbmcyID0gJyxzbmcy
CiAgICAgICBjYWxsIGZ0bl9zdHJwcm4oc25nMSkgISBbZm5jXSBQcmludCBjaGFyYWN0ZXIg
dmFsdWVzIG9mIHN0cmluZwogICAgICAgY2FsbCBmdG5fc3RycHJuKHNuZzIpICEgW2ZuY10g
UHJpbnQgY2hhcmFjdGVyIHZhbHVlcyBvZiBzdHJpbmcKICAgIGVuZGlmICEgZW5kaWYKICAg
IGxuZ19taW49bWluKGxuZzEsbG5nMikKICAgIGRvIGlkeD0xLGxuZ19taW4KICAgICAgICEg
UHJldmVudCBtZW1vcnkgb3ZlcnJ1bnMKICAgICAgICEgQ2hhcmFjdGVycyBhcmUgZXF1YWws
IHByb2NlZWQgdG8gbmV4dCBjaGFyYWN0ZXIKICAgICAgIGlmIChpYWNoYXIoc25nMShpZHg6
aWR4KSkgPT0gaWFjaGFyKHNuZzIoaWR4OmlkeCkpKSBjeWNsZSAhIEdvdG8gbmV4dCBpdGVy
YXRpb24KICAgICAgICEgQ2hhcmFjdGVycyBhcmUgdW5lcXVhbCwgZGV0ZXJtaW5lIHJlbGF0
aW9uc2hpcAogICAgICAgaWYgKGlhY2hhcihzbmcxKGlkeDppZHgpKSA8IGlhY2hhcihzbmcy
KGlkeDppZHgpKSkgdGhlbgogICAgICAgICAgZnRuX3N0cmNtcD0tMSAhIFtmbmNdIENvbXBh
cmUgc25nMSB0byBzbmcyOiAtMSwwLDEgaWZmIHNuZzEgPCw9LD4gc25nMgogICAgICAgZWxz
ZSAhIChpYWNoYXIoc25nMShpZHg6aWR4KSkgPiBpYWNoYXIoc25nMihpZHg6aWR4KSkpCiAg
ICAgICAgICBmdG5fc3RyY21wPTEgISBbZm5jXSBDb21wYXJlIHNuZzEgdG8gc25nMjogLTEs
MCwxIGlmZiBzbmcxIDwsPSw+IHNuZzIKICAgICAgIGVuZGlmICEgZW5kaWYKCiAgICAgICAh
IENoYXJhY3RlcnMgd2VyZSB1bmVxdWFsLCBleGl0IHdpdGggYXBwcm9wcmlhdGUgdmFsdWUK
ICAgICAgIGdvdG8gMTAwICEgRXhpdCBCcmFuY2gKICAgIGVuZCBkbwoKICAgIGlmIChsbmcx
ID09IGxuZzIpIHRoZW4KICAgICAgICEgQWxsIHNpZ25pZmljYW50IHZhbHVlcyBvZiBib3Ro
IHN0cmluZ3Mgd2VyZSBlcXVhbCBpbiBhbGwgcG9zaXRpb25zCiAgICAgICAhIFRodXMgdGhl
IHN0cmluZ3MgYXJlIGVxdWFsIGJ5IG91ciBjcml0ZXJpb24KICAgICAgIGZ0bl9zdHJjbXA9
MCAhIFtmbmNdIENvbXBhcmUgc25nMSB0byBzbmcyOiAtMSwwLDEgaWZmIHNuZzEgPCw9LD4g
c25nMgogICAgZWxzZQogICAgICAgISBBbGwgc2lnbmlmaWNhbnQgdmFsdWVzIG9mIGJvdGgg
c3RyaW5ncyB3ZXJlIGVxdWFsIGluIGFsbCBtdXR1YWxseSBsZWdhbCBwb3NpdGlvbnMKICAg
ICAgICEgSG93ZXZlciwgb25lIHN0cmluZyBoYXMgbW9yZSBzaWduaWZpY2FudCBjaGFyYWN0
ZXJzIHRoYW4gdGhlIG90aGVyCiAgICAgICAhIFRodXMgcmV0dXJuIHZhbHVlIGRlcGVuZHMg
b24gd2hpY2ggc3RyaW5nIGlzIGxvbmdlcgogICAgICAgaWYgKGxuZzEgPiBsbmcyKSB0aGVu
CiAgICAgICAgICBmdG5fc3RyY21wPTEgISBbZm5jXSBDb21wYXJlIHNuZzEgdG8gc25nMjog
LTEsMCwxIGlmZiBzbmcxIDwsPSw+IHNuZzIKICAgICAgIGVsc2UKICAgICAgICAgIGZ0bl9z
dHJjbXA9LTEgISBbZm5jXSBDb21wYXJlIHNuZzEgdG8gc25nMjogLTEsMCwxIGlmZiBzbmcx
IDwsPSw+IHNuZzIKICAgICAgIGVuZGlmICEgZW5kaWYKICAgIGVuZGlmICEgZW5kaWYgbG5n
MSA9PSBsbmcyCgoxMDAgY29udGludWUgISBFeGl0IGJyYW5jaCBmb3IgdW5lcXVhbCB2YWx1
ZXMgaW5zaWRlIGxvb3AKICAgIHJldHVybgogIGVuZCBmdW5jdGlvbiBmdG5fc3RyY21wCgog
IHN1YnJvdXRpbmUgZnRuX3N0cmNweWxzYyhzbmcxLHNuZzIpCiAgICAhIFB1cnBvc2U6IENv
cHkgc25nMiBpbnRvIHNuZzEKICAgICEgU3BhY2UgcmVtYWluaW5nIGF0IGVuZCBvZiBzbmcx
IGlzIE5VTC1pbml0aWFsaXplZAogICAgISBUaGlzIGZ1bmN0aW9uIHdvcmtzIHdlbGwgYXQg
Y29weWluZyBmaXhlZCBzdHJpbmdzIGludG8gdmFyaWFibGVzLCBlLmcuLAogICAgISBVc2Fn
ZToKICAgICEgY2FsbCBmdG5fc3RyY3B5bHNjKHNuZywnSGVsbG8gV29ybGQnKSAhIFtmbmNd
IENvcHkgdXAgdG8gTFNDIG9mIHNuZzIgaW50byBzbmcxLCBOVUwtaW5pdGlhbGl6ZSB1bnVz
ZWQgc3BhY2UKICAgIHVzZSBkYmdfbWRsICEgW21kbF0gRGVidWdnaW5nIGNvbnN0YW50cywg
cHJnX25tLCBkYmdfbHZsCiAgICBpbXBsaWNpdCBub25lCiAgICAhIENvbW1vbnMKICAgICEg
SW5wdXQKICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KGluKTo6c25nMgogICAgISBJbnB1
dC9PdXRwdXQKICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KGlub3V0KTo6c25nMQogICAg
ISBMb2NhbAogICAgaW50ZWdlciBpZHggISBbaWR4XSBDb3VudGluZyBpZHgKICAgIGludGVn
ZXIgbGVuMQogICAgaW50ZWdlciBsZW4yCiAgICBpbnRlZ2VyIGxzYzEKICAgIGludGVnZXIg
bHNjMgogICAgISBNYWluIENvZGUKICAgIGxlbjE9bGVuKHNuZzEpCiAgICBsZW4yPWxlbihz
bmcyKQogICAgbHNjMT1mdG5fc3RybHNjKHNuZzEpCiAgICBsc2MyPWZ0bl9zdHJsc2Moc25n
MikKICAgIGlmIChsZW4xIDwgbHNjMikgdGhlbgogICAgICAgd3JpdGUgKDYsJyhhLGEpJykg
cHJnX25tKDE6ZnRuX3N0cmxzYyhwcmdfbm0pKSwnOiBFUlJPUiBsZW4xIDwgbHNjMiBpbiBm
dG5fc3RyY3B5bHNjKCknCiAgICAgICB3cml0ZSAoNiwnKGEsaTMsYSxpMywyYSknKSAnbGVu
MSA9ICcsbGVuMSwnLCBsc2MxID0gJyxsc2MxLCcsIHNuZzEgPSAnLHNuZzEKICAgICAgIHdy
aXRlICg2LCcoYSxpMyxhLGkzLDJhKScpICdsZW4yID0gJyxsZW4yLCcsIGxzYzIgPSAnLGxz
YzIsJywgc25nMiA9ICcsc25nMgogICAgICAgc3RvcCAnRVhJVF9GQUlMVVJFIGZyb20gZnRu
X3N0cmNweWxzYygpJwogICAgZW5kaWYgISBlbmRpZgogICAgc25nMSgxOmxzYzIpPXNuZzIo
MTpsc2MyKQogICAgISBOVUwtaW5pdGlhbGl6ZSByZXN0IG9mIHN0cmluZwogICAgZG8gaWR4
PWxzYzIrMSxsZW4xCiAgICAgICBzbmcxKGlkeDppZHgpPWNoYXIoMCkKICAgIGVuZCBkbyAh
IGVuZCBsb29wIG92ZXIgY2hhcmFjdGVycwogICAgcmV0dXJuCiAgZW5kIHN1YnJvdXRpbmUg
ZnRuX3N0cmNweWxzYwoKICBzdWJyb3V0aW5lIGZ0bl9zdHJjYXQoICYgISBbZm5jXSBzbmcx
IDo9IHNuZzEgLy8gc25nMgogICAgICAgc25nMSwgJiAhIEkvTyBbc25nXSBTdHJpbmcgdG8g
YWZmaXggc2Vjb25kIHN0cmluZyB0bwogICAgICAgc25nMikgISBJIFtzbmddIFN0cmluZyB0
byBhZmZpeCB0byBmaXJzdCBzdHJpbmcKICAgICEgUHVycG9zZTogc25nMSA6PSBzbmcxIC8v
IHNuZzIKICAgICEgVGhlIGNhc2Ugd2hlcmUgc25nMT1zbmcyIGlzIGhhbmRsZWQgY29ycmVj
dGx5CiAgICAhIFVzYWdlOgogICAgISBjYWxsIGZ0bl9zdHJjYXQoc25nMSxzbmcyKSAhIFtm
bmNdIHNuZzEgOj0gc25nMSAvLyBzbmcyCiAgICB1c2UgZGJnX21kbCAhIFttZGxdIERlYnVn
Z2luZyBjb25zdGFudHMsIHByZ19ubSwgZGJnX2x2bAogICAgaW1wbGljaXQgbm9uZQogICAg
ISBDb21tb25zCiAgICAhIElucHV0CiAgICBjaGFyYWN0ZXIobGVuPSopLGludGVudChpbik6
OnNuZzIgISBJIFtzbmddIFN0cmluZyB0byBhZmZpeCB0byBmaXJzdCBzdHJpbmcKICAgICEg
SW5wdXQvT3V0cHV0CiAgICBjaGFyYWN0ZXIobGVuPSopLGludGVudChpbm91dCk6OnNuZzEg
ISBJL08gW3NuZ10gU3RyaW5nIHRvIGFmZml4IHNlY29uZCBzdHJpbmcgdG8KICAgICEgTG9j
YWwKICAgIGludGVnZXIgbGVuMQogICAgaW50ZWdlciBsZW4yCiAgICBpbnRlZ2VyIGxuZzEK
ICAgIGludGVnZXIgbG5nMgogICAgISBNYWluIENvZGUKICAgIGxlbjE9bGVuKHNuZzEpCiAg
ICBsZW4yPWxlbihzbmcyKQogICAgbG5nMT1mdG5fc3RybGVuKHNuZzEpICEgW25icl0gTGVu
Z3RoIG9mIHN0cmluZwogICAgbG5nMj1mdG5fc3RybGVuKHNuZzIpICEgW25icl0gTGVuZ3Ro
IG9mIHN0cmluZwogICAgaWYgKGxuZzErbG5nMiA+PSBsZW4xKSB0aGVuCiAgICAgICB3cml0
ZSAoNiwnKGEsYSknKSBwcmdfbm0oMTpmdG5fc3RybGVuKHByZ19ubSkpLCc6IEVSUk9SIGxu
ZzErbG5nMiA+PSBsZW4xIGluIGZ0bl9zdHJjYXQoKScKICAgICAgIHdyaXRlICg2LCcoYSxp
MyxhLGkzLDJhKScpICdsZW4xID0gJyxsZW4xLCcsIGxuZzEgPSAnLGxuZzEsJywgc25nMSA9
ICcsc25nMQogICAgICAgd3JpdGUgKDYsJyhhLGkzLGEsaTMsMmEpJykgJ2xlbjIgPSAnLGxl
bjIsJywgbG5nMiA9ICcsbG5nMiwnLCBzbmcyID0gJyxzbmcyCiAgICAgICBzdG9wICdFWElU
X0ZBSUxVUkUgZnJvbSBmdG5fc3RyY2F0KCknCiAgICBlbmRpZiAhIGVuZGlmCiAgICBzbmcx
KGxuZzErMTpsbmcxK2xuZzIpPXNuZzIoMTpsbmcyKSAhIEkvTyBbc25nXSBTdHJpbmcgdG8g
YWZmaXggc2Vjb25kIHN0cmluZyB0bwogICAgcmV0dXJuCiAgZW5kIHN1YnJvdXRpbmUgZnRu
X3N0cmNhdAoKICBzdWJyb3V0aW5lIGZ0bl9zdHJwZngoc25nMSxzbmcyKSAhIFtzYnJdIHNu
ZzIgOj0gc25nMSAvLyBzbmcyCiAgICAhIFB1cnBvc2U6IHNuZzIgOj0gc25nMSAvLyBzbmcy
CiAgICAhIERpZmZlcmVuY2VzIHdpdGggZnRuX3N0cmNhdCgpOgogICAgISAxLiBSZXN1bHQg
aXMgc3RvcmVkIGluIHNlY29uZCBzdHJpbmcgbm90IGZpcnN0IHN0cmluZwogICAgISAyLiBT
dHJpbmdzIGFyZSB0cmltbWVkIGJlZm9yZSBjb25jYXRlbmF0aW9uCiAgICAhIFRoZSBjYXNl
IHdoZXJlIHNuZzE9c25nMiBpcyBoYW5kbGVkIGNvcnJlY3RseQogICAgISBVc2FnZToKICAg
ICEgY2FsbCBmdG5fc3RycGZ4KHNuZzEsc25nMikgISBbc2JyXSBzbmcyIDo9IHNuZzEgLy8g
c25nMgogICAgdXNlIGRiZ19tZGwgISBbbWRsXSBEZWJ1Z2dpbmcgY29uc3RhbnRzLCBwcmdf
bm0sIGRiZ19sdmwKICAgIGltcGxpY2l0IG5vbmUKICAgICEgQ29tbW9ucwogICAgISBJbnB1
dAogICAgY2hhcmFjdGVyKGxlbj0qKSxpbnRlbnQoaW4pOjpzbmcxCiAgICAhIE91dHB1dAog
ICAgY2hhcmFjdGVyKGxlbj0qKSxpbnRlbnQoaW5vdXQpOjpzbmcyCiAgICAhIExvY2FsCiAg
ICBpbnRlZ2VyIGxlbjEKICAgIGludGVnZXIgbGVuMgogICAgaW50ZWdlciBsZW5fdHJpbTEK
ICAgIGludGVnZXIgbGVuX3RyaW0yCiAgICBpbnRlZ2VyIGxuZzEKICAgIGludGVnZXIgbG5n
MgogICAgaW50ZWdlciBsc2MxCiAgICBpbnRlZ2VyIGxzYzIKICAgICEgTWFpbiBDb2RlCiAg
ICBsZW4xPWxlbihzbmcxKQogICAgbGVuMj1sZW4oc25nMikKICAgIGxuZzE9ZnRuX3N0cmxl
bihzbmcxKSAhIFtuYnJdIExlbmd0aCBvZiBzdHJpbmcKICAgIGxuZzI9ZnRuX3N0cmxlbihz
bmcyKSAhIFtuYnJdIExlbmd0aCBvZiBzdHJpbmcKICAgIGxzYzE9ZnRuX3N0cmxzYyhzbmcx
KQogICAgbHNjMj1mdG5fc3RybHNjKHNuZzIpCiAgICBsZW5fdHJpbTE9bGVuX3RyaW0oc25n
MSkKICAgIGxlbl90cmltMj1sZW5fdHJpbShzbmcyKQogICAgaWYgKGxzYzErbHNjMiA+PSBs
ZW4yKSB0aGVuCiAgICAgICB3cml0ZSAoNiwnKGEsYSknKSBwcmdfbm0oMTpmdG5fc3RybGVu
KHByZ19ubSkpLCc6IEVSUk9SIGxzYzErbHNjMiA+PSBsZW4yIGluIGZ0bl9zdHJwZngoKScK
ICAgICAgIHdyaXRlICg2LCcoNChhLGkzKSwyYSknKSAnbGVuMSA9ICcsbGVuMSwnLCBsZW5f
dHJpbTEgPSAnLGxlbl90cmltMSwnLCBsbmcxID0gJyxsbmcxLCcsIHNuZzEgPSAnLHNuZzEK
ICAgICAgIHdyaXRlICg2LCcoNChhLGkzKSwyYSknKSAnbGVuMiA9ICcsbGVuMiwnLCBsZW5f
dHJpbTIgPSAnLGxlbl90cmltMiwnLCBsbmcyID0gJyxsbmcyLCcsIHNuZzIgPSAnLHNuZzIK
ICAgICAgIGNhbGwgZnRuX3N0cnBybihzbmcxKQogICAgICAgY2FsbCBmdG5fc3RycHJuKHNu
ZzIpCiAgICAgICBzdG9wICdFWElUX0ZBSUxVUkUgZnJvbSBmdG5fc3RycGZ4KCknCiAgICBl
bmRpZiAhIGVuZGlmCiAgICAhIE9yZGVyIGlzIGltcG9ydGFudAogICAgc25nMihsc2MxKzE6
bHNjMStsc2MyKT1zbmcyKDE6bHNjMikKICAgIHNuZzIoMTpsc2MxKT1zbmcxKDE6bHNjMSkK
ICAgIHJldHVybgogIGVuZCBzdWJyb3V0aW5lIGZ0bl9zdHJwZngKCiAgc3Vicm91dGluZSBm
dG5fZHJjcGZ4KCAmICEgW3Nicl0gZmxfbm0gOj0gZHJjL2ZsX25tCiAgICAgICBkcmMsICYg
ISBJIFtzbmddIERpcmVjdG9yeSB0byBwcmVwZW5kCiAgICAgICBmbF9ubSkgISBJL08gW3Nu
Z10gRmlsZSBuYW1lCiAgICAhIFB1cnBvc2U6IGZsX25tIDo9IGRyYy9mbF9ubSwgbW9yZSBv
ciBsZXNzCiAgICAhIERpZmZlcmVuY2VzIHdpdGggZnRuX3N0cnBmeCgpOgogICAgISAxLiBS
ZXN1bHQgaXMgc3RvcmVkIGluIHNlY29uZCBzdHJpbmcgbm90IGZpcnN0IHN0cmluZwogICAg
ISAyLiBTdHJpbmdzIGFyZSB0cmltbWVkIGJlZm9yZSBjb25jYXRlbmF0aW9uCiAgICAhIDMu
IEZpbGVuYW1lcyBjb250YWluaW5nIHNsYXNoZXMgYXJlIHVuYWx0ZXJlZAogICAgISBVc2Fn
ZToKICAgICEgY2FsbCBmdG5fZHJjcGZ4KGRyYyxmbF9ubSkgISBbc2JyXSBmbF9ubSA6PSBk
cmMvZmxfbm0KICAgIHVzZSBkYmdfbWRsICEgW21kbF0gRGVidWdnaW5nIGNvbnN0YW50cywg
cHJnX25tLCBkYmdfbHZsCiAgICBpbXBsaWNpdCBub25lCiAgICAhIENvbW1vbnMKICAgICEg
SW5wdXQKICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KGluKTo6ZHJjICEgSSBbc25nXSBE
aXJlY3RvcnkgdG8gcHJlcGVuZAogICAgISBJbnB1dC9PdXRwdXQKICAgIGNoYXJhY3Rlcihs
ZW49KiksaW50ZW50KGlub3V0KTo6Zmxfbm0gISBJL08gW3Nicl0gRmlsZSBuYW1lCiAgICAh
IExvY2FsCiAgICBpbnRlZ2VyIGxlbl9kcmMKICAgIGludGVnZXIgbGVuX2ZsCiAgICBpbnRl
Z2VyIGxuZ19kcmMKICAgIGludGVnZXIgbG5nX2ZsCiAgICAhIE1haW4gQ29kZQogICAgbGVu
X2RyYz1sZW4oZHJjKQogICAgbGVuX2ZsPWxlbihmbF9ubSkKICAgIGxuZ19kcmM9ZnRuX3N0
cmxlbihkcmMpICEgW25icl0gTGVuZ3RoIG9mIHN0cmluZwogICAgbG5nX2ZsPWZ0bl9zdHJs
ZW4oZmxfbm0pICEgW25icl0gTGVuZ3RoIG9mIHN0cmluZwogICAgaWYgKGxuZ19kcmMrbG5n
X2ZsID49IGxlbl9mbCkgdGhlbgogICAgICAgd3JpdGUgKDYsJyhhLGEpJykgcHJnX25tKDE6
ZnRuX3N0cmxlbihwcmdfbm0pKSwnOiBFUlJPUiBsbmdfZHJjK2xuZ19mbCA+PSBsZW5fZmwg
aW4gZnRuX2RyY3BmeCgpJwogICAgICAgd3JpdGUgKDYsJyg0KGEsaTMpLDJhKScpICdsZW5f
ZHJjID0gJyxsZW5fZHJjLCcsIGxuZ19kcmMgPSAnLGxuZ19kcmMsJywgZHJjID0gJyxkcmMK
ICAgICAgIHdyaXRlICg2LCcoNChhLGkzKSwyYSknKSAnbGVuX2ZsID0gJyxsZW5fZmwsJywg
bG5nX2ZsID0gJyxsbmdfZmwsJywgZmxfbm0gPSAnLGZsX25tCiAgICAgICBjYWxsIGZ0bl9z
dHJwcm4oZHJjKQogICAgICAgY2FsbCBmdG5fc3RycHJuKGZsX25tKQogICAgICAgc3RvcCAn
RVhJVF9GQUlMVVJFIGZyb20gZnRuX2RyY3BmeCgpJwogICAgZW5kaWYgISBlbmRpZgoKICAg
IGlmICggJiAhIENvbmRpdGlvbnMgZm9yIHByZXBlbmRpbmcgZmxfbm0gd2l0aCBkcmM6CiAg
ICAgICAgIGxuZ19kcmMgPiAwIC5hbmQuICYgISBEaXJlY3RvcnkgbXVzdCBiZSBub24tTlVM
CiAgICAgICAgIGZ0bl9zdHJzdHIoZmxfbm0sJy8nKSA9PSAtMSAmICEgZmxfbm0gZG9lcyBu
b3QgbG9vayBsaWtlIGRpcmVjdG9yeSBpdHNlbGYKICAgICAgICAgKSB0aGVuCiAgICAgICAh
IElmIGRpcmVjdG9yeSBkb2VzIG5vdCBoYXZlIHRyYWlsaW5nIHNsYXNoLi4uCiAgICAgICBp
ZiAoZHJjKGxuZ19kcmM6bG5nX2RyYykgLz0gJy8nKSB0aGVuICEgRGlyZWN0b3J5IGRvZXMg
bm90IGhhdmUgdHJhaWxpbmcgc2xhc2gKICAgICAgICAgICEgLi4uYW5kIGlmIHJvb20gZXhp
c3RzIGZvciBvbmUuLi4KICAgICAgICAgIGlmIChsbmdfZHJjK2xuZ19mbCsxIDwgbGVuX2Zs
KSB0aGVuCiAgICAgICAgICAgICAhIC4uLnRoZW4gYWRkIG9uZQogICAgICAgICAgICAgISBP
cmRlciBpcyBpbXBvcnRhbnQKICAgICAgICAgICAgIGZsX25tKGxuZ19kcmMrMjpsbmdfZHJj
KzIrbG5nX2ZsKT1mbF9ubSgxOmxuZ19mbCkKICAgICAgICAgICAgIGZsX25tKDE6bG5nX2Ry
Yyk9ZHJjKDE6bG5nX2RyYykKICAgICAgICAgICAgIGZsX25tKGxuZ19kcmMrMTpsbmdfZHJj
KzEpPScvJwogICAgICAgICAgZW5kaWYgISBlbmRpZiBhZGRpbmcgdHJhaWxpbmcgc2xhc2gK
ICAgICAgIGVsc2UgISBEaXJlY3RvcnkgZG9lcyBoYXZlIHRyYWlsaW5nIHNsYXNoCiAgICAg
ICAgICBmbF9ubShsbmdfZHJjKzE6bG5nX2RyYysxK2xuZ19mbCk9Zmxfbm0oMTpsbmdfZmwp
CiAgICAgICAgICBmbF9ubSgxOmxuZ19kcmMpPWRyYygxOmxuZ19kcmMpCiAgICAgICBlbmRp
ZiAhIERpcmVjdG9yeSBkb2VzIGhhdmUgdHJhaWxpbmcgc2xhc2gKICAgIGVuZGlmICEgZW5k
aWYgcHJlcGVuZGluZyBkcmMKICAgIGNhbGwgZnRuX3N0cm51bChmbF9ubSkgISBbc2JyXSBO
VUwtaW5pdGlhbGl6ZSBhbGwgY2hhcmFjdGVycyBhZnRlciBMU0MKCiAgICByZXR1cm4KICBl
bmQgc3Vicm91dGluZSBmdG5fZHJjcGZ4CgogIHN1YnJvdXRpbmUgZnRuX3ByZ19JRF9tayhD
VlNfSWQsQ1ZTX1JldmlzaW9uLENWU19EYXRlLHByZ19JRCkKICAgICEgUHVycG9zZTogQ3Jl
YXRlIGlkZW50aXR5IHN0cmluZyBmcm9tIENWUyBpbnB1dAogICAgdXNlIGRiZ19tZGwgISBb
bWRsXSBEZWJ1Z2dpbmcgY29uc3RhbnRzLCBwcmdfbm0sIGRiZ19sdmwKICAgIGltcGxpY2l0
IG5vbmUKICAgICEgQ29tbW9ucwogICAgISBQYXJhbWV0ZXIKICAgIGludGVnZXIscGFyYW1l
dGVyOjpDVlNfa2s9MAogICAgaW50ZWdlcixwYXJhbWV0ZXI6OkNWU19rdj0xCiAgICBpbnRl
Z2VyLHBhcmFtZXRlcjo6Q1ZTX2trdj0yCiAgICAhIElucHV0CiAgICBjaGFyYWN0ZXIobGVu
PSopLGludGVudChpbik6OkNWU19JZAogICAgY2hhcmFjdGVyKGxlbj0qKSxpbnRlbnQoaW4p
OjpDVlNfUmV2aXNpb24KICAgIGNoYXJhY3RlcihsZW49KiksaW50ZW50KGluKTo6Q1ZTX0Rh
dGUKICAgICEgT3V0cHV0CiAgICBjaGFyYWN0ZXIobGVuPSopLGludGVudChvdXQpOjpwcmdf
SUQKICAgICEgTG9jYWwKICAgIGludGVnZXIgQ1ZTX3R5cAogICAgaW50ZWdlciBEYXRlX3B0
cgogICAgaW50ZWdlciBzbGFzaF9wdHIKICAgIGludGVnZXIgcHJnX3B0cgogICAgaW50ZWdl
ciB2cnNfcHRyCiAgICAhIE1haW4gQ29kZQogICAgISBEZWNpZGUgaG93IENWUyBrZXl3b3Jk
cyB3ZXJlIGV4cGFuZGVkCiAgICBEYXRlX3B0cj1mdG5fc3Ryc3RyKENWU19EYXRlLCdEYXRl
JykKICAgIGlmIChEYXRlX3B0ciA8IDApIHRoZW4KICAgICAgICEgU3RyaW5nICdEYXRlJyB3
YXMgbm90IGZvdW5kLS0tQ1ZTIGV4cGFuc2lvbiBtdXN0IGJlIC1rdgogICAgICAgQ1ZTX3R5
cD1DVlNfa3YKICAgIGVsc2UKICAgICAgICEgU3RyaW5nICdEYXRlJyB3YXMgZm91bmQtLS1D
VlMgZXhwYW5zaW9uIGlzIC1rayBvciAta2t2CiAgICAgICBzbGFzaF9wdHI9ZnRuX3N0cnN0
cihDVlNfRGF0ZSwnLycpCiAgICAgICBpZiAoc2xhc2hfcHRyID4gMCkgdGhlbgogICAgICAg
ICAgQ1ZTX3R5cD1DVlNfa2t2CiAgICAgICBlbHNlCiAgICAgICAgICBDVlNfdHlwPUNWU19r
awogICAgICAgZW5kaWYgISBlbmRpZgogICAgZW5kaWYgISBlbmRpZgoKICAgIGlmICguZmFs
c2UuKSB0aGVuCiAgICAgICB3cml0ZSAoNiwnKGEsYSknKSBwcmdfbm0oMTpmdG5fc3RybGVu
KHByZ19ubSkpLCc6IERFQlVHIGZ0bl9wcmdfSURfbWsoKSByZXBvcnRzIENWUyBzdHJpbmdz
OicKICAgICAgIHdyaXRlICg2LCcoYSxhKScpICdDVlNfSWQ6ICcsQ1ZTX0lkCiAgICAgICB3
cml0ZSAoNiwnKGEsYSknKSAnQ1ZTX1JldmlzaW9uOiAnLENWU19SZXZpc2lvbgogICAgICAg
d3JpdGUgKDYsJyhhLGEpJykgJ0NWU19EYXRlOiAnLENWU19EYXRlCiAgICAgICB3cml0ZSAo
NiwnKGEsaTEpJykgJ0NWU190eXA6ICcsQ1ZTX3R5cAogICAgICAgd3JpdGUgKDYsJyhhLGky
KScpICdEYXRlX3B0cjogJyxEYXRlX3B0cgogICAgICAgd3JpdGUgKDYsJyhhLGkyKScpICdz
bGFzaF9wdHI6ICcsc2xhc2hfcHRyCiAgICBlbmRpZgoKICAgICEgQ1ZTX1JldmlzaW9uIGFu
ZCBDVlNfRGF0ZSBhcmUgcGFyYW1ldGVycy0tLWRvIG5vdCBhdHRlbXB0IHRvIHdyaXRlIHRo
ZW0KICAgICEgY2FsbCBmdG5fc3RybnVsKENWU19SZXZpc2lvbikgISBbc2JyXSBOVUwtaW5p
dGlhbGl6ZSBhbGwgY2hhcmFjdGVycyBhZnRlciBMU0MKICAgICEgY2FsbCBmdG5fc3RybnVs
KENWU19EYXRlKSAhIFtzYnJdIE5VTC1pbml0aWFsaXplIGFsbCBjaGFyYWN0ZXJzIGFmdGVy
IExTQwogICAgY2FsbCBmdG5fc3RyaW5pKHByZ19JRCkgISBbc25nXSBzbmcoMTpsZW4pPU5V
TAogICAgaWYgKENWU190eXAgPT0gQ1ZTX2trKSB0aGVuCiAgICAgICBwcmdfSUQ9J1NvdXJj
ZSBmaWxlIHVua25vd24gVmVyc2lvbiB1bmtub3duIERhdGUgdW5rbm93bicgLy8gY2hhcigw
KQogICAgZWxzZQogICAgICAgcHJnX3B0cj1mdG5fc3Ryc3RyKENWU19JZCwnLHYnKSAhICcs
dicgaXMgcmlnaHQgYWZ0ZXIgcHJvZ3JhbSBuYW1lCiAgICAgICBpZiAocHJnX3B0ciA8IDAp
IHN0b3AgJ0VSUk9SOiBmdG5fcHJnX0lEX21rKCkgdW5hYmxlIHRvIGZpbmQgc291cmNlIGNv
ZGUgbmFtZScKICAgICAgIGlmIChDVlNfdHlwID09IENWU19rdikgdGhlbgogICAgICAgICAg
cHJnX0lEPUNWU19JZCgxOnByZ19wdHItMSkgLy8gICYKICAgICAgICAgICAgICAgJyB2ZXJz
aW9uICcgLy8gQ1ZTX1JldmlzaW9uKDE6ZnRuX3N0cmxlbihDVlNfUmV2aXNpb24pKSAvLyAg
JgogICAgICAgICAgICAgICAnIGRhdGVkICcgLy8gQ1ZTX0RhdGUoMTpmdG5fc3RybGVuKENW
U19EYXRlKSkgLy8gJyBHTVQnIC8vIGNoYXIoMCkKICAgICAgIGVsc2UgaWYgKENWU190eXAg
PT0gQ1ZTX2trdikgdGhlbgogICAgICAgICAgdnJzX3B0cj1mdG5fc3Ryc3RyKENWU19SZXZp
c2lvbiwnaW9uOicpICEgJ2lvbjonIHNob3VsZCBhcHBlYXIgdHdvIGNoYXJhY3RlcnMgYmVm
b3JlIHZlcnNpb24KICAgICAgICAgIGlmICh2cnNfcHRyIDwgMCkgc3RvcCAnRVJST1I6IGZ0
bl9wcmdfSURfbWsoKSB1bmFibGUgdG8gZmluZCByZXZpc2lvbiBudW1iZXInCiAgICAgICAg
ICBwcmdfSUQ9Q1ZTX0lkKDY6cHJnX3B0ci0xKSAvLyAgJgogICAgICAgICAgICAgICAnIHZl
cnNpb24gJyAvLyBDVlNfUmV2aXNpb24odnJzX3B0cis1OmZ0bl9zdHJsZW4oQ1ZTX1Jldmlz
aW9uKS0yKSAvLyAgJgogICAgICAgICAgICAgICAnIGRhdGVkICcgLy8gQ1ZTX0RhdGUoODoy
NikgLy8gJyBHTVQnIC8vIGNoYXIoMCkKICAgICAgIGVsc2UKICAgICAgICAgIHdyaXRlICg2
LCcoYSxhKScpIHByZ19ubSgxOmZ0bl9zdHJsZW4ocHJnX25tKSksJzogRVJST1IgZnRuX3By
Z19JRF9taygpIHJlcG9ydHMgdW5rbm93biBDVlNfdHlwJwogICAgICAgZW5kaWYgISBlbmRp
ZgogICAgZW5kaWYgISBlbmRpZgogICAgcmV0dXJuCiAgZW5kIHN1YnJvdXRpbmUgZnRuX3By
Z19JRF9tawoKICBzdWJyb3V0aW5lIGZ0bl9jbWRfbG5fc25nKGNtZF9sbikgISBbc25nXSBS
ZS1jb25zdHJ1Y3QgY29tbWFuZCBsaW5lIGludG8gc2luZ2xlIHN0cmluZwogICAgISBQdXJw
b3NlOiBSZXR1cm4gYSBjb3B5IG9mIGNvbW1hbmQgbGluZSBhbmQgaW5pdGlhbGl6ZSBwcm9n
cmFtIG5hbWUKICAgICEgU2VlIGh0dHA6Ly93d3cud2ludGVyYWN0ZXIuY29tL2Yya2NsaS9p
bmRleC5odG0gZm9yIGFsdGVybmF0aXZlcwogICAgISBVc2FnZToKICAgICEgY2FsbCBmdG5f
Y21kX2xuX3NuZyhjbWRfbG4pICEgW3NuZ10gQ29tbWFuZCBsaW5lCiAgICB1c2UgZGJnX21k
bCAhIFttZGxdIERlYnVnZ2luZyBjb25zdGFudHMsIHByZ19ubSwgZGJnX2x2bAogICAgaW1w
bGljaXQgbm9uZQogICAgISBDb21tb25zCiAgICAhIE91dHB1dAogICAgY2hhcmFjdGVyKGxl
bj0qKSxpbnRlbnQob3V0KTo6Y21kX2xuICEgTyBbc25nXSBDb21tYW5kIGxpbmUKICAgICEg
TG9jYWwKICAgIGNoYXJhY3RlcihsZW49ODApIGFyZ192YWwgISBbc25nXSBDb21tYW5kIGxp
bmUgYXJndW1lbnQgdmFsdWUKICAgIGludGVnZXIgYXJnX2lkeCAhIFtpZHhdIENvdW50aW5n
IGluZGV4CiAgICBpbnRlZ2VyIGFyZ19sbmcgISBbbmJyXSBMZW5ndGggb2YgYXJndW1lbnQK
ICAgIGludGVnZXIgYXJnX25iciAhIFtuYnJdIE51bWJlciBvZiBjb21tYW5kIGxpbmUgYXJn
dW1lbnRzCiAgICBpbnRlZ2VyIGNtZF9sbl9sZW4gISBbbmJyXSBMZW5ndGggb2YgY29tbWFu
ZCBsaW5lCiAgICBpbnRlZ2VyIGNtZF9sbl9sbmcgISBbbmJyXSBMZW5ndGggb2YgY29tbWFu
ZCBsaW5lCiAgICAhIE1haW4gQ29kZQogICAgISBJbml0aWFsaXplIGRlZmF1bHRzCiAgICBj
YWxsIGZ0bl9zdHJpbmkoY21kX2xuKSAhIFtzbmddIHNuZygxOmxlbik9TlVMCiAgICBjYWxs
IGZ0bl9zdHJpbmkocHJnX25tKSAhIFtzbmddIHNuZygxOmxlbik9TlVMCiAgICBjbWRfbG5f
bGVuPWxlbihjbWRfbG4pICEgW25icl0gTGVuZ3RoIG9mIGNvbW1hbmQgbGluZQoKICAgIGFy
Z19uYnI9Y29tbWFuZF9hcmd1bWVudF9jb3VudCgpICEgW25icl0gTnVtYmVyIG9mIGNvbW1h
bmQgbGluZSBhcmd1bWVudHMKICAgIGlmIChkYmdfbHZsID49IGRiZ192ZWMpIHRoZW4KICAg
ICAgIHdyaXRlICg2LCcoYSxpMiknKSAnZnRuX2NtZF9sbl9zbmcoKTogYXJnX25iciA9ICcs
YXJnX25icgogICAgZW5kaWYgISBlbmRpZiBkYmcKCiAgICAhIExvb3Agb3ZlciBhcmd1bWVu
dHMKICAgIGRvIGFyZ19pZHg9MCxhcmdfbmJyICEgTkI6IExvb3Agc3RhcnRzIHdpdGggMAog
ICAgICAgISBBcmd1bWVudCAwIGlzIHRoZSBwcm9ncmFtIG5hbWUKICAgICAgICEgaWYgKGFy
Z19pZHggPiAwKSBjYWxsIGZ0bl9zdHJjYXQoY21kX2xuLCcgJykKICAgICAgICEgQXBwZW5k
IGEgc3BhY2UgaW4gYmV0d2VlbiBhcmd1bWVudHMKICAgICAgIGlmIChhcmdfaWR4ID4gMCkg
Y21kX2xuKGNtZF9sbl9sbmcrMTpjbWRfbG5fbG5nKzEpPScgJwogICAgICAgY2FsbCBmdG5f
c3RyaW5pKGFyZ192YWwpICEgW3NuZ10gc25nKDE6bGVuKT1OVUwKICAgICAgIGNhbGwgZ2V0
X2NvbW1hbmRfYXJndW1lbnQoYXJnX2lkeCxhcmdfdmFsKQogICAgICAgY2FsbCBmdG5fc3Ry
bnVsKGFyZ192YWwpICEgW3Nicl0gTlVMLWluaXRpYWxpemUgYWxsIGNoYXJhY3RlcnMgYWZ0
ZXIgTFNDCiAgICAgICBjYWxsIGZ0bl9zdHJjYXQoY21kX2xuLGFyZ192YWwpCiAgICAgICBp
ZiAoYXJnX2lkeCA9PSAwKSBjYWxsIGZ0bl9zdHJjcHkocHJnX25tLGFyZ192YWwpICFbc25n
XSBQcm9ncmFtIG5hbWUKICAgICAgIGNtZF9sbl9sbmc9ZnRuX3N0cmxlbihjbWRfbG4pICEg
W25icl0gTGVuZ3RoIG9mIHN0cmluZwogICAgICAgaWYgKGNtZF9sbl9sbmcgPiBjbWRfbG5f
bGVuKSBzdG9wICdjbWRfbG5fbG5nID4gY21kX2xuX2xlbiBpbiBmdG5fY21kX2xuX3NuZygp
JwogICAgICAgaWYgKGRiZ19sdmwgPj0gZGJnX3ZyYikgdGhlbgogICAgICAgICAgd3JpdGUg
KDYsJyhhLGkzKScpICdhcmdfaWR4ID0gJyxhcmdfaWR4CiAgICAgICAgICB3cml0ZSAoNiwn
KGEsYSknKSAnYXJnX3ZhbCA9ICcsYXJnX3ZhbAogICAgICAgICAgd3JpdGUgKDYsJyhhLGkz
KScpICdsZW4oYXJnX3ZhbCkgPSAnLGxlbihhcmdfdmFsKQogICAgICAgICAgd3JpdGUgKDYs
JyhhLGkzKScpICdmdG5fc3RybGVuKGFyZ192YWwpID0gJyxmdG5fc3RybGVuKGFyZ192YWwp
CiAgICAgICAgICB3cml0ZSAoNiwnKGEsaTMpJykgJ2Z0bl9zdHJsZW4oY21kX2xuKSA9ICcs
ZnRuX3N0cmxlbihjbWRfbG4pCiAgICAgICAgICB3cml0ZSAoNiwnKGEsYSknKSAnY21kX2xu
ID0gJyxjbWRfbG4KICAgICAgIGVuZGlmICEgZW5kaWYgZGJnCiAgICBlbmQgZG8gISBlbmQg
bG9vcCBvdmVyIGFyZwoKICAgIGlmIChkYmdfbHZsID49IGRiZ19pbykgd3JpdGUgKDYsJyhh
LGEpJykgJ2NtZF9sbiA9ICcsY21kX2xuKDE6ZnRuX3N0cmxlbihjbWRfbG4pKQogICAgcmV0
dXJuCiAgZW5kIHN1YnJvdXRpbmUgZnRuX2NtZF9sbl9zbmcKCiAgY2hhcmFjdGVyKGxlbj0x
MCkgZnVuY3Rpb24gZnRuX2RhdGUyc25nKGlkYXRlKQogICAgISBQdXJwb3NlOiBDb252ZXJ0
IGludGVnZXIgZGF0ZSBpbiBZWVlZTU1ERCB0byBhIGNoYXJhY3RlciBhcnJheSBpbiB0aGUg
Zm9ybQogICAgISAnWVlZWS1NTS1ERCcKICAgICEgQXV0aG9yOiBCcmlhbiBFYXRvbiBjaGFy
dXRsLkY6aWRhdGUyY2hhcigpCiAgICAhIFJlY29kZWQ6IDE5OTkwOTAxIENoYXJsaWUgWmVu
ZGVyCiAgICAhIFVzYWdlOgogICAgISBjaGFyYWN0ZXIobGVuPTEwKSBmdG5fZGF0ZTJzbmcg
ISBbc25nXSBDb252ZXJ0IFlZWVlNTUREIGludGVnZXIgdG8gWVlZWS1NTS1ERCBzdHJpbmcK
ICAgIGltcGxpY2l0IG5vbmUKICAgICEgSW5wdXQKICAgIGludGVnZXIsaW50ZW50KGluKTo6
aWRhdGUKICAgICEgTG9jYWwKICAgIGludGVnZXIgeXkKICAgIGludGVnZXIgbW0KICAgIGlu
dGVnZXIgZGQKICAgIGNoYXJhY3RlciBkYXNoCiAgICAhIE1haW4gY29kZQogICAgZGFzaD0n
LScKICAgICEgRXh0cmFjdCB5ZWFyLCBtb250aCwgYW5kIGRheSBmcm9tIGRhdGUKICAgIHl5
PWlkYXRlLzEwMDAwCiAgICBtbT1tb2QoYWJzKGlkYXRlKSwxMDAwMCkvMTAwCiAgICBkZD1t
b2QoYWJzKGlkYXRlKSwxMDApCiAgICB3cml0ZShmdG5fZGF0ZTJzbmcsJyhpNC40LGExLGky
LjIsYTEsaTIuMiknKSB5eSxkYXNoLG1tLGRhc2gsZGQKICAgIHJldHVybgogIGVuZCBmdW5j
dGlvbiBmdG5fZGF0ZTJzbmcKCiAgY2hhcmFjdGVyKGxlbj04KSBmdW5jdGlvbiBmdG5fc2Vj
MnNuZyhpc2VjKQogICAgISBQdXJwb3NlOiBDb252ZXJ0IGludGVnZXIgc2Vjb25kcyB0byBh
IGNoYXJhY3RlciBhcnJheSBpbiB0aGUgZm9ybSAnSEg6TU06U1MnCiAgICAhIEF1dGhvcjog
QnJpYW4gRWF0b24gY2hhcnV0bC5GOmlzZWMyY2hhcigpCiAgICAhIFJlY29kZWQ6IDE5OTkw
OTAxIENoYXJsaWUgWmVuZGVyCiAgICAhIGNoYXJhY3RlcihsZW49OCkgZnRuX3NlYzJzbmcg
ISBbc25nXSBDb252ZXJ0IGludGVnZXIgdG8gJ0hIOk1NOlNTJyBzdHJpbmcKICAgIGltcGxp
Y2l0IG5vbmUKICAgICEgSW5wdXQKICAgIGludGVnZXIsaW50ZW50KGluKTo6aXNlYwogICAg
ISBMb2NhbAogICAgaW50ZWdlciBoaAogICAgaW50ZWdlciBtbQogICAgaW50ZWdlciBzcwog
ICAgY2hhcmFjdGVyIGNvbG9uCiAgICAhIE1haW4gQ29kZQogICAgY29sb249JzonCiAgICAh
IEV4dHJhY3QgaG91ciwgbWludXRlcywgc2Vjb25kcwogICAgaGg9aXNlYy8zNjAwCiAgICBt
bT1tb2QoaXNlYywzNjAwKS82MAogICAgc3M9bW9kKGlzZWMsNjApCiAgICB3cml0ZShmdG5f
c2VjMnNuZywnKGkyLjIsYTEsaTIuMixhMSxpMi4yKScpIGhoLGNvbG9uLG1tLGNvbG9uLHNz
CiAgICByZXR1cm4KICBlbmQgZnVuY3Rpb24gZnRuX3NlYzJzbmcKCmVuZCBtb2R1bGUgc25n
X21kbCAhIFttZGxdIFN0cmluZyBtYW5pcHVsYXRpb24K


--12.Aug.2003mysteryboxofun
Content-Type: application/octet-stream; name="sng.f90"
Content-Description: ~/f/sng.f90
Content-Transfer-Encoding: base64

cHJvZ3JhbSBzbmcKCiAgISBQdXJwb3NlOiBEZW1vbnN0cmF0ZSBjb21tYW5kIGxpbmUgYXJn
dW1lbnQtaGFuZGxpbmcgYW5kIHN0cmluZyBtYW5pcHVsYXRpb24KICAhIFRoaXMgcHJvZ3Jh
bSBpcyBpbnRlbmRlZCB0byBiZSBmdWxseSBGOTAtc3RhbmRhcmQgY29tcGxpYW50IGV4Y2Vw
dCBpdCByZWxpZXMKICAhIG9uIHRoZSBwcmVzZW5jZSBvZiBleHRlcm5hbCBpYXJnYygpIGFu
ZCBnZXRhcmcoKSByb3V0aW5lcyBub3JtYWxseSBzdXBwbGllZAogICEgYnkgRm9ydHJhbiBj
b21waWxlcnMuCgogICEgQ29weXJpZ2h0IChDKSAxOTk3LS0yMDAzIENoYXJsaWUgWmVuZGVy
CiAgISBMaWNlbnNlOiBUaGlzIGZpbGUgaXMgaW4gdGhlIFB1YmxpYyBEb21haW4KCiAgISBU
aGUgb3JpZ2luYWwgYXV0aG9yIG9mIHRoaXMgc29mdHdhcmUsIENoYXJsaWUgWmVuZGVyLCB3
YW50cyB0byByZWNlaXZlCiAgISB5b3VyIHN1Z2dlc3Rpb25zLCB0aGFua3MsIGJ1Zy1yZXBv
cnRzLCBhbmQgcGF0Y2hlcyB0byBpbXByb3ZlIGl0LgogICEgQ2hhcmxpZSBaZW5kZXIgPHpl
bmRlciBhdCB1Y2kgZG90IGVkdT4KICAhIERlcGFydG1lbnQgb2YgRWFydGggU3lzdGVtIFNj
aWVuY2UKICAhIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSBhdCBJcnZpbmUKICAhIElydmlu
ZSwgQ0EgOTI2OTctMzEwMAoKICAhIENvbXBpbGF0aW9uOgogICEgUG9ydGxhbmQgR3JvdXAg
cGdmOTAgY29tcGlsZXI6CiAgISBwZ2Y5MCAtbyBkYmdfbWRsLm8gLWMgZGJnX21kbC5GOTAK
ICAhIHBnZjkwIC1vIHNuZ19tZGwubyAtYyBzbmdfbWRsLkY5MAogICEgcGdmOTAgLW8gc25n
IHNuZ19tZGwubyBkYmdfbWRsLm8gc25nLkY5MAogICEgSW50ZWwgaWZjIGNvbXBpbGVyOgog
ICEgaWZjIC1vIGRiZ19tZGwubyAtYyBkYmdfbWRsLkY5MAogICEgaWZjIC1vIHNuZ19tZGwu
byAtYyBzbmdfbWRsLkY5MAogICEgaWZjIC1vIHNuZyBzbmdfbWRsLm8gZGJnX21kbC5vIHNu
Zy5GOTAgLWxQRVBDRjkwCgogICEgVXNhZ2U6CiAgISBzbmcgLS1kYmc9MCAtLWRibD0xLjIz
NGUyMzQgLS1mbHQ9LTUuNjdlLTM3IC0taW50PTEyMzQ1Njc4IC0tbGdjPVQgLS1zbmc9IkdO
VSdzIE5vdCBVTklYIiAtLWRyY19vdXQ9JHtIT01FfS9vdXRwdXQvZGlyZWN0b3J5CiAgISBz
bmcgLUQgNSAtLWRibCAxLjIzNGUyMzQKCiAgdXNlIGRiZ19tZGwgISBbbWRsXSBEZWJ1Z2dp
bmcgY29uc3RhbnRzLCBwcmdfbm0sIGRiZ19sdmwKICB1c2Ugc25nX21kbCAhIFttZGxdIFN0
cmluZyBtYW5pcHVsYXRpb24KCiAgaW1wbGljaXQgbm9uZQogICEgUGFyYW1ldGVycwogIGNo
YXJhY3RlcihsZW49KikscGFyYW1ldGVyOjpDVlNfSWQ9IiRJZCQiICEgW3NuZ10gQ1ZTIElk
ZW50aWZpY2F0aW9uCiAgY2hhcmFjdGVyKGxlbj0qKSxwYXJhbWV0ZXI6OkNWU19EYXRlPSIk
RGF0ZSQiICEgW3NuZ10gRGF0ZSBzdHJpbmcKICBjaGFyYWN0ZXIobGVuPSopLHBhcmFtZXRl
cjo6Q1ZTX05hbWU9IiROYW1lJCIgISBbc25nXSBGaWxlIG5hbWUgc3RyaW5nCiAgY2hhcmFj
dGVyKGxlbj0qKSxwYXJhbWV0ZXI6OkNWU19SZXZpc2lvbj0iJFJldmlzaW9uJCIgISBbc25n
XSBGaWxlIHJldmlzaW9uIHN0cmluZwogIGNoYXJhY3RlcihsZW49KikscGFyYW1ldGVyOjpu
bGM9Y2hhcigwKSAhIFtzbmddIE5VTCBjaGFyYWN0ZXIgPSBBU0NJSSAwID0gY2hhcigwKQoK
ICAhIENvbW1hbmQtbGluZSBwYXJzaW5nCiAgY2hhcmFjdGVyKDgwKTo6YXJnX3ZhbCAhIFtz
bmddIENvbW1hbmQgbGluZSBhcmd1bWVudCB2YWx1ZQogIGNoYXJhY3RlcigyMDApOjpjbWRf
bG4gISBbc25nXSBDb21tYW5kIGxpbmUKICBjaGFyYWN0ZXIoODApOjpvcHRfc25nICEgW3Nu
Z10gT3B0aW9uIHN0cmluZwogIGNoYXJhY3RlcigyKTo6ZHNoX2tleSAhIFtzbmddIENvbW1h
bmQgbGluZSBkYXNoIGFuZCBzd2l0Y2gKICBjaGFyYWN0ZXIoMjAwKTo6cHJnX0lEICEgW3Nu
Z10gUHJvZ3JhbSBJRAoKICBpbnRlZ2VyOjphcmdfaWR4ICEgW2lkeF0gQ291bnRpbmcgaW5k
ZXgKICBpbnRlZ2VyOjphcmdfbmJyICEgW25icl0gTnVtYmVyIG9mIGNvbW1hbmQgbGluZSBh
cmd1bWVudHMKICBpbnRlZ2VyOjpvcHRfbG5nICEgW25icl0gTGVuZ3RoIG9mIG9wdGlvbgoK
ICAhIFNldCBkZWZhdWx0cyBmb3IgY29tbWFuZCBsaW5lIG9wdGlvbnMKICBjaGFyYWN0ZXIo
ODApOjpkcmNfaW49Ii9ob21lL3VzZXIvaW5wdXQvZGlyIi8vbmxjICEgW3NuZ10gSW5wdXQg
ZGlyZWN0b3J5CiAgY2hhcmFjdGVyKDgwKTo6ZHJjX291dD0iIiAhIFtzbmddIE91dHB1dCBk
aXJlY3RvcnkKICBjaGFyYWN0ZXIoODApOjpmbF9pbj0iaW4ubmMiLy9ubGMgISBbc25nXSBJ
bnB1dCBmaWxlCiAgY2hhcmFjdGVyKDgwKTo6Zmxfb3V0PSJmb28ubmMiLy9ubGMgISBbc25n
XSBPdXRwdXQgZmlsZQogIGNoYXJhY3Rlcig4MCk6OnNuZ19mb289IkRlZmF1bHQgdmFsdWUi
Ly9ubGMgISBbc25nXSBTdHJpbmcKICBpbnRlZ2VyOjppbnRfZm9vPTEgISBbbmJyXSBJbnRl
Z2VyCiAgbG9naWNhbDo6bGdjX2Zvbz0uZmFsc2UuICEgW2ZsZ10gTG9naWNhbAogIHJlYWwo
c2VsZWN0ZWRfcmVhbF9raW5kKHA9NikpOjpmbHRfZm9vPTAuMCAhIFtmcmNdIEZsb2F0CiAg
cmVhbChzZWxlY3RlZF9yZWFsX2tpbmQocD0xMikpOjpkYmxfZm9vPTAuMCAhIFtmcmNdIERv
dWJsZQoKICAhIE1haW4gY29kZQogIGRiZ19sdmw9MCAhIFtpZHhdIENhdXNlcyBEREQgc291
cmNlIHdpbmRvdyB0byBkaXNwbGF5IHRoaXMgZmlsZQogICEgQ0VXSSBmb3IgbGY5NTogSW5p
dGlhbGl6ZSBjbWRfbG4gYmVmb3JlIHRha2luZyBsZW5ndGgKICBjYWxsIGZ0bl9zdHJpbmko
Y21kX2xuKSAhIFtzbmddIHNuZygxOmxlbik9TlVMCgogIGlmICgudHJ1ZS4pIHRoZW4KICAg
ICB3cml0ZSAoNiwqKSAiQmVmb3JlIGNvbW1hbmQgbGluZSBwYXJzaW5nIGFuZCBzdHJpbmcg
bWFuaXB1bGF0aW9uOiAiCiAgICAgd3JpdGUgKDYsKikgIm1haW4oKSByZXBvcnRzIGNtZF9s
biA9ICIsY21kX2xuKDE6ZnRuX3N0cmxlbihjbWRfbG4pKQogICAgIHdyaXRlICg2LCopICJt
YWluKCkgcmVwb3J0cyBkYmxfZm9vID0gIixkYmxfZm9vCiAgICAgd3JpdGUgKDYsKikgIm1h
aW4oKSByZXBvcnRzIGZsdF9mb28gPSAiLGZsdF9mb28KICAgICB3cml0ZSAoNiwqKSAibWFp
bigpIHJlcG9ydHMgaW50X2ZvbyA9ICIsaW50X2ZvbwogICAgIHdyaXRlICg2LCopICJtYWlu
KCkgcmVwb3J0cyBsZ2NfZm9vID0gIixsZ2NfZm9vCiAgICAgd3JpdGUgKDYsKikgIm1haW4o
KSByZXBvcnRzIHNuZ19mb28gPSAiLHNuZ19mb28oMTpmdG5fc3RybGVuKHNuZ19mb28pKQog
ICAgIHdyaXRlICg2LCopICJtYWluKCkgcmVwb3J0cyBmbF9pbiA9ICIsZmxfaW4oMTpmdG5f
c3RybGVuKGZsX2luKSkKICAgICB3cml0ZSAoNiwqKSAibWFpbigpIHJlcG9ydHMgZmxfb3V0
ID0gIixmbF9vdXQoMTpmdG5fc3RybGVuKGZsX291dCkpCiAgICAgd3JpdGUgKDYsKikgIm1h
aW4oKSByZXBvcnRzIGRyY19pbiA9ICIsZHJjX2luKDE6ZnRuX3N0cmxlbihkcmNfaW4pKQog
ICAgIHdyaXRlICg2LCopICJtYWluKCkgcmVwb3J0cyBkcmNfb3V0ID0gIixkcmNfb3V0KDE6
ZnRuX3N0cmxlbihkcmNfb3V0KSkKICBlbmRpZiAhIGVuZGlmIC50cnVlLgoKICBjYWxsIGZ0
bl9jbWRfbG5fc25nKGNtZF9sbikgISBbc25nXSBSZS1jb25zdHJ1Y3QgY29tbWFuZCBsaW5l
IGludG8gc2luZ2xlIHN0cmluZwogIGNhbGwgZnRuX3ByZ19JRF9tayhDVlNfSWQsQ1ZTX1Jl
dmlzaW9uLENWU19EYXRlLHByZ19JRCkgISBbc25nXSBQcm9ncmFtIElECgogIGFyZ19uYnI9
Y29tbWFuZF9hcmd1bWVudF9jb3VudCgpICEgW25icl0gTnVtYmVyIG9mIGNvbW1hbmQgbGlu
ZSBhcmd1bWVudHMKICBhcmdfaWR4PTEgISBbaWR4XSBDb3VudGluZyBpbmRleAogIGRvIHdo
aWxlIChhcmdfaWR4IDw9IGFyZ19uYnIpCiAgICAgY2FsbCBmdG5fZ2V0YXJnX3dycChhcmdf
aWR4LGFyZ192YWwpICEgW3Nicl0gQ2FsbCBnZXRhcmcsIGluY3JlbWVudCBhcmdfaWR4CiAg
ICAgZHNoX2tleT1hcmdfdmFsKDE6MikgISBbc25nXSBGaXJzdCB0d28gY2hhcmFjdGVycyBv
ZiBvcHRpb24KICAgICBpZiAoZHNoX2tleSA9PSAiLS0iKSB0aGVuCiAgICAgICAgb3B0X2xu
Zz1mdG5fb3B0X2xuZ19nZXQoYXJnX3ZhbCkgISBbbmJyXSBMZW5ndGggb2Ygb3B0aW9uCiAg
ICAgICAgaWYgKG9wdF9sbmcgPD0gMCkgc3RvcCAiTG9uZyBvcHRpb24gaGFzIG5vIG5hbWUi
CiAgICAgICAgb3B0X3NuZz1hcmdfdmFsKDM6MitvcHRfbG5nKSAhIFtzbmddIE9wdGlvbiBz
dHJpbmcKICAgICAgICBpZiAoZGJnX2x2bCA+PSBkYmdfaW8pIHdyaXRlICg2LCIoNWEsaTMp
IikgcHJnX25tKDE6ZnRuX3N0cmxlbihwcmdfbm0pKSwgJgogICAgICAgICAgICAgIjogREVC
VUcgRG91YmxlIGh5cGhlbiBpbmRpY2F0ZXMgbXVsdGktY2hhcmFjdGVyIG9wdGlvbjogIiwg
JgogICAgICAgICAgICAgIm9wdF9zbmcgPSAiLG9wdF9zbmcoMTpmdG5fc3RybGVuKG9wdF9z
bmcpKSwiLCBvcHRfbG5nID0gIixvcHRfbG5nCiAgICAgICAgaWYgKG9wdF9zbmcgPT0gImRi
ZyIgLm9yLiBvcHRfc25nID09ICJkYmdfbHZsIiApIHRoZW4KICAgICAgICAgICBjYWxsIGZ0
bl9hcmdfZ2V0KGFyZ19pZHgsYXJnX3ZhbCxkYmdfbHZsKSAhIFtlbm1dIERlYnVnZ2luZyBs
ZXZlbAogICAgICAgIGVsc2UgaWYgKG9wdF9zbmcgPT0gImRibCIgLm9yLiBvcHRfc25nID09
ICJkYmxfZm9vIiApIHRoZW4KICAgICAgICAgICBjYWxsIGZ0bl9hcmdfZ2V0KGFyZ19pZHgs
YXJnX3ZhbCxkYmxfZm9vKSAhIFtmcmNdIERvdWJsZQogICAgICAgIGVsc2UgaWYgKG9wdF9z
bmcgPT0gImRyY19pbiIpIHRoZW4KICAgICAgICAgICBjYWxsIGZ0bl9hcmdfZ2V0KGFyZ19p
ZHgsYXJnX3ZhbCxkcmNfaW4pICEgW3NuZ10gSW5wdXQgZGlyZWN0b3J5CiAgICAgICAgZWxz
ZSBpZiAob3B0X3NuZyA9PSAiZHJjX291dCIpIHRoZW4KICAgICAgICAgICBjYWxsIGZ0bl9h
cmdfZ2V0KGFyZ19pZHgsYXJnX3ZhbCxkcmNfb3V0KSAhIFtzbmddIE91dHB1dCBkaXJlY3Rv
cnkKICAgICAgICBlbHNlIGlmIChvcHRfc25nID09ICJmbF9pbiIpIHRoZW4KICAgICAgICAg
ICBjYWxsIGZ0bl9hcmdfZ2V0KGFyZ19pZHgsYXJnX3ZhbCxmbF9pbikgISBbc25nXSBJbnB1
dCBmaWxlCiAgICAgICAgZWxzZSBpZiAob3B0X3NuZyA9PSAiZmxfb3V0IikgdGhlbgogICAg
ICAgICAgIGNhbGwgZnRuX2FyZ19nZXQoYXJnX2lkeCxhcmdfdmFsLGZsX291dCkgISBbc25n
XSBPdXRwdXQgZmlsZQogICAgICAgIGVsc2UgaWYgKG9wdF9zbmcgPT0gImZsdCIgLm9yLiBv
cHRfc25nID09ICJmbHRfZm9vIiApIHRoZW4KICAgICAgICAgICBjYWxsIGZ0bl9hcmdfZ2V0
KGFyZ19pZHgsYXJnX3ZhbCxmbHRfZm9vKSAhIFtmcmNdIEZsb2F0CiAgICAgICAgZWxzZSBp
ZiAob3B0X3NuZyA9PSAiaW50IiAub3IuIG9wdF9zbmcgPT0gImludF9mb28iICkgdGhlbgog
ICAgICAgICAgIGNhbGwgZnRuX2FyZ19nZXQoYXJnX2lkeCxhcmdfdmFsLGludF9mb28pICEg
W25icl0gSW50ZWdlcgogICAgICAgIGVsc2UgaWYgKG9wdF9zbmcgPT0gImxnYyIgLm9yLiBv
cHRfc25nID09ICJsZ2NfZm9vIiApIHRoZW4KICAgICAgICAgICBjYWxsIGZ0bl9hcmdfZ2V0
KGFyZ19pZHgsYXJnX3ZhbCxsZ2NfZm9vKSAhIFtsZ2NdIExvZ2ljYWwKICAgICAgICBlbHNl
IGlmIChvcHRfc25nID09ICJzbmciIC5vci4gb3B0X3NuZyA9PSAic25nX2ZvbyIpIHRoZW4K
ICAgICAgICAgICBjYWxsIGZ0bl9hcmdfZ2V0KGFyZ19pZHgsYXJnX3ZhbCxzbmdfZm9vKSAh
IFtzbmddIFN0cmluZwogICAgICAgIGVsc2UgISBPcHRpb24gbm90IHJlY29nbml6ZWQKICAg
ICAgICAgICBhcmdfaWR4PWFyZ19pZHgtMSAhIFtpZHhdIENvdW50aW5nIGluZGV4CiAgICAg
ICAgICAgY2FsbCBmdG5fZ2V0YXJnX2VycihhcmdfaWR4LGFyZ192YWwpICEgW3Nicl0gRXJy
b3IgaGFuZGxlciBmb3IgZ2V0YXJnKCkKICAgICAgICBlbmRpZiAhIGVuZGlmIG9wdGlvbiBp
cyByZWNvZ25pemVkCiAgICAgICAgISBKdW1wIHRvIHRvcCBvZiB3aGlsZSBsb29wCiAgICAg
ICAgY3ljbGUgISBDLCBGNzcsIGFuZCBGOTAgdXNlICJjb250aW51ZSIsICJnb3RvIiwgYW5k
ICJjeWNsZSIKICAgICBlbmRpZiAhIGVuZGlmIGxvbmcgb3B0aW9uCiAgICAgISBIYW5kbGUg
c2hvcnQgb3B0aW9ucwogICAgIGlmIChkc2hfa2V5ID09ICItRCIpIHRoZW4KICAgICAgICBj
YWxsIGZ0bl9hcmdfZ2V0KGFyZ19pZHgsYXJnX3ZhbCxkYmdfbHZsKSAhIFtlbm1dIERlYnVn
Z2luZyBsZXZlbAogICAgIGVsc2UgaWYgKGRzaF9rZXkgPT0gIi1mIikgdGhlbgogICAgICAg
IGNhbGwgZnRuX2FyZ19nZXQoYXJnX2lkeCxhcmdfdmFsLGZsdF9mb28pICEgW2ZyY10gRmxv
YXQKICAgICBlbHNlIGlmIChkc2hfa2V5ID09ICItaSIpIHRoZW4KICAgICAgICBjYWxsIGZ0
bl9hcmdfZ2V0KGFyZ19pZHgsYXJnX3ZhbCxmbF9pbikgISBbc25nXSBJbnB1dCBmaWxlCiAg
ICAgZWxzZSBpZiAoZHNoX2tleSA9PSAiLWwiKSB0aGVuCiAgICAgICAgY2FsbCBmdG5fYXJn
X2dldChhcmdfaWR4LGFyZ192YWwsaW50X2ZvbykKICAgICBlbHNlIGlmIChkc2hfa2V5ID09
ICItcCIpIHRoZW4KICAgICAgICBsZ2NfZm9vPS5ub3QubGdjX2ZvbwogICAgIGVsc2UgaWYg
KGRzaF9rZXkgPT0gIi1vIikgdGhlbgogICAgICAgIGNhbGwgZnRuX2FyZ19nZXQoYXJnX2lk
eCxhcmdfdmFsLGZsX291dCkgISBbc25nXSBPdXRwdXQgZmlsZQogICAgIGVsc2UgaWYgKGRz
aF9rZXkgPT0gIi1zIikgdGhlbgogICAgICAgIGNhbGwgZnRuX2FyZ19nZXQoYXJnX2lkeCxh
cmdfdmFsLHNuZ19mb28pICEgW3NuZ10gU3RyaW5nCiAgICAgZWxzZSBpZiAoZHNoX2tleSA9
PSAiLXYiKSB0aGVuCiAgICAgICAgZ290byAxMDAwICEgR290byBleGl0IHdpdGggZXJyb3Ig
c3RhdHVzCiAgICAgZWxzZSAhIE9wdGlvbiBub3QgcmVjb2duaXplZAogICAgICAgIGFyZ19p
ZHg9YXJnX2lkeC0xICEgW2lkeF0gQ291bnRpbmcgaW5kZXgKICAgICAgICBjYWxsIGZ0bl9n
ZXRhcmdfZXJyKGFyZ19pZHgsYXJnX3ZhbCkgISBbc2JyXSBFcnJvciBoYW5kbGVyIGZvciBn
ZXRhcmcoKQogICAgIGVuZGlmICEgZW5kaWYgYXJnX3ZhbAogIGVuZCBkbyAhIGVuZCB3aGls
ZSAoYXJnX2lkeCA8PSBhcmdfbmJyKQoKICAhIENvbXB1dGUgYW55IHF1YW50aXRpZXMgdGhh
dCBtaWdodCBkZXBlbmQgb24gY29tbWFuZCBsaW5lIGlucHV0CiAgISBQcmVwZW5kIHVzZXIt
c3BlY2lmaWVkIHBhdGgsIGlmIGFueSwgdG8gaW5wdXQgZGF0YSBmaWxlIG5hbWVzCiAgaWYg
KGZ0bl9zdHJsZW4oZHJjX2luKSA+IDApIGNhbGwgZnRuX2RyY3BmeChkcmNfaW4sZmxfaW4p
ICEgW3NuZ10gSW5wdXQgZmlsZQogICEgUHJlcGVuZCB1c2VyLXNwZWNpZmllZCBwYXRoLCBp
ZiBhbnksIHRvIG91dHB1dCBkYXRhIGZpbGUgbmFtZXMKICBpZiAoZnRuX3N0cmxlbihkcmNf
b3V0KSA+IDApIGNhbGwgZnRuX2RyY3BmeChkcmNfb3V0LGZsX291dCkgISBbc25nXSBPdXRw
dXQgZmlsZQoKICBpZiAoLnRydWUuKSB0aGVuCiAgICAgd3JpdGUgKDYsKikgIkFmdGVyIGNv
bW1hbmQgbGluZSBwYXJzaW5nIGFuZCBzdHJpbmcgbWFuaXB1bGF0aW9uOiAiCiAgICAgd3Jp
dGUgKDYsKikgIm1haW4oKSByZXBvcnRzIGNtZF9sbiA9ICIsY21kX2xuKDE6ZnRuX3N0cmxl
bihjbWRfbG4pKQogICAgIHdyaXRlICg2LCopICJtYWluKCkgcmVwb3J0cyBkYmxfZm9vID0g
IixkYmxfZm9vCiAgICAgd3JpdGUgKDYsKikgIm1haW4oKSByZXBvcnRzIGZsdF9mb28gPSAi
LGZsdF9mb28KICAgICB3cml0ZSAoNiwqKSAibWFpbigpIHJlcG9ydHMgaW50X2ZvbyA9ICIs
aW50X2ZvbwogICAgIHdyaXRlICg2LCopICJtYWluKCkgcmVwb3J0cyBsZ2NfZm9vID0gIixs
Z2NfZm9vCiAgICAgd3JpdGUgKDYsKikgIm1haW4oKSByZXBvcnRzIHNuZ19mb28gPSAiLHNu
Z19mb28oMTpmdG5fc3RybGVuKHNuZ19mb28pKQogICAgIHdyaXRlICg2LCopICJtYWluKCkg
cmVwb3J0cyBmbF9pbiA9ICIsZmxfaW4oMTpmdG5fc3RybGVuKGZsX2luKSkKICAgICB3cml0
ZSAoNiwqKSAibWFpbigpIHJlcG9ydHMgZmxfb3V0ID0gIixmbF9vdXQoMTpmdG5fc3RybGVu
KGZsX291dCkpCiAgICAgd3JpdGUgKDYsKikgIm1haW4oKSByZXBvcnRzIGRyY19pbiA9ICIs
ZHJjX2luKDE6ZnRuX3N0cmxlbihkcmNfaW4pKQogICAgIHdyaXRlICg2LCopICJtYWluKCkg
cmVwb3J0cyBkcmNfb3V0ID0gIixkcmNfb3V0KDE6ZnRuX3N0cmxlbihkcmNfb3V0KSkKICBl
bmRpZiAhIGVuZGlmIC50cnVlLgoKMTAwMCBjb250aW51ZSAhIEp1bXBpbmcgcG9pbnQgZm9y
IHF1aWNrIGV4aXQKCmVuZCBwcm9ncmFtIHNuZwo=


--12.Aug.2003mysteryboxofun
Content-Type: application/octet-stream; name="dbg_mdl.f90"
Content-Description: ~/f/dbg_mdl.f90
Content-Transfer-Encoding: base64

ISAkSGVhZGVyJCAtKi1mOTAtKi0KCiEgUHVycG9zZTogU3lzdGVtYXRpYyBub21lbmNsYXR1
cmUgZm9yIGRlYnVnZ2luZy92ZXJib3NpdHkgbGV2ZWxzCiEgTkI6IFRoaXMgbW9kdWxlIGNv
bnRhaW5zIGdlbmVyaWMgZGVidWdnaW5nIGNvbnN0YW50cyBhbmQgcm91dGluZXMKISBJdCBp
cyBpbnRlbmRlZCBmb3IgdXNlIGluIGFsbCBGb3J0cmFuOTAgYXBwbGljYXRpb25zIGFuZCBp
cyB0aHVzIGFwcGxpY2F0aW9uLWluZGVwZW5kZW50CgohIENvcHlyaWdodCAoQykgMTk5Ny0t
MjAwMyBDaGFybGllIFplbmRlcgohIExpY2Vuc2U6IFRoaXMgZmlsZSBpcyBpbiB0aGUgUHVi
bGljIERvbWFpbgoKISBVc2FnZToKIXVzZSBkYmdfbWRsICEgW21kbF0gRGVidWdnaW5nIGNv
bnN0YW50cywgcHJnX25tLCBkYmdfbHZsCgptb2R1bGUgZGJnX21kbCAhIFttZGxdIERlYnVn
Z2luZyBjb25zdGFudHMsIHByZ19ubSwgZGJnX2x2bAogIGltcGxpY2l0IG5vbmUKCiAgaW50
ZWdlciBkYmdfbHZsICEgW2VubV0gRGVidWdnaW5nIGxldmVsLCBpbml0aWFsaXplZCBpbiBt
YWluKCkKICBjaGFyYWN0ZXIoODApIHByZ19ubSAhIFtzbmddIFByb2dyYW0gbmFtZSwgaW5p
dGlhbGl6ZWQgaW4gZnRuX2NtZF9sbl9zbmcoKQoKICAhIEVudW1lcmF0ZSBkZWJ1Z2dpbmcg
bGV2ZWxzCiAgaW50ZWdlcixwYXJhbWV0ZXI6OmRiZ19uYnI9OSAhIFtuYnJdIE51bWJlciBv
ZiBkaWZmZXJlbnQgZGVidWdnaW5nIGxldmVscwoKICBpbnRlZ2VyLHBhcmFtZXRlcjo6ZGJn
X29mZj0wICEgW2VubV0gUHJvZHVjdGlvbiBtb2RlLiBEZWJ1Z2dpbmcgaXMgdHVybmVkIG9m
Zi4KICBpbnRlZ2VyLHBhcmFtZXRlcjo6ZGJnX2ZsPTEgISBbZW5tXSBGaWxlbmFtZXMKICBp
bnRlZ2VyLHBhcmFtZXRlcjo6ZGJnX3NjbD0yICEgW2VubV0gU2NhbGFycwogIGludGVnZXIs
cGFyYW1ldGVyOjpkYmdfY3JyPTMgISBbZW5tXSBDdXJyZW50IHRhc2sKICBpbnRlZ2VyLHBh
cmFtZXRlcjo6ZGJnX3Nicj00ICEgW2VubV0gU3Vicm91dGluZSBuYW1lcyBvbiBlbnRyeSBh
bmQgZXhpdAogIGludGVnZXIscGFyYW1ldGVyOjpkYmdfaW89NSAhIFtlbm1dIFN1YnJvdXRp
bmUgSS9PCiAgaW50ZWdlcixwYXJhbWV0ZXI6OmRiZ192ZWM9NiAhIFtlbm1dIEVudGlyZSB2
ZWN0b3JzCiAgaW50ZWdlcixwYXJhbWV0ZXI6OmRiZ192cmI9NyAhIFtlbm1dIEV2ZXJ5dGhp
bmcKICBpbnRlZ2VyLHBhcmFtZXRlcjo6ZGJnX29sZD04ICEgW2VubV0gT2xkIGRlYnVnZ2lu
ZyBibG9ja3Mgbm90IHVzZWQgYW55bW9yZQoKZW5kIG1vZHVsZSBkYmdfbWRsCg==


--12.Aug.2003mysteryboxofun
Content-Type: text/plain


-- 
Charlie Zender, zender at uci dot edu, (949) 824-2987, Department of
Earth System Science, University of California, Irvine CA 92697-3100




--12.Aug.2003mysteryboxofun--


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01