Subject: Re: documentation for in-tree autoconf & wrapper
To: Patrick Welche <prlw1@newn.cam.ac.uk>
From: Blair Sadewitz <blair.sadewitz@gmail.com>
List: current-users
Date: 01/08/2007 17:10:41
------=_Part_24103_28969602.1168294241448
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 1/8/07, Patrick Welche <prlw1@newn.cam.ac.uk> wrote:
>
> no no no :-) (BTW, I'm doing the opposite at the moment: replacing
> mozilla/js/src/Makefile.ref with configure.ac/Makefile.am ;-) )

Heh.  It would be great if there were a set of tools to facilitate
this.  Sure, you can do a lot of it using only what's included in the
NetBSD distribution, but with fine-grained control over the automation
of these tasks, one could do some pretty cool things (does that give
me away as nerd or what?  Heh, at least it doesn't have a pejorative
connotation these days).  I'd have to call it either 'automagic' or
'autoauto'.


>
> That's why I was wondering whether everthing had to be done at
> once.  e.g., is libexpat in xorg really that different from libexpat
> in xfree?

You've hit the crux of the issue here.  Xorg is not monolithic these
days.  The tree is actually a set of 6.23*10^23 discrete modules, each
with its own autotools setup.  The server still looks refreshingly
monolithic despite their best attempts. ;)

Modular Xorg does not include any third-party libraries in their tree.
It is now up to you to upgrade and downgrade by minor and teeny
version numbers and patchlevels until you find something that works.
If you get up the gumption to build their HEAD tree (currently its
wscons support is 25% missing and 100% broken--I dont even want to go
into what I had to do to get it to build).

> X11SRCDIR as one converted individual Makfiles? or are xorg/xfree
> not as compatible as I imagine? (That is the "userland" - the
> Xserver I believe is quite different..)

They are absolutely dialectial opposites vis a vis build system and
layout.  Hegel would be proud.
It is also easier to read _The Phenomenology of Spirit_ than it is to
work on modular Xorg, it seems.

>
> Is there some branch of on-going work one could try?

If you mean in our tree, that's what I'm hoping will get created soon.
 Poke Michael to import X11R7.2-RC3. ;)

On another note, I think I have a grasp on how we should start doing this.

1) Cull build flags from xtrans and xproto.  Those two seem
responsible for a lot of the common build flags, viz. common in the
XFree86 sense, like -DHAS_FCHOWN and -DHAS_STICKY_BIT (or whatever).
A lot of this could easily be parsed out of xtrans's pkgconfig file
and/or autotools files quite easily.  One may glean which modules
others depend on for configuration by examining the order in which
their build.sh script builds them and noting the comments therein.

2) Parse individual .pc files for build flags.

and, as a complimentary strategy (in addition to looking through
makefiles, doing global brute-force searches, etc):

3) Log a build of the whole tree, grep/awk/etc out the relevant (-D,
etc) flags, and compare to what we came up with using other
methodologies.

For your information and entertainment, I attached a diff of every
place where _BSD_SOURCE must be changed to _NETBSD_SOURCE.  The .in
files and, AFAIK, headers may be generated using xtrans.pc, but I
think everything else must be individually patched.  Perhaps we could
add _BSD_SOURCE to our headers? It makes me cringe to say that, but
_NETBSD_SOURCE and _BSD_SOURCE are ultimately both fundamentally
arbitrary, so maybe we could give in just this once. ;)

Any other ideas/comments/suggestions?

Regards,


--Blair


-- 
Support WFMU-FM: free-form radio for the masses!

<http://www.wfmu.org/>
91.1 FM Jersey City, NJ
90.1 FM Mt. Hope, NY

"The Reggae Schoolroom":
<http://www.wfmu.org/playlists/RS/>

------=_Part_24103_28969602.1168294241448
Content-Type: application/octet-stream; name="netbsd_source.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="netbsd_source.diff"

LS0tIC4vZm9udHRvc2ZudC0xLjAuMi9NYWtlZmlsZS5hbS5vcmlnCTIwMDctMDEtMDggMTY6MjY6
MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL2ZvbnR0b3NmbnQtMS4wLjIvTWFrZWZpbGUuYW0JMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTIxLDcgKzIxLDcgQEAKIAogYmlu
X1BST0dSQU1TID0gZm9udHRvc2ZudAogCi1mb250dG9zZm50X0NGTEFHUyA9IC1EWFZFTkRPUk5B
TUU9XCJYLm9yZ1wgRm91bmRhdGlvblwiICQoRk9OVFRPU0ZOVF9DRkxBR1MpIC1EWFZFTkRPUk5B
TUVTSE9SVD1cIlgub3JnXCIgLURfQlNEX1NPVVJDRQorZm9udHRvc2ZudF9DRkxBR1MgPSAtRFhW
RU5ET1JOQU1FPVwiWC5vcmdcIEZvdW5kYXRpb25cIiAkKEZPTlRUT1NGTlRfQ0ZMQUdTKSAtRFhW
RU5ET1JOQU1FU0hPUlQ9XCJYLm9yZ1wiIC1EX05FVEJTRF9TT1VSQ0UKIGZvbnR0b3NmbnRfTERB
REQgPSAkKEZPTlRUT1NGTlRfTElCUykgLWxtCiAKIGZvbnR0b3NmbnRfU09VUkNFUyA9CVwKLS0t
IC4vZm9udHRvc2ZudC0xLjAuMi9NYWtlZmlsZS5pbi5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDgu
MDAwMDAwMDAwIC0wNTAwCisrKyAuL2ZvbnR0b3NmbnQtMS4wLjIvTWFrZWZpbGUuaW4JMjAwNy0w
MS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTIxOCw3ICsyMTgsNyBAQAogdGFyZ2V0
X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKIGZvbnR0b3NmbnRfQ0ZMQUdTID0gLURYVkVORE9STkFN
RT1cIlgub3JnXCBGb3VuZGF0aW9uXCIgXAogCSQoRk9OVFRPU0ZOVF9DRkxBR1MpIC1EWFZFTkRP
Uk5BTUVTSE9SVD1cIlgub3JnXCIgXAotCS1EX0JTRF9TT1VSQ0UgJChhbV9fYXBwZW5kXzIpCisJ
LURfTkVUQlNEX1NPVVJDRSAkKGFtX19hcHBlbmRfMikKIGZvbnR0b3NmbnRfTERBREQgPSAkKEZP
TlRUT1NGTlRfTElCUykgLWxtCiBmb250dG9zZm50X1NPVVJDRVMgPSBmb250dG9zZm50LmMgZm9u
dHRvc2ZudC5oIHJlYWQuYyBzdHJ1Y3QuYyB1dGlsLmMgXAogCXdyaXRlLmMgJChhbV9fYXBwZW5k
XzEpCi0tLSAuL2xieHByb3h5LTEuMC4xL01ha2VmaWxlLmFtLm9yaWcJMjAwNy0wMS0wOCAxNjoy
NjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4vbGJ4cHJveHktMS4wLjEvTWFrZWZpbGUuYW0JMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTIzLDcgKzIzLDcgQEAKIAogbGJ4
cHJveHlfQ0ZMQUdTID0gJChMQlhQUk9YWV9DRkxBR1MpIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRl
CVwKIAktRERFRl9BVE9NU19GSUxFPVwiJChsaWJkaXIpL1gxMS9sYnhwcm94eS9BdG9tQ29udHJv
bFwiIFwKLQktRF9CU0RfU09VUkNFIC1ETEJYUFJPWFlfdCAtRFRSQU5TX1NFUlZFUgorCS1EX05F
VEJTRF9TT1VSQ0UgLURMQlhQUk9YWV90IC1EVFJBTlNfU0VSVkVSCiAKIGxieHByb3h5X0xEQURE
ID0gJChMQlhQUk9YWV9MSUJTKQogCi0tLSAuL2xieHByb3h5LTEuMC4xL01ha2VmaWxlLmluLm9y
aWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4vbGJ4cHJveHktMS4w
LjEvTWFrZWZpbGUuaW4JMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTE1
NSw3ICsxNTUsNyBAQAogCiBsYnhwcm94eV9DRkxBR1MgPSAkKExCWFBST1hZX0NGTEFHUykgLUkk
KHRvcF9zcmNkaXIpL2luY2x1ZGUJXAogCS1EREVGX0FUT01TX0ZJTEU9XCIkKGxpYmRpcikvWDEx
L2xieHByb3h5L0F0b21Db250cm9sXCIgXAotCS1EX0JTRF9TT1VSQ0UgLURMQlhQUk9YWV90IC1E
VFJBTlNfU0VSVkVSCisJLURfTkVUQlNEX1NPVVJDRSAtRExCWFBST1hZX3QgLURUUkFOU19TRVJW
RVIKIAogCiBsYnhwcm94eV9MREFERCA9ICQoTEJYUFJPWFlfTElCUykKLS0tIC4vbGliWDExLTEu
MS4xL21vZHVsZXMvaW0veGltY3AvTWFrZWZpbGUuYW0ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4
LjAwMDAwMDAwMCAtMDUwMAorKysgLi9saWJYMTEtMS4xLjEvbW9kdWxlcy9pbS94aW1jcC9NYWtl
ZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtOSw3ICs5LDcg
QEAKIAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxB
R1MpIFwKLQktRF9CU0RfU09VUkNFIC1EWElNX3QgLURUUkFOU19DTElFTlQgXAorCS1EX05FVEJT
RF9TT1VSQ0UgLURYSU1fdCAtRFRSQU5TX0NMSUVOVCBcCiAJJChNQUxMT0NfWkVST19DRkxBR1Mp
CiAKIGlmIFhMSUJfTE9BREFCTEVfSTE4TgotLS0gLi9saWJYMTEtMS4xLjEvbW9kdWxlcy9pbS94
aW1jcC9NYWtlZmlsZS5pbi5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAw
CisrKyAuL2xpYlgxMS0xLjEuMS9tb2R1bGVzL2ltL3hpbWNwL01ha2VmaWxlLmluCTIwMDctMDEt
MDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0yNzcsNyArMjc3LDcgQEAKIAkkKFgxMV9D
RkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxBR1MpIFwKLQktRF9C
U0RfU09VUkNFIC1EWElNX3QgLURUUkFOU19DTElFTlQgXAorCS1EX05FVEJTRF9TT1VSQ0UgLURY
SU1fdCAtRFRSQU5TX0NMSUVOVCBcCiAJJChNQUxMT0NfWkVST19DRkxBR1MpCiAKIEBYTElCX0xP
QURBQkxFX0kxOE5fVFJVRUBjb21tb25saWJkaXIgPSAkKFgxMV9MT0NBTEVMSUJESVIpL2NvbW1v
bgotLS0gLi9saWJYMTEtMS4xLjEvbW9kdWxlcy9sYy9VdGY4L01ha2VmaWxlLmFtLm9yaWcJMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4vbGliWDExLTEuMS4xL21vZHVs
ZXMvbGMvVXRmOC9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUw
MApAQCAtOSw3ICs5LDcgQEAKIAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBc
CiAJJChYRE1DUF9DRkxBR1MpIFwKLQktRF9CU0RfU09VUkNFIFwKKwktRF9ORVRCU0RfU09VUkNF
IFwKIAkkKE1BTExPQ19aRVJPX0NGTEFHUykKIAogaWYgWExJQl9MT0FEQUJMRV9JMThOCi0tLSAu
L2xpYlgxMS0xLjEuMS9tb2R1bGVzL2xjL1V0ZjgvTWFrZWZpbGUuaW4ub3JpZwkyMDA3LTAxLTA4
IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi9saWJYMTEtMS4xLjEvbW9kdWxlcy9sYy9V
dGY4L01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0y
NjgsNyArMjY4LDcgQEAKIAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJ
JChYRE1DUF9DRkxBR1MpIFwKLQktRF9CU0RfU09VUkNFIFwKKwktRF9ORVRCU0RfU09VUkNFIFwK
IAkkKE1BTExPQ19aRVJPX0NGTEFHUykKIAogQFhMSUJfTE9BREFCTEVfSTE4Tl9UUlVFQGNvbW1v
bmxpYmRpciA9ICQoWDExX0xPQ0FMRUxJQkRJUikvY29tbW9uCi0tLSAuL2xpYlgxMS0xLjEuMS9t
b2R1bGVzL2xjL2RlZi9NYWtlZmlsZS5hbS5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAw
MDAwIC0wNTAwCisrKyAuL2xpYlgxMS0xLjEuMS9tb2R1bGVzL2xjL2RlZi9NYWtlZmlsZS5hbQky
MDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtOSw3ICs5LDcgQEAKIAkkKFgx
MV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxBR1MpIFwKLQkt
RF9CU0RfU09VUkNFCisJLURfTkVUQlNEX1NPVVJDRQogCiBpZiBYTElCX0xPQURBQkxFX0kxOE4K
IAotLS0gLi9saWJYMTEtMS4xLjEvbW9kdWxlcy9sYy9kZWYvTWFrZWZpbGUuaW4ub3JpZwkyMDA3
LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi9saWJYMTEtMS4xLjEvbW9kdWxl
cy9sYy9kZWYvTWFrZWZpbGUuaW4JMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAK
QEAgLTI2Nyw3ICsyNjcsNyBAQAogCSQoWDExX0NGTEFHUykgXAogCSQoQklHRk9OVF9DRkxBR1Mp
IFwKIAkkKFhETUNQX0NGTEFHUykgXAotCS1EX0JTRF9TT1VSQ0UKKwktRF9ORVRCU0RfU09VUkNF
CiAKIEBYTElCX0xPQURBQkxFX0kxOE5fVFJVRUBjb21tb25saWJkaXIgPSAkKFgxMV9MT0NBTEVM
SUJESVIpL2NvbW1vbgogQFhMSUJfTE9BREFCTEVfSTE4Tl9UUlVFQGNvbW1vbmxpYl9MVExJQlJB
UklFUyA9IHhsY0RlZi5sYQotLS0gLi9saWJYMTEtMS4xLjEvbW9kdWxlcy9sYy9nZW4vTWFrZWZp
bGUuYW0ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi9saWJY
MTEtMS4xLjEvbW9kdWxlcy9sYy9nZW4vTWFrZWZpbGUuYW0JMjAwNy0wMS0wOCAxNjoyNjowOC4w
MDAwMDAwMDAgLTA1MDAKQEAgLTksNyArOSw3IEBACiAJJChYMTFfQ0ZMQUdTKSBcCiAJJChCSUdG
T05UX0NGTEFHUykgXAogCSQoWERNQ1BfQ0ZMQUdTKSBcCi0JLURfQlNEX1NPVVJDRQorCS1EX05F
VEJTRF9TT1VSQ0UKIAogaWYgWExJQl9MT0FEQUJMRV9JMThOCiAKLS0tIC4vbGliWDExLTEuMS4x
L21vZHVsZXMvbGMvZ2VuL01ha2VmaWxlLmluLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAw
MDAwMDAgLTA1MDAKKysrIC4vbGliWDExLTEuMS4xL21vZHVsZXMvbGMvZ2VuL01ha2VmaWxlLmlu
CTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0yNjcsNyArMjY3LDcgQEAK
IAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxBR1Mp
IFwKLQktRF9CU0RfU09VUkNFCisJLURfTkVUQlNEX1NPVVJDRQogCiBAWExJQl9MT0FEQUJMRV9J
MThOX1RSVUVAY29tbW9ubGliZGlyID0gJChYMTFfTE9DQUxFTElCRElSKS9jb21tb24KIEBYTElC
X0xPQURBQkxFX0kxOE5fVFJVRUBjb21tb25saWJfTFRMSUJSQVJJRVMgPSB4bGliaTE4bi5sYQot
LS0gLi9saWJYMTEtMS4xLjEvbW9kdWxlcy9sYy94bG9jYWxlL01ha2VmaWxlLmFtLm9yaWcJMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4vbGliWDExLTEuMS4xL21vZHVs
ZXMvbGMveGxvY2FsZS9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAt
MDUwMApAQCAtOSw3ICs5LDcgQEAKIAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdT
KSBcCiAJJChYRE1DUF9DRkxBR1MpIFwKLQktRF9CU0RfU09VUkNFCisJLURfTkVUQlNEX1NPVVJD
RQogCiBpZiBYTElCX0xPQURBQkxFX0kxOE4KIAotLS0gLi9saWJYMTEtMS4xLjEvbW9kdWxlcy9s
Yy94bG9jYWxlL01ha2VmaWxlLmluLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAg
LTA1MDAKKysrIC4vbGliWDExLTEuMS4xL21vZHVsZXMvbGMveGxvY2FsZS9NYWtlZmlsZS5pbgky
MDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtMjY3LDcgKzI2Nyw3IEBACiAJ
JChYMTFfQ0ZMQUdTKSBcCiAJJChCSUdGT05UX0NGTEFHUykgXAogCSQoWERNQ1BfQ0ZMQUdTKSBc
Ci0JLURfQlNEX1NPVVJDRQorCS1EX05FVEJTRF9TT1VSQ0UKIAogQFhMSUJfTE9BREFCTEVfSTE4
Tl9UUlVFQGNvbW1vbmxpYmRpciA9ICQoWDExX0xPQ0FMRUxJQkRJUikvY29tbW9uCiBAWExJQl9M
T0FEQUJMRV9JMThOX1RSVUVAY29tbW9ubGliX0xUTElCUkFSSUVTID0geGxvY2FsZS5sYQotLS0g
Li9saWJYMTEtMS4xLjEvbW9kdWxlcy9vbS9nZW5lcmljL01ha2VmaWxlLmFtLm9yaWcJMjAwNy0w
MS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4vbGliWDExLTEuMS4xL21vZHVsZXMv
b20vZ2VuZXJpYy9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUw
MApAQCAtMTAsNyArMTAsNyBAQAogCSQoWDExX0NGTEFHUykgXAogCSQoQklHRk9OVF9DRkxBR1Mp
IFwKIAkkKFhETUNQX0NGTEFHUykgXAotCS1EX0JTRF9TT1VSQ0UgXAorCS1EX05FVEJTRF9TT1VS
Q0UgXAogCSQoTUFMTE9DX1pFUk9fQ0ZMQUdTKQogCiBpZiBYTElCX0xPQURBQkxFX0kxOE4KLS0t
IC4vbGliWDExLTEuMS4xL21vZHVsZXMvb20vZ2VuZXJpYy9NYWtlZmlsZS5pbi5vcmlnCTIwMDct
MDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL2xpYlgxMS0xLjEuMS9tb2R1bGVz
L29tL2dlbmVyaWMvTWFrZWZpbGUuaW4JMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1
MDAKQEAgLTI3MSw3ICsyNzEsNyBAQAogCSQoWDExX0NGTEFHUykgXAogCSQoQklHRk9OVF9DRkxB
R1MpIFwKIAkkKFhETUNQX0NGTEFHUykgXAotCS1EX0JTRF9TT1VSQ0UgXAorCS1EX05FVEJTRF9T
T1VSQ0UgXAogCSQoTUFMTE9DX1pFUk9fQ0ZMQUdTKQogCiBAWExJQl9MT0FEQUJMRV9JMThOX1RS
VUVAY29tbW9ubGliZGlyID0gJChYMTFfTE9DQUxFTElCRElSKS9jb21tb24KLS0tIC4vbGliWDEx
LTEuMS4xL3NyYy9NYWtlZmlsZS5hbS5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAw
IC0wNTAwCisrKyAuL2xpYlgxMS0xLjEuMS9zcmMvTWFrZWZpbGUuYW0JMjAwNy0wMS0wOCAxNjoy
NjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTE5LDcgKzE5LDcgQEAKIAkkKFgxMV9DRkxBR1MpIFwK
IAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxBR1MpIFwKLQktRF9CU0RfU09VUkNF
IC1EWDExX3QgLURUUkFOU19DTElFTlQgXAorCS1EX05FVEJTRF9TT1VSQ0UgLURYMTFfdCAtRFRS
QU5TX0NMSUVOVCBcCiAJJChYTUFMTE9DX1pFUk9fQ0ZMQUdTKQogCiAjCi0tLSAuL2xpYlgxMS0x
LjEuMS9zcmMvTWFrZWZpbGUuaW4ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAt
MDUwMAorKysgLi9saWJYMTEtMS4xLjEvc3JjL01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6
MDguMDAwMDAwMDAwIC0wNTAwCkBAIC00MjAsNyArNDIwLDcgQEAKIAkkKFgxMV9DRkxBR1MpIFwK
IAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxBR1MpIFwKLQktRF9CU0RfU09VUkNF
IC1EWDExX3QgLURUUkFOU19DTElFTlQgXAorCS1EX05FVEJTRF9TT1VSQ0UgLURYMTFfdCAtRFRS
QU5TX0NMSUVOVCBcCiAJJChYTUFMTE9DX1pFUk9fQ0ZMQUdTKQogCiAKLS0tIC4vbGliWDExLTEu
MS4xL3NyYy94a2IvTWFrZWZpbGUuYW0ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAw
MCAtMDUwMAorKysgLi9saWJYMTEtMS4xLjEvc3JjL3hrYi9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4
IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtOSw3ICs5LDcgQEAKIAkkKFgxMV9DRkxBR1Mp
IFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxBR1MpIFwKLQktRF9CU0RfU09V
UkNFIFwKKwktRF9ORVRCU0RfU09VUkNFIFwKIAkkKFhNQUxMT0NfWkVST19DRkxBR1MpCiAKIG5v
aW5zdF9MVExJQlJBUklFUyA9IGxpYnhrYi5sYQotLS0gLi9saWJYMTEtMS4xLjEvc3JjL3hrYi9N
YWtlZmlsZS5pbi5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAu
L2xpYlgxMS0xLjEuMS9zcmMveGtiL01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6MDguMDAw
MDAwMDAwIC0wNTAwCkBAIC0yNTUsNyArMjU1LDcgQEAKIAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJ
R0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxBR1MpIFwKLQktRF9CU0RfU09VUkNFIFwKKwkt
RF9ORVRCU0RfU09VUkNFIFwKIAkkKFhNQUxMT0NfWkVST19DRkxBR1MpCiAKIG5vaW5zdF9MVExJ
QlJBUklFUyA9IGxpYnhrYi5sYQotLS0gLi9saWJYMTEtMS4xLjEvc3JjL3hjbXMvTWFrZWZpbGUu
YW0ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi9saWJYMTEt
MS4xLjEvc3JjL3hjbXMvTWFrZWZpbGUuYW0JMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAg
LTA1MDAKQEAgLTEyLDcgKzEyLDcgQEAKIAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZM
QUdTKSBcCiAJJChYRE1DUF9DRkxBR1MpIFwKLQktRF9CU0RfU09VUkNFIFwKKwktRF9ORVRCU0Rf
U09VUkNFIFwKIAkkKFhNQUxMT0NfWkVST19DRkxBR1MpCiAKIGxpYnhjbXNfbGFfU09VUkNFUyA9
IFwKLS0tIC4vbGliWDExLTEuMS4xL3NyYy94Y21zL01ha2VmaWxlLmluLm9yaWcJMjAwNy0wMS0w
OCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4vbGliWDExLTEuMS4xL3NyYy94Y21zL01h
a2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0yNzQsNyAr
Mjc0LDcgQEAKIAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1D
UF9DRkxBR1MpIFwKLQktRF9CU0RfU09VUkNFIFwKKwktRF9ORVRCU0RfU09VUkNFIFwKIAkkKFhN
QUxMT0NfWkVST19DRkxBR1MpCiAKIGxpYnhjbXNfbGFfU09VUkNFUyA9IFwKLS0tIC4vbGliWDEx
LTEuMS4xL3NyYy94bGliaTE4bi9NYWtlZmlsZS5hbS5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDgu
MDAwMDAwMDAwIC0wNTAwCisrKyAuL2xpYlgxMS0xLjEuMS9zcmMveGxpYmkxOG4vTWFrZWZpbGUu
YW0JMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTEwLDcgKzEwLDcgQEAK
IAkkKFgxMV9DRkxBR1MpIFwKIAkkKEJJR0ZPTlRfQ0ZMQUdTKSBcCiAJJChYRE1DUF9DRkxBR1Mp
IFwKLQktRF9CU0RfU09VUkNFIFwKKwktRF9ORVRCU0RfU09VUkNFIFwKIAkkKFhNQUxMT0NfWkVS
T19DRkxBR1MpCiAKIG5vaW5zdF9MVExJQlJBUklFUyA9IGxpYmkxOG4ubGEKLS0tIC4vbGliWDEx
LTEuMS4xL3NyYy94bGliaTE4bi9NYWtlZmlsZS5pbi5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDgu
MDAwMDAwMDAwIC0wNTAwCisrKyAuL2xpYlgxMS0xLjEuMS9zcmMveGxpYmkxOG4vTWFrZWZpbGUu
aW4JMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTI5MSw3ICsyOTEsNyBA
QAogCSQoWDExX0NGTEFHUykgXAogCSQoQklHRk9OVF9DRkxBR1MpIFwKIAkkKFhETUNQX0NGTEFH
UykgXAotCS1EX0JTRF9TT1VSQ0UgXAorCS1EX05FVEJTRF9TT1VSQ0UgXAogCSQoWE1BTExPQ19a
RVJPX0NGTEFHUykKIAogbm9pbnN0X0xUTElCUkFSSUVTID0gbGliaTE4bi5sYQotLS0gLi9saWJY
bXUtMS4wLjMvc3JjL01ha2VmaWxlLmFtLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAw
MDAgLTA1MDAKKysrIC4vbGliWG11LTEuMC4zL3NyYy9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2
OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtNSw3ICs1LDcgQEAKIEFNX0NGTEFHUyA9IFwKIAkt
SSR7dG9wX3NyY2Rpcn0vaW5jbHVkZSBcCiAJLUkke3RvcF9zcmNkaXJ9L2luY2x1ZGUvWDExL1ht
dSBcCi0JJChYTVVfQ0ZMQUdTKSAkKEJJVE1BUF9ERUZJTkVTKSAtRF9CU0RfU09VUkNFCisJJChY
TVVfQ0ZMQUdTKSAkKEJJVE1BUF9ERUZJTkVTKSAtRF9ORVRCU0RfU09VUkNFCiAKIGxpYlhtdV9s
YV9MREZMQUdTID0gLXZlcnNpb24tbnVtYmVyIDY6MjowIC1uby11bmRlZmluZWQKIGxpYlhtdXVf
bGFfTERGTEFHUyA9IC12ZXJzaW9uLW51bWJlciAxOjA6MCAtbm8tdW5kZWZpbmVkCi0tLSAuL2xp
YlhtdS0xLjAuMy9zcmMvTWFrZWZpbGUuaW4ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAw
MDAwMCAtMDUwMAorKysgLi9saWJYbXUtMS4wLjMvc3JjL01ha2VmaWxlLmluCTIwMDctMDEtMDgg
MTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0yMDgsNyArMjA4LDcgQEAKIEFNX0NGTEFHUyA9
IFwKIAktSSR7dG9wX3NyY2Rpcn0vaW5jbHVkZSBcCiAJLUkke3RvcF9zcmNkaXJ9L2luY2x1ZGUv
WDExL1htdSBcCi0JJChYTVVfQ0ZMQUdTKSAkKEJJVE1BUF9ERUZJTkVTKSAtRF9CU0RfU09VUkNF
CisJJChYTVVfQ0ZMQUdTKSAkKEJJVE1BUF9ERUZJTkVTKSAtRF9ORVRCU0RfU09VUkNFCiAKIGxp
YlhtdV9sYV9MREZMQUdTID0gLXZlcnNpb24tbnVtYmVyIDY6MjowIC1uby11bmRlZmluZWQKIGxp
YlhtdXVfbGFfTERGTEFHUyA9IC12ZXJzaW9uLW51bWJlciAxOjA6MCAtbm8tdW5kZWZpbmVkCi0t
LSAuL2xpYmxieHV0aWwtMS4wLjEvc3JjL2xieF96bGliL2xieF96bGliLmMub3JpZwkyMDA3LTAx
LTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi9saWJsYnh1dGlsLTEuMC4xL3NyYy9s
YnhfemxpYi9sYnhfemxpYi5jCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBA
IC01NSw3ICs1NSw3IEBACiAjaWZkZWYgV0lOMzIKICNkZWZpbmUgX1dJTExXSU5TT0NLXwogI2Vu
ZGlmCi0jZGVmaW5lIF9CU0RfU09VUkNFCisjZGVmaW5lIF9ORVRCU0RfU09VUkNFCiAjaW5jbHVk
ZSA8WDExL1hvcy5oPgogI2luY2x1ZGUgPFgxMS9YZnVuY3MuaD4KICNpbmNsdWRlIDxzdGRpby5o
PgotLS0gLi9saXN0cmVzLTEuMC4xL01ha2VmaWxlLmFtLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjow
OC4wMDAwMDAwMDAgLTA1MDAKKysrIC4vbGlzdHJlcy0xLjAuMS9NYWtlZmlsZS5hbQkyMDA3LTAx
LTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtMjEsNyArMjEsNyBAQAogCiBiaW5fUFJP
R1JBTVMgPSBsaXN0cmVzCiAKLWxpc3RyZXNfQ0ZMQUdTID0gJChMSVNUUkVTX0NGTEFHUykgLURf
QlNEX1NPVVJDRQorbGlzdHJlc19DRkxBR1MgPSAkKExJU1RSRVNfQ0ZMQUdTKSAtRF9ORVRCU0Rf
U09VUkNFCiBsaXN0cmVzX0xEQUREID0gJChMSVNUUkVTX0xJQlMpCiAKIGxpc3RyZXNfU09VUkNF
UyA9CVwKLS0tIC4vbGlzdHJlcy0xLjAuMS9NYWtlZmlsZS5pbi5vcmlnCTIwMDctMDEtMDggMTY6
MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL2xpc3RyZXMtMS4wLjEvTWFrZWZpbGUuaW4JMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTE1Nyw3ICsxNTcsNyBAQAogCiBi
aW5fUFJPR1JBTVMgPSBsaXN0cmVzCiAKLWxpc3RyZXNfQ0ZMQUdTID0gJChMSVNUUkVTX0NGTEFH
UykgLURfQlNEX1NPVVJDRQorbGlzdHJlc19DRkxBR1MgPSAkKExJU1RSRVNfQ0ZMQUdTKSAtRF9O
RVRCU0RfU09VUkNFCiBsaXN0cmVzX0xEQUREID0gJChMSVNUUkVTX0xJQlMpCiAKIGxpc3RyZXNf
U09VUkNFUyA9IFwKLS0tIC4vbWtmb250c2NhbGUtMS4wLjMvTWFrZWZpbGUuYW0ub3JpZwkyMDA3
LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi9ta2ZvbnRzY2FsZS0xLjAuMy9N
YWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtMjEsNyAr
MjEsNyBAQAogCiBiaW5fUFJPR1JBTVMgPSBta2ZvbnRzY2FsZQogCi1ta2ZvbnRzY2FsZV9DRkxB
R1MgPSBATUtGT05UU0NBTEVfQ0ZMQUdTQCBAWDExX0NGTEFHU0AgLURfQlNEX1NPVVJDRQorbWtm
b250c2NhbGVfQ0ZMQUdTID0gQE1LRk9OVFNDQUxFX0NGTEFHU0AgQFgxMV9DRkxBR1NAIC1EX05F
VEJTRF9TT1VSQ0UKIG1rZm9udHNjYWxlX0xEQUREICA9IEBNS0ZPTlRTQ0FMRV9MSUJTQAogCiBt
a2ZvbnRzY2FsZV9TT1VSQ0VTID0gXAotLS0gLi9ta2ZvbnRzY2FsZS0xLjAuMy9NYWtlZmlsZS5p
bi5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL21rZm9udHNj
YWxlLTEuMC4zL01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAw
CkBAIC0yMTksNyArMjE5LDcgQEAKIHNoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAog
c3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAogdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AK
LW1rZm9udHNjYWxlX0NGTEFHUyA9IEBNS0ZPTlRTQ0FMRV9DRkxBR1NAIEBYMTFfQ0ZMQUdTQCAt
RF9CU0RfU09VUkNFCitta2ZvbnRzY2FsZV9DRkxBR1MgPSBATUtGT05UU0NBTEVfQ0ZMQUdTQCBA
WDExX0NGTEFHU0AgLURfTkVUQlNEX1NPVVJDRQogbWtmb250c2NhbGVfTERBREQgPSBATUtGT05U
U0NBTEVfTElCU0AKIG1rZm9udHNjYWxlX1NPVVJDRVMgPSBcCiAJZGF0YS5oIFwKLS0tIC4vdHdt
LTEuMC4zL3NyYy9NYWtlZmlsZS5hbS5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAw
IC0wNTAwCisrKyAuL3R3bS0xLjAuMy9zcmMvTWFrZWZpbGUuYW0JMjAwNy0wMS0wOCAxNjoyNjow
OC4wMDAwMDAwMDAgLTA1MDAKQEAgLTI3LDcgKzI3LDcgQEAKIHJjZGlyID0gJHtkYXRhZGlyfS9Y
MTEvdHdtCiBkaXN0X3JjX0RBVEEgPSBzeXN0ZW0udHdtcmMKIAotdHdtX0NGTEFHUyA9ICQoVFdN
X0NGTEFHUykgLURYVkVORE9STkFNRT1cIlRoZVwgWC5PcmdcIEZvdW5kYXRpb25cIiAtRFhPUkdf
UkVMRUFTRT1cIlJlbGVhc2VcICQoVkVSU0lPTilcIiAtRF9CU0RfU09VUkNFCit0d21fQ0ZMQUdT
ID0gJChUV01fQ0ZMQUdTKSAtRFhWRU5ET1JOQU1FPVwiVGhlXCBYLk9yZ1wgRm91bmRhdGlvblwi
IC1EWE9SR19SRUxFQVNFPVwiUmVsZWFzZVwgJChWRVJTSU9OKVwiIC1EX05FVEJTRF9TT1VSQ0UK
IHR3bV9DRkxBR1MgKz0gLURTWVNURU1fSU5JVF9GSUxFPVwiJHtkYXRhZGlyfS9YMTEvdHdtL3N5
c3RlbS50d21yY1wiCiAKIHR3bV9MREFERCA9ICQoVFdNX0xJQlMpCi0tLSAuL3R3bS0xLjAuMy9z
cmMvTWFrZWZpbGUuaW4ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAor
KysgLi90d20tMS4wLjMvc3JjL01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAw
MDAwIC0wNTAwCkBAIC0yMTksNyArMjE5LDcgQEAKIHJjZGlyID0gJHtkYXRhZGlyfS9YMTEvdHdt
CiBkaXN0X3JjX0RBVEEgPSBzeXN0ZW0udHdtcmMKIHR3bV9DRkxBR1MgPSAkKFRXTV9DRkxBR1Mp
IC1EWFZFTkRPUk5BTUU9XCJUaGVcIFguT3JnXCBGb3VuZGF0aW9uXCIgXAotCS1EWE9SR19SRUxF
QVNFPVwiUmVsZWFzZVwgJChWRVJTSU9OKVwiIC1EX0JTRF9TT1VSQ0UgXAorCS1EWE9SR19SRUxF
QVNFPVwiUmVsZWFzZVwgJChWRVJTSU9OKVwiIC1EX05FVEJTRF9TT1VSQ0UgXAogCS1EU1lTVEVN
X0lOSVRfRklMRT1cIiR7ZGF0YWRpcn0vWDExL3R3bS9zeXN0ZW0udHdtcmNcIgogdHdtX0xEQURE
ID0gJChUV01fTElCUykKIHR3bV9TT1VSQ0VTID0gXAotLS0gLi94YmlmZi0xLjAuMS9NYWtlZmls
ZS5hbS5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL3hiaWZm
LTEuMC4xL01ha2VmaWxlLmFtCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBA
IC0yMSw3ICsyMSw3IEBACiAKIGJpbl9QUk9HUkFNUyA9IHhiaWZmCiAKLXhiaWZmX0NGTEFHUyA9
ICQoWEJJRkZfQ0ZMQUdTKSAtRF9CU0RfU09VUkNFCit4YmlmZl9DRkxBR1MgPSAkKFhCSUZGX0NG
TEFHUykgLURfTkVUQlNEX1NPVVJDRQogeGJpZmZfTERBREQgPSAkKFhCSUZGX0xJQlMpCiAKIHhi
aWZmX1NPVVJDRVMgPQlcCi0tLSAuL3hiaWZmLTEuMC4xL01ha2VmaWxlLmluLm9yaWcJMjAwNy0w
MS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veGJpZmYtMS4wLjEvTWFrZWZpbGUu
aW4JMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTE1Nyw3ICsxNTcsNyBA
QAogCiBiaW5fUFJPR1JBTVMgPSB4YmlmZgogCi14YmlmZl9DRkxBR1MgPSAkKFhCSUZGX0NGTEFH
UykgLURfQlNEX1NPVVJDRQoreGJpZmZfQ0ZMQUdTID0gJChYQklGRl9DRkxBR1MpIC1EX05FVEJT
RF9TT1VSQ0UKIHhiaWZmX0xEQUREID0gJChYQklGRl9MSUJTKQogCiB4YmlmZl9TT1VSQ0VTID0g
XAotLS0gLi94ZG0tMS4xLjIvY29uZmlndXJlLmFjLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4w
MDAwMDAwMDAgLTA1MDAKKysrIC4veGRtLTEuMS4yL2NvbmZpZ3VyZS5hYwkyMDA3LTAxLTA4IDE2
OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtMzkzLDcgKzM5Myw3IEBACiAjIENob29zZXIKICMK
IAotQ0hPT1NFUl9DRkxBR1M9Ii1EX0JTRF9TT1VSQ0UgJENIT09TRVJfQ0ZMQUdTICRYRE1fUFJJ
TlRfQ0ZMQUdTICRYTElCX0NGTEFHUyAkRE1DUF9DRkxBR1MgJEFVVEhfQ0ZMQUdTIgorQ0hPT1NF
Ul9DRkxBR1M9Ii1EX05FVEJTRF9TT1VSQ0UgJENIT09TRVJfQ0ZMQUdTICRYRE1fUFJJTlRfQ0ZM
QUdTICRYTElCX0NGTEFHUyAkRE1DUF9DRkxBR1MgJEFVVEhfQ0ZMQUdTIgogQ0hPT1NFUl9MSUJT
PSIkQ0hPT1NFUl9MSUJTICRYRE1fUFJJTlRfTElCUyAkRE1DUF9MSUJTIgogCiBBQ19TVUJTVChD
SE9PU0VSX0NGTEFHUykKLS0tIC4veGRtLTEuMS4yL01ha2VmaWxlLmFtLm9yaWcJMjAwNy0wMS0w
OCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veGRtLTEuMS4yL01ha2VmaWxlLmFtCTIw
MDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0zMCw3ICszMCw3IEBACiAjIHhk
bQogIwogCi14ZG1fQ0ZMQUdTID0gJChYRE1fQ0ZMQUdTKSAtRF9CU0RfU09VUkNFCit4ZG1fQ0ZM
QUdTID0gJChYRE1fQ0ZMQUdTKSAtRF9ORVRCU0RfU09VUkNFCiB4ZG1fTERBREQgPSAkKFhETV9M
SUJTKSAkKFhETV9MREZMQUdTKQogCiB4ZG1fU09VUkNFUyA9CVwKLS0tIC4veGRtLTEuMS4yL01h
a2VmaWxlLmluLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4v
eGRtLTEuMS4yL01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAw
CkBAIC0zODgsNyArMzg4LDcgQEAKICMKICMgeGRtCiAjCi14ZG1fQ0ZMQUdTID0gJChYRE1fQ0ZM
QUdTKSAtRF9CU0RfU09VUkNFICQoYW1fX2FwcGVuZF8xKSBcCit4ZG1fQ0ZMQUdTID0gJChYRE1f
Q0ZMQUdTKSAtRF9ORVRCU0RfU09VUkNFICQoYW1fX2FwcGVuZF8xKSBcCiAJJChhbV9fYXBwZW5k
XzQpICQoYW1fX2FwcGVuZF84KQogeGRtX0xEQUREID0gJChYRE1fTElCUykgJChYRE1fTERGTEFH
UykKIHhkbV9TT1VSQ0VTID0gYXV0aC5jIGRhZW1vbi5jIHNlcnZlci5jIGRweWxpc3QuYyBkbS5j
IGVycm9yLmMgZmlsZS5jIFwKLS0tIC4veGRtLTEuMS4yL2NvbmZpZ3VyZS5vcmlnCTIwMDctMDEt
MDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL3hkbS0xLjEuMi9jb25maWd1cmUJMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTI1MjkwLDcgKzI1MjkwLDcgQEAK
ICMgQ2hvb3NlcgogIwogCi1DSE9PU0VSX0NGTEFHUz0iLURfQlNEX1NPVVJDRSAkQ0hPT1NFUl9D
RkxBR1MgJFhETV9QUklOVF9DRkxBR1MgJFhMSUJfQ0ZMQUdTICRETUNQX0NGTEFHUyAkQVVUSF9D
RkxBR1MiCitDSE9PU0VSX0NGTEFHUz0iLURfTkVUQlNEX1NPVVJDRSAkQ0hPT1NFUl9DRkxBR1Mg
JFhETV9QUklOVF9DRkxBR1MgJFhMSUJfQ0ZMQUdTICRETUNQX0NGTEFHUyAkQVVUSF9DRkxBR1Mi
CiBDSE9PU0VSX0xJQlM9IiRDSE9PU0VSX0xJQlMgJFhETV9QUklOVF9MSUJTICRETUNQX0xJQlMi
CiAKIAotLS0gLi94ZWRpdC0xLjAuMi9NYWtlZmlsZS5pbi5vcmlnCTIwMDctMDEtMDggMTY6MjY6
MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL3hlZGl0LTEuMC4yL01ha2VmaWxlLmluCTIwMDctMDEt
MDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0zNTMsNyArMzUzLDcgQEAKICMKICMgICAg
IHhlZGl0CiAjICAgCi14ZWRpdF9DRkxBR1MgPSAkKFhFRElUX0NGTEFHUykgLUkkKHRvcF9zcmNk
aXIpL2xpc3AvcmUgLURfQlNEX1NPVVJDRSBcCit4ZWRpdF9DRkxBR1MgPSAkKFhFRElUX0NGTEFH
UykgLUkkKHRvcF9zcmNkaXIpL2xpc3AvcmUgLURfTkVUQlNEX1NPVVJDRSBcCiAJLURYRURJVCAk
KGFtX19hcHBlbmRfMSkKIHhlZGl0X0xEQUREID0gbGlicmUuYSBsaWJsaXNwLmEgbGlibXAuYSAk
KFhFRElUX0xJQlMpIC1sbQogeGVkaXRfU09VUkNFUyA9IGNvbW1hbmRzLmMgaG9vay5jIGlzcGVs
bC5jIGxpc3AuYyBvcHRpb25zLmMgcmVhbHBhdGguYyBcCi0tLSAuL3hlZGl0LTEuMC4yL01ha2Vm
aWxlLmFtLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veGVk
aXQtMS4wLjIvTWFrZWZpbGUuYW0JMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAK
QEAgLTEwNCw3ICsxMDQsNyBAQAogIyAgICAgeGVkaXQKICMgICAKIAoteGVkaXRfQ0ZMQUdTID0g
JChYRURJVF9DRkxBR1MpIC1JJCh0b3Bfc3JjZGlyKS9saXNwL3JlIC1EX0JTRF9TT1VSQ0UgLURY
RURJVAoreGVkaXRfQ0ZMQUdTID0gJChYRURJVF9DRkxBR1MpIC1JJCh0b3Bfc3JjZGlyKS9saXNw
L3JlIC1EX05FVEJTRF9TT1VSQ0UgLURYRURJVAogeGVkaXRfTERBREQgPSBsaWJyZS5hIGxpYmxp
c3AuYSBsaWJtcC5hICQoWEVESVRfTElCUykgLWxtCiAKIHhlZGl0X1NPVVJDRVMgPQlcCi0tLSAu
L3hmZC0xLjAuMS9NYWtlZmlsZS5hbS5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAw
IC0wNTAwCisrKyAuL3hmZC0xLjAuMS9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAw
MDAwMDAwMCAtMDUwMApAQCAtMjEsNyArMjEsNyBAQAogCiBiaW5fUFJPR1JBTVMgPSB4ZmQKIAot
eGZkX0NGTEFHUyA9ICQoWEZEX0NGTEFHUykgLURYUkVOREVSIC1EX0JTRF9TT1VSQ0UKK3hmZF9D
RkxBR1MgPSAkKFhGRF9DRkxBR1MpIC1EWFJFTkRFUiAtRF9ORVRCU0RfU09VUkNFCiB4ZmRfTERB
REQgPSAkKFhGRF9MSUJTKQogCiB4ZmRfU09VUkNFUyA9CVwKLS0tIC4veGZkLTEuMC4xL01ha2Vm
aWxlLmluLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veGZk
LTEuMC4xL01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBA
IC0xNjUsNyArMTY1LDcgQEAKIAogYmluX1BST0dSQU1TID0geGZkCiAKLXhmZF9DRkxBR1MgPSAk
KFhGRF9DRkxBR1MpIC1EWFJFTkRFUiAtRF9CU0RfU09VUkNFCit4ZmRfQ0ZMQUdTID0gJChYRkRf
Q0ZMQUdTKSAtRFhSRU5ERVIgLURfTkVUQlNEX1NPVVJDRQogeGZkX0xEQUREID0gJChYRkRfTElC
UykKIAogeGZkX1NPVVJDRVMgPSBcCi0tLSAuL3hmcy0xLjAuNC9NYWtlZmlsZS5hbS5vcmlnCTIw
MDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL3hmcy0xLjAuNC9NYWtlZmls
ZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtMjcsNyArMjcsNyBA
QAogCiBBTV9DRkxBR1MgPSAkKFhGU19DRkxBR1MpIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIC1E
WEZTUElERElSPVwiL3Zhci9ydW5cIiBcCiAJCS1EREVGQVVMVF9DT05GSUdfRklMRT1cIiQoY29u
ZmlnZGlyKS9jb25maWdcIiAkKEZPTlRfRkxBR1MpIFwKLQkJLURfQlNEX1NPVVJDRSAtREZPTlRf
dCAtRFRSQU5TX1NFUlZFUiAtRFRSQU5TX1JFT1BFTgorCQktRF9ORVRCU0RfU09VUkNFIC1ERk9O
VF90IC1EVFJBTlNfU0VSVkVSIC1EVFJBTlNfUkVPUEVOCiAKIExEQUREID0gJChYRlNfTElCUykK
IAotLS0gLi94ZnMtMS4wLjQvTWFrZWZpbGUuaW4ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4LjAw
MDAwMDAwMCAtMDUwMAorKysgLi94ZnMtMS4wLjQvTWFrZWZpbGUuaW4JMjAwNy0wMS0wOCAxNjoy
NjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTIzMSw3ICsyMzEsNyBAQAogRk9OVF9GTEFHUyA9IC1E
Rk9OVF9QQ0YgLURGT05UX0ZTIC1ERk9OVF9TUEVFRE8KIEFNX0NGTEFHUyA9ICQoWEZTX0NGTEFH
UykgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLURYRlNQSURESVI9XCIvdmFyL3J1blwiIFwKIAkJ
LURERUZBVUxUX0NPTkZJR19GSUxFPVwiJChjb25maWdkaXIpL2NvbmZpZ1wiICQoRk9OVF9GTEFH
UykgXAotCQktRF9CU0RfU09VUkNFIC1ERk9OVF90IC1EVFJBTlNfU0VSVkVSIC1EVFJBTlNfUkVP
UEVOCisJCS1EX05FVEJTRF9TT1VSQ0UgLURGT05UX3QgLURUUkFOU19TRVJWRVIgLURUUkFOU19S
RU9QRU4KIAogTERBREQgPSAkKFhGU19MSUJTKQogeGZzX1NPVVJDRVMgPSBcCi0tLSAuL3hnYy0x
LjAuMS9NYWtlZmlsZS5hbS5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAw
CisrKyAuL3hnYy0xLjAuMS9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAw
MCAtMDUwMApAQCAtMjMsNyArMjMsNyBAQAogCiBiaW5fUFJPR1JBTVMgPSB4Z2MKIAoteGdjX0NG
TEFHUyA9ICQoWEdDX0NGTEFHUykgLURfQlNEX1NPVVJDRQoreGdjX0NGTEFHUyA9ICQoWEdDX0NG
TEFHUykgLURfTkVUQlNEX1NPVVJDRQogeGdjX0xEQUREID0gJChYR0NfTElCUykgLWxtCiAKIHhn
Y19TT1VSQ0VTID0JXAotLS0gLi94Z2MtMS4wLjEvTWFrZWZpbGUuaW4ub3JpZwkyMDA3LTAxLTA4
IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi94Z2MtMS4wLjEvTWFrZWZpbGUuaW4JMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTE2OSw3ICsxNjksNyBAQAogCiBi
aW5fUFJPR1JBTVMgPSB4Z2MKIAoteGdjX0NGTEFHUyA9ICQoWEdDX0NGTEFHUykgLURfQlNEX1NP
VVJDRQoreGdjX0NGTEFHUyA9ICQoWEdDX0NGTEFHUykgLURfTkVUQlNEX1NPVVJDRQogeGdjX0xE
QUREID0gJChYR0NfTElCUykgLWxtCiAKIHhnY19TT1VSQ0VTID0gXAotLS0gLi94bWFuLTEuMC4y
L01ha2VmaWxlLmluLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysr
IC4veG1hbi0xLjAuMi9NYWtlZmlsZS5pbgkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAt
MDUwMApAQCAtMjM3LDcgKzIzNyw3IEBACiB0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAog
aGVscGRpciA9IEBIRUxQRElSQAogZGlzdF9oZWxwX0RBVEEgPSB4bWFuLmhlbHAKLXhtYW5fQ0ZM
QUdTID0gJChYTUFOX0NGTEFHUykgLURfQlNEX1NPVVJDRSAtREhFTFBGSUxFPVwiJChoZWxwZGly
KS94bWFuLmhlbHBcIgoreG1hbl9DRkxBR1MgPSAkKFhNQU5fQ0ZMQUdTKSAtRF9ORVRCU0RfU09V
UkNFIC1ESEVMUEZJTEU9XCIkKGhlbHBkaXIpL3htYW4uaGVscFwiCiB4bWFuX0xEQUREID0gJChY
TUFOX0xJQlMpCiB4bWFuX1NPVVJDRVMgPSBidXR0b25zLmMgZGVmcy5oIGdsb2JhbHMuYyBnbG9i
YWxzLmggaGFuZGxlci5jIGhlbHAuYyBcCiAJaWNvbmNsb3NlZC5oIGljb25faGVscC5oIGljb25f
b3Blbi5oIG1haW4uYyBtYW4uYyBtYW4uaCBtaXNjLmMgXAotLS0gLi94bWFuLTEuMC4yL01ha2Vm
aWxlLmFtLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veG1h
bi0xLjAuMi9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApA
QCAtMjQsNyArMjQsNyBAQAogaGVscGRpcj1ASEVMUERJUkAKIGRpc3RfaGVscF9EQVRBID0geG1h
bi5oZWxwCiAKLXhtYW5fQ0ZMQUdTID0gJChYTUFOX0NGTEFHUykgLURfQlNEX1NPVVJDRSAtREhF
TFBGSUxFPVwiJChoZWxwZGlyKS94bWFuLmhlbHBcIgoreG1hbl9DRkxBR1MgPSAkKFhNQU5fQ0ZM
QUdTKSAtRF9ORVRCU0RfU09VUkNFIC1ESEVMUEZJTEU9XCIkKGhlbHBkaXIpL3htYW4uaGVscFwi
CiB4bWFuX0xEQUREID0gJChYTUFOX0xJQlMpCiAKIHhtYW5fU09VUkNFUyA9CVwKLS0tIC4veG1o
LTEuMC4xL01ha2VmaWxlLmFtLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1
MDAKKysrIC4veG1oLTEuMC4xL01ha2VmaWxlLmFtCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAw
MDAwIC0wNTAwCkBAIC0yMSw3ICsyMSw3IEBACiAKIGJpbl9QUk9HUkFNUyA9IHhtaAogCi14bWhf
Q0ZMQUdTID0gJChYTUhfQ0ZMQUdTKSAtRFhWRU5ET1JOQU1FPVwiWC5vcmdcIEZvdW5kYXRpb25c
IiAtRFhPUkdfUkVMRUFTRT1cIiQoVkVSU0lPTilcIiAtRF9CU0RfU09VUkNFCit4bWhfQ0ZMQUdT
ID0gJChYTUhfQ0ZMQUdTKSAtRFhWRU5ET1JOQU1FPVwiWC5vcmdcIEZvdW5kYXRpb25cIiAtRFhP
UkdfUkVMRUFTRT1cIiQoVkVSU0lPTilcIiAtRF9ORVRCU0RfU09VUkNFCiB4bWhfTERBREQgPSAk
KFhNSF9MSUJTKQogCiB4bWhfU09VUkNFUyA9CVwKLS0tIC4veG1oLTEuMC4xL01ha2VmaWxlLmlu
Lm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veG1oLTEuMC4x
L01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0xNjMs
NyArMTYzLDcgQEAKIAogYmluX1BST0dSQU1TID0geG1oCiAKLXhtaF9DRkxBR1MgPSAkKFhNSF9D
RkxBR1MpIC1EWFZFTkRPUk5BTUU9XCJYLm9yZ1wgRm91bmRhdGlvblwiIC1EWE9SR19SRUxFQVNF
PVwiJChWRVJTSU9OKVwiIC1EX0JTRF9TT1VSQ0UKK3htaF9DRkxBR1MgPSAkKFhNSF9DRkxBR1Mp
IC1EWFZFTkRPUk5BTUU9XCJYLm9yZ1wgRm91bmRhdGlvblwiIC1EWE9SR19SRUxFQVNFPVwiJChW
RVJTSU9OKVwiIC1EX05FVEJTRF9TT1VSQ0UKIHhtaF9MREFERCA9ICQoWE1IX0xJQlMpCiAKIHht
aF9TT1VSQ0VTID0gXAotLS0gLi94b3JnLWNmLWZpbGVzLTEuMC4yL2xpbnV4LmNmLm9yaWcJMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veG9yZy1jZi1maWxlcy0xLjAu
Mi9saW51eC5jZgkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtMjMyLDcg
KzIzMiw3IEBACiAjaWYgTGludXhDTGliTWFqb3JWZXJzaW9uID49IDYKICMgZGVmaW5lIExpbnV4
U291cmNlRGVmaW5lcwktRF9QT1NJWF9DX1NPVVJDRT0xOTkzMDlMIFwKIAkJCQktRF9QT1NJWF9T
T1VSQ0UgLURfWE9QRU5fU09VUkNFIFwKLQkJCQktRF9CU0RfU09VUkNFIC1EX1NWSURfU09VUkNF
IFwKKwkJCQktRF9ORVRCU0RfU09VUkNFIC1EX1NWSURfU09VUkNFIFwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRT
PTY0IFwKIAkJCQlMaW51eEFkZGl0aW9uYWxJbmNsdWRlcyBMaW51eEdudVNvdXJjZURlZmluZXMg
XAogCQkJCUxpbnV4TG9jYWxlRGVmaW5lcwpAQCAtMjUxLDcgKzI1MSw3IEBACiAjIGVuZGlmCiAj
ZWxzZQogIyBkZWZpbmUgTGludXhTb3VyY2VEZWZpbmVzCS1EX1BPU0lYX1NPVVJDRSAtRF9QT1NJ
WF9DX1NPVVJDRT0yIFwKLQkJCQktRF9CU0RfU09VUkNFIC1EX1NWSURfU09VUkNFIFwKKwkJCQkt
RF9ORVRCU0RfU09VUkNFIC1EX1NWSURfU09VUkNFIFwKIAkJCQlMaW51eEdudVNvdXJjZURlZmlu
ZXMgTGludXhMb2NhbGVEZWZpbmVzCiAjIGRlZmluZSBYYXdJMThuRGVmaW5lcwkJLURVU0VfWFdD
SEFSX1NUUklORyAtRFVTRV9YTUJUT1dDCiAjIGlmbmRlZiBIYXNMaWJDcnlwdAotLS0gLi94b3Jn
LWNmLWZpbGVzLTEuMC4yL2dudS5jZi5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAw
IC0wNTAwCisrKyAuL3hvcmctY2YtZmlsZXMtMS4wLjIvZ251LmNmCTIwMDctMDEtMDggMTY6MjY6
MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0yMSw3ICsyMSw3IEBACiAKICNkZWZpbmUgR05VU291cmNl
RGVmaW5lcyAgICAgIC1EX1BPU0lYX0NfU09VUkNFPTE5OTMwOUwgXAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLURfUE9TSVhfU09VUkNFIC1EX1hPUEVOX1NPVVJDRSBcCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtRF9CU0RfU09VUkNFIC1EX1NWSURfU09VUkNFCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAtRF9ORVRCU0RfU09VUkNFIC1EX1NWSURfU09VUkNF
CiAKIFhDT01NIFhYWE1COiBXaGF0IGFib3V0IF9HTlVfU09VUkNFLCBzZWUgTGludXgvVXNlSW5z
dGFsbGVkPwogCi0tLSAuL3hvcmctY2YtZmlsZXMtMS4wLjIvY3Jvc3MuZGVmLm9yaWcJMjAwNy0w
MS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veG9yZy1jZi1maWxlcy0xLjAuMi9j
cm9zcy5kZWYJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTE0LDcgKzE0
LDcgQEAKICNkZWZpbmUgU2VydmVyQ0RlYnVnRmxhZ3MJLU8yCiAjdW5kZWYgU3RhbmRhcmREZWZp
bmVzCiAjZGVmaW5lIFN0YW5kYXJkRGVmaW5lcyAJLURsaW51eCAtRF9fYXJtX18gLURfUE9TSVhf
U09VUkNFIFwKLQkJCQktRF9CU0RfU09VUkNFIC1EX0dOVV9TT1VSQ0UgLURYX0xPQ0FMRQorCQkJ
CS1EX05FVEJTRF9TT1VSQ0UgLURfR05VX1NPVVJDRSAtRFhfTE9DQUxFCiAjdW5kZWYgQ2NDbWQK
ICNkZWZpbmUgU3RkSW5jRGlyIC9za2lmZi9sb2NhbC9hcm0tbGludXgvaW5jbHVkZQogI2RlZmlu
ZSBQcmVJbmNEaXIgCi0tLSAuL3hvcmctY2YtZmlsZXMtMS4wLjIvbWluZ3cuY2Yub3JpZwkyMDA3
LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi94b3JnLWNmLWZpbGVzLTEuMC4y
L21pbmd3LmNmCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0yOTMsNyAr
MjkzLDcgQEAKICAqLyAKICNkZWZpbmUgU3RhbmRhcmREZWZpbmVzCQktRF9faTM4Nl9fIC1EV0lO
MzJfTEVBTl9BTkRfTUVBTiAtRFhfTE9DQUxFIFwKIAkJCQktRF9YODZfIC1EV0lOMzIgLURfWE9Q
RU5fU09VUkNFIFwKLQkJCQktRF9QT1NJWF9DX1NPVVJDRT0xOTkzMDlMIC1EX0JTRF9TT1VSQ0Ug
XAorCQkJCS1EX1BPU0lYX0NfU09VUkNFPTE5OTMwOUwgLURfTkVUQlNEX1NPVVJDRSBcCiAJCQkJ
LURfU1ZJRF9TT1VSQ0UgLURfR05VX1NPVVJDRSAtREZEX1NFVFNJWkU9MTAyNCBcCiAJCQkJLURY
UmVzRXh0ZW5zaW9uCiAjZGVmaW5lIFhhd0kxOG5EZWZpbmVzCQktREhBU19XQ0hBUl9IIC1ESEFT
X1dDVFlQRV9IIFwKLS0tIC4veG9yZy1jZi1maWxlcy0xLjAuMi9jeWd3aW4uY2Yub3JpZwkyMDA3
LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAorKysgLi94b3JnLWNmLWZpbGVzLTEuMC4y
L2N5Z3dpbi5jZgkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtMjQwLDcg
KzI0MCw3IEBACiAgKi8gCiAjZGVmaW5lIFN0YW5kYXJkRGVmaW5lcwkJLURfX2kzODZfXyAtRFdJ
TjMyX0xFQU5fQU5EX01FQU4gLURYX0xPQ0FMRSBcCiAJCQkJLURfWDg2XyAtRF9fQ1lHV0lOX18g
LURfWE9QRU5fU09VUkNFIFwKLQkJCQktRF9QT1NJWF9DX1NPVVJDRT0xOTkzMDlMIC1EX0JTRF9T
T1VSQ0UgXAorCQkJCS1EX1BPU0lYX0NfU09VUkNFPTE5OTMwOUwgLURfTkVUQlNEX1NPVVJDRSBc
CiAJCQkJLURfU1ZJRF9TT1VSQ0UgLURfR05VX1NPVVJDRSAtREZEX1NFVFNJWkU9MjU2IFwKIAkJ
CQktRFhSZXNFeHRlbnNpb24KICNkZWZpbmUgWGF3STE4bkRlZmluZXMJCS1ESEFTX1dDSEFSX0gg
LURIQVNfV0NUWVBFX0ggXAotLS0gLi94b3JnLWNmLWZpbGVzLTEuMC4yL29zMi5jZi5vcmlnCTIw
MDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAuL3hvcmctY2YtZmlsZXMtMS4w
LjIvb3MyLmNmCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0zNiw3ICsz
Niw3IEBACiAgICAgICAgIE5ST0ZGID0gTnJvZmZDbWQKIAogLyogQSBzZXQgb2Ygc3RhbmRhcmQg
ZGVmaW5lczogKi8KLSNkZWZpbmUgT1NEZWZpbmVzCQktRF9QT1NJWF9TT1VSQ0UgLURfQlNEX1NP
VVJDRSAtRF9HTlVfU09VUkNFCisjZGVmaW5lIE9TRGVmaW5lcwkJLURfUE9TSVhfU09VUkNFIC1E
X05FVEJTRF9TT1VSQ0UgLURfR05VX1NPVVJDRQogCiAjaWZuZGVmIEJ1aWxkWEtCCiAjZGVmaW5l
IEJ1aWxkWEtCCQlZRVMKLS0tIC4veG9yZy1zZXJ2ZXItMS4xLjk5LjkwMy9pbmNsdWRlL2RvLW5v
dC11c2UtY29uZmlnLmgub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMAor
KysgLi94b3JnLXNlcnZlci0xLjEuOTkuOTAzL2luY2x1ZGUvZG8tbm90LXVzZS1jb25maWcuaAky
MDA3LTAxLTA4IDE2OjI2OjA4LjAwMDAwMDAwMCAtMDUwMApAQCAtNjIwLDcgKzYyMCw3IEBACiAj
ZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKIAogLyogQlNELWNvbXBsaWFudCBzb3VyY2UgKi8KLSNk
ZWZpbmUgX0JTRF9TT1VSQ0UgMQorI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCiAKIC8qIFBPU0lY
LWNvbXBsaWFudCBzb3VyY2UgKi8KICNkZWZpbmUgX1BPU0lYX1NPVVJDRSAxCi0tLSAuL3hvcmct
c2VydmVyLTEuMS45OS45MDMvaW5jbHVkZS9kby1ub3QtdXNlLWNvbmZpZy5oLmluLm9yaWcJMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKKysrIC4veG9yZy1zZXJ2ZXItMS4xLjk5
LjkwMy9pbmNsdWRlL2RvLW5vdC11c2UtY29uZmlnLmguaW4JMjAwNy0wMS0wOCAxNjoyNjowOC4w
MDAwMDAwMDAgLTA1MDAKQEAgLTYxOSw3ICs2MTksNyBAQAogI3VuZGVmIFlZVEVYVF9QT0lOVEVS
CiAKIC8qIEJTRC1jb21wbGlhbnQgc291cmNlICovCi0jdW5kZWYgX0JTRF9TT1VSQ0UKKyN1bmRl
ZiBfTkVUQlNEX1NPVVJDRQogCiAvKiBQT1NJWC1jb21wbGlhbnQgc291cmNlICovCiAjdW5kZWYg
X1BPU0lYX1NPVVJDRQotLS0gLi94b3JnLXNlcnZlci0xLjEuOTkuOTAzL2luY2x1ZGUveG9yZy1z
ZXJ2ZXIuaC5pbi5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCisrKyAu
L3hvcmctc2VydmVyLTEuMS45OS45MDMvaW5jbHVkZS94b3JnLXNlcnZlci5oLmluCTIwMDctMDEt
MDggMTY6MjY6MDguMDAwMDAwMDAwIC0wNTAwCkBAIC0xOTQsNyArMTk0LDcgQEAKICN1bmRlZiBY
X0JZVEVfT1JERVIKIAogLyogQlNELWNvbXBsaWFudCBzb3VyY2UgKi8KLSN1bmRlZiBfQlNEX1NP
VVJDRQorI3VuZGVmIF9ORVRCU0RfU09VUkNFCiAKIC8qIFBPU0lYLWNvbXBsaWFudCBzb3VyY2Ug
Ki8KICN1bmRlZiBfUE9TSVhfU09VUkNFCi0tLSAuL3hvcmctc2VydmVyLTEuMS45OS45MDMvaW5j
bHVkZS94b3JnLXNlcnZlci5oLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1
MDAKKysrIC4veG9yZy1zZXJ2ZXItMS4xLjk5LjkwMy9pbmNsdWRlL3hvcmctc2VydmVyLmgJMjAw
Ny0wMS0wOCAxNjoyNjowOC4wMDAwMDAwMDAgLTA1MDAKQEAgLTE5NSw3ICsxOTUsNyBAQAogI2Rl
ZmluZSBYX0JZVEVfT1JERVIgWF9MSVRUTEVfRU5ESUFOCiAKIC8qIEJTRC1jb21wbGlhbnQgc291
cmNlICovCi0jZGVmaW5lIF9CU0RfU09VUkNFIDEKKyNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQog
CiAvKiBQT1NJWC1jb21wbGlhbnQgc291cmNlICovCiAjZGVmaW5lIF9QT1NJWF9TT1VSQ0UgMQot
LS0gLi94b3JnLXNlcnZlci0xLjEuOTkuOTAzL2luY2x1ZGUvZGl4LWNvbmZpZy5oLm9yaWcJMjAw
Ny0wMS0wOCAxNjoyNjowOS4wMDAwMDAwMDAgLTA1MDAKKysrIC4veG9yZy1zZXJ2ZXItMS4xLjk5
LjkwMy9pbmNsdWRlL2RpeC1jb25maWcuaAkyMDA3LTAxLTA4IDE2OjI2OjA5LjAwMDAwMDAwMCAt
MDUwMApAQCAtNDEyLDcgKzQxMiw3IEBACiAjZGVmaW5lIFhfQllURV9PUkRFUiBYX0xJVFRMRV9F
TkRJQU4KIAogLyogQlNELWNvbXBsaWFudCBzb3VyY2UgKi8KLSNkZWZpbmUgX0JTRF9TT1VSQ0Ug
MQorI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCiAKIC8qIFBPU0lYLWNvbXBsaWFudCBzb3VyY2Ug
Ki8KICNkZWZpbmUgX1BPU0lYX1NPVVJDRSAxCi0tLSAuL3hvcmctc2VydmVyLTEuMS45OS45MDMv
aW5jbHVkZS9kaXgtY29uZmlnLmguaW4ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA5LjAwMDAwMDAw
MCAtMDUwMAorKysgLi94b3JnLXNlcnZlci0xLjEuOTkuOTAzL2luY2x1ZGUvZGl4LWNvbmZpZy5o
LmluCTIwMDctMDEtMDggMTY6MjY6MDkuMDAwMDAwMDAwIC0wNTAwCkBAIC00MTEsNyArNDExLDcg
QEAKICN1bmRlZiBYX0JZVEVfT1JERVIKIAogLyogQlNELWNvbXBsaWFudCBzb3VyY2UgKi8KLSN1
bmRlZiBfQlNEX1NPVVJDRQorI3VuZGVmIF9ORVRCU0RfU09VUkNFCiAKIC8qIFBPU0lYLWNvbXBs
aWFudCBzb3VyY2UgKi8KICN1bmRlZiBfUE9TSVhfU09VUkNFCi0tLSAuL3hvcmctc2VydmVyLTEu
MS45OS45MDMvY29uZmlndXJlLmFjLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOS4wMDAwMDAwMDAg
LTA1MDAKKysrIC4veG9yZy1zZXJ2ZXItMS4xLjk5LjkwMy9jb25maWd1cmUuYWMJMjAwNy0wMS0w
OCAxNjoyNjowOS4wMDAwMDAwMDAgLTA1MDAKQEAgLTE2MDgsNyArMTYwOCw3IEBACiAJKikgCiAJ
CUFDX0RFRklORShfUE9TSVhfU09VUkNFLCAxLCBbUE9TSVgtY29tcGxpYW50IHNvdXJjZV0pCiAJ
CUFDX0RFRklORShfWE9QRU5fU09VUkNFLCA1MDAsIFtYL09wZW4tY29tcGxpYW50IHNvdXJjZV0p
Ci0JCUFDX0RFRklORShfQlNEX1NPVVJDRSwgMSwgW0JTRC1jb21wbGlhbnQgc291cmNlXSkKKwkJ
QUNfREVGSU5FKF9ORVRCU0RfU09VUkNFLCAxLCBbQlNELWNvbXBsaWFudCBzb3VyY2VdKQogCQk7
OwogZXNhYwogCi0tLSAuL3hvcmctc2VydmVyLTEuMS45OS45MDMvY29uZmlndXJlLm9yaWcJMjAw
Ny0wMS0wOCAxNjoyNjowOS4wMDAwMDAwMDAgLTA1MDAKKysrIC4veG9yZy1zZXJ2ZXItMS4xLjk5
LjkwMy9jb25maWd1cmUJMjAwNy0wMS0wOCAxNjoyNjowOS4wMDAwMDAwMDAgLTA1MDAKQEAgLTMz
MTMyLDcgKzMzMTMyLDcgQEAKIAogCiBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmlu
ZSBfQlNEX1NPVVJDRSAxCisjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKIF9BQ0VPRgogCiAJCTs7
Ci0tLSAuL3hzZXQtMS4wLjIvTWFrZWZpbGUuaW4ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA5LjAw
MDAwMDAwMCAtMDUwMAorKysgLi94c2V0LTEuMC4yL01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6
MjY6MDkuMDAwMDAwMDAwIC0wNTAwCkBAIC0yMTgsNyArMjE4LDcgQEAKIHNoYXJlZHN0YXRlZGly
ID0gQHNoYXJlZHN0YXRlZGlyQAogc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAogdGFyZ2V0X2Fs
aWFzID0gQHRhcmdldF9hbGlhc0AKLXhzZXRfQ0ZMQUdTID0gJChYU0VUX0NGTEFHUykgLURfQlNE
X1NPVVJDRQoreHNldF9DRkxBR1MgPSAkKFhTRVRfQ0ZMQUdTKSAtRF9ORVRCU0RfU09VUkNFCiB4
c2V0X0xEQUREID0gJChYU0VUX0xJQlMpCiB4c2V0X1NPVVJDRVMgPSBcCiAgICAgICAgIHhzZXQu
YwotLS0gLi94c2V0LTEuMC4yL01ha2VmaWxlLmFtLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOS4w
MDAwMDAwMDAgLTA1MDAKKysrIC4veHNldC0xLjAuMi9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2
OjI2OjA5LjAwMDAwMDAwMCAtMDUwMApAQCAtMjEsNyArMjEsNyBAQAogCiBiaW5fUFJPR1JBTVMg
PSB4c2V0CiAKLXhzZXRfQ0ZMQUdTID0gJChYU0VUX0NGTEFHUykgLURfQlNEX1NPVVJDRQoreHNl
dF9DRkxBR1MgPSAkKFhTRVRfQ0ZMQUdTKSAtRF9ORVRCU0RfU09VUkNFCiB4c2V0X0xEQUREID0g
JChYU0VUX0xJQlMpCiAKIHhzZXRfU09VUkNFUyA9CVwKLS0tIC4veHN0ZGNtYXAtMS4wLjEvTWFr
ZWZpbGUuYW0ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA5LjAwMDAwMDAwMCAtMDUwMAorKysgLi94
c3RkY21hcC0xLjAuMS9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4IDE2OjI2OjA5LjAwMDAwMDAwMCAt
MDUwMApAQCAtMjEsNyArMjEsNyBAQAogCiBiaW5fUFJPR1JBTVMgPSB4c3RkY21hcAogCi14c3Rk
Y21hcF9DRkxBR1MgPSAkKFhTVERDTUFQX0NGTEFHUykgLURfQlNEX1NPVVJDRQoreHN0ZGNtYXBf
Q0ZMQUdTID0gJChYU1REQ01BUF9DRkxBR1MpIC1EX05FVEJTRF9TT1VSQ0UKIHhzdGRjbWFwX0xE
QUREID0gJChYU1REQ01BUF9MSUJTKQogCiB4c3RkY21hcF9TT1VSQ0VTID0JXAotLS0gLi94c3Rk
Y21hcC0xLjAuMS9NYWtlZmlsZS5pbi5vcmlnCTIwMDctMDEtMDggMTY6MjY6MDkuMDAwMDAwMDAw
IC0wNTAwCisrKyAuL3hzdGRjbWFwLTEuMC4xL01ha2VmaWxlLmluCTIwMDctMDEtMDggMTY6MjY6
MDkuMDAwMDAwMDAwIC0wNTAwCkBAIC0xNTMsNyArMTUzLDcgQEAKIAogYmluX1BST0dSQU1TID0g
eHN0ZGNtYXAKIAoteHN0ZGNtYXBfQ0ZMQUdTID0gJChYU1REQ01BUF9DRkxBR1MpIC1EX0JTRF9T
T1VSQ0UKK3hzdGRjbWFwX0NGTEFHUyA9ICQoWFNURENNQVBfQ0ZMQUdTKSAtRF9ORVRCU0RfU09V
UkNFCiB4c3RkY21hcF9MREFERCA9ICQoWFNURENNQVBfTElCUykKIAogeHN0ZGNtYXBfU09VUkNF
UyA9IFwKLS0tIC4veHRyYW5zLTEuMC4yL3h0cmFucy5wYy5pbi5vcmlnCTIwMDctMDEtMDggMTY6
MjY6MDkuMDAwMDAwMDAwIC0wNTAwCisrKyAuL3h0cmFucy0xLjAuMi94dHJhbnMucGMuaW4JMjAw
Ny0wMS0wOCAxNjoyNjowOS4wMDAwMDAwMDAgLTA1MDAKQEAgLTYsNCArNiw0IEBACiBOYW1lOiBY
VHJhbnMKIERlc2NyaXB0aW9uOiBBYnN0cmFjdCBuZXR3b3JrIGNvZGUgZm9yIFgKIFZlcnNpb246
IEBQQUNLQUdFX1ZFUlNJT05ACi1DZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfSAtRF9CU0RfU09VUkNF
IEBmY2hvd25fZGVmaW5lQCBAc3RpY2t5X2JpdF9kZWZpbmVACitDZmxhZ3M6IC1JJHtpbmNsdWRl
ZGlyfSAtRF9ORVRCU0RfU09VUkNFIEBmY2hvd25fZGVmaW5lQCBAc3RpY2t5X2JpdF9kZWZpbmVA
Ci0tLSAuL3h0cmFwLTEuMC4yL01ha2VmaWxlLmluLm9yaWcJMjAwNy0wMS0wOCAxNjoyNjowOS4w
MDAwMDAwMDAgLTA1MDAKKysrIC4veHRyYXAtMS4wLjIvTWFrZWZpbGUuaW4JMjAwNy0wMS0wOCAx
NjoyNjowOS4wMDAwMDAwMDAgLTA1MDAKQEAgLTI1MSw3ICsyNTEsNyBAQAogIwogIyB4dHJhcGlu
CiAjIAoteHRyYXBpbl9DRkxBR1MgPSAkKFhUUkFQX0FQUF9DRkxBR1MpIC1EX0JTRF9TT1VSQ0UK
K3h0cmFwaW5fQ0ZMQUdTID0gJChYVFJBUF9BUFBfQ0ZMQUdTKSAtRF9ORVRCU0RfU09VUkNFCiB4
dHJhcGluX0xEQUREID0gJChYVFJBUF9BUFBfTElCUykKIHh0cmFwaW5fU09VUkNFUyA9IFwKIAl4
dHJhcGluLmMgXApAQCAtMjYyLDcgKzI2Miw3IEBACiAjCiAjIHh0cmFwb3V0CiAjCi14dHJhcG91
dF9DRkxBR1MgPSAkKFhUUkFQX0FQUF9DRkxBR1MpIC1EX0JTRF9TT1VSQ0UKK3h0cmFwb3V0X0NG
TEFHUyA9ICQoWFRSQVBfQVBQX0NGTEFHUykgLURfTkVUQlNEX1NPVVJDRQogeHRyYXBvdXRfTERB
REQgPSAkKFhUUkFQX0FQUF9MSUJTKQogeHRyYXBvdXRfU09VUkNFUyA9IFwKIAl4dHJhcG91dC5j
IFwKLS0tIC4veHRyYXAtMS4wLjIvTWFrZWZpbGUuYW0ub3JpZwkyMDA3LTAxLTA4IDE2OjI2OjA5
LjAwMDAwMDAwMCAtMDUwMAorKysgLi94dHJhcC0xLjAuMi9NYWtlZmlsZS5hbQkyMDA3LTAxLTA4
IDE2OjI2OjA5LjAwMDAwMDAwMCAtMDUwMApAQCAtNDYsNyArNDYsNyBAQAogIwogIyB4dHJhcGlu
CiAjIAoteHRyYXBpbl9DRkxBR1MgPSAkKFhUUkFQX0FQUF9DRkxBR1MpIC1EX0JTRF9TT1VSQ0UK
K3h0cmFwaW5fQ0ZMQUdTID0gJChYVFJBUF9BUFBfQ0ZMQUdTKSAtRF9ORVRCU0RfU09VUkNFCiB4
dHJhcGluX0xEQUREID0gJChYVFJBUF9BUFBfTElCUykKIAogeHRyYXBpbl9TT1VSQ0VTID0gXApA
QCAtNTcsNyArNTcsNyBAQAogIwogIyB4dHJhcG91dAogIwoteHRyYXBvdXRfQ0ZMQUdTID0gJChY
VFJBUF9BUFBfQ0ZMQUdTKSAtRF9CU0RfU09VUkNFCit4dHJhcG91dF9DRkxBR1MgPSAkKFhUUkFQ
X0FQUF9DRkxBR1MpIC1EX05FVEJTRF9TT1VSQ0UKIHh0cmFwb3V0X0xEQUREID0gJChYVFJBUF9B
UFBfTElCUykKIAogeHRyYXBvdXRfU09VUkNFUyA9IFwK
------=_Part_24103_28969602.1168294241448--