com php/gtk-src: Whitespace and move TSRM into struct instead of using evil fetch: main/phpg_closure.c

[email protected] (Elizabeth Marie Smith) Tue, 17 Jul 2012 15:06:42 +0000
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
--8d30be47af932dfe47ed5adf273f84109dabcfa4
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Commit:    e349ad95ec005767327b5936346574571d358d29=0AAuthor:    Elizabeth =
M Smith <[email protected]>         Tue, 17 Jul 2012 11:06:42 -0400=
=0AParents:   d06019f07812c5e53982e6e6c960745ee605287e=0ABranches:  master=
=0A=0ALink:       http://git.php.net/?p=3Dphp/gtk-src.git;a=3Dcommitdiff;h=
=3De349ad95ec005767327b5936346574571d358d29=0A=0ALog:=0AWhitespace and move=
 TSRM into struct instead of using evil=0Afetch=0A=0AChanged paths:=0A  M  =
main/phpg_closure.c=0A=0A
--8d30be47af932dfe47ed5adf273f84109dabcfa4
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="diff_e349ad95ec005767327b5936346574571d358d29.txt"

ZGlmZiAtLWdpdCBhL21haW4vcGhwZ19jbG9zdXJlLmMgYi9tYWluL3BocGdfY2xvc3VyZS5jCmlu
ZGV4IDg5ZDBiODkuLmYxNmFkOGMgMTAwNjQ0Ci0tLSBhL21haW4vcGhwZ19jbG9zdXJlLmMKKysr
IGIvbWFpbi9waHBnX2Nsb3N1cmUuYwpAQCAtMzAsMzEgKzMwLDM3IEBAIHN0cnVjdCBfcGhwZ19j
bG9zdXJlX3QgewogCUdDbG9zdXJlIGNsb3N1cmU7CiAJenZhbCAqY2FsbGJhY2s7CiAJenZhbCAq
dXNlcl9hcmdzOwotICAgIHp2YWwgKnJlcGxhY2Vfb2JqZWN0OworCXp2YWwgKnJlcGxhY2Vfb2Jq
ZWN0OwogCWludCBjb25uZWN0X3R5cGU7CiAJY2hhciAqc3JjX2ZpbGVuYW1lOwogCXVpbnQgc3Jj
X2xpbmVubzsKKyNpZmRlZiBaVFMKKwlUU1JNTFNfRDsKKyNlbmRpZgogfTsKIAogc3RhdGljIHZv
aWQgcGhwZ19jbG9zdXJlX2ludmFsaWRhdGUoZ3BvaW50ZXIgZGF0YSwgR0Nsb3N1cmUgKmNsb3N1
cmUpCiB7Ci0gICAgcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3VyZSA9IChwaHBnX2Nsb3N1cmVf
dCAqKWNsb3N1cmU7Ci0KLSAgICB6dmFsX3B0cl9kdG9yKCZwaHBnX2Nsb3N1cmUtPmNhbGxiYWNr
KTsKLSAgICBpZiAocGhwZ19jbG9zdXJlLT51c2VyX2FyZ3MpIHsKLSAgICAgICAgenZhbF9wdHJf
ZHRvcigmcGhwZ19jbG9zdXJlLT51c2VyX2FyZ3MpOwotICAgIH0KLSAgICBpZiAocGhwZ19jbG9z
dXJlLT5yZXBsYWNlX29iamVjdCkgewotICAgICAgICB6dmFsX3B0cl9kdG9yKCZwaHBnX2Nsb3N1
cmUtPnJlcGxhY2Vfb2JqZWN0KTsKLSAgICB9Ci0gICAgZWZyZWUocGhwZ19jbG9zdXJlLT5zcmNf
ZmlsZW5hbWUpOwotCi0gICAgcGhwZ19jbG9zdXJlLT5jYWxsYmFjayA9IE5VTEw7Ci0gICAgcGhw
Z19jbG9zdXJlLT51c2VyX2FyZ3MgPSBOVUxMOwotICAgIHBocGdfY2xvc3VyZS0+cmVwbGFjZV9v
YmplY3QgPSBOVUxMOwotICAgIHBocGdfY2xvc3VyZS0+Y29ubmVjdF90eXBlID0gUEhQR19DT05O
RUNUX05PUk1BTDsKLSAgICBwaHBnX2Nsb3N1cmUtPnNyY19maWxlbmFtZSA9IE5VTEw7Ci0gICAg
cGhwZ19jbG9zdXJlLT5zcmNfbGluZW5vID0gMDsKKwlwaHBnX2Nsb3N1cmVfdCAqcGhwZ19jbG9z
dXJlID0gKHBocGdfY2xvc3VyZV90ICopY2xvc3VyZTsKKworCXp2YWxfcHRyX2R0b3IoJnBocGdf
Y2xvc3VyZS0+Y2FsbGJhY2spOworCWlmIChwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncykgeworCQl6
dmFsX3B0cl9kdG9yKCZwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncyk7CisJfQorCWlmIChwaHBnX2Ns
b3N1cmUtPnJlcGxhY2Vfb2JqZWN0KSB7CisJCXp2YWxfcHRyX2R0b3IoJnBocGdfY2xvc3VyZS0+
cmVwbGFjZV9vYmplY3QpOworCX0KKwllZnJlZShwaHBnX2Nsb3N1cmUtPnNyY19maWxlbmFtZSk7
CisKKwlwaHBnX2Nsb3N1cmUtPmNhbGxiYWNrID0gTlVMTDsKKwlwaHBnX2Nsb3N1cmUtPnVzZXJf
YXJncyA9IE5VTEw7CisJcGhwZ19jbG9zdXJlLT5yZXBsYWNlX29iamVjdCA9IE5VTEw7CisJcGhw
Z19jbG9zdXJlLT5jb25uZWN0X3R5cGUgPSBQSFBHX0NPTk5FQ1RfTk9STUFMOworCXBocGdfY2xv
c3VyZS0+c3JjX2ZpbGVuYW1lID0gTlVMTDsKKwlwaHBnX2Nsb3N1cmUtPnNyY19saW5lbm8gPSAw
OworI2lmZGVmIFpUUworCXBocGdfY2xvc3VyZS0+VFNSTUxTX0MgPSBOVUxMOworI2VuZGlmCiB9
CiAKIHN0YXRpYyB2b2lkIHBocGdfY2xvc3VyZV9tYXJzaGFsKEdDbG9zdXJlICpjbG9zdXJlLApA
QCAtNjQsMTM4ICs3MCwxNDMgQEAgc3RhdGljIHZvaWQgcGhwZ19jbG9zdXJlX21hcnNoYWwoR0Ns
b3N1cmUgKmNsb3N1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRl
ciBpbnZvY2F0aW9uX2hpbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9p
bnRlciBtYXJzaGFsX2RhdGEpCiB7Ci0gICAgcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3VyZSA9
IChwaHBnX2Nsb3N1cmVfdCAqKWNsb3N1cmU7CisJcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3Vy
ZSA9IChwaHBnX2Nsb3N1cmVfdCAqKWNsb3N1cmU7CiAJY2hhciAqY2FsbGJhY2tfbmFtZTsKLSAg
ICB6dmFsICoqKnBhcmFtcyA9IE5VTEw7Ci0gICAgenZhbCAqcmV0dmFsID0gTlVMTDsKLSAgICB1
aW50IG5fcGFyYW1zID0gMCwgaTsKLQlUU1JNTFNfRkVUQ0goKTsKKwl6dmFsICoqKnBhcmFtcyA9
IE5VTEw7CisJenZhbCAqcmV0dmFsID0gTlVMTDsKKwl1aW50IG5fcGFyYW1zID0gMCwgaTsKKyNp
ZmRlZiBaVFMKKwlUU1JNTFNfRCA9IHBocGdfY2xvc3VyZS0+VFNSTUxTX0M7CisjZW5kaWYKIAog
CWlmICghemVuZF9pc19jYWxsYWJsZShwaHBnX2Nsb3N1cmUtPmNhbGxiYWNrLCAwLCAmY2FsbGJh
Y2tfbmFtZSBQSFBHVEtfWkVORF9JU19DQUxMQUJMRSkpIHsKIAkJaWYgKHBocGdfY2xvc3VyZS0+
c3JjX2ZpbGVuYW1lKQotICAgICAgICAgICAgcGhwX2Vycm9yKEVfV0FSTklORywKLSAgICAgICAg
ICAgICAgICAgICAgICAiVW5hYmxlIHRvIGludm9rZSBzaWduYWwgY2FsbGJhY2sgJyVzJyBzcGVj
aWZpZWQgaW4gJXMgb24gbGluZSAlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tf
bmFtZSwgcGhwZ19jbG9zdXJlLT5zcmNfZmlsZW5hbWUsIHBocGdfY2xvc3VyZS0+c3JjX2xpbmVu
byk7CisJCQlwaHBfZXJyb3IoRV9XQVJOSU5HLAorCQkJCQkgICJVbmFibGUgdG8gaW52b2tlIHNp
Z25hbCBjYWxsYmFjayAnJXMnIHNwZWNpZmllZCBpbiAlcyBvbiBsaW5lICVkIiwKKwkJCQkJICBj
YWxsYmFja19uYW1lLCBwaHBnX2Nsb3N1cmUtPnNyY19maWxlbmFtZSwgcGhwZ19jbG9zdXJlLT5z
cmNfbGluZW5vKTsKIAkJZWxzZQogCQkJcGhwX2Vycm9yKEVfV0FSTklORywgIlVuYWJsZSB0byBp
bnZva2Ugc2lnbmFsIGNhbGxiYWNrICclcyciLCBjYWxsYmFja19uYW1lKTsKIAkJZWZyZWUoY2Fs
bGJhY2tfbmFtZSk7CiAJCXJldHVybjsKIAl9CiAKLSAgICBpZiAocGhwZ19jbG9zdXJlLT5jb25u
ZWN0X3R5cGUgPT0gUEhQR19DT05ORUNUX1NJTVBMRSkgewotICAgICAgICAvKiB3ZSBkb24ndCB1
c2UgYW55IHNpZ25hbCBwYXJhbXMgZm9yIHNpbXBsZSBjb25uZWN0aW9ucyAqLwotICAgICAgICBu
X3BhcmFtX3ZhbHVlcyA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHBocGdfY2xvc3Vy
ZS0+Y29ubmVjdF90eXBlID09IFBIUEdfQ09OTkVDVF9PQkpFQ1QpIHsKLSAgICAgICAgICAgIC8q
IHNraXAgZmlyc3QgcGFyYW1ldGVyICovCi0gICAgICAgICAgICBuX3BhcmFtX3ZhbHVlcy0tOwot
ICAgICAgICAgICAgcGFyYW1fdmFsdWVzKys7Ci0gICAgICAgIH0KLSAgICAgICAgbl9wYXJhbXMg
PSBuX3BhcmFtX3ZhbHVlczsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHBocGdfY2xvc3VyZS0+dXNl
cl9hcmdzKSB7Ci0gICAgICAgIG5fcGFyYW1zICs9IHplbmRfaGFzaF9udW1fZWxlbWVudHMoWl9B
UlJWQUxfUChwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncykpOwotICAgIH0KKwlpZiAocGhwZ19jbG9z
dXJlLT5jb25uZWN0X3R5cGUgPT0gUEhQR19DT05ORUNUX1NJTVBMRSkgeworCQkvKiB3ZSBkb24n
dCB1c2UgYW55IHNpZ25hbCBwYXJhbXMgZm9yIHNpbXBsZSBjb25uZWN0aW9ucyAqLworCQluX3Bh
cmFtX3ZhbHVlcyA9IDA7CisJfSBlbHNlIHsKKwkJaWYgKHBocGdfY2xvc3VyZS0+Y29ubmVjdF90
eXBlID09IFBIUEdfQ09OTkVDVF9PQkpFQ1QpIHsKKwkJCS8qIHNraXAgZmlyc3QgcGFyYW1ldGVy
ICovCisJCQluX3BhcmFtX3ZhbHVlcy0tOworCQkJcGFyYW1fdmFsdWVzKys7CisJCX0KKwkJbl9w
YXJhbXMgPSBuX3BhcmFtX3ZhbHVlczsKKwl9CisJCisJaWYgKHBocGdfY2xvc3VyZS0+dXNlcl9h
cmdzKSB7CisJCW5fcGFyYW1zICs9IHplbmRfaGFzaF9udW1fZWxlbWVudHMoWl9BUlJWQUxfUChw
aHBnX2Nsb3N1cmUtPnVzZXJfYXJncykpOworCX0KIAogCXBhcmFtcyA9ICh6dmFsICoqKillbWFs
bG9jKG5fcGFyYW1zICogc2l6ZW9mKHp2YWwgKiopKTsKLSAgICBpID0gMDsKLQotICAgIGlmIChw
aHBnX2Nsb3N1cmUtPmNvbm5lY3RfdHlwZSA9PSBQSFBHX0NPTk5FQ1RfUkVQTEFDRSkgewotICAg
ICAgICBwYXJhbXNbaSsrXSA9ICZwaHBnX2Nsb3N1cmUtPnJlcGxhY2Vfb2JqZWN0OwotICAgIH0K
LQotICAgIGZvciAoIDsgaSA8IG5fcGFyYW1fdmFsdWVzOyBpKyspIHsKLSAgICAgICAgcGFyYW1z
W2ldID0gKHp2YWwgKiopIGVtYWxsb2Moc2l6ZW9mKHp2YWwgKikpOwotICAgICAgICAqKHBhcmFt
c1tpXSkgPSBOVUxMOwotICAgICAgICBpZiAocGhwZ19ndmFsdWVfdG9fenZhbCgmcGFyYW1fdmFs
dWVzW2ldLCBwYXJhbXNbaV0sIEZBTFNFLCBUUlVFIFRTUk1MU19DQykgIT0gU1VDQ0VTUykgewot
ICAgICAgICAgICAgZ290byBlcnJfbWFyc2hhbDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlm
IChwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncykgewotICAgICAgICBmb3IgKHplbmRfaGFzaF9pbnRl
cm5hbF9wb2ludGVyX3Jlc2V0KFpfQVJSVkFMX1AocGhwZ19jbG9zdXJlLT51c2VyX2FyZ3MpKTsK
LSAgICAgICAgICAgICB6ZW5kX2hhc2hfZ2V0X2N1cnJlbnRfZGF0YShaX0FSUlZBTF9QKHBocGdf
Y2xvc3VyZS0+dXNlcl9hcmdzKSwgKHZvaWQgKiopJnBhcmFtc1tpXSkgPT0gU1VDQ0VTUzsKLSAg
ICAgICAgICAgICB6ZW5kX2hhc2hfbW92ZV9mb3J3YXJkKFpfQVJSVkFMX1AocGhwZ19jbG9zdXJl
LT51c2VyX2FyZ3MpKSwgaSsrKTsKLSAgICAgICAgLyogZW1wdHkgYm9keSAqLwotICAgIH0KLSAg
ICBhc3NlcnQoaSA9PSBuX3BhcmFtcyk7Ci0KLSAgICBjYWxsX3VzZXJfZnVuY3Rpb25fZXgoRUco
ZnVuY3Rpb25fdGFibGUpLCBOVUxMLCBwaHBnX2Nsb3N1cmUtPmNhbGxiYWNrLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAmcmV0dmFsLCBuX3BhcmFtcywgcGFyYW1zLCAwLCBOVUxMIFRTUk1M
U19DQyk7CisJaSA9IDA7CisKKwlpZiAocGhwZ19jbG9zdXJlLT5jb25uZWN0X3R5cGUgPT0gUEhQ
R19DT05ORUNUX1JFUExBQ0UpIHsKKwkJcGFyYW1zW2krK10gPSAmcGhwZ19jbG9zdXJlLT5yZXBs
YWNlX29iamVjdDsKKwl9CisKKwlmb3IgKCA7IGkgPCBuX3BhcmFtX3ZhbHVlczsgaSsrKSB7CisJ
CXBhcmFtc1tpXSA9ICh6dmFsICoqKSBlbWFsbG9jKHNpemVvZih6dmFsICopKTsKKwkJKihwYXJh
bXNbaV0pID0gTlVMTDsKKwkJaWYgKHBocGdfZ3ZhbHVlX3RvX3p2YWwoJnBhcmFtX3ZhbHVlc1tp
XSwgcGFyYW1zW2ldLCBGQUxTRSwgVFJVRSBUU1JNTFNfQ0MpICE9IFNVQ0NFU1MpIHsKKwkJCWdv
dG8gZXJyX21hcnNoYWw7CisJCX0KKwl9CisKKwlpZiAocGhwZ19jbG9zdXJlLT51c2VyX2FyZ3Mp
IHsKKwkJZm9yICh6ZW5kX2hhc2hfaW50ZXJuYWxfcG9pbnRlcl9yZXNldChaX0FSUlZBTF9QKHBo
cGdfY2xvc3VyZS0+dXNlcl9hcmdzKSk7CisJCQkgemVuZF9oYXNoX2dldF9jdXJyZW50X2RhdGEo
Wl9BUlJWQUxfUChwaHBnX2Nsb3N1cmUtPnVzZXJfYXJncyksICh2b2lkICoqKSZwYXJhbXNbaV0p
ID09IFNVQ0NFU1M7CisJCQkgemVuZF9oYXNoX21vdmVfZm9yd2FyZChaX0FSUlZBTF9QKHBocGdf
Y2xvc3VyZS0+dXNlcl9hcmdzKSksIGkrKyk7CisJCS8qIGVtcHR5IGJvZHkgKi8KKwl9CisJYXNz
ZXJ0KGkgPT0gbl9wYXJhbXMpOworCisJY2FsbF91c2VyX2Z1bmN0aW9uX2V4KEVHKGZ1bmN0aW9u
X3RhYmxlKSwgTlVMTCwgcGhwZ19jbG9zdXJlLT5jYWxsYmFjaywKKwkJCQkJCSAgJnJldHZhbCwg
bl9wYXJhbXMsIHBhcmFtcywgMCwgTlVMTCBUU1JNTFNfQ0MpOwogCiAJaWYgKHJldHZhbCkgewog
CQlpZiAocmV0dXJuX3ZhbHVlKSB7CiAJCQlpZiAocGhwZ19ndmFsdWVfZnJvbV96dmFsKHJldHVy
bl92YWx1ZSwgJnJldHZhbCwgVFJVRSBUU1JNTFNfQ0MpID09IEZBSUxVUkUpIHsKLSAgICAgICAg
ICAgICAgICBwaHBfZXJyb3IoRV9XQVJOSU5HLCAiQ291bGQgbm90IGNvbnZlcnQgcmV0dXJuIHZh
bHVlIG9mIHNpZ25hbCBjYWxsYmFjayAnJXMnIHRvICclcyciLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWxsYmFja19uYW1lLCBnX3R5cGVfbmFtZShHX1ZBTFVFX1RZUEUocmV0dXJuX3Zh
bHVlKSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisJCQkJcGhwX2Vycm9yKEVfV0FSTklO
RywgIkNvdWxkIG5vdCBjb252ZXJ0IHJldHVybiB2YWx1ZSBvZiBzaWduYWwgY2FsbGJhY2sgJyVz
JyB0byAnJXMnIiwKKwkJCQkJCSAgY2FsbGJhY2tfbmFtZSwgZ190eXBlX25hbWUoR19WQUxVRV9U
WVBFKHJldHVybl92YWx1ZSkpKTsKKwkJCX0KKwkJfQogCQl6dmFsX3B0cl9kdG9yKCZyZXR2YWwp
OwogCX0KIAogZXJyX21hcnNoYWw6Ci0gICAgZWZyZWUoY2FsbGJhY2tfbmFtZSk7Ci0gICAgaSA9
IChwaHBnX2Nsb3N1cmUtPmNvbm5lY3RfdHlwZSA9PSBQSFBHX0NPTk5FQ1RfUkVQTEFDRSkgPyAx
IDogMDsKLSAgICBmb3IgKCA7IGkgPCBuX3BhcmFtX3ZhbHVlczsgaSsrKSB7Ci0gICAgICAgIHp2
YWxfcHRyX2R0b3IocGFyYW1zW2ldKTsKLSAgICAgICAgZWZyZWUocGFyYW1zW2ldKTsKLSAgICB9
Ci0gICAgZWZyZWUocGFyYW1zKTsKLQotICAgIHBocGdfaGFuZGxlX21hcnNoYWxsZXJfZXhjZXB0
aW9uKFRTUk1MU19DKTsKKwllZnJlZShjYWxsYmFja19uYW1lKTsKKwlpID0gKHBocGdfY2xvc3Vy
ZS0+Y29ubmVjdF90eXBlID09IFBIUEdfQ09OTkVDVF9SRVBMQUNFKSA/IDEgOiAwOworCWZvciAo
IDsgaSA8IG5fcGFyYW1fdmFsdWVzOyBpKyspIHsKKwkJenZhbF9wdHJfZHRvcihwYXJhbXNbaV0p
OworCQllZnJlZShwYXJhbXNbaV0pOworCX0KKwllZnJlZShwYXJhbXMpOworCisJcGhwZ19oYW5k
bGVfbWFyc2hhbGxlcl9leGNlcHRpb24oVFNSTUxTX0MpOwogfQogCiBQSFBfR1RLX0FQSSBHQ2xv
c3VyZSogcGhwZ19jbG9zdXJlX25ldyh6dmFsICpjYWxsYmFjaywgenZhbCAqdXNlcl9hcmdzLCBp
bnQgY29ubmVjdF90eXBlLCB6dmFsICpyZXBsYWNlX29iamVjdCBUU1JNTFNfREMpCiB7Ci0gICAg
R0Nsb3N1cmUgKmNsb3N1cmU7Ci0gICAgcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3VyZTsKKwlH
Q2xvc3VyZSAqY2xvc3VyZTsKKwlwaHBnX2Nsb3N1cmVfdCAqcGhwZ19jbG9zdXJlOwogCi0gICAg
cGhwZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY2FsbGJhY2sgIT0gTlVMTCwgTlVMTCk7Ci0gICAgY2xv
c3VyZSA9IGdfY2xvc3VyZV9uZXdfc2ltcGxlKHNpemVvZihwaHBnX2Nsb3N1cmVfdCksIE5VTEwp
OwotICAgIGdfY2xvc3VyZV9hZGRfaW52YWxpZGF0ZV9ub3RpZmllcihjbG9zdXJlLCBOVUxMLCBw
aHBnX2Nsb3N1cmVfaW52YWxpZGF0ZSk7Ci0gICAgZ19jbG9zdXJlX3NldF9tYXJzaGFsKGNsb3N1
cmUsIHBocGdfY2xvc3VyZV9tYXJzaGFsKTsKKwlwaHBnX3JldHVybl92YWxfaWZfZmFpbChjYWxs
YmFjayAhPSBOVUxMLCBOVUxMKTsKKwljbG9zdXJlID0gZ19jbG9zdXJlX25ld19zaW1wbGUoc2l6
ZW9mKHBocGdfY2xvc3VyZV90KSwgTlVMTCk7CisJZ19jbG9zdXJlX2FkZF9pbnZhbGlkYXRlX25v
dGlmaWVyKGNsb3N1cmUsIE5VTEwsIHBocGdfY2xvc3VyZV9pbnZhbGlkYXRlKTsKKwlnX2Nsb3N1
cmVfc2V0X21hcnNoYWwoY2xvc3VyZSwgcGhwZ19jbG9zdXJlX21hcnNoYWwpOwogCi0gICAgcGhw
Z19jbG9zdXJlID0gKHBocGdfY2xvc3VyZV90ICopIGNsb3N1cmU7Ci0gICAgenZhbF9hZGRfcmVm
KCZjYWxsYmFjayk7Ci0gICAgcGhwZ19jbG9zdXJlLT5jYWxsYmFjayA9IGNhbGxiYWNrOworCXBo
cGdfY2xvc3VyZSA9IChwaHBnX2Nsb3N1cmVfdCAqKSBjbG9zdXJlOworCXp2YWxfYWRkX3JlZigm
Y2FsbGJhY2spOworCXBocGdfY2xvc3VyZS0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKIAlwaHBnX2Ns
b3N1cmUtPnNyY19maWxlbmFtZSA9IGVzdHJkdXAoemVuZF9nZXRfZXhlY3V0ZWRfZmlsZW5hbWUo
VFNSTUxTX0MpKTsKIAlwaHBnX2Nsb3N1cmUtPnNyY19saW5lbm8gPSB6ZW5kX2dldF9leGVjdXRl
ZF9saW5lbm8oVFNSTUxTX0MpOworI2lmZGVmIFpUUworCXBocGdfY2xvc3VyZS0+VFNSTUxTX0Mg
PSBUU1JNTFNfQzsKKyNlbmRpZgorCisJaWYgKHVzZXJfYXJncykgeworCQl6dmFsX2FkZF9yZWYo
JnVzZXJfYXJncyk7CisJCWlmIChaX1RZUEVfUCh1c2VyX2FyZ3MpICE9IElTX0FSUkFZKSB7CisJ
CQljb252ZXJ0X3RvX2FycmF5KHVzZXJfYXJncyk7CisJCX0KKwkJcGhwZ19jbG9zdXJlLT51c2Vy
X2FyZ3MgPSB1c2VyX2FyZ3M7CisJfSBlbHNlIHsKKwkJcGhwZ19jbG9zdXJlLT51c2VyX2FyZ3Mg
PSBOVUxMOworCX0KIAotICAgIGlmICh1c2VyX2FyZ3MpIHsKLSAgICAgICAgenZhbF9hZGRfcmVm
KCZ1c2VyX2FyZ3MpOwotICAgICAgICBpZiAoWl9UWVBFX1AodXNlcl9hcmdzKSAhPSBJU19BUlJB
WSkgewotICAgICAgICAgICAgY29udmVydF90b19hcnJheSh1c2VyX2FyZ3MpOwotICAgICAgICB9
Ci0gICAgICAgIHBocGdfY2xvc3VyZS0+dXNlcl9hcmdzID0gdXNlcl9hcmdzOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHBocGdfY2xvc3VyZS0+dXNlcl9hcmdzID0gTlVMTDsKLSAgICB9Ci0KLSAg
ICBpZiAocmVwbGFjZV9vYmplY3QpIHsKLSAgICAgICAgenZhbF9hZGRfcmVmKCZyZXBsYWNlX29i
amVjdCk7Ci0gICAgICAgIHBocGdfY2xvc3VyZS0+cmVwbGFjZV9vYmplY3QgPSByZXBsYWNlX29i
amVjdDsKLSAgICB9IGVsc2UgewotICAgICAgICBwaHBnX2Nsb3N1cmUtPnJlcGxhY2Vfb2JqZWN0
ID0gTlVMTDsKLSAgICB9Ci0KLSAgICBwaHBnX2Nsb3N1cmUtPmNvbm5lY3RfdHlwZSA9IGNvbm5l
Y3RfdHlwZTsKLQotICAgIHJldHVybiBjbG9zdXJlOworCWlmIChyZXBsYWNlX29iamVjdCkgewor
CQl6dmFsX2FkZF9yZWYoJnJlcGxhY2Vfb2JqZWN0KTsKKwkJcGhwZ19jbG9zdXJlLT5yZXBsYWNl
X29iamVjdCA9IHJlcGxhY2Vfb2JqZWN0OworCX0gZWxzZSB7CisJCXBocGdfY2xvc3VyZS0+cmVw
bGFjZV9vYmplY3QgPSBOVUxMOworCX0KKworCXBocGdfY2xvc3VyZS0+Y29ubmVjdF90eXBlID0g
Y29ubmVjdF90eXBlOworCisJcmV0dXJuIGNsb3N1cmU7CiB9CiAKIFBIUF9HVEtfQVBJIHZvaWQg
cGhwZ19jYl9kYXRhX2Rlc3Ryb3koZ3BvaW50ZXIgZGF0YSkKIHsKLSAgICBwaHBnX2NiX2RhdGFf
dCAqY2JkID0gKHBocGdfY2JfZGF0YV90ICopIGRhdGE7Ci0KLSAgICBpZiAoIWNiZCkgcmV0dXJu
OwotCi0gICAgenZhbF9wdHJfZHRvcigmY2JkLT5jYWxsYmFjayk7Ci0gICAgaWYgKGNiZC0+dXNl
cl9hcmdzKSB7Ci0gICAgICAgIHp2YWxfcHRyX2R0b3IoJmNiZC0+dXNlcl9hcmdzKTsKLSAgICB9
Ci0gICAgZWZyZWUoY2JkLT5zcmNfZmlsZW5hbWUpOwotICAgIGVmcmVlKGNiZCk7CisJcGhwZ19j
Yl9kYXRhX3QgKmNiZCA9IChwaHBnX2NiX2RhdGFfdCAqKSBkYXRhOworCQorCWlmICghY2JkKSBy
ZXR1cm47CisJCisJenZhbF9wdHJfZHRvcigmY2JkLT5jYWxsYmFjayk7CisJaWYgKGNiZC0+dXNl
cl9hcmdzKSB7CisJCXp2YWxfcHRyX2R0b3IoJmNiZC0+dXNlcl9hcmdzKTsKKwl9CisJZWZyZWUo
Y2JkLT5zcmNfZmlsZW5hbWUpOworCWVmcmVlKGNiZCk7CiB9CiAKIHN0YXRpYyB2b2lkIHBocGdf
c2lnbmFsX2NsYXNzX2Nsb3N1cmVfbWFyc2hhbChHQ2xvc3VyZSAgICAgKmNsb3N1cmUsCkBAIC0y
MDUsMTI1ICsyMTYsMTI3IEBAIHN0YXRpYyB2b2lkIHBocGdfc2lnbmFsX2NsYXNzX2Nsb3N1cmVf
bWFyc2hhbChHQ2xvc3VyZSAgICAgKmNsb3N1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICBpbnZvY2F0aW9uX2hpbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICBt
YXJzaGFsX2RhdGEpCiB7Ci0gICAgR09iamVjdCAqb2JqZWN0OwotICAgIEdTaWduYWxJbnZvY2F0
aW9uSGludCAqaGludCA9IChHU2lnbmFsSW52b2NhdGlvbkhpbnQgKilpbnZvY2F0aW9uX2hpbnQ7
Ci0gICAgenZhbCAqcGhwX29iamVjdCA9IE5VTEw7Ci0gICAgZ2NoYXIgKm1ldGhvZF9uYW1lLCAq
dG1wLCAqbGNfbWV0aG9kX25hbWU7Ci0gICAgZ3NpemUgbWV0aG9kX25hbWVfbGVuOwotICAgIHp2
YWwgKioqcGFyYW1zID0gTlVMTDsKLSAgICB6dmFsICpyZXR2YWwgPSBOVUxMOwotICAgIHp2YWwg
Kml0ZW0sIHpfbWV0aG9kX25hbWU7Ci0gICAgcGhwZ19nYm94ZWRfdCAqYm94ZWRfaXRlbTsKLSAg
ICBpbnQgaSwgazsKLQotCVRTUk1MU19GRVRDSCgpOwotCi0gICAgcGhwZ19yZXR1cm5faWZfZmFp
bChpbnZvY2F0aW9uX2hpbnQgIT0gTlVMTCk7Ci0gICAgLyogdmVyaWZ5IHRoYXQgZmlyc3QgcGFy
YW1ldGVyIGlzIGFuIG9iamVjdCAqLwotICAgIG9iamVjdCA9IGdfdmFsdWVfZ2V0X29iamVjdCgm
cGFyYW1fdmFsdWVzWzBdKTsKLSAgICBwaHBnX3JldHVybl9pZl9mYWlsKG9iamVjdCAhPSBOVUxM
ICYmIEdfSVNfT0JKRUNUKG9iamVjdCkpOwotCi0gICAgLyogY3JlYXRlIHdyYXBwZXIgZm9yIHRo
ZSBvYmplY3QgKi8KLSAgICBwaHBnX2dvYmplY3RfbmV3KCZwaHBfb2JqZWN0LCBvYmplY3QgVFNS
TUxTX0NDKTsKLSAgICBpZiAoWl9UWVBFX1AocGhwX29iamVjdCkgPT0gSVNfTlVMTCkgewotICAg
ICAgICB6dmFsX3B0cl9kdG9yKCZwaHBfb2JqZWN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIG1ldGhvZF9uYW1lID0gZ19zdHJjb25jYXQoIl9fZG9fIiwgZ19zaWduYWxfbmFtZSho
aW50LT5zaWduYWxfaWQpLCBOVUxMKTsKLSAgICBmb3IgKHRtcCA9IG1ldGhvZF9uYW1lOyAqdG1w
ICE9ICdcMCc7IHRtcCsrKSB7Ci0gICAgICAgIGlmICgqdG1wID09ICctJykgKnRtcCA9ICdfJzsK
LSAgICB9Ci0KLSAgICBtZXRob2RfbmFtZV9sZW4gPSBzdHJsZW4obWV0aG9kX25hbWUpOwotICAg
IGxjX21ldGhvZF9uYW1lID0gZ19hc2NpaV9zdHJkb3duKG1ldGhvZF9uYW1lLCBtZXRob2RfbmFt
ZV9sZW4pOwotICAgIGlmICghemVuZF9oYXNoX2V4aXN0cygmWl9PQkpDRV9QKHBocF9vYmplY3Qp
LT5mdW5jdGlvbl90YWJsZSwgbGNfbWV0aG9kX25hbWUsIG1ldGhvZF9uYW1lX2xlbisxKSkgewot
ICAgICAgICB1bmlvbiBfemVuZF9mdW5jdGlvbiAqZnVuYyA9IE5VTEw7Ci0KLSAgICAgICAgZ19m
cmVlKGxjX21ldGhvZF9uYW1lKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChaX09CSl9IVF9QKHBo
cF9vYmplY3QpLT5nZXRfbWV0aG9kICE9IE5VTEwKKwlHT2JqZWN0ICpvYmplY3Q7CisJR1NpZ25h
bEludm9jYXRpb25IaW50ICpoaW50ID0gKEdTaWduYWxJbnZvY2F0aW9uSGludCAqKWludm9jYXRp
b25faGludDsKKwl6dmFsICpwaHBfb2JqZWN0ID0gTlVMTDsKKwlnY2hhciAqbWV0aG9kX25hbWUs
ICp0bXAsICpsY19tZXRob2RfbmFtZTsKKwlnc2l6ZSBtZXRob2RfbmFtZV9sZW47CisJenZhbCAq
KipwYXJhbXMgPSBOVUxMOworCXp2YWwgKnJldHZhbCA9IE5VTEw7CisJenZhbCAqaXRlbSwgel9t
ZXRob2RfbmFtZTsKKwlwaHBnX2dib3hlZF90ICpib3hlZF9pdGVtOworCWludCBpLCBrOworI2lm
ZGVmIFpUUworCXBocGdfY2xvc3VyZV90ICpwaHBnX2Nsb3N1cmUgPSAocGhwZ19jbG9zdXJlX3Qg
KiljbG9zdXJlOworCVRTUk1MU19EID0gcGhwZ19jbG9zdXJlLT5UU1JNTFNfQzsKKyNlbmRpZjsK
KworCXBocGdfcmV0dXJuX2lmX2ZhaWwoaW52b2NhdGlvbl9oaW50ICE9IE5VTEwpOworCS8qIHZl
cmlmeSB0aGF0IGZpcnN0IHBhcmFtZXRlciBpcyBhbiBvYmplY3QgKi8KKwlvYmplY3QgPSBnX3Zh
bHVlX2dldF9vYmplY3QoJnBhcmFtX3ZhbHVlc1swXSk7CisJcGhwZ19yZXR1cm5faWZfZmFpbChv
YmplY3QgIT0gTlVMTCAmJiBHX0lTX09CSkVDVChvYmplY3QpKTsKKworCS8qIGNyZWF0ZSB3cmFw
cGVyIGZvciB0aGUgb2JqZWN0ICovCisJcGhwZ19nb2JqZWN0X25ldygmcGhwX29iamVjdCwgb2Jq
ZWN0IFRTUk1MU19DQyk7CisJaWYgKFpfVFlQRV9QKHBocF9vYmplY3QpID09IElTX05VTEwpIHsK
KwkJenZhbF9wdHJfZHRvcigmcGhwX29iamVjdCk7CisJCXJldHVybjsKKwl9CisKKwltZXRob2Rf
bmFtZSA9IGdfc3RyY29uY2F0KCJfX2RvXyIsIGdfc2lnbmFsX25hbWUoaGludC0+c2lnbmFsX2lk
KSwgTlVMTCk7CisJZm9yICh0bXAgPSBtZXRob2RfbmFtZTsgKnRtcCAhPSAnXDAnOyB0bXArKykg
eworCQlpZiAoKnRtcCA9PSAnLScpICp0bXAgPSAnXyc7CisJfQorCisJbWV0aG9kX25hbWVfbGVu
ID0gc3RybGVuKG1ldGhvZF9uYW1lKTsKKwlsY19tZXRob2RfbmFtZSA9IGdfYXNjaWlfc3RyZG93
bihtZXRob2RfbmFtZSwgbWV0aG9kX25hbWVfbGVuKTsKKwlpZiAoIXplbmRfaGFzaF9leGlzdHMo
JlpfT0JKQ0VfUChwaHBfb2JqZWN0KS0+ZnVuY3Rpb25fdGFibGUsIGxjX21ldGhvZF9uYW1lLCBt
ZXRob2RfbmFtZV9sZW4rMSkpIHsKKwkJdW5pb24gX3plbmRfZnVuY3Rpb24gKmZ1bmMgPSBOVUxM
OworCisJCWdfZnJlZShsY19tZXRob2RfbmFtZSk7CisJCQorCQlpZiAoWl9PQkpfSFRfUChwaHBf
b2JqZWN0KS0+Z2V0X21ldGhvZCAhPSBOVUxMCiAJCSNpZiBQSFBfVkVSU0lPTl9JRCA8IDUwMzk5
Ci0gICAgICAgICAgICAmJiAoZnVuYyA9IFpfT0JKX0hUX1AocGhwX29iamVjdCktPmdldF9tZXRo
b2QoJnBocF9vYmplY3QsIG1ldGhvZF9uYW1lLCBtZXRob2RfbmFtZV9sZW4gVFNSTUxTX0NDKSkg
IT0gTlVMTCkgeworCQkJJiYgKGZ1bmMgPSBaX09CSl9IVF9QKHBocF9vYmplY3QpLT5nZXRfbWV0
aG9kKCZwaHBfb2JqZWN0LCBtZXRob2RfbmFtZSwgbWV0aG9kX25hbWVfbGVuIFRTUk1MU19DQykp
ICE9IE5VTEwpIHsKIAkJI2Vsc2UKLSAgICAgICAgICAgICYmIChmdW5jID0gWl9PQkpfSFRfUChw
aHBfb2JqZWN0KS0+Z2V0X21ldGhvZCgmcGhwX29iamVjdCwgbWV0aG9kX25hbWUsIG1ldGhvZF9u
YW1lX2xlbiwgTlVMTCBUU1JNTFNfQ0MpKSAhPSBOVUxMKSB7CisJCQkmJiAoZnVuYyA9IFpfT0JK
X0hUX1AocGhwX29iamVjdCktPmdldF9tZXRob2QoJnBocF9vYmplY3QsIG1ldGhvZF9uYW1lLCBt
ZXRob2RfbmFtZV9sZW4sIE5VTEwgVFNSTUxTX0NDKSkgIT0gTlVMTCkgewogCQkjZW5kaWYJCQkK
LSAgICAgICAgICAgIGlmIChmdW5jLT50eXBlID09IFpFTkRfSU5URVJOQUxfRlVOQ1RJT04KLSAg
ICAgICAgICAgICAgICAmJiAoKHplbmRfaW50ZXJuYWxfZnVuY3Rpb24qKWZ1bmMpLT5oYW5kbGVy
ID09IHplbmRfc3RkX2NhbGxfdXNlcl9jYWxsCi0gICAgICAgICAgICAgICApIHsKLSAgICAgICAg
ICAgICAgICBlZnJlZSgoKHplbmRfaW50ZXJuYWxfZnVuY3Rpb24qKWZ1bmMpLT5mdW5jdGlvbl9u
YW1lKTsKLSAgICAgICAgICAgICAgICBlZnJlZShmdW5jKTsKLSAgICAgICAgICAgICAgICB6dmFs
X3B0cl9kdG9yKCZwaHBfb2JqZWN0KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgenZhbF9wdHJfZHRvcigmcGhwX29iamVjdCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgZ19mcmVlKGxjX21ldGhvZF9uYW1lKTsKKwkJCWlm
IChmdW5jLT50eXBlID09IFpFTkRfSU5URVJOQUxfRlVOQ1RJT04KKwkJCQkmJiAoKHplbmRfaW50
ZXJuYWxfZnVuY3Rpb24qKWZ1bmMpLT5oYW5kbGVyID09IHplbmRfc3RkX2NhbGxfdXNlcl9jYWxs
CisJCQkgICApIHsKKwkJCQllZnJlZSgoKHplbmRfaW50ZXJuYWxfZnVuY3Rpb24qKWZ1bmMpLT5m
dW5jdGlvbl9uYW1lKTsKKwkJCQllZnJlZShmdW5jKTsKKwkJCQl6dmFsX3B0cl9kdG9yKCZwaHBf
b2JqZWN0KTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0KKwkJenZhbF9wdHJfZHRvcigmcGhwX29i
amVjdCk7CisJCXJldHVybjsKKwl9CisJZ19mcmVlKGxjX21ldGhvZF9uYW1lKTsKIAogCXBhcmFt
cyA9ICh6dmFsICoqKillbWFsbG9jKChuX3BhcmFtX3ZhbHVlcy0xKSAqIHNpemVvZih6dmFsICoq
KSk7Ci0gICAgZm9yIChpID0gMDsgaSA8IChpbnQpbl9wYXJhbV92YWx1ZXMtMTsgaSsrKSB7Ci0g
ICAgICAgIHBhcmFtc1tpXSA9ICh6dmFsICoqKSBlbWFsbG9jKHNpemVvZih6dmFsICopKTsKLSAg
ICAgICAgKihwYXJhbXNbaV0pID0gTlVMTDsKLSAgICAgICAgaWYgKHBocGdfZ3ZhbHVlX3RvX3p2
YWwoJnBhcmFtX3ZhbHVlc1tpKzFdLCBwYXJhbXNbaV0sIEZBTFNFLCBUUlVFIFRTUk1MU19DQykg
IT0gU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBlcnJfY2xhc3NfY2xvc3VyZV9tYXJzaGFs
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgWlZBTF9TVFJJTkdMKCZ6X21ldGhvZF9uYW1lLCBt
ZXRob2RfbmFtZSwgbWV0aG9kX25hbWVfbGVuLCAwKTsKLSAgICBjYWxsX3VzZXJfZnVuY3Rpb25f
ZXgoRUcoZnVuY3Rpb25fdGFibGUpLCAmcGhwX29iamVjdCwgJnpfbWV0aG9kX25hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICZyZXR2YWwsIG5fcGFyYW1fdmFsdWVzLTEsIHBhcmFtcywg
MCwgTlVMTCBUU1JNTFNfQ0MpOwotCi0KLSAgICBmb3IgKGsgPSAwOyBrIDwgaTsgaysrKSB7Ci0g
ICAgICAgIGl0ZW0gPSAqcGFyYW1zW2tdOwotICAgICAgICBpZiAoWl9UWVBFX1AoaXRlbSkgPT0g
SVNfT0JKRUNUICYmCi0gICAgICAgICAgICBpbnN0YW5jZW9mX2Z1bmN0aW9uKFpfT0JKQ0VfUChp
dGVtKSwgZ2JveGVkX2NlIFRTUk1MU19DQykgJiYgWl9SRUZDT1VOVF9QKGl0ZW0pID4gMSkgewot
ICAgICAgICAgICAgYm94ZWRfaXRlbSA9IHBocGdfZ2JveGVkX2dldChpdGVtIFRTUk1MU19DQyk7
Ci0gICAgICAgICAgICBpZiAoIWJveGVkX2l0ZW0tPmZyZWVfb25fZGVzdHJveSkgewotICAgICAg
ICAgICAgICAgIGJveGVkX2l0ZW0tPmJveGVkID0gZ19ib3hlZF9jb3B5KGJveGVkX2l0ZW0tPmd0
eXBlLCBib3hlZF9pdGVtLT5ib3hlZCk7Ci0gICAgICAgICAgICAgICAgYm94ZWRfaXRlbS0+ZnJl
ZV9vbl9kZXN0cm95ID0gVFJVRTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KKwlm
b3IgKGkgPSAwOyBpIDwgKGludCluX3BhcmFtX3ZhbHVlcy0xOyBpKyspIHsKKwkJcGFyYW1zW2ld
ID0gKHp2YWwgKiopIGVtYWxsb2Moc2l6ZW9mKHp2YWwgKikpOworCQkqKHBhcmFtc1tpXSkgPSBO
VUxMOworCQlpZiAocGhwZ19ndmFsdWVfdG9fenZhbCgmcGFyYW1fdmFsdWVzW2krMV0sIHBhcmFt
c1tpXSwgRkFMU0UsIFRSVUUgVFNSTUxTX0NDKSAhPSBTVUNDRVNTKSB7CisJCQlnb3RvIGVycl9j
bGFzc19jbG9zdXJlX21hcnNoYWw7CisJCX0KKwl9CisKKwlaVkFMX1NUUklOR0woJnpfbWV0aG9k
X25hbWUsIG1ldGhvZF9uYW1lLCBtZXRob2RfbmFtZV9sZW4sIDApOworCWNhbGxfdXNlcl9mdW5j
dGlvbl9leChFRyhmdW5jdGlvbl90YWJsZSksICZwaHBfb2JqZWN0LCAmel9tZXRob2RfbmFtZSwK
KwkJCQkJCSAgJnJldHZhbCwgbl9wYXJhbV92YWx1ZXMtMSwgcGFyYW1zLCAwLCBOVUxMIFRTUk1M
U19DQyk7CisKKworCWZvciAoayA9IDA7IGsgPCBpOyBrKyspIHsKKwkJaXRlbSA9ICpwYXJhbXNb
a107CisJCWlmIChaX1RZUEVfUChpdGVtKSA9PSBJU19PQkpFQ1QgJiYKKwkJCWluc3RhbmNlb2Zf
ZnVuY3Rpb24oWl9PQkpDRV9QKGl0ZW0pLCBnYm94ZWRfY2UgVFNSTUxTX0NDKSAmJiBaX1JFRkNP
VU5UX1AoaXRlbSkgPiAxKSB7CisJCQlib3hlZF9pdGVtID0gcGhwZ19nYm94ZWRfZ2V0KGl0ZW0g
VFNSTUxTX0NDKTsKKwkJCWlmICghYm94ZWRfaXRlbS0+ZnJlZV9vbl9kZXN0cm95KSB7CisJCQkJ
Ym94ZWRfaXRlbS0+Ym94ZWQgPSBnX2JveGVkX2NvcHkoYm94ZWRfaXRlbS0+Z3R5cGUsIGJveGVk
X2l0ZW0tPmJveGVkKTsKKwkJCQlib3hlZF9pdGVtLT5mcmVlX29uX2Rlc3Ryb3kgPSBUUlVFOwor
CQkJfQorCQl9CisJfQogCiAJaWYgKHJldHZhbCkgewogCQlpZiAocmV0dXJuX3ZhbHVlKSB7CiAJ
CQlpZiAocGhwZ19ndmFsdWVfZnJvbV96dmFsKHJldHVybl92YWx1ZSwgJnJldHZhbCwgVFJVRSBU
U1JNTFNfQ0MpID09IEZBSUxVUkUpIHsKLSAgICAgICAgICAgICAgICBwaHBfZXJyb3IoRV9XQVJO
SU5HLCAiQ291bGQgbm90IGNvbnZlcnQgcmV0dXJuIHZhbHVlIG9mIGN1c3RvbSBzaWduYWwgYWN0
aW9uICclcycgdG8gJyVzJyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZF9uYW1l
LCBnX3R5cGVfbmFtZShHX1ZBTFVFX1RZUEUocmV0dXJuX3ZhbHVlKSkpOwotICAgICAgICAgICAg
fQotICAgICAgICB9CisJCQkJcGhwX2Vycm9yKEVfV0FSTklORywgIkNvdWxkIG5vdCBjb252ZXJ0
IHJldHVybiB2YWx1ZSBvZiBjdXN0b20gc2lnbmFsIGFjdGlvbiAnJXMnIHRvICclcyciLAorCQkJ
CQkJICBtZXRob2RfbmFtZSwgZ190eXBlX25hbWUoR19WQUxVRV9UWVBFKHJldHVybl92YWx1ZSkp
KTsKKwkJCX0KKwkJfQogCQl6dmFsX3B0cl9kdG9yKCZyZXR2YWwpOwogCX0KIAotICAgIGktLTsg
Ly8gYWRqdXN0IGZvciBjbGVhbnVwCisJaS0tOyAvLyBhZGp1c3QgZm9yIGNsZWFudXAKIAogZXJy
X2NsYXNzX2Nsb3N1cmVfbWFyc2hhbDoKLSAgICBmb3IgKCA7IGkgPj0gMDsgaS0tKSB7Ci0gICAg
ICAgIHp2YWxfcHRyX2R0b3IocGFyYW1zW2ldKTsKLSAgICAgICAgZWZyZWUocGFyYW1zW2ldKTsK
LSAgICB9Ci0gICAgZWZyZWUocGFyYW1zKTsKLSAgICBnX2ZyZWUobWV0aG9kX25hbWUpOwotICAg
IHp2YWxfcHRyX2R0b3IoJnBocF9vYmplY3QpOworCWZvciAoIDsgaSA+PSAwOyBpLS0pIHsKKwkJ
enZhbF9wdHJfZHRvcihwYXJhbXNbaV0pOworCQllZnJlZShwYXJhbXNbaV0pOworCX0KKwllZnJl
ZShwYXJhbXMpOworCWdfZnJlZShtZXRob2RfbmFtZSk7CisJenZhbF9wdHJfZHRvcigmcGhwX29i
amVjdCk7CiB9CiAKIAogUEhQX0dUS19BUEkgR0Nsb3N1cmUqIHBocGdfZ2V0X3NpZ25hbF9jbGFz
c19jbG9zdXJlKCkKIHsKLSAgICBzdGF0aWMgR0Nsb3N1cmUgKmNsb3N1cmUgPSBOVUxMOwotCi0g
ICAgaWYgKGNsb3N1cmUgPT0gTlVMTCkgewotICAgICAgICBjbG9zdXJlID0gZ19jbG9zdXJlX25l
d19zaW1wbGUoc2l6ZW9mKEdDbG9zdXJlKSwgTlVMTCk7Ci0gICAgICAgIGdfY2xvc3VyZV9zZXRf
bWFyc2hhbChjbG9zdXJlLCBwaHBnX3NpZ25hbF9jbGFzc19jbG9zdXJlX21hcnNoYWwpOwotCi0g
ICAgICAgIGdfY2xvc3VyZV9yZWYoY2xvc3VyZSk7Ci0gICAgICAgIGdfY2xvc3VyZV9zaW5rKGNs
b3N1cmUpOwotICAgIH0KLQotICAgIHJldHVybiBjbG9zdXJlOworCXN0YXRpYyBHQ2xvc3VyZSAq
Y2xvc3VyZSA9IE5VTEw7CisJCisJaWYgKGNsb3N1cmUgPT0gTlVMTCkgeworCQljbG9zdXJlID0g
Z19jbG9zdXJlX25ld19zaW1wbGUoc2l6ZW9mKEdDbG9zdXJlKSwgTlVMTCk7CisJCWdfY2xvc3Vy
ZV9zZXRfbWFyc2hhbChjbG9zdXJlLCBwaHBnX3NpZ25hbF9jbGFzc19jbG9zdXJlX21hcnNoYWwp
OworCQorCQlnX2Nsb3N1cmVfcmVmKGNsb3N1cmUpOworCQlnX2Nsb3N1cmVfc2luayhjbG9zdXJl
KTsKKwl9CisJCisJcmV0dXJuIGNsb3N1cmU7CiB9CiAKICNlbmRpZiAvKiBIQVZFX1BIUF9HVEsg
Ki8=

--8d30be47af932dfe47ed5adf273f84109dabcfa4--