svn: /pear/pear-core/tags/PEAR-1.9.4/ PEAR/Builder.php PEAR/Command/Config.php PEAR/Command/Package.php PEAR/Downloader.php PEAR/Installer.php PEAR/PackageFile.php PEAR/RunTest.php System.php package.xml package2.xml

[email protected] (Helgi Þormar Þorbjörnsson) Wed, 06 Jul 2011 19:51:24 +0000
Newsgroups php.pear.cvs,php.pear.core
Message-ID <[email protected]>
--5f9473a1ed852f3bd79f10f6ef26863be8bae4aa
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

dufuz                                    Wed, 06 Jul 2011 19:51:24 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=313024

Log:
Sync bug fixes from trunk to 1.9.4

  Bug Fixes:
  * Bug #17350: "pear install --force" doesn't uninstall files from previous pkg versions [dufuz]
  * Bug #18362: A whitespace TEMP_DIR path breaks install/upgrade functionality [dufuz]
  * Bug #18440: bad tmp folder path on install : Unable to create path for C:/Program/tmp [dufuz]
  * Bug #18581: "config-get -c" not returning channel's configuration when using alias [dufuz]
  * Bug #18639: regression: installing xdebug fails most likely due to another fix [dufuz]

  Features
  * All System (the class) functions can now take in spaced paths as long as they are surrounded in quotes.
    Prior to this it was possible to do that by passing all values in as an array (by product of #18362, #18440) [dufuz]

Also fixes to pear run-tests with coverage on.

Bugs: http://pear.php.net/bugs/17350 (unknown) 
      http://pear.php.net/bugs/18362 (unknown) 
      http://pear.php.net/bugs/18440 (unknown) 
      http://pear.php.net/bugs/18581 (unknown) 
      http://pear.php.net/bugs/18639 (unknown) 
      
Changed paths:
    U   pear/pear-core/tags/PEAR-1.9.4/PEAR/Builder.php
    U   pear/pear-core/tags/PEAR-1.9.4/PEAR/Command/Config.php
    U   pear/pear-core/tags/PEAR-1.9.4/PEAR/Command/Package.php
    U   pear/pear-core/tags/PEAR-1.9.4/PEAR/Downloader.php
    U   pear/pear-core/tags/PEAR-1.9.4/PEAR/Installer.php
    U   pear/pear-core/tags/PEAR-1.9.4/PEAR/PackageFile.php
    U   pear/pear-core/tags/PEAR-1.9.4/PEAR/RunTest.php
    U   pear/pear-core/tags/PEAR-1.9.4/System.php
    U   pear/pear-core/tags/PEAR-1.9.4/package.xml
    U   pear/pear-core/tags/PEAR-1.9.4/package2.xml


--5f9473a1ed852f3bd79f10f6ef26863be8bae4aa
Content-Type: text/x-diff; charset="utf-8"
Content-Disposition: attachment; filename="svn-diffs-313024.txt"
Content-Transfer-Encoding: base64

TW9kaWZpZWQ6IHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9QRUFSL0J1aWxkZXIucGhwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9QRUFSL0J1aWxkZXIucGhwCTIw
MTEtMDctMDYgMTk6MTc6MTEgVVRDIChyZXYgMzEzMDIzKQorKysgcGVhci9wZWFyLWNvcmUvdGFncy9Q
RUFSLTEuOS40L1BFQVIvQnVpbGRlci5waHAJMjAxMS0wNy0wNiAxOTo1MToyNCBVVEMgKHJldiAzMTMw
MjQpCkBAIC0yODksNyArMjg5LDcgQEAKCiAgICAgICAgIC8vIEZpbmQgY29uZmlnLiBvdXRzaWRlIG9m
IG5vcm1hbCBwYXRoIC0gZS5nLiBjb25maWcubTQKICAgICAgICAgZm9yZWFjaCAoYXJyYXlfa2V5cygk
cGtnLT5nZXRJbnN0YWxsYXRpb25GaWxlTGlzdCgpKSBhcyAkaXRlbSkgewotICAgICAgICAgIGlmIChz
dHJpc3RyKCRpdGVtLCAnY29uZmlnLicpKSB7CisgICAgICAgICAgaWYgKHN0cmlzdHIoYmFzZW5hbWUo
JGl0ZW0pLCAnY29uZmlnLm00JykgJiYgZGlybmFtZSgkaXRlbSkgIT0gJy4nKSB7CiAgICAgICAgICAg
ICAkZGlyIC49IERJUkVDVE9SWV9TRVBBUkFUT1IgLiBkaXJuYW1lKCRpdGVtKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgIH0KQEAgLTM0Niw3ICszNDYsNyBAQAogICAgICAgICB9CgogICAgICAg
ICAkdG1wZGlyID0gJHRoaXMtPmNvbmZpZy0+Z2V0KCd0ZW1wX2RpcicpOwotICAgICAgICAkYnVpbGRf
YmFzZWRpciA9IFN5c3RlbTo6bWt0ZW1wKCIgLXQgJHRtcGRpciAtZCBwZWFyLWJ1aWxkLSR1c2VyIik7
CisgICAgICAgICRidWlsZF9iYXNlZGlyID0gU3lzdGVtOjpta3RlbXAoJyAtdCAiJyAuICR0bXBkaXIg
LiAnIiAtZCAicGVhci1idWlsZC0nIC4gJHVzZXIgLiAnIicpOwogICAgICAgICAkYnVpbGRfZGlyID0g
IiRidWlsZF9iYXNlZGlyLyR2ZGlyIjsKICAgICAgICAgJGluc3RfZGlyID0gIiRidWlsZF9iYXNlZGly
L2luc3RhbGwtJHZkaXIiOwogICAgICAgICAkdGhpcy0+bG9nKDEsICJidWlsZGluZyBpbiAkYnVpbGRf
ZGlyIik7CgpNb2RpZmllZDogcGVhci9wZWFyLWNvcmUvdGFncy9QRUFSLTEuOS40L1BFQVIvQ29tbWFu
ZC9Db25maWcucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9QRUFS
L0NvbW1hbmQvQ29uZmlnLnBocAkyMDExLTA3LTA2IDE5OjE3OjExIFVUQyAocmV2IDMxMzAyMykKKysr
IHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9QRUFSL0NvbW1hbmQvQ29uZmlnLnBocAkyMDEx
LTA3LTA2IDE5OjUxOjI0IFVUQyAocmV2IDMxMzAyNCkKQEAgLTIwNSwxMiArMjA1LDEzIEBACiAgICAg
ICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCJjb25maWctZ2V0IGV4cGVjdHMgMSBv
ciAyIHBhcmFtZXRlcnMiKTsKICAgICAgICAgfQoKKyAgICAgICAgJHJlZyA9ICYkdGhpcy0+Y29uZmln
LT5nZXRSZWdpc3RyeSgpOwogICAgICAgICAkY2hhbm5lbCA9IGlzc2V0KCRvcHRpb25zWydjaGFubmVs
J10pID8gJG9wdGlvbnNbJ2NoYW5uZWwnXSA6ICR0aGlzLT5jb25maWctPmdldCgnZGVmYXVsdF9jaGFu
bmVsJyk7Ci0gICAgICAgICRyZWcgPSAmJHRoaXMtPmNvbmZpZy0+Z2V0UmVnaXN0cnkoKTsKICAgICAg
ICAgaWYgKCEkcmVnLT5jaGFubmVsRXhpc3RzKCRjaGFubmVsKSkgewogICAgICAgICAgICAgcmV0dXJu
ICR0aGlzLT5yYWlzZUVycm9yKCdDaGFubmVsICInIC4gJGNoYW5uZWwgLiAnIiBkb2VzIG5vdCBleGlz
dCcpOwogICAgICAgICB9CgorICAgICAgICAkY2hhbm5lbCA9ICRyZWctPmNoYW5uZWxOYW1lKCRjaGFu
bmVsKTsKICAgICAgICAgJHRoaXMtPnVpLT5vdXRwdXREYXRhKCR0aGlzLT5jb25maWctPmdldCgkY29u
ZmlnX2tleSwgJGxheWVyLCAkY2hhbm5lbCksICRjb21tYW5kKTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQoKTW9kaWZpZWQ6IHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9QRUFSL0NvbW1h
bmQvUGFja2FnZS5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGVhci9wZWFyLWNvcmUvdGFncy9QRUFSLTEuOS40L1BF
QVIvQ29tbWFuZC9QYWNrYWdlLnBocAkyMDExLTA3LTA2IDE5OjE3OjExIFVUQyAocmV2IDMxMzAyMykK
KysrIHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9QRUFSL0NvbW1hbmQvUGFja2FnZS5waHAJ
MjAxMS0wNy0wNiAxOTo1MToyNCBVVEMgKHJldiAzMTMwMjQpCkBAIC0xNjAsNyArMTYwLDcgQEAKICBT
ZXRzIGEgU1ZOIHRhZyBvbiBhbGwgZmlsZXMgaW4gYSBwYWNrYWdlLiAgVXNlIHRoaXMgY29tbWFuZCBh
ZnRlciB5b3UgaGF2ZQogIHBhY2thZ2VkIGEgZGlzdHJpYnV0aW9uIHRhcmJhbGwgd2l0aCB0aGUgInBh
Y2thZ2UiIGNvbW1hbmQgdG8gdGFnIHdoYXQKICByZXZpc2lvbnMgb2Ygd2hhdCBmaWxlcyB3ZXJlIGlu
IHRoYXQgcmVsZWFzZS4gIElmIG5lZWQgdG8gZml4IHNvbWV0aGluZwotIGFmdGVyIHJ1bm5pbmcgc3Zu
Z3RhZyBvbmNlLCBidXQgYmVmb3JlIHRoZSB0YXJiYWxsIGlzIHJlbGVhc2VkIHRvIHRoZSBwdWJsaWMs
CisgYWZ0ZXIgcnVubmluZyBzdm50YWcgb25jZSwgYnV0IGJlZm9yZSB0aGUgdGFyYmFsbCBpcyByZWxl
YXNlZCB0byB0aGUgcHVibGljLAogIHVzZSB0aGUgInNsaWRlIiBvcHRpb24gdG8gbW92ZSB0aGUgcmVs
ZWFzZSB0YWcuCgogIHRvIGluY2x1ZGUgZmlsZXMgKHN1Y2ggYXMgYSBzZWNvbmQgcGFja2FnZS54bWws
IG9yIHRlc3RzIG5vdCBpbmNsdWRlZCBpbiB0aGUKQEAgLTk3NCw3ICs5NzQsNyBAQAogICAgICAgICAk
dGFyID0gbmV3IEFyY2hpdmVfVGFyKCRwYXJhbXNbMF0pOwoKICAgICAgICAgJHRtcGRpciA9ICR0aGlz
LT5jb25maWctPmdldCgndGVtcF9kaXInKTsKLSAgICAgICAgJHRtcGRpciA9IFN5c3RlbTo6bWt0ZW1w
KCIgLXQgJHRtcGRpciAtZCBwZWFyc2lnbiIpOworICAgICAgICAkdG1wZGlyID0gU3lzdGVtOjpta3Rl
bXAoJyAtdCAiJyAuICR0bXBkaXIgLiAnIiAtZCBwZWFyc2lnbicpOwogICAgICAgICBpZiAoISR0YXIt
PmV4dHJhY3RMaXN0KCdwYWNrYWdlMi54bWwgcGFja2FnZS54bWwgcGFja2FnZS5zaWcnLCAkdG1wZGly
KSkgewogICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCJmYWlsZWQgdG8gZXh0cmFj
dCB0YXIgZmlsZSIpOwogICAgICAgICB9CgpNb2RpZmllZDogcGVhci9wZWFyLWNvcmUvdGFncy9QRUFS
LTEuOS40L1BFQVIvRG93bmxvYWRlci5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGVhci9wZWFyLWNvcmUvdGFncy9Q
RUFSLTEuOS40L1BFQVIvRG93bmxvYWRlci5waHAJMjAxMS0wNy0wNiAxOToxNzoxMSBVVEMgKHJldiAz
MTMwMjMpCisrKyBwZWFyL3BlYXItY29yZS90YWdzL1BFQVItMS45LjQvUEVBUi9Eb3dubG9hZGVyLnBo
cAkyMDExLTA3LTA2IDE5OjUxOjI0IFVUQyAocmV2IDMxMzAyNCkKQEAgLTE5MCw3ICsxOTAsNyBAQAog
ICAgICAgICB9CgogICAgICAgICAkdG1wZGlyID0gJHRoaXMtPmNvbmZpZy0+Z2V0KCd0ZW1wX2Rpcicp
OwotICAgICAgICAkdG1wID0gU3lzdGVtOjpta3RlbXAoIi1kIC10ICR0bXBkaXIiKTsKKyAgICAgICAg
JHRtcCA9IFN5c3RlbTo6bWt0ZW1wKCctZCAtdCAiJyAuICR0bXBkaXIgLiAnIicpOwogICAgICAgICAk
YSAgID0gJHRoaXMtPmRvd25sb2FkSHR0cCgnaHR0cDovLycgLiAkY2hhbm5lbCAuICcvY2hhbm5lbC54
bWwnLCAkdGhpcy0+dWksICR0bXAsICRjYWxsYmFjaywgZmFsc2UpOwogICAgICAgICBQRUFSOjpwb3BF
cnJvckhhbmRsaW5nKCk7CiAgICAgICAgIGlmIChQRUFSOjppc0Vycm9yKCRhKSkgewoKTW9kaWZpZWQ6
IHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9QRUFSL0luc3RhbGxlci5waHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGVhci9wZWFyLWNvcmUvdGFncy9QRUFSLTEuOS40L1BFQVIvSW5zdGFsbGVyLnBocAkyMDExLTA3
LTA2IDE5OjE3OjExIFVUQyAocmV2IDMxMzAyMykKKysrIHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0x
LjkuNC9QRUFSL0luc3RhbGxlci5waHAJMjAxMS0wNy0wNiAxOTo1MToyNCBVVEMgKHJldiAzMTMwMjQp
CkBAIC0xMTQ4LDExICsxMTQ4LDExIEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KCi0gICAgICAg
ICR0bXBkaXIgICA9IGRpcm5hbWUoJGRlc2NmaWxlKTsKKyAgICAgICAgJHRtcGRpciA9IGRpcm5hbWUo
JGRlc2NmaWxlKTsKICAgICAgICAgaWYgKHJlYWxwYXRoKCRkZXNjZmlsZSkgIT0gcmVhbHBhdGgoJHBr
Z2ZpbGUpKSB7CiAgICAgICAgICAgICAvLyBVc2UgdGhlIHRlbXBfZGlyIHNpbmNlICRkZXNjZmlsZSBj
YW4gY29udGFpbiB0aGUgZG93bmxvYWQgZGlyIHBhdGgKICAgICAgICAgICAgICR0bXBkaXIgPSAkdGhp
cy0+Y29uZmlnLT5nZXQoJ3RlbXBfZGlyJywgbnVsbCwgJ3BlYXIucGhwLm5ldCcpOwotICAgICAgICAg
ICAgJHRtcGRpciA9IFN5c3RlbTo6bWt0ZW1wKCItZCAtdCAkdG1wZGlyIik7CisgICAgICAgICAgICAk
dG1wZGlyID0gU3lzdGVtOjpta3RlbXAoJy1kIC10ICInIC4gJHRtcGRpciAuICciJyk7CgogICAgICAg
ICAgICAgJHRhciA9IG5ldyBBcmNoaXZlX1RhcigkcGtnZmlsZSk7CiAgICAgICAgICAgICBpZiAoISR0
YXItPmV4dHJhY3QoJHRtcGRpcikpIHsKQEAgLTEzMTUsMzIgKzEzMTUsMjQgQEAKCiAgICAgICAgICR0
aGlzLT5zdGFydEZpbGVUcmFuc2FjdGlvbigpOwoKLSAgICAgICAgaWYgKGVtcHR5KCRvcHRpb25zWyd1
cGdyYWRlJ10pICYmIGVtcHR5KCRvcHRpb25zWydzb2Z0J10pKSB7Ci0gICAgICAgICAgICAvLyBjaGVj
a3MgdG8gZG8gb25seSB3aGVuIGluc3RhbGxpbmcgbmV3IHBhY2thZ2VzCi0gICAgICAgICAgICBpZiAo
JGNoYW5uZWwgPT0gJ3BlY2wucGhwLm5ldCcpIHsKLSAgICAgICAgICAgICAgICAkdGVzdCA9ICRpbnN0
YWxscmVnaXN0cnktPnBhY2thZ2VFeGlzdHMoJHBrZ25hbWUsICRjaGFubmVsKTsKLSAgICAgICAgICAg
ICAgICBpZiAoISR0ZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICR0ZXN0ID0gJGluc3RhbGxyZWdp
c3RyeS0+cGFja2FnZUV4aXN0cygkcGtnbmFtZSwgJ3BlYXIucGhwLm5ldCcpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJHRlc3QgPSAkaW5zdGFs
bHJlZ2lzdHJ5LT5wYWNrYWdlRXhpc3RzKCRwa2duYW1lLCAkY2hhbm5lbCk7CisgICAgICAgICR1c2Vj
aGFubmVsID0gJGNoYW5uZWw7CisgICAgICAgIGlmICgkY2hhbm5lbCA9PSAncGVjbC5waHAubmV0Jykg
eworICAgICAgICAgICAgJHRlc3QgPSAkaW5zdGFsbHJlZ2lzdHJ5LT5wYWNrYWdlRXhpc3RzKCRwa2du
YW1lLCAkY2hhbm5lbCk7CisgICAgICAgICAgICBpZiAoISR0ZXN0KSB7CisgICAgICAgICAgICAgICAg
JHRlc3QgPSAkaW5zdGFsbHJlZ2lzdHJ5LT5wYWNrYWdlRXhpc3RzKCRwa2duYW1lLCAncGVhci5waHAu
bmV0Jyk7CisgICAgICAgICAgICAgICAgJHVzZWNoYW5uZWwgPSAncGVhci5waHAubmV0JzsKICAgICAg
ICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0ZXN0ID0gJGluc3RhbGxyZWdp
c3RyeS0+cGFja2FnZUV4aXN0cygkcGtnbmFtZSwgJGNoYW5uZWwpOworICAgICAgICB9CgorICAgICAg
ICBpZiAoZW1wdHkoJG9wdGlvbnNbJ3VwZ3JhZGUnXSkgJiYgZW1wdHkoJG9wdGlvbnNbJ3NvZnQnXSkp
IHsKKyAgICAgICAgICAgIC8vIGNoZWNrcyB0byBkbyBvbmx5IHdoZW4gaW5zdGFsbGluZyBuZXcgcGFj
a2FnZXMKICAgICAgICAgICAgIGlmIChlbXB0eSgkb3B0aW9uc1snZm9yY2UnXSkgJiYgJHRlc3QpIHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoIiRjaGFubmVsLyRwa2duYW1l
IGlzIGFscmVhZHkgaW5zdGFsbGVkIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAkdXNlY2hhbm5lbCA9ICRjaGFubmVsOwotICAgICAgICAgICAgaWYgKCRjaGFubmVs
ID09ICdwZWNsLnBocC5uZXQnKSB7Ci0gICAgICAgICAgICAgICAgJHRlc3QgPSAkaW5zdGFsbHJlZ2lz
dHJ5LT5wYWNrYWdlRXhpc3RzKCRwa2duYW1lLCAkY2hhbm5lbCk7Ci0gICAgICAgICAgICAgICAgaWYg
KCEkdGVzdCkgewotICAgICAgICAgICAgICAgICAgICAkdGVzdCA9ICRpbnN0YWxscmVnaXN0cnktPnBh
Y2thZ2VFeGlzdHMoJHBrZ25hbWUsICdwZWFyLnBocC5uZXQnKTsKLSAgICAgICAgICAgICAgICAgICAg
JHVzZWNoYW5uZWwgPSAncGVhci5waHAubmV0JzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICR0ZXN0ID0gJGluc3RhbGxyZWdpc3RyeS0+cGFja2Fn
ZUV4aXN0cygkcGtnbmFtZSwgJGNoYW5uZWwpOwotICAgICAgICAgICAgfQotCisgICAgICAgICAgICAv
LyBVcGdyYWRlCiAgICAgICAgICAgICBpZiAoJHRlc3QpIHsKICAgICAgICAgICAgICAgICAkdjEgPSAk
aW5zdGFsbHJlZ2lzdHJ5LT5wYWNrYWdlSW5mbygkcGtnbmFtZSwgJ3ZlcnNpb24nLCAkdXNlY2hhbm5l
bCk7CiAgICAgICAgICAgICAgICAgJHYyID0gJHBrZy0+Z2V0VmVyc2lvbigpOwpAQCAtMTM0OCwyMiAr
MTM0MCwyMyBAQAogICAgICAgICAgICAgICAgIGlmIChlbXB0eSgkb3B0aW9uc1snZm9yY2UnXSkgJiYg
IXZlcnNpb25fY29tcGFyZSgiJHYyIiwgIiR2MSIsICdndCcpKSB7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigidXBncmFkZSB0byBhIG5ld2VyIHZlcnNpb24gKCR2MiBp
cyBub3QgbmV3ZXIgdGhhbiAkdjEpIik7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9CgotICAgICAgICAgICAgICAgIGlmIChlbXB0eSgkb3B0aW9uc1sncmVnaXN0ZXItb25s
eSddKSkgewotICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHVwZ3JhZGluZywgcmVtb3ZlIG9sZCBy
ZWxlYXNlJ3MgZmlsZXMgZmlyc3Q6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChQRUFSOjppc0Vycm9y
KCRlcnIgPSAkdGhpcy0+X2RlbGV0ZVBhY2thZ2VGaWxlcygkcGtnbmFtZSwgJHVzZWNoYW5uZWwsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCFpc3NldCgkb3B0aW9uc1snaWdub3JlLWVycm9ycyddKSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigkZXJyKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgLy8gRG8gY2xlYW51cHMgZm9yIHVwZ3JhZGUgYW5kIGluc3RhbGwsIHJl
bW92ZSBvbGQgcmVsZWFzZSdzIGZpbGVzIGZpcnN0CisgICAgICAgIGlmICgkdGVzdCAmJiBlbXB0eSgk
b3B0aW9uc1sncmVnaXN0ZXItb25seSddKSkgeworICAgICAgICAgICAgLy8gd2hlbiB1cGdyYWRpbmcs
IHJlbW92ZSBvbGQgcmVsZWFzZSdzIGZpbGVzIGZpcnN0OgorICAgICAgICAgICAgaWYgKFBFQVI6Omlz
RXJyb3IoJGVyciA9ICR0aGlzLT5fZGVsZXRlUGFja2FnZUZpbGVzKCRwa2duYW1lLCAkdXNlY2hhbm5l
bCwKKyAgICAgICAgICAgICAgICAgIHRydWUpKSkgeworICAgICAgICAgICAgICAgIGlmICghaXNzZXQo
JG9wdGlvbnNbJ2lnbm9yZS1lcnJvcnMnXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0
aGlzLT5yYWlzZUVycm9yKCRlcnIpOworICAgICAgICAgICAgICAgIH0KCi0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIWlzc2V0KCRvcHRpb25zWydzb2Z0J10pKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJHRoaXMtPmxvZygwLCAnV0FSTklORzogJyAuICRlcnItPmdldE1lc3NhZ2UoKSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAkYmFja2VkdXAgPSAkZXJyOwotICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkb3B0aW9uc1snc29mdCddKSkgeworICAgICAgICAg
ICAgICAgICAgICAkdGhpcy0+bG9nKDAsICdXQVJOSU5HOiAnIC4gJGVyci0+Z2V0TWVzc2FnZSgpKTsK
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRi
YWNrZWR1cCA9ICRlcnI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KCgpNb2RpZmllZDogcGVhci9w
ZWFyLWNvcmUvdGFncy9QRUFSLTEuOS40L1BFQVIvUGFja2FnZUZpbGUucGhwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBl
YXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9QRUFSL1BhY2thZ2VGaWxlLnBocAkyMDExLTA3LTA2
IDE5OjE3OjExIFVUQyAocmV2IDMxMzAyMykKKysrIHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjku
NC9QRUFSL1BhY2thZ2VGaWxlLnBocAkyMDExLTA3LTA2IDE5OjUxOjI0IFVUQyAocmV2IDMxMzAyNCkK
QEAgLTM1MSw3ICszNTEsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CgotICAgICAgICAkdG1w
ZGlyID0gU3lzdGVtOjpta3RlbXAoJy10ICcgLiAkdGhpcy0+X2NvbmZpZy0+Z2V0KCd0ZW1wX2Rpcicp
IC4gJyAtZCBwZWFyJyk7CisgICAgICAgICR0bXBkaXIgPSBTeXN0ZW06Om1rdGVtcCgnLXQgIicgLiAk
dGhpcy0+X2NvbmZpZy0+Z2V0KCd0ZW1wX2RpcicpIC4gJyIgLWQgcGVhcicpOwogICAgICAgICBpZiAo
JHRtcGRpciA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICRyZXQgPSBQRUFSOjpyYWlzZUVycm9yKCJ0
aGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggZ2V0dGluZyB0aGUgY29uZmlndXJlZCB0ZW1wIGRpcmVjdG9y
eSIpOwogICAgICAgICAgICAgcmV0dXJuICRyZXQ7CgpNb2RpZmllZDogcGVhci9wZWFyLWNvcmUvdGFn
cy9QRUFSLTEuOS40L1BFQVIvUnVuVGVzdC5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGVhci9wZWFyLWNvcmUvdGFn
cy9QRUFSLTEuOS40L1BFQVIvUnVuVGVzdC5waHAJMjAxMS0wNy0wNiAxOToxNzoxMSBVVEMgKHJldiAz
MTMwMjMpCisrKyBwZWFyL3BlYXItY29yZS90YWdzL1BFQVItMS45LjQvUEVBUi9SdW5UZXN0LnBocAky
MDExLTA3LTA2IDE5OjUxOjI0IFVUQyAocmV2IDMxMzAyNCkKQEAgLTM4OCwxMyArMzg4LDE1IEBACiAg
ICAgICAgICAgICAkbmFtZXNwYWNlICAgICAgICAgPSAnJzsKICAgICAgICAgICAgICRjb3ZlcmFnZV9z
aHV0ZG93biA9ICdjb3ZlcmFnZV9zaHV0ZG93bic7CgotICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRp
IDwgJG51bUxpbmVzOyAkaSsrKSB7Ci0gICAgICAgICAgICAgICAgJGxpbmVzWyRpXSA9IHRyaW0oJGxp
bmVzWyRpXSk7CisgICAgICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAgc3Vic3RyKCRsaW5lc1sw
XSwgMCwgMikgPT0gJzw/JyB8fAorICAgICAgICAgICAgICAgIHN1YnN0cigkbGluZXNbMF0sIDAsIDUp
ID09ICc8P3BocCcKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIHVuc2V0KCRsaW5lc1sw
XSk7CisgICAgICAgICAgICB9CgotICAgICAgICAgICAgICAgIGlmICgkbGluZXNbJGldID09ICc8Pycg
fHwgJGxpbmVzWyRpXSA9PSAnPD9waHAnKSB7Ci0gICAgICAgICAgICAgICAgICAgIHVuc2V0KCRsaW5l
c1skaV0pOwotICAgICAgICAgICAgICAgIH0KCisgICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAk
bnVtTGluZXM7ICRpKyspIHsKICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGxpbmVzWyRpXSkgJiYg
c3Vic3RyKCRsaW5lc1skaV0sIDAsIDkpID09ICduYW1lc3BhY2UnKSB7CiAgICAgICAgICAgICAgICAg
ICAgICRuYW1lc3BhY2UgICAgICAgICA9IHN1YnN0cigkbGluZXNbJGldLCAxMCwgLTEpOwogICAgICAg
ICAgICAgICAgICAgICAkY292ZXJhZ2Vfc2h1dGRvd24gPSAkbmFtZXNwYWNlIC4gJ1xcY292ZXJhZ2Vf
c2h1dGRvd24nOwpAQCAtNDA1LDkgKzQwNyw5IEBACiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQoKLSAgICAgICAgICAgICR0ZXh0IC49ICJcbiIgLiAneGRlYnVnX3N0b3BfY29kZV9jb3ZlcmFn
ZSgpOycgLgorICAgICAgICAgICAgJHRleHQgLj0gIlxuICAgIHhkZWJ1Z19zdG9wX2NvZGVfY292ZXJh
Z2UoKTsiIC4KICAgICAgICAgICAgICAgICAiXG4iIC4gJ30gLy8gZW5kIGNvdmVyYWdlX3NodXRkb3du
KCknIC4KLSAgICAgICAgICAgICAgICAiXG4iIC4gJ3JlZ2lzdGVyX3NodXRkb3duX2Z1bmN0aW9uKCIn
IC4gJGNvdmVyYWdlX3NodXRkb3duIC4gJyIpOyc7CisgICAgICAgICAgICAgICAgIlxuXG4iIC4gJ3Jl
Z2lzdGVyX3NodXRkb3duX2Z1bmN0aW9uKCInIC4gJGNvdmVyYWdlX3NodXRkb3duIC4gJyIpOyc7CiAg
ICAgICAgICAgICAkdGV4dCAuPSAiXG4iIC4gJ3hkZWJ1Z19zdGFydF9jb2RlX2NvdmVyYWdlKFhERUJV
R19DQ19VTlVTRUQgfCBYREVCVUdfQ0NfREVBRF9DT0RFKTsnIC4gIlxuIjsKCiAgICAgICAgICAgICAk
dGhpcy0+c2F2ZV90ZXh0KCR0ZW1wX2ZpbGUsICI8P3BocFxuIiAuICRuYW1lc3BhY2UgLiAkdGV4dCAg
LiAiXG4iIC4gaW1wbG9kZSgiXG4iLCAkbGluZXMpKTsKCk1vZGlmaWVkOiBwZWFyL3BlYXItY29yZS90
YWdzL1BFQVItMS45LjQvU3lzdGVtLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwZWFyL3BlYXItY29yZS90YWdzL1BF
QVItMS45LjQvU3lzdGVtLnBocAkyMDExLTA3LTA2IDE5OjE3OjExIFVUQyAocmV2IDMxMzAyMykKKysr
IHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9TeXN0ZW0ucGhwCTIwMTEtMDctMDYgMTk6NTE6
MjQgVVRDIChyZXYgMzEzMDI0KQpAQCAtNzEsOSArNzEsMTcgQEAKICAgICBmdW5jdGlvbiBfcGFyc2VB
cmdzKCRhcmd2LCAkc2hvcnRfb3B0aW9ucywgJGxvbmdfb3B0aW9ucyA9IG51bGwpCiAgICAgewogICAg
ICAgICBpZiAoIWlzX2FycmF5KCRhcmd2KSAmJiAkYXJndiAhPT0gbnVsbCkgewotICAgICAgICAgICAg
JGFyZ3YgPSBwcmVnX3NwbGl0KCcvXHMrLycsICRhcmd2LCAtMSwgUFJFR19TUExJVF9OT19FTVBUWSk7
CisgICAgICAgICAgICAvLyBGaW5kIGFsbCBpdGVtcywgcXVvdGVkIG9yIG90aGVyd2lzZQorICAgICAg
ICAgICAgcHJlZ19tYXRjaF9hbGwoIi8oPzpbXCInXSkoLio/KSg/OlsnXCJdKXwoW15cc10rKS8iLCAk
YXJndiwgJGF2KTsKKyAgICAgICAgICAgICRhcmd2ID0gJGF2WzFdOworICAgICAgICAgICAgZm9yZWFj
aCAoJGF2WzJdIGFzICRrID0+ICRhKSB7CisgICAgICAgICAgICAgICAgaWYgKGVtcHR5KCRhKSkgewor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgJGFyZ3ZbJGtdID0gdHJpbSgkYSkgOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBDb25zb2xlX0dldG9wdDo6Z2V0b3B0MigkYXJndiwgJHNob3J0X29wdGlvbnMpOwor
ICAgICAgICByZXR1cm4gQ29uc29sZV9HZXRvcHQ6OmdldG9wdDIoJGFyZ3YsICRzaG9ydF9vcHRpb25z
LCAkbG9uZ19vcHRpb25zKTsKICAgICB9CgogICAgIC8qKgoKTW9kaWZpZWQ6IHBlYXIvcGVhci1jb3Jl
L3RhZ3MvUEVBUi0xLjkuNC9wYWNrYWdlLnhtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwZWFyL3BlYXItY29yZS90YWdz
L1BFQVItMS45LjQvcGFja2FnZS54bWwJMjAxMS0wNy0wNiAxOToxNzoxMSBVVEMgKHJldiAzMTMwMjMp
CisrKyBwZWFyL3BlYXItY29yZS90YWdzL1BFQVItMS45LjQvcGFja2FnZS54bWwJMjAxMS0wNy0wNiAx
OTo1MToyNCBVVEMgKHJldiAzMTMwMjQpCkBAIC04NiwyMiArODYsMjEgQEAKICAgPC9tYWludGFpbmVy
PgogICA8L21haW50YWluZXJzPgogIDxyZWxlYXNlPgotICA8dmVyc2lvbj4xLjkuMzwvdmVyc2lvbj4K
LSAgPGRhdGU+MjAxMS0wNi0wNDwvZGF0ZT4KKyAgPHZlcnNpb24+MS45LjQ8L3ZlcnNpb24+CisgIDxk
YXRlPjIwMTEtMDctMDY8L2RhdGU+CiAgIDxsaWNlbnNlPk5ldyBCU0QgTGljZW5zZTwvbGljZW5zZT4K
ICAgPHN0YXRlPnN0YWJsZTwvc3RhdGU+CiAgIDxub3Rlcz4KLSAgKiBGaXhlZCBCdWcgIzE3NzQ0OiBF
bXB0eSBjaGFuZ2Vsb2cgY2F1c2VzIGZhdGFsIGVycm9yIGluIHNldENoYW5nZWxvZ2VudHJ5IFtkdWZ1
el0KLSAgKiBGaXhlZCBCdWcgIzE4MzQwOiByYWlzZUVycm8gdHlwbyBbZG9jb25ub3JdCi0gICogRml4
ZWQgQnVnICMxODM0OTogcGFja2FnZS54bWwgdmVyc2lvbiBub3QgcmVjb2duaXplZCB3aGVuIHNpbmds
ZSBxdW90ZWQgW2R1ZnV6XQotICAqIEZpeGVkIEJ1ZyAjMTgzNjQ6IGRhdGUudGltZXpvbmUgZXJyb3Jz
IGZvciBzaC9iYXQgZmlsZXMgd2hlbiBUWiBpcyBub3Qgc2V0IGluIHBocC5pbmkgW2R1ZnV6XQotICAq
IEZpeGVkIEJ1ZyAjMTgzODg6IFBhcmVudGhlc2VzIGVycm9yIGluIFJFU1QucGhwIGxpbmUgMjMyIFtk
dWZ1el0KLSAgKiBGaXhlZCBCdWcgIzE4NDI4OiBpbnZhbGlkIHByZWdfbWF0Y2ggcGF0dGVybnMgW2ds
ZW5dCi0gICogRml4ZWQgQnVnICMxODQ4NjogUkVTVC8xMC5waHAgZG9lcyBub3QgY2hlY2sgZXJyb3Ig
Y29uZGl0aW9uIFtkdWZ1el0KLSAgKiBGaXhlZCBhIHByb2JsZW0gaW4gUnVuVGVzdCBhbmQgY29kZSBj
b3ZlcmFnZS4gQ29ycmVjdGx5IHJlZ2lzdGVyIHRoZQotICAgIGNvZGUgY292ZXJhZ2Ugc2h1dGRvd24g
ZnVuY3Rpb24gaW4gY2FzZSB3ZSBhcmUgaW5zaWRlIGEgbmFtZXNwYWNlLiBbc2ViYXN0aWFuXQotICAq
IEZpeGVkIGEgYnVnIHdpdGggZXh0ZW5zaW9ucyBub3QgcHJvdmlkaW5nIHRoZWlyIGNvbmZpZy5tNCBh
bmQgY28gaW4gdGhlIHJvb3QgZGlyZWN0b3J5Ci0gICAgb2YgdGhlaXIgcGVjbCBwYWNrYWdlIGJ1dCBy
YXRoZXIgaW4gYSBzdWIgZGlyZWN0b3J5LCBzdWNoIGFzIHhocHJvZi4gW2R1ZnV6XQorICBCdWcgRml4
ZXM6CisgICogQnVnICMxNzM1MDogInBlYXIgaW5zdGFsbCAtLWZvcmNlIiBkb2Vzbid0IHVuaW5zdGFs
bCBmaWxlcyBmcm9tIHByZXZpb3VzIHBrZyB2ZXJzaW9ucyBbZHVmdXpdCisgICogQnVnICMxODM2Mjog
QSB3aGl0ZXNwYWNlIFRFTVBfRElSIHBhdGggYnJlYWtzIGluc3RhbGwvdXBncmFkZSBmdW5jdGlvbmFs
aXR5IFtkdWZ1el0KKyAgKiBCdWcgIzE4NDQwOiBiYWQgdG1wIGZvbGRlciBwYXRoIG9uIGluc3RhbGwg
OiBVbmFibGUgdG8gY3JlYXRlIHBhdGggZm9yIEM6L1Byb2dyYW0vdG1wIFtkdWZ1el0KKyAgKiBCdWcg
IzE4NTgxOiAiY29uZmlnLWdldCAtYyIgbm90IHJldHVybmluZyBjaGFubmVsJ3MgY29uZmlndXJhdGlv
biB3aGVuIHVzaW5nIGFsaWFzIFtkdWZ1el0KKyAgKiBCdWcgIzE4NjM5OiByZWdyZXNzaW9uOiBpbnN0
YWxsaW5nIHhkZWJ1ZyBmYWlscyBtb3N0IGxpa2VseSBkdWUgdG8gYW5vdGhlciBmaXggW2R1ZnV6XQor
CisgIEZlYXR1cmVzCisgICogQWxsIFN5c3RlbSAodGhlIGNsYXNzKSBmdW5jdGlvbnMgY2FuIG5vdyB0
YWtlIGluIHNwYWNlZCBwYXRocyBhcyBsb25nIGFzIHRoZXkgYXJlIHN1cnJvdW5kZWQgaW4gcXVvdGVz
LgorICAgIFByaW9yIHRvIHRoaXMgaXQgd2FzIHBvc3NpYmxlIHRvIGRvIHRoYXQgYnkgcGFzc2luZyBh
bGwgdmFsdWVzIGluIGFzIGFuIGFycmF5IChieSBwcm9kdWN0IG9mICMxODM2MiwgIzE4NDQwKSBbZHVm
dXpdCiAgIDwvbm90ZXM+CiAgIDxkZXBzPgogICAgPGRlcCB0eXBlPSJwaHAiIHJlbD0iZ2UiIHZlcnNp
b249IjQuNC4wIi8+CkBAIC02NzcsNSArNjc2LDI0IEBACiAgICAgKiBJbXBsZW1lbnRlZCBSZXF1ZXN0
ICMxNjY0ODogVXNlIFRNUERJUiBmb3IgYnVpbGRzIGluc3RlYWQgb2YgL3Zhci90bXAgW2R1ZnV6XQog
ICAgIDwvbm90ZXM+CiAgICA8L3JlbGVhc2U+CisgICA8cmVsZWFzZT4KKyAgPHZlcnNpb24+MS45LjM8
L3ZlcnNpb24+CisgIDxkYXRlPjIwMTEtMDYtMDQ8L2RhdGU+CisgIDxsaWNlbnNlPk5ldyBCU0QgTGlj
ZW5zZTwvbGljZW5zZT4KKyAgPHN0YXRlPnN0YWJsZTwvc3RhdGU+CisgIDxub3Rlcz4KKyAgKiBGaXhl
ZCBCdWcgIzE3NzQ0OiBFbXB0eSBjaGFuZ2Vsb2cgY2F1c2VzIGZhdGFsIGVycm9yIGluIHNldENoYW5n
ZWxvZ2VudHJ5IFtkdWZ1el0KKyAgKiBGaXhlZCBCdWcgIzE4MzQwOiByYWlzZUVycm8gdHlwbyBbZG9j
b25ub3JdCisgICogRml4ZWQgQnVnICMxODM0OTogcGFja2FnZS54bWwgdmVyc2lvbiBub3QgcmVjb2du
aXplZCB3aGVuIHNpbmdsZSBxdW90ZWQgW2R1ZnV6XQorICAqIEZpeGVkIEJ1ZyAjMTgzNjQ6IGRhdGUu
dGltZXpvbmUgZXJyb3JzIGZvciBzaC9iYXQgZmlsZXMgd2hlbiBUWiBpcyBub3Qgc2V0IGluIHBocC5p
bmkgW2R1ZnV6XQorICAqIEZpeGVkIEJ1ZyAjMTgzODg6IFBhcmVudGhlc2VzIGVycm9yIGluIFJFU1Qu
cGhwIGxpbmUgMjMyIFtkdWZ1el0KKyAgKiBGaXhlZCBCdWcgIzE4NDI4OiBpbnZhbGlkIHByZWdfbWF0
Y2ggcGF0dGVybnMgW2dsZW5dCisgICogRml4ZWQgQnVnICMxODQ4NjogUkVTVC8xMC5waHAgZG9lcyBu
b3QgY2hlY2sgZXJyb3IgY29uZGl0aW9uIFtkdWZ1el0KKyAgKiBGaXhlZCBhIHByb2JsZW0gaW4gUnVu
VGVzdCBhbmQgY29kZSBjb3ZlcmFnZS4gQ29ycmVjdGx5IHJlZ2lzdGVyIHRoZQorICAgIGNvZGUgY292
ZXJhZ2Ugc2h1dGRvd24gZnVuY3Rpb24gaW4gY2FzZSB3ZSBhcmUgaW5zaWRlIGEgbmFtZXNwYWNlLiBb
c2ViYXN0aWFuXQorICAqIEZpeGVkIGEgYnVnIHdpdGggZXh0ZW5zaW9ucyBub3QgcHJvdmlkaW5nIHRo
ZWlyIGNvbmZpZy5tNCBhbmQgY28gaW4gdGhlIHJvb3QgZGlyZWN0b3J5CisgICAgb2YgdGhlaXIgcGVj
bCBwYWNrYWdlIGJ1dCByYXRoZXIgaW4gYSBzdWIgZGlyZWN0b3J5LCBzdWNoIGFzIHhocHJvZi4gW2R1
ZnV6XQorICA8L25vdGVzPgorICAgPC9yZWxlYXNlPgogIDwvY2hhbmdlbG9nPgogPC9wYWNrYWdlPgoK
TW9kaWZpZWQ6IHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjkuNC9wYWNrYWdlMi54bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcGVhci9wZWFyLWNvcmUvdGFncy9QRUFSLTEuOS40L3BhY2thZ2UyLnhtbAkyMDExLTA3LTA2
IDE5OjE3OjExIFVUQyAocmV2IDMxMzAyMykKKysrIHBlYXIvcGVhci1jb3JlL3RhZ3MvUEVBUi0xLjku
NC9wYWNrYWdlMi54bWwJMjAxMS0wNy0wNiAxOTo1MToyNCBVVEMgKHJldiAzMTMwMjQpCkBAIC04MSwx
MSArODEsMTEgQEAKICAgPGVtYWlsPm1qQHBocC5uZXQ8L2VtYWlsPgogICA8YWN0aXZlPm5vPC9hY3Rp
dmU+CiAgPC9oZWxwZXI+Ci0gPGRhdGU+MjAxMS0wNi0wNDwvZGF0ZT4KKyA8ZGF0ZT4yMDExLTA3LTA2
PC9kYXRlPgogIDx0aW1lPjE1OjMwOjAwPC90aW1lPgogIDx2ZXJzaW9uPgotICA8cmVsZWFzZT4xLjku
MzwvcmVsZWFzZT4KLSAgPGFwaT4xLjkuMjwvYXBpPgorICA8cmVsZWFzZT4xLjkuNDwvcmVsZWFzZT4K
KyAgPGFwaT4xLjkuNDwvYXBpPgogIDwvdmVyc2lvbj4KICA8c3RhYmlsaXR5PgogICA8cmVsZWFzZT5z
dGFibGU8L3JlbGVhc2U+CkBAIC05MywxNyArOTMsMTYgQEAKICA8L3N0YWJpbGl0eT4KICA8bGljZW5z
ZSB1cmk9Imh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAiPk5ldyBC
U0QgTGljZW5zZTwvbGljZW5zZT4KICA8bm90ZXM+Ci0gICogRml4ZWQgQnVnICMxNzc0NDogRW1wdHkg
Y2hhbmdlbG9nIGNhdXNlcyBmYXRhbCBlcnJvciBpbiBzZXRDaGFuZ2Vsb2dlbnRyeSBbZHVmdXpdCi0g
ICogRml4ZWQgQnVnICMxODM0MDogcmFpc2VFcnJvIHR5cG8gW2RvY29ubm9yXQotICAqIEZpeGVkIEJ1
ZyAjMTgzNDk6IHBhY2thZ2UueG1sIHZlcnNpb24gbm90IHJlY29nbml6ZWQgd2hlbiBzaW5nbGUgcXVv
dGVkIFtkdWZ1el0KLSAgKiBGaXhlZCBCdWcgIzE4MzY0OiBkYXRlLnRpbWV6b25lIGVycm9ycyBmb3Ig
c2gvYmF0IGZpbGVzIHdoZW4gVFogaXMgbm90IHNldCBpbiBwaHAuaW5pIFtkdWZ1el0KLSAgKiBGaXhl
ZCBCdWcgIzE4Mzg4OiBQYXJlbnRoZXNlcyBlcnJvciBpbiBSRVNULnBocCBsaW5lIDIzMiBbZHVmdXpd
Ci0gICogRml4ZWQgQnVnICMxODQyODogaW52YWxpZCBwcmVnX21hdGNoIHBhdHRlcm5zIFtnbGVuXQot
ICAqIEZpeGVkIEJ1ZyAjMTg0ODY6IFJFU1QvMTAucGhwIGRvZXMgbm90IGNoZWNrIGVycm9yIGNvbmRp
dGlvbiBbZHVmdXpdCi0gICogRml4ZWQgYSBwcm9ibGVtIGluIFJ1blRlc3QgYW5kIGNvZGUgY292ZXJh
Z2UuIENvcnJlY3RseSByZWdpc3RlciB0aGUKLSAgICBjb2RlIGNvdmVyYWdlIHNodXRkb3duIGZ1bmN0
aW9uIGluIGNhc2Ugd2UgYXJlIGluc2lkZSBhIG5hbWVzcGFjZS4gW3NlYmFzdGlhbl0KLSAgKiBGaXhl
ZCBhIGJ1ZyB3aXRoIGV4dGVuc2lvbnMgbm90IHByb3ZpZGluZyB0aGVpciBjb25maWcubTQgYW5kIGNv
IGluIHRoZSByb290IGRpcmVjdG9yeSBvZgotICAgIHRoZWlyIHBlY2wgcGFja2FnZSBidXQgcmF0aGVy
IGluIGEgc3ViIGRpcmVjdG9yeSwgc3VjaCBhcyB4aHByb2YuIFtkdWZ1el0KKyAgQnVnIEZpeGVzOgor
ICAqIEJ1ZyAjMTczNTA6ICJwZWFyIGluc3RhbGwgLS1mb3JjZSIgZG9lc24ndCB1bmluc3RhbGwgZmls
ZXMgZnJvbSBwcmV2aW91cyBwa2cgdmVyc2lvbnMgW2R1ZnV6XQorICAqIEJ1ZyAjMTgzNjI6IEEgd2hp
dGVzcGFjZSBURU1QX0RJUiBwYXRoIGJyZWFrcyBpbnN0YWxsL3VwZ3JhZGUgZnVuY3Rpb25hbGl0eSBb
ZHVmdXpdCisgICogQnVnICMxODQ0MDogYmFkIHRtcCBmb2xkZXIgcGF0aCBvbiBpbnN0YWxsIDogVW5h
YmxlIHRvIGNyZWF0ZSBwYXRoIGZvciBDOi9Qcm9ncmFtL3RtcCBbZHVmdXpdCisgICogQnVnICMxODU4
MTogImNvbmZpZy1nZXQgLWMiIG5vdCByZXR1cm5pbmcgY2hhbm5lbCdzIGNvbmZpZ3VyYXRpb24gd2hl
biB1c2luZyBhbGlhcyBbZHVmdXpdCisgICogQnVnICMxODYzOTogcmVncmVzc2lvbjogaW5zdGFsbGlu
ZyB4ZGVidWcgZmFpbHMgbW9zdCBsaWtlbHkgZHVlIHRvIGFub3RoZXIgZml4IFtkdWZ1el0KKworICBG
ZWF0dXJlcworICAqIEFsbCBTeXN0ZW0gKHRoZSBjbGFzcykgZnVuY3Rpb25zIGNhbiBub3cgdGFrZSBp
biBzcGFjZWQgcGF0aHMgYXMgbG9uZyBhcyB0aGV5IGFyZSBzdXJyb3VuZGVkIGluIHF1b3Rlcy4KKyAg
ICBQcmlvciB0byB0aGlzIGl0IHdhcyBwb3NzaWJsZSB0byBkbyB0aGF0IGJ5IHBhc3NpbmcgYWxsIHZh
bHVlcyBpbiBhcyBhbiBhcnJheSAoYnkgcHJvZHVjdCBvZiAjMTgzNjIsICMxODQ0MCkgW2R1ZnV6XQog
IDwvbm90ZXM+CiAgPGNvbnRlbnRzPgogICA8ZGlyIG5hbWU9Ii8iPgpAQCAtODY2LDUgKzg2NSwzMSBA
QAogICAgICogSW1wbGVtZW50ZWQgUmVxdWVzdCAjMTY2NDg6IFVzZSBUTVBESVIgZm9yIGJ1aWxkcyBp
bnN0ZWFkIG9mIC92YXIvdG1wIFtkdWZ1el0KICAgIDwvbm90ZXM+CiAgIDwvcmVsZWFzZT4KKyAgPHJl
bGVhc2U+CisgPGRhdGU+MjAxMS0wNi0wNDwvZGF0ZT4KKyA8dGltZT4xNTozMDowMDwvdGltZT4KKyA8
dmVyc2lvbj4KKyAgPHJlbGVhc2U+MS45LjM8L3JlbGVhc2U+CisgIDxhcGk+MS45LjI8L2FwaT4KKyA8
L3ZlcnNpb24+CisgPHN0YWJpbGl0eT4KKyAgPHJlbGVhc2U+c3RhYmxlPC9yZWxlYXNlPgorICA8YXBp
PnN0YWJsZTwvYXBpPgorIDwvc3RhYmlsaXR5PgorIDxsaWNlbnNlIHVyaT0iaHR0cDovL29wZW5zb3Vy
Y2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocCI+TmV3IEJTRCBMaWNlbnNlPC9saWNlbnNlPgor
IDxub3Rlcz4KKyAgKiBGaXhlZCBCdWcgIzE3NzQ0OiBFbXB0eSBjaGFuZ2Vsb2cgY2F1c2VzIGZhdGFs
IGVycm9yIGluIHNldENoYW5nZWxvZ2VudHJ5IFtkdWZ1el0KKyAgKiBGaXhlZCBCdWcgIzE4MzQwOiBy
YWlzZUVycm8gdHlwbyBbZG9jb25ub3JdCisgICogRml4ZWQgQnVnICMxODM0OTogcGFja2FnZS54bWwg
dmVyc2lvbiBub3QgcmVjb2duaXplZCB3aGVuIHNpbmdsZSBxdW90ZWQgW2R1ZnV6XQorICAqIEZpeGVk
IEJ1ZyAjMTgzNjQ6IGRhdGUudGltZXpvbmUgZXJyb3JzIGZvciBzaC9iYXQgZmlsZXMgd2hlbiBUWiBp
cyBub3Qgc2V0IGluIHBocC5pbmkgW2R1ZnV6XQorICAqIEZpeGVkIEJ1ZyAjMTgzODg6IFBhcmVudGhl
c2VzIGVycm9yIGluIFJFU1QucGhwIGxpbmUgMjMyIFtkdWZ1el0KKyAgKiBGaXhlZCBCdWcgIzE4NDI4
OiBpbnZhbGlkIHByZWdfbWF0Y2ggcGF0dGVybnMgW2dsZW5dCisgICogRml4ZWQgQnVnICMxODQ4Njog
UkVTVC8xMC5waHAgZG9lcyBub3QgY2hlY2sgZXJyb3IgY29uZGl0aW9uIFtkdWZ1el0KKyAgKiBGaXhl
ZCBhIHByb2JsZW0gaW4gUnVuVGVzdCBhbmQgY29kZSBjb3ZlcmFnZS4gQ29ycmVjdGx5IHJlZ2lzdGVy
IHRoZQorICAgIGNvZGUgY292ZXJhZ2Ugc2h1dGRvd24gZnVuY3Rpb24gaW4gY2FzZSB3ZSBhcmUgaW5z
aWRlIGEgbmFtZXNwYWNlLiBbc2ViYXN0aWFuXQorICAqIEZpeGVkIGEgYnVnIHdpdGggZXh0ZW5zaW9u
cyBub3QgcHJvdmlkaW5nIHRoZWlyIGNvbmZpZy5tNCBhbmQgY28gaW4gdGhlIHJvb3QgZGlyZWN0b3J5
IG9mCisgICAgdGhlaXIgcGVjbCBwYWNrYWdlIGJ1dCByYXRoZXIgaW4gYSBzdWIgZGlyZWN0b3J5LCBz
dWNoIGFzIHhocHJvZi4gW2R1ZnV6XQorIDwvbm90ZXM+CisgIDwvcmVsZWFzZT4KICA8L2NoYW5nZWxv
Zz4KIDwvcGFja2FnZT4K
--5f9473a1ed852f3bd79f10f6ef26863be8bae4aa--