Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jul 2013 14:02:04 -0700
From:      Garrett Cooper <yaneurabeya@gmail.com>
To:        Julio Merino <julio@meroh.net>
Cc:        freebsd-testing@FreeBSD.org, Rui Paulo <rpaulo@netbsd.org>
Subject:   Fwd: Getting rid of the ATF tools
Message-ID:  <CAGHfRMC9xV6QRBieQp-kJW1OMqXgqDmhjQ3DGPQTJ2Swg3B3%2BQ@mail.gmail.com>
In-Reply-To: <20130719200017.GA79155@mastodon.meroh.net>
References:  <20130719200017.GA79155@mastodon.meroh.net>

next in thread | previous in thread | raw e-mail | index | archive | help
--089e011849928a715904e1e3a313
Content-Type: text/plain; charset=ISO-8859-1

(Pardon my message mangling as I'm forwarding this to freebsd-testing@
for context)

Hello!

This is a follow-up on our previous conversation to explicitly discuss
the removal of the ATF tools from the src tree.

(I'll be happy to send this to any public lists you think are
appropriate, but first wanted to get a sense of the feasibility by
running it by you.  Or, rather, should I file a PR with the proposal
and patches?)

The reasons behind this proposed change are:

- The ATF tools (atf-run, atf-report mainly, but also atf-config and
  atf-version) are deprecated.  They do not and will not receive new
  features.  atf-run also has some nasty race-condition bugs that are
  very rare, but do trigger periodically.

- Keeping the ATF tools around hinders the development of Kyua (the name
  of the project to replace the ATF _tools_ only) because, as long as
  the ATF tools are around and the tree needs to remain compatible with
  them, one cannot take advantage of the new features in Kyua.

- One of the new features in Kyua is the ability to plug test programs
  of various interfaces into the same test suite.  At the moment, this
  means that you can mix both ATF-based test programs and "standard"
  test programs transparently into a single test suite definition.
  Dropping the ATF tools allows the FreeBSD src tree to define such
  more-advanced test suites (because one needs not be restricted by the
  limitations of the Atffiles), with the benefit that existing test
  programs can be run along ATF test programs in one go and get the
  results in one single report.

- Because ATF is not yet really used within FreeBSD and because users
  are not yet familiar with the ATF tools, these can be dropped today
  without any impact.  There is no need to later implement complex
  migration procedures nor retrain users if FreeBSD starts using the new
  tools from the beginning.

- And, to a lesser extent, shape the development of Kyua.  If FreeBSD
  starts using Kyua directly, I'm sure there will be several feature
  requests against the project and those will shape how new releases
  look like.

Notes:

- This does NOT affect the ATF libraries.  atf-c, atf-c++ and atf-sh,
  which are quite small overall, remain in the tree.

- This does NOT propose the import of Kyua into the src tree.  Kyua will
  remain in ports for the time being.  This is not an issue because Kyua
  is only the run-time engine for the tests and is not needed to build
  the tests that may be added to src.

- Of course, *.test.mk should be changed to detect whether Kyua is
  installed or not and act appropriately when it is.  E.g. when doing
  'make test', error out if Kyua is missing and point the user at how to
  install it, and otherwise use the binary from ports.

The necessary patches to do this are attached.  Sorry Garret; these
remove quite a bit of things that you did... :-P

Thoughts?

Thanks!

gcooper> A couple things:
gcooper> 1. I don't mind if you unwind my work a bit. It is what it is
and I'm not really invested in it anymore other than it helps me get
my job done today. I've lost interest in pushing this into FreeBSD
because I have better things to do than fight bikeshedders and wait
for hell to freeze over.
gcooper> 2. Please move the OptionalObsoleteFiles.inc entries
[re]moved to ObsoleteFiles.inc as they need to be removed from systems
running CURRENT that have installed atf in the past (like my VM for
instance). There aren't many people using ATF I suspect, but for those
of us that are, it would be nice if the files were yanked completely.
gcooper> 3. Please put in the needed bits for generating Kyuafiles in
atf.test.mk.

--089e011849928a715904e1e3a313
Content-Type: text/x-diff; charset=us-ascii; name="remove-atf-tools.diff"
Content-Disposition: attachment; filename="remove-atf-tools.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: d2b3d6e757d93a2_0.1

SW5kZXg6IGxpYi9saWJjcnlwdC90ZXN0cy9jcnlwdF90ZXN0cy5jDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
bGliL2xpYmNyeXB0L3Rlc3RzL2NyeXB0X3Rlc3RzLmMJKHJldmlzaW9uIDI1MzMzOSkNCisrKyBs
aWIvbGliY3J5cHQvdGVzdHMvY3J5cHRfdGVzdHMuYwkod29ya2luZyBjb3B5KQ0KQEAgLTQzLDcg
KzQzLDcgQEANCiANCiAvKg0KICAqIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgZG8gYW55dGhpbmcg
ZXhjZXB0IGVudW1lcmF0ZQ0KLSAqIHRoZSB0ZXN0IGNhc2VzLCBlbHNlIGF0Zi1ydW4gaXMgbGlr
ZWx5IHRvIGJlIHVwc2V0Lg0KKyAqIHRoZSB0ZXN0IGNhc2VzLCBwZXIgYXRmLWMtYXBpKDMpLg0K
ICAqLw0KIEFURl9UUF9BRERfVENTKHRwKQ0KIHsNCkluZGV4OiB0b29scy9idWlsZC9tay9PcHRp
b25hbE9ic29sZXRlRmlsZXMuaW5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gdG9vbHMvYnVpbGQvbWsvT3B0
aW9uYWxPYnNvbGV0ZUZpbGVzLmluYwkocmV2aXNpb24gMjUzMzM5KQ0KKysrIHRvb2xzL2J1aWxk
L21rL09wdGlvbmFsT2Jzb2xldGVGaWxlcy5pbmMJKHdvcmtpbmcgY29weSkNCkBAIC02OSwxNSAr
NjksNyBAQA0KIC5lbmRpZg0KIA0KIC5pZiAke01LX0FURn0gPT0gbm8NCi1PTERfRElSUys9ZXRj
L2F0Zg0KLU9MRF9GSUxFUys9ZXRjL2F0Zi9GcmVlQlNELmNvbmYNCi1PTERfRklMRVMrPWV0Yy9h
dGYvYXRmLXJ1bi5ob29rcw0KLU9MRF9GSUxFUys9ZXRjL2F0Zi9jb21tb24uY29uZg0KLU9MRF9G
SUxFUys9dXNyL2Jpbi9hdGYtY29uZmlnDQotT0xEX0ZJTEVTKz11c3IvYmluL2F0Zi1yZXBvcnQN
Ci1PTERfRklMRVMrPXVzci9iaW4vYXRmLXJ1bg0KIE9MRF9GSUxFUys9dXNyL2Jpbi9hdGYtc2gN
Ci1PTERfRklMRVMrPXVzci9iaW4vYXRmLXZlcnNpb24NCiBPTERfRElSUys9dXNyL2luY2x1ZGUv
YXRmLWMNCiBPTERfRklMRVMrPXVzci9pbmNsdWRlL2F0Zi1jL2J1aWxkLmgNCiBPTERfRklMRVMr
PXVzci9pbmNsdWRlL2F0Zi1jL2NoZWNrLmgNCkBAIC0xMTAsNyArMTAyLDYgQEANCiBPTERfRklM
RVMrPXVzci9saWIvbGliYXRmLWMuYQ0KIE9MRF9GSUxFUys9dXNyL2xpYmV4ZWMvYXRmLWNoZWNr
DQogT0xEX0RJUlMrPXVzci9zaGFyZS9hdGYNCi1PTERfRklMRVMrPXVzci9zaGFyZS9hdGYvYXRm
LXJ1bi5ob29rcw0KIE9MRF9GSUxFUys9dXNyL3NoYXJlL2F0Zi9saWJhdGYtc2guc3Vicg0KIE9M
RF9ESVJTKz11c3Ivc2hhcmUvZG9jL2F0Zg0KIE9MRF9GSUxFUys9dXNyL3NoYXJlL2RvYy9hdGYv
QVVUSE9SUw0KQEAgLTExNywyOCArMTA4LDQyIEBADQogT0xEX0ZJTEVTKz11c3Ivc2hhcmUvZG9j
L2F0Zi9DT1BZSU5HDQogT0xEX0ZJTEVTKz11c3Ivc2hhcmUvZG9jL2F0Zi9ORVdTDQogT0xEX0ZJ
TEVTKz11c3Ivc2hhcmUvZG9jL2F0Zi9SRUFETUUNCi1PTERfRElSUys9dXNyL3NoYXJlL2V4YW1w
bGVzL2F0Zg0KLU9MRF9GSUxFUys9dXNyL3NoYXJlL2V4YW1wbGVzL2F0Zi9hdGYtcnVuLmhvb2tz
DQotT0xEX0ZJTEVTKz11c3Ivc2hhcmUvZXhhbXBsZXMvYXRmL3Rlc3RzLXJlc3VsdHMuY3NzDQog
T0xEX0ZJTEVTKz11c3Ivc2hhcmUvbWFuL21hbjEvYXRmLWNoZWNrLjEuZ3oNCi1PTERfRklMRVMr
PXVzci9zaGFyZS9tYW4vbWFuMS9hdGYtY29uZmlnLjEuZ3oNCi1PTERfRklMRVMrPXVzci9zaGFy
ZS9tYW4vbWFuMS9hdGYtcmVwb3J0LjEuZ3oNCi1PTERfRklMRVMrPXVzci9zaGFyZS9tYW4vbWFu
MS9hdGYtcnVuLjEuZ3oNCiBPTERfRklMRVMrPXVzci9zaGFyZS9tYW4vbWFuMS9hdGYtc2guMS5n
eg0KIE9MRF9GSUxFUys9dXNyL3NoYXJlL21hbi9tYW4xL2F0Zi10ZXN0LXByb2dyYW0uMS5neg0K
LU9MRF9GSUxFUys9dXNyL3NoYXJlL21hbi9tYW4xL2F0Zi12ZXJzaW9uLjEuZ3oNCiBPTERfRklM
RVMrPXVzci9zaGFyZS9tYW4vbWFuMy9hdGYtYy1hcGkuMy5neg0KIE9MRF9GSUxFUys9dXNyL3No
YXJlL21hbi9tYW4zL2F0Zi1jKystYXBpLjMuZ3oNCiBPTERfRklMRVMrPXVzci9zaGFyZS9tYW4v
bWFuMy9hdGYtc2gtYXBpLjMuZ3oNCiBPTERfRklMRVMrPXVzci9zaGFyZS9tYW4vbWFuNC9hdGYt
dGVzdC1jYXNlLjQuZ3oNCitPTERfRklMRVMrPXVzci9zaGFyZS9tay9hdGYudGVzdC5taw0KKy5l
bmRpZg0KKyMgVGhlIGZvbGxvd2luZyBjb3JyZXNwb25kIHRvIHRoZSBkZXByZWNhdGVkIEFURiB0
b29scy4gIFRoZXNlIHdlcmUgb25jZQ0KKyMgaW5zdGFsbGVkIGFzIHBhcnQgb2YgdGhlIGJhc2Ug
c3lzdGVtLCBidXQgdGhleSBoYXZlIGJlZW4gZGVsZXRlZCBpbg0KKyMgZmF2b3Igb2YgS3l1YSAo
dG8gYmUgaW5zdGFsbGVkIGZyb20gcG9ydHMpLg0KK09MRF9GSUxFUys9ZXRjL2F0Zi9GcmVlQlNE
LmNvbmYNCitPTERfRklMRVMrPWV0Yy9hdGYvYXRmLXJ1bi5ob29rcw0KK09MRF9GSUxFUys9ZXRj
L2F0Zi9jb21tb24uY29uZg0KK09MRF9ESVJTKz1ldGMvYXRmDQorT0xEX0ZJTEVTKz11c3IvYmlu
L2F0Zi1jb25maWcNCitPTERfRklMRVMrPXVzci9iaW4vYXRmLXJlcG9ydA0KK09MRF9GSUxFUys9
dXNyL2Jpbi9hdGYtcnVuDQorT0xEX0ZJTEVTKz11c3IvYmluL2F0Zi12ZXJzaW9uDQorT0xEX0ZJ
TEVTKz11c3Ivc2hhcmUvYXRmL2F0Zi1ydW4uaG9va3MNCitPTERfRklMRVMrPXVzci9zaGFyZS9l
eGFtcGxlcy9hdGYvYXRmLXJ1bi5ob29rcw0KK09MRF9GSUxFUys9dXNyL3NoYXJlL2V4YW1wbGVz
L2F0Zi90ZXN0cy1yZXN1bHRzLmNzcw0KK09MRF9ESVJTKz11c3Ivc2hhcmUvZXhhbXBsZXMvYXRm
DQorT0xEX0ZJTEVTKz11c3Ivc2hhcmUvbWFuL21hbjEvYXRmLWNvbmZpZy4xLmd6DQorT0xEX0ZJ
TEVTKz11c3Ivc2hhcmUvbWFuL21hbjEvYXRmLXJlcG9ydC4xLmd6DQorT0xEX0ZJTEVTKz11c3Iv
c2hhcmUvbWFuL21hbjEvYXRmLXJ1bi4xLmd6DQorT0xEX0ZJTEVTKz11c3Ivc2hhcmUvbWFuL21h
bjEvYXRmLXZlcnNpb24uMS5neg0KIE9MRF9GSUxFUys9dXNyL3NoYXJlL21hbi9tYW41L2F0Zi1m
b3JtYXRzLjUuZ3oNCiBPTERfRklMRVMrPXVzci9zaGFyZS9tYW4vbWFuNy9hdGYuNy5neg0KLU9M
RF9GSUxFUys9dXNyL3NoYXJlL21rL2F0Zi50ZXN0Lm1rDQorT0xEX0ZJTEVTKz11c3Ivc2hhcmUv
eG1sL2F0Zi90ZXN0cy1yZXN1bHRzLmR0ZA0KIE9MRF9ESVJTKz11c3Ivc2hhcmUveG1sL2F0Zg0K
LU9MRF9GSUxFUys9dXNyL3NoYXJlL3htbC9hdGYvdGVzdHMtcmVzdWx0cy5kdGQNCitPTERfRElS
Uys9dXNyL3NoYXJlL3htbA0KK09MRF9GSUxFUys9dXNyL3NoYXJlL3hzbC9hdGYvdGVzdHMtcmVz
dWx0cy54c2wNCiBPTERfRElSUys9dXNyL3NoYXJlL3hzbC9hdGYNCi1PTERfRklMRVMrPXVzci9z
aGFyZS94c2wvYXRmL3Rlc3RzLXJlc3VsdHMueHNsDQotLmVuZGlmDQorT0xEX0RJUlMrPXVzci9z
aGFyZS94c2wNCiANCiAuaWYgJHtNS19BVE19ID09IG5vDQogT0xEX0ZJTEVTKz1yZXNjdWUvYXRt
Y29uZmlnDQpJbmRleDogdXNyLmJpbi9hdGYvTWFrZWZpbGUNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB1c3Iu
YmluL2F0Zi9NYWtlZmlsZQkocmV2aXNpb24gMjUzMzM5KQ0KKysrIHVzci5iaW4vYXRmL01ha2Vm
aWxlCSh3b3JraW5nIGNvcHkpDQpAQCAtMjUsMTAgKzI1LDYgQEANCiAjDQogIyAkRnJlZUJTRCQN
CiANCi1TVUJESVI9CWF0Zi1jb25maWcgXA0KLQlhdGYtcmVwb3J0IFwNCi0JYXRmLXJ1biBcDQot
CWF0Zi1zaCBcDQotCWF0Zi12ZXJzaW9uDQorU1VCRElSPQlhdGYtc2gNCiANCiAuaW5jbHVkZSA8
YnNkLnN1YmRpci5taz4NCkluZGV4OiB1c3IuYmluL2F0Zi9NYWtlZmlsZS5pbmMNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSB1c3IuYmluL2F0Zi9NYWtlZmlsZS5pbmMJKHJldmlzaW9uIDI1MzMzOSkNCisrKyB1
c3IuYmluL2F0Zi9NYWtlZmlsZS5pbmMJKHdvcmtpbmcgY29weSkNCkBAIC0yLDcgKzIsNSBAQA0K
IA0KIEFURj0JCSR7LkNVUkRJUn0vLi4vLi4vLi4vY29udHJpYi9hdGYNCiANCi1DRkxBR1MrPQkt
REdEQj1cImdkYlwiDQotDQogQklORElSPz0JL3Vzci9iaW4NCiBXQVJOUz89CQkzDQpJbmRleDog
dXNyLmJpbi9hdGYvYXRmLWNvbmZpZy9NYWtlZmlsZQ0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHVzci5iaW4v
YXRmL2F0Zi1jb25maWcvTWFrZWZpbGUJKHJldmlzaW9uIDI1MzMzOSkNCisrKyB1c3IuYmluL2F0
Zi9hdGYtY29uZmlnL01ha2VmaWxlCSh3b3JraW5nIGNvcHkpDQpAQCAtMSw0MiArMCwwIEBADQot
Iy0NCi0jIENvcHlyaWdodCAoYykgMjAxMSBHb29nbGUsIEluYy4NCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuDQotIw0KLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0jIGFyZSBtZXQ6DQotIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodA0KLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLg0KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCi0j
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uDQotIw0KLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
QVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORA0KLSMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQot
IyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRQ0KLSMgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUNCi0jIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMDQotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUw0KLSMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pDQotIyBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVA0KLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQ0KLSMgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KLSMgU1VDSCBEQU1B
R0UuDQotIw0KLSMgJEZyZWVCU0QkDQotDQotLmluY2x1ZGUgPGJzZC5pbml0Lm1rPg0KLQ0KLS5Q
QVRIOgkJJHtBVEZ9L2F0Zi1jb25maWcNCi0NCi1QUk9HX0NYWD0JYXRmLWNvbmZpZw0KLVNSQ1M9
CQlhdGYtY29uZmlnLmNwcA0KLU1BTj0JCWF0Zi1jb25maWcuMQ0KLQ0KLUNGTEFHUys9CS1ESEFW
RV9DT05GSUdfSA0KLUNGTEFHUys9CS1JJHtBVEZ9DQotDQotRFBBREQrPQkJJHtMSUJBVEZfQ30g
JHtMSUJBVEZfQ1hYfQ0KLUxEQUREKz0JCS1sYXRmLWMrKyAtbGF0Zi1jDQotDQotLmluY2x1ZGUg
PGJzZC5wcm9nLm1rPg0KSW5kZXg6IHVzci5iaW4vYXRmL2F0Zi1yZXBvcnQvTWFrZWZpbGUNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSB1c3IuYmluL2F0Zi9hdGYtcmVwb3J0L01ha2VmaWxlCShyZXZpc2lvbiAy
NTMzMzkpDQorKysgdXNyLmJpbi9hdGYvYXRmLXJlcG9ydC9NYWtlZmlsZQkod29ya2luZyBjb3B5
KQ0KQEAgLTEsNDIgKzAsMCBAQA0KLSMtDQotIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlLCBJ
bmMuDQotIyBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSMNCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zDQotIyBhcmUgbWV0Og0KLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0jIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
DQotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlDQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSMNCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQNCi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQ0KLSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCi0jIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFDQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTA0KLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMNCi0jIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKQ0KLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QNCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkNCi0jIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YNCi0jIFNVQ0ggREFNQUdFLg0KLSMNCi0jICRGcmVlQlNEJA0KLQ0KLS5pbmNsdWRl
IDxic2QuaW5pdC5taz4NCi0NCi0uUEFUSDoJCSR7QVRGfS9hdGYtcmVwb3J0DQotDQotUFJPR19D
WFg9CWF0Zi1yZXBvcnQNCi1TUkNTPQkJYXRmLXJlcG9ydC5jcHAgcmVhZGVyLmNwcA0KLU1BTj0J
CWF0Zi1yZXBvcnQuMQ0KLQ0KLUNGTEFHUys9CS1ESEFWRV9DT05GSUdfSA0KLUNGTEFHUys9CS1J
JHtBVEZ9DQotDQotRFBBREQrPQkJJHtMSUJBVEZfQ30gJHtMSUJBVEZfQ1hYfQ0KLUxEQUREKz0J
CS1sYXRmLWMrKyAtbGF0Zi1jDQotDQotLmluY2x1ZGUgPGJzZC5wcm9nLm1rPg0KSW5kZXg6IHVz
ci5iaW4vYXRmL2F0Zi1ydW4vTWFrZWZpbGUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB1c3IuYmluL2F0Zi9h
dGYtcnVuL01ha2VmaWxlCShyZXZpc2lvbiAyNTMzMzkpDQorKysgdXNyLmJpbi9hdGYvYXRmLXJ1
bi9NYWtlZmlsZQkod29ya2luZyBjb3B5KQ0KQEAgLTEsNDQgKzAsMCBAQA0KLSMtDQotIyBDb3B5
cmlnaHQgKGMpIDIwMTEgR29vZ2xlLCBJbmMuDQotIyBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSMN
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dA0KLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotIyBhcmUgbWV0Og0KLSMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0j
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4NCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQotIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLg0KLSMNCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQNCi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0KLSMgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UNCi0jIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFDQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTA0KLSMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMNCi0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QNCi0jIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkNCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCi0jIFNVQ0ggREFNQUdFLg0KLSMNCi0j
ICRGcmVlQlNEJA0KLQ0KLS5pbmNsdWRlIDxic2QuaW5pdC5taz4NCi0NCi0uUEFUSDoJCSR7QVRG
fS9hdGYtcnVuDQotDQotUFJPR19DWFg9CWF0Zi1ydW4NCi1TUkNTPQkJYXRmLXJ1bi5jcHAgYXRm
ZmlsZS5jcHAgY29uZmlnLmNwcCBmcy5jcHAgaW8uY3BwIHJlcXVpcmVtZW50cy5jcHAgXA0KLQkJ
c2lnbmFscy5jcHAgdGVzdC1wcm9ncmFtLmNwcCB0aW1lci5jcHAgdXNlci5jcHANCi1NQU49CQlh
dGYtcnVuLjENCi0NCi1DRkxBR1MrPQktREhBVkVfQ09ORklHX0gNCi1DRkxBR1MrPQktSSR7QVRG
fQ0KLUNGTEFHUys9CS1JJHsuQ1VSRElSfS8uLi8uLi9saWIvbGliYXRmLWMNCi0NCi1EUEFERCs9
CQkke0xJQkFURl9DfSAke0xJQkFURl9DWFh9DQotTERBREQrPQkJLWxhdGYtYysrIC1sYXRmLWMN
Ci0NCi0uaW5jbHVkZSA8YnNkLnByb2cubWs+DQpJbmRleDogdXNyLmJpbi9hdGYvYXRmLXZlcnNp
b24vTWFrZWZpbGUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB1c3IuYmluL2F0Zi9hdGYtdmVyc2lvbi9NYWtl
ZmlsZQkocmV2aXNpb24gMjUzMzM5KQ0KKysrIHVzci5iaW4vYXRmL2F0Zi12ZXJzaW9uL01ha2Vm
aWxlCSh3b3JraW5nIGNvcHkpDQpAQCAtMSw1MiArMCwwIEBADQotIy0NCi0jIENvcHlyaWdodCAo
YykgMjAxMSBHb29nbGUsIEluYy4NCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotIw0KLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0DQotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMNCi0jIGFyZSBtZXQ6DQotIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KLSMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Lg0KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCi0jICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQot
Iw0KLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORA0KLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQotIyBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RQ0KLSMgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUNCi0jIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMDQotIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUw0KLSMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pDQotIyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVA0KLSMgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWQ0KLSMgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRg0KLSMgU1VDSCBEQU1BR0UuDQotIw0KLSMgJEZyZWVC
U0QkDQotDQotLmluY2x1ZGUgPGJzZC5pbml0Lm1rPg0KLQ0KLS5QQVRIOgkJJHtBVEZ9L2F0Zi12
ZXJzaW9uDQotDQotUFJPR19DWFg9CWF0Zi12ZXJzaW9uDQotU1JDUz0JCWF0Zi12ZXJzaW9uLmNw
cCByZXZpc2lvbi5oDQotTUFOPQkJYXRmLXZlcnNpb24uMQ0KLQ0KLUNGTEFHUys9CS1ESEFWRV9D
T05GSUdfSA0KLUNGTEFHUys9CS1JJHtBVEZ9DQotQ0ZMQUdTKz0JLUkkey5DVVJESVJ9Ly4uLy4u
L2xpYi9saWJhdGYtYw0KLUNGTEFHUys9CS1JJHsuQ1VSRElSfQ0KLUNGTEFHUys9CS1JLg0KLQ0K
LUNMRUFORklMRVMrPQlyZXZpc2lvbi5oDQotcmV2aXNpb24uaDoNCi0JQHNoICR7QVRGfS9hdGYt
dmVyc2lvbi9nZW5lcmF0ZS1yZXZpc2lvbi5zaCBcDQotCQktbyAkey5UQVJHRVR9IFwNCi0JCS1y
ICR7QVRGfSBcDQotCQktdiBgYXdrICckJDIgPT0gIlZFUlNJT04iIHsgcHJpbnQgJCQzIH0nICR7
QVRGfS9iY29uZmlnLmhgDQotDQotRFBBREQrPQkJJHtMSUJBVEZfQ30gJHtMSUJBVEZfQ1hYfQ0K
LUxEQUREKz0JCS1sYXRmLWMrKyAtbGF0Zi1jDQotDQotLmluY2x1ZGUgPGJzZC5wcm9nLm1rPg0K
SW5kZXg6IGV0Yy9NYWtlZmlsZQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGV0Yy9NYWtlZmlsZQkocmV2aXNp
b24gMjUzMzM5KQ0KKysrIGV0Yy9NYWtlZmlsZQkod29ya2luZyBjb3B5KQ0KQEAgLTIxNiw5ICsy
MTYsNiBAQA0KIAkJZWNobyAiLi9ldGMvc3B3ZC5kYiB0eXBlPWZpbGUgbW9kZT0wNjAwIHVuYW1l
PXJvb3QgZ25hbWU9d2hlZWwiOyBcDQogCSkgfCAke01FVEFMT0cuYWRkfQ0KIC5lbmRpZg0KLS5p
ZiAke01LX0FURn0gIT0gIm5vIg0KLQkke18rX31jZCAkey5DVVJESVJ9L2F0ZjsgJHtNQUtFfSBp
bnN0YWxsDQotLmVuZGlmDQogLmlmICR7TUtfQkxVRVRPT1RIfSAhPSAibm8iDQogCSR7XytffWNk
ICR7LkNVUkRJUn0vYmx1ZXRvb3RoOyAke01BS0V9IGluc3RhbGwNCiAuZW5kaWYNCkluZGV4OiBl
dGMvYXRmL0ZyZWVCU0QuY29uZg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGV0Yy9hdGYvRnJlZUJTRC5jb25m
CShyZXZpc2lvbiAyNTMzMzkpDQorKysgZXRjL2F0Zi9GcmVlQlNELmNvbmYJKHdvcmtpbmcgY29w
eSkNCkBAIC0xLDEyICswLDAgQEANCi1Db250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL1gtYXRmLWNv
bmZpZzsgdmVyc2lvbj0iMSINCi0NCi0jICRGcmVlQlNEJA0KLSMNCi0jIENvbmZpZ3VyYXRpb24g
ZmlsZSBmb3IgdGhlIEZyZWVCU0QgdGVzdCBzdWl0ZS4NCi0jDQotIyBTZWUgYXRmLWZvcm1hdHMo
NSkgZm9yIGRldGFpbHMgb24gdGhlIHN5bnRheCBvZiB0aGlzIGZpbGUgYW5kIHRlc3RzKDcpIGZv
cg0KLSMgZGV0YWlscyBvbiB0aGUgRnJlZUJTRCB0ZXN0IHN1aXRlLg0KLSMNCi0NCi0jdmFyaWFi
bGUxID0gdmFsdWUxDQotI3ZhcmlhYmxlMiA9IHZhbHVlMg0KSW5kZXg6IGV0Yy9hdGYvTWFrZWZp
bGUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBldGMvYXRmL01ha2VmaWxlCShyZXZpc2lvbiAyNTMzMzkpDQor
KysgZXRjL2F0Zi9NYWtlZmlsZQkod29ya2luZyBjb3B5KQ0KQEAgLTEsMzkgKzAsMCBAQA0KLSMt
DQotIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlLCBJbmMuDQotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLg0KLSMNCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotIyBhcmUgbWV0Og0KLSMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4NCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQotIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQotIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLg0KLSMNCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFV
VEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQNCi0jIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0KLSMg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UNCi0jIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFDQotIyBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TA0KLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMNCi0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KLSMgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QNCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkNCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCi0jIFNVQ0ggREFNQUdF
Lg0KLSMNCi0jICRGcmVlQlNEJA0KLQ0KLUFURj0JCSR7LkNVUkRJUn0vLi4vLi4vY29udHJpYi9h
dGYNCi0NCi0uUEFUSDoJCSR7QVRGfS9hdGYtcnVuL3NhbXBsZQ0KLQ0KLU5PX09CSj0NCi0NCi1G
SUxFU0dST1VQUz0JRVRDDQotDQotRVRDRElSPQkJL2V0Yy9hdGYNCi1FVEM9CQlGcmVlQlNELmNv
bmYgYXRmLXJ1bi5ob29rcyBjb21tb24uY29uZg0KLQ0KLS5pbmNsdWRlIDxic2QucHJvZy5taz4N
CkluZGV4OiBldGMvYXRmL2NvbW1vbi5jb25mDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gZXRjL2F0Zi9jb21t
b24uY29uZgkocmV2aXNpb24gMjUzMzM5KQ0KKysrIGV0Yy9hdGYvY29tbW9uLmNvbmYJKHdvcmtp
bmcgY29weSkNCkBAIC0xLDEyICswLDAgQEANCi1Db250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL1gt
YXRmLWNvbmZpZzsgdmVyc2lvbj0iMSINCi0NCi0jICRGcmVlQlNEJA0KLSMNCi0jIFNhbXBsZSBj
b25maWd1cmF0aW9uIGZpbGUgZm9yIHByb3BlcnRpZXMgYWZmZWN0aW5nIGFsbCB0ZXN0IHN1aXRl
cy4NCi0jDQotDQotIyBXaGVuIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUgYXMgcm9vdCwgc29tZSB0
ZXN0cyByZXF1aXJlIHRvIHN3aXRjaCB0bw0KLSMgYW4gdW5wcml2aWxlZ2VkIHVzZXIgdG8gcGVy
Zm9ybSBleHRyYSBjaGVja3MuICBTZXQgdGhpcyB2YXJpYWJsZSB0bw0KLSMgdGhlIHVzZXIgeW91
IHdhbnQgdG8gdXNlIGluIHRob3NlIGNhc2VzLiAgSWYgbm90IHNldCwgdGhvc2UgdGVzdHMgd2ls
bA0KLSMgYmUgc2tpcHBlZC4NCi11bnByaXZpbGVnZWQtdXNlciA9ICJfYXRmIg0KSW5kZXg6IHNo
YXJlL2V4YW1wbGVzL01ha2VmaWxlDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gc2hhcmUvZXhhbXBsZXMvTWFr
ZWZpbGUJKHJldmlzaW9uIDI1MzMzOSkNCisrKyBzaGFyZS9leGFtcGxlcy9NYWtlZmlsZQkod29y
a2luZyBjb3B5KQ0KQEAgLTI0MSw5ICsyNDEsNiBAQA0KIA0KIC5pZiAke1NIQVJFRH0gIT0gInN5
bWxpbmtzIg0KIFNVQkRJUj0Jc21iZnMNCi0uaWYgJHtNS19BVEZ9ICE9ICJubyINCi1TVUJESVIr
PWF0Zg0KLS5lbmRpZg0KIC5pZiAke01LX0lQRklMVEVSfSAhPSAibm8iDQogU1VCRElSKz1pcGZp
bHRlcg0KIC5lbmRpZg0KSW5kZXg6IHNoYXJlL2V4YW1wbGVzL2F0Zi9NYWtlZmlsZQ0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIHNoYXJlL2V4YW1wbGVzL2F0Zi9NYWtlZmlsZQkocmV2aXNpb24gMjUzMzM5KQ0K
KysrIHNoYXJlL2V4YW1wbGVzL2F0Zi9NYWtlZmlsZQkod29ya2luZyBjb3B5KQ0KQEAgLTEsMzkg
KzAsMCBAQA0KLSMtDQotIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlLCBJbmMuDQotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLg0KLSMNCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotIyBhcmUg
bWV0Og0KLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQotIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlDQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSMNCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQNCi0jIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQ0KLSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCi0jIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFDQotIyBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTA0KLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMNCi0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KLSMgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QNCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkNCi0jIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCi0j
IFNVQ0ggREFNQUdFLg0KLSMNCi0jICRGcmVlQlNEJA0KLQ0KLUFURj0JCSR7LkNVUkRJUn0vLi4v
Li4vLi4vY29udHJpYi9hdGYNCi0NCi0uUEFUSDoJCSR7QVRGfS9hdGYtcmVwb3J0DQotLlBBVEg6
CQkke0FURn0vYXRmLXJ1bi9zYW1wbGUNCi0NCi1OT19PQko9DQotDQotRklMRVNESVI9CSR7U0hB
UkVESVJ9L2V4YW1wbGVzL2F0Zg0KLUZJTEVTPQkJYXRmLXJ1bi5ob29rcyBcDQotCQl0ZXN0cy1y
ZXN1bHRzLmNzcw0KLQ0KLS5pbmNsdWRlIDxic2QucHJvZy5taz4NCkluZGV4OiBzaGFyZS9tay9h
dGYudGVzdC5taw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHNoYXJlL21rL2F0Zi50ZXN0Lm1rCShyZXZpc2lv
biAyNTMzMzkpDQorKysgc2hhcmUvbWsvYXRmLnRlc3QubWsJKHdvcmtpbmcgY29weSkNCkBAIC01
MSw5OCArNTEsNCBAQA0KIC5lbmRmb3INCiAuZW5kaWYNCiANCi1BVEZGSUxFPz0gYXV0bw0KLQ0K
LS5pZiAke0FURkZJTEU6dGx9ICE9ICJubyINCi1GSUxFUys9CUF0ZmZpbGUNCi1GSUxFU0RJUl9B
dGZmaWxlPSAke1RFU1RTRElSfQ0KLQ0KLS5pZiAke0FURkZJTEU6dGx9ID09ICJhdXRvIg0KLUNM
RUFORklMRVMrPSBBdGZmaWxlIEF0ZmZpbGUudG1wDQotDQotQXRmZmlsZTogTWFrZWZpbGUNCi0J
QHsgZWNobyAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9YLWF0Zi1hdGZmaWxlOyB2ZXJzaW9u
PSIxIic7IFwNCi0JZWNobzsgXA0KLQllY2hvICcjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5
IGF0Zi10ZXN0Lm1rLic7IFwNCi0JZWNobzsgXA0KLQllY2hvICdwcm9wOiB0ZXN0LXN1aXRlID0g
IidgdW5hbWUgLW9gJyInOyBcDQotCWVjaG87IFwNCi0JZm9yIHRwIGluICR7QVRGX1RFU1RTfTsg
ZG8gXA0KLQkgICAgZWNobyAidHA6ICQke3RwfSI7IFwNCi0JZG9uZTsgfSA+QXRmZmlsZS50bXAN
Ci0JQG12IEF0ZmZpbGUudG1wIEF0ZmZpbGUNCi0uZW5kaWYNCi0uZW5kaWYNCi0NCi0jIEdlbmVy
YXRlIHN1cHBvcnQgdmFyaWFibGVzIGZvciBhdGYtdGVzdC4NCi0jDQotIyBhdGYtdGVzdCBjYW4g
b25seSB3b3JrIGZvciBuYXRpdmUgYnVpbGRzLCBpLmUuIGEgYnVpbGQgaG9zdCBvZiBhIHBhcnRp
Y3VsYXINCi0jIE9TIGJ1aWxkaW5nIGEgcmVsZWFzZSBmb3IgdGhlIHNhbWUgT1MgdmVyc2lvbiBh
bmQgYXJjaGl0ZWN0dXJlLiBUaGUgdGFyZ2V0DQotIyBydW5zIEFURiwgd2hpY2ggaXMgb24gdGhl
IGJ1aWxkIGhvc3QsIGFuZCB0aGUgdGVzdHMgZXhlY3V0ZSBjb2RlIGJ1aWx0IGZvcg0KLSMgdGhl
IHRhcmdldCBob3N0Lg0KLSMNCi0jIER1ZSB0byB0aGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBiaW5h
cmllcyBidWlsdCBieSB0aGUgc291cmNlIHRyZWUgYW5kIGhvdyB0aGV5DQotIyBhcmUgdXNlZCBi
eSB0ZXN0cywgaXQgaXMgaGlnaGx5IHBvc3NpYmxlIGZvciBhIGV4ZWN1dGlvbiBvZiAibWFrZSB0
ZXN0IiB0bw0KLSMgcmVwb3J0IGJvZ3VzIHJlc3VsdHMgdW5sZXNzIHRoZSBuZXcgYmluYXJpZXMg
YXJlIHB1dCBpbiBwbGFjZS4NCi0NCi0jIFhYWCAoZ2Nvb3Blcik6IEV4ZWN1dGluZyBBVEYgZnJv
bSBvdXRzaWRlIHRoZSBzb3VyY2UgdHJlZSBpcyBpbXByb3BlcjsgaXQNCi0jIHNob3VsZCBiZSBi
dWlsdCBhcyBwYXJ0IG9mIHRoZSBPUyB0b29sY2hhaW4gYnVpbGQgZm9yIHRoZSBob3N0IE9TIGFu
ZA0KLSMgZXhlY3V0ZWQgZnJvbSB0aGVyZS4NCi1BVEZfUEFUSCs9ICR7REVTVERJUn0vYmluICR7
REVTVERJUn0vc2JpbiAke0RFU1RESVJ9L3Vzci9iaW4gJHtERVNURElSfS91c3Ivc2Jpbg0KLVRF
U1RTX0VOVis9IFBBVEg9JHtBVEZfUEFUSDp0czp9OiR7UEFUSH0NCi0NCi1BVEZfQlVJTERfQ0M/
PSAke0RFU1RESVJ9L3Vzci9iaW4vY2MNCi1BVEZfQlVJTERfQ1BQPz0gJHtERVNURElSfS91c3Iv
YmluL2NwcA0KLUFURl9CVUlMRF9DWFg/PSAke0RFU1RESVJ9L3Vzci9iaW4vYysrDQotQVRGX0NP
TkZESVI/PSAke0RFU1RESVJ9L2V0Yw0KLUFURl9JTkNMVURFRElSPz0gJHtERVNURElSfS91c3Iv
aW5jbHVkZQ0KLUFURl9MSUJESVI/PSAke0RFU1RESVJ9L3Vzci9saWINCi1BVEZfTElCRVhFQ0RJ
Uj89ICR7REVTVERJUn0vdXNyL2xpYmV4ZWMNCi1BVEZfUEtHREFUQURJUj89ICR7REVTVERJUn0v
dXNyL3NoYXJlL2F0Zg0KLUFURl9TSEVMTD89ICR7REVTVERJUn0vYmluL3NoDQotTERfTElCUkFS
WV9QQVRIPz0gJHtURVNUU19MRF9MSUJSQVJZX1BBVEg6dFc6Uy8gLzovZ30NCi0NCi1BVEZfRU5W
X1ZBUlM9IFwNCi0JQVRGX0JVSUxEX0NDIFwNCi0JQVRGX0JVSUxEX0NQUCBcDQotCUFURl9CVUlM
RF9DWFggXA0KLQlBVEZfQ09ORkRJUiBcDQotCUFURl9JTkNMVURFRElSIFwNCi0JQVRGX0xJQkRJ
UiBcDQotCUFURl9MSUJFWEVDRElSIFwNCi0JQVRGX1BLR0RBVEFESVIgXA0KLQlBVEZfU0hFTEwg
XA0KLQ0KLS5mb3IgdiBpbiAke0FURl9FTlZfVkFSU30NCi0uaWYgIWVtcHR5KCR2KQ0KLVRFU1RT
X0VOVis9ICR2PSR7JHZ9DQotLmVuZGlmDQotLmVuZGZvcg0KLQ0KLV9URVNUU19GSUZPPSAkey5P
QkpESVJ9L2F0Zi1ydW4uZmlmbw0KLV9URVNUU19MT0c9ICR7Lk9CSkRJUn0vYXRmLXJ1bi5sb2cN
Ci1DTEVBTkZJTEVTKz0gJHtfVEVTVFNfRklGT30gJHtfVEVTVFNfTE9HfQ0KLQ0KLUFURl9CSU4/
PSAke0RFU1RESVJ9L3Vzci9iaW4NCi1BVEZfUkVQT1JUPz0gJHtBVEZfQklOfS9hdGYtcmVwb3J0
DQotQVRGX1JVTj89ICR7QVRGX0JJTn0vYXRmLXJ1bg0KLQ0KLS5QSE9OWTogcmVhbHRlc3QNCi1y
ZWFsdGVzdDoNCi0uaWYgZGVmaW5lZChURVNUU0RJUikNCi0JQHNldCAtZTsgXA0KLQljZCAke0RF
U1RESVJ9JHtURVNUU0RJUn07IFwNCi0Jcm0gLWYgJHtfVEVTVFNfRklGT307IFwNCi0JbWtmaWZv
ICR7X1RFU1RTX0ZJRk99OyBcDQotCXRlZSAke19URVNUU19MT0d9IDwgJHtfVEVTVFNfRklGT30g
fCAke1RFU1RTX0VOVn0gJHtBVEZfUkVQT1JUfSAmIFwNCi0Jc2V0ICtlOyBcDQotCSR7VEVTVFNf
RU5WfSAke0FURl9SVU59ID4+ICR7X1RFU1RTX0ZJRk99OyBcDQotCXJlc3VsdD0kJHs/fTsgXA0K
LQl3YWl0OyBcDQotCXJtIC1mICR7X1RFU1RTX0ZJRk99OyBcDQotCWVjaG87IFwNCi0JZWNobyAi
KioqIFRoZSB2ZXJiYXRpbSBvdXRwdXQgb2YgYXRmLXJ1biBoYXMgYmVlbiBzYXZlZCB0byAke19U
RVNUU19MT0d9IjsgXA0KLQlleGl0ICQke3Jlc3VsdH0NCi0uZW5kaWYNCi0NCiAuaW5jbHVkZSA8
YnNkLnRlc3QubWs+DQpJbmRleDogc2hhcmUvYXRmL01ha2VmaWxlDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
c2hhcmUvYXRmL01ha2VmaWxlCShyZXZpc2lvbiAyNTMzMzkpDQorKysgc2hhcmUvYXRmL01ha2Vm
aWxlCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzNyArMCwwIEBADQotIy0NCi0jIENvcHlyaWdodCAo
YykgMjAxMiBFTUMgQ29ycG9yYXRpb24uDQotIyBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSMNCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dA0KLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotIyBhcmUgbWV0Og0KLSMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4NCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0DQotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQotIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
Lg0KLSMNCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQNCi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0KLSMgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UNCi0jIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFDQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTA0KLSMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMNCi0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QNCi0jIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkNCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCi0jIFNVQ0ggREFNQUdFLg0KLSMNCi0jICRG
cmVlQlNEJA0KLQ0KLUFURj0JCSR7LkNVUkRJUn0vLi4vLi4vY29udHJpYi9hdGYNCi0NCi0uUEFU
SDoJCSR7QVRGfS9hdGYtcnVuL3NhbXBsZQ0KLQ0KLU5PX09CSj0NCi0NCi1GSUxFU0RJUj0JJHtT
SEFSRURJUn0vYXRmDQotRklMRVM9CQlhdGYtcnVuLmhvb2tzDQotDQotLmluY2x1ZGUgPGJzZC5w
cm9nLm1rPg0KSW5kZXg6IHNoYXJlL01ha2VmaWxlDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gc2hhcmUvTWFr
ZWZpbGUJKHJldmlzaW9uIDI1MzMzOSkNCisrKyBzaGFyZS9NYWtlZmlsZQkod29ya2luZyBjb3B5
KQ0KQEAgLTUsOCArNSw3IEBADQogDQogIyBEbyBub3QgaW5jbHVkZSBgaW5mbycgaW4gdGhlIFNV
QkRJUiBsaXN0LCBpdCBpcyBoYW5kbGVkIHNlcGFyYXRlbHkuDQogDQotU1VCRElSPQkke19hdGZ9
IFwNCi0JJHtfY29sbGRlZn0gXA0KK1NVQkRJUj0JJHtfY29sbGRlZn0gXA0KIAkke19kaWN0fSBc
DQogCSR7X2RvY30gXA0KIAlkdHJhY2UgXA0KQEAgLTI3LDE2ICsyNiwxMCBAQA0KIAl0YWJzZXQg
XA0KIAl0ZXJtY2FwIFwNCiAJJHtfdGltZWRlZn0gXA0KLQl4bWwgXA0KLQl4c2wgXA0KIAkke196
b25laW5mb30NCiANCiAjIE5COiBrZWVwIHRoZXNlIHNvcnRlZCBieSBNS18qIGtub2JzDQogDQot
LmlmICR7TUtfQVRGfSAhPSAibm8iDQotX2F0Zj0JCWF0Zg0KLS5lbmRpZg0KLQ0KIC5pZiAke01L
X0JTTk1QfSAhPSAibm8iDQogX3NubXA9CQlzbm1wDQogLmVuZGlmDQpJbmRleDogc2hhcmUveG1s
L01ha2VmaWxlDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gc2hhcmUveG1sL01ha2VmaWxlCShyZXZpc2lvbiAy
NTMzMzkpDQorKysgc2hhcmUveG1sL01ha2VmaWxlCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzNiAr
MCwwIEBADQotIy0NCi0jIENvcHlyaWdodCAoYykgMjAxMiBFTUMgQ29ycG9yYXRpb24uDQotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLg0KLSMNCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotIyBh
cmUgbWV0Og0KLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQotIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlDQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSMNCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQNCi0jIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQ0KLSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCi0jIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFDQotIyBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTA0KLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMNCi0jIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KLSMg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QNCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkNCi0jIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YN
Ci0jIFNVQ0ggREFNQUdFLg0KLSMNCi0jICRGcmVlQlNEJA0KLQ0KLS5pbmNsdWRlIDxic2Qub3du
Lm1rPg0KLQ0KLVNVQkRJUis9CSR7X2F0Zn0NCi0NCi0uaWYgJHtNS19BVEZ9ICE9ICJubyINCi1f
YXRmPQkJYXRmDQotLmVuZGlmDQotDQotLmluY2x1ZGUgPGJzZC5zdWJkaXIubWs+DQpJbmRleDog
c2hhcmUveG1sL01ha2VmaWxlLmluYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHNoYXJlL3htbC9NYWtlZmls
ZS5pbmMJKHJldmlzaW9uIDI1MzMzOSkNCisrKyBzaGFyZS94bWwvTWFrZWZpbGUuaW5jCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtMSwzMCArMCwwIEBADQotIy0NCi0jIENvcHlyaWdodCAoYykgMjAxMiBF
TUMgQ29ycG9yYXRpb24uDQotIyBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSMNCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dA0KLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zDQotIyBhcmUgbWV0Og0KLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0j
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0DQotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSMNCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQNCi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0KLSMgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCi0j
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFDQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTA0KLSMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMN
Ci0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKQ0KLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QNCi0jIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkNCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YNCi0jIFNVQ0ggREFNQUdFLg0KLSMNCi0jICRGcmVlQlNEJA0K
LQ0KLUJJTkRJUj89CSR7U0hBUkVESVJ9L3htbA0KLQ0KLSMgdmltOiBzeW50YXg9bWFrZQ0KSW5k
ZXg6IHNoYXJlL3htbC9hdGYvTWFrZWZpbGUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBzaGFyZS94bWwvYXRm
L01ha2VmaWxlCShyZXZpc2lvbiAyNTMzMzkpDQorKysgc2hhcmUveG1sL2F0Zi9NYWtlZmlsZQko
d29ya2luZyBjb3B5KQ0KQEAgLTEsMzkgKzAsMCBAQA0KLSMtDQotIyBDb3B5cmlnaHQgKGMpIDIw
MTEgR29vZ2xlLCBJbmMuDQotIyBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSMNCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dA0KLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zDQotIyBhcmUgbWV0Og0KLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0j
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0DQotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSMNCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQNCi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0KLSMgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCi0j
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFDQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTA0KLSMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMN
Ci0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKQ0KLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QNCi0jIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkNCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YNCi0jIFNVQ0ggREFNQUdFLg0KLSMNCi0jICRGcmVlQlNEJA0K
LQ0KLUFURj0JCSR7LkNVUkRJUn0vLi4vLi4vLi4vY29udHJpYi9hdGYNCi0NCi0uUEFUSDoJCSR7
QVRGfS9hdGYtcmVwb3J0DQotDQotTk9fT0JKPQ0KLQ0KLUZJTEVTR1JPVVBTPSAgICBYTUwNCi0N
Ci1YTUxESVI9CQkke1NIQVJFRElSfS94bWwvYXRmDQotWE1MPQkJdGVzdHMtcmVzdWx0cy5kdGQN
Ci0NCi0uaW5jbHVkZSA8YnNkLnByb2cubWs+DQpJbmRleDogc2hhcmUveHNsL01ha2VmaWxlDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gc2hhcmUveHNsL01ha2VmaWxlCShyZXZpc2lvbiAyNTMzMzkpDQorKysg
c2hhcmUveHNsL01ha2VmaWxlCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzNiArMCwwIEBADQotIy0N
Ci0jIENvcHlyaWdodCAoYykgMjAxMiBFTUMgQ29ycG9yYXRpb24uDQotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLg0KLSMNCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotIyBhcmUgbWV0Og0KLSMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4NCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQotIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQot
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLg0KLSMNCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQNCi0jIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0K
LSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UNCi0jIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFDQotIyBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTA0KLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMNCi0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KLSMgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QNCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkNCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCi0jIFNVQ0ggREFN
QUdFLg0KLSMNCi0jICRGcmVlQlNEJA0KLQ0KLS5pbmNsdWRlIDxic2Qub3duLm1rPg0KLQ0KLVNV
QkRJUis9CSR7X2F0Zn0NCi0NCi0uaWYgJHtNS19BVEZ9ICE9ICJubyINCi1fYXRmPQkJYXRmDQot
LmVuZGlmDQotDQotLmluY2x1ZGUgPGJzZC5zdWJkaXIubWs+DQpJbmRleDogc2hhcmUveHNsL01h
a2VmaWxlLmluYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHNoYXJlL3hzbC9NYWtlZmlsZS5pbmMJKHJldmlz
aW9uIDI1MzMzOSkNCisrKyBzaGFyZS94c2wvTWFrZWZpbGUuaW5jCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzMCArMCwwIEBADQotIy0NCi0jIENvcHlyaWdodCAoYykgMjAxMiBFTUMgQ29ycG9yYXRp
b24uDQotIyBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSMNCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zDQotIyBhcmUgbWV0Og0KLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0jIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
DQotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlDQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSMNCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQNCi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQ0KLSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCi0jIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFDQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTA0KLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMNCi0jIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKQ0KLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QNCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkNCi0jIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YNCi0jIFNVQ0ggREFNQUdFLg0KLSMNCi0jICRGcmVlQlNEJA0KLQ0KLUJJTkRJUj89
CSR7U0hBUkVESVJ9L3hzbA0KLQ0KLSMgdmltOiBzeW50YXg9bWFrZQ0KSW5kZXg6IHNoYXJlL3hz
bC9hdGYvTWFrZWZpbGUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBzaGFyZS94c2wvYXRmL01ha2VmaWxlCShy
ZXZpc2lvbiAyNTMzMzkpDQorKysgc2hhcmUveHNsL2F0Zi9NYWtlZmlsZQkod29ya2luZyBjb3B5
KQ0KQEAgLTEsMzkgKzAsMCBAQA0KLSMtDQotIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlLCBJ
bmMuDQotIyBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSMNCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zDQotIyBhcmUgbWV0Og0KLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0jIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
DQotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlDQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSMNCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQNCi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQ0KLSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCi0jIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFDQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTA0KLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMNCi0jIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKQ0KLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QNCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkNCi0jIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YNCi0jIFNVQ0ggREFNQUdFLg0KLSMNCi0jICRGcmVlQlNEJA0KLQ0KLUFURj0JCSR7
LkNVUkRJUn0vLi4vLi4vLi4vY29udHJpYi9hdGYNCi0NCi0uUEFUSDoJCSR7QVRGfS9hdGYtcmVw
b3J0DQotDQotTk9fT0JKPQ0KLQ0KLUZJTEVTR1JPVVBTPSAgICBYU0wNCi0NCi1YU0xESVI9CQkk
e1NIQVJFRElSfS94c2wvYXRmDQotWFNMPQkJdGVzdHMtcmVzdWx0cy54c2wNCi0NCi0uaW5jbHVk
ZSA8YnNkLnByb2cubWs+DQo=
--089e011849928a715904e1e3a313
Content-Type: text/x-diff; charset=us-ascii; name="rename-tests-user.diff"
Content-Disposition: attachment; filename="rename-tests-user.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: d2b3d6e757d93a2_0.2

SW5kZXg6IGV0Yy9ncm91cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGV0Yy9ncm91cAkocmV2aXNpb24gMjUz
MzM5KQ0KKysrIGV0Yy9ncm91cAkod29ya2luZyBjb3B5KQ0KQEAgLTE2LDcgKzE2LDcgQEANCiBz
c2hkOio6MjI6DQogc21tc3A6KjoyNToNCiBtYWlsbnVsbDoqOjI2Og0KLV9hdGY6KjoyNzoNCitf
dGVzdHM6KjoyNzoNCiBndWVzdDoqOjMxOg0KIGJpbmQ6Kjo1MzoNCiBwcm94eToqOjYyOg0KSW5k
ZXg6IGV0Yy9tYXN0ZXIucGFzc3dkDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gZXRjL21hc3Rlci5wYXNzd2QJ
KHJldmlzaW9uIDI1MzMzOSkNCisrKyBldGMvbWFzdGVyLnBhc3N3ZAkod29ya2luZyBjb3B5KQ0K
QEAgLTEzLDcgKzEzLDcgQEANCiBzc2hkOio6MjI6MjI6OjA6MDpTZWN1cmUgU2hlbGwgRGFlbW9u
Oi92YXIvZW1wdHk6L3Vzci9zYmluL25vbG9naW4NCiBzbW1zcDoqOjI1OjI1OjowOjA6U2VuZG1h
aWwgU3VibWlzc2lvbiBVc2VyOi92YXIvc3Bvb2wvY2xpZW50bXF1ZXVlOi91c3Ivc2Jpbi9ub2xv
Z2luDQogbWFpbG51bGw6KjoyNjoyNjo6MDowOlNlbmRtYWlsIERlZmF1bHQgVXNlcjovdmFyL3Nw
b29sL21xdWV1ZTovdXNyL3NiaW4vbm9sb2dpbg0KLV9hdGY6KjoyNzoyNzo6MDowOiYgcHNldWRv
LXVzZXI6L25vbmV4aXN0ZW50Oi91c3Ivc2Jpbi9ub2xvZ2luDQorX3Rlc3RzOio6Mjc6Mjc6OjA6
MDomIHBzZXVkby11c2VyOi9ub25leGlzdGVudDovdXNyL3NiaW4vbm9sb2dpbg0KIGJpbmQ6Kjo1
Mzo1Mzo6MDowOkJpbmQgU2FuZGJveDovOi91c3Ivc2Jpbi9ub2xvZ2luDQogcHJveHk6Kjo2Mjo2
Mjo6MDowOlBhY2tldCBGaWx0ZXIgcHNldWRvLXVzZXI6L25vbmV4aXN0ZW50Oi91c3Ivc2Jpbi9u
b2xvZ2luDQogX3BmbG9nZDoqOjY0OjY0OjowOjA6cGZsb2dkIHByaXZzZXAgdXNlcjovdmFyL2Vt
cHR5Oi91c3Ivc2Jpbi9ub2xvZ2luDQo=
--089e011849928a715904e1e3a313--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGHfRMC9xV6QRBieQp-kJW1OMqXgqDmhjQ3DGPQTJ2Swg3B3%2BQ>