svn: /pear/pear-core/trunk/ PEAR/Installer.php System.php package-PEAR.xml package2.xml tests/PEAR_Installer/bug17350/Test_Package99-1.0.0/package.xml tests/PEAR_Installer/bug17350/Test_Package99-1.0.0/test1.php tests/PEAR_Installer/bug17350/Test_Package99-1.0.0/test2.php tests/PEAR_Installer/bug17350/Test_Package99-1.1.0/package.xml tests/PEAR_Installer/bug17350/Test_Package99-1.1.0/test1.php tests/PEAR_Installer/test_bug17350.phpt
[email protected] (Helgi Þormar Þorbjörnsson) Tue, 05 Jul 2011 18:31:18 +0000
| Newsgroups | php.pear.cvs,php.pear.core |
|---|---|
| Message-ID | <[email protected]> |
--4a23a2d4ddaa338224bbadc8fd87d59832f028b3
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
dufuz Tue, 05 Jul 2011 18:31:18 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=312944
Log:
Fixed Bug #17350: "pear install --force" doesn't uninstall files from previous pkg versions [dufuz]
# Clean up old package files even on install --force, make install and upgrade share code
Bug: http://pear.php.net/bugs/17350 (unknown)
Changed paths:
U pear/pear-core/trunk/PEAR/Installer.php
U pear/pear-core/trunk/System.php
U pear/pear-core/trunk/package-PEAR.xml
U pear/pear-core/trunk/package2.xml
A pear/pear-core/trunk/tests/PEAR_Installer/bug17350/
A pear/pear-core/trunk/tests/PEAR_Installer/bug17350/Test_Package99-1.0.0/
A pear/pear-core/trunk/tests/PEAR_Installer/bug17350/Test_Package99-1.0.0/package.xml
A pear/pear-core/trunk/tests/PEAR_Installer/bug17350/Test_Package99-1.0.0/test1.php
A pear/pear-core/trunk/tests/PEAR_Installer/bug17350/Test_Package99-1.0.0/test2.php
A pear/pear-core/trunk/tests/PEAR_Installer/bug17350/Test_Package99-1.1.0/
A pear/pear-core/trunk/tests/PEAR_Installer/bug17350/Test_Package99-1.1.0/package.xml
A pear/pear-core/trunk/tests/PEAR_Installer/bug17350/Test_Package99-1.1.0/test1.php
A pear/pear-core/trunk/tests/PEAR_Installer/test_bug17350.phpt
--4a23a2d4ddaa338224bbadc8fd87d59832f028b3
Content-Type: text/x-diff; charset="utf-8"
Content-Disposition: attachment; filename="svn-diffs-312944.txt"
Content-Transfer-Encoding: base64
TW9kaWZpZWQ6IHBlYXIvcGVhci1jb3JlL3RydW5rL1BFQVIvSW5zdGFsbGVyLnBocAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBwZWFyL3BlYXItY29yZS90cnVuay9QRUFSL0luc3RhbGxlci5waHAJMjAxMS0wNy0wNSAxODowOTow
NyBVVEMgKHJldiAzMTI5NDMpCisrKyBwZWFyL3BlYXItY29yZS90cnVuay9QRUFSL0luc3RhbGxlci5w
aHAJMjAxMS0wNy0wNSAxODozMToxOCBVVEMgKHJldiAzMTI5NDQpCkBAIC0xMjcyLDMyICsxMjcyLDI1
IEBACgogICAgICAgICAkdGhpcy0+c3RhcnRGaWxlVHJhbnNhY3Rpb24oKTsKCi0gICAgICAgIGlmIChl
bXB0eSgkb3B0aW9uc1sndXBncmFkZSddKSAmJiBlbXB0eSgkb3B0aW9uc1snc29mdCddKSkgewotICAg
ICAgICAgICAgLy8gY2hlY2tzIHRvIGRvIG9ubHkgd2hlbiBpbnN0YWxsaW5nIG5ldyBwYWNrYWdlcwot
ICAgICAgICAgICAgaWYgKCRjaGFubmVsID09ICdwZWNsLnBocC5uZXQnKSB7Ci0gICAgICAgICAgICAg
ICAgJHRlc3QgPSAkaW5zdGFsbHJlZ2lzdHJ5LT5wYWNrYWdlRXhpc3RzKCRuYW1lLCAkY2hhbm5lbCk7
Ci0gICAgICAgICAgICAgICAgaWYgKCEkdGVzdCkgewotICAgICAgICAgICAgICAgICAgICAkdGVzdCA9
ICRpbnN0YWxscmVnaXN0cnktPnBhY2thZ2VFeGlzdHMoJG5hbWUsICdwZWFyLnBocC5uZXQnKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICR0ZXN0
ID0gJGluc3RhbGxyZWdpc3RyeS0+cGFja2FnZUV4aXN0cygkbmFtZSwgJGNoYW5uZWwpOworICAgICAg
ICAvLyBGaWd1cmUgb3V0IHdoYXQgY2hhbm5lbCB0byB1c2UgYW5kIGlmIHRoZSBwYWNrYWdlIGV4aXN0
cyBvciBub3QKKyAgICAgICAgJHVzZWNoYW5uZWwgPSAkY2hhbm5lbDsKKyAgICAgICAgaWYgKCRjaGFu
bmVsID09ICdwZWNsLnBocC5uZXQnKSB7CisgICAgICAgICAgICAkdGVzdCA9ICRpbnN0YWxscmVnaXN0
cnktPnBhY2thZ2VFeGlzdHMoJG5hbWUsICRjaGFubmVsKTsKKyAgICAgICAgICAgIGlmICghJHRlc3Qp
IHsKKyAgICAgICAgICAgICAgICAkdGVzdCA9ICRpbnN0YWxscmVnaXN0cnktPnBhY2thZ2VFeGlzdHMo
JG5hbWUsICdwZWFyLnBocC5uZXQnKTsKKyAgICAgICAgICAgICAgICAkdXNlY2hhbm5lbCA9ICdwZWFy
LnBocC5uZXQnOwogICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRl
c3QgPSAkaW5zdGFsbHJlZ2lzdHJ5LT5wYWNrYWdlRXhpc3RzKCRuYW1lLCAkY2hhbm5lbCk7CisgICAg
ICAgIH0KCisgICAgICAgIC8vIGNoZWNrcyB0byBkbyBvbmx5IHdoZW4gaW5zdGFsbGluZyBuZXcgcGFj
a2FnZXMKKyAgICAgICAgaWYgKGVtcHR5KCRvcHRpb25zWyd1cGdyYWRlJ10pICYmIGVtcHR5KCRvcHRp
b25zWydzb2Z0J10pKSB7CiAgICAgICAgICAgICBpZiAoZW1wdHkoJG9wdGlvbnNbJ2ZvcmNlJ10pICYm
ICR0ZXN0KSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCIkY2hhbm5l
bC8kbmFtZSBpcyBhbHJlYWR5IGluc3RhbGxlZCIpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgJHVzZWNoYW5uZWwgPSAkY2hhbm5lbDsKLSAgICAgICAgICAgIGlmICgk
Y2hhbm5lbCA9PSAncGVjbC5waHAubmV0JykgewotICAgICAgICAgICAgICAgICR0ZXN0ID0gJGluc3Rh
bGxyZWdpc3RyeS0+cGFja2FnZUV4aXN0cygkbmFtZSwgJGNoYW5uZWwpOwotICAgICAgICAgICAgICAg
IGlmICghJHRlc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgJHRlc3QgPSAkaW5zdGFsbHJlZ2lzdHJ5
LT5wYWNrYWdlRXhpc3RzKCRuYW1lLCAncGVhci5waHAubmV0Jyk7Ci0gICAgICAgICAgICAgICAgICAg
ICR1c2VjaGFubmVsID0gJ3BlYXIucGhwLm5ldCc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkdGVzdCA9ICRpbnN0YWxscmVnaXN0cnktPnBhY2th
Z2VFeGlzdHMoJG5hbWUsICRjaGFubmVsKTsKLSAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgLy8g
VXBncmFkZQogICAgICAgICAgICAgaWYgKCR0ZXN0KSB7CiAgICAgICAgICAgICAgICAgJHYxID0gJGlu
c3RhbGxyZWdpc3RyeS0+cGFja2FnZUluZm8oJG5hbWUsICd2ZXJzaW9uJywgJHVzZWNoYW5uZWwpOwog
ICAgICAgICAgICAgICAgICR2MiA9ICRwa2ctPmdldFZlcnNpb24oKTsKQEAgLTEzMDUsMjIgKzEyOTgs
MjIgQEAKICAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJG9wdGlvbnNbJ2ZvcmNlJ10pICYmICF2ZXJz
aW9uX2NvbXBhcmUoIiR2MiIsICIkdjEiLCAnZ3QnKSkgewogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gJHRoaXMtPnJhaXNlRXJyb3IoInVwZ3JhZGUgdG8gYSBuZXdlciB2ZXJzaW9uICgkdjIgaXMgbm90
IG5ld2VyIHRoYW4gJHYxKSIpOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQoKLSAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJG9wdGlvbnNbJ3JlZ2lzdGVyLW9ubHknXSkp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1cGdyYWRpbmcsIHJlbW92ZSBvbGQgcmVsZWFz
ZSdzIGZpbGVzIGZpcnN0OgotICAgICAgICAgICAgICAgICAgICBpZiAoUEVBUjo6aXNFcnJvcigkZXJy
ID0gJHRoaXMtPl9kZWxldGVQYWNrYWdlRmlsZXMoJG5hbWUsICR1c2VjaGFubmVsLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICB0cnVlKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNz
ZXQoJG9wdGlvbnNbJ2lnbm9yZS1lcnJvcnMnXSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJGVycik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgIC8vIERvIGNsZWFudXBzIGZvciB1cGdyYWRlIGFuZCBpbnN0YWxsLCByZW1vdmUgb2xk
IHJlbGVhc2UncyBmaWxlcyBmaXJzdAorICAgICAgICBpZiAoJHRlc3QgJiYgZW1wdHkoJG9wdGlvbnNb
J3JlZ2lzdGVyLW9ubHknXSkpIHsKKyAgICAgICAgICAgICRlcnIgPSAkdGhpcy0+X2RlbGV0ZVBhY2th
Z2VGaWxlcygkbmFtZSwgJHVzZWNoYW5uZWwsIHRydWUpOworICAgICAgICAgICAgaWYgKFBFQVI6Omlz
RXJyb3IoJGVycikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRvcHRpb25zWydpZ25vcmUt
ZXJyb3JzJ10pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigk
ZXJyKTsKKyAgICAgICAgICAgICAgICB9CgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc3Nl
dCgkb3B0aW9uc1snc29mdCddKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5s
b2coMCwgJ1dBUk5JTkc6ICcgLiAkZXJyLT5nZXRNZXNzYWdlKCkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg
ICAgJGJhY2tlZHVwID0gJGVycjsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGlmICghaXNzZXQoJG9wdGlvbnNbJ3NvZnQnXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMt
PmxvZygwLCAnV0FSTklORzogJyAuICRlcnItPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkYmFja2VkdXAgPSAkZXJyOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CgoKTW9kaWZpZWQ6IHBlYXIvcGVhci1jb3JlL3RydW5rL1N5
c3RlbS5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gcGVhci9wZWFyLWNvcmUvdHJ1bmsvU3lzdGVtLnBocAkyMDExLTA3
LTA1IDE4OjA5OjA3IFVUQyAocmV2IDMxMjk0MykKKysrIHBlYXIvcGVhci1jb3JlL3RydW5rL1N5c3Rl
bS5waHAJMjAxMS0wNy0wNSAxODozMToxOCBVVEMgKHJldiAzMTI5NDQpCkBAIC03MSw2ICs3MSwyMyBA
QAogICAgIGZ1bmN0aW9uIF9wYXJzZUFyZ3MoJGFyZ3YsICRzaG9ydF9vcHRpb25zLCAkbG9uZ19vcHRp
b25zID0gbnVsbCkKICAgICB7CiAgICAgICAgIGlmICghaXNfYXJyYXkoJGFyZ3YpICYmICRhcmd2ICE9
PSBudWxsKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgLy8gUXVvdGUgYWxsIGl0ZW1zIHRo
YXQgYXJlIGEgc2hvcnQgb3B0aW9uCisgICAgICAgICAgICAkYXYgPSBwcmVnX3NwbGl0KCcvKFxBfCAp
LS0/W2EtejAtOV0rWyA9XT8oKD88IVxcXFwpKCgsXHMqKXwoKD88ISwpXHMrKSk/KS9pJywgJGFyZ3Ys
IC0xLCBQUkVHX1NQTElUX05PX0VNUFRZIHwgUFJFR19TUExJVF9PRkZTRVRfQ0FQVFVSRSk7CisgICAg
ICAgICAgICAkb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIGZvcmVhY2ggKCRhdiBhcyAkYSkgeworICAg
ICAgICAgICAgICAgICRiID0gdHJpbSgkYVswXSk7CisgICAgICAgICAgICAgICAgaWYgKCRiezB9ID09
ICciJyB8fCAkYnswfSA9PSAiJyIpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgJGVzY2FwZSA9IGVzY2FwZXNoZWxsYXJnKCRi
KTsKKyAgICAgICAgICAgICAgICAkcG9zID0gJGFbMV0gKyAkb2Zmc2V0OworICAgICAgICAgICAgICAg
ICRhcmd2ID0gc3Vic3RyX3JlcGxhY2UoJGFyZ3YsICRlc2NhcGUsICRwb3MsIHN0cmxlbigkYikpOwor
ICAgICAgICAgICAgICAgICRvZmZzZXQgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICov
CisKICAgICAgICAgICAgIC8vIEZpbmQgYWxsIGl0ZW1zLCBxdW90ZWQgb3Igb3RoZXJ3aXNlCiAgICAg
ICAgICAgICBwcmVnX21hdGNoX2FsbCgiLyg/OltcIiddKSguKj8pKD86WydcIl0pfChbXlxzXSspLyIs
ICRhcmd2LCAkYXYpOwogICAgICAgICAgICAgJGFyZ3YgPSAkYXZbMV07CgpNb2RpZmllZDogcGVhci9w
ZWFyLWNvcmUvdHJ1bmsvcGFja2FnZS1QRUFSLnhtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwZWFyL3BlYXItY29yZS90
cnVuay9wYWNrYWdlLVBFQVIueG1sCTIwMTEtMDctMDUgMTg6MDk6MDcgVVRDIChyZXYgMzEyOTQzKQor
KysgcGVhci9wZWFyLWNvcmUvdHJ1bmsvcGFja2FnZS1QRUFSLnhtbAkyMDExLTA3LTA1IDE4OjMxOjE4
IFVUQyAocmV2IDMxMjk0NCkKQEAgLTEwNSw2ICsxMDUsNyBAQAogICAgIFByaW9yIHRvIHRoaXMgaXQg
d2FzIHBvc3NpYmxlIHRvIGRvIHRoYXQgYnkgcGFzc2luZyBhbGwgdmFsdWVzIGluIGFzIGFuIGFycmF5
IChyZWxhdGVkIHRvICMxODM2MiwgIzE4NDQwKQoKICAgQnVnIEZpeGVzOgorICAqIEJ1ZyAjMTczNTA6
ICJwZWFyIGluc3RhbGwgLS1mb3JjZSIgZG9lc24ndCB1bmluc3RhbGwgZmlsZXMgZnJvbSBwcmV2aW91
cyBwa2cgdmVyc2lvbnMgW2R1ZnV6XQogICAqIEJ1ZyAjMTgzNjI6IEEgd2hpdGVzcGFjZSBURU1QX0RJ
UiBwYXRoIGJyZWFrcyBpbnN0YWxsL3VwZ3JhZGUgZnVuY3Rpb25hbGl0eSBbZHVmdXpdCiAgICogQnVn
ICMxODQ0MDogYmFkIHRtcCBmb2xkZXIgcGF0aCBvbiBpbnN0YWxsIDogVW5hYmxlIHRvIGNyZWF0ZSBw
YXRoIGZvciBDOi9Qcm9ncmFtL3RtcCBbZHVmdXpdCiAgICogQnVnICMxODU4MTogImNvbmZpZy1nZXQg
LWMiIG5vdCByZXR1cm5pbmcgY2hhbm5lbCdzIGNvbmZpZ3VyYXRpb24gd2hlbiB1c2luZyBhbGlhcyBb
ZHVmdXpdCgpNb2RpZmllZDogcGVhci9wZWFyLWNvcmUvdHJ1bmsvcGFja2FnZTIueG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHBlYXIvcGVhci1jb3JlL3RydW5rL3BhY2thZ2UyLnhtbAkyMDExLTA3LTA1IDE4OjA5OjA3IFVU
QyAocmV2IDMxMjk0MykKKysrIHBlYXIvcGVhci1jb3JlL3RydW5rL3BhY2thZ2UyLnhtbAkyMDExLTA3
LTA1IDE4OjMxOjE4IFVUQyAocmV2IDMxMjk0NCkKQEAgLTEwOSw2ICsxMDksNyBAQAogICAgIFByaW9y
IHRvIHRoaXMgaXQgd2FzIHBvc3NpYmxlIHRvIGRvIHRoYXQgYnkgcGFzc2luZyBhbGwgdmFsdWVzIGlu
IGFzIGFuIGFycmF5IChyZWxhdGVkIHRvICMxODM2MiwgIzE4NDQwKQoKICAgQnVnIEZpeGVzOgorICAq
IEJ1ZyAjMTczNTA6ICJwZWFyIGluc3RhbGwgLS1mb3JjZSIgZG9lc24ndCB1bmluc3RhbGwgZmlsZXMg
ZnJvbSBwcmV2aW91cyBwa2cgdmVyc2lvbnMgW2R1ZnV6XQogICAqIEJ1ZyAjMTgzNjI6IEEgd2hpdGVz
cGFjZSBURU1QX0RJUiBwYXRoIGJyZWFrcyBpbnN0YWxsL3VwZ3JhZGUgZnVuY3Rpb25hbGl0eSBbZHVm
dXpdCiAgICogQnVnICMxODQ0MDogYmFkIHRtcCBmb2xkZXIgcGF0aCBvbiBpbnN0YWxsIDogVW5hYmxl
IHRvIGNyZWF0ZSBwYXRoIGZvciBDOi9Qcm9ncmFtL3RtcCBbZHVmdXpdCiAgICogQnVnICMxODU4MTog
ImNvbmZpZy1nZXQgLWMiIG5vdCByZXR1cm5pbmcgY2hhbm5lbCdzIGNvbmZpZ3VyYXRpb24gd2hlbiB1
c2luZyBhbGlhcyBbZHVmdXpdCgpBZGRlZDogcGVhci9wZWFyLWNvcmUvdHJ1bmsvdGVzdHMvUEVBUl9J
bnN0YWxsZXIvYnVnMTczNTAvVGVzdF9QYWNrYWdlOTktMS4wLjAvcGFja2FnZS54bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGVhci9wZWFyLWNvcmUvdHJ1bmsvdGVzdHMvUEVBUl9JbnN0YWxsZXIvYnVnMTczNTAvVGVzdF9Q
YWNrYWdlOTktMS4wLjAvcGFja2FnZS54bWwJICAgICAgICAgICAgICAgICAgICAgICAgKHJldiAwKQor
KysgcGVhci9wZWFyLWNvcmUvdHJ1bmsvdGVzdHMvUEVBUl9JbnN0YWxsZXIvYnVnMTczNTAvVGVzdF9Q
YWNrYWdlOTktMS4wLjAvcGFja2FnZS54bWwJMjAxMS0wNy0wNSAxODozMToxOCBVVEMgKHJldiAzMTI5
NDQpCkBAIC0wLDAgKzEsNDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
Cis8cGFja2FnZSB2ZXJzaW9uPSIyLjAiIHhtbG5zPSJodHRwOi8vcGVhci5waHAubmV0L2R0ZC9wYWNr
YWdlLTIuMCIgeG1sbnM6dGFza3M9Imh0dHA6Ly9wZWFyLnBocC5uZXQvZHRkL3Rhc2tzLTEuMCIgeG1s
bnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVt
YUxvY2F0aW9uPSJodHRwOi8vcGVhci5waHAubmV0L2R0ZC90YXNrcy0xLjAKK2h0dHA6Ly9wZWFyLnBo
cC5uZXQvZHRkL3Rhc2tzLTEuMC54c2QKK2h0dHA6Ly9wZWFyLnBocC5uZXQvZHRkL3BhY2thZ2UtMi4w
CitodHRwOi8vcGVhci5waHAubmV0L2R0ZC9wYWNrYWdlLTIuMC54c2QiPgorCTxuYW1lPlRlc3RfUGFj
a2FnZTk5PC9uYW1lPgorCTxjaGFubmVsPl9fdXJpPC9jaGFubmVsPgorCTxzdW1tYXJ5PkEgdGVzdCBw
YWNrYWdlPC9zdW1tYXJ5PgorCTxkZXNjcmlwdGlvbj5XaGF0ZXZlcjwvZGVzY3JpcHRpb24+CisJPGxl
YWQ+CisJCTxuYW1lPkV4YW1wbGUgVXNlcjwvbmFtZT4KKwkJPHVzZXI+ZXhhbXBsZTwvdXNlcj4KKwkJ
PGVtYWlsPmV4YW1wbGVAZXhhbXBsZS5jb21rPC9lbWFpbD4KKwkJPGFjdGl2ZT55ZXM8L2FjdGl2ZT4K
Kwk8L2xlYWQ+CisJPGRhdGU+MjAwNy0wMi0wMzwvZGF0ZT4KKwk8dmVyc2lvbj4KKwkJPHJlbGVhc2U+
MS4wLjA8L3JlbGVhc2U+CisJCTxhcGk+MS4wPC9hcGk+CisJPC92ZXJzaW9uPgorCTxzdGFiaWxpdHk+
CisJCTxyZWxlYXNlPnN0YWJsZTwvcmVsZWFzZT4KKwkJPGFwaT5zdGFibGU8L2FwaT4KKwk8L3N0YWJp
bGl0eT4KKwk8bGljZW5zZT5Gb28gTGljZW5zZTwvbGljZW5zZT4KKwk8bm90ZXM+VGhpcyBpcyB0aGUg
Zmlyc3QgcmVsZWFzZS4KKwk8L25vdGVzPgorCTxjb250ZW50cz4KKwkJPGRpciBuYW1lPSIvIj4KKwkJ
CTxmaWxlIHJvbGU9InBocCIgbmFtZT0idGVzdDEucGhwIiAvPgorCQkJPGZpbGUgcm9sZT0icGhwIiBu
YW1lPSJ0ZXN0Mi5waHAiIC8+CisJCTwvZGlyPgorCTwvY29udGVudHM+CisJPGRlcGVuZGVuY2llcz4K
KwkJPHJlcXVpcmVkPgorCQkJPHBocD4KKwkJCQk8bWluPjQuMy4wPC9taW4+CisJCQk8L3BocD4KKwkJ
CTxwZWFyaW5zdGFsbGVyPgorCQkJCTxtaW4+MS40LjA8L21pbj4KKwkJCTwvcGVhcmluc3RhbGxlcj4K
KwkJPC9yZXF1aXJlZD4KKwk8L2RlcGVuZGVuY2llcz4KKwk8cGhwcmVsZWFzZSAvPgorPC9wYWNrYWdl
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCkFkZGVkOiBwZWFyL3BlYXItY29yZS90cnVuay90
ZXN0cy9QRUFSX0luc3RhbGxlci9idWcxNzM1MC9UZXN0X1BhY2thZ2U5OS0xLjAuMC90ZXN0MS5waHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpBZGRlZDogcGVhci9wZWFyLWNvcmUvdHJ1bmsvdGVzdHMvUEVBUl9JbnN0YWxsZXIvYnVn
MTczNTAvVGVzdF9QYWNrYWdlOTktMS4wLjAvdGVzdDIucGhwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQWRkZWQ6IHBlYXIvcGVh
ci1jb3JlL3RydW5rL3Rlc3RzL1BFQVJfSW5zdGFsbGVyL2J1ZzE3MzUwL1Rlc3RfUGFja2FnZTk5LTEu
MS4wL3BhY2thZ2UueG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBlYXIvcGVhci1jb3JlL3RydW5rL3Rlc3RzL1BFQVJf
SW5zdGFsbGVyL2J1ZzE3MzUwL1Rlc3RfUGFja2FnZTk5LTEuMS4wL3BhY2thZ2UueG1sCSAgICAgICAg
ICAgICAgICAgICAgICAgIChyZXYgMCkKKysrIHBlYXIvcGVhci1jb3JlL3RydW5rL3Rlc3RzL1BFQVJf
SW5zdGFsbGVyL2J1ZzE3MzUwL1Rlc3RfUGFja2FnZTk5LTEuMS4wL3BhY2thZ2UueG1sCTIwMTEtMDct
MDUgMTg6MzE6MTggVVRDIChyZXYgMzEyOTQ0KQpAQCAtMCwwICsxLDQ0IEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHBhY2thZ2UgdmVyc2lvbj0iMi4wIiB4bWxucz0iaHR0
cDovL3BlYXIucGhwLm5ldC9kdGQvcGFja2FnZS0yLjAiIHhtbG5zOnRhc2tzPSJodHRwOi8vcGVhci5w
aHAubmV0L2R0ZC90YXNrcy0xLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT
Y2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3BlYXIucGhwLm5ldC9kdGQv
dGFza3MtMS4wCitodHRwOi8vcGVhci5waHAubmV0L2R0ZC90YXNrcy0xLjAueHNkCitodHRwOi8vcGVh
ci5waHAubmV0L2R0ZC9wYWNrYWdlLTIuMAoraHR0cDovL3BlYXIucGhwLm5ldC9kdGQvcGFja2FnZS0y
LjAueHNkIj4KKwk8bmFtZT5UZXN0X1BhY2thZ2U5OTwvbmFtZT4KKwk8Y2hhbm5lbD5fX3VyaTwvY2hh
bm5lbD4KKwk8c3VtbWFyeT5BIHRlc3QgcGFja2FnZTwvc3VtbWFyeT4KKwk8ZGVzY3JpcHRpb24+V2hh
dGV2ZXI8L2Rlc2NyaXB0aW9uPgorCTxsZWFkPgorCQk8bmFtZT5FeGFtcGxlIFVzZXI8L25hbWU+CisJ
CTx1c2VyPmV4YW1wbGU8L3VzZXI+CisJCTxlbWFpbD5leGFtcGxlQGV4YW1wbGUuY29tazwvZW1haWw+
CisJCTxhY3RpdmU+eWVzPC9hY3RpdmU+CisJPC9sZWFkPgorCTxkYXRlPjIwMDctMDItMDM8L2RhdGU+
CisJPHZlcnNpb24+CisJCTxyZWxlYXNlPjEuMS4wPC9yZWxlYXNlPgorCQk8YXBpPjEuMDwvYXBpPgor
CTwvdmVyc2lvbj4KKwk8c3RhYmlsaXR5PgorCQk8cmVsZWFzZT5zdGFibGU8L3JlbGVhc2U+CisJCTxh
cGk+c3RhYmxlPC9hcGk+CisJPC9zdGFiaWxpdHk+CisJPGxpY2Vuc2U+Rm9vIExpY2Vuc2U8L2xpY2Vu
c2U+CisJPG5vdGVzPlRoaXMgaXMgdGhlIGZpcnN0IHJlbGVhc2UuCisJPC9ub3Rlcz4KKwk8Y29udGVu
dHM+CisJCTxkaXIgbmFtZT0iLyI+CisJCQk8ZmlsZSByb2xlPSJwaHAiIG5hbWU9InRlc3QxLnBocCIg
Lz4KKwkJPC9kaXI+CisJPC9jb250ZW50cz4KKwk8ZGVwZW5kZW5jaWVzPgorCQk8cmVxdWlyZWQ+CisJ
CQk8cGhwPgorCQkJCTxtaW4+NC4zLjA8L21pbj4KKwkJCTwvcGhwPgorCQkJPHBlYXJpbnN0YWxsZXI+
CisJCQkJPG1pbj4xLjQuMDwvbWluPgorCQkJPC9wZWFyaW5zdGFsbGVyPgorCQk8L3JlcXVpcmVkPgor
CTwvZGVwZW5kZW5jaWVzPgorCTxwaHByZWxlYXNlIC8+Cis8L3BhY2thZ2U+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQoKQWRkZWQ6IHBlYXIvcGVhci1jb3JlL3RydW5rL3Rlc3RzL1BFQVJfSW5zdGFs
bGVyL2J1ZzE3MzUwL1Rlc3RfUGFja2FnZTk5LTEuMS4wL3Rlc3QxLnBocAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkFkZGVkOiBw
ZWFyL3BlYXItY29yZS90cnVuay90ZXN0cy9QRUFSX0luc3RhbGxlci90ZXN0X2J1ZzE3MzUwLnBocHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gcGVhci9wZWFyLWNvcmUvdHJ1bmsvdGVzdHMvUEVBUl9JbnN0YWxsZXIvdGVzdF9i
dWcxNzM1MC5waHB0CSAgICAgICAgICAgICAgICAgICAgICAgIChyZXYgMCkKKysrIHBlYXIvcGVhci1j
b3JlL3RydW5rL3Rlc3RzL1BFQVJfSW5zdGFsbGVyL3Rlc3RfYnVnMTczNTAucGhwdAkyMDExLTA3LTA1
IDE4OjMxOjE4IFVUQyAocmV2IDMxMjk0NCkKQEAgLTAsMCArMSw2NiBAQAorLS1URVNULS0KK1BFQVJf
SW5zdGFsbGVyIC0gQnVnICMxNzM1MDogInBlYXIgaW5zdGFsbCAtLWZvcmNlIiBkb2Vzbid0IHVuaW5z
dGFsbCBmaWxlcyBmcm9tIHByZXZpb3VzIHBrZyB2ZXJzaW9ucworLS1TS0lQSUYtLQorPD9waHAKK2lm
ICghZ2V0ZW52KCdQSFBfUEVBUl9SVU5URVNUUycpKSB7CisgICAgZWNobyAnc2tpcCc7Cit9Cis/Pgor
LS1GSUxFLS0KKzw/cGhwCityZXF1aXJlX29uY2UgZGlybmFtZShfX0ZJTEVfXykgLiBESVJFQ1RPUllf
U0VQQVJBVE9SIC4gJ3NldHVwLnBocC5pbmMnOworCiskZGlyID0gZGlybmFtZShfX0ZJTEVfXykgLiBE
SVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2J1ZzE3MzUwJyAuIERJUkVDVE9SWV9TRVBBUkFUT1I7CiskcDEg
ID0gJGRpciAuICdUZXN0X1BhY2thZ2U5OS0xLjAuMCcgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ3Bh
Y2thZ2UueG1sJzsKKyRwMiAgPSAkZGlyIC4gJ1Rlc3RfUGFja2FnZTk5LTEuMS4wJyAuIERJUkVDVE9S
WV9TRVBBUkFUT1IgLiAncGFja2FnZS54bWwnOworCiskX3Rlc3RfZGVwLT5zZXRQSFBWZXJzaW9uKCc1
LjMuMCcpOworJF90ZXN0X2RlcC0+c2V0UEVBUlZlcnNpb24oJzEuOS4wJyk7CiskX3Rlc3RfZGVwLT5z
ZXRFeHRlbnNpb25zKGFycmF5KCdwY3JlJyA9PiAnMS4wJykpOworCisKKyRkcCA9ICZuZXcgdGVzdF9Q
RUFSX0Rvd25sb2FkZXIoJGZha2Vsb2csIGFycmF5KCksICRjb25maWcpOworJHBocHVuaXQtPmFzc2Vy
dE5vRXJyb3JzKCdhZnRlciBjcmVhdGUnKTsKKworJHJlc3VsdCA9ICRkcC0+ZG93bmxvYWQoYXJyYXko
JHAxKSk7CiskZGxwYWNrYWdlcyA9ICRkcC0+Z2V0RG93bmxvYWRlZFBhY2thZ2VzKCk7CisKKyRpbnN0
YWxsZXItPnNldE9wdGlvbnMoJGRwLT5nZXRPcHRpb25zKCkpOworJGluc3RhbGxlci0+c29ydFBhY2th
Z2VzRm9ySW5zdGFsbCgkcmVzdWx0KTsKKyRpbnN0YWxsZXItPnNldERvd25sb2FkZWRQYWNrYWdlcygk
cmVzdWx0KTsKKyRwaHB1bml0LT5hc3NlcnROb0Vycm9ycygnc2V0IG9mIGRvd25sb2FkZWQgcGFja2Fn
ZXMnKTsKKyRyZXQgPSAkaW5zdGFsbGVyLT5pbnN0YWxsKCRyZXN1bHRbMF0sICRkcC0+Z2V0T3B0aW9u
cygpKTsKKyRwaHB1bml0LT5hc3NlcnROb0Vycm9ycygnYWZ0ZXIgaW5zdGFsbCcpOworJGZha2Vsb2ct
PmdldExvZygpOworCiskcGhwdW5pdC0+YXNzZXJ0RmlsZUV4aXN0cygkcGhwX2RpciAuIERJUkVDVE9S
WV9TRVBBUkFUT1IgLiAndGVzdDEucGhwJywgJ3Rlc3QxLnBocCBleGlzdHMnKTsKKyRwaHB1bml0LT5h
c3NlcnRGaWxlRXhpc3RzKCRwaHBfZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0ZXN0Mi5waHAn
LCAndGVzdDIucGhwIGV4aXN0cycpOworCiskX3Rlc3RfZGVwLT5zZXRQSFBWZXJzaW9uKCc1LjMuMCcp
OworJF90ZXN0X2RlcC0+c2V0UEVBUlZlcnNpb24oJzEuOS4wJyk7CiskX3Rlc3RfZGVwLT5zZXRFeHRl
bnNpb25zKGFycmF5KCdwY3JlJyA9PiAnMS4wJykpOworCiskZHAgPSAmbmV3IHRlc3RfUEVBUl9Eb3du
bG9hZGVyKCRmYWtlbG9nLCBhcnJheSgnZm9yY2UnID0+IHRydWUpLCAkY29uZmlnKTsKKyRwaHB1bml0
LT5hc3NlcnROb0Vycm9ycygnYWZ0ZXIgY3JlYXRlIDInKTsKKworJHJlc3VsdCA9ICRkcC0+ZG93bmxv
YWQoYXJyYXkoJHAyKSk7CiskZGxwYWNrYWdlcyA9ICRkcC0+Z2V0RG93bmxvYWRlZFBhY2thZ2VzKCk7
CisKKyRpbnN0YWxsZXItPnNldE9wdGlvbnMoJGRwLT5nZXRPcHRpb25zKCkpOworJGluc3RhbGxlci0+
c29ydFBhY2thZ2VzRm9ySW5zdGFsbCgkcmVzdWx0KTsKKyRpbnN0YWxsZXItPnNldERvd25sb2FkZWRQ
YWNrYWdlcygkcmVzdWx0KTsKKyRwaHB1bml0LT5hc3NlcnROb0Vycm9ycygnc2V0IG9mIGRvd25sb2Fk
ZWQgcGFja2FnZXMgMicpOworJHJldCA9ICRpbnN0YWxsZXItPmluc3RhbGwoJHJlc3VsdFswXSwgJGRw
LT5nZXRPcHRpb25zKCkpOworJHBocHVuaXQtPmFzc2VydE5vRXJyb3JzKCdhZnRlciBpbnN0YWxsIDIn
KTsKKworJHBocHVuaXQtPmFzc2VydEZpbGVFeGlzdHMoJHBocF9kaXIgLiBESVJFQ1RPUllfU0VQQVJB
VE9SIC4gJ3Rlc3QxLnBocCcsICd0ZXN0MS5waHAgZXhpc3RzJyk7CiskcGhwdW5pdC0+YXNzZXJ0Rmls
ZU5vdEV4aXN0cygkcGhwX2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndGVzdDIucGhwJywgJ3Rl
c3QyLnBocCBkb2VzIG5vdCBleGlzdHMnKTsKKworZWNobyAndGVzdHMgZG9uZSc7Cis/PgorLS1DTEVB
Ti0tCis8P3BocAorcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pIC4gJy90ZWFyZG93bi5waHAu
aW5jJzsKKz8+CistLUVYUEVDVC0tCit0ZXN0cyBkb25lCg==
--4a23a2d4ddaa338224bbadc8fd87d59832f028b3--