new version of interface patch

"Rudi Cilibrasi, Ph.D." <[email protected]> Wed, 2 May 2007 21:01:20 +0200
Newsgroups gmane.comp.gnome.devtools.gob.general
Message-ID <[email protected]>
------=_Part_14328_19591152.1178132480123
Content-Type: multipart/alternative; 
	boundary="----=_Part_14329_32408709.1178132480123"

------=_Part_14329_32408709.1178132480123
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

new version of patch

------=_Part_14329_32408709.1178132480123
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

new version of patch<br>

------=_Part_14329_32408709.1178132480123--

------=_Part_14328_19591152.1178132480123
Content-Type: text/x-patch; name=second-interface-r.patch; 
	charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
X-Attachment-Id: f_f185mbk7
Content-Disposition: attachment; filename="second-interface-r.patch"

T25seSBpbiBnb2JuZXc6IGNvbmZpZy5oCk9ubHkgaW4gZ29ibmV3OiBjb25maWcubG9nCk9ubHkg
aW4gZ29ibmV3OiBjb25maWcuc3RhdHVzCk9ubHkgaW4gZ29ibmV3L2RvYzogZ29iMi4xCk9ubHkg
aW4gZ29ibmV3L2RvYzogTWFrZWZpbGUKT25seSBpbiBnb2JuZXcvZXhhbXBsZXM6IE1ha2VmaWxl
Ck9ubHkgaW4gZ29ibmV3OiBNYWtlZmlsZQpPbmx5IGluIGdvYm5ldzogbwpkaWZmIC1yIGdvYjIt
Mi4wLjE0L3NyYy9jaGVja3MuYyBnb2JuZXcvc3JjL2NoZWNrcy5jCjMxNmMzMTYsMzM2CjwgCQkJ
CW0tPmNidWYgPSBnX3N0cmR1cCgiLyplbXB0eSovIik7Ci0tLQo+ICAgICAgICAgaWYgKGMtPmlz
aW50ZXJmYWNlKSB7Cj4gICAgICAgICAgIEZ1bmNBcmcgKmZhOwo+ICAgICAgICAgICBmYSA9IG0t
PmFyZ3MtPmRhdGE7Cj4gICAgICAgICAgIEdTTGlzdCAqaXRlcjsKPiAgICAgICAgICAgR1N0cmlu
ZyAqZ3MgPSBnX3N0cmluZ19uZXcoIiIpOwo+IC8vICAgICAgICAgIG0tPmNidWYgPSBnX3N0cmR1
cCgiLyppbnRlcmVtcHR5Ki8iKTsKPiAgICAgICAgICAgY2hhciAqcmV0c3RyID0gKHN0cmNtcCht
LT5tdHlwZS0+bmFtZSwgInZvaWQiKT09MCkgPyAiIiA6ICJyZXR1cm4gIjsKPiAgICAgICAgICAg
Z19zdHJpbmdfc3ByaW50ZihncywgIiVzJXMtPiVzKCIsIHJldHN0ciwgZmEtPm5hbWUsIG0tPmlk
KTsKPiAgICAgICAgICAgaXRlciA9IGdfc2xpc3RfbmV4dChtLT5hcmdzKTsKPiAgICAgICAgICAg
ICBjaGFyICpzZXAyID0gIiI7Cj4gICAgICAgICAgIGZvciAoO2l0ZXI7IGl0ZXIgPSBpdGVyLT5u
ZXh0KSB7Cj4gICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKGdzLCBzZXAyKTsKPiAgICAgICAg
ICAgICBnX3N0cmluZ19hcHBlbmQoZ3MsICgoRnVuY0FyZyAqKSAoaXRlci0+ZGF0YSkpLT5uYW1l
KTsKPiAgICAgICAgICAgICBzZXAyID0gIiwiOwo+ICAgICAgICAgICB9Cj4gICAgICAgICAgICAg
Z19zdHJpbmdfYXBwZW5kKGdzLCAiKTsiKTsKPiAgICAgICAgICAgbS0+Y2J1ZiA9IGdzLT5zdHI7
Cj4gICAgICAgICAgIGdfc3RyaW5nX2ZyZWUoZ3MsIEZBTFNFKTsKPiAgICAgICAgIH0KPiAgICAg
ICAgIGVsc2UKPiAgICAgICAgICAgbS0+Y2J1ZiA9IGdfc3RyZHVwKCIvKmVtcHR5Ki8iKTsKT25s
eSBpbiBnb2JuZXcvc3JjOiAuY2hlY2tzLmMuc3dwCk9ubHkgaW4gZ29ibmV3L3NyYzogY29tcGxl
YXJuLXJlYWwtY29tcHJlc3Nvci5jCk9ubHkgaW4gZ29ibmV3L3NyYzogY29tcGxlYXJuLXJlYWwt
Y29tcHJlc3Nvci5oCk9ubHkgaW4gZ29iMi0yLjAuMTQvc3JjOiBsZXhlci5jCmRpZmYgLXIgZ29i
Mi0yLjAuMTQvc3JjL2xleGVyLmwgZ29ibmV3L3NyYy9sZXhlci5sCjQwN2E0MDgsNDIwCj4gaW50
ZXJmYWNlCQl7Cj4gCQkJc3RhdGljIGludCBmb3VuZF9jbGFzc2VzID0gMDsKPiAJCQlsb29rX2Zv
cl9pbmNsdWRlcyA9IDI7Cj4gCQkJQkVHSU4oQ0xBU1NfQ09ERSk7Cj4gCj4gCQkJaWYoKytmb3Vu
ZF9jbGFzc2VzID4gMSkgewo+IAkJCQllcnJvcl9wcmludChHT0JfRVJST1IsIGxpbmVfbm8sCj4g
CQkJCQkgICAgIk9ubHkgb25lIGludGVyZmFjZSBwZXIgZmlsZSBhbGxvd2VkIik7Cj4gCQkJfQo+
IAo+IAkJCXJldHVybiBJTlRFUkZBQ0U7Cj4gCQl9Cj4gCmRpZmYgLXIgZ29iMi0yLjAuMTQvc3Jj
L21haW4uYyBnb2JuZXcvc3JjL21haW4uYwoxMDY4YzEwNjgsMTA4OQo8IAlvdXRfcHJpbnRmKG91
dCwKLS0tCj4gICBpZiAoKChDbGFzcyAqKWNsYXNzKS0+aXNpbnRlcmZhY2UpCj4gICAgIG91dF9w
cmludGYob3V0LAo+IAkJICAgIkdUeXBlXG4iCj4gCQkgICAiJXNfZ2V0X3R5cGUgKHZvaWQpXG4i
Cj4gCQkgICAie1xuIgo+IAkJICAgIlx0c3RhdGljIEdUeXBlIHR5cGUgPSAwO1xuXG4iCj4gCQkg
ICAiXHRpZiBfX19HT0JfVU5MSUtFTFkodHlwZSA9PSAwKSB7XG4iCj4gCQkgICAiXHRcdHN0YXRp
YyBjb25zdCBHVHlwZUluZm8gaW5mbyA9IHtcbiIKPiAJCSAgICJcdFx0XHRzaXplb2YgKCVzQ2xh
c3MpLFxuIgo+IAkJICAgIlx0XHRcdChHQmFzZUluaXRGdW5jKSAlc19jbGFzc19pbml0LFxuIgo+
IAkJICAgIlx0XHRcdChHQmFzZUZpbmFsaXplRnVuYykgTlVMTCxcbiIKPiAJCSAgICJcdFx0XHQo
R0NsYXNzSW5pdEZ1bmMpIE5VTEwsXG4iCj4gCQkgICAiXHRcdFx0KEdDbGFzc0ZpbmFsaXplRnVu
YykgTlVMTCxcbiIKPiAJCSAgICJcdFx0XHROVUxMIC8qIGNsYXNzX2RhdGEgKi8sXG4iCj4gCQkg
ICAiXHRcdFx0MCxcbiIKPiAJCSAgICJcdFx0XHQwLFxuIgo+IAkJICAgIlx0XHRcdE5VTEwsXG4i
Cj4gCQkgICAiXHRcdFx0TlVMTFxuIgo+IAkJICAgIlx0XHR9O1xuXG4iLAo+IAkJICAgZnVuY2Jh
c2UsIHR5cGViYXNlLCBmdW5jYmFzZSk7Cj4gICBlbHNlCj4gICAgIG91dF9wcmludGYob3V0LAoy
NDAwLDI0MDFjMjQyMSwyNDI3CjwgCjwgCQlpZihtLT5jYnVmKSB7Ci0tLQo+ICAgICBpZiAoYy0+
aXNpbnRlcmZhY2UpIHsKPiAJCQlvdXRfcHJpbnRmKG91dCwgIiB7XG4iKTsKPiAJCQlvdXRfcHJp
bnRmKG91dCwgIiAlc19HRVRfQ0xBU1MgKHNlbGYpLT4lcyAoc2VsZik7IiwKPiAgICAgICAgICAg
ICAgICAgICAgICAgIG1hY3JvYmFzZSwgbS0+aWQpOwo+IAkJCW91dF9wcmludGYob3V0LCAiIH1c
biIpOwo+ICAgICB9Cj4gCQlpZighYy0+aXNpbnRlcmZhY2UgJiYgbS0+Y2J1ZikgewpPbmx5IGlu
IGdvYm5ldy9zcmM6IE1ha2VmaWxlCk9ubHkgaW4gZ29ibmV3L3NyYzogbwpPbmx5IGluIGdvYjIt
Mi4wLjE0L3NyYzogcGFyc2UuYwpPbmx5IGluIGdvYjItMi4wLjE0L3NyYzogcGFyc2UuaApkaWZm
IC1yIGdvYjItMi4wLjE0L3NyYy9wYXJzZS55IGdvYm5ldy9zcmMvcGFyc2UueQo0N2E0OAo+IHN0
YXRpYyBnYm9vbGVhbiBpc2ludGVyZmFjZSA9IEZBTFNFOwo2NzZjNjc3CjwgJXRva2VuIENMQVNT
IEZST00KLS0tCj4gJXRva2VuIENMQVNTIElOVEVSRkFDRSBGUk9NCjY4OSw2OTJjNjkwLDY5Nwo8
IHByb2c6CQljY29kZXMgY2xhc3MgY2NvZGVzCXsgOyB9CjwgCXwJY2xhc3MgY2NvZGVzCQl7IDsg
fQo8IAl8CWNjb2RlcyBjbGFzcwkJeyA7IH0KPCAJfAljbGFzcwkJCXsgOyB9Ci0tLQo+IHByb2c6
CQljY29kZXMgaWNsYXNzIGNjb2Rlcwl7IDsgfQo+IAl8CWljbGFzcyBjY29kZXMJCXsgOyB9Cj4g
CXwJY2NvZGVzIGljbGFzcwkJeyA7IH0KPiAJfAlpY2xhc3MJCQl7IDsgfQo+IAk7Cj4gCj4gaWNs
YXNzOgljbGFzcwl7IDsgfQo+IAl8CWludGVyZmFjZQkJeyA7IH0KNzYwYTc2Niw3ODYKPiBpbnRl
cmZhY2U6CQlpbnRlcmZhY2VkZWMgJ3snIGludGVyZmFjZWNvZGUgJ30newo+IAkJCSgoQ2xhc3Mg
KiljbGFzcyktPm5vZGVzID0gY2xhc3Nfbm9kZXM7Cj4gICAgICAgICBpc2ludGVyZmFjZSA9IFRS
VUU7Cj4gICAgICAgICAoKENsYXNzICopY2xhc3MpLT5pc2ludGVyZmFjZSA9IFRSVUU7Cj4gCQkJ
Y2xhc3Nfbm9kZXMgPSBOVUxMOwo+IAkJCW5vZGVzID0gZ19saXN0X2FwcGVuZChub2RlcyxjbGFz
cyk7Cj4gCQkJCQkJfQo+IAl8CWludGVyZmFjZWRlYyAnOycJewo+IAkJCSgoQ2xhc3MgKiljbGFz
cyktPm5vZGVzID0gY2xhc3Nfbm9kZXM7Cj4gICAgICAgICBpc2ludGVyZmFjZSA9IFRSVUU7Cj4g
ICAgICAgICAoKENsYXNzICopY2xhc3MpLT5pc2ludGVyZmFjZSA9IFRSVUU7Cj4gCQkJY2xhc3Nf
bm9kZXMgPSBOVUxMOwo+IAkJCW5vZGVzID0gZ19saXN0X2FwcGVuZChub2RlcyxjbGFzcyk7Cj4g
CQkJCQkJfQo+IAl8CWludGVyZmFjZWRlYyAneycgJ30nCQl7Cj4gCQkJKChDbGFzcyAqKWNsYXNz
KS0+bm9kZXMgPSBOVUxMOwo+IAkJCWNsYXNzX25vZGVzID0gTlVMTDsKPiAJCQlub2RlcyA9IGdf
bGlzdF9hcHBlbmQobm9kZXMsY2xhc3MpOwo+IAkJCQkJCX0KPiAJOwo+IAo3NzJhNzk5LDg5Nwo+
IGludGVyZmFjZWRlYzoJSU5URVJGQUNFIFRZUEVUT0tFTiBGUk9NIFRZUEVUT0tFTiBpbnRlcmZh
Y2VmbGFncwl7Cj4gCQkJY2xhc3MgPSBub2RlX25ldyAoQ0xBU1NfTk9ERSwKPiAJCQkJCSAgIm90
eXBlOnN0ZWFsIiwgJDxpZD4yLAo+IAkJCQkJICAicHR5cGU6c3RlYWwiLCAkPGlkPjQsCj4gCQkJ
CQkgICJib25vYm9fb2JqZWN0X2NsYXNzOnN0ZWFsIiwgYm9ub2JvX29iamVjdF9jbGFzcywKPiAJ
CQkJCSAgImdsYWRlX3htbCIsIGdsYWRlX3htbCwKPiAJCQkJCSAgImludGVyZmFjZXM6c3RlYWwi
LCBpbnRlcmZhY2VzLAo+IAkJCQkJICAiY2h1bmtfc2l6ZTpzdGVhbCIsIGNodW5rX3NpemUsCj4g
CQkJCQkgICJhYnN0cmFjdCIsIGFic3RyYWN0LAo+ICAgICAgICAgICAgICJpc2ludGVyZmFjZSIs
IGlzaW50ZXJmYWNlLAo+IAkJCQkJICBOVUxMKTsKPiAJCQlib25vYm9fb2JqZWN0X2NsYXNzID0g
TlVMTDsKPiAJCQlnbGFkZV94bWwgPSBGQUxTRTsKPiAJCQljaHVua19zaXplID0gTlVMTDsKPiAJ
CQlpbnRlcmZhY2VzID0gTlVMTDsKPiAgICAgICBpc2ludGVyZmFjZSA9IEZBTFNFOwo+IAkJCQkJ
CX0KPiAJOwo+IAo+IGludGVyZmFjZWZsYWdzOgo+IAl8ICcoJyBUT0tFTiAnKScgaW50ZXJmYWNl
ZmxhZ3Mgewo+IAkJCWlmKHN0cmNtcCgkPGlkPjIsImFic3RyYWN0IikgPT0gMCkgewo+IAkJCQlh
YnN0cmFjdCA9IFRSVUU7Cj4gCQkJfSBlbHNlIHsKPiAJCQkJeXllcnJvcihfKCJwYXJzZSBlcnJv
ciIpKTsKPiAJCQkJWVlFUlJPUjsKPiAJCQl9Cj4gCQl9Cj4gCXwgJygnIFRPS0VOIFRPS0VOICcp
JyBpbnRlcmZhY2VmbGFncyB7Cj4gCQkJaWYoc3RyY21wKCQ8aWQ+MiwiY2h1bmtzIikgPT0gMCkg
ewo+IAkJCQlnX2ZyZWUgKGNodW5rX3NpemUpOwo+IAkJCQljaHVua19zaXplID0gZ19zdHJkdXAo
JDxpZD4zKTsKPiAJCQl9IGVsc2UgaWYoc3RyY21wKCQ8aWQ+MiwiQm9ub2JvT2JqZWN0IikgPT0g
MCkgewo+IAkJCQlnX2ZyZWUgKGJvbm9ib19vYmplY3RfY2xhc3MpOwo+IAkJCQlib25vYm9fb2Jq
ZWN0X2NsYXNzID0gZ19zdHJkdXAoJDxpZD4zKTsKPiAJCQl9IGVsc2Ugewo+IAkJCQl5eWVycm9y
KF8oInBhcnNlIGVycm9yIikpOwo+IAkJCQlZWUVSUk9SOwo+IAkJCX0KPiAJCX0KPiAJfCAnKCcg
VE9LRU4gVFlQRVRPS0VOICcpJyBpbnRlcmZhY2VmbGFncyB7Cj4gCQkJaWYgKHN0cmNtcCAoJDxp
ZD4yLCAiaW50ZXJmYWNlIikgPT0gMCkgewo+IAkJCQlpbnRlcmZhY2VzID0gZ19saXN0X2FwcGVu
ZCAoaW50ZXJmYWNlcywKPiAJCQkJCQkJICAgIGdfc3RyZHVwICgkPGlkPjMpKTsKPiAJCQl9IGVs
c2Ugewo+IAkJCQl5eWVycm9yKF8oInBhcnNlIGVycm9yIikpOwo+IAkJCQlZWUVSUk9SOwo+IAkJ
CX0KPiAJCX0KPiAJfCAnKCcgVE9LRU4gTlVNQkVSICcpJyBpbnRlcmZhY2VmbGFncyB7Cj4gCQkJ
aWYoc3RyY21wKCQ8aWQ+MiwiY2h1bmtzIikgPT0gMCkgewo+IAkJCQlnX2ZyZWUgKGNodW5rX3Np
emUpOwo+IAkJCQlpZihhdG9pKCQ8aWQ+MykgIT0gMCkKPiAJCQkJCWNodW5rX3NpemUgPSBnX3N0
cmR1cCgkPGlkPjMpOwo+IAkJCQllbHNlCj4gCQkJCQljaHVua19zaXplID0gTlVMTDsKPiAJCQl9
IGVsc2Ugewo+IAkJCQl5eWVycm9yKF8oInBhcnNlIGVycm9yIikpOwo+IAkJCQlZWUVSUk9SOwo+
IAkJCX0KPiAJCX0KPiAJfCAnKCcgVE9LRU4gU1RSSU5HIFNUUklORyAnKScgaW50ZXJmYWNlZmxh
Z3Mgewo+IAkJCWlmIChzdHJjbXAgKCQ8aWQ+MiwgIkdsYWRlWE1MIikgPT0gMCkgewo+IAkJCQln
bGFkZV94bWwgPSBUUlVFOwo+IAkJCQlhZGRfY29uc3RydWN0X2dsYWRlKCQ8aWQ+MywgJDxpZD40
LCBOVUxMKTsKPiAJCQl9IGVsc2Ugewo+IAkJCQl5eWVycm9yKF8oInBhcnNlIGVycm9yIikpOwo+
IAkJCQlZWUVSUk9SOwo+IAkJCX0KPiAJCX0KPiAJfCAnKCcgVE9LRU4gU1RSSU5HIFNUUklORyBT
VFJJTkcgJyknIGludGVyZmFjZWZsYWdzIHsKPiAJCQlpZiAoc3RyY21wICgkPGlkPjIsICJHbGFk
ZVhNTCIpID09IDApIHsKPiAJCQkJZ2xhZGVfeG1sID0gVFJVRTsKPiAJCQkJYWRkX2NvbnN0cnVj
dF9nbGFkZSgkPGlkPjMsICQ8aWQ+NCwgJDxpZD41KTsKPiAJCQl9IGVsc2Ugewo+IAkJCQl5eWVy
cm9yKF8oInBhcnNlIGVycm9yIikpOwo+IAkJCQlZWUVSUk9SOwo+IAkJCX0KPiAJCX0KPiAJfCAn
KCcgVE9LRU4gVE9LRU4gU1RSSU5HICcpJyBpbnRlcmZhY2VmbGFncyB7Cj4gCQkJaWYgKHN0cmNt
cCAoJDxpZD4yLCAiR2xhZGVYTUwiKSA9PSAwKSB7Cj4gCQkJCWdsYWRlX3htbCA9IFRSVUU7Cj4g
CQkJCWFkZF9jb25zdHJ1Y3RfZ2xhZGUoJDxpZD4zLCAkPGlkPjQsIE5VTEwpOwo+IAkJCX0gZWxz
ZSB7Cj4gCQkJCXl5ZXJyb3IoXygicGFyc2UgZXJyb3IiKSk7Cj4gCQkJCVlZRVJST1I7Cj4gCQkJ
fQo+IAkJfQo+IAl8ICcoJyBUT0tFTiBUT0tFTiBTVFJJTkcgU1RSSU5HICcpJyBpbnRlcmZhY2Vm
bGFncyB7Cj4gCQkJaWYgKHN0cmNtcCAoJDxpZD4yLCAiR2xhZGVYTUwiKSA9PSAwKSB7Cj4gCQkJ
CWdsYWRlX3htbCA9IFRSVUU7Cj4gCQkJCWFkZF9jb25zdHJ1Y3RfZ2xhZGUoJDxpZD4zLCAkPGlk
PjQsICQ8aWQ+NSk7Cj4gCQkJfSBlbHNlIHsKPiAJCQkJeXllcnJvcihfKCJwYXJzZSBlcnJvciIp
KTsKPiAJCQkJWVlFUlJPUjsKPiAJCQl9Cj4gCQl9Cj4gCTsJCj4gCjg3M2E5OTksMTAyNwo+IGlu
dGVyZmFjZWNvZGU6CWludGVyZmFjZWNvZGUgaW50ZXJmYWNldGhpbmcJCQl7IDsgfQo+IAl8CWlu
dGVyZmFjZXRoaW5nCQl7IDsgfQo+IAk7Cj4gCj4gaW50ZXJmYWNldGhpbmc6IAkJbWV0aG9kCQkJ
CXsgOyB9Cj4gCXwJVE9LRU4gbWV0aG9kCQkJewo+IAkJCWlmIChzdHJjbXAgKCQ8aWQ+MSwgIkJv
bm9ib09iamVjdCIpICE9IDApIHsKPiAJCQkJZ19mcmVlICgkPGlkPjEpOwo+IAkJCQl5eWVycm9y
IChfKCJwYXJzZSBlcnJvciIpKTsKPiAJCQkJWVlFUlJPUjsKPiAJCQl9Cj4gCQkJZ19mcmVlICgk
PGlkPjEpOwo+IAkJCWxhc3RfYWRkZWRfbWV0aG9kLT5ib25vYm9fb2JqZWN0X2Z1bmMgPSBUUlVF
Owo+IAkJCQkJCX0KPiAJfAlUT0tFTiBUWVBFVE9LRU4gbWV0aG9kCQkJewo+IAkJCWlmIChzdHJj
bXAgKCQ8aWQ+MSwgImludGVyZmFjZSIpICE9IDApIHsKPiAJCQkJZ19mcmVlICgkPGlkPjEpOwo+
IAkJCQlnX2ZyZWUgKCQ8aWQ+Mik7Cj4gCQkJCXl5ZXJyb3IgKF8oInBhcnNlIGVycm9yIikpOwo+
IAkJCQlZWUVSUk9SOwo+IAkJCX0KPiAJCQlnX2ZyZWUgKCQ8aWQ+MSk7Cj4gCQkJbm9kZV9zZXQg
KChOb2RlICopbGFzdF9hZGRlZF9tZXRob2QsCj4gCQkJCSAgImludGVyZmFjZTpzdGVhbCIsICQ8
aWQ+MiwKPiAJCQkJICBOVUxMKTsKPiAJCQkJCQl9Cj4gCXwJJzsnCQkJCXsgOyB9Cj4gCTsKPiAK
T25seSBpbiBnb2JuZXcvc3JjOiB0Mi5nb2IKZGlmZiAtciBnb2IyLTIuMC4xNC9zcmMvdGVzdC5n
b2IgZ29ibmV3L3NyYy90ZXN0LmdvYgoxLDExYzEKPCAvKiB0aGlzIGlzIGEgVEVTVCBmaWxlLCBp
dCdzIFZFUlkgVkVSWSB1Z2x5LCBpdCdzIGp1c3Qgc3VwcG9zZWQgdG8gdGVzdAo8ICAgIHRoZSBw
YXJzZXIgb2YgZ29iIGFuZCBzb21ld2hhdCB0ZXN0IHNvbWUgb3V0cHV0IGFzIHdlbGwsIHlvdSBj
YW4KPCAgICBsb29rIGluIGhlcmUgdG8gc2VlIGEgd2hvbGUgYXJyYXkgb2YgZGlmZmVyZW50IHN5
bnRheCBvcHRpb25zLCBidXQKPCAgICBkb24ndCBleHBlY3QgdGhpcyB0byBiZSBhbiBlYXN5IHRv
IHJlYWQgZmlsZSAqLwo8IAo8IHJlcXVpcmVzIDEuOTkuMAo8IAo8ICVhdHsKPCAvKiBBTEwgVE9Q
ICovCjwgJX0KPCAKLS0tCj4gcmVxdWlyZXMgMi4wLjAKMTMsNDRjMyw0CjwgLyogdGhpcyBzaG91
bGQgZ28gb24gdGhlIHZlcnkgdG9wIG9mIHRoZSBoZWFkZXIgKi8KPCAKPCAlfQo8ICVodHsKPCAv
KiB0aGlzIHNob3VsZCBnbyBvbiB0aGUgdmVyeSB0b3Agb2YgdGhlIGhlYWRlciBhcyB3ZWxsICov
CjwgJX0KPCAlcGh7CjwgLyogdGhpcyBzaG91bGQgZ28gaW50byB0aGUgcHJpdmF0ZSBoZWFkZXIg
Ki8KPCAlfQo8ICVwcml2YXRlaGVhZGVyewo8IC8qIHRoaXMgc2hvdWxkIGdvIGludG8gdGhlIHBy
aXZhdGUgaGVhZGVyIGFzIHdlbGwqLwo8ICV9CjwgCjwgCjwgJXsKPCAjaW5jbHVkZSA8c3RkaW8u
aD4KPCAjaW5jbHVkZSA8Z3RrL2d0ay5oPgo8IC8qIHRoZSBuZXh0IGxpbmUgaXMgbm90IG1hbmRh
dG9yeSwgYnV0IGlmIGdvYiBmaW5kcyBhbiBpbmNsdWRlIGluIG9uZSBvZgo8ICAgIHRoZSAleyAl
fSBzZWN0aW9ucyBhYm92ZSB0aGUgY2xhc3MgZGVmaW5pdGlvbnMsIGl0IHdpbGwgbm90IHB1dCBp
dCBpbgo8ICAgIHRoZSBmaWxlIGl0c2VsZi4gIFNvIHlvdSBjYW4gdGhpcyB3YXkgc2VsZWN0IHdo
ZXJlIHRoZSBpbmNsdWRlIGZpbGUgaXMKPCAgICBhdCAqLwo8ICNpbmNsdWRlICJ0ZXN0LW9iamVj
dC5oIgo8ICNpbmNsdWRlICJ0ZXN0LW9iamVjdC1wcml2YXRlLmgiCjwgCjwgLyogdGhpcyBpcyB0
byB0ZXN0IGlmIHRoZSBsZXhlciB3b24ndCBnZXQgY29uZnVzZWQgYnkgcmVxdWlyZXMgaW5zaWRl
CjwgICAgc29tZSBjIGNvZGUKPCByZXF1aXJlcyA5OS45OS45OQo8ICovCjwgCjwgc3RhdGljIHZv
aWQgampqaih2b2lkKTsKPCAKPCAjZGVmaW5lIF8oeCkgeAotLS0KPiAjaW5jbHVkZSA8Z2xpYi9n
YXJyYXkuaD4KPiAjaW5jbHVkZSAicmVhbC1jb21wcmVzc29yLmgiCjQ3LDYyOWM3CjwgJWh7Cjwg
ZW51bSBfZ29iX19lbnVtX3Qgewo8IAlCVURMSUtZLCBCVURMSUtZMgo8IH07CjwgCjwgc3RydWN0
IF9nb2JfX3N0cnVjdF90IHsKPCAJaW50IGksIHgsIHksIHo7CjwgfTsKPCB1bmlvbiBfZ29iX191
bmlvbl90IHsKPCAJaW50IGksIHgsIHksIHo7CjwgfTsKPCB2b2lkIGJ1YnUodm9pZCk7CjwgCjwg
LyogRmFrZSBib3hlZCAqLwo8ICNkZWZpbmUgUEFDS0FHRV9UWVBFX0JPWEVEIDEKPCB0eXBlZGVm
IHZvaWQgKiBQYWNrYWdlQm94ZWQ7CjwgCjwgJX0KPCAlaGVhZGVyewo8IC8qIHRoaXMgc2hvdWxk
IGJlIGluIHRoZSBoZWFkZXIsIGp1c3QgdW5kZXIgYnVidSBwcm90b3R5cGUgKi8KPCAjZGVmaW5l
IFRFU1RfQVJSQVkgNQo8ICV9CjwgCjwgZW51bSBMQU1FX0NMSUVOVCB7CjwgCUlTX0NPTk5FQ1RF
RCwKPCAJTk9ORSA9IDksCjwgCUxBU1QKPCB9IFRlc3Q6RW51bTsKPCAKPCBmbGFncyBCVUdBX0JV
R0Egewo8IAlPTkUsCjwgCVRXTywKPCAJTUFOWSwKPCB9IFNvbWU6RmxhZ3M7CjwgCjwgZXJyb3Ig
VEVTVF9PQkpFQ1RfRVJST1Igewo8IAlCQURfVEhJUywKPCAJQkFEX1RIQVQKPCB9IFRlc3Q6T2Jq
ZWN0OkVycm9yOwo8IAo8IGVudW0gQlVCTEUgewo8ICAgICAgICAgS0VJTiA9IDAsCjwgICAgICAg
ICBTVEFOREFSRCwKPCAgICAgICAgIFNUQU5EQVJEX1JPLAo8ICAgICAgICAgS09NUExFVFQsCjwg
ICAgICAgICBBTFQKPCB9IEJ1YmxlOkVudW07CjwgCjwgY2xhc3MgVGVzdDpPYmplY3QgZnJvbSAv
Kkc6T2JqZWN0Ki8gR3RrOkNvbnRhaW5lcgo8IAkoaW50ZXJmYWNlIEd0azpUcmVlOk1vZGVsKQo8
IAkvKiBXZSBjYW4gYWRkIG1vcmUgaW50ZXJmYWNlcyBieSBhZGRpbmcgbW9yZSBsaW5lcyBsaWtl
IHRoZSBhYm92ZSAqLwo8IAkvKiBOb3RlIHRoYXQgdGhlcmUgbXVzdCBleGlzdCBhIEd0a1RyZWVN
b2RlbElmYWNlIHN0cnVjdHVyZSAqLwo8IHsKPCAKPCAJLyogZnVuY3Rpb24gaW1wbGVtZW50ZWQg
Zm9yIHRoZSBHdGs6VHJlZTpNb2RlbCBpbnRlcmZhY2UgKi8KPCAJaW50ZXJmYWNlIEd0azpUcmVl
Ok1vZGVsCjwgCXByaXZhdGUgR3RrVHJlZU1vZGVsRmxhZ3MKPCAJZ2V0X2ZsYWdzIChHdGs6VHJl
ZTpNb2RlbCAqc2VsZiAoY2hlY2sgbnVsbCB0eXBlKSkKPCAJewo8IAkJLyogRk9PICovCjwgCQly
ZXR1cm4gKEd0a1RyZWVNb2RlbEZsYWdzKTA7CjwgCX0KPCAKPCAKPCAKPCAJcHVibGljIGludCB0
ZXN0X2FycmF5W1RFU1RfQVJSQVldOwo8IAlwdWJsaWMgaW50IGk7CjwgCWFyZ3VtZW50IElOVCBp
IHNldCB7IHNlbGYtPmkgPSBBUkc7IH0gZ2V0IHsgQVJHID0gc2VsZi0+aTsgfSA7CjwgCjwgCXB1
YmxpYyBpbnQgdGVzdGluZyA9IDE7CjwgCWFyZ3VtZW50IElOVCB0ZXN0aW5nIGxpbms7CjwgCjwg
CXB1YmxpYyBjaGFyICogdGVzdGluZ3N0cmluZyA9IHtnX3N0cmR1cCgidGVzdCIpfQo8IAkJZGVz
dHJveXdpdGggZ19mcmVlOwo8IAlhcmd1bWVudCBQT0lOVEVSIHRlc3RpbmdzdHJpbmcgc3RyaW5n
bGluazsKPCAKPCAJcHVibGljIFRlc3Q6T2JqZWN0ICogdGVzdGluZ29iago8IAkJdW5yZWZ3aXRo
IGdfb2JqZWN0X3VucmVmOwo8IAlhcmd1bWVudCBQT0lOVEVSIHRlc3RpbmdvYmogb2JqZWN0bGlu
azsKPCAKPCAJcHVibGljIFRlc3Q6T2JqZWN0ICogdGVzdGluZ29iamxsbGwKPCAJCXVucmVmd2l0
aCBndGtfd2lkZ2V0X2Rlc3Ryb3k7CjwgCWFyZ3VtZW50IFBPSU5URVIgdGVzdGluZ29iamxsbGwg
b2JqZWN0bGluazsKPCAKPCAJcHVibGljIFRlc3Q6T2JqZWN0ICogdGVzdGluZ29iamZvbwo8IAkJ
dW5yZWYgeyBpZiAoVkFSKSBnX29iamVjdF91bnJlZiAoVkFSKTsgfTsKPCAJYXJndW1lbnQgUE9J
TlRFUiB0ZXN0aW5nb2JqZm9vIG9iamVjdGxpbms7CjwgCjwgCWNsYXNzd2lkZSBpbnQgZm9vID0g
MjA7CjwgCWFyZ3VtZW50IElOVCBmb28gbGluazsKPCAKPCAJcHVibGljIEc6T2JqZWN0ICogdGVz
dGluZ29iajIKPCAJCWRlc3Ryb3kgewo8IAkJCWlmKFZBUikKPCAJCQkJZ19vYmplY3RfdW5yZWYo
R19PQkpFQ1QoVkFSKSk7CjwgCQl9Owo8IAlhcmd1bWVudCBQT0lOVEVSICh0eXBlIEc6T2JqZWN0
ICopIHRlc3RpbmdvYmoyIG9iamVjdGxpbms7CjwgCQo8IAlhcmd1bWVudCBQT0lOVEVSICh0eXBl
IEdPYmplY3QgKikgc29tZV9vYmplY3QKPCAJCXNldCB7IC8qIHNldCBzb21lX29iamVjdCAqLyB9
CjwgCQlnZXQgeyAvKiBnZXQgc29tZV9vYmplY3QgKi8KPCAJCQlBUkc9TlVMTDsgfTsKPCAJYXJn
dW1lbnQgKENPTlNUUlVDVCkgTE9ORyAodHlwZSBsb25nKSB3cml0ZV9vbmx5X2xvbmcKPCAJCXNl
dCB7IC8qIHNldCB3cml0ZV9vbmx5X2xvbmcgKi8gfTsKPCAJYXJndW1lbnQgUE9JTlRFUiAodHlw
ZSBjaGFyICopIHJlYWRfb25seV9zdHJpbmcKPCAJCWdldCB7IC8qIGdldCByZWFkb25seV9sb25n
ICovCjwgCQkJQVJHID0gZ19zdHJkdXAoIkJMQUgiKTsgfTsKPCAKPCAJcHJpdmF0ZSBjaGFyIGFf
cHJvcGVydHk7CjwgCXByb3BlcnR5IENIQVIgYV9wcm9wZXJ0eQo8IAkJKG5pY2sgPSBfKCJOaWNr
IiksCjwgCQkgYmx1cmIgPSBfKCJCbHVyYiIpLAo8IAkJIG1pbmltdW0gPSAnYScsCjwgCQkgbWF4
aW11bSA9ICdaJywKPCAJCSBkZWZhdWx0X3ZhbHVlID0gJ0MnLAo8IAkJIGV4cG9ydCkKPCAJCXNl
dCB7IHNlbGYtPl9wcml2LT5hX3Byb3BlcnR5ID0gZ192YWx1ZV9nZXRfY2hhciAoVkFMKTsgfQo8
IAkJZ2V0IHsgZ192YWx1ZV9zZXRfY2hhciAoVkFMLCBzZWxmLT5fcHJpdi0+YV9wcm9wZXJ0eSk7
IH07CjwgCjwgCXByb3BlcnR5IE9CSkVDVCBmb29iYXJibGFobGxsbDEKPCAJCShuaWNrID0gInh4
eHh4eHgxIiwKPCAJCSBibHVyYiA9ICJ5eXl5eXkiLAo8IAkJIG9iamVjdF90eXBlID0gR3RrOkJ1
dHRvbikKPCAJCWdldCB7IC8qIEZPTzEgKi8gfTsKPCAJcHJvcGVydHkgT0JKRUNUIGZvb2JhcmJs
YWhsbGxsMgo8IAkJKG5pY2sgPSAieHh4eHh4eDIiLAo8IAkJIGJsdXJiID0gInl5eXl5eSIsCjwg
CQkgb2JqZWN0X3R5cGUgPSBHOk9iamVjdCkKPCAJCXNldCB7IC8qIEZPTzIgKi8gfTsKPCAKPCAJ
cHJpdmF0ZSBkb3VibGUgZGJsbnVtOwo8IAlwcm9wZXJ0eSBET1VCTEUgZGJsbnVtCjwgCQkobmlj
ayA9IF8oImRibG51bSIpLAo8IAkJIGJsdXJiID0gXygiZGJsbnVtIiksCjwgCQkgbWluaW11bSA9
IDAuMSwKPCAJCSBtYXhpbXVtID0gOTkuMSwKPCAJCSBkZWZhdWx0X3ZhbHVlID0gMC4zLAo8IAkJ
IGZsYWdzID0gQ09OU1RSVUNUfENPTlNUUlVDVF9PTkxZLAo8IAkJIGV4cG9ydCwKPCAJCSBsaW5r
KTsKPCAKPCAJcHJpdmF0ZSBjaGFyICpiX3Byb3BlcnR5Owo8IAlwcm9wZXJ0eSBTVFJJTkcgYl9w
cm9wZXJ0eQo8IAkJKG5pY2sgPSBfKCJOaWNrIGIiKSwKPCAJCSBibHVyYiA9IF8oIkJsdXJiIGIi
KSwKPCAJCSBkZWZhdWx0X3ZhbHVlID0gImRlZmF1bHQiLAo8IAkJIHR5cGUgPSBjaGFyICosCjwg
CQkgZmxhZ3MgPSBDT05TVFJVQ1QsCjwgCQkgZXhwb3J0LAo8IAkJIGxpbmspOwo8IAo8IAlwcml2
YXRlIFRlc3Q6T2JqZWN0ICpvYmplY3Rwcm9wZXJ0eTsKPCAJcHJvcGVydHkgT0JKRUNUIG9iamVj
dHByb3BlcnR5IChuaWNrICAgPSAib2JqZWN0IiwKPCAJCQkJYmx1cmIgID0gIm9iaiBwcm9wZXJ0
eSIsCjwgCQkJCW9iamVjdF90eXBlID0gVGVzdDpPYmplY3QsCjwgCQkJCWxpbmspOwo8IAo8IAlw
cml2YXRlIFRlc3Q6RW51bSBlbnVtX3Byb3BlcnR5Owo8IAlwcm9wZXJ0eSBFTlVNIGVudW1fcHJv
cGVydHkgKG5pY2sgICA9ICJlbnVtcHJvcCIsCjwgCQkJCWJsdXJiICA9ICJlbnVtcHJvcCIsCjwg
CQkJCWVudW1fdHlwZSA9IFRlc3Q6RW51bSwKPCAJCQkJbGluayk7CjwgCjwgCXByaXZhdGUgU29t
ZTpGbGFncyBmbGFnc19wcm9wZXJ0eTsKPCAJcHJvcGVydHkgRkxBR1MgZmxhZ3NfcHJvcGVydHkg
KG5pY2sgICA9ICJmbGFnc3Byb3AiLAo8IAkJCQlibHVyYiAgPSAiZmxhZ3Nwcm9wIiwKPCAJCQkJ
ZmxhZ3NfdHlwZSA9IFNvbWU6RmxhZ3MsCjwgCQkJCWxpbmspOwo8IAo8IAkgIHByaXZhdGUgUGFj
a2FnZUJveGVkIHByb3A7CjwgCSAgcHJvcGVydHkgQk9YRUQgcHJvcCAobmljaz0icHJvcCIsCjwg
CQkJICAgICAgIGJsdXJiPSJwcm9wIiwKPCAJCQkgICAgICAgYm94ZWRfdHlwZT1QYWNrYWdlOkJv
eGVkLAo8IAkJCSAgICAgICBsaW5rKTsKPCAJICAvKiB0ZXN0aW5nIG9sZCBzZW1hbnRpY3MgKi8K
PCAJICBwcml2YXRlIFBhY2thZ2VCb3hlZCBwcm9wMjsKPCAJICBwcm9wZXJ0eSBCT1hFRCBwcm9w
MiAobmljaz0icHJvcDIiLAo8IAkJCSAgICAgICBibHVyYj0icHJvcDIiLAo8IAkJCSAgICAgICBi
b3hlZF90eXBlPVBBQ0tBR0VfVFlQRV9CT1hFRCwKPCAJCQkgICAgICAgbGluayk7CjwgCjwgCXBy
aXZhdGUgY2hhciBvdl9wcm9wOwo8IAlwcm9wZXJ0eSBDSEFSIG92X3Byb3AKPCAJCShleHBvcnQs
CjwgCQkgb3ZlcnJpZGUpCjwgCQlzZXQgeyBzZWxmLT5fcHJpdi0+b3ZfcHJvcCA9IGdfdmFsdWVf
Z2V0X2NoYXIgKFZBTCk7IH0KPCAJCWdldCB7IGdfdmFsdWVfc2V0X2NoYXIgKFZBTCwgc2VsZi0+
X3ByaXYtPm92X3Byb3ApOyB9Owo8IAo8IAo8IAlwcml2YXRlIGludCBqOwo8IAlwdWJsaWMgR09i
amVjdCAqIGg7CjwgCXB1YmxpYyBjaGFyICpibGVoOwo8IAlwdWJsaWMgZG91YmxlIGFycmF5WzIz
XVsxOF07CjwgCXByb3RlY3RlZCB1bnNpZ25lZCBsb25nIGludCB3YWdhd2FnYTsKPCAJcHVibGlj
IGludCB3YWdhd2FnYV9zaG91bGRfYmVfYWZ0ZXJfdGhpc19pbl90aGVfaGVhZGVyOwo8IAo8IAlp
bml0KG9iamVjdCkgewo8IAkJb2JqZWN0LT5pPTA7CjwgCX0KPCAJY2xhc3NfaW5pdChrbGFzcyk7
CjwgCjwgCS8qKgo8IAkgKiBuZXc6CjwgCSAqIEBqOiBmb28KPCAJICoKPCAJICogYnVkbGlreSBi
dWRsaWt5CjwgCSAqCjwgCSAqIFJldHVybnM6IG5ldyBvYmplY3QKPCAJICovCjwgCXB1YmxpYyBH
T2JqZWN0ICogbmV3KGludCBqIChjaGVjayA+IDApKSB7CjwgCQlHT2JqZWN0ICpyZXQ7CjwgCQly
ZXQgPSBHX09CSkVDVCAoR0VUX05FVyk7CjwgCjwgCQlTRUxGKHJldCktPl9wcml2LT5qID0gajsK
PCAKPCAJCXJldHVybiByZXQ7CjwgCX0KPCAJcHJpdmF0ZSBpbnQgYmxhaChzZWxmLCBHOk9iamVj
dCAqIHdpZCAoY2hlY2sgbnVsbCB0eXBlKSwKPCAJCQkgaW50IGggKGNoZWNrID4gMCkpIG9uZXJy
b3IgLTEgewo8IAkJZ19vYmplY3Rfc2V0IChHX09CSkVDVCAoc2VsZiksCjwgCQkJICAgICAgVEVT
VF9PQkpFQ1RfUFJPUF9JICg5OSksCjwgCQkJICAgICAgTlVMTCk7CjwgCQlyZXR1cm4gaDsKPCAJ
fQo8IAkvKioKPCAJICogYmxlaDoKPCAJICogQHNlbGY6IGZvbwo8IAkgKiBAd2lkOiBmb28KPCAJ
ICogQGg6IGZvbwo8IAkgKgo8IAkgKiBidWRsaWt5IGJ1ZGxpa3kgMgo8IAkgKgo8IAkgKiBSZXR1
cm5zOiBuZXcgb2JqZWN0CjwgCSAqKi8KPCAJc2lnbmFsIGxhc3QgU1RSSU5HIChQT0lOVEVSLCBJ
TlQpCjwgCWNoYXIgKiBibGVoKHNlbGYsIEc6T2JqZWN0ICogd2lkIChjaGVjayBudWxsIHR5cGUp
LAo8IAkJICAgICAgICBpbnQgaCAoY2hlY2sgPiAwKSkgewo8IAkJcmV0dXJuIHNlbGZfYmxhaChz
ZWxmLHdpZCxoKSA+IDAgPyBnX3N0cmR1cCAoImZvbyIpIDogZ19zdHJkdXAgKCJiYXIiKTsKPCAJ
fQo8IAo8IAlwcml2YXRlCjwgCWNoYXIgKgo8IAl0ZXN0X2hhbmRsZXIgKHNlbGYsIEdPYmplY3Qg
KncsIGludCBoLCBncG9pbnRlciBkYXRhKQo8IAl7CjwgCQlkYXRhID0gdyA9IE5VTEw7CjwgCQlo
ID0gMDsKPCAJCQkKPCAJCXJldHVybiBOVUxMOwo8IAl9CjwgCjwgCS8qKgo8IAkgKiBndGtfd2Vp
cmRfYnV0dG9uX2JsZWgyOgo8IAkgKiBAc2VsZjogZm9vCjwgCSAqIEB3aWQ6IGZvbwo8IAkgKiBA
aDogZm9vCjwgCSAqCjwgCSAqIGJ1ZGxpa3kgYnVkbGlreSAzCjwgCSAqCjwgCSAqIFJldHVybnM6
IG5ldyBvYmplY3QgKi8KPCAJc2lnbmFsIGxhc3QgSU5UIChQT0lOVEVSLCBJTlQpCjwgCWludCBi
bGVoMihzZWxmLCBjb25zdCBHOk9iamVjdCAqIHdpZCAoY2hlY2sgbnVsbCB0eXBlKSwKPCAJCSAg
ICAgICAgaW50IGggKGNoZWNrID4gMCkpIHsKPCAKPCAJCXRlc3Rfb2JqZWN0X2Nvbm5lY3RfX2Js
ZWggKHNlbGYsIHNlbGZfdGVzdF9oYW5kbGVyLCBOVUxMKTsKPCAJCXNlbGZfY29ubmVjdF9fYmxl
aCAoc2VsZiwgc2VsZl90ZXN0X2hhbmRsZXIsIE5VTEwpOwo8IAkJdGVzdF9vYmplY3RfY29ubmVj
dF9hZnRlcl9fYmxlaCAoc2VsZiwgc2VsZl90ZXN0X2hhbmRsZXIsIE5VTEwpOwo8IAkJc2VsZl9j
b25uZWN0X2FmdGVyX19ibGVoIChzZWxmLCBzZWxmX3Rlc3RfaGFuZGxlciwgTlVMTCk7CjwgCQl0
ZXN0X29iamVjdF9jb25uZWN0X2RhdGFfX2JsZWggKHNlbGYsIHNlbGZfdGVzdF9oYW5kbGVyLCBO
VUxMLCBOVUxMLCAwKTsKPCAJCXNlbGZfY29ubmVjdF9kYXRhX19ibGVoIChzZWxmLCBzZWxmX3Rl
c3RfaGFuZGxlciwgTlVMTCwgTlVMTCwgMCk7CjwgCjwgCQl3aWQgPSBOVUxMOwo8IAkJaCA9IDA7
CjwgCjwgCQkvKiB0ZXN0aW5nIG11bHRpcGxlIG1hcnNoYWxsZXIgc3VwcG9ydCAqLwo8IAkJcmV0
dXJuIDA7CjwgCX0KPCAJLyogdGhpcyBzaG91bGQgbm90IGdldCBkb2N1bWVudGVkIGFzIGl0J3Mg
bm9uc3RhbmRhcmQgKi8KPCAJLyoqCjwgCSAqIGJsb2g6CjwgCjwgCSAqKioqKiovCjwgCjwgCS8q
IEhlcmUgd2UgYXJlIHRlc3RpbmcgaG93IHRoZSBndGstZG9jIGV4dHJhY3Rpb24gY29kZSBlcnJv
ciBoYW5kZWxpbmcKPCAJICAgaXQgc2hvdWxkIGp1c3QgaW5nb3JlIHRoZXNlICovCjwgCS8qKgo8
IAkgICovCjwgCjwgCS8qKiAqLwo8IAkvKioKPCAJICoKPCAJICogYnVidQo8IAkgKioqKioqKioq
Lwo8IAkvKioKPCAJICoKPCAJICogYnVidQo8IAkgKip6Ymx1bmsqKioqKioqLwo8IAkvKioKPCAJ
ICoKPCAJICogYnVidQo8IAkgKnpibHVuayoqKioqKiovLyoqLy8qKi8KPCAJc2lnbmFsIGZpcnN0
IE5PTkUgKE5PTkUpCjwgCXZvaWQgYmxvaChzZWxmKTsKPCAJdmlydHVhbCB2b2lkICogYmFoKHNl
bGYsIGludCBoIChjaGVjayA+IDApKSBvbmVycm9yIE5VTEwgZGVmcmV0dXJuIDAgewo8IAkJc2Vs
Zl9iZWgoc2VsZixoKTsKPCAJCXJldHVybiBOVUxMOwo8IAl9CjwgCXZpcnR1YWwgaW50IGJlaChz
ZWxmLCBpbnQgaCAoY2hlY2sgPiAwKSk7CjwgCW92ZXJyaWRlKEd0azpDb250YWluZXIpCjwgCXZv
aWQgYWRkKEd0azpDb250YWluZXIgKiBzZWxmIChjaGVjayBudWxsIHR5cGUpLAo8ICAgICAgICAg
ICAgICAgICAgR3RrOldpZGdldCAqIHdpZCAoY2hlY2sgbnVsbCB0eXBlKSkgewo8IAkJUEFSRU5U
X0hBTkRMRVIoc2VsZix3aWQpOwo8IAl9CjwgCjwgCW92ZXJyaWRlKEc6T2JqZWN0KQo8IAl2b2lk
IGRpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCAoRzpPYmplY3QgICAgICAqb2JqZWN0LAo8IAkJ
CQkJICBndWludAkgICBuX3BzcGVjcywKPCAJCQkJCSAgR1BhcmFtU3BlYyAgKipwc3BlY3MpCjwg
CXsKPCAJCW9iamVjdCA9IE5VTEw7CjwgCQluX3BzcGVjcyA9IDA7CjwgCQlwc3BlY3MgPSBOVUxM
Owo8IAkJLyogRUtJISAqLwo8IAl9CjwgCjwgCXB1YmxpYyBpbnQgY29uc3R0ZXN0KHNlbGYsIGNv
bnN0IGdjaGFyICp0ZXh0LCAuLi4pCjwgCXsKPCAJCXRleHQgPSBOVUxMOwo8IAkJcmV0dXJuIDI1
Owo8IAl9CjwgCXB1YmxpYyBpbnQgY29uc3R0ZXN0MihzZWxmLCBnY2hhciBjb25zdCAqdGV4dCwg
Li4uKQo8IAl7CjwgCQl0ZXh0ID0gTlVMTDsKPCAJCXJldHVybiAyNTsKPCAJfQo8IAlwdWJsaWMg
aW50IGNvbnN0dGVzdDMoc2VsZiwgRzpPYmplY3QgY29uc3QgKndpZCAoY2hlY2sgbnVsbCB0eXBl
KSkKPCAJewo8IAkJd2lkID0gTlVMTDsKPCAJCXJldHVybiAyNTsKPCAJfQo8IAlwdWJsaWMgaW50
IGNvbnN0dGVzdDQoY29uc3Qgc2VsZikKPCAJewo8IAkJcmV0dXJuIDI1Owo8IAl9CjwgCXB1Ymxp
YyBpbnQgY29uc3R0ZXN0NShzZWxmIGNvbnN0KQo8IAl7CjwgCQlyZXR1cm4gMjU7CjwgCX0KPCAJ
dmlydHVhbCBpbnQgY29uc3R0ZXN0Nihjb25zdCBzZWxmKQo8IAl7CjwgCQlyZXR1cm4gMjU7Cjwg
CX0KPCAJdmlydHVhbCBpbnQgY29uc3R0ZXN0NyhzZWxmIGNvbnN0KQo8IAl7CjwgCQlyZXR1cm4g
MjU7CjwgCX0KPCAJcHVibGljIGludCBjb25zdHRlc3Q4KHNlbGYpCjwgCXsKPCAJCVNlbGYgY29u
c3QgKnNlbGZjb25zdDEsICpzZWxmY29uc3QyOwo8IAkJc2VsZmNvbnN0MSA9IFNFTEZfQ09OU1Qo
c2VsZik7CjwgCQlzZWxmY29uc3QyID0gVEVTVF9PQkpFQ1RfQ09OU1Qoc2VsZik7CjwgCQlyZXR1
cm4gMjU7CjwgCX0KPCAJcHVibGljIGludCBjb25zdHRlc3Q5KGNvbnN0IHNlbGYsIGludCBpLCBk
b3VibGUgYikKPCAJewo8IAkJYiA9IDAuMDsKPCAJCWkgPSAwOwo8IAkJcmV0dXJuIDI1Owo8IAl9
CjwgCXB1YmxpYyBpbnQgY29uc3R0ZXN0MTAoc2VsZiBjb25zdCwgaW50IGksIGRvdWJsZSBiKQo8
IAl7CjwgCQliID0gMC4wOwo8IAkJaSA9IDA7CjwgCQlyZXR1cm4gMjU7CjwgCX0KPCAJc2lnbmFs
IHByaXZhdGUgZmlyc3QgTk9ORSAoTk9ORSkKPCAJdm9pZCBnb29nbGVnb29nbGUoc2VsZikKPCAJ
ewo8IAkJcHV0cygiVEVTVDEiKTsKPCAJCXNlbGZfZ29vZ2xlZ29vZ2xlMihzZWxmKTsKPCAJfQo8
IAlzaWduYWwgZmlyc3QgcHJpdmF0ZSBOT05FIChOT05FKQo8IAl2b2lkIGdvb2dsZWdvb2dsZTIo
c2VsZikKPCAJewo8IAkJaW50IGFycmF5WzVdWzhdWzldPXt7ezB9fX07CjwgCQlTZWxmICpmb28g
PSBzZWxmOwo8IAkJcHV0cygiVEVTVDIiKTsKPCAJCXNlbGZfdGVzdHByaXZ2aXJ0dWFsKGZvbywg
YXJyYXkpOwo8IAl9CjwgCXByaXZhdGUgc2lnbmFsIGZpcnN0IE5PTkUgKE5PTkUpCjwgCXZvaWQg
Z29vZ2xlZ29vZ2xlMyhzZWxmKQo8IAl7CjwgCQlwdXRzKCJURVNUMyIpOwo8IAl9CjwgCXByb3Rl
Y3RlZCBzaWduYWwgZmlyc3QgTk9ORSAoTk9ORSkKPCAJdm9pZCBnb29nbGVnb29nbGU0KHNlbGYp
CjwgCXsKPCAJCXB1dHMoIlRFU1Q0Iik7CjwgCX0KPCAJcHJvdGVjdGVkIHNpZ25hbCBmaXJzdCBO
T05FIChOT05FKQo8IAl2b2lkIGdvb2dsZWdvb2dsZV9jb25zdDEoY29uc3Qgc2VsZikKPCAJewo8
IAkJcHV0cygiVEVTVDQiKTsKPCAJfQo8IAlwcm90ZWN0ZWQgc2lnbmFsIGZpcnN0IE5PTkUgKE5P
TkUpCjwgCXZvaWQgZ29vZ2xlZ29vZ2xlX2NvbnN0MihzZWxmIGNvbnN0KQo8IAl7CjwgCQlwdXRz
KCJURVNUNCIpOwo8IAl9CjwgCXZpcnR1YWwgcHJpdmF0ZQo8IAl2b2lkIHRlc3Rwcml2dmlydHVh
bChzZWxmLCBpbnQgc29tZV9hcnJheVs1XVs4XVs5XSkKPCAJewo8IAkJcHV0cygiVEVTVDMiKTsK
PCAJCXNlbGZfZ29vZ2xlZ29vZ2xlKHNlbGYpOwo8IAkJaWYgKHNvbWVfYXJyYXlbMF0pIHJldHVy
bjsKPCAJfQo8IAlwcml2YXRlIHZpcnR1YWwKPCAJdm9pZCB0ZXN0cHJpdnZpcnR1YWwyKHNlbGYs
IGNvbnN0IGludCBzb21lX2FycmF5WzVdWzhdWzldKQo8IAl7CjwgCQkvKiBub3RoaW5nIGhlcmUg
Ki8KPCAJCWlmIChzb21lX2FycmF5WzBdKSByZXR1cm47CjwgCX0KPCAJcHVibGljIHZpcnR1YWwK
PCAJdm9pZCB0ZXN0cHVibGljdmlydHVhbChzZWxmLCBpbnQgY29uc3Qgc29tZV9hcnJheVs1XVs4
XVs5XSkKPCAJewo8IAkJLyogbm90aGluZyBoZXJlICovCjwgCQlpZiAoc29tZV9hcnJheVswXSkg
cmV0dXJuOwo8IAl9CjwgCXByb3RlY3RlZCB2aXJ0dWFsCjwgCXZvaWQgdGVzdHByb3RlY3RlZHZp
cnR1YWwoc2VsZiwgaW50IHNvbWVfYXJyYXlbNV1bOF1bOV0pCjwgCXsKPCAJCS8qIG5vdGhpbmcg
aGVyZSAqLwo8IAkJaWYgKHNvbWVfYXJyYXlbMF0pIHJldHVybjsKPCAJfQo8IAlzaWduYWwgZmly
c3QgTk9ORSAoUE9JTlRFUiwgRU5VTSkKPCAJdm9pZCB0ZXN0YXJyc2lnbmFsKHNlbGYsIGxvbmcg
YXJyWzhdLCBCdWJsZTpFbnVtIGZvbykKPCAJewo8IAkJLyogZm9vICovCjwgCQlhcnJbMF0gPSAx
Owo8IAkJZm9vID0gQlVCTEVfS0VJTjsKPCAJfQo8IAo8IAkvKiB0ZXN0aW5nIGVtcHR5IGZ1bmMg
Ki8KPCAJcHVibGljIHZvaWQgZm9vZm9vZm9vKHNlbGYpIHt9CjwgCS8qIHRlc3RpbmcgZW1wdHkg
ZnVuYyAyICovCjwgCXB1YmxpYyB2b2lkIGZvb2Zvb2ZvbzIoc2VsZik7CjwgCS8qIHRlc3Rpbmcg
ZW1wdHkgZnVuYyAzICovCjwgCXB1YmxpYyB2b2lkIGZvb2Zvb2ZvbzMoc2VsZikgeyAgIH0KPCAJ
LyogdGVzdGluZyBlbXB0eSBmdW5jIDQgKi8KPCAJcHVibGljIHZvaWQgZm9vZm9vZm9vNChzZWxm
KQo8IAl7CjwgCX0KPCAKPCAvLwlvdmVycmlkZSAoR3RrOldpZGdldCkKPCAvLwlpbnQgZXZlbnQo
R3RrOldpZGdldCAqc2VsZiAoY2hlY2sgbnVsbCB0eXBlKSwKPCAvLwkJICBHZGtFdmVudCAqZXZl
bnQgKGNoZWNrIG51bGwpKSBvbmVycm9yIEZBTFNFCjwgLy8Jewo8IC8vCQlpbnQgcmV0Owo8IC8v
CQkvKiBzb21lIGNvZGUgKi8KPCAvLwkJcmV0ID0gUEFSRU5UX0hBTkRMRVIoc2VsZixldmVudCk7
CjwgLy8JCS8qIHNvbWUgY29kZSAqLwo8IC8vCQlyZXR1cm4gcmV0Owo8IC8vCX0KPCAvLwlvdmVy
cmlkZShHdGs6Q29udGFpbmVyKQo8IC8vCXZvaWQKPCAvLwlyZW1vdmUoR3RrOkNvbnRhaW5lciAq
IHNlbGYgKGNoZWNrIG51bGwgdHlwZSksCjwgLy8JICAgICAgIEd0azpXaWRnZXQgKiB3aWQgKGNo
ZWNrIG51bGwgdHlwZSkpOwo8IC8vCjwgLy8Jb3ZlcnJpZGUoR3RrOk9iamVjdCkKPCAvLwl2b2lk
CjwgLy8JZGVzdHJveShHdGs6T2JqZWN0ICogc2VsZiAoY2hlY2sgbnVsbCB0eXBlKSkKPCAvLwl7
CjwgLy8JCS8qIGZvbyBiYXIgKi8KPCAvLwkJUEFSRU5UX0hBTkRMRVIoc2VsZik7CjwgLy8JfQo8
IAo8IAlwcm90ZWN0ZWQKPCAJaW50IGZvb2JhcihzZWxmKSB7CjwgCQkvKiBqdXN0IGFuIGVtcHR5
IGZ1bmN0aW9uICovCjwgCQlyZXR1cm4gNTsKPCAJfQo8IAo8IAlzaWduYWwgbGFzdCBOT05FKENI
QVIsVUNIQVIsQk9PTEVBTixJTlQsVUlOVCxMT05HLFVMT05HLEZMT0FULERPVUJMRSwKPCAJCQkg
U1RSSU5HLEVOVU0sUE9JTlRFUixPQkpFQ1QpCjwgCXZvaWQKPCAJdGVzdGFyZ3Moc2VsZiwgZ2No
YXIgYSwgZ3VjaGFyIGIsIGdib29sZWFuIGMsIGdpbnQgZCwgZ3VpbnQgZSwgZ2xvbmcgZiwKPCAJ
CSBndWxvbmcgZywgZ2Zsb2F0IGgsIGdkb3VibGUgaSwgZ2NoYXIgKiBqLCBnaW50IGssCjwgCQkg
Z3BvaW50ZXIgbywgR09iamVjdCAqcCkKPCAJewo8IAkJaCA9IGkgPSBrID0gMDsKPCAJCWEgPSBi
ID0gYyA9IGQgPSBlID0gZiA9IGcgPSAwOwo8IAkJbyA9IHAgPSAoR09iamVjdCAqKU5VTEw7Cjwg
CQlqID0gKGNoYXIgKilOVUxMOwo8IAkJLyogdWdoLCB0ZXN0aW5nIGNhc3RpbmcgKi8KPCAJfQo8
IAo8IAlwdWJsaWMgc2lnbmFsIChOT19IT09LUykgbGFzdCBJTlQgKElOVCkKPCAJaW50IHRlc3Rm
bGFncyhzZWxmLCBpbnQgdyAoY2hlY2sgPiAwKSkgZGVmcmV0dXJuIC05OSB7CjwgCQkvKmZvbyov
CjwgCQlyZXR1cm4gdzsKPCAJfQo8IAo8IAkvKiB0ZXN0aW5nIE5PTkUgKi8KPCAJc2lnbmFsIEJP
T0xFQU4gKE5PTkUpCjwgCWdib29sZWFuCjwgCXRlc3Rfbm9uZV90aGluZyAoc2VsZikKPCAJewo8
IAkJcmV0dXJuIEZBTFNFOwo8IAl9CjwgCjwgCS8qIHNvbWUgbW9yZSBlbnVtIHRlc3RpbmcgKi8K
PCAJcHVibGljIEJ1YmxlRW51bSBidWJsZTsKPCAgICAgICAgIHByb3BlcnR5IEVOVU0gYnVibGUK
PCAgICAgICAgICAgICAgICAgKG5pY2sgPSAiQnVibGUiLAo8ICAgICAgICAgICAgICAgICAgYmx1
cmIgPSAiQnVibGUiLAo8ICAgICAgICAgICAgICAgICAgZW51bV90eXBlID0gQnVibGU6RW51bSwK
PCAgICAgICAgICAgICAgICAgIGRlZmF1bHRfdmFsdWUgPSBCVUJMRV9TVEFOREFSRCwKPCAgICAg
ICAgICAgICAgICAgIGxpbmssIGV4cG9ydCk7CjwgCjwgCS8qIHRlc3RpbmcgdHlwZXMgKi8KPCAJ
cHVibGljIGludCB0MTsKPCAJcHVibGljIGxvbmcgaW50IHQyOwo8IAlwdWJsaWMgaW50IGxvbmcg
dDM7CjwgCXB1YmxpYyBpbnQgbG9uZyBjb25zdCB0NDsKPCAJcHVibGljIGNvbnN0IGludCBsb25n
IHQ1Owo8IAlwdWJsaWMgY29uc3QgY2hhciAqIGNvbnN0IHQ2Owo8IAlwdWJsaWMgY2hhciBjb25z
dCAqIGNvbnN0IHQ3Owo8IAlwdWJsaWMgZW51bSBfZ29iX19lbnVtX3QgY29uc3QgKiBjb25zdCB0
ODsKPCAJcHVibGljIHVuaW9uIF9nb2JfX3VuaW9uX3QgdDk7CjwgCXB1YmxpYyB1bmlvbiBfZ29i
X191bmlvbl90ICogY29uc3QgKiBjb25zdCAqIHQxMDsKPCAJcHVibGljIHN0cnVjdCBfZ29iX19z
dHJ1Y3RfdCAqIGNvbnN0ICogY29uc3QgKiB0MTE7CjwgCXB1YmxpYyBjb25zdCBzdHJ1Y3QgX2dv
Yl9fc3RydWN0X3QgKiBjb25zdCAqIGNvbnN0ICogdDEzOwo8IAlwdWJsaWMgY29uc3QgZW51bSBf
Z29iX19lbnVtX3QgKiBjb25zdCAqIGNvbnN0ICogdDE0Owo8IAlwdWJsaWMgZW51bSBfZ29iX19l
bnVtX3QgdDE1Owo8IAlwdWJsaWMgZ2NoYXIgY29uc3QgdDE2Owo8IAlwdWJsaWMgY29uc3QgZ2No
YXIgKiBjb25zdCB0MTc7CjwgCXB1YmxpYyBjb25zdCBnY2hhciB0MTg7CjwgCjwgCS8qIHRlc3Rp
bmcgbWV0aG9kIHdpdGggbm8gYXJndW1lbnRzICovCjwgCXB1YmxpYyB2b2lkIG1ldGhvZF93aXRo
X25vX2FyZ3VtZW50cyAodm9pZCkKPCAJewo8IAkJLyogRk9PICovCjwgCX0KPCAKPCAJLyogdGVz
dGluZyBjYWxsaW5nIHRoZSBhYm92ZSBtZXRob2QgKi8KPCAJcHVibGljIHZvaWQgZm9vIChzZWxm
KSB7CjwgCQlzZWxmX21ldGhvZF93aXRoX25vX2FyZ3VtZW50cyAoKTsKPCAJfQo8IAo8IAkvKiB0
aGlzIGlzIHRvIHRlc3QgY3VzdG9tIGdldF90eXBlICovCjwgCS8qcHVibGljIEd0a1R5cGUKPCAJ
Z2V0X3R5cGUgKHZvaWQpCjwgCXsKPCAJCXN0YXRpYyBndWludCB0eXBlID0gMDsKPCAKPCAJCWlm
ICggISB0eXBlKSB7CjwgCQkJc3RhdGljIGNvbnN0IEd0a1R5cGVJbmZvIGluZm8gPSB7CjwgCQkJ
CSJHdGtXZWlyZEJ1dHRvbiIsCjwgCQkJCXNpemVvZiAoR3RrV2VpcmRCdXR0b24pLAo8IAkJCQlz
aXplb2YgKEd0a1dlaXJkQnV0dG9uQ2xhc3MpLAo8IAkJCQkoR3RrQ2xhc3NJbml0RnVuYykgZ3Rr
X3dlaXJkX2J1dHRvbl9jbGFzc19pbml0LAo8IAkJCQkoR3RrT2JqZWN0SW5pdEZ1bmMpIGd0a193
ZWlyZF9idXR0b25faW5pdCwKPCAJCQkJTlVMTCwKPCAJCQkJTlVMTCwKPCAJCQkJKEd0a0NsYXNz
SW5pdEZ1bmMpIE5VTEwKPCAJCQl9Owo8IAo8IAkJCXR5cGUgPSBndGtfdHlwZV91bmlxdWUgKGd0
a19idXR0b25fZ2V0X3R5cGUoKSwgJmluZm8pOwo8IAkJfQo8IAo8IAkJcmV0dXJuIHR5cGU7Cjwg
CX0qLwo8IAo8IAo8IAkvKiB0ZXN0aW5nIGVtcHR5IHN0YXRlbWVudHMgKi8KPCAJOwo8IAk7Cjwg
CTsKPCB9CjwgCjwgJXsKPCAKPCBzdGF0aWMgdm9pZAo8IGpqamoodm9pZCkKLS0tCj4gaW50ZXJm
YWNlIENvbXBMZWFybjpSZWFsOkNvbXByZXNzb3IgZnJvbSBHOlR5cGU6SW50ZXJmYWNlCjYzMGE5
LDM5Cj4gICBwdWJsaWMgRzpPYmplY3QgKgo+ICAgbmV3KHZvaWQpIHsKPiAgICAgR09iamVjdCAq
cmV0ID0gKEdPYmplY3QgKikgR0VUX05FVzsKPiAgICAgcmV0dXJuIEdfT0JKRUNUIChyZXQpOwo+
ICAgfQo+ICAgcHVibGljIEdTdHJpbmcgKgo+ICAgY29tcHJlc3MoQ29tcExlYXJuUmVhbENvbXBy
ZXNzb3IgKnJjLGNvbnN0IEdTdHJpbmcgKmlucHV0KTsKPiAgIHB1YmxpYyBHU3RyaW5nICoKPiAg
IGRlY29tcHJlc3MoQ29tcExlYXJuUmVhbENvbXByZXNzb3IgKnJjLGNvbnN0IEdTdHJpbmcgKmlu
cHV0KTsKPiAgIHB1YmxpYyBHU3RyaW5nICoKPiAgIGNhbm9uaWNhbF9leHRlbnNpb24oQ29tcExl
YXJuUmVhbENvbXByZXNzb3IgKnJjKTsKPiBwdWJsaWMgR1N0cmluZyAqCj4gICBibHVyYihDb21w
TGVhcm5SZWFsQ29tcHJlc3NvciAqcmMpOwo+IHB1YmxpYyBHU3RyaW5nICoKPiAgIG5hbWUoQ29t
cExlYXJuUmVhbENvbXByZXNzb3IgKnJjKTsKPiBwdWJsaWMgR1N0cmluZyAqCj4gICBjb21wcmVz
c29yX3ZlcnNpb24oQ29tcExlYXJuUmVhbENvbXByZXNzb3IgKnJjKTsKPiBwdWJsaWMgR1N0cmlu
ZyAqCj4gICBiaW5kaW5nX3ZlcnNpb24oQ29tcExlYXJuUmVhbENvbXByZXNzb3IgKnJjKTsKPiBw
dWJsaWMgZ2RvdWJsZQo+ICAgY29tcHJlc3NlZF9zaXplKENvbXBMZWFyblJlYWxDb21wcmVzc29y
ICpyYywgY29uc3QgR1N0cmluZyAqaW5wdXQpOwo+IHB1YmxpYyBnYm9vbGVhbgo+ICAgaXNfanVz
dF9zaXplKENvbXBMZWFyblJlYWxDb21wcmVzc29yICpyYyk7Cj4gcHVibGljIGdib29sZWFuCj4g
ICBpc19vcGVyYXRpb25hbChDb21wTGVhcm5SZWFsQ29tcHJlc3NvciAqc2VsZik7Cj4gcHVibGlj
IGdib29sZWFuCj4gICBpc19kZWNvbXByZXNzaWJsZShDb21wTGVhcm5SZWFsQ29tcHJlc3NvciAq
cmMsIGNvbnN0IEdTdHJpbmcgKmlucHV0KTsKPiBwdWJsaWMgZ2Jvb2xlYW4KPiAgIGlzX3ByaXZh
dGVfcHJvcGVydHkoQ29tcExlYXJuUmVhbENvbXByZXNzb3IgKnJjLCBjb25zdCBjaGFyICppbnB1
dCk7Cj4gcHVibGljIGd1aW50NjQKPiAgIHdpbmRvd19zaXplKENvbXBMZWFyblJlYWxDb21wcmVz
c29yICpyYyk7CjYzMiw2MzlkNDAKPCAKPCB2b2lkCjwgYnVidSh2b2lkKQo8IHsKPCAJampqaigp
Owo8IH0KPCAKPCAlfQpkaWZmIC1yIGdvYjItMi4wLjE0L3NyYy90cmVlZnVuY3MuYyBnb2JuZXcv
c3JjL3RyZWVmdW5jcy5jCjEwOGExMDkKPiAJUVVBUktfaXNpbnRlcmZhY2UsCjIxNmEyMTgKPiAJ
Z19oYXNoX3RhYmxlX2luc2VydCAocXVhcmtfaHQsICJpc2ludGVyZmFjZSIsIEdJTlRfVE9fUE9J
TlRFUiAoUVVBUktfaXNpbnRlcmZhY2UpKTsKMzY1YTM2OAo+IAluZXctPmlzaW50ZXJmYWNlID0g
c2VsZi0+aXNpbnRlcmZhY2U7Cjk1N2E5NjEsOTY1Cj4gCQljYXNlIFFVQVJLX2lzaW50ZXJmYWNl
OiB7Cj4gCQkJZ2Jvb2xlYW4gaXNpbnRlcmZhY2UgPSB2YV9hcmcgKF9fYXAsIGdib29sZWFuKTsK
PiAJCQlzZWxmLT5pc2ludGVyZmFjZSA9IGlzaW50ZXJmYWNlOwo+IAkJCWJyZWFrOwo+IAkJfQpk
aWZmIC1yIGdvYjItMi4wLjE0L3NyYy90cmVlZnVuY3MuZGVmIGdvYm5ldy9zcmMvdHJlZWZ1bmNz
LmRlZgo1OWM1OSw2MAo8ICAgQk9PTAkJYWJzdHJhY3QgIyBpZiBHX1RZUEVfRkxBR19BQlNUUkFD
VCBzaG91bGQgYmUgdXNlZAotLS0KPiAgIEJPT0wJCWFic3RyYWN0ICAgICMgaWYgR19UWVBFX0ZM
QUdfQUJTVFJBQ1Qgc2hvdWxkIGJlIHVzZWQKPiAgIEJPT0wJCWlzaW50ZXJmYWNlICMgaWYgaXQg
aXMgYW4gaW50ZXJmYWNlIGluc3RlYWQgb2YgYSBjbGFzcwpkaWZmIC1yIGdvYjItMi4wLjE0L3Ny
Yy90cmVlZnVuY3MuaCBnb2JuZXcvc3JjL3RyZWVmdW5jcy5oCjEyMWExMjIKPiAJZ2Jvb2xlYW4g
aXNpbnRlcmZhY2U7Ck9ubHkgaW4gZ29ibmV3OiBzdGFtcC1oCg==
------=_Part_14328_19591152.1178132480123
Content-Type: text/x-patch; name=second-interface-u.patch; 
	charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
X-Attachment-Id: f_f185nbz6
Content-Disposition: attachment; filename="second-interface-u.patch"

T25seSBpbiBnb2JuZXc6IGNvbmZpZy5oCk9ubHkgaW4gZ29ibmV3OiBjb25maWcubG9nCk9ubHkg
aW4gZ29ibmV3OiBjb25maWcuc3RhdHVzCkNvbW1vbiBzdWJkaXJlY3RvcmllczogZ29iMi0yLjAu
MTQvZGViaWFuIGFuZCBnb2JuZXcvZGViaWFuCkNvbW1vbiBzdWJkaXJlY3RvcmllczogZ29iMi0y
LjAuMTQvZG9jIGFuZCBnb2JuZXcvZG9jCkNvbW1vbiBzdWJkaXJlY3RvcmllczogZ29iMi0yLjAu
MTQvZXhhbXBsZXMgYW5kIGdvYm5ldy9leGFtcGxlcwpPbmx5IGluIGdvYm5ldzogTWFrZWZpbGUK
T25seSBpbiBnb2JuZXc6IG8KQ29tbW9uIHN1YmRpcmVjdG9yaWVzOiBnb2IyLTIuMC4xNC9zcmMg
YW5kIGdvYm5ldy9zcmMKT25seSBpbiBnb2JuZXc6IHN0YW1wLWgK
------=_Part_14328_19591152.1178132480123
Content-Type: text/plain; charset=us-ascii; name="footer"
Content-Transfer-Encoding: 8bit

--
to unsubscribe:
send mail to [email protected] with "unsubscribe gob-list" in the subject

------=_Part_14328_19591152.1178132480123--