Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Jul 2010 22:50:24 +0530
From:      "Jayachandran C." <c.jayachandran@gmail.com>
To:        Randall Stewart <rrs@lakerest.net>, Juli Mallett <jmallett@freebsd.org>,  "M. Warner Losh" <imp@bsdimp.com>, freebsd-mips@freebsd.org
Subject:   Merging 64 bit changes to -HEAD - part 4
Message-ID:  <AANLkTikSVi27V2UICgLvKd8Bk7v6tuGty9YX6-C6-21H@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--e0cb4e887827a90f16048acf6235
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On Tue, Jun 15, 2010 at 7:06 PM, Jayachandran C.
<c.jayachandran@gmail.com> wrote:
> I have volunteered to merge Juli's 64-bit work into HEAD, =A0and
> hopefully get it to work on XLR too. The tree
> (http://svn.freebsd.org/base/user/jmallett/octeon) has quite a bit of
> changes, so I would like to do this over multiple changesets and
> without breaking the current o32 code.

Here's the next installment, this has the next set of Juli's changes
and some fixes to get it working on XLR. The patches in this set are:

mips-segtab-macro.patch :
  Change PDE/PTE access to a macro (from Juli's branch)

mips-cache-fix.patch :
 Minor fix for cache code (JC)

rmi-other.patch:
 64 bit compilation fixes for sys/mips/rmi (JC)
 Fixes to platform and driver code for 64 bit compilation, including
changes to ethernet driver.

mips-rmi-kx-enable.patch:
 Changes to enable KX bit for TARGET_XLR_XLS (JC).
 I have added another case for the TARGET_OCTEON #ifdef in exception.S
and locore.S, but I think this can be moved to  a header file later.

pmap-n64.patch
 The main n64 patch (from Juli's branch)
  This still uses the old 2-level page tables. But this adds other
pmap code to support n64. I have re-arranged some of  Juli's code to
reduce #ifdefs.

runq-64.patch
  64-bit rqb_word_t for n64 (JC)

ldscript-64.patch
 64 bit linker script (JC)
 linker script for 64 bit compilation, and XLR configuration file.

With these changes, a n64 kernel can be compiled and it will to
'mountroot>' on XLR.   There is more code left to merge in Juli's
branch - 32 bit compat code, sfbuf/uio, UMA alloc, and DDB. which I
should be able to get in the next  one or two passes.

Let me know your comments. There are only two minor changes should
affect the existing o32 code paths in the above code (moving the check
for >512M, and change in pmap_map to handle KSEG0 addresses), but let
me know if something breaks.

Thanks,
JC.

--e0cb4e887827a90f16048acf6235
Content-Type: text/x-patch; charset=US-ASCII; name="mips-segtab-macro.patch"
Content-Disposition: attachment; filename="mips-segtab-macro.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gbcfijm54

SW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvcHRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvaW5j
bHVkZS9wdGUuaAkocmV2aXNpb24gMjA5NjQ1KQorKysgc3lzL21pcHMvaW5jbHVkZS9wdGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksMTIgQEAKICNpZm5kZWYJX01BQ0hJTkVfUFRFX0hf
CiAjZGVmaW5lCV9NQUNISU5FX1BURV9IXwogCisjaWZuZGVmIF9MT0NPUkUKKy8qIHB0X2VudHJ5
X3QgaXMgMzIgYml0IGZvciBub3csIGhhcyB0byBiZSBtYWRlIDY0IGJpdCBmb3IgbjY0ICovCit0
eXBlZGVmCXVpbnQzMl90IHB0X2VudHJ5X3Q7Cit0eXBlZGVmCXB0X2VudHJ5X3QgKnBkX2VudHJ5
X3Q7CisjZW5kaWYKKwogLyoKICAqIFRMQiBhbmQgUFRFIG1hbmFnZW1lbnQuICBNb3N0IHRoaW5n
cyBvcGVyYXRlIHdpdGhpbiB0aGUgY29udGV4dCBvZgogICogRW50cnlMbzAsMSwgYW5kIGJlZ2lu
IHdpdGggVExCTE9fLiAgVGhpbmdzIHdoaWNoIHdvcmsgd2l0aCBFbnRyeUhpCkBAIC02NSwyNSAr
NzEsMjAgQEAKICNkZWZpbmUJVExCTE9fUFRFX1RPX1BBKHB0ZSkJKFRMQkxPX1BGTl9UT19QQShU
TEJMT19QVEVfVE9fUEZOKChwdGUpKSkpCiAKIC8qCisgKiBYWFggVGhpcyBjb21tZW50IGlzIG5v
dCBjb3JyZWN0IGZvciBhbnl0aGluZyBtb3JlIG1vZGVybiB0aGFuIFI0Sy4KKyAqCiAgKiBWUE4g
Zm9yIEVudHJ5SGkgcmVnaXN0ZXIuICBVcHBlciB0d28gYml0cyBzZWxlY3QgdXNlciwgc3VwZXJ2
aXNvciwKICAqIG9yIGtlcm5lbC4gIEJpdHMgNjEgdG8gNDAgY29weSBiaXQgNjMuICBWUE4yIGlz
IGJpdHMgMzkgYW5kIGRvd24gdG8KICAqIGFzIGxvdyBhcyAxMywgZG93biB0byBQQUdFX1NISUZU
LCB0byBpbmRleCAyIFRMQiBwYWdlcyouICBGcm9tIGJpdCAxMgogICogdG8gYml0IDggdGhlcmUg
aXMgYSA1LWJpdCAwIGZpZWxkLiAgTG93IGJ5dGUgaXMgQVNJRC4KICAqCisgKiBYWFggVGhpcyBj
b21tZW50IGlzIG5vdCBjb3JyZWN0IGZvciBGcmVlQlNELgogICogTm90ZSB0aGF0IGluIEZyZWVC
U0QsIHdlIG1hcCAyIFRMQiBwYWdlcyBpcyBlcXVhbCB0byAxIFZNIHBhZ2UuCiAgKi8KICNkZWZp
bmUJVExCSElfQVNJRF9NQVNLCQkoMHhmZikKICNkZWZpbmUJVExCSElfUEFHRV9NQVNLCQkoMiAq
IFBBR0VfU0laRSAtIDEpCiAjZGVmaW5lCVRMQkhJX0VOVFJZKHZhLCBhc2lkKQkoKCh2YSkgJiB+
VExCSElfUEFHRV9NQVNLKSB8ICgoYXNpZCkgJiBUTEJISV9BU0lEX01BU0spKQogCi0jaWZuZGVm
IF9MT0NPUkUKLXR5cGVkZWYJdWludDMyX3QgcHRfZW50cnlfdDsKLXR5cGVkZWYJcHRfZW50cnlf
dCAqcGRfZW50cnlfdDsKLSNlbmRpZgotCi0jZGVmaW5lCVBERVNJWkUJCXNpemVvZihwZF9lbnRy
eV90KQkvKiBmb3IgYXNzZW1ibHkgZmlsZXMgKi8KLSNkZWZpbmUJUFRFU0laRQkJc2l6ZW9mKHB0
X2VudHJ5X3QpCS8qIGZvciBhc3NlbWJseSBmaWxlcyAqLwotCiAvKgogICogVExCIGZsYWdzIG1h
bmFnZWQgaW4gaGFyZHdhcmU6CiAgKiAJQzoJQ2FjaGUgYXR0cmlidXRlLgpJbmRleDogc3lzL21p
cHMvaW5jbHVkZS9wbWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvaW5jbHVkZS9wbWFwLmgJ
KHJldmlzaW9uIDIwOTYzNSkKKysrIHN5cy9taXBzL2luY2x1ZGUvcG1hcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MCw3ICs1MCw2IEBACiAjaW5jbHVkZSA8bWFjaGluZS9wdGUuaD4KIAogI2RlZmlu
ZQlOS1BUCQkxMjAJLyogYWN0dWFsIG51bWJlciBvZiBrZXJuZWwgcGFnZSB0YWJsZXMgKi8KLSNk
ZWZpbmUJTlVTRVJQR1RCTFMJKFZNX01BWFVTRVJfQUREUkVTUyA+PiBTRUdTSElGVCkKIAogI2lm
bmRlZiBMT0NPUkUKIApAQCAtOTcsNyArOTYsNiBAQAogI2lmZGVmCV9LRVJORUwKIAogcHRfZW50
cnlfdCAqcG1hcF9wdGUocG1hcF90LCB2bV9vZmZzZXRfdCk7Ci1wZF9lbnRyeV90IHBtYXBfc2Vn
bWFwKHBtYXBfdCBwbWFwLCB2bV9vZmZzZXRfdCB2YSk7CiB2bV9vZmZzZXRfdCBwbWFwX2tleHRy
YWN0KHZtX29mZnNldF90IHZhKTsKIAogI2RlZmluZQl2dG9waHlzKHZhKQlwbWFwX2tleHRyYWN0
KCgodm1fb2Zmc2V0X3QpICh2YSkpKQpJbmRleDogc3lzL21pcHMvbWlwcy9wbWFwLmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gc3lzL21pcHMvbWlwcy9wbWFwLmMJKHJldmlzaW9uIDIwOTYzNSkKKysrIHN5cy9t
aXBzL21pcHMvcG1hcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsMTUgKzExOCwyNiBAQAogCiAv
KgogICogR2V0IFBERXMgYW5kIFBURXMgZm9yIHVzZXIva2VybmVsIGFkZHJlc3Mgc3BhY2UKKyAq
CisgKiBYWFggVGhlICYgZm9yIHBtYXBfc2Vnc2hpZnQoKSBpcyB3cm9uZywgYXMgaXMgdGhlIGZh
Y3QgdGhhdCBpdCBkb2Vzbid0CisgKiAgICAgdHJpbSBvZmYgZ3JhdHVpdG91cyBiaXRzIG9mIHRo
ZSBhZGRyZXNzIHNwYWNlLiAgQnkgaGF2aW5nIHRoZSAmCisgKiAgICAgdGhlcmUsIHdlIGJyZWFr
IGRlZmluaW5nIE5VU0VSUEdUQkxTIGJlbG93IGJlY2F1c2UgdGhlIGFkZHJlc3Mgc3BhY2UKKyAq
ICAgICBpcyBkZWZpbmVkIHN1Y2ggdGhhdCBpdCBlbmRzIGltbWVkaWF0ZWx5IGFmdGVyIE5QREVQ
RypOUFRFUEcqUEFHRV9TSVpFLAorICogICAgIHNvIHdlIGVuZCB1cCBnZXR0aW5nIE5VU0VSUEdU
QkxTIG9mIDAuCiAgKi8KLSNkZWZpbmUJcG1hcF9wZGUobSwgdikJCSgmKChtKS0+cG1fc2VndGFi
Wyh2bV9vZmZzZXRfdCkodikgPj4gU0VHU0hJRlRdKSkKLSNkZWZpbmUJc2VndGFiX3BkZShtLCB2
KQkobVsodm1fb2Zmc2V0X3QpKHYpID4+IFNFR1NISUZUXSkKKyNkZWZpbmUJcG1hcF9zZWdzaGlm
dCh2KQkoKCh2KSA+PiBTRUdTSElGVCkgJiAoTlBERVBHIC0gMSkpCisjZGVmaW5lCXNlZ3RhYl9w
ZGUobSwgdikJKChtKVtwbWFwX3NlZ3NoaWZ0KCh2KSldKQogCi0jZGVmaW5lCU1JUFNfU0VHU0la
RQkJKDFMIDw8IFNFR1NISUZUKQotI2RlZmluZQltaXBzX3NlZ3RydW5jKHZhKQkoKHZhKSAmIH4o
TUlQU19TRUdTSVpFLTEpKQorI2RlZmluZQlOVVNFUlBHVEJMUwkJKHBtYXBfc2Vnc2hpZnQoVk1f
TUFYVVNFUl9BRERSRVNTKSkKKyNkZWZpbmUJbWlwc19zZWd0cnVuYyh2YSkJKCh2YSkgJiB+U0VH
T0ZTRVQpCiAjZGVmaW5lCWlzX2tlcm5lbF9wbWFwKHgpCSgoeCkgPT0ga2VybmVsX3BtYXApCi0j
ZGVmaW5lCXZhZF90b19wdGVfb2Zmc2V0KGFkcikJKCgoYWRyKSA+PiBQQUdFX1NISUZUKSAmIChO
UFRFUEcgLTEpKQogCisvKgorICogR2l2ZW4gYSB2aXJ0dWFsIGFkZHJlc3MsIGdldCB0aGUgb2Zm
c2V0IG9mIGl0cyBQVEUgd2l0aGluIGl0cyBwYWdlCisgKiBkaXJlY3RvcnkgcGFnZS4KKyAqLwor
I2RlZmluZQlQREVfT0ZGU0VUKHZhKQkoKCh2bV9vZmZzZXRfdCkodmEpID4+IFBBR0VfU0hJRlQp
ICYgKE5QVEVQRyAtIDEpKQorCiBzdHJ1Y3QgcG1hcCBrZXJuZWxfcG1hcF9zdG9yZTsKIHBkX2Vu
dHJ5X3QgKmtlcm5lbF9zZWdtYXA7CiAKQEAgLTE1NSw4ICsxNjYsNiBAQAogc3RhdGljIHZvaWQg
cG1hcF9wdmhfZnJlZShzdHJ1Y3QgbWRfcGFnZSAqcHZoLCBwbWFwX3QgcG1hcCwgdm1fb2Zmc2V0
X3QgdmEpOwogc3RhdGljIHB2X2VudHJ5X3QgcG1hcF9wdmhfcmVtb3ZlKHN0cnVjdCBtZF9wYWdl
ICpwdmgsIHBtYXBfdCBwbWFwLAogICAgIHZtX29mZnNldF90IHZhKTsKLXN0YXRpYyBfX2lubGlu
ZSB2b2lkIHBtYXBfY2hhbmdlYml0KHZtX3BhZ2VfdCBtLCBpbnQgYml0LCBib29sZWFuX3Qgc2V0
ZW0pOwotCiBzdGF0aWMgdm1fcGFnZV90IHBtYXBfZW50ZXJfcXVpY2tfbG9ja2VkKHBtYXBfdCBw
bWFwLCB2bV9vZmZzZXRfdCB2YSwKICAgICB2bV9wYWdlX3QgbSwgdm1fcHJvdF90IHByb3QsIHZt
X3BhZ2VfdCBtcHRlKTsKIHN0YXRpYyBpbnQgcG1hcF9yZW1vdmVfcHRlKHN0cnVjdCBwbWFwICpw
bWFwLCBwdF9lbnRyeV90ICpwdHEsIHZtX29mZnNldF90IHZhKTsKQEAgLTI0NiwxMyArMjU1LDEz
IEBACiAJc3lzbS0+dmFsaWQyID0gMDsJCQkJCQlcCiAJaW50cl9yZXN0b3JlKGludHIpCiAKLXBk
X2VudHJ5X3QKK3N0YXRpYyBpbmxpbmUgcHRfZW50cnlfdCAqCiBwbWFwX3NlZ21hcChwbWFwX3Qg
cG1hcCwgdm1fb2Zmc2V0X3QgdmEpCiB7Ci0JaWYgKHBtYXAtPnBtX3NlZ3RhYikKLQkJcmV0dXJu
IChwbWFwLT5wbV9zZWd0YWJbKCh2bV9vZmZzZXRfdCkodmEpID4+IFNFR1NISUZUKV0pOworCWlm
IChwbWFwLT5wbV9zZWd0YWIgIT0gTlVMTCkKKwkJcmV0dXJuIChzZWd0YWJfcGRlKHBtYXAtPnBt
X3NlZ3RhYiwgdmEpKTsKIAllbHNlCi0JCXJldHVybiAoKHBkX2VudHJ5X3QpMCk7CisJCXJldHVy
biAoTlVMTCk7CiB9CiAKIC8qCkBAIC0yNjcsOSArMjc2LDkgQEAKIAlwdF9lbnRyeV90ICpwZGVh
ZGRyOwogCiAJaWYgKHBtYXApIHsKLQkJcGRlYWRkciA9IChwdF9lbnRyeV90ICopcG1hcF9zZWdt
YXAocG1hcCwgdmEpOworCQlwZGVhZGRyID0gcG1hcF9zZWdtYXAocG1hcCwgdmEpOwogCQlpZiAo
cGRlYWRkcikgewotCQkJcmV0dXJuIHBkZWFkZHIgKyB2YWRfdG9fcHRlX29mZnNldCh2YSk7CisJ
CQlyZXR1cm4gcGRlYWRkciArIFBERV9PRkZTRVQodmEpOwogCQl9CiAJfQogCXJldHVybiAoKHB0
X2VudHJ5X3QgKikwKTsKQEAgLTg3OCwxMiArODg3LDEyIEBACiAJCXJldHVybiAoMCk7CiAKIAlp
ZiAobXB0ZSA9PSBOVUxMKSB7Ci0JCXB0ZXBpbmRleCA9ICh2YSA+PiBTRUdTSElGVCk7CisJCXB0
ZXBpbmRleCA9IHBtYXBfc2Vnc2hpZnQodmEpOwogCQlpZiAocG1hcC0+cG1fcHRwaGludCAmJgog
CQkgICAgKHBtYXAtPnBtX3B0cGhpbnQtPnBpbmRleCA9PSBwdGVwaW5kZXgpKSB7CiAJCQltcHRl
ID0gcG1hcC0+cG1fcHRwaGludDsKIAkJfSBlbHNlIHsKLQkJCXB0ZXZhID0gKnBtYXBfcGRlKHBt
YXAsIHZhKTsKKwkJCXB0ZXZhID0gcG1hcF9zZWdtYXAocG1hcCwgdmEpOwogCQkJbXB0ZSA9IFBI
WVNfVE9fVk1fUEFHRShNSVBTX0tTRUcwX1RPX1BIWVMocHRldmEpKTsKIAkJCXBtYXAtPnBtX3B0
cGhpbnQgPSBtcHRlOwogCQl9CkBAIC0xMDgyLDcgKzEwOTEsNyBAQAogCS8qCiAJICogQ2FsY3Vs
YXRlIHBhZ2V0YWJsZSBwYWdlIGluZGV4CiAJICovCi0JcHRlcGluZGV4ID0gdmEgPj4gU0VHU0hJ
RlQ7CisJcHRlcGluZGV4ID0gcG1hcF9zZWdzaGlmdCh2YSk7CiByZXRyeToKIAkvKgogCSAqIEdl
dCB0aGUgcGFnZSBkaXJlY3RvcnkgZW50cnkKQEAgLTEyMDUsNyArMTIxNCw3IEBACiAKIAkJbmtw
dCsrOwogCQlwdGUgPSAocHRfZW50cnlfdCAqKXBhZ2V2YTsKLQkJc2VndGFiX3BkZShrZXJuZWxf
c2VnbWFwLCBrZXJuZWxfdm1fZW5kKSA9IChwZF9lbnRyeV90KXB0ZTsKKwkJc2VndGFiX3BkZShr
ZXJuZWxfc2VnbWFwLCBrZXJuZWxfdm1fZW5kKSA9IHB0ZTsKIAogCQkvKgogCQkgKiBUaGUgUls0
LTddPzAwIHN0b3JlcyBvbmx5IG9uZSBjb3B5IG9mIHRoZSBHbG9iYWwgYml0IGluCkBAIC0xNTI5
LDggKzE1MzgsOCBAQAogCQlnb3RvIG91dDsKIAl9CiAJZm9yICh2YSA9IHN2YTsgdmEgPCBldmE7
IHZhID0gbnZhKSB7Ci0JCWlmICghKnBtYXBfcGRlKHBtYXAsIHZhKSkgewotCQkJbnZhID0gbWlw
c19zZWd0cnVuYyh2YSArIE1JUFNfU0VHU0laRSk7CisJCWlmIChwbWFwX3NlZ21hcChwbWFwLCB2
YSkgPT0gTlVMTCkgeworCQkJbnZhID0gbWlwc19zZWd0cnVuYyh2YSArIE5CU0VHKTsKIAkJCWNv
bnRpbnVlOwogCQl9CiAJCXBtYXBfcmVtb3ZlX3BhZ2UocG1hcCwgdmEpOwpAQCAtMTY0Niw4ICsx
NjU1LDggQEAKIAkJLyoKIAkJICogSWYgc2VnbWVudCB0YWJsZSBlbnRyeSBpcyBlbXB0eSwgc2tp
cCB0aGlzIHNlZ21lbnQuCiAJCSAqLwotCQlpZiAoISpwbWFwX3BkZShwbWFwLCBzdmEpKSB7Ci0J
CQlzdmEgPSBtaXBzX3NlZ3RydW5jKHN2YSArIE1JUFNfU0VHU0laRSk7CisJCWlmIChwbWFwX3Nl
Z21hcChwbWFwLCBzdmEpID09IE5VTEwpIHsKKwkJCXN2YSA9IG1pcHNfc2VndHJ1bmMoc3ZhICsg
TkJTRUcpOwogCQkJY29udGludWU7CiAJCX0KIAkJLyoKQEAgLTE5MzQsNyArMTk0Myw3IEBACiAJ
CS8qCiAJCSAqIENhbGN1bGF0ZSBwYWdldGFibGUgcGFnZSBpbmRleAogCQkgKi8KLQkJcHRlcGlu
ZGV4ID0gdmEgPj4gU0VHU0hJRlQ7CisJCXB0ZXBpbmRleCA9IHBtYXBfc2Vnc2hpZnQodmEpOwog
CQlpZiAobXB0ZSAmJiAobXB0ZS0+cGluZGV4ID09IHB0ZXBpbmRleCkpIHsKIAkJCW1wdGUtPndp
cmVfY291bnQrKzsKIAkJfSBlbHNlIHsKQEAgLTI2MTksNyArMjYyOCw3IEBACiAKIAlydiA9IEZB
TFNFOwogCVBNQVBfTE9DSyhwbWFwKTsKLQlpZiAoKnBtYXBfcGRlKHBtYXAsIGFkZHIpKSB7CisJ
aWYgKHBtYXBfc2VnbWFwKHBtYXAsIGFkZHIpICE9IE5VTEwpIHsKIAkJcHRlID0gcG1hcF9wdGUo
cG1hcCwgYWRkcik7CiAJCXJ2ID0gKCpwdGUgPT0gMCk7CiAJfQo=
--e0cb4e887827a90f16048acf6235
Content-Type: text/x-patch; charset=US-ASCII; name="mips-cache-fix.patch"
Content-Disposition: attachment; filename="mips-cache-fix.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gbcfil6l5

SW5kZXg6IHN5cy9taXBzL21pcHMvY2FjaGVfbWlwc05OLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21p
cHMvbWlwcy9jYWNoZV9taXBzTk4uYwkocmV2aXNpb24gMjA5NTIxKQorKysgc3lzL21pcHMvbWlw
cy9jYWNoZV9taXBzTk4uYwkod29ya2luZyBjb3B5KQpAQCAtNDA0LDcgKzQwNCw3IEBACiB2b2lk
CiBtaXBzTk5fcGRjYWNoZV93Ymludl9yYW5nZV9pbmRleF8xNih2bV9vZmZzZXRfdCB2YSwgdm1f
c2l6ZV90IHNpemUpCiB7Ci0JdW5zaWduZWQgaW50IGV2YSwgdG1wdmE7CisJdm1fb2Zmc2V0X3Qg
ZXZhLCB0bXB2YTsKIAlpbnQgaSwgc3RyaWRlLCBsb29wY291bnQ7CiAKIAkvKgpAQCAtNDQ1LDcg
KzQ0NSw3IEBACiB2b2lkCiBtaXBzTk5fcGRjYWNoZV93Ymludl9yYW5nZV9pbmRleF8zMih2bV9v
ZmZzZXRfdCB2YSwgdm1fc2l6ZV90IHNpemUpCiB7Ci0JdW5zaWduZWQgaW50IGV2YSwgdG1wdmE7
CisJdm1fb2Zmc2V0X3QgZXZhLCB0bXB2YTsKIAlpbnQgaSwgc3RyaWRlLCBsb29wY291bnQ7CiAK
IAkvKgo=
--e0cb4e887827a90f16048acf6235
Content-Type: text/x-patch; charset=US-ASCII; name="rmi-other.patch"
Content-Disposition: attachment; filename="rmi-other.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gbcfily46

SW5kZXg6IHN5cy9taXBzL3JtaS94bHJfcGNpLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvcm1p
L3hscl9wY2kuYwkocmV2aXNpb24gMjA5NzU2KQorKysgc3lzL21pcHMvcm1pL3hscl9wY2kuYwko
d29ya2luZyBjb3B5KQpAQCAtMjIzLDcgKzIyMyw3IEBACiBwY2lfY2ZnX3JlYWRfMzJiaXQodWlu
dDMyX3QgYWRkcikKIHsKIAl1aW50MzJfdCB0ZW1wID0gMDsKLQl1aW50MzJfdCAqcCA9ICh1aW50
MzJfdCAqKSAoKHVpbnQzMl90KSB4bHJfcGNpX2NvbmZpZ19iYXNlICsgKGFkZHIgJiB+MykpOwor
CXVpbnQzMl90ICpwID0gKHVpbnQzMl90ICopeGxyX3BjaV9jb25maWdfYmFzZSArIGFkZHIgLyBz
aXplb2YodWludDMyX3QpOwogCXVpbnQ2NF90IGNlcnJfY3B1X2xvZyA9IDA7CiAKIAlkaXNhYmxl
X2FuZF9jbGVhcl9jYWNoZV9lcnJvcigpOwpAQCAtMjg1LDcgKzI4NSw3IEBACiAJCWRhdGEgPSB2
YWw7CiAJfQogCi0JcCA9ICh1aW50MzJfdCAqKSgodWludDMyX3QpIHhscl9wY2lfY29uZmlnX2Jh
c2UgKyAoY2ZnYWRkciAmIH4zKSk7CisJcCA9ICh1aW50MzJfdCAqKXhscl9wY2lfY29uZmlnX2Jh
c2UgKyBjZmdhZGRyIC8gc2l6ZW9mKHVpbnQzMl90KTsKIAkqcCA9IGJzd2FwMzIoZGF0YSk7CiAK
IAlyZXR1cm47CkBAIC00MTAsNyArNDEwLDcgQEAKIHN0YXRpYyB2b2lkCiBicmlkZ2VfcGNpZV9h
Y2sodm9pZCAqYXJnKQogewotCWludCBpcnEgPSAoaW50KWFyZzsKKwlpbnQgaXJxID0gKGludHB0
cl90KWFyZzsKIAl1aW50MzJfdCByZWc7CiAJeGxyX3JlZ190ICpwY2llX21taW9fbGUgPSB4bHJf
aW9fbW1pbyhYTFJfSU9fUENJRV8xX09GRlNFVCk7CiAKSW5kZXg6IHN5cy9taXBzL3JtaS9pb2Rp
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvcm1pL2lvZGkuYwkocmV2aXNpb24gMjA5NzU2KQor
Kysgc3lzL21pcHMvcm1pL2lvZGkuYwkod29ya2luZyBjb3B5KQpAQCAtMTE1LDcgKzExNSw3IEBA
CiAJCWludCBpcnE7CiAKIAkJLyogVGhpcyBpcyBhIGhhY2sgdG8gcGFzcyBpbiB0aGUgaXJxICov
Ci0JCWlycSA9IChpbnQpaXJlcy0+X19yX2k7CisJCWlycSA9IChpbnRwdHJfdClpcmVzLT5fX3Jf
aTsKIAkJaWYgKHJtaV9zcGluX211dGV4X3NhZmUpCiAJCQltdHhfbG9ja19zcGluKCZ4bHJfcGlj
X2xvY2spOwogCQlyZWcgPSB4bHJfcmVhZF9yZWcobW1pbywgUElDX0lSVF8xX0JBU0UgKyBpcnEg
LSBQSUNfSVJRX0JBU0UpOwpAQCAtMTc4LDEwICsxNzgsMTAgQEAKIAogCQlyZXMtPnJfYnVzdGFn
ID0gdWFydF9idXNfc3BhY2VfbWVtOwogCX0gZWxzZSBpZiAoc3RyY21wKGRldmljZV9nZXRfbmFt
ZShjaGlsZCksICJlaGNpIikgPT0gMCkgewotCQlyZXMtPnJfYnVzaGFuZGxlID0gMHhiZWYyNDAw
MDsKKwkJcmVzLT5yX2J1c2hhbmRsZSA9IE1JUFNfUEhZU19UT19LU0VHMSgweDFlZjI0MDAwKTsK
IAkJcmVzLT5yX2J1c3RhZyA9IHJtaV9wY2lfYnVzX3NwYWNlOwogCX0gZWxzZSBpZiAoc3RyY21w
KGRldmljZV9nZXRfbmFtZShjaGlsZCksICJjZmkiKSA9PSAwKSB7Ci0JCXJlcy0+cl9idXNoYW5k
bGUgPSAweGJjMDAwMDAwOworCQlyZXMtPnJfYnVzaGFuZGxlID0gTUlQU19QSFlTX1RPX0tTRUcx
KDB4MWMwMDAwMDApOwogCQlyZXMtPnJfYnVzdGFnID0gMDsKIAl9CiAJLyogcmVzLT5yX3N0YXJ0
ID0gKnJpZDsgKi8KSW5kZXg6IHN5cy9taXBzL3JtaS9kZXYveGxyL3JnZS5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHN5cy9taXBzL3JtaS9kZXYveGxyL3JnZS5jCShyZXZpc2lvbiAyMDk3NTYpCisrKyBzeXMv
bWlwcy9ybWkvZGV2L3hsci9yZ2UuYwkod29ya2luZyBjb3B5KQpAQCAtNTgzLDE0ICs1ODMsMTQg
QEAKIAlzdHJ1Y3QgbWJ1ZiAqbTsKIAogCXR4X2Rlc2MgPSAoc3RydWN0IHAyZF90eF9kZXNjICop
TUlQU19QSFlTX1RPX0tTRUcwKG1zZy0+bXNnMCk7Ci0JY2hrX2FkZHIgPSAoc3RydWN0IHAyZF90
eF9kZXNjICopKHVpbnQzMl90KSAodHhfZGVzYy0+ZnJhZ1tYTFJfTUFYX1RYX0ZSQUdTXSAmIDB4
MDAwMDAwMDBmZmZmZmZmZik7CisJY2hrX2FkZHIgPSAoc3RydWN0IHAyZF90eF9kZXNjICopKGlu
dHB0cl90KXR4X2Rlc2MtPmZyYWdbWExSX01BWF9UWF9GUkFHU107CiAJaWYgKHR4X2Rlc2MgIT0g
Y2hrX2FkZHIpIHsKIAkJcHJpbnRmKCJBZGRyZXNzICVwIGRvZXMgbm90IG1hdGNoIHdpdGggc3Rv
cmVkIGFkZHIgJXAgLSB3ZSBsZWFrZWQgYSBkZXNjcmlwdG9yXG4iLAogCQkgICAgdHhfZGVzYywg
Y2hrX2FkZHIpOwogCQlyZXR1cm47CiAJfQogCWlmIChyZWxfYnVmKSB7Ci0JCW0gPSAoc3RydWN0
IG1idWYgKikodWludDMyX3QpICh0eF9kZXNjLT5mcmFnW1hMUl9NQVhfVFhfRlJBR1MgKyAxXSAm
IDB4MDAwMDAwMDBmZmZmZmZmZik7CisJCW0gPSAoc3RydWN0IG1idWYgKikoaW50cHRyX3QpdHhf
ZGVzYy0+ZnJhZ1tYTFJfTUFYX1RYX0ZSQUdTICsgMV07CiAJCW1fZnJlZW0obSk7CiAJfQogCWZy
ZWVfcDJkX2Rlc2ModHhfZGVzYyk7CkBAIC02MjYsNyArNjI2LDcgQEAKIAkJICAgICh1X2xvbmcp
cGFkZHIsIG1hZyk7CiAJCXJldHVybjsKIAl9Ci0JbSA9IChzdHJ1Y3QgbWJ1ZiAqKXVtOworCW0g
PSAoc3RydWN0IG1idWYgKikoaW50cHRyX3QpdW07CiAJaWYgKG0gIT0gTlVMTCkKIAkJbV9mcmVl
bShtKTsKIH0KQEAgLTY0NCw5ICs2NDQsOSBAQAogCWlmIChtX25ldyA9PSBOVUxMKQogCQlyZXR1
cm4gTlVMTDsKIAotCW1fYWRqKG1fbmV3LCBYTFJfQ0FDSEVMSU5FX1NJWkUgLSAoKHVuc2lnbmVk
IGludCltX25ldy0+bV9kYXRhICYgMHgxZikpOworCW1fYWRqKG1fbmV3LCBYTFJfQ0FDSEVMSU5F
X1NJWkUgLSAoKHVpbnRwdHJfdCltX25ldy0+bV9kYXRhICYgMHgxZikpOwogCW1kID0gKHVuc2ln
bmVkIGludCAqKW1fbmV3LT5tX2RhdGE7Ci0JbWRbMF0gPSAodW5zaWduZWQgaW50KW1fbmV3Owkv
KiBCYWNrIFB0ciAqLworCW1kWzBdID0gKHVpbnRwdHJfdCltX25ldzsJLyogQmFjayBQdHIgKi8K
IAltZFsxXSA9IDB4ZjAwYmFkOwogCW1fYWRqKG1fbmV3LCBYTFJfQ0FDSEVMSU5FX1NJWkUpOwog
CkBAIC05OTYsNyArOTk2LDcgQEAKIAkJCWJ1Y2tldF9tYXAgfD0gKDFVTEwgPDwgYnVja2V0KTsK
IAkJfQogCX0KLQlwcmludGYoInJtaV94bHJfY29uZmlnX3BkZTogYnVja2V0X21hcD0lbGx4XG4i
LCBidWNrZXRfbWFwKTsKKwlwcmludGYoInJtaV94bHJfY29uZmlnX3BkZTogYnVja2V0X21hcD0l
anhcbiIsICh1aW50bWF4X3QpYnVja2V0X21hcCk7CiAKIAkvKiBidWNrZXRfbWFwID0gMHgxOyAq
LwogCXhscl93cml0ZV9yZWcocHJpdi0+bW1pbywgUl9QREVfQ0xBU1NfMCwgKGJ1Y2tldF9tYXAg
JiAweGZmZmZmZmZmKSk7CkBAIC0xNDgwLDggKzE0ODAsOCBAQAogCQkJbXNncm5nX2FjY2Vzc19k
aXNhYmxlKG1mbGFncyk7CiAJCQlyZWxlYXNlX3R4X2Rlc2MoJm1zZywgMCk7CiAJCQl4bHJfcmdl
X21zZ19zbmRfZmFpbGVkW3ZjcHVdKys7Ci0JCQlkYmdfbXNnKCJGYWlsZWQgcGFja2V0IHRvIGNw
dSAlZCwgcnYgPSAlZCwgc3RpZCAlZCwgbXNnMD0lbGx4XG4iLAotCQkJICAgIHZjcHUsIHJ2LCBz
dGlkLCBtc2cubXNnMCk7CisJCQlkYmdfbXNnKCJGYWlsZWQgcGFja2V0IHRvIGNwdSAlZCwgcnYg
PSAlZCwgc3RpZCAlZCwgbXNnMD0lanhcbiIsCisJCQkgICAgdmNwdSwgcnYsIHN0aWQsICh1aW50
bWF4X3QpbXNnLm1zZzApOwogCQkJcmV0dXJuIE1BQ19UWF9GQUlMOwogCQl9CiAJCW1zZ3JuZ19h
Y2Nlc3NfZGlzYWJsZShtZmxhZ3MpOwpAQCAtMTQ4OSw3ICsxNDg5LDggQEAKIAl9CiAKIAkvKiBT
ZW5kIHRoZSBwYWNrZXQgdG8gTUFDICovCi0JZGJnX21zZygiU2VudCB0eCBwYWNrZXQgdG8gc3Rp
ZCAlZCwgbXNnMD0lbGx4LCBtc2cxPSVsbHggXG4iLCBzdGlkLCBtc2cubXNnMCwgbXNnLm1zZzEp
OworCWRiZ19tc2coIlNlbnQgdHggcGFja2V0IHRvIHN0aWQgJWQsIG1zZzA9JWp4LCBtc2cxPSVq
eCBcbiIsIHN0aWQsIAorCSAgICAodWludG1heF90KW1zZy5tc2cwLCAodWludG1heF90KW1zZy5t
c2cxKTsKICNpZmRlZiBEVU1QX1BBQ0tFVFMKIAl7CiAJCWludCBpID0gMDsKQEAgLTE2MzgsOCAr
MTYzOSw4IEBACiAJaW50IHZjcHUgPSB4bHJfY3B1X2lkKCk7CiAJaW50IGNwdSA9IHhscl9jb3Jl
X2lkKCk7CiAKLQlkYmdfbXNnKCJtYWM6IGJ1Y2tldD0lZCwgc2l6ZT0lZCwgY29kZT0lZCwgc3Rp
ZD0lZCwgbXNnMD0lbGx4IG1zZzE9JWxseFxuIiwKLQkgICAgYnVja2V0LCBzaXplLCBjb2RlLCBz
dGlkLCBtc2ctPm1zZzAsIG1zZy0+bXNnMSk7CisJZGJnX21zZygibWFjOiBidWNrZXQ9JWQsIHNp
emU9JWQsIGNvZGU9JWQsIHN0aWQ9JWQsIG1zZzA9JWp4IG1zZzE9JWp4XG4iLAorCSAgICBidWNr
ZXQsIHNpemUsIGNvZGUsIHN0aWQsICh1aW50bWF4X3QpbXNnLT5tc2cwLCAodWludG1heF90KW1z
Zy0+bXNnMSk7CiAKIAlwaHlzX2FkZHIgPSAodWludDY0X3QpIChtc2ctPm1zZzAgJiAweGZmZmZm
ZmZmZTBVTEwpOwogCWxlbmd0aCA9IChtc2ctPm1zZzAgPj4gNDApICYgMHgzZmZmOwpAQCAtMTY3
MCw4ICsxNjcxLDggQEAKIAkJcmV0dXJuOwogCXByaXYgPSAmKHNjLT5wcml2KTsKIAotCWRiZ19t
c2coIm1zZzAgPSAlbGx4LCBzdGlkID0gJWQsIHBvcnQgPSAlZCwgYWRkcj0lbHgsIGxlbmd0aD0l
ZCwgY3RybD0lZFxuIiwKLQkgICAgbXNnLT5tc2cwLCBzdGlkLCBwb3J0LCBhZGRyLCBsZW5ndGgs
IGN0cmwpOworCWRiZ19tc2coIm1zZzAgPSAlangsIHN0aWQgPSAlZCwgcG9ydCA9ICVkLCBhZGRy
PSVseCwgbGVuZ3RoPSVkLCBjdHJsPSVkXG4iLAorCSAgICAodWludG1heF90KW1zZy0+bXNnMCwg
c3RpZCwgcG9ydCwgYWRkciwgbGVuZ3RoLCBjdHJsKTsKIAogCWlmIChjdHJsID09IENUUkxfUkVH
X0ZSRUUgfHwgY3RybCA9PSBDVFJMX0pVTUJPX0ZSRUUpIHsKIAkJeGxyX3JnZV90eF9va19kb25l
W3ZjcHVdKys7CkBAIC0xNjk4LDggKzE2OTksOCBAQAogCQlpZiAoKHByaXYtPmZyaW5fdG9fYmVf
c2VudFtjcHVdKSA+IE1BQ19GUklOX1RPX0JFX1NFTlRfVEhSRVNIT0xEKSB7CiAJCQltYWNfZnJp
bl9yZXBsZW5pc2goTlVMTCk7CiAJCX0KLQkJZGJnX21zZygiZ21hY18lZDogcnggcGFja2V0OiBw
aHlzX2FkZHIgPSAlbGx4LCBsZW5ndGggPSAleFxuIiwKLQkJICAgIHByaXYtPmluc3RhbmNlLCBw
aHlzX2FkZHIsIGxlbmd0aCk7CisJCWRiZ19tc2coImdtYWNfJWQ6IHJ4IHBhY2tldDogcGh5c19h
ZGRyID0gJWp4LCBsZW5ndGggPSAleFxuIiwKKwkJICAgIHByaXYtPmluc3RhbmNlLCAodWludG1h
eF90KXBoeXNfYWRkciwgbGVuZ3RoKTsKIAkJbWFjX3N0YXRzX2FkZChwcml2LT5zdGF0cy5yeF9w
YWNrZXRzLCAxKTsKIAkJbWFjX3N0YXRzX2FkZChwcml2LT5zdGF0cy5yeF9ieXRlcywgbGVuZ3Ro
KTsKIAkJeGxyX2luY19jb3VudGVyKE5FVElGX1JYKTsKQEAgLTE4ODcsNyArMTg4OCw3IEBACiAJ
ICogbm90ZSB0aGlzIGlzIGEgaGFjayB0byBwYXNzIHRoZSBpcnEgdG8gdGhlIGlvZGkgaW50ZXJy
dXB0IHNldHVwCiAJICogcm91dGluZXMKIAkgKi8KLQlzYy0+cmdlX2lycS5fX3JfaSA9IChzdHJ1
Y3QgcmVzb3VyY2VfaSAqKXNjLT5pcnE7CisJc2MtPnJnZV9pcnEuX19yX2kgPSAoc3RydWN0IHJl
c291cmNlX2kgKikoaW50cHRyX3Qpc2MtPmlycTsKIAogCXJldCA9IGJ1c19zZXR1cF9pbnRyKGRl
diwgJnNjLT5yZ2VfaXJxLCBJTlRSX0ZBU1QgfCBJTlRSX1RZUEVfTkVUIHwgSU5UUl9NUFNBRkUs
CiAJICAgIE5VTEwsIHJnZV9pbnRyLCBzYywgJnNjLT5yZ2VfaW50cmhhbmQpOwpAQCAtMjA0MCw3
ICsyMDQxLDcgQEAKIAltYWcgPSB4bHJfcGFkZHJfbHcocGFkZHIgLSBYTFJfQ0FDSEVMSU5FX1NJ
WkUgKyBzaXplb2YodWludDMyX3QpKTsKIAltaXBzX3dyX3N0YXR1cyhzcik7CiAKLQltID0gKHN0
cnVjdCBtYnVmICopdG07CisJbSA9IChzdHJ1Y3QgbWJ1ZiAqKShpbnRwdHJfdCl0bTsKIAlpZiAo
bWFnICE9IDB4ZjAwYmFkKSB7CiAJCS8qIHNvbWVib2R5IGVsc2UgcGFja2V0IEVycm9yIC0gRklY
TUUgaW4gaW50aWFsaXphdGlvbiAqLwogCQlwcmludGYoImNwdSAlZDogKkVSUk9SKiBOb3QgbXkg
cGFja2V0IHBhZGRyICVwXG4iLCB4bHJfY3B1X2lkKCksICh2b2lkICopcGFkZHIpOwpAQCAtMjQ1
Myw3ICsyNDU0LDcgQEAKIAkJcGFuaWMoIlVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHNw
aWxsIGFyZWEhXG4iKTsKIAl9CiAJcGh5c19hZGRyID0gdnRvcGh5cyhzcGlsbCk7Ci0JZGJnX21z
ZygiQWxsb2NhdGUgc3BpbGwgJWQgYnl0ZXMgYXQgJWxseFxuIiwgc2l6ZSwgcGh5c19hZGRyKTsK
KwlkYmdfbXNnKCJBbGxvY2F0ZSBzcGlsbCAlZCBieXRlcyBhdCAlanhcbiIsIHNpemUsICh1aW50
bWF4X3QpcGh5c19hZGRyKTsKIAl4bHJfd3JpdGVfcmVnKG1taW8sIHJlZ19zdGFydF8wLCAocGh5
c19hZGRyID4+IDUpICYgMHhmZmZmZmZmZik7CiAJeGxyX3dyaXRlX3JlZyhtbWlvLCByZWdfc3Rh
cnRfMSwgKHBoeXNfYWRkciA+PiAzNykgJiAweDA3KTsKIAl4bHJfd3JpdGVfcmVnKG1taW8sIHJl
Z19zaXplLCBzcGlsbF9zaXplKTsKSW5kZXg6IHN5cy9taXBzL3JtaS9vbl9jaGlwLmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gc3lzL21pcHMvcm1pL29uX2NoaXAuYwkocmV2aXNpb24gMjA5NzU2KQorKysgc3lz
L21pcHMvcm1pL29uX2NoaXAuYwkod29ya2luZyBjb3B5KQpAQCAtMjEwLDggKzIxMCw4IEBACiAK
IAkJCWlmICghdHhfc3RuX2hhbmRsZXJzW3R4X3N0aWRdLmFjdGlvbikgewogCQkJCXByaW50Zigi
WyVzXTogTm8gSGFuZGxlciBmb3IgbWVzc2FnZSBmcm9tIHN0bl9pZD0lZCwgYnVja2V0PSVkLCAi
Ci0JCQkJICAgICJzaXplPSVkLCBtc2cwPSVsbHgsIGRyb3BwaW5nIG1lc3NhZ2VcbiIsCi0JCQkJ
ICAgIF9fRlVOQ1RJT05fXywgdHhfc3RpZCwgYnVja2V0LCBzaXplLCBtc2cubXNnMCk7CisJCQkJ
ICAgICJzaXplPSVkLCBtc2cwPSVqeCwgZHJvcHBpbmcgbWVzc2FnZVxuIiwKKwkJCQkgICAgX19G
VU5DVElPTl9fLCB0eF9zdGlkLCBidWNrZXQsIHNpemUsICh1aW50bWF4X3QpbXNnLm1zZzApOwog
CQkJfSBlbHNlIHsKIAkJCQkvL3ByaW50ZigiWyVzXTogcnhfc3RpZCA9ICVkXG4iLCBfX0ZVTkNU
SU9OX18sIHJ4X3N0aWQpOwogCQkJCW1zZ3JuZ19mbGFnc19yZXN0b3JlKG1mbGFncyk7CkluZGV4
OiBzeXMvbWlwcy9ybWkveGxyX21hY2hkZXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9ybWkv
eGxyX21hY2hkZXAuYwkocmV2aXNpb24gMjA5NzU2KQorKysgc3lzL21pcHMvcm1pL3hscl9tYWNo
ZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTI2NSw3ICsyNjUsNiBAQAogCWluaXRfcGFyYW0yKHBo
eXNtZW0pOwogCiAJLyogWFhYOiBDYXRjaCAyMi4gU29tZXRoaW5nIHRvdWNoZXMgdGhlIHRsYi4g
Ki8KLQogCW1pcHNfY3B1X2luaXQoKTsKIAlwbWFwX2Jvb3RzdHJhcCgpOwogI2lmZGVmIEREQgpA
QCAtMjk0LDEzICsyOTMsMTMgQEAKICNlbmRpZgogCS8qIFhYWCBGSVhNRSB0aGUgY29kZSBiZWxv
dyBpcyBub3QgNjQgYml0IGNsZWFuICovCiAJLyogU2F2ZSBib290IGxvYWRlciBhbmQgb3RoZXIg
c3R1ZmYgZnJvbSBzY3JhdGNoIHJlZ3MgKi8KLQl4bHJfYm9vdDFfaW5mbyA9ICooc3RydWN0IGJv
b3QxX2luZm8gKilyZWFkX2MwX3JlZ2lzdGVyMzIoTUlQU19DT1BfMF9PU1NDUkFUQ0gsIDApOwor
CXhscl9ib290MV9pbmZvID0gKihzdHJ1Y3QgYm9vdDFfaW5mbyAqKShpbnRwdHJfdCkoaW50KXJl
YWRfYzBfcmVnaXN0ZXIzMihNSVBTX0NPUF8wX09TU0NSQVRDSCwgMCk7CiAJY3B1X21hc2tfaW5m
byA9IHJlYWRfYzBfcmVnaXN0ZXI2NChNSVBTX0NPUF8wX09TU0NSQVRDSCwgMSk7CiAJeGxyX29u
bGluZV9jcHVtYXNrID0gcmVhZF9jMF9yZWdpc3RlcjMyKE1JUFNfQ09QXzBfT1NTQ1JBVENILCAy
KTsKIAl4bHJfcnVuX21vZGUgPSByZWFkX2MwX3JlZ2lzdGVyMzIoTUlQU19DT1BfMF9PU1NDUkFU
Q0gsIDMpOwogCXhscl9hcmdjID0gcmVhZF9jMF9yZWdpc3RlcjMyKE1JUFNfQ09QXzBfT1NTQ1JB
VENILCA0KTsKLQl4bHJfYXJndiA9IChjaGFyICoqKXJlYWRfYzBfcmVnaXN0ZXIzMihNSVBTX0NP
UF8wX09TU0NSQVRDSCwgNSk7Ci0JeGxyX2VudnAgPSAoY2hhciAqKilyZWFkX2MwX3JlZ2lzdGVy
MzIoTUlQU19DT1BfMF9PU1NDUkFUQ0gsIDYpOworCXhscl9hcmd2ID0gKGNoYXIgKiopKGludHB0
cl90KShpbnQpcmVhZF9jMF9yZWdpc3RlcjMyKE1JUFNfQ09QXzBfT1NTQ1JBVENILCA1KTsKKwl4
bHJfZW52cCA9IChjaGFyICoqKShpbnRwdHJfdCkoaW50KXJlYWRfYzBfcmVnaXN0ZXIzMihNSVBT
X0NPUF8wX09TU0NSQVRDSCwgNik7CiAKIAkvKiBUT0RPOiBWZXJpZnkgdGhlIG1hZ2ljIG51bWJl
ciBoZXJlICovCiAJLyogRklYTUVMQVRFUjogeGxyX2Jvb3QxX2luZm8ubWFnaWNfbnVtYmVyICov
CkBAIC0zODcsOSArMzg2LDkgQEAKIAkJCQkJICogNjQgYml0ID4gNEdpZyBhbmQgd2UgYXJlIGlu
IDMyIGJpdCBtb2RlLgogCQkJCQkgKi8KIAkJCQkJcGh5c19hdmFpbFtqICsgMV0gPSAweGZmZmZm
MDAwOwotCQkJCQlwcmludGYoImJvb3QgbWFwIHNpemUgd2FzICVsbHhcbiIsIGJvb3RfbWFwLT5w
aHlzbWVtX21hcFtpXS5zaXplKTsKKwkJCQkJcHJpbnRmKCJib290IG1hcCBzaXplIHdhcyAlanhc
biIsIChpbnRtYXhfdClib290X21hcC0+cGh5c21lbV9tYXBbaV0uc2l6ZSk7CiAJCQkJCWJvb3Rf
bWFwLT5waHlzbWVtX21hcFtpXS5zaXplID0gcGh5c19hdmFpbFtqICsgMV0gLSBwaHlzX2F2YWls
W2pdOwotCQkJCQlwcmludGYoInJlZHVjZWQgdG8gJWxseFxuIiwgYm9vdF9tYXAtPnBoeXNtZW1f
bWFwW2ldLnNpemUpOworCQkJCQlwcmludGYoInJlZHVjZWQgdG8gJWp4XG4iLCAoaW50bWF4X3Qp
Ym9vdF9tYXAtPnBoeXNtZW1fbWFwW2ldLnNpemUpOwogCQkJCX0KIAkJCQlwcmludGYoIk5leHQg
c2VnbWVudCA6IGFkZHI6JXAgLT4gJXAgXG4iLAogCQkJCSAgICAgICAodm9pZCAqKXBoeXNfYXZh
aWxbal0sIAo=
--e0cb4e887827a90f16048acf6235
Content-Type: text/x-patch; charset=US-ASCII; name="mips-rmi-kx-enable.patch"
Content-Disposition: attachment; filename="mips-rmi-kx-enable.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gbcfimoc7

SW5kZXg6IHN5cy9taXBzL21pcHMvdm1fbWFjaGRlcC5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBz
L21pcHMvdm1fbWFjaGRlcC5jCShyZXZpc2lvbiAyMDk2MzUpCisrKyBzeXMvbWlwcy9taXBzL3Zt
X21hY2hkZXAuYwkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw3IEBACiAJcGNiMi0+cGNi
X2NvbnRleHRbUENCX1JFR19TMF0gPSAocmVnaXN0ZXJfdCkoaW50cHRyX3QpZm9ya19yZXR1cm47
CiAJcGNiMi0+cGNiX2NvbnRleHRbUENCX1JFR19TMV0gPSAocmVnaXN0ZXJfdCkoaW50cHRyX3Qp
dGQyOwogCXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdfUzJdID0gKHJlZ2lzdGVyX3QpKGludHB0
cl90KXRkMi0+dGRfZnJhbWU7Ci0JcGNiMi0+cGNiX2NvbnRleHRbUENCX1JFR19TUl0gPSBTUl9J
TlRfTUFTSyAmIG1pcHNfcmRfc3RhdHVzKCk7CisJcGNiMi0+cGNiX2NvbnRleHRbUENCX1JFR19T
Ul0gPSAoTUlQU19TUl9LWCB8IFNSX0lOVF9NQVNLKSAmIG1pcHNfcmRfc3RhdHVzKCk7CiAJLyoK
IAkgKiBGUkVFQlNEX0RFVkVMT1BFUlNfRklYTUU6CiAJICogU2V0dXAgYW55IG90aGVyIENQVS1T
cGVjaWZpYyByZWdpc3RlcnMgKE5vdCBNSVBTIFN0YW5kYXJkKQpAQCAtMTYyLDcgKzE2Miw2IEBA
CiAjaWZkZWYgVEFSR0VUX09DVEVPTgogCXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdfU1JdIHw9
IE1JUFNfU1JfQ09QXzJfQklUIHwgTUlQUzMyX1NSX1BYIHwgTUlQU19TUl9VWCB8IE1JUFNfU1Jf
S1ggfCBNSVBTX1NSX1NYOwogI2VuZGlmCi0KIH0KIAogLyoKQEAgLTM1MSw3ICszNTAsNyBAQAog
CXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdfUzFdID0gKHJlZ2lzdGVyX3QpKGludHB0cl90KXRk
OwogCXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdfUzJdID0gKHJlZ2lzdGVyX3QpKGludHB0cl90
KXRkLT50ZF9mcmFtZTsKIAkvKiBEb250IHNldCBJRSBiaXQgaW4gU1IuIHNjaGVkIGxvY2sgcmVs
ZWFzZSB3aWxsIHRha2UgY2FyZSBvZiBpdCAqLwotCXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdf
U1JdID0gU1JfSU5UX01BU0sgJiBtaXBzX3JkX3N0YXR1cygpOworCXBjYjItPnBjYl9jb250ZXh0
W1BDQl9SRUdfU1JdID0gKE1JUFNfU1JfS1ggfCBTUl9JTlRfTUFTSykgJiBtaXBzX3JkX3N0YXR1
cygpOwogCiAjaWZkZWYgVEFSR0VUX09DVEVPTgogCXBjYjItPnBjYl9jb250ZXh0W1BDQl9SRUdf
U1JdIHw9IE1JUFNfU1JfQ09QXzJfQklUIHwgTUlQU19TUl9DT1BfMF9CSVQgfApJbmRleDogc3lz
L21pcHMvbWlwcy9leGNlcHRpb24uUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9taXBzL2V4Y2Vw
dGlvbi5TCShyZXZpc2lvbiAyMDk2MzUpCisrKyBzeXMvbWlwcy9taXBzL2V4Y2VwdGlvbi5TCSh3
b3JraW5nIGNvcHkpCkBAIC0yMzUsNyArMjM1LDcgQEAKICNkZWZpbmUJU0FWRV9SRUcocmVnLCBv
ZmZzLCBiYXNlKSBcCiAJUkVHX1MJcmVnLCBDQUxMRlJBTUVfU0laICsgKFNaUkVHICogb2Zmcykg
KGJhc2UpCiAKLSNpZmRlZiBUQVJHRVRfT0NURU9OCisjaWYgZGVmaW5lZChUQVJHRVRfT0NURU9O
KQogI2RlZmluZSBDTEVBUl9TVEFUVVMgXAogCW1mYzAgICAgYTAsIENPUF8wX1NUQVRVU19SRUcg
ICAgO1wKIAlsaSAgICAgIGEyLCAoTUlQU19TUl9LWCB8IE1JUFNfU1JfU1ggfCBNSVBTX1NSX1VY
KSA7IFwKQEAgLTI0NCw2ICsyNDQsMTUgQEAKIAlhbmQgICAgIGEwLCBhMCwgYTIgICAgICAgICAg
ICAgIDsgXAogICAgICAgICBtdGMwICAgIGEwLCBDT1BfMF9TVEFUVVNfUkVHICAgIDsgXAogCUlU
TEJOT1BGSVgKKyNlbGlmIGRlZmluZWQoVEFSR0VUX1hMUl9YTFMpCisjZGVmaW5lIENMRUFSX1NU
QVRVUyBcCisJbWZjMCAgICBhMCwgQ09QXzBfU1RBVFVTX1JFRyAgICA7XAorCWxpICAgICAgYTIs
IChNSVBTX1NSX0tYIHwgTUlQU19TUl9DT1BfMl9CSVQpIDsgXAorCW9yICAgICAgYTAsIGEwLCBh
MgkgICAgICAgIDsgXAorCWxpICAgICAgYTIsIH4oTUlQU19TUl9JTlRfSUUgfCBNSVBTX1NSX0VY
TCB8IFNSX0tTVV9VU0VSKSAgIDsgXAorCWFuZCAgICAgYTAsIGEwLCBhMiAgICAgICAgICAgICAg
OyBcCisgICAgICAgIG10YzAgICAgYTAsIENPUF8wX1NUQVRVU19SRUcgICAgOyBcCisJSVRMQk5P
UEZJWAogI2Vsc2UKICNkZWZpbmUgQ0xFQVJfU1RBVFVTIFwKIAltZmMwICAgIGEwLCBDT1BfMF9T
VEFUVVNfUkVHICAgIDtcCkBAIC00NzUsOCArNDg0LDEwIEBACiAJUFRSX0xBCWdwLCBfQ19MQUJF
TChfZ3ApCSMgc3dpdGNoIHRvIGtlcm5lbCBHUAogIyBUdXJuIG9mZiBmcHUgYW5kIGVudGVyIGtl
cm5lbCBtb2RlCiAJYW5kCXQwLCBhMCwgfihTUl9DT1BfMV9CSVQgfCBTUl9FWEwgfCBTUl9LU1Vf
TUFTSyB8IFNSX0lOVF9FTkFCKQotI2lmZGVmIFRBUkdFVF9PQ1RFT04KKyNpZiBkZWZpbmVkKFRB
UkdFVF9PQ1RFT04pCiAJb3IgICAgICB0MCwgdDAsIChNSVBTX1NSX0tYIHwgTUlQU19TUl9TWCB8
IE1JUFNfU1JfVVggfCBNSVBTMzJfU1JfUFgpCisjZWxpZiBkZWZpbmVkKFRBUkdFVF9YTFJfWExT
KQkKKwlvciAgICAgIHQwLCB0MCwgKE1JUFNfU1JfS1ggfCBNSVBTX1NSX0NPUF8yX0JJVCkKICNl
bmRpZgkKIAltdGMwCXQwLCBDT1BfMF9TVEFUVVNfUkVHCiAJUFRSX0FERFUgYTAsIGsxLCBVX1BD
Ql9SRUdTCkBAIC02OTMsNiArNzA0LDggQEAKIAlhbmQJdDAsIGEwLCB+KFNSX0NPUF8xX0JJVCB8
IFNSX0VYTCB8IFNSX0lOVF9FTkFCIHwgU1JfS1NVX01BU0spCiAjaWZkZWYgVEFSR0VUX09DVEVP
TgogCW9yICAgICAgdDAsIHQwLCAoTUlQU19TUl9LWCB8IE1JUFNfU1JfU1ggfCBNSVBTX1NSX1VY
IHwgTUlQUzMyX1NSX1BYKQorI2VsaWYgZGVmaW5lZChUQVJHRVRfWExSX1hMUykJCisJb3IgICAg
ICB0MCwgdDAsIChNSVBTX1NSX0tYIHwgTUlQU19TUl9DT1BfMl9CSVQpCiAjZW5kaWYJCiAJbXRj
MAl0MCwgQ09QXzBfU1RBVFVTX1JFRwogCUlUTEJOT1BGSVgKSW5kZXg6IHN5cy9taXBzL21pcHMv
bG9jb3JlLlMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvbWlwcy9sb2NvcmUuUwkocmV2aXNpb24g
MjA5NjM1KQorKysgc3lzL21pcHMvbWlwcy9sb2NvcmUuUwkod29ya2luZyBjb3B5KQpAQCAtOTks
NyArOTksNyBAQAogCiAJLyogUmVzZXQgdGhlc2UgYml0cyAqLwogICAgICAgICBsaQl0MCwgfihN
SVBTX1NSX0RFIHwgTUlQU19TUl9TT0ZUX1JFU0VUIHwgTUlQU19TUl9FUkwgfCBNSVBTX1NSX0VY
TCB8IE1JUFNfU1JfSU5UX0lFKQotI2VsaWYgZGVmaW5lZCAoQ1BVX1hMUikKKyNlbGlmIGRlZmlu
ZWQgKFRBUkdFVF9YTFJfWExTKQogCS8qIFNldCB0aGVzZSBiaXRzICovCiAgICAgICAgIGxpCXQx
LCAoTUlQU19TUl9DT1BfMl9CSVQgfCBNSVBTX1NSX0NPUF8wX0JJVCB8IE1JUFNfU1JfS1gpCiAK
--e0cb4e887827a90f16048acf6235
Content-Type: text/x-patch; charset=US-ASCII; name="pmap-n64.patch"
Content-Disposition: attachment; filename="pmap-n64.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gbcfina08

SW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvY3B1cmVncy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBz
L2luY2x1ZGUvY3B1cmVncy5oCShyZXZpc2lvbiAyMDk3NTYpCisrKyBzeXMvbWlwcy9pbmNsdWRl
L2NwdXJlZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsOSBAQAogICogQ2FjaGluZyBv
ZiBtYXBwZWQgYWRkcmVzc2VzIGlzIGNvbnRyb2xsZWQgYnkgYml0cyBpbiB0aGUgVExCIGVudHJ5
LgogICovCiAKKyNkZWZpbmUJTUlQU19LU0VHMF9MQVJHRVNUX1BIWVMgICAgICAgICAoMHgyMDAw
MDAwMCkKKyNkZWZpbmUJTUlQU19QSFlTX01BU0sJCQkoMHgxZmZmZmZmZikKKwogI2lmICFkZWZp
bmVkKF9MT0NPUkUpCiAjZGVmaW5lCU1JUFNfS1VTRUdfU1RBUlQJCTB4MDAwMDAwMDAKICNkZWZp
bmUJTUlQU19LU0VHMF9TVEFSVAkJKChpbnRwdHJfdCkoaW50MzJfdCkweDgwMDAwMDAwKQpAQCAt
OTEsOCArOTQsMTkgQEAKIAogI2RlZmluZSBNSVBTX0tTRUcyX1NUQVJUCQlNSVBTX0tTU0VHX1NU
QVJUCiAjZGVmaW5lIE1JUFNfS1NFRzJfRU5ECQkJTUlQU19LU1NFR19FTkQKLSNlbmRpZgogCisj
ZGVmaW5lCU1JUFNfUEhZU19UT19LU0VHMCh4KQkJKCh1aW50cHRyX3QpKHgpIHwgTUlQU19LU0VH
MF9TVEFSVCkKKyNkZWZpbmUJTUlQU19QSFlTX1RPX0tTRUcxKHgpCQkoKHVpbnRwdHJfdCkoeCkg
fCBNSVBTX0tTRUcxX1NUQVJUKQorI2RlZmluZQlNSVBTX0tTRUcwX1RPX1BIWVMoeCkJCSgodWlu
dHB0cl90KSh4KSAmIE1JUFNfUEhZU19NQVNLKQorI2RlZmluZQlNSVBTX0tTRUcxX1RPX1BIWVMo
eCkJCSgodWludHB0cl90KSh4KSAmIE1JUFNfUEhZU19NQVNLKQorCisjZGVmaW5lCU1JUFNfSVNf
S1NFRzBfQUREUih4KQkJCQkJXAorCSgoKHZtX29mZnNldF90KSh4KSA+PSBNSVBTX0tTRUcwX1NU
QVJUKSAmJgkJXAorCSAgICAoKHZtX29mZnNldF90KSh4KSA8PSBNSVBTX0tTRUcwX0VORCkpCisj
ZGVmaW5lCU1JUFNfSVNfS1NFRzFfQUREUih4KQkJCQkJXAorCSgoKHZtX29mZnNldF90KSh4KSA+
PSBNSVBTX0tTRUcxX1NUQVJUKSAmJgkJXAorCSAgICAoKHZtX29mZnNldF90KSh4KSA8PSBNSVBT
X0tTRUcxX0VORCkpCisKICNkZWZpbmUJTUlQU19YS1BIWVNfU1RBUlQJCTB4ODAwMDAwMDAwMDAw
MDAwMAogI2RlZmluZQlNSVBTX1hLUEhZU19FTkQJCQkweGJmZmZmZmZmZmZmZmZmZmYKIApAQCAt
MTAxLDE0ICsxMTUsMjEgQEAKIAogI2RlZmluZQlNSVBTX1BIWVNfVE9fWEtQSFlTKGNjYSx4KSBc
CiAJKCgweDJVTEwgPDwgNjIpIHwgKCh1bnNpZ25lZCBsb25nIGxvbmcpKGNjYSkgPDwgNTkpIHwg
KHgpKQotI2RlZmluZQlNSVBTX1hLUEhZU19UT19QSFlTKHgpCSgoeCkgJiAweDA3ZmZmZmZmZmZm
ZmZmZmZVTEwpCisjZGVmaW5lCU1JUFNfUEhZU19UT19YS1BIWVNfQ0FDSEVEKHgpIFwKKwkoKDB4
MlVMTCA8PCA2MikgfCAoKHVuc2lnbmVkIGxvbmcgbG9uZykoTUlQU19YS1BIWVNfQ0NBX0NOQykg
PDwgNTkpIHwgKHgpKQorI2RlZmluZQlNSVBTX1BIWVNfVE9fWEtQSFlTX1VOQ0FDSEVEKHgpIFwK
KwkoKDB4MlVMTCA8PCA2MikgfCAoKHVuc2lnbmVkIGxvbmcgbG9uZykoTUlQU19YS1BIWVNfQ0NB
X1VDKSA8PCA1OSkgfCAoeCkpCiAKKyNkZWZpbmUJTUlQU19YS1BIWVNfVE9fUEhZUyh4KQkJKCh4
KSAmIDB4MDdmZmZmZmZmZmZmZmZmZlVMTCkKKwogI2RlZmluZQlNSVBTX1hVU0VHX1NUQVJUCQkw
eDAwMDAwMDAwMDAwMDAwMDAKICNkZWZpbmUJTUlQU19YVVNFR19FTkQJCQkweDAwMDAwMTAwMDAw
MDAwMDAKIAogI2RlZmluZQlNSVBTX1hLU0VHX1NUQVJUCQkweGMwMDAwMDAwMDAwMDAwMDAKICNk
ZWZpbmUJTUlQU19YS1NFR19FTkQJCQkweGMwMDAwMGZmODAwMDAwMDAKIAorI2VuZGlmCisKIC8q
IENQVSBkZXBlbmRlbnQgbXRjMCBoYXphcmQgaG9vayAqLwogI2lmZGVmIFRBUkdFVF9PQ1RFT04K
ICNkZWZpbmUJQ09QMF9TWU5DICBub3A7IG5vcDsgbm9wOyBub3A7IG5vcDsKSW5kZXg6IHN5cy9t
aXBzL2luY2x1ZGUvY3B1LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvaW5jbHVkZS9jcHUuaAko
cmV2aXNpb24gMjA5NzU2KQorKysgc3lzL21pcHMvaW5jbHVkZS9jcHUuaAkod29ya2luZyBjb3B5
KQpAQCAtNDksMjMgKzQ5LDYgQEAKIAogI2luY2x1ZGUgPG1hY2hpbmUvZW5kaWFuLmg+CiAKLSNk
ZWZpbmUJTUlQU19LU0VHMF9MQVJHRVNUX1BIWVMgICAgICAgICAoMHgyMDAwMDAwMCkKLSNkZWZp
bmUJTUlQU19QSFlTX01BU0sJCQkoMHgxZmZmZmZmZikKLQotI2RlZmluZQlNSVBTX1BIWVNfVE9f
S1NFRzAoeCkJCSgodWludHB0cl90KSh4KSB8IE1JUFNfS1NFRzBfU1RBUlQpCi0jZGVmaW5lCU1J
UFNfUEhZU19UT19LU0VHMSh4KQkJKCh1aW50cHRyX3QpKHgpIHwgTUlQU19LU0VHMV9TVEFSVCkK
LSNkZWZpbmUJTUlQU19LU0VHMF9UT19QSFlTKHgpCQkoKHVpbnRwdHJfdCkoeCkgJiBNSVBTX1BI
WVNfTUFTSykKLSNkZWZpbmUJTUlQU19LU0VHMV9UT19QSFlTKHgpCQkoKHVpbnRwdHJfdCkoeCkg
JiBNSVBTX1BIWVNfTUFTSykKLQotI2RlZmluZQlNSVBTX0lTX0tTRUcwX0FERFIoeCkJCQkJCVwK
LQkoKCh2bV9vZmZzZXRfdCkoeCkgPj0gTUlQU19LU0VHMF9TVEFSVCkgJiYJCVwKLQkgICAgKCh2
bV9vZmZzZXRfdCkoeCkgPD0gTUlQU19LU0VHMF9FTkQpKQotI2RlZmluZQlNSVBTX0lTX0tTRUcx
X0FERFIoeCkJCQkJCVwKLQkoKCh2bV9vZmZzZXRfdCkoeCkgPj0gTUlQU19LU0VHMV9TVEFSVCkg
JiYJCVwKLQkgICAgKCh2bV9vZmZzZXRfdCkoeCkgPD0gTUlQU19LU0VHMV9FTkQpKQotI2RlZmlu
ZQlNSVBTX0lTX1ZBTElEX1BUUih4KQkJKE1JUFNfSVNfS1NFRzBfQUREUih4KSB8fCBcCi0JCQkJ
CQlNSVBTX0lTX0tTRUcxX0FERFIoeCkpCi0KIC8qCiAgKiAgU3RhdHVzIHJlZ2lzdGVyLgogICov
CkluZGV4OiBzeXMvbWlwcy9pbmNsdWRlL3B0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL2lu
Y2x1ZGUvcHRlLmgJKHJldmlzaW9uIDIwOTc1NikKKysrIHN5cy9taXBzL2luY2x1ZGUvcHRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTczLDggKzczLDI0IEBACiAgKiBOb3RlIHRoYXQgaW4gRnJlZUJT
RCwgd2UgbWFwIDIgVExCIHBhZ2VzIGlzIGVxdWFsIHRvIDEgVk0gcGFnZS4KICAqLwogI2RlZmlu
ZQlUTEJISV9BU0lEX01BU0sJCSgweGZmKQorI2lmIGRlZmluZWQoX19taXBzX242NCkKKyNkZWZp
bmUJVExCSElfUl9TSElGVAkJNjIKKyNkZWZpbmUJVExCSElfUl9VU0VSCQkoMHgwMFVMIDw8IFRM
QkhJX1JfU0hJRlQpCisjZGVmaW5lCVRMQkhJX1JfU1VQRVJWSVNPUgkoMHgwMVVMIDw8IFRMQkhJ
X1JfU0hJRlQpCisjZGVmaW5lCVRMQkhJX1JfS0VSTkVMCQkoMHgwM1VMIDw8IFRMQkhJX1JfU0hJ
RlQpCisjZGVmaW5lCVRMQkhJX1JfTUFTSwkJKDB4MDNVTCA8PCBUTEJISV9SX1NISUZUKQorI2Rl
ZmluZQlUTEJISV9WQV9SKHZhKQkJKCh2YSkgJiBUTEJISV9SX01BU0spCisjZGVmaW5lCVRMQkhJ
X0ZJTExfU0hJRlQJNDAKKyNkZWZpbmUJVExCSElfVlBOMl9TSElGVAkoVExCX1BBR0VfU0hJRlQg
KyAxKQorI2RlZmluZQlUTEJISV9WUE4yX01BU0sJCSgoKH4oKDFVTCA8PCBUTEJISV9WUE4yX1NI
SUZUKSAtIDEpKSA8PCAoNjMgLSBUTEJISV9GSUxMX1NISUZUKSkgPj4gKDYzIC0gVExCSElfRklM
TF9TSElGVCkpCisjZGVmaW5lCVRMQkhJX1ZBX1RPX1ZQTjIodmEpCSgodmEpICYgVExCSElfVlBO
Ml9NQVNLKQorI2RlZmluZQlUTEJISV9FTlRSWSh2YSwgYXNpZCkJKChUTEJISV9WQV9SKCh2YSkp
KSAvKiBSZWdpb24uICovIHwgXAorCQkJCSAoVExCSElfVkFfVE9fVlBOMigodmEpKSkgLyogVlBO
Mi4gKi8gfCBcCisJCQkJICgoYXNpZCkgJiBUTEJISV9BU0lEX01BU0spKQorI2Vsc2UKICNkZWZp
bmUJVExCSElfUEFHRV9NQVNLCQkoMiAqIFBBR0VfU0laRSAtIDEpCiAjZGVmaW5lCVRMQkhJX0VO
VFJZKHZhLCBhc2lkKQkoKCh2YSkgJiB+VExCSElfUEFHRV9NQVNLKSB8ICgoYXNpZCkgJiBUTEJI
SV9BU0lEX01BU0spKQorI2VuZGlmCiAKICNpZm5kZWYgX0xPQ09SRQogdHlwZWRlZgl1aW50MzJf
dCBwdF9lbnRyeV90OwpJbmRleDogc3lzL21pcHMvbWlwcy9wbWFwLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
c3lzL21pcHMvbWlwcy9wbWFwLmMJKHJldmlzaW9uIDIwOTc1NikKKysrIHN5cy9taXBzL21pcHMv
cG1hcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4LDExIEBACiAjZGVmaW5lCXBtYXBf
c2Vnc2hpZnQodikJKCgodikgPj4gU0VHU0hJRlQpICYgKE5QREVQRyAtIDEpKQogI2RlZmluZQlz
ZWd0YWJfcGRlKG0sIHYpCSgobSlbcG1hcF9zZWdzaGlmdCgodikpXSkKIAorI2lmIGRlZmluZWQo
X19taXBzX242NCkKKyNkZWZpbmUJTlVTRVJQR1RCTFMJCShOUERFUEcpCisjZWxzZQogI2RlZmlu
ZQlOVVNFUlBHVEJMUwkJKHBtYXBfc2Vnc2hpZnQoVk1fTUFYVVNFUl9BRERSRVNTKSkKKyNlbmRp
ZgogI2RlZmluZQltaXBzX3NlZ3RydW5jKHZhKQkoKHZhKSAmIH5TRUdPRlNFVCkKICNkZWZpbmUJ
aXNfa2VybmVsX3BtYXAoeCkJKCh4KSA9PSBrZXJuZWxfcG1hcCkKIApAQCAtMzEwLDcgKzMxMCw3
IEBACiB9CiAKIC8qCi0gKglCb290c3RyYXAgdGhlIHN5c3RlbSBlbm91Z2ggdG8gcnVuIHdpdGgg
dmlydHVhbCBtZW1vcnkuICBUaGlzCisgKiBCb290c3RyYXAgdGhlIHN5c3RlbSBlbm91Z2ggdG8g
cnVuIHdpdGggdmlydHVhbCBtZW1vcnkuICBUaGlzCiAgKiBhc3N1bWVzIHRoYXQgdGhlIHBoeXNf
YXZhaWwgYXJyYXkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuCiAgKi8KIHZvaWQKQEAgLTMzMCwxNCAr
MzMwLDExIEBACiAJCXBoeXNfYXZhaWxbaV0gPSByb3VuZF9wYWdlKHBoeXNfYXZhaWxbaV0pOwog
CQlwaHlzX2F2YWlsW2kgKyAxXSA9IHRydW5jX3BhZ2UocGh5c19hdmFpbFtpICsgMV0pOwogCi0J
CWlmIChwaHlzX2F2YWlsW2kgKyAxXSA+PSBNSVBTX0tTRUcwX0xBUkdFU1RfUEhZUykKLQkJCW1l
bW9yeV9sYXJnZXJfdGhhbl81MTJtZWcrKzsKIAkJaWYgKGkgPCAyKQogCQkJY29udGludWU7CiAJ
CWlmIChwaHlzX2F2YWlsW2kgLSAyXSA+IHBoeXNfYXZhaWxbaV0pIHsKIAkJCXZtX3BhZGRyX3Qg
cHRlbXBbMl07CiAKLQogCQkJcHRlbXBbMF0gPSBwaHlzX2F2YWlsW2kgKyAwXTsKIAkJCXB0ZW1w
WzFdID0gcGh5c19hdmFpbFtpICsgMV07CiAKQEAgLTM1MCw2ICszNDcsMTEgQEAKIAkJfQogCX0K
IAorI2lmICFkZWZpbmVkKF9fbWlwc19uNjQpCisJaWYgKHBoeXNfYXZhaWxbaSAtIDFdID49IE1J
UFNfS1NFRzBfTEFSR0VTVF9QSFlTKQorCQltZW1vcnlfbGFyZ2VyX3RoYW5fNTEybWVnID0gMTsK
KyNlbmRpZgorCiAJLyoKIAkgKiBDb3B5IHRoZSBwaHlzX2F2YWlsW10gYXJyYXkgYmVmb3JlIHdl
IHN0YXJ0IHN0ZWFsaW5nIG1lbW9yeSBmcm9tIGl0LgogCSAqLwpAQCAtMzg0LDcgKzM4Niw2IEBA
CiAJICovCiAJa3N0YWNrMCA9IHBtYXBfc3RlYWxfbWVtb3J5KEtTVEFDS19QQUdFUyA8PCBQQUdF
X1NISUZUKTsKIAotCiAJdmlydHVhbF9hdmFpbCA9IFZNX01JTl9LRVJORUxfQUREUkVTUzsKIAl2
aXJ0dWFsX2VuZCA9IFZNX01BWF9LRVJORUxfQUREUkVTUzsKIApAQCAtNzU4LDExICs3NTksMjEg
QEAKICAqCXVwZGF0ZSAnKnZpcnQnIHdpdGggdGhlIGZpcnN0IHVzYWJsZSBhZGRyZXNzIGFmdGVy
IHRoZSBtYXBwZWQKICAqCXJlZ2lvbi4KICAqLworI2lmIGRlZmluZWQoX19taXBzX242NCkKIHZt
X29mZnNldF90CiBwbWFwX21hcCh2bV9vZmZzZXRfdCAqdmlydCwgdm1fb2Zmc2V0X3Qgc3RhcnQs
IHZtX29mZnNldF90IGVuZCwgaW50IHByb3QpCiB7CisJcmV0dXJuIChNSVBTX1BIWVNfVE9fWEtQ
SFlTX0NBQ0hFRChzdGFydCkpOworfQorI2Vsc2UKK3ZtX29mZnNldF90CitwbWFwX21hcCh2bV9v
ZmZzZXRfdCAqdmlydCwgdm1fb2Zmc2V0X3Qgc3RhcnQsIHZtX29mZnNldF90IGVuZCwgaW50IHBy
b3QpCit7CiAJdm1fb2Zmc2V0X3QgdmEsIHN2YTsKIAorCWlmIChlbmQgPD0gTUlQU19LU0VHMF9M
QVJHRVNUX1BIWVMpCisJCXJldHVybiAoTUlQU19QSFlTX1RPX0tTRUcwKHN0YXJ0KSk7CisKIAl2
YSA9IHN2YSA9ICp2aXJ0OwogCXdoaWxlIChzdGFydCA8IGVuZCkgewogCQlwbWFwX2tlbnRlcih2
YSwgc3RhcnQpOwpAQCAtNzcyLDYgKzc4Myw3IEBACiAJKnZpcnQgPSB2YTsKIAlyZXR1cm4gKHN2
YSk7CiB9CisjZW5kaWYKIAogLyoKICAqIEFkZCBhIGxpc3Qgb2Ygd2lyZWQgcGFnZXMgdG8gdGhl
IGt2YQpAQCAtMjAyNyw5ICsyMDM5LDIwIEBACiAgKiBNYWtlIGEgdGVtcG9yYXJ5IG1hcHBpbmcg
Zm9yIGEgcGh5c2ljYWwgYWRkcmVzcy4gIFRoaXMgaXMgb25seSBpbnRlbmRlZAogICogdG8gYmUg
dXNlZCBmb3IgcGFuaWMgZHVtcHMuCiAgKi8KKyNpZiBkZWZpbmVkKF9fbWlwc19uNjQpCiB2b2lk
ICoKIHBtYXBfa2VudGVyX3RlbXBvcmFyeSh2bV9wYWRkcl90IHBhLCBpbnQgaSkKIHsKKwlyZXR1
cm4gKCh2b2lkICopTUlQU19QSFlTX1RPX1hLUEhZU19DQUNIRUQocGEpKTsKK30KK3ZvaWQKK3Bt
YXBfa2VudGVyX3RlbXBvcmFyeV9mcmVlKHZtX3BhZGRyX3QgcGEpCit7Cit9CisjZWxzZQordm9p
ZCAqCitwbWFwX2tlbnRlcl90ZW1wb3Jhcnkodm1fcGFkZHJfdCBwYSwgaW50IGkpCit7CiAJdm1f
b2Zmc2V0X3QgdmE7CiAJcmVnaXN0ZXJfdCBpbnRyOwogCWlmIChpICE9IDApCkBAIC0yMDg3LDYg
KzIxMTAsNyBAQAogCQlzeXNtLT52YWxpZDEgPSAwOwogCX0KIH0KKyNlbmRpZgogCiAvKgogICog
TW92ZWQgdGhlIGNvZGUgdG8gTWFjaGluZSBJbmRlcGVuZGVudApAQCAtMjE5MywxMSArMjIxNywy
MyBAQAogICoJcG1hcF96ZXJvX3BhZ2UgemVyb3MgdGhlIHNwZWNpZmllZCBoYXJkd2FyZSBwYWdl
IGJ5IG1hcHBpbmcKICAqCXRoZSBwYWdlIGludG8gS1ZNIGFuZCB1c2luZyBiemVybyB0byBjbGVh
ciBpdHMgY29udGVudHMuCiAgKi8KKyNpZiBkZWZpbmVkIChfX21pcHNfbjY0KQogdm9pZAogcG1h
cF96ZXJvX3BhZ2Uodm1fcGFnZV90IG0pCiB7CiAJdm1fb2Zmc2V0X3QgdmE7CiAJdm1fcGFkZHJf
dCBwaHlzID0gVk1fUEFHRV9UT19QSFlTKG0pOworCisJdmEgPSBNSVBTX1BIWVNfVE9fWEtQSFlT
X0NBQ0hFRChwaHlzKTsKKwliemVybygoY2FkZHJfdCl2YSwgUEFHRV9TSVpFKTsKKwltaXBzX2Rj
YWNoZV93Ymludl9yYW5nZSh2YSwgUEFHRV9TSVpFKTsKK30KKyNlbHNlCit2b2lkCitwbWFwX3pl
cm9fcGFnZSh2bV9wYWdlX3QgbSkKK3sKKwl2bV9vZmZzZXRfdCB2YTsKKwl2bV9wYWRkcl90IHBo
eXMgPSBWTV9QQUdFX1RPX1BIWVMobSk7CiAJcmVnaXN0ZXJfdCBpbnRyOwogCiAJaWYgKHBoeXMg
PCBNSVBTX0tTRUcwX0xBUkdFU1RfUEhZUykgewpAQCAtMjIxNCwxOCArMjI1MCwzMCBAQAogCQlQ
TUFQX0xNRU1fVU5NQVAoKTsKIAl9CiB9Ci0KKyNlbmRpZgogLyoKICAqCXBtYXBfemVyb19wYWdl
X2FyZWEgemVyb3MgdGhlIHNwZWNpZmllZCBoYXJkd2FyZSBwYWdlIGJ5IG1hcHBpbmcKICAqCXRo
ZSBwYWdlIGludG8gS1ZNIGFuZCB1c2luZyBiemVybyB0byBjbGVhciBpdHMgY29udGVudHMuCiAg
KgogICoJb2ZmIGFuZCBzaXplIG1heSBub3QgY292ZXIgYW4gYXJlYSBiZXlvbmQgYSBzaW5nbGUg
aGFyZHdhcmUgcGFnZS4KICAqLworI2lmIGRlZmluZWQgKF9fbWlwc19uNjQpCiB2b2lkCiBwbWFw
X3plcm9fcGFnZV9hcmVhKHZtX3BhZ2VfdCBtLCBpbnQgb2ZmLCBpbnQgc2l6ZSkKIHsKIAl2bV9v
ZmZzZXRfdCB2YTsKIAl2bV9wYWRkcl90IHBoeXMgPSBWTV9QQUdFX1RPX1BIWVMobSk7CisKKwl2
YSA9IE1JUFNfUEhZU19UT19YS1BIWVNfQ0FDSEVEKHBoeXMpOworCWJ6ZXJvKChjaGFyICopKGNh
ZGRyX3QpdmEgKyBvZmYsIHNpemUpOworCW1pcHNfZGNhY2hlX3diaW52X3JhbmdlKHZhICsgb2Zm
LCBzaXplKTsKK30KKyNlbHNlCit2b2lkCitwbWFwX3plcm9fcGFnZV9hcmVhKHZtX3BhZ2VfdCBt
LCBpbnQgb2ZmLCBpbnQgc2l6ZSkKK3sKKwl2bV9vZmZzZXRfdCB2YTsKKwl2bV9wYWRkcl90IHBo
eXMgPSBWTV9QQUdFX1RPX1BIWVMobSk7CiAJcmVnaXN0ZXJfdCBpbnRyOwogCiAJaWYgKHBoeXMg
PCBNSVBTX0tTRUcwX0xBUkdFU1RfUEhZUykgewpAQCAtMjI0MSwxMiArMjI4OSwyNSBAQAogCQlQ
TUFQX0xNRU1fVU5NQVAoKTsKIAl9CiB9CisjZW5kaWYKIAorI2lmIGRlZmluZWQgKF9fbWlwc19u
NjQpCiB2b2lkCiBwbWFwX3plcm9fcGFnZV9pZGxlKHZtX3BhZ2VfdCBtKQogewogCXZtX29mZnNl
dF90IHZhOwogCXZtX3BhZGRyX3QgcGh5cyA9IFZNX1BBR0VfVE9fUEhZUyhtKTsKKworCXZhID0g
TUlQU19QSFlTX1RPX1hLUEhZU19DQUNIRUQocGh5cyk7CisJYnplcm8oKGNhZGRyX3QpdmEsIFBB
R0VfU0laRSk7CisJbWlwc19kY2FjaGVfd2JpbnZfcmFuZ2UodmEsIFBBR0VfU0laRSk7Cit9Cisj
ZWxzZQordm9pZAorcG1hcF96ZXJvX3BhZ2VfaWRsZSh2bV9wYWdlX3QgbSkKK3sKKwl2bV9vZmZz
ZXRfdCB2YTsKKwl2bV9wYWRkcl90IHBoeXMgPSBWTV9QQUdFX1RPX1BIWVMobSk7CiAJcmVnaXN0
ZXJfdCBpbnRyOwogCiAJaWYgKHBoeXMgPCBNSVBTX0tTRUcwX0xBUkdFU1RfUEhZUykgewpAQCAt
MjI2Miw2ICsyMzIzLDcgQEAKIAkJUE1BUF9MTUVNX1VOTUFQKCk7CiAJfQogfQorI2VuZGlmCiAK
IC8qCiAgKglwbWFwX2NvcHlfcGFnZSBjb3BpZXMgdGhlIHNwZWNpZmllZCAobWFjaGluZSBpbmRl
cGVuZGVudCkKQEAgLTIyNjksMTIgKzIzMzEsMjggQEAKICAqCWJjb3B5IHRvIGNvcHkgdGhlIHBh
Z2UsIG9uZSBtYWNoaW5lIGRlcGVuZGVudCBwYWdlIGF0IGEKICAqCXRpbWUuCiAgKi8KKyNpZiBk
ZWZpbmVkIChfX21pcHNfbjY0KQogdm9pZAogcG1hcF9jb3B5X3BhZ2Uodm1fcGFnZV90IHNyYywg
dm1fcGFnZV90IGRzdCkKIHsKIAl2bV9vZmZzZXRfdCB2YV9zcmMsIHZhX2RzdDsKIAl2bV9wYWRk
cl90IHBoeV9zcmMgPSBWTV9QQUdFX1RPX1BIWVMoc3JjKTsKIAl2bV9wYWRkcl90IHBoeV9kc3Qg
PSBWTV9QQUdFX1RPX1BIWVMoZHN0KTsKKworCXBtYXBfZmx1c2hfcHZjYWNoZShzcmMpOworCW1p
cHNfZGNhY2hlX3diaW52X3JhbmdlX2luZGV4KE1JUFNfUEhZU19UT19YS1BIWVNfQ0FDSEVEKHBo
eV9kc3QpLCBQQUdFX1NJWkUpOworCXZhX3NyYyA9IE1JUFNfUEhZU19UT19YS1BIWVNfQ0FDSEVE
KHBoeV9zcmMpOworCXZhX2RzdCA9IE1JUFNfUEhZU19UT19YS1BIWVNfQ0FDSEVEKHBoeV9kc3Qp
OworCWJjb3B5KChjYWRkcl90KXZhX3NyYywgKGNhZGRyX3QpdmFfZHN0LCBQQUdFX1NJWkUpOwor
CW1pcHNfZGNhY2hlX3diaW52X3JhbmdlKHZhX2RzdCwgUEFHRV9TSVpFKTsKK30KKyNlbHNlCit2
b2lkCitwbWFwX2NvcHlfcGFnZSh2bV9wYWdlX3Qgc3JjLCB2bV9wYWdlX3QgZHN0KQoreworCXZt
X29mZnNldF90IHZhX3NyYywgdmFfZHN0OworCXZtX3BhZGRyX3QgcGh5X3NyYyA9IFZNX1BBR0Vf
VE9fUEhZUyhzcmMpOworCXZtX3BhZGRyX3QgcGh5X2RzdCA9IFZNX1BBR0VfVE9fUEhZUyhkc3Qp
OwogCXJlZ2lzdGVyX3QgaW50cjsKIAogCWlmICgocGh5X3NyYyA8IE1JUFNfS1NFRzBfTEFSR0VT
VF9QSFlTKSAmJiAocGh5X2RzdCA8IE1JUFNfS1NFRzBfTEFSR0VTVF9QSFlTKSkgewpAQCAtMjI5
OSw2ICsyMzc3LDcgQEAKIAkJUE1BUF9MTUVNX1VOTUFQKCk7CiAJfQogfQorI2VuZGlmCiAKIC8q
CiAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHBtYXAncyBwdiBpcyBvbmUgb2YgdGhlIGZpcnN0CkBA
IC0yNzA1LDkgKzI3ODQsMjEgQEAKICAqIHJvdXRpbmUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBm
b3IgbWFwcGluZyBkZXZpY2UgbWVtb3J5LAogICogTk9UIHJlYWwgbWVtb3J5LgogICovCisjaWYg
ZGVmaW5lZChfX21pcHNfbjY0KQogdm9pZCAqCiBwbWFwX21hcGRldih2bV9vZmZzZXRfdCBwYSwg
dm1fc2l6ZV90IHNpemUpCiB7CisJcmV0dXJuICgodm9pZCAqKU1JUFNfUEhZU19UT19YS1BIWVNf
VU5DQUNIRUQocGEpKTsKK30KKwordm9pZAorcG1hcF91bm1hcGRldih2bV9vZmZzZXRfdCB2YSwg
dm1fc2l6ZV90IHNpemUpCit7Cit9CisjZWxzZQordm9pZCAqCitwbWFwX21hcGRldih2bV9vZmZz
ZXRfdCBwYSwgdm1fc2l6ZV90IHNpemUpCit7CiAgICAgICAgIHZtX29mZnNldF90IHZhLCB0bXB2
YSwgb2Zmc2V0OwogCiAJLyogCkBAIC0yNzUxLDYgKzI4NDIsNyBAQAogCQlwbWFwX2tyZW1vdmUo
dG1wdmEpOwogCWttZW1fZnJlZShrZXJuZWxfbWFwLCBiYXNlLCBzaXplKTsKIH0KKyNlbmRpZgog
CiAvKgogICogcGVyZm9ybSB0aGUgcG1hcCB3b3JrIGZvciBtaW5jb3JlCkBAIC0zMDY3LDYgKzMx
NTksNyBAQAogCVBIWVNfVE9fVk1fUEFHRShwYSktPm1kLnB2X2ZsYWdzIHw9IChQVl9UQUJMRV9S
RUYgfCBQVl9UQUJMRV9NT0QpOwogfQogCisKIC8qCiAgKglSb3V0aW5lOglwbWFwX2tleHRyYWN0
CiAgKglGdW5jdGlvbjoKQEAgLTMwNzYsNDEgKzMxNjksNjggQEAKICAvKiBQTUFQX0lOTElORSAq
LyB2bV9vZmZzZXRfdAogcG1hcF9rZXh0cmFjdCh2bV9vZmZzZXRfdCB2YSkKIHsKLQl2bV9vZmZz
ZXRfdCBwYSA9IDA7CisJaW50IG1hcHBlZDsKIAotCWlmICh2YSA8IE1JUFNfS1NFRzBfU1RBUlQp
IHsKLQkJLyogdXNlciB2aXJ0dWFsIGFkZHJlc3MgKi8KKwkvKgorCSAqIEZpcnN0LCB0aGUgZGly
ZWN0LW1hcHBlZCByZWdpb25zLgorCSAqLworI2lmIGRlZmluZWQoX19taXBzX242NCkKKwlpZiAo
dmEgPj0gTUlQU19YS1BIWVNfU1RBUlQgJiYgdmEgPCBNSVBTX1hLUEhZU19FTkQpCisJCXJldHVy
biAoTUlQU19YS1BIWVNfVE9fUEhZUyh2YSkpOworI2VuZGlmCisKKwlpZiAodmEgPj0gTUlQU19L
U0VHMF9TVEFSVCAmJiB2YSA8IE1JUFNfS1NFRzBfRU5EKQorCQlyZXR1cm4gKE1JUFNfS1NFRzBf
VE9fUEhZUyh2YSkpOworCisJaWYgKHZhID49IE1JUFNfS1NFRzFfU1RBUlQgJiYgdmEgPCBNSVBT
X0tTRUcxX0VORCkKKwkJcmV0dXJuIChNSVBTX0tTRUcxX1RPX1BIWVModmEpKTsKKworCS8qCisJ
ICogVXNlciB2aXJ0dWFsIGFkZHJlc3Nlcy4KKwkgKi8KKwlpZiAodmEgPCBWTV9NQVhVU0VSX0FE
RFJFU1MpIHsKIAkJcHRfZW50cnlfdCAqcHRlcDsKIAogCQlpZiAoY3VycHJvYyAmJiBjdXJwcm9j
LT5wX3Ztc3BhY2UpIHsKIAkJCXB0ZXAgPSBwbWFwX3B0ZSgmY3VycHJvYy0+cF92bXNwYWNlLT52
bV9wbWFwLCB2YSk7Ci0JCQlpZiAocHRlcCkKLQkJCQlwYSA9IFRMQkxPX1BURV9UT19QQSgqcHRl
cCkgfAotCQkJCSAgICAodmEgJiBQQUdFX01BU0spOworCQkJaWYgKHB0ZXApIHsKKwkJCQlyZXR1
cm4gKFRMQkxPX1BURV9UT19QQSgqcHRlcCkgfAorCQkJCSAgICAodmEgJiBQQUdFX01BU0spKTsK
KwkJCX0KKwkJCXJldHVybiAoMCk7CiAJCX0KLQl9IGVsc2UgaWYgKHZhID49IE1JUFNfS1NFRzBf
U1RBUlQgJiYKLQkgICAgdmEgPCBNSVBTX0tTRUcxX1NUQVJUKQotCQlwYSA9IE1JUFNfS1NFRzBf
VE9fUEhZUyh2YSk7Ci0JZWxzZSBpZiAodmEgPj0gTUlQU19LU0VHMV9TVEFSVCAmJgotCSAgICB2
YSA8IE1JUFNfS1NFRzJfU1RBUlQpCi0JCXBhID0gTUlQU19LU0VHMV9UT19QSFlTKHZhKTsKLQll
bHNlIGlmICh2YSA+PSBNSVBTX0tTRUcyX1NUQVJUICYmIHZhIDwgVk1fTUFYX0tFUk5FTF9BRERS
RVNTKSB7CisJfQorCisJLyoKKwkgKiBTaG91bGQgYmUga2VybmVsIHZpcnR1YWwgaGVyZSwgb3Ro
ZXJ3aXNlIGZhaWwKKwkgKi8KKwltYXBwZWQgPSAodmEgPj0gTUlQU19LU0VHMl9TVEFSVCB8fCB2
YSA8IE1JUFNfS1NFRzJfRU5EKTsKKyNpZiBkZWZpbmVkKF9fbWlwc19uNjQpCisJbWFwcGVkID0g
bWFwcGVkIHx8ICh2YSA+PSBNSVBTX1hLU0VHX1NUQVJUIHx8IHZhIDwgTUlQU19YS1NFR19FTkQp
OworI2VuZGlmIAorCS8qCisJICogS2VybmVsIHZpcnR1YWwuCisJICovCisKKwlpZiAobWFwcGVk
KSB7CiAJCXB0X2VudHJ5X3QgKnB0ZXA7CiAKIAkJLyogSXMgdGhlIGtlcm5lbCBwbWFwIGluaXRp
YWxpemVkPyAqLwogCQlpZiAoa2VybmVsX3BtYXAtPnBtX2FjdGl2ZSkgewotCQkJLyogSXRzIGlu
c2lkZSB0aGUgdmlydHVhbCBhZGRyZXNzIHJhbmdlICovCisJCQkvKiBJdCdzIGluc2lkZSB0aGUg
dmlydHVhbCBhZGRyZXNzIHJhbmdlICovCiAJCQlwdGVwID0gcG1hcF9wdGUoa2VybmVsX3BtYXAs
IHZhKTsKIAkJCWlmIChwdGVwKSB7CiAJCQkJcmV0dXJuIChUTEJMT19QVEVfVE9fUEEoKnB0ZXAp
IHwKIAkJCQkgICAgKHZhICYgUEFHRV9NQVNLKSk7CiAJCQl9Ci0JCQlyZXR1cm4gKDApOwogCQl9
CisJCXJldHVybiAoMCk7CiAJfQotCXJldHVybiBwYTsKKworCXBhbmljKCIlcyBmb3IgdW5rbm93
biBhZGRyZXNzIHNwYWNlICVwLiIsIF9fZnVuY19fLCAodm9pZCAqKXZhKTsKIH0KIAorCiB2b2lk
IAogcG1hcF9mbHVzaF9wdmNhY2hlKHZtX3BhZ2VfdCBtKQogewo=
--e0cb4e887827a90f16048acf6235
Content-Type: text/x-patch; charset=US-ASCII; name="runq-64.patch"
Content-Disposition: attachment; filename="runq-64.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gbcfinv29

SW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvcnVucS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL2lu
Y2x1ZGUvcnVucS5oCShyZXZpc2lvbiAyMDk3NTYpCisrKyBzeXMvbWlwcy9pbmNsdWRlL3J1bnEu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDE2IEBACiAjaWZuZGVmIF9NQUNISU5FX1JV
TlFfSF8KICNkZWZpbmUJX01BQ0hJTkVfUlVOUV9IXwogCisjaWYgZGVmaW5lZChfX21pcHNfbjY0
KQorI2RlZmluZQlSUUJfTEVOCQkoMSkJCS8qIE51bWJlciBvZiBwcmlvcml0eSBzdGF0dXMgd29y
ZHMuICovCisjZGVmaW5lCVJRQl9MMkJQVwkoNikJCS8qIExvZzIoc2l6ZW9mKHJxYl93b3JkX3Qp
ICogTkJCWSkpLiAqLworI2Vsc2UKICNkZWZpbmUJUlFCX0xFTgkJKDIpCQkvKiBOdW1iZXIgb2Yg
cHJpb3JpdHkgc3RhdHVzIHdvcmRzLiAqLwogI2RlZmluZQlSUUJfTDJCUFcJKDUpCQkvKiBMb2cy
KHNpemVvZihycWJfd29yZF90KSAqIE5CQlkpKS4gKi8KKyNlbmRpZgogI2RlZmluZQlSUUJfQlBX
CQkoMTw8UlFCX0wyQlBXKQkvKiBCaXRzIGluIGFuIHJxYl93b3JkX3QuICovCiAKLSNkZWZpbmUJ
UlFCX0JJVChwcmkpCSgxIDw8ICgocHJpKSAmIChSUUJfQlBXIC0gMSkpKQorI2RlZmluZQlSUUJf
QklUKHByaSkJKDF1bCA8PCAoKHByaSkgJiAoUlFCX0JQVyAtIDEpKSkKICNkZWZpbmUJUlFCX1dP
UkQocHJpKQkoKHByaSkgPj4gUlFCX0wyQlBXKQogCiAjZGVmaW5lCVJRQl9GRlMod29yZCkJKGZm
cyh3b3JkKSAtIDEpCkBAIC00Miw2ICs0NywxMCBAQAogLyoKICAqIFR5cGUgb2YgcnVuIHF1ZXVl
IHN0YXR1cyB3b3JkLgogICovCi10eXBlZGVmIHVfaW50MzJfdAlycWJfd29yZF90OworI2lmIGRl
ZmluZWQoX19taXBzX242NCkKK3R5cGVkZWYJdV9pbnQ2NF90CXJxYl93b3JkX3Q7CisjZWxzZQor
dHlwZWRlZgl1X2ludDMyX3QJcnFiX3dvcmRfdDsKKyNlbmRpZgogCiAjZW5kaWYK
--e0cb4e887827a90f16048acf6235
Content-Type: text/x-patch; charset=US-ASCII; name="ldscript-64.patch"
Content-Disposition: attachment; filename="ldscript-64.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gbcfkj1x10

SW5kZXg6IHN5cy9jb25mL2xkc2NyaXB0Lm1pcHMuNjQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL2NvbmYv
bGRzY3JpcHQubWlwcy42NAkocmV2aXNpb24gMCkKKysrIHN5cy9jb25mL2xkc2NyaXB0Lm1pcHMu
NjQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAxIEBACisvKi0KKyAqIENvcHlyaWdodCAoYykg
MjAwMSwgMjAwNCwgMjAwOCwgSnVuaXBlciBOZXR3b3JrcywgSW5jLgorICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIEp1bmlwZXIg
TmV0d29ya3MsIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqICAgIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgSlVOSVBFUiBORVRXT1JL
UyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBKVU5J
UEVSIE5FVFdPUktTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1B
R0UuCisgKgorICoJSk5QUjogbGRzY3JpcHQubWlwcyx2IDEuMyAyMDA2LzEwLzExIDA2OjEyOjA0
CisgKiAkRnJlZUJTRDogaGVhZC9zeXMvY29uZi9sZHNjcmlwdC5taXBzLm4zMiAyMDk1MDIgMjAx
MC0wNi0yNCAxMDoxNDozMVogamNoYW5kcmEgJAorICovCisKK09VVFBVVF9GT1JNQVQoImVsZjY0
LXRyYWRiaWdtaXBzIiwgImVsZjY0LXRyYWRiaWdtaXBzIiwgImVsZjY0LXRyYWRsaXR0bGVtaXBz
IikKK09VVFBVVF9BUkNIKG1pcHMpCitFTlRSWShfc3RhcnQpCitTRUFSQ0hfRElSKC91c3IvbGli
KTsKKy8qIERvIHdlIG5lZWQgYW55IG9mIHRoZXNlIGZvciBlbGY/CisgICBfX0RZTkFNSUMgPSAw
OworUFJPVklERSAoX0RZTkFNSUMgPSAwKTsKKyovCitTRUNUSU9OUworeworICAvKiBSZWFkLW9u
bHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KKyAgLiA9IEtFUk5MT0FE
QUREUiArIFNJWkVPRl9IRUFERVJTOworICAudGV4dCAgICAgIDoKKyAgeworICAgICooLnRyYXAp
CisgICAgKigudGV4dCkKKyAgICAqKC50ZXh0LiopCisgICAgKiguc3R1YikKKyAgICAvKiAuZ251
Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8K
KyAgICAqKC5nbnUud2FybmluZykKKyAgICAqKC5nbnUubGlua29uY2UudC4qKQorICB9ID0weDEw
MDAwMDAKKyAgLmZpbmkgICAgICA6CisgIHsKKyAgICBLRUVQICgqKC5maW5pKSkKKyAgfSA9MHgx
MDAwMDAwCisgIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKKyAgUFJPVklERSAoX2V0ZXh0ID0gLik7
CisgIFBST1ZJREUgKGV0ZXh0ID0gLik7CisgIC5yb2RhdGEgICA6IHsgKigucm9kYXRhKSAqKC5y
b2RhdGEuKikgKiguZ251LmxpbmtvbmNlLnIuKikgfQorICAucm9kYXRhMSAgIDogeyAqKC5yb2Rh
dGExKSB9CisgIC5pbnRlcnAgICAgIDogeyAqKC5pbnRlcnApIAl9CisgIC5oYXNoICAgICAgICAg
IDogeyAqKC5oYXNoKQkJfQorICAuZHluc3ltICAgICAgICA6IHsgKiguZHluc3ltKQkJfQorICAu
ZHluc3RyICAgICAgICA6IHsgKiguZHluc3RyKQkJfQorICAuZ251LnZlcnNpb24gICA6IHsgKigu
Z251LnZlcnNpb24pCX0KKyAgLmdudS52ZXJzaW9uX2QgICA6IHsgKiguZ251LnZlcnNpb25fZCkJ
fQorICAuZ251LnZlcnNpb25fciAgIDogeyAqKC5nbnUudmVyc2lvbl9yKQl9CisgIC5yZWwuaW5p
dCAgICAgIDogeyAqKC5yZWwuaW5pdCkJfQorICAucmVsYS5pbml0ICAgICA6IHsgKigucmVsYS5p
bml0KQl9CisgIC5yZWwudGV4dCAgICAgIDoKKyAgICB7CisgICAgICAqKC5yZWwudGV4dCkKKyAg
ICAgICooLnJlbC50ZXh0LiopCisgICAgICAqKC5yZWwuZ251LmxpbmtvbmNlLnQuKikKKyAgICB9
CisgIC5yZWxhLnRleHQgICAgIDoKKyAgICB7CisgICAgICAqKC5yZWxhLnRleHQpCisgICAgICAq
KC5yZWxhLnRleHQuKikKKyAgICAgICooLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKKyAgICB9Cisg
IC5yZWwuZmluaSAgICAgIDogeyAqKC5yZWwuZmluaSkJfQorICAucmVsYS5maW5pICAgICA6IHsg
KigucmVsYS5maW5pKQl9CisgIC5yZWwucm9kYXRhICAgIDoKKyAgICB7CisgICAgICAqKC5yZWwu
cm9kYXRhKQorICAgICAgKigucmVsLnJvZGF0YS4qKQorICAgICAgKigucmVsLmdudS5saW5rb25j
ZS5yLiopCisgICAgfQorICAucmVsYS5yb2RhdGEgICA6CisgICAgeworICAgICAgKigucmVsYS5y
b2RhdGEpCisgICAgICAqKC5yZWxhLnJvZGF0YS4qKQorICAgICAgKigucmVsYS5nbnUubGlua29u
Y2Uuci4qKQorICAgIH0KKyAgLnJlbC5kYXRhICAgICAgOgorICAgIHsKKyAgICAgICooLnJlbC5k
YXRhKQorICAgICAgKigucmVsLmRhdGEuKikKKyAgICAgICooLnJlbC5nbnUubGlua29uY2UuZC4q
KQorICAgIH0KKyAgLnJlbGEuZGF0YSAgICAgOgorICAgIHsKKyAgICAgICooLnJlbGEuZGF0YSkK
KyAgICAgICooLnJlbGEuZGF0YS4qKQorICAgICAgKigucmVsYS5nbnUubGlua29uY2UuZC4qKQor
ICAgIH0KKyAgLnJlbC5jdG9ycyAgICAgOiB7ICooLnJlbC5jdG9ycykJfQorICAucmVsYS5jdG9y
cyAgICA6IHsgKigucmVsYS5jdG9ycykJfQorICAucmVsLmR0b3JzICAgICA6IHsgKigucmVsLmR0
b3JzKQl9CisgIC5yZWxhLmR0b3JzICAgIDogeyAqKC5yZWxhLmR0b3JzKQl9CisgIC5yZWwuZ290
ICAgICAgIDogeyAqKC5yZWwuZ290KQkJfQorICAucmVsYS5nb3QgICAgICA6IHsgKigucmVsYS5n
b3QpCQl9CisgIC5yZWwuc2RhdGEgICAgIDoKKyAgICB7CisgICAgICAqKC5yZWwuc2RhdGEpCisg
ICAgICAqKC5yZWwuc2RhdGEuKikKKyAgICAgICooLnJlbC5nbnUubGlua29uY2Uucy4qKQorICAg
IH0KKyAgLnJlbGEuc2RhdGEgICAgIDoKKyAgICB7CisgICAgICAqKC5yZWxhLnNkYXRhKQorICAg
ICAgKigucmVsYS5zZGF0YS4qKQorICAgICAgKigucmVsYS5nbnUubGlua29uY2Uucy4qKQorICAg
IH0KKyAgLnJlbC5zYnNzICAgICAgOgorICAgIHsgCisgICAgICAqKC5yZWwuc2JzcykKKyAgICAg
ICooLnJlbC5zYnNzLiopCisgICAgICAqKC5yZWwuZ251LmxpbmtvbmNlLnNiLiopCisgICAgfQor
ICAucmVsYS5zYnNzICAgICA6CisgICAgeworICAgICAgKigucmVsYS5zYnNzKQorICAgICAgKigu
cmVsYS5zYnNzLiopCisgICAgICAqKC5yZWwuZ251LmxpbmtvbmNlLnNiLiopCisgICAgfQorICAu
cmVsLnNkYXRhMiAgICA6IAorICAgIHsgCisgICAgICAqKC5yZWwuc2RhdGEyKQorICAgICAgKigu
cmVsLnNkYXRhMi4qKQorICAgICAgKigucmVsLmdudS5saW5rb25jZS5zMi4qKQorICAgIH0KKyAg
LnJlbGEuc2RhdGEyICAgOiAKKyAgICB7CisgICAgICAqKC5yZWxhLnNkYXRhMikKKyAgICAgICoo
LnJlbGEuc2RhdGEyLiopCisgICAgICAqKC5yZWxhLmdudS5saW5rb25jZS5zMi4qKQorICAgIH0K
KyAgLnJlbC5zYnNzMiAgICAgOiAKKyAgICB7IAorICAgICAgKigucmVsLnNic3MyKQkKKyAgICAg
ICooLnJlbC5zYnNzMi4qKQorICAgICAgKigucmVsLmdudS5saW5rb25jZS5zYjIuKikKKyAgICB9
CisgIC5yZWxhLnNic3MyICAgIDogCisgICAgeyAKKyAgICAgICooLnJlbGEuc2JzczIpCQorICAg
ICAgKigucmVsYS5zYnNzMi4qKQorICAgICAgKigucmVsYS5nbnUubGlua29uY2Uuc2IyLiopCisg
ICAgfQorICAucmVsLmJzcyAgICAgICA6IAorICAgIHsgCisgICAgICAqKC5yZWwuYnNzKQorICAg
ICAgKigucmVsLmJzcy4qKQorICAgICAgKigucmVsLmdudS5saW5rb25jZS5iLiopCisgICAgfQor
ICAucmVsYS5ic3MgICAgICA6IAorICAgIHsgCisgICAgICAqKC5yZWxhLmJzcykKKyAgICAgICoo
LnJlbGEuYnNzLiopCisgICAgICAqKC5yZWxhLmdudS5saW5rb25jZS5iLiopCisgICAgfQorICAu
cmVsLnBsdCAgICAgICA6IHsgKigucmVsLnBsdCkJCX0KKyAgLnJlbGEucGx0ICAgICAgOiB7ICoo
LnJlbGEucGx0KQkJfQorICAuaW5pdCAgICAgICAgICA6IAorICB7IAorICAgIEtFRVAgKCooLmlu
aXQpKQorICB9ID0weDEwMDAwMDAKKyAgLnJlZ2luZm8gOiB7ICooLnJlZ2luZm8pIH0KKyAgLnNk
YXRhMiAgIDogeyAqKC5zZGF0YTIpICooLnNkYXRhMi4qKSAqKC5nbnUubGlua29uY2UuczIuKikg
fQorICAuc2JzczIgICA6IHsgKiguc2JzczIpICooLnNic3MyLiopICooLmdudS5saW5rb25jZS5z
YjIuKikgfQorICAuID0gQUxJR04oMHgyMDAwKSArICguICYgKDB4MjAwMCAtIDEpKTsKKyAgLmRh
dGEgICAgOgorICB7CisgICAgKiguZGF0YSkKKyAgICAqKC5kYXRhLiopCisgICAgKiguZ251Lmxp
bmtvbmNlLmQuKikKKyAgICBTT1JUKENPTlNUUlVDVE9SUykKKyAgfQorICAuZGF0YTEgICA6IHsg
KiguZGF0YTEpIH0KKyAgLmVoX2ZyYW1lIDogeyBLRUVQICgqKC5laF9mcmFtZSkpIH0KKyAgLmdj
Y19leGNlcHRfdGFibGUgOiB7ICooLmdjY19leGNlcHRfdGFibGUpIH0KKyAgLmN0b3JzICAgOiAK
KyAgeworICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKKyAg
ICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKKyAgICAgICBmaXJz
dC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAorICAgICAgIGRvZXNuJ3QgbWF0dGVy
IGlmIHRoZSB1c2VyIGRvZXMgbm90CisgICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJl
Z2luLm87IHRoZQorICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2gg
YQorICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAorICAg
ICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCisgICAgICAgaXMg
aW4uICAqLworICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCisgICAgLyogV2UgZG9uJ3Qg
d2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KKyAgICAgICBmcm9tIHRoZSBj
cnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCisgICAgICAgVGhlIC5j
dG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCisgICAgICAgZW5k
IG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCisgICAgS0VFUCAoKihFWENM
VURFX0ZJTEUgKCpjcnRlbmQubyApIC5jdG9ycykpCisgICAgS0VFUCAoKihTT1JUKC5jdG9ycy4q
KSkpCisgICAgS0VFUCAoKiguY3RvcnMpKQorICB9CisgICAuZHRvcnMgICAgICAgICA6CisgIHsK
KyAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQorICAgIEtFRVAgKCooRVhDTFVERV9GSUxF
ICgqY3J0ZW5kLm8gKSAuZHRvcnMpKQorICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQorICAg
IEtFRVAgKCooLmR0b3JzKSkKKyAgfQorICAucGx0ICAgICAgOiB7ICooLnBsdCkJfQorICBfZ3Ag
PSBBTElHTigxNikgKyAweDdmZjA7CisgIC5nb3QJCSAgOiB7ICooLmdvdC5wbHQpICooLmdvdCkg
fQorICAuZHluYW1pYyAgICAgICA6IHsgKiguZHluYW1pYykgfQorICAvKiBXZSB3YW50IHRoZSBz
bWFsbCBkYXRhIHNlY3Rpb25zIHRvZ2V0aGVyLCBzbyBzaW5nbGUtaW5zdHJ1Y3Rpb24gb2Zmc2V0
cworICAgICBjYW4gYWNjZXNzIHRoZW0gYWxsLCBhbmQgaW5pdGlhbGl6ZWQgZGF0YSBhbGwgYmVm
b3JlIHVuaW5pdGlhbGl6ZWQsIHNvCisgICAgIHdlIGNhbiBzaG9ydGVuIHRoZSBvbi1kaXNrIHNl
Z21lbnQgc2l6ZS4gICovCisgIC5zZGF0YSAgICAgOiAKKyAgeworICAgICooLnNkYXRhKSAKKyAg
ICAqKC5zZGF0YS4qKQorICAgICooLmdudS5saW5rb25jZS5zLiopCisgIH0KKyAgX2VkYXRhID0g
LjsKKyAgUFJPVklERSAoZWRhdGEgPSAuKTsKKyAgX19ic3Nfc3RhcnQgPSAuOworICAuc2JzcyAg
ICAgIDoKKyAgeworICAgIFBST1ZJREUgKF9fc2Jzc19zdGFydCA9IC4pOworICAgIFBST1ZJREUg
KF9fX3Nic3Nfc3RhcnQgPSAuKTsKKyAgICAqKC5keW5zYnNzKQorICAgICooLnNic3MpCisgICAg
Kiguc2Jzcy4qKQorICAgICooLmdudS5saW5rb25jZS5zYi4qKQorICAgICooLnNjb21tb24pCisg
ICAgUFJPVklERSAoX19zYnNzX2VuZCA9IC4pOworICAgIFBST1ZJREUgKF9fX3Nic3NfZW5kID0g
Lik7CisgIH0KKyAgLmJzcyAgICAgICA6CisgIHsKKyAgICooLmR5bmJzcykKKyAgICooLmJzcykK
KyAgICooLmJzcy4qKQorICAgKiguZ251LmxpbmtvbmNlLmIuKikKKyAgICooQ09NTU9OKQorICAg
LyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNw
YWNlIHVwIHRvCisgICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVj
dCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKKyAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJl
Y2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLiAgKi8KKyAgIC4gPSBBTElHTig2NCAv
IDgpOworICB9CisgIC4gPSBBTElHTig2NCAvIDgpOworICBfZW5kID0gLjsKKyAgUFJPVklERSAo
ZW5kID0gLik7CisgIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCisgIC5zdGFiIDAg
OiB7ICooLnN0YWIpIH0KKyAgLnN0YWJzdHIgMCA6IHsgKiguc3RhYnN0cikgfQorICAuc3RhYi5l
eGNsIDAgOiB7ICooLnN0YWIuZXhjbCkgfQorICAuc3RhYi5leGNsc3RyIDAgOiB7ICooLnN0YWIu
ZXhjbHN0cikgfQorICAuc3RhYi5pbmRleCAwIDogeyAqKC5zdGFiLmluZGV4KSB9CisgIC5zdGFi
LmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KKyAgLmNvbW1lbnQgMCA6IHsgKigu
Y29tbWVudCkgfQorICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KKyAgICAgU3ltYm9scyBpbiB0
aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5n
CisgICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCisgIC8qIERX
QVJGIDEgKi8KKyAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CisgIC5saW5lICAg
ICAgICAgICAwIDogeyAqKC5saW5lKSB9CisgIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8K
KyAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KKyAgLmRlYnVnX3Nm
bmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KKyAgLyogRFdBUkYgMS4xIGFuZCBEV0FS
RiAyICovCisgIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CisgIC5k
ZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQorICAvKiBEV0FSRiAyICov
CisgIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvKSAqKC5nbnUubGlua29uY2Uu
d2kuKikgfQorICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CisgIC5k
ZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lKSB9CisgIC5kZWJ1Z19mcmFtZSAgICAw
IDogeyAqKC5kZWJ1Z19mcmFtZSkgfQorICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdf
c3RyKSB9CisgIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KKyAgLmRlYnVn
X21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KKyAgLyogU0dJL01JUFMgRFdBUkYg
MiBleHRlbnNpb25zICovCisgIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25h
bWVzKSB9CisgIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9Cisg
IC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CisgIC5kZWJ1Z192
YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KKyAgLyogVGhlc2UgbXVzdCBhcHBl
YXIgcmVnYXJkbGVzcyBvZiAgLiAgKi8KK30KSW5kZXg6IHN5cy9taXBzL2NvbmYvWExSNjQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gc3lzL21pcHMvY29uZi9YTFI2NAkocmV2aXNpb24gMCkKKysrIHN5cy9taXBz
L2NvbmYvWExSNjQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMzIEBACisjIFhMUjY0IC0tIEtl
cm5lbCBjb25maWd1cmF0aW9uIGZpbGUgZm9yIE42NCBrZXJuZWwgb24gWExSL1hMUworIworIyBG
b3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGZpbGUsIHBsZWFzZSByZWFkIHRoZSBoYW5kYm9v
ayBzZWN0aW9uIG9uCisjIEtlcm5lbCBDb25maWd1cmF0aW9uIEZpbGVzOgorIworIyAgICBodHRw
Oi8vd3d3LkZyZWVCU0Qub3JnL2RvYy9lbl9VUy5JU084ODU5LTEvYm9va3MvaGFuZGJvb2sva2Vy
bmVsY29uZmlnLWNvbmZpZy5odG1sCisjCisjIFRoZSBoYW5kYm9vayBpcyBhbHNvIGF2YWlsYWJs
ZSBsb2NhbGx5IGluIC91c3Ivc2hhcmUvZG9jL2hhbmRib29rCisjIGlmIHlvdSd2ZSBpbnN0YWxs
ZWQgdGhlIGRvYyBkaXN0cmlidXRpb24sIG90aGVyd2lzZSBhbHdheXMgc2VlIHRoZQorIyBGcmVl
QlNEIFdvcmxkIFdpZGUgV2ViIHNlcnZlciAoaHR0cDovL3d3dy5GcmVlQlNELm9yZy8pIGZvciB0
aGUKKyMgbGF0ZXN0IGluZm9ybWF0aW9uLgorIworIyBBbiBleGhhdXN0aXZlIGxpc3Qgb2Ygb3B0
aW9ucyBhbmQgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbnMgb2YgdGhlCisjIGRldmljZSBsaW5l
cyBpcyBhbHNvIHByZXNlbnQgaW4gdGhlIC4uLy4uL2NvbmYvTk9URVMgYW5kIE5PVEVTIGZpbGVz
LiAKKyMgSWYgeW91IGFyZSBpbiBkb3VidCBhcyB0byB0aGUgcHVycG9zZSBvciBuZWNlc3NpdHkg
b2YgYSBsaW5lLCBjaGVjayBmaXJzdCAKKyMgaW4gTk9URVMuCisjCisjICRGcmVlQlNEOiBoZWFk
L3N5cy9taXBzL2NvbmYvWExSTjMyIDIwOTUwMiAyMDEwLTA2LTI0IDEwOjE0OjMxWiBqY2hhbmRy
YSAkCisKK21hY2hpbmUgCW1pcHMKK2NwdSAJCUNQVV9NSVBTNEtDCitpZGVudCAJCVhMUgorCitt
YWtlb3B0aW9ucwlNT0RVTEVTX09WRVJSSURFPSIiCittYWtlb3B0aW9ucyAgICAgVEFSR0VUX0JJ
R19FTkRJQU4KKworaW5jbHVkZQkJIi4uL3JtaS9zdGQueGxyIgorCittYWtlb3B0aW9ucwlERUJV
Rz0tZwkJIyBCdWlsZCBrZXJuZWwgd2l0aCBnZGIoMSkgZGVidWcgc3ltYm9scworbWFrZW9wdGlv
bnMJQVJDSF9GTEFHUz0iLW1hcmNoPW1pcHM2NCAtbWFiaT02NCIKK21ha2VvcHRpb25zCUxEU0NS
SVBUX05BTUU9bGRzY3JpcHQubWlwcy42NAorCisjcHJvZmlsZQkJMgorCitvcHRpb25zIAlTQ0hF
RF9VTEUJCSMgVUxFIHNjaGVkdWxlcgorI29wdGlvbnMJCVZFUkJPU0VfU1lTSU5JVAorI29wdGlv
bnMgCVNDSEVEXzRCU0QJCSMgNEJTRCBzY2hlZHVsZXIKKyNvcHRpb25zICAgICAgICAgU01QCisj
b3B0aW9ucyAJUFJFRU1QVElPTgkJIyBFbmFibGUga2VybmVsIHRocmVhZCBwcmVlbXB0aW9uCisj
b3B0aW9ucyAJRlVMTF9QUkVFTVBUSU9OCQkjIEVuYWJsZSBrZXJuZWwgdGhyZWFkIHByZWVtcHRp
b24KK29wdGlvbnMgCUlORVQJCQkjIEludGVyTkVUd29ya2luZworb3B0aW9ucyAJSU5FVDYJCQkj
IElQdjYgY29tbXVuaWNhdGlvbnMgcHJvdG9jb2xzCitvcHRpb25zIAlGRlMJCQkjIEJlcmtlbGV5
IEZhc3QgRmlsZXN5c3RlbQorI29wdGlvbnMgCVNPRlRVUERBVEVTCQkjIEVuYWJsZSBGRlMgc29m
dCB1cGRhdGVzIHN1cHBvcnQKK29wdGlvbnMgCVVGU19BQ0wJCQkjIFN1cHBvcnQgZm9yIGFjY2Vz
cyBjb250cm9sIGxpc3RzCitvcHRpb25zIAlVRlNfRElSSEFTSAkJIyBJbXByb3ZlIHBlcmZvcm1h
bmNlIG9uIGJpZyBkaXJlY3Rvcmllcworb3B0aW9ucwkJTkZTQ0xJRU5UCitvcHRpb25zCQlORlNf
Uk9PVAorIworb3B0aW9ucyAgICAgICAgIEJPT1RQCitvcHRpb25zICAgICAgICAgQk9PVFBfTkZT
Uk9PVAorb3B0aW9ucyAgICAgICAgIEJPT1RQX05GU1YzCitvcHRpb25zICAgICAgICAgQk9PVFBf
V0lSRURfVE89cmdlMAorb3B0aW9ucyAgICAgICAgIEJPT1RQX0NPTVBBVAorb3B0aW9ucwkJUk9P
VERFVk5BTUU9XCJuZnM6MTAuMS4xLjg6L3Vzci9leHRyYS9uZnNyb290XCIKKyMKKyNvcHRpb25z
IAlNRF9ST09UCQkJIyBNRCBpcyBhIHBvdGVudGlhbCByb290IGRldmljZQorI29wdGlvbnMJCU1E
X1JPT1RfU0laRT0yNzAwMAorI29wdGlvbnMJCU1EX1JPT1RfU0laRT01MTIwCisjb3B0aW9ucwkJ
Uk9PVERFVk5BTUU9XCJ1ZnM6bWQwXCIKK29wdGlvbnMgCV9LUE9TSVhfUFJJT1JJVFlfU0NIRURV
TElORyAjIFBPU0lYIFAxMDAzXzFCIHJlYWwtdGltZSBleHRlbnNpb25zCitvcHRpb25zIAlIWj0x
MDAwCQorb3B0aW9ucyAJTk9fU1dBUFBJTkcKKworI0RlYnVnZ2luZyBvcHRpb25zCitvcHRpb25z
IAlLVFJBQ0UJCQkjIGt0cmFjZSgxKSBzdXBwb3J0CitvcHRpb25zIAlEREIKK29wdGlvbnMgCUtE
Qgorb3B0aW9ucyAJR0RCCitvcHRpb25zIAlBTFRfQlJFQUtfVE9fREVCVUdHRVIKKyNvcHRpb25z
IAlERUFETEtSRVMJCSNFbmFibGUgdGhlIGRlYWRsb2NrIHJlc29sdmVyCitvcHRpb25zIAlJTlZB
UklBTlRTCQkjRW5hYmxlIGNhbGxzIG9mIGV4dHJhIHNhbml0eSBjaGVja2luZworb3B0aW9ucyAJ
SU5WQVJJQU5UX1NVUFBPUlQJI0V4dHJhIHNhbml0eSBjaGVja3Mgb2YgaW50ZXJuYWwgc3RydWN0
dXJlcywgcmVxdWlyZWQgYnkgSU5WQVJJQU5UUworI29wdGlvbnMgCVdJVE5FU1MJCQkjRW5hYmxl
IGNoZWNrcyB0byBkZXRlY3QgZGVhZGxvY2tzIGFuZCBjeWNsZXMKKyNvcHRpb25zIAlXSVRORVNT
X1NLSVBTUElOCSNEb24ndCBydW4gd2l0bmVzcyBvbiBzcGlubG9ja3MgZm9yIHNwZWVkCisjb3B0
aW9ucyAJS1RSCQkJIyBrdHIoNCkgYW5kIGt0cmR1bXAoOCkgc3VwcG9ydAorI29wdGlvbnMgCUtU
Ul9DT01QSUxFPShLVFJfTE9DS3xLVFJfUFJPQ3xLVFJfSU5UUnxLVFJfQ0FMTE9VVHxLVFJfVU1B
fEtUUl9TWVNDfEtUUl9DUklUSUNBTCkKKyNvcHRpb25zIAlLVFJfRU5UUklFUz0xMzEwNzIKKyNv
cHRpb25zIAlNVVRFWF9ERUJVRworI29wdGlvbnMgCU1VVEVYX1BST0ZJTElORworCitkZXZpY2UJ
CXBjaQorI2RldmljZQkJYXRhCisjZGV2aWNlCQlhdGFkaXNrCisjb3B0aW9ucyAJWExSX1BFUkZN
T04JCSMgRW5hYmxlIFhMUiBwcm9jZXNzb3IgYWN0aXZpdHkgbW9uaXRvcmluZworb3B0aW9ucyAg
CUJSRUFLX1RPX0RFQlVHR0VSCisjZGV2aWNlIAkJZ2VuY2xvY2sKK2RldmljZSAJCXVhcnQKKyMg
UHNldWRvCitkZXZpY2UgCQlsb29wCitkZXZpY2UgCQlyYW5kb20KK2RldmljZSAJCW1kCitkZXZp
Y2UgCQltZW0KK2RldmljZSAJCXB0eQorZGV2aWNlCQlicGYKKworIyBOZXR3b3JrCitkZXZpY2UJ
CW1paWJ1cworZGV2aWNlCQlyZ2UKK2RldmljZSAJCWV0aGVyCitkZXZpY2UJCXJlCitkZXZpY2UJ
CW1zaworCitkZXZpY2UgICAgICAgICAgZGEKK2RldmljZSAgICAgICAgICBzY2J1cworI2Rldmlj
ZSAgICAgICAgICBvaGNpICAgICAgICAgICAgIyBPSENJIFBDSS0+VVNCIGludGVyZmFjZQorZGV2
aWNlICAgICAgICAgIGVoY2kgICAgICAgICAgICAjIEVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlIChV
U0IgMi4wKQorZGV2aWNlICAgICAgICAgIHVzYiAgICAgICAgICAgICAjIFVTQiBCdXMgKHJlcXVp
cmVkKQorb3B0aW9ucyAJVVNCX0RFQlVHCSMgZW5hYmxlIGRlYnVnIG1zZ3MKKyNkZXZpY2UgICAg
ICAgICB1ZGJwICAgICAgICAgICAgIyBVU0IgRG91YmxlIEJ1bGsgUGlwZSBkZXZpY2VzCisjZGV2
aWNlICAgICAgICAgIHVnZW4gICAgICAgICAgICAjIEdlbmVyaWMKKyNkZXZpY2UgICAgICAgICAg
dWhpZCAgICAgICAgICAgICMgIkh1bWFuIEludGVyZmFjZSBEZXZpY2VzIgorZGV2aWNlICAgICAg
ICAgIHVtYXNzICAgICAgICAgICAjIERpc2tzL01hc3Mgc3RvcmFnZSAtIFJlcXVpcmVzIHNjYnVz
IGFuZCBkYQorCisjZGV2aWNlCQljZmkKKworI2kyYworIyBOb3QgeWV0CisjZGV2aWNlICAgICAg
aWMKKyNkZXZpY2UgICAgICBpaWMKKyNkZXZpY2UgICAgICBpaWNiYgorI2RldmljZSAgICAgIGlp
Y2J1cworI2RldmljZSAgICAgIHhscl9ydGMKKyNkZXZpY2UgICAgICB4bHJfdGVtcGVyYXR1cmUK
KyNkZXZpY2UgICAgICB4bHJfZWVwcm9tCisKKyNjcnlwdG8KKyMgTm90IHlldAorI2RldmljZSBj
cnlwdG9kZXYKKyNkZXZpY2UgY3J5cHRvCisjZGV2aWNlIHJtaXNlYworb3B0aW9ucwkJSVNBX01J
UFM2NAorbWFrZW9wdGlvbnMJS0VSTkxPQURBRERSPTB4ZmZmZmZmZmY4MDEwMDAwMAo=
--e0cb4e887827a90f16048acf6235--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikSVi27V2UICgLvKd8Bk7v6tuGty9YX6-C6-21H>