ports/54603: Update and clean CAD/SPICE

Pedro F. Giffuni giffunip at yahoo.com
Fri Jul 18 06:00:33 UTC 2003


>Number:         54603
>Category:       ports
>Synopsis:       Update and clean CAD/SPICE
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jul 17 23:00:29 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Pedro F. Giffuni
>Release:        FreeBSD 5.0-RELEASE i386
>Organization:
>Environment:
System: FreeBSD giffuni.org 5.0-RELEASE FreeBSD 5.0-RELEASE #3: Wed Apr 16
22:20:49 COT 2003 pedro at giffuni.org:/usr/src/sys/i386/compile/CPQ i386
	
>Description:

I did some REAL cleaning on this port. The files dir is now organized so the
port can be maintained: previously there were multifile patches and several
patches for the same file, now it is a lot cleaner.

I also merged a memory leak fix and some fixes from spice3f5-spaghetti (before
it became spiceng). 

I activated MFB and removed GNUREADLINE support because:
1) We were not building it and the patches made it difficult to maintain the
filesdir.
2) Activating it showed it was broken.

I also made the port respect CFLAGS and CC. I added documentation and I also
renamed the port to Spice3 to match the Berkeley release notes and the program
name.

>How-To-Repeat:
	
>Fix:



________________________________________________________________________
Want to chat instantly with your online friends?  Get the FREE Yahoo!
Messenger http://uk.messenger.yahoo.com/
--0-60008898-1058507623=:26346
Content-Type: application/octet-stream; name=port-spice
Content-Transfer-Encoding: base64
Content-Description: port-spice
Content-Disposition: attachment; filename=port-spice

IyBUaGlzIGlzIGEgc2hlbGwgYXJjaGl2ZS4gIFNhdmUgaXQgaW4gYSBmaWxl
LCByZW1vdmUgYW55dGhpbmcgYmVmb3JlCiMgdGhpcyBsaW5lLCBhbmQgdGhl
biB1bnBhY2sgaXQgYnkgZW50ZXJpbmcgInNoIGZpbGUiLiAgTm90ZSwgaXQg
bWF5CiMgY3JlYXRlIGRpcmVjdG9yaWVzOyBmaWxlcyBhbmQgZGlyZWN0b3Jp
ZXMgd2lsbCBiZSBvd25lZCBieSB5b3UgYW5kCiMgaGF2ZSBkZWZhdWx0IHBl
cm1pc3Npb25zLgojCiMgVGhpcyBhcmNoaXZlIGNvbnRhaW5zOgojCiMJc3Bp
Y2UKIwlzcGljZS9NYWtlZmlsZQojCXNwaWNlL2Rpc3RpbmZvCiMJc3BpY2Uv
cGtnLWRlc2NyCiMJc3BpY2UvcGtnLXBsaXN0CiMJc3BpY2UvZmlsZXMKIwlz
cGljZS9maWxlcy9GcmVlQlNECiMJc3BpY2UvZmlsZXMvTWFrZWZpbGUKIwlz
cGljZS9maWxlcy9wYXRjaC1zcDNmNQojCXNwaWNlL2ZpbGVzL3BhdGNoLXNy
Y19saWJfZnRlX2RvcGxvdF9jCiMJc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xp
Yl9mdGVfeDExX2MKIwlzcGljZS9maWxlcy9wYXRjaC1sZXZlbDEKIwlzcGlj
ZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9jcGl0Zl9jCiMJc3BpY2UvZmls
ZXMvcGF0Y2gtc3JjX2xpYl9mdGVfZGltZW5zX2MKIwlzcGljZS9maWxlcy9w
YXRjaC1zcmNfbGliX2Z0ZV9hc3BpY2VfYwojCXNwaWNlL2ZpbGVzL3BhdGNo
LXNyY19saWJfZnRlX2dyYWZfYwojCXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19p
bmNsdWRlX3BhdGNobGV2X2gKIwlzcGljZS9maWxlcy9wYXRjaC1sZXZlbDIK
IwlzcGljZS9maWxlcy9wYXRjaC11dGlsX3NrZWxldG9uX21ha2VfZGVmX2Jk
CiMJc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9mdGVfbWlzY2NvbXNfYwoj
CXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX2dyaWRfYwojCXNwaWNl
L2ZpbGVzL3BhdGNoLXNyY19pbmNsdWRlX21pc2NfaAojCXNwaWNlL2ZpbGVz
L3BhdGNoLXNyY19saWJfZnRlX2RldmljZV9jCiMJc3BpY2UvZmlsZXMvcGF0
Y2gtc3JjX2Jpbl9zY29udmVydF9jCiMJc3BpY2UvZmlsZXMvcGF0Y2gtc3Jj
X2xpYl9mdGVfaW5wX2MKIwlzcGljZS9maWxlcy9wYXRjaC11dGlsX2J1aWxk
CiMJc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9mdGVfcmVzb3VyY2VfYwoj
CXNwaWNlL2ZpbGVzL3BhdGNoLXBzbW9kZWwKIwlzcGljZS9maWxlcy9wYXRj
aC1zcmNfbGliX2hscF9yZWFkaGVscF9jCiMJc3BpY2UvZmlsZXMvcGF0Y2gt
c3JjX2luY2x1ZGVfb3NfYnNkX2gKIwlzcGljZS9maWxlcy9wYXRjaC1zcmNf
bGliX2lucF9pbnBmaW5kbF9jCiMJc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xp
Yl9ja3RfZGN0cmN1cnZfYwojCXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJf
ZnRlX3Bvc3Rjb21zX2MKIwlzcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0
ZV92ZWN0b3JzX2MKIwlzcGljZS9maWxlcy9wYXRjaC1jb25mX2RlZmF1bHRz
CiMJc3BpY2Uvc2NyaXB0cwojCXNwaWNlL3NjcmlwdHMvY29uZmlndXJlCiMK
ZWNobyBjIC0gc3BpY2UKbWtkaXIgLXAgc3BpY2UgPiAvZGV2L251bGwgMj4m
MQplY2hvIHggLSBzcGljZS9NYWtlZmlsZQpzZWQgJ3MvXlgvLycgPnNwaWNl
L01ha2VmaWxlIDw8ICdFTkQtb2Ytc3BpY2UvTWFrZWZpbGUnClgjIE5ldyBw
b3J0cyBjb2xsZWN0aW9uIG1ha2VmaWxlIGZvcjogICAgc3BpY2UzClgjIERh
dGUgY3JlYXRlZDogICAgICAgICAyNiBNYXIgOTYKWCMgV2hvbTogICAgICAg
ICAgICAgICAgIEp1bGlhbiBKZW5raW5zIChvcmlnKQpYIwpYIyAkRnJlZUJT
RDogcG9ydHMvY2FkL3NwaWNlL01ha2VmaWxlLHYgMS4yMyAyMDAzLzA2LzMw
IDE5OjQ3OjE4IG1haG8gRXhwICQKWCMKWApYUE9SVE5BTUU9CXNwaWNlMwpY
UE9SVFZFUlNJT049CTNmNS4yClhDQVRFR09SSUVTPQljYWQKWE1BU1RFUl9T
SVRFUz0JZnRwOi8vaWMuZWVjcy5iZXJrZWxleS5lZHUvcHViL1NwaWNlMy86
c291cmNlcwlcClgJCWZ0cDovL2ljLmVlY3MuYmVya2VsZXkuZWR1L3B1Yi9T
cGljZTMvdW0uM2YzLnBzLzpkb2NzClhFWFRSQUNUX1NVRlg9CS50YXIuWgpY
RElTVEZJTEVTPQlzcDNmNC5raXQke0VYVFJBQ1RfU1VGWH06c291cmNlcwlc
ClgJCWNwLnBzOmRvY3MgdG9jLnBzOmRvY3MgZG9jLnBzOmRvY3MKWERJU1Rf
U1VCRElSPQlzcGljZTMKWEVYVFJBQ1RfT05MWT0Jc3AzZjQua2l0JHtFWFRS
QUNUX1NVRlh9ClgKWE1BSU5UQUlORVI9CW1haG9ARnJlZUJTRC5vcmcKWENP
TU1FTlQ9CUEgZ2VuZXJhbC1wdXJwb3NlIGNpcmN1aXQgc2ltdWxhdGlvbiBw
cm9ncmFtClgKWFVTRV9YTElCPQl5ZXMKWFVTRV9SRUlOUExBQ0U9CXllcwpY
Tk9fV1JLU1VCRElSPQl5ZXMKWE1BTjE9CQlzY29udmVydC4xIG51dG1lZy4x
IHNwaWNlLjEKWE1BTjM9CQltZmIuMwpYTUFONT0JCW1mYmNhcC41ClhNTElO
S1M9CQlzcGljZS4xIHNwaWNlMy4xClgKWHBvc3QtY29uZmlndXJlOgpYCUAk
e1JFSU5QTEFDRV9DTUR9IC1lICdzK0BDQ0ArJHtDQ30rIDsgcytAQ0ZMQUdT
QCske0NGTEFHU30rIDsgXApYCXMrQFgxMUJBU0VAKyR7WDExQkFTRX0rOycg
XApYCSR7V1JLU1JDfS9jb25mL0ZyZWVCU0QKWApYcG9zdC1pbnN0YWxsOgpY
LmlmICFkZWZpbmVkKE5PUE9SVERPQ1MpClgJJHtNS0RJUn0gJHtET0NTRElS
fQpYCSR7Q0FUfSAke0RJU1RESVJ9LyR7RElTVF9TVUJESVJ9LyoucHMgPiAk
e0RPQ1NESVJ9L3NwaWNlM2YzLnBzClgJJHtHWklQX0NNRH0gJHtET0NTRElS
fS8qLnBzClgJJHtNS0RJUn0gJHtFWEFNUExFU0RJUn0KWAkke0lOU1RBTExf
REFUQX0gJHtXUktTUkN9L2V4YW1wbGVzLyouY2lyICR7RVhBTVBMRVNESVJ9
ClguZW5kaWYKWApYLmluY2x1ZGUgPGJzZC5wb3J0Lm1rPgpFTkQtb2Ytc3Bp
Y2UvTWFrZWZpbGUKZWNobyB4IC0gc3BpY2UvZGlzdGluZm8Kc2VkICdzL15Y
Ly8nID5zcGljZS9kaXN0aW5mbyA8PCAnRU5ELW9mLXNwaWNlL2Rpc3RpbmZv
JwpYTUQ1IChzcGljZTMvc3AzZjQua2l0LnRhci5aKSA9IGQ1NWViMDhhN2Y1
MjMyNDhiMWI1MDkwOTJhNDQ0YWViClhNRDUgKHNwaWNlMy9jcC5wcykgPSBl
ZTkwNjVkZTZlMTFlODJmYTNmZTM0MzE4YzIzNzNmYwpYTUQ1IChzcGljZTMv
dG9jLnBzKSA9IGY4NGNjZGQ5Y2E0MjNlMTEyZWM2ODEyMWE4NmMwMzJjClhN
RDUgKHNwaWNlMy9kb2MucHMpID0gYmNlYTQxN2YzYmRlODU0M2Y0Mjg3ODVi
ZmI1YTRkNjIKRU5ELW9mLXNwaWNlL2Rpc3RpbmZvCmVjaG8geCAtIHNwaWNl
L3BrZy1kZXNjcgpzZWQgJ3MvXlgvLycgPnNwaWNlL3BrZy1kZXNjciA8PCAn
RU5ELW9mLXNwaWNlL3BrZy1kZXNjcicKWFNQSUNFIGlzIGEgZ2VuZXJhbC1w
dXJwb3NlIGNpcmN1aXQgc2ltdWxhdGlvbiBwcm9ncmFtIGZvciBub25saW5l
YXIgREMsClhub25saW5lYXIgdHJhbnNpZW50LCBhbmQgbGluZWFyIEFDIGFu
YWx5c2VzLiBDaXJjdWl0cyBtYXkgY29udGFpbiByZXNpc3RvcnMsClhjYXBh
Y2l0b3JzLCBpbmR1Y3RvcnMsIG11dHVhbCBpbmR1Y3RvcnMsIGluZGVwZW5k
ZW50IHZvbHRhZ2UgYW5kIGN1cnJlbnQKWHNvdXJjZXMsIGZvdXIgdHlwZXMg
b2YgZGVwZW5kZW50IHNvdXJjZXMsIGxvc3NsZXNzIGFuZCBsb3NzeSB0cmFu
c21pc3Npb24KWGxpbmVzICh0d28gc2VwYXJhdGUgaW1wbGVtZW50YXRpb25z
KSwgc3dpdGNoZXMsIHVuaWZvcm0gZGlzdHJpYnV0ZWQgUkMKWGxpbmVzLCBh
bmQgdGhlIGZpdmUgbW9zdCBjb21tb24gc2VtaWNvbmR1Y3RvciBkZXZpY2Vz
OiBkaW9kZXMsIEJKVHMsIEpGRVRzLApYTUVTRkVUcywgYW5kIE1PU0ZFVHMu
ClgKWAlGcm9tIHRoZSBTUElDRTMgVmVyc2lvbjNmMyBVc2VyJ3MgTWFudWFs
LgpYCVRoaXMgaXMgYXZhaWxibGUgYXMgYSBwb3N0c2NyaXB0IGRvY3VtZW50
IGZyb206ClgJCWZ0cDovL2ljLmVlY3MuYmVya2VsZXkuZWR1L3B1Yi9TcGlj
ZTMvdW0uM2YzLnBzClgJb3IgeW91IGNhbiByZWFkIHRoZSBvbmxpbmUgZG9j
dW1lbnRhdGlvbiBvbiB0aGUgaG9tZXBhZ2UuClgKWFdXVzogaHR0cDovL2lu
Zm9wYWQuZWVjcy5iZXJrZWxleS5lZHUvfmljZGVzaWduL1NQSUNFLwpYClhK
dWxpYW4gSmVua2lucwpYa2F2ZW1hbkBtYWduYS5jb20uYXUKRU5ELW9mLXNw
aWNlL3BrZy1kZXNjcgplY2hvIHggLSBzcGljZS9wa2ctcGxpc3QKc2VkICdz
L15YLy8nID5zcGljZS9wa2ctcGxpc3QgPDwgJ0VORC1vZi1zcGljZS9wa2ct
cGxpc3QnClhiaW4vc3BpY2UzClhiaW4vbnV0bWVnClhiaW4vc2NvbnZlcnQK
WGJpbi9oZWxwClhiaW4vcHJvYzJtb2QKWGJpbi9tdWx0aWRlYwpYc2hhcmUv
c3BpY2UzL2hlbHBkaXIvc3BpY2UudHh0ClhzaGFyZS9zcGljZTMvaGVscGRp
ci9zcGljZS5pZHgKWHNoYXJlL3NwaWNlMy9zY3JpcHRzL3NldHBsb3QKWHNo
YXJlL3NwaWNlMy9zY3JpcHRzL3NwaW5pdApYc2hhcmUvc3BpY2UzL21mYmNh
cApYc2hhcmUvc3BpY2UzL25ld3MKWEBkaXJybSBzaGFyZS9zcGljZTMvaGVs
cGRpcgpYQGRpcnJtIHNoYXJlL3NwaWNlMy9zY3JpcHRzClhAZGlycm0gc2hh
cmUvc3BpY2UzClglJVBPUlRET0NTJSUlJURPQ1NESVIlJS9zcGljZTNmMy5w
cy5negpYJSVQT1JURE9DUyUlJSVFWEFNUExFU0RJUiUlL2JqdG5vaXNlLmNp
cgpYJSVQT1JURE9DUyUlJSVFWEFNUExFU0RJUiUlL2JzaW0xdHN0LmNpcgpY
JSVQT1JURE9DUyUlJSVFWEFNUExFU0RJUiUlL2JzaW0ydHN0LmNpcgpYJSVQ
T1JURE9DUyUlJSVFWEFNUExFU0RJUiUlL2RpZmZwYWlyLmNpcgpYJSVQT1JU
RE9DUyUlJSVFWEFNUExFU0RJUiUlL2Rpb2Rpc3RvLmNpcgpYJSVQT1JURE9D
UyUlJSVFWEFNUExFU0RJUiUlL2x0cmFfMS5jaXIKWCUlUE9SVERPQ1MlJSUl
RVhBTVBMRVNESVIlJS9sdHJhXzIuY2lyClglJVBPUlRET0NTJSUlJUVYQU1Q
TEVTRElSJSUvbHRyYV8zLmNpcgpYJSVQT1JURE9DUyUlJSVFWEFNUExFU0RJ
UiUlL21peGRpc3RvLmNpcgpYJSVQT1JURE9DUyUlJSVFWEFNUExFU0RJUiUl
L21vczZpbnYuY2lyClglJVBPUlRET0NTJSUlJUVYQU1QTEVTRElSJSUvbW9z
YW1wMi5jaXIKWCUlUE9SVERPQ1MlJSUlRVhBTVBMRVNESVIlJS9tb3NtZW0u
Y2lyClglJVBPUlRET0NTJSUlJUVYQU1QTEVTRElSJSUvcHoyLmNpcgpYJSVQ
T1JURE9DUyUlJSVFWEFNUExFU0RJUiUlL3B6dC5jaXIKWCUlUE9SVERPQ1Ml
JSUlRVhBTVBMRVNESVIlJS9yYy5jaXIKWCUlUE9SVERPQ1MlJSUlRVhBTVBM
RVNESVIlJS9yY2EzMDQwLmNpcgpYJSVQT1JURE9DUyUlJSVFWEFNUExFU0RJ
UiUlL3Jlc25vaXNlLmNpcgpYJSVQT1JURE9DUyUlJSVFWEFNUExFU0RJUiUl
L3J0bGludi5jaXIKWCUlUE9SVERPQ1MlJSUlRVhBTVBMRVNESVIlJS9zY2ht
aXR0LmNpcgpYJSVQT1JURE9DUyUlJSVFWEFNUExFU0RJUiUlL3NpbXBsZXB6
LmNpcgpYJSVQT1JURE9DUyUlQGRpcnJtIHNoYXJlL2V4YW1wbGVzL3NwaWNl
MwpFTkQtb2Ytc3BpY2UvcGtnLXBsaXN0CmVjaG8gYyAtIHNwaWNlL2ZpbGVz
Cm1rZGlyIC1wIHNwaWNlL2ZpbGVzID4gL2Rldi9udWxsIDI+JjEKZWNobyB4
IC0gc3BpY2UvZmlsZXMvRnJlZUJTRApzZWQgJ3MvXlgvLycgPnNwaWNlL2Zp
bGVzL0ZyZWVCU0QgPDwgJ0VORC1vZi1zcGljZS9maWxlcy9GcmVlQlNEJwpY
IyBGcmVlQlNEIGNvbmZpZyBleGNlcHRpb24gZmlsZQpYClhNQUtFCQk9IC91
c3IvYmluL21ha2UKWElOVEVSRkFDRV9PUFRTCT0gLURXQU5UX01GQiAtRFdB
TlRfWDExClhDQwkJPSBAQ0NAClhDQ19PUFQJCSs9IEBDRkxBR1NAClhDQ19P
UFRfU0FGRQkrPSAtTzIgLWZuby1zdHJlbmd0aC1yZWR1Y2UgLXBpcGUKWExE
RkxBR1MJCSs9IC1MQFgxMUJBU0VAL2xpYiAtbG0gLWx0ZXJtY2FwClhTWVNf
Q0ZMQUdTCT0gLURic2QKRU5ELW9mLXNwaWNlL2ZpbGVzL0ZyZWVCU0QKZWNo
byB4IC0gc3BpY2UvZmlsZXMvTWFrZWZpbGUKc2VkICdzL15YLy8nID5zcGlj
ZS9maWxlcy9NYWtlZmlsZSA8PCAnRU5ELW9mLXNwaWNlL2ZpbGVzL01ha2Vm
aWxlJwpYClhhbGw6ClgJdXRpbC9idWlsZCBGcmVlQlNEIGRlZmF1bHQKWApY
aW5zdGFsbDoKWAl1dGlsL2J1aWxkIEZyZWVCU0QgaW5zdGFsbCAKWAljaG1v
ZCBhK3J4ICR7UFJFRklYfS9iaW4vc3BpY2UzICR7UFJFRklYfS9iaW4vbnV0
bWVnIFwKWAkgICR7UFJFRklYfS9iaW4vc2NvbnZlcnQgJHtQUkVGSVh9L2Jp
bi9oZWxwCVwKWAkgICR7UFJFRklYfS9iaW4vcHJvYzJtb2QgJHtQUkVGSVh9
L2Jpbi9tdWx0aWRlYwpYCXN0cmlwICR7UFJFRklYfS9iaW4vc3BpY2UzICR7
UFJFRklYfS9iaW4vbnV0bWVnCVwKWAkgICR7UFJFRklYfS9iaW4vc2NvbnZl
cnQgJHtQUkVGSVh9L2Jpbi9oZWxwIFwKWAkgICR7UFJFRklYfS9iaW4vcHJv
YzJtb2QgJHtQUkVGSVh9L2Jpbi9tdWx0aWRlYwpYCWNobW9kIC1SIGErclgg
JHtQUkVGSVh9L3NoYXJlL3NwaWNlMwpYCWluc3RhbGwgLWMgLW0gNjQ0IC1v
IGJpbiAtZyBiaW4gbWFuL21hbjUvbWZiY2FwLjUgJHtQUkVGSVh9L21hbi9t
YW41L21mYmNhcC41ClgJaW5zdGFsbCAtYyAtbSA2NDQgLW8gYmluIC1nIGJp
biBtYW4vbWFuMS9zY29udmVydC4xICR7UFJFRklYfS9tYW4vbWFuMS9zY29u
dmVydC4xClgJaW5zdGFsbCAtYyAtbSA2NDQgLW8gYmluIC1nIGJpbiBtYW4v
bWFuMS9udXRtZWcuMSAke1BSRUZJWH0vbWFuL21hbjEvbnV0bWVnLjEKWAlp
bnN0YWxsIC1jIC1tIDY0NCAtbyBiaW4gLWcgYmluIG1hbi9tYW4xL3NwaWNl
LjEgJHtQUkVGSVh9L21hbi9tYW4xL3NwaWNlLjEKWAlpbnN0YWxsIC1jIC1t
IDY0NCAtbyBiaW4gLWcgYmluIG1hbi9tYW4zL21mYi4zICR7UFJFRklYfS9t
YW4vbWFuMy9tZmIuMwpFTkQtb2Ytc3BpY2UvZmlsZXMvTWFrZWZpbGUKZWNo
byB4IC0gc3BpY2UvZmlsZXMvcGF0Y2gtc3AzZjUKc2VkICdzL15YLy8nID5z
cGljZS9maWxlcy9wYXRjaC1zcDNmNSA8PCAnRU5ELW9mLXNwaWNlL2ZpbGVz
L3BhdGNoLXNwM2Y1JwpYVGhlc2UgYXJlIG9mZmljaWFsIEJlcmtlbGV5IGZp
eGVzIGZvciBzcDNmNApYKioqIHNyYy9saWIvZnRlL2dyaWQuYy5vcmlnCVN1
biBBcHIgMjUgMTQ6NTM6MTEgMTk5MwpYLS0tIHNyYy9saWIvZnRlL2dyaWQu
YwlTYXQgSmFuIDI5IDEwOjQ3OjU5IDE5OTQKWCoqKioqKioqKioqKioqKgpY
KioqIDE3LDIyICoqKioKWC0tLSAxNywyMyAtLS0tClggICNpbmNsdWRlICJz
dWZmaXguaCIKWCAgClggICNkZWZpbmUgUkFEX1RPX0RFRwkoMTgwLjAgLyBN
X1BJKQpYKyAjZGVmaW5lIExBQkVMX0NIQVJTCTIwClggIApYICBzdGF0aWMg
ZG91YmxlICpsaW5ncmlkKCksICpsb2dncmlkKCk7ClggIHN0YXRpYyB2b2lk
IHBvbGFyZ3JpZCgpLCBzbWl0aGdyaWQoKTsKWCoqKioqKioqKioqKioqKgpY
KioqIDIyNSwyMzEgKioqKgpYICAgICAgaW50IG1heDsKWCAgICAgIHN0YXRp
YyBkb3VibGUgZGRbMl07ClggICAgICBpbnQgbXVsdCA9IDE7ClghICAgICBj
aGFyIGJ1ZlsxNl0sICpzOwpYICAgICAgaW50IHNsaW0sIGRpZ2l0czsKWCAg
ClggICAgICBpZiAoYXhpcyA9PSB5X2F4aXMgJiYgZ3JhcGgtPmdyaWQueXNp
emVkKSB7ClgtLS0gMjI2LDIzMiAtLS0tClggICAgICBpbnQgbWF4OwpYICAg
ICAgc3RhdGljIGRvdWJsZSBkZFsyXTsKWCAgICAgIGludCBtdWx0ID0gMTsK
WCEgICAgIGNoYXIgYnVmW0xBQkVMX0NIQVJTXSwgKnM7ClggICAgICBpbnQg
c2xpbSwgZGlnaXRzOwpYICAKWCAgICAgIGlmIChheGlzID09IHlfYXhpcyAm
JiBncmFwaC0+Z3JpZC55c2l6ZWQpIHsKWCoqKioqKioqKioqKioqKgpYKioq
IDQ3Nyw0ODMgKioqKgpYICBkcmF3bGluZ3JpZChncmFwaCwgdW5pdHMsIHNw
YWNpbmcsIG5zcCwgZHN0LCBsbXQsIGhtdCwgb25lZGVjLCBtdWx0LCBtYWcs
ClggICAgICBkaWdpdHMsIGF4aXMpClggICAgICBHUkFQSCAqZ3JhcGg7Clgh
ICAgICBjaGFyIHVuaXRzWzE2XTsKWCAgICAgIGJvb2wgb25lZGVjOwpYICAg
ICAgaW50IG5zcCwgc3BhY2luZywgbXVsdDsKWCAgICAgIGRvdWJsZSBobXQs
IGxtdCwgZHN0OwpYLS0tIDQ3OCw0ODQgLS0tLQpYICBkcmF3bGluZ3JpZChn
cmFwaCwgdW5pdHMsIHNwYWNpbmcsIG5zcCwgZHN0LCBsbXQsIGhtdCwgb25l
ZGVjLCBtdWx0LCBtYWcsClggICAgICBkaWdpdHMsIGF4aXMpClggICAgICBH
UkFQSCAqZ3JhcGg7ClghICAgICBjaGFyICp1bml0czsKWCAgICAgIGJvb2wg
b25lZGVjOwpYICAgICAgaW50IG5zcCwgc3BhY2luZywgbXVsdDsKWCAgICAg
IGRvdWJsZSBobXQsIGxtdCwgZHN0OwpYKioqKioqKioqKioqKioqClgqKiog
NDg4LDQ5NCAqKioqClggIApYICAgICAgaW50IGksIGo7ClggICAgICBkb3Vi
bGUgbSwgc3RlcDsKWCEgICAgIGNoYXIgYnVmWzE2XTsKWCAgClggICAgICAv
KiBpIGNvdW50cyBob3cgbWFueSBwaXhlbHMgd2UgaGF2ZSBkcmF3biwgYW5k
IGogY291bnRzIHdoaWNoIHVuaXQKWCAgICAgICAqIHdlIGFyZSBhdC4KWC0t
LSA0ODksNDk1IC0tLS0KWCAgClggICAgICBpbnQgaSwgajsKWCAgICAgIGRv
dWJsZSBtLCBzdGVwOwpYISAgICAgY2hhciBidWZbTEFCRUxfQ0hBUlNdOwpY
ICAKWCAgICAgIC8qIGkgY291bnRzIGhvdyBtYW55IHBpeGVscyB3ZSBoYXZl
IGRyYXduLCBhbmQgaiBjb3VudHMgd2hpY2ggdW5pdApYICAgICAgICogd2Ug
YXJlIGF0LgpYKioqKioqKioqKioqKioqClgqKiogNTY3LDU3MyAqKioqClgg
ICAgICBkb3VibGUgazsKWCAgICAgIGRvdWJsZSBkZWNzOwpYICAgICAgZG91
YmxlIG1hZywgZ2FpbjsKWCEgICAgIGNoYXIgYnVmWzMyXSwgKnM7ClggIApY
ICAgICAgaWYgKGF4aXMgPT0geF9heGlzICYmIGdyYXBoLT5ncmlkLnhzaXpl
ZCkgewpYICAgICAgICBsbXQgPSBncmFwaC0+Z3JpZC54YXhpcy5sb2cubG10
OwpYLS0tIDU2OCw1NzQgLS0tLQpYICAgICAgZG91YmxlIGs7ClggICAgICBk
b3VibGUgZGVjczsKWCAgICAgIGRvdWJsZSBtYWcsIGdhaW47ClghICAgICBj
aGFyIGJ1ZltMQUJFTF9DSEFSU10sICpzOwpYICAKWCAgICAgIGlmIChheGlz
ID09IHhfYXhpcyAmJiBncmFwaC0+Z3JpZC54c2l6ZWQpIHsKWCAgICAgICAg
bG10ID0gZ3JhcGgtPmdyaWQueGF4aXMubG9nLmxtdDsKWCoqKioqKioqKioq
KioqKgpYKioqIDY3MSw2NzcgKioqKgpYICB7ClggICAgICBpbnQgaSwgaiwg
aywgbCwgbTsKWCAgICAgIGRvdWJsZSB0OwpYISAgICAgY2hhciBidWZbMTZd
OwpYICAKWCAgICAgIC8qIE5vdyBwbG90IGV2ZXJ5IHBwJ3RoIGRlY2FkZSBs
aW5lLCB3aXRoIHN1YnMgbGluZXMgYmV0d2VlbiB0aGVtLiAqLwpYICAgICAg
aWYgKHN1YnMgPiAxKQpYLS0tIDY3Miw2NzggLS0tLQpYICB7ClggICAgICBp
bnQgaSwgaiwgaywgbCwgbTsKWCAgICAgIGRvdWJsZSB0OwpYISAgICAgY2hh
ciBidWZbTEFCRUxfQ0hBUlNdOwpYICAKWCAgICAgIC8qIE5vdyBwbG90IGV2
ZXJ5IHBwJ3RoIGRlY2FkZSBsaW5lLCB3aXRoIHN1YnMgbGluZXMgYmV0d2Vl
biB0aGVtLiAqLwpYICAgICAgaWYgKHN1YnMgPiAxKQpYKioqIHNyYy9saWIv
ZnRlL25ld2NvbXMuYy5vcmlnCVN1biBNYXIgIDcgMTY6MzA6NTggMTk5MwpY
LS0tIHNyYy9saWIvZnRlL25ld2NvbXMuYwlXZWQgRmViIDIzIDIyOjM5OjU1
IDE5OTQKWCoqKioqKioqKioqKioqKgpYKioqIDE1MSwxNTYgKioqKgpYLS0t
IDE1MSwxNjAgLS0tLQpYICAJICAgIC8qIENvcHkgZnJvbSB0aGUgZmlyc3Qg
Ki8KWCAgCSAgICB2bmFtZSA9IGNwX3VucXVvdGUod2wtPndsX3dvcmQpOwpY
ICAJICAgIGR2ID0gdmVjX2dldCh2bmFtZSk7ClgrIAkgICAgaWYgKCFkdikg
ewpYKyAJCXByaW50ZigiJyVzJyByZWZlcmVuY2UgdmVjdG9yIG5vdCBmb3Vu
ZFxuIiwgdm5hbWUpOwpYKyAJCXJldHVybjsKWCsgCSAgICB9ClggIAkgICAg
bnVtZGltcyA9IGR2LT52X251bWRpbXM7ClggIAkgICAgZGltcyA9IGR2LT52
X2RpbXM7ClggIAkgICAgd2wgPSB3bC0+d2xfbmV4dDsKWCoqKiBzcmMvbGli
L3NwYXJzZS9zcHNtcC5jLm9yaWcJV2VkIEZlYiAgMyAxNDoyMDo1MCAxOTkz
ClgtLS0gc3JjL2xpYi9zcGFyc2Uvc3BzbXAuYwlTdW4gSmFuIDMwIDExOjUz
OjEwIDE5OTQKWCoqKioqKioqKioqKioqKgpYKioqIDQ4Myw0OTIgKioqKgpY
ICBpbnQgQ3JlYXRlSWZNaXNzaW5nOwpYICB7ClggIE1hdHJpeFB0ciBNYXRy
aXggPSAoTWF0cml4UHRyKWVNYXRyaXg7ClghIEVsZW1lbnRQdHIgRWxlbWVu
dCA9IE1hdHJpeC0+Rmlyc3RJbkNvbFtDb2xdOwpYICAKWCAgLyogQmVnaW4g
YFNNUGZpbmRFbHQnLiAqLwpYICAgICAgQVNTRVJUKCBJU19TUEFSU0UoIE1h
dHJpeCApICk7ClggICAgICBFbGVtZW50ID0gc3BjRmluZEVsZW1lbnRJbkNv
bChNYXRyaXgsICZFbGVtZW50LCBSb3csIENvbCwgQ3JlYXRlSWZNaXNzaW5n
KTsKWCAgICAgIHJldHVybiAoU01QZWxlbWVudCAqKUVsZW1lbnQ7ClggIH0K
WC0tLSA0ODUsNDk3IC0tLS0KWCAgaW50IENyZWF0ZUlmTWlzc2luZzsKWCAg
ewpYICBNYXRyaXhQdHIgTWF0cml4ID0gKE1hdHJpeFB0cillTWF0cml4OwpY
ISBFbGVtZW50UHRyIEVsZW1lbnQ7ClggIApYICAvKiBCZWdpbiBgU01QZmlu
ZEVsdCcuICovClggICAgICBBU1NFUlQoIElTX1NQQVJTRSggTWF0cml4ICkg
KTsKWCsgICAgIFJvdyA9IE1hdHJpeC0+RXh0VG9JbnRSb3dNYXBbUm93XTsK
WCsgICAgIENvbCA9IE1hdHJpeC0+RXh0VG9JbnRDb2xNYXBbQ29sXTsKWCsg
ICAgIEVsZW1lbnQgPSBNYXRyaXgtPkZpcnN0SW5Db2xbQ29sXTsKWCAgICAg
IEVsZW1lbnQgPSBzcGNGaW5kRWxlbWVudEluQ29sKE1hdHJpeCwgJkVsZW1l
bnQsIFJvdywgQ29sLCBDcmVhdGVJZk1pc3NpbmcpOwpYICAgICAgcmV0dXJu
IChTTVBlbGVtZW50ICopRWxlbWVudDsKWCAgfQpFTkQtb2Ytc3BpY2UvZmls
ZXMvcGF0Y2gtc3AzZjUKZWNobyB4IC0gc3BpY2UvZmlsZXMvcGF0Y2gtc3Jj
X2xpYl9mdGVfZG9wbG90X2MKc2VkICdzL15YLy8nID5zcGljZS9maWxlcy9w
YXRjaC1zcmNfbGliX2Z0ZV9kb3Bsb3RfYyA8PCAnRU5ELW9mLXNwaWNlL2Zp
bGVzL3BhdGNoLXNyY19saWJfZnRlX2RvcGxvdF9jJwpYLS0tIHNyYy9saWIv
ZnRlL2RvcGxvdC5jLm9yaWcJU3VuIEFwciAyNSAyMzo0ODo0NSAxOTkzClgr
Kysgc3JjL2xpYi9mdGUvZG9wbG90LmMJTW9uIEZlYiAyNiAxODowMzoyMCAy
MDAxClhAQCAtMTE3LDcgKzExNyw3IEBAClggICAgIH0KWCAKWCAgICAgaWYg
KCFjcF9nZXR2YXIoImhjb3B5ZGV2dHlwZSIsIFZUX1NUUklORywgYnVmKSkg
ewpYLSAgICAgICAgZGV2dHlwZSA9ICJwbG90NSI7ClgrICAgICAgICBkZXZ0
eXBlID0gInBvc3RzY3JpcHQiOwpYICAgICB9IGVsc2UgewpYICAgICAgICAg
ZGV2dHlwZSA9IGJ1ZjsKWCAgICAgfQpYQEAgLTE0NywxMCArMTQ3LDIzIEBA
ClggCSAgICAgIERldlN3aXRjaChOVUxMKTsKWCAJICAgICAgcmV0dXJuOwpY
IAkgICAgfQpYKwkgICAgLyoKWCsJICAgICAqIFNpbmNlIHRoZSBoYXJkY29w
eSBvdXRwdXQgcm91dGluZXMgcmVseSBvbiBjdXJyZW50Z3JhcGgKWCsJICAg
ICAqIGJlaW5nIHNldCwgd2UgbmVlZCB0byBzZXQgaXQgdG8gb3VyIHRlbXBn
cmFwaC4gIE5vdGUKWCsJICAgICAqIHRoYXQgRGV2U3dpdGNoKE5VTEwpIGNh
dXNlcyB0aGUgQ2xvc2UoKSBmdW5jdGlvbiBvZiB0aGUKWCsJICAgICAqIGhh
cmRjb3B5IGRldmljZSB0byBiZSBjYWxsZWQgd2hpY2ggd2lsbCBpbiB0dXJu
ClgrCSAgICAgKiBmaW5hbGl6ZSB0aGUgb3V0cHV0LCB0aHVzIHN0aWxsIG5l
ZWRzIGEgdmFsaWQKWCsJICAgICAqIGN1cnJlbnRncmFwaC4gIEZvciB0aGF0
IHJlYXNvbiwgd2UgbWF5IG9ubHkgcG9wIHRoZQpYKwkgICAgICogY29udGV4
dCBhZnRlciBjYWxsaW5nIGl0LCBhbmQgbGlrZXdpc2Ugd2Ugc2hvdWxkIG5v
dApYKwkgICAgICogZGVzdHJveSB0aGUgdGVtcGdyYXBoIHVudGlsIHRoZSBo
YXJkY29weSBkZXZpY2UgaGFzClgrCSAgICAgKiBiZWVuIGNsb3NlZC4KWCsJ
ICAgICAqLwpYKwkgICAgUHVzaEdyYXBoQ29udGV4dCh0ZW1wZ3JhcGgpOwpY
IAkgICAgZ3JfcmVzaXplKHRlbXBncmFwaCk7ClggCSAgICBncl9yZWRyYXco
dGVtcGdyYXBoKTsKWC0JICAgIERlc3Ryb3lHcmFwaCh0ZW1wZ3JhcGgtPmdy
YXBoaWQpOwpYIAkgICAgRGV2U3dpdGNoKE5VTEwpOwpYKwkgICAgUG9wR3Jh
cGhDb250ZXh0KCk7ClgrCSAgICBEZXN0cm95R3JhcGgodGVtcGdyYXBoLT5n
cmFwaGlkKTsKWCAJICAgIGZvdW5kaXQgPSAxOwpYIAl9ClggICAgIH0KRU5E
LW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX2RvcGxvdF9jCmVj
aG8geCAtIHNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX3gxMV9jCnNl
ZCAncy9eWC8vJyA+c3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9mdGVfeDEx
X2MgPDwgJ0VORC1vZi1zcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV94
MTFfYycKWC0tLSBzcmMvbGliL2Z0ZS94MTEuYy5vcmlnCVRodSBKdWwgMTcg
MTA6NTU6MDAgMjAwMwpYKysrIHNyYy9saWIvZnRlL3gxMS5jCVRodSBKdWwg
MTcgMTE6Mzk6MDUgMjAwMwpYQEAgLTEyMCw3ICsxMjAsMTAgQEAKWCAJLyog
ImludmVydCIgd29ya3MgYmV0dGVyIHRoYW4gInhvciIgZm9yIEImVyAqLwpY
IApYIAkvKiB4b3IgZ2Mgc2hvdWxkIGJlIGEgZnVuY3Rpb24gb2YgdGhlIHBp
eGVscyB0aGF0IGFyZSB3cml0dGVuIG9uICovClgtCWdjdmFsdWVzLmZ1bmN0
aW9uID0gR1h4b3I7ClgrCS8qIGdjdmFsdWVzLmZ1bmN0aW9uID0gR1h4b3I7
ICovClgrCS8qIHRoaXMgcGF0Y2ggbWFrZXMgbGluZXMgdmlzaWJsZSBvbiB0
cnVlIGNvbG9yIGRpc3BsYXlzClgrICAgICAgICAgICBHdWVudGhlciBSb2Vo
cmljaCAyMi1KYW4tOTkgKi8KWCsJZ2N2YWx1ZXMuZnVuY3Rpb24gPSBHWGlu
dmVydDsKWCAJZ2N2YWx1ZXMubGluZV93aWR0aCA9IDE7ClggCWdjdmFsdWVz
LmZvcmVncm91bmQgPSAxOwpYIAlnY3ZhbHVlcy5iYWNrZ3JvdW5kID0gMDsK
WEBAIC0zMDIsNyArMzA1LDcgQEAKWCAJcmV0dXJuICgwKTsKWCB9ClggClgt
c3RhdGljClgrLyogUE4gc3RhdGljICovClggaW5pdGxpbmVzdHlsZXMoKQpY
IHsKWCAKWEBAIC0zMTgsNyArMzIxLDcgQEAKWCAJcmV0dXJuOwpYIH0KWCAK
WC1zdGF0aWMKWCsvKiBQTiBzdGF0aWMgKi8KWCBpbml0Y29sb3JzKGdyYXBo
KQpYICAgICBHUkFQSCAqZ3JhcGg7ClggewpYQEAgLTgwNSwxMSArODA4LDEz
IEBAClggewpYIApYIAlHUkFQSCAqZ3JhcGggPSAoR1JBUEggKikgY2xpZW50
X2RhdGE7ClgrCVdpZGdldCB3OwpYIApYIAkvKiBJcGxvdHMgYXJlIGRvbmUg
YXN5bmNocm9ub3VzbHkgKi8KWCAJREVWREVQKGdyYXBoKS5pc29wZW4gPSAw
OwpYKwl3ID0gREVWREVQKGdyYXBoKS5zaGVsbDsKWCAJRGVzdHJveUdyYXBo
KGdyYXBoLT5ncmFwaGlkKTsKWC0JWHREZXN0cm95V2lkZ2V0KERFVkRFUChn
cmFwaCkuc2hlbGwpOwpYKwlYdERlc3Ryb3lXaWRnZXQodyk7ClggClggfQpY
IApYQEAgLTk0NSw3ICs5NTAsOCBAQApYIAkgICAgICAgICAgICAxIDw8IENv
bm5lY3Rpb25OdW1iZXIoZGlzcGxheSk7ClggClggCSAgICAgIC8qIGJsb2Nr
IG9uIENvbm5lY3Rpb25OdW1iZXIgYW5kIHJlcXVlc3QtPmZwICovClgtCSAg
ICAgIHNlbGVjdChuZmRzICsgMSwgJnJlYWRmZHMsIChpbnQgKikgTlVMTCwg
KGludCAqKSBOVUxMLCBOVUxMKTsKWCsJICAgICAgLyogUE4gYWRkZWQgZmRf
c2V0ICogY2FzdGluZyAqLwpYKwkgICAgICBzZWxlY3QobmZkcyArIDEsIChm
ZF9zZXQgKikgJnJlYWRmZHMsIChmZF9zZXQgKikgTlVMTCwgKGZkX3NldCAq
KSBOVUxMLCBOVUxMKTsKWCAKWCAJICAgICAgLyogaGFuZGxlIFggZXZlbnRz
IGZpcnN0ICovClggCSAgICAgIGlmIChyZWFkZmRzICYgKDEgPDwgQ29ubmVj
dGlvbk51bWJlcihkaXNwbGF5KSkpIHsKWEBAIC05OTgsNyArMTAwNCw4IEBA
ClggClggfQpYIApYLXN0YXRpYyBYX1NjcmVlbnRvRGF0YShncmFwaCwgeCwg
eSwgZngsIGZ5KQpYKy8qIFBOIHN0YXRpYyAqLyAKWCtYX1NjcmVlbnRvRGF0
YShncmFwaCwgeCwgeSwgZngsIGZ5KQpYIEdSQVBIICpncmFwaDsKWCBpbnQg
eCx5OwpYIGRvdWJsZSAqZngsICpmeTsKRU5ELW9mLXNwaWNlL2ZpbGVzL3Bh
dGNoLXNyY19saWJfZnRlX3gxMV9jCmVjaG8geCAtIHNwaWNlL2ZpbGVzL3Bh
dGNoLWxldmVsMQpzZWQgJ3MvXlgvLycgPnNwaWNlL2ZpbGVzL3BhdGNoLWxl
dmVsMSA8PCAnRU5ELW9mLXNwaWNlL2ZpbGVzL3BhdGNoLWxldmVsMScKWCMg
IHNwaWNlM2Y0LzNmNSBwYXRjaCBsZXZlbCAxClgjICBKdW5lIDIyLCAxOTk0
ClgjICBBbnRob255IFBhcmtlciAodG9ueXBAbXBjZS5tcS5lZHUuYXUpClgj
ICBNYWNxdWFyaWUgVW5pdmVyc2l0eSwgU3lkbmV5IEF1c3RyYWxpYSAyMTA5
IApYIwpYLS0tIHNyYy9saWIvZGV2L21vczYvbW9zNml0Zi5oLm9yaWcJTW9u
IFNlcCAyOCAwMzoyNToyMiAxOTkyClgrKysgc3JjL2xpYi9kZXYvbW9zNi9t
b3M2aXRmLmgJVGh1IEp1bCAxNyAwMDoyMTozMyAyMDAzClhAQCAtNDYsMTMg
KzQ2LDggQEAKWCAgICAgTlVMTCwgLyogTU9TNmFjTG9hZCwgWFhYICovClgg
ICAgIE5VTEwsClggICAgIE1PUzZkZXN0cm95LApYLSNpZmRlZiBERUxFVEVT
ClgtICAgIE1PUzZtRGVsZXRlLApYLSAgICBNT1M2ZGVsZXRlLApYLSNlbHNl
IC8qIERFTEVURVMgKi8KWC0gICAgTlVMTCwKWC0gICAgTlVMTCwKWC0jZW5k
aWYgLyogREVMRVRFUyAqLwpYKyAgICBOVUxMLCAvKiBERUxFVEVTICovClgr
ICAgIE5VTEwsLyogREVMRVRFUyAqLwpYICAgICBNT1M2Z2V0aWMsClggICAg
IE1PUzZhc2ssClggICAgIE1PUzZtQXNrLApFTkQtb2Ytc3BpY2UvZmlsZXMv
cGF0Y2gtbGV2ZWwxCmVjaG8geCAtIHNwaWNlL2ZpbGVzL3BhdGNoLXNyY19s
aWJfZnRlX2NwaXRmX2MKc2VkICdzL15YLy8nID5zcGljZS9maWxlcy9wYXRj
aC1zcmNfbGliX2Z0ZV9jcGl0Zl9jIDw8ICdFTkQtb2Ytc3BpY2UvZmlsZXMv
cGF0Y2gtc3JjX2xpYl9mdGVfY3BpdGZfYycKWC0tLSBzcmMvbGliL2Z0ZS9j
cGl0Zi5jLm9yaWcJVHVlIE1hciAzMCAxNjo1NTo0MiAxOTkzClgrKysgc3Jj
L2xpYi9mdGUvY3BpdGYuYwlUaHUgSnVsIDE3IDAwOjQ3OjUwIDIwMDMKWEBA
IC0yMTIsNyArMjEyLDkgQEAKWCAJCWNwX2ludGVyYWN0aXZlID0gZmFsc2U7
ClggCQlpbnBfc3Bzb3VyY2UoZnAsIHRydWUsIGJ1Zik7ClggCQljcF9pbnRl
cmFjdGl2ZSA9IHRydWU7ClgtCQkodm9pZCkgZmNsb3NlKGZwKTsKWCsgICAg
ICAgICAgICAgICAgLyogdGhlIGZvbGxvd2luZyBjYXVzZWQgbWUgU0lHU0VH
VidzIHNpbmNlIGlucF9zcHNvdXJjZQpYKyAgICAgICAgICAgICAgICAgICBh
bHJlYWR5IGNsb3NlcyBmcCAtIEEuIFZlbGlhdGggMTIvNy85NyAqLwpYKwkJ
LyogKHZvaWQpIGZjbG9zZShmcCk7ICovClggCQlmb3VuZCA9IHRydWU7Clgg
CQlicmVhazsKWCAJICAgIH0gZWxzZSBpZiAoZnRfY29udHJvbGRiKQpFTkQt
b2Ytc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9mdGVfY3BpdGZfYwplY2hv
IHggLSBzcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9kaW1lbnNfYwpz
ZWQgJ3MvXlgvLycgPnNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX2Rp
bWVuc19jIDw8ICdFTkQtb2Ytc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9m
dGVfZGltZW5zX2MnClgtLS0gc3JjL2xpYi9mdGUvZGltZW5zLmMub3JpZwlT
dW4gQXByIDI1IDE4OjAzOjE5IDE5OTMKWCsrKyBzcmMvbGliL2Z0ZS9kaW1l
bnMuYwlUaHUgU2VwIDMwIDEwOjAyOjEwIDE5OTkKWEBAIC0yMSw5ICsyMSwy
MSBAQApYIHsKWCAgICAgaW50IGk7ClgtICAgIGNoYXIgYnVmW0JTSVpFX1NQ
XTsKWCsgICAgY2hhciAqYnVmOwpYKyAgICBpZiAoIChidWYgPSAoY2hhciAq
KSBtYWxsb2MoQlNJWkVfU1Aqc2l6ZW9mKGNoYXIpKSkgPT0gTlVMTCkKWCsg
ICAgewpYKyAgICAgIGZwcmludGYoc3RkZXJyLCJsaWI6ZnRlOmRpbW5zOmRp
bXN0cmluZzogIG1hbGxvYyBmYWlsZWRcbiIpOwpYKyAgICAgIGV4aXQoMSk7
ClgrICAgIH0KWCAKWCAgICAgaWYgKCFkYXRhIHx8IGxlbmd0aCA8IDEpClgg
CXJldHVybiBOVUxMOwpYIApYKyAgICBpZiAobGVuZ3RoID4gQlNJWkVfU1Ap
ClgrICAgIHsKWCsgICAgICBmcHJpbnRmKHN0ZGVyciwiV0FSTklORywgbGli
OmZ0ZTpkaW1uczpkaW1zdHJpbmc6IGxlbmd0aD0lZCA+IEJTSVpFX1NQPSVk
XG4iLApYKwlsZW5ndGgsQlNJWkVfU1ApOwpYKyAgICAgIGxlbmd0aCA9IEJT
SVpFX1NQOwpYKyAgICB9ClgrClggICAgIGJ1ZlswXSA9ICdcMCc7ClggICAg
IGZvciAoaT0wOyBpIDwgbGVuZ3RoOyBpKyspIHsKWEBAIC0zMSw1ICs0Myw1
IEBAClggCSAgICAoaSA8IGxlbmd0aCAtIDEpID8gIiwiIDogIiIpOwpYICAg
ICB9ClgtICAgIC8qIFhYWCBTaG91bGQgSSByZXR1cm4gYSBjb3B5IGluc3Rl
YWQ/ICovClgrICAgIApYICAgICByZXR1cm4oYnVmKTsKWCB9ClhAQCAtNDQs
OCArNTYsMjEgQEAKWCB7ClggICAgIGludCBpOwpYLSAgICBjaGFyIGJ1ZltC
U0laRV9TUF07ClgrICAgIGNoYXIgKmJ1ZjsgICAgICAgICAgClgrClgrICAg
IGlmICggKGJ1ZiA9IChjaGFyICopIG1hbGxvYyhCU0laRV9TUCpzaXplb2Yo
Y2hhcikpKSA9PSBOVUxMKQpYKyAgICB7ClgrICAgICAgZnByaW50ZihzdGRl
cnIsImxpYjpmdGU6ZGltbnM6aW5kZXhzdHJpbmc6ICBtYWxsb2MgZmFpbGVk
XG4iKTsKWCsgICAgICBleGl0KDEpOwpYKyAgICB9ClggClggICAgIGlmICgh
ZGF0YSB8fCBsZW5ndGggPCAxKQpYIAlyZXR1cm4gTlVMTDsKWCsKWCsgICAg
aWYgKGxlbmd0aCA+IEJTSVpFX1NQKQpYKyAgICB7ClgrICAgICAgZnByaW50
ZihzdGRlcnIsIldBUk5JTkcsIGxpYjpmdGU6ZGltbnM6aW5kZXhzdHJpbmc6
IGxlbmd0aD0lZCA+IEJTSVpFX1NQPSVkXG4iLApYKyAgICAgICAgbGVuZ3Ro
LEJTSVpFX1NQKTsKWCsgICAgICBsZW5ndGggPSBCU0laRV9TUDsKWCsgICAg
fQpYIApYICAgICBidWZbMF0gPSAnXDAnOwpFTkQtb2Ytc3BpY2UvZmlsZXMv
cGF0Y2gtc3JjX2xpYl9mdGVfZGltZW5zX2MKZWNobyB4IC0gc3BpY2UvZmls
ZXMvcGF0Y2gtc3JjX2xpYl9mdGVfYXNwaWNlX2MKc2VkICdzL15YLy8nID5z
cGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9hc3BpY2VfYyA8PCAnRU5E
LW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX2FzcGljZV9jJwpY
LS0tIHNyYy9saWIvZnRlL2FzcGljZS5jLm9yaWcJU3VuIEFwciAyNSAyMDo1
Nzo1NSAxOTkzClgrKysgc3JjL2xpYi9mdGUvYXNwaWNlLmMJVGh1IFNlcCAz
MCAxMTo0Mjo0MCAxOTk5ClhAQCAtMTc1LDQgKzE3NSwxMCBAQApYICAgICBG
SUxFICpmcDsKWCAgICAgaW50IHBpZDsKWCsjaWZkZWYgSEFTX0lOVFdBSVRT
VEFUVVMKWCsgICAgaW50IHN0YXR1czsKWCsjZWxzZQpYKyAgICB1bmlvbiB3
YWl0IHN0YXR1czsKWCsjZW5kaWYKWCsKWCAgICAgc3RhdGljIGJvb2wgaGVy
ZSA9IGZhbHNlOyAgIC8qIERvbid0IHdhbnQgdG8gYmUgcmUtZW50cmFudC4g
Ki8KWCAKWEBAIC0xODMsNSArMTg5LDUgQEAKWCAKWCAgICAgd2hpbGUgKG51
bWNoYW5nZWQgPiAwKSB7ClgtICAgICAgICBwaWQgPSB3YWl0KCh1bmlvbiB3
YWl0ICopIE5VTEwpOwpYKyAgICAgICAgcGlkID0gd2FpdCgmc3RhdHVzKTsK
WCAgICAgICAgIGlmIChwaWQgPT0gLTEpIHsKWCAgICAgICAgICAgICBmcHJp
bnRmKGNwX2VyciwgCkVORC1vZi1zcGljZS9maWxlcy9wYXRjaC1zcmNfbGli
X2Z0ZV9hc3BpY2VfYwplY2hvIHggLSBzcGljZS9maWxlcy9wYXRjaC1zcmNf
bGliX2Z0ZV9ncmFmX2MKc2VkICdzL15YLy8nID5zcGljZS9maWxlcy9wYXRj
aC1zcmNfbGliX2Z0ZV9ncmFmX2MgPDwgJ0VORC1vZi1zcGljZS9maWxlcy9w
YXRjaC1zcmNfbGliX2Z0ZV9ncmFmX2MnClgtLS0gc3JjL2xpYi9mdGUvZ3Jh
Zi5jLm9yaWcJVHVlIEphbiAgNSAxNjo0Mzo0NCAxOTkzClgrKysgc3JjL2xp
Yi9mdGUvZ3JhZi5jCVRodSBKdWwgMTcgMTI6MTY6NDIgMjAwMwpYQEAgLTI4
OSw5ICsyODksMTEgQEAKWCAJCWlmICgqdGljcyA9PSAoZG91YmxlKSBucCkg
ewpYIAkJICAgIFRleHQoIngiLCAoaW50KSAodG94IC0gY3VycmVudGdyYXBo
LT5mb250d2lkdGggLyAyKSwKWCAJCQkoaW50KSAodG95IC0gY3VycmVudGdy
YXBoLT5mb250aGVpZ2h0IC8gMikpOwpYLQkJICAgIFNhdmVUZXh0KGN1cnJl
bnRncmFwaCwgIngiLApYKwkgICAgICAgLyogZ3JfcmVkcmF3IHdpbGwgcmVk
cmF3IHRoaXMgdy9vIG91ciBoYXZpbmcgdG8gc2F2ZSBpdApYKyAgICAgICAg
ICAgICAgICAgIEd1ZW50aGVyIFJvZWhyaWNoIDIyLUphbi05OSAqLyAKWCsJ
ICAgICAgIC8qICAgU2F2ZVRleHQoY3VycmVudGdyYXBoLCAieCIsClggCQkJ
KGludCkgKHRveCAtIGN1cnJlbnRncmFwaC0+Zm9udHdpZHRoIC8gMiksClgt
CQkJKGludCkgKHRveSAtIGN1cnJlbnRncmFwaC0+Zm9udGhlaWdodCAvIDIp
KTsKWCsJCQkoaW50KSAodG95IC0gY3VycmVudGdyYXBoLT5mb250aGVpZ2h0
IC8gMikpOyAqLwpYIAkJICAgIGJyZWFrOwpYIAkJfQpYIAkgICAgfQpYQEAg
LTMwMSw5ICszMDMsMTEgQEAKWCAJICAgIC8qIERyYXcgYW4gJ3gnICovClgg
CSAgICBUZXh0KCJ4IiwgKGludCkgKHRveCAtIGN1cnJlbnRncmFwaC0+Zm9u
dHdpZHRoIC8gMiksClggCQkoaW50KSAodG95IC0gY3VycmVudGdyYXBoLT5m
b250aGVpZ2h0IC8gMikpOwpYLQkgICAgU2F2ZVRleHQoY3VycmVudGdyYXBo
LCAieCIsClgrICAgICAgICAgIC8qIGdyX3JlZHJhdyB3aWxsIHJlZHJhdyB0
aGlzIHcvbyBvdXIgaGF2aW5nIHRvIHNhdmUgaXQKWCsgICAgICAgICAgICAg
ICAgICBHdWVudGhlciBSb2VocmljaCAyMi1KYW4tOTkgKi8gClgrCSAgLyog
U2F2ZVRleHQoY3VycmVudGdyYXBoLCAieCIsClggCQkoaW50KSAodG94IC0g
Y3VycmVudGdyYXBoLT5mb250d2lkdGggLyAyKSwKWC0JCShpbnQpICh0b3kg
LSBjdXJyZW50Z3JhcGgtPmZvbnRoZWlnaHQgLyAyKSk7ClgrCQkoaW50KSAo
dG95IC0gY3VycmVudGdyYXBoLT5mb250aGVpZ2h0IC8gMikpOyAqLwpYIAl9
ClggICAgICAgICBicmVhazsKWCAgICAgICBjYXNlIFBMT1RfQ09NQjoKRU5E
LW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX2dyYWZfYwplY2hv
IHggLSBzcGljZS9maWxlcy9wYXRjaC1zcmNfaW5jbHVkZV9wYXRjaGxldl9o
CnNlZCAncy9eWC8vJyA+c3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2luY2x1ZGVf
cGF0Y2hsZXZfaCA8PCAnRU5ELW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19p
bmNsdWRlX3BhdGNobGV2X2gnClgtLS0gc3JjL2luY2x1ZGUvcGF0Y2hsZXYu
aC5vcmlnCVRodSBKdWwgMjkgMDU6MzA6MzAgMTk5MwpYKysrIHNyYy9pbmNs
dWRlL3BhdGNobGV2LmgJVGh1IEp1bCAxNyAwMDoyMTozMyAyMDAzClhAQCAt
MSArMSBAQApYLSNkZWZpbmUgUEFUQ0hMRVZFTAkwClgrI2RlZmluZSBQQVRD
SExFVkVMCTIKRU5ELW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19pbmNsdWRl
X3BhdGNobGV2X2gKZWNobyB4IC0gc3BpY2UvZmlsZXMvcGF0Y2gtbGV2ZWwy
CnNlZCAncy9eWC8vJyA+c3BpY2UvZmlsZXMvcGF0Y2gtbGV2ZWwyIDw8ICdF
TkQtb2Ytc3BpY2UvZmlsZXMvcGF0Y2gtbGV2ZWwyJwpYIyAgc3BpY2UzZjQv
M2Y1IHBhdGNoIGxldmVsIDIKWCMgIEFkZHMgc3BlYyBjb21tYW5kIGZvciBz
cGVjdHJ1bSBhbmFseXNpcyB1c2luZyBERlQKWCMgIEp1bHkgMTEsIDE5OTQK
WCMgIEFudGhvbnkgUGFya2VyICh0b255cEBtcGNlLm1xLmVkdS5hdSkKWCMg
IE1hY3F1YXJpZSBVbml2ZXJzaXR5LCBTeWRuZXkgQXVzdHJhbGlhIDIxMDkg
ClgjClhkaWZmIC1ydU4gc3JjLm9yaWcvaW5jbHVkZS9mdGVleHQuaCBzcmMv
aW5jbHVkZS9mdGVleHQuaApYLS0tIHNyYy5vcmlnL2luY2x1ZGUvZnRlZXh0
LmgJVHVlIEp1bCAyNyAxNDo1MToxOCAxOTkzClgrKysgc3JjL2luY2x1ZGUv
ZnRlZXh0LmgJU3VuIE1heSAxOCAxMzoyNTo1MiAyMDAzClhAQCAtMjA4LDYg
KzIwOCwxMCBAQApYIApYIGV4dGVybiB2b2lkIGNvbV9mb3VyaWVyKCk7Clgg
ClgrLyogc3BlYy5jICovClgrClgrZXh0ZXJuIHZvaWQgY29tX3NwZWMoKTsK
WCsKWCAvKiBnaW50ZXJmYWNlLmMgKi8KWCAKWCBleHRlcm4gYm9vbCBnaV9p
bml0KCk7ClhkaWZmIC1ydU4gc3JjLm9yaWcvbGliL2Z0ZS9tYWtlZGVmcyBz
cmMvbGliL2Z0ZS9tYWtlZGVmcwpYLS0tIHNyYy5vcmlnL2xpYi9mdGUvbWFr
ZWRlZnMJTW9uIE1hciAyMiAyMDo1NjoxMCAxOTkzClgrKysgc3JjL2xpYi9m
dGUvbWFrZWRlZnMJU3VuIE1heSAxOCAxMzoyNTo0NCAyMDAzClhAQCAtMTEs
NyArMTEsOCBAQApYIAkJICBwYXJzZS5jIHBsb3Q1LmMgcGxvdGN1cnYuYyBw
b2ludHMuYyBwb3N0Y29tcy5jIHBvc3RzYy5jIFwKWCAJCSAgcmF3ZmlsZS5j
IHJlc291cmNlLmMgcnVuY29tcy5jIHNoeXUuYyBzaWduYWwuYyBzcGNtZHRh
Yi5jIFwKWCAJCSAgc3BpY2VpZi5jIHN1YmNrdC5jIHR5cGVzLmMgdmVjdG9y
cy5jIHdoZXJlLmMgeDEwLmMgeDExLmMgXApYLQkJICBnZW5zLmMgbmV3Y29t
cy5jIGRpbWVucy5jIHhncmFwaC5jIHJ1bmNvbXMyLmMgYnJlYWtwMi5jClgr
CQkgIGdlbnMuYyBuZXdjb21zLmMgZGltZW5zLmMgeGdyYXBoLmMgcnVuY29t
czIuYyBicmVha3AyLmMgXApYKyAgICAgICAgICAgICAgICAgIHNwZWMuYwpY
IApYIENPQkpTCQk9IGFncmFmLm8gYXJnLm8gYXNwaWNlLm8gYnJlYWtwLm8g
Y2lyY3VpdHMubyBjbGlwLm8gY21hdGgxLm8gXApYIAkJICBjbWF0aDIubyBj
bWF0aDMubyBjbWF0aDQubyBjb21wb3NlLm8gY3BpdGYubyBkZWJ1Z2NvbS5v
IFwKWEBAIC0yMiw3ICsyMyw4IEBAClggCQkgIHBhcnNlLm8gcGxvdDUubyBw
bG90Y3Vydi5vIHBvaW50cy5vIHBvc3Rjb21zLm8gcG9zdHNjLm8gXApYIAkJ
ICByYXdmaWxlLm8gcmVzb3VyY2UubyBydW5jb21zLm8gc2h5dS5vIHNpZ25h
bC5vIHNwY21kdGFiLm8gXApYIAkJICBzcGljZWlmLm8gc3ViY2t0Lm8gdHlw
ZXMubyB2ZWN0b3JzLm8gd2hlcmUubyB4MTAubyB4MTEubyBcClgtCQkgIGdl
bnMubyBuZXdjb21zLm8gZGltZW5zLm8geGdyYXBoLm8gcnVuY29tczIubyBi
cmVha3AyLm8KWCsJCSAgZ2Vucy5vIG5ld2NvbXMubyBkaW1lbnMubyB4Z3Jh
cGgubyBydW5jb21zMi5vIGJyZWFrcDIubyBcClgrICAgICAgICAgICAgICAg
ICAgc3BlYy5vClggClggTElCUkFSWQkJPSBmdGUKWCBMSUJfVEFSR0VUCT0g
JChPQkpMSUJfRElSKS8kKExJQlJBUlkpLmEKWEBAIC05MiwzICs5NCw0IEBA
ClggeGdyYXBoLm86IHhncmFwaC5jClggcnVuY29tczIubzogcnVuY29tczIu
YwpYIGJyZWFrcDIubzogYnJlYWtwMi5jClgrc3BlYy5vOiBzcGVjLmMKWGRp
ZmYgLXJ1TiBzcmMub3JpZy9saWIvZnRlL21zYzUxLmJhdCBzcmMvbGliL2Z0
ZS9tc2M1MS5iYXQKWC0tLSBzcmMub3JpZy9saWIvZnRlL21zYzUxLmJhdAlG
cmkgSnVsIDMwIDA0OjI2OjQ0IDE5OTMKWCsrKyBzcmMvbGliL2Z0ZS9tc2M1
MS5iYXQJU3VuIE1heSAxOCAxMzoyNTo0NCAyMDAzClhAQCAtNjEsNCArNjEs
NSBAQApYIGNsIC9JLi5cLi5caW5jbHVkZSAvYyB4Z3JhcGguYyA+PiAuLlwu
Llxtc2Mub3V0ClggY2wgL0kuLlwuLlxpbmNsdWRlIC9jIHJ1bmNvbXMyLmMg
Pj4gLi5cLi5cbXNjLm91dApYIGNsIC9JLi5cLi5caW5jbHVkZSAvYyBicmVh
a3AyLmMgPj4gLi5cLi5cbXNjLm91dApYK2NsIC9JLi5cLi5caW5jbHVkZSAv
YyBzcGVjLmMgPj4gLi5cLi5cbXNjLm91dApYIGxpYiAuLlxmdGUubGliIEBy
ZXNwb25zZS5saWIgPj4gLi5cLi5cbXNjLm91dApYZGlmZiAtcnVOIHNyYy5v
cmlnL2xpYi9mdGUvcmVzcG9uc2UubGliIHNyYy9saWIvZnRlL3Jlc3BvbnNl
LmxpYgpYLS0tIHNyYy5vcmlnL2xpYi9mdGUvcmVzcG9uc2UubGliCUZyaSBK
dWwgMzAgMDQ6MjY6NDUgMTk5MwpYKysrIHNyYy9saWIvZnRlL3Jlc3BvbnNl
LmxpYglTdW4gTWF5IDE4IDEzOjI1OjQ0IDIwMDMKWEBAIC01OSw0ICs1OSw1
IEBAClggK2RpbWVucy5vYmomClggK3hncmFwaC5vYmomClggK3J1bmNvbXMy
Lm9iaiYKWCsrc3BlYy5vYmomClggK2JyZWFrcDIub2JqOwpYZGlmZiAtcnVO
IHNyYy5vcmlnL2xpYi9mdGUvc3BjbWR0YWIuYyBzcmMvbGliL2Z0ZS9zcGNt
ZHRhYi5jClgtLS0gc3JjLm9yaWcvbGliL2Z0ZS9zcGNtZHRhYi5jCVRodSBK
dWwgMjkgMjA6NDk6MzMgMTk5MwpYKysrIHNyYy9saWIvZnRlL3NwY21kdGFi
LmMJU3VuIE1heSAxOCAxMzoyNTo0NCAyMDAzClhAQCAtMTYyLDYgKzE2Miwx
MCBAQApYICAgICAgIHsgMCwgMDQwMDAwLCAwNDAwMDAsIDA0MDAwMCB9LCBF
X0RFRkhNQVNLLCAxLCBMT1RTLApYICAgICAgIChpbnQgKCopKCkpIE5VTEws
ClggICAgICAgImZ1bmRfZnJlcSB2ZWN0b3IgLi4uIDogRG8gYSBmb3VyaWVy
IGFuYWx5c2lzIG9mIHNvbWUgZGF0YS4iIH0gLApYKyAgICB7ICJzcGVjIiwg
Y29tX3NwZWMsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwKWCsgICAgICB7IDAsIDAs
IDAsIDAgfSwgRV9ERUZITUFTSywgNCwgTE9UUywKWCsgICAgICAoaW50ICgq
KSgpKSBOVUxMLApYKyAgICAgICJzdGFydF9mcmVxIHN0b3BfZnJlcSBzdGVw
X2ZyZXEgdmVjdG9yIC4uLiA6IENyZWF0ZSBhIGZyZXF1ZW5jeSBkb21haW4g
cGxvdC4iIH0gLApYICAgICB7ICJzaG93IiwgY29tX3Nob3csIGZhbHNlLCB0
cnVlLCBmYWxzZSwKWCAgICAgICB7IDA0MCwgMDQwLCAwNDAsIDA0MCB9LCBF
X0RFRkhNQVNLLCAwLCBMT1RTLApYICAgICAgIChpbnQgKCopKCkpIE5VTEws
ClhkaWZmIC1ydU4gc3JjLm9yaWcvbGliL2Z0ZS9zcGVjLmMgc3JjL2xpYi9m
dGUvc3BlYy5jClgtLS0gc3JjLm9yaWcvbGliL2Z0ZS9zcGVjLmMJV2VkIERl
YyAzMSAxOTowMDowMCAxOTY5ClgrKysgc3JjL2xpYi9mdGUvc3BlYy5jCVN1
biBNYXkgMTggMTM6MjU6NDQgMjAwMwpYQEAgLTAsMCArMSwyODYgQEAKWCsv
KioqKioqKioqKgpYK0NvcHlyaWdodCAxOTk0IE1hY3F1YXJpZSBVbml2ZXJz
aXR5LCBTeWRuZXkgQXVzdHJhbGlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
WCtBdXRob3I6ICAgMTk5NCBBbnRob255IEUuIFBhcmtlciwgRGVwYXJ0bWVu
dCBvZiBFbGVjdHJvbmljcywgTWFjcXVhcmllIFVuaS4KWCsqKioqKioqKioq
LwpYKwpYKy8qClgrICogQ29kZSB0byBkbyBmb3VyaWVyIHRyYW5zZm9ybXMg
b24gZGF0YS4KWCsgKi8KWCsKWCsjaW5jbHVkZSAic3BpY2UuaCIKWCsjaW5j
bHVkZSAiZnRlZGVmcy5oIgpYKyNpbmNsdWRlICJmdGVkYXRhLmgiClgrI2lu
Y2x1ZGUgInV0aWwuaCIKWCsjaW5jbHVkZSAic3VmZml4LmgiClgrClgrdm9p
ZApYK2NvbV9zcGVjKHdsKQpYKyAgICB3b3JkbGlzdCAqd2w7ClgrewpYKyAg
ICBjb21wbGV4ICoqZmR2ZWM7ClgrICAgIGRvdWJsZSAgKip0ZHZlYzsKWCsg
ICAgZG91YmxlICAqZnJlcSwgKndpbiwgKnRpbWUsICpkYzsKWCsgICAgZG91
YmxlICBzdGFydGYsIHN0b3BmLCBzdGVwZiwgc3BhbjsKWCsgICAgaW50ICAg
ICBmcHRzLCBpLCBqLCBrLCB0bGVuLCBuZ29vZDsKWCsgICAgYm9vbCAgICB0
cmFjZTsKWCsgICAgY2hhciAgICAqczsKWCsgICAgc3RydWN0IGR2ZWMgICpm
LCAqdmxpc3QsICpsdiwgKnZlYzsKWCsgICAgc3RydWN0IHBub2RlICpuYW1l
cywgKmZpcnN0X25hbWU7ClgrClgrICAgIGlmICghcGxvdF9jdXIgfHwgIXBs
b3RfY3VyLT5wbF9zY2FsZSkgewpYKyAgICAgICAgZnByaW50ZihjcF9lcnIs
ICJFcnJvcjogbm8gdmVjdG9ycyBsb2FkZWQuXG4iKTsKWCsgICAgICAgIHJl
dHVybjsKWCsgICAgfQpYKyAgICBpZiAoIWlzcmVhbChwbG90X2N1ci0+cGxf
c2NhbGUpIHx8IApYKyAgICAgICAgKChwbG90X2N1ci0+cGxfc2NhbGUpLT52
X3R5cGUgIT0gU1ZfVElNRSkpIHsKWCsgICAgICAgIGZwcmludGYoY3BfZXJy
LCAiRXJyb3I6IHNwZWMgbmVlZHMgcmVhbCB0aW1lIHNjYWxlXG4iKTsKWCsg
ICAgICAgIHJldHVybjsKWCsgICAgfQpYKyAgICBzID0gd2wtPndsX3dvcmQ7
ClgrICAgIHRsZW4gPSAocGxvdF9jdXItPnBsX3NjYWxlKS0+dl9sZW5ndGg7
ClgrICAgIGlmICghKGZyZXEgPSBmdF9udW1wYXJzZSgmcywgZmFsc2UpKSB8
fCAoKmZyZXEgPCAwLjApKSB7ClgrICAgICAgICBmcHJpbnRmKGNwX2Vyciwg
IkVycm9yOiBiYWQgc3RhcnQgZnJlcSAlc1xuIiwgd2wtPndsX3dvcmQpOwpY
KyAgICAgICAgcmV0dXJuOwpYKyAgICB9ClgrICAgIHN0YXJ0ZiA9ICpmcmVx
OwpYKyAgICB3bCA9IHdsLT53bF9uZXh0OwpYKyAgICBzID0gd2wtPndsX3dv
cmQ7ClgrICAgIGlmICghKGZyZXEgPSBmdF9udW1wYXJzZSgmcywgZmFsc2Up
KSB8fCAoKmZyZXEgPD0gc3RhcnRmKSkgewpYKyAgICAgICAgZnByaW50Zihj
cF9lcnIsICJFcnJvcjogYmFkIHN0b3AgZnJlcSAlc1xuIiwgd2wtPndsX3dv
cmQpOwpYKyAgICAgICAgcmV0dXJuOwpYKyAgICB9ClgrICAgIHN0b3BmID0g
KmZyZXE7ClgrICAgIHdsID0gd2wtPndsX25leHQ7ClgrICAgIHMgPSB3bC0+
d2xfd29yZDsKWCsgICAgaWYgKCEoZnJlcSA9IGZ0X251bXBhcnNlKCZzLCBm
YWxzZSkpIHx8ICEoKmZyZXEgPD0gKHN0b3BmLXN0YXJ0ZikpKSB7ClgrICAg
ICAgICBmcHJpbnRmKGNwX2VyciwgIkVycm9yOiBiYWQgc3RlcCBmcmVxICVz
XG4iLCB3bC0+d2xfd29yZCk7ClgrICAgICAgICByZXR1cm47ClgrICAgIH0K
WCsgICAgc3RlcGYgPSAqZnJlcTsKWCsgICAgd2wgPSB3bC0+d2xfbmV4dDsK
WCsgICAgdGltZSA9IChwbG90X2N1ci0+cGxfc2NhbGUpLT52X3JlYWxkYXRh
OwpYKyAgICBzcGFuID0gdGltZVt0bGVuLTFdIC0gdGltZVswXTsKWCsgICAg
aWYgKHN0b3BmID4gMC41KnRsZW4vc3BhbikgewpYKyAgICAgICAgZnByaW50
ZihjcF9lcnIsClgrCSAgIkVycm9yOiBueXF1aXN0IGxpbWl0IGV4Y2VlZGVk
LCB0cnkgc3RvcCBmcmVxIGxlc3MgdGhhbiAlZSBIelxuIiwKWCsJICAgICAg
dGxlbi8yL3NwYW4pOwpYKyAgICAgICAgcmV0dXJuOwpYKyAgICB9ClgrICAg
IHNwYW4gPSAoKGludCkoc3BhbipzdGVwZioxLjAwMDAwMDAwMDAwMSkpL3N0
ZXBmOwpYKyAgICBpZiAoc3BhbiA+IDApIHsKWCsgICAgICAgIHN0YXJ0ZiA9
IChpbnQpKHN0YXJ0Zi9zdGVwZioxLjAwMDAwMDAwMDAwMSkgKiBzdGVwZjsK
WCsgICAgICAgIGZwdHMgPSAoc3RvcGYgLSBzdGFydGYpL3N0ZXBmICsgMTsK
WCsgICAgICAgIGlmIChzdG9wZiA+IHN0YXJ0ZiArIChmcHRzLTEpKnN0ZXBm
KSBmcHRzKys7ClgrICAgIH0gZWxzZSB7ClgrICAgICAgICBmcHJpbnRmKGNw
X2VyciwiRXJyb3I6IHRpbWUgc3BhbiBsaW1pdHMgc3RlcCBmcmVxIHRvICUx
LjFlIEh6XG4iLApYKyAgICAgICAgICAgMS8odGltZVt0bGVuLTFdIC0gdGlt
ZVswXSkpOwpYKyAgICAgICAgcmV0dXJuOwpYKyAgICB9ClgrICAgIHdpbiA9
IChkb3VibGUgKikgdG1hbGxvYyh0bGVuICogc2l6ZW9mIChkb3VibGUpKTsK
WCsgICAgewpYKyAgICAgICBjaGFyICAgd2luZG93W0JTSVpFX1NQXTsKWCsg
ICAgICAgZG91YmxlIG1heHQgPSB0aW1lW3RsZW4tMV07ClgrICAgICAgIGlm
ICghY3BfZ2V0dmFyKCJzcGVjd2luZG93IiwgVlRfU1RSSU5HLCB3aW5kb3cp
KSAKWCsgICAgICAgICAgIHN0cmNweSh3aW5kb3csImhhbm5pbmciKTsKWCsg
ICAgICAgaWYgKGVxKHdpbmRvdywgIm5vbmUiKSkKWCsgICAgICAgICAgZm9y
KGk9MDsgaTx0bGVuOyBpKyspIHsKWCsgICAgICAgICAgICAgd2luW2ldID0g
MTsKWCsgICAgICAgICAgfQpYKyAgICAgICBlbHNlIGlmIChlcSh3aW5kb3cs
ICJyZWN0YW5ndWxhciIpKQpYKyAgICAgICAgICAgZm9yKGk9MDsgaTx0bGVu
OyBpKyspIHsKWCsgICAgICAgICAgICAgaWYgKG1heHQtdGltZVtpXSA+IHNw
YW4pIHsKWCsgICAgICAgICAgICAgICAgd2luW2ldID0gMDsKWCsgICAgICAg
ICAgICAgfSBlbHNlIHsKWCsgICAgICAgICAgICAgICAgd2luW2ldID0gMTsK
WCsgICAgICAgICAgICAgfQpYKyAgICAgICAgICB9ClgrICAgICAgIGVsc2Ug
aWYgKGVxKHdpbmRvdywgImhhbm5pbmciKSB8fCBlcSh3aW5kb3csICJjb3Np
bmUiKSkKWCsgICAgICAgICAgZm9yKGk9MDsgaTx0bGVuOyBpKyspIHsKWCsg
ICAgICAgICAgICAgaWYgKG1heHQtdGltZVtpXSA+IHNwYW4pIHsKWCsgICAg
ICAgICAgICAgICAgd2luW2ldID0gMDsKWCsgICAgICAgICAgICAgfSBlbHNl
IHsKWCsgICAgICAgICAgICAgICAgd2luW2ldID0gMSAtIGNvcygyKk1fUEkq
KHRpbWVbaV0tbWF4dCkvc3Bhbik7ClgrICAgICAgICAgICAgIH0KWCsgICAg
ICAgICAgfQpYKyAgICAgICBlbHNlIGlmIChlcSh3aW5kb3csICJoYW1taW5n
IikpClgrICAgICAgICAgIGZvcihpPTA7IGk8dGxlbjsgaSsrKSB7ClgrICAg
ICAgICAgICAgIGlmIChtYXh0LXRpbWVbaV0gPiBzcGFuKSB7ClgrICAgICAg
ICAgICAgICAgIHdpbltpXSA9IDA7ClgrICAgICAgICAgICAgIH0gZWxzZSB7
ClgrICAgICAgICAgICAgICAgIHdpbltpXSA9IDEgLSAwLjkyLzEuMDgqY29z
KDIqTV9QSSoodGltZVtpXS1tYXh0KS9zcGFuKTsKWCsgICAgICAgICAgICAg
fQpYKyAgICAgICAgICB9ClgrICAgICAgIGVsc2UgaWYgKGVxKHdpbmRvdywg
InRyaWFuZ2xlIikgfHwgZXEod2luZG93LCAiYmFydGxldCIpKQpYKyAgICAg
ICAgICBmb3IoaT0wOyBpPHRsZW47IGkrKykgewpYKyAgICAgICAgICAgICBp
ZiAobWF4dC10aW1lW2ldID4gc3BhbikgewpYKyAgICAgICAgICAgICAgICB3
aW5baV0gPSAwOwpYKyAgICAgICAgICAgICB9IGVsc2UgewpYKyAgICAgICAg
ICAgICAgICB3aW5baV0gPSAyIC0gZmFicygyKzQqKHRpbWVbaV0tbWF4dCkv
c3Bhbik7ClgrICAgICAgICAgICAgIH0KWCsgICAgICAgICAgfQpYKyAgICAg
ICBlbHNlIGlmIChlcSh3aW5kb3csICJibGFja21hbiIpKSB7ClgrICAgICAg
ICAgIGludCBvcmRlcjsKWCsgICAgICAgICAgaWYgKCFjcF9nZXR2YXIoInNw
ZWN3aW5kb3dvcmRlciIsIFZUX05VTSwgJm9yZGVyKSkgb3JkZXIgPSAyOwpY
KyAgICAgICAgICBpZiAob3JkZXIgPCAyKSBvcmRlciA9IDI7ICAvKiBvbmx5
IG9yZGVyIDIgc3VwcG9ydGVkIGhlcmUgKi8KWCsgICAgICAgICAgZm9yKGk9
MDsgaTx0bGVuOyBpKyspIHsKWCsgICAgICAgICAgICAgaWYgKG1heHQtdGlt
ZVtpXSA+IHNwYW4pIHsKWCsgICAgICAgICAgICAgICAgd2luW2ldID0gMDsK
WCsgICAgICAgICAgICAgfSBlbHNlIHsKWCsgICAgICAgICAgICAgICAgd2lu
W2ldICA9IDE7ClgrICAgICAgICAgICAgICAgIHdpbltpXSAtPSAwLjUwLzAu
NDIqY29zKDIqTV9QSSoodGltZVtpXS1tYXh0KS9zcGFuKTsKWCsgICAgICAg
ICAgICAgICAgd2luW2ldICs9IDAuMDgvMC40Mipjb3MoNCpNX1BJKih0aW1l
W2ldLW1heHQpL3NwYW4pOwpYKyAgICAgICAgICAgICB9ClgrICAgICAgICAg
IH0KWCsgICAgICAgfSBlbHNlIGlmIChlcSh3aW5kb3csICJnYXVzc2lhbiIp
KSB7ClgrICAgICAgICAgIGludCBvcmRlcjsKWCsgICAgICAgICAgZG91Ymxl
IHNjYWxlOwpYKyAgICAgICAgICBleHRlcm4gZG91YmxlIGVyZmMoKTsKWCsg
ICAgICAgICAgaWYgKCFjcF9nZXR2YXIoInNwZWN3aW5kb3dvcmRlciIsIFZU
X05VTSwgJm9yZGVyKSkgb3JkZXIgPSAyOwpYKyAgICAgICAgICBpZiAob3Jk
ZXIgPCAyKSBvcmRlciA9IDI7ClgrICAgICAgICAgIHNjYWxlID0gcG93KDIq
TV9QSS9vcmRlciwwLjUpKigwLjUtZXJmYyhwb3cob3JkZXIsMC41KSkpOwpY
KyAgICAgICAgICBmb3IoaT0wOyBpPHRsZW47IGkrKykgewpYKyAgICAgICAg
ICAgICBpZiAobWF4dC10aW1lW2ldID4gc3BhbikgewpYKyAgICAgICAgICAg
ICAgICB3aW5baV0gPSAwOwpYKyAgICAgICAgICAgICB9IGVsc2UgewpYKyAg
ICAgICAgICAgICAgICB3aW5baV0gPSBleHAoLTAuNSpvcmRlciooMS0yKiht
YXh0LXRpbWVbaV0pL3NwYW4pClgrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKigxLTIqKG1heHQtdGltZVtpXSkvc3BhbikpL3Nj
YWxlOwpYKyAgICAgICAgICAgICB9ClgrICAgICAgICAgIH0KWCsJICAgfSBl
bHNlIHsKWCsgICAgICAgICAgZnByaW50ZihjcF9lcnIsICJXYXJuaW5nOiB1
bmtub3duIHdpbmRvdyB0eXBlICVzXG4iLCB3aW5kb3cpOwpYKyAgICAgICAg
ICB0ZnJlZSh3aW4pOwpYKyAgICAgICAgICByZXR1cm47ClgrICAgICAgIH0K
WCsgICAgfQpYKyAgICAKWCsgICAgbmFtZXMgPSBmdF9nZXRwbmFtZXMod2ws
IHRydWUpOwpYKyAgICBmaXJzdF9uYW1lID0gbmFtZXM7ClgrICAgIHZsaXN0
ID0gTlVMTDsKWCsgICAgbmdvb2QgPSAwOwpYKyAgICB3aGlsZSAobmFtZXMp
IHsKWCsgICAgICAgIHZlYyA9IGZ0X2V2YWx1YXRlKG5hbWVzKTsKWCsgICAg
ICAgIG5hbWVzID0gbmFtZXMtPnBuX25leHQ7ClgrICAgICAgICB3aGlsZSAo
dmVjKSB7ClgrICAgICAgICAgICAgaWYgKHZlYy0+dl9sZW5ndGggIT0gdGxl
bikgewpYKyAgICAgICAgICAgICAgICBmcHJpbnRmKGNwX2VyciwgIkVycm9y
OiBsZW5ndGhzIGRvbid0IG1hdGNoOiAlZCwgJWRcbiIsClgrICAgICAgICAg
ICAgICAgICAgICAgICAgdmVjLT52X2xlbmd0aCwgdGxlbik7ClgrICAgICAg
ICAgICAgICAgIHZlYyA9IHZlYy0+dl9saW5rMjsKWCsgICAgICAgICAgICAg
ICAgY29udGludWU7ClgrICAgICAgICAgICAgfQpYKyAgICAgICAgICAgIGlm
ICghaXNyZWFsKHZlYykpIHsKWCsgICAgICAgICAgICAgICAgZnByaW50Zihj
cF9lcnIsICJFcnJvcjogJXMgaXNuJ3QgcmVhbCFcbiIsIApYKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZlYy0+dl9uYW1lKTsKWCsgICAgICAgICAgICAg
ICAgdmVjID0gdmVjLT52X2xpbmsyOwpYKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKWCsgICAgICAgICAgICB9ClgrICAgICAgICAgICAgaWYgKHZlYy0+
dl90eXBlID09IFNWX1RJTUUpIHsKWCsgICAgICAgICAgICAgICAgdmVjID0g
dmVjLT52X2xpbmsyOwpYKyAgICAgICAgICAgICAgICBjb250aW51ZTsKWCsg
ICAgICAgICAgICB9ClgrCSAgICAgICAgaWYgKCF2bGlzdCkKWCsJICAgICAg
ICAgICB2bGlzdCA9IHZlYzsKWCsJICAgICAgICBlbHNlClgrCSAgICAgICAg
ICAgbHYtPnZfbGluazIgPSB2ZWM7ClgrICAgICAgICAgICAgbHYgPSB2ZWM7
ClgrICAgICAgICAgICAgdmVjID0gdmVjLT52X2xpbmsyOwpYKyAgICAgICAg
ICAgIG5nb29kKys7ClgrICAgICAgICB9ClgrICAgIH0KWCsgICAgZnJlZV9w
bm9kZShmaXJzdF9uYW1lKTsKWCsgICAgaWYgKCFuZ29vZCkgewpYKyAgICAg
ICB0ZnJlZSh3aW4pOwpYKyAgICAgICByZXR1cm47ClgrICAgIH0KWCsgClgr
ICAgIHBsb3RfY3VyID0gcGxvdF9hbGxvYygic3BlY3RydW0iKTsKWCsgICAg
cGxvdF9jdXItPnBsX25leHQgPSBwbG90X2xpc3Q7ClgrICAgIHBsb3RfbGlz
dCA9IHBsb3RfY3VyOwpYKyAgICBwbG90X2N1ci0+cGxfdGl0bGUgPSBjb3B5
KChwbG90X2N1ci0+cGxfbmV4dCktPnBsX3RpdGxlKTsKWCsgICAgcGxvdF9j
dXItPnBsX25hbWUgPSBjb3B5KCJTcGVjdHJ1bSIpOwpYKyAgICBwbG90X2N1
ci0+cGxfZGF0ZSA9IGNvcHkoZGF0ZXN0cmluZyggKSk7ClgrClgrICAgIGZy
ZXEgPSAoZG91YmxlICopIHRtYWxsb2MoZnB0cyAqIHNpemVvZihkb3VibGUp
KTsKWCsgICAgZiA9IGFsbG9jKHN0cnVjdCBkdmVjKTsKWCsgICAgWkVSTyhm
LCBzdHJ1Y3QgZHZlYyk7ClgrICAgIGYtPnZfbmFtZSA9IGNvcHkoImZyZXF1
ZW5jeSIpOwpYKyAgICBmLT52X3R5cGUgPSBTVl9GUkVRVUVOQ1k7ClgrICAg
IGYtPnZfZmxhZ3MgPSAoVkZfUkVBTCB8IFZGX1BFUk1BTkVOVCB8IFZGX1BS
SU5UKTsKWCsgICAgZi0+dl9sZW5ndGggPSBmcHRzOwpYKyAgICBmLT52X3Jl
YWxkYXRhID0gZnJlcTsKWCsgICAgdmVjX25ldyhmKTsKWCsKWCsgICAgdGR2
ZWMgPSAoZG91YmxlICAqKikgdG1hbGxvYyhuZ29vZCAqIHNpemVvZihkb3Vi
bGUgICopKTsKWCsgICAgZmR2ZWMgPSAoY29tcGxleCAqKikgdG1hbGxvYyhu
Z29vZCAqIHNpemVvZihjb21wbGV4ICopKTsKWCsgICAgZm9yIChpID0gMCwg
dmVjID0gdmxpc3Q7IGk8bmdvb2Q7IGkrKykgewpYKyAgICAgICB0ZHZlY1tp
XSA9IHZlYy0+dl9yZWFsZGF0YTsKWCsgICAgICAgZmR2ZWNbaV0gPSAoY29t
cGxleCAqKSB0bWFsbG9jKGZwdHMgKiBzaXplb2YoY29tcGxleCkpOwpYKyAg
ICAgICBmID0gYWxsb2Moc3RydWN0IGR2ZWMpOwpYKyAgICAgICBaRVJPKGYs
IHN0cnVjdCBkdmVjKTsKWCsgICAgICAgZi0+dl9uYW1lID0gdmVjX2Jhc2Vu
YW1lKHZlYyk7ClgrICAgICAgIGYtPnZfdHlwZSA9IHZlYy0+dl90eXBlOwpY
KyAgICAgICBmLT52X2ZsYWdzID0gKFZGX0NPTVBMRVggfCBWRl9QRVJNQU5F
TlQpOwpYKyAgICAgICBmLT52X2xlbmd0aCA9IGZwdHM7ClgrICAgICAgIGYt
PnZfY29tcGRhdGEgPSBmZHZlY1tpXTsKWCsgICAgICAgdmVjX25ldyhmKTsK
WCsgICAgICAgdmVjID0gdmVjLT52X2xpbmsyOwpYKyAgICB9ClgrClgrICAg
IGRjID0gKGRvdWJsZSAgKikgdG1hbGxvYyhuZ29vZCAqIHNpemVvZihkb3Vi
bGUpKTsKWCsgICAgZm9yIChpID0gMDsgaTxuZ29vZDsgaSsrKSB7ClgrICAg
ICAgIGRjW2ldID0gMDsKWCsgICAgfQpYKyAgICBmb3IgKGsgPSAxOyBrPHRs
ZW47IGsrKykgewpYKyAgICAgICBkb3VibGUgYW1wID0gd2luW2tdLyh0bGVu
LTEpOwpYKyAgICAgICBmb3IgKGkgPSAwOyBpPG5nb29kOyBpKyspIHsKWCsJ
ICAgICAgZGNbaV0gKz0gdGR2ZWNbaV1ba10qYW1wOwpYKyAgICAgICB9Clgr
ICAgIH0KWCsgICAgY3BfZ2V0dmFyKCJzcGVjdHJhY2UiLCBWVF9CT09MLCAm
dHJhY2UpOwpYKyAgICBmb3IgKGogPSAoc3RhcnRmPT0wID8gMSA6IDApOyBq
PGZwdHM7IGorKykgewpYKyAgICAgICBmcmVxW2pdID0gc3RhcnRmICsgaipz
dGVwZjsKWCsgICAgICAgaWYodHJhY2UpIGZwcmludGYoY3BfZXJyLCAic3Bl
YzogJWUgSHo6IFxyIixmcmVxW2pdKTsKWCsgICAgICAgZm9yIChpID0gMDsg
aTxuZ29vZDsgaSsrKSB7ClgrCSAgICAgIGZkdmVjW2ldW2pdLmN4X3JlYWwg
PSAwOyAKWCsJICAgICAgZmR2ZWNbaV1bal0uY3hfaW1hZyA9IDA7ClgrICAg
ICAgIH0KWCsgICAgICAgZm9yIChrID0gMTsgazx0bGVuOyBrKyspIHsKWCsg
ICAgICAgICAgZG91YmxlClgrCSAgICAgICBhbXAgPSAyKndpbltrXS8odGxl
bi0xKSwKWCsgICAgICAgICAgIHJhZCA9IDIqTV9QSSp0aW1lW2tdKmZyZXFb
al0sClgrCSAgICAgICBjb3NhID0gYW1wKmNvcyhyYWQpLApYKwkgICAgICAg
c2luYSA9IGFtcCpzaW4ocmFkKTsKWCsgICAgICAgICAgZm9yIChpID0gMDsg
aTxuZ29vZDsgaSsrKSB7ClgrICAgICAgICAgICAgIGRvdWJsZSB2YWx1ZSA9
IHRkdmVjW2ldW2tdLWRjW2ldOwpYKwkgICAgICAgICBmZHZlY1tpXVtqXS5j
eF9yZWFsICs9IHZhbHVlKmNvc2E7ClgrCSAgICAgICAgIGZkdmVjW2ldW2pd
LmN4X2ltYWcgKz0gdmFsdWUqc2luYTsKWCsgICAgICAgICAgfQpYKyAgICAg
ICB9ClgrICAgIH0KWCsgICAgaWYgKHN0YXJ0Zj09MCkgewpYKyAgICAgICBm
cmVxWzBdID0gMDsKWCsgICAgICAgZm9yIChpID0gMDsgaTxuZ29vZDsgaSsr
KSB7ClgrCSAgICAgIGZkdmVjW2ldWzBdLmN4X3JlYWwgPSBkY1tpXTsgClgr
CSAgICAgIGZkdmVjW2ldWzBdLmN4X2ltYWcgPSAwOwpYKyAgICAgICB9Clgr
ICAgIH0KWCsgICAgaWYodHJhY2UpIGZwcmludGYoY3BfZXJyLCAiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXHIiKTsKWCsgICAgdGZyZWUoZGMpOwpY
KyAgICB0ZnJlZSh0ZHZlYyk7ClgrICAgIHRmcmVlKGZkdmVjKTsKWCsKWCsj
aWZkZWYgS0VFUFdJTkRPVwpYKyAgICBmID0gYWxsb2Moc3RydWN0IGR2ZWMp
OwpYKyAgICBaRVJPKGYsIHN0cnVjdCBkdmVjKTsKWCsgICAgZi0+dl9uYW1l
ID0gY29weSgid2luIik7ClgrICAgIGYtPnZfdHlwZSA9IFNWX05PVFlQRTsK
WCsgICAgZi0+dl9mbGFncyA9IChWRl9SRUFMIHwgVkZfUEVSTUFORU5UKTsK
WCsgICAgZi0+dl9sZW5ndGggPSB0bGVuOwpYKyAgICBmLT52X3JlYWxkYXRh
ID0gd2luOwpYKyAgICB2ZWNfbmV3KGYpOwpYKyNlbHNlClgrICAgIHRmcmVl
KHdpbik7ClgrI2VuZGlmClgrCQpYKyAgICByZXR1cm47ClgrfQpYKwpFTkQt
b2Ytc3BpY2UvZmlsZXMvcGF0Y2gtbGV2ZWwyCmVjaG8geCAtIHNwaWNlL2Zp
bGVzL3BhdGNoLXV0aWxfc2tlbGV0b25fbWFrZV9kZWZfYmQKc2VkICdzL15Y
Ly8nID5zcGljZS9maWxlcy9wYXRjaC11dGlsX3NrZWxldG9uX21ha2VfZGVm
X2JkIDw8ICdFTkQtb2Ytc3BpY2UvZmlsZXMvcGF0Y2gtdXRpbF9za2VsZXRv
bl9tYWtlX2RlZl9iZCcKWC0tLSB1dGlsL3NrZWxldG9uL21ha2VfZGVmLmJk
Lm9yaWcJVGh1IEp1bCAyOSAxNjozNToxOCAxOTkzClgrKysgdXRpbC9za2Vs
ZXRvbi9tYWtlX2RlZi5iZAlUaHUgSnVsIDE3IDAwOjQ3OjUxIDIwMDMKWEBA
IC04LDcgKzgsNyBAQApYIFBBVEhfU0VQCT0gLwpYIFBTCQk9IC8KWCBSRVZJ
U0lPTgk9ClgtVkVSU0lPTgkJPSAzZjQKWCtWRVJTSU9OCQk9IDNmNQpYIFZF
UlNJT05fUkVWSVNJT049ICQoVkVSU0lPTikkKFJFVklTSU9OKQpYIE5PVElD
RQkJPQpYIFRPUAkJPSAvcHJvamVjdHMvc3BpY2UzL3NwaWNlJChWRVJTSU9O
KQpFTkQtb2Ytc3BpY2UvZmlsZXMvcGF0Y2gtdXRpbF9za2VsZXRvbl9tYWtl
X2RlZl9iZAplY2hvIHggLSBzcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0
ZV9taXNjY29tc19jCnNlZCAncy9eWC8vJyA+c3BpY2UvZmlsZXMvcGF0Y2gt
c3JjX2xpYl9mdGVfbWlzY2NvbXNfYyA8PCAnRU5ELW9mLXNwaWNlL2ZpbGVz
L3BhdGNoLXNyY19saWJfZnRlX21pc2Njb21zX2MnClgkT3BlbkJTRDogcGF0
Y2gtc3JjX2xpYl9mdGVfbWlzY2NvbXNfYyx2IDEuMSAyMDAzLzA0LzE0IDEw
OjI4OjAzIGF2c20gRXhwICQKWC0tLSBzcmMvbGliL2Z0ZS9taXNjY29tcy5j
Lm9yaWcJTW9uIEFwciAxNCAxMToxOToyNCAyMDAzClgrKysgc3JjL2xpYi9m
dGUvbWlzY2NvbXMuYwlNb24gQXByIDE0IDExOjIxOjAwIDIwMDMKWEBAIC0y
ODYsNyArMjg2LDcgQEAgY29tX3F1aXQod2wpClggICAgICAgICAgICAgZnBy
aW50ZihjcF9vdXQsIApYICAgICAgICAgICAgICAgICAiXG5BcmUgeW91IHN1
cmUgeW91IHdhbnQgdG8gcXVpdCAoeWVzKT8gIik7ClggICAgICAgICAgICAg
KHZvaWQpIGZmbHVzaChjcF9vdXQpOwpYLSAgICAgICAgICAgIGlmICghZmdl
dHMoYnVmLCBCU0laRV9TUCwgc3RkaW4pKSB7ClgrICAgICAgICAgICAgaWYg
KCFmZ2V0cyhidWYsIHNpemVvZiBidWYsIHN0ZGluKSkgewpYICAgICAgICAg
ICAgICAgICBjbGVhcmVycihzdGRpbik7ClggICAgICAgICAgICAgICAgICpi
dWYgPSAneSc7ClggICAgICAgICAgICAgfQpFTkQtb2Ytc3BpY2UvZmlsZXMv
cGF0Y2gtc3JjX2xpYl9mdGVfbWlzY2NvbXNfYwplY2hvIHggLSBzcGljZS9m
aWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9ncmlkX2MKc2VkICdzL15YLy8nID5z
cGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9ncmlkX2MgPDwgJ0VORC1v
Zi1zcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9ncmlkX2MnClgtLS0g
c3JjL2xpYi9mdGUvZ3JpZC5jLm9yaWcJU3VuIEFwciAyNSAxNjo1MzoxMSAx
OTkzClgrKysgc3JjL2xpYi9mdGUvZ3JpZC5jCVRodSBKdWwgMTcgMDA6NDc6
NTEgMjAwMwpYQEAgLTEyMzAsNyArMTIzMCwxMCBAQApYIApYICAgICAvKiBT
ZXRMaW5lc3R5bGUoMSk7IHRha2VzIHRvbyBsb25nICovClggICAgIC8qIFBy
b2JsZW1zIHdpdGggU3VucyBvbiB2ZXJ5IGxhcmdlIHJhZGlpICYmIGxpbmVz
dHlsZSAqLwpYLSAgICBTZXRMaW5lc3R5bGUoMCk7ClgrICAgIC8qIFNldExp
bmVzdHlsZSgwKTsgKi8KWCsgICAgLyogbGluZXN0eWxlIDEgbG9va3MgYmV0
dGVyClgrICAgICAgIEd1ZW50aGVyIFJvZWhyaWNoIDIyLUphbi05OSAqLwpY
KyAgICBTZXRMaW5lc3R5bGUoMSk7ClggClggICAgIC8qIE5vdyBwbG90IGFs
bCB0aGUgYXJjIHNldHMuICBHbyBhcyBoaWdoIGFzIDUgdGltZXMgdGhlIHJh
ZGl1cyB0aGF0ClggICAgICAqIHdpbGwgZml0IG9uIHRoZSBzY3JlZW4uICBU
aGUgYmFzZSBtYWduaXR1ZGUgaXMgb25lIG1vcmUgdGhhbiAKWEBAIC0xNDA5
LDcgKzE0MTIsMTAgQEAKWCAgICAgLyogTGV0J3MgYmUgbGF6eSBhbmQganVz
dCBkcmF3IGV2ZXJ5dGhpbmcgLS0gd2Ugd29uJ3QgZ2V0IGNhbGxlZCB0b28K
WCAgICAgICogbXVjaCBhbmQgdGhlIGNpcmNsZXMgZ2V0IGNsaXBwZWQgYW55
d2F5Li4uClggICAgICAqLwpYLSAgICBTZXRDb2xvcigxOCk7ClgrICAgIC8q
IFNldENvbG9yKDE4KTsgKi8KWCsgICAgLyogZHJhdyBldmVyeXRoaW5nIGlu
IGJsYWNrClgrICAgICAgIEd1ZW50aGVyIFJvZWhyaWNoIDIyLUphbi05OSAq
LwpYKyAgICBTZXRDb2xvcigxKTsKWCAKWCAgICAgY2xpcGFyYygoZG91Ymxl
KSAoY2VudHggKyB4b2Zmc2V0ICsgcmFkb2ZmIC0gcmFkKSwKWCAJICAgIChk
b3VibGUpIChjZW50eSArIHlvZmZzZXQpLCByYWQsIDIqYW5nbGUsClhAQCAt
MTQyNCw3ICsxNDMwLDEwIEBAClggICAgICAgICAgICAgTV9QSSAtIDIgKiBh
bmdsZSwgY2VudHgsIGNlbnR5LCBtYXhyYWQsIDApOwpYIApYICAgICAvKiBE
cmF3IHRoZSB1cHBlciBhbmQgbG93ZXIgY2lyY2xlcy4gICovClgtICAgIFNl
dENvbG9yKDE5KTsKWCsgICAgLyogU2V0Q29sb3IoMTkpOyAqLwpYKyAgICAv
KiBkcmF3IGV2ZXJ5dGhpbmcgaW4gYmxhY2sKWCsgICAgICAgR3VlbnRoZXIg
Um9laHJpY2ggMjItSmFuLTk5ICovClgrICAgIFNldENvbG9yKDEpOwpYICAg
ICBhY2xpcCA9IGNsaXBhcmMoKGRvdWJsZSkgKGNlbnR4ICsgeG9mZnNldCAr
IHJhZG9mZiksClggCSAgICAoZG91YmxlKSAoY2VudHkgKyB5b2Zmc2V0ICsg
aXJhZCksIGlyYWQsClggCSAgICAoZG91YmxlKSAoTV9QSSAqIDEuNSArIDIg
KiBpYW5nbGUpLApYQEAgLTE0NDEsNyArMTQ1MCwxMCBAQApYIAlhZGRkZWds
YWJlbChncmFwaCwgbmRlZywgeGxhYiwgeWxhYiwKWCAJICAgIGdyX3hjZW50
ZXIsIGdyX3ljZW50ZXIsIGdyX3hjZW50ZXIsIGdyX3ljZW50ZXIpOwpYICAq
LwpYLQlTZXRDb2xvcigxOSk7ClgrCS8qIFNldENvbG9yKDE5KTsgKi8KWCsJ
LyogZHJhdyBldmVyeXRoaW5nIGluIGJsYWNrClgrCSAgIEd1ZW50aGVyIFJv
ZWhyaWNoIDIyLUphbi05OSAqLwpYKwlTZXRDb2xvcigxKTsKWCAJfQpYICAg
ICB9ClggICAgIGFjbGlwID0gY2xpcGFyYygoZG91YmxlKSAoY2VudHggKyB4
b2Zmc2V0ICsgcmFkb2ZmKSwKWEBAIC0xNDU1LDcgKzE0NjcsMTAgQEAKWCAJ
U2V0Q29sb3IoMSk7ClggCWFkZGRlZ2xhYmVsKGdyYXBoLCBuZGVnLCB4bGFi
LCB5bGFiLApYIAkgICAgZ3JfeGNlbnRlciwgZ3JfeWNlbnRlciwgZ3JfeGNl
bnRlciwgZ3JfeWNlbnRlcik7ClgtCVNldENvbG9yKDE5KTsKWCsJLyogU2V0
Q29sb3IoMTkpOyAqLwpYKwkvKiBkcmF3IGV2ZXJ5dGhpbmcgaW4gYmxhY2sK
WCsJICAgR3VlbnRoZXIgUm9laHJpY2ggMjItSmFuLTk5ICovClgrCVNldENv
bG9yKDEpOwpYICAgICB9ClggICAgIApYICAgICAvKiBOb3cgdG9zcyB0aGUg
bGFiZWxzIG9uLi4uICovCkVORC1vZi1zcGljZS9maWxlcy9wYXRjaC1zcmNf
bGliX2Z0ZV9ncmlkX2MKZWNobyB4IC0gc3BpY2UvZmlsZXMvcGF0Y2gtc3Jj
X2luY2x1ZGVfbWlzY19oCnNlZCAncy9eWC8vJyA+c3BpY2UvZmlsZXMvcGF0
Y2gtc3JjX2luY2x1ZGVfbWlzY19oIDw8ICdFTkQtb2Ytc3BpY2UvZmlsZXMv
cGF0Y2gtc3JjX2luY2x1ZGVfbWlzY19oJwpYKioqIHNyYy9pbmNsdWRlL21p
c2MuaC5vcmlnCVRodSBEZWMgIDEgMDk6MTc6MDIgMTk5NApYLS0tIHNyYy9p
bmNsdWRlL21pc2MuaAlTdW4gTWFyIDMxIDEyOjMyOjU4IDE5OTYKWCoqKioq
KioqKioqKioqKgpYKioqIDg2LDkyICoqKioKWC0tLSA4Niw5NCAtLS0tClgg
IGV4dGVybiBjaGFyICpyZWFsbG9jKCk7ClggIGV4dGVybiBjaGFyICpnZXRl
bnYoKTsKWCAgZXh0ZXJuIGludCBlcnJubzsKWCsgI2lmbmRlZiBfX0ZyZWVC
U0RfXwpYICBleHRlcm4gY2hhciAqc3lzX2Vycmxpc3RbXTsKWCsgI2VuZGlm
ClggIGV4dGVybiBjaGFyICpnZXRlbnYoKTsKWCAgZXh0ZXJuIGNoYXIgKmdl
dHdkKCk7ClggIGV4dGVybiBpbnQgcmFuZCgpOwpYKioqKioqKioqKioqKioq
ClgqKiogMTExLDEyMiAqKioqClgtLS0gMTExLDEyNCAtLS0tClggICMgICAg
ZW5kaWYgLyogY2xlYXJlcnIgKi8KWCAgIyAgZW5kaWYgLyogSEFTX0NMRUFS
RVJSICovClggIApYKyAjaWZuZGVmIF9fRnJlZUJTRF9fClggICMgIGlmbmRl
ZiBiemVybwpYICBleHRlcm4gaW50IGJ6ZXJvKCk7ClggICMgIGVuZGlmClgg
ICMgIGlmbmRlZiBiY29weQpYICBleHRlcm4gdm9pZCBiY29weSgpOwpYICAj
ICBlbmRpZgpYKyAjZW5kaWYgLyogX19GcmVlQlNEX18gKi8KWCAgClggICMg
IGlmbmRlZiBpbmRleApYICAjICAgIGlmZGVmIEhBU19JTkRFWApFTkQtb2Yt
c3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2luY2x1ZGVfbWlzY19oCmVjaG8geCAt
IHNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX2RldmljZV9jCnNlZCAn
cy9eWC8vJyA+c3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9mdGVfZGV2aWNl
X2MgPDwgJ0VORC1vZi1zcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9k
ZXZpY2VfYycKWC0tLSBzcmMvbGliL2Z0ZS9kZXZpY2UuYy5vcmlnCVRodSBK
dWwgMjkgMjE6MDk6NTkgMTk5MwpYKysrIHNyYy9saWIvZnRlL2RldmljZS5j
CVRodSBKdWwgMTcgMDA6NDc6NTAgMjAwMwpYQEAgLTY2MSw3ICs2NjEsOSBA
QApYICAgICB9ClggClggICAgIGR2ID0gZnRfZXZhbHVhdGUobjItPnBuX3Jp
Z2h0KTsKWC0gICAgZnJlZV9wbm9kZShuYW1lcyk7ClgrICAgIC8qIHByZXZl
bnQgbmFtZXMgZnJvbSBnZXR0aW5nIGZyZWVkIHR3aWNlClgrICAgICAgIEd1
ZW50aGVyIFJvZWhyaWNoIDIyLUphbi05OSAqLwpYKyAgICAvKiBmcmVlX3Bu
b2RlKG5hbWVzKTsgKi8KWCAgICAgaWYgKCFkdikKWCAJcmV0dXJuOwpYICAg
ICBpZiAoZHYtPnZfbGVuZ3RoIDwgMSkgewpFTkQtb2Ytc3BpY2UvZmlsZXMv
cGF0Y2gtc3JjX2xpYl9mdGVfZGV2aWNlX2MKZWNobyB4IC0gc3BpY2UvZmls
ZXMvcGF0Y2gtc3JjX2Jpbl9zY29udmVydF9jCnNlZCAncy9eWC8vJyA+c3Bp
Y2UvZmlsZXMvcGF0Y2gtc3JjX2Jpbl9zY29udmVydF9jIDw8ICdFTkQtb2Yt
c3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2Jpbl9zY29udmVydF9jJwpYLS0tIHNy
Yy9iaW4vc2NvbnZlcnQuYy5vcmlnCU1vbiBTZXAgMTQgMjE6MzA6NDEgMTk5
MgpYKysrIHNyYy9iaW4vc2NvbnZlcnQuYwlUaHUgSnVsIDE3IDAwOjQ3OjUw
IDIwMDMKWEBAIC04MCwxOSArODAsMTkgQEAKWCAKWCAgICAgICAgIGNhc2Ug
MTogcHJpbnRmKCJJbnB1dCBmaWxlOiAiKTsKWCAgICAgICAgICAgICAodm9p
ZCkgZmZsdXNoKHN0ZG91dCk7ClgtICAgICAgICAgICAgKHZvaWQpIGdldHMo
YnVmKTsKWCsgICAgICAgICAgICAodm9pZCkgZmdldHMoYnVmLEJTSVpFX1NQ
LHN0ZGluKTsKWCAgICAgICAgICAgICBzZiA9IGNvcHkoYnVmKTsKWCAgICAg
ICAgICAgICBwcmludGYoIklucHV0IHR5cGU6ICIpOwpYICAgICAgICAgICAg
ICh2b2lkKSBmZmx1c2goc3Rkb3V0KTsKWC0gICAgICAgICAgICAodm9pZCkg
Z2V0cyhidWYpOwpYKyAgICAgICAgICAgICh2b2lkKSBmZ2V0cyhidWYsQlNJ
WkVfU1Asc3RkaW4pOwpYICAgICAgICAgICAgIGYgPSBidWZbMF07ClggICAg
ICAgICAgICAgcHJpbnRmKCJPdXRwdXQgZmlsZTogIik7ClggICAgICAgICAg
ICAgKHZvaWQpIGZmbHVzaChzdGRvdXQpOwpYLSAgICAgICAgICAgICh2b2lk
KSBnZXRzKGJ1Zik7ClgrICAgICAgICAgICAgKHZvaWQpIGZnZXRzKGJ1ZixC
U0laRV9TUCxzdGRpbik7ClggICAgICAgICAgICAgYWYgPSBjb3B5KGJ1Zik7
ClggICAgICAgICAgICAgcHJpbnRmKCJPdXRwdXQgdHlwZTogIik7ClggICAg
ICAgICAgICAgKHZvaWQpIGZmbHVzaChzdGRvdXQpOwpYLSAgICAgICAgICAg
ICh2b2lkKSBnZXRzKGJ1Zik7ClgrICAgICAgICAgICAgKHZvaWQpIGZnZXRz
KGJ1ZixCU0laRV9TUCxzdGRpbik7ClggICAgICAgICAgICAgdCA9IGJ1Zlsw
XTsKWCAgICAgICAgICAgICBicmVhazsKWCAgICAgICAgIGRlZmF1bHQ6CkVO
RC1vZi1zcGljZS9maWxlcy9wYXRjaC1zcmNfYmluX3Njb252ZXJ0X2MKZWNo
byB4IC0gc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9mdGVfaW5wX2MKc2Vk
ICdzL15YLy8nID5zcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9pbnBf
YyA8PCAnRU5ELW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX2lu
cF9jJwpYLS0tIHNyYy9saWIvZnRlL2lucC5jLm9yaWcJVGh1IEFwciAyOSAx
ODowNjoyOCAxOTkzClgrKysgc3JjL2xpYi9mdGUvaW5wLmMJVGh1IEp1bCAx
NyAwMDo0Nzo1MCAyMDAzClhAQCAtNjY2LDcgKzY2Niw3IEBAClggClggICAg
IGZwcmludGYoY3Bfb3V0LCAicnVuIGNpcmN1aXQ/ICIpOwpYICAgICBmZmx1
c2goY3Bfb3V0KTsKWC0gICAgKHZvaWQpIGdldHMoYnVmKTsKWCsgICAgKHZv
aWQpIGZnZXRzKGJ1ZixCU0laRV9TUCxzdGRpbik7ClggICAgIGlmIChidWZb
MF0gIT0gJ24nKSB7ClggICAgICAgZnByaW50ZihjcF9vdXQsICJydW5uaW5n
IGNpcmN1aXRcbiIpOwpYICAgICAgIGNvbV9ydW4oTlVMTCk7CkVORC1vZi1z
cGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9pbnBfYwplY2hvIHggLSBz
cGljZS9maWxlcy9wYXRjaC11dGlsX2J1aWxkCnNlZCAncy9eWC8vJyA+c3Bp
Y2UvZmlsZXMvcGF0Y2gtdXRpbF9idWlsZCA8PCAnRU5ELW9mLXNwaWNlL2Zp
bGVzL3BhdGNoLXV0aWxfYnVpbGQnClgtLS0gdXRpbC9idWlsZC5vcmlnCVRo
dSBKdWwgMjkgMDM6NDY6MzkgMTk5MwpYKysrIHV0aWwvYnVpbGQJVGh1IEp1
bCAxNyAwMDo0Nzo1MCAyMDAzClhAQCAtOTYsNyArOTYsNyBAQApYIApYIFRN
UF9MRUFERVI9IiR7VE1QX0RJUn0vYnVpbGRsJCQiClggVE1QX1RSQUlMRVI9
IiR7VE1QX0RJUn0vYnVpbGR0JCQiClgtdHJhcCAncm0gLWYgJHtUTVBfTEVB
REVSfSAke1RNUF9UUkFJTEVSfTsgZXhpdCAxJyAxIDIgMyA0IDYgNyA4IDkg
MTAgMTIgMTMgMTQgMTUKWCt0cmFwICdybSAtZiAke1RNUF9MRUFERVJ9ICR7
VE1QX1RSQUlMRVJ9OyBleGl0IDEnIDEgMiAzIDQgNiA3IDggMTAgMTIgMTMg
MTQgMTUKWCBlY2hvID4gIiR7VE1QX1RSQUlMRVJ9IgpYIEJBRD1mYWxzZQpY
IERFQlVHPQpFTkQtb2Ytc3BpY2UvZmlsZXMvcGF0Y2gtdXRpbF9idWlsZApl
Y2hvIHggLSBzcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9yZXNvdXJj
ZV9jCnNlZCAncy9eWC8vJyA+c3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9m
dGVfcmVzb3VyY2VfYyA8PCAnRU5ELW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNy
Y19saWJfZnRlX3Jlc291cmNlX2MnClgtLS0gc3JjL2xpYi9mdGUvcmVzb3Vy
Y2UuYy5vcmlnCVdlZCBBcHIgMjggMTc6Mzk6MDMgMTk5MwpYKysrIHNyYy9s
aWIvZnRlL3Jlc291cmNlLmMJVGh1IEp1bCAxNyAwMDo0Nzo1MCAyMDAzClhA
QCAtMzY5LDcgKzM2OSw5IEBAClggCWxvbmcgeDsKWCAJU0lHTkFMX1RZUEUJ
KCpvcmlnX3NpZ25hbCkoICk7ClggClgrI2lmbmRlZiBfX0ZyZWVCU0RfXwpY
IAlpZiAoZ2V0ZW52KCJTUElDRV9OT19EQVRBU0VHX0NIRUNLIikpClgrI2Vu
ZGlmClggCQlyZXR1cm4gMDsKWCAKWCAJbG93ID0gMDsKRU5ELW9mLXNwaWNl
L2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX3Jlc291cmNlX2MKZWNobyB4IC0g
c3BpY2UvZmlsZXMvcGF0Y2gtcHNtb2RlbApzZWQgJ3MvXlgvLycgPnNwaWNl
L2ZpbGVzL3BhdGNoLXBzbW9kZWwgPDwgJ0VORC1vZi1zcGljZS9maWxlcy9w
YXRjaC1wc21vZGVsJwpYIyAgc3BpY2UzZjQvM2Y1IHBhdGNoIHRvIGFkZCBs
ZXZlbCAyIEpGRVQgbW9kZWwKWCMgIEp1bmUgMjIsIDE5OTQKWCMgIEFudGhv
bnkgUGFya2VyICh0b255cEBtcGNlLm1xLmVkdS5hdSkKWCMgIE1hY3F1YXJp
ZSBVbml2ZXJzaXR5LCBTeWRuZXkgQXVzdHJhbGlhIDIxMDkgClgjClhkaWZm
IC1ydU4gLi4vd29yay5vcmlnL2NvbmYvZGVmYXVsdHMgLi9jb25mL2RlZmF1
bHRzClgtLS0gLi4vd29yay5vcmlnL2NvbmYvZGVmYXVsdHMJVGh1IEp1bCAy
OSAxNjozMzo1NiAxOTkzClgrKysgLi9jb25mL2RlZmF1bHRzCVN1biBNYXkg
MTggMTM6NDY6NDcgMjAwMwpYQEAgLTI0Niw2ICsyNDYsNyBAQApYICMJCWlu
ZDoJaW5kdWN0b3IKWCAjCQlpc3JjOgljdXJyZW50IHNvdXJjZQpYICMJCWpm
ZXQ6CUp1bmN0aW9uIEZFVApYKyMJCWpmZXQyOglQUyBNb2RlbCBKdW5jdGlv
biBGRVQvTUVTRkVUClggIwkJbWVzOglNRVMgRkVUIChHYUFzKQpYICMJCW1v
czE6CU1PUywgc2ltcGxlc3QgYW5hbHl0aWMgbW9kZWwKWCAjCQltb3MyOglN
T1MsIHNpbXBsZXN0ClhAQCAtMjYwLDcgKzI2MSw3IEBAClggIwkJdnNyYzoJ
dm9sdGFnZSBzb3VyY2UKWCAKWCBERVZJQ0VTCQk9IGFzcmMgYmp0IGJzaW0x
IGJzaW0yIGNhcCBjY2NzIGNjdnMgY3N3IGRpbyBpbmQgaXNyYyBcClgtCQkg
IGpmZXQgbHRyYSBtZXMgbW9zMSBtb3MyIG1vczMgbW9zNiByZXMgc3cgdHJh
IHVyYyBcClgrCQkgIGpmZXQgamZldDIgbHRyYSBtZXMgbW9zMSBtb3MyIG1v
czMgbW9zNiByZXMgc3cgdHJhIHVyYyBcClggCQkgIHZjY3MgdmN2cyB2c3Jj
ClggClggIwlBTkFMWVNFUyBsaXN0IHRoZSBhbmFseXNpcyB0eXBlcyB0aGF0
IHlvdSB3YW50IHRvIGhhdmUgYXZhaWxhYmxlIGluClhkaWZmIC1ydU4gLi4v
d29yay5vcmlnL3NyYy9iaW4vY29uZmlnLmMgLi9zcmMvYmluL2NvbmZpZy5j
ClgtLS0gLi4vd29yay5vcmlnL3NyYy9iaW4vY29uZmlnLmMJVGh1IEp1bCAy
OSAxNjozNjo0OSAxOTkzClgrKysgLi9zcmMvYmluL2NvbmZpZy5jCVN1biBN
YXkgMTggMTM6NDY6NDcgMjAwMwpYQEAgLTcxLDYgKzcxLDcgQEAKWCAjaW5j
bHVkZSAibW9zMml0Zi5oIgpYICNpbmNsdWRlICJtb3MzaXRmLmgiClggI2lu
Y2x1ZGUgImpmZXRpdGYuaCIKWCsjaW5jbHVkZSAiamZldDJpdGYuaCIKWCAj
aW5jbHVkZSAibWVzaXRmLmgiClggI2luY2x1ZGUgImx0cmFpdGYuaCIKWCAj
aW5jbHVkZSAidHJhaXRmLmgiClhAQCAtMTAzLDYgKzEwNCw3IEBAClggI2lu
Y2x1ZGUgIm1vczIvbW9zMml0Zi5oIgpYICNpbmNsdWRlICJtb3MzL21vczNp
dGYuaCIKWCAjaW5jbHVkZSAiamZldC9qZmV0aXRmLmgiClgrI2luY2x1ZGUg
ImpmZXQyL2pmZXQyaXRmLmgiClggI2luY2x1ZGUgIm1lcy9tZXNpdGYuaCIK
WCAjaW5jbHVkZSAibHRyYS9sdHJhaXRmLmgiClggI2luY2x1ZGUgInRyYS90
cmFpdGYuaCIKWEBAIC0yMDcsNiArMjA5LDkgQEAKWCAjZW5kaWYKWCAjaWZk
ZWYgREVWX2pmZXQKWCAgICAgICAgICZKRkVUaW5mbywKWCsjZW5kaWYKWCsj
aWZkZWYgREVWX2pmZXQyClgrICAgICAgICAmSkZFVDJpbmZvLApYICNlbmRp
ZgpYICNpZmRlZiBERVZfbHRyYQpYICAgICAgICAgJkxUUkFpbmZvLApYZGlm
ZiAtcnVOIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0Mi5j
IC4vc3JjL2xpYi9kZXYvamZldDIvamZldDIuYwpYLS0tIC4uL3dvcmsub3Jp
Zy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0Mi5jCVdlZCBEZWMgMzEgMTk6MDA6
MDAgMTk2OQpYKysrIC4vc3JjL2xpYi9kZXYvamZldDIvamZldDIuYwlUdWUg
SnVuIDIxIDE0OjM0OjM0IDE5OTQKWEBAIC0wLDAgKzEsNzYgQEAKWCsvKioq
KioqKioqKgpYK0Jhc2VkIG9uIGpmZXQuYyAKWCtDb3B5cmlnaHQgMTk5MCBS
ZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgpYK0F1dGhvcjogMTk4NSBUaG9tYXMgTC4gUXVh
cmxlcwpYKwpYK01vZGlmaWVkIHRvIGFkZCBQUyBtb2RlbCBhbmQgbmV3IHBh
cmFtZXRlciBkZWZpbml0aW9ucyAoIEFudGhvbnkgRS4gUGFya2VyICkKWCsg
ICBDb3B5cmlnaHQgMTk5NCAgTWFjcXVhcmllIFVuaXZlcnNpdHksIFN5ZG5l
eSBBdXN0cmFsaWEuClgrICAgMTAgRmViIDE5OTQ6ICBQYXJhbWV0ZXIgZGVm
aW5pdGlvbnMgY2FsbGVkIGZyb20gamZldHBhcm0uaApYKyAgICAgICAgICAg
ICAgICAgRXh0cmEgc3RhdGUgdmVjdG9ycyBhZGRlZCB0byBKRkVUMnBUYWJs
ZQpYKyoqKioqKioqKiovClgrClgrI2luY2x1ZGUgInNwaWNlLmgiClgrI2lu
Y2x1ZGUgPHN0ZGlvLmg+ClgrI2luY2x1ZGUgImlmc2ltLmgiClgrI2luY2x1
ZGUgImRldmRlZnMuaCIKWCsjaW5jbHVkZSAiamZldDJkZWZzLmgiClgrI2lu
Y2x1ZGUgInN1ZmZpeC5oIgpYKwpYK0lGcGFybSBKRkVUMnBUYWJsZVtdID0g
eyAvKiBkZXZpY2UgcGFyYW1ldGVycyAqLyAKWCsgSU9QVSgib2ZmIiwgICAg
ICAgICBKRkVUMl9PRkYsICAgICAgICAgICAgSUZfRkxBRywgICAiRGV2aWNl
IGluaXRpYWxseSBvZmYiKSwKWCsgSU9QQVUoImljIiwgICAgICAgICBKRkVU
Ml9JQywgICAgICAgICAgICAgSUZfUkVBTFZFQywiSW5pdGlhbCBWRFMsVkdT
IHZlY3RvciIpLApYKyBJT1BVKCJhcmVhIiwgICAgICAgIEpGRVQyX0FSRUEs
ICAgICAgICAgICBJRl9SRUFMLCAgICJBcmVhIGZhY3RvciIpLApYKyBJT1BB
VSgiaWMtdmRzIiwgICAgIEpGRVQyX0lDX1ZEUywgICAgICAgICBJRl9SRUFM
LCAgICJJbml0aWFsIEQtUyB2b2x0YWdlIiksClgrIElPUEFVKCJpYy12Z3Mi
LCAgICAgSkZFVDJfSUNfVkdTLCAgICAgICAgIElGX1JFQUwsICAgIkluaXRp
YWwgRy1TIHZvbHJhZ2UiKSwKWCsgSU9QVSgidGVtcCIsICAgICAgICBKRkVU
Ml9URU1QLCAgICAgICAgICAgSUZfUkVBTCwgICAiSW5zdGFuY2UgdGVtcGVy
YXR1cmUiKSwKWCsgT1BVKCJkcmFpbi1ub2RlIiwgICBKRkVUMl9EUkFJTk5P
REUsICAgICAgSUZfSU5URUdFUiwiTnVtYmVyIG9mIGRyYWluIG5vZGUiKSwK
WCsgT1BVKCJnYXRlLW5vZGUiLCAgICBKRkVUMl9HQVRFTk9ERSwgICAgICAg
SUZfSU5URUdFUiwiTnVtYmVyIG9mIGdhdGUgbm9kZSIpLApYKyBPUFUoInNv
dXJjZS1ub2RlIiwgIEpGRVQyX1NPVVJDRU5PREUsICAgICBJRl9JTlRFR0VS
LCJOdW1iZXIgb2Ygc291cmNlIG5vZGUiKSwKWCsgT1BVKCJkcmFpbi1wcmlt
ZS1ub2RlIiwgSkZFVDJfRFJBSU5QUklNRU5PREUsIElGX0lOVEVHRVIsIklu
dGVybmFsIGRyYWluIG5vZGUiKSwKWCsgT1BVKCJzb3VyY2UtcHJpbWUtbm9k
ZSIsSkZFVDJfU09VUkNFUFJJTUVOT0RFLElGX0lOVEVHRVIsIkludGVybmFs
IHNvdXJjZSBub2RlIiksClgrIE9QKCJ2Z3MiLCAgIEpGRVQyX1ZHUywgIElG
X1JFQUwsICJWb2x0YWdlIEctUyIpLApYKyBPUCgidmdkIiwgICBKRkVUMl9W
R0QsICBJRl9SRUFMLCAiVm9sdGFnZSBHLUQiKSwKWCsgT1AoImlnIiwgICAg
SkZFVDJfQ0csICAgSUZfUkVBTCwgIkN1cnJlbnQgYXQgZ2F0ZSBub2RlIiks
ClgrIE9QKCJpZCIsICAgIEpGRVQyX0NELCAgIElGX1JFQUwsICJDdXJyZW50
IGF0IGRyYWluIG5vZGUiKSwKWCsgT1AoImlzIiwgICAgSkZFVDJfQ1MsICAg
SUZfUkVBTCwgIlNvdXJjZSBjdXJyZW50IiksClgrIE9QKCJpZ2QiLCAgIEpG
RVQyX0NHRCwgIElGX1JFQUwsICJDdXJyZW50IEctRCIpLApYKyBPUCgiZ20i
LCAgICBKRkVUMl9HTSwgICBJRl9SRUFMLCAiVHJhbnNjb25kdWN0YW5jZSIp
LApYKyBPUCgiZ2RzIiwgICBKRkVUMl9HRFMsICBJRl9SRUFMLCAiQ29uZHVj
dGFuY2UgRC1TIiksClgrIE9QKCJnZ3MiLCAgIEpGRVQyX0dHUywgIElGX1JF
QUwsICJDb25kdWN0YW5jZSBHLVMiKSwKWCsgT1AoImdnZCIsICAgSkZFVDJf
R0dELCAgSUZfUkVBTCwgIkNvbmR1Y3RhbmNlIEctRCIpLApYKyBPUFUoInFn
cyIsICBKRkVUMl9RR1MsICBJRl9SRUFMLCAiQ2hhcmdlIHN0b3JhZ2UgRy1T
IGp1bmN0aW9uIiksClgrIE9QVSgicWdkIiwgIEpGRVQyX1FHRCwgIElGX1JF
QUwsICJDaGFyZ2Ugc3RvcmFnZSBHLUQganVuY3Rpb24iKSwKWCsgT1BVKCJj
cWdzIiwgSkZFVDJfQ1FHUywgSUZfUkVBTCwgIkNhcGFjaXRhbmNlIGR1ZSB0
byBjaGFyZ2Ugc3RvcmFnZSBHLVMganVuY3Rpb24iKSwKWCsgT1BVKCJjcWdk
IiwgSkZFVDJfQ1FHRCwgSUZfUkVBTCwgIkNhcGFjaXRhbmNlIGR1ZSB0byBj
aGFyZ2Ugc3RvcmFnZSBHLUQganVuY3Rpb24iKSwKWCsgT1BVKCJwIiwgICAg
SkZFVDJfUE9XRVIsSUZfUkVBTCwgIlBvd2VyIGRpc3NpcGF0ZWQgYnkgdGhl
IEpGRVQyIiksClgrIE9QVSgidnRyYXAiLEpGRVQyX1ZUUkFQLElGX1JFQUws
ICJRdWllc2NlbnQgZHJhaW4gZmVlZGJhY2sgcG90ZW50aWFsIiksClgrIE9Q
VSgidnBhdmUiLEpGRVQyX1BBVkUsIElGX1JFQUwsICJRdWllc2NlbnQgcG93
ZXIgZGlzc2lwYXRpb24iKSwKWCt9OwpYKwpYK0lGcGFybSBKRkVUMm1QVGFi
bGVbXSA9IHsgLyogbW9kZWwgcGFyYW1ldGVycyAqLwpYKyBPUCgidHlwZSIs
ICAgICBKRkVUMl9NT0RfVFlQRSwgICAgSUZfU1RSSU5HLCAiTi10eXBlIG9y
IFAtdHlwZSBKRkVUMiBtb2RlbCIpLApYKyBJT1AoIm5qZiIsICAgICBKRkVU
Ml9NT0RfTkpGLCAgICAgSUZfRkxBRywiTiB0eXBlIEpGRVQyIG1vZGVsIiks
ClgrIElPUCgicGpmIiwgICAgIEpGRVQyX01PRF9QSkYsICAgICBJRl9GTEFH
LCJQIHR5cGUgSkZFVDIgbW9kZWwiKSwKWCsgSU9QUigidnQwIiwgICAgSkZF
VDJfTU9EX1ZUTywgICAgIElGX1JFQUwsIlRocmVzaG9sZCB2b2x0YWdlIiks
ClgrIElPUFIoInZiaSIsICAgIEpGRVQyX01PRF9QQiwgICAgICBJRl9SRUFM
LCJHYXRlIGp1bmN0aW9uIHBvdGVudGlhbCIpLApYKyNkZWZpbmUgIFBBUkFN
KGNvZGUsaWQsZmxhZyxyZWYsZGVmYXVsdCxkZXNjcmlwKSBJT1AoY29kZSxp
ZCxJRl9SRUFMLGRlc2NyaXApLApYKyNkZWZpbmUgUEFSQU1BKGNvZGUsaWQs
ZmxhZyxyZWYsZGVmYXVsdCxkZXNjcmlwKSBJT1BBKGNvZGUsaWQsSUZfUkVB
TCxkZXNjcmlwKSwKWCsjaW5jbHVkZSAiamZldDJwYXJtLmgiClgrClgrIE9Q
VSgiZ2QiLCBKRkVUMl9NT0RfRFJBSU5DT05EVUNULCBJRl9SRUFMLCJEcmFp
biBjb25kdWN0YW5jZSIpLApYKyBPUFUoImdzIiwgSkZFVDJfTU9EX1NPVVJD
RUNPTkRVQ1QsSUZfUkVBTCwiU291cmNlIGNvbmR1Y3RhbmNlIiksClgrIElP
UFUoInRub20iLCAgIEpGRVQyX01PRF9UTk9NLCAgICBJRl9SRUFMLCJwYXJh
bWV0ZXIgbWVhc3VyZW1lbnQgdGVtcGVyYXR1cmUiKSwKWCt9OwpYKwpYKwpY
K2NoYXIgKkpGRVQybmFtZXNbXSA9IHsKWCsgICAgIkRyYWluIiwKWCsgICAg
IkdhdGUiLApYKyAgICAiU291cmNlIgpYK307ClgrClgraW50CUpGRVQyblNp
emUgPSBOVU1FTEVNUyhKRkVUMm5hbWVzKTsKWCtpbnQJSkZFVDJwVFNpemUg
PSBOVU1FTEVNUyhKRkVUMnBUYWJsZSk7ClgraW50CUpGRVQybVBUU2l6ZSA9
IE5VTUVMRU1TKEpGRVQybVBUYWJsZSk7ClgraW50CUpGRVQyaVNpemUgPSBz
aXplb2YoSkZFVDJpbnN0YW5jZSk7ClgraW50CUpGRVQybVNpemUgPSBzaXpl
b2YoSkZFVDJtb2RlbCk7ClhkaWZmIC1ydU4gLi4vd29yay5vcmlnL3NyYy9s
aWIvZGV2L2pmZXQyL2pmZXQyYWNsZC5jIC4vc3JjL2xpYi9kZXYvamZldDIv
amZldDJhY2xkLmMKWC0tLSAuLi93b3JrLm9yaWcvc3JjL2xpYi9kZXYvamZl
dDIvamZldDJhY2xkLmMJV2VkIERlYyAzMSAxOTowMDowMCAxOTY5ClgrKysg
Li9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MmFjbGQuYwlUdWUgSnVuIDI4IDA4
OjQ3OjQyIDE5OTQKWEBAIC0wLDAgKzEsOTEgQEAKWCsvKioqKioqKioqKgpY
K0Jhc2VkIG9uIGpmZXRhY2xkLmMKWCtDb3B5cmlnaHQgMTk5MCBSZWdlbnRz
IG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgpYK0F1dGhvcjogMTk4NSBUaG9tYXMgTC4gUXVhcmxlcwpY
KwpYK01vZGlmaWVkIHRvIGFkZCBQUyBtb2RlbCBhbmQgbmV3IHBhcmFtZXRl
ciBkZWZpbml0aW9ucyAoIEFudGhvbnkgRS4gUGFya2VyICkKWCsgICBDb3B5
cmlnaHQgMTk5NCAgTWFjcXVhcmllIFVuaXZlcnNpdHksIFN5ZG5leSBBdXN0
cmFsaWEuClgrICAgMTAgRmViIDE5OTQ6ICBOZXcgY2FsbCB0byBQU2FjbG9h
ZCgpIHdpdGggbWF0cml4IGxvYWRpbmcKWCsqKioqKioqKioqLwpYKwpYKyNp
bmNsdWRlICJzcGljZS5oIgpYKyNpbmNsdWRlIDxzdGRpby5oPgpYKyNpbmNs
dWRlICJ1dGlsLmgiClgrI2luY2x1ZGUgImNrdGRlZnMuaCIKWCsjaW5jbHVk
ZSAiamZldDJkZWZzLmgiClgrI2luY2x1ZGUgInNwZXJyb3IuaCIKWCsjaW5j
bHVkZSAicHNtb2RlbC5oIgpYKyNpbmNsdWRlICJzdWZmaXguaCIKWCsKWCtp
bnQKWCtKRkVUMmFjTG9hZChpbk1vZGVsLGNrdCkKWCsgICAgR0VObW9kZWwg
KmluTW9kZWw7ClgrICAgIHJlZ2lzdGVyIENLVGNpcmN1aXQgKmNrdDsKWCt7
ClgrICAgIHJlZ2lzdGVyIEpGRVQybW9kZWwgKm1vZGVsID0gKEpGRVQybW9k
ZWwqKWluTW9kZWw7ClgrICAgIHJlZ2lzdGVyIEpGRVQyaW5zdGFuY2UgKmhl
cmU7ClgrICAgIGRvdWJsZSBnZHByOwpYKyAgICBkb3VibGUgZ3NwcjsKWCsg
ICAgZG91YmxlIGdtOwpYKyAgICBkb3VibGUgZ2RzOwpYKyAgICBkb3VibGUg
Z2dzOwpYKyAgICBkb3VibGUgeGdzOwpYKyAgICBkb3VibGUgZ2dkOwpYKyAg
ICBkb3VibGUgeGdkOwpYKyAgICBkb3VibGUgeGdtLCB4Z2RzLCB2Z2QsIHZn
cywgY2Q7ClgrClgrICAgIGZvciggOyBtb2RlbCAhPSBOVUxMOyBtb2RlbCA9
IG1vZGVsLT5KRkVUMm5leHRNb2RlbCApIHsKWCsgICAgICAgIApYKyAgICAg
ICAgZm9yKCBoZXJlID0gbW9kZWwtPkpGRVQyaW5zdGFuY2VzOyBoZXJlICE9
IE5VTEw7IApYKyAgICAgICAgICAgICAgICBoZXJlID0gaGVyZS0+SkZFVDJu
ZXh0SW5zdGFuY2UpIHsKWCsKWCsKWCsgICAgICAgICAgICBnZHByPW1vZGVs
LT5KRkVUMmRyYWluQ29uZHVjdCAqIGhlcmUtPkpGRVQyYXJlYTsKWCsgICAg
ICAgICAgICBnc3ByPW1vZGVsLT5KRkVUMnNvdXJjZUNvbmR1Y3QgKiBoZXJl
LT5KRkVUMmFyZWE7ClgrICAgICAgICAgICAgZ209ICooY2t0LT5DS1RzdGF0
ZTAgKyBoZXJlLT5KRkVUMmdtKSA7ClgrICAgICAgICAgICAgZ2RzPSAqKGNr
dC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJnZHMpIDsKWCsgICAgICAgICAg
ICBnZ3M9ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmdncykgOwpY
KyAgICAgICAgICAgIHhncz0gKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpG
RVQycWdzKSAqIGNrdC0+Q0tUb21lZ2EgOwpYKyAgICAgICAgICAgIGdnZD0g
Kihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQyZ2dkKSA7ClgrICAgICAg
ICAgICAgeGdkPSAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJxZ2Qp
ICogY2t0LT5DS1RvbWVnYSA7ClgrClgrICAgICAgICAgICAgdmdzID0gKihj
a3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQydmdzKTsKWCsgICAgICAgICAg
ICB2Z2QgPSAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJ2Z2QpOwpY
KyAgICAgICAgICAgIGNkID0gKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpG
RVQyY2QpOwpYKyAgICAgICAgICAgIFBTYWNsb2FkKGNrdCxtb2RlbCwgaGVy
ZSwgdmdzLCB2Z2QsIGNkLCBja3QtPkNLVG9tZWdhLApYKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmdtLCAmeGdtLCAmZ2RzLCAm
eGdkcyk7ClgrICAgICAgICAgICAgeGdkcyArPSAqKGNrdC0+Q0tUc3RhdGUw
ICsgaGVyZS0+SkZFVDJxZHMpICogY2t0LT5DS1RvbWVnYSA7ClgrICAgICAg
ICAgICAgKihoZXJlLT5KRkVUMmRyYWluUHJpbWVEcmFpblByaW1lUHRyICsx
KSAgICs9IHhnZHM7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVUMnNvdXJj
ZVByaW1lU291cmNlUHJpbWVQdHIgKzEpICs9IHhnZHMreGdtOwpYKyAgICAg
ICAgICAgICooaGVyZS0+SkZFVDJkcmFpblByaW1lR2F0ZVB0ciArMSkgICAg
ICAgICArPSAgICAgIHhnbTsKWCsgICAgICAgICAgICAqKGhlcmUtPkpGRVQy
ZHJhaW5QcmltZVNvdXJjZVByaW1lUHRyICsxKSAgLT0geGdkcyt4Z207Clgr
ICAgICAgICAgICAgKihoZXJlLT5KRkVUMnNvdXJjZVByaW1lR2F0ZVB0ciAr
MSkgICAgICAgIC09ICAgICAgeGdtOwpYKyAgICAgICAgICAgICooaGVyZS0+
SkZFVDJzb3VyY2VQcmltZURyYWluUHJpbWVQdHIgKzEpICAtPSB4Z2RzOwpY
KwpYKyAgICAgICAgICAgICooaGVyZS0+SkZFVDJkcmFpbkRyYWluUHRyICkg
Kz0gZ2RwcjsKWCsgICAgICAgICAgICAqKGhlcmUtPkpGRVQyZ2F0ZUdhdGVQ
dHIgKSArPSBnZ2QrZ2dzOwpYKyAgICAgICAgICAgICooaGVyZS0+SkZFVDJn
YXRlR2F0ZVB0ciArMSkgKz0geGdkK3hnczsKWCsgICAgICAgICAgICAqKGhl
cmUtPkpGRVQyc291cmNlU291cmNlUHRyICkgKz0gZ3NwcjsKWCsgICAgICAg
ICAgICAqKGhlcmUtPkpGRVQyZHJhaW5QcmltZURyYWluUHJpbWVQdHIgKSAr
PSBnZHByK2dkcytnZ2Q7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVUMmRy
YWluUHJpbWVEcmFpblByaW1lUHRyICsxKSArPSB4Z2Q7ClgrICAgICAgICAg
ICAgKihoZXJlLT5KRkVUMnNvdXJjZVByaW1lU291cmNlUHJpbWVQdHIgKSAr
PSBnc3ByK2dkcytnbStnZ3M7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVU
MnNvdXJjZVByaW1lU291cmNlUHJpbWVQdHIgKzEpICs9IHhnczsKWCsgICAg
ICAgICAgICAqKGhlcmUtPkpGRVQyZHJhaW5EcmFpblByaW1lUHRyICkgLT0g
Z2RwcjsKWCsgICAgICAgICAgICAqKGhlcmUtPkpGRVQyZ2F0ZURyYWluUHJp
bWVQdHIgKSAtPSBnZ2Q7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVUMmdh
dGVEcmFpblByaW1lUHRyICsxKSAtPSB4Z2Q7ClgrICAgICAgICAgICAgKiho
ZXJlLT5KRkVUMmdhdGVTb3VyY2VQcmltZVB0ciApIC09IGdnczsKWCsgICAg
ICAgICAgICAqKGhlcmUtPkpGRVQyZ2F0ZVNvdXJjZVByaW1lUHRyICsxKSAt
PSB4Z3M7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVUMnNvdXJjZVNvdXJj
ZVByaW1lUHRyICkgLT0gZ3NwcjsKWCsgICAgICAgICAgICAqKGhlcmUtPkpG
RVQyZHJhaW5QcmltZURyYWluUHRyICkgLT0gZ2RwcjsKWCsgICAgICAgICAg
ICAqKGhlcmUtPkpGRVQyZHJhaW5QcmltZUdhdGVQdHIgKSArPSAoLWdnZCtn
bSk7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVUMmRyYWluUHJpbWVHYXRl
UHRyICsxKSAtPSB4Z2Q7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVUMmRy
YWluUHJpbWVTb3VyY2VQcmltZVB0ciApICs9ICgtZ2RzLWdtKTsKWCsgICAg
ICAgICAgICAqKGhlcmUtPkpGRVQyc291cmNlUHJpbWVHYXRlUHRyICkgKz0g
KC1nZ3MtZ20pOwpYKyAgICAgICAgICAgICooaGVyZS0+SkZFVDJzb3VyY2VQ
cmltZUdhdGVQdHIgKzEpIC09IHhnczsKWCsgICAgICAgICAgICAqKGhlcmUt
PkpGRVQyc291cmNlUHJpbWVTb3VyY2VQdHIgKSAtPSBnc3ByOwpYKyAgICAg
ICAgICAgICooaGVyZS0+SkZFVDJzb3VyY2VQcmltZURyYWluUHJpbWVQdHIg
KSAtPSBnZHM7ClgrClgrICAgICAgICB9ClgrICAgIH0KWCsgICAgcmV0dXJu
KE9LKTsKWCt9ClhkaWZmIC1ydU4gLi4vd29yay5vcmlnL3NyYy9saWIvZGV2
L2pmZXQyL2pmZXQyYXNrLmMgLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MmFz
ay5jClgtLS0gLi4vd29yay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQy
YXNrLmMJV2VkIERlYyAzMSAxOTowMDowMCAxOTY5ClgrKysgLi9zcmMvbGli
L2Rldi9qZmV0Mi9qZmV0MmFzay5jCVR1ZSBKdW4gMjEgMTQ6MzQ6NDEgMTk5
NApYQEAgLTAsMCArMSwxNDIgQEAKWCsvKioqKioqKioqKgpYK0Jhc2VkIG9u
IGpmZXRhc2suYwpYK0NvcHlyaWdodCAxOTkwIFJlZ2VudHMgb2YgdGhlIFVu
aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
ClgrQXV0aG9yOiAxOTg3IE1hdGhldyBMZXcgYW5kIFRob21hcyBMLiBRdWFy
bGVzClgrClgrTW9kaWZpZWQgdG8gYWRkIFBTIG1vZGVsIGFuZCBuZXcgcGFy
YW1ldGVyIGRlZmluaXRpb25zICggQW50aG9ueSBFLiBQYXJrZXIgKQpYKyAg
IENvcHlyaWdodCAxOTk0ICBNYWNxdWFyaWUgVW5pdmVyc2l0eSwgU3lkbmV5
IEF1c3RyYWxpYS4KWCsgICAxMCBGZWIgMTk5NDogICBKRkVUMnZ0cmFwIGFu
ZCBKRkVUMnBhdmUgYWRkZWQKWCsqKioqKioqKioqLwpYKwpYKyNpbmNsdWRl
ICJzcGljZS5oIgpYKyNpbmNsdWRlIDxzdGRpby5oPgpYKyNpbmNsdWRlICJj
b25zdC5oIgpYKyNpbmNsdWRlICJpZnNpbS5oIgpYKyNpbmNsdWRlICJja3Rk
ZWZzLmgiClgrI2luY2x1ZGUgImRldmRlZnMuaCIKWCsjaW5jbHVkZSAiamZl
dDJkZWZzLmgiClgrI2luY2x1ZGUgInNwZXJyb3IuaCIKWCsjaW5jbHVkZSAi
dXRpbC5oIgpYKyNpbmNsdWRlICJzdWZmaXguaCIKWCsKWCsKWCsvKkFSR1NV
U0VEKi8KWCtpbnQKWCtKRkVUMmFzayhja3QsaW5zdCx3aGljaCx2YWx1ZSxz
ZWxlY3QpClgrICAgIENLVGNpcmN1aXQgKmNrdDsKWCsgICAgR0VOaW5zdGFu
Y2UgKmluc3Q7ClgrICAgIGludCB3aGljaDsKWCsgICAgSUZ2YWx1ZSAqdmFs
dWU7ClgrICAgIElGdmFsdWUgKnNlbGVjdDsKWCt7ClgrICAgIEpGRVQyaW5z
dGFuY2UgKmhlcmUgPSAoSkZFVDJpbnN0YW5jZSopaW5zdDsKWCsgICAgc3Rh
dGljIGNoYXIgKm1zZyA9ICJDdXJyZW50IGFuZCBwb3dlciBub3QgYXZhaWxh
YmxlIGZvciBhYyBhbmFseXNpcyI7ClgrICAgIHN3aXRjaCh3aGljaCkgewpY
KyAgICAgICAgY2FzZSBKRkVUMl9URU1QOgpYKyAgICAgICAgICAgIHZhbHVl
LT5yVmFsdWUgPSBoZXJlLT5KRkVUMnRlbXAtQ09OU1RDdG9LOwpYKyAgICAg
ICAgICAgIHJldHVybihPSyk7ClgrICAgICAgICBjYXNlIEpGRVQyX0FSRUE6
ClgrICAgICAgICAgICAgdmFsdWUtPnJWYWx1ZSA9IGhlcmUtPkpGRVQyYXJl
YTsKWCsgICAgICAgICAgICByZXR1cm4oT0spOwpYKyAgICAgICAgY2FzZSBK
RkVUMl9JQ19WRFM6ClgrICAgICAgICAgICAgdmFsdWUtPnJWYWx1ZSA9IGhl
cmUtPkpGRVQyaWNWRFM7ClgrICAgICAgICAgICAgcmV0dXJuKE9LKTsKWCsg
ICAgICAgIGNhc2UgSkZFVDJfSUNfVkdTOgpYKyAgICAgICAgICAgIHZhbHVl
LT5yVmFsdWUgPSBoZXJlLT5KRkVUMmljVkdTOwpYKyAgICAgICAgICAgIHJl
dHVybihPSyk7ClgrICAgICAgICBjYXNlIEpGRVQyX09GRjoKWCsgICAgICAg
ICAgICB2YWx1ZS0+aVZhbHVlID0gaGVyZS0+SkZFVDJvZmY7ClgrICAgICAg
ICAgICAgcmV0dXJuKE9LKTsKWCsgICAgICAgIGNhc2UgSkZFVDJfRFJBSU5O
T0RFOgpYKyAgICAgICAgICAgIHZhbHVlLT5pVmFsdWUgPSBoZXJlLT5KRkVU
MmRyYWluTm9kZTsKWCsgICAgICAgICAgICByZXR1cm4oT0spOwpYKyAgICAg
ICAgY2FzZSBKRkVUMl9HQVRFTk9ERToKWCsgICAgICAgICAgICB2YWx1ZS0+
aVZhbHVlID0gaGVyZS0+SkZFVDJnYXRlTm9kZTsKWCsgICAgICAgICAgICBy
ZXR1cm4oT0spOwpYKyAgICAgICAgY2FzZSBKRkVUMl9TT1VSQ0VOT0RFOgpY
KyAgICAgICAgICAgIHZhbHVlLT5pVmFsdWUgPSBoZXJlLT5KRkVUMnNvdXJj
ZU5vZGU7ClgrICAgICAgICAgICAgcmV0dXJuKE9LKTsKWCsgICAgICAgIGNh
c2UgSkZFVDJfRFJBSU5QUklNRU5PREU6ClgrICAgICAgICAgICAgdmFsdWUt
PmlWYWx1ZSA9IGhlcmUtPkpGRVQyZHJhaW5QcmltZU5vZGU7ClgrICAgICAg
ICAgICAgcmV0dXJuKE9LKTsKWCsgICAgICAgIGNhc2UgSkZFVDJfU09VUkNF
UFJJTUVOT0RFOgpYKyAgICAgICAgICAgIHZhbHVlLT5pVmFsdWUgPSBoZXJl
LT5KRkVUMnNvdXJjZVByaW1lTm9kZTsKWCsgICAgICAgICAgICByZXR1cm4o
T0spOwpYKyAgICAgICAgY2FzZSBKRkVUMl9WR1M6ClgrICAgICAgICAgICAg
dmFsdWUtPnJWYWx1ZSA9ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVU
MnZncyk7ClgrICAgICAgICAgICAgcmV0dXJuKE9LKTsKWCsgICAgICAgIGNh
c2UgSkZFVDJfVkdEOgpYKyAgICAgICAgICAgIHZhbHVlLT5yVmFsdWUgPSAq
KGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJ2Z2QpOwpYKyAgICAgICAg
ICAgIHJldHVybihPSyk7ClgrICAgICAgICBjYXNlIEpGRVQyX0NHOgpYKyAg
ICAgICAgICAgIHZhbHVlLT5yVmFsdWUgPSAqKGNrdC0+Q0tUc3RhdGUwICsg
aGVyZS0+SkZFVDJjZyk7ClgrICAgICAgICAgICAgcmV0dXJuKE9LKTsKWCsg
ICAgICAgIGNhc2UgSkZFVDJfQ0Q6ClgrICAgICAgICAgICAgdmFsdWUtPnJW
YWx1ZSA9ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmNkKTsKWCsg
ICAgICAgICAgICByZXR1cm4oT0spOwpYKyAgICAgICAgY2FzZSBKRkVUMl9D
R0Q6ClgrICAgICAgICAgICAgdmFsdWUtPnJWYWx1ZSA9ICooY2t0LT5DS1Rz
dGF0ZTAgKyBoZXJlLT5KRkVUMmNnZCk7ClgrICAgICAgICAgICAgcmV0dXJu
KE9LKTsKWCsgICAgICAgIGNhc2UgSkZFVDJfR006ClgrICAgICAgICAgICAg
dmFsdWUtPnJWYWx1ZSA9ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVU
MmdtKTsKWCsgICAgICAgICAgICByZXR1cm4oT0spOwpYKyAgICAgICAgY2Fz
ZSBKRkVUMl9HRFM6ClgrICAgICAgICAgICAgdmFsdWUtPnJWYWx1ZSA9ICoo
Y2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmdkcyk7ClgrICAgICAgICAg
ICAgcmV0dXJuKE9LKTsKWCsgICAgICAgIGNhc2UgSkZFVDJfR0dTOgpYKyAg
ICAgICAgICAgIHZhbHVlLT5yVmFsdWUgPSAqKGNrdC0+Q0tUc3RhdGUwICsg
aGVyZS0+SkZFVDJnZ3MpOwpYKyAgICAgICAgICAgIHJldHVybihPSyk7Clgr
ICAgICAgICBjYXNlIEpGRVQyX0dHRDoKWCsgICAgICAgICAgICB2YWx1ZS0+
clZhbHVlID0gKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQyZ2dkKTsK
WCsgICAgICAgICAgICByZXR1cm4oT0spOwpYKyAgICAgICAgY2FzZSBKRkVU
Ml9RR1M6ClgrICAgICAgICAgICAgdmFsdWUtPnJWYWx1ZSA9ICooY2t0LT5D
S1RzdGF0ZTAgKyBoZXJlLT5KRkVUMnFncyk7ClgrICAgICAgICAgICAgcmV0
dXJuKE9LKTsKWCsgICAgICAgIGNhc2UgSkZFVDJfQ1FHUzoKWCsgICAgICAg
ICAgICB2YWx1ZS0+clZhbHVlID0gKihja3QtPkNLVHN0YXRlMCArIGhlcmUt
PkpGRVQyY3Fncyk7ClgrICAgICAgICAgICAgcmV0dXJuKE9LKTsKWCsgICAg
ICAgIGNhc2UgSkZFVDJfUUdEOgpYKyAgICAgICAgICAgIHZhbHVlLT5yVmFs
dWUgPSAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJxZ2QpOwpYKyAg
ICAgICAgICAgIHJldHVybihPSyk7ClgrICAgICAgICBjYXNlIEpGRVQyX0NR
R0Q6ClgrICAgICAgICAgICAgdmFsdWUtPnJWYWx1ZSA9ICooY2t0LT5DS1Rz
dGF0ZTAgKyBoZXJlLT5KRkVUMmNxZ2QpOwpYKyAgICAgICAgICAgIHJldHVy
bihPSyk7ClgrICAgICAgICBjYXNlIEpGRVQyX1ZUUkFQOgpYKyAgICAgICAg
ICAgIHZhbHVlLT5yVmFsdWUgPSAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+
SkZFVDJ2dHJhcCk7ClgrICAgICAgICAgICAgcmV0dXJuKE9LKTsKWCsgICAg
ICAgIGNhc2UgSkZFVDJfUEFWRToKWCsgICAgICAgICAgICB2YWx1ZS0+clZh
bHVlID0gKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQycGF2ZSk7Clgr
ICAgICAgICAgICAgcmV0dXJuKE9LKTsKWCsgICAgICAgIGNhc2UgSkZFVDJf
Q1MgOgpYKyAgICAgICAgICAgIGlmIChja3QtPkNLVGN1cnJlbnRBbmFseXNp
cyAmIERPSU5HX0FDKSB7ClgrICAgICAgICAgICAgICAgIGVyck1zZyA9IE1B
TExPQyhzdHJsZW4obXNnKSsxKTsKWCsgICAgICAgICAgICAgICAgZXJyUnRu
ID0gIkpGRVQyYXNrIjsKWCsgICAgICAgICAgICAgICAgc3RyY3B5KGVyck1z
Zyxtc2cpOwpYKyAgICAgICAgICAgICAgICByZXR1cm4oRV9BU0tDVVJSRU5U
KTsKWCsgICAgICAgICAgICB9IGVsc2UgewpYKyAgICAgICAgICAgICAgICB2
YWx1ZS0+clZhbHVlID0gLSooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVU
MmNkKTsKWCsgICAgICAgICAgICAgICAgdmFsdWUtPnJWYWx1ZSAtPSAqKGNr
dC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJjZyk7ClgrICAgICAgICAgICAg
fQpYKyAgICAgICAgICAgIHJldHVybihPSyk7ClgrICAgICAgICBjYXNlIEpG
RVQyX1BPV0VSIDoKWCsgICAgICAgICAgICBpZiAoY2t0LT5DS1RjdXJyZW50
QW5hbHlzaXMgJiBET0lOR19BQykgewpYKyAgICAgICAgICAgICAgICBlcnJN
c2cgPSBNQUxMT0Moc3RybGVuKG1zZykrMSk7ClgrICAgICAgICAgICAgICAg
IGVyclJ0biA9ICJKRkVUMmFzayI7ClgrICAgICAgICAgICAgICAgIHN0cmNw
eShlcnJNc2csbXNnKTsKWCsgICAgICAgICAgICAgICAgcmV0dXJuKEVfQVNL
UE9XRVIpOwpYKyAgICAgICAgICAgIH0gZWxzZSB7ClgrICAgICAgICAgICAg
ICAgIHZhbHVlLT5yVmFsdWUgPSAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+
SkZFVDJjZCkgKgpYKyAgICAgICAgICAgICAgICAgICAgICAgICooY2t0LT5D
S1RyaHNPbGQgKyBoZXJlLT5KRkVUMmRyYWluTm9kZSk7ClgrICAgICAgICAg
ICAgICAgIHZhbHVlLT5yVmFsdWUgKz0gKihja3QtPkNLVHN0YXRlMCArIGhl
cmUtPkpGRVQyY2cpICogClgrICAgICAgICAgICAgICAgICAgICAgICAgKihj
a3QtPkNLVHJoc09sZCArIGhlcmUtPkpGRVQyZ2F0ZU5vZGUpOwpYKyAgICAg
ICAgICAgICAgICB2YWx1ZS0+clZhbHVlIC09ICgqKGNrdC0+Q0tUc3RhdGUw
ICsgaGVyZS0+SkZFVDJjZCkgKwpYKyAgICAgICAgICAgICAgICAgICAgICAg
ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmNnKSkgKgpYKyAgICAg
ICAgICAgICAgICAqKGNrdC0+Q0tUcmhzT2xkICsgaGVyZS0+SkZFVDJzb3Vy
Y2VOb2RlKTsKWCsgICAgICAgICAgICB9ClgrICAgICAgICAgICAgcmV0dXJu
KE9LKTsKWCsgICAgICAgIGRlZmF1bHQ6ClgrICAgICAgICAgICAgcmV0dXJu
KEVfQkFEUEFSTSk7ClgrICAgIH0KWCsgICAgLyogTk9UUkVBQ0hFRCAqLwpY
K30KWCsKWGRpZmYgLXJ1TiAuLi93b3JrLm9yaWcvc3JjL2xpYi9kZXYvamZl
dDIvamZldDJkZWZzLmggLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MmRlZnMu
aApYLS0tIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MmRl
ZnMuaAlXZWQgRGVjIDMxIDE5OjAwOjAwIDE5NjkKWCsrKyAuL3NyYy9saWIv
ZGV2L2pmZXQyL2pmZXQyZGVmcy5oCVR1ZSBKdW4gMjggMDg6MjU6NDAgMTk5
NApYQEAgLTAsMCArMSwyNTMgQEAKWCsvKioqKioqKioqKgpYK0Jhc2VkIG9u
IGpmZXRkZWZzLmgKWCtDb3B5cmlnaHQgMTk5MCBSZWdlbnRzIG9mIHRoZSBV
bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgpYK0F1dGhvcjogMTk4NSBUaG9tYXMgTC4gUXVhcmxlcwpYKwpYK01vZGlm
aWVkIHRvIGFkZCBQUyBtb2RlbCBhbmQgbmV3IHBhcmFtZXRlciBkZWZpbml0
aW9ucyAoIEFudGhvbnkgRS4gUGFya2VyICkKWCsgICBDb3B5cmlnaHQgMTk5
NCAgTWFjcXVhcmllIFVuaXZlcnNpdHksIFN5ZG5leSBBdXN0cmFsaWEuClgr
ICAgMTAgRmViIDE5OTQ6IEFkZGVkIHhpd29vLCBkMyBhbmQgYWxwaGEgdG8g
SkZFVDJpbnN0YW5jZQpYKyAgICAgICAgICAgICAgICBKRkVUMnBhdmUsIEpG
RVQydnRyYXAgYWQgSkZFVDJfU1RBVEVfQ09VTlQKWCsgICAgICAgICAgICAg
ICAgQ2hhbmdlZCBtb2RlbCB0byBjYWxsIGpmZXRwYXJtLmgsIGFkZGVkIEpG
RVQyemEgdG8gbW9kZWwgc3RydWN0ClgrICAgICAgICAgICAgICAgIERlZmlu
ZWQgSkZFVDJfVlRSQVAgYW5kIEpGRVQyX1BBVkUKWCsqKioqKioqKioqLwpY
KwpYKyNpZm5kZWYgSkZFVDIKWCsjZGVmaW5lIEpGRVQyClgrClgrI2luY2x1
ZGUgImlmc2ltLmgiClgrI2luY2x1ZGUgImdlbmRlZnMuaCIKWCsjaW5jbHVk
ZSAiY2t0ZGVmcy5oIgpYKyNpbmNsdWRlICJjb21wbGV4LmgiClgrI2luY2x1
ZGUgIm5vaXNlZGVmLmgiClgrClgrICAgIC8qIHN0cnVjdHVyZXMgdXNlZCB0
byBkZXNjcmliZSBKdW5jdGlvbiBGaWVsZCBFZmZlY3QgVHJhbnNpc3RvcnMg
Ki8KWCsKWCsKWCsvKiBpbmZvcm1hdGlvbiB1c2VkIHRvIGRlc2NyaWJlIGEg
c2luZ2xlIGluc3RhbmNlICovClgrClgrdHlwZWRlZiBzdHJ1Y3Qgc0pGRVQy
aW5zdGFuY2UgewpYKyAgICBzdHJ1Y3Qgc0pGRVQybW9kZWwgKkpGRVQybW9k
UHRyOyAgLyogYmFja3BvaW50ZXIgdG8gbW9kZWwgKi8KWCsgICAgc3RydWN0
IHNKRkVUMmluc3RhbmNlICpKRkVUMm5leHRJbnN0YW5jZTsgLyogcG9pbnRl
ciB0byBuZXh0IGluc3RhbmNlIG9mIApYKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICogY3VycmVudCBtb2RlbCovClgr
ICAgIElGdWlkIEpGRVQybmFtZTsgLyogcG9pbnRlciB0byBjaGFyYWN0ZXIg
c3RyaW5nIG5hbWluZyB0aGlzIGluc3RhbmNlICovClgrICAgIGludCBKRkVU
MnN0YXRlOyAvKiBwb2ludGVyIHRvIHN0YXJ0IG9mIHN0YXRlIHZlY3RvciBm
b3IgamZldCAqLwpYKyAgICBpbnQgSkZFVDJkcmFpbk5vZGU7ICAvKiBudW1i
ZXIgb2YgZHJhaW4gbm9kZSBvZiBqZmV0ICovClgrICAgIGludCBKRkVUMmdh
dGVOb2RlOyAgIC8qIG51bWJlciBvZiBnYXRlIG5vZGUgb2YgamZldCAqLwpY
KyAgICBpbnQgSkZFVDJzb3VyY2VOb2RlOyAvKiBudW1iZXIgb2Ygc291cmNl
IG5vZGUgb2YgamZldCAqLwpYKyAgICBpbnQgSkZFVDJkcmFpblByaW1lTm9k
ZTsgLyogbnVtYmVyIG9mIGludGVybmFsIGRyYWluIG5vZGUgb2YgamZldCAq
LwpYKyAgICBpbnQgSkZFVDJzb3VyY2VQcmltZU5vZGU7ICAgIC8qIG51bWJl
ciBvZiBpbnRlcm5hbCBzb3VyY2Ugbm9kZSBvZiBqZmV0ICovClgrClgrICAg
IGRvdWJsZSAqSkZFVDJkcmFpbkRyYWluUHJpbWVQdHI7IC8qIHBvaW50ZXIg
dG8gc3BhcnNlIG1hdHJpeCBhdCAKWCsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKiAoZHJhaW4sZHJhaW4gcHJpbWUpICovClgrICAg
IGRvdWJsZSAqSkZFVDJnYXRlRHJhaW5QcmltZVB0cjsgIC8qIHBvaW50ZXIg
dG8gc3BhcnNlIG1hdHJpeCBhdCAKWCsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKiAoZ2F0ZSxkcmFpbiBwcmltZSkgKi8KWCsgICAg
ZG91YmxlICpKRkVUMmdhdGVTb3VyY2VQcmltZVB0cjsgLyogcG9pbnRlciB0
byBzcGFyc2UgbWF0cml4IGF0IApYKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqIChnYXRlLHNvdXJjZSBwcmltZSkgKi8KWCsgICAg
ZG91YmxlICpKRkVUMnNvdXJjZVNvdXJjZVByaW1lUHRyOyAgIC8qIHBvaW50
ZXIgdG8gc3BhcnNlIG1hdHJpeCBhdCAKWCsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICogKHNvdXJjZSxzb3VyY2UgcHJpbWUp
ICovClgrICAgIGRvdWJsZSAqSkZFVDJkcmFpblByaW1lRHJhaW5QdHI7IC8q
IHBvaW50ZXIgdG8gc3BhcnNlIG1hdHJpeCBhdCAKWCsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKiAoZHJhaW4gcHJpbWUsZHJhaW4p
ICovClgrICAgIGRvdWJsZSAqSkZFVDJkcmFpblByaW1lR2F0ZVB0cjsgIC8q
IHBvaW50ZXIgdG8gc3BhcnNlIG1hdHJpeCBhdCAKWCsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKiAoZHJhaW4gcHJpbWUsZ2F0ZSkg
Ki8KWCsgICAgZG91YmxlICpKRkVUMmRyYWluUHJpbWVTb3VyY2VQcmltZVB0
cjsgICAvKiBwb2ludGVyIHRvIHNwYXJzZSBtYXRyaXgKWCsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIChkcmFpbiBw
cmltZSxzb3VyY2UgcHJpbWUpICovClgrICAgIGRvdWJsZSAqSkZFVDJzb3Vy
Y2VQcmltZUdhdGVQdHI7IC8qIHBvaW50ZXIgdG8gc3BhcnNlIG1hdHJpeCBh
dCAKWCsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAo
c291cmNlIHByaW1lLGdhdGUpICovClgrICAgIGRvdWJsZSAqSkZFVDJzb3Vy
Y2VQcmltZVNvdXJjZVB0cjsgICAvKiBwb2ludGVyIHRvIHNwYXJzZSBtYXRy
aXggYXQgClgrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqIChzb3VyY2UgcHJpbWUsc291cmNlKSAqLwpYKyAgICBkb3VibGUg
KkpGRVQyc291cmNlUHJpbWVEcmFpblByaW1lUHRyOyAgIC8qIHBvaW50ZXIg
dG8gc3BhcnNlIG1hdHJpeApYKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICogKHNvdXJjZSBwcmltZSxkcmFpbiBwcmlt
ZSkgKi8KWCsgICAgZG91YmxlICpKRkVUMmRyYWluRHJhaW5QdHI7ICAvKiBw
b2ludGVyIHRvIHNwYXJzZSBtYXRyaXggYXQgClgrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKiAoZHJhaW4sZHJhaW4pICovClgrICAgIGRv
dWJsZSAqSkZFVDJnYXRlR2F0ZVB0cjsgICAgLyogcG9pbnRlciB0byBzcGFy
c2UgbWF0cml4IGF0IApYKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICogKGdhdGUsZ2F0ZSkgKi8KWCsgICAgZG91YmxlICpKRkVUMnNvdXJj
ZVNvdXJjZVB0cjsgICAgLyogcG9pbnRlciB0byBzcGFyc2UgbWF0cml4IGF0
IApYKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIChz
b3VyY2Usc291cmNlKSAqLwpYKyAgICBkb3VibGUgKkpGRVQyZHJhaW5Qcmlt
ZURyYWluUHJpbWVQdHI7ICAgIC8qIHBvaW50ZXIgdG8gc3BhcnNlIG1hdHJp
eApYKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICogKGRyYWluIHByaW1lLGRyYWluIHByaW1lKSAqLwpYKyAgICBkb3Vi
bGUgKkpGRVQyc291cmNlUHJpbWVTb3VyY2VQcmltZVB0cjsgIC8qIHBvaW50
ZXIgdG8gc3BhcnNlIG1hdHJpeApYKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICogKHNvdXJjZSBwcmltZSxzb3VyY2Ug
cHJpbWUpICovClgrClgrCWludCBKRkVUMm1vZGU7ClgrCS8qIGRpc3RvcnRp
b24gYW5hbHlzaXMgVGF5bG9yIGNvZWZmcy4gKi8KWCsKWCsvKgpYKyAqIG5h
bWluZyBjb252ZW50aW9uOgpYKyAqIHggPSB2Z3MKWCsgKiB5ID0gdmRzClgr
ICogY2RyID0gY2RyYWluClgrICovClgrClgrI2RlZmluZSBKRkVUMk5EQ09F
RkZTCTIxClgrClgrI2lmbmRlZiBOT0RJU1RPClgrCWRvdWJsZSBKRkVUMmRD
b2VmZnNbSkZFVDJORENPRUZGU107ClgrI2Vsc2UgLyogTk9ESVNUTyAqLwpY
Kwlkb3VibGUgKkpGRVQyZENvZWZmczsKWCsjZW5kaWYgLyogTk9ESVNUTyAq
LwpYKwpYKyNpZm5kZWYgQ09ORklHClgrClgrI2RlZmluZQljZHJfeAkJSkZF
VDJkQ29lZmZzWzBdClgrI2RlZmluZQljZHJfeQkJSkZFVDJkQ29lZmZzWzFd
ClgrI2RlZmluZQljZHJfeDIJCUpGRVQyZENvZWZmc1syXQpYKyNkZWZpbmUJ
Y2RyX3kyCQlKRkVUMmRDb2VmZnNbM10KWCsjZGVmaW5lCWNkcl94eQkJSkZF
VDJkQ29lZmZzWzRdClgrI2RlZmluZQljZHJfeDMJCUpGRVQyZENvZWZmc1s1
XQpYKyNkZWZpbmUJY2RyX3kzCQlKRkVUMmRDb2VmZnNbNl0KWCsjZGVmaW5l
CWNkcl94MnkJCUpGRVQyZENvZWZmc1s3XQpYKyNkZWZpbmUJY2RyX3h5MgkJ
SkZFVDJkQ29lZmZzWzhdClgrClgrI2RlZmluZQlnZ3MxCQlKRkVUMmRDb2Vm
ZnNbOV0KWCsjZGVmaW5lCWdnZDEJCUpGRVQyZENvZWZmc1sxMF0KWCsjZGVm
aW5lCWdnczIJCUpGRVQyZENvZWZmc1sxMV0KWCsjZGVmaW5lCWdnZDIJCUpG
RVQyZENvZWZmc1sxMl0KWCsjZGVmaW5lCWdnczMJCUpGRVQyZENvZWZmc1sx
M10KWCsjZGVmaW5lCWdnZDMJCUpGRVQyZENvZWZmc1sxNF0KWCsjZGVmaW5l
CWNhcGdzMQkJSkZFVDJkQ29lZmZzWzE1XQpYKyNkZWZpbmUJY2FwZ2QxCQlK
RkVUMmRDb2VmZnNbMTZdClgrI2RlZmluZQljYXBnczIJCUpGRVQyZENvZWZm
c1sxN10KWCsjZGVmaW5lCWNhcGdkMgkJSkZFVDJkQ29lZmZzWzE4XQpYKyNk
ZWZpbmUJY2FwZ3MzCQlKRkVUMmRDb2VmZnNbMTldClgrI2RlZmluZQljYXBn
ZDMJCUpGRVQyZENvZWZmc1syMF0KWCsKWCsjZW5kaWYKWCsKWCsvKiBpbmRp
Y2VzIHRvIGFuIGFycmF5IG9mIEpGRVQyIG5vaXNlIHNvdXJjZXMgKi8KWCsK
WCsjZGVmaW5lIEpGRVQyUkROT0laICAgICAgIDAKWCsjZGVmaW5lIEpGRVQy
UlNOT0laICAgICAgIDEKWCsjZGVmaW5lIEpGRVQySUROT0laICAgICAgIDIK
WCsjZGVmaW5lIEpGRVQyRkxOT0laIDMKWCsjZGVmaW5lIEpGRVQyVE9UTk9J
WiAgICA0ClgrClgrI2RlZmluZSBKRkVUMk5TUkNTICAgICA1ClgrClgrI2lm
bmRlZiBOT05PSVNFClgrICAgIGRvdWJsZSBKRkVUMm5WYXJbTlNUQVRWQVJT
XVtKRkVUMk5TUkNTXTsKWCsjZWxzZSAvKiBOT05PSVNFICovClgrCWRvdWJs
ZSAqKkpGRVQyblZhcjsKWCsjZW5kaWYgLyogTk9OT0lTRSAqLwpYKwpYKyAg
ICB1bnNpZ25lZCBKRkVUMm9mZiA6MTsgICAgICAgICAgICAvKiAnb2ZmJyBm
bGFnIGZvciBqZmV0ICovClgrICAgIHVuc2lnbmVkIEpGRVQyYXJlYUdpdmVu
ICA6IDE7ICAgIC8qIGZsYWcgdG8gaW5kaWNhdGUgYXJlYSB3YXMgc3BlY2lm
aWVkICovClgrICAgIHVuc2lnbmVkIEpGRVQyaWNWRFNHaXZlbiA6IDE7ICAg
IC8qIGluaXRpYWwgY29uZGl0aW9uIGdpdmVuIGZsYWcgZm9yIFYgRC1TKi8K
WCsgICAgdW5zaWduZWQgSkZFVDJpY1ZHU0dpdmVuIDogMTsgICAgLyogaW5p
dGlhbCBjb25kaXRpb24gZ2l2ZW4gZmxhZyBmb3IgViBHLVMqLwpYKyAgICB1
bnNpZ25lZCBKRkVUMnRlbXBHaXZlbiAgOiAxOyAgICAvKiBmbGFnIHRvIGlu
ZGljYXRlIGluc3RhbmNlIHRlbXAgZ2l2ZW4gKi8KWCsKWCsKWCsgICAgZG91
YmxlIEpGRVQyYXJlYTsgICAgLyogYXJlYSBmYWN0b3IgZm9yIHRoZSBqZmV0
ICovClgrICAgIGRvdWJsZSBKRkVUMmljVkRTOyAgIC8qIGluaXRpYWwgY29u
ZGl0aW9uIHZvbHRhZ2UgRC1TKi8KWCsgICAgZG91YmxlIEpGRVQyaWNWR1M7
ICAgLyogaW5pdGlhbCBjb25kaXRpb24gdm9sdGFnZSBHLVMqLwpYKyAgICBk
b3VibGUgSkZFVDJ0ZW1wOyAgICAvKiBvcGVyYXRpbmcgdGVtcGVyYXR1cmUg
Ki8KWCsgICAgZG91YmxlIEpGRVQydFNhdEN1cjsgLyogdGVtcGVyYXR1cmUg
YWRqdXN0ZWQgc2F0dXJhdGlvbiBjdXJyZW50ICovClgrICAgIGRvdWJsZSBK
RkVUMnRHYXRlUG90OyAgICAvKiB0ZW1wZXJhdHVyZSBhZGp1c3RlZCBnYXRl
IHBvdGVudGlhbCAqLwpYKyAgICBkb3VibGUgSkZFVDJ0Q0dTOyAgICAvKiB0
ZW1wZXJhdHVyZSBjb3JyZWN0ZWQgRy1TIGNhcGFjaXRhbmNlICovClgrICAg
IGRvdWJsZSBKRkVUMnRDR0Q7ICAgIC8qIHRlbXBlcmF0dXJlIGNvcnJlY3Rl
ZCBHLUQgY2FwYWNpdGFuY2UgKi8KWCsgICAgZG91YmxlIEpGRVQyY29yRGVw
Q2FwOyAgIC8qIGpvaW5pbmcgcG9pbnQgb2YgdGhlIGZ3ZCBiaWFzIGRlcC4g
Y2FwIGVxLnMgKi8KWCsgICAgZG91YmxlIEpGRVQydmNyaXQ7ICAgLyogY3Jp
dGljYWwgdm9sdGFnZSBmb3IgdGhlIGluc3RhbmNlICovClgrICAgIGRvdWJs
ZSBKRkVUMmYxOyAgICAgIC8qIGNvZWZmaWNpZW50IG9mIGNhcGFjaXRhbmNl
IHBvbHlub21pYWwgZXhwICovClgrICAgIGRvdWJsZSBKRkVUMnhpd29vOyAg
ICAgICAvKiB2ZWxvY2l0eSBzYXR1cmF0aW9uIHBvdGVudGlhbCAqLwpYKyAg
ICBkb3VibGUgSkZFVDJkMzsgICAgICAgICAgLyogRHVhbCBQb3dlci1sYXcg
cGFyYW1ldGVyICovClgrICAgIGRvdWJsZSBKRkVUMmFscGhhOyAgICAgICAv
KiBjYXBhY2l0YW5jZSBtb2RlbCB0cmFuc2l0aW9uIHBhcmFtZXRlciAqLwpY
KwpYK30gSkZFVDJpbnN0YW5jZSA7ClgrClgrI2RlZmluZSBKRkVUMnZncyAg
ICAgIEpGRVQyc3RhdGUgClgrI2RlZmluZSBKRkVUMnZnZCAgICAgIEpGRVQy
c3RhdGUrMSAKWCsjZGVmaW5lIEpGRVQyY2cgICAgICAgSkZFVDJzdGF0ZSsy
IApYKyNkZWZpbmUgSkZFVDJjZCAgICAgICBKRkVUMnN0YXRlKzMgClgrI2Rl
ZmluZSBKRkVUMmNnZCAgICAgIEpGRVQyc3RhdGUrNCAKWCsjZGVmaW5lIEpG
RVQyZ20gICAgICAgSkZFVDJzdGF0ZSs1IApYKyNkZWZpbmUgSkZFVDJnZHMg
ICAgICBKRkVUMnN0YXRlKzYgClgrI2RlZmluZSBKRkVUMmdncyAgICAgIEpG
RVQyc3RhdGUrNyAKWCsjZGVmaW5lIEpGRVQyZ2dkICAgICAgSkZFVDJzdGF0
ZSs4IApYKyNkZWZpbmUgSkZFVDJxZ3MgICAgICBKRkVUMnN0YXRlKzkgClgr
I2RlZmluZSBKRkVUMmNxZ3MgICAgIEpGRVQyc3RhdGUrMTAgClgrI2RlZmlu
ZSBKRkVUMnFnZCAgICAgIEpGRVQyc3RhdGUrMTEgClgrI2RlZmluZSBKRkVU
MmNxZ2QgICAgIEpGRVQyc3RhdGUrMTIgClgrI2RlZmluZSBKRkVUMnFkcyAg
ICAgIEpGRVQyc3RhdGUrMTMKWCsjZGVmaW5lIEpGRVQyY3FkcyAgICAgSkZF
VDJzdGF0ZSsxNApYKyNkZWZpbmUgSkZFVDJwYXZlICAgICBKRkVUMnN0YXRl
KzE1ClgrI2RlZmluZSBKRkVUMnZ0cmFwICAgIEpGRVQyc3RhdGUrMTYKWCsj
ZGVmaW5lIEpGRVQydmdzdHJhcCAgSkZFVDJzdGF0ZSsxNwpYKyNkZWZpbmUg
SkZFVDJfU1RBVEVfQ09VTlQgICAgMTgKWCsKWCsvKiBwZXIgbW9kZWwgZGF0
YSAqLwpYKwpYK3R5cGVkZWYgc3RydWN0IHNKRkVUMm1vZGVsIHsgICAgICAg
LyogbW9kZWwgc3RydWN0dXJlIGZvciBhIGpmZXQgKi8KWCsgICAgaW50IEpG
RVQybW9kVHlwZTsgICAgLyogdHlwZSBpbmRleCBvZiB0aGlzIGRldmljZSB0
eXBlICovClgrICAgIHN0cnVjdCBzSkZFVDJtb2RlbCAqSkZFVDJuZXh0TW9k
ZWw7ICAgLyogcG9pbnRlciB0byBuZXh0IHBvc3NpYmxlIG1vZGVsIGluIApY
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBs
aW5rZWQgbGlzdCAqLwpYKyAgICBKRkVUMmluc3RhbmNlICogSkZFVDJpbnN0
YW5jZXM7IC8qIHBvaW50ZXIgdG8gbGlzdCBvZiBpbnN0YW5jZXMgClgrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoYXQgaGF2ZSB0
aGlzIG1vZGVsICovClgrICAgIElGdWlkIEpGRVQybW9kTmFtZTsgLyogcG9p
bnRlciB0byBjaGFyYWN0ZXIgc3RyaW5nIG5hbWluZyB0aGlzIG1vZGVsICov
ClgrICAgIGludCBKRkVUMnR5cGU7ClgrClgrI2RlZmluZSAgUEFSQU0oY29k
ZSxpZCxmbGFnLHJlZixkZWZhdWx0LGRlc2NyaXApIGRvdWJsZSByZWY7Clgr
I2luY2x1ZGUgImpmZXQycGFybS5oIgpYKwpYKyAgICBkb3VibGUgSkZFVDJk
cmFpbkNvbmR1Y3Q7ClgrICAgIGRvdWJsZSBKRkVUMnNvdXJjZUNvbmR1Y3Q7
ClgrICAgIGRvdWJsZSBKRkVUMmYyOwpYKyAgICBkb3VibGUgSkZFVDJmMzsK
WCsgICAgZG91YmxlIEpGRVQyemE7ICAgICAgLyogc2F0dXJhdGlvbiBpbmRl
eCBwYXJhbWV0ZXIgKi8KWCsgICAgZG91YmxlIEpGRVQydG5vbTsgICAgLyog
dGVtcGVyYXR1cmUgYXQgd2hpY2ggcGFyYW1ldGVycyB3ZXJlIG1lYXN1cmVk
ICovClgrClgrI2RlZmluZSAgUEFSQU0oY29kZSxpZCxmbGFnLHJlZixkZWZh
dWx0LGRlc2NyaXApIHVuc2lnbmVkIGZsYWcgOiAxOwpYKyNpbmNsdWRlICJq
ZmV0MnBhcm0uaCIKWCsgICAgdW5zaWduZWQgSkZFVDJ0bm9tR2l2ZW4gOiAx
OyAvKiB1c2VyIHNwZWNpZmllZCBUbm9tIGZvciBtb2RlbCAqLwpYKwpYK30g
SkZFVDJtb2RlbDsKWCsKWCsjaWZuZGVmIE5KRgpYKwpYKyNkZWZpbmUgTkpG
IDEKWCsjZGVmaW5lIFBKRiAtMQpYKwpYKyNlbmRpZiAvKk5KRiovClgrClgr
LyogZGV2aWNlIHBhcmFtZXRlcnMgKi8KWCsjZGVmaW5lIEpGRVQyX0FSRUEg
MQpYKyNkZWZpbmUgSkZFVDJfSUNfVkRTIDIKWCsjZGVmaW5lIEpGRVQyX0lD
X1ZHUyAzClgrI2RlZmluZSBKRkVUMl9JQyA0ClgrI2RlZmluZSBKRkVUMl9P
RkYgNQpYKyNkZWZpbmUgSkZFVDJfVEVNUCA2ClgrClgrLyogZGV2aWNlIHF1
ZXN0aW9ucyAqLwpYKyNkZWZpbmUgSkZFVDJfRFJBSU5OT0RFICAgICAgICAz
MDEKWCsjZGVmaW5lIEpGRVQyX0dBVEVOT0RFICAgICAgICAgMzAyClgrI2Rl
ZmluZSBKRkVUMl9TT1VSQ0VOT0RFICAgICAgIDMwMwpYKyNkZWZpbmUgSkZF
VDJfRFJBSU5QUklNRU5PREUgICAzMDQKWCsjZGVmaW5lIEpGRVQyX1NPVVJD
RVBSSU1FTk9ERSAgMzA1ClgrI2RlZmluZSBKRkVUMl9WR1MgICAgICAgICAg
ICAgIDMwNgpYKyNkZWZpbmUgSkZFVDJfVkdEICAgICAgICAgICAgICAzMDcK
WCsjZGVmaW5lIEpGRVQyX0NHICAgICAgICAgICAgICAgMzA4ClgrI2RlZmlu
ZSBKRkVUMl9DRCAgICAgICAgICAgICAgIDMwOQpYKyNkZWZpbmUgSkZFVDJf
Q0dEICAgICAgICAgICAgICAzMTAKWCsjZGVmaW5lIEpGRVQyX0dNICAgICAg
ICAgICAgICAgMzExClgrI2RlZmluZSBKRkVUMl9HRFMgICAgICAgICAgICAg
IDMxMgpYKyNkZWZpbmUgSkZFVDJfR0dTICAgICAgICAgICAgICAzMTMKWCsj
ZGVmaW5lIEpGRVQyX0dHRCAgICAgICAgICAgICAgMzE0ClgrI2RlZmluZSBK
RkVUMl9RR1MgICAgICAgICAgICAgIDMxNQpYKyNkZWZpbmUgSkZFVDJfQ1FH
UyAgICAgICAgICAgICAzMTYKWCsjZGVmaW5lIEpGRVQyX1FHRCAgICAgICAg
ICAgICAgMzE3ClgrI2RlZmluZSBKRkVUMl9DUUdEICAgICAgICAgICAgIDMx
OApYKyNkZWZpbmUgSkZFVDJfQ1MgICAgICAgICAgICAgICAzMTkKWCsjZGVm
aW5lIEpGRVQyX1BPV0VSICAgICAgICAgICAgMzIwClgrI2RlZmluZSBKRkVU
Ml9WVFJBUCAgICAgICAgICAgIDMyMQpYKyNkZWZpbmUgSkZFVDJfUEFWRSAg
ICAgICAgICAgICAzMjIKWCsKWCsvKiBtb2RlbCBxdWVzdGlvbnMgKi8KWCsj
ZGVmaW5lIEpGRVQyX01PRF9EUkFJTkNPTkRVQ1QgICAzMDEKWCsjZGVmaW5l
IEpGRVQyX01PRF9TT1VSQ0VDT05EVUNUICAzMDIKWCsjZGVmaW5lIEpGRVQy
X01PRF9ERVBMRVRJT05DQVAgICAzMDMKWCsjZGVmaW5lIEpGRVQyX01PRF9W
Q1JJVCAgICAgICAgICAzMDQKWCsjZGVmaW5lIEpGRVQyX01PRF9UWVBFICAg
ICAgICAgICAzMDUKWCsKWCsvKiBmdW5jdGlvbiBkZWZpbml0aW9ucyAqLwpY
KwpYKyNpbmNsdWRlICJqZmV0MmV4dC5oIgpYKwpYKyNlbmRpZiAvKkpGRVQy
Ki8KWGRpZmYgLXJ1TiAuLi93b3JrLm9yaWcvc3JjL2xpYi9kZXYvamZldDIv
amZldDJkZWwuYyAuL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQyZGVsLmMKWC0t
LSAuLi93b3JrLm9yaWcvc3JjL2xpYi9kZXYvamZldDIvamZldDJkZWwuYwlX
ZWQgRGVjIDMxIDE5OjAwOjAwIDE5NjkKWCsrKyAuL3NyYy9saWIvZGV2L2pm
ZXQyL2pmZXQyZGVsLmMJVHVlIEp1biAyMSAxNDozNDo0OCAxOTk0ClhAQCAt
MCwwICsxLDQxIEBAClgrLyoqKioqKioqKioKWCtCYXNlZCBvbiBqZmV0ZGVs
LmMKWCtDb3B5cmlnaHQgMTk5MCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5
IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpYK0F1dGhv
cjogMTk4NSBUaG9tYXMgTC4gUXVhcmxlcwpYKwpYK01vZGlmaWVkIHRvIGpm
ZXQyIGZvciBQUyBtb2RlbCBkZWZpbml0aW9uICggQW50aG9ueSBFLiBQYXJr
ZXIgKQpYKyAgIENvcHlyaWdodCAxOTk0ICBNYWNxdWFyaWUgVW5pdmVyc2l0
eSwgU3lkbmV5IEF1c3RyYWxpYS4KWCsqKioqKioqKioqLwpYKwpYKyNpbmNs
dWRlICJzcGljZS5oIgpYKyNpbmNsdWRlIDxzdGRpby5oPgpYKyNpbmNsdWRl
ICJ1dGlsLmgiClgrI2luY2x1ZGUgImpmZXQyZGVmcy5oIgpYKyNpbmNsdWRl
ICJzcGVycm9yLmgiClgrI2luY2x1ZGUgInN1ZmZpeC5oIgpYKwpYKwpYK2lu
dApYK0pGRVQyZGVsZXRlKGluTW9kZWwsbmFtZSxpbnN0KQpYKyAgICBHRU5t
b2RlbCAqaW5Nb2RlbDsKWCsgICAgSUZ1aWQgbmFtZTsKWCsgICAgR0VOaW5z
dGFuY2UgKippbnN0OwpYK3sKWCsgICAgSkZFVDJtb2RlbCAqbW9kZWwgPSAo
SkZFVDJtb2RlbCopaW5Nb2RlbDsKWCsgICAgSkZFVDJpbnN0YW5jZSAqKmZh
c3QgPSAoSkZFVDJpbnN0YW5jZSoqKWluc3Q7ClgrICAgIEpGRVQyaW5zdGFu
Y2UgKipwcmV2ID0gTlVMTDsKWCsgICAgSkZFVDJpbnN0YW5jZSAqaGVyZTsK
WCsKWCsgICAgZm9yKCA7IG1vZGVsIDsgbW9kZWwgPSBtb2RlbC0+SkZFVDJu
ZXh0TW9kZWwpIHsKWCsgICAgICAgIHByZXYgPSAmKG1vZGVsLT5KRkVUMmlu
c3RhbmNlcyk7ClgrICAgICAgICBmb3IoaGVyZSA9ICpwcmV2OyBoZXJlIDsg
aGVyZSA9ICpwcmV2KSB7ClgrICAgICAgICAgICAgaWYoaGVyZS0+SkZFVDJu
YW1lID09IG5hbWUgfHwgKGZhc3QgJiYgaGVyZT09KmZhc3QpICkgewpYKyAg
ICAgICAgICAgICAgICAqcHJldj0gaGVyZS0+SkZFVDJuZXh0SW5zdGFuY2U7
ClgrICAgICAgICAgICAgICAgIEZSRUUoaGVyZSk7ClgrICAgICAgICAgICAg
ICAgIHJldHVybihPSyk7ClgrICAgICAgICAgICAgfQpYKyAgICAgICAgICAg
IHByZXYgPSAmKGhlcmUtPkpGRVQybmV4dEluc3RhbmNlKTsKWCsgICAgICAg
IH0KWCsgICAgfQpYKyAgICByZXR1cm4oRV9OT0RFVik7ClgrfQpYZGlmZiAt
cnVOIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MmRlc3Qu
YyAuL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQyZGVzdC5jClgtLS0gLi4vd29y
ay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQyZGVzdC5jCVdlZCBEZWMg
MzEgMTk6MDA6MDAgMTk2OQpYKysrIC4vc3JjL2xpYi9kZXYvamZldDIvamZl
dDJkZXN0LmMJVHVlIEp1biAyMSAxNDozNDo1MSAxOTk0ClhAQCAtMCwwICsx
LDQxIEBAClgrLyoqKioqKioqKioKWCtCYXNlZCBvbiBqZmV0ZGVzdC5jClgr
Q29weXJpZ2h0IDE5OTAgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD
YWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KWCtBdXRob3I6IDE5
ODUgVGhvbWFzIEwuIFF1YXJsZXMKWCsKWCtNb2RpZmllZCB0byBqZmV0MiBm
b3IgUFMgbW9kZWwgZGVmaW5pdGlvbiAoIEFudGhvbnkgRS4gUGFya2VyICkK
WCsgICBDb3B5cmlnaHQgMTk5NCAgTWFjcXVhcmllIFVuaXZlcnNpdHksIFN5
ZG5leSBBdXN0cmFsaWEuClgrKioqKioqKioqKi8KWCsvKgpYKyAqLwpYKwpY
KyNpbmNsdWRlICJzcGljZS5oIgpYKyNpbmNsdWRlIDxzdGRpby5oPgpYKyNp
bmNsdWRlICJ1dGlsLmgiClgrI2luY2x1ZGUgImpmZXQyZGVmcy5oIgpYKyNp
bmNsdWRlICJzdWZmaXguaCIKWCsKWCsKWCt2b2lkClgrSkZFVDJkZXN0cm95
KGluTW9kZWwpClgrICAgIEdFTm1vZGVsICoqaW5Nb2RlbDsKWCt7ClgrICAg
IEpGRVQybW9kZWwgKiptb2RlbCA9IChKRkVUMm1vZGVsKiopaW5Nb2RlbDsK
WCsgICAgSkZFVDJpbnN0YW5jZSAqaGVyZTsKWCsgICAgSkZFVDJpbnN0YW5j
ZSAqcHJldiA9IE5VTEw7ClgrICAgIEpGRVQybW9kZWwgKm1vZCA9ICptb2Rl
bDsKWCsgICAgSkZFVDJtb2RlbCAqb2xkbW9kID0gTlVMTDsKWCsKWCsgICAg
Zm9yKCA7IG1vZCA7IG1vZCA9IG1vZC0+SkZFVDJuZXh0TW9kZWwpIHsKWCsg
ICAgICAgIGlmKG9sZG1vZCkgRlJFRShvbGRtb2QpOwpYKyAgICAgICAgb2xk
bW9kID0gbW9kOwpYKyAgICAgICAgcHJldiA9IChKRkVUMmluc3RhbmNlICop
TlVMTDsKWCsgICAgICAgIGZvcihoZXJlID0gbW9kLT5KRkVUMmluc3RhbmNl
cyA7IGhlcmUgOyBoZXJlID0gaGVyZS0+SkZFVDJuZXh0SW5zdGFuY2UpIHsK
WCsgICAgICAgICAgICBpZihwcmV2KSBGUkVFKHByZXYpOwpYKyAgICAgICAg
ICAgIHByZXYgPSBoZXJlOwpYKyAgICAgICAgfQpYKyAgICAgICAgaWYocHJl
dikgRlJFRShwcmV2KTsKWCsgICAgfQpYKyAgICBpZihvbGRtb2QpIEZSRUUo
b2xkbW9kKTsKWCsgICAgKm1vZGVsID0gTlVMTDsKWCt9ClhkaWZmIC1ydU4g
Li4vd29yay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQyZXh0LmggLi9z
cmMvbGliL2Rldi9qZmV0Mi9qZmV0MmV4dC5oClgtLS0gLi4vd29yay5vcmln
L3NyYy9saWIvZGV2L2pmZXQyL2pmZXQyZXh0LmgJV2VkIERlYyAzMSAxOTow
MDowMCAxOTY5ClgrKysgLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MmV4dC5o
CVR1ZSBKdW4gMjEgMTQ6MzQ6NTQgMTk5NApYQEAgLTAsMCArMSw0MyBAQApY
Ky8qKioqKioqKioqClgrQmFzZWQgb24gamZldGV4dC5oClgrQ29weXJpZ2h0
IDE5OTAgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KWCtBdXRob3I6IDE5ODUgVGhvbWFz
IEwuIFF1YXJsZXMKWCsKWCtNb2RpZmllZCB0byBhZGQgUFMgbW9kZWwgYW5k
IG5ldyBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMgKCBBbnRob255IEUuIFBhcmtl
ciApClgrICAgQ29weXJpZ2h0IDE5OTQgIE1hY3F1YXJpZSBVbml2ZXJzaXR5
LCBTeWRuZXkgQXVzdHJhbGlhLgpYKyoqKioqKioqKiovClgrClgrI2lmZGVm
IF9fU1REQ19fClgrZXh0ZXJuIGludCBKRkVUMmFjTG9hZChHRU5tb2RlbCos
Q0tUY2lyY3VpdCopOwpYK2V4dGVybiBpbnQgSkZFVDJhc2soQ0tUY2lyY3Vp
dCosR0VOaW5zdGFuY2UqLGludCxJRnZhbHVlKixJRnZhbHVlKik7ClgrZXh0
ZXJuIGludCBKRkVUMmRlbGV0ZShHRU5tb2RlbCosSUZ1aWQsR0VOaW5zdGFu
Y2UqKik7ClgrZXh0ZXJuIHZvaWQgSkZFVDJkZXN0cm95KEdFTm1vZGVsKiop
OwpYK2V4dGVybiBpbnQgSkZFVDJnZXRpYyhHRU5tb2RlbCosQ0tUY2lyY3Vp
dCopOwpYK2V4dGVybiBpbnQgSkZFVDJsb2FkKEdFTm1vZGVsKixDS1RjaXJj
dWl0Kik7ClgrZXh0ZXJuIGludCBKRkVUMm1Bc2soQ0tUY2lyY3VpdCosR0VO
bW9kZWwqLGludCxJRnZhbHVlKik7ClgrZXh0ZXJuIGludCBKRkVUMm1EZWxl
dGUoR0VObW9kZWwqKixJRnVpZCxHRU5tb2RlbCopOwpYK2V4dGVybiBpbnQg
SkZFVDJtUGFyYW0oaW50LElGdmFsdWUqLEdFTm1vZGVsKik7ClgrZXh0ZXJu
IGludCBKRkVUMnBhcmFtKGludCxJRnZhbHVlKixHRU5pbnN0YW5jZSosSUZ2
YWx1ZSopOwpYK2V4dGVybiBpbnQgSkZFVDJzZXR1cChTTVBtYXRyaXgqLEdF
Tm1vZGVsKixDS1RjaXJjdWl0KixpbnQqKTsKWCtleHRlcm4gaW50IEpGRVQy
dW5zZXR1cChHRU5tb2RlbCosQ0tUY2lyY3VpdCopOwpYK2V4dGVybiBpbnQg
SkZFVDJ0ZW1wKEdFTm1vZGVsKixDS1RjaXJjdWl0Kik7ClgrZXh0ZXJuIGlu
dCBKRkVUMnRydW5jKEdFTm1vZGVsKixDS1RjaXJjdWl0Kixkb3VibGUqKTsK
WCtleHRlcm4gaW50IEpGRVQybm9pc2UoaW50LGludCxHRU5tb2RlbCosQ0tU
Y2lyY3VpdCosTmRhdGEqLGRvdWJsZSopOwpYKwpYKyNlbHNlIC8qIHN0ZGMg
Ki8KWCtleHRlcm4gaW50IEpGRVQyYWNMb2FkKCk7ClgrZXh0ZXJuIGludCBK
RkVUMmFzaygpOwpYK2V4dGVybiBpbnQgSkZFVDJkZWxldGUoKTsKWCtleHRl
cm4gdm9pZCBKRkVUMmRlc3Ryb3koKTsKWCtleHRlcm4gaW50IEpGRVQyZ2V0
aWMoKTsKWCtleHRlcm4gaW50IEpGRVQybG9hZCgpOwpYK2V4dGVybiBpbnQg
SkZFVDJtQXNrKCk7ClgrZXh0ZXJuIGludCBKRkVUMm1EZWxldGUoKTsKWCtl
eHRlcm4gaW50IEpGRVQybVBhcmFtKCk7ClgrZXh0ZXJuIGludCBKRkVUMnBh
cmFtKCk7ClgrZXh0ZXJuIGludCBKRkVUMnNldHVwKCk7ClgrZXh0ZXJuIGlu
dCBKRkVUMnVuc2V0dXAoKTsKWCtleHRlcm4gaW50IEpGRVQydGVtcCgpOwpY
K2V4dGVybiBpbnQgSkZFVDJ0cnVuYygpOwpYK2V4dGVybiBpbnQgSkZFVDJu
b2lzZSgpOwpYKyNlbmRpZiAvKiBzdGRjICovClhkaWZmIC1ydU4gLi4vd29y
ay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQyaWMuYyAuL3NyYy9saWIv
ZGV2L2pmZXQyL2pmZXQyaWMuYwpYLS0tIC4uL3dvcmsub3JpZy9zcmMvbGli
L2Rldi9qZmV0Mi9qZmV0MmljLmMJV2VkIERlYyAzMSAxOTowMDowMCAxOTY5
ClgrKysgLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MmljLmMJVHVlIEp1biAy
MSAxNDozNDo1NyAxOTk0ClhAQCAtMCwwICsxLDQ3IEBAClgrLyoqKioqKioq
KioKWCtCYXNlZCBvbiBqZmV0aWMuYwpYK0NvcHlyaWdodCAxOTkwIFJlZ2Vu
dHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuClgrQXV0aG9yOiAxOTg1IFRob21hcyBMLiBRdWFybGVz
ClgrClgrTW9kaWZpZWQgdG8gamZldDIgZm9yIFBTIG1vZGVsIGRlZmluaXRp
b24gKCBBbnRob255IEUuIFBhcmtlciApClgrICAgQ29weXJpZ2h0IDE5OTQg
IE1hY3F1YXJpZSBVbml2ZXJzaXR5LCBTeWRuZXkgQXVzdHJhbGlhLgpYKyoq
KioqKioqKiovClgrLyoKWCsgKi8KWCsKWCsjaW5jbHVkZSAic3BpY2UuaCIK
WCsjaW5jbHVkZSA8c3RkaW8uaD4KWCsjaW5jbHVkZSAiY2t0ZGVmcy5oIgpY
KyNpbmNsdWRlICJqZmV0MmRlZnMuaCIKWCsjaW5jbHVkZSAic3BlcnJvci5o
IgpYKyNpbmNsdWRlICJzdWZmaXguaCIKWCsKWCsKWCtpbnQKWCtKRkVUMmdl
dGljKGluTW9kZWwsY2t0KQpYKyAgICBHRU5tb2RlbCAqaW5Nb2RlbDsKWCsg
ICAgQ0tUY2lyY3VpdCAqY2t0OwpYK3sKWCsgICAgSkZFVDJtb2RlbCAqbW9k
ZWwgPSAoSkZFVDJtb2RlbCopaW5Nb2RlbDsKWCsgICAgSkZFVDJpbnN0YW5j
ZSAqaGVyZTsKWCsgICAgLyoKWCsgICAgICogZ3JhYiBpbml0aWFsIGNvbmRp
dGlvbnMgb3V0IG9mIHJocyBhcnJheS4gICBVc2VyIHNwZWNpZmllZCwgc28g
dXNlClgrICAgICAqIGV4dGVybmFsIG5vZGVzIHRvIGdldCB2YWx1ZXMKWCsg
ICAgICovClgrClgrICAgIGZvciggOyBtb2RlbCA7IG1vZGVsID0gbW9kZWwt
PkpGRVQybmV4dE1vZGVsKSB7ClgrICAgICAgICBmb3IoaGVyZSA9IG1vZGVs
LT5KRkVUMmluc3RhbmNlczsgaGVyZSA7IGhlcmUgPSBoZXJlLT5KRkVUMm5l
eHRJbnN0YW5jZSkgewpYKyAgICAgICAgICAgIGlmKCFoZXJlLT5KRkVUMmlj
VkRTR2l2ZW4pIHsKWCsgICAgICAgICAgICAgICAgaGVyZS0+SkZFVDJpY1ZE
UyA9IApYKyAgICAgICAgICAgICAgICAgICAgICAgICooY2t0LT5DS1RyaHMg
KyBoZXJlLT5KRkVUMmRyYWluTm9kZSkgLSAKWCsgICAgICAgICAgICAgICAg
ICAgICAgICAqKGNrdC0+Q0tUcmhzICsgaGVyZS0+SkZFVDJzb3VyY2VOb2Rl
KTsKWCsgICAgICAgICAgICB9ClgrICAgICAgICAgICAgaWYoIWhlcmUtPkpG
RVQyaWNWR1NHaXZlbikgewpYKyAgICAgICAgICAgICAgICBoZXJlLT5KRkVU
MmljVkdTID0gClgrICAgICAgICAgICAgICAgICAgICAgICAgKihja3QtPkNL
VHJocyArIGhlcmUtPkpGRVQyZ2F0ZU5vZGUpIC0gClgrICAgICAgICAgICAg
ICAgICAgICAgICAgKihja3QtPkNLVHJocyArIGhlcmUtPkpGRVQyc291cmNl
Tm9kZSk7ClgrICAgICAgICAgICAgfQpYKyAgICAgICAgfQpYKyAgICB9Clgr
ICAgIHJldHVybihPSyk7ClgrfQpYZGlmZiAtcnVOIC4uL3dvcmsub3JpZy9z
cmMvbGliL2Rldi9qZmV0Mi9qZmV0Mml0Zi5oIC4vc3JjL2xpYi9kZXYvamZl
dDIvamZldDJpdGYuaApYLS0tIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9q
ZmV0Mi9qZmV0Mml0Zi5oCVdlZCBEZWMgMzEgMTk6MDA6MDAgMTk2OQpYKysr
IC4vc3JjL2xpYi9kZXYvamZldDIvamZldDJpdGYuaAlUdWUgSnVuIDIxIDE0
OjM1OjAxIDE5OTQKWEBAIC0wLDAgKzEsODUgQEAKWCsvKioqKioqKioqKgpY
K0Jhc2VkIG9uIGpmZXRpdGYuaApYK0NvcHlyaWdodCAxOTkwIFJlZ2VudHMg
b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuClgrClgrTW9kaWZpZWQgdG8gYWRkIFBTIG1vZGVsIGFuZCBu
ZXcgcGFyYW1ldGVyIGRlZmluaXRpb25zICggQW50aG9ueSBFLiBQYXJrZXIg
KQpYKyAgIENvcHlyaWdodCAxOTk0ICBNYWNxdWFyaWUgVW5pdmVyc2l0eSwg
U3lkbmV5IEF1c3RyYWxpYS4KWCsgICBweiBhbmQgZGlzdG8gbm90IHN1cHBv
cnRlZApYKyoqKioqKioqKiovClgrI2lmZGVmIERFVl9qZmV0MgpYKwpYKyNp
Zm5kZWYgREVWX0pGRVQyClgrI2RlZmluZSBERVZfSkZFVDIKWCsKWCsjaW5j
bHVkZSAiamZldDJleHQuaCIKWCtleHRlcm4gSUZwYXJtIEpGRVQycFRhYmxl
WyBdOwpYK2V4dGVybiBJRnBhcm0gSkZFVDJtUFRhYmxlWyBdOwpYK2V4dGVy
biBjaGFyICpKRkVUMm5hbWVzWyBdOwpYK2V4dGVybiBpbnQgSkZFVDJwVFNp
emU7ClgrZXh0ZXJuIGludCBKRkVUMm1QVFNpemU7ClgrZXh0ZXJuIGludCBK
RkVUMm5TaXplOwpYK2V4dGVybiBpbnQgSkZFVDJpU2l6ZTsKWCtleHRlcm4g
aW50IEpGRVQybVNpemU7ClgrClgrU1BJQ0VkZXYgSkZFVDJpbmZvID0gewpY
KyAgICB7ClgrICAgICAgICAiSkZFVDIiLApYKyAgICAgICAgIlNob3J0IGNo
YW5uZWwgZmllbGQgZWZmZWN0IHRyYW5zaXN0b3IiLApYKwpYKyAgICAgICAg
JkpGRVQyblNpemUsClgrICAgICAgICAmSkZFVDJuU2l6ZSwKWCsgICAgICAg
IEpGRVQybmFtZXMsClgrClgrICAgICAgICAmSkZFVDJwVFNpemUsClgrICAg
ICAgICBKRkVUMnBUYWJsZSwKWCsKWCsgICAgICAgICZKRkVUMm1QVFNpemUs
ClgrICAgICAgICBKRkVUMm1QVGFibGUsClgrCURFVl9ERUZBVUxUClgrICAg
IH0sClgrClgrICAgIEpGRVQycGFyYW0sClgrICAgIEpGRVQybVBhcmFtLApY
KyAgICBKRkVUMmxvYWQsClgrICAgIEpGRVQyc2V0dXAsClgrICAgIEpGRVQy
dW5zZXR1cCwKWCsgICAgSkZFVDJzZXR1cCwKWCsgICAgSkZFVDJ0ZW1wLApY
KyAgICBKRkVUMnRydW5jLApYKyAgICBOVUxMLApYKyAgICBKRkVUMmFjTG9h
ZCwKWCsgICAgTlVMTCwKWCsgICAgSkZFVDJkZXN0cm95LApYKyNpZmRlZiBE
RUxFVEVTClgrICAgIEpGRVQybURlbGV0ZSwKWCsgICAgSkZFVDJkZWxldGUs
ClgrI2Vsc2UgLyogREVMRVRFUyAqLwpYKyAgICBOVUxMLApYKyAgICBOVUxM
LApYKyNlbmRpZiAvKiBERUxFVEVTICovClgrICAgIEpGRVQyZ2V0aWMsClgr
ICAgIEpGRVQyYXNrLApYKyAgICBKRkVUMm1Bc2ssClgrICAgIE5VTEwsIC8q
IEFOX3B6ICovClgrICAgIE5VTEwsClgrICAgIE5VTEwsClgrICAgIE5VTEws
ClgrICAgIE5VTEwsClgrICAgIE5VTEwsClgrICAgIE5VTEwsClgrICAgIE5V
TEwsClgrICAgIE5VTEwsIC8qIEFOX2Rpc3RvICovClgrI2lmZGVmIEFOX25v
aXNlClgrICAgIEpGRVQybm9pc2UsClgrI2Vsc2UJLyogQU5fbm9pc2UgKi8K
WCsgICAgTlVMTCwKWCsjZW5kaWYJLyogQU5fbm9pc2UgKi8KWCsKWCsgICAg
JkpGRVQyaVNpemUsClgrICAgICZKRkVUMm1TaXplClgrClgrfTsKWCsKWCsK
WCsjZW5kaWYKWCsjZW5kaWYKWGRpZmYgLXJ1TiAuLi93b3JrLm9yaWcvc3Jj
L2xpYi9kZXYvamZldDIvamZldDJsb2FkLmMgLi9zcmMvbGliL2Rldi9qZmV0
Mi9qZmV0MmxvYWQuYwpYLS0tIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9q
ZmV0Mi9qZmV0MmxvYWQuYwlXZWQgRGVjIDMxIDE5OjAwOjAwIDE5NjkKWCsr
KyAuL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQybG9hZC5jCVR1ZSBKdW4gMjgg
MDk6MTA6NDQgMTk5NApYQEAgLTAsMCArMSwzMzcgQEAKWCsvKioqKioqKioq
KgpYK0Jhc2VkIG9uIGpmZXRsb2FkLmMKWCtDb3B5cmlnaHQgMTk5MCBSZWdl
bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmln
aHRzIHJlc2VydmVkLgpYK0F1dGhvcjogMTk4NSBUaG9tYXMgTC4gUXVhcmxl
cwpYKwpYK01vZGlmaWVkIHRvIGFkZCBQUyBtb2RlbCBhbmQgbmV3IHBhcmFt
ZXRlciBkZWZpbml0aW9ucyAoIEFudGhvbnkgRS4gUGFya2VyICkKWCsgICBD
b3B5cmlnaHQgMTk5NCAgTWFjcXVhcmllIFVuaXZlcnNpdHksIFN5ZG5leSBB
dXN0cmFsaWEuClgrICAgMTAgRmViIDE5OTQ6ICBOZXcgY29kZSBhZGRlZCB0
byBjYWxsIHBzbW9kZWwuYyByb3V0aW5lcwpYKyoqKioqKioqKiovClgrClgr
I2luY2x1ZGUgInNwaWNlLmgiClgrI2luY2x1ZGUgPHN0ZGlvLmg+ClgrI2lu
Y2x1ZGUgInV0aWwuaCIKWCsjaW5jbHVkZSAiY2t0ZGVmcy5oIgpYKyNpbmNs
dWRlICJqZmV0MmRlZnMuaCIKWCsjaW5jbHVkZSAiY29uc3QuaCIKWCsjaW5j
bHVkZSAidHJhbmRlZnMuaCIKWCsjaW5jbHVkZSAic3BlcnJvci5oIgpYKyNp
bmNsdWRlICJkZXZkZWZzLmgiClgrI2luY2x1ZGUgInBzbW9kZWwuaCIKWCsj
aW5jbHVkZSAic3VmZml4LmgiClgrClgraW50ClgrSkZFVDJsb2FkKGluTW9k
ZWwsY2t0KQpYKyAgICBHRU5tb2RlbCAqaW5Nb2RlbDsKWCsgICAgQ0tUY2ly
Y3VpdCAqY2t0OwpYKyAgICAgICAgLyogYWN0dWFsbHkgbG9hZCB0aGUgY3Vy
cmVudCByZXNpc3RhbmNlIHZhbHVlIGludG8gdGhlIApYKyAgICAgICAgICog
c3BhcnNlIG1hdHJpeCBwcmV2aW91c2x5IHByb3ZpZGVkIApYKyAgICAgICAg
ICovClgrewpYKyAgICByZWdpc3RlciBKRkVUMm1vZGVsICptb2RlbCA9IChK
RkVUMm1vZGVsKilpbk1vZGVsOwpYKyAgICByZWdpc3RlciBKRkVUMmluc3Rh
bmNlICpoZXJlOwpYKyAgICBkb3VibGUgY2FwZ2Q7ClgrICAgIGRvdWJsZSBj
YXBnczsKWCsgICAgZG91YmxlIGNkOwpYKyAgICBkb3VibGUgY2RoYXQ7Clgr
ICAgIGRvdWJsZSBjZHJlcTsKWCsgICAgZG91YmxlIGNlcTsKWCsgICAgZG91
YmxlIGNlcWdkOwpYKyAgICBkb3VibGUgY2VxZ3M7ClgrICAgIGRvdWJsZSBj
ZzsKWCsgICAgZG91YmxlIGNnZDsKWCsgICAgZG91YmxlIGNnaGF0OwpYKyAg
ICBkb3VibGUgY3pnZDsKWCsgICAgZG91YmxlIGN6Z2RmMjsKWCsgICAgZG91
YmxlIGN6Z3M7ClgrICAgIGRvdWJsZSBjemdzZjI7ClgrICAgIGRvdWJsZSBk
ZWx2ZHM7ClgrICAgIGRvdWJsZSBkZWx2Z2Q7ClgrICAgIGRvdWJsZSBkZWx2
Z3M7ClgrICAgIGRvdWJsZSBmY3BiMjsKWCsgICAgZG91YmxlIGdkcHI7Clgr
ICAgIGRvdWJsZSBnZHM7ClgrICAgIGRvdWJsZSBnZXE7ClgrICAgIGRvdWJs
ZSBnZ2Q7ClgrICAgIGRvdWJsZSBnZ3M7ClgrICAgIGRvdWJsZSBnbTsKWCsg
ICAgZG91YmxlIGdzcHI7ClgrICAgIGRvdWJsZSBzYXJnOwpYKyAgICBkb3Vi
bGUgdHdvcDsKWCsgICAgZG91YmxlIHZkczsKWCsgICAgZG91YmxlIHZnZDsK
WCsgICAgZG91YmxlIHZnczsKWCsgICAgZG91YmxlIHhmYWN0OwpYKyAgICBp
bnQgaWNoZWNrOwpYKyAgICBpbnQgaWNoazE7ClgrICAgIGludCBlcnJvcjsK
WCsKWCsgICAgLyogIGxvb3AgdGhyb3VnaCBhbGwgdGhlIG1vZGVscyAqLwpY
KyAgICBmb3IoIDsgbW9kZWwgIT0gTlVMTDsgbW9kZWwgPSBtb2RlbC0+SkZF
VDJuZXh0TW9kZWwgKSB7ClgrClgrICAgICAgICAvKiBsb29wIHRocm91Z2gg
YWxsIHRoZSBpbnN0YW5jZXMgb2YgdGhlIG1vZGVsICovClgrICAgICAgICBm
b3IgKGhlcmUgPSBtb2RlbC0+SkZFVDJpbnN0YW5jZXM7IGhlcmUgIT0gTlVM
TCA7ClgrICAgICAgICAgICAgICAgIGhlcmU9aGVyZS0+SkZFVDJuZXh0SW5z
dGFuY2UpIHsKWCsKWCsgICAgICAgICAgICAvKgpYKyAgICAgICAgICAgICAq
ICBkYyBtb2RlbCBwYXJhbWV0ZXJzIApYKyAgICAgICAgICAgICAqLwpYKyAg
ICAgICAgICAgIGdkcHI9bW9kZWwtPkpGRVQyZHJhaW5Db25kdWN0KmhlcmUt
PkpGRVQyYXJlYTsKWCsgICAgICAgICAgICBnc3ByPW1vZGVsLT5KRkVUMnNv
dXJjZUNvbmR1Y3QqaGVyZS0+SkZFVDJhcmVhOwpYKyAgICAgICAgICAgIC8q
ClgrICAgICAgICAgICAgICogICAgaW5pdGlhbGl6YXRpb24KWCsgICAgICAg
ICAgICAgKi8KWCsgICAgICAgICAgICBpY2hlY2s9MTsKWCsgICAgICAgICAg
ICBpZiggY2t0LT5DS1Rtb2RlICYgTU9ERUlOSVRTTVNJRykgewpYKyAgICAg
ICAgICAgICAgICB2Z3M9ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVU
MnZncyk7ClgrICAgICAgICAgICAgICAgIHZnZD0gKihja3QtPkNLVHN0YXRl
MCArIGhlcmUtPkpGRVQydmdkKTsKWCsgICAgICAgICAgICB9IGVsc2UgaWYg
KGNrdC0+Q0tUbW9kZSAmIE1PREVJTklUVFJBTikgewpYKyAgICAgICAgICAg
ICAgICB2Z3M9ICooY2t0LT5DS1RzdGF0ZTEgKyBoZXJlLT5KRkVUMnZncyk7
ClgrICAgICAgICAgICAgICAgIHZnZD0gKihja3QtPkNLVHN0YXRlMSArIGhl
cmUtPkpGRVQydmdkKTsKWCsgICAgICAgICAgICB9IGVsc2UgaWYgKCAoY2t0
LT5DS1Rtb2RlICYgTU9ERUlOSVRKQ1QpICYmClgrICAgICAgICAgICAgICAg
ICAgICAoY2t0LT5DS1Rtb2RlICYgTU9ERVRSQU5PUCkgJiYKWCsgICAgICAg
ICAgICAgICAgICAgIChja3QtPkNLVG1vZGUgJiBNT0RFVUlDKSApIHsKWCsg
ICAgICAgICAgICAgICAgdmRzPW1vZGVsLT5KRkVUMnR5cGUqaGVyZS0+SkZF
VDJpY1ZEUzsKWCsgICAgICAgICAgICAgICAgdmdzPW1vZGVsLT5KRkVUMnR5
cGUqaGVyZS0+SkZFVDJpY1ZHUzsKWCsgICAgICAgICAgICAgICAgdmdkPXZn
cy12ZHM7ClgrICAgICAgICAgICAgfSBlbHNlIGlmICggKGNrdC0+Q0tUbW9k
ZSAmIE1PREVJTklUSkNUKSAmJgpYKyAgICAgICAgICAgICAgICAgICAgKGhl
cmUtPkpGRVQyb2ZmID09IDApICApIHsKWCsgICAgICAgICAgICAgICAgdmdz
ID0gLTE7ClgrICAgICAgICAgICAgICAgIHZnZCA9IC0xOwpYKyAgICAgICAg
ICAgIH0gZWxzZSBpZiggKGNrdC0+Q0tUbW9kZSAmIE1PREVJTklUSkNUKSB8
fApYKyAgICAgICAgICAgICAgICAgICAgKChja3QtPkNLVG1vZGUgJiBNT0RF
SU5JVEZJWCkgJiYgKGhlcmUtPkpGRVQyb2ZmKSkpIHsKWCsgICAgICAgICAg
ICAgICAgdmdzID0gMDsKWCsgICAgICAgICAgICAgICAgdmdkID0gMDsKWCsg
ICAgICAgICAgICB9IGVsc2UgewpYKyNpZm5kZWYgUFJFRElDVE9SClgrICAg
ICAgICAgICAgICAgIGlmKGNrdC0+Q0tUbW9kZSAmIE1PREVJTklUUFJFRCkg
ewpYKyAgICAgICAgICAgICAgICAgICAgeGZhY3Q9Y2t0LT5DS1RkZWx0YS9j
a3QtPkNLVGRlbHRhT2xkWzFdOwpYKyAgICAgICAgICAgICAgICAgICAgKihj
a3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQydmdzKT0gClgrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICooY2t0LT5DS1RzdGF0ZTEgKyBoZXJlLT5K
RkVUMnZncyk7ClgrICAgICAgICAgICAgICAgICAgICB2Z3M9KDEreGZhY3Qp
KiAqKGNrdC0+Q0tUc3RhdGUxICsgaGVyZS0+SkZFVDJ2Z3MpLXhmYWN0KgpY
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKGNrdC0+Q0tUc3RhdGUy
ICsgaGVyZS0+SkZFVDJ2Z3MpOwpYKyAgICAgICAgICAgICAgICAgICAgKihj
a3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQydmdkKT0gClgrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICooY2t0LT5DS1RzdGF0ZTEgKyBoZXJlLT5K
RkVUMnZnZCk7ClgrICAgICAgICAgICAgICAgICAgICB2Z2Q9KDEreGZhY3Qp
KiAqKGNrdC0+Q0tUc3RhdGUxICsgaGVyZS0+SkZFVDJ2Z2QpLXhmYWN0KgpY
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKGNrdC0+Q0tUc3RhdGUy
ICsgaGVyZS0+SkZFVDJ2Z2QpOwpYKyAgICAgICAgICAgICAgICAgICAgKihj
a3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQyY2cpPSAKWCsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMSArIGhlcmUtPkpG
RVQyY2cpOwpYKyAgICAgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRl
MCArIGhlcmUtPkpGRVQyY2QpPSAKWCsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKihja3QtPkNLVHN0YXRlMSArIGhlcmUtPkpGRVQyY2QpOwpYKyAg
ICAgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpG
RVQyY2dkKT0KWCsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihja3Qt
PkNLVHN0YXRlMSArIGhlcmUtPkpGRVQyY2dkKTsKWCsgICAgICAgICAgICAg
ICAgICAgICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmdtKT0KWCsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMSAr
IGhlcmUtPkpGRVQyZ20pOwpYKyAgICAgICAgICAgICAgICAgICAgKihja3Qt
PkNLVHN0YXRlMCArIGhlcmUtPkpGRVQyZ2RzKT0KWCsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMSArIGhlcmUtPkpGRVQy
Z2RzKTsKWCsgICAgICAgICAgICAgICAgICAgICooY2t0LT5DS1RzdGF0ZTAg
KyBoZXJlLT5KRkVUMmdncyk9ClgrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICooY2t0LT5DS1RzdGF0ZTEgKyBoZXJlLT5KRkVUMmdncyk7ClgrICAg
ICAgICAgICAgICAgICAgICAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZF
VDJnZ2QpPQpYKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKGNrdC0+
Q0tUc3RhdGUxICsgaGVyZS0+SkZFVDJnZ2QpOwpYKyAgICAgICAgICAgICAg
ICB9IGVsc2UgewpYKyNlbmRpZiAvKlBSRURJQ1RPUiovClgrICAgICAgICAg
ICAgICAgICAgICAvKgpYKyAgICAgICAgICAgICAgICAgICAgICogIGNvbXB1
dGUgbmV3IG5vbmxpbmVhciBicmFuY2ggdm9sdGFnZXMgClgrICAgICAgICAg
ICAgICAgICAgICAgKi8KWCsgICAgICAgICAgICAgICAgICAgIHZncz1tb2Rl
bC0+SkZFVDJ0eXBlKgpYKyAgICAgICAgICAgICAgICAgICAgICAgICgqKGNr
dC0+Q0tUcmhzT2xkKyBoZXJlLT5KRkVUMmdhdGVOb2RlKS0KWCsgICAgICAg
ICAgICAgICAgICAgICAgICAqKGNrdC0+Q0tUcmhzT2xkKyAKWCsgICAgICAg
ICAgICAgICAgICAgICAgICBoZXJlLT5KRkVUMnNvdXJjZVByaW1lTm9kZSkp
OwpYKyAgICAgICAgICAgICAgICAgICAgdmdkPW1vZGVsLT5KRkVUMnR5cGUq
ClgrICAgICAgICAgICAgICAgICAgICAgICAgKCooY2t0LT5DS1RyaHNPbGQr
aGVyZS0+SkZFVDJnYXRlTm9kZSktClgrICAgICAgICAgICAgICAgICAgICAg
ICAgKihja3QtPkNLVHJoc09sZCsKWCsgICAgICAgICAgICAgICAgICAgICAg
ICBoZXJlLT5KRkVUMmRyYWluUHJpbWVOb2RlKSk7ClgrI2lmbmRlZiBQUkVE
SUNUT1IKWCsgICAgICAgICAgICAgICAgfQpYKyNlbmRpZiAvKlBSRURJQ1RP
UiovClgrICAgICAgICAgICAgICAgIGRlbHZncz12Z3MtICooY2t0LT5DS1Rz
dGF0ZTAgKyBoZXJlLT5KRkVUMnZncyk7ClgrICAgICAgICAgICAgICAgIGRl
bHZnZD12Z2QtICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMnZnZCk7
ClgrICAgICAgICAgICAgICAgIGRlbHZkcz1kZWx2Z3MtZGVsdmdkOwpYKyAg
ICAgICAgICAgICAgICBjZ2hhdD0gKihja3QtPkNLVHN0YXRlMCArIGhlcmUt
PkpGRVQyY2cpKyAKWCsgICAgICAgICAgICAgICAgICAgICAgICAqKGNrdC0+
Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJnZ2QpKmRlbHZnZCsKWCsgICAgICAg
ICAgICAgICAgICAgICAgICAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZF
VDJnZ3MpKmRlbHZnczsKWCsgICAgICAgICAgICAgICAgY2RoYXQ9ICooY2t0
LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmNkKSsKWCsgICAgICAgICAgICAg
ICAgICAgICAgICAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJnbSkq
ZGVsdmdzKwpYKyAgICAgICAgICAgICAgICAgICAgICAgICooY2t0LT5DS1Rz
dGF0ZTAgKyBoZXJlLT5KRkVUMmdkcykqZGVsdmRzLQpYKyAgICAgICAgICAg
ICAgICAgICAgICAgICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmdn
ZCkqZGVsdmdkOwpYKyAgICAgICAgICAgICAgICAvKgpYKyAgICAgICAgICAg
ICAgICAgKiAgIGJ5cGFzcyBpZiBzb2x1dGlvbiBoYXMgbm90IGNoYW5nZWQg
ClgrICAgICAgICAgICAgICAgICAqLwpYKyAgICAgICAgICAgICAgICBpZigo
Y2t0LT5DS1RieXBhc3MpICYmClgrICAgICAgICAgICAgICAgICAgICAoIShj
a3QtPkNLVG1vZGUgJiBNT0RFSU5JVFBSRUQpKSAmJgpYKyAgICAgICAgICAg
ICAgICAgICAgKEZBQlMoZGVsdmdzKSA8IGNrdC0+Q0tUcmVsdG9sKk1BWChG
QUJTKHZncyksClgrICAgICAgICAgICAgICAgICAgICAgICAgRkFCUygqKGNr
dC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJ2Z3MpKSkrClgrICAgICAgICAg
ICAgICAgICAgICAgICAgY2t0LT5DS1R2b2x0VG9sKSApClgrICAgICAgICBp
ZiAoIChGQUJTKGRlbHZnZCkgPCBja3QtPkNLVHJlbHRvbCpNQVgoRkFCUyh2
Z2QpLApYKyAgICAgICAgICAgICAgICAgICAgICAgIEZBQlMoKihja3QtPkNL
VHN0YXRlMCArIGhlcmUtPkpGRVQydmdkKSkpKwpYKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNrdC0+Q0tUdm9sdFRvbCkpClgrICAgICAgICBpZiAoIChG
QUJTKGNnaGF0LSooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmNnKSkg
ClgrICAgICAgICAgICAgICAgICAgICAgICAgPCBja3QtPkNLVHJlbHRvbCpN
QVgoRkFCUyhjZ2hhdCksClgrICAgICAgICAgICAgICAgICAgICAgICAgRkFC
UygqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJjZykpKSsKWCsgICAg
ICAgICAgICAgICAgICAgICAgICBja3QtPkNLVGFic3RvbCkgKSBpZiAoIC8q
IGhhY2sgLSBleHByZXNzaW9uIHRvbyBiaWcgKi8KWCsgICAgICAgICAgICAg
ICAgICAgIChGQUJTKGNkaGF0LSooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5K
RkVUMmNkKSkKWCsgICAgICAgICAgICAgICAgICAgICAgICA8IGNrdC0+Q0tU
cmVsdG9sKk1BWChGQUJTKGNkaGF0KSwKWCsgICAgICAgICAgICAgICAgICAg
ICAgICBGQUJTKCooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmNkKSkp
KwpYKyAgICAgICAgICAgICAgICAgICAgICAgIGNrdC0+Q0tUYWJzdG9sKSAp
IHsKWCsKWCsgICAgICAgICAgICAgICAgICAgIC8qIHdlIGNhbiBkbyBhIGJ5
cGFzcyAqLwpYKyAgICAgICAgICAgICAgICAgICAgdmdzPSAqKGNrdC0+Q0tU
c3RhdGUwICsgaGVyZS0+SkZFVDJ2Z3MpOwpYKyAgICAgICAgICAgICAgICAg
ICAgdmdkPSAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJ2Z2QpOwpY
KyAgICAgICAgICAgICAgICAgICAgdmRzPSB2Z3MtdmdkOwpYKyAgICAgICAg
ICAgICAgICAgICAgY2c9ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVU
MmNnKTsKWCsgICAgICAgICAgICAgICAgICAgIGNkPSAqKGNrdC0+Q0tUc3Rh
dGUwICsgaGVyZS0+SkZFVDJjZCk7ClgrICAgICAgICAgICAgICAgICAgICBj
Z2Q9ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmNnZCk7ClgrICAg
ICAgICAgICAgICAgICAgICBnbT0gKihja3QtPkNLVHN0YXRlMCArIGhlcmUt
PkpGRVQyZ20pOwpYKyAgICAgICAgICAgICAgICAgICAgZ2RzPSAqKGNrdC0+
Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJnZHMpOwpYKyAgICAgICAgICAgICAg
ICAgICAgZ2dzPSAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJnZ3Mp
OwpYKyAgICAgICAgICAgICAgICAgICAgZ2dkPSAqKGNrdC0+Q0tUc3RhdGUw
ICsgaGVyZS0+SkZFVDJnZ2QpOwpYKyAgICAgICAgICAgICAgICAgICAgZ290
byBsb2FkOwpYKyAgICAgICAgICAgICAgICB9ClgrICAgICAgICAgICAgICAg
IC8qClgrICAgICAgICAgICAgICAgICAqICBsaW1pdCBub25saW5lYXIgYnJh
bmNoIHZvbHRhZ2VzIApYKyAgICAgICAgICAgICAgICAgKi8KWCsgICAgICAg
ICAgICAgICAgaWNoazE9MTsKWCsgICAgICAgICAgICAgICAgdmdzID0gREVW
cG5qbGltKHZncywqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJ2Z3Mp
LApYKyAgICAgICAgICAgICAgICAgICAgICAgIChoZXJlLT5KRkVUMnRlbXAq
Q09OU1RLb3ZlclEpLCBoZXJlLT5KRkVUMnZjcml0LCAmaWNoZWNrKTsKWCsg
ICAgICAgICAgICAgICAgdmdkID0gREVWcG5qbGltKHZnZCwqKGNrdC0+Q0tU
c3RhdGUwICsgaGVyZS0+SkZFVDJ2Z2QpLApYKyAgICAgICAgICAgICAgICAg
ICAgICAgIChoZXJlLT5KRkVUMnRlbXAqQ09OU1RLb3ZlclEpLCBoZXJlLT5K
RkVUMnZjcml0LCZpY2hrMSk7ClgrICAgICAgICAgICAgICAgIGlmIChpY2hr
MSA9PSAxKSB7ClgrICAgICAgICAgICAgICAgICAgICBpY2hlY2s9MTsKWCsg
ICAgICAgICAgICAgICAgfQpYKyAgICAgICAgICAgICAgICB2Z3MgPSBERVZm
ZXRsaW0odmdzLCooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMnZncyks
ClgrICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwtPkpGRVQydnRvKTsK
WCsgICAgICAgICAgICAgICAgdmdkID0gREVWZmV0bGltKHZnZCwqKGNrdC0+
Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJ2Z2QpLApYKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGVsLT5KRkVUMnZ0byk7ClgrICAgICAgICAgICAgfQpY
KyAgICAgICAgICAgIC8qClgrICAgICAgICAgICAgICogICBkZXRlcm1pbmUg
ZGMgY3VycmVudCBhbmQgZGVyaXZhdGl2ZXMgClgrICAgICAgICAgICAgICov
ClgrICAgICAgICAgICAgdmRzPXZncy12Z2Q7ClgrICAgICAgICAgICAgaWYg
KHZkcyA8IDAuMCkgewpYKyAgICAgICAgICAgICAgIGNkID0gLVBTaWRzKGNr
dCwgbW9kZWwsIGhlcmUsIHZnZCwgdmdzLApYKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmY2dkLCAmY2csICZnZ2QsICZnZ3MsICZnbSwgJmdkcyk7
ClgrICAgICAgICAgICAgICAgZ2RzICs9IGdtOwpYKyAgICAgICAgICAgICAg
IGdtICA9IC1nbTsKWCsgICAgICAgICAgICB9IGVsc2UgewpYKyAgICAgICAg
ICAgICAgIGNkID0gIFBTaWRzKGNrdCwgbW9kZWwsIGhlcmUsIHZncywgdmdk
LCAKWCsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNnLCAmY2dkLCAm
Z2dzLCAmZ2dkLCAmZ20sICZnZHMpOwpYKyAgICAgICAgICAgIH0KWCsgICAg
ICAgICAgICBjZyA9IGNnICsgY2dkOwpYKyAgICAgICAgICAgIGNkID0gY2Qg
LSBjZ2Q7ClgrClgrICAgICAgICAgICAgaWYgKCAoY2t0LT5DS1Rtb2RlICYg
KE1PREVUUkFOIHwgTU9ERUFDIHwgTU9ERUlOSVRTTVNJRykgKSB8fApYKyAg
ICAgICAgICAgICAgICAgICAgKChja3QtPkNLVG1vZGUgJiBNT0RFVFJBTk9Q
KSAmJiAoY2t0LT5DS1Rtb2RlICYgTU9ERVVJQykpICl7ClgrICAgICAgICAg
ICAgICAgIC8qIApYKyAgICAgICAgICAgICAgICAgKiAgICBjaGFyZ2Ugc3Rv
cmFnZSBlbGVtZW50cyAKWCsgICAgICAgICAgICAgICAgICovClgrICAgICAg
ICAgICAgICAgIGRvdWJsZSBjYXBkcyA9IG1vZGVsLT5KRkVUMmNhcGRzKmhl
cmUtPkpGRVQyYXJlYTsKWCsKWCsgICAgICAgICAgICAgICAgUFNjaGFyZ2Uo
Y2t0LCBtb2RlbCwgaGVyZSwgdmdzLCB2Z2QsICZjYXBncywgJmNhcGdkKTsK
WCsKWCsgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhlcmUt
PkpGRVQycWRzKSA9IGNhcGRzICogdmRzOwpYKyAgICAgICAgICAgIApYKyAg
ICAgICAgICAgICAgICAvKgpYKyAgICAgICAgICAgICAgICAgKiAgIHN0b3Jl
IHNtYWxsLXNpZ25hbCBwYXJhbWV0ZXJzIApYKyAgICAgICAgICAgICAgICAg
Ki8KWCsgICAgICAgICAgICAgICAgaWYoICghKGNrdC0+Q0tUbW9kZSAmIE1P
REVUUkFOT1ApKSB8fCAKWCsgICAgICAgICAgICAgICAgICAgICAgICAoIShj
a3QtPkNLVG1vZGUgJiBNT0RFVUlDKSkgKSB7ClgrICAgICAgICAgICAgICAg
ICAgICBpZihja3QtPkNLVG1vZGUgJiBNT0RFSU5JVFNNU0lHKSB7ClgrICAg
ICAgICAgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhlcmUt
PkpGRVQycWdzKSA9IGNhcGdzOwpYKyAgICAgICAgICAgICAgICAgICAgICAg
ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMnFnZCkgPSBjYXBnZDsK
WCsgICAgICAgICAgICAgICAgICAgICAgICAqKGNrdC0+Q0tUc3RhdGUwICsg
aGVyZS0+SkZFVDJxZHMpID0gY2FwZHM7ClgrICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7IC8qZ28gdG8gMTAwMCovClgrICAgICAgICAgICAg
ICAgICAgICB9ClgrICAgICAgICAgICAgICAgICAgICAvKgpYKyAgICAgICAg
ICAgICAgICAgICAgICogICB0cmFuc2llbnQgYW5hbHlzaXMgClgrICAgICAg
ICAgICAgICAgICAgICAgKi8KWCsgICAgICAgICAgICAgICAgICAgIGlmKGNr
dC0+Q0tUbW9kZSAmIE1PREVJTklUVFJBTikgewpYKyAgICAgICAgICAgICAg
ICAgICAgICAgICooY2t0LT5DS1RzdGF0ZTEgKyBoZXJlLT5KRkVUMnFncykg
PQpYKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihja3QtPkNL
VHN0YXRlMCArIGhlcmUtPkpGRVQycWdzKTsKWCsgICAgICAgICAgICAgICAg
ICAgICAgICAqKGNrdC0+Q0tUc3RhdGUxICsgaGVyZS0+SkZFVDJxZ2QpID0K
WCsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooY2t0LT5DS1Rz
dGF0ZTAgKyBoZXJlLT5KRkVUMnFnZCk7ClgrICAgICAgICAgICAgICAgICAg
ICAgICAgKihja3QtPkNLVHN0YXRlMSArIGhlcmUtPkpGRVQycWRzKSA9Clgr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKGNrdC0+Q0tUc3Rh
dGUwICsgaGVyZS0+SkZFVDJxZHMpOwpYKyAgICAgICAgICAgICAgICAgICAg
fQpYKyAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBOSWludGVncmF0ZShj
a3QsJmdlcSwmY2VxLGNhcGdzLGhlcmUtPkpGRVQycWdzKTsKWCsgICAgICAg
ICAgICAgICAgICAgIGlmKGVycm9yKSByZXR1cm4oZXJyb3IpOwpYKyAgICAg
ICAgICAgICAgICAgICAgZ2dzID0gZ2dzICsgZ2VxOwpYKyAgICAgICAgICAg
ICAgICAgICAgY2cgPSBjZyArICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5K
RkVUMmNxZ3MpOwpYKyAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBOSWlu
dGVncmF0ZShja3QsJmdlcSwmY2VxLGNhcGdkLGhlcmUtPkpGRVQycWdkKTsK
WCsgICAgICAgICAgICAgICAgICAgIGlmKGVycm9yKSByZXR1cm4oZXJyb3Ip
OwpYKyAgICAgICAgICAgICAgICAgICAgZ2dkID0gZ2dkICsgZ2VxOwpYKyAg
ICAgICAgICAgICAgICAgICAgY2cgPSBjZyArICooY2t0LT5DS1RzdGF0ZTAg
KyBoZXJlLT5KRkVUMmNxZ2QpOwpYKyAgICAgICAgICAgICAgICAgICAgY2Qg
PSBjZCAtICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmNxZ2QpOwpY
KyAgICAgICAgICAgICAgICAgICAgY2dkID0gY2dkICsgKihja3QtPkNLVHN0
YXRlMCArIGhlcmUtPkpGRVQyY3FnZCk7ClgrICAgICAgICAgICAgICAgICAg
ICBlcnJvciA9IE5JaW50ZWdyYXRlKGNrdCwmZ2VxLCZjZXEsY2FwZHMsaGVy
ZS0+SkZFVDJxZHMpOwpYKyAgICAgICAgICAgICAgICAgICAgY2QgPSBjZCAr
ICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmNxZHMpOwpYKyAgICAg
ICAgICAgICAgICAgICAgaWYoZXJyb3IpIHJldHVybihlcnJvcik7ClgrICAg
ICAgICAgICAgICAgICAgICBpZiAoY2t0LT5DS1Rtb2RlICYgTU9ERUlOSVRU
UkFOKSB7ClgrICAgICAgICAgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0
YXRlMSArIGhlcmUtPkpGRVQyY3FncykgPQpYKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQy
Y3Fncyk7ClgrICAgICAgICAgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0
YXRlMSArIGhlcmUtPkpGRVQyY3FnZCkgPQpYKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQy
Y3FnZCk7ClgrICAgICAgICAgICAgICAgICAgICAgICAgKihja3QtPkNLVHN0
YXRlMSArIGhlcmUtPkpGRVQyY3FkcykgPQpYKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQy
Y3Fkcyk7ClgrICAgICAgICAgICAgICAgICAgICB9ClgrICAgICAgICAgICAg
ICAgIH0KWCsgICAgICAgICAgICB9ClgrICAgICAgICAgICAgLyoKWCsgICAg
ICAgICAgICAgKiAgY2hlY2sgY29udmVyZ2VuY2UgClgrICAgICAgICAgICAg
ICovClgrICAgICAgICAgICAgaWYoICghKGNrdC0+Q0tUbW9kZSAmIE1PREVJ
TklURklYKSkgfCAoIShja3QtPkNLVG1vZGUgJiBNT0RFVUlDKSkpIHsKWCsg
ICAgICAgICAgICAgICAgaWYoIChpY2hlY2sgPT0gMSkKWCsjaWZuZGVmIE5F
V0NPTlYKWCsvKiBYWFggKi8KWCsjZW5kaWYgLypORVdDT05WKi8KWCsgICAg
ICAgICAgICAgICAgICAgICAgICB8fCAoRkFCUyhjZ2hhdC1jZykgPj0gY2t0
LT5DS1RyZWx0b2wqClgrICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1B
WChGQUJTKGNnaGF0KSxGQUJTKGNnKSkrY2t0LT5DS1RhYnN0b2wpIHx8Clgr
ICAgICAgICAgICAgICAgICAgICAgICAgKEZBQlMoY2RoYXQtY2QpID4gY2t0
LT5DS1RyZWx0b2wqClgrICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1B
WChGQUJTKGNkaGF0KSxGQUJTKGNkKSkrY2t0LT5DS1RhYnN0b2wpIApYKyAg
ICAgICAgICAgICAgICAgICAgICAgICkgewpYKyAgICAgICAgICAgICAgICAg
ICAgY2t0LT5DS1Rub25jb24rKzsKWCsJCSAgICBja3QtPkNLVHRyb3VibGVF
bHQgPSAoR0VOaW5zdGFuY2UgKikgaGVyZTsKWCsgICAgICAgICAgICAgICAg
fQpYKyAgICAgICAgICAgIH0KWCsgICAgICAgICAgICAqKGNrdC0+Q0tUc3Rh
dGUwICsgaGVyZS0+SkZFVDJ2Z3MpID0gdmdzOwpYKyAgICAgICAgICAgICoo
Y2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMnZnZCkgPSB2Z2Q7ClgrICAg
ICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQyY2cpID0g
Y2c7ClgrICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpG
RVQyY2QpID0gY2Q7ClgrICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCAr
IGhlcmUtPkpGRVQyY2dkKSA9IGNnZDsKWCsgICAgICAgICAgICAqKGNrdC0+
Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJnbSkgPSBnbTsKWCsgICAgICAgICAg
ICAqKGNrdC0+Q0tUc3RhdGUwICsgaGVyZS0+SkZFVDJnZHMpID0gZ2RzOwpY
KyAgICAgICAgICAgICooY2t0LT5DS1RzdGF0ZTAgKyBoZXJlLT5KRkVUMmdn
cykgPSBnZ3M7ClgrICAgICAgICAgICAgKihja3QtPkNLVHN0YXRlMCArIGhl
cmUtPkpGRVQyZ2dkKSA9IGdnZDsKWCsgICAgICAgICAgICAvKgpYKyAgICAg
ICAgICAgICAqICAgIGxvYWQgY3VycmVudCB2ZWN0b3IKWCsgICAgICAgICAg
ICAgKi8KWCtsb2FkOgpYKyAgICAgICAgICAgIGNlcWdkPW1vZGVsLT5KRkVU
MnR5cGUqKGNnZC1nZ2QqdmdkKTsKWCsgICAgICAgICAgICBjZXFncz1tb2Rl
bC0+SkZFVDJ0eXBlKigoY2ctY2dkKS1nZ3MqdmdzKTsKWCsgICAgICAgICAg
ICBjZHJlcT1tb2RlbC0+SkZFVDJ0eXBlKigoY2QrY2dkKS1nZHMqdmRzLWdt
KnZncyk7ClgrICAgICAgICAgICAgKihja3QtPkNLVHJocyArIGhlcmUtPkpG
RVQyZ2F0ZU5vZGUpICs9ICgtY2VxZ3MtY2VxZ2QpOwpYKyAgICAgICAgICAg
ICooY2t0LT5DS1RyaHMgKyBoZXJlLT5KRkVUMmRyYWluUHJpbWVOb2RlKSAr
PQpYKyAgICAgICAgICAgICAgICAgICAgKC1jZHJlcStjZXFnZCk7ClgrICAg
ICAgICAgICAgKihja3QtPkNLVHJocyArIGhlcmUtPkpGRVQyc291cmNlUHJp
bWVOb2RlKSArPQpYKyAgICAgICAgICAgICAgICAgICAgKGNkcmVxK2NlcWdz
KTsKWCsgICAgICAgICAgICAvKgpYKyAgICAgICAgICAgICAqICAgIGxvYWQg
eSBtYXRyaXggClgrICAgICAgICAgICAgICovClgrICAgICAgICAgICAgKiho
ZXJlLT5KRkVUMmRyYWluRHJhaW5QcmltZVB0cikgKz0gKC1nZHByKTsKWCsg
ICAgICAgICAgICAqKGhlcmUtPkpGRVQyZ2F0ZURyYWluUHJpbWVQdHIpICs9
ICgtZ2dkKTsKWCsgICAgICAgICAgICAqKGhlcmUtPkpGRVQyZ2F0ZVNvdXJj
ZVByaW1lUHRyKSArPSAoLWdncyk7ClgrICAgICAgICAgICAgKihoZXJlLT5K
RkVUMnNvdXJjZVNvdXJjZVByaW1lUHRyKSArPSAoLWdzcHIpOwpYKyAgICAg
ICAgICAgICooaGVyZS0+SkZFVDJkcmFpblByaW1lRHJhaW5QdHIpICs9ICgt
Z2Rwcik7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVUMmRyYWluUHJpbWVH
YXRlUHRyKSArPSAoZ20tZ2dkKTsKWCsgICAgICAgICAgICAqKGhlcmUtPkpG
RVQyZHJhaW5QcmltZVNvdXJjZVByaW1lUHRyKSArPSAoLWdkcy1nbSk7Clgr
ICAgICAgICAgICAgKihoZXJlLT5KRkVUMnNvdXJjZVByaW1lR2F0ZVB0cikg
Kz0gKC1nZ3MtZ20pOwpYKyAgICAgICAgICAgICooaGVyZS0+SkZFVDJzb3Vy
Y2VQcmltZVNvdXJjZVB0cikgKz0gKC1nc3ByKTsKWCsgICAgICAgICAgICAq
KGhlcmUtPkpGRVQyc291cmNlUHJpbWVEcmFpblByaW1lUHRyKSArPSAoLWdk
cyk7ClgrICAgICAgICAgICAgKihoZXJlLT5KRkVUMmRyYWluRHJhaW5QdHIp
ICs9IChnZHByKTsKWCsgICAgICAgICAgICAqKGhlcmUtPkpGRVQyZ2F0ZUdh
dGVQdHIpICs9IChnZ2QrZ2dzKTsKWCsgICAgICAgICAgICAqKGhlcmUtPkpG
RVQyc291cmNlU291cmNlUHRyKSArPSAoZ3Nwcik7ClgrICAgICAgICAgICAg
KihoZXJlLT5KRkVUMmRyYWluUHJpbWVEcmFpblByaW1lUHRyKSArPSAoZ2Rw
citnZHMrZ2dkKTsKWCsgICAgICAgICAgICAqKGhlcmUtPkpGRVQyc291cmNl
UHJpbWVTb3VyY2VQcmltZVB0cikgKz0gKGdzcHIrZ2RzK2dtK2dncyk7Clgr
ICAgICAgICB9ClgrICAgIH0KWCsgICAgcmV0dXJuKE9LKTsKWCt9ClhkaWZm
IC1ydU4gLi4vd29yay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQybWFz
ay5jIC4vc3JjL2xpYi9kZXYvamZldDIvamZldDJtYXNrLmMKWC0tLSAuLi93
b3JrLm9yaWcvc3JjL2xpYi9kZXYvamZldDIvamZldDJtYXNrLmMJV2VkIERl
YyAzMSAxOTowMDowMCAxOTY5ClgrKysgLi9zcmMvbGliL2Rldi9qZmV0Mi9q
ZmV0Mm1hc2suYwlUdWUgSnVuIDIxIDE0OjM1OjA3IDE5OTQKWEBAIC0wLDAg
KzEsNTkgQEAKWCsvKioqKioqKioqKgpYK0Jhc2VkIG9uIGpmZXRtYXNrLmMK
WCtDb3B5cmlnaHQgMTk5MCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m
IENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpYK0F1dGhvcjog
MTk4NyBNYXRoZXcgTGV3IGFuZCBUaG9tYXMgTC4gUXVhcmxlcwpYKwpYK01v
ZGlmaWVkIHRvIGFkZCBQUyBtb2RlbCBhbmQgbmV3IHBhcmFtZXRlciBkZWZp
bml0aW9ucyAoIEFudGhvbnkgRS4gUGFya2VyICkKWCsgICBDb3B5cmlnaHQg
MTk5NCAgTWFjcXVhcmllIFVuaXZlcnNpdHksIFN5ZG5leSBBdXN0cmFsaWEu
ClgrICAgMTAgRmViIDE5OTQ6IEFkZGVkIGNhbGwgdG8gamZldHBhcm0uaApY
KyoqKioqKioqKiovClgrLyoKWCsgKi8KWCsKWCsjaW5jbHVkZSAic3BpY2Uu
aCIKWCsjaW5jbHVkZSA8c3RkaW8uaD4KWCsjaW5jbHVkZSAiY29uc3QuaCIK
WCsjaW5jbHVkZSAiaWZzaW0uaCIKWCsjaW5jbHVkZSAiY2t0ZGVmcy5oIgpY
KyNpbmNsdWRlICJkZXZkZWZzLmgiClgrI2luY2x1ZGUgImpmZXQyZGVmcy5o
IgpYKyNpbmNsdWRlICJzcGVycm9yLmgiClgrI2luY2x1ZGUgInN1ZmZpeC5o
IgpYKwpYKwpYKy8qQVJHU1VTRUQqLwpYK2ludApYK0pGRVQybUFzayhja3Qs
aW5Nb2RlbCx3aGljaCx2YWx1ZSkKWCsgICAgQ0tUY2lyY3VpdCAqY2t0OwpY
KyAgICBHRU5tb2RlbCAqaW5Nb2RlbDsKWCsgICAgaW50IHdoaWNoOwpYKyAg
ICBJRnZhbHVlICp2YWx1ZTsKWCt7ClgrICAgIEpGRVQybW9kZWwgKm1vZGVs
ID0gKEpGRVQybW9kZWwqKWluTW9kZWw7ClgrICAgIHN3aXRjaCh3aGljaCkg
ewpYKyAgICAgICAgY2FzZSBKRkVUMl9NT0RfVE5PTToKWCsgICAgICAgICAg
ICB2YWx1ZS0+clZhbHVlID0gbW9kZWwtPkpGRVQydG5vbS1DT05TVEN0b0s7
ClgrICAgICAgICAgICAgcmV0dXJuKE9LKTsKWCsgClgrI2RlZmluZSBQQVJB
TShjb2RlLGlkLGZsYWcscmVmLGRlZmF1bHQsZGVzY3JpcCkgY2FzZSBpZDog
XApYKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUt
PnJWYWx1ZSA9IG1vZGVsLT5yZWY7IHJldHVybihPSyk7ClgrI2luY2x1ZGUg
ImpmZXQycGFybS5oIgpYKyAKWCsgICAgICAgIGNhc2UgSkZFVDJfTU9EX0RS
QUlOQ09ORFVDVDoKWCsgICAgICAgICAgICB2YWx1ZS0+clZhbHVlID0gbW9k
ZWwtPkpGRVQyZHJhaW5Db25kdWN0OwpYKyAgICAgICAgICAgIHJldHVybihP
Syk7ClgrICAgICAgICBjYXNlIEpGRVQyX01PRF9TT1VSQ0VDT05EVUNUOgpY
KyAgICAgICAgICAgIHZhbHVlLT5yVmFsdWUgPSBtb2RlbC0+SkZFVDJzb3Vy
Y2VDb25kdWN0OwpYKyAgICAgICAgICAgIHJldHVybihPSyk7ClgrICAgICAg
ICBjYXNlIEpGRVQyX01PRF9UWVBFOgpYKwkgICAgaWYgKG1vZGVsLT5KRkVU
MnR5cGUgPT0gTkpGKQpYKyAgICAgICAgICAgICAgICB2YWx1ZS0+c1ZhbHVl
ID0gIm5qZiI7ClgrCSAgICBlbHNlClgrICAgICAgICAgICAgICAgIHZhbHVl
LT5zVmFsdWUgPSAicGpmIjsKWCsgICAgICAgICAgICByZXR1cm4oT0spOwpY
KyAgICAgICAgZGVmYXVsdDoKWCsgICAgICAgICAgICByZXR1cm4oRV9CQURQ
QVJNKTsKWCsgICAgfQpYKyAgICAvKiBOT1RSRUFDSEVEICovClgrfQpYKwpY
ZGlmZiAtcnVOIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0
Mm1kZWwuYyAuL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQybWRlbC5jClgtLS0g
Li4vd29yay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQybWRlbC5jCVdl
ZCBEZWMgMzEgMTk6MDA6MDAgMTk2OQpYKysrIC4vc3JjL2xpYi9kZXYvamZl
dDIvamZldDJtZGVsLmMJVHVlIEp1biAyMSAxNDozNToxMSAxOTk0ClhAQCAt
MCwwICsxLDQ5IEBAClgrLyoqKioqKioqKioKWCtiYXNlZCBvbiBqZmV0bWRl
bC5jClgrQ29weXJpZ2h0IDE5OTAgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0
eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KWCtBdXRo
b3I6IDE5ODUgVGhvbWFzIEwuIFF1YXJsZXMKWCsKWCtNb2RpZmllZCB0byBq
ZmV0MiBmb3IgUFMgbW9kZWwgZGVmaW5pdGlvbiAoIEFudGhvbnkgRS4gUGFy
a2VyICkKWCsgICBDb3B5cmlnaHQgMTk5NCAgTWFjcXVhcmllIFVuaXZlcnNp
dHksIFN5ZG5leSBBdXN0cmFsaWEuClgrKioqKioqKioqKi8KWCsvKgpYKyAq
LwpYKwpYKyNpbmNsdWRlICJzcGljZS5oIgpYKyNpbmNsdWRlIDxzdGRpby5o
PgpYKyNpbmNsdWRlICJ1dGlsLmgiClgrI2luY2x1ZGUgImpmZXQyZGVmcy5o
IgpYKyNpbmNsdWRlICJzcGVycm9yLmgiClgrI2luY2x1ZGUgInN1ZmZpeC5o
IgpYKwpYKwpYK2ludApYK0pGRVQybURlbGV0ZShpbk1vZGVsLG1vZG5hbWUs
a2lsbCkKWCsgICAgR0VObW9kZWwgKippbk1vZGVsOwpYKyAgICBJRnVpZCBt
b2RuYW1lOwpYKyAgICBHRU5tb2RlbCAqa2lsbDsKWCt7ClgrICAgIEpGRVQy
bW9kZWwgKiptb2RlbCA9IChKRkVUMm1vZGVsKiopaW5Nb2RlbDsKWCsgICAg
SkZFVDJtb2RlbCAqbW9kZmFzdCA9IChKRkVUMm1vZGVsKilraWxsOwpYKyAg
ICBKRkVUMmluc3RhbmNlICpoZXJlOwpYKyAgICBKRkVUMmluc3RhbmNlICpw
cmV2ID0gTlVMTDsKWCsgICAgSkZFVDJtb2RlbCAqKm9sZG1vZDsKWCsgICAg
b2xkbW9kID0gbW9kZWw7ClgrICAgIGZvciggOyAqbW9kZWwgOyBtb2RlbCA9
ICYoKCptb2RlbCktPkpGRVQybmV4dE1vZGVsKSkgewpYKyAgICAgICAgaWYo
ICgqbW9kZWwpLT5KRkVUMm1vZE5hbWUgPT0gbW9kbmFtZSB8fCAKWCsgICAg
ICAgICAgICAgICAgKG1vZGZhc3QgJiYgKm1vZGVsID09IG1vZGZhc3QpICkg
Z290byBkZWxnb3Q7ClgrICAgICAgICBvbGRtb2QgPSBtb2RlbDsKWCsgICAg
fQpYKyAgICByZXR1cm4oRV9OT01PRCk7ClgrClgrZGVsZ290OgpYKyAgICAq
b2xkbW9kID0gKCptb2RlbCktPkpGRVQybmV4dE1vZGVsOyAvKiBjdXQgZGVs
ZXRlZCBkZXZpY2Ugb3V0IG9mIGxpc3QgKi8KWCsgICAgZm9yKGhlcmUgPSAo
Km1vZGVsKS0+SkZFVDJpbnN0YW5jZXMgOyBoZXJlIDsgaGVyZSA9IGhlcmUt
PkpGRVQybmV4dEluc3RhbmNlKSB7ClgrICAgICAgICBpZihwcmV2KSBGUkVF
KHByZXYpOwpYKyAgICAgICAgcHJldiA9IGhlcmU7ClgrICAgIH0KWCsgICAg
aWYocHJldikgRlJFRShwcmV2KTsKWCsgICAgRlJFRSgqbW9kZWwpOwpYKyAg
ICByZXR1cm4oT0spOwpYKwpYK30KWGRpZmYgLXJ1TiAuLi93b3JrLm9yaWcv
c3JjL2xpYi9kZXYvamZldDIvamZldDJtcGFyLmMgLi9zcmMvbGliL2Rldi9q
ZmV0Mi9qZmV0Mm1wYXIuYwpYLS0tIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rl
di9qZmV0Mi9qZmV0Mm1wYXIuYwlXZWQgRGVjIDMxIDE5OjAwOjAwIDE5NjkK
WCsrKyAuL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQybXBhci5jCVR1ZSBKdW4g
MjEgMTQ6MzU6MTQgMTk5NApYQEAgLTAsMCArMSw1MCBAQApYKy8qKioqKioq
KioqClgrQmFzZWQgb24gamZldG1wYXIuYwpYK0NvcHlyaWdodCAxOTkwIFJl
Z2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuClgrQXV0aG9yOiAxOTg1IFRob21hcyBMLiBRdWFy
bGVzClgrClgrTW9kaWZpZWQgdG8gYWRkIFBTIG1vZGVsIGFuZCBuZXcgcGFy
YW1ldGVyIGRlZmluaXRpb25zICggQW50aG9ueSBFLiBQYXJrZXIgKQpYKyAg
IENvcHlyaWdodCAxOTk0ICBNYWNxdWFyaWUgVW5pdmVyc2l0eSwgU3lkbmV5
IEF1c3RyYWxpYS4KWCsgICAxMCBGZWIgMTk5NDogQWRkZWQgY2FsbCB0byBq
ZmV0cGFybS5oClgrKioqKioqKioqKi8KWCsKWCsjaW5jbHVkZSAic3BpY2Uu
aCIKWCsjaW5jbHVkZSA8c3RkaW8uaD4KWCsjaW5jbHVkZSAiY29uc3QuaCIK
WCsjaW5jbHVkZSAiaWZzaW0uaCIKWCsjaW5jbHVkZSAidXRpbC5oIgpYKyNp
bmNsdWRlICJqZmV0MmRlZnMuaCIKWCsjaW5jbHVkZSAic3BlcnJvci5oIgpY
KyNpbmNsdWRlICJzdWZmaXguaCIKWCsKWCsKWCtpbnQKWCtKRkVUMm1QYXJh
bShwYXJhbSx2YWx1ZSxpbk1vZGVscykKWCsgICAgaW50IHBhcmFtOwpYKyAg
ICBJRnZhbHVlICp2YWx1ZTsKWCsgICAgR0VObW9kZWwgKmluTW9kZWxzOwpY
K3sKWCsgICAgSkZFVDJtb2RlbCAqbW9kZWwgPSAoSkZFVDJtb2RlbCopaW5N
b2RlbHM7ClgrICAgIHN3aXRjaChwYXJhbSkgewpYKyAgICAgICAgY2FzZSBK
RkVUMl9NT0RfVE5PTToKWCsgICAgICAgICAgICBtb2RlbC0+SkZFVDJ0bm9t
R2l2ZW4gPSBUUlVFOwpYKyAgICAgICAgICAgIG1vZGVsLT5KRkVUMnRub20g
PSB2YWx1ZS0+clZhbHVlK0NPTlNUQ3RvSzsKWCsgICAgICAgICAgICBicmVh
azsKWCsjZGVmaW5lIFBBUkFNKGNvZGUsaWQsZmxhZyxyZWYsZGVmYXVsdCxk
ZXNjcmlwKSBjYXNlIGlkOiBcClgrICAgICAgICAgICAgICAgICAgICAgIG1v
ZGVsLT5mbGFnID0gVFJVRTsgbW9kZWwtPnJlZiA9IHZhbHVlLT5yVmFsdWU7
IGJyZWFrOwpYKyNpbmNsdWRlICJqZmV0MnBhcm0uaCIKWCsgICAgICAgIGNh
c2UgSkZFVDJfTU9EX05KRjoKWCsgICAgICAgICAgICBpZih2YWx1ZS0+aVZh
bHVlKSB7ClgrICAgICAgICAgICAgICAgIG1vZGVsLT5KRkVUMnR5cGUgPSBO
SkY7ClgrICAgICAgICAgICAgfQpYKyAgICAgICAgICAgIGJyZWFrOwpYKyAg
ICAgICAgY2FzZSBKRkVUMl9NT0RfUEpGOgpYKyAgICAgICAgICAgIGlmKHZh
bHVlLT5pVmFsdWUpIHsKWCsgICAgICAgICAgICAgICAgbW9kZWwtPkpGRVQy
dHlwZSA9IFBKRjsKWCsgICAgICAgICAgICB9ClgrICAgICAgICAgICAgYnJl
YWs7ClgrICAgICAgICBkZWZhdWx0OgpYKyAgICAgICAgICAgIHJldHVybihF
X0JBRFBBUk0pOwpYKyAgICB9ClgrICAgIHJldHVybihPSyk7ClgrfQpYZGlm
ZiAtcnVOIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0Mm5v
aS5jIC4vc3JjL2xpYi9kZXYvamZldDIvamZldDJub2kuYwpYLS0tIC4uL3dv
cmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0Mm5vaS5jCVdlZCBEZWMg
MzEgMTk6MDA6MDAgMTk2OQpYKysrIC4vc3JjL2xpYi9kZXYvamZldDIvamZl
dDJub2kuYwlUdWUgSnVuIDIxIDE0OjM1OjE4IDE5OTQKWEBAIC0wLDAgKzEs
MjIxIEBAClgrLyoqKioqKioqKioKWCtiYXNlZCBvbiBqZmV0bm9pLmMKWCtD
b3B5cmlnaHQgMTk5MCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh
bGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpYK0F1dGhvcjogMTk4
NyBHYXJ5IFcuIE5nClgrClgrTW9kaWZpZWQgdG8gamZldDIgZm9yIFBTIG1v
ZGVsIGRlZmluaXRpb24gKCBBbnRob255IEUuIFBhcmtlciApClgrICAgQ29w
eXJpZ2h0IDE5OTQgIE1hY3F1YXJpZSBVbml2ZXJzaXR5LCBTeWRuZXkgQXVz
dHJhbGlhLgpYKyoqKioqKioqKiovClgrClgrI2luY2x1ZGUgInNwaWNlLmgi
ClgrI2luY2x1ZGUgPHN0ZGlvLmg+ClgrI2luY2x1ZGUgImpmZXQyZGVmcy5o
IgpYKyNpbmNsdWRlICJja3RkZWZzLmgiClgrI2luY2x1ZGUgImZ0ZWNvbnN0
LmgiClgrI2luY2x1ZGUgImlmZXJybXNnLmgiClgrI2luY2x1ZGUgIm5vaXNl
ZGVmLmgiClgrI2luY2x1ZGUgInV0aWwuaCIKWCsjaW5jbHVkZSAic3VmZml4
LmgiClgrClgrLyoKWCsgKiBKRkVUMm5vaXNlIChtb2RlLCBvcGVyYXRpb24s
IGZpcnN0TW9kZWwsIGNrdCwgZGF0YSwgT25EZW5zKQpYKyAqICAgIFRoaXMg
cm91dGluZSBuYW1lcyBhbmQgZXZhbHVhdGVzIGFsbCBvZiB0aGUgbm9pc2Ug
c291cmNlcwpYKyAqICAgIGFzc29jaWF0ZWQgd2l0aCBKRkVUMidzLiAgSXQg
c3RhcnRzIHdpdGggdGhlIG1vZGVsICpmaXJzdE1vZGVsIGFuZApYKyAqICAg
IHRyYXZlcnNlcyBhbGwgb2YgaXRzIGluc3RzLiAgSXQgdGhlbiBwcm9jZWVk
cyB0byBhbnkgb3RoZXIgbW9kZWxzClgrICogICAgb24gdGhlIGxpbmtlZCBs
aXN0LiAgVGhlIHRvdGFsIG91dHB1dCBub2lzZSBkZW5zaXR5IGdlbmVyYXRl
ZCBieQpYKyAqICAgIGFsbCBvZiB0aGUgSkZFVDIncyBpcyBzdW1tZWQgd2l0
aCB0aGUgdmFyaWFibGUgIk9uRGVucyIuClgrICovClgrClgrZXh0ZXJuIHZv
aWQgICBOZXZhbFNyYygpOwpYK2V4dGVybiBkb3VibGUgTmludGVncmF0ZSgp
OwpYKwpYK2ludApYK0pGRVQybm9pc2UgKG1vZGUsIG9wZXJhdGlvbiwgZ2Vu
bW9kZWwsIGNrdCwgZGF0YSwgT25EZW5zKQpYKyAgICBpbnQgbW9kZTsKWCsg
ICAgaW50IG9wZXJhdGlvbjsKWCsgICAgR0VObW9kZWwgKmdlbm1vZGVsOwpY
KyAgICBDS1RjaXJjdWl0ICpja3Q7ClgrICAgIHJlZ2lzdGVyIE5kYXRhICpk
YXRhOwpYKyAgICBkb3VibGUgKk9uRGVuczsKWCt7ClgrICAgIEpGRVQybW9k
ZWwgKmZpcnN0TW9kZWwgPSAoSkZFVDJtb2RlbCAqKSBnZW5tb2RlbDsKWCsg
ICAgcmVnaXN0ZXIgSkZFVDJtb2RlbCAqbW9kZWw7ClgrICAgIHJlZ2lzdGVy
IEpGRVQyaW5zdGFuY2UgKmluc3Q7ClgrICAgIGNoYXIgbmFtZVtOX01YVkxO
VEhdOwpYKyAgICBkb3VibGUgdGVtcE9ub2lzZTsKWCsgICAgZG91YmxlIHRl
bXBJbm9pc2U7ClgrICAgIGRvdWJsZSBub2l6RGVuc1tKRkVUMk5TUkNTXTsK
WCsgICAgZG91YmxlIGxuTmRlbnNbSkZFVDJOU1JDU107ClgrICAgIGludCBl
cnJvcjsKWCsgICAgaW50IGk7ClgrClgrICAgIC8qIGRlZmluZSB0aGUgbmFt
ZXMgb2YgdGhlIG5vaXNlIHNvdXJjZXMgKi8KWCsKWCsgICAgc3RhdGljIGNo
YXIgKkpGRVQybk5hbWVzW0pGRVQyTlNSQ1NdID0geyAgICAgICAvKiBOb3Rl
IHRoYXQgd2UgaGF2ZSB0byBrZWVwIHRoZSBvcmRlciAqLwpYKwkiX3JkIiwg
ICAgICAgICAgICAgIC8qIG5vaXNlIGR1ZSB0byByZCAqLyAgICAgICAgLyog
Y29uc2lzdGVudCB3aXRoIHRoZSBpbmRleCBkZWZpbml0aW9ucyAqLwpYKwki
X3JzIiwgICAgICAgICAgICAgIC8qIG5vaXNlIGR1ZSB0byBycyAqLyAgICAg
ICAgLyogaW4gSkZFVDJkZWZzLmggKi8KWCsJIl9pZCIsICAgICAgICAgICAg
ICAvKiBub2lzZSBkdWUgdG8gaWQgKi8KWCsJIl8xb3ZlcmYiLCAgICAgICAg
ICAvKiBmbGlja2VyICgxL2YpIG5vaXNlICovClgrCSIiICAgICAgICAgICAg
ICAgICAgLyogdG90YWwgdHJhbnNpc3RvciBub2lzZSAqLwpYKyAgICB9OwpY
KwpYKyAgICBmb3IgKG1vZGVsPWZpcnN0TW9kZWw7IG1vZGVsICE9IE5VTEw7
IG1vZGVsPW1vZGVsLT5KRkVUMm5leHRNb2RlbCkgewpYKwlmb3IgKGluc3Q9
bW9kZWwtPkpGRVQyaW5zdGFuY2VzOyBpbnN0ICE9IE5VTEw7IGluc3Q9aW5z
dC0+SkZFVDJuZXh0SW5zdGFuY2UpIHsKWCsJICAgIHN3aXRjaCAob3BlcmF0
aW9uKSB7ClgrClgrCSAgICBjYXNlIE5fT1BFTjoKWCsKWCsJCS8qIHNlZSBp
ZiB3ZSBoYXZlIHRvIHRvIHByb2R1Y2UgYSBzdW1tYXJ5IHJlcG9ydCAqLwpY
KwkJLyogaWYgc28sIG5hbWUgYWxsIHRoZSBub2lzZSBnZW5lcmF0b3JzICov
ClgrClgrCQlpZiAoKChOT0lTRUFOKilja3QtPkNLVGN1ckpvYiktPk5TdHBz
U20gIT0gMCkgewpYKwkJICAgIHN3aXRjaCAobW9kZSkgewpYKwpYKwkJICAg
IGNhc2UgTl9ERU5TOgpYKwkJCWZvciAoaT0wOyBpIDwgSkZFVDJOU1JDUzsg
aSsrKSB7ClgrCQkJICAgICh2b2lkKXNwcmludGYobmFtZSwib25vaXNlXyVz
JXMiLGluc3QtPkpGRVQybmFtZSxKRkVUMm5OYW1lc1tpXSk7ClgrClgrClgr
ZGF0YS0+bmFtZWxpc3QgPSAoSUZ1aWQgKil0cmVhbGxvYygoY2hhciAqKWRh
dGEtPm5hbWVsaXN0LChkYXRhLT5udW1QbG90cyArIDEpKnNpemVvZihJRnVp
ZCkpOwpYK2lmICghZGF0YS0+bmFtZWxpc3QpIHJldHVybihFX05PTUVNKTsK
WCsJCSgqKFNQZnJvbnRFbmQtPklGbmV3VWlkKSkoY2t0LApYKwkJCSYoZGF0
YS0+bmFtZWxpc3RbZGF0YS0+bnVtUGxvdHMrK10pLApYKwkJCShJRnVpZClO
VUxMLG5hbWUsVUlEX09USEVSLChHRU5FUklDICoqKU5VTEwpOwpYKwkJCQkv
KiB3ZSd2ZSBhZGRlZCBvbmUgbW9yZSBwbG90ICovClgrClgrClgrCQkJfQpY
KwkJCWJyZWFrOwpYKwpYKwkJICAgIGNhc2UgSU5UX05PSVo6ClgrCQkJZm9y
IChpPTA7IGkgPCBKRkVUMk5TUkNTOyBpKyspIHsKWCsJCQkgICAgKHZvaWQp
c3ByaW50ZihuYW1lLCJvbm9pc2VfdG90YWxfJXMlcyIsaW5zdC0+SkZFVDJu
YW1lLEpGRVQybk5hbWVzW2ldKTsKWCsKWCsKWCtkYXRhLT5uYW1lbGlzdCA9
IChJRnVpZCAqKXRyZWFsbG9jKChjaGFyICopZGF0YS0+bmFtZWxpc3QsKGRh
dGEtPm51bVBsb3RzICsgMSkqc2l6ZW9mKElGdWlkKSk7ClgraWYgKCFkYXRh
LT5uYW1lbGlzdCkgcmV0dXJuKEVfTk9NRU0pOwpYKwkJKCooU1Bmcm9udEVu
ZC0+SUZuZXdVaWQpKShja3QsClgrCQkJJihkYXRhLT5uYW1lbGlzdFtkYXRh
LT5udW1QbG90cysrXSksClgrCQkJKElGdWlkKU5VTEwsbmFtZSxVSURfT1RI
RVIsKEdFTkVSSUMgKiopTlVMTCk7ClgrCQkJCS8qIHdlJ3ZlIGFkZGVkIG9u
ZSBtb3JlIHBsb3QgKi8KWCsKWCsKWCsJCQkgICAgKHZvaWQpc3ByaW50Zihu
YW1lLCJpbm9pc2VfdG90YWxfJXMlcyIsaW5zdC0+SkZFVDJuYW1lLEpGRVQy
bk5hbWVzW2ldKTsKWCsKWCsKWCtkYXRhLT5uYW1lbGlzdCA9IChJRnVpZCAq
KXRyZWFsbG9jKChjaGFyICopZGF0YS0+bmFtZWxpc3QsKGRhdGEtPm51bVBs
b3RzICsgMSkqc2l6ZW9mKElGdWlkKSk7ClgraWYgKCFkYXRhLT5uYW1lbGlz
dCkgcmV0dXJuKEVfTk9NRU0pOwpYKwkJKCooU1Bmcm9udEVuZC0+SUZuZXdV
aWQpKShja3QsClgrCQkJJihkYXRhLT5uYW1lbGlzdFtkYXRhLT5udW1QbG90
cysrXSksClgrCQkJKElGdWlkKU5VTEwsbmFtZSxVSURfT1RIRVIsKEdFTkVS
SUMgKiopTlVMTCk7ClgrCQkJCS8qIHdlJ3ZlIGFkZGVkIG9uZSBtb3JlIHBs
b3QgKi8KWCsKWCsJCQl9ClgrCQkJYnJlYWs7ClgrCQkgICAgfQpYKwkJfQpY
KwkJYnJlYWs7ClgrClgrCSAgICBjYXNlIE5fQ0FMQzoKWCsJCXN3aXRjaCAo
bW9kZSkgewpYKwpYKwkJY2FzZSBOX0RFTlM6ClgrCQkgICAgTmV2YWxTcmMo
Jm5vaXpEZW5zW0pGRVQyUkROT0laXSwmbG5OZGVuc1tKRkVUMlJETk9JWl0s
ClgrCQkJCSBja3QsVEhFUk1OT0lTRSxpbnN0LT5KRkVUMmRyYWluUHJpbWVO
b2RlLGluc3QtPkpGRVQyZHJhaW5Ob2RlLApYKwkJCQkgbW9kZWwtPkpGRVQy
ZHJhaW5Db25kdWN0ICogaW5zdC0+SkZFVDJhcmVhKTsKWCsKWCsJCSAgICBO
ZXZhbFNyYygmbm9pekRlbnNbSkZFVDJSU05PSVpdLCZsbk5kZW5zW0pGRVQy
UlNOT0laXSwKWCsJCQkJIGNrdCxUSEVSTU5PSVNFLGluc3QtPkpGRVQyc291
cmNlUHJpbWVOb2RlLApYKwkJCQkgaW5zdC0+SkZFVDJzb3VyY2VOb2RlLG1v
ZGVsLT5KRkVUMnNvdXJjZUNvbmR1Y3QqaW5zdC0+SkZFVDJhcmVhKTsKWCsK
WCsJCSAgICBOZXZhbFNyYygmbm9pekRlbnNbSkZFVDJJRE5PSVpdLCZsbk5k
ZW5zW0pGRVQySUROT0laXSwKWCsJCQkJIGNrdCxUSEVSTU5PSVNFLGluc3Qt
PkpGRVQyZHJhaW5QcmltZU5vZGUsClgrCQkJCSBpbnN0LT5KRkVUMnNvdXJj
ZVByaW1lTm9kZSwKWCsJCQkJICgyLjAvMy4wICogRkFCUygqKGNrdC0+Q0tU
c3RhdGUwICsgaW5zdC0+SkZFVDJnbSkpKSk7ClgrClgrCQkgICAgTmV2YWxT
cmMoJm5vaXpEZW5zW0pGRVQyRkxOT0laXSwoZG91YmxlKilOVUxMLGNrdCwK
WCsJCQkJIE5fR0FJTixpbnN0LT5KRkVUMmRyYWluUHJpbWVOb2RlLApYKwkJ
CQkgaW5zdC0+SkZFVDJzb3VyY2VQcmltZU5vZGUsIChkb3VibGUpMC4wKTsK
WCsJCSAgICBub2l6RGVuc1tKRkVUMkZMTk9JWl0gKj0gbW9kZWwtPkpGRVQy
Zk5jb2VmICogClgrCQkJCSBleHAobW9kZWwtPkpGRVQyZk5leHAgKgpYKwkJ
CQkgbG9nKE1BWChGQUJTKCooY2t0LT5DS1RzdGF0ZTAgKyBpbnN0LT5KRkVU
MmNkKSksTl9NSU5MT0cpKSkgLwpYKwkJCQkgZGF0YS0+ZnJlcTsKWCsJCSAg
ICBsbk5kZW5zW0pGRVQyRkxOT0laXSA9IApYKwkJCQkgbG9nKE1BWChub2l6
RGVuc1tKRkVUMkZMTk9JWl0sTl9NSU5MT0cpKTsKWCsKWCsJCSAgICBub2l6
RGVuc1tKRkVUMlRPVE5PSVpdID0gbm9pekRlbnNbSkZFVDJSRE5PSVpdICsK
WCsJCQkJCQkgICAgIG5vaXpEZW5zW0pGRVQyUlNOT0laXSArClgrCQkJCQkJ
ICAgICBub2l6RGVuc1tKRkVUMklETk9JWl0gKwpYKwkJCQkJCSAgICAgbm9p
ekRlbnNbSkZFVDJGTE5PSVpdOwpYKwkJICAgIGxuTmRlbnNbSkZFVDJUT1RO
T0laXSA9IApYKwkJCQkgbG9nKE1BWChub2l6RGVuc1tKRkVUMlRPVE5PSVpd
LCBOX01JTkxPRykpOwpYKwpYKwkJICAgICpPbkRlbnMgKz0gbm9pekRlbnNb
SkZFVDJUT1ROT0laXTsKWCsKWCsJCSAgICBpZiAoZGF0YS0+ZGVsRnJlcSA9
PSAwLjApIHsgClgrClgrCQkJLyogaWYgd2UgaGF2ZW4ndCBkb25lIGFueSBw
cmV2aW91cyBpbnRlZ3JhdGlvbiwgd2UgbmVlZCB0byAqLwpYKwkJCS8qIGlu
aXRpYWxpemUgb3VyICJoaXN0b3J5IiB2YXJpYWJsZXMgICAgICAgICAgICAg
ICAgICAgICAgKi8KWCsKWCsJCQlmb3IgKGk9MDsgaSA8IEpGRVQyTlNSQ1M7
IGkrKykgewpYKwkJCSAgICBpbnN0LT5KRkVUMm5WYXJbTE5MU1RERU5TXVtp
XSA9IGxuTmRlbnNbaV07ClgrCQkJfQpYKwpYKwkJCS8qIGNsZWFyIG91dCBv
dXIgaW50ZWdyYXRpb24gdmFyaWFibGVzIGlmIGl0J3MgdGhlIGZpcnN0IHBh
c3MgKi8KWCsKWCsJCQlpZiAoZGF0YS0+ZnJlcSA9PSAoKE5PSVNFQU4qKWNr
dC0+Q0tUY3VySm9iKS0+TnN0YXJ0RnJlcSkgewpYKwkJCSAgICBmb3IgKGk9
MDsgaSA8IEpGRVQyTlNSQ1M7IGkrKykgewpYKwkJCQlpbnN0LT5KRkVUMm5W
YXJbT1VUTk9JWl1baV0gPSAwLjA7ClgrCQkJCWluc3QtPkpGRVQyblZhcltJ
Tk5PSVpdW2ldID0gMC4wOwpYKwkJCSAgICB9ClgrCQkJfQpYKwkJICAgIH0g
ZWxzZSB7ICAgLyogZGF0YS0+ZGVsRnJlcSAhPSAwLjAgKHdlIGhhdmUgdG8g
aW50ZWdyYXRlKSAqLwpYKwkJCWZvciAoaT0wOyBpIDwgSkZFVDJOU1JDUzsg
aSsrKSB7ClgrCQkJICAgIGlmIChpICE9IEpGRVQyVE9UTk9JWikgewpYKwkJ
CQl0ZW1wT25vaXNlID0gTmludGVncmF0ZShub2l6RGVuc1tpXSwgbG5OZGVu
c1tpXSwKWCsJCQkJICAgICAgaW5zdC0+SkZFVDJuVmFyW0xOTFNUREVOU11b
aV0sIGRhdGEpOwpYKwkJCQl0ZW1wSW5vaXNlID0gTmludGVncmF0ZShub2l6
RGVuc1tpXSAqIGRhdGEtPkdhaW5TcUludiAsClgrCQkJCSAgICAgIGxuTmRl
bnNbaV0gKyBkYXRhLT5sbkdhaW5JbnYsClgrCQkJCSAgICAgIGluc3QtPkpG
RVQyblZhcltMTkxTVERFTlNdW2ldICsgZGF0YS0+bG5HYWluSW52LApYKwkJ
CQkgICAgICBkYXRhKTsKWCsJCQkJaW5zdC0+SkZFVDJuVmFyW0xOTFNUREVO
U11baV0gPSBsbk5kZW5zW2ldOwpYKwkJCQlkYXRhLT5vdXROb2l6ICs9IHRl
bXBPbm9pc2U7ClgrCQkJCWRhdGEtPmluTm9pc2UgKz0gdGVtcElub2lzZTsK
WCsJCQkJaWYgKCgoTk9JU0VBTiopY2t0LT5DS1RjdXJKb2IpLT5OU3Rwc1Nt
ICE9IDApIHsKWCsJCQkJICAgIGluc3QtPkpGRVQyblZhcltPVVROT0laXVtp
XSArPSB0ZW1wT25vaXNlOwpYKwkJCQkgICAgaW5zdC0+SkZFVDJuVmFyW09V
VE5PSVpdW0pGRVQyVE9UTk9JWl0gKz0gdGVtcE9ub2lzZTsKWCsJCQkJICAg
IGluc3QtPkpGRVQyblZhcltJTk5PSVpdW2ldICs9IHRlbXBJbm9pc2U7Clgr
CQkJCSAgICBpbnN0LT5KRkVUMm5WYXJbSU5OT0laXVtKRkVUMlRPVE5PSVpd
ICs9IHRlbXBJbm9pc2U7ClgrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9ClgrCQkJICAgIH0KWCsJCQl9ClgrCQkgICAgfQpYKwkJICAgIGlm
IChkYXRhLT5wcnRTdW1tYXJ5KSB7ClgrCQkJZm9yIChpPTA7IGkgPCBKRkVU
Mk5TUkNTOyBpKyspIHsgICAgIC8qIHByaW50IGEgc3VtbWFyeSByZXBvcnQg
Ki8KWCsJCQkgICAgZGF0YS0+b3V0cFZlY3RvcltkYXRhLT5vdXROdW1iZXIr
K10gPSBub2l6RGVuc1tpXTsKWCsJCQl9ClgrCQkgICAgfQpYKwkJICAgIGJy
ZWFrOwpYKwpYKwkJY2FzZSBJTlRfTk9JWjogICAgICAgIC8qIGFscmVhZHkg
Y2FsY3VsYXRlZCwganVzdCBvdXRwdXQgKi8KWCsJCSAgICBpZiAoKChOT0lT
RUFOKilja3QtPkNLVGN1ckpvYiktPk5TdHBzU20gIT0gMCkgewpYKwkJCWZv
ciAoaT0wOyBpIDwgSkZFVDJOU1JDUzsgaSsrKSB7ClgrCQkJICAgIGRhdGEt
Pm91dHBWZWN0b3JbZGF0YS0+b3V0TnVtYmVyKytdID0gaW5zdC0+SkZFVDJu
VmFyW09VVE5PSVpdW2ldOwpYKwkJCSAgICBkYXRhLT5vdXRwVmVjdG9yW2Rh
dGEtPm91dE51bWJlcisrXSA9IGluc3QtPkpGRVQyblZhcltJTk5PSVpdW2ld
OwpYKwkJCX0KWCsJCSAgICB9ICAgIC8qIGlmICovClgrCQkgICAgYnJlYWs7
ClgrCQl9ICAgIC8qIHN3aXRjaCAobW9kZSkgKi8KWCsJCWJyZWFrOwpYKwpY
KwkgICAgY2FzZSBOX0NMT1NFOgpYKwkJcmV0dXJuIChPSyk7ICAgICAgICAg
LyogZG8gbm90aGluZywgdGhlIG1haW4gY2FsbGluZyByb3V0aW5lIHdpbGwg
Y2xvc2UgKi8KWCsJCWJyZWFrOyAgICAgICAgICAgICAgIC8qIHRoZSBwbG90
cyAqLwpYKwkgICAgfSAgICAvKiBzd2l0Y2ggKG9wZXJhdGlvbikgKi8KWCsJ
fSAgICAvKiBmb3IgaW5zdCAqLwpYKyAgICB9ICAgIC8qIGZvciBtb2RlbCAq
LwpYKwpYK3JldHVybihPSyk7ClgrfQpYKyAgICAgICAgICAgIApYKwpYZGlm
ZiAtcnVOIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MnBh
ci5jIC4vc3JjL2xpYi9kZXYvamZldDIvamZldDJwYXIuYwpYLS0tIC4uL3dv
cmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MnBhci5jCVdlZCBEZWMg
MzEgMTk6MDA6MDAgMTk2OQpYKysrIC4vc3JjL2xpYi9kZXYvamZldDIvamZl
dDJwYXIuYwlUdWUgSnVuIDIxIDE0OjM1OjIxIDE5OTQKWEBAIC0wLDAgKzEs
NjggQEAKWCsvKioqKioqKioqKgpYK2Jhc2VkIG9uIGpmZXRwYXIuYwpYK0Nv
cHlyaWdodCAxOTkwIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs
aWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuClgrQXV0aG9yOiAxOTg1
IFRob21hcyBMLiBRdWFybGVzClgrClgrTW9kaWZpZWQgdG8gamZldDIgZm9y
IFBTIG1vZGVsIGRlZmluaXRpb24gKCBBbnRob255IEUuIFBhcmtlciApClgr
ICAgQ29weXJpZ2h0IDE5OTQgIE1hY3F1YXJpZSBVbml2ZXJzaXR5LCBTeWRu
ZXkgQXVzdHJhbGlhLgpYKyoqKioqKioqKiovClgrLyoKWCsgKi8KWCsKWCsj
aW5jbHVkZSAic3BpY2UuaCIKWCsjaW5jbHVkZSA8c3RkaW8uaD4KWCsjaW5j
bHVkZSAiY29uc3QuaCIKWCsjaW5jbHVkZSAiaWZzaW0uaCIKWCsjaW5jbHVk
ZSAidXRpbC5oIgpYKyNpbmNsdWRlICJqZmV0MmRlZnMuaCIKWCsjaW5jbHVk
ZSAic3BlcnJvci5oIgpYKyNpbmNsdWRlICJzdWZmaXguaCIKWCsKWCsKWCsv
KiBBUkdTVVNFRCAqLwpYK2ludApYK0pGRVQycGFyYW0ocGFyYW0sdmFsdWUs
aW5zdCxzZWxlY3QpClgrICAgIGludCBwYXJhbTsKWCsgICAgSUZ2YWx1ZSAq
dmFsdWU7ClgrICAgIEdFTmluc3RhbmNlICppbnN0OwpYKyAgICBJRnZhbHVl
ICpzZWxlY3Q7ClgrewpYKyAgICBKRkVUMmluc3RhbmNlICpoZXJlID0gKEpG
RVQyaW5zdGFuY2UgKilpbnN0OwpYKyAgICBzd2l0Y2gocGFyYW0pIHsKWCsg
ICAgICAgIGNhc2UgSkZFVDJfVEVNUDoKWCsgICAgICAgICAgICBoZXJlLT5K
RkVUMnRlbXAgPSB2YWx1ZS0+clZhbHVlK0NPTlNUQ3RvSzsKWCsgICAgICAg
ICAgICBoZXJlLT5KRkVUMnRlbXBHaXZlbiA9IFRSVUU7ClgrICAgICAgICAg
ICAgYnJlYWs7ClgrICAgICAgICBjYXNlIEpGRVQyX0FSRUE6ClgrICAgICAg
ICAgICAgaGVyZS0+SkZFVDJhcmVhID0gdmFsdWUtPnJWYWx1ZTsKWCsgICAg
ICAgICAgICBoZXJlLT5KRkVUMmFyZWFHaXZlbiA9IFRSVUU7ClgrICAgICAg
ICAgICAgYnJlYWs7ClgrICAgICAgICBjYXNlIEpGRVQyX0lDX1ZEUzoKWCsg
ICAgICAgICAgICBoZXJlLT5KRkVUMmljVkRTID0gdmFsdWUtPnJWYWx1ZTsK
WCsgICAgICAgICAgICBoZXJlLT5KRkVUMmljVkRTR2l2ZW4gPSBUUlVFOwpY
KyAgICAgICAgICAgIGJyZWFrOwpYKyAgICAgICAgY2FzZSBKRkVUMl9JQ19W
R1M6ClgrICAgICAgICAgICAgaGVyZS0+SkZFVDJpY1ZHUyA9IHZhbHVlLT5y
VmFsdWU7ClgrICAgICAgICAgICAgaGVyZS0+SkZFVDJpY1ZHU0dpdmVuID0g
VFJVRTsKWCsgICAgICAgICAgICBicmVhazsKWCsgICAgICAgIGNhc2UgSkZF
VDJfT0ZGOgpYKyAgICAgICAgICAgIGhlcmUtPkpGRVQyb2ZmID0gdmFsdWUt
PmlWYWx1ZTsKWCsgICAgICAgICAgICBicmVhazsKWCsgICAgICAgIGNhc2Ug
SkZFVDJfSUM6ClgrICAgICAgICAgICAgc3dpdGNoKHZhbHVlLT52Lm51bVZh
bHVlKSB7ClgrICAgICAgICAgICAgICAgIGNhc2UgMjoKWCsgICAgICAgICAg
ICAgICAgICAgIGhlcmUtPkpGRVQyaWNWR1MgPSAqKHZhbHVlLT52LnZlYy5y
VmVjKzEpOwpYKyAgICAgICAgICAgICAgICAgICAgaGVyZS0+SkZFVDJpY1ZH
U0dpdmVuID0gVFJVRTsKWCsgICAgICAgICAgICAgICAgY2FzZSAxOgpYKyAg
ICAgICAgICAgICAgICAgICAgaGVyZS0+SkZFVDJpY1ZEUyA9ICoodmFsdWUt
PnYudmVjLnJWZWMpOwpYKyAgICAgICAgICAgICAgICAgICAgaGVyZS0+SkZF
VDJpY1ZEU0dpdmVuID0gVFJVRTsKWCsgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwpYKyAgICAgICAgICAgICAgICBkZWZhdWx0OgpYKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuKEVfQkFEUEFSTSk7ClgrICAgICAgICAgICAgfQpY
KyAgICAgICAgICAgIGJyZWFrOwpYKyAgICAgICAgZGVmYXVsdDoKWCsgICAg
ICAgICAgICByZXR1cm4oRV9CQURQQVJNKTsKWCsgICAgfQpYKyAgICByZXR1
cm4oT0spOwpYK30KWGRpZmYgLXJ1TiAuLi93b3JrLm9yaWcvc3JjL2xpYi9k
ZXYvamZldDIvamZldDJwYXJtLmggLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0
MnBhcm0uaApYLS0tIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9q
ZmV0MnBhcm0uaAlXZWQgRGVjIDMxIDE5OjAwOjAwIDE5NjkKWCsrKyAuL3Ny
Yy9saWIvZGV2L2pmZXQyL2pmZXQycGFybS5oCVR1ZSBKdW4gMjggMDg6MjE6
MjkgMTk5NApYQEAgLTAsMCArMSw1MiBAQApYKwpYKyNpZm5kZWYgUEFSQU1B
ClgrI2RlZmluZSBQQVJBTUEoY29kZSxpZCxmbGFnLHJlZixkZWZhdWx0LGRl
c2NyaXApIFBBUkFNKGNvZGUsaWQsZmxhZyxyZWYsZGVmYXVsdCxkZXNjcmlw
KQpYKyNlbmRpZgpYKyNpZm5kZWYgSkZFVDJfTU9EX1ZUTwpYKyNkZWZpbmUg
SkZFVDJfTU9EX1ZUTyAxNDEKWCsjZGVmaW5lIEpGRVQyX01PRF9OSkYgMTAy
ClgrI2RlZmluZSBKRkVUMl9NT0RfUEpGIDEwMwpYKyNkZWZpbmUgSkZFVDJf
TU9EX1ROT00gMTA0ClgrI2RlZmluZSBKRkVUMl9NT0RfUEIgMTMxClgrI2Vu
ZGlmClgrICAgIFBBUkFNKCJhY2dhbSIsIDEwNywgICAgICAgICBKRkVUMmFj
Z2FtR2l2ZW4sIEpGRVQyYWNnYW0sICAgIDAsICIiKQpYKyAgICBQQVJBTSgi
YWYiLCAgICAxMDgsICAgICAgICAgSkZFVDJmTmV4cEdpdmVuLCBKRkVUMmZO
ZXhwLCAgICAxLCAiRmxpY2tlciBOb2lzZSBFeHBvbmVudCIpClgrICAgIFBB
UkFNKCJiZXRhIiwgIDEwOSwgICAgICAgICAgSkZFVDJiZXRhR2l2ZW4sIEpG
RVQyYmV0YSwgIDFlLTQsICJUcmFuc2NvbmR1Y3RhbmNlIHBhcmFtZXRlciIp
ClgrICAgUEFSQU1BKCJjZHMiLCAgIDE0NiwgICAgICAgICBKRkVUMmNhcERT
R2l2ZW4sIEpGRVQyY2FwZHMsICAgIDAsICJELVMganVuY3Rpb24gY2FwYWNp
dGFuY2UiKQpYKyAgIFBBUkFNQSgiY2dkIiwgICAxMTAsICAgICAgICAgSkZF
VDJjYXBHREdpdmVuLCBKRkVUMmNhcGdkLCAgICAwLCAiRy1EIGp1bmN0aW9u
IGNhcGFjaXRhbmNlIikKWCsgICBQQVJBTUEoImNncyIsICAgMTExLCAgICAg
ICAgIEpGRVQyY2FwR1NHaXZlbiwgSkZFVDJjYXBncywgICAgMCwgIkctUyBq
dW5jdGlvbiBjYXBhY2l0YW5jZSIpClgrICAgIFBBUkFNKCJkZWx0YSIsIDEx
MywgICAgICAgICBKRkVUMmRlbHRhR2l2ZW4sIEpGRVQyZGVsdGEsICAgIDAs
ICJjb2VmIG9mIHRoZXJtYWwgY3VycmVudCByZWR1Y3Rpb24iKQpYKyAgICBQ
QVJBTSgiaGZldGEiLCAxMTQsICAgICAgICAgSkZFVDJoZmV0YUdpdmVuLCBK
RkVUMmhmZXRhLCAgICAwLCAiZHJhaW4gZmVlZGJhY2sgbW9kdWxhdGlvbiIp
ClgrICAgIFBBUkFNKCJoZmUxIiwgIDExNSwgICAgICAgICAgSkZFVDJoZmUx
R2l2ZW4sIEpGRVQyaGZlMSwgICAgIDAsICIiKQpYKyAgICBQQVJBTSgiaGZl
MiIsICAxMTYsICAgICAgICAgIEpGRVQyaGZlMkdpdmVuLCBKRkVUMmhmZTIs
ICAgICAwLCAiIikKWCsgICAgUEFSQU0oImhmZzEiLCAgMTE3LCAgICAgICAg
ICBKRkVUMmhmZzFHaXZlbiwgSkZFVDJoZmcxLCAgICAgMCwgIiIpClgrICAg
IFBBUkFNKCJoZmcyIiwgIDExOCwgICAgICAgICAgSkZFVDJoZmcyR2l2ZW4s
IEpGRVQyaGZnMiwgICAgIDAsICIiKQpYKyAgICBQQVJBTSgibXZzdCIsICAx
MTksICAgICAgICAgIEpGRVQybXZzdEdpdmVuLCBKRkVUMm12c3QsICAgICAw
LCAibW9kdWxhdGlvbiBpbmRleCBmb3Igc3VidHJlc2hvbGQgY3VycmVudCIp
ClgrICAgIFBBUkFNKCJteGkiLCAgIDEyMCwgICAgICAgICAgIEpGRVQybXhp
R2l2ZW4sIEpGRVQybXhpLCAgICAgIDAsICJzYXR1cmF0aW9uIHBvdGVudGlh
bCBtb2R1bGF0aW9uIHBhcmFtZXRlciIpClgrICAgIFBBUkFNKCJmYyIsICAg
IDEyMSwgICAgICAgICAgICBKRkVUMmZjR2l2ZW4sIEpGRVQyZmMsICAgICAw
LjUsICJGb3J3YXJkIGJpYXMganVuY3Rpb24gZml0IHBhcm0uIikKWCsgICAg
UEFSQU0oImliZCIsICAgMTIyLCAgICAgICAgICAgSkZFVDJpYmRHaXZlbiwg
SkZFVDJpYmQsICAgICAgMCwgIkJyZWFrZG93biBjdXJyZW50IG9mIGRpb2Rl
IGpuYyIpClgrICAgIFBBUkFNKCJpcyIsICAgIDEyMywgICAgICAgICAgICBK
RkVUMmlzR2l2ZW4sIEpGRVQyaXMsICAgMWUtMTQsICJHYXRlIGp1bmN0aW9u
IHNhdHVyYXRpb24gY3VycmVudCIpClgrICAgIFBBUkFNKCJrZiIsICAgIDEy
NCwgICAgICAgICAgICBKRkVUMmtmR2l2ZW4sIEpGRVQyZk5jb2VmLCAgIDAs
ICJGbGlja2VyIE5vaXNlIENvZWZmaWNpZW50IikKWCsgICAgUEFSQU0oImxh
bWJkYSIsMTI1LCAgICAgICAgICAgSkZFVDJsYW1HaXZlbiwgSkZFVDJsYW1i
ZGEsICAgMCwgIkNoYW5uZWwgbGVuZ3RoIG1vZHVsYXRpb24gcGFyYW0uIikK
WCsgICAgUEFSQU0oImxmZ2FtIiwgMTI2LCAgICAgICAgIEpGRVQybGZnYW1H
aXZlbiwgSkZFVDJsZmdhbSwgICAgMCwgImRyYWluIGZlZWRiYWNrIHBhcmFt
ZXRlciIpClgrICAgIFBBUkFNKCJsZmcxIiwgIDEyNywgICAgICAgICAgSkZF
VDJsZmcxR2l2ZW4sIEpGRVQybGZnMSwgICAgIDAsICIiKQpYKyAgICBQQVJB
TSgibGZnMiIsICAxMjgsICAgICAgICAgIEpGRVQybGZnMkdpdmVuLCBKRkVU
MmxmZzIsICAgICAwLCAiIikKWCsgICAgUEFSQU0oIm4iLCAgICAgMTI5LCAg
ICAgICAgICAgICBKRkVUMm5HaXZlbiwgSkZFVDJuLCAgICAgICAgMSwgImdh
dGUganVuY3Rpb24gaWRlYWxpdHkgZmFjdG9yIikKWCsgICAgUEFSQU0oInAi
LCAgICAgMTMwLCAgICAgICAgICAgICBKRkVUMnBHaXZlbiwgSkZFVDJwLCAg
ICAgICAgMiwgIlBvd2VyIGxhdyAodHJpb2RlIHJlZ2lvbikiKQpYKyAgICBQ
QVJBTSgicGIiLCAgICBKRkVUMl9NT0RfUEIsICAgSkZFVDJwaGlHaXZlbiwg
SkZFVDJwaGksICAgICAgMSwgIkdhdGUganVuY3Rpb24gcG90ZW50aWFsIikK
WCsgICAgUEFSQU0oInEiLCAgICAgMTMyLCAgICAgICAgICAgICBKRkVUMnFH
aXZlbiwgSkZFVDJxLCAgICAgICAgMiwgIlBvd2VyIExhdyAoU2F0dXJhdGVk
IHJlZ2lvbikiKQpYKyAgICBQQVJBTSgicmQiLCAgICAxMzMsICAgICAgICAg
ICAgSkZFVDJyZEdpdmVuLCBKRkVUMnJkLCAgICAgICAwLCAiRHJhaW4gb2ht
aWMgcmVzaXN0YW5jZSIpClgrICAgIFBBUkFNKCJycyIsICAgIDEzNCwgICAg
ICAgICAgICBKRkVUMnJzR2l2ZW4sIEpGRVQycnMsICAgICAgIDAsICJTb3Vy
Y2Ugb2htaWMgcmVzaXN0YW5jZSIpClgrICAgIFBBUkFNKCJ0YXVkIiwgIDEz
NSwgICAgICAgICAgSkZFVDJ0YXVkR2l2ZW4sIEpGRVQydGF1ZCwgICAgIDAs
ICJUaGVybWFsIHJlbGF4YXRpb24gdGltZSIpClgrICAgIFBBUkFNKCJ0YXVn
IiwgIDEzNiwgICAgICAgICAgSkZFVDJ0YXVnR2l2ZW4sIEpGRVQydGF1Zywg
ICAgIDAsICJEcmFpbiBmZWVkYmFjayByZWxheGF0aW9uIHRpbWUiKQpYKyAg
ICBQQVJBTSgidmJkIiwgICAxMzcsICAgICAgICAgICBKRkVUMnZiZEdpdmVu
LCBKRkVUMnZiZCwgICAgICAxLCAiQnJlYWtkb3duIHBvdGVudGlhbCBvZiBk
aW9kZSBqbmMiKQpYKyAgICBQQVJBTSgidmVyIiwgICAxMzksICAgICAgICAg
ICBKRkVUMnZlckdpdmVuLCBKRkVUMnZlciwgICAgICAwLCAidmVyc2lvbiBu
dW1iZXIgb2YgUFMgbW9kZWwiKQpYKyAgICBQQVJBTSgidnN0IiwgICAxNDAs
ICAgICAgICAgICBKRkVUMnZzdEdpdmVuLCBKRkVUMnZzdCwgICAgICAwLCAi
Q3JpdCBQb3RlbiBzdWJ0aHJlc2hvbGQgY29uZHVjdG4iKQpYKyAgICBQQVJB
TSgidnRvIiwgICBKRkVUMl9NT0RfVlRPLCAgSkZFVDJ2dG9HaXZlbiwgSkZF
VDJ2dG8sICAgICAtMiwgIlRocmVzaG9sZCB2b2x0YWdlIikKWCsgICAgUEFS
QU0oInhjIiwgICAgMTQyLCAgICAgICAgICAgIEpGRVQyeGNHaXZlbiwgSkZF
VDJ4YywgICAgICAgMCwgImFtb3VudCBvZiBjYXAuIHJlZCBhdCBwaW5jaC1v
ZmYiKQpYKyAgICBQQVJBTSgieGkiLCAgICAxNDMsICAgICAgICAgICAgSkZF
VDJ4aUdpdmVuLCBKRkVUMnhpLCAgICAxMDAwLCAidmVsb2NpdHkgc2F0dXJh
dGlvbiBpbmRleCIpClgrICAgIFBBUkFNKCJ6IiwgICAgIDE0NCwgICAgICAg
ICAgICAgSkZFVDJ6R2l2ZW4sIEpGRVQyeiwgICAgICAgIDEsICJyYXRlIG9m
IHZlbG9jaXR5IHNhdHVyYXRpb24iKQpYKyAgICBQQVJBTSgiaGZnYW0iLCAx
NDUsICAgICAgICAgICBKRkVUMmhmZ0dpdmVuLCBKRkVUMmhmZ2FtLCBtb2Rl
bC0+SkZFVDJsZmdhbSwgImhpZ2ggZnJlcSBkcmFpbiBmZWVkYmFjayBwYXJt
IikKWCsjdW5kZWYgICBQQVJBTQpYKyN1bmRlZiAgUEFSQU1BClgrClhkaWZm
IC1ydU4gLi4vd29yay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQyc2V0
LmMgLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MnNldC5jClgtLS0gLi4vd29y
ay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQyc2V0LmMJV2VkIERlYyAz
MSAxOTowMDowMCAxOTY5ClgrKysgLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0
MnNldC5jCVR1ZSBKdW4gMjEgMTQ6MzU6MjggMTk5NApYQEAgLTAsMCArMSwx
MzQgQEAKWCsvKioqKioqKioqKgpYK0Jhc2VkIG9uIGpmZXRzZXQuYwpYK0Nv
cHlyaWdodCAxOTkwIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs
aWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuClgrQXV0aG9yOiAxOTg1
IFRob21hcyBMLiBRdWFybGVzClgrClgrTW9kaWZpZWQgdG8gYWRkIFBTIG1v
ZGVsIGFuZCBuZXcgcGFyYW1ldGVyIGRlZmluaXRpb25zICggQW50aG9ueSBF
LiBQYXJrZXIgKQpYKyAgIENvcHlyaWdodCAxOTk0ICBNYWNxdWFyaWUgVW5p
dmVyc2l0eSwgU3lkbmV5IEF1c3RyYWxpYS4KWCsgICAxMCBGZWIgMTk5NDog
QWRkZWQgY2FsbCB0byBqZmV0cGFybS5oLCB1c2VkIEpGRVRfU1RBVEVfQ09V
TlQKWCsqKioqKioqKioqLwpYKwpYKyNpbmNsdWRlICJzcGljZS5oIgpYKyNp
bmNsdWRlIDxzdGRpby5oPgpYKyNpbmNsdWRlICJ1dGlsLmgiClgrI2luY2x1
ZGUgInNtcGRlZnMuaCIKWCsjaW5jbHVkZSAiY2t0ZGVmcy5oIgpYKyNpbmNs
dWRlICJqZmV0MmRlZnMuaCIKWCsjaW5jbHVkZSAiY29uc3QuaCIKWCsjaW5j
bHVkZSAic3BlcnJvci5oIgpYKyNpbmNsdWRlICJzdWZmaXguaCIKWCsKWCtp
bnQKWCtKRkVUMnNldHVwKG1hdHJpeCxpbk1vZGVsLGNrdCxzdGF0ZXMpClgr
ICAgIHJlZ2lzdGVyIFNNUG1hdHJpeCAqbWF0cml4OwpYKyAgICBHRU5tb2Rl
bCAqaW5Nb2RlbDsKWCsgICAgQ0tUY2lyY3VpdCAqY2t0OwpYKyAgICBpbnQg
KnN0YXRlczsKWCsgICAgICAgIC8qIGxvYWQgdGhlIGRpb2RlIHN0cnVjdHVy
ZSB3aXRoIHRob3NlIHBvaW50ZXJzIG5lZWRlZCBsYXRlciAKWCsgICAgICAg
ICAqIGZvciBmYXN0IG1hdHJpeCBsb2FkaW5nIApYKyAgICAgICAgICovClgr
ewpYKyAgICByZWdpc3RlciBKRkVUMm1vZGVsICptb2RlbCA9IChKRkVUMm1v
ZGVsKilpbk1vZGVsOwpYKyAgICByZWdpc3RlciBKRkVUMmluc3RhbmNlICpo
ZXJlOwpYKyAgICBpbnQgZXJyb3I7ClgrICAgIENLVG5vZGUgKnRtcDsKWCsK
WCsgICAgLyogIGxvb3AgdGhyb3VnaCBhbGwgdGhlIGRpb2RlIG1vZGVscyAq
LwpYKyAgICBmb3IoIDsgbW9kZWwgIT0gTlVMTDsgbW9kZWwgPSBtb2RlbC0+
SkZFVDJuZXh0TW9kZWwgKSB7ClgrClgrICAgICAgICBpZiggKG1vZGVsLT5K
RkVUMnR5cGUgIT0gTkpGKSAmJiAobW9kZWwtPkpGRVQydHlwZSAhPSBQSkYp
ICkgewpYKyAgICAgICAgICAgIG1vZGVsLT5KRkVUMnR5cGUgPSBOSkY7Clgr
ICAgICAgICB9ClgrI2RlZmluZSAgUEFSQU0oY29kZSxpZCxmbGFnLHJlZixk
ZWZhdWx0LGRlc2NyaXApIFwKWCsgICAgICAgICAgICAgIGlmKCFtb2RlbC0+
ZmxhZykge21vZGVsLT5yZWYgPSBkZWZhdWx0O30KWCsjaW5jbHVkZSAiamZl
dDJwYXJtLmgiClgrClgrICAgICAgICAvKiBsb29wIHRocm91Z2ggYWxsIHRo
ZSBpbnN0YW5jZXMgb2YgdGhlIG1vZGVsICovClgrICAgICAgICBmb3IgKGhl
cmUgPSBtb2RlbC0+SkZFVDJpbnN0YW5jZXM7IGhlcmUgIT0gTlVMTCA7Clgr
ICAgICAgICAgICAgICAgIGhlcmU9aGVyZS0+SkZFVDJuZXh0SW5zdGFuY2Up
IHsKWCsgICAgICAgICAgICAKWCsgICAgICAgICAgICBpZighaGVyZS0+SkZF
VDJhcmVhR2l2ZW4pIHsKWCsgICAgICAgICAgICAgICAgaGVyZS0+SkZFVDJh
cmVhID0gMTsKWCsgICAgICAgICAgICB9ClgrICAgICAgICAgICAgaGVyZS0+
SkZFVDJzdGF0ZSA9ICpzdGF0ZXM7ClgrICAgICAgICAgICAgKnN0YXRlcyAr
PSBKRkVUMl9TVEFURV9DT1VOVCArIDE7ClgrClgrICAgICAgICAgICAgaWYo
bW9kZWwtPkpGRVQycnMgIT0gMCAmJiBoZXJlLT5KRkVUMnNvdXJjZVByaW1l
Tm9kZT09MCkgewpYKyAgICAgICAgICAgICAgICBlcnJvciA9IENLVG1rVm9s
dChja3QsJnRtcCxoZXJlLT5KRkVUMm5hbWUsInNvdXJjZSIpOwpYKyAgICAg
ICAgICAgICAgICBpZihlcnJvcikgcmV0dXJuKGVycm9yKTsKWCsgICAgICAg
ICAgICAgICAgaGVyZS0+SkZFVDJzb3VyY2VQcmltZU5vZGUgPSB0bXAtPm51
bWJlcjsKWCsgICAgICAgICAgICB9IGVsc2UgewpYKyAgICAgICAgICAgICAg
ICBoZXJlLT5KRkVUMnNvdXJjZVByaW1lTm9kZSA9IGhlcmUtPkpGRVQyc291
cmNlTm9kZTsKWCsgICAgICAgICAgICB9ClgrICAgICAgICAgICAgaWYobW9k
ZWwtPkpGRVQycmQgIT0gMCAmJiBoZXJlLT5KRkVUMmRyYWluUHJpbWVOb2Rl
PT0wKSB7ClgrICAgICAgICAgICAgICAgIGVycm9yID0gQ0tUbWtWb2x0KGNr
dCwmdG1wLGhlcmUtPkpGRVQybmFtZSwiZHJhaW4iKTsKWCsgICAgICAgICAg
ICAgICAgaWYoZXJyb3IpIHJldHVybihlcnJvcik7ClgrICAgICAgICAgICAg
ICAgIGhlcmUtPkpGRVQyZHJhaW5QcmltZU5vZGUgPSB0bXAtPm51bWJlcjsK
WCsgICAgICAgICAgICB9IGVsc2UgewpYKyAgICAgICAgICAgICAgICBoZXJl
LT5KRkVUMmRyYWluUHJpbWVOb2RlID0gaGVyZS0+SkZFVDJkcmFpbk5vZGU7
ClgrICAgICAgICAgICAgfQpYKwpYKy8qIG1hY3JvIHRvIG1ha2UgZWxlbWVu
dHMgd2l0aCBidWlsdCBpbiB0ZXN0IGZvciBvdXQgb2YgbWVtb3J5ICovClgr
I2RlZmluZSBUU1RBTExPQyhwdHIsZmlyc3Qsc2Vjb25kKSBcClgraWYoKGhl
cmUtPnB0ciA9IFNNUG1ha2VFbHQobWF0cml4LGhlcmUtPmZpcnN0LGhlcmUt
PnNlY29uZCkpPT0oZG91YmxlICopTlVMTCl7XApYKyAgICByZXR1cm4oRV9O
T01FTSk7XApYK30KWCsKWCsgICAgICAgICAgICBUU1RBTExPQyhKRkVUMmRy
YWluRHJhaW5QcmltZVB0cixKRkVUMmRyYWluTm9kZSxKRkVUMmRyYWluUHJp
bWVOb2RlKQpYKyAgICAgICAgICAgIFRTVEFMTE9DKEpGRVQyZ2F0ZURyYWlu
UHJpbWVQdHIsSkZFVDJnYXRlTm9kZSxKRkVUMmRyYWluUHJpbWVOb2RlKQpY
KyAgICAgICAgICAgIFRTVEFMTE9DKEpGRVQyZ2F0ZVNvdXJjZVByaW1lUHRy
LEpGRVQyZ2F0ZU5vZGUsSkZFVDJzb3VyY2VQcmltZU5vZGUpClgrICAgICAg
ICAgICAgVFNUQUxMT0MoSkZFVDJzb3VyY2VTb3VyY2VQcmltZVB0cixKRkVU
MnNvdXJjZU5vZGUsClgrICAgICAgICAgICAgICAgICAgICBKRkVUMnNvdXJj
ZVByaW1lTm9kZSkKWCsgICAgICAgICAgICBUU1RBTExPQyhKRkVUMmRyYWlu
UHJpbWVEcmFpblB0cixKRkVUMmRyYWluUHJpbWVOb2RlLEpGRVQyZHJhaW5O
b2RlKQpYKyAgICAgICAgICAgIFRTVEFMTE9DKEpGRVQyZHJhaW5QcmltZUdh
dGVQdHIsSkZFVDJkcmFpblByaW1lTm9kZSxKRkVUMmdhdGVOb2RlKQpYKyAg
ICAgICAgICAgIFRTVEFMTE9DKEpGRVQyZHJhaW5QcmltZVNvdXJjZVByaW1l
UHRyLEpGRVQyZHJhaW5QcmltZU5vZGUsClgrICAgICAgICAgICAgICAgICAg
ICBKRkVUMnNvdXJjZVByaW1lTm9kZSkKWCsgICAgICAgICAgICBUU1RBTExP
QyhKRkVUMnNvdXJjZVByaW1lR2F0ZVB0cixKRkVUMnNvdXJjZVByaW1lTm9k
ZSxKRkVUMmdhdGVOb2RlKQpYKyAgICAgICAgICAgIFRTVEFMTE9DKEpGRVQy
c291cmNlUHJpbWVTb3VyY2VQdHIsSkZFVDJzb3VyY2VQcmltZU5vZGUsClgr
ICAgICAgICAgICAgICAgICAgICBKRkVUMnNvdXJjZU5vZGUpClgrICAgICAg
ICAgICAgVFNUQUxMT0MoSkZFVDJzb3VyY2VQcmltZURyYWluUHJpbWVQdHIs
SkZFVDJzb3VyY2VQcmltZU5vZGUsClgrICAgICAgICAgICAgICAgICAgICBK
RkVUMmRyYWluUHJpbWVOb2RlKQpYKyAgICAgICAgICAgIFRTVEFMTE9DKEpG
RVQyZHJhaW5EcmFpblB0cixKRkVUMmRyYWluTm9kZSxKRkVUMmRyYWluTm9k
ZSkKWCsgICAgICAgICAgICBUU1RBTExPQyhKRkVUMmdhdGVHYXRlUHRyLEpG
RVQyZ2F0ZU5vZGUsSkZFVDJnYXRlTm9kZSkKWCsgICAgICAgICAgICBUU1RB
TExPQyhKRkVUMnNvdXJjZVNvdXJjZVB0cixKRkVUMnNvdXJjZU5vZGUsSkZF
VDJzb3VyY2VOb2RlKQpYKyAgICAgICAgICAgIFRTVEFMTE9DKEpGRVQyZHJh
aW5QcmltZURyYWluUHJpbWVQdHIsSkZFVDJkcmFpblByaW1lTm9kZSwKWCsg
ICAgICAgICAgICAgICAgICAgIEpGRVQyZHJhaW5QcmltZU5vZGUpClgrICAg
ICAgICAgICAgVFNUQUxMT0MoSkZFVDJzb3VyY2VQcmltZVNvdXJjZVByaW1l
UHRyLEpGRVQyc291cmNlUHJpbWVOb2RlLApYKyAgICAgICAgICAgICAgICAg
ICAgSkZFVDJzb3VyY2VQcmltZU5vZGUpClgrICAgICAgICB9ClgrICAgIH0K
WCsgICAgcmV0dXJuKE9LKTsKWCt9ClgrClgraW50ClgrSkZFVDJ1bnNldHVw
KGluTW9kZWwsY2t0KQpYKyAgICBHRU5tb2RlbCAqaW5Nb2RlbDsKWCsgICAg
Q0tUY2lyY3VpdCAqY2t0OwpYK3sKWCsjaWZuZGVmIEhBU19CQVRDSFNJTQpY
KyAgICBKRkVUMm1vZGVsICptb2RlbDsKWCsgICAgSkZFVDJpbnN0YW5jZSAq
aGVyZTsKWCsKWCsgICAgZm9yIChtb2RlbCA9IChKRkVUMm1vZGVsICopaW5N
b2RlbDsgbW9kZWwgIT0gTlVMTDsKWCsJICAgIG1vZGVsID0gbW9kZWwtPkpG
RVQybmV4dE1vZGVsKQpYKyAgICB7ClgrICAgICAgICBmb3IgKGhlcmUgPSBt
b2RlbC0+SkZFVDJpbnN0YW5jZXM7IGhlcmUgIT0gTlVMTDsKWCsgICAgICAg
ICAgICAgICAgaGVyZT1oZXJlLT5KRkVUMm5leHRJbnN0YW5jZSkKWCsJewpY
KwkgICAgaWYgKGhlcmUtPkpGRVQyc291cmNlUHJpbWVOb2RlClgrCQkgICAg
JiYgaGVyZS0+SkZFVDJzb3VyY2VQcmltZU5vZGUgIT0gaGVyZS0+SkZFVDJz
b3VyY2VOb2RlKQpYKwkgICAgewpYKwkJQ0tUZGx0Tk51bShja3QsIGhlcmUt
PkpGRVQyc291cmNlUHJpbWVOb2RlKTsKWCsJCWhlcmUtPkpGRVQyc291cmNl
UHJpbWVOb2RlID0gMDsKWCsJICAgIH0KWCsJICAgIGlmIChoZXJlLT5KRkVU
MmRyYWluUHJpbWVOb2RlClgrCQkgICAgJiYgaGVyZS0+SkZFVDJkcmFpblBy
aW1lTm9kZSAhPSBoZXJlLT5KRkVUMmRyYWluTm9kZSkKWCsJICAgIHsKWCsJ
CUNLVGRsdE5OdW0oY2t0LCBoZXJlLT5KRkVUMmRyYWluUHJpbWVOb2RlKTsK
WCsJCWhlcmUtPkpGRVQyZHJhaW5QcmltZU5vZGUgPSAwOwpYKwkgICAgfQpY
Kwl9ClgrICAgIH0KWCsjZW5kaWYKWCsgICAgcmV0dXJuIE9LOwpYK30KWGRp
ZmYgLXJ1TiAuLi93b3JrLm9yaWcvc3JjL2xpYi9kZXYvamZldDIvamZldDJ0
ZW1wLmMgLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MnRlbXAuYwpYLS0tIC4u
L3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MnRlbXAuYwlXZWQg
RGVjIDMxIDE5OjAwOjAwIDE5NjkKWCsrKyAuL3NyYy9saWIvZGV2L2pmZXQy
L2pmZXQydGVtcC5jCVR1ZSBKdW4gMjEgMTQ6MzU6MzEgMTk5NApYQEAgLTAs
MCArMSwxMTYgQEAKWCsvKioqKioqKioqKgpYK0Jhc2Ugb24gamZldHRlbXAu
YwpYK0NvcHlyaWdodCAxOTkwIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg
b2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuClgrQXV0aG9y
OiAxOTg1IFRob21hcyBMLiBRdWFybGVzClgrClgrTW9kaWZpZWQgdG8gYWRk
IFBTIG1vZGVsIGFuZCBuZXcgcGFyYW1ldGVyIGRlZmluaXRpb25zICggQW50
aG9ueSBFLiBQYXJrZXIgKQpYKyAgIENvcHlyaWdodCAxOTk0ICBNYWNxdWFy
aWUgVW5pdmVyc2l0eSwgU3lkbmV5IEF1c3RyYWxpYS4KWCsgICAxMCBGZWIg
MTk5NDogQ2FsbCB0byBQU2luc3RhbmNlaW5pdCgpIGFkZGVkClgrICAgICAg
ICAgICAgICAgIENoYW5nZSBnYXRlUG90ZW50aWFsIHRvIHBoaSBhbmQgdXNl
ZCBycyBhbmQgcmQgZm9yIApYKyAgICAgICAgICAgICAgICBzb3VyY2VSZXNp
c3QgYW5kIGRyYWluUmVzaXN0LCBhbmQgZmMgZm9yIGRlcGxldGlvbkNhcENv
ZWYKWCsqKioqKioqKioqLwpYKwpYKyNpbmNsdWRlICJzcGljZS5oIgpYKyNp
bmNsdWRlIDxzdGRpby5oPgpYKyNpbmNsdWRlICJ1dGlsLmgiClgrI2luY2x1
ZGUgInNtcGRlZnMuaCIKWCsjaW5jbHVkZSAiY2t0ZGVmcy5oIgpYKyNpbmNs
dWRlICJqZmV0MmRlZnMuaCIKWCsjaW5jbHVkZSAiY29uc3QuaCIKWCsjaW5j
bHVkZSAic3BlcnJvci5oIgpYKyNpbmNsdWRlICJwc21vZGVsLmgiClgrI2lu
Y2x1ZGUgInN1ZmZpeC5oIgpYKwpYK2ludApYK0pGRVQydGVtcChpbk1vZGVs
LGNrdCkKWCsgICAgR0VObW9kZWwgKmluTW9kZWw7ClgrICAgIENLVGNpcmN1
aXQgKmNrdDsKWCsgICAgICAgIC8qIFByZS1wcm9jZXNzIHRoZSBtb2RlbCBw
YXJhbWV0ZXJzIGFmdGVyIGEgcG9zc2libGUgY2hhbmdlClgrICAgICAgICAg
Ki8KWCt7ClgrICAgIHJlZ2lzdGVyIEpGRVQybW9kZWwgKm1vZGVsID0gKEpG
RVQybW9kZWwqKWluTW9kZWw7ClgrICAgIHJlZ2lzdGVyIEpGRVQyaW5zdGFu
Y2UgKmhlcmU7ClgrICAgIGRvdWJsZSB4ZmM7ClgrICAgIGRvdWJsZSB2dDsK
WCsgICAgZG91YmxlIHZ0bm9tOwpYKyAgICBkb3VibGUga3Qsa3QxOwpYKyAg
ICBkb3VibGUgYXJnLGFyZzE7ClgrICAgIGRvdWJsZSBmYWN0MSxmYWN0MjsK
WCsgICAgZG91YmxlIGVnZmV0LGVnZmV0MTsKWCsgICAgZG91YmxlIHBiZmFj
dCxwYmZhY3QxOwpYKyAgICBkb3VibGUgZ21hbmV3LGdtYW9sZDsKWCsgICAg
ZG91YmxlIHJhdGlvMTsKWCsgICAgZG91YmxlIHBibzsKWCsgICAgZG91Ymxl
IGNqZmFjdCxjamZhY3QxOwpYKwpYKyAgICAvKiAgbG9vcCB0aHJvdWdoIGFs
bCB0aGUgZGlvZGUgbW9kZWxzICovClgrICAgIGZvciggOyBtb2RlbCAhPSBO
VUxMOyBtb2RlbCA9IG1vZGVsLT5KRkVUMm5leHRNb2RlbCApIHsKWCsKWCsg
ICAgICAgIGlmKCEobW9kZWwtPkpGRVQydG5vbUdpdmVuKSkgewpYKyAgICAg
ICAgICAgIG1vZGVsLT5KRkVUMnRub20gPSBja3QtPkNLVG5vbVRlbXA7Clgr
ICAgICAgICB9ClgrICAgICAgICB2dG5vbSA9IENPTlNUS292ZXJRICogbW9k
ZWwtPkpGRVQydG5vbTsKWCsgICAgICAgIGZhY3QxID0gbW9kZWwtPkpGRVQy
dG5vbS9SRUZURU1QOwpYKyAgICAgICAga3QxID0gQ09OU1Rib2x0eiAqIG1v
ZGVsLT5KRkVUMnRub207ClgrICAgICAgICBlZ2ZldDEgPSAxLjE2LSg3LjAy
ZS00Km1vZGVsLT5KRkVUMnRub20qbW9kZWwtPkpGRVQydG5vbSkvClgrICAg
ICAgICAgICAgICAgIChtb2RlbC0+SkZFVDJ0bm9tKzExMDgpOwpYKyAgICAg
ICAgYXJnMSA9IC1lZ2ZldDEvKGt0MStrdDEpKzEuMTE1MDg3Ny8oQ09OU1Ri
b2x0eiooUkVGVEVNUCtSRUZURU1QKSk7ClgrICAgICAgICBwYmZhY3QxID0g
LTIqdnRub20gKiAoMS41KmxvZyhmYWN0MSkrQ0hBUkdFKmFyZzEpOwpYKyAg
ICAgICAgcGJvID0gKG1vZGVsLT5KRkVUMnBoaS1wYmZhY3QxKS9mYWN0MTsK
WCsgICAgICAgIGdtYW9sZCA9IChtb2RlbC0+SkZFVDJwaGktcGJvKS9wYm87
ClgrICAgICAgICBjamZhY3QgPSAxLygxKy41Kig0ZS00Kihtb2RlbC0+SkZF
VDJ0bm9tLVJFRlRFTVApLWdtYW9sZCkpOwpYKwpYKyAgICAgICAgaWYobW9k
ZWwtPkpGRVQycmQgIT0gMCkgewpYKyAgICAgICAgICAgIG1vZGVsLT5KRkVU
MmRyYWluQ29uZHVjdCA9IDEvbW9kZWwtPkpGRVQycmQ7ClgrICAgICAgICB9
IGVsc2UgewpYKyAgICAgICAgICAgIG1vZGVsLT5KRkVUMmRyYWluQ29uZHVj
dCA9IDA7ClgrICAgICAgICB9ClgrICAgICAgICBpZihtb2RlbC0+SkZFVDJy
cyAhPSAwKSB7ClgrICAgICAgICAgICAgbW9kZWwtPkpGRVQyc291cmNlQ29u
ZHVjdCA9IDEvbW9kZWwtPkpGRVQycnM7ClgrICAgICAgICB9IGVsc2UgewpY
KyAgICAgICAgICAgIG1vZGVsLT5KRkVUMnNvdXJjZUNvbmR1Y3QgPSAwOwpY
KyAgICAgICAgfQpYKyAgICAgICAgaWYobW9kZWwtPkpGRVQyZmMgPi45NSkg
ewpYKyAgICAgICAgICAgICgqKFNQZnJvbnRFbmQtPklGZXJyb3IpKShFUlJf
V0FSTklORywKWCsgICAgICAgICAgICAgICAgICAgICIlczogRGVwbGV0aW9u
IGNhcC4gY29lZmZpY2llbnQgdG9vIGxhcmdlLCBsaW1pdGVkIHRvIC45NSIs
ClgrICAgICAgICAgICAgICAgICAgICAmKG1vZGVsLT5KRkVUMm1vZE5hbWUp
KTsKWCsgICAgICAgICAgICBtb2RlbC0+SkZFVDJmYyA9IC45NTsKWCsgICAg
ICAgIH0KWCsKWCsgICAgICAgIHhmYyA9IGxvZygxIC0gbW9kZWwtPkpGRVQy
ZmMpOwpYKyAgICAgICAgbW9kZWwtPkpGRVQyZjIgPSBleHAoKDErLjUpKnhm
Yyk7ClgrICAgICAgICBtb2RlbC0+SkZFVDJmMyA9IDEgLSBtb2RlbC0+SkZF
VDJmYyAqICgxICsgLjUpOwpYKwpYKyAgICAgICAgLyogbG9vcCB0aHJvdWdo
IGFsbCB0aGUgaW5zdGFuY2VzIG9mIHRoZSBtb2RlbCAqLwpYKyAgICAgICAg
Zm9yIChoZXJlID0gbW9kZWwtPkpGRVQyaW5zdGFuY2VzOyBoZXJlICE9IE5V
TEwgOwpYKyAgICAgICAgICAgICAgICBoZXJlPWhlcmUtPkpGRVQybmV4dElu
c3RhbmNlKSB7ClgrICAgICAgICAgICAgaWYoIShoZXJlLT5KRkVUMnRlbXBH
aXZlbikpIHsKWCsgICAgICAgICAgICAgICAgaGVyZS0+SkZFVDJ0ZW1wID0g
Y2t0LT5DS1R0ZW1wOwpYKyAgICAgICAgICAgIH0KWCsgICAgICAgICAgICB2
dCA9IGhlcmUtPkpGRVQydGVtcCAqIENPTlNUS292ZXJROwpYKyAgICAgICAg
ICAgIGZhY3QyID0gaGVyZS0+SkZFVDJ0ZW1wL1JFRlRFTVA7ClgrICAgICAg
ICAgICAgcmF0aW8xID0gaGVyZS0+SkZFVDJ0ZW1wL21vZGVsLT5KRkVUMnRu
b20gLTE7ClgrICAgICAgICAgICAgaGVyZS0+SkZFVDJ0U2F0Q3VyID0gbW9k
ZWwtPkpGRVQyaXMgKiBleHAocmF0aW8xKjEuMTEvdnQpOwpYKyAgICAgICAg
ICAgIGhlcmUtPkpGRVQydENHUyA9IG1vZGVsLT5KRkVUMmNhcGdzICogY2pm
YWN0OwpYKyAgICAgICAgICAgIGhlcmUtPkpGRVQydENHRCA9IG1vZGVsLT5K
RkVUMmNhcGdkICogY2pmYWN0OwpYKyAgICAgICAgICAgIGt0ID0gQ09OU1Ri
b2x0eipoZXJlLT5KRkVUMnRlbXA7ClgrICAgICAgICAgICAgZWdmZXQgPSAx
LjE2LSg3LjAyZS00KmhlcmUtPkpGRVQydGVtcCpoZXJlLT5KRkVUMnRlbXAp
LwpYKyAgICAgICAgICAgICAgICAgICAgKGhlcmUtPkpGRVQydGVtcCsxMTA4
KTsKWCsgICAgICAgICAgICBhcmcgPSAtZWdmZXQvKGt0K2t0KSArIDEuMTE1
MDg3Ny8oQ09OU1Rib2x0eiooUkVGVEVNUCtSRUZURU1QKSk7ClgrICAgICAg
ICAgICAgcGJmYWN0ID0gLTIgKiB2dCAqICgxLjUqbG9nKGZhY3QyKStDSEFS
R0UqYXJnKTsKWCsgICAgICAgICAgICBoZXJlLT5KRkVUMnRHYXRlUG90ID0g
ZmFjdDIgKiBwYm8gKyBwYmZhY3Q7ClgrICAgICAgICAgICAgZ21hbmV3ID0g
KGhlcmUtPkpGRVQydEdhdGVQb3QtcGJvKS9wYm87ClgrICAgICAgICAgICAg
Y2pmYWN0MSA9IDErLjUqKDRlLTQqKGhlcmUtPkpGRVQydGVtcC1SRUZURU1Q
KS1nbWFuZXcpOwpYKyAgICAgICAgICAgIGhlcmUtPkpGRVQydENHUyAqPSBj
amZhY3QxOwpYKyAgICAgICAgICAgIGhlcmUtPkpGRVQydENHRCAqPSBjamZh
Y3QxOwpYKwpYKyAgICAgICAgICAgIGhlcmUtPkpGRVQyY29yRGVwQ2FwID0g
bW9kZWwtPkpGRVQyZmMgKiBoZXJlLT5KRkVUMnRHYXRlUG90OwpYKyAgICAg
ICAgICAgIGhlcmUtPkpGRVQyZjEgPSBoZXJlLT5KRkVUMnRHYXRlUG90ICog
KDEgLSBleHAoKDEtLjUpKnhmYykpLygxLS41KTsKWCsgICAgICAgICAgICBo
ZXJlLT5KRkVUMnZjcml0ID0gdnQgKiBsb2codnQvKENPTlNUcm9vdDIgKiBo
ZXJlLT5KRkVUMnRTYXRDdXIpKTsKWCsKWCsgICAgICAgICAgICBQU2luc3Rh
bmNlaW5pdChtb2RlbCwgaGVyZSk7ClgrICAgICAgICAgICAgClgrICAgICAg
ICB9ClgrICAgIH0KWCsgICAgcmV0dXJuKE9LKTsKWCt9ClhkaWZmIC1ydU4g
Li4vd29yay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL2pmZXQydHJ1bi5jIC4v
c3JjL2xpYi9kZXYvamZldDIvamZldDJ0cnVuLmMKWC0tLSAuLi93b3JrLm9y
aWcvc3JjL2xpYi9kZXYvamZldDIvamZldDJ0cnVuLmMJV2VkIERlYyAzMSAx
OTowMDowMCAxOTY5ClgrKysgLi9zcmMvbGliL2Rldi9qZmV0Mi9qZmV0MnRy
dW4uYwlUdWUgSnVuIDIxIDE0OjM1OjM0IDE5OTQKWEBAIC0wLDAgKzEsMzYg
QEAKWCsvKioqKioqKioqKgpYK0Jhc2VkIG9uIGpmZXR0cnVuYy5jClgrQ29w
eXJpZ2h0IDE5OTAgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp
Zm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KWCtBdXRob3I6IDE5ODUg
VGhvbWFzIEwuIFF1YXJsZXMKWCsKWCtNb2RpZmllZCB0byBqZmV0MiBmb3Ig
UFMgbW9kZWwgZGVmaW5pdGlvbiAoIEFudGhvbnkgRS4gUGFya2VyICkKWCsg
ICBDb3B5cmlnaHQgMTk5NCAgTWFjcXVhcmllIFVuaXZlcnNpdHksIFN5ZG5l
eSBBdXN0cmFsaWEuClgrKioqKioqKioqKi8KWCsvKgpYKyAqLwpYKwpYKyNp
bmNsdWRlICJzcGljZS5oIgpYKyNpbmNsdWRlIDxzdGRpby5oPgpYKyNpbmNs
dWRlICJja3RkZWZzLmgiClgrI2luY2x1ZGUgImpmZXQyZGVmcy5oIgpYKyNp
bmNsdWRlICJzcGVycm9yLmgiClgrI2luY2x1ZGUgInN1ZmZpeC5oIgpYKwpY
KwpYK2ludApYK0pGRVQydHJ1bmMoaW5Nb2RlbCxja3QsdGltZVN0ZXApClgr
ICAgIEdFTm1vZGVsICppbk1vZGVsOwpYKyAgICByZWdpc3RlciBDS1RjaXJj
dWl0ICpja3Q7ClgrICAgIGRvdWJsZSAqdGltZVN0ZXA7ClgrewpYKyAgICBy
ZWdpc3RlciBKRkVUMm1vZGVsICptb2RlbCA9IChKRkVUMm1vZGVsKilpbk1v
ZGVsOwpYKyAgICByZWdpc3RlciBKRkVUMmluc3RhbmNlICpoZXJlOwpYKwpY
KyAgICBmb3IoIDsgbW9kZWwgIT0gTlVMTDsgbW9kZWwgPSBtb2RlbC0+SkZF
VDJuZXh0TW9kZWwpIHsKWCsgICAgICAgIGZvcihoZXJlPW1vZGVsLT5KRkVU
Mmluc3RhbmNlcztoZXJlIT1OVUxMO2hlcmUgPSBoZXJlLT5KRkVUMm5leHRJ
bnN0YW5jZSl7ClgrICAgICAgICAgICAgQ0tUdGVycihoZXJlLT5KRkVUMnFn
cyxja3QsdGltZVN0ZXApOwpYKyAgICAgICAgICAgIENLVHRlcnIoaGVyZS0+
SkZFVDJxZ2QsY2t0LHRpbWVTdGVwKTsKWCsgICAgICAgIH0KWCsgICAgfQpY
KyAgICByZXR1cm4oT0spOwpYK30KWGRpZmYgLXJ1TiAuLi93b3JrLm9yaWcv
c3JjL2xpYi9kZXYvamZldDIvbWFrZWRlZnMgLi9zcmMvbGliL2Rldi9qZmV0
Mi9tYWtlZGVmcwpYLS0tIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0
Mi9tYWtlZGVmcwlXZWQgRGVjIDMxIDE5OjAwOjAwIDE5NjkKWCsrKyAuL3Ny
Yy9saWIvZGV2L2pmZXQyL21ha2VkZWZzCU1vbiBKdW4gMjcgMTE6MDU6NDIg
MTk5NApYQEAgLTAsMCArMSwzNyBAQApYKyMjIyMjIyMjIyMjClgrIyBDb3B5
cmlnaHQgMTk5MSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm
b3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpYKyMgTW9kaWZpZWQgMTk5
NCBmb3IgamZldDIgYW5kIHBzbW9kZWwKWCsjIyMjIyMjIyMjIwpYKwpYK0NG
SUxFUwkJPSBqZmV0Mi5jIGpmZXQyYWNsZC5jIGpmZXQyYXNrLmMgamZldDJk
ZWwuYyBqZmV0MmRlc3QuYyBcClgrCQkgIGpmZXQyaWMuYyBqZmV0MmxvYWQu
YyBqZmV0Mm1hc2suYyBqZmV0Mm1kZWwuYyBcClgrCQkgIGpmZXQybXBhci5j
IGpmZXQybm9pLmMgamZldDJwYXIuYyBqZmV0MnNldC5jIFwKWCsJCSAgamZl
dDJ0ZW1wLmMgamZldDJ0cnVuLmMgcHNtb2RlbC5jClgrClgrQ09CSlMJCT0g
amZldDIubyBqZmV0MmFjbGQubyBqZmV0MmFzay5vIGpmZXQyZGVsLm8gamZl
dDJkZXN0Lm8gXApYKwkJICBqZmV0MmljLm8gamZldDJsb2FkLm8gamZldDJt
YXNrLm8gamZldDJtZGVsLm8gXApYKwkJICBqZmV0Mm1wYXIubyBqZmV0Mm5v
aS5vIGpmZXQycGFyLm8gamZldDJzZXQubyBcClgrCQkgIGpmZXQydGVtcC5v
IGpmZXQydHJ1bi5vIHBzbW9kZWwubwpYKwpYK01PRFVMRQkJPSBqZmV0MgpY
K0xJQlJBUlkJCT0gZGV2ClgrTU9EVUxFX1RBUkdFVAk9ICQoT0JKTElCX0RJ
UikvJChNT0RVTEUpClgrClgrTlVNQkVSCQk9IDMKWCsKWCtqZmV0Mi5vOiBq
ZmV0Mi5jIGpmZXQycGFybS5oClgramZldDJhY2xkLm86IGpmZXQyYWNsZC5j
IGpmZXQycGFybS5oIHBzbW9kZWwuaApYK2pmZXQyYXNrLm86IGpmZXQyYXNr
LmMgamZldDJwYXJtLmgKWCtqZmV0MmRlbC5vOiBqZmV0MmRlbC5jIGpmZXQy
cGFybS5oClgramZldDJkZXN0Lm86IGpmZXQyZGVzdC5jIGpmZXQycGFybS5o
ClgramZldDJpYy5vOiBqZmV0MmljLmMgamZldDJwYXJtLmgKWCtqZmV0Mmxv
YWQubzogamZldDJsb2FkLmMgamZldDJwYXJtLmggcHNtb2RlbC5oClgramZl
dDJtYXNrLm86IGpmZXQybWFzay5jIGpmZXQycGFybS5oClgramZldDJtZGVs
Lm86IGpmZXQybWRlbC5jIGpmZXQycGFybS5oClgramZldDJtcGFyLm86IGpm
ZXQybXBhci5jIGpmZXQycGFybS5oClgramZldDJub2kubzogamZldDJub2ku
YyBqZmV0MnBhcm0uaApYK2pmZXQycGFyLm86IGpmZXQycGFyLmMgamZldDJw
YXJtLmgKWCtqZmV0MnNldC5vOiBqZmV0MnNldC5jIGpmZXQycGFybS5oClgr
amZldDJ0ZW1wLm86IGpmZXQydGVtcC5jIGpmZXQycGFybS5oIHBzbW9kZWwu
aApYK2pmZXQydHJ1bi5vOiBqZmV0MnRydW4uYyBqZmV0MnBhcm0uaApYK3Bz
bW9kZWwubzogcHNtb2RlbC5jIHBzbW9kZWwuaCBqZmV0MnBhcm0uaApYZGlm
ZiAtcnVOIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9tc2M1MS5i
YXQgLi9zcmMvbGliL2Rldi9qZmV0Mi9tc2M1MS5iYXQKWC0tLSAuLi93b3Jr
Lm9yaWcvc3JjL2xpYi9kZXYvamZldDIvbXNjNTEuYmF0CVdlZCBEZWMgMzEg
MTk6MDA6MDAgMTk2OQpYKysrIC4vc3JjL2xpYi9kZXYvamZldDIvbXNjNTEu
YmF0CU1vbiBKdW4gMjcgMTE6MDY6MTAgMTk5NApYQEAgLTAsMCArMSwxNyBA
QApYK2NsIC9JLi5cLi5cLi5caW5jbHVkZSAvYyBqZmV0Mi5jID4+IC4uXC4u
XC4uXG1zYy5vdXQKWCtjbCAvSS4uXC4uXC4uXGluY2x1ZGUgL2MgamZldDJh
Y2xkLmMgPj4gLi5cLi5cLi5cbXNjLm91dApYK2NsIC9JLi5cLi5cLi5caW5j
bHVkZSAvYyBqZmV0MmFzay5jID4+IC4uXC4uXC4uXG1zYy5vdXQKWCtjbCAv
SS4uXC4uXC4uXGluY2x1ZGUgL2MgamZldDJkZWwuYyA+PiAuLlwuLlwuLlxt
c2Mub3V0ClgrY2wgL0kuLlwuLlwuLlxpbmNsdWRlIC9jIGpmZXQyZGVzdC5j
ID4+IC4uXC4uXC4uXG1zYy5vdXQKWCtjbCAvSS4uXC4uXC4uXGluY2x1ZGUg
L2MgamZldDJpYy5jID4+IC4uXC4uXC4uXG1zYy5vdXQKWCtjbCAvSS4uXC4u
XC4uXGluY2x1ZGUgL2MgamZldDJsb2FkLmMgPj4gLi5cLi5cLi5cbXNjLm91
dApYK2NsIC9JLi5cLi5cLi5caW5jbHVkZSAvYyBqZmV0Mm1hc2suYyA+PiAu
LlwuLlwuLlxtc2Mub3V0ClgrY2wgL0kuLlwuLlwuLlxpbmNsdWRlIC9jIGpm
ZXQybWRlbC5jID4+IC4uXC4uXC4uXG1zYy5vdXQKWCtjbCAvSS4uXC4uXC4u
XGluY2x1ZGUgL2MgamZldDJtcGFyLmMgPj4gLi5cLi5cLi5cbXNjLm91dApY
K2NsIC9JLi5cLi5cLi5caW5jbHVkZSAvYyBqZmV0Mm5vaS5jID4+IC4uXC4u
XC4uXG1zYy5vdXQKWCtjbCAvSS4uXC4uXC4uXGluY2x1ZGUgL2MgamZldDJw
YXIuYyA+PiAuLlwuLlwuLlxtc2Mub3V0ClgrY2wgL0kuLlwuLlwuLlxpbmNs
dWRlIC9jIGpmZXQyc2V0LmMgPj4gLi5cLi5cLi5cbXNjLm91dApYK2NsIC9J
Li5cLi5cLi5caW5jbHVkZSAvYyBqZmV0MnRlbXAuYyA+PiAuLlwuLlwuLlxt
c2Mub3V0ClgrY2wgL0kuLlwuLlwuLlxpbmNsdWRlIC9jIGpmZXQydHJ1bi5j
ID4+IC4uXC4uXC4uXG1zYy5vdXQKWCtjbCAvSS4uXC4uXC4uXGluY2x1ZGUg
L2MgcHNtb2RlbC5jID4+IC4uXC4uXC4uXG1zYy5vdXQKWCtsaWIgLi5cLi5c
ZGV2My5saWIgQHJlc3BvbnNlLmxpYiA+PiAuLlwuLlwuLlxtc2Mub3V0Clhk
aWZmIC1ydU4gLi4vd29yay5vcmlnL3NyYy9saWIvZGV2L2pmZXQyL3BzbW9k
ZWwuYyAuL3NyYy9saWIvZGV2L2pmZXQyL3BzbW9kZWwuYwpYLS0tIC4uL3dv
cmsub3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9wc21vZGVsLmMJV2VkIERlYyAz
MSAxOTowMDowMCAxOTY5ClgrKysgLi9zcmMvbGliL2Rldi9qZmV0Mi9wc21v
ZGVsLmMJU2F0IEp1bCAgNiAwMTo0MjowOSAxOTk2ClhAQCAtMCwwICsxLDM1
OSBAQApYKy8qClgrIAlQYXJrZXItU2tlbGxlcm4gTUVTRkVUIG1vZGVsClgr
IAkKWCsJQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2ICBNYWNxdWFy
aWUgVW5pdmVyc2l0eSAgICAgICAgICAgICAgICAgICAgClgrCUFsbCBSaWdo
dHMgUmVzZXJ2ZWQgClgrCUF1dGhvcjogQW50aG9ueSBQYXJrZXIKWCsJRGF0
ZToJMiAgRmViIDE5OTQgIGNyZWF0ZWQKWCsJICAgICAgICA5ICBGZWIgMTk5
NCAgY29ycmVjdCBOYU4gcHJvYmxlbSBpbiBzdHJvbmcgY3V0LW9mZiByZWdp
b24KWCsJICAgICAgICAyMCBNQVIgMTk5NCAgY29ycmVjdGVkIGNhcGFjaXRh
bmNlIGluaXRpYWxpemF0aW9uICAKWCsJICAgICAgICAyNCBNQVIgMTk5NCAg
YWRkZWQgcGFyYW1ldGVyIE1WU1QgIApYKwkgICAgICAgIDI4IE1BUiAxOTk0
ICByZW9yZ2FuaXplZCBkZWNsYXJhdGlvbiBzY29wZXMgClgrICAgICAgICAg
ICAgMTkgQVBSIDE5OTQgIGFkZGVkIG5ldyBwYXJhbWV0ZXJzOiBQU19IRkVU
QSwgUFNfSEZFMSwgUFNfSEZFMiwKWCsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBTX0hGRzEsIGFuZCBQU19IRkcyClgrICAgICAgICAgICAgMTgg
TWF5IDE5OTQgIGNvcnJlY3RlZCAxLzAgZXJyb3Igd2hlbiBQU19WU1VCPTAK
WCsgICAgICAgICAgICAxNSBKdWwgMTk5NCAgY29ycmVjdGVkIGVycm9ycyBp
biBhY2xvYWQgcm91dGluZQpYKyAgICAgICAgICAgIDEwIEF1ZyAxOTk1ICBh
ZGRlZCBQU19WU1VCIHRvIGdkcyArPSBnbSpQU19WU1VCKm12c3QqKHZndC12
Z3N0KihhLi4KWCsJCQkxMiBTZXAgMTk5NSAgY2hhbmdlZCBfWFhYIHRvIFBT
X1hYWCB0byBhaWQgcG9ydGFiaWxpdHkKWCsgICAgICAgICAgICAxMyBTZXAg
MTk5NSAgY2hhbmdlIHRvIGdpdmUgYXJnPTEtMS9zdWJmYWM7IApYKwkJCSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZzdCE9MCkgZ2RzKz1nbSpQ
U19WU1VCLi47ClgrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdtICo9IGFyZzsKWCsJCQkxMCBGZWIgMTk5NiAgY2hhbmdlIHRv
IG5hbWVzIHRvIG1hdGNoIE1pY3JvU2ltIGNvZGUuClgrCQkJNSAgSnVsIDE5
OTYgIGNvcnJlY3RlZCBkaW9kZSBlcSAoY2hhbmdlIEdtaW4qdmdzIHRvIEdt
aW4qdmdkKS4KWCsgClgrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KiovClgrClgrLyotLS0tLS0tLS0tLQpYK3wgZnVuY3Rpb25zIGRlZmluZWQg
aW4gdGhpcyBmaWxlIGFyZToKWCsgICAgUFNpZHMoKSAgICAgICAgICByZXR1
cm5zIGRjIGRyYWluIHNvdXJjZSBjdXJyZW50IGFuZCBhc3NpZ25zIG90aGVy
ClgrICAgICAgICAgICAgICAgICAgICAgY3VycmVudCBhbmQgYnJhbmNoIGNv
bmR1Y3RhbmNlcwpYKyAgICBxZ2coKSAgICAgICAgICAgIHN0YXRpYyBmdW5j
dGlvbiB0aGF0IHJldHVybnMgZ2F0ZSBjaGFyZ2UKWCsgICAgUFNjaGFyZ2Uo
KSAgICAgICByZXR1cm5zIGdhdGUtc291cmNlIGFuZCBnYXRlLWRyYWluIGNo
YXJnZSBhbmQgY2FwYWNpdGFuY2UKWCsgICAgUFNhY2xvYWQoKSAgICAgICBy
ZXR1cm5zIHNtYWxsLXNpZ25hbCBjb25kdWN0YW5jZSBlbGVtZW50cwpYKyAg
ICBQU2luc3RhbmNlaW5pdCgpIGluaXRpYWxpemVzIG1vZGVsIHBhcmFtZXRl
cnMKWCsgKi8KWCsKWCsjZGVmaW5lIFBTTU9ERUxfQyAgICAgIC8qIGFjdGl2
YXRlIGxvY2FsIGRlZmluaXRpb25zIGluIHBzbWVzZmV0LmggKi8KWCsjaW5j
bHVkZSAicHNtb2RlbC5oIgpYKwpYKy8qLS0tLS0tLS0tLS0KWCt8IGRjIGN1
cnJlbnQgYW5kIGNvbmR1Y3RhbmNlIGNhbGN1bGF0aW9uICovClgrZG91Ymxl
ClgrUFNpZHMoY2t0LCBtb2RlbCwgaGVyZSwgdmdzLCB2Z2QsIGlncywgaWdk
LCBnZ3MsIGdnZCwgR20sIEdkcykKWCtjcmVmICpja3Q7ClgrbW9kbCAqbW9k
ZWw7ClgraW5zdCAqaGVyZTsKWCtkb3VibGUgdmdzOwpYK2RvdWJsZSB2Z2Q7
ClgrZG91YmxlICppZ3M7ClgrZG91YmxlICppZ2Q7ClgrZG91YmxlICpnZ3M7
ClgrZG91YmxlICpnZ2Q7ClgrZG91YmxlICpHbTsKWCtkb3VibGUgKkdkczsK
WCt7ClgrI2RlZmluZSBGWCAgLTEwLjAgLyogbm90IHRvbyBzbWFsbCBlbHNl
IGZhdGFsIHJvdW5kaW5nIGVycm9yIGluIChycHQtYV9ycHQpICovClgrI2Rl
ZmluZSBNWCAgNDAuMCAgLyogbWF4aW11bSBleHBvbmVudGlhbCBhcmd1bWVu
dCAqLwpYKyNkZWZpbmUgRU1YIDIuMzUzODUyNjY4MzcwMTk5ODQyZTE3ICAv
KiBleHAoTVgpICovClgrClgrICAgZG91YmxlIGlkcmFpbiwgYXJnOwpYKyAg
IGRvdWJsZSBhcmVhID0gQVJFQTsKWCsKWCsgICB7IC8qIGdhdGUganVuY3Rp
b24gZGlvZGVzICovClgrICAgICAgZG91YmxlIHp6OwpYKyAgICAgIHsgLyog
Z2F0ZS1qdW5jdGlvbiBmb3J3YXJkIGNvbmR1Y3Rpb24gKi8KWCsgICAgICAg
ICBkb3VibGUgR21pbiAgID0gR01JTjsKWCsgICAgICAgICBkb3VibGUgVnQg
ICAgID0gTlZUOwpYKyAgICAgICAgIGRvdWJsZSBpc2F0ICAgPSBJUyAgICog
YXJlYTsKWCsgICAgICAgICBpZiAoKGFyZz12Z3MvVnQpID4gRlgpIHsKWCsg
ICAgICAgICAgICBpZihhcmcgPCBNWCkgewpYKyAgICAgICAgICAgICAgICpn
Z3M9KHp6PWlzYXQqZXhwKGFyZykpL1Z0K0dtaW47ICppZ3M9IHp6IC1pc2F0
ICtHbWluKnZnczsKWCsgICAgICAgICAgICB9IGVsc2UgewpYKyAgICAgICAg
ICAgICAgICpnZ3M9KHp6PWlzYXQqRU1YKS9WdCtHbWluOyAgICAgKmlncz16
eiooYXJnLU1YKzEpLWlzYXQrR21pbip2Z3M7ClgrICAgICAgICAgICAgfQpY
KyAgICAgICAgIH0gZWxzZSB7ClgrICAgICAgICAgICAgKmdncyA9IEdtaW47
ICAgICAgICAgICAgICAgICAgICAgICAqaWdzID0gLWlzYXQgKyBHbWluICog
dmdzOwpYKyAgICAgICAgIH0KWCsgICAgICAgICBpZiAoKGFyZz12Z2QvVnQp
ID4gRlgpIHsKWCsgICAgICAgICAgICBpZihhcmcgPCBNWCkgewpYKyAgICAg
ICAgICAgICAgICpnZ2Q9KHp6PWlzYXQqZXhwKGFyZykpL1Z0K0dtaW47ICpp
Z2Q9IHp6IC1pc2F0ICtHbWluKnZnZDsKWCsgICAgICAgICAgICB9IGVsc2Ug
ewpYKyAgICAgICAgICAgICAgICpnZ2Q9KHp6PWlzYXQqRU1YKS9WdCtHbWlu
OyAgICAgKmlnZD16eiooYXJnLU1YKzEpLWlzYXQrR21pbip2Z2Q7ClgrICAg
ICAgICAgICAgfQpYKyAgICAgICAgIH0gZWxzZSB7ClgrICAgICAgICAgICAg
KmdnZCA9IEdtaW47ICAgICAgICAgICAgICAgICAgICAgICAqaWdkID0gLWlz
YXQgKyBHbWluICogdmdkOwpYKyAgICAgICAgIH0KWCsgICAgICB9ClgrICAg
ICAgeyAvKiBnYXRlLWp1bmN0aW9uIHJldmVyc2UgJ2JyZWFrZG93bicgY29u
ZHVjdGlvbiAqLwpYKyAgICAgICAgIGRvdWJsZSBWYmQgICAgPSBWQkQ7Clgr
ICAgICAgICAgZG91YmxlIGliZCAgICA9IElCRCAgKiBhcmVhOwpYKyAgICAg
ICAgIGlmICgoYXJnPS12Z3MvVmJkKSA+IEZYKSB7ClgrICAgICAgICAgICAg
aWYoYXJnIDwgTVgpIHsKWCsgICAgICAgICAgICAgICAqZ2dzICs9ICh6ej1p
YmQqZXhwKGFyZykpL1ZiZDsgICppZ3MgLT0genotaWJkOwpYKyAgICAgICAg
ICAgIH0gZWxzZSB7ClgrICAgICAgICAgICAgICAgKmdncyArPSAoeno9aWJk
KkVNWCkvVmJkOyAgICAgICAqaWdzIC09IHp6KigoYXJnLU1YKSsxKSAtIGli
ZDsKWCsgICAgICAgICAgICB9ClgrICAgICAgICAgfSBlbHNlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqaWdzICs9IGliZDsKWCsgICAgICAg
ICBpZiAoKGFyZz0tdmdkL1ZiZCkgPiBGWCkgewpYKyAgICAgICAgICAgIGlm
KGFyZyA8IE1YKSB7ClgrICAgICAgICAgICAgICAgKmdnZCArPSAoeno9aWJk
KmV4cChhcmcpKS9WYmQ7ICAqaWdkIC09IHp6LWliZDsKWCsgICAgICAgICAg
ICB9IGVsc2UgewpYKyAgICAgICAgICAgICAgICpnZ2QgKz0gKHp6PWliZCpF
TVgpL1ZiZDsgICAgICAgKmlnZCAtPSB6eiooKGFyZy1NWCkrMSkgLSBpYmQ7
ClgrICAgICAgICAgICAgfQpYKyAgICAgICAgIH0gZWxzZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKmlnZCArPSBpYmQ7ClgrICAgICAgfQpY
KyAgIH0KWCsgICAgClgrICAgeyAvKiAgY29tcHV0ZSBkcmFpbiBjdXJyZW50
IGFuZCBkZXJpdml0aXZlcyAqLwpYKyAgICAgIGRvdWJsZSBnbSwgZ2RzOwpY
KyAgICAgIGRvdWJsZSB2ZHN0ID0gdmdzIC0gdmdkOwpYKyAgICAgIGRvdWJs
ZSBzdGVwb2ZvdXIgPSBTVEVQICogRk9VUlRIOwpYKyAgICAgIHsgLyogSW5j
bHVkZSByYXRlIGRlcGVuZGVudCB0aHJlc2hvbGQgbW9kdWxhdGlvbiAqLwpY
KyAgICAgICAgIGRvdWJsZSB2Z3N0LCBkdmdkLCBkdmdzLCBoLCB2Z2R0cmFw
LCB2Z3N0cmFwLCBldGEsIGdhbTsKWCsgICAgICAgICBkb3VibGUgdnRvID0g
VlRPOwpYKyAgICAgICAgIGRvdWJsZSBMRmcgPSBMRkdBTSwgICBMRmcxID0g
TEZHMSwgIExGZzIgPSBMRkcyOwpYKyAgICAgICAgIGRvdWJsZSBIRmcgPSBI
RkdBTSwgICBIRmcxID0gSEZHMSwgIEhGZzIgPSBIRkcyOwpYKyAgICAgICAg
IGRvdWJsZSBIRmUgPSBIRkVUQSwgICBIRmUxID0gSEZFMSwgIEhGZTIgPSBI
RkUyOwpYKyAgICAgICAgIGlmKFRSQU5fQU5BTCkgewpYKyAgICAgICAgICAg
IGRvdWJsZSB0YXVnID0gVEFVRzsKWCsgICAgICAgICAgICBoID0gdGF1Zy8o
dGF1ZyArIHN0ZXBvZm91cik7ICBoKj1oOyBoKj1oOyAvKjR0aCBwb3dlciov
ClgrICAgICAgICAgICAgVkdEVFJBUF9OT1cgPSB2Z2R0cmFwID0gaCpWR0RU
UkFQX0JFRk9SRSArICgxLWgpICogdmdkOwpYKyAgICAgICAgICAgIFZHU1RS
QVBfTk9XID0gdmdzdHJhcCA9IGgqVkdTVFJBUF9CRUZPUkUgKyAoMS1oKSAq
IHZnczsKWCsgICAgICAgICB9IGVsc2UgewpYKyAgICAgICAgICAgIGggPSAw
OwpYKyAgICAgICAgICAgIFZHRFRSQVBfTk9XID0gdmdkdHJhcCA9IHZnZDsK
WCsgICAgICAgICAgICBWR1NUUkFQX05PVyA9IHZnc3RyYXAgPSB2Z3M7Clgr
ICAgICAgICAgfQpYKyAgICAgICAgIHZnc3QgPSB2Z3MgLSB2dG87ClgrICAg
ICAgICAgdmdzdCAtPSAoICAgICAgTEZnIC0gTEZnMSp2Z3N0cmFwICsgTEZn
Mip2Z2R0cmFwKSp2Z2R0cmFwOwpYKyAgICAgICAgIHZnc3QgKz0gKGV0YSA9
IEhGZSAtIEhGZTEqdmdkdHJhcCArIEhGZTIqdmdzdHJhcCkqKGR2Z3MgPSB2
Z3N0cmFwLXZncyk7ClgrICAgICAgICAgdmdzdCArPSAoZ2FtID0gSEZnIC0g
SEZnMSp2Z3N0cmFwICsgSEZnMip2Z2R0cmFwKSooZHZnZCA9IHZnZHRyYXAt
dmdkKTsKWCsgICAgICAgICB7IC8qIEV4cG9uZW50aWFsIFN1YnRocmVzaG9s
ZCBlZmZlY3QgaWRzKHZnc3QsdmRzdCkgKi8KWCsgICAgICAgICAgICBkb3Vi
bGUgdmd0LCBzdWJmYWM7ClgrICAgICAgICAgICAgZG91YmxlIG12c3QgPSBN
VlNUOwpYKyAgICAgICAgICAgIGRvdWJsZSB2c3QgPSBWU1VCICogKDEgKyBt
dnN0KnZkc3QpOwpYKyAgICAgICAgICAgIGlmICh2Z3N0ID4gRlgqdnN0KSB7
ClgrICAgICAgICAgICAgICAgaWYgKHZnc3QgPiAoYXJnPU1YKnZzdCkpIHsg
LyogbnVtZXJpY2FsbHkgbGFyZ2UgKi8KWCsgICAgICAgICAgICAgICAgICB2
Z3QgPSAoRU1YLyhzdWJmYWMgPSBFTVgrMSkpKih2Z3N0LWFyZykgKyBhcmc7
ClgrICAgICAgICAgICAgICAgfSBlbHNlICAvKiBsaW1pdCBnYXRlIGJpYXMg
ZXhwb25lbnRpYWxseSAqLwpYKyAgICAgICAgICAgICAgICAgIHZndCA9IHZz
dCAqIGxvZyggc3ViZmFjPSgxICsgZXhwKHZnc3QvdnN0KSkgKTsKWCsgICAg
ICAgICAgICAgICB7IC8qIER1YWwgUG93ZXItbGF3IGlkcyh2Z3QsdmRzdCkg
Ki8KWCsgICAgICAgICAgICAgICAgICBkb3VibGUgbVEgID0gUTsKWCsgICAg
ICAgICAgICAgICAgICBkb3VibGUgUG1RID0gUCAtIG1ROwpYKyAgICAgICAg
ICAgICAgICAgIGRvdWJsZSBkdnBkX2R2ZHN0PShkb3VibGUpRDMqcG93KHZn
dCxQbVEpOwpYKyAgICAgICAgICAgICAgICAgIGRvdWJsZSB2ZHAgPSB2ZHN0
KmR2cGRfZHZkc3Q7IC8qRDM9UC9RLygoVkJJLXZ0byleUG1RKSovClgrICAg
ICAgICAgICAgICAgICAgeyAvKiBFYXJseSBzYXR1cmF0aW9uIGVmZmVjdCBp
ZHModmd0LHZkcCkgKi8KWCsgICAgICAgICAgICAgICAgICAgICBkb3VibGUg
emEgID0gKGRvdWJsZSlaQTsgLyogc3FydCgxICsgWikvMiAqLwpYKyAgICAg
ICAgICAgICAgICAgICAgIGRvdWJsZSBteGkgPSBNWEk7ClgrICAgICAgICAg
ICAgICAgICAgICAgZG91YmxlIHZzYXRGYWMgPSB2Z3QvKG14aSp2Z3QgICsg
KGRvdWJsZSlYSV9XT08pOwpYKyAgICAgICAgICAgICAgICAgICAgIGRvdWJs
ZSB2c2F0PXZndC8oMSArIHZzYXRGYWMpOwpYKyAgICAgICAgICAgICAgICAg
ICAgIGRvdWJsZSAgYWEgPSB6YSp2ZHArdnNhdC8yLjA7ClgrICAgICAgICAg
ICAgICAgICAgICAgZG91YmxlIGFfYWEgPSBhYS12c2F0OwpYKyAgICAgICAg
ICAgICAgICAgICAgIGRvdWJsZSAgcnB0ID0gc3FydCggYWEgKiBhYSArIChh
cmc9dnNhdCp2c2F0KlovNC4wKSk7ClgrICAgICAgICAgICAgICAgICAgICAg
ZG91YmxlIGFfcnB0ID0gc3FydChhX2FhICogYV9hYSArIGFyZyk7ClgrICAg
ICAgICAgICAgICAgICAgICAgZG91YmxlIHZkdCA9IChycHQgLSBhX3JwdCk7
ClgrICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGR2ZHRfZHZkcCA9IHph
ICogKGFhL3JwdCAtIGFfYWEvYV9ycHQpOwpYKyAgICAgICAgICAgICAgICAg
ICAgIGRvdWJsZSBkdmR0X2R2Z3QgPSAodmR0IC0gdmRwKmR2ZHRfZHZkcCkK
WCsgICAgICAgICAgICAgICAgICAgICAgICAgICAqKDEgKyBteGkqdnNhdEZh
Yyp2c2F0RmFjKS8oMSArIHZzYXRGYWMpL3ZndDsKWCsgICAgICAgICAgICAg
ICAgICAgICB7IC8qIEludHJpbnNpYyBRLWxhdyBGRVQgZXF1YXRpb24gaWRz
KHZndCx2ZHQpICovClgrICAgICAgICAgICAgICAgICAgICAgICAgZ2RzPXBv
dyh2Z3QtdmR0LG1RLTEpOwpYKyAgICAgICAgICAgICAgICAgICAgICAgIGlk
cmFpbiA9IHZkdCpnZHMgKyB2Z3QqKGdtPXBvdyh2Z3QsbVEtMSktZ2RzKTsK
WCsgICAgICAgICAgICAgICAgICAgICAgICBnZHMgKj0gbVE7ClgrICAgICAg
ICAgICAgICAgICAgICAgICAgZ20gKj0gbVE7ClgrICAgICAgICAgICAgICAg
ICAgICAgfQpYKyAgICAgICAgICAgICAgICAgICAgIGdtICs9IGdkcypkdmR0
X2R2Z3Q7ClgrICAgICAgICAgICAgICAgICAgICAgZ2RzICo9IGR2ZHRfZHZk
cDsKWCsgICAgICAgICAgICAgICAgICB9ClgrICAgICAgICAgICAgICAgICAg
Z20gKz0gZ2RzKlBtUSp2ZHAvdmd0OwpYKyAgICAgICAgICAgICAgICAgIGdk
cyAqPSBkdnBkX2R2ZHN0OwpYKyAgICAgICAgICAgICAgIH0KWCsgICAgICAg
ICAgICAgICBhcmcgPSAxIC0gMS9zdWJmYWM7ClgrICAgICAgICAgICAgICAg
aWYodnN0ICE9IDApIGdkcyArPSBnbSpWU1VCKm12c3QqKHZndC12Z3N0KmFy
ZykvdnN0OwpYKyAgICAgICAgICAgICAgIGdtICo9IGFyZzsKWCsgICAgICAg
ICAgICB9IGVsc2UgeyAvKiBpbiBleHRyZW1lIGN1dC1vZmYgKG51bWVyaWNh
bGx5KSAqLwpYKyAgICAgICAgICAgICAgIGlkcmFpbiA9IGdtID0gZ2RzID0g
MC4wZTA7ClgrICAgICAgICAgICAgfQpYKyAgICAgICAgIH0KWCsgICAgICAg
ICBnZHMgKz0gZ20qKGFyZyA9IGgqZ2FtICsKWCsgICAgICAgICAgICAgICAg
ICAgKDEtaCkqKEhGZTEqZHZncy1IRmcyKmR2Z2QrMipMRmcyKnZnZHRyYXAt
TEZnMSp2Z3N0cmFwK0xGZykpOwpYKyAgICAgICAgIGdtICo9IDEgLSBoKmV0
YSArICgxLWgpKihIRmUyKmR2Z3MgLUhGZzEqZHZnZCArIExGZzEqdmdkdHJh
cCkgLSBhcmc7ClgrICAgICAgfQpYKyAgICAgIHsgLyogYXBwbHkgY2hhbm5l
bCBsZW5ndGggbW9kdWxhdGlvbiBhbmQgYmV0YSBzY2FsaW5nICovClgrICAg
ICAgICAgZG91YmxlIGxhbWJkYSA9IExBTTsKWCsgICAgICAgICBkb3VibGUg
YmV0YSAgID0gQkVUQSAgKiBhcmVhOwpYKyAgICAgICAgIGdtICo9IChhcmcg
PSBiZXRhKigxICsgbGFtYmRhKnZkc3QpKTsKWCsgICAgICAgICBnZHMgPSBi
ZXRhKmxhbWJkYSppZHJhaW4gKyBnZHMqYXJnOwpYKyAgICAgICAgIGlkcmFp
biAqPSBhcmc7ClgrICAgICAgfQpYKyAgICAgICAgClgrICAgICAgeyAvKiBh
cHBseSB0aGVybWFsIHJlZHVjdGlvbiBvZiBkcmFpbiBjdXJyZW50ICovClgr
ICAgICAgICBkb3VibGUgaCwgcGZhYywgcEF2ZXJhZ2U7ClgrICAgICAgICBk
b3VibGUgZGVsdGEgPSBERUxUIC8gYXJlYTsKWCsgICAgICAgIGlmKFRSQU5f
QU5BTCkgewpYKyAgICAgICAgICAgZG91YmxlIHRhdWQgPSBUQVVEOwpYKyAg
ICAgICAgICAgaCA9IHRhdWQvKHRhdWQgKyBzdGVwb2ZvdXIpOyAgICBoKj1o
OyBoKj1oOwpYKyAgICAgICAgICAgUE9XUl9OT1cgPSBwQXZlcmFnZSA9IGgq
UE9XUl9CRUZPUkUgKyAoMS1oKSp2ZHN0KmlkcmFpbjsKWCsgICAgICAgIH0g
ZWxzZSB7ClgrICAgICAgICAgICBQT1dSX05PVyA9IFBPV1JfQkVGT1JFID0g
cEF2ZXJhZ2UgPSB2ZHN0KmlkcmFpbjsgIGggPSAwOwpYKyAgICAgICAgfQpY
KyAgICAgICAgaWRyYWluIC89IChwZmFjID0gMStwQXZlcmFnZSpkZWx0YSk7
ClgrICAgICAgICAqR20gID0gZ20gKiAoYXJnID0gKGgqZGVsdGEqUE9XUl9C
RUZPUkUgKyAxKS9wZmFjL3BmYWMpOwpYKyAgICAgICAgKkdkcyA9IGdkcyAq
IGFyZyAtICgxLWgpICogZGVsdGEqaWRyYWluKmlkcmFpbjsKWCsgICAgICB9
ClgrICAgfQpYKyAgIHJldHVybihpZHJhaW4pOwpYK30KWCsKWCsvKi0tLS0t
LS0tLS0tClgrfCBjb2RlIGJhc2VkIG9uIFN0YXR6IGV0LiBhbC4gY2FwYWNp
dGFuY2UgbW9kZWwsICBJRUVFIFRyYW4gRUQgRmViIDg3ICovClgrc3RhdGlj
IGRvdWJsZQpYK3FnZyh2Z3MsIHZnZCwgZ2FtbWEsIHBiLCBhbHBoYSwgdnRv
LCB2bWF4LCB4YywgY2dzbywgY2dkbywgY2dzLCBjZ2QpClgrZG91YmxlIHZn
cywgdmdkLCBnYW1tYSwgcGIsIGFscGhhLCB2dG8sIHZtYXgsIHhjLCBjZ3Nv
LCBjZ2RvLCAqY2dzLCAqY2dkOwpYK3sKWCsgICBkb3VibGUgcXJ0LCBleHQs
IENnc28sIGNwbSwgY3BsdXMsIGNtaW51czsKWCsgICBkb3VibGUgdmRzICAg
PSB2Z3MtdmdkOwpYKyAgIGRvdWJsZSBkMV94YyA9IDEteGM7ClgrICAgZG91
YmxlIHZlcnQgID0gc3FydCggdmRzICogdmRzICsgYWxwaGEgKTsKWCsgICBk
b3VibGUgdmVmZiAgPSAwLjUqKHZncyArIHZnZCArIHZlcnQpICsgZ2FtbWEq
dmRzOwpYKyAgIGRvdWJsZSB2bnIgICA9IGQxX3hjKih2ZWZmLXZ0byk7Clgr
ICAgZG91YmxlIHZucnQgID0gc3FydCggdm5yKnZuciArIDAuMDQgKTsKWCsg
ICBkb3VibGUgdm5ldyAgPSB2ZWZmICsgMC41Kih2bnJ0IC0gdm5yKTsKWCsg
ICBpZiAoIHZuZXcgPCB2bWF4ICkgewpYKyAgICAgIGV4dCAgPSAwOwpYKyAg
ICAgIHFydCAgPSBzcXJ0KDEgLSB2bmV3L3BiKTsKWCsgICAgICBDZ3NvID0g
MC41KmNnc28vcXJ0KigxK3hjICsgZDFfeGMqdm5yL3ZucnQpOwpYKyAgIH0g
ZWxzZSB7ClgrICAgICAgZG91YmxlIHZ4ICA9IDAuNSoodm5ldy12bWF4KTsK
WCsgICAgICBkb3VibGUgcGFyID0gMSt2eC8ocGItdm1heCk7ClgrICAgICAg
cXJ0ICA9IHNxcnQoMSAtIHZtYXgvcGIpOwpYKyAgICAgIGV4dCAgPSB2eCoo
MSArIHBhcikvcXJ0OwpYKyAgICAgIENnc28gPSAwLjUqY2dzby9xcnQqKDEr
eGMgKyBkMV94Yyp2bnIvdm5ydCkgKiBwYXI7ClgrICAgfQpYKyAgIGNwbHVz
ID0gMC41KigxICsgKGNwbSA9IHZkcy92ZXJ0KSk7IGNtaW51cyA9IGNwbHVz
IC0gY3BtOwpYKyAgICpjZ3MgPSBDZ3NvKihjcGx1cyArZ2FtbWEpICsgY2dk
byooY21pbnVzK2dhbW1hKTsKWCsgICAqY2dkID0gQ2dzbyooY21pbnVzLWdh
bW1hKSArIGNnZG8qKGNwbHVzIC1nYW1tYSk7ClgrICAgcmV0dXJuKGNnc28q
KChwYitwYikqKDEtcXJ0KSArIGV4dCkgKyBjZ2RvKih2ZWZmIC0gdmVydCkp
OwpYK30KWCsKWCsvKi0tLS0tLS0tLS0tClgrfCBjYWxsIGR1cmluZyBhYyBh
bmFseXNpcyBpbml0aWFsaXNhdGlvbiBvciBkdXJpbmcgdHJhbnNpZW50IGFu
YWx5c2lzICovClgrdm9pZApYK1BTY2hhcmdlKGNrdCwgbW9kZWwsIGhlcmUs
IHZncywgdmdkLCBjYXBncywgY2FwZ2QpClgrY3JlZiAqY2t0OwpYK21vZGwg
Km1vZGVsOwpYK2luc3QgKmhlcmU7ClgrZG91YmxlIHZnczsKWCtkb3VibGUg
dmdkOwpYK2RvdWJsZSAqY2FwZ3M7ClgrZG91YmxlICpjYXBnZDsKWCt7Clgr
I2RlZmluZSBRR0coYSxiLGMsZCkgcWdnKGEsYixnYWMscGhpYixhbHBoYSx2
dG8sdm1heCx4YyxjemdzLGN6Z2QsYyxkKQpYKy8qICBkb3VibGUgcWdnKCk7
ICovClgrICAgICAgClgrICAgZG91YmxlIGN6Z3MgPSBDR1MgKiBBUkVBOwpY
KyAgIGRvdWJsZSBjemdkID0gQ0dEICogQVJFQTsKWCsgICBkb3VibGUgdnRv
ICAgPSBWVE87ClgrICAgZG91YmxlIGFscGhhID0gKGRvdWJsZSlBTFBIQTsg
IC8qIChYSSp3b28vKFhJKzEpLzIpXjIgKi8KWCsgICBkb3VibGUgeGMgICAg
PSBYQzsKWCsgICBkb3VibGUgdm1heCAgPSBWTUFYOwpYKyAgIGRvdWJsZSBw
aGliICA9IFZCSTsKWCsgICBkb3VibGUgZ2FjICAgPSBBQ0dBTTsKWCsgICAK
WCsgICBpZigvKlRSQU5fSU5JVCB8fCovICFUUkFOX0FOQUwpClgrICAgICAg
IFFHU19OT1cgPSBRR0RfTk9XID0gUUdTX0JFRk9SRSA9IFFHRF9CRUZPUkUK
WCsgICAgICAgICAgPSBRR0codmdzLHZnZCxjYXBncyxjYXBnZCk7ClgrICAg
ZWxzZSB7ClgrICAgICAgZG91YmxlIGNnc25hLGNnc25jOwpYKyAgICAgIGRv
dWJsZSBjZ2RuYSxjZ2RuYiwgYV9jYXA7ClgrICAgICAgZG91YmxlIHZnczEg
ID0gVkdTMTsKWCsgICAgICBkb3VibGUgdmdkMSAgPSBWR0QxOwpYKyAgICAg
IGRvdWJsZSBxZ2dhPVFHRyh2Z3MgLHZnZCAsJmNnc25hLCZjZ2RuYSk7Clgr
ICAgICAgZG91YmxlIHFnZ2I9UUdHKHZnczEsdmdkICwmYV9jYXAsJmNnZG5i
KTsKWCsgICAgICBkb3VibGUgcWdnYz1RR0codmdzICx2Z2QxLCZjZ3NuYywm
YV9jYXApOwpYKyAgICAgIGRvdWJsZSBxZ2dkPVFHRyh2Z3MxLHZnZDEsJmFf
Y2FwLCZhX2NhcCk7ClgrICAgICAgUUdTX05PVyA9IFFHU19CRUZPUkUgKyAw
LjUgKiAocWdnYS1xZ2diICsgcWdnYy1xZ2dkKTsKWCsgICAgICBRR0RfTk9X
ID0gUUdEX0JFRk9SRSArIDAuNSAqIChxZ2dhLXFnZ2MgKyBxZ2diLXFnZ2Qp
OwpYKyAgICAgICpjYXBncyA9IDAuNSAqIChjZ3NuYSArIGNnc25jKTsKWCsg
ICAgICAqY2FwZ2QgPSAwLjUgKiAoY2dkbmEgKyBjZ2RuYik7ClgrICAgfQpY
K30KWCsKWCsKWCsvKi0tLS0tLS0tLS0tClgrfCBjYWxsIGZvciBlYWNoIGZy
ZXF1ZW5jeSBpbiBhYyBhbmFseXNpcyAqLwpYK3ZvaWQKWCtQU2FjbG9hZChj
a3QsIG1vZGVsLCBoZXJlLCB2Z3MsIHZnZCwgaWRzLCBvbWVnYSwgR20sIHhH
bSwgR2RzLCB4R2RzKQpYK2NyZWYgKmNrdDsKWCttb2RsICptb2RlbDsKWCtp
bnN0ICpoZXJlOwpYK2RvdWJsZSB2Z3M7ClgrZG91YmxlIHZnZDsKWCtkb3Vi
bGUgaWRzOwpYK2RvdWJsZSBvbWVnYTsKWCtkb3VibGUgKkdtOwpYK2RvdWJs
ZSAqeEdtOwpYK2RvdWJsZSAqR2RzOwpYK2RvdWJsZSAqeEdkczsKWCt7Clgr
ICAgIGRvdWJsZSBhcmc7ClgrICAgIGRvdWJsZSB2ZHMgPSB2Z3MgLSB2Z2Q7
ClgrICAgIGRvdWJsZSBMRmdhbSA9IExGR0FNOwpYKyAgICBkb3VibGUgTEZn
MSA9IExGRzE7ClgrICAgIGRvdWJsZSBMRmcyID0gTEZHMip2Z2Q7ClgrICAg
IGRvdWJsZSBIRmcxID0gSEZHMTsKWCsgICAgZG91YmxlIEhGZzIgPSBIRkcy
KnZnZDsKWCsgICAgZG91YmxlIEhGZXRhICA9IEhGRVRBOwpYKyAgICBkb3Vi
bGUgSEZlMSA9IEhGRTE7ClgrICAgIGRvdWJsZSBIRmUyID0gSEZFMip2Z3M7
ClgrICAgIGRvdWJsZSBoZmdhbT0gSEZHQU0gLSBIRmcxKnZncyArIEhGZzI7
ClgrICAgIGRvdWJsZSBldGEgID0gSEZldGEgLSBIRmUxKnZnZCArIEhGZTI7
ClgrICAgIGRvdWJsZSBsZmdhID0gTEZnYW0gLSBMRmcxKnZncyArIExGZzIg
KyBMRmcyOwpYKyAgICBkb3VibGUgZ21vICA9ICpHbS8oMSAtIGxmZ2EgKyBM
RmcxKnZnZCk7ClgrICAgIApYKyAgICBkb3VibGUgd3RnID0gVEFVRyAqIG9t
ZWdhOwpYKyAgICBkb3VibGUgd3RnZGV0ID0gMSArIHd0Zyp3dGc7ClgrICAg
IGRvdWJsZSBnd3RnZGV0ID0gZ21vL3d0Z2RldDsKWCsKWCsgICAgZG91Ymxl
IGdkc2kgPSAoYXJnPWhmZ2FtIC0gbGZnYSkqZ3d0Z2RldDsKWCsgICAgZG91
YmxlIGdkc3IgPSBhcmcqZ21vIC0gZ2RzaTsKWCsgICAgZG91YmxlIGdtaSAg
PSAoZXRhICsgTEZnMSp2Z2QpKmd3dGdkZXQgKyBnZHNpOwpYKyAKWCsgICAg
ZG91YmxlIHhnZHMgPSB3dGcqZ2RzaTsKWCsgICAgZG91YmxlICBnZHMgPSAq
R2RzICsgZ2RzcjsKWCsgICAgZG91YmxlICB4Z20gPSAtd3RnKmdtaTsKWCsg
ICAgZG91YmxlICAgZ20gPSBnbWkgKyBnbW8qKDEgLWV0YSAtIGhmZ2FtKTsK
WCsgICAgICAgICAgICAgICAgClgrICAgIGRvdWJsZSBkZWx0YSA9IERFTFQg
LyBBUkVBOwpYKyAgICBkb3VibGUgd3RkID0gVEFVRCAqIG9tZWdhIDsKWCsg
ICAgZG91YmxlIHd0ZGRldCA9IDEgKyB3dGQgKiB3dGQ7ClgrICAgIGRvdWJs
ZSBmYWMgPSBkZWx0YSAqIGlkczsKWCsgICAgZG91YmxlIGRlbCA9IDEvKDEg
LSBmYWMgKiB2ZHMpOwpYKyAgICBkb3VibGUgZGQgPSAoZGVsLTEpIC8gd3Rk
ZGV0OwpYKyAgICBkb3VibGUgZHIgPSBkZWwgLSBkZDsKWCsgICAgZG91Ymxl
IGRpID0gd3RkICogZGQ7ClgrICAgICAgICAgICAgICAgIApYKyAgICBkb3Vi
bGUgY2RzcXIgPSBmYWMgKiBpZHMgKiBkZWwgKiB3dGQvd3RkZGV0OwpYKwpY
KyAgICAqR20gICA9IGRyKmdtICAtIGRpKnhnbTsKWCsgICAgKnhHbSAgPSBk
aSpnbSAgKyBkcip4Z207ClgrIApYKyAgICAqR2RzICA9IGRyKmdkcyAtIGRp
KnhnZHMgKyBjZHNxcip3dGQ7ClgrICAgICp4R2RzID0gZGkqZ2RzICsgZHIq
eGdkcyArIGNkc3FyOwpYK30KWCsKWCsKWCt2b2lkICAgIC8qIGNhbGwgd2hl
biB0ZW1wZXJhdHVyZSBjaGFuZ2VzICovClgrUFNpbnN0YW5jZWluaXQobW9k
ZWwsIGhlcmUpClgrbW9kbCAqbW9kZWw7ClgraW5zdCAqaGVyZTsKWCt7Clgr
I2lmbmRlZiBQQVJBTV9DQVNUICAgICAvKiBhbGxvdyBjYXN0aW5nIHRvIHBh
cmFtZXRlciB0eXBlICovClgrI2RlZmluZSBQQVJBTV9DQVNUICAgICAvKiBp
ZiBub3Qgc3BlY2lmaWVkIHRoZW4gZG9uJ3QgY2FzdCAqLwpYKyNlbmRpZgpY
KyAgICAKWCsgICAgZG91YmxlIHdvbyA9IChWQkkgLSBWVE8pOwpYKyAgICBY
SV9XT08gPSBQQVJBTV9DQVNUIChYSSAqIHdvbyk7ClgrICAgIFpBICAgICA9
IFBBUkFNX0NBU1QgKHNxcnQoMSArIFopLzIpOwpYKyAgICBBTFBIQSAgPSBQ
QVJBTV9DQVNUIChYSV9XT08qWElfV09PLyhYSSsxKS8oWEkrMSkvIDQpOwpY
KyAgICBEMyAgICAgPSBQQVJBTV9DQVNUIChQL1EvcG93KHdvbywoUCAtIFEp
KSk7ClgrfQpYZGlmZiAtcnVOIC4uL3dvcmsub3JpZy9zcmMvbGliL2Rldi9q
ZmV0Mi9wc21vZGVsLmggLi9zcmMvbGliL2Rldi9qZmV0Mi9wc21vZGVsLmgK
WC0tLSAuLi93b3JrLm9yaWcvc3JjL2xpYi9kZXYvamZldDIvcHNtb2RlbC5o
CVdlZCBEZWMgMzEgMTk6MDA6MDAgMTk2OQpYKysrIC4vc3JjL2xpYi9kZXYv
amZldDIvcHNtb2RlbC5oCVNhdCBKdWwgIDYgMDE6NDI6MDkgMTk5NgpYQEAg
LTAsMCArMSwxMjEgQEAKWCsvKgpYKyAJUGFya2VyLVNrZWxsZXJuIE1FU0ZF
VCBtb2RlbCwgVUNCIFNwaWNlIEdsdWUgSGVhZGVyClgrIAkKWCsJQ29weXJp
Z2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2ICBNYWNxdWFyaWUgVW5pdmVyc2l0
eSAgICAgICAgICAgICAgICAgICAgClgrCUFsbCBSaWdodHMgUmVzZXJ2ZWQg
ClgrCUF1dGhvcjogQW50aG9ueSBQYXJrZXIKWCsJQ3JlYXRpb24gRGF0ZToJ
MiBGZWIgMTk5NCAKWCsJTW9kaWZpZWQ6IDI0IE1hciAxOTk0OiAgIFBhcmFt
ZXRlcnMgTVZTVCBhbmQgRVRBIGFkZGVkLiAKWCsgICAgICAgICAgMTggQXBy
IDE5OTQ6ICAgQWRkZWQgbmV3IHBhcmFtZXRlcnMgYW5kIGNvbW1lbnRzClgr
CSAgMTIgU2VwIDE5OTU6ICAgQ2hhbmdlZCBfWFhYIHRvIFBTX1hYWCB0byBh
aWQgcG9ydGFiaWxpdHkKWCsgKi8KWCsKWCsKWCsjaWZkZWYgUFNNT0RFTF9D
ICAvKiBQU01PREVMX0MgZGVmaW5lZCB3aGVuIGluY2x1ZGVkIGZyb20gInBz
bW9kZWwuYyIgKi8KWCsjaW5jbHVkZSAic3BpY2UuaCIKWCsjaW5jbHVkZSAi
amZldDJkZWZzLmgiClgrI2luY2x1ZGUgImNvbnN0LmgiClgrI2VuZGlmClgr
ClgrLyogR2x1ZSBkZWZpbml0aW9ucyBmb3IgY3JlZiBtb2RsIGFuZCBpbnN0
ICovClgrdHlwZWRlZiAgQ0tUY2lyY3VpdCAgICBjcmVmOyAvKiBjaXJjdWl0
IHNwZWNpZmljIHZhcmlhYmxlcyAqLwpYK3R5cGVkZWYgIEpGRVQybW9kZWwg
ICAgIG1vZGw7IC8qIG1vZGVsIHBhcmFtZXRlcnMgZm9yIHRoaXMgdHlwZSBv
ZiBkZXZpY2UgKi8KWCt0eXBlZGVmICBKRkVUMmluc3RhbmNlICBpbnN0OyAv
KiBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoaXMgZGV2aWNlIGluc3RhbmNl
ICovClgrClgrI2lmZGVmIF9fU1REQ19fClgrZXh0ZXJuCXZvaWQJUFNpbnN0
YW5jZWluaXQobW9kbCAqLGluc3QgKik7ClgrZXh0ZXJuCWRvdWJsZQlQU2lk
cyhjcmVmICosbW9kbCAqLGluc3QgKixkb3VibGUsZG91YmxlLApYKwkJICAg
ICAgICBkb3VibGUgKixkb3VibGUgKixkb3VibGUgKixkb3VibGUgKixkb3Vi
bGUgKixkb3VibGUgKik7ClgrZXh0ZXJuCXZvaWQJUFNjaGFyZ2UoY3JlZiAq
LG1vZGwgKixpbnN0ICosZG91YmxlLGRvdWJsZSxkb3VibGUgKixkb3VibGUg
Kik7ClgrZXh0ZXJuICB2b2lkICAgIFBTYWNsb2FkKGNyZWYgKixtb2RsICos
aW5zdCAqLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSwKWCsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgKixk
b3VibGUgKixkb3VibGUgKixkb3VibGUgKik7ClgrI2Vsc2UKWCtleHRlcm4J
dm9pZAlQU2luc3RhbmNlaW5pdCgpOwpYK2V4dGVybiAgZG91YmxlCVBTaWRz
KCk7ClgrZXh0ZXJuICB2b2lkCVBTY2hhcmdlKCk7ClgrZXh0ZXJuICB2b2lk
CVBTYWNsb2FkKCk7ClgrI2VuZGlmClgrClgrI2lmZGVmIFBTTU9ERUxfQyAv
KiBQU01PREVMX0MgZGVmaW5lZCB3aGVuIGluY2x1ZGVkIGZyb20gInBzbW9k
ZWwuYyIgKi8KWCsvKiBUaGUgZm9sbG93aW5nIGdsdWUgZGVmaW5pdGlvbnMg
bmVlZCB0byBiZSBjaGFuZ2VkIHRvIHN1aXQgdGhlIHNwZWNpZmljClgrICAg
c2ltdWxhdG9yLiAgKi8KWCsvKiBzaW11bGF0b3IgbW9kZSBmbGFncyAKWCsg
ICAgVFJBTl9BTkFMIHNob3VsZCBiZSB0cnVlIGR1cmluZyB0cmFuc2llbnQg
YW5hbHlzaXMgaXRlcmF0aW9uLgpYKyAgICAgICAgICAgICAgKGllLiBmYWxz
ZSBmb3Igb3RoZXIgYW5hbHlzaXMgZnVuY3Rpb25zIGFuZCB0cmFuIG9wZXJh
dGluZyBwb2ludC4pClgrICAgIFRSQU5fSU5JVCBzaG91bGQgYmUgdHJ1ZSBv
bmx5IGR1cmluZyB0aGUgZmlyc3QgY2FsY3VsYXRpb24gb2YgdGhlIGluaXRp
YWwgClgrICAgICAgICAgICAgICB0cmFuc2llbnQgYW5hbHlzaXMgdGltZSBw
b2ludC4gSXQgc2hvdWxkIGJlIGZhbHNlIGZvciByZW1haW5pbmcKWCsgICAg
ICAgICAgICAgIGl0ZXJhdGlvbnMgYXQgdGhhdCB0aW1lIHBvaW50IGFuZCB0
aGUgcmVzdCBvZiB0aGUgdHJhbnNpZW50IGFuYWx5c2lzLgpYKyAqLwpYKyNk
ZWZpbmUgVFJBTl9BTkFMICAgICAgICAgIChja3QtPkNLVG1vZGUgJiBNT0RF
VFJBTikgClgrI2RlZmluZSBUUkFOX0lOSVQgICAgICAgICAgKGNrdC0+Q0tU
bW9kZSAmIE1PREVJTklUVFJBTikKWCsKWCsvKiBzdGF0ZSB2YXJpYWJsZXMg
Ki8KWCsvKiBpbml0aWFsaXplZCB3aGVuIFRSQU5fQU5BTCBpcyBmYWxzZSAq
LwpYKyNkZWZpbmUgVkdTVFJBUF9CRUZPUkUgICAgICgqKGNrdC0+Q0tUc3Rh
dGUxICsgaGVyZS0+SkZFVDJ2Z3N0cmFwKSkKWCsjZGVmaW5lIFZHU1RSQVBf
Tk9XICAgICAgICAoKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQydmdz
dHJhcCkpClgrI2RlZmluZSBWR0RUUkFQX0JFRk9SRSAgICAgKCooY2t0LT5D
S1RzdGF0ZTEgKyBoZXJlLT5KRkVUMnZ0cmFwKSkKWCsjZGVmaW5lIFZHRFRS
QVBfTk9XICAgICAgICAoKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQy
dnRyYXApKQpYKyNkZWZpbmUgUE9XUl9CRUZPUkUgICAgICAgICgqKGNrdC0+
Q0tUc3RhdGUxICsgaGVyZS0+SkZFVDJwYXZlKSkKWCsjZGVmaW5lIFBPV1Jf
Tk9XICAgICAgICAgICAoKihja3QtPkNLVHN0YXRlMCArIGhlcmUtPkpGRVQy
cGF2ZSkpClgrClgrLyogaW5pdGlhbGl6ZWQgd2hlbiBUUkFOX0lOSVQgaXMg
dHJ1ZSBvciBUUkFOX0FOQUwgaXMgZmFsc2UgKi8KWCsjZGVmaW5lIFFHU19C
RUZPUkUgICAgICAgICAoKihja3QtPkNLVHN0YXRlMSArIGhlcmUtPkpGRVQy
cWdzKSkKWCsjZGVmaW5lIFFHU19OT1cgICAgICAgICAgICAoKihja3QtPkNL
VHN0YXRlMCArIGhlcmUtPkpGRVQycWdzKSkKWCsjZGVmaW5lIFFHRF9CRUZP
UkUgICAgICAgICAoKihja3QtPkNLVHN0YXRlMSArIGhlcmUtPkpGRVQycWdk
KSkKWCsjZGVmaW5lIFFHRF9OT1cgICAgICAgICAgICAoKihja3QtPkNLVHN0
YXRlMCArIGhlcmUtPkpGRVQycWdkKSkKWCsKWCsvKiBwYXN0IHRlcm1pbmFs
IHBvdGVudGlhbHMgdXNlZCBpZiBUUkFOX0lOSVQgaXMgZmFsc2UgYW5kIFRS
QU5fQU5BTCBpcyB0cnVlICovClgrI2RlZmluZSBWR1MxICAgICAgICAgICAg
ICAgKCooY2t0LT5DS1RzdGF0ZTEgKyBoZXJlLT5KRkVUMnZncykpClgrI2Rl
ZmluZSBWR0QxICAgICAgICAgICAgICAgKCooY2t0LT5DS1RzdGF0ZTEgKyBo
ZXJlLT5KRkVUMnZnZCkpClgrClgrLyogc2ltdWxhdG9yIHNwZWNpZmljIHBh
cmFtZXRlcnMgKi8KWCsjZGVmaW5lIEdNSU4gICAgY2t0LT5DS1RnbWluICAg
ICAgICAgICAgICAgICAgICAgICAvKiBTUElDRSBnbWluICgxRTEyIG9obXMp
ICovClgrI2RlZmluZSBOVlQgICAgIGhlcmUtPkpGRVQydGVtcCpDT05TVEtv
dmVyUSptb2RlbC0+SkZFVDJuICAgICAgICAgICAgIC8qIG5rVC9xICovClgr
I2RlZmluZSBTVEVQICAgIGNrdC0+Q0tUZGVsdGEgICAgICAgIC8qIHRpbWUg
c3RlcCBvZiB0aGlzIHRyYW5zaWVudCBzb2x1dGlvbiAqLwpYKyNkZWZpbmUg
Rk9VUlRIICAwLjI1ICAgICAgICAgICAvKiBlbGRvIHJlcXVpcmVzIDIuNWUt
MTAgZm9yIHVuaXRzIGNvbnZlcnNpb24gKi8KWCsKWCsvKiBtb2RlbCBwYXJh
bWV0ZXJzICovClgrLyogZGMgbW9kZWwgKi8KWCsjZGVmaW5lIEJFVEEgICAg
bW9kZWwtPkpGRVQyYmV0YSAgICAgIC8qIHRyYW5zY29uZHVjdGFuY2Ugc2Nh
bGluZyAqLwpYKyNkZWZpbmUgREVMVCAgICBtb2RlbC0+SkZFVDJkZWx0YSAg
ICAgLyogdGhlcm1hbCBjdXJyZW50IHJlZHVjdGlvbiAqLwpYKyNkZWZpbmUg
SUJEICAgICBtb2RlbC0+SkZFVDJpYmQgICAgICAgLyogYnJlYWtkb3duIGN1
cnJlbnQgKi8KWCsjZGVmaW5lIElTICAgICAgaGVyZS0+SkZFVDJ0U2F0Q3Vy
ICAgIC8qIGdhdGUgcmV2ZXJzZSBzYXR1cmF0aW9uIGN1cnJlbnQgKi8KWCsj
ZGVmaW5lIExBTSAgICAgbW9kZWwtPkpGRVQybGFtYmRhICAgIC8qIGNoYW5u
ZWwgbGVuZ3RoIG1vZHVsYXRpb24gKi8KWCsjZGVmaW5lIExGR0FNICAgbW9k
ZWwtPkpGRVQybGZnYW0gICAgIC8qIGRjIGRyYWluIGZlZWRiYWNrICovClgr
I2RlZmluZSBMRkcxICAgIG1vZGVsLT5KRkVUMmxmZzEgICAgICAvKiBkYyBk
cmFpbiBmZWVkYmFjayB2Z3MgbW9kdWxhdGlvbiAqLwpYKyNkZWZpbmUgTEZH
MiAgICBtb2RlbC0+SkZFVDJsZmcyICAgICAgLyogZGMgZHJhaW4gZmVlZGJh
Y2sgdmdkIG1vZHVsYXRpb24gKi8KWCsjZGVmaW5lIE1WU1QgICAgbW9kZWwt
PkpGRVQybXZzdCAgICAgIC8qIHN1YnRocmVzaG9sZCB2ZHMgbW9kdWxhdGlv
biAqLwpYKyNkZWZpbmUgTVhJICAgICBtb2RlbC0+SkZFVDJteGkgICAgICAg
Lyogc2F0dXJhdGlvbiBpbmRleCB2Z3MgbW9kdWxhdGlvbiAqLwpYKyNkZWZp
bmUgUCAgICAgICBtb2RlbC0+SkZFVDJwICAgICAgICAgLyogcG93ZXIgbGF3
IGluIGNvbnRyb2xsZWQgcmVzaXN0YW5jZSAqLwpYKyNkZWZpbmUgUSAgICAg
ICBtb2RlbC0+SkZFVDJxICAgICAgICAgLyogcG93ZXIgbGF3IGluIGNvbnRy
b2xsZWQgY3VycmVudCAqLwpYKyNkZWZpbmUgVkJEICAgICBtb2RlbC0+SkZF
VDJ2YmQgICAgICAgLyogYnJlYWtkb3duIGV4cG9uZW50aWFsIGNvZWYgKi8K
WCsjZGVmaW5lIFZCSSAgICAgaGVyZS0+SkZFVDJ0R2F0ZVBvdCAgIC8qIGp1
bmN0aW9uIGJ1aWx0LWluIHBvdGVudGlhbCAqLwpYKyNkZWZpbmUgVlNVQiAg
ICBtb2RlbC0+SkZFVDJ2c3QgICAgICAgLyogc3VidGhyZXNob2xkIGV4cG9u
ZW50aWFsIGNvZWYgKi8KWCsjZGVmaW5lIFZUTyAgICAgbW9kZWwtPkpGRVQy
dnRvICAgICAgIC8qIHBpbmNoLW9mZiBwb3RlbnRpYWwgKi8KWCsjZGVmaW5l
IFhJICAgICAgbW9kZWwtPkpGRVQyeGkgICAgICAgIC8qIHNhdHVyYXRpb24g
aW5kZXggKi8KWCsjZGVmaW5lIFogICAgICAgbW9kZWwtPkpGRVQyeiAgICAg
ICAgIC8qIHNhdHVyYXRpb24ga25lZSBjdXJ2YXR1cmUgKi8KWCsKWCsvKiBh
YyBtb2RlbCAqLwpYKyNkZWZpbmUgQUNHQU0gICBtb2RlbC0+SkZFVDJhY2dh
bSAgICAgLyogY2FwYWNpdGFuY2UgdmRzIG1vZHVsYXRpb24gKi8KWCsjZGVm
aW5lIENHUyAgICAgaGVyZS0+SkZFVDJ0Q0dTICAgICAgIC8qIHplcm8gYmlh
cyBjZ3MgKi8KWCsjZGVmaW5lIENHRCAgICAgaGVyZS0+SkZFVDJ0Q0dEICAg
ICAgIC8qIHplcm8gYmlhcyBjZ2QgKi8KWCsjZGVmaW5lIEhGRVRBICAgbW9k
ZWwtPkpGRVQyaGZldGEgICAgIC8qIGFjIHNvdXJjZSBmZWVkYmFjayAqLwpY
KyNkZWZpbmUgSEZFMSAgICBtb2RlbC0+SkZFVDJoZmUxICAgICAgLyogYWMg
c291cmNlIGZlZWRiYWNrIHZnZCBtb2R1bGF0aW9uICovClgrI2RlZmluZSBI
RkUyICAgIG1vZGVsLT5KRkVUMmhmZTIgICAgICAvKiBhYyBzb3VyY2UgZmVl
ZGJhY2sgdmdzIG1vZHVsYXRpb24gKi8KWCsjZGVmaW5lIEhGR0FNICAgbW9k
ZWwtPkpGRVQyaGZnYW0gICAgIC8qIGFjIGRyYWluIGZlZWRiYWNrICovClgr
I2RlZmluZSBIRkcxICAgIG1vZGVsLT5KRkVUMmhmZzEgICAgICAvKiBhYyBk
cmFpbiBmZWVkYmFjayB2Z3MgbW9kdWxhdGlvbiAqLwpYKyNkZWZpbmUgSEZH
MiAgICBtb2RlbC0+SkZFVDJoZmcyICAgICAgLyogYWMgZHJhaW4gZmVlZGJh
Y2sgdmdkIG1vZHVsYXRpb24gKi8KWCsjZGVmaW5lIFRBVUQgICAgbW9kZWwt
PkpGRVQydGF1ZCAgICAgIC8qIHRoZXJtYWwgdGltZSBjb25zdGFudCAqLwpY
KyNkZWZpbmUgVEFVRyAgICBtb2RlbC0+SkZFVDJ0YXVnICAgICAgLyogZGMg
YWMgZmVlZGJhY2sgdGltZSBjb25zdGFudCAqLwpYKyNkZWZpbmUgWEMgICAg
ICBtb2RlbC0+SkZFVDJ4YyAgICAgICAgLyogY2dzIHJlZHVjdGlvbiBhdCBw
aW5jaC1vZmYgKi8KWCsKWCsvKiBkZXZpY2UgaW5zdGFuY2UgKi8KWCsjZGVm
aW5lIEFSRUEgICAgICAgaGVyZS0+SkZFVDJhcmVhICAgICAgIC8qIGFyZWEg
ZmFjdG9yIG9mIGZldCAqLwpYKwpYKy8qIGludGVybmFsbHkgZGVyaXZlZCBt
b2RlbCBwYXJhbWV0ZXJzICovClgrI2RlZmluZSBBTFBIQSAgIGhlcmUtPkpG
RVQyYWxwaGEgICAgICAvKiBjZ3MgY2dkIHJldmVyc2FsIGludGVydmFsICov
ClgrI2RlZmluZSBEMyAgICAgIGhlcmUtPkpGRVQyZDMgICAgICAgICAvKiBk
dWFsIHBvd2VyLWxhdyBwYXJhbWV0ZXIgKi8KWCsjZGVmaW5lIFZNQVggICAg
aGVyZS0+SkZFVDJjb3JEZXBDYXAgIC8qIGZvcndhcmQgY2FwYWNpdGFuY2Ug
cG90ZW50aWFsICovClgrI2RlZmluZSBYSV9XT08gIGhlcmUtPkpGRVQyeGl3
b28gICAgICAvKiBzYXR1cmF0aW9uIHBvdGVudGlhbCAqLwpYKyNkZWZpbmUg
WkEgICAgICBtb2RlbC0+SkZFVDJ6YSAgICAgICAgLyogc2F0dXJhdGlvbiBr
bmVlIHBhcmFtZXRlciAqLwpYKyNlbmRpZgpYZGlmZiAtcnVOIC4uL3dvcmsu
b3JpZy9zcmMvbGliL2Rldi9qZmV0Mi9yZXNwb25zZS5saWIgLi9zcmMvbGli
L2Rldi9qZmV0Mi9yZXNwb25zZS5saWIKWC0tLSAuLi93b3JrLm9yaWcvc3Jj
L2xpYi9kZXYvamZldDIvcmVzcG9uc2UubGliCVdlZCBEZWMgMzEgMTk6MDA6
MDAgMTk2OQpYKysrIC4vc3JjL2xpYi9kZXYvamZldDIvcmVzcG9uc2UubGli
CU1vbiBKdW4gMjcgMTE6MDU6NTQgMTk5NApYQEAgLTAsMCArMSwxNiBAQApY
KytqZmV0Mi5vYmomClgrK2pmZXQyYWNsZC5vYmomClgrK2pmZXQyYXNrLm9i
aiYKWCsramZldDJkZWwub2JqJgpYKytqZmV0MmRzZXQub2JqJgpYKytqZmV0
MmljLm9iaiYKWCsramZldDJsb2FkLm9iaiYKWCsramZldDJtYXNrLm9iaiYK
WCsramZldDJtZGVsLm9iaiYKWCsramZldDJtcGFyLm9iaiYKWCsramZldDJu
b2kub2JqJgpYKytqZmV0MnBhci5vYmomClgrK2pmZXQyc2V0Lm9iaiYKWCsr
amZldDJ0ZW1wLm9iaiYKWCsramZldDJ0cnVuLm9iaiYKWCsrcHNtb2RlbC5v
Ymo7ClhkaWZmIC1ydU4gLi4vd29yay5vcmlnL3NyYy9saWIvaW5wL2lucDJq
LmMgLi9zcmMvbGliL2lucC9pbnAyai5jClgtLS0gLi4vd29yay5vcmlnL3Ny
Yy9saWIvaW5wL2lucDJqLmMJTW9uIEFwciAgMSAxNzoyNDoxNyAxOTkxClgr
KysgLi9zcmMvbGliL2lucC9pbnAyai5jCVN1biBNYXkgMTggMTM6NDY6NDcg
MjAwMwpYQEAgLTQxLDExICs0MSw2IEBAClggR0VORVJJQyAqbWRmYXN0OyAg
ICAvKiBwb2ludGVyIHRvIHRoZSBhY3R1YWwgbW9kZWwgKi8KWCBJRnVpZCB1
aWQ7ICAgICAgLyogdWlkIG9mIGRlZmF1bHQgbW9kZWwgKi8KWCAKWC0gICAg
bXl0eXBlID0gSU5QdHlwZWxvb2soIkpGRVQiKTsKWC0gICAgaWYobXl0eXBl
IDwgMCApIHsKWC0gICAgICAgIExJVEVSUigiRGV2aWNlIHR5cGUgRGlvZGUg
bm90IHN1cHBvcnRlZCBieSB0aGlzIGJpbmFyeVxuIikKWC0gICAgICAgIHJl
dHVybjsKWC0gICAgfQpYICAgICBsaW5lID0gY3VycmVudC0+bGluZTsKWCAg
ICAgSU5QZ2V0VG9rKCZsaW5lLCZuYW1lLDEpOwpYICAgICBJTlBpbnNlcnQo
Jm5hbWUsdGFiKTsKWEBAIC01NywxNiArNTIsMjQgQEAKWCAgICAgSU5QdGVy
bUluc2VydChja3QsJm5uYW1lMyx0YWIsJm5vZGUzKTsKWCAgICAgSU5QZ2V0
VG9rKCZsaW5lLCZtb2RlbCwxKTsKWCAgICAgSU5QaW5zZXJ0KCZtb2RlbCx0
YWIpOwpYKyAgICB0aGlzbW9kZWwgPSAoSU5QbW9kZWwgKilOVUxMOwpYICAg
ICBjdXJyZW50LT5lcnJvciA9IElOUGdldE1vZChja3QsbW9kZWwsJnRoaXNt
b2RlbCx0YWIpOwpYICAgICBpZih0aGlzbW9kZWwgIT0gTlVMTCkgewpYLSAg
ICAgICAgaWYobXl0eXBlICE9IHRoaXNtb2RlbC0+SU5QbW9kVHlwZSkgewpY
KyAgICAgICAgaWYgKHRoaXNtb2RlbC0+SU5QbW9kVHlwZSAhPSBJTlB0eXBl
bG9vaygiSkZFVCIpClgrICAgICAgICAgICAgICAgICYmIHRoaXNtb2RlbC0+
SU5QbW9kVHlwZSAhPSBJTlB0eXBlbG9vaygiSkZFVDIiKQpYKwkJKQpYKyAg
ICAgICAgewpYICAgICAgICAgICAgIExJVEVSUigiaW5jb3JyZWN0IG1vZGVs
IHR5cGUiKQpYICAgICAgICAgICAgIHJldHVybjsKWCAgICAgICAgIH0KWC0g
ICAgICAgIHR5cGUgPSBteXR5cGU7ClgrICAgICAgICB0eXBlID0gdGhpc21v
ZGVsLT5JTlBtb2RUeXBlOwpYICAgICAgICAgbWRmYXN0ID0gKHRoaXNtb2Rl
bC0+SU5QbW9kZmFzdCk7ClggICAgIH0gZWxzZSB7ClgtICAgICAgICB0eXBl
ID0gbXl0eXBlOwpYKyAgICAgICAgdHlwZSA9IElOUHR5cGVsb29rKCJKRkVU
Iik7ClgrICAgICAgICBpZih0eXBlIDwgMCApIHsKWCsgICAgICAgICAgIExJ
VEVSUigiRGV2aWNlIHR5cGUgSkZFVCBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMg
YmluYXJ5XG4iKQpYKyAgICAgICAgICAgcmV0dXJuOwpYKyAgICAgICAgfQpY
ICAgICAgICAgaWYoIXRhYi0+ZGVmSm1vZCkgewpYICAgICAgICAgICAgIC8q
IGNyZWF0ZSBkZWZhdWx0IEogbW9kZWwgKi8KWCAgICAgICAgICAgICBJRm5l
d1VpZChja3QsJnVpZCwoSUZ1aWQpTlVMTCwiSiIsVUlEX01PREVMLChHRU5F
UklDKiopTlVMTCk7ClhkaWZmIC1ydU4gLi4vd29yay5vcmlnL3NyYy9saWIv
aW5wL2lucGRvbW9kLmMgLi9zcmMvbGliL2lucC9pbnBkb21vZC5jClgtLS0g
Li4vd29yay5vcmlnL3NyYy9saWIvaW5wL2lucGRvbW9kLmMJVHVlIEp1bCAy
MCAxNzo1NToxNCAxOTkzClgrKysgLi9zcmMvbGliL2lucC9pbnBkb21vZC5j
CVN1biBNYXkgMTggMTM6NDY6NDcgMjAwMwpYQEAgLTQ0LDkgKzQ0LDI3IEBA
ClggICAgICAgICB9ClggICAgICAgICBJTlBtYWtlTW9kKG1vZG5hbWUsdHlw
ZSxpbWFnZSk7ClggICAgIH0gZWxzZSBpZiggKHN0cmNtcCh0eXBlbmFtZSwi
bmpmIikgPT0gMCkgfHwgKHN0cmNtcCh0eXBlbmFtZSwicGpmIikgPT0gMCkp
ewpYLSAgICAgICAgdHlwZSA9IElOUHR5cGVsb29rKCJKRkVUIik7ClgtICAg
ICAgICBpZih0eXBlIDwgMCkgewpYLSAgICAgICAgICAgIGVyciA9IElOUG1r
VGVtcCgiRGV2aWNlIHR5cGUgSkZFVCBub3QgYXZhaWxhYmxlIGluIHRoaXMg
YmluYXJ5XG4iKTsKWCsgICAgICAgIGVyciA9IElOUGZpbmRMZXYobGluZSwm
bGV2KTsKWCsgICAgICAgIHN3aXRjaChsZXYpIHsKWCsgICAgICAgICAgICBj
YXNlIDA6ClgrICAgICAgICAgICAgY2FzZSAxOgpYKyAgICAgICAgICAgICAg
ICB0eXBlID0gSU5QdHlwZWxvb2soIkpGRVQiKTsKWCsgICAgICAgICAgICAg
ICAgaWYodHlwZSA8IDApIHsKWCsgICAgICAgICAgICAgICAgICAgIGVyciA9
IElOUG1rVGVtcCgKWCsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRl
dmljZSB0eXBlIEpGRVQgbm90IGF2YWlsYWJsZSBpbiB0aGlzIGJpbmFyeVxu
Iik7ClgrICAgICAgICAgICAgICAgIH0KWCsgICAgICAgICAgICAgICAgYnJl
YWs7ClgrICAgICAgICAgICAgY2FzZSAyOgpYKyAgICAgICAgICAgICAgICB0
eXBlID0gSU5QdHlwZWxvb2soIkpGRVQyIik7ClgrICAgICAgICAgICAgICAg
IGlmKHR5cGUgPCAwKSB7ClgrICAgICAgICAgICAgICAgICAgICBlcnIgPSBJ
TlBta1RlbXAoClgrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXZp
Y2UgdHlwZSBKRkVUMiBub3QgYXZhaWxhYmxlIGluIHRoaXMgYmluYXJ5XG4i
KTsKWCsgICAgICAgICAgICAgICAgfQpYKyAgICAgICAgICAgICAgICBicmVh
azsKWCsgICAgICAgICAgICBkZWZhdWx0OiAvKiBwbGFjZWhvbGRlcjsgdXNl
IGxldmVsIDMgZm9yIHRoZSBuZXh0IG1vZGVsICovClgrCQllcnIgPSBJTlBt
a1RlbXAoClgrCQkgICJPbmx5IEpGRVQgZGV2aWNlIGxldmVscyAxLTIgYXJl
IHN1cHBvcnRlZCBpbiB0aGlzIGJpbmFyeVxuIik7ClgrICAgICAgICAgICAg
ICAgIGJyZWFrOwpYICAgICAgICAgfQpYICAgICAgICAgSU5QbWFrZU1vZCht
b2RuYW1lLHR5cGUsaW1hZ2UpOwpYICAgICB9IGVsc2UgaWYoIChzdHJjbXAo
dHlwZW5hbWUsIm5tZiIpID09IDApIHx8IChzdHJjbXAodHlwZW5hbWUsInBt
ZiIpPT0wKSApIHsKWGRpZmYgLXJ1TiAuLi93b3JrLm9yaWcvdXRpbC9kZWxh
bGwuYmF0IC4vdXRpbC9kZWxhbGwuYmF0ClgtLS0gLi4vd29yay5vcmlnL3V0
aWwvZGVsYWxsLmJhdAlGcmkgSnVsIDMwIDA0OjI3OjQxIDE5OTMKWCsrKyAu
L3V0aWwvZGVsYWxsLmJhdAlTdW4gTWF5IDE4IDEzOjQ2OjQ3IDIwMDMKWEBA
IC0zNyw2ICszNyw3IEBAClggZGVsIHNyY1xsaWJcZGV2XG1vczFcKi4qClgg
ZGVsIHNyY1xsaWJcZGV2XG1lc1wqLioKWCBkZWwgc3JjXGxpYlxkZXZcamZl
dFwqLioKWCtkZWwgc3JjXGxpYlxkZXZcamZldDJcKi4qClggZGVsIHNyY1xs
aWJcZGV2XGRpc3RvXCouKgpYIGRlbCBzcmNcbGliXGRldlxkaW9cKi4qClgg
ZGVsIHNyY1xsaWJcZGV2XGNzd1wqLioKWEBAIC05Myw2ICs5NCw3IEBAClgg
cm1kaXIgc3JjXGxpYlxkZXZcbW9zMQpYIHJtZGlyIHNyY1xsaWJcZGV2XG1l
cwpYIHJtZGlyIHNyY1xsaWJcZGV2XGpmZXQKWCtybWRpciBzcmNcbGliXGRl
dlxqZmV0MgpYIHJtZGlyIHNyY1xsaWJcZGV2XGRpc3RvClggcm1kaXIgc3Jj
XGxpYlxkZXZcZGlvClggcm1kaXIgc3JjXGxpYlxkZXZcY3N3ClhkaWZmIC1y
dU4gLi4vd29yay5vcmlnL3V0aWwvc2tlbGV0b24vbWFrZV9kZWYuYmQgLi91
dGlsL3NrZWxldG9uL21ha2VfZGVmLmJkClgtLS0gLi4vd29yay5vcmlnL3V0
aWwvc2tlbGV0b24vbWFrZV9kZWYuYmQJVGh1IEp1bCAyOSAxNjozNToxOCAx
OTkzClgrKysgLi91dGlsL3NrZWxldG9uL21ha2VfZGVmLmJkCVN1biBNYXkg
MTggMTM6NDY6NDcgMjAwMwpYQEAgLTExNSw3ICsxMTUsNyBAQApYIERFVl9T
VUJESVJTCT0gJChERVZJQ0VTKQpYIApYIEFMTF9ERVZJQ0VTCT0gYXNyYyBi
anQgYnNpbTEgYnNpbTIgY2FwIGNjY3MgY2N2cyBjc3cgZGlvIGluZCBpc3Jj
IFwKWC0JCSAgamZldCBsdHJhIG1lcyBtb3MxIG1vczIgbW9zMyBtb3M2IHJl
cyBzdyB0cmEgdXJjIFwKWCsJCSAgamZldCBqZmV0MiBsdHJhIG1lcyBtb3Mx
IG1vczIgbW9zMyBtb3M2IHJlcyBzdyB0cmEgdXJjIFwKWCAJCSAgdmNjcyB2
Y3ZzIHZzcmMKWCAKWCBBU01fSEFDSwk9CkVORC1vZi1zcGljZS9maWxlcy9w
YXRjaC1wc21vZGVsCmVjaG8geCAtIHNwaWNlL2ZpbGVzL3BhdGNoLXNyY19s
aWJfaGxwX3JlYWRoZWxwX2MKc2VkICdzL15YLy8nID5zcGljZS9maWxlcy9w
YXRjaC1zcmNfbGliX2hscF9yZWFkaGVscF9jIDw8ICdFTkQtb2Ytc3BpY2Uv
ZmlsZXMvcGF0Y2gtc3JjX2xpYl9obHBfcmVhZGhlbHBfYycKWC0tLSBzcmMv
bGliL2hscC9yZWFkaGVscC5jLm9yaWcJV2VkIEFwciAyMSAwMzo1NjowMCAx
OTkzClgrKysgc3JjL2xpYi9obHAvcmVhZGhlbHAuYwlUaHUgU2VwIDMwIDEw
OjA2OjMyIDE5OTkKWEBAIC00Miw2ICs0Miw2IEBAClggc3RhdGljIGNoYXIg
KmdldHN1YmplY3QoKTsKWCBzdGF0aWMgdG9wbGluayAqZ2V0c3VidG9wbGlu
aygpOwpYLWV4dGVybiB2b2lkIHNvcnRsaXN0KCksIHRsZnJlZSgpOwpYLWV4
dGVybiBpbnQgc29ydGNtcCgpOwpYK3N0YXRpYyB2b2lkIHNvcnRsaXN0KCks
IHRsZnJlZSgpOwpYK3N0YXRpYyBpbnQgc29ydGNtcCgpOwpYIApYIHN0YXRp
YyB0b3BpYyAqYWxsdG9waWNzID0gTlVMTDsKRU5ELW9mLXNwaWNlL2ZpbGVz
L3BhdGNoLXNyY19saWJfaGxwX3JlYWRoZWxwX2MKZWNobyB4IC0gc3BpY2Uv
ZmlsZXMvcGF0Y2gtc3JjX2luY2x1ZGVfb3NfYnNkX2gKc2VkICdzL15YLy8n
ID5zcGljZS9maWxlcy9wYXRjaC1zcmNfaW5jbHVkZV9vc19ic2RfaCA8PCAn
RU5ELW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19pbmNsdWRlX29zX2JzZF9o
JwpYLS0tIHNyYy9pbmNsdWRlL29zX2JzZC5oLm9yaWcJU2F0IEFwciAyNCAx
ODowOTo0NiAxOTkzClgrKysgc3JjL2luY2x1ZGUvb3NfYnNkLmgJVGh1IEp1
bCAxNyAwMToyNjozNiAyMDAzClhAQCAtOCwxOCArOCwzMSBAQApYIApYICNp
bmNsdWRlICJvc191bml4LmgiClggClgrI2lmZGVmIF9fRnJlZUJTRF9fClgr
I2RlZmluZSBIQVNfU1lTVkRJUlMJCS8qIDxzeXMvZGlyZW50Lmg+CQkJKi8K
WCsjZGVmaW5lIEhBU19JTlRXQUlUU1RBVFVTCS8qIHdhaXQoMykgIHRha2Vz
IGFuIGludCAqLCBub3QgYSB1bmlvbiAqLwpYKyNlbHNlClggI2RlZmluZSBI
QVNfTk9fQVRSSUdIX0RFQ0wJLyogaWYgYXNpbmgoICkgaXMgbm90IGluIG1h
dGguaAkJKi8KWC0jZGVmaW5lIEhBU19BVFJJR0gJCS8qIGFjb3NoKCApLCBh
c2luaCggKSwgYXRhbmgoICkgICAgICAgICAqLwpYICNkZWZpbmUgSEFTX0ZU
SU1FCQkvKiBmdGltZSggKSwgPHRpbWVzLmg+CQkJKi8KWCsjZGVmaW5lIEhB
U19JTkRFWAkJLyogaW5kZXgoICkgaW5zdGVhZCBvZiBzdHJjaHIoICkJKi8K
WCsjZGVmaW5lIEhBU19TVFJJTkdTCQkvKiB1c2UgPHN0cmluZ3MuaD4gaW5z
dGVhZCBvZiA8c3RyaW5nLmg+ICovClgrI2RlZmluZSBIQVNfQlNERElSUwkJ
LyogPHN5cy9kaXIuaD4JCQkJKi8KWCsjZW5kaWYKWCsKWCsjZGVmaW5lIEhB
U19BVFJJR0gJCS8qIGFjb3NoKCApLCBhc2luaCggKSwgYXRhbmgoICkgICAg
ICAgICAqLwpYICNkZWZpbmUgSEFTX1RFUk1DQVAJCS8qIHRnZXR4eHgoICkJ
CQkJKi8KWCAjZGVmaW5lIEhBU19WRk9SSwkJLyogQlNELWlzbSwgc2hvdWxk
IG5vdCBiZSBuZWNlc3NhcnkJKi8KWC0jZGVmaW5lIEhBU19JTkRFWAkJLyog
aW5kZXgoICkgaW5zdGVhZCBvZiBzdHJjaHIoICkJKi8KWCAjZGVmaW5lIEhB
U19CQ09QWQkJLyogYmNvcHkoICksIGJ6ZXJvKCApCQkJKi8KWCAjZGVmaW5l
IEhBU19CU0RSQU5ET00JCS8qIHNyYW5kb20oICkgYW5kIHJhbmRvbSggKQkJ
Ki8KWCAjZGVmaW5lIEhBU19CU0RUVFkJCS8qIDxzZ3R0eS5oPgkJCQkqLwpY
LSNkZWZpbmUgSEFTX0JTRERJUlMJCS8qIDxzeXMvZGlyLmg+CQkJCSovClgg
I2RlZmluZSBIQVNfQlNEUlVTQUdFCQkvKiBnZXRydXNhZ2UoICkJCQkJKi8K
WCAjZGVmaW5lIEhBU19CU0RSTElNSVQJCS8qIGdldHJsaW1pdCggKQkJCQkq
LwpYICNkZWZpbmUgSEFTX0RVUDIKWCAjZGVmaW5lIEhBU19HRVRXRAkJLyog
Z2V0d2QoYnVmKQkJCQkqLwpYLSNkZWZpbmUgSEFTX1NUUklOR1MJCS8qIHVz
ZSA8c3RyaW5ncy5oPiBpbnN0ZWFkIG9mIDxzdHJpbmcuaD4gKi8KWCsKWCsj
aWZkZWYgX19GcmVlQlNEX18KWCsjZGVmaW5lIEhBU19CU0RTT0NLRVRTCQkv
KiA8bmV0L2luZXQuaD4sIHNvY2tldCggKSwgZXRjLgkqLwpYKyNkZWZpbmUg
SEFTX0JTRFRJTUUJCS8qIGdldHRpbWVvZmRheSggKSByZXR1cm4gdGltZQkJ
Ki8KWCsjZGVmaW5lIEhBU19GTE9BVF9ICQkvKiBmbG9hdC5oCQkJCSovClgr
I2RlZmluZSBIQVNfU1RSQ0hSCQkvKiBzdHJjaHIoICkgaW5zdGVhZCBvZiBp
bmRleCggKQkqLwpYKyNlbmRpZgpFTkQtb2Ytc3BpY2UvZmlsZXMvcGF0Y2gt
c3JjX2luY2x1ZGVfb3NfYnNkX2gKZWNobyB4IC0gc3BpY2UvZmlsZXMvcGF0
Y2gtc3JjX2xpYl9pbnBfaW5wZmluZGxfYwpzZWQgJ3MvXlgvLycgPnNwaWNl
L2ZpbGVzL3BhdGNoLXNyY19saWJfaW5wX2lucGZpbmRsX2MgPDwgJ0VORC1v
Zi1zcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2lucF9pbnBmaW5kbF9jJwpY
LS0tIHNyYy9saWIvaW5wL2lucGZpbmRsLmMub3JpZwlNb24gQXByICA4IDIz
OjQxOjM5IDE5OTEKWCsrKyBzcmMvbGliL2lucC9pbnBmaW5kbC5jCVRodSBK
dWwgMTcgMDI6NDU6MDggMjAwMwpYQEAgLTEsMTEgKzEsMTMgQEAKWCAvKioq
KioqKioqKgpYIENvcHlyaWdodCAxOTkwIFJlZ2VudHMgb2YgdGhlIFVuaXZl
cnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuClgg
QXV0aG9yOiAxOTg1IFRob21hcyBMLiBRdWFybGVzClgrTW9kaWZpZWQ6IDE5
OTkgUGFvbG8gTmVuemkgLSBOb3cgd2UgY2FuIHVzZSBhIHR3byBkaWdpdHMg
bGV2ZWwgY29kZSAtClggKioqKioqKioqKi8KWCAKWC0gICAgLyogSU5QZmlu
ZExldihsaW5lKQpYKyAgICAvKiBJTlBmaW5kTGV2KGxpbmUsbGV2ZWwpClgg
ICAgICAqICAgICAgZmluZCB0aGUgJ2xldmVsJyBwYXJhbWV0ZXIgb24gdGhl
IGdpdmVuIGxpbmUgYW5kIHJldHVybiBpdHMKWC0gICAgICogICAgICB2YWx1
ZSAoMSwyLG9yIDMgZm9yIG5vdywgMSBkZWZhdWx0KQpYKyAgICAgKiAgICAg
IHZhbHVlICgxLDIsLi4sOTkgZm9yIG5vdywgMSBkZWZhdWx0KQpYKyAgICAg
KiAgTk9URTogbm93IGxpbWl0ZWQgdG8gOSBmb3IgY29tcGF0aWJpbGl0eQpY
ICAgICAgKi8KWCAKWCAjaW5jbHVkZSAic3BpY2UuaCIKWEBAIC0yNCw1OCAr
MjYsNDEgQEAKWCAgICAgY2hhciAqd2hlcmU7ClggClggICAgIHdoZXJlID0g
bGluZTsKWC0KWC0gICAgd2hpbGUoMSkgewpYLSAgICAgICAgd2hlcmUgPSBp
bmRleCh3aGVyZSwnbCcpOwpYLSAgICAgICAgaWYod2hlcmUgPT0gMCkgeyAg
ICAvKiBubyAnbCcgaW4gdGhlIGxpbmUgPT4gbm8gJ2xldmVsJyA9PiBkZWZh
dWx0ICovClgtICAgICAgICAgICAgKmxldmVsID0gMTsKWC0gICAgICAgICAg
ICByZXR1cm4oKGNoYXIgKilOVUxMKTsKWC0gICAgICAgIH0KWC0gICAgICAg
IGlmKHN0cm5jbXAod2hlcmUsImxldmVsIiw1KSE9MCkgeyAgIC8qIHRoaXMg
bCBpc24ndCBpbiB0aGUgd29yZCAKWC0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqICdsZXZlbCcsIHNvIGxldHMgdHJ5
IGFnYWluICovClgtICAgICAgICAgICAgd2hlcmUrKzsgICAgLyogbWFrZSBz
dXJlIHdlIGRvbid0IG1hdGNoIHNhbWUgY2hhciBhZ2FpbiAqLwpYLSAgICAg
ICAgICAgIGNvbnRpbnVlOwpYLSAgICAgICAgfQpYLSAgICAgICAgLyogZm91
bmQgdGhlIHdvcmQgbGV2ZWwsIGxldHMgbG9vayBhdCB0aGUgcmVzdCBvZiB0
aGUgbGluZSAqLwpYLSAgICAgICAgd2hlcmUgKz0gNTsKWCsgICAgClgrICAg
IHdoZXJlPXN0cnN0cihsaW5lLCAibGV2ZWwiKTsKWCsgICAgClgrICAgIGlm
ICh3aGVyZSE9TlVMTCkgeyAgICAgICAgLyogZm91bmQgYSBsZXZlbCBrZXl3
b3JkIG9uIHRoZSBsaW5lICovClgrICAgICAgICAKWCsgICAgICAgIHdoZXJl
ICs9IDU7ICAvKiBza2lwIHRoZSBsZXZlbCBrZXl3b3JkICovClggICAgICAg
ICB3aGlsZSggKCp3aGVyZSA9PSAnICcpIHx8ICgqd2hlcmUgPT0gJ1x0Jykg
fHwgKCp3aGVyZSA9PSAnPScpIHx8ClggICAgICAgICAgICAgICAgICgqd2hl
cmUgPT0gJywnKSB8fCAoKndoZXJlID09ICcoJykgfHwgKCp3aGVyZSA9PSAn
KScpIHx8ClggICAgICAgICAgICAgICAgICgqd2hlcmUgPT0gJysnKSApIHsg
LyogbGVnYWwgd2hpdGUgc3BhY2UgLSBpZ25vcmUgKi8KWC0gICAgICAgICAg
ICB3aGVyZSsrOwpYKyAgICAgICAgICAgICAgd2hlcmUrKzsKWCAgICAgICAg
IH0KWCsgICAgClggICAgICAgICAvKiBub3cgdGhlIG1hZ2ljIG51bWJlciAq
LwpYLSAgICAgICAgc3dpdGNoKCp3aGVyZSkgewpYLSAgICAgICAgY2FzZSAn
MSc6ClgrICAgICAgICBzc2NhbmYod2hlcmUsIiUyZCIsbGV2ZWwpOyAgICAg
LyogV2UgZ2V0IHRoZSBsZXZlbCBudW1iZXIgKi8KWCsgICAgICAgIGlmICgq
bGV2ZWw8MCkgewpYKyAgICAgICAgICAqbGV2ZWw9MTsKWCsgICAgICAgICAg
cmV0dXJuKElOUG1rVGVtcCgiIGlsbGVnYWwgKG5lZ2F0aXZlKSBhcmd1bWVu
dCB0byBsZXZlbCBwYXJhbWV0ZXIgLSBsZXZlbD0xIGFzc3VtZWQiKSk7Clgr
ICAgICAgICAgICB9IApYKyAgICAgICAgClgrICAgICAgICBpZiAoKmxldmVs
PjkpIHsgLyogTGltaXQgdG8gY2hhbmdlIGluIHRoZSBmdXR1cmUgKi8gClgg
ICAgICAgICAgICAgKmxldmVsPTE7ClgrICAgICAgICAgICAgcmV0dXJuKElO
UG1rVGVtcCgiIGlsbGVnYWwgKHRvbyBoaWdoKSBhcmd1bWVudCB0byBsZXZl
bCBwYXJhbWV0ZXIgLSBsZXZlbD0xIGFzc3VtZWQiKSk7ClgrICAgICAgICAg
ICAgfQpYKyAgICAgICAgICAgIApYICAgICAgICAgICAgIHJldHVybigoY2hh
ciAqKU5VTEwpOwpYLSAgICAgICAgY2FzZSAnMic6ClgtICAgICAgICAgICAg
KmxldmVsPTI7ClgtICAgICAgICAgICAgcmV0dXJuKChjaGFyICopTlVMTCk7
ClgtICAgICAgICBjYXNlICczJzoKWC0gICAgICAgICAgICAqbGV2ZWw9MzsK
WC0gICAgICAgICAgICByZXR1cm4oKGNoYXIgKilOVUxMKTsKWC0gICAgICAg
IGNhc2UgJzQnOgpYLSAgICAgICAgICAgICpsZXZlbD00OwpYLSAgICAgICAg
ICAgIHJldHVybigoY2hhciAqKU5VTEwpOwpYLSAgICAgICAgY2FzZSAnNSc6
ClgtICAgICAgICAgICAgKmxldmVsPTU7ClgtICAgICAgICAgICAgcmV0dXJu
KChjaGFyICopTlVMTCk7ClgtICAgICAgICBjYXNlICc2JzoKWC0gICAgICAg
ICAgICAqbGV2ZWw9NjsKWC0gICAgICAgICAgICByZXR1cm4oKGNoYXIgKilO
VUxMKTsKWC0gICAgICAgIGNhc2UgJzcnOgpYLSAgICAgICAgICAgICpsZXZl
bD03OwpYLSAgICAgICAgICAgIHJldHVybigoY2hhciAqKU5VTEwpOwpYLSAg
ICAgICAgY2FzZSAnOCc6ClgtICAgICAgICAgICAgKmxldmVsPTg7ClgtICAg
ICAgICAgICAgcmV0dXJuKChjaGFyICopTlVMTCk7ClgtICAgICAgICBjYXNl
ICc5JzoKWC0gICAgICAgICAgICAqbGV2ZWw9OTsKWC0gICAgICAgICAgICBy
ZXR1cm4oKGNoYXIgKilOVUxMKTsKWC0gICAgICAgIGRlZmF1bHQ6ClgtICAg
ICAgICAgICAgKmxldmVsPTE7ClgtICAgICAgICAgICAgcmV0dXJuKElOUG1r
VGVtcCgKWC0gICAgICAgICAgICAgICAgICAgICIgaWxsZWdhbCBhcmd1bWVu
dCB0byBsZXZlbCBwYXJhbWV0ZXIgLSBsZXZlbD0xIGFzc3VtZWQiKSk7Clgt
ICAgICAgICB9ClgtICAgIH0KWCsgICAgICAgICAgfSAgICAgClgrICAgIApY
KwpYKyAgICAKWCsgICAgZWxzZSB7ICAgICAgICAgICAgICAgICAgLyogbm8g
bGV2ZWwgb24gdGhlIGxpbmUgPT4gZGVmYXVsdCAqLwpYKyAgICAgICpsZXZl
bCA9IDE7ClgrICAgICAgcmV0dXJuKChjaGFyICopTlVMTCk7ClgrICAgICAg
fQpYKyAgICAgIApYKyAgClgrICAgICAgICAKWCsgICAgICAgIApYIH0KRU5E
LW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfaW5wX2lucGZpbmRsX2MK
ZWNobyB4IC0gc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9ja3RfZGN0cmN1
cnZfYwpzZWQgJ3MvXlgvLycgPnNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJf
Y2t0X2RjdHJjdXJ2X2MgPDwgJ0VORC1vZi1zcGljZS9maWxlcy9wYXRjaC1z
cmNfbGliX2NrdF9kY3RyY3Vydl9jJwpYLS0tIHNyYy9saWIvY2t0L2RjdHJj
dXJ2LmMub3JpZwlNb24gQXByICA1IDE5OjUwOjIwIDE5OTMKWCsrKyBzcmMv
bGliL2NrdC9kY3RyY3Vydi5jCVRodSBKdWwgMTcgMDI6NTI6MjQgMjAwMwpY
QEAgLTE1LDYgKzE1LDcgQEAKWCAjZW5kaWYKWCAjaW5jbHVkZSAiY2t0ZGVm
cy5oIgpYICNpbmNsdWRlICJ1dGlsLmgiClgrI2luY2x1ZGUgImNvbnN0Lmgi
ClggI2luY2x1ZGUgInNwZXJyb3IuaCIKWCAjaW5jbHVkZSAic3VmZml4Lmgi
ClggClhAQCAtMzgsMTcgKzM5LDYgQEAKWCAgICAgaW50IGZpcnN0VGltZT0x
OwpYICAgICBzdGF0aWMgR0VORVJJQyAqcGxvdDsKWCAKWC0jaWZkZWYgSEFT
X1NFTlNFMgpYLSNpZmRlZiBTRU5TREVCVUcKWC0gICAgaWYoY2t0LT5DS1Rz
ZW5JbmZvICYmIChja3QtPkNLVHNlbkluZm8tPlNFTm1vZGUmRENTRU4pICl7
ClgtICAgICAgICBwcmludGYoIlxuREMgU2Vuc2l0aXZpdHkgUmVzdWx0c1xu
XG4iKTsKWC0gICAgICAgIENLVHNlblByaW50KGNrdCk7ClgtICAgIH0KWC0j
ZW5kaWYgLyogU0VOU0RFQlVHICovClgtI2VuZGlmClgtClgtClgtClggICAg
IHZjb2RlID0gQ0tUdHlwZWxvb2soIlZzb3VyY2UiKTsKWCAgICAgaWNvZGUg
PSBDS1R0eXBlbG9vaygiSXNvdXJjZSIpOwpYICAgICBpZighcmVzdGFydCAm
JiBjdi0+VFJDVm5lc3RTdGF0ZSA+PSAwKSB7ClhAQCAtMTA2LDE1ICs5Niwz
NyBAQApYICAgICAgICAgICAgICAgICB9ClggICAgICAgICAgICAgfQpYICAg
ICAgICAgfQpYKyNpZm5kZWYgVEVNUF9DT0RFClgrI2RlZmluZSBURU1QX0NP
REUgMTAyMwpYKyNlbmRpZgpYKyAgICAgICAgaWYoIXN0cmNtcChjdi0+VFJD
VnZOYW1lW2ldLCAidGVtcCIpKQpYKyAgICAgICAgewpYKyAgICAgICAgICAg
IGN2LT5UUkNWdlNhdmVbaV09Y2t0LT5DS1R0ZW1wOwpYKyAgICAgICAgICAg
IGN2LT5UUkNWdlR5cGVbaV09VEVNUF9DT0RFOwpYKyAgICAgICAgICAgIGNr
dC0+Q0tUdGVtcCA9IGN2LT5UUkNWdlN0YXJ0W2ldICsgQ09OU1RDdG9LOwpY
KyAgICAgICAgICAgIGdvdG8gZm91bmQ7ClgrICAgICAgICB9ClgrICAgICAg
ICAKWCAgICAgICAgICgqKFNQZnJvbnRFbmQtPklGZXJyb3IpKShFUlJfRkFU
QUwsIApYICAgICAgICAgICAgICAgICAiREN0ckN1cnY6IHNvdXJjZSAlcyBu
b3QgaW4gY2lyY3VpdCIsICYoY3YtPlRSQ1Z2TmFtZVtpXSkpOwpYICAgICAg
ICAgcmV0dXJuKEVfTk9ERVYpOwpYIGZvdW5kOjsKWCAgICAgfQpYKyAgICBp
LS07ClggICAgIGVycm9yID0gQ0tUbmFtZXMoY2t0LCZudW1OYW1lcywmbmFt
ZUxpc3QpOwpYICAgICBpZihlcnJvcikgcmV0dXJuKGVycm9yKTsKWC0gICAg
KCooU1Bmcm9udEVuZC0+SUZuZXdVaWQpKSgoR0VORVJJQyAqKWNrdCwmdmFy
VWlkLChJRnVpZCApTlVMTCwKWC0gICAgICAgICAgICAic3dlZXAiLCBVSURf
T1RIRVIsIChHRU5FUklDICoqKU5VTEwpOwpYKyAgICBpZiAoY3YtPlRSQ1Z2
VHlwZVtpXT09dmNvZGUpClgrICAgIAkoKihTUGZyb250RW5kLT5JRm5ld1Vp
ZCkpKChHRU5FUklDICopY2t0LCZ2YXJVaWQsKElGdWlkIClOVUxMLApYKyAg
ICAgICAgICAgICJ2LXN3ZWVwIiwgVUlEX09USEVSLCAoR0VORVJJQyAqKilO
VUxMKTsKWCsgICAgZWxzZSBpZiAoY3YtPlRSQ1Z2VHlwZVtpXT09aWNvZGUp
ClgrICAgIAkoKihTUGZyb250RW5kLT5JRm5ld1VpZCkpKChHRU5FUklDICop
Y2t0LCZ2YXJVaWQsKElGdWlkIClOVUxMLApYKyAgICAgICAgICAgICJpLXN3
ZWVwIiwgVUlEX09USEVSLCAoR0VORVJJQyAqKilOVUxMKTsKWCsgICAgZWxz
ZSBpZiAoY3YtPlRSQ1Z2VHlwZVtpXT09VEVNUF9DT0RFKQpYKyAgICAJKCoo
U1Bmcm9udEVuZC0+SUZuZXdVaWQpKSgoR0VORVJJQyAqKWNrdCwmdmFyVWlk
LChJRnVpZCApTlVMTCwKWCsgICAgICAgICAgICAidGVtcC1zd2VlcCIsIFVJ
RF9PVEhFUiwgKEdFTkVSSUMgKiopTlVMTCk7ClgrICAgIGVsc2UKWCsgICAg
CSgqKFNQZnJvbnRFbmQtPklGbmV3VWlkKSkoKEdFTkVSSUMgKilja3QsJnZh
clVpZCwoSUZ1aWQgKU5VTEwsClgrICAgICAgICAgICAgIj8tc3dlZXAiLCBV
SURfT1RIRVIsIChHRU5FUklDICoqKU5VTEwpOwpYICAgICBlcnJvciA9ICgq
KFNQZnJvbnRFbmQtPk9VVHBCZWdpblBsb3QpKSgoR0VORVJJQyAqKWNrdCwK
WCAJKEdFTkVSSUMqKWNrdC0+Q0tUY3VySm9iLCBja3QtPkNLVGN1ckpvYi0+
Sk9CbmFtZSwKWCAJdmFyVWlkLElGX1JFQUwsbnVtTmFtZXMsbmFtZUxpc3Qs
IElGX1JFQUwsJnBsb3QpOwpYQEAgLTE1MCw2ICsxNjIsMTYgQEAKWCAgICAg
ICAgICAgICAgICAgICAgIGlmIChpID4gY3YtPlRSQ1ZuZXN0TGV2ZWwgKSBi
cmVhayA7IApYICAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0c3RlcDsK
WCAgICAgICAgICAgICAgICAgfQpYKyAgICAgICAgfSBlbHNlIGlmKGN2LT5U
UkNWdlR5cGVbaV09PVRFTVBfQ09ERSkgeyAKWCsgICAgICAgICAgICBpZihj
a3QtPkNLVHRlbXAgLSBDT05TVEN0b0sgPiBjdi0+VFJDVnZTdG9wW2ldKQpY
KyAgICAgICAgICAgICAgICB7IApYKyAgICAgICAgICAgICAgICAgICAgaSsr
IDsgClgrICAgICAgICAgICAgICAgICAgICBmaXJzdFRpbWU9MTsKWCsgICAg
ICAgICAgICAgICAgICAgIGNrdC0+Q0tUbW9kZSA9IChja3QtPkNLVG1vZGUg
JiBNT0RFVUlDKSB8IApYKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
T0RFRENUUkFOQ1VSVkUgfCBNT0RFSU5JVEpDVCA7ClgrICAgICAgICAgICAg
ICAgICAgICBpZiAoaSA+IGN2LT5UUkNWbmVzdExldmVsICkgYnJlYWsgOyAK
WCsgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dHN0ZXA7ClgrICAgICAg
ICAgICAgICAgIH0KWCAgICAgICAgIH0gLyogZWxzZSAgbm90IHBvc3NpYmxl
ICovClggICAgICAgICB3aGlsZSAoaSA+IDApIHsgClggICAgICAgICAgICAg
LyogaW5pdChpKTsgKi8KWEBAIC0xNjAsNiArMTgyLDkgQEAKWCAgICAgICAg
ICAgICB9IGVsc2UgaWYoY3YtPlRSQ1Z2VHlwZVtpXT09aWNvZGUpIHsgLyog
Y3VycmVudCBzb3VyY2UgKi8KWCAgICAgICAgICAgICAgICAgKChJU1JDaW5z
dGFuY2UgKikoY3YtPlRSQ1Z2RWx0W2ldKSktPklTUkNkY1ZhbHVlID0KWCAg
ICAgICAgICAgICAgICAgICAgICAgICBjdi0+VFJDVnZTdGFydFtpXTsKWCsg
ICAgICAgICAgICB9IGVsc2UgaWYoY3YtPlRSQ1Z2VHlwZVtpXT09VEVNUF9D
T0RFKSB7IApYKyAgICAgICAgICAgICAgICBja3QtPkNLVHRlbXAgPSBjdi0+
VFJDVnZTdGFydFtpXSArIENPTlNUQ3RvSzsKWCsgICAgICAgICAgICAgICAg
Q0tUdGVtcChja3QpOwpYICAgICAgICAgICAgIH0gLyogZWxzZSBub3QgcG9z
c2libGUgKi8KWCAgICAgICAgIH0KWCAKWEBAIC0xODgsNyArMjEzLDExIEBA
ClggICAgICAgICAgICAgY2t0LT5DS1R0aW1lID0gKChJU1JDaW5zdGFuY2Ug
KikoY3YtPlRSQ1Z2RWx0W2ldKSkKWCAgICAgICAgICAgICAgICAgICAgIC0+
SVNSQ2RjVmFsdWUgOwpYICAgICAgICAgfQpYLQpYKyAgICAgICAgZWxzZQpY
KyAgICAgICAgewpYKyAgICAgICAgICAgZnByaW50ZihzdGRvdXQsICJTaHVs
ZG4ndCBwYXNzIHRocm91Z2ggaGVyZSFcbiIpOwpYKyAgICAgICAgICAgZXhp
dCgxKTsKWCsgICAgICAgIH0KWCAjaWZkZWYgSEFTX1NFTlNFMgpYIC8qClgg
ICAgICAgICBpZighY2t0LT5DS1RzZW5JbmZvKSBwcmludGYoInNlbnNpdGl2
aXR5IHN0cnVjdHVyZSBkb2VzIG5vdCBleGlzdFxuIik7ClhAQCAtMjMyLDYg
KzI2MSwxMiBAQApYICAgICAgICAgfSBlbHNlIGlmKGN2LT5UUkNWdlR5cGVb
aV09PWljb2RlKSB7IC8qIGN1cnJlbnQgc291cmNlICovClggICAgICAgICAg
ICAgKChJU1JDaW5zdGFuY2UqKShjdi0+VFJDVnZFbHRbaV0pKS0+SVNSQ2Rj
VmFsdWUgKz0KWCAgICAgICAgICAgICAgICAgICAgIGN2LT5UUkNWdlN0ZXBb
aV07ClgrICAgICAgICB9ClgrLyogc2VyYmFuICovClgrICAgICAgICBlbHNl
IGlmIChjdi0+VFJDVnZUeXBlW2ldPT1URU1QX0NPREUpClgrICAgICAgICB7
ClgrICAgIAkgICAgY2t0LT5DS1R0ZW1wICs9IGN2LT5UUkNWdlN0ZXBbaV07
ClgrICAgICAgICAgICAgQ0tUdGVtcChja3QpOwpYICAgICAgICAgfSAvKiBl
bHNlIG5vdCBwb3NzaWJsZSAqLwpYICAgICAgICAgaWYoICgqKFNQZnJvbnRF
bmQtPklGcGF1c2VUZXN0KSkoKSApIHsKWCAgICAgICAgICAgICAvKiB1c2Vy
IGFza2VkIHVzIHRvIHBhdXNlLCBzbyBzYXZlIHN0YXRlICovClhAQCAtMjQ3
LDEwICsyODIsMTIgQEAKWCAgICAgICAgICAgICAoKFZTUkNpbnN0YW5jZSop
KGN2LT5UUkNWdkVsdFtpXSkpLT5WU1JDZGNWYWx1ZSA9IApYICAgICAgICAg
ICAgICAgICAgICAgY3YtPlRSQ1Z2U2F2ZVtpXTsKWCAgICAgICAgICAgICAo
KFZTUkNpbnN0YW5jZSopKGN2LT5UUkNWdkVsdFtpXSkpLT5WU1JDZGNHaXZl
biA9IGN2LT5UUkNWZ1NhdmVbaV07ClgtICAgICAgICB9IGVsc2UgLyogaWYo
Y3YtPlRSQ1Z2VHlwZVtpXSA9PSBpY29kZSkgY3VycmVudCBzb3VyY2UgKi8g
ewpYKyAgICAgICAgfSBlbHNlIGlmKGN2LT5UUkNWdlR5cGVbaV0gPT0gaWNv
ZGUpIHsKWCAgICAgICAgICAgICAoKElTUkNpbnN0YW5jZSopKGN2LT5UUkNW
dkVsdFtpXSkpLT5JU1JDZGNWYWx1ZSA9IApYICAgICAgICAgICAgICAgICAg
ICAgY3YtPlRSQ1Z2U2F2ZVtpXTsKWCAgICAgICAgICAgICAoKElTUkNpbnN0
YW5jZSopKGN2LT5UUkNWdkVsdFtpXSkpLT5JU1JDZGNHaXZlbiA9IGN2LT5U
UkNWZ1NhdmVbaV07ClgrICAgICAgICB9IGVsc2UgaWYoY3YtPlRSQ1Z2VHlw
ZVtpXSA9PSBURU1QX0NPREUpIHsKWCsgICAgICAgICAgICBja3QtPkNLVHRl
bXAgPSBjdi0+VFJDVnZTYXZlW2ldOwpYICAgICAgICAgfSAvKiBlbHNlIG5v
dCBwb3NzaWJsZSAqLwpYICAgICB9ClggICAgICgqKFNQZnJvbnRFbmQtPk9V
VGVuZFBsb3QpKShwbG90KTsKRU5ELW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNy
Y19saWJfY2t0X2RjdHJjdXJ2X2MKZWNobyB4IC0gc3BpY2UvZmlsZXMvcGF0
Y2gtc3JjX2xpYl9mdGVfcG9zdGNvbXNfYwpzZWQgJ3MvXlgvLycgPnNwaWNl
L2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX3Bvc3Rjb21zX2MgPDwgJ0VORC1v
Zi1zcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9wb3N0Y29tc19jJwpY
LS0tIHNyYy9saWIvZnRlL3Bvc3Rjb21zLmMub3JpZwlTYXQgSnVsIDE3IDE5
OjI4OjA1IDE5OTkKWCsrKyBzcmMvbGliL2Z0ZS9wb3N0Y29tcy5jCVRodSBK
dWwgMTcgMTA6MjM6MTMgMjAwMwpYQEAgLTEzNSw3ICsxNDUsNyBAQApYICAg
ICB9ClggICAgIHQgPSBmdF9ldmFsdWF0ZShubik7ClggICAgIGlmICghdCkg
ewpYLQkvKiBYWFggZXJyb3IgbWVzc2FnZSAqLwpYKwlmcHJpbnRmKGNwX2Vy
ciwgIkVycm9yOiBDYW4ndCBldmFsdWF0ZSAlc1xuIiwgcmhzKTsKWCAgICAg
ICAgIHRmcmVlKHApOwpYICAgICAgICAgcmV0dXJuOwpYICAgICB9CkVORC1v
Zi1zcGljZS9maWxlcy9wYXRjaC1zcmNfbGliX2Z0ZV9wb3N0Y29tc19jCmVj
aG8geCAtIHNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRlX3ZlY3RvcnNf
YwpzZWQgJ3MvXlgvLycgPnNwaWNlL2ZpbGVzL3BhdGNoLXNyY19saWJfZnRl
X3ZlY3RvcnNfYyA8PCAnRU5ELW9mLXNwaWNlL2ZpbGVzL3BhdGNoLXNyY19s
aWJfZnRlX3ZlY3RvcnNfYycKWC0tLSBzcmMvbGliL2Z0ZS92ZWN0b3JzLmMu
b3JpZwlTYXQgSnVsIDE3IDE5OjI4OjA1IDE5OTkKWCsrKyBzcmMvbGliL2Z0
ZS92ZWN0b3JzLmMJU2F0IEp1bCAxNyAxOToyODowNSAxOTk5ClhAQCAtMjAw
LDcgKzIwMCw3IEBAClggewpYICAgICBzdHJ1Y3QgZHZlYyAqZCwgKmVuZCA9
IE5VTEwsICpuZXd2ID0gTlVMTDsKWCAgICAgc3RydWN0IHBsb3QgKnBsOwpY
LSAgICBjaGFyIGJ1ZltCU0laRV9TUF0sICpzLCAqd2QsICpuYW1lLCAqcGFy
YW07ClgrICAgIGNoYXIgYnVmW0JTSVpFX1NQXSwgKnMsICp3ZCwgKndob2xl
LCAqbmFtZSA9IE5VTEwsICpwYXJhbTsKWCAgICAgaW50IGkgPSAwOwpYICAg
ICBzdHJ1Y3QgdmFyaWFibGUgKnZ2OwpYIApYQEAgLTI1MSwxOSArMjUxLDI4
IEBAClggICAgICAgICAgICAgZnByaW50ZihjcF9lcnIsIApYICAgICAgICAg
ICAgICJFcnJvcjogcGxvdCB3aWxkY2FyZCAobmFtZSAlcykgbWF0Y2hlcyBu
b3RoaW5nXG4iLApYICAgICAgICAgICAgICAgICAgICAgd29yZCk7ClgrICAg
ICAgICAgICAgICAgICAgICAKWCsgICAgICAgICAgICAJLyogTVcuIEkgZG9u
J3Qgd2FudCBjb3JlIGxlYWtzIGhlcmUgKi8KWCsgICAgICAgICAgICB0ZnJl
ZSh3ZCk7ClggICAgICAgICAgICAgcmV0dXJuIChOVUxMKTsKWCAgICAgICAg
IH0KWCAgICAgfQpYKyAgICAKWCAgICAgaWYgKCFkICYmICgqd29yZCA9PSBT
UEVDQ0hBUikpIHsKWCAgICAgICAgIC8qIFRoaXMgaXMgYSBzcGVjaWFsIHF1
YW50aXR5Li4uICovClggICAgICAgICBpZiAoZnRfbnV0bWVnKSB7ClggICAg
ICAgICAgICAgZnByaW50ZihjcF9lcnIsClggICAgICAgICAiRXJyb3I6IGNp
cmN1aXQgcGFyYW1ldGVycyBvbmx5IGF2YWlsYWJsZSB3aXRoIHNwaWNlXG4i
KTsKWCsgICAgICAgIApYKwkgICAgdGZyZWUod2QpOyAJLyogTVcuIE1lbW9y
eSBsZWFrIGZpeGVkIGFnYWluICovICAgICAgIAkJClggICAgICAgICAgICAg
cmV0dXJuIChmYWxzZSk7ClggICAgICAgICB9ClgtICAgICAgICBuYW1lID0g
Kyt3b3JkOwpYKyAgICAgICAgClgrCXdob2xlPWNvcHkod29yZCk7ClgrICAg
ICAgICBuYW1lID0gKyt3b3JkOyAgICAgICAgClggICAgICAgICBmb3IgKHBh
cmFtID0gbmFtZTsgKnBhcmFtICYmICgqcGFyYW0gIT0gJ1snKTsgcGFyYW0r
KykKWC0gICAgICAgICAgICA7ClgrICAgICAgICAgICAgOwkJClgrICAgICAg
ICAgICAgClggICAgICAgICBpZiAoKnBhcmFtKSB7ClggICAgICAgICAgICAg
KnBhcmFtKysgPSAnXDAnOwpYICAgICAgICAgICAgIGZvciAocyA9IHBhcmFt
OyAqcyAmJiAqcyAhPSAnXSc7IHMrKykKWEBAIC0yNzEsMjcgKzI4MCwzNiBA
QApYICAgICAgICAgICAgICpzID0gJ1wwJzsKWCAgICAgICAgIH0gZWxzZQpY
ICAgICAgICAgICAgIHBhcmFtID0gTlVMTDsKWC0KWCsgICAgICAgICAgICAK
WCsJClggCWlmIChmdF9jdXJja3QpIHsKWCsJClggCSAgICB2diA9ICgqaWZf
Z2V0cGFyYW0pKGZ0X2N1cmNrdC0+Y2lfY2t0LCAmbmFtZSwgcGFyYW0sIDAs
IDApOwpYIAkgICAgaWYgKCF2dikgewpYKwkgICAgICAgIHRmcmVlKHdob2xl
KTsKWCsJCXRmcmVlKHdkKTsKWCAJCXJldHVybiAoTlVMTCk7ClggCSAgICB9
ClggCX0gZWxzZSB7ClggICAgICAgICAgICAgZnByaW50ZihjcF9lcnIsICJF
cnJvcjogTm8gY2lyY3VpdCBsb2FkZWQuXG4iKTsKWCsJICAgIHRmcmVlKHdo
b2xlKTsKWCsJICAgIHRmcmVlKHdkKTsKWCAJICAgIHJldHVybiAoTlVMTCk7
ClggCX0KWCAKWC0gICAgICAgIHRmcmVlKHdkKTsKWCAgICAgICAgIGQgPSBh
bGxvYyhzdHJ1Y3QgZHZlYyk7ClggCVpFUk8oZCwgc3RydWN0IGR2ZWMpOwpY
LSAgICAgICAgZC0+dl9uYW1lID0gY29weSh3b3JkKTsKWCsgICAgICAgIGQt
PnZfbmFtZSA9IGNvcHkod2hvbGUpOyAvKiBNVy4gVGhlIHNhbWUgYXMgd29y
ZCBiZWZvcmUgKi8KWCAgICAgICAgIGQtPnZfdHlwZSA9IFNWX05PVFlQRTsK
WCAgICAgICAgIGQtPnZfZmxhZ3MgfD0gVkZfUkVBTDsgIC8qIE5vIGNvbXBs
ZXggdmFsdWVzIHlldC4uLiAqLwpYICAgICAgICAgZC0+dl9yZWFsZGF0YSA9
IChkb3VibGUgKikgdG1hbGxvYyhzaXplb2YgKGRvdWJsZSkpOwpYICAgICAg
ICAgZC0+dl9sZW5ndGggPSAxOwpYICAgICAgICAgKmQtPnZfcmVhbGRhdGEg
PSB2di0+dmFfcmVhbDsKWCsgICAgICAgIApYKyAgICAgICAgdGZyZWUod2Qp
OwkKWCAgICAgICAgIHZlY19uZXcoZCk7ClgrCXRmcmVlKHdob2xlKTsKWCsJ
dGZyZWUod2QpOwpYICAgICAgICAgcmV0dXJuIChkKTsKWCAgICAgfQpYIApF
TkQtb2Ytc3BpY2UvZmlsZXMvcGF0Y2gtc3JjX2xpYl9mdGVfdmVjdG9yc19j
CmVjaG8geCAtIHNwaWNlL2ZpbGVzL3BhdGNoLWNvbmZfZGVmYXVsdHMKc2Vk
ICdzL15YLy8nID5zcGljZS9maWxlcy9wYXRjaC1jb25mX2RlZmF1bHRzIDw8
ICdFTkQtb2Ytc3BpY2UvZmlsZXMvcGF0Y2gtY29uZl9kZWZhdWx0cycKWC0t
LSBjb25mL2RlZmF1bHRzLm9yaWcJVGh1IEp1bCAxNyAxNjo0MDo1MSAyMDAz
ClgrKysgY29uZi9kZWZhdWx0cwlUaHUgSnVsIDE3IDE2OjUxOjE5IDIwMDMK
WEBAIC02NSw3ICs2NSw3IEBAClggIwl0aGUgZm9sbG93aW5nIGRlZmluaXRp
b246ClggIwkJU1lTX0RJUgkJPSAkKERJU1RfRElSKQpYIApYLVNZU19ESVIJ
CT0gJChUT1AxKS8kKFNZU1RFTSkKWCtTWVNfRElSCQk9ICQoVE9QMCkvJChT
WVNURU0pClggClggIwlPQkpfVE9QIGlzIHRoZSBkaXJlY3RvcnkgaW4gd2hp
Y2ggaW50ZXJtaWRpYXRlIGZpbGVzIHJlc2lkZQpYICMJVGhlc2UgYXJlICIu
byIgZmlsZXMsIHN5bnRoZXNpemVkICIuYyIgZmlsZXMsICIuYSIgZmlsZXMs
ClhAQCAtMTA1LDEyICsxMDUsMTIgQEAKWCAjCWlkZW50aWZpZWQgYXMgYW5k
IFNZU1RFTSBpcyB0aGUgbmFtZSBvZiB0aGUgcGVyLXN5c3RlbSBkZWZpbml0
aW9ucwpYICMJZmlsZSBsaXN0ZWQgb24gdGhlICJidWlsZCIgY29tbWFuZCBs
aW5lLgpYIApYLVNQSUNFX0RJUgk9ICQoVE9QMSkvJChTWVNURU0pClgtU1BJ
Q0VfTElCX0RJUgk9ICQoU1BJQ0VfRElSKS9saWIKWCtTUElDRV9ESVIJPSAk
e1BSRUZJWH0KWCtTUElDRV9MSUJfRElSCT0gJChTUElDRV9ESVIpL3NoYXJl
L3NwaWNlMwpYIFNQSUNFX0VYRUNfRElSCT0gJChTUElDRV9ESVIpL2JpbgpY
IApYIFNfU1BJQ0VfRElSCT0gJChTUElDRV9ESVIpClgtU19TUElDRV9MSUJf
RElSCT0gJChTX1NQSUNFX0RJUikvbGliClgrU19TUElDRV9MSUJfRElSCT0g
JChTX1NQSUNFX0RJUikvc2hhcmUvc3BpY2UzClggU19TUElDRV9FWEVDX0RJ
Uj0gJChTX1NQSUNFX0RJUikvYmluClggClggIwlJTlNUQUxMX0RJUlMgbGlz
dHMgdGhlIGRpcmVjdG9yaWVzIHRoYXQgbmVlZCB0byBiZSBjcmVhdGVkIGJl
Zm9yZQpYQEAgLTEzMyw3ICsxMzMsNyBAQApYIApYICMJQ0NfT1BUOiBEZWZh
dWx0IGNvbXBpbGUgb3B0aW9ucyAob3B0aW1pemF0aW9uL2RlYnVnIGxldmVs
LCBvdGhlcikKWCAKWC1DQ19PUFQJCT0gLU8KWCtDQ19PUFQJCSs9IC1PClgg
ClggIwlDQ19PUFRfU0FGRTogU3BlY2lhbCBjb21waWxlIG9wdGlvbnMgdG8g
b3ZlcnJpZGUgQ0NfT1BUIGZvciBjb2RlClggIwl3aGljaCB0eXBpY2FsbHkg
Y2F1c2VzIHByb2JsZW1zIGZvciBtb3N0IGNvbXBpbGVycyAoYnNpbTEgYW5k
IGJzaW0yKS4KWEBAIC0yMDMsNyArMjAzLDcgQEAKWCAjCVhfRElSIGluZGlj
YXRlcyB0aGUgdG9wIG9mIHRoZSBYMTEgbGliL2luY2x1ZGUgaGllcmFyY2h5
OyBpdCBpcyBvbmx5ClggIwlhIGNvbnZlbmllbmNlIHRoYXQgaXMgdXNlZCBp
biB0aGUgZm9sbG93aW5nIGRlZmluaXRpb25zLgpYIApYLVhfRElSCQk9IC91
c3IKWCtYX0RJUgkJPSAke1gxMUJBU0V9ClggClggIwlJTkNYIGxpc3RzIHRo
ZSBYIGluY2x1ZGUgZGlyZWN0b3JpZXMuICBUaGlzIG1heSBiZSBkaWZmZXJl
bnQgYmV0d2VlbgpYICMJTUlUIFgxMXI1LCBYMTFyNCwgYW5kIHlvdXIgdmVu
ZG9yJ3MgdmVyc2lvbiBvZiBYMTEsIHRob3VnaCBsaXN0aW5nCkVORC1vZi1z
cGljZS9maWxlcy9wYXRjaC1jb25mX2RlZmF1bHRzCmVjaG8gYyAtIHNwaWNl
L3NjcmlwdHMKbWtkaXIgLXAgc3BpY2Uvc2NyaXB0cyA+IC9kZXYvbnVsbCAy
PiYxCmVjaG8geCAtIHNwaWNlL3NjcmlwdHMvY29uZmlndXJlCnNlZCAncy9e
WC8vJyA+c3BpY2Uvc2NyaXB0cy9jb25maWd1cmUgPDwgJ0VORC1vZi1zcGlj
ZS9zY3JpcHRzL2NvbmZpZ3VyZScKWCMhL2Jpbi9zaApYClhybSAtZiAke1dS
S1NSQ30vbWFrZWZpbGUKWGNwICR7RklMRVNESVJ9L01ha2VmaWxlICR7V1JL
U1JDfS9NYWtlZmlsZQpYY3AgJHtGSUxFU0RJUn0vRnJlZUJTRCAke1dSS1NS
Q30vY29uZi9GcmVlQlNECkVORC1vZi1zcGljZS9zY3JpcHRzL2NvbmZpZ3Vy
ZQpleGl0Cgo=

--0-60008898-1058507623=:26346--
>Release-Note:
>Audit-Trail:
>Unformatted:
 --0-60008898-1058507623=:26346
 Content-Type: text/plain; charset=iso-8859-1
 Content-Transfer-Encoding: 8bit
 Content-Id: 
 Content-Disposition: inline
 



More information about the freebsd-ports-bugs mailing list