[kaffe] [PATCH] java.security.CodeSource implementation
Dalibor Topic
robilad@yahoo.com
Tue, 6 Aug 2002 07:43:52 -0700 (PDT)
--0-1228839411-1028645032=:76661
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
the attached patch implements
java.security.CodeSource, and partially implements
java.net.SocketPermission.
This patch lays the foundation to improve
ProtectionDomain support for loaded classes.
best regards,
dalibor topic
__________________________________________________
Do You Yahoo!?
Yahoo! Health - Feel better, live better
http://health.yahoo.com
--0-1228839411-1028645032=:76661
Content-Type: application/octet-stream; name=ChangeLog
Content-Transfer-Encoding: base64
Content-Description: ChangeLog
Content-Disposition: attachment; filename=ChangeLog
CSogbGlicmFyaWVzL2phdmFsaWIvTWFrZWZpbGUuYW0sIGxpYnJhcmllcy9q
YXZhbGliL01ha2VmaWxlLmluOgoJYWRkZWQgamF2YS9uZXQvU29ja2V0UGVy
bWlzc2lvbi5qYXZhLgoJKiBsaWJyYXJpZXMvamF2YWxpYi9qYXZhL25ldC9T
b2NrZXRQZXJtaXNzaW9uLmphdmE6IG5ldyBmaWxlLgoJKiBsaWJyYXJpZXMv
amF2YWxpYi9qYXZhL3NlY3VyaXR5L0NvZGVTb3VyY2UuamF2YTogaW1wbGVt
ZW50ZWQuCg==
--0-1228839411-1028645032=:76661
Content-Type: application/octet-stream; name="code_source.diff"
Content-Transfer-Encoding: base64
Content-Description: code_source.diff
Content-Disposition: attachment; filename="code_source.diff"
ZGlmZiAtdXJOIC14IENWUyAteCBNYWtlZmlsZSAteCByZWJ1aWxkTGliIC14
IHN0YW1wIC4uLy4uL2N1cnJlbnQva2FmZmUvbGlicmFyaWVzL2phdmFsaWIv
TWFrZWZpbGUuYW0gbGlicmFyaWVzL2phdmFsaWIvTWFrZWZpbGUuYW0KLS0t
IC4uLy4uL2N1cnJlbnQva2FmZmUvbGlicmFyaWVzL2phdmFsaWIvTWFrZWZp
bGUuYW0JU2F0IEp1bCAyMCAxNzo0MDo0NiAyMDAyCisrKyBsaWJyYXJpZXMv
amF2YWxpYi9NYWtlZmlsZS5hbQlUdWUgQXVnICA2IDE1OjUyOjM3IDIwMDIK
QEAgLTQ1MSw2ICs0NTEsNyBAQAogCWphdmEvbmV0L1NvY2tldElucHV0U3Ry
ZWFtLmphdmEgXAogCWphdmEvbmV0L1NvY2tldE9wdGlvbnMuamF2YSBcCiAJ
amF2YS9uZXQvU29ja2V0T3V0cHV0U3RyZWFtLmphdmEgXAorCWphdmEvbmV0
L1NvY2tldFBlcm1pc3Npb24uamF2YSBcCiAJamF2YS9uZXQvVVJMLmphdmEg
XAogCWphdmEvbmV0L1VSTENsYXNzTG9hZGVyLmphdmEgXAogCWphdmEvbmV0
L1VSTENvbm5lY3Rpb24uamF2YSBcCmRpZmYgLXVyTiAteCBDVlMgLXggTWFr
ZWZpbGUgLXggcmVidWlsZExpYiAteCBzdGFtcCAuLi8uLi9jdXJyZW50L2th
ZmZlL2xpYnJhcmllcy9qYXZhbGliL01ha2VmaWxlLmluIGxpYnJhcmllcy9q
YXZhbGliL01ha2VmaWxlLmluCi0tLSAuLi8uLi9jdXJyZW50L2thZmZlL2xp
YnJhcmllcy9qYXZhbGliL01ha2VmaWxlLmluCVNhdCBKdWwgMjAgMTc6NDA6
NDYgMjAwMgorKysgbGlicmFyaWVzL2phdmFsaWIvTWFrZWZpbGUuaW4JVHVl
IEF1ZyAgNiAxNTo1MzoxMCAyMDAyCkBAIC0xNzAsNyArMTcwLDcgQEAKIAog
amF2YV9tYXRoX1NSQ1MgPSAgCWphdmEvbWF0aC9CaWdEZWNpbWFsLmphdmEg
CWphdmEvbWF0aC9CaWdJbnRlZ2VyLmphdmEKIAotamF2YV9uZXRfU1JDUyA9
ICAJamF2YS9uZXQvQmluZEV4Y2VwdGlvbi5qYXZhIAlqYXZhL25ldC9Db25u
ZWN0RXhjZXB0aW9uLmphdmEgCWphdmEvbmV0L0NvbnRlbnRIYW5kbGVyLmph
dmEgCWphdmEvbmV0L0NvbnRlbnRIYW5kbGVyRmFjdG9yeS5qYXZhIAlqYXZh
L25ldC9EYXRhZ3JhbVBhY2tldC5qYXZhIAlqYXZhL25ldC9EYXRhZ3JhbVNv
Y2tldC5qYXZhIAlqYXZhL25ldC9EYXRhZ3JhbVNvY2tldEltcGwuamF2YSAJ
amF2YS9uZXQvRGF0YWdyYW1Tb2NrZXRJbXBsRmFjdG9yeS5qYXZhIAlqYXZh
L25ldC9GaWxlTmFtZU1hcC5qYXZhIAlqYXZhL25ldC9IdHRwVVJMQ29ubmVj
dGlvbi5qYXZhIAlqYXZhL25ldC9JbmV0QWRkcmVzcy5qYXZhIAlqYXZhL25l
dC9JbmV0QWRkcmVzc0ltcGwuamF2YSAJamF2YS9uZXQvSmFyVVJMQ29ubmVj
dGlvbi5qYXZhIAlqYXZhL25ldC9NYWxmb3JtZWRVUkxFeGNlcHRpb24uamF2
YSAJamF2YS9uZXQvTXVsdGljYXN0U29ja2V0LmphdmEgCWphdmEvbmV0L05l
dFBlcm1pc3Npb24uamF2YSAJamF2YS9uZXQvTm9Sb3V0ZVRvSG9zdEV4Y2Vw
dGlvbi5qYXZhIAlqYXZhL25ldC9QbGFpbkRhdGFncmFtU29ja2V0SW1wbC5q
YXZhIAlqYXZhL25ldC9QbGFpblNvY2tldEltcGwuamF2YSAJamF2YS9uZXQv
UHJvdG9jb2xFeGNlcHRpb24uamF2YSAJamF2YS9uZXQvU2VydmVyU29ja2V0
LmphdmEgCWphdmEvbmV0L1NvY2tldC5qYXZhIAlqYXZhL25ldC9Tb2NrZXRF
eGNlcHRpb24uamF2YSAJamF2YS9uZXQvU29ja2V0SW1wbC5qYXZhIAlqYXZh
L25ldC9Tb2NrZXRJbXBsRmFjdG9yeS5qYXZhIAlqYXZhL25ldC9Tb2NrZXRJ
bnB1dFN0cmVhbS5qYXZhIAlqYXZhL25ldC9Tb2NrZXRPcHRpb25zLmphdmEg
CWphdmEvbmV0L1NvY2tldE91dHB1dFN0cmVhbS5qYXZhIAlqYXZhL25ldC9V
UkwuamF2YSAJamF2YS9uZXQvVVJMQ2xhc3NMb2FkZXIuamF2YSAJamF2YS9u
ZXQvVVJMQ29ubmVjdGlvbi5qYXZhIAlqYXZhL25ldC9VUkxEZWNvZGVyLmph
dmEgCWphdmEvbmV0L1VSTEVuY29kZXIuamF2YSAJamF2YS9uZXQvVVJMU3Ry
ZWFtSGFuZGxlci5qYXZhIAlqYXZhL25ldC9VUkxTdHJlYW1IYW5kbGVyRmFj
dG9yeS5qYXZhIAlqYXZhL25ldC9Vbmtub3duSG9zdEV4Y2VwdGlvbi5qYXZh
IAlqYXZhL25ldC9Vbmtub3duU2VydmljZUV4Y2VwdGlvbi5qYXZhCitqYXZh
X25ldF9TUkNTID0gIAlqYXZhL25ldC9CaW5kRXhjZXB0aW9uLmphdmEgCWph
dmEvbmV0L0Nvbm5lY3RFeGNlcHRpb24uamF2YSAJamF2YS9uZXQvQ29udGVu
dEhhbmRsZXIuamF2YSAJamF2YS9uZXQvQ29udGVudEhhbmRsZXJGYWN0b3J5
LmphdmEgCWphdmEvbmV0L0RhdGFncmFtUGFja2V0LmphdmEgCWphdmEvbmV0
L0RhdGFncmFtU29ja2V0LmphdmEgCWphdmEvbmV0L0RhdGFncmFtU29ja2V0
SW1wbC5qYXZhIAlqYXZhL25ldC9EYXRhZ3JhbVNvY2tldEltcGxGYWN0b3J5
LmphdmEgCWphdmEvbmV0L0ZpbGVOYW1lTWFwLmphdmEgCWphdmEvbmV0L0h0
dHBVUkxDb25uZWN0aW9uLmphdmEgCWphdmEvbmV0L0luZXRBZGRyZXNzLmph
dmEgCWphdmEvbmV0L0luZXRBZGRyZXNzSW1wbC5qYXZhIAlqYXZhL25ldC9K
YXJVUkxDb25uZWN0aW9uLmphdmEgCWphdmEvbmV0L01hbGZvcm1lZFVSTEV4
Y2VwdGlvbi5qYXZhIAlqYXZhL25ldC9NdWx0aWNhc3RTb2NrZXQuamF2YSAJ
amF2YS9uZXQvTmV0UGVybWlzc2lvbi5qYXZhIAlqYXZhL25ldC9Ob1JvdXRl
VG9Ib3N0RXhjZXB0aW9uLmphdmEgCWphdmEvbmV0L1BsYWluRGF0YWdyYW1T
b2NrZXRJbXBsLmphdmEgCWphdmEvbmV0L1BsYWluU29ja2V0SW1wbC5qYXZh
IAlqYXZhL25ldC9Qcm90b2NvbEV4Y2VwdGlvbi5qYXZhIAlqYXZhL25ldC9T
ZXJ2ZXJTb2NrZXQuamF2YSAJamF2YS9uZXQvU29ja2V0LmphdmEgCWphdmEv
bmV0L1NvY2tldEV4Y2VwdGlvbi5qYXZhIAlqYXZhL25ldC9Tb2NrZXRJbXBs
LmphdmEgCWphdmEvbmV0L1NvY2tldEltcGxGYWN0b3J5LmphdmEgCWphdmEv
bmV0L1NvY2tldElucHV0U3RyZWFtLmphdmEgCWphdmEvbmV0L1NvY2tldE9w
dGlvbnMuamF2YSAJamF2YS9uZXQvU29ja2V0T3V0cHV0U3RyZWFtLmphdmEJ
amF2YS9uZXQvU29ja2V0UGVybWlzc2lvbi5qYXZhIAlqYXZhL25ldC9VUkwu
amF2YSAJamF2YS9uZXQvVVJMQ2xhc3NMb2FkZXIuamF2YSAJamF2YS9uZXQv
VVJMQ29ubmVjdGlvbi5qYXZhIAlqYXZhL25ldC9VUkxEZWNvZGVyLmphdmEg
CWphdmEvbmV0L1VSTEVuY29kZXIuamF2YSAJamF2YS9uZXQvVVJMU3RyZWFt
SGFuZGxlci5qYXZhIAlqYXZhL25ldC9VUkxTdHJlYW1IYW5kbGVyRmFjdG9y
eS5qYXZhIAlqYXZhL25ldC9Vbmtub3duSG9zdEV4Y2VwdGlvbi5qYXZhIAlq
YXZhL25ldC9Vbmtub3duU2VydmljZUV4Y2VwdGlvbi5qYXZhCiAKIGphdmFf
c2VjdXJpdHlfU1JDUyA9ICAJamF2YS9zZWN1cml0eS9BY2Nlc3NDb250cm9s
Q29udGV4dC5qYXZhIAlqYXZhL3NlY3VyaXR5L0FjY2Vzc0NvbnRyb2xFeGNl
cHRpb24uamF2YSAJamF2YS9zZWN1cml0eS9BY2Nlc3NDb250cm9sbGVyLmph
dmEgCWphdmEvc2VjdXJpdHkvQWxnb3JpdGhtUGFyYW1ldGVyR2VuZXJhdG9y
LmphdmEgCWphdmEvc2VjdXJpdHkvQWxnb3JpdGhtUGFyYW1ldGVyR2VuZXJh
dG9yU3BpLmphdmEgCWphdmEvc2VjdXJpdHkvQWxnb3JpdGhtUGFyYW1ldGVy
cy5qYXZhIAlqYXZhL3NlY3VyaXR5L0FsZ29yaXRobVBhcmFtZXRlcnNTcGku
amF2YSAJamF2YS9zZWN1cml0eS9CYXNpY1Blcm1pc3Npb24uamF2YSAJamF2
YS9zZWN1cml0eS9DZXJ0aWZpY2F0ZS5qYXZhIAlqYXZhL3NlY3VyaXR5L0Nv
ZGVTb3VyY2UuamF2YSAJamF2YS9zZWN1cml0eS9EaWdlc3RFeGNlcHRpb24u
amF2YSAJamF2YS9zZWN1cml0eS9EaWdlc3RJbnB1dFN0cmVhbS5qYXZhIAlq
YXZhL3NlY3VyaXR5L0RpZ2VzdE91dHB1dFN0cmVhbS5qYXZhIAlqYXZhL3Nl
Y3VyaXR5L0dlbmVyYWxTZWN1cml0eUV4Y2VwdGlvbi5qYXZhIAlqYXZhL3Nl
Y3VyaXR5L0d1YXJkLmphdmEgCWphdmEvc2VjdXJpdHkvR3VhcmRlZE9iamVj
dC5qYXZhIAlqYXZhL3NlY3VyaXR5L0lkZW50aXR5LmphdmEgCWphdmEvc2Vj
dXJpdHkvSWRlbnRpdHlTY29wZS5qYXZhIAlqYXZhL3NlY3VyaXR5L0ludmFs
aWRBbGdvcml0aG1QYXJhbWV0ZXJFeGNlcHRpb24uamF2YSAJamF2YS9zZWN1
cml0eS9JbnZhbGlkS2V5RXhjZXB0aW9uLmphdmEgCWphdmEvc2VjdXJpdHkv
SW52YWxpZFBhcmFtZXRlckV4Y2VwdGlvbi5qYXZhIAlqYXZhL3NlY3VyaXR5
L0tleS5qYXZhIAlqYXZhL3NlY3VyaXR5L0tleUV4Y2VwdGlvbi5qYXZhIAlq
YXZhL3NlY3VyaXR5L0tleUZhY3RvcnkuamF2YSAJamF2YS9zZWN1cml0eS9L
ZXlGYWN0b3J5U3BpLmphdmEgCWphdmEvc2VjdXJpdHkvS2V5TWFuYWdlbWVu
dEV4Y2VwdGlvbi5qYXZhIAlqYXZhL3NlY3VyaXR5L0tleVBhaXIuamF2YSAJ
amF2YS9zZWN1cml0eS9LZXlQYWlyR2VuZXJhdG9yLmphdmEgCWphdmEvc2Vj
dXJpdHkvS2V5UGFpckdlbmVyYXRvclNwaS5qYXZhIAlqYXZhL3NlY3VyaXR5
L0tleVN0b3JlLmphdmEgCWphdmEvc2VjdXJpdHkvS2V5U3RvcmVFeGNlcHRp
b24uamF2YSAJamF2YS9zZWN1cml0eS9LZXlTdG9yZVNwaS5qYXZhIAlqYXZh
L3NlY3VyaXR5L01lc3NhZ2VEaWdlc3QuamF2YSAJamF2YS9zZWN1cml0eS9N
ZXNzYWdlRGlnZXN0U3BpLmphdmEgCWphdmEvc2VjdXJpdHkvTm9TdWNoQWxn
b3JpdGhtRXhjZXB0aW9uLmphdmEgCWphdmEvc2VjdXJpdHkvTm9TdWNoUHJv
dmlkZXJFeGNlcHRpb24uamF2YSAJamF2YS9zZWN1cml0eS9QZXJtaXNzaW9u
LmphdmEgCWphdmEvc2VjdXJpdHkvUGVybWlzc2lvbkNvbGxlY3Rpb24uamF2
YSAJamF2YS9zZWN1cml0eS9QcmluY2lwYWwuamF2YSAJamF2YS9zZWN1cml0
eS9Qcml2YXRlS2V5LmphdmEgCWphdmEvc2VjdXJpdHkvUHJpdmlsZWdlZEFj
dGlvbi5qYXZhIAlqYXZhL3NlY3VyaXR5L1ByaXZpbGVnZWRBY3Rpb25FeGNl
cHRpb24uamF2YSAJamF2YS9zZWN1cml0eS9Qcml2aWxlZ2VkRXhjZXB0aW9u
QWN0aW9uLmphdmEgCWphdmEvc2VjdXJpdHkvUHJvdGVjdGlvbkRvbWFpbi5q
YXZhIAlqYXZhL3NlY3VyaXR5L1Byb3ZpZGVyLmphdmEgCWphdmEvc2VjdXJp
dHkvUHJvdmlkZXJFeGNlcHRpb24uamF2YSAJamF2YS9zZWN1cml0eS9QdWJs
aWNLZXkuamF2YSAJamF2YS9zZWN1cml0eS9TZWN1cmVDbGFzc0xvYWRlci5q
YXZhIAlqYXZhL3NlY3VyaXR5L1NlY3VyZVJhbmRvbS5qYXZhIAlqYXZhL3Nl
Y3VyaXR5L1NlY3VyZVJhbmRvbVNwaS5qYXZhIAlqYXZhL3NlY3VyaXR5L1Nl
Y3VyaXR5LmphdmEgCWphdmEvc2VjdXJpdHkvU2VjdXJpdHlQZXJtaXNzaW9u
LmphdmEgCWphdmEvc2VjdXJpdHkvU2lnbmF0dXJlLmphdmEgCWphdmEvc2Vj
dXJpdHkvU2lnbmF0dXJlRXhjZXB0aW9uLmphdmEgCWphdmEvc2VjdXJpdHkv
U2lnbmF0dXJlU3BpLmphdmEgCWphdmEvc2VjdXJpdHkvU2lnbmVyLmphdmEg
CWphdmEvc2VjdXJpdHkvVW5yZWNvdmVyYWJsZUtleUV4Y2VwdGlvbi5qYXZh
CiAKZGlmZiAtdXJOIC14IENWUyAteCBNYWtlZmlsZSAteCByZWJ1aWxkTGli
IC14IHN0YW1wIC4uLy4uL2N1cnJlbnQva2FmZmUvbGlicmFyaWVzL2phdmFs
aWIvamF2YS9uZXQvU29ja2V0UGVybWlzc2lvbi5qYXZhIGxpYnJhcmllcy9q
YXZhbGliL2phdmEvbmV0L1NvY2tldFBlcm1pc3Npb24uamF2YQotLS0gLi4v
Li4vY3VycmVudC9rYWZmZS9saWJyYXJpZXMvamF2YWxpYi9qYXZhL25ldC9T
b2NrZXRQZXJtaXNzaW9uLmphdmEJVGh1IEphbiAgMSAwMTowMDowMCAxOTcw
CisrKyBsaWJyYXJpZXMvamF2YWxpYi9qYXZhL25ldC9Tb2NrZXRQZXJtaXNz
aW9uLmphdmEJVHVlIEF1ZyAgNiAxNTo1NDowMSAyMDAyCkBAIC0wLDAgKzEs
NjMgQEAKKy8qCisgKiBKYXZhIGNvcmUgbGlicmFyeSBjb21wb25lbnQuCisg
KgorICogQ29weXJpZ2h0IChjKSAyMDAyCisgKglEYWxpYm9yIFRvcGljLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBTZWUgdGhlIGZpbGUgImxp
Y2Vuc2UudGVybXMiIGZvciBpbmZvcm1hdGlvbiBvbiB1c2FnZSBhbmQgcmVk
aXN0cmlidXRpb24KKyAqIG9mIHRoaXMgZmlsZS4KKyAqCisgKiBBdXRob3I6
IERhbGlib3IgVG9waWMgPHJvYmlsYWRAeWFob28uY29tPgorICovCisKK3Bh
Y2thZ2UgamF2YS5uZXQ7CisKK2ltcG9ydCBqYXZhLnNlY3VyaXR5LlBlcm1p
c3Npb247CisKK3B1YmxpYyBjbGFzcyBTb2NrZXRQZXJtaXNzaW9uIGV4dGVu
ZHMgUGVybWlzc2lvbiB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBT
dHJpbmcgTE9DQUxIT1NUID0gImxvY2FsaG9zdCI7CisKKyAgICBwcml2YXRl
IFN0cmluZyBob3N0OworICAgIHByaXZhdGUgU3RyaW5nIGFjdGlvbjsKKwor
ICAgIHB1YmxpYyBTb2NrZXRQZXJtaXNzaW9uKFN0cmluZyBob3N0LCBTdHJp
bmcgYWN0aW9uKSB7CisJc3VwZXIoaG9zdCk7CisKKwlpZiAoaG9zdCA9PSBu
dWxsKSB7CisJICAgIGhvc3QgPSBMT0NBTEhPU1Q7CisJfQorCisJLy8gRklY
TUUgOiBBZGQgYXJndW1lbnQgY2hlY2tpbmcKKwl0aGlzLmhvc3QgPSBob3N0
OworCXRoaXMuYWN0aW9uID0gYWN0aW9uOworICAgIH0KKworICAgIHB1Ymxp
YyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisJaWYgKHRoaXMgPT0g
b2JqKSB7CisJICAgIHJldHVybiB0cnVlOworCX0KKwllbHNlIGlmIChvYmog
PT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSB7CisJ
ICAgIHJldHVybiBmYWxzZTsKKwl9CisKKwlTb2NrZXRQZXJtaXNzaW9uIHRo
YXQgPSAoU29ja2V0UGVybWlzc2lvbikgb2JqOworCisJcmV0dXJuIGdldEFj
dGlvbnMoKS5lcXVhbHModGhhdC5nZXRBY3Rpb25zKCkpOworICAgIH0KKwor
ICAgIHB1YmxpYyBTdHJpbmcgZ2V0QWN0aW9ucygpIHsKKwlyZXR1cm4gYWN0
aW9uOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisJ
cmV0dXJuIGdldEFjdGlvbnMoKS5oYXNoQ29kZSgpOworICAgIH0KKworICAg
IHB1YmxpYyBib29sZWFuIGltcGxpZXMoUGVybWlzc2lvbiBwKSB7CisJLy8g
RklYTUUgOiBJbXBsZW1lbnQgbWUhCisJcmV0dXJuIGZhbHNlOworICAgIH0K
K30KKworCmRpZmYgLXVyTiAteCBDVlMgLXggTWFrZWZpbGUgLXggcmVidWls
ZExpYiAteCBzdGFtcCAuLi8uLi9jdXJyZW50L2thZmZlL2xpYnJhcmllcy9q
YXZhbGliL2phdmEvc2VjdXJpdHkvQ29kZVNvdXJjZS5qYXZhIGxpYnJhcmll
cy9qYXZhbGliL2phdmEvc2VjdXJpdHkvQ29kZVNvdXJjZS5qYXZhCi0tLSAu
Li8uLi9jdXJyZW50L2thZmZlL2xpYnJhcmllcy9qYXZhbGliL2phdmEvc2Vj
dXJpdHkvQ29kZVNvdXJjZS5qYXZhCVRodSBOb3YgMjIgMDc6MjE6MTUgMjAw
MQorKysgbGlicmFyaWVzL2phdmFsaWIvamF2YS9zZWN1cml0eS9Db2RlU291
cmNlLmphdmEJVHVlIEF1ZyAgNiAxNTo1NDowMSAyMDAyCkBAIC0xNSw5ICsx
NSwxNDMgQEAKIAogcGFja2FnZSBqYXZhLnNlY3VyaXR5OwogCitpbXBvcnQg
amF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS5uZXQuU29ja2V0
UGVybWlzc2lvbjsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2
YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2lt
cG9ydCBqYXZhLnV0aWwuU2V0OwogCi1wdWJsaWMgY2xhc3MgQ29kZVNvdXJj
ZSB7CitwdWJsaWMgY2xhc3MgQ29kZVNvdXJjZSBpbXBsZW1lbnRzIFNlcmlh
bGl6YWJsZSB7CiAKLQkvLyBYWFggaW1wbGVtZW50IG1lCisgICAgcHJpdmF0
ZSBVUkwgbG9jYXRpb247CisgICAgcHJpdmF0ZSBDZXJ0aWZpY2F0ZSBbXSBj
ZXJ0aWZpY2F0ZXM7CiAKKyAgICBwdWJsaWMgQ29kZVNvdXJjZShVUkwgbG9j
YXRpb24sIENlcnRpZmljYXRlW10gY2VydGlmaWNhdGVzKSB7CisJdGhpcy5s
b2NhdGlvbiA9IGxvY2F0aW9uOworCXRoaXMuY2VydGlmaWNhdGVzID0gY2Vy
dGlmaWNhdGVzOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFs
cyhPYmplY3Qgb2JqKSB7CisJaWYgKHRoaXMgPT0gb2JqKSB7CisJICAgIHJl
dHVybiB0cnVlOworCX0KKwllbHNlIGlmIChvYmogPT0gbnVsbCB8fCBnZXRD
bGFzcygpICE9IG9iai5nZXRDbGFzcygpKSB7CisJICAgIHJldHVybiBmYWxz
ZTsKKwl9CisKKwlDb2RlU291cmNlIHRoYXQgPSAoQ29kZVNvdXJjZSkgb2Jq
OworCisJcmV0dXJuIGdldExvY2F0aW9uKCkuZXF1YWxzKHRoYXQuZ2V0TG9j
YXRpb24oKSkKKwkgICAgJiYgZ2V0Q2VydFNldCgpLmVxdWFscyh0aGF0Lmdl
dENlcnRTZXQoKSk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIENlcnRp
ZmljYXRlW10gZ2V0Q2VydGlmaWNhdGVzKCkgeworCXJldHVybiBjZXJ0aWZp
Y2F0ZXM7CisgICAgfQorCisgICAgcHJpdmF0ZSBTZXQgZ2V0Q2VydFNldCgp
IHsKKwlyZXR1cm4gbmV3IEhhc2hTZXQoQXJyYXlzLmFzTGlzdChnZXRDZXJ0
aWZpY2F0ZXMoKSkpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBVUkwg
Z2V0TG9jYXRpb24oKSB7CisJcmV0dXJuIGxvY2F0aW9uOworICAgIH0KKwor
ICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisJcmV0dXJuIGdldExvY2F0
aW9uKCkuaGFzaENvZGUoKQorCSAgICBeIGdldENlcnRTZXQoKS5oYXNoQ29k
ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGltcGxpZXMoQ29k
ZVNvdXJjZSBvdGhlcikgeworCS8qIENoZWNrIDEgKi8KKwlpZiAob3RoZXIg
PT0gbnVsbCkgeworCSAgICByZXR1cm4gZmFsc2U7CisJfQorCisJLyogQ2hl
Y2sgMiAqLworCWlmIChnZXRDZXJ0aWZpY2F0ZXMoKSAhPSBudWxsKSB7CisJ
ICAgIGlmIChvdGhlci5nZXRDZXJ0aWZpY2F0ZXMoKSA9PSBudWxsKSB7CisJ
CXJldHVybiBmYWxzZTsKKwkgICAgfQorCisJICAgIGlmICghb3RoZXIuZ2V0
Q2VydFNldCgpLmNvbnRhaW5zKGdldENlcnRTZXQoKSkpIHsKKwkJcmV0dXJu
IGZhbHNlOworCSAgICB9CisJfQorCisJLyogQ2hlY2sgMyAqLworCWlmIChn
ZXRMb2NhdGlvbigpICE9IG51bGwpIHsKKworCSAgICAvKiBDaGVjayAzLjEg
Ki8KKwkgICAgaWYgKG90aGVyLmdldExvY2F0aW9uKCkgPT0gbnVsbCkgewor
CQlyZXR1cm4gZmFsc2U7CisJICAgIH0KKworCSAgICAvKiBDaGVjayAzLjIg
Ki8KKwkgICAgaWYgKGdldExvY2F0aW9uKCkuZXF1YWxzKG90aGVyLmdldExv
Y2F0aW9uKCkpKSB7CisJCXJldHVybiB0cnVlOworCSAgICB9CisKKwkgICAg
LyogQ2hlY2sgMy4zICovCisJICAgIGlmICghZ2V0TG9jYXRpb24oKS5nZXRQ
cm90b2NvbCgpLmVxdWFscyhvdGhlci5nZXRMb2NhdGlvbigpLmdldFByb3Rv
Y29sKCkpKSB7CisJCXJldHVybiBmYWxzZTsKKwkgICAgfQorCisJICAgIC8q
IENoZWNrIDMuNCAqLworCSAgICBpZiAgKGdldExvY2F0aW9uKCkuZ2V0SG9z
dCgpICE9IG51bGwpIHsKKwkJaWYgKCEgbmV3IFNvY2tldFBlcm1pc3Npb24o
Z2V0TG9jYXRpb24oKS5nZXRIb3N0KCksICIiKQorCQkgICAgLmltcGxpZXMo
bmV3IFNvY2tldFBlcm1pc3Npb24ob3RoZXIuZ2V0TG9jYXRpb24oKS5nZXRI
b3N0KCksICIiKSkpIHsKKwkJICAgIHJldHVybiBmYWxzZTsKKwkJfQorCSAg
ICB9CisKKwkgICAgLyogQ2hlY2sgMy41ICovCisJICAgIGlmIChnZXRMb2Nh
dGlvbigpLmdldFBvcnQoKSAhPSAtMSkgeworCQlpZiAoZ2V0TG9jYXRpb24o
KS5nZXRQb3J0KCkgIT0gb3RoZXIuZ2V0TG9jYXRpb24oKS5nZXRQb3J0KCkp
IHsKKwkJICAgIHJldHVybiBmYWxzZTsKKwkJfQorCSAgICB9CisKKwkgICAg
LyogQ2hlY2sgMy42ICovCisJICAgIGlmICghIGdldExvY2F0aW9uKCkuZ2V0
RmlsZSgpLmVxdWFscyhvdGhlci5nZXRMb2NhdGlvbigpLmdldEZpbGUoKSkp
IHsKKwkJU3RyaW5nIHRoaXNfZmlsZSA9IGdldExvY2F0aW9uKCkuZ2V0Rmls
ZSgpOworCQlTdHJpbmcgb3RoZXJfZmlsZSA9IG90aGVyLmdldExvY2F0aW9u
KCkuZ2V0RmlsZSgpOworCisJCWlmICh0aGlzX2ZpbGUuZW5kc1dpdGgoIi8t
IikpIHsKKwkJICAgIGlmICghIG90aGVyX2ZpbGUuc3RhcnRzV2l0aCh0aGlz
X2ZpbGUuc3Vic3RyaW5nKDAsIHRoaXNfZmlsZS5sZW5ndGgoKSAtIDEpKSkg
eworCQkJcmV0dXJuIGZhbHNlOworCQkgICAgfQorCQl9CisJCWVsc2UgaWYg
KHRoaXNfZmlsZS5lbmRzV2l0aCgiLyoiKSkgeworCQkgICAgaWYgKCEgKG90
aGVyX2ZpbGUuc3RhcnRzV2l0aCh0aGlzX2ZpbGUpCisJCQkgICAmJiBvdGhl
cl9maWxlLmxhc3RJbmRleE9mKCcvJykgPCB0aGlzX2ZpbGUubGVuZ3RoKCkp
KSB7CisJCQlyZXR1cm4gZmFsc2U7CisJCSAgICB9CisJCX0KKwkJZWxzZSBp
ZiAoISB0aGlzX2ZpbGUuZW5kc1dpdGgoIi8iKSkgeworCQkgICAgaWYgKCEg
b3RoZXJfZmlsZS5lcXVhbHModGhpc19maWxlICsgJy8nKSkgeworCQkJcmV0
dXJuIGZhbHNlOworCQkgICAgfQorCQl9CisJICAgIH0KKworCSAgICAvKiBD
aGVjayAzLjcgKi8KKwkgICAgaWYgKGdldExvY2F0aW9uKCkuZ2V0UmVmKCkg
IT0gbnVsbCkgeworCQlpZiAoICEgZ2V0TG9jYXRpb24oKS5nZXRSZWYoKS5l
cXVhbHMob3RoZXIuZ2V0TG9jYXRpb24oKS5nZXRSZWYoKSkpIHsKKwkJICAg
IHJldHVybiBmYWxzZTsKKwkJfQorCSAgICB9CisJfQorCisKKwlyZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkg
eworCXJldHVybiBnZXRDbGFzcygpLmdldE5hbWUoKQorCSAgICArICJbbG9j
YXRpb249IiArIGdldExvY2F0aW9uKCkKKwkgICAgKyAiLGNlcnRpZmljYXRl
cz0iICsgZ2V0Q2VydFNldCgpCisJICAgICsgJ10nOworICAgIH0KIH0K
--0-1228839411-1028645032=:76661--