[kaffe] Updated patch...

Jukka Santala jsantala@tml.hut.fi
Wed, 8 May 2002 14:59:21 +0300 (EEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-33463914-1020859161=:4014
Content-Type: TEXT/PLAIN; charset=US-ASCII

To try to avoid further clutter, I've included the three tested main
patches into one, and would like to see these included in Kaffe to get
Xsmiles to at least start up under it (Provided CLASSPATH is right).

The only change from the posted invidual pieces is that I analyzed Sun
JDK's proxy-behaviour and tried to replicate it as close as possible,
using default port if it can't be determined for proxy and failing quietly
if proxy connection fails, re-trying automatically with direct connection.
(This may be annoying if you're using proxy for reasons such as cost etc.
but it's what Sun's JDK appears to do...). Since I already wrote the
test-case for Field, I included it as well. Naturally Klasses needs to be
rebuilt for HttpURLConnection.

Changelog entry:

Wed May  8 14:42:26 EEST 2002 Jukka Santala <jsantala@tml.hut.fi>

	* kaffe/xprof/gmonFile.c: va_arg with int type to allow building
	with GCC 3+
	* libraries/clib/native/Class.c: Made exception match Sun JDK's.
	* libraries/clib/native/Field.c: Methods aren't JNI compatible, so
	named them correctly.
	* libraries/javalib/kaffe/net/www/protocol/http/
	HttpURLConnection.java: Made proxy address handling match Sun
	JDK's observed behaviour.
	* test/regression/GetField.java: Added test-case for Field
	methods.

 -Jukka Santala

---559023410-33463914-1020859161=:4014
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="GetField.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.10.10205081459210.4014@morphine.tml.hut.fi>
Content-Description: 
Content-Disposition: attachment; filename="GetField.java"

aW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkZpZWxkOw0KDQpjbGFzcyBTb21l
RmllbGRzIHsNCglwdWJsaWMgaW50IFNPTUUgPSAxMDsNCglwcm90ZWN0ZWQg
aW50IFBTT01FID0gMjA7DQp9DQoNCmNsYXNzIEdldEZpZWxkIHsNCglwdWJs
aWMgaW50IFRFU1QgPSAxMDsNCglwdWJsaWMgc3RhdGljIGludCBTVEVTVCA9
IDIwOw0KCXByaXZhdGUgc3RhdGljIGludCBQU1RFU1QgPSAzMDsNCglwdWJs
aWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7DQoJCUZpZWxk
IGZsZDsNCgkJQ2xhc3MgY2xzID0gR2V0RmllbGQuY2xhc3M7DQoJCXRyeSB7
DQoJCQlmbGQgPSBjbHMuZ2V0RmllbGQoIlRFU1QiKTsNCgkJCVN5c3RlbS5v
dXQucHJpbnRsbigicHVibGljOiAiK2ZsZC5nZXRJbnQoY2xzKSk7DQoJCX0g
Y2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4o
ZSk7DQoJCX0NCg0KCQl0cnkgew0KCQkJZmxkID0gY2xzLmdldEZpZWxkKCJT
VEVTVCIpOw0KCQkJU3lzdGVtLm91dC5wcmludGxuKCJwdWJsaWMgc3RhdGlj
OiAiK2ZsZC5nZXRJbnQoY2xzKSk7DQoJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBl
KSB7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oZSk7DQoJCX0NCg0KCQl0cnkg
ew0KCQkJZmxkID0gY2xzLmdldEZpZWxkKCJQU1RFU1QiKTsNCgkJCVN5c3Rl
bS5vdXQucHJpbnRsbigicHJpdmF0ZTogIitmbGQuZ2V0SW50KGNscykpOw0K
CQl9IGNhdGNoIChFeGNlcHRpb24gZSkgew0KCQkJU3lzdGVtLm91dC5wcmlu
dGxuKGUpOw0KCQl9DQoNCgkJdHJ5IHsNCgkJCWZsZCA9IGNscy5nZXRGaWVs
ZCgiVEVTVCIpOw0KCQkJU3lzdGVtLm91dC5wcmludGxuKCJwdWJsaWMgZnJv
bSBudWxsOiAiK2ZsZC5nZXRJbnQobnVsbCkpOw0KCQl9IGNhdGNoIChFeGNl
cHRpb24gZSkgew0KCQkJU3lzdGVtLm91dC5wcmludGxuKGUpOw0KCQl9DQoN
CgkJdHJ5IHsNCgkJCWZsZCA9IGNscy5nZXRGaWVsZCgiU1RFU1QiKTsNCgkJ
CVN5c3RlbS5vdXQucHJpbnRsbigicHVibGljIHN0YXRpYyBmcm9tIG51bGw6
ICIrZmxkLmdldEludChudWxsKSk7DQoJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBl
KSB7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oZSk7DQoJCX0NCg0KCQlTb21l
RmllbGRzIHNGaWVsZHMgPSBuZXcgU29tZUZpZWxkcygpOw0KCQljbHMgPSBT
b21lRmllbGRzLmNsYXNzOw0KCQl0cnkgew0KCQkJZmxkID0gY2xzLmdldEZp
ZWxkKCJTT01FIik7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlNvbWVGaWVs
ZHMgcHVibGljOiAiK2ZsZC5nZXRJbnQoc0ZpZWxkcykpOw0KCQl9IGNhdGNo
IChFeGNlcHRpb24gZSkgew0KCQkJU3lzdGVtLm91dC5wcmludGxuKGUpOw0K
CQl9DQoNCgkJdHJ5IHsNCgkJCWZsZCA9IGNscy5nZXRGaWVsZCgiUFNPTUUi
KTsNCgkJCVN5c3RlbS5vdXQucHJpbnRsbigiU29tZUZpZWxkcyBwcm90ZWN0
ZWQ6ICIrZmxkLmdldEludChzRmllbGRzKSk7DQoJCX0gY2F0Y2ggKEV4Y2Vw
dGlvbiBlKSB7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oZSk7DQoJCX0NCgl9
DQp9DQoNCi8qIEV4cGVjdGVkIE91dHB1dDoNCmphdmEubGFuZy5JbGxlZ2Fs
QXJndW1lbnRFeGNlcHRpb24NCnB1YmxpYyBzdGF0aWM6IDIwDQpqYXZhLmxh
bmcuTm9TdWNoRmllbGRFeGNlcHRpb246IFBTVEVTVA0KamF2YS5sYW5nLk51
bGxQb2ludGVyRXhjZXB0aW9uDQpwdWJsaWMgc3RhdGljIGZyb20gbnVsbDog
MjANClNvbWVGaWVsZHMgcHVibGljOiAxMA0KamF2YS5sYW5nLk5vU3VjaEZp
ZWxkRXhjZXB0aW9uOiBQU09NRQ0KKi8NCg==
---559023410-33463914-1020859161=:4014
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Kaffe_XS1.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.10.10205081459211.4014@morphine.tml.hut.fi>
Content-Description: 
Content-Disposition: attachment; filename="Kaffe_XS1.patch"

PyBIdHRwVVJMLnBhdGNoDQo/IEthZmZlX0ZpZWxkX2dldC5wYXRjaA0KPyBL
YWZmZV9YUzEucGF0Y2gNCkluZGV4OiBrYWZmZS94cHJvZi9nbW9uRmlsZS5j
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9rYWZm
ZS9rYWZmZS9rYWZmZS94cHJvZi9nbW9uRmlsZS5jLHYNCnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xDQpkaWZmIC11IC1yMS4xIGdtb25GaWxlLmMNCi0tLSBr
YWZmZS94cHJvZi9nbW9uRmlsZS5jCTIzIE1heSAyMDAwIDE3OjU1OjM3IC0w
MDAwCTEuMQ0KKysrIGthZmZlL3hwcm9mL2dtb25GaWxlLmMJOCBNYXkgMjAw
MiAxMTo0NTozNyAtMDAwMA0KQEAgLTEzMyw3ICsxMzMsNyBAQA0KIAkJCXN0
cmNweShnaGguZGltZW4sIHZhX2FyZyhhcmdzLCBjaGFyICopKTsNCiAJCQli
cmVhazsNCiAJCWNhc2UgR1JBX0RpbWVuc2lvbkFiYnJldjoNCi0JCQlnaGgu
ZGltZW5fYWJicmV2ID0gdmFfYXJnKGFyZ3MsIGNoYXIpOw0KKwkJCWdoaC5k
aW1lbl9hYmJyZXYgPSB2YV9hcmcoYXJncywgaW50KTsNCiAJCQlicmVhazsN
CiAJCWNhc2UgR1JBX1Byb2ZpbGluZ1JhdGU6DQogCQkJKigoaW50ICopZ2ho
LnByb2ZfcmF0ZSkgPSB2YV9hcmcoYXJncywgaW50KTsNCkluZGV4OiBsaWJy
YXJpZXMvY2xpYi9uYXRpdmUvQ2xhc3MuYw0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KUkNTIGZpbGU6IC9jdnMva2FmZmUva2FmZmUvbGlicmFyaWVzL2Ns
aWIvbmF0aXZlL0NsYXNzLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjYw
DQpkaWZmIC11IC1yMS42MCBDbGFzcy5jDQotLS0gbGlicmFyaWVzL2NsaWIv
bmF0aXZlL0NsYXNzLmMJMTIgQXByIDIwMDIgMjE6MTM6NTkgLTAwMDAJMS42
MA0KKysrIGxpYnJhcmllcy9jbGliL25hdGl2ZS9DbGFzcy5jCTggTWF5IDIw
MDIgMTE6NDU6MzcgLTAwMDANCkBAIC05MjcsNyArOTI3LDEyIEBADQogCWlm
IChmICE9IDApIHsNCiAJCXJldHVybiAoZik7DQogCX0NCi0JU2lnbmFsRXJy
b3IoImphdmEubGFuZy5Ob1N1Y2hGaWVsZEV4Y2VwdGlvbiIsICIiKTsgLyog
RklYTUUgKi8NCisJLyogbGlrZSBTaWduYWxFcnJvciwgZXhjZXB0IHRoYXQg
dGhlIG5hbWUgb2YgdGhlIGZpZWxkIHRoYXQgaXMNCisJICogbm90IGZvdW5k
IGJlY29tZXMgdGhlIGVycm9yIG1lc3NhZ2UNCisJICovDQorCXRocm93RXhj
ZXB0aW9uKChzdHJ1Y3QgSGphdmFfbGFuZ19UaHJvd2FibGUqKWV4ZWN1dGVf
amF2YV9jb25zdHJ1Y3RvcigNCisJCSJqYXZhLmxhbmcuTm9TdWNoRmllbGRF
eGNlcHRpb24iLCAwLCAwLA0KKwkJIihMamF2YS9sYW5nL1N0cmluZzspViIs
IG5hbWUpKTsNCiB9DQogDQogSEFycmF5T2ZPYmplY3QqDQpJbmRleDogbGli
cmFyaWVzL2NsaWIvbmF0aXZlL0ZpZWxkLmMNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NClJDUyBmaWxlOiAvY3ZzL2thZmZlL2thZmZlL2xpYnJhcmllcy9j
bGliL25hdGl2ZS9GaWVsZC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4x
NA0KZGlmZiAtdSAtcjEuMTQgRmllbGQuYw0KLS0tIGxpYnJhcmllcy9jbGli
L25hdGl2ZS9GaWVsZC5jCTYgTWF5IDIwMDIgMDI6Mjc6MzMgLTAwMDAJMS4x
NA0KKysrIGxpYnJhcmllcy9jbGliL25hdGl2ZS9GaWVsZC5jCTggTWF5IDIw
MDIgMTE6NDU6MzcgLTAwMDANCkBAIC04MSwxMTEgKzgxLDExMSBAQA0KIH0N
CiANCiBzdHJ1Y3QgSGphdmFfbGFuZ19PYmplY3QqDQotSmF2YV9qYXZhX2xh
bmdfcmVmbGVjdF9GaWVsZF9nZXRPYmplY3QwKHN0cnVjdCBIamF2YV9sYW5n
X3JlZmxlY3RfRmllbGQgKiB0aGlzLCBzdHJ1Y3QgSGphdmFfbGFuZ19PYmpl
Y3QqIG9iaikNCitqYXZhX2xhbmdfcmVmbGVjdF9GaWVsZF9nZXRPYmplY3Qw
KHN0cnVjdCBIamF2YV9sYW5nX3JlZmxlY3RfRmllbGQgKiB0aGlzLCBzdHJ1
Y3QgSGphdmFfbGFuZ19PYmplY3QqIG9iaikNCiB7DQogCXJldHVybiAoKHN0
cnVjdCBIamF2YV9sYW5nX09iamVjdCopZ2V0RmllbGRBZGRyZXNzKHRoaXMs
IG9iaikpOw0KIH0NCiANCiBqYm9vbGVhbg0KLUphdmFfamF2YV9sYW5nX3Jl
ZmxlY3RfRmllbGRfZ2V0Qm9vbGVhbjAoc3RydWN0IEhqYXZhX2xhbmdfcmVm
bGVjdF9GaWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCog
b2JqKQ0KK2phdmFfbGFuZ19yZWZsZWN0X0ZpZWxkX2dldEJvb2xlYW4wKHN0
cnVjdCBIamF2YV9sYW5nX3JlZmxlY3RfRmllbGQgKiB0aGlzLCBzdHJ1Y3Qg
SGphdmFfbGFuZ19PYmplY3QqIG9iaikNCiB7DQogCXJldHVybiAoKihqYm9v
bGVhbiopZ2V0RmllbGRBZGRyZXNzKHRoaXMsIG9iaikpOw0KIH0NCiANCiBq
Ynl0ZQ0KLUphdmFfamF2YV9sYW5nX3JlZmxlY3RfRmllbGRfZ2V0Qnl0ZTAo
c3RydWN0IEhqYXZhX2xhbmdfcmVmbGVjdF9GaWVsZCAqIHRoaXMsIHN0cnVj
dCBIamF2YV9sYW5nX09iamVjdCogb2JqKQ0KK2phdmFfbGFuZ19yZWZsZWN0
X0ZpZWxkX2dldEJ5dGUwKHN0cnVjdCBIamF2YV9sYW5nX3JlZmxlY3RfRmll
bGQgKiB0aGlzLCBzdHJ1Y3QgSGphdmFfbGFuZ19PYmplY3QqIG9iaikNCiB7
DQogCXJldHVybiAoKihqYnl0ZSopZ2V0RmllbGRBZGRyZXNzKHRoaXMsIG9i
aikpOw0KIH0NCiANCiBqY2hhcg0KLUphdmFfamF2YV9sYW5nX3JlZmxlY3Rf
RmllbGRfZ2V0Q2hhcjAoc3RydWN0IEhqYXZhX2xhbmdfcmVmbGVjdF9GaWVs
ZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCogb2JqKQ0KK2ph
dmFfbGFuZ19yZWZsZWN0X0ZpZWxkX2dldENoYXIwKHN0cnVjdCBIamF2YV9s
YW5nX3JlZmxlY3RfRmllbGQgKiB0aGlzLCBzdHJ1Y3QgSGphdmFfbGFuZ19P
YmplY3QqIG9iaikNCiB7DQogCXJldHVybiAoKihqY2hhciopZ2V0RmllbGRB
ZGRyZXNzKHRoaXMsIG9iaikpOw0KIH0NCiANCiANCiBqc2hvcnQNCi1KYXZh
X2phdmFfbGFuZ19yZWZsZWN0X0ZpZWxkX2dldFNob3J0MChzdHJ1Y3QgSGph
dmFfbGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywgc3RydWN0IEhqYXZhX2xh
bmdfT2JqZWN0KiBvYmopDQoramF2YV9sYW5nX3JlZmxlY3RfRmllbGRfZ2V0
U2hvcnQwKHN0cnVjdCBIamF2YV9sYW5nX3JlZmxlY3RfRmllbGQgKiB0aGlz
LCBzdHJ1Y3QgSGphdmFfbGFuZ19PYmplY3QqIG9iaikNCiB7DQogCXJldHVy
biAoKihqc2hvcnQqKWdldEZpZWxkQWRkcmVzcyh0aGlzLCBvYmopKTsNCiB9
DQogDQogamludA0KLUphdmFfamF2YV9sYW5nX3JlZmxlY3RfRmllbGRfZ2V0
SW50MChzdHJ1Y3QgSGphdmFfbGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywg
c3RydWN0IEhqYXZhX2xhbmdfT2JqZWN0KiBvYmopDQoramF2YV9sYW5nX3Jl
ZmxlY3RfRmllbGRfZ2V0SW50MChzdHJ1Y3QgSGphdmFfbGFuZ19yZWZsZWN0
X0ZpZWxkICogdGhpcywgc3RydWN0IEhqYXZhX2xhbmdfT2JqZWN0KiBvYmop
DQogew0KIAlyZXR1cm4gKCooamludCopZ2V0RmllbGRBZGRyZXNzKHRoaXMs
IG9iaikpOw0KIH0NCiANCiBqbG9uZw0KLUphdmFfamF2YV9sYW5nX3JlZmxl
Y3RfRmllbGRfZ2V0TG9uZzAoc3RydWN0IEhqYXZhX2xhbmdfcmVmbGVjdF9G
aWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCogb2JqKQ0K
K2phdmFfbGFuZ19yZWZsZWN0X0ZpZWxkX2dldExvbmcwKHN0cnVjdCBIamF2
YV9sYW5nX3JlZmxlY3RfRmllbGQgKiB0aGlzLCBzdHJ1Y3QgSGphdmFfbGFu
Z19PYmplY3QqIG9iaikNCiB7DQogCXJldHVybiAoKihqbG9uZyopZ2V0Rmll
bGRBZGRyZXNzKHRoaXMsIG9iaikpOw0KIH0NCiANCiBqZmxvYXQNCi1KYXZh
X2phdmFfbGFuZ19yZWZsZWN0X0ZpZWxkX2dldEZsb2F0MChzdHJ1Y3QgSGph
dmFfbGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywgc3RydWN0IEhqYXZhX2xh
bmdfT2JqZWN0KiBvYmopDQoramF2YV9sYW5nX3JlZmxlY3RfRmllbGRfZ2V0
RmxvYXQwKHN0cnVjdCBIamF2YV9sYW5nX3JlZmxlY3RfRmllbGQgKiB0aGlz
LCBzdHJ1Y3QgSGphdmFfbGFuZ19PYmplY3QqIG9iaikNCiB7DQogCXJldHVy
biAoKihqZmxvYXQqKWdldEZpZWxkQWRkcmVzcyh0aGlzLCBvYmopKTsNCiB9
DQogDQogamRvdWJsZQ0KLUphdmFfamF2YV9sYW5nX3JlZmxlY3RfRmllbGRf
Z2V0RG91YmxlMChzdHJ1Y3QgSGphdmFfbGFuZ19yZWZsZWN0X0ZpZWxkICog
dGhpcywgc3RydWN0IEhqYXZhX2xhbmdfT2JqZWN0KiBvYmopDQoramF2YV9s
YW5nX3JlZmxlY3RfRmllbGRfZ2V0RG91YmxlMChzdHJ1Y3QgSGphdmFfbGFu
Z19yZWZsZWN0X0ZpZWxkICogdGhpcywgc3RydWN0IEhqYXZhX2xhbmdfT2Jq
ZWN0KiBvYmopDQogew0KIAlyZXR1cm4gKCooamRvdWJsZSopZ2V0RmllbGRB
ZGRyZXNzKHRoaXMsIG9iaikpOw0KIH0NCiANCiANCiB2b2lkDQotSmF2YV9q
YXZhX2xhbmdfcmVmbGVjdF9GaWVsZF9zZXRCb29sZWFuKHN0cnVjdCBIamF2
YV9sYW5nX3JlZmxlY3RfRmllbGQgKiB0aGlzLCBzdHJ1Y3QgSGphdmFfbGFu
Z19PYmplY3QqIG9iaiwgamJvb2xlYW4gdmFsKQ0KK2phdmFfbGFuZ19yZWZs
ZWN0X0ZpZWxkX3NldEJvb2xlYW4oc3RydWN0IEhqYXZhX2xhbmdfcmVmbGVj
dF9GaWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCogb2Jq
LCBqYm9vbGVhbiB2YWwpDQogew0KIAkqKGpib29sZWFuKilnZXRGaWVsZEFk
ZHJlc3ModGhpcywgb2JqKSA9IHZhbDsNCiB9DQogDQogdm9pZA0KLUphdmFf
amF2YV9sYW5nX3JlZmxlY3RfRmllbGRfc2V0Qnl0ZShzdHJ1Y3QgSGphdmFf
bGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywgc3RydWN0IEhqYXZhX2xhbmdf
T2JqZWN0KiBvYmosIGpieXRlIHZhbCkNCitqYXZhX2xhbmdfcmVmbGVjdF9G
aWVsZF9zZXRCeXRlKHN0cnVjdCBIamF2YV9sYW5nX3JlZmxlY3RfRmllbGQg
KiB0aGlzLCBzdHJ1Y3QgSGphdmFfbGFuZ19PYmplY3QqIG9iaiwgamJ5dGUg
dmFsKQ0KIHsNCiAJKihqYnl0ZSopZ2V0RmllbGRBZGRyZXNzKHRoaXMsIG9i
aikgPSB2YWw7DQogfQ0KIA0KIHZvaWQNCi1KYXZhX2phdmFfbGFuZ19yZWZs
ZWN0X0ZpZWxkX3NldENoYXIoc3RydWN0IEhqYXZhX2xhbmdfcmVmbGVjdF9G
aWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCogb2JqLCBq
Y2hhciB2YWwpDQoramF2YV9sYW5nX3JlZmxlY3RfRmllbGRfc2V0Q2hhcihz
dHJ1Y3QgSGphdmFfbGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywgc3RydWN0
IEhqYXZhX2xhbmdfT2JqZWN0KiBvYmosIGpjaGFyIHZhbCkNCiB7DQogCSoo
amNoYXIqKWdldEZpZWxkQWRkcmVzcyh0aGlzLCBvYmopID0gdmFsOw0KIH0N
CiANCiB2b2lkDQotSmF2YV9qYXZhX2xhbmdfcmVmbGVjdF9GaWVsZF9zZXRT
aG9ydChzdHJ1Y3QgSGphdmFfbGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywg
c3RydWN0IEhqYXZhX2xhbmdfT2JqZWN0KiBvYmosIGpzaG9ydCB2YWwpDQor
amF2YV9sYW5nX3JlZmxlY3RfRmllbGRfc2V0U2hvcnQoc3RydWN0IEhqYXZh
X2xhbmdfcmVmbGVjdF9GaWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5n
X09iamVjdCogb2JqLCBqc2hvcnQgdmFsKQ0KIHsNCiAJKihqc2hvcnQqKWdl
dEZpZWxkQWRkcmVzcyh0aGlzLCBvYmopID0gdmFsOw0KIH0NCiANCiB2b2lk
DQotSmF2YV9qYXZhX2xhbmdfcmVmbGVjdF9GaWVsZF9zZXRJbnQoc3RydWN0
IEhqYXZhX2xhbmdfcmVmbGVjdF9GaWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2
YV9sYW5nX09iamVjdCogb2JqLCBqaW50IHZhbCkNCitqYXZhX2xhbmdfcmVm
bGVjdF9GaWVsZF9zZXRJbnQoc3RydWN0IEhqYXZhX2xhbmdfcmVmbGVjdF9G
aWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCogb2JqLCBq
aW50IHZhbCkNCiB7DQogCSooamludCopZ2V0RmllbGRBZGRyZXNzKHRoaXMs
IG9iaikgPSB2YWw7DQogfQ0KIA0KIHZvaWQNCi1KYXZhX2phdmFfbGFuZ19y
ZWZsZWN0X0ZpZWxkX3NldExvbmcoc3RydWN0IEhqYXZhX2xhbmdfcmVmbGVj
dF9GaWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCogb2Jq
LCBqbG9uZyB2YWwpDQoramF2YV9sYW5nX3JlZmxlY3RfRmllbGRfc2V0TG9u
ZyhzdHJ1Y3QgSGphdmFfbGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywgc3Ry
dWN0IEhqYXZhX2xhbmdfT2JqZWN0KiBvYmosIGpsb25nIHZhbCkNCiB7DQog
CSooamxvbmcqKWdldEZpZWxkQWRkcmVzcyh0aGlzLCBvYmopID0gdmFsOw0K
IH0NCiANCiB2b2lkDQotSmF2YV9qYXZhX2xhbmdfcmVmbGVjdF9GaWVsZF9z
ZXRGbG9hdChzdHJ1Y3QgSGphdmFfbGFuZ19yZWZsZWN0X0ZpZWxkICogdGhp
cywgc3RydWN0IEhqYXZhX2xhbmdfT2JqZWN0KiBvYmosIGpmbG9hdCB2YWwp
DQoramF2YV9sYW5nX3JlZmxlY3RfRmllbGRfc2V0RmxvYXQoc3RydWN0IEhq
YXZhX2xhbmdfcmVmbGVjdF9GaWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9s
YW5nX09iamVjdCogb2JqLCBqZmxvYXQgdmFsKQ0KIHsNCiAJKihqZmxvYXQq
KWdldEZpZWxkQWRkcmVzcyh0aGlzLCBvYmopID0gdmFsOw0KIH0NCiANCiB2
b2lkDQotSmF2YV9qYXZhX2xhbmdfcmVmbGVjdF9GaWVsZF9zZXREb3VibGUo
c3RydWN0IEhqYXZhX2xhbmdfcmVmbGVjdF9GaWVsZCAqIHRoaXMsIHN0cnVj
dCBIamF2YV9sYW5nX09iamVjdCogb2JqLCBqZG91YmxlIHZhbCkNCitqYXZh
X2xhbmdfcmVmbGVjdF9GaWVsZF9zZXREb3VibGUoc3RydWN0IEhqYXZhX2xh
bmdfcmVmbGVjdF9GaWVsZCAqIHRoaXMsIHN0cnVjdCBIamF2YV9sYW5nX09i
amVjdCogb2JqLCBqZG91YmxlIHZhbCkNCiB7DQogCSooamRvdWJsZSopZ2V0
RmllbGRBZGRyZXNzKHRoaXMsIG9iaikgPSB2YWw7DQogfQ0KIA0KIHZvaWQN
Ci1KYXZhX2phdmFfbGFuZ19yZWZsZWN0X0ZpZWxkX3NldChzdHJ1Y3QgSGph
dmFfbGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywgc3RydWN0IEhqYXZhX2xh
bmdfT2JqZWN0KiBvYmosIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCogdmFs
KQ0KK2phdmFfbGFuZ19yZWZsZWN0X0ZpZWxkX3NldChzdHJ1Y3QgSGphdmFf
bGFuZ19yZWZsZWN0X0ZpZWxkICogdGhpcywgc3RydWN0IEhqYXZhX2xhbmdf
T2JqZWN0KiBvYmosIHN0cnVjdCBIamF2YV9sYW5nX09iamVjdCogdmFsKQ0K
IHsNCiAJKihqb2JqZWN0KilnZXRGaWVsZEFkZHJlc3ModGhpcywgb2JqKSA9
IHZhbDsNCiB9DQpJbmRleDogbGlicmFyaWVzL2phdmFsaWIvS2xhc3Nlcy5q
YXINCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL2th
ZmZlL2thZmZlL2xpYnJhcmllcy9qYXZhbGliL0tsYXNzZXMuamFyLHYNCnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4yMjINCmRpZmYgLXUgLXIxLjIyMiBLbGFz
c2VzLmphcg0KQmluYXJ5IGZpbGVzIC90bXAvY3ZzSzg0T2JZIGFuZCBLbGFz
c2VzLmphciBkaWZmZXINCkluZGV4OiBsaWJyYXJpZXMvamF2YWxpYi9rYWZm
ZS9uZXQvd3d3L3Byb3RvY29sL2h0dHAvSHR0cFVSTENvbm5lY3Rpb24uamF2
YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMva2Fm
ZmUva2FmZmUvbGlicmFyaWVzL2phdmFsaWIva2FmZmUvbmV0L3d3dy9wcm90
b2NvbC9odHRwL0h0dHBVUkxDb25uZWN0aW9uLmphdmEsdg0KcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjExDQpkaWZmIC11IC1yMS4xMSBIdHRwVVJMQ29ubmVj
dGlvbi5qYXZhDQotLS0gbGlicmFyaWVzL2phdmFsaWIva2FmZmUvbmV0L3d3
dy9wcm90b2NvbC9odHRwL0h0dHBVUkxDb25uZWN0aW9uLmphdmEJNCBKYW4g
MjAwMiAwNToxMjozMyAtMDAwMAkxLjExDQorKysgbGlicmFyaWVzL2phdmFs
aWIva2FmZmUvbmV0L3d3dy9wcm90b2NvbC9odHRwL0h0dHBVUkxDb25uZWN0
aW9uLmphdmEJOCBNYXkgMjAwMiAxMTo0NTo0MyAtMDAwMA0KQEAgLTQwLDcg
KzQwLDcgQEANCiAJLy8gSG93IHRoZXNlIHByb3BlcnRpZXMgYXJlIHVuZG9j
dW1lbnRlZCBpbiB0aGUgQVBJIGRvYy4gIFdlIGtub3cNCiAJLy8gYWJvdXQg
dGhlbSBmcm9tIHd3dy5pY2Vzb2Z0Lm5vJ3Mgd2VicGFnZQ0KIAlwcm94eUhv
c3QgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImh0dHAucHJveHlIb3N0Iik7DQot
CWlmIChwcm94eUhvc3QgIT0gbnVsbCkgew0KKwlpZiAocHJveHlIb3N0ICE9
IG51bGwgJiYgIXByb3h5SG9zdC5lcXVhbHMoIiIpKSB7DQogCQkvLyBTdW4g
YWxzbyBzdXBwb3J0cyBhIGh0dHAubm9uUHJveHlIb3N0cyBwcm9wZXJ0eSB0
bw0KIAkJLy8gYXZvaWQgcHJveHkgdXNlIGZvciBsb2NhbCBzaXRlcy4gIEl0
J3MgYSByZWd1bGFyIGV4cHJlc3Npb24NCiAJCS8vIGxpa2Ugc28gIioucGEu
ZGVjLmNvbXwqLmNvbXBhcS5jb20iDQpAQCAtNTIsNyArNTIsMTEgQEANCiAJ
CXVzZVByb3h5ID0gdHJ1ZTsNCiAJCVN0cmluZyBwcCA9IFN5c3RlbS5nZXRQ
cm9wZXJ0eSgiaHR0cC5wcm94eVBvcnQiKTsNCiAJCWlmIChwcCAhPSBudWxs
KSB7DQotCQkJcHJveHlQb3J0ID0gSW50ZWdlci5wYXJzZUludChwcCk7DQor
CQkJdHJ5IHsNCisJCQkJcHJveHlQb3J0ID0gSW50ZWdlci5wYXJzZUludChw
cCk7DQorCQkJfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsN
CisJCQkJcHJveHlQb3J0ID0gLTE7IC8vIE1ha2Ugc3VyZS4NCisJCQl9DQog
CQl9DQogCX0NCiB9DQpAQCAtNzQsMTEgKzc4LDE4IEBADQogCQlpZiAodXNl
UHJveHkpIHsNCiAJCQlwb3J0ID0gcHJveHlQb3J0Ow0KIAkJCWhvc3QgPSBw
cm94eUhvc3Q7DQorCQkJaWYgKHBvcnQgPT0gLTEpIHsNCisJCQkJcG9ydCA9
IDgwOw0KKwkJCX0NCisJCQl0cnkgew0KKwkJCQlzb2NrID0gbmV3IFNvY2tl
dChob3N0LCBwb3J0KTsNCisJCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7
DQorCQkJCS8vIFN1biBKREsganVzdCBpZ25vcmVzIHByb3h5IGVycm9ycy4N
CisJCQl9DQogCQl9DQotCQllbHNlIHsNCi0JCQlwb3J0ID0gdXJsLmdldFBv
cnQoKTsNCi0JCQlob3N0ID0gdXJsLmdldEhvc3QoKTsNCi0JCX0NCisNCisJ
CXBvcnQgPSB1cmwuZ2V0UG9ydCgpOw0KKwkJaG9zdCA9IHVybC5nZXRIb3N0
KCk7DQogCQlpZiAocG9ydCA9PSAtMSkgew0KIAkJCXBvcnQgPSA4MDsNCiAJ
CX0NCg==
---559023410-33463914-1020859161=:4014--