[MonoDevelop] More filebrowser :)

Iñigo Illán kodeport@terra.es
Sat, 13 Mar 2004 11:58:30 +0100


--=-85B62eSmFdW8B6wnCPTA
Content-Type: multipart/mixed; boundary="=-cQVGOfSaYLlGT/BsuS5x"


--=-cQVGOfSaYLlGT/BsuS5x
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

I have added ability to create, rename and delete folders. I have also
added support for .hidden files (like in nautilus). The patch works fine
agains r1150.

There is one issue with creating new folders. If your TreeView can't
handle all the list of folders without scrollbars, then, creating a
folder will not prompt you to introduce the name of the folder. I have
watched rhythmbox and it has the same problem. Does anybody know how
this can be "repaired"?.

I'm sorry if the explanation isn't very clear. If you don't understand
it, you better go and see it for yourself .


--=-cQVGOfSaYLlGT/BsuS5x
Content-Disposition: attachment; filename=filebrowser.patch
Content-Type: text/plain; name=filebrowser.patch; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64

LS0tIE1vbm9EZXZlbG9wLmJhay9zcmMvTGlicmFyaWVzL01vbm9EZXZlbG9wLkd1aS5XaWRnZXRz
L0ZpbGVCcm93c2VyL0ZpbGVCcm93c2VyLmNzCTIwMDQtMDMtMTAgMDA6NTA6MTguMDAwMDAwMDAw
ICswMTAwDQorKysgTW9ub0RldmVsb3Avc3JjL0xpYnJhcmllcy9Nb25vRGV2ZWxvcC5HdWkuV2lk
Z2V0cy9GaWxlQnJvd3Nlci9GaWxlQnJvd3Nlci5jcwkyMDA0LTAzLTEzIDExOjQxOjExLjAwMDAw
MDAwMCArMDEwMA0KQEAgLTQsNiArNCw3IEBADQogLy8NCiANCiB1c2luZyBTeXN0ZW07DQordXNp
bmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KIHVzaW5nIFN5c3RlbS5EaWFnbm9zdGljczsNCiB1c2lu
ZyBTeXN0ZW0uSU87DQogdXNpbmcgR3RrOw0KQEAgLTE2LDE3ICsxNywyOSBAQA0KIHsNCiAJcHVi
bGljIGRlbGVnYXRlIHZvaWQgRGlyZWN0b3J5Q2hhbmdlZEV2ZW50SGFuZGxlciAoc3RyaW5nIHBh
dGgpOw0KIA0KKwlwcml2YXRlIGVudW0gUGVyZm9ybWluZ1Rhc2sNCisJew0KKwkJTm9uZSwNCisJ
CVJlbmFtaW5nLA0KKwkJQ3JlYXRpbmdOZXcNCisJfQ0KKw0KIAlwdWJsaWMgY2xhc3MgRmlsZUJy
b3dzZXIgOiBWQm94DQogCXsNCiAJCXB1YmxpYyBEaXJlY3RvcnlDaGFuZ2VkRXZlbnRIYW5kbGVy
IERpcmVjdG9yeUNoYW5nZWRFdmVudDsNCiAJCXByaXZhdGUgc3RhdGljIEdMaWIuR1R5cGUgZ3R5
cGU7DQogCQlwcml2YXRlIEd0ay5UcmVlVmlldyB0djsNCi0JCXByaXZhdGUgQnV0dG9uIHVwYnV0
dG9uOw0KLQkJcHJpdmF0ZSBFbnRyeSBlbnRyeTsNCisJCXByaXZhdGUgR3RrLlNjcm9sbGVkV2lu
ZG93IHNjcm9sbGVkd2luZG93Ow0KKwkJcHJpdmF0ZSBHdGsuQnV0dG9uIHVwYnV0dG9uLCBob21l
YnV0dG9uOw0KKwkJcHJpdmF0ZSBHdGsuRW50cnkgZW50cnk7DQorCQlwcml2YXRlIElNZXNzYWdl
U2VydmljZSBtZXNzYWdlU2VydmljZTsNCisJCXByaXZhdGUgR3RrLkNlbGxSZW5kZXJlclRleHQg
dGV4dF9yZW5kZXI7DQogCQlwcml2YXRlIExpc3RTdG9yZSBzdG9yZTsNCisJCXByaXZhdGUgUGVy
Zm9ybWluZ1Rhc2sgcGVyZm9ybWluZ3Rhc2sgPSBQZXJmb3JtaW5nVGFzay5Ob25lOw0KKwkJcHJp
dmF0ZSBIYXNodGFibGUgaGlkZGVuZm9sZGVycyA9IG5ldyBIYXNodGFibGUoKTsNCiAJCXByaXZh
dGUgc3RyaW5nIGN1cnJlbnREaXI7DQogCQlwcml2YXRlIGJvb2wgaWdub3JlSGlkZGVuID0gdHJ1
ZTsNCi0JCXByaXZhdGUgc3RyaW5nW10gZmlsZXM7DQorCQlwcml2YXRlIEFycmF5TGlzdCBmaWxl
cyA9IG5ldyBBcnJheUxpc3QoKTsNCiAJCXByaXZhdGUgYm9vbCBpbml0ID0gZmFsc2U7DQogCQlQ
cm9wZXJ0eVNlcnZpY2UgUHJvcGVydHlTZXJ2aWNlID0gKFByb3BlcnR5U2VydmljZSkgU2Vydmlj
ZU1hbmFnZXIuU2VydmljZXMuR2V0U2VydmljZSAodHlwZW9mIChQcm9wZXJ0eVNlcnZpY2UpKTsN
CiANCkBAIC0zNiwxMSArNDksMTMgQEANCiAJCQkJVmZzLkluaXQoKTsNCiAJCQl9DQogDQotCQkJ
U2Nyb2xsZWRXaW5kb3cgc2Nyb2xsZWR3aW5kb3cgPSBuZXcgU2Nyb2xsZWRXaW5kb3cgKCk7DQor
CQkJbWVzc2FnZVNlcnZpY2UgPSAoSU1lc3NhZ2VTZXJ2aWNlKVNlcnZpY2VNYW5hZ2VyLlNlcnZp
Y2VzLkdldFNlcnZpY2UodHlwZW9mKElNZXNzYWdlU2VydmljZSkpOw0KKw0KKwkJCXNjcm9sbGVk
d2luZG93ID0gbmV3IFNjcm9sbGVkV2luZG93KCk7DQogCQkJc2Nyb2xsZWR3aW5kb3cuVnNjcm9s
bGJhclBvbGljeSA9IFBvbGljeVR5cGUuQXV0b21hdGljOw0KIAkJCXNjcm9sbGVkd2luZG93Lkhz
Y3JvbGxiYXJQb2xpY3kgPSBQb2xpY3lUeXBlLkF1dG9tYXRpYzsNCiANCi0JCQlCdXR0b24gaG9t
ZWJ1dHRvbiA9IG5ldyBCdXR0b24gKCk7DQorCQkJaG9tZWJ1dHRvbiA9IG5ldyBCdXR0b24gKCk7
DQogCQkJaG9tZWJ1dHRvbi5BZGQgKG5ldyBJbWFnZSAoU3RvY2suSG9tZSwgSWNvblNpemUuU21h
bGxUb29sYmFyKSk7DQogCQkJaG9tZWJ1dHRvbi5SZWxpZWYgPSBSZWxpZWZTdHlsZS5Ob25lOw0K
IAkJCWhvbWVidXR0b24uQ2xpY2tlZCArPSBuZXcgRXZlbnRIYW5kbGVyIChPbkhvbWVDbGlja2Vk
KTsNCkBAIC03MSw3ICs4Niw4IEBADQogCQkJZGlyZWN0b3J5Y29sdW1uLlBhY2tTdGFydCAocGl4
X3JlbmRlciwgZmFsc2UpOw0KIAkJCWRpcmVjdG9yeWNvbHVtbi5BZGRBdHRyaWJ1dGUgKHBpeF9y
ZW5kZXIsICJwaXhidWYiLCAwKTsNCiANCi0JCQlDZWxsUmVuZGVyZXJUZXh0IHRleHRfcmVuZGVy
ID0gbmV3IENlbGxSZW5kZXJlclRleHQgKCk7DQorCQkJdGV4dF9yZW5kZXIgPSBuZXcgQ2VsbFJl
bmRlcmVyVGV4dCAoKTsNCisJCQl0ZXh0X3JlbmRlci5FZGl0ZWQgKz0gbmV3IEVkaXRlZEhhbmRs
ZXIgKE9uRGlyRWRpdGVkKTsNCiAJCQlkaXJlY3Rvcnljb2x1bW4uUGFja1N0YXJ0ICh0ZXh0X3Jl
bmRlciwgZmFsc2UpOw0KIAkJCWRpcmVjdG9yeWNvbHVtbi5BZGRBdHRyaWJ1dGUgKHRleHRfcmVu
ZGVyLCAidGV4dCIsIDEpOw0KIAkJCQ0KQEAgLTEwOSwxNCArMTI1LDE2IEBADQogCQkJCSovDQog
CQkJCQ0KIAkJCQlpZ25vcmVIaWRkZW4gPSB2YWx1ZTsNCisJCQkJUG9wdWxhdGUoKTsNCiAJCQl9
DQogCQl9DQogDQogCQlwdWJsaWMgc3RyaW5nIEN1cnJlbnREaXINCiAJCXsNCi0JCQlnZXQgeyBy
ZXR1cm4gU3lzdGVtLklPLlBhdGguR2V0RnVsbFBhdGggKGN1cnJlbnREaXIpOyB9DQorCQkJZ2V0
IHsgcmV0dXJuIGN1cnJlbnREaXI7IH0NCiAJCQlzZXQgeyANCiAJCQkJCWN1cnJlbnREaXIgPSBT
eXN0ZW0uSU8uUGF0aC5HZXRGdWxsUGF0aCAodmFsdWUpOw0KKwkJCQkJR2V0TGlzdE9mSGlkZGVu
Rm9sZGVycygpOw0KIAkJCQkJUG9wdWxhdGUgKCk7DQogDQogCQkJCQlpZiAoRGlyZWN0b3J5Q2hh
bmdlZEV2ZW50ICE9IG51bGwpIHsNCkBAIC0xMjcsMTEgKzE0NSw4IEBADQogDQogCQlwdWJsaWMg
c3RyaW5nW10gRmlsZXMNCiAJCXsNCi0JCQlnZXQNCi0JCQl7DQotCQkJCWlmIChmaWxlcyA9PSBu
dWxsKQ0KLQkJCQkJcmV0dXJuIG5ldyBzdHJpbmcgWzBdOw0KLQkJCQlyZXR1cm4gZmlsZXM7IA0K
KwkJCWdldCB7DQorCQkJCXJldHVybiAoc3RyaW5nW10pIGZpbGVzLlRvQXJyYXkodHlwZW9mKHN0
cmluZykpOyANCiAJCQl9DQogCQl9DQogDQpAQCAtMTY3LDcgKzE4Miw3IEBADQogCQkJew0KIAkJ
CQlpZiAoaWdub3JlSGlkZGVuKQ0KIAkJCQl7DQotCQkJCQlpZiAoIWQuTmFtZS5TdGFydHNXaXRo
ICgiLiIpKQ0KKwkJCQkJaWYgKCFkLk5hbWUuU3RhcnRzV2l0aCAoIi4iKSAmJiBOb3RIaWRkZW4o
ZC5OYW1lKSkNCiAJCQkJCQlzdG9yZS5BcHBlbmRWYWx1ZXMgKEZpbGVJY29uTG9hZGVyLkdldFBp
eGJ1ZkZvckZpbGUgKFN5c3RlbS5JTy5QYXRoLkNvbWJpbmUgKEN1cnJlbnREaXIsIGQuTmFtZSks
IDI0LCAyNCksIGQuTmFtZSk7DQogCQkJCX0NCiAJCQkJZWxzZQ0KQEAgLTE4MCwxNyArMTk1LDIw
IEBADQogCQkJCXR2LlNlbGVjdGlvbi5TZWxlY3RQYXRoIChuZXcgR3RrLlRyZWVQYXRoICgiMCIp
KTsNCiANCiAJCQllbnRyeS5UZXh0ID0gQ3VycmVudERpcjsNCi0JCQlmaWxlcyA9IERpcmVjdG9y
eS5HZXRGaWxlcyAoQ3VycmVudERpcik7DQotCQl9DQorCQkJc3RyaW5nW10gZmlsZXNhdXggPSBE
aXJlY3RvcnkuR2V0RmlsZXMgKEN1cnJlbnREaXIpOw0KIA0KLQkJcHJpdmF0ZSB2b2lkIE9uU2Vs
ZWN0aW9uQ2hhbmdlZCAob2JqZWN0IG8sIEV2ZW50QXJncyBhcmdzKQ0KLQkJew0KLQkJCVRyZWVJ
dGVyIGl0ZXI7DQotCQkJVHJlZU1vZGVsIG1vZGVsOw0KLQkJCWlmICh0di5TZWxlY3Rpb24uR2V0
U2VsZWN0ZWQgKG91dCBtb2RlbCwgb3V0IGl0ZXIpKQ0KKwkJCWZpbGVzLkNsZWFyKCk7DQorCQkJ
Zm9yIChpbnQgY29udCA9IDA7IGNvbnQgPCBmaWxlc2F1eC5MZW5ndGg7IGNvbnQrKykNCiAJCQl7
DQotCQkJCXN0cmluZyBzZWxlY3Rpb24gPSAoc3RyaW5nKSBzdG9yZS5HZXRWYWx1ZSAoaXRlciwg
MSk7DQotCQkJCWZpbGVzID0gRGlyZWN0b3J5LkdldEZpbGVzIChTeXN0ZW0uSU8uUGF0aC5Db21i
aW5lIChjdXJyZW50RGlyLCBzZWxlY3Rpb24pKTsNCisJCQkJaWYgKGlnbm9yZUhpZGRlbikNCisJ
CQkJew0KKwkJCQkJaWYgKE5vdEhpZGRlbiAoU3lzdGVtLklPLlBhdGguR2V0RmlsZU5hbWUoZmls
ZXNhdXhbY29udF0pKSkNCisJCQkJCXsNCisJCQkJCQlmaWxlcy5BZGQgKGZpbGVzYXV4W2NvbnRd
KTsNCisJCQkJCX0NCisJCQkJfQ0KKwkJCQllbHNlDQorCQkJCQlmaWxlcy5BZGQgKGZpbGVzYXV4
W2NvbnRdKTsNCiAJCQl9DQogCQl9DQogDQpAQCAtMjIyLDE3ICsyNDAsMzEgQEANCiANCiAJCXBy
aXZhdGUgdm9pZCBTaG93UG9wdXAgKCkNCiAJCXsNCi0JCQkgTWVudSBtZW51ID0gbmV3IE1lbnUg
KCk7DQotCQkJIE1lbnVJdGVtIG9wZW5maWxlYnJvd3NlciA9IG5ldyBNZW51SXRlbSAoIk9wZW4g
d2l0aCBmaWxlIGJyb3dzZXIiKTsNCi0JCQkgb3BlbmZpbGVicm93c2VyLkFjdGl2YXRlZCArPSBu
ZXcgRXZlbnRIYW5kbGVyIChPcGVuRmlsZUJyb3dzZXIpOw0KLQ0KLQkJCSBNZW51SXRlbSBvcGVu
dGVybWluYWwgPSBuZXcgTWVudUl0ZW0gKCJPcGVuIHdpdGggdGVybWluYWwiKTsNCi0JCQkgb3Bl
bnRlcm1pbmFsLkFjdGl2YXRlZCArPSBuZXcgRXZlbnRIYW5kbGVyIChPcGVuVGVybWluYWwpOw0K
LQ0KLQkJCSBtZW51LkFwcGVuZCAob3BlbnRlcm1pbmFsKTsNCi0JCQkgbWVudS5BcHBlbmQgKG9w
ZW5maWxlYnJvd3Nlcik7DQotCQkJIG1lbnUuUG9wdXAgKG51bGwsIG51bGwsIG51bGwsIEludFB0
ci5aZXJvLCAzLCBHbG9iYWwuQ3VycmVudEV2ZW50VGltZSk7DQotCQkJIG1lbnUuU2hvd0FsbCAo
KTsNCisJCQlNZW51IG1lbnUgPSBuZXcgTWVudSAoKTsNCisJCQlNZW51SXRlbSBvcGVuZmlsZWJy
b3dzZXIgPSBuZXcgTWVudUl0ZW0gKCJPcGVuIHdpdGggZmlsZSBicm93c2VyIik7DQorCQkJb3Bl
bmZpbGVicm93c2VyLkFjdGl2YXRlZCArPSBuZXcgRXZlbnRIYW5kbGVyIChPcGVuRmlsZUJyb3dz
ZXIpOw0KKw0KKwkJCU1lbnVJdGVtIG9wZW50ZXJtaW5hbCA9IG5ldyBNZW51SXRlbSAoIk9wZW4g
d2l0aCB0ZXJtaW5hbCIpOw0KKwkJCW9wZW50ZXJtaW5hbC5BY3RpdmF0ZWQgKz0gbmV3IEV2ZW50
SGFuZGxlciAoT3BlblRlcm1pbmFsKTsNCisNCisJCQlHdGsuTWVudUl0ZW0gcmVuYW1lID0gbmV3
IE1lbnVJdGVtKCJSZW5hbWUiKTsNCisJCQlyZW5hbWUuQWN0aXZhdGVkICs9IG5ldyBFdmVudEhh
bmRsZXIoT25EaXJSZW5hbWUpOw0KKw0KKwkJCUd0ay5NZW51SXRlbSBkZWxldGUgPSBuZXcgTWVu
dUl0ZW0oIkRlbGV0ZSIpOw0KKwkJCWRlbGV0ZS5BY3RpdmF0ZWQgKz0gbmV3IEV2ZW50SGFuZGxl
cihPbkRpckRlbGV0ZSk7DQorDQorCQkJR3RrLk1lbnVJdGVtIG5ld2ZvbGRlciA9IG5ldyBNZW51
SXRlbSgiQ3JlYXRlIG5ldyBmb2xkZXIiKTsNCisJCQluZXdmb2xkZXIuQWN0aXZhdGVkICs9IG5l
dyBFdmVudEhhbmRsZXIoT25OZXdEaXIpOw0KKw0KKwkJCW1lbnUuQXBwZW5kKG5ld2ZvbGRlcik7
DQorCQkJbWVudS5BcHBlbmQobmV3IE1lbnVJdGVtKCkpOw0KKwkJCW1lbnUuQXBwZW5kKGRlbGV0
ZSk7DQorCQkJbWVudS5BcHBlbmQocmVuYW1lKTsNCisJCQltZW51LkFwcGVuZChuZXcgTWVudUl0
ZW0oKSk7DQorCQkJbWVudS5BcHBlbmQgKG9wZW50ZXJtaW5hbCk7DQorCQkJbWVudS5BcHBlbmQg
KG9wZW5maWxlYnJvd3Nlcik7DQorCQkJbWVudS5Qb3B1cCAobnVsbCwgbnVsbCwgbnVsbCwgSW50
UHRyLlplcm8sIDMsIEdsb2JhbC5DdXJyZW50RXZlbnRUaW1lKTsNCisJCQltZW51LlNob3dBbGwg
KCk7DQogCQl9DQogCQkNCiAJCXByaXZhdGUgdm9pZCBPcGVuRmlsZUJyb3dzZXIgKG9iamVjdCBv
LCBFdmVudEFyZ3MgYXJncykNCkBAIC0yODIsNyArMzE0LDE0OSBAQA0KIAkJew0KIAkJCWlmIChE
aXJlY3RvcnkuRXhpc3RzIChlbnRyeS5UZXh0LlRyaW0gKCkpKQ0KIAkJCQlDdXJyZW50RGlyID0g
ZW50cnkuVGV4dDsNCisJCQllbHNlDQorCQkJew0KKyAgICAJCQltZXNzYWdlU2VydmljZS5TaG93
RXJyb3IgKG51bGwsICJDYW5ub3QgZW50ZXIgJyIgKyBlbnRyeS5UZXh0ICsgIicgZm9sZGVyIik7
DQorCQkJfQ0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSB2b2lkIE9uRGlyUmVuYW1lIChvYmplY3Qgbywg
RXZlbnRBcmdzIGFyZ3MpDQorCQl7DQorCQkJVHJlZVBhdGggdHJlZXBhdGg7DQorCQkJVHJlZVZp
ZXdDb2x1bW4gY29sdW1uOw0KKw0KKwkJCXBlcmZvcm1pbmd0YXNrID0gUGVyZm9ybWluZ1Rhc2su
UmVuYW1pbmc7DQorCQkJdGV4dF9yZW5kZXIuRWRpdGFibGUgPSB0cnVlOw0KKw0KKwkJCXR2Lkdl
dEN1cnNvciAob3V0IHRyZWVwYXRoLCBvdXQgY29sdW1uKTsNCisNCisJCQl0di5TZXRDdXJzb3Ig
KHRyZWVwYXRoLCBjb2x1bW4sIHRydWUpOw0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSB2b2lkIE9uRGly
RWRpdGVkIChvYmplY3QgbywgRWRpdGVkQXJncyBhcmdzKQ0KKwkJew0KKwkJCXRleHRfcmVuZGVy
LkVkaXRhYmxlID0gZmFsc2U7DQorDQorCQkJc3dpdGNoIChwZXJmb3JtaW5ndGFzaykNCisJCQl7
DQorCQkJCWNhc2UgUGVyZm9ybWluZ1Rhc2suUmVuYW1pbmc6DQorCQkJCQkJCQkJCQlUcmVlSXRl
ciBpdGVyOw0KKw0KKwkJCQkJCQkJCQkJdHYuTW9kZWwuSXRlck50aENoaWxkIChvdXQgaXRlciwg
SW50MzIuUGFyc2UgKGFyZ3MuUGF0aCkpOw0KKw0KKwkJCQkJCQkJCQkJc3RyaW5nIG9sZHBhdGgg
PSAoc3RyaW5nKSBzdG9yZS5HZXRWYWx1ZSAoaXRlciwgMSk7DQorDQorCQkJCQkJCQkJCQlpZiAo
b2xkcGF0aCAhPSBhcmdzLk5ld1RleHQpDQorCQkJCQkJCQkJCQl7DQorICAgIAkJCQkJCQkJCQkJ
dHJ5DQorICAgIAkJCQkJCQkJCQkJew0KKyAgICAJCQkJCQkJCQkJCQlTeXN0ZW0uSU8uRGlyZWN0
b3J5Lk1vdmUgKFN5c3RlbS5JTy5QYXRoLkNvbWJpbmUoQ3VycmVudERpciwgb2xkcGF0aCksIFN5
c3RlbS5JTy5QYXRoLkNvbWJpbmUoQ3VycmVudERpciwgYXJncy5OZXdUZXh0KSk7DQorICAgIAkJ
CQkJCQkJCQkJfQ0KKyAgICAJCQkJCQkJCQkJCWNhdGNoIChFeGNlcHRpb24gZXgpDQorICAgIAkJ
CQkJCQkJCQkJew0KKyAgICAJCQkJCQkJCQkJCQltZXNzYWdlU2VydmljZS5TaG93RXJyb3IgKGV4
LCAiQ291bGQgbm90IHJlbmFtZSBmb2xkZXIgJyIgKyBvbGRwYXRoICsgIicgdG8gJyIgKyBhcmdz
Lk5ld1RleHQgKyAiJyIpOw0KKyAgICAJCQkJCQkJCQkJCX0NCisgICAgCQkJCQkJCQkJCQlmaW5h
bGx5DQorICAgIAkJCQkJCQkJCQkJew0KKyAgICAJCQkJCQkJCQkJCQlQb3B1bGF0ZSgpOw0KKyAg
ICAJCQkJCQkJCQkJCX0NCisJCQkJCQkJCQkJCX0NCisNCisJCQkJCQkJCQkJCWJyZWFrOw0KKw0K
KwkJCQljYXNlIFBlcmZvcm1pbmdUYXNrLkNyZWF0aW5nTmV3Og0KKwkJCQkJCQkJCQkJU3lzdGVt
LklPLkRpcmVjdG9yeUluZm8gZGlyaW5mbyA9IG5ldyBEaXJlY3RvcnlJbmZvKEN1cnJlbnREaXIp
Ow0KKwkJCQkJCQkJCQkJdHJ5DQorCQkJCQkJCQkJCQl7DQorCQkJCQkJCQkJCQkJZGlyaW5mby5D
cmVhdGVTdWJkaXJlY3RvcnkoYXJncy5OZXdUZXh0KTsNCisJCQkJCQkJCQkJCX0NCisJCQkJCQkJ
CQkJCWNhdGNoKEV4Y2VwdGlvbiBleCkNCisJCQkJCQkJCQkJCXsNCisgICAgCQkJCQkJCQkJCQkJ
bWVzc2FnZVNlcnZpY2UuU2hvd0Vycm9yIChleCwgIkNvdWxkIG5vdCBjcmVhdGUgbmV3IGZvbGRl
ciAnIiArIGFyZ3MuTmV3VGV4dCArICInIik7DQorCQkJCQkJCQkJCQl9DQorCQkJCQkJCQkJCQlm
aW5hbGx5DQorCQkJCQkJCQkJCQl7DQorCQkJCQkJCQkJCQkJUG9wdWxhdGUoKTsNCisJCQkJCQkJ
CQkJCX0NCisNCisJCQkJCQkJCQkJCWJyZWFrOw0KKwkJCQkJCQkJCQkJDQorCQkJCWRlZmF1bHQ6
DQorCQkJCQkJCQkJCQlDb25zb2xlLldyaXRlTGluZSgiVGhpcyBzaG91bGQgbm90IGJlIGhhcHBl
bmluZyIpOw0KKwkJCQkJCQkJCQkJYnJlYWs7DQorCQkJfQ0KKwkJCXBlcmZvcm1pbmd0YXNrID0g
UGVyZm9ybWluZ1Rhc2suTm9uZTsNCiAJCX0NCisNCisJCXByaXZhdGUgdm9pZCBPbkRpckRlbGV0
ZSAob2JqZWN0IG8sIEV2ZW50QXJncyBhcmdzKQ0KKwkJew0KKwkJCVRyZWVJdGVyIGl0ZXI7DQor
CQkJVHJlZU1vZGVsIG1vZGVsOw0KKw0KKwkJCWlmIChtZXNzYWdlU2VydmljZS5Bc2tRdWVzdGlv
bigiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGZvbGRlcj8iLCAiRGVsZXRl
IGZvbGRlciIpKQ0KKwkJCXsNCisJCQkJaWYgKHR2LlNlbGVjdGlvbi5HZXRTZWxlY3RlZCAob3V0
IG1vZGVsLCBvdXQgaXRlcikpDQorCQkJCXsNCisJCQkJCXRyeQ0KKwkJCQkJew0KKwkJCQkJCURp
cmVjdG9yeS5EZWxldGUgKFN5c3RlbS5JTy5QYXRoLkNvbWJpbmUoQ3VycmVudERpciwgKHN0cmlu
Zykgc3RvcmUuR2V0VmFsdWUgKGl0ZXIsIDEpKSwgdHJ1ZSk7DQorCQkJCQl9DQorCQkJCQljYXRj
aCAoRXhjZXB0aW9uIGV4KQ0KKwkJCQkJew0KKwkJCQkJCW1lc3NhZ2VTZXJ2aWNlLlNob3dFcnJv
ciAoZXgsICJDb3VsZCBub3QgZGVsZXRlIGZvbGRlciAnIiArIFN5c3RlbS5JTy5QYXRoLkNvbWJp
bmUoQ3VycmVudERpciwgKHN0cmluZykgc3RvcmUuR2V0VmFsdWUgKGl0ZXIsIDEpKSArICInIik7
DQorCQkJCQl9DQorCQkJCQlmaW5hbGx5DQorCQkJCQl7DQorCQkJCQkJUG9wdWxhdGUoKTsNCisJ
CQkJCX0NCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCS8vIEZJWE1FOiBXaGVuIHRoZSBzY3Jv
bGxiYXJzIG9mIHRoZSBkaXJlY3RvcnkgbGlzdA0KKwkJLy8gYXJlIHNob3duLCBhbmQgd2UgcGVy
Zm9ybSBhIG5ldyBkaXIgYWN0aW9uDQorCQkvLyB0aGUgY29sdW1uIGlzIG5ldmVyIGVkaXRlZCwg
YnV0IFBvcHVsYXRlIGlzIGNhbGxlZA0KKwkJcHJpdmF0ZSB2b2lkIE9uTmV3RGlyIChvYmplY3Qg
bywgRXZlbnRBcmdzIGFyZ3MpDQorCQl7DQorCQkJVHJlZUl0ZXIgaXRlcjsNCisJCQlUcmVlUGF0
aCB0cmVlcGF0aDsNCisJCQlUcmVlVmlld0NvbHVtbiBjb2x1bW47DQorDQorCQkJcGVyZm9ybWlu
Z3Rhc2sgPSBQZXJmb3JtaW5nVGFzay5DcmVhdGluZ05ldzsNCisJCQl0ZXh0X3JlbmRlci5FZGl0
YWJsZSA9IHRydWU7DQorDQorCQkJdHYuUmVvcmRlcmFibGUgPSBmYWxzZTsNCisJCQlpdGVyID0g
c3RvcmUuQXBwZW5kVmFsdWVzIChGaWxlSWNvbkxvYWRlci5HZXRQaXhidWZGb3JGaWxlIChDdXJy
ZW50RGlyLCAyNCwgMjQpLCAiZm9sZGVyIG5hbWUiKTsNCisJCQl0cmVlcGF0aCA9IHR2Lk1vZGVs
LkdldFBhdGgoaXRlcik7DQorDQorCQkJY29sdW1uID0gdHYuR2V0Q29sdW1uICgwKTsNCisNCisJ
CQl0di5TZXRDdXJzb3IgKHRyZWVwYXRoLCBjb2x1bW4sIHRydWUpOw0KKwkJfQ0KKw0KKwkJcHJp
dmF0ZSB2b2lkIEdldExpc3RPZkhpZGRlbkZvbGRlcnMoKQ0KKwkJew0KKwkJCWhpZGRlbmZvbGRl
cnMuQ2xlYXIoKTsNCisNCisJCQlpZihTeXN0ZW0uSU8uRmlsZS5FeGlzdHMoQ3VycmVudERpciAr
IFN5c3RlbS5JTy5QYXRoLkRpcmVjdG9yeVNlcGFyYXRvckNoYXIgKyAiLmhpZGRlbiIpKQ0KKwkJ
CXsNCisJCQkJU3RyZWFtUmVhZGVyIHN0cmVhbSA9ICBuZXcgU3RyZWFtUmVhZGVyIChDdXJyZW50
RGlyICsgU3lzdGVtLklPLlBhdGguRGlyZWN0b3J5U2VwYXJhdG9yQ2hhciArICIuaGlkZGVuIik7
DQorCQkJCXN0cmluZyBmb2xkZXJ0b2hpZGUgPSBzdHJlYW0uUmVhZExpbmUoKTsNCisNCisJCQkJ
d2hpbGUgKGZvbGRlcnRvaGlkZSAhPSBudWxsKQ0KKwkJCQl7DQorCQkJCQloaWRkZW5mb2xkZXJz
LkFkZCAoZm9sZGVydG9oaWRlLCBmb2xkZXJ0b2hpZGUpOw0KKwkJCQkJZm9sZGVydG9oaWRlID0g
c3RyZWFtLlJlYWRMaW5lKCk7DQorCQkJCX0NCisNCisJCQkJc3RyZWFtLkNsb3NlKCk7DQorCQkJ
fQkJCQ0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBCb29sZWFuIE5vdEhpZGRlbihzdHJpbmcgZm9sZGVy
KQ0KKwkJew0KKwkJCXJldHVybiAhaGlkZGVuZm9sZGVycy5Db250YWlucyhmb2xkZXIpOw0KKwkJ
fSANCiAJfQ0KIH0NCiANCi==

--=-cQVGOfSaYLlGT/BsuS5x--

--=-85B62eSmFdW8B6wnCPTA
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
	digitalmente

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQBAUulVH1wFafwdGkARAj8pAKDhd6myuNFpG97TApGtFmWsDnb4iwCggrvf
2j8d6j1gCXny41oQrShB3SE=
=EvTi
-----END PGP SIGNATURE-----

--=-85B62eSmFdW8B6wnCPTA--