Subject: Re: Changing kernel base address (was: Re: Heads up: shared arm include files)
To: None <port-arm32@netbsd.org>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: port-arm32
Date: 01/25/2001 00:49:29
--------------Boundary-00=_HY0P5VYCA6BXNPTVO7FR
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: 8bit

On Monday 22 January 2001 11:28 am, Mike Pumford wrote:
> > Looks fine other than as a comment says you've not checked RO4.  Looks
> > like we need the bootloader to pass in current page table address. 
> > Looking in the bootloader the page table addrs are:
> > RO3: 0x02c00000
> > RO4: 0x08000000
>
> Ah right. I wondered what the RO4 effect was. IMO the bootloader should
> now be adjusted to reflect the new IOMD mappings if we want to continue
> to rely on console output at this stage. Since we still have the
> remains of RISC OS kicking around it may be possible to use RISC OS SWI
> calls to do output.The code in initarm was just a temporary debugging hack.
> Its not really the sort of code that should be in NetBSD.
>
> > Perhaps it's easier to not start the console until we've got our page
> > tables in place?  That way we don't need to extend the bootloader, we
> > just have to hope we make it through the primary boot.  We could have a
> > debug define to allow output providing you know the booting OS version.
>
> I think this is the best approach for now. The initarm output is
> discarded from the message buffer when the console is reinitialised and
> as you say it can be easily enabled through conditional compilation if
> necessary. I'll update the patches tonight to defer the consinit call
> until after the primary bootstrap.

I've attached a patch which does this, the initial bootstrap is very small, 
and actually fairly compact, as we can't even panic as we've no console to 
panic to (I think)

Anyway if people can give it a whirl (I've got a Risc PC booted from it)

Oh it's also got a tweak to the wdc drivers to call wdc_print_modes after 
attaching them I plan to send-pr that.

Oh I'd also recommend ppl try Richards patch to config, it means that .S's 
are rebuilt from if needed (which they are :)

Cheers,
Chris

--------------Boundary-00=_HY0P5VYCA6BXNPTVO7FR
Content-Type: text/english;
  name="vmchange.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="vmchange.patch"

SW5kZXg6IHN5cy9hcmNoL2FybTMyL2luY2x1ZGUvaW8uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
dXNyL3NyYy9sb2NhbC5jdnMvbmV0YnNkL3N5cy9hcmNoL2FybTMyL2luY2x1ZGUvaW8uaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZmIC11IC1wIC1yMS4xLjEuMSBpby5oCi0tLSBz
eXMvYXJjaC9hcm0zMi9pbmNsdWRlL2lvLmgJMjAwMC8xMi8wOCAyMjoxMzozNQkxLjEuMS4xCisr
KyBzeXMvYXJjaC9hcm0zMi9pbmNsdWRlL2lvLmgJMjAwMS8wMS8yNSAwMDoxMDoxMgpAQCAtNTAs
MzAgKzUwLDI5IEBACiAgKiBUaGlzIGlzIGRpZmZpY3VseSBhcyB0aGUgcG9kdWxlIGFkZHJlc3Nl
cyBhcmUgaW50ZXJsZWF2ZWQgd2l0aCB0aGUKICAqIG90aGVyIElPIGRldmljZXMgdGh1cyBtYWtp
bmcgaXQgZGlmZmljdWx0IHRvIHNlcGFyYXRlIHRoZW0uCiAgKi8KLSAKICNkZWZpbmUgSU9fQ09O
Rl9CQVNFCQkJMHhmNjAwMDAwMAogCiAjZGVmaW5lIElPX0hXX0JBU0UJCQkweDAzMDAwMDAwCiAK
LSNkZWZpbmUgSU9fQkFTRQkJCQkweGY2MjAwMDAwCisjZGVmaW5lIElPX0JBU0UJCQkJKElPX0NP
TkZfQkFTRSArIDB4MDAyMDAwMDApCiAKLSNkZWZpbmUgQ09NQk9fQkFTRQkJCTB4ZjYyMTAwMDAK
KyNkZWZpbmUgQ09NQk9fQkFTRQkJCShJT19CQVNFICsgMHgwMDAxMDAwMCkKIAotI2RlZmluZSBJ
REVfQ09OVFJPTExFUl9CQVNFCQkweGY2MjEwN2MwCisjZGVmaW5lIElERV9DT05UUk9MTEVSX0JB
U0UJCShDT01CT19CQVNFICsgMHgwMDAwMDdjMCkKIAotI2RlZmluZSBGTE9QUFlfQ09OVFJPTExF
Ul9CQVNFCQkweGY2MjEwZmMwCisjZGVmaW5lIEZMT1BQWV9DT05UUk9MTEVSX0JBU0UJCShDT01C
T19CQVNFICsgMHgwMDAwMGZjMCkKIAogI2RlZmluZSBGTE9QUFlfREFDSwkJCTB4MDAwMDIwMDAK
IAotI2RlZmluZSBTRVJJQUwwX0NPTlRST0xMRVJfQkFTRQkJMHhmNjIxMGZlMAorI2RlZmluZSBT
RVJJQUwwX0NPTlRST0xMRVJfQkFTRQkJKENPTUJPX0JBU0UgKyAweDAwMDAwZmUwKQogCi0jZGVm
aW5lIFNFUklBTDFfQ09OVFJPTExFUl9CQVNFCQkweGY2MjEwYmUwCisjZGVmaW5lIFNFUklBTDFf
Q09OVFJPTExFUl9CQVNFCQkoQ09NQk9fQkFTRSArIDB4MDAwMDBiZTApCiAKLSNkZWZpbmUgUEFS
QUxMRUxfQ09OVFJPTExFUl9CQVNFCTB4ZjYyMTA5ZTAKKyNkZWZpbmUgUEFSQUxMRUxfQ09OVFJP
TExFUl9CQVNFCShDT01CT19CQVNFICsgMHgwMDAwMDllMCkKIAogI2lmZGVmIFJDNzUwMAogCi0j
ZGVmaW5lIElERV9DT05UUk9MTEVSX0JBU0UyCQkweGY2MjJCMDAwCisjZGVmaW5lIElERV9DT05U
Uk9MTEVSX0JBU0UyCQkoSU9fQkFTRSArIDB4MDAwMkIwMDApCiAKIC8qCiAgKiBhIGJpdCBsb3cg
dHVybnMgYXR0YWNoZWQgTEVEIG9uCkBAIC05OCwxNyArOTcsMTcgQEAKIAogI2RlZmluZSBTSU1Q
TEVfUE9EVUxFX1NJWkUJMHgwMDAwNDAwMAogCi0jZGVmaW5lIE1PRF9QT0RVTEVfQkFTRQkJMHhm
NjIwMDAwMAotI2RlZmluZSBTWU5DX1BPRFVMRV9CQVNFCTB4ZjYzYzAwMDAKKyNkZWZpbmUgTU9E
X1BPRFVMRV9CQVNFCQkoSU9fQkFTRSkKKyNkZWZpbmUgU1lOQ19QT0RVTEVfQkFTRQkoSU9fQkFT
RSArIDB4MDAxYzAwMDApCiAjZGVmaW5lIFNZTkNfUE9EVUxFX0hXX0JBU0UJMHgwMzNjMDAwMAot
I2RlZmluZSBGQVNUX1BPRFVMRV9CQVNFCTB4ZjYzNDAwMDAKLSNkZWZpbmUgTUVESVVNX1BPRFVM
RV9CQVNFCTB4ZjYwYzAwMDAKLSNkZWZpbmUgU0xPV19QT0RVTEVfQkFTRQkweGY2MDQwMDAwCisj
ZGVmaW5lIEZBU1RfUE9EVUxFX0JBU0UJKElPX0NPTkZfQkFTRSArIDB4MDAzNDAwMDApCisjZGVm
aW5lIE1FRElVTV9QT0RVTEVfQkFTRQkoSU9fQ09ORl9CQVNFICsgMHgwMDBjMDAwMCkKKyNkZWZp
bmUgU0xPV19QT0RVTEVfQkFTRQkoSU9fQ09ORl9CQVNFICsgMHgwMDA0MDAwMCkKIAogI2RlZmlu
ZSBQT0RVTEVfR0FQCQkweDAwMDIwMDAwCiAjZGVmaW5lIE1BWF9QT0RVTEVTCQk4CiAKLSNkZWZp
bmUgTkVUU0xPVF9CQVNFCQkweGY2MjJiMDAwCisjZGVmaW5lIE5FVFNMT1RfQkFTRQkJKElPX0NP
TkZfQkFTRSArIDB4MDAyMmIwMDApCiAjZGVmaW5lIE1BWF9ORVRTTE9UUwkJMQogCiAvKiBFbmQg
b2YgaW8uaCAqLwpJbmRleDogc3lzL2FyY2gvYXJtMzIvaW5jbHVkZS92aWRjLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL3Vzci9zcmMvbG9jYWwuY3ZzL25ldGJzZC9zeXMvYXJjaC9hcm0zMi9pbmNs
dWRlL3ZpZGMuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZmIC11IC1wIC1yMS4x
LjEuMSB2aWRjLmgKLS0tIHN5cy9hcmNoL2FybTMyL2luY2x1ZGUvdmlkYy5oCTIwMDAvMTIvMDgg
MjI6MTM6MzYJMS4xLjEuMQorKysgc3lzL2FyY2gvYXJtMzIvaW5jbHVkZS92aWRjLmgJMjAwMS8w
MS8yNSAwMDowOToyOQpAQCAtNjIsOSArNjIsNyBAQAogLyogVklEQzIwIEJhc2UgYWRkcmVzc2Vz
ICovCiAKICNkZWZpbmUgVklEQ19IV19CQVNFIDB4MDM0MDAwMDAKLQotI2RlZmluZSBWSURDX0JB
U0UgICAgMHhmNjEwMDAwMAotCisjZGVmaW5lIFZJRENfQkFTRSAgICAweGY3MTAwMDAwCiAvKiBW
aWRlbyByZWdpc3RlcnMgKi8KIAogI2RlZmluZSBWSURDX1BBTEVUVEUgMHgwMDAwMDAwMApAQCAt
MTU0LDkgKzE1Miw5IEBACiAvKiBWaWRlbyBkaXNwbGF5IGFkZHJlc3NlcyAqLwogCiAvKiBXaGVy
ZSB0aGUgZGlzcGxheSBtZW1vcnkgaXMgbWFwcGVkICovCi0KLSNkZWZpbmUgVk1FTV9WQkFTRSAw
eGY0MDAwMDAwCi0KKy8qIG5vdGUgdGhhdCB0aGVyZSdzIG5vdCBub3JtYWxseSBtb3JlIHRoYW4g
Mk1CICovCisjZGVmaW5lIFZNRU1fVkJBU0UgMHhmNzQwMDAwMAorIAogLyogV2hlcmUgdGhlIFZS
QU0gd2lsbCBiZSBmb3VuZCAqLwogCiAjZGVmaW5lIFZSQU1fQkFTRSAweDAyMDAwMDAwCkluZGV4
OiBzeXMvYXJjaC9hcm0zMi9pbmNsdWRlL3ZtcGFyYW0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
dXNyL3NyYy9sb2NhbC5jdnMvbmV0YnNkL3N5cy9hcmNoL2FybTMyL2luY2x1ZGUvdm1wYXJhbS5o
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXAgLXIxLjEuMS4xIHZtcGFy
YW0uaAotLS0gc3lzL2FyY2gvYXJtMzIvaW5jbHVkZS92bXBhcmFtLmgJMjAwMC8xMi8wOCAyMjox
MzozNgkxLjEuMS4xCisrKyBzeXMvYXJjaC9hcm0zMi9pbmNsdWRlL3ZtcGFyYW0uaAkyMDAxLzAx
LzI0IDIxOjIyOjQ2CkBAIC0xMjIsMTAgKzEyMiwxMSBAQAogI2RlZmluZQlLRVJORUxfVk1fU0la
RQkJMHgwNDAwMDAwMAogI2Vsc2UKIC8qCi0gKiBUaGUgcmFuZ2UgMHhmMTAwMDAwMCAtIDB4ZjNm
ZmZmZmYgaXMgYXZhaWxhYmxlIGZvciBrZXJuZWwgVk0gc3BhY2UKLSAqIEZpeGVkIG1hcHBpbmdz
IGV4aXN0IGZyb20gMHhmNDAwMDAwMCAtIDB4ZmZmZmZmZmYKKyAqIFRoZSByYW5nZSAweGYxMDAw
MDAwIC0gMHhmNmZmZmZmZiBpcyBhdmFpbGFibGUgZm9yIGtlcm5lbCBWTSBzcGFjZQorICogRml4
ZWQgbWFwcGluZ3MgZXhpc3QgZnJvbSAweGY3MDAwMDAwIC0gMHhmZmZmZmZmZgorICogd2VsbCB3
ZSd2ZSBzaGlmdGVkIHN0dWZmIHVwIHRvIGJlIGluIDB4ZmZ4eHh4eHgKICAqLwotI2RlZmluZQlL
RVJORUxfVk1fU0laRQkJMHgwMzAwMDAwMAorI2RlZmluZQlLRVJORUxfVk1fU0laRQkJMHgwNjAw
MDAwMAogI2VuZGlmCiAjZGVmaW5lCVBST0NFU1NfUEFHRV9UQkxTX0JBU0UJUEFHRV9UQUJMRV9T
UEFDRV9TVEFSVAogCkBAIC0xNTUsNyArMTU2LDcgQEAKIC8qIFhYWCBtYXguIGFtb3VudCBvZiBL
Vk0gdG8gYmUgdXNlZCBieSBidWZmZXJzLiAqLwogI2lmbmRlZiBWTV9NQVhfS0VSTkVMX0JVRgog
I2RlZmluZSBWTV9NQVhfS0VSTkVMX0JVRiBcCi0JKChWTV9NQVhLRVJOX0FERFJFU1MgLSBLRVJO
RUxfVk1fQkFTRSkgKiA0IC8gMTApCisJKChWTV9NQVhLRVJOX0FERFJFU1MgLSBLRVJORUxfVk1f
QkFTRSkgKiAyIC8gMTApCiAjZW5kaWYKIAogLyogdmlydHVhbCBzaXplcyAoYnl0ZXMpIGZvciB2
YXJpb3VzIGtlcm5lbCBzdWJtYXBzICovCkluZGV4OiBzeXMvYXJjaC9hcm0zMi9pb21kL2lvbWRy
ZWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvdXNyL3NyYy9sb2NhbC5jdnMvbmV0YnNkL3N5cy9h
cmNoL2FybTMyL2lvbWQvaW9tZHJlZy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRp
ZmYgLXUgLXAgLXIxLjEuMS4xIGlvbWRyZWcuaAotLS0gc3lzL2FyY2gvYXJtMzIvaW9tZC9pb21k
cmVnLmgJMjAwMC8xMi8wOCAyMjoxMzozNgkxLjEuMS4xCisrKyBzeXMvYXJjaC9hcm0zMi9pb21k
L2lvbWRyZWcuaAkyMDAxLzAxLzI0IDIxOjIzOjM3CkBAIC00Nyw3ICs0Nyw3IEBACiAKICNkZWZp
bmUgSU9NRF9IV19CQVNFCTB4MDMyMDAwMDAKIAotI2RlZmluZSBJT01EX0JBU0UJMHhmNjAwMDAw
MAorI2RlZmluZSBJT01EX0JBU0UJMHhmNzAwMDAwMAogCiAjZGVmaW5lIElPTURfSU9DUgkweDAw
MDAwMDAwCiAjZGVmaW5lIElPTURfS0JEREFUCTB4MDAwMDAwMDEKQEAgLTE5MCw3ICsxOTAsNyBA
QAogICovCiAKICNkZWZpbmUgSU9fSFdfTU9VU0VfQlVUVE9OUwkweDAzMjEwMDAwCi0jZGVmaW5l
IElPX01PVVNFX0JVVFRPTlMJMHhmNjAxMDAwMAorI2RlZmluZSBJT19NT1VTRV9CVVRUT05TCShJ
T01EX0JBU0UgKyAweDAwMDEwMDAwKQogCiAjZGVmaW5lIE1PVVNFX0JVVFRPTl9SSUdIVCAgMHgx
MAogI2RlZmluZSBNT1VTRV9CVVRUT05fTUlERExFIDB4MjAKSW5kZXg6IHN5cy9hcmNoL2FybTMy
L21haW5idXMvd2RjX3Bpb2MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvdXNyL3NyYy9sb2NhbC5j
dnMvbmV0YnNkL3N5cy9hcmNoL2FybTMyL21haW5idXMvd2RjX3Bpb2MuYyx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xLjEuMQpkaWZmIC11IC1wIC1yMS4xLjEuMSB3ZGNfcGlvYy5jCi0tLSBzeXMv
YXJjaC9hcm0zMi9tYWluYnVzL3dkY19waW9jLmMJMjAwMC8xMi8wOCAyMjoxMzozNwkxLjEuMS4x
CisrKyBzeXMvYXJjaC9hcm0zMi9tYWluYnVzL3dkY19waW9jLmMJMjAwMS8wMS8yNSAwMDo0MDo1
NQpAQCAtMTY2LDYgKzE2Niw3IEBAIHdkY19waW9jX2F0dGFjaChwYXJlbnQsIHNlbGYsIGF1eCkK
IAkJcmV0dXJuOwogCX0KIAl3ZGNhdHRhY2goJnNjLT53ZGNfY2hhbm5lbCk7CisJd2RjX3ByaW50
X21vZGVzKCZzYy0+d2RjX2NoYW5uZWwpOwogfQogCiAvKiBFbmQgb2Ygd2RjX3Bpb2MuYyAqLwpJ
bmRleDogc3lzL2FyY2gvYXJtMzIvcG9kdWxlYnVzL2ljc2lkZS5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC91c3Ivc3JjL2xvY2FsLmN2cy9uZXRic2Qvc3lzL2FyY2gvYXJtMzIvcG9kdWxlYnVzL2lj
c2lkZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXAgLXIxLjEuMS4x
IGljc2lkZS5jCi0tLSBzeXMvYXJjaC9hcm0zMi9wb2R1bGVidXMvaWNzaWRlLmMJMjAwMC8xMi8w
OCAyMjoxMzozOAkxLjEuMS4xCisrKyBzeXMvYXJjaC9hcm0zMi9wb2R1bGVidXMvaWNzaWRlLmMJ
MjAwMS8wMS8yNSAwMDo0NDowNApAQCAtMjg0LDYgKzI4NCw3IEBAIGljc2lkZV9hdHRhY2gocGFy
ZW50LCBzZWxmLCBhdXgpCiAJCSh2b2lkKWJ1c19zcGFjZV9yZWFkXzEoaW90LCBpY3AtPmljX2ly
cWlvaCwgMCk7CiAJCS8qIENhbGwgY29tbW9uIGF0dGFjaCByb3V0aW5lcyAqLwogCQl3ZGNhdHRh
Y2goY3ApOworCQl3ZGNfcHJpbnRfbW9kZXMoY3ApOwogCQkvKiBEaXNhYmxlIGludGVycnVwdHMg
Ki8KIAkJKHZvaWQpYnVzX3NwYWNlX3JlYWRfMShpb3QsIGljcC0+aWNfaXJxaW9oLCAwKTsKIAkJ
cGEtPnBhX3BvZHVsZS0+aXJxX2FkZHIgPSBpb2Jhc2UgKyBpZGUtPmlycXN0YXRyZWdzW2NoYW5u
ZWxdOwpJbmRleDogc3lzL2FyY2gvYXJtMzIvcG9kdWxlYnVzL3JhcGlkZS5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC91c3Ivc3JjL2xvY2FsLmN2cy9uZXRic2Qvc3lzL2FyY2gvYXJtMzIvcG9kdWxl
YnVzL3JhcGlkZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXAgLXIx
LjEuMS4xIHJhcGlkZS5jCi0tLSBzeXMvYXJjaC9hcm0zMi9wb2R1bGVidXMvcmFwaWRlLmMJMjAw
MC8xMi8wOCAyMjoxMzozOAkxLjEuMS4xCisrKyBzeXMvYXJjaC9hcm0zMi9wb2R1bGVidXMvcmFw
aWRlLmMJMjAwMS8wMS8yNSAwMDo0MToxMQpAQCAtMjg5LDYgKzI4OSw3IEBAIHJhcGlkZV9hdHRh
Y2gocGFyZW50LCBzZWxmLCBhdXgpCiAJCSAgICBzYy0+c2NfaW50cl9lbmFibGVfbWFzayk7CiAJ
CS8qIFhYWCAtIElzc3VlIDEgY2FyZHMgd2lsbCBuZWVkIHRvIGNsZWFyIGFueSBwZW5kaW5nIGlu
dGVycnVwdHMgKi8KIAkJd2RjYXR0YWNoKGNwKTsKKwkJd2RjX3ByaW50X21vZGVzKGNwKTsKIAkJ
aWhwID0gJnJjcC0+cmNfaWg7CiAJCWlocC0+aWhfZnVuYyA9IHJhcGlkZV9pbnRyOwogCQlpaHAt
PmloX2FyZyA9IHJjcDsKSW5kZXg6IHN5cy9hcmNoL2FybTMyL3BvZHVsZWJ1cy9zaW1pZGUuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvdXNyL3NyYy9sb2NhbC5jdnMvbmV0YnNkL3N5cy9hcmNoL2Fy
bTMyL3BvZHVsZWJ1cy9zaW1pZGUuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZm
IC11IC1wIC1yMS4xLjEuMSBzaW1pZGUuYwotLS0gc3lzL2FyY2gvYXJtMzIvcG9kdWxlYnVzL3Np
bWlkZS5jCTIwMDAvMTIvMDggMjI6MTM6MzkJMS4xLjEuMQorKysgc3lzL2FyY2gvYXJtMzIvcG9k
dWxlYnVzL3NpbWlkZS5jCTIwMDEvMDEvMjUgMDA6NDQ6MjEKQEAgLTI3OCw2ICsyNzgsNyBAQCBz
aW1pZGVfYXR0YWNoKHBhcmVudCwgc2VsZiwgYXV4KQogCQlidXNfc3BhY2Vfd3JpdGVfMShzYy0+
c2NfY3RsaW90LCBzYy0+c2NfY3RsaW9oLAogCQkgICAgQ09OVFJPTF9SRUdJU1RFUl9PRkZTRVQs
IHNjLT5zY19jdGxfcmVnKTsKIAkJd2RjYXR0YWNoKGNwKTsKKwkJd2RjX3ByaW50X21vZGVzKGNw
KTsKIAkJaWhwID0gJnNjcC0+c2NfaWg7CiAJCWlocC0+aWhfZnVuYyA9IHNpbWlkZV9pbnRyOwog
CQlpaHAtPmloX2FyZyA9IHNjcDsKSW5kZXg6IHN5cy9hcmNoL2FybTMyL3Jpc2NwYy9ycGNfbWFj
aGRlcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC91c3Ivc3JjL2xvY2FsLmN2cy9uZXRic2Qvc3lz
L2FyY2gvYXJtMzIvcmlzY3BjL3JwY19tYWNoZGVwLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MS4xLjEKZGlmZiAtdSAtcCAtcjEuMS4xLjEgcnBjX21hY2hkZXAuYwotLS0gc3lzL2FyY2gvYXJt
MzIvcmlzY3BjL3JwY19tYWNoZGVwLmMJMjAwMC8xMi8wOCAyMjoxMzozOQkxLjEuMS4xCisrKyBz
eXMvYXJjaC9hcm0zMi9yaXNjcGMvcnBjX21hY2hkZXAuYwkyMDAxLzAxLzI1IDAwOjE0OjM0CkBA
IC0zNDUsNyArMzQ1LDcgQEAgY3B1X3JlYm9vdChob3d0bywgYm9vdHN0cikKICAqLwogCiAvKiBU
aGlzIHJvdXRpbmUgaXMgZnJpZ2h0ZW5pbmcgbWVzcyAhIFRoaXMgaXMgd2hhdCBteSBtaW5kIGxv
b2tzIGxpa2UgLW1hcmsgKi8KLQorIAogLyoKICAqIFRoaXMgY29kZSBpcyBsb29raW5nIGV2ZW4g
d29yc2UgdGhlc2UgZGF5cyAuLi4KICAqIFRoaXMgaXMgdGhlIHByb2JsZW0geW91IGdldCB3aGVu
IHlvdSBhcmUgYm9vdGluZyBmcm9tIGFub3RoZXIgT3BlcmF0aW5nIFN5c3RlbQpAQCAtMzg2LDE0
ICszODYsNiBAQCBpbml0YXJtKGJvb3Rjb25mKQogCSAqIHNob3VsZCBnbyB2aWEgdGhpcyBzdHJ1
Y3R1cmUuCiAJICovCiAKLQkvKgotCSAqIEluIHRoZSBmdXR1cmUgLi4uCi0JICoKLQkgKiBBbGwg
Y29uc29sZSBvdXRwdXQgd2lsbCBiZSBwb3N0cG9uZWQgdW50aWwgdGhlIHByaW1hcnkgYm9vdHN0
cmFwCi0JICogaGFzIGJlZW4gY29tcGxldGVkIHNvIHRoYXQgd2UgaGF2ZSBoYWQgYSBjaGFuY2Ug
dG8gcmVzZXJ2ZSBzb21lCi0JICogbWVtb3J5IGZvciB0aGUgdmlkZW8gc3lzdGVtIGlmIHdlIGRv
IG5vdCBoYXZlIHNlcGFyYXRlIFZSQU0uCi0JICovCi0KIAkvKiBIYXJkd2lyZSBpdCBpbiBjYXNl
IHdlIGhhdmUgYW4gb2xkIGJvb3QgbG9hZGVyICovCiAKIAl2aWRlb21lbW9yeS52aWRtX3ZiYXNl
ID0gYm9vdGNvbmZpZy5kaXNwbGF5X3N0YXJ0OwpAQCAtNDEyLDQ3ICs0MDQsNiBAQCBpbml0YXJt
KGJvb3Rjb25mKQogCX0KIAogCS8qCi0JICogSW5pdGlhbGlzZSB0aGUgcGh5c2ljYWwgY29uc29s
ZQotCSAqIFRoaXMgaXMgZG9uZSBpbiBtYWluKCkgYnV0IGZvciB0aGUgbW9tZW50IHdlIGRvIGl0
IGhlcmUgc28gdGhhdAotCSAqIHdlIGNhbiB1c2UgcHJpbnRmIGluIGluaXRhcm0oKSBiZWZvcmUg
bWFpbigpIGhhcyBiZWVuIGNhbGxlZC4KLQkgKi8KLQljb25zaW5pdCgpOwotCi0JLyogVGFsayB0
byB0aGUgdXNlciAqLwotCXByaW50ZigiaW5pdGFybS4uLlxuIik7Ci0KLQkvKiBUZWxsIHRoZSB1
c2VyIGlmIGhpcyBib290IGxvYWRlciBpcyB0b28gb2xkICovCi0JaWYgKGJvb3Rjb25maWcubWFn
aWMgIT0gQk9PVENPTkZJR19NQUdJQykgewotCQlwcmludGYoIlxuTk8gTUFHSUMgTlVNQkVSIElO
IEJPT1RDT05GSUcuIFBMRUFTRSBVUEdSQURFIFlPVVIgQk9PVCBMT0FERVJcblxuIik7Ci0JCWRl
bGF5KDUwMDAwMDApOwotCX0KLQotCXByaW50ZigiS2VybmVsIGxvYWRlZCBmcm9tIGZpbGUgJXNc
biIsIGJvb3Rjb25maWcua2VybmVsbmFtZSk7Ci0JcHJpbnRmKCJLZXJuZWwgYXJnIHN0cmluZyAl
c1xuIiwgKGNoYXIgKilib290Y29uZmlnLmFyZ3ZpcnR1YWxiYXNlKTsKLQotCXByaW50ZigiXG5C
b290IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHJlcG9ydHMgdGhlIGZvbGxvd2luZyBtZW1vcnlc
biIpOwotCi0JcHJpbnRmKCIgIERSQU0gYmxvY2sgMGEgYXQgJTA4eCBzaXplICUwOHggIERSQU0g
YmxvY2sgMGIgYXQgJTA4eCBzaXplICUwOHhcblxyIiwKLQkgICAgYm9vdGNvbmZpZy5kcmFtWzBd
LmFkZHJlc3MsCi0JICAgIGJvb3Rjb25maWcuZHJhbVswXS5wYWdlcyAqIGJvb3Rjb25maWcucGFn
ZXNpemUsCi0JICAgIGJvb3Rjb25maWcuZHJhbVsxXS5hZGRyZXNzLAotCSAgICBib290Y29uZmln
LmRyYW1bMV0ucGFnZXMgKiBib290Y29uZmlnLnBhZ2VzaXplKTsKLQlwcmludGYoIiAgRFJBTSBi
bG9jayAxYSBhdCAlMDh4IHNpemUgJTA4eCAgRFJBTSBibG9jayAxYiBhdCAlMDh4IHNpemUgJTA4
eFxuXHIiLAotCSAgICBib290Y29uZmlnLmRyYW1bMl0uYWRkcmVzcywKLQkgICAgYm9vdGNvbmZp
Zy5kcmFtWzJdLnBhZ2VzICogYm9vdGNvbmZpZy5wYWdlc2l6ZSwKLQkgICAgYm9vdGNvbmZpZy5k
cmFtWzNdLmFkZHJlc3MsCi0JICAgIGJvb3Rjb25maWcuZHJhbVszXS5wYWdlcyAqIGJvb3Rjb25m
aWcucGFnZXNpemUpOwotCXByaW50ZigiICBWUkFNIGJsb2NrIDAgIGF0ICUwOHggc2l6ZSAlMDh4
XG5cciIsCi0JICAgIGJvb3Rjb25maWcudnJhbVswXS5hZGRyZXNzLAotCSAgICBib290Y29uZmln
LnZyYW1bMF0ucGFnZXMgKiBib290Y29uZmlnLnBhZ2VzaXplKTsKLQotLyoJcHJpbnRmKCIgIHZp
ZGVvbWVtOiBWQT0lMDh4IFBBPSUwOHhcbiIsIHZpZGVvbWVtb3J5LnZpZG1fdmJhc2UsIHZpZGVv
bWVtb3J5LnZpZG1fcGJhc2UpOyovCi0KLQkvKiBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHBhZ2Ug
c2l6ZSBpcyBjb3JyZWN0ICovCi0JaWYgKE5CUEcgIT0gYm9vdGNvbmZpZy5wYWdlc2l6ZSkKLQkJ
cGFuaWMoIlBhZ2Ugc2l6ZSBpcyBub3QgJWQgYnl0ZXNcbiIsIE5CUEcpOwotCi0JLyoKIAkgKiBP
ayBub3cgd2UgaGF2ZSB0aGUgaGFyZCBiaXQuCiAJICogV2UgaGF2ZSB0aGUga2VybmVsIGFsbG9j
YXRlZCB1cCBoaWdoLiBUaGUgcmVzdCBvZiB0aGUgbWVtb3J5IG1hcCBpcwogCSAqIGF2YWlsYWJs
ZS4gV2UgYXJlIHN0aWxsIHJ1bm5pbmcgb24gUklTQyBPUyBwYWdlIHRhYmxlcy4KQEAgLTQ3MSwx
OCArNDIyLDYgQEAgaW5pdGFybShib290Y29uZikKIAkgKi8KIAogCS8qCi0JICogV2UgYmV0dGVy
IGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgYm9vdGVyIGhhcyBzZXQgdXAgdGhlIHNjcmF0Y2gKLQkg
KiBhcmVhIGZvciB1cyBjb3JyZWN0bHkuIFdlIHVzZSB0aGlzIGFyZWEgdG8gY3JlYXRlIHRlbXBv
cmFyeSBwYWdldGFibGVzCi0JICogd2hpbGUgd2UgcmVvcmdhbmlzZSB0aGUgbWVtb3J5IG1hcC4K
LQkgKi8KLQotCWlmICgoYm9vdGNvbmZpZy5zY3JhdGNocGh5c2ljYWxiYXNlICYgMHgzZmZmKSAh
PSAwKQotCQlwYW5pYygiaW5pdGFybTogU2NyYXRjaCBhcmVhIG5vdCBhbGlnbmVkIG9uIDE2S0Ig
Ym91bmRyeVxuIik7Ci0KLQlpZiAoKGJvb3Rjb25maWcuc2NyYXRjaHNpemUgPCAweGMwMDApICE9
IDApCi0JCXBhbmljKCJpbml0YXJtOiBTY3JhdGNoIGFyZWEgdG9vIHNtYWxsIChuZWVkID49IDQ4
S0IpXG4iKTsKLQotCS8qCiAJICogT2sgc3RhcnQgdGhlIHByaW1hcnkgYm9vdHN0cmFwLgogCSAq
IFRoZSBwcmltYXJ5IGJvb3RzdHJhcCBiYXNpY2FsbHkgcmVwbGFjZXMgdGhlIGJvb3RlciBwYWdl
IHRhYmxlcyB3aXRoCiAJICogbmV3IG9uZXMgdGhhdCBpdCBjcmVhdGVzIGluIHRoZSBib290IHNj
cmF0Y2ggYXJlYS4gVGhlc2UgcGFnZSB0YWJsZXMKQEAgLTQ5MSw4ICs0MzAsNiBAQCBpbml0YXJt
KGJvb3Rjb25mKQogCSAqIGtlcm5lbHMgcGFnZSB0YWJsZXMsIHJlbG9jYXRlIHRoZSBrZXJuZWwg
Y29kZSBmcm9tIGhpZ2ggcGh5c2ljYWwKIAkgKiBtZW1vcnkgdG8gbG93IHBoeXNpY2FsIG1lbW9y
eSBldGMuCiAJICovCi0JcHJpbnRmKCJpbml0YXJtOiBQcmltYXJ5IGJvb3RzdHJhcCAuLi4gIik7
Ci0KIAlrZXJuZWxkYXRhc2l6ZSA9IGJvb3Rjb25maWcua2VybnNpemUgKyBib290Y29uZmlnLmFy
Z3NpemU7CiAKIAlsMnBhZ2V0YWJsZSA9IGJvb3Rjb25maWcuc2NyYXRjaHZpcnR1YWxiYXNlOwpA
QCAtNTE4LDkgKzQ1NSw2IEBAIGluaXRhcm0oYm9vdGNvbmYpCiAJCXZpZGVvbWVtb3J5LnZpZG1f
dHlwZSA9IFZJREVPTUVNX1RZUEVfVlJBTTsKIAkJdmlkZW9tZW1vcnkudmlkbV9zaXplID0gYm9v
dGNvbmZpZy52cmFtWzBdLnBhZ2VzICogTkJQRzsKIAl9IGVsc2UgewotCQlpZiAoYm9vdGNvbmZp
Zy5kaXNwbGF5X3BoeXMgIT0gYm9vdGNvbmZpZy5kcmFtWzBdLmFkZHJlc3MpCi0JCQlwYW5pYygi
dmlkZW8gRFJBTSBpcyBiZWluZyB1bnByZWRpY3RhYmxlXG4iKTsKLQogCQkvKgogCQkgKiBOb3cg
d2UgY29uc3RydWN0IGEgTDIgcGFnZXRhYmxlcyBmb3IgdGhlIERSQU0KICAJCSAqLwpAQCAtNTgw
LDQ4ICs1MTQsNiBAQCBpbml0YXJtKGJvb3Rjb25mKQogCW1hcF9wYWdldGFibGUobDFwYWdldGFi
bGUsIFZNRU1fVkJBU0UsCiAJICAgIGJvb3Rjb25maWcuc2NyYXRjaHBoeXNpY2FsYmFzZSArIDB4
MTAwMCk7CiAKLQkvKiBQcmludCBzb21lIGRlYnVnZ2luZyBpbmZvICovCi0vKglwcmludGYoInBh
Z2UgdGFibGVzIGxvb2sgbGlrZSB0aGlzIC4uLlxuIik7Ci0JcHJpbnRmKCJWMHgwMDAwMDAwMCAt
ICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMDAwKSk7Ci0JcHJpbnRmKCJWMHgw
MDEwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMDA0KSk7Ci0JcHJp
bnRmKCJWMHgwMDIwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMDA4
KSk7Ci0JcHJpbnRmKCJWMHgwMDMwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxl
ICsgMHgwMDBDKSk7Ci0JcHJpbnRmKCJWMHgwMzUwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwx
cGFnZXRhYmxlICsgMHgwMGQ0KSk7Ci0JcHJpbnRmKCJWMHgwMDIwMDAwMCAtICUwOHhcbiIsIFJl
YWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMDgwKSk7Ci0JcHJpbnRmKCJWMHhmMDAwMDAwMCAtICUw
OHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzYzAwKSk7Ci0JcHJpbnRmKCJWMHhmMDEw
MDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzYzA0KSk7Ci0JcHJpbnRm
KCJWMHhmMDIwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzYzA4KSk7
Ci0JcHJpbnRmKCJWMHhmMDMwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsg
MHgzYzBDKSk7Ci0JcHJpbnRmKCJWMHhmMTAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFn
ZXRhYmxlICsgMHgzYzQwKSk7Ci0JcHJpbnRmKCJWMHhmMjAwMDAwMCAtICUwOHhcbiIsIFJlYWRX
b3JkKGwxcGFnZXRhYmxlICsgMHgzYzgwKSk7Ci0JcHJpbnRmKCJWMHhmMzAwMDAwMCAtICUwOHhc
biIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzY2MwKSk7Ci0JcHJpbnRmKCJWMHhmNDAwMDAw
MCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzZDAwKSk7Ci0JcHJpbnRmKCJW
MHhmNTAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzZDQwKSk7Ci0J
cHJpbnRmKCJWMHhmNjAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgz
ZDgwKSk7Ci0JcHJpbnRmKCJWMHhmNzAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRh
YmxlICsgMHgzZGMwKSk7Ci0JcHJpbnRmKCJwYWdlIGRpciA9IFAlMDh4XG4iLCBib290Y29uZmln
LnNjcmF0Y2hwaHlzaWNhbGJhc2UgKyAweDQwMDApOwotCXByaW50ZigibDE9IFYlMDh4XG4iLCBs
MXBhZ2V0YWJsZSk7Ci0qLwotCi0JLyogR3JpbmQgdG8gYSBoYWx0IGlmIG5vIFZSQU0gKi8KLQot
LyoJaWYgKGJvb3Rjb25maWcudnJhbVswXS5wYWdlcyA9PSAwKSB7Ci0JCXByaW50ZigiU3dpdGNo
aW5nIHRvIGJvb3RzdHJhcCBwYWdldGFibGVzXG4iKTsKLQkJcHJpbnRmKCJbSGl0IGEga2V5IHRv
cCBjb250aW51ZV1cbiIpOwotCQljbmdldGMoKTsKLQl9Ki8KLQotCS8qIElmIG5vIFZSQU0ga2ls
bCB0aGUgVklEQyBEQUMncyB1bnRpbCB0aGUgZW5kIG9mIHRoZSBib290c3RyYXAgKi8KLQlpZiAo
Ym9vdGNvbmZpZy52cmFtWzBdLnBhZ2VzID09IDApCi0JCXZpZGNjb25zb2xlX2JsYW5rKHZjb25z
b2xlX2N1cnJlbnQsIEJMQU5LX09GRik7Ci0KLQkvKiBJZiB3ZSBkb24ndCBoYXZlIFZSQU0gLi4K
LQkgKiBBaGhoaGhoaGhoaGhoaGhoaGhoaGhoaAotCSAqIFdlIGhhdmUganVzdCBtYXBwZWQgdGhl
IGtlcm5lbCBhY3Jvc3MgdGhlIHZpZGVvIERSQU0gZnJvbSBSSVNDT1MuCi0JICogQmV0dGVyIGJs
b2NrIGFsbCBwcmludGluZyB1bnRpbCB3ZSBjb21wbGV0ZSB0aGUgc2Vjb25kYXJ5Ci0JICogYm9v
dHN0cmFwIGFuZCBoYXZlIGFsbG9jYXRlIG5ldyB2aWRlbyBEUkFNLgotCSAqLwotCiAJLyoKIAkg
KiBQaGV3dyByaWdodCB3ZSBhcmUgcmVhZHkgdG8gc3dpdGNoIHBhZ2UgdGFibGVzICEhIQogCSAq
IFRoZSBMMSB0YWJsZSBpcyBhdCBib290Y29uZmlnLnNjcmF0Y2hwaHlzaWNhbGJhc2UgKyAweDQw
MDAKQEAgLTY0Miw2ICs1MzQsNjcgQEAgaW5pdGFybShib290Y29uZikKIAkgKi8KIAljcHVfY2Fj
aGVfY2xlYW5JRCgpOwogCisJLyogbm93IHdlIGNhbiBvcGVuIHVwIHRoZSBjb25zb2xlIGFuZCBn
aXZlIHNvbWUgaW5mbyBvdXQgKi8KKwljb25zaW5pdCgpOworCQorCS8qIElmIG5vIFZSQU0ga2ls
bCB0aGUgVklEQyBEQUMncyB1bnRpbCB0aGUgZW5kIG9mIHRoZSBib290c3RyYXAgKi8KKwlpZiAo
Ym9vdGNvbmZpZy52cmFtWzBdLnBhZ2VzID09IDApCisJCXZpZGNjb25zb2xlX2JsYW5rKHZjb25z
b2xlX2N1cnJlbnQsIEJMQU5LX09GRik7CisKKwkvKiBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHBh
Z2Ugc2l6ZSBpcyBjb3JyZWN0ICovCisJaWYgKE5CUEcgIT0gYm9vdGNvbmZpZy5wYWdlc2l6ZSkK
KwkJcGFuaWMoIlBhZ2Ugc2l6ZSBpcyBub3QgJWQgYnl0ZXNcbiIsIE5CUEcpOworCisJcHJpbnRm
KCJQcmltYXJ5IGJvb3RzdHJhcCBjb21wbGV0ZS5cbiIpOworCXByaW50ZigiS2VybmVsIGxvYWRl
ZCBmcm9tIGZpbGUgJXNcbiIsIGJvb3Rjb25maWcua2VybmVsbmFtZSk7CisJcHJpbnRmKCJLZXJu
ZWwgYXJnIHN0cmluZyAlc1xuIiwgKGNoYXIgKilib290Y29uZmlnLmFyZ3ZpcnR1YWxiYXNlKTsK
KworCXByaW50ZigiXG5Cb290IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHJlcG9ydHMgdGhlIGZv
bGxvd2luZyBtZW1vcnlcbiIpOworCisJLyogc2hvdyB3aGF0IG1lbW9yeSB3ZSBkbyBoYXZlICov
CisJeworCQlpbnQgeDsKKwkJZm9yICh4ID0gMDsgeCA8IGJvb3Rjb25maWcuZHJhbWJsb2Nrczsg
eCsrKQorCQl7CisJCQlwcmludGYoIiAgRFJBTSBibG9jayAlZCBhdCAlMDh4IHNpemUgJTA4eFxu
XHIiLAorCQkJICAgIHgsCisJCQkgICAgYm9vdGNvbmZpZy5kcmFtW3hdLmFkZHJlc3MsCisJCQkg
ICAgYm9vdGNvbmZpZy5kcmFtW3hdLnBhZ2VzICogYm9vdGNvbmZpZy5wYWdlc2l6ZSk7CisJCX0K
KwkJZm9yICh4ID0gMDsgeCA8IGJvb3Rjb25maWcudnJhbWJsb2NrczsgeCsrKQorCQl7CisJCQlw
cmludGYoIiAgVlJBTSBibG9jayAlZCBhdCAlMDh4IHNpemUgJTA4eFxuXHIiLAorCQkJICAgIHgs
CisJCQkgICAgYm9vdGNvbmZpZy52cmFtW3hdLmFkZHJlc3MsCisJCQkgICAgYm9vdGNvbmZpZy52
cmFtW3hdLnBhZ2VzICogYm9vdGNvbmZpZy5wYWdlc2l6ZSk7CisJCX0KKwl9CisKKworI2lmZGVm
IFZFUkJPU0VfSU5JVF9BUk0KKwkvKiBsb3RzIG9mIGRlYnVnIGluZm8gKi8KKwlwcmludGYoInBh
Z2UgdGFibGVzIGxvb2sgbGlrZSB0aGlzIC4uLlxuIik7CisJcHJpbnRmKCJWMHgwMDAwMDAwMCAt
ICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMDAwKSk7CisJcHJpbnRmKCJWMHgw
MDEwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMDA0KSk7CisJcHJp
bnRmKCJWMHgwMDIwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMDA4
KSk7CisJcHJpbnRmKCJWMHgwMDMwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxl
ICsgMHgwMDBDKSk7CisJcHJpbnRmKCJWMHgwMzUwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwx
cGFnZXRhYmxlICsgMHgwMGQ0KSk7CisJcHJpbnRmKCJWMHgwMDIwMDAwMCAtICUwOHhcbiIsIFJl
YWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMDgwKSk7CisJcHJpbnRmKCJWMHhmMDAwMDAwMCAtICUw
OHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzYzAwKSk7CisJcHJpbnRmKCJWMHhmMDEw
MDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzYzA0KSk7CisJcHJpbnRm
KCJWMHhmMDIwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzYzA4KSk7
CisJcHJpbnRmKCJWMHhmMDMwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsg
MHgzYzBDKSk7CisJcHJpbnRmKCJWMHhmMTAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFn
ZXRhYmxlICsgMHgzYzQwKSk7CisJcHJpbnRmKCJWMHhmMjAwMDAwMCAtICUwOHhcbiIsIFJlYWRX
b3JkKGwxcGFnZXRhYmxlICsgMHgzYzgwKSk7CisJcHJpbnRmKCJWMHhmMzAwMDAwMCAtICUwOHhc
biIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzY2MwKSk7CisJcHJpbnRmKCJWMHhmNDAwMDAw
MCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzZDAwKSk7CisJcHJpbnRmKCJW
MHhmNTAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgzZDQwKSk7CisJ
cHJpbnRmKCJWMHhmNjAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgz
ZDgwKSk7CisJcHJpbnRmKCJWMHhmNzAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFnZXRh
YmxlICsgMHgzZGMwKSk7CisJcHJpbnRmKCJwYWdlIGRpciA9IFAlMDh4XG4iLCBib290Y29uZmln
LnNjcmF0Y2hwaHlzaWNhbGJhc2UgKyAweDQwMDApOworCXByaW50ZigibDE9IFYlMDh4XG4iLCBs
MXBhZ2V0YWJsZSk7CisjZW5kaWYKKwogCS8qCiAJICogU2luY2Ugd2UgaGF2ZSBtYXBwZWQgdGhl
IFZSQU0gdXAgaW50byBrZXJuZWwgc3BhY2Ugd2UgbXVzdAogCSAqIG5vdyB1cGRhdGUgdGhlIGJv
b3Rjb25maWcgYW5kIGRpc3BsYXkgc3RydWN0dXJlcyBieSBoYW5kLgpAQCAtNjUxLDkgKzYwNCw2
IEBAIGluaXRhcm0oYm9vdGNvbmYpCiAJCXBoeXNjb25fZGlzcGxheV9iYXNlKFZNRU1fVkJBU0Up
OwogCX0KIAotCWlmIChib290Y29uZmlnLnZyYW1bMF0ucGFnZXMgIT0gMCkKLQkJcHJpbnRmKCJk
b25lLlxuIik7Ci0KIAlpZCA9IFJlYWRCeXRlKElPTURfQkFTRSArIChJT01EX0lEMCA8PCAyKSkK
IAkgIHwgKFJlYWRCeXRlKElPTURfQkFTRSArIChJT01EX0lEMSA8PCAyKSkgPDwgOCk7CiAJc3dp
dGNoIChpZCkgewpAQCAtOTcxLDggKzkyMSw5IEBAIGluaXRhcm0oYm9vdGNvbmYpCiAJLyogTWFw
IHRoZSBDT01CTyAoYW5kIG1vZHVsZSBzcGFjZSkgKi8KIAltYXBfc2VjdGlvbihsMXBhZ2V0YWJs
ZSwgSU9fQkFTRSwgSU9fSFdfQkFTRSwgMCk7CiAKKyNpZmRlZiBWRVJCT1NFX0lOSVRfQVJNCiAJ
LyogQml0IG1vcmUgZGVidWdnaW5nIGluZm8gKi8KLS8qCXByaW50ZigicGFnZSB0YWJsZXMgbG9v
ayBsaWtlIHRoaXMgLi4uXG4iKTsKKwlwcmludGYoInBhZ2UgdGFibGVzIGxvb2sgbGlrZSB0aGlz
IC4uLlxuIik7CiAJcHJpbnRmKCJWMHgwMDAwMDAwMCAtICUwOHhcbiIsIFJlYWRXb3JkKGwxcGFn
ZXRhYmxlICsgMHgwMDAwKSk7CiAJcHJpbnRmKCJWMHgwMzIwMDAwMCAtICUwOHhcbiIsIFJlYWRX
b3JkKGwxcGFnZXRhYmxlICsgMHgwMGM4KSk7CiAJcHJpbnRmKCJWMHgwMzUwMDAwMCAtICUwOHhc
biIsIFJlYWRXb3JkKGwxcGFnZXRhYmxlICsgMHgwMGQ0KSk7CkBAIC05ODgsNyArOTM5LDcgQEAg
aW5pdGFybShib290Y29uZikKIAlwcmludGYoIlYweGY3MDAwMDAwIC0gJTA4eFxuIiwgUmVhZFdv
cmQobDFwYWdldGFibGUgKyAweDNkYzApKTsKIAlwcmludGYoIlYweGVmYzAwMDAwIC0gJTA4eFxu
IiwgUmVhZFdvcmQobDFwYWdldGFibGUgKyAweDNiZjgpKTsKIAlwcmludGYoIlYweGVmODAwMDAw
IC0gJTA4eFxuIiwgUmVhZFdvcmQobDFwYWdldGFibGUgKyAweDNiZmMpKTsKLSovCisjZW5kaWYK
IAogCS8qCiAJICogTm93IHdlIGhhdmUgdGhlIHJlYWwgcGFnZSB0YWJsZXMgaW4gcGxhY2Ugc28g
d2UgY2FuIHN3aXRjaCB0byB0aGVtLgpAQCAtMTA5NywxMSArMTA0OCwxMSBAQCBpbml0YXJtKGJv
b3Rjb25mKQogCSAqIFdlIG5vdyBoYXZlIHRoZSBrZXJuZWwgaW4gcGh5c2ljYWwgbWVtb3J5IGZy
b20gdGhlIGJvdHRvbSB1cHdhcmRzLgogCSAqIEtlcm5lbCBwYWdlIHRhYmxlcyBhcmUgcGh5c2lj
YWxseSBhYm92ZSB0aGlzLgogCSAqIFRoZSBrZXJuZWwgaXMgbWFwcGVkIHRvIDB4ZjAwMDAwMDAK
LQkgKiBUaGUga2VybmVsIGRhdGEgUFRzIHdpbGwgaGFuZGxlIHRoZSBtYXBwaW5nIG9mIDB4ZjEw
MDAwMDAtMHhmMWZmZmZmZgotCSAqIDJNZWcgb2YgVlJBTSBpcyBtYXBwZWQgdG8gMHhmNDAwMDAw
MAorCSAqIFRoZSBrZXJuZWwgZGF0YSBQVHMgd2lsbCBoYW5kbGUgdGhlIG1hcHBpbmcgb2YgMHhm
MTAwMDAwMC0weGY2ZmZmZmZmCiAJICogVGhlIHBhZ2UgdGFibGVzIGFyZSBtYXBwZWQgdG8gMHhl
ZmMwMDAwMAotCSAqIFRoZSBJT01EIGlzIG1hcHBlZCB0byAweGY2MDAwMDAwCi0JICogVGhlIFZJ
REMgaXMgbWFwcGVkIHRvIDB4ZjYxMDAwMDAKKwkgKiBUaGUgSU9NRCBpcyBtYXBwZWQgdG8gMHhm
NzAwMDAwMAorCSAqIFRoZSBWSURDIGlzIG1hcHBlZCB0byAweGY3MTAwMDAwCisJICogMk1lZyBv
ZiBWUkFNIGlzIG1hcHBlZCB0byAweGY3NDAwMDAwCiAJICovCiAKIAkvKiBJbml0aWFsaXNlIHRo
ZSB1bmRlZmluZWQgaW5zdHJ1Y3Rpb24gaGFuZGxlcnMgKi8K

--------------Boundary-00=_HY0P5VYCA6BXNPTVO7FR--