[PATCH] More readable parameter definitions in params.c

Philippe Altherr <[email protected]> Thu, 23 Jul 2026 00:40:41 +0200
Newsgroups gmane.comp.shells.zsh.devel
Message-ID <CAGdYchsXofo7E464jZPJcAFa=T+mG9pcdUMDhZSHgKS9QHNPDQ@mail.gmail.com>
--000000000000027af606573ad52f
Content-Type: multipart/alternative; boundary="000000000000027af406573ad52d"

--000000000000027af406573ad52d
Content-Type: text/plain; charset="UTF-8"

After having to decipher for the nth time the cryptic IPDEFX macros, I
decided to come up with something easier to read and understand. This is a
no-op patch. It only changes the macros used to declare the parameter
definitions.

- More readable parameter definitions in params.c
<https://github.com/zsh-users/zsh/compare/master...paltherr:zsh:more-readable-param-defs>

Philippe

--000000000000027af406573ad52d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">After having to decipher for the nth time the=C2=A0cryptic=
=C2=A0IPDEFX=C2=A0macros, I decided to come up with something easier to rea=
d and understand. This is a no-op patch. It only changes the macros used to=
 declare the=C2=A0parameter definitions.<div><br><div>-=C2=A0<a href=3D"htt=
ps://github.com/zsh-users/zsh/compare/master...paltherr:zsh:more-readable-p=
aram-defs">More readable parameter definitions in params.c</a></div><div><b=
r></div><div>Philippe</div><div><br></div></div></div>

--000000000000027af406573ad52d--
--000000000000027af606573ad52f
Content-Type: text/plain; charset="US-ASCII"; name="more-readable-param-defs.txt"
Content-Disposition: attachment; filename="more-readable-param-defs.txt"
Content-Transfer-Encoding: base64
Content-ID: <f_mrwnzyq40>
X-Attachment-Id: f_mrwnzyq40

ZGlmZiAtLWdpdCBhL1NyYy9wYXJhbXMuYyBiL1NyYy9wYXJhbXMuYwppbmRleCA3NDA5ZmY1MzAu
LjA2ZGY3ODA3MCAxMDA2NDQKLS0tIGEvU3JjL3BhcmFtcy5jCisrKyBiL1NyYy9wYXJhbXMuYwpA
QCAtMjk3LDE1NCArMjk3LDE3MSBAQCB0eXBlZGVmIHN0cnVjdCBpcGFyYW0gewogfSBpbml0cGFy
YW07CiAjZW5kaWYKIAotc3RhdGljIGluaXRwYXJhbSBzcGVjaWFsX3BhcmFtc1tdID17Ci0jZGVm
aW5lIEdTVShYKSBCUigoR3N1U2NhbGFyKSh2b2lkICopKCYoWCkpKQorI2RlZmluZSBHU1UoWCkg
ICBCUigoR3N1U2NhbGFyKSh2b2lkICopKCYoWCkpKQogI2RlZmluZSBOVUxMX0dTVSBCUigoR3N1
U2NhbGFyKSh2b2lkICopTlVMTCkKLSNkZWZpbmUgSVBERUYxKEEsQixDKSB7e05VTEwsQSxQTV9J
TlRFR0VSfFBNX1NQRUNJQUx8Q30sQlIoTlVMTCksR1NVKEIpLDEwLDAsTlVMTCxOVUxMLE5VTEws
MH0KLUlQREVGMSgiIyIsIHBvdW5kX2dzdSwgUE1fUkVBRE9OTFlfU1BFQ0lBTCksCi1JUERFRjEo
IkVSUk5PIiwgZXJybm9fZ3N1LCBQTV9VTlNFVCksCi1JUERFRjEoIkdJRCIsIGdpZF9nc3UsIFBN
X0RPTlRJTVBPUlQpLAotSVBERUYxKCJFR0lEIiwgZWdpZF9nc3UsIFBNX0RPTlRJTVBPUlQpLAot
SVBERUYxKCJISVNUU0laRSIsIGhpc3RzaXplX2dzdSwgMCksCi1JUERFRjEoIlJBTkRPTSIsIHJh
bmRvbV9nc3UsIDApLAotSVBERUYxKCJTQVZFSElTVCIsIHNhdmVoaXN0X2dzdSwgMCksCi1JUERF
RjEoIlNFQ09ORFMiLCBpbnRzZWNvbmRzX2dzdSwgMCksCi1JUERFRjEoIlVJRCIsIHVpZF9nc3Us
IFBNX0RPTlRJTVBPUlQpLAotSVBERUYxKCJFVUlEIiwgZXVpZF9nc3UsIFBNX0RPTlRJTVBPUlQp
LAotSVBERUYxKCJUVFlJRExFIiwgdHR5aWRsZV9nc3UsIFBNX1JFQURPTkxZX1NQRUNJQUwpLAot
Ci0jZGVmaW5lIElQREVGMihBLEIsQykge3tOVUxMLEEsUE1fU0NBTEFSfFBNX1NQRUNJQUx8Q30s
QlIoTlVMTCksR1NVKEIpLDAsMCxOVUxMLE5VTEwsTlVMTCwwfQotSVBERUYyKCJVU0VSTkFNRSIs
IHVzZXJuYW1lX2dzdSwgUE1fRE9OVElNUE9SVCksCi1JUERFRjIoIi0iLCBkYXNoX2dzdSwgUE1f
UkVBRE9OTFlfU1BFQ0lBTCksCi1JUERFRjIoImhpc3RjaGFycyIsIGhpc3RjaGFyc19nc3UsIFBN
X0RPTlRJTVBPUlQpLAotSVBERUYyKCJIT01FIiwgaG9tZV9nc3UsIFBNX1VOU0VUKSwKLUlQREVG
MigiVEVSTSIsIHRlcm1fZ3N1LCBQTV9VTlNFVCksCi1JUERFRjIoIlRFUk1JTkZPIiwgdGVybWlu
Zm9fZ3N1LCBQTV9VTlNFVCksCi1JUERFRjIoIlRFUk1JTkZPX0RJUlMiLCB0ZXJtaW5mb2RpcnNf
Z3N1LCBQTV9VTlNFVCksCi1JUERFRjIoIldPUkRDSEFSUyIsIHdvcmRjaGFyc19nc3UsIDApLAot
SVBERUYyKCJJRlMiLCBpZnNfZ3N1LCBQTV9ET05USU1QT1JUKSwKLUlQREVGMigiXyIsIHVuZGVy
c2NvcmVfZ3N1LCBQTV9ET05USU1QT1JUKSwKLUlQREVGMigiS0VZQk9BUkRfSEFDSyIsIGtleWJv
YXJkX2hhY2tfZ3N1LCBQTV9ET05USU1QT1JUKSwKLUlQREVGMigiMCIsIGFyZ3plcm9fZ3N1LCAw
KSwKKworI2RlZmluZSBQTShuYW1lLCB2YXIsIGdzdSwgZmxhZ3MsIGJhc2UsIGVuYW1lKSBcCisg
ICAgeyB7IE5VTEwsIG5hbWUsIFBNX1NQRUNJQUx8ZmxhZ3MgfSwgXAorCSAgICBCUigodm9pZCAq
KXZhciksIEdTVShnc3UpLCBiYXNlLCAwLCBOVUxMLCBlbmFtZSwgTlVMTCwgMCB9CisjZGVmaW5l
IE5VTExfUE0gXAorICAgIHsgeyBOVUxMLCBOVUxMLCAwIH0sIEJSKE5VTEwpLCBOVUxMX0dTVSwg
MCwgMCwgTlVMTCwgTlVMTCwgTlVMTCwgMCB9CisKKyNkZWZpbmUgU1RSUE0obmFtZSwgdmFyLCBn
c3UsIGZsYWdzKSBcCisgICAgUE0obmFtZSwgdmFyLCBnc3UsIFBNX1NDQUxBUnxmbGFncywgMCwg
TlVMTCkKKyNkZWZpbmUgSU5UUE0obmFtZSwgdmFyLCBnc3UsIGZsYWdzKSBcCisgICAgUE0obmFt
ZSwgdmFyLCBnc3UsIFBNX0lOVEVHRVJ8ZmxhZ3MsIDEwLCBOVUxMKQorI2RlZmluZSBBUlJQTShu
YW1lLCB2YXIsIGdzdSwgZmxhZ3MpIFwKKyAgICBQTShuYW1lLCB2YXIsIGdzdSwgUE1fQVJSQVl8
UE1fRE9OVElNUE9SVHxmbGFncywgMCAsIE5VTEwpCisKKyNkZWZpbmUgVkFSX1NUUlBNKG5hbWUs
IHZhciwgZmxhZ3MpIFNUUlBNKG5hbWUsIHZhciwgdmFyc2NhbGFyX2dzdSwgZmxhZ3MpCisjZGVm
aW5lIFZBUl9JTlRQTShuYW1lLCB2YXIsIGZsYWdzKSBJTlRQTShuYW1lLCB2YXIsIHZhcmludGVn
ZXJfZ3N1LCBmbGFncykKKyNkZWZpbmUgVkFSX0FSUlBNKG5hbWUsIHZhciwgZmxhZ3MpIEFSUlBN
KG5hbWUsIHZhciwgdmFyYXJyYXlfZ3N1LCBmbGFncykKKworI2RlZmluZSBST1ZBUl9JTlRQTShu
YW1lLCB2YXIsIGZsYWdzKSBcCisgICAgSU5UUE0obmFtZSwgdmFyLCB2YXJpbnRfcmVhZG9ubHlf
Z3N1LCBQTV9SRUFET05MWV9TUEVDSUFMfGZsYWdzKQorCisjZGVmaW5lIExDX1NUUlBNKG5hbWUp
IFwKKyAgICBTVFJQTShuYW1lLCBOVUxMLCBsY19ibGFoX2dzdSwgUE1fVU5TRVQpCisjZGVmaW5l
IENPTE9OQVJSX1NUUlBNKG5hbWUsIHZhciwgZmxhZ3MpIFwKKyAgICBTVFJQTShuYW1lLCB2YXIs
IGNvbG9uYXJyX2dzdSwgZmxhZ3MpCisKKyNkZWZpbmUgVElFRF9TVFJQTShuYW1lLCB2YXIsIGVu
YW1lLCBmbGFncykgXAorICAgIFBNKG5hbWUsIHZhciwgY29sb25hcnJfZ3N1LCBQTV9USUVEfFBN
X1NDQUxBUnxmbGFncywgMCwgZW5hbWUpCisjZGVmaW5lIFRJRURfQVJSUE0obmFtZSwgdmFyLCBl
bmFtZSwgZmxhZ3MpIFwKKyAgICBQTShuYW1lLCB2YXIsIHZhcmFycmF5X2dzdSwgUE1fVElFRHxQ
TV9BUlJBWXxQTV9ET05USU1QT1JUfGZsYWdzLCAwLCBlbmFtZSkKKworc3RhdGljIGluaXRwYXJh
bSBzcGVjaWFsX3BhcmFtc1tdID0geworICAgIElOVFBNKCIjIiwgTlVMTCwgcG91bmRfZ3N1LCBQ
TV9SRUFET05MWV9TUEVDSUFMKSwKKyAgICBJTlRQTSgiRVJSTk8iLCBOVUxMLCBlcnJub19nc3Us
IFBNX1VOU0VUKSwKKyAgICBJTlRQTSgiR0lEIiwgTlVMTCwgZ2lkX2dzdSwgUE1fRE9OVElNUE9S
VCksCisgICAgSU5UUE0oIkVHSUQiLCBOVUxMLCBlZ2lkX2dzdSwgUE1fRE9OVElNUE9SVCksCisg
ICAgSU5UUE0oIkhJU1RTSVpFIiwgTlVMTCwgaGlzdHNpemVfZ3N1LCAwKSwKKyAgICBJTlRQTSgi
UkFORE9NIiwgTlVMTCwgcmFuZG9tX2dzdSwgMCksCisgICAgSU5UUE0oIlNBVkVISVNUIiwgTlVM
TCwgc2F2ZWhpc3RfZ3N1LCAwKSwKKyAgICBJTlRQTSgiU0VDT05EUyIsIE5VTEwsIGludHNlY29u
ZHNfZ3N1LCAwKSwKKyAgICBJTlRQTSgiVUlEIiwgTlVMTCwgdWlkX2dzdSwgUE1fRE9OVElNUE9S
VCksCisgICAgSU5UUE0oIkVVSUQiLCBOVUxMLCBldWlkX2dzdSwgUE1fRE9OVElNUE9SVCksCisg
ICAgSU5UUE0oIlRUWUlETEUiLCBOVUxMLCB0dHlpZGxlX2dzdSwgUE1fUkVBRE9OTFlfU1BFQ0lB
TCksCisKKyAgICBTVFJQTSgiVVNFUk5BTUUiLCBOVUxMLCB1c2VybmFtZV9nc3UsIFBNX0RPTlRJ
TVBPUlQpLAorICAgIFNUUlBNKCItIiwgTlVMTCwgZGFzaF9nc3UsIFBNX1JFQURPTkxZX1NQRUNJ
QUwpLAorICAgIFNUUlBNKCJoaXN0Y2hhcnMiLCBOVUxMLCBoaXN0Y2hhcnNfZ3N1LCBQTV9ET05U
SU1QT1JUKSwKKyAgICBTVFJQTSgiSE9NRSIsIE5VTEwsIGhvbWVfZ3N1LCBQTV9VTlNFVCksCisg
ICAgU1RSUE0oIlRFUk0iLCBOVUxMLCB0ZXJtX2dzdSwgUE1fVU5TRVQpLAorICAgIFNUUlBNKCJU
RVJNSU5GTyIsIE5VTEwsIHRlcm1pbmZvX2dzdSwgUE1fVU5TRVQpLAorICAgIFNUUlBNKCJURVJN
SU5GT19ESVJTIiwgTlVMTCwgdGVybWluZm9kaXJzX2dzdSwgUE1fVU5TRVQpLAorICAgIFNUUlBN
KCJXT1JEQ0hBUlMiLCBOVUxMLCB3b3JkY2hhcnNfZ3N1LCAwKSwKKyAgICBTVFJQTSgiSUZTIiwg
TlVMTCwgaWZzX2dzdSwgUE1fRE9OVElNUE9SVCksCisgICAgU1RSUE0oIl8iLCBOVUxMLCB1bmRl
cnNjb3JlX2dzdSwgUE1fRE9OVElNUE9SVCksCisgICAgU1RSUE0oIktFWUJPQVJEX0hBQ0siLCBO
VUxMLCBrZXlib2FyZF9oYWNrX2dzdSwgUE1fRE9OVElNUE9SVCksCisgICAgU1RSUE0oIjAiLCBO
VUxMLCBhcmd6ZXJvX2dzdSwgMCksCiAKICNpZmRlZiBVU0VfTE9DQUxFCi0jIGRlZmluZSBMQ0lQ
REVGKG5hbWUpIElQREVGMihuYW1lLCBsY19ibGFoX2dzdSwgUE1fVU5TRVQpCi1JUERFRjIoIkxB
TkciLCBsYW5nX2dzdSwgUE1fVU5TRVQpLAotSVBERUYyKCJMQ19BTEwiLCBsY19hbGxfZ3N1LCBQ
TV9VTlNFVCksCisgICAgU1RSUE0oIkxBTkciLCBOVUxMLCBsYW5nX2dzdSwgUE1fVU5TRVQpLAor
ICAgIFNUUlBNKCJMQ19BTEwiLCBOVUxMLCBsY19hbGxfZ3N1LCBQTV9VTlNFVCksCiAjIGlmZGVm
IExDX0NPTExBVEUKLUxDSVBERUYoIkxDX0NPTExBVEUiKSwKKyAgICBMQ19TVFJQTSgiTENfQ09M
TEFURSIpLAogIyBlbmRpZgogIyBpZmRlZiBMQ19DVFlQRQotTENJUERFRigiTENfQ1RZUEUiKSwK
KyAgICBMQ19TVFJQTSgiTENfQ1RZUEUiKSwKICMgZW5kaWYKICMgaWZkZWYgTENfTUVTU0FHRVMK
LUxDSVBERUYoIkxDX01FU1NBR0VTIiksCisgICAgTENfU1RSUE0oIkxDX01FU1NBR0VTIiksCiAj
IGVuZGlmCiAjIGlmZGVmIExDX05VTUVSSUMKLUxDSVBERUYoIkxDX05VTUVSSUMiKSwKKyAgICBM
Q19TVFJQTSgiTENfTlVNRVJJQyIpLAogIyBlbmRpZgogIyBpZmRlZiBMQ19USU1FCi1MQ0lQREVG
KCJMQ19USU1FIiksCisgICAgTENfU1RSUE0oIkxDX1RJTUUiKSwKICMgZW5kaWYKICNlbmRpZiAv
KiBVU0VfTE9DQUxFICovCiAKLSNkZWZpbmUgSVBERUY0KEEsQikge3tOVUxMLEEsUE1fSU5URUdF
UnxQTV9SRUFET05MWV9TUEVDSUFMfSxCUigodm9pZCAqKUIpLEdTVSh2YXJpbnRfcmVhZG9ubHlf
Z3N1KSwxMCwwLE5VTEwsTlVMTCxOVUxMLDB9Ci1JUERFRjQoIiEiLCAmbGFzdHBpZCksCi1JUERF
RjQoIiQiLCAmbXlwaWQpLAotSVBERUY0KCI/IiwgJmxhc3R2YWwpLAotSVBERUY0KCJISVNUQ01E
IiwgJmN1cmhpc3QpLAotSVBERUY0KCJMSU5FTk8iLCAmbGluZW5vKSwKLUlQREVGNCgiUFBJRCIs
ICZwcGlkKSwKLUlQREVGNCgiWlNIX1NVQlNIRUxMIiwgJnpzaF9zdWJzaGVsbCksCi0KLSNkZWZp
bmUgSVBERUY1KEEsQixGKSB7e05VTEwsQSxQTV9JTlRFR0VSfFBNX1NQRUNJQUx9LEJSKCh2b2lk
ICopQiksR1NVKEYpLDEwLDAsTlVMTCxOVUxMLE5VTEwsMH0KLSNkZWZpbmUgSVBERUY1VShBLEIs
Rikge3tOVUxMLEEsUE1fSU5URUdFUnxQTV9TUEVDSUFMfFBNX1VOU0VUfSxCUigodm9pZCAqKUIp
LEdTVShGKSwxMCwwLE5VTEwsTlVMTCxOVUxMLDB9Ci1JUERFRjUoIkNPTFVNTlMiLCAmenRlcm1f
Y29sdW1ucywgemxldmFyX2dzdSksCi1JUERFRjUoIkxJTkVTIiwgJnp0ZXJtX2xpbmVzLCB6bGV2
YXJfZ3N1KSwKLUlQREVGNVUoIlpMRV9SUFJPTVBUX0lOREVOVCIsICZycHJvbXB0X2luZGVudCwg
cnByb21wdF9pbmRlbnRfZ3N1KSwKLUlQREVGNSgiU0hMVkwiLCAmc2hsdmwsIHZhcmludGVnZXJf
Z3N1KSwKLUlQREVGNSgiRlVOQ05FU1QiLCAmenNoX2Z1bmNuZXN0LCB2YXJpbnRlZ2VyX2dzdSks
Ci0KLS8qIERvbid0IGltcG9ydCBpbnRlcm5hbCBpbnRlZ2VyIHN0YXR1cyB2YXJpYWJsZXMuICov
Ci0jZGVmaW5lIElQREVGNihBLEIsRikge3tOVUxMLEEsUE1fSU5URUdFUnxQTV9TUEVDSUFMfFBN
X0RPTlRJTVBPUlR9LEJSKCh2b2lkICopQiksR1NVKEYpLDEwLDAsTlVMTCxOVUxMLE5VTEwsMH0K
LUlQREVGNigiT1BUSU5EIiwgJnpvcHRpbmQsIHZhcmludGVnZXJfZ3N1KSwKLUlQREVGNigiVFJZ
X0JMT0NLX0VSUk9SIiwgJnRyeV9lcnJmbGFnLCB2YXJpbnRlZ2VyX2dzdSksCi1JUERFRjYoIlRS
WV9CTE9DS19JTlRFUlJVUFQiLCAmdHJ5X2ludGVycnVwdCwgdmFyaW50ZWdlcl9nc3UpLAotCi0j
ZGVmaW5lIElQREVGNyhBLEIpIHt7TlVMTCxBLFBNX1NDQUxBUnxQTV9TUEVDSUFMfSxCUigodm9p
ZCAqKUIpLEdTVSh2YXJzY2FsYXJfZ3N1KSwwLDAsTlVMTCxOVUxMLE5VTEwsMH0KLSNkZWZpbmUg
SVBERUY3UihBLEIpIHt7TlVMTCxBLFBNX1NDQUxBUnxQTV9TUEVDSUFMfFBNX0RPTlRJTVBPUlRf
U1VJRH0sQlIoKHZvaWQgKilCKSxHU1UodmFyc2NhbGFyX2dzdSksMCwwLE5VTEwsTlVMTCxOVUxM
LDB9Ci0jZGVmaW5lIElQREVGN1UoQSxCKSB7e05VTEwsQSxQTV9TQ0FMQVJ8UE1fU1BFQ0lBTHxQ
TV9VTlNFVH0sQlIoKHZvaWQgKilCKSxHU1UodmFyc2NhbGFyX2dzdSksMCwwLE5VTEwsTlVMTCxO
VUxMLDB9Ci1JUERFRjcoIk9QVEFSRyIsICZ6b3B0YXJnKSwKLUlQREVGNygiTlVMTENNRCIsICZu
dWxsY21kKSwKLUlQREVGN1UoIlBPU1RFRElUIiwgJnBvc3RlZGl0KSwKLUlQREVGNygiUkVBRE5V
TExDTUQiLCAmcmVhZG51bGxjbWQpLAotSVBERUY3KCJQUzEiLCAmcHJvbXB0KSwKLUlQREVGN1Uo
IlJQUzEiLCAmcnByb21wdCksCi1JUERFRjdVKCJSUFJPTVBUIiwgJnJwcm9tcHQpLAotSVBERUY3
KCJQUzIiLCAmcHJvbXB0MiksCi1JUERFRjdVKCJSUFMyIiwgJnJwcm9tcHQyKSwKLUlQREVGN1Uo
IlJQUk9NUFQyIiwgJnJwcm9tcHQyKSwKLUlQREVGNygiUFMzIiwgJnByb21wdDMpLAotSVBERUY3
UigiUFM0IiwgJnByb21wdDQpLAotSVBERUY3KCJTUFJPTVBUIiwgJnNwcm9tcHQpLAotCi0jZGVm
aW5lIElQREVGOShBLEIsQyxEKSB7e05VTEwsQSxEfFBNX0FSUkFZfFBNX1NQRUNJQUx8UE1fRE9O
VElNUE9SVH0sQlIoKHZvaWQgKilCKSxHU1UodmFyYXJyYXlfZ3N1KSwwLDAsTlVMTCxDLE5VTEws
MH0KLUlQREVGOSgiKiIsICZwcGFyYW1zLCBOVUxMLCBQTV9BUlJBWXxQTV9SRUFET05MWV9TUEVD
SUFMfFBNX0RPTlRJTVBPUlQpLAotSVBERUY5KCJAIiwgJnBwYXJhbXMsIE5VTEwsIFBNX0FSUkFZ
fFBNX1JFQURPTkxZX1NQRUNJQUx8UE1fRE9OVElNUE9SVCksCi0KLS8qCi0gKiBUaGlzIGVtcHR5
IHJvdyBpbmRpY2F0ZXMgdGhlIGVuZCBvZiBwYXJhbWV0ZXJzIGF2YWlsYWJsZSBpbgotICogYWxs
IGVtdWxhdGlvbnMuCi0gKi8KLXt7TlVMTCxOVUxMLDB9LEJSKE5VTEwpLE5VTExfR1NVLDAsMCxO
VUxMLE5VTEwsTlVMTCwwfSwKLQotI2RlZmluZSBJUERFRjgoQSxCLEMsRCkge3tOVUxMLEEsRHxQ
TV9TQ0FMQVJ8UE1fU1BFQ0lBTH0sQlIoKHZvaWQgKilCKSxHU1UoY29sb25hcnJfZ3N1KSwwLDAs
TlVMTCxDLE5VTEwsMH0KLUlQREVGOCgiQ0RQQVRIIiwgJmNkcGF0aCwgImNkcGF0aCIsIFBNX1RJ
RUQpLAotSVBERUY4KCJGSUdOT1JFIiwgJmZpZ25vcmUsICJmaWdub3JlIiwgUE1fVElFRCksCi1J
UERFRjgoIkZQQVRIIiwgJmZwYXRoLCAiZnBhdGgiLCBQTV9USUVEKSwKLUlQREVGOCgiTUFJTFBB
VEgiLCAmbWFpbHBhdGgsICJtYWlscGF0aCIsIFBNX1RJRUQpLAotSVBERUY4KCJQQVRIIiwgJnBh
dGgsICJwYXRoIiwgUE1fVElFRCksCi1JUERFRjgoIlBTVkFSIiwgJnBzdmFyLCAicHN2YXIiLCBQ
TV9USUVEKSwKLUlQREVGOCgiWlNIX0VWQUxfQ09OVEVYVCIsICZ6c2hfZXZhbF9jb250ZXh0LCAi
enNoX2V2YWxfY29udGV4dCIsIFBNX1JFQURPTkxZX1NQRUNJQUx8UE1fVElFRCksCi0KLS8qIE1P
RFVMRV9QQVRIIGlzIG5vdCBpbXBvcnRlZCBmb3Igc2VjdXJpdHkgcmVhc29ucyAqLwotSVBERUY4
KCJNT0RVTEVfUEFUSCIsICZtb2R1bGVfcGF0aCwgIm1vZHVsZV9wYXRoIiwgUE1fRE9OVElNUE9S
VHxQTV9USUVEKSwKKyAgICBST1ZBUl9JTlRQTSgiISIsICZsYXN0cGlkLCAwKSwKKyAgICBST1ZB
Ul9JTlRQTSgiJCIsICZteXBpZCwgMCksCisgICAgUk9WQVJfSU5UUE0oIj8iLCAmbGFzdHZhbCwg
MCksCisgICAgUk9WQVJfSU5UUE0oIkhJU1RDTUQiLCAmY3VyaGlzdCwgMCksCisgICAgUk9WQVJf
SU5UUE0oIkxJTkVOTyIsICZsaW5lbm8sIDApLAorICAgIFJPVkFSX0lOVFBNKCJQUElEIiwgJnBw
aWQsIDApLAorICAgIFJPVkFSX0lOVFBNKCJaU0hfU1VCU0hFTEwiLCAmenNoX3N1YnNoZWxsLCAw
KSwKKworICAgIElOVFBNKCJDT0xVTU5TIiwgJnp0ZXJtX2NvbHVtbnMsIHpsZXZhcl9nc3UsIDAp
LAorICAgIElOVFBNKCJMSU5FUyIsICZ6dGVybV9saW5lcywgemxldmFyX2dzdSwgMCksCisgICAg
SU5UUE0oIlpMRV9SUFJPTVBUX0lOREVOVCIsICZycHJvbXB0X2luZGVudCwgcnByb21wdF9pbmRl
bnRfZ3N1LCBQTV9VTlNFVCksCisgICAgVkFSX0lOVFBNKCJTSExWTCIsICZzaGx2bCwgMCksCisg
ICAgVkFSX0lOVFBNKCJGVU5DTkVTVCIsICZ6c2hfZnVuY25lc3QsIDApLAorCisgICAgLyogRG9u
J3QgaW1wb3J0IGludGVybmFsIGludGVnZXIgc3RhdHVzIHZhcmlhYmxlcy4gKi8KKyAgICBWQVJf
SU5UUE0oIk9QVElORCIsICZ6b3B0aW5kLCBQTV9ET05USU1QT1JUKSwKKyAgICBWQVJfSU5UUE0o
IlRSWV9CTE9DS19FUlJPUiIsICZ0cnlfZXJyZmxhZywgUE1fRE9OVElNUE9SVCksCisgICAgVkFS
X0lOVFBNKCJUUllfQkxPQ0tfSU5URVJSVVBUIiwgJnRyeV9pbnRlcnJ1cHQsIFBNX0RPTlRJTVBP
UlQpLAorCisgICAgVkFSX1NUUlBNKCJPUFRBUkciLCAmem9wdGFyZywgMCksCisgICAgVkFSX1NU
UlBNKCJOVUxMQ01EIiwgJm51bGxjbWQsIDApLAorICAgIFZBUl9TVFJQTSgiUE9TVEVESVQiLCAm
cG9zdGVkaXQsIFBNX1VOU0VUKSwKKyAgICBWQVJfU1RSUE0oIlJFQUROVUxMQ01EIiwgJnJlYWRu
dWxsY21kLCAwKSwKKyAgICBWQVJfU1RSUE0oIlBTMSIsICZwcm9tcHQsIDApLAorICAgIFZBUl9T
VFJQTSgiUlBTMSIsICZycHJvbXB0LCBQTV9VTlNFVCksCisgICAgVkFSX1NUUlBNKCJSUFJPTVBU
IiwgJnJwcm9tcHQsIFBNX1VOU0VUKSwKKyAgICBWQVJfU1RSUE0oIlBTMiIsICZwcm9tcHQyLCAw
KSwKKyAgICBWQVJfU1RSUE0oIlJQUzIiLCAmcnByb21wdDIsIFBNX1VOU0VUKSwKKyAgICBWQVJf
U1RSUE0oIlJQUk9NUFQyIiwgJnJwcm9tcHQyLCBQTV9VTlNFVCksCisgICAgVkFSX1NUUlBNKCJQ
UzMiLCAmcHJvbXB0MywgMCksCisgICAgVkFSX1NUUlBNKCJQUzQiLCAmcHJvbXB0NCwgUE1fRE9O
VElNUE9SVF9TVUlEKSwKKyAgICBWQVJfU1RSUE0oIlNQUk9NUFQiLCAmc3Byb21wdCwgMCksCisK
KyAgICBWQVJfQVJSUE0oIioiLCAmcHBhcmFtcywgUE1fUkVBRE9OTFlfU1BFQ0lBTCksCisgICAg
VkFSX0FSUlBNKCJAIiwgJnBwYXJhbXMsIFBNX1JFQURPTkxZX1NQRUNJQUwpLAorCisgICAgLyog
RW5kIG9mIHBhcmFtZXRlcnMgYXZhaWxhYmxlIGluIGFsbCBlbXVsYXRpb25zICovCisgICAgTlVM
TF9QTSwKKworICAgIFRJRURfU1RSUE0oIkNEUEFUSCIsICZjZHBhdGgsICJjZHBhdGgiLCBQTV9U
SUVEKSwKKyAgICBUSUVEX1NUUlBNKCJGSUdOT1JFIiwgJmZpZ25vcmUsICJmaWdub3JlIiwgUE1f
VElFRCksCisgICAgVElFRF9TVFJQTSgiRlBBVEgiLCAmZnBhdGgsICJmcGF0aCIsIFBNX1RJRUQp
LAorICAgIFRJRURfU1RSUE0oIk1BSUxQQVRIIiwgJm1haWxwYXRoLCAibWFpbHBhdGgiLCBQTV9U
SUVEKSwKKyAgICBUSUVEX1NUUlBNKCJQQVRIIiwgJnBhdGgsICJwYXRoIiwgUE1fVElFRCksCisg
ICAgVElFRF9TVFJQTSgiUFNWQVIiLCAmcHN2YXIsICJwc3ZhciIsIFBNX1RJRUQpLAorICAgIFRJ
RURfU1RSUE0oIlpTSF9FVkFMX0NPTlRFWFQiLCAmenNoX2V2YWxfY29udGV4dCwgInpzaF9ldmFs
X2NvbnRleHQiLAorCSAgICAgICBQTV9SRUFET05MWV9TUEVDSUFMfFBNX1RJRUQpLAorCisgICAg
LyogTU9EVUxFX1BBVEggaXMgbm90IGltcG9ydGVkIGZvciBzZWN1cml0eSByZWFzb25zICovCisg
ICAgVElFRF9TVFJQTSgiTU9EVUxFX1BBVEgiLCAmbW9kdWxlX3BhdGgsICJtb2R1bGVfcGF0aCIs
CisJICAgICAgIFBNX0RPTlRJTVBPUlR8UE1fVElFRCksCiAKLSNkZWZpbmUgSVBERUYxMChBLEIp
IHt7TlVMTCxBLFBNX0FSUkFZfFBNX1NQRUNJQUx9LEJSKE5VTEwpLEdTVShCKSwxMCwwLE5VTEws
TlVMTCxOVUxMLDB9Ci0KLS8qCi0gKiBUaGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgYXJlIG5vdCBh
dmFpbGFibGUgaW4gc2gva3NoIGNvbXBhdGliaWxpdHkgKgotICogbW9kZS4KLSAqLworICAgIC8q
CisgICAgICogVGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGFyZSBub3QgYXZhaWxhYmxlIGluIHNo
L2tzaCBjb21wYXRpYmlsaXR5ICoKKyAgICAgKiBtb2RlLgorICAgICAqLwogCi0vKiBBbGwgb2Yg
dGhlc2UgaGF2ZSBzaCBjb21wYXRpYmxlIGVxdWl2YWxlbnRzLiAgICAgICAgICAgICAgICAqLwot
SVBERUYxKCJBUkdDIiwgYXJnY19nc3UsIFBNX1JFQURPTkxZX1NQRUNJQUwpLAotSVBERUYyKCJI
SVNUQ0hBUlMiLCBoaXN0Y2hhcnNfZ3N1LCBQTV9ET05USU1QT1JUKSwKLUlQREVGNCgic3RhdHVz
IiwgJmxhc3R2YWwpLAotSVBERUY3KCJwcm9tcHQiLCAmcHJvbXB0KSwKLUlQREVGNygiUFJPTVBU
IiwgJnByb21wdCksCi1JUERFRjcoIlBST01QVDIiLCAmcHJvbXB0MiksCi1JUERFRjcoIlBST01Q
VDMiLCAmcHJvbXB0MyksCi1JUERFRjcoIlBST01QVDQiLCAmcHJvbXB0NCksCi1JUERFRjgoIk1B
TlBBVEgiLCAmbWFucGF0aCwgIm1hbnBhdGgiLCBQTV9USUVEKSwKLUlQREVGOSgiYXJndiIsICZw
cGFyYW1zLCBOVUxMLCAwKSwKLUlQREVGOSgiZmlnbm9yZSIsICZmaWdub3JlLCAiRklHTk9SRSIs
IFBNX1RJRUQpLAotSVBERUY5KCJjZHBhdGgiLCAmY2RwYXRoLCAiQ0RQQVRIIiwgUE1fVElFRCks
Ci1JUERFRjkoImZwYXRoIiwgJmZwYXRoLCAiRlBBVEgiLCBQTV9USUVEKSwKLUlQREVGOSgibWFp
bHBhdGgiLCAmbWFpbHBhdGgsICJNQUlMUEFUSCIsIFBNX1RJRUQpLAotSVBERUY5KCJtYW5wYXRo
IiwgJm1hbnBhdGgsICJNQU5QQVRIIiwgUE1fVElFRCksCi1JUERFRjkoInBzdmFyIiwgJnBzdmFy
LCAiUFNWQVIiLCBQTV9USUVEKSwKLQotSVBERUY5KCJ6c2hfZXZhbF9jb250ZXh0IiwgJnpzaF9l
dmFsX2NvbnRleHQsICJaU0hfRVZBTF9DT05URVhUIiwgUE1fVElFRHxQTV9SRUFET05MWV9TUEVD
SUFMKSwKLQotSVBERUY5KCJtb2R1bGVfcGF0aCIsICZtb2R1bGVfcGF0aCwgIk1PRFVMRV9QQVRI
IiwgUE1fVElFRCksCi1JUERFRjkoInBhdGgiLCAmcGF0aCwgIlBBVEgiLCBQTV9USUVEKSwKLQot
LyogVGhlc2UgYXJlIGtub3duIHRvIHpzaCBhbG9uZS4gKi8KLQotSVBERUYxMCgicGlwZXN0YXR1
cyIsIHBpcGVzdGF0dXNfZ3N1KSwKLQote3tOVUxMLE5VTEwsMH0sQlIoTlVMTCksTlVMTF9HU1Us
MCwwLE5VTEwsTlVMTCxOVUxMLDB9LAorICAgIC8qIEFsbCBvZiB0aGVzZSBoYXZlIHNoIGNvbXBh
dGlibGUgZXF1aXZhbGVudHMuICovCisgICAgSU5UUE0oIkFSR0MiLCBOVUxMLCBhcmdjX2dzdSwg
UE1fUkVBRE9OTFlfU1BFQ0lBTCksCisgICAgU1RSUE0oIkhJU1RDSEFSUyIsIE5VTEwsIGhpc3Rj
aGFyc19nc3UsIFBNX0RPTlRJTVBPUlQpLAorICAgIFJPVkFSX0lOVFBNKCJzdGF0dXMiLCAmbGFz
dHZhbCwgMCksCisgICAgVkFSX1NUUlBNKCJwcm9tcHQiLCAmcHJvbXB0LCAwKSwKKyAgICBWQVJf
U1RSUE0oIlBST01QVCIsICZwcm9tcHQsIDApLAorICAgIFZBUl9TVFJQTSgiUFJPTVBUMiIsICZw
cm9tcHQyLCAwKSwKKyAgICBWQVJfU1RSUE0oIlBST01QVDMiLCAmcHJvbXB0MywgMCksCisgICAg
VkFSX1NUUlBNKCJQUk9NUFQ0IiwgJnByb21wdDQsIDApLAorICAgIFRJRURfU1RSUE0oIk1BTlBB
VEgiLCAmbWFucGF0aCwgIm1hbnBhdGgiLCBQTV9USUVEKSwKKyAgICBWQVJfQVJSUE0oImFyZ3Yi
LCAmcHBhcmFtcywgMCksCisgICAgVElFRF9BUlJQTSgiZmlnbm9yZSIsICZmaWdub3JlLCAiRklH
Tk9SRSIsIDApLAorICAgIFRJRURfQVJSUE0oImNkcGF0aCIsICZjZHBhdGgsICJDRFBBVEgiLCAw
KSwKKyAgICBUSUVEX0FSUlBNKCJmcGF0aCIsICZmcGF0aCwgIkZQQVRIIiwgMCksCisgICAgVElF
RF9BUlJQTSgibWFpbHBhdGgiLCAmbWFpbHBhdGgsICJNQUlMUEFUSCIsIDApLAorICAgIFRJRURf
QVJSUE0oIm1hbnBhdGgiLCAmbWFucGF0aCwgIk1BTlBBVEgiLCAwKSwKKyAgICBUSUVEX0FSUlBN
KCJwc3ZhciIsICZwc3ZhciwgIlBTVkFSIiwgMCksCisKKyAgICBUSUVEX0FSUlBNKCJ6c2hfZXZh
bF9jb250ZXh0IiwgJnpzaF9ldmFsX2NvbnRleHQsICJaU0hfRVZBTF9DT05URVhUIiwKKwkgICAg
ICAgUE1fUkVBRE9OTFlfU1BFQ0lBTCksCisKKyAgICBUSUVEX0FSUlBNKCJtb2R1bGVfcGF0aCIs
ICZtb2R1bGVfcGF0aCwgIk1PRFVMRV9QQVRIIiwgMCksCisgICAgVElFRF9BUlJQTSgicGF0aCIs
ICZwYXRoLCAiUEFUSCIsIDApLAorCisgICAgLyogVGhlc2UgYXJlIGtub3duIHRvIHpzaCBhbG9u
ZS4gKi8KKworICAgIFBNKCJwaXBlc3RhdHVzIiwgTlVMTCwgcGlwZXN0YXR1c19nc3UsIFBNX0FS
UkFZLCAxMCwgTlVMTCksCisKKyAgICBOVUxMX1BNLAogfTsKIAogLyoKQEAgLTQ1MiwxOCArNDY5
LDE4IEBAIElQREVGMTAoInBpcGVzdGF0dXMiLCBwaXBlc3RhdHVzX2dzdSksCiAgKiBzaCBlbXVs
YXRpb24uICBUaGVzZSBkb24ndCBsaW5rIHRvIHRoZSBhcnJheSB2ZXJzaW9ucy4KICAqLwogc3Rh
dGljIGluaXRwYXJhbSBzcGVjaWFsX3BhcmFtc19zaFtdID0gewotSVBERUY4KCJDRFBBVEgiLCAm
Y2RwYXRoLCBOVUxMLCAwKSwKLUlQREVGOCgiRklHTk9SRSIsICZmaWdub3JlLCBOVUxMLCAwKSwK
LUlQREVGOCgiRlBBVEgiLCAmZnBhdGgsIE5VTEwsIDApLAotSVBERUY4KCJNQUlMUEFUSCIsICZt
YWlscGF0aCwgTlVMTCwgMCksCi1JUERFRjgoIlBBVEgiLCAmcGF0aCwgTlVMTCwgMCksCi1JUERF
RjgoIlBTVkFSIiwgJnBzdmFyLCBOVUxMLCAwKSwKLUlQREVGOCgiWlNIX0VWQUxfQ09OVEVYVCIs
ICZ6c2hfZXZhbF9jb250ZXh0LCBOVUxMLCBQTV9SRUFET05MWV9TUEVDSUFMKSwKLQotLyogTU9E
VUxFX1BBVEggaXMgbm90IGltcG9ydGVkIGZvciBzZWN1cml0eSByZWFzb25zICovCi1JUERFRjgo
Ik1PRFVMRV9QQVRIIiwgJm1vZHVsZV9wYXRoLCBOVUxMLCBQTV9ET05USU1QT1JUKSwKLQote3tO
VUxMLE5VTEwsMH0sQlIoTlVMTCksTlVMTF9HU1UsMCwwLE5VTEwsTlVMTCxOVUxMLDB9LAorICAg
IENPTE9OQVJSX1NUUlBNKCJDRFBBVEgiLCAmY2RwYXRoLCAwKSwKKyAgICBDT0xPTkFSUl9TVFJQ
TSgiRklHTk9SRSIsICZmaWdub3JlLCAwKSwKKyAgICBDT0xPTkFSUl9TVFJQTSgiRlBBVEgiLCAm
ZnBhdGgsIDApLAorICAgIENPTE9OQVJSX1NUUlBNKCJNQUlMUEFUSCIsICZtYWlscGF0aCwgMCks
CisgICAgQ09MT05BUlJfU1RSUE0oIlBBVEgiLCAmcGF0aCwgMCksCisgICAgQ09MT05BUlJfU1RS
UE0oIlBTVkFSIiwgJnBzdmFyLCAwKSwKKyAgICBDT0xPTkFSUl9TVFJQTSgiWlNIX0VWQUxfQ09O
VEVYVCIsICZ6c2hfZXZhbF9jb250ZXh0LCBQTV9SRUFET05MWV9TUEVDSUFMKSwKKworICAgIC8q
IE1PRFVMRV9QQVRIIGlzIG5vdCBpbXBvcnRlZCBmb3Igc2VjdXJpdHkgcmVhc29ucyAqLworICAg
IENPTE9OQVJSX1NUUlBNKCJNT0RVTEVfUEFUSCIsICZtb2R1bGVfcGF0aCwgUE1fRE9OVElNUE9S
VCksCisKKyAgICBOVUxMX1BNLAogfTsKIAogLyoKQEAgLTQ3MSw5ICs0ODgsOSBAQCBJUERFRjgo
Ik1PRFVMRV9QQVRIIiwgJm1vZHVsZV9wYXRoLCBOVUxMLCBQTV9ET05USU1QT1JUKSwKICAqIGFu
ZCAkQCwgdGhpcyBpcyBub3QgcmVhZG9ubHkuICBUaGlzIHBhcmFtZXRlciBpcyBub3QgZGlyZWN0
bHkKICAqIHZpc2libGUgaW4gdXNlciBzcGFjZS4KICAqLwotc3RhdGljIGluaXRwYXJhbSBhcmd2
cGFyYW1fcG0gPSBJUERFRjkoIiIsICZwcGFyYW1zLCBOVUxMLCBcCi0JCQkJIFBNX0FSUkFZfFBN
X1NQRUNJQUx8UE1fRE9OVElNUE9SVCk7CitzdGF0aWMgaW5pdHBhcmFtIGFyZ3ZwYXJhbV9wbSA9
IFZBUl9BUlJQTSgiIiwgJnBwYXJhbXMsIDApOwogCisjdW5kZWYgUE0KICN1bmRlZiBCUgogCiAj
ZGVmaW5lIElTX1VOU0VUX1ZBTFVFKFYpIFwK
--000000000000027af606573ad52f--