From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-yw0-f44.google.com ([209.85.213.44]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1SfBMp-0005N7-Rc for ptxdist@pengutronix.de; Thu, 14 Jun 2012 16:49:49 +0200 Received: by yhq56 with SMTP id 56so1724644yhq.31 for ; Thu, 14 Jun 2012 07:49:41 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <1339531671.4102.151.camel@keto> References: <7bcf52a941a5c6adc56ff28b0a7b34bfde104cdf.1281035180.git.linz@li-pro.net> <4C5BB7B1.7080502@pengutronix.de> <201008061357.35512.linz@li-pro.net> <1339531671.4102.151.camel@keto> Date: Thu, 14 Jun 2012 11:49:40 -0300 Message-ID: From: Flavio de Castro Alves Filho Content-Type: multipart/mixed; boundary=e89a8fb2063442bbda04c26fcf3d Subject: Re: [ptxdist] [PATCH 1/1] add new packet x-load Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: linz@li-pro.net Cc: ptxdist@pengutronix.de --e89a8fb2063442bbda04c26fcf3d Content-Type: multipart/alternative; boundary=e89a8fb2063442bbd604c26fcf3b --e89a8fb2063442bbd604c26fcf3b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello, It is attached the patch file. Best regards, Flavio Flavio de Castro Alves Filho Phi Innovations www.phiinnovations.com Phone: +55 19 3709 1358 Mobile: +55 19 9823 9332 Skype: flavio.de.castro.alves.filho 2012/6/12 Stephan Linz > Hi Flavio, > > sorry for the delay. I've read your email today. > > Am Donnerstag, den 07.06.2012, 16:56 -0300 schrieb Flavio de Castro > Alves Filho: > > Hello, > > > > > > I'm affraid that the file x-load-f243938.tar.bz2 located at the > > repository is not fine. > > > > > > I was unable to build MLO file with that file. Comparing with the git > > repository (https://git.gitorious.org/x-load-omap3/mainline.git), I > > could find the ift target. > > First of all, read the help pages in menuconfig: > > config X_LOAD_MAKE_IFT > bool > prompt "generate signed ift file" > help > When this option is enabled, a so-called IFT file is generated. You > need a X-Loader source tree that supports this. This must know about > the make target 'ift' so ptxdist can do the following: "make ift". > > In details you will need the tool signGP from > http://beagleboard.googlecode.com/files/signGP.c > > So, you have to present a patch in your private BSP to do that! > > > Some comments to the file x-load-f243938.tar.bz2: > > The source package x-load-f243938.tar.bz2 located on the Pengutronix > mirror is a snapshot of this git repo by Steve Sakoman: > > https://gitorious.org/x-load-omap3/mainline/commit/f243938 > > PTXdist is a distribution build and management system and requires > source tarballs in a specific given version. The problem with x-load is, > that there is nowhere a official source tarball storage with latest > releases. That's why Pengutronix (Marc) have upload this snapshot. > > Feel free to submit a patch (and a new source tarball) for a newer > x-load version to ptxdist mailing list that solves your problems. > > br, > Stephan > > > > > > > > > Best regards, > > > > > > Flavio > > > > Flavio de Castro Alves Filho > > Phi Innovations > > www.phiinnovations.com > > Phone: +55 19 3709 1358 > > Mobile: +55 19 9823 9332 > > Skype: flavio.de.castro.alves.filho > > > > > > 2010/8/6 Stephan Linz > > Am Freitag, 6. August 2010, um 09:20:17 schrieb Marc > > Kleine-Budde: > > > ---snip-- > > > > > > tnx, pushed to master. > > > > > > but, crap, it doesn't work :(...see inline comments: > > > > > > --snip-- > > > > +X_LOAD_MAKE_OPT :=3D CROSS_COMPILE=3D > > $(BOOTLOADER_CROSS_COMPILE) > > > > HOSTCC=3D$(HOSTCC) +X_LOAD_MAKE_PAR :=3D NO > > > > + > > > > +$(STATEDIR)/x-load.prepare: > > > > + @$(call targetinfo) > > > > + @$(call compile, X_LOAD, $(PTXCONF_X_LOAD_CONFIG)) > > > > > > ^^^^^^^^^^^^^^^^^^^^^^^^ > > > > > > I think the second parameter overwrites _MAKE_OPT. I'm not > > sure why it > > > does this, looks like a bug. It should be fixed, but that > > requires some > > > time and testing... > > > > > > However I can work around this limitation by changing > > _MAKE_OPT to > > > _MAKE_ENV. > > > > > > This surprises me because it has properly compiled for me > > > > > > > > I'll push this fix. > > > > > > > tnx a lot. I'll try out your fix. Give me a hint (here). > > > > > > -- > > Viele Gr=FC=DFe, > > Stephan Linz > > > _________________________________________________________________________= _____ > > OpenDCC: http://www.li-pro.net/opendcc.phtml > > PC/M: http://www.li-pro.net/pcm.phtml > > CDK4AVR: http://cdk4avr.sourceforge.net/ > > CDK4NIOS: http://cdk4nios.sourceforge.net/ > > CDK4MSP: http://cdk4msp.sourceforge.net/ > > CPM4L: > > http://download.opensuse.org/repositories/home:/rexut:/CPM4L > > > > > > -- > > ptxdist mailing list > > ptxdist@pengutronix.de > > > > > > > > > > > --e89a8fb2063442bbd604c26fcf3b Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello,

It is attached the patch file.

Best regards,

Flavio

Flavio de Castro Alves Filho
Phi Innovations
www.phiinnovations.com
Phone: +55 19 3709 1358
Mobile: +55 19 9823 9332
Skype: flavio.de.cas= tro.alves.filho


2012/6/12 Stephan Linz <linz@li-pro.net>
Hi Flavio,

sorry for the delay. I've read your email today.

Am Donnerstag, den 07.06.2012, 16:56 -0300 schrieb Flavio de Castro
Alves Filho:
First of all, read the help pages in menuconfig:

config X_LOAD_MAKE_IFT
=A0bool
=A0prompt "generate signed ift file"
=A0help
=A0 =A0When this option is enabled, a so-called IFT file= is generated. You
=A0 =A0need a X-Loader source tree that supports t= his. This must know about
=A0 =A0the make target 'ift' so ptxdist ca= n do the following: "make ift".

=A0 =A0In details you will need the tool signGP fr= om
=A0 =A0http://beagleboard.googlecode.com/files/signGP.c

So, you have to present a patch in your private BSP to do that!


Some comments to the file x-load-f243938.tar.bz2:

The source package x-load-f243938.tar.bz2 located on the Pengutronix
mirror is a snapshot of this git repo by Steve Sakoman:

https://gitorious.org/x-load-omap3/mainline/commit/f243938

PTXdist is a distribution build and management system and requires
source tarballs in a specific given version. The problem with x-load is, that there is nowhere a official source tarball storage with latest
releases. That's why Pengutronix (Marc) have upload this snapshot.

Feel free to submit a patch (and a new source tarball) for a newer
x-load version to ptxdist mailing list that solves your problems.

br,
Stephan

>
>
>
> Best regards,
>
>
> Flavio
>
> Flavio de Castro Alves Filho
> Phi Innovations
>
www.phiinn= ovations.com
> Phone: +55 19 3709 1358
> Mobile: +55 19 9823 9332
> Skype: flavio.de.castro.alves.filho
>
>
> 2010/8/6 Stephan Linz <linz@li-p= ro.net>
> =A0 =A0 =A0 =A0 Am Freitag, 6. August 2010, um 09:20:17 schrieb Marc > =A0 =A0 =A0 =A0 Kleine-Budde:
> =A0 =A0 =A0 =A0 > ---snip--
> =A0 =A0 =A0 =A0 >
> =A0 =A0 =A0 =A0 > tnx, pushed to master.
> =A0 =A0 =A0 =A0 >
> =A0 =A0 =A0 =A0 > but, crap, it doesn't work :(...see inline co= mments:
>
> =A0 =A0 =A0 =A0 > > --snip--
> =A0 =A0 =A0 =A0 > > +X_LOAD_MAKE_OPT =A0 =A0:=3D CROSS_COMPILE= =3D
> =A0 =A0 =A0 =A0 $(BOOTLOADER_CROSS_COMPILE)
> =A0 =A0 =A0 =A0 > > HOSTCC=3D$(HOSTCC) +X_LOAD_MAKE_PAR =A0 :=3D= NO
> =A0 =A0 =A0 =A0 > > +
> =A0 =A0 =A0 =A0 > > +$(STATEDIR)/x-load.prepare:
> =A0 =A0 =A0 =A0 > > + =A0 @$(call targetinfo)
> =A0 =A0 =A0 =A0 > > + =A0 @$(call compile, X_LOAD, $(PTXCONF_X_L= OAD_CONFIG))
> =A0 =A0 =A0 =A0 >
> =A0 =A0 =A0 =A0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0^^^^^^^^^^^^^^^^^^^^^^^^
> =A0 =A0 =A0 =A0 >
> =A0 =A0 =A0 =A0 > I think the second parameter overwrites _MAKE_OPT= . I'm not
> =A0 =A0 =A0 =A0 sure why it
> =A0 =A0 =A0 =A0 > does this, looks like a bug. It should be fixed, = but that
> =A0 =A0 =A0 =A0 requires some
> =A0 =A0 =A0 =A0 > time and testing...
> =A0 =A0 =A0 =A0 >
> =A0 =A0 =A0 =A0 > However I can work around this limitation by chan= ging
> =A0 =A0 =A0 =A0 _MAKE_OPT to
> =A0 =A0 =A0 =A0 > _MAKE_ENV.
>
>
> =A0 =A0 =A0 =A0 This surprises me because it has properly compiled for= me
>
> =A0 =A0 =A0 =A0 >
> =A0 =A0 =A0 =A0 > I'll push this fix.
> =A0 =A0 =A0 =A0 >
>
> =A0 =A0 =A0 =A0 tnx a lot. =A0I'll try out your fix. Give me a hin= t (here).
>
>
> =A0 =A0 =A0 =A0 --
> =A0 =A0 =A0 =A0 Viele Gr=FC=DFe,
> =A0 =A0 =A0 =A0 Stephan Linz
> =A0 =A0 =A0 =A0 ______________________________________________________= ________________________
> =A0 =A0 =A0 =A0 OpenDCC: http://www.li-pro.net/opendcc.phtml
> =A0 =A0 =A0 =A0 PC/M: http://www.li-pro.net/pcm.phtml
> =A0 =A0 =A0 =A0 CDK4AVR: http://cdk4avr.sourceforge.net/
> =A0 =A0 =A0 =A0 CDK4NIOS: http://cdk4nios.sourceforge.net/
> =A0 =A0 =A0 =A0 CDK4MSP: http://cdk4msp.sourceforge.net/
> =A0 =A0 =A0 =A0 CPM4L:
> =A0 =A0 =A0 =A0 http://download.opensuse.org/repositor= ies/home:/rexut:/CPM4L
>
>
> =A0 =A0 =A0 =A0 --
> =A0 =A0 =A0 =A0 ptxdist mailing list
> =A0 =A0 =A0 =A0 ptxdist@peng= utronix.de
>
>
>





--e89a8fb2063442bbd604c26fcf3b-- --e89a8fb2063442bbda04c26fcf3d Content-Type: application/octet-stream; name="update_x-load_git.patch" Content-Disposition: attachment; filename="update_x-load_git.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h3fy2x2m0 RnJvbSAzZjJmZTZkMjg3MjhjMDk1ZmY3MzdhMDFjOTkzMTRhMjg0ZTZlNzUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbGF2aW8gQWx2ZXMgPGZsYXZpby5hbHZlc0BwaGlpbm5vdmF0 aW9ucy5jb20+CkRhdGU6IFRodSwgMTQgSnVuIDIwMTIgMTE6NDM6MzkgLTAzMDAKU3ViamVjdDog W1BBVENIXSAqIFVwZGF0ZSB4LWxvYWQgZnJvbSB0aGUgZm9sbG93aW5nIGdpdCByZXBvc2l0b3J5 ICAKIGdpdDovL2dpdC5naXRvcmlvdXMub3JnL3gtbG9hZC1vbWFwMy9tYWlubGluZS5naXQgICBU aGUKIG1haW4gaW1wbGVtZW50YXRpb24gaXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIE1MTyBmaWxl ICAKIGZyb20gUFRYRElTVAoKLS0tCiBwYXRjaGVzL3gtbG9hZC1mMjQzOTM4L3NlcmllcyAgICAg ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL3VwZGF0ZS14X2xvYWQtZnJvbS1naXRvdXJp b3VzLnBhdGNoICAgICAgICAgICAgfCA3MDc3ICsrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVz IGNoYW5nZWQsIDcwNzggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMv eC1sb2FkLWYyNDM5Mzgvc2VyaWVzCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy94LWxvYWQt ZjI0MzkzOC91cGRhdGUteF9sb2FkLWZyb20tZ2l0b3VyaW91cy5wYXRjaAoKZGlmZiAtLWdpdCBh L3BhdGNoZXMveC1sb2FkLWYyNDM5Mzgvc2VyaWVzIGIvcGF0Y2hlcy94LWxvYWQtZjI0MzkzOC9z ZXJpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZiMjM2MAotLS0gL2Rl di9udWxsCisrKyBiL3BhdGNoZXMveC1sb2FkLWYyNDM5Mzgvc2VyaWVzCkBAIC0wLDAgKzEgQEAK K3VwZGF0ZS14X2xvYWQtZnJvbS1naXRvdXJpb3VzLnBhdGNoCmRpZmYgLS1naXQgYS9wYXRjaGVz L3gtbG9hZC1mMjQzOTM4L3VwZGF0ZS14X2xvYWQtZnJvbS1naXRvdXJpb3VzLnBhdGNoIGIvcGF0 Y2hlcy94LWxvYWQtZjI0MzkzOC91cGRhdGUteF9sb2FkLWZyb20tZ2l0b3VyaW91cy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTcyMmFkCi0tLSAvZGV2L251bGwK KysrIGIvcGF0Y2hlcy94LWxvYWQtZjI0MzkzOC91cGRhdGUteF9sb2FkLWZyb20tZ2l0b3VyaW91 cy5wYXRjaApAQCAtMCwwICsxLDcwNzcgQEAKK2RpZmYgLXVOciB4LWxvYWQtZjI0MzkzOC5vcmln L2JvYXJkL29tYXAzNTMwYmVhZ2xlL29tYXAzNTMwYmVhZ2xlLmMgeC1sb2FkLWYyNDM5MzgvYm9h cmQvb21hcDM1MzBiZWFnbGUvb21hcDM1MzBiZWFnbGUuYworLS0tIHgtbG9hZC1mMjQzOTM4Lm9y aWcvYm9hcmQvb21hcDM1MzBiZWFnbGUvb21hcDM1MzBiZWFnbGUuYwkyMDEwLTA4LTAzIDE4OjA4 OjM4LjAwMDAwMDAwMCAtMDMwMAorKysrIHgtbG9hZC1mMjQzOTM4L2JvYXJkL29tYXAzNTMwYmVh Z2xlL29tYXAzNTMwYmVhZ2xlLmMJMjAxMi0wNi0wNyAxNDo0NTozOS40NDE2NDg2NjYgLTAzMDAK K0BAIC0zMDQsNyArMzA0LDMxIEBACisgCS8qIHNldHVwIHNkcmMgdG8gYmFsbCBtdXggKi8KKyAJ X19yYXdfd3JpdGVsKFNEUF9TRFJDX1NIQVJJTkcsIFNEUkNfU0hBUklORyk7CisgCistCWlmIChi ZWFnbGVfcmV2aXNpb24oKSA9PSBSRVZJU0lPTl9YTSkgeworKwlzd2l0Y2goYmVhZ2xlX3Jldmlz aW9uKCkpIHsKKysJY2FzZSBSRVZJU0lPTl9DNDoKKysJCWlmIChpZGVudGlmeV94bV9kZHIoKSA9 PSBOVU1PTllYX01DUCkgeworKwkJCV9fcmF3X3dyaXRlbCgweDQsIFNEUkNfQ1NfQ0ZHKTsgLyog NTEyTUIvYmFuayAqLworKwkJCV9fcmF3X3dyaXRlbChTRFBfU0RSQ19NRENGR18wX0REUl9OVU1P TllYX1hNLCBTRFJDX01DRkdfMCk7CisrCQkJX19yYXdfd3JpdGVsKFNEUF9TRFJDX01EQ0ZHXzBf RERSX05VTU9OWVhfWE0sIFNEUkNfTUNGR18xKTsKKysJCQlfX3Jhd193cml0ZWwoTlVNT05ZWF9W X0FDVElNQV8xNjUsIFNEUkNfQUNUSU1fQ1RSTEFfMCk7CisrCQkJX19yYXdfd3JpdGVsKE5VTU9O WVhfVl9BQ1RJTUJfMTY1LCBTRFJDX0FDVElNX0NUUkxCXzApOworKwkJCV9fcmF3X3dyaXRlbChO VU1PTllYX1ZfQUNUSU1BXzE2NSwgU0RSQ19BQ1RJTV9DVFJMQV8xKTsKKysJCQlfX3Jhd193cml0 ZWwoTlVNT05ZWF9WX0FDVElNQl8xNjUsIFNEUkNfQUNUSU1fQ1RSTEJfMSk7CisrCQkJX19yYXdf d3JpdGVsKFNEUF8zNDMwX1NEUkNfUkZSX0NUUkxfMTY1TUh6LCBTRFJDX1JGUl9DVFJMXzApOwor KwkJCV9fcmF3X3dyaXRlbChTRFBfMzQzMF9TRFJDX1JGUl9DVFJMXzE2NU1IeiwgU0RSQ19SRlJf Q1RSTF8xKTsKKysJCX0gZWxzZSB7CisrCQkJX19yYXdfd3JpdGVsKDB4MSwgU0RSQ19DU19DRkcp OyAvKiAxMjhNQi9iYW5rICovCisrCQkJX19yYXdfd3JpdGVsKFNEUF9TRFJDX01EQ0ZHXzBfRERS LCBTRFJDX01DRkdfMCk7CisrCQkJX19yYXdfd3JpdGVsKFNEUF9TRFJDX01EQ0ZHXzBfRERSLCBT RFJDX01DRkdfMSk7CisrCQkJX19yYXdfd3JpdGVsKE1JQ1JPTl9WX0FDVElNQV8xNjUsIFNEUkNf QUNUSU1fQ1RSTEFfMCk7CisrCQkJX19yYXdfd3JpdGVsKE1JQ1JPTl9WX0FDVElNQl8xNjUsIFNE UkNfQUNUSU1fQ1RSTEJfMCk7CisrCQkJX19yYXdfd3JpdGVsKE1JQ1JPTl9WX0FDVElNQV8xNjUs IFNEUkNfQUNUSU1fQ1RSTEFfMSk7CisrCQkJX19yYXdfd3JpdGVsKE1JQ1JPTl9WX0FDVElNQl8x NjUsIFNEUkNfQUNUSU1fQ1RSTEJfMSk7CisrCQkJX19yYXdfd3JpdGVsKFNEUF8zNDMwX1NEUkNf UkZSX0NUUkxfMTY1TUh6LCBTRFJDX1JGUl9DVFJMXzApOworKwkJCV9fcmF3X3dyaXRlbChTRFBf MzQzMF9TRFJDX1JGUl9DVFJMXzE2NU1IeiwgU0RSQ19SRlJfQ1RSTF8xKTsKKysJCX0KKysJCWJy ZWFrOworKwljYXNlIFJFVklTSU9OX1hNOgorIAkJaWYgKGlkZW50aWZ5X3htX2RkcigpID09IE1J Q1JPTl9ERFIpIHsKKyAJCQlfX3Jhd193cml0ZWwoMHgyLCBTRFJDX0NTX0NGRyk7IC8qIDI1Nk1C L2JhbmsgKi8KKyAJCQlfX3Jhd193cml0ZWwoU0RQX1NEUkNfTURDRkdfMF9ERFJfTUlDUk9OX1hN LCBTRFJDX01DRkdfMCk7CitAQCAtMzI2LDcgKzM1MCw4IEBACisgCQkJX19yYXdfd3JpdGVsKFNE UF8zNDMwX1NEUkNfUkZSX0NUUkxfMTY1TUh6LCBTRFJDX1JGUl9DVFJMXzApOworIAkJCV9fcmF3 X3dyaXRlbChTRFBfMzQzMF9TRFJDX1JGUl9DVFJMXzE2NU1IeiwgU0RSQ19SRlJfQ1RSTF8xKTsK KyAJCX0KKy0JfSBlbHNlIHsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorIAkJX19yYXdfd3JpdGVs KDB4MSwgU0RSQ19DU19DRkcpOyAvKiAxMjhNQi9iYW5rICovCisgCQlfX3Jhd193cml0ZWwoU0RQ X1NEUkNfTURDRkdfMF9ERFIsIFNEUkNfTUNGR18wKTsKKyAJCV9fcmF3X3dyaXRlbChTRFBfU0RS Q19NRENGR18wX0REUiwgU0RSQ19NQ0ZHXzEpOworQEAgLTY1OSw3ICs2ODQsMTAgQEAKKyAJCXBy aW50ZigiQmVhZ2xlIFJldiBDMS9DMi9DM1xuIik7CisgCQlicmVhazsKKyAJY2FzZSBSRVZJU0lP Tl9DNDoKKy0JCXByaW50ZigiQmVhZ2xlIFJldiBDNFxuIik7CisrCQlpZiAoaWRlbnRpZnlfeG1f ZGRyKCkgPT0gTlVNT05ZWF9NQ1ApCisrCQkJcHJpbnRmKCJCZWFnbGUgUmV2IEM0IGZyb20gU3Bl Y2lhbCBDb21wdXRpbmdcbiIpOworKwkJZWxzZQorKwkJCXByaW50ZigiQmVhZ2xlIFJldiBDNFxu Iik7CisgCQlicmVhazsKKyAJY2FzZSBSRVZJU0lPTl9YTToKKyAJCXByaW50ZigiQmVhZ2xlIHhN IFJldiBBXG4iKTsKK0BAIC05NTUsNiArOTgzLDcgQEAKKyAJX19yYXdfd3JpdGVsKDAgLCBHUE1D X0NPTkZJRzcgKyBHUE1DX0NPTkZJR19DUzApOworIAlkZWxheSgxMDAwKTsKKyAKKysjaWZkZWYg Q0ZHX05BTkRfSzlGMUcwOFIwQQorIAlpZiAoKGdldF9tZW1fdHlwZSgpID09IEdQTUNfTkFORCkg fHwgKGdldF9tZW1fdHlwZSgpID09IE1NQ19OQU5EKSkgeworIAkJX19yYXdfd3JpdGVsKE1fTkFO RF9HUE1DX0NPTkZJRzEsIEdQTUNfQ09ORklHMSArIEdQTUNfQ09ORklHX0NTMCk7CisgCQlfX3Jh d193cml0ZWwoTV9OQU5EX0dQTUNfQ09ORklHMiwgR1BNQ19DT05GSUcyICsgR1BNQ19DT05GSUdf Q1MwKTsKK0BAIC05NzUsOSArMTAwNCwxMCBAQAorICNlbmRpZgorIAkJCXJldHVybiAxOworIAkJ fQorLQorIAl9CisrI2VuZGlmCisgCisrI2lmZGVmIENGR19PTkVOQU5ECisgCWlmICgoZ2V0X21l bV90eXBlKCkgPT0gR1BNQ19PTkVOQU5EKSB8fCAoZ2V0X21lbV90eXBlKCkgPT0gTU1DX09ORU5B TkQpKSB7CisgCQlfX3Jhd193cml0ZWwoT05FTkFORF9HUE1DX0NPTkZJRzEsIEdQTUNfQ09ORklH MSArIEdQTUNfQ09ORklHX0NTMCk7CisgCQlfX3Jhd193cml0ZWwoT05FTkFORF9HUE1DX0NPTkZJ RzIsIEdQTUNfQ09ORklHMiArIEdQTUNfQ09ORklHX0NTMCk7CitAQCAtOTk5LDYgKzEwMjksNyBA QAorIAkJCXJldHVybiAxOworIAkJfQorIAl9CisrI2VuZGlmCisgCXJldHVybiAwOworIH0KKyAK K2RpZmYgLXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2JvYXJkL29tYXAzZXZtL29tYXAzZXZtLmMg eC1sb2FkLWYyNDM5MzgvYm9hcmQvb21hcDNldm0vb21hcDNldm0uYworLS0tIHgtbG9hZC1mMjQz OTM4Lm9yaWcvYm9hcmQvb21hcDNldm0vb21hcDNldm0uYwkyMDEwLTA4LTAzIDE4OjA4OjM4LjAw MDAwMDAwMCAtMDMwMAorKysrIHgtbG9hZC1mMjQzOTM4L2JvYXJkL29tYXAzZXZtL29tYXAzZXZt LmMJMjAxMi0wNi0wNyAxNDo0NTozOS40NDU2NDg2NjYgLTAzMDAKK0BAIC0yMzUsNyArMjM1LDcg QEAKKyAgICAgICAgIAlfX3Jhd193cml0ZWwoTUlDUk9OX1NEUkNfQUNUSU1fQ1RSTEJfMCwgU0RS Q19BQ1RJTV9DVFJMQl8wKTsKKyAJfQorIAorLQlfX3Jhd193cml0ZWwoU0RQX1NEUkNfUkZSX0NU UkwsIFNEUkNfUkZSX0NUUkwpOworKwlfX3Jhd193cml0ZWwoU0RQXzM0MzBfU0RSQ19SRlJfQ1RS TF8xNjVNSHosIFNEUkNfUkZSX0NUUkxfMCk7CisgCV9fcmF3X3dyaXRlbChTRFBfU0RSQ19QT1dF Ul9QT1AsIFNEUkNfUE9XRVIpOworIAorIAkvKiBpbml0IHNlcXVlbmNlIGZvciBtRERSL21TRFIg dXNpbmcgbWFudWFsIGNvbW1hbmRzIChERFIgaXMgZGlmZmVyZW50KSAqLworZGlmZiAtdU5yIHgt bG9hZC1mMjQzOTM4Lm9yaWcvYm9hcmQvb21hcDQ0MzBwYW5kYS9jbG9jay5jIHgtbG9hZC1mMjQz OTM4L2JvYXJkL29tYXA0NDMwcGFuZGEvY2xvY2suYworLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcv Ym9hcmQvb21hcDQ0MzBwYW5kYS9jbG9jay5jCTE5NjktMTItMzEgMjE6MDA6MDAuMDAwMDAwMDAw IC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvYm9hcmQvb21hcDQ0MzBwYW5kYS9jbG9jay5jCTIw MTItMDYtMDcgMTQ6NDU6MzkuNDQ1NjQ4NjY2IC0wMzAwCitAQCAtMCwwICsxLDgwNCBAQAorKy8q CisrICogKEMpIENvcHlyaWdodCAyMDA5CisrICogVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cudGku Y29tPgorKyAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KKysgKiBSYWpl bmRyYSBOYXlhayA8cm5heWFrQHRpLmNvbT4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworKyAq IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mCisrICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgKiBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZQorKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMw LCBCb3N0b24sCisrICogTUEgMDIxMTEtMTMwNyBVU0EKKysgKi8KKysKKysjaW5jbHVkZSA8Y29t bW9uLmg+CisrI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgorKyNpbmNsdWRlIDxhc20vaW8uaD4K KysjaW5jbHVkZSA8YXNtL2FyY2gvYml0cy5oPgorKyNpbmNsdWRlIDxhc20vYXJjaC9jbG9ja3Mu aD4KKysjaW5jbHVkZSA8YXNtL2FyY2gvbWVtLmg+CisrI2luY2x1ZGUgPGFzbS9hcmNoL3N5c19w cm90by5oPgorKyNpbmNsdWRlIDxhc20vYXJjaC9zeXNfaW5mby5oPgorKyNpbmNsdWRlIDxhc20v YXJjaC9jbG9ja3M0NDN4Lmg+CisrI2luY2x1ZGUgPGNvbW1hbmQuaD4KKysKKysjZGVmaW5lIENP TkZJR19PTUFQNF9TREMgMQorKworKy8qIFVzZWQgdG8gaW5kZXggaW50byBEUExMIHBhcmFtZXRl ciB0YWJsZXMgKi8KKytzdHJ1Y3QgZHBsbF9wYXJhbSB7CisrCXVuc2lnbmVkIGludCBtOworKwl1 bnNpZ25lZCBpbnQgbjsKKysJdW5zaWduZWQgaW50IG0yOworKwl1bnNpZ25lZCBpbnQgbTM7Cisr CXVuc2lnbmVkIGludCBtNDsKKysJdW5zaWduZWQgaW50IG01OworKwl1bnNpZ25lZCBpbnQgbTY7 CisrCXVuc2lnbmVkIGludCBtNzsKKyt9OworKworKy8qIFRhYmxlcyBoYXZpbmcgTSxOLE0yIGV0 IGFsIHZhbHVlcyBmb3IgZGlmZmVyZW50IHN5c19jbGsgc3BlZWRzCisrICogVGhpcyB0YWJsZSBp cyBnZW5lcmF0ZWQgb25seSBmb3IgT1BQMTAwCisrICogVGhlIHRhYmxlcyBhcmUgb3JnYW5pemVk IGFzIGZvbGxvd3M6CisrICogUm93cyA6IDEgLSAxMk0sIDIgLSAxM00sIDMgLSAxNi44TSwgNCAt IDE5LjJNLCA1IC0gMjZNLCA2IC0gMjdNLCA3IC0gMzguNE0KKysgKi8KKysKKysvKiBNUFUgcGFy YW1ldGVycyAqLworK3N0cnVjdCBkcGxsX3BhcmFtIG1wdV9kcGxsX3BhcmFtWzddID0geworKwkv KiAxMk0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4 MH0sCisrCS8qIDEzTSB2YWx1ZXMgKi8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAs IDB4MCwgMHgwfSwKKysJLyogMTYuOE0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAs IDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDE5LjJNIHZhbHVlcyAqLworKwl7MHgwLCAweDAs IDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkvKiAyNk0gdmFsdWVzICovCisrCXsw eDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDI3TSB2YWx1ZXMg Ki8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJLyogMzgu NE0gdmFsdWVzICovCisrI2lmZGVmIENPTkZJR19NUFVfNjAwCisrCS8qIFJVTiBNUFUgQCA2MDAg TUh6ICovCisrCXsweDdkLCAweDA3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw fSwKKysjZWxpZiBDT05GSUdfTVBVXzEwMDAKKysJezB4NjksIDB4MDMsIDB4MDEsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDB9LAorKyNlbHNlCisrCXsweDFhLCAweDAyLCAweDAxLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwfSwJCisrI2VuZGlmCisrfTsKKysKKysvKiBJVkEgcGFy YW1ldGVycyAqLworK3N0cnVjdCBkcGxsX3BhcmFtIGl2YV9kcGxsX3BhcmFtWzddID0geworKwkv KiAxMk0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4 MH0sCisrCS8qIDEzTSB2YWx1ZXMgKi8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAs IDB4MCwgMHgwfSwKKysJLyogMTYuOE0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAs IDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDE5LjJNIHZhbHVlcyAqLworKwl7MHgwLCAweDAs IDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkvKiAyNk0gdmFsdWVzICovCisrCXsw eDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDI3TSB2YWx1ZXMg Ki8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJLyogMzgu NE0gdmFsdWVzICovCisrI2lmZGVmIENPTkZJR19PTUFQNF9TREMKKysJezB4NjEsIDB4MDMsIDB4 MDAsIDB4MDAsIDB4MDQsIDB4MDcsIDB4MDAsIDB4MDB9LAorKyNlbHNlCisrCXsweDYxLCAweDAz LCAweDAwLCAweDAwLCAweDA0LCAweDA3LCAweDAwLCAweDAwfSwKKysjZW5kaWYKKyt9OworKwor Ky8qIENPUkUgcGFyYW1ldGVycyAqLworK3N0cnVjdCBkcGxsX3BhcmFtIGNvcmVfZHBsbF9wYXJh bVs3XSA9IHsKKysJLyogMTJNIHZhbHVlcyAqLworKwl7MHgwLCAweDAsIDB4MCwgMHgwLCAweDAs IDB4MCwgMHgwLCAweDB9LAorKwkvKiAxM00gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAw eDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDE2LjhNIHZhbHVlcyAqLworKwl7MHgwLCAw eDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkvKiAxOS4yTSB2YWx1ZXMgKi8K KysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJLyogMjZNIHZh bHVlcyAqLworKwl7MHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkv KiAyN00gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4 MH0sCisrCS8qIDM4LjRNIHZhbHVlcyAtIEREUkAyMDBNSHoqLworKwl7MHg3ZCwgMHgwNSwgMHgw MiwgMHgwNSwgMHgwOCwgMHgwNCwgMHgwNiwgMHgwNX0sCisrfTsKKysKKysvKiBDT1JFIHBhcmFt ZXRlcnMgLSBFUzIuMSAqLworK3N0cnVjdCBkcGxsX3BhcmFtIGNvcmVfZHBsbF9wYXJhbV9kZHI0 MDBbN10gPSB7CisrCS8qIDEyTSB2YWx1ZXMgKi8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgw LCAweDAsIDB4MCwgMHgwfSwKKysJLyogMTNNIHZhbHVlcyAqLworKwl7MHgwLCAweDAsIDB4MCwg MHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkvKiAxNi44TSB2YWx1ZXMgKi8KKysJezB4MCwg MHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJLyogMTkuMk0gdmFsdWVzICov CisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDI2TSB2 YWx1ZXMgKi8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJ LyogMjdNIHZhbHVlcyAqLworKwl7MHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAw eDB9LAorKwkvKiAzOC40TSB2YWx1ZXMgLSBERFJANDAwTUh6Ki8KKysJezB4N2QsIDB4MDUsIDB4 MDEsIDB4MDUsIDB4MDgsIDB4MDQsIDB4MDYsIDB4MDV9LAorK307CisrCisrLyogQ09SRSBwYXJh bWV0ZXJzIGZvciBMMyBhdCAxOTAgTUh6IC0gRm9yIEVTMSBvbmx5Ki8KKytzdHJ1Y3QgZHBsbF9w YXJhbSBjb3JlX2RwbGxfcGFyYW1fbDNfMTkwWzddID0geworKwkvKiAxMk0gdmFsdWVzICovCisr CXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDEzTSB2YWx1 ZXMgKi8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJLyog MTYuOE0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4 MH0sCisrCS8qIDE5LjJNIHZhbHVlcyAqLworKwl7MHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4 MCwgMHgwLCAweDB9LAorKwkvKiAyNk0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAs IDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDI3TSB2YWx1ZXMgKi8KKysJezB4MCwgMHgwLCAw eDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJLyogMzguNE0gdmFsdWVzICovCisrI2lm ZGVmIENPTkZJR19PTUFQNF9TREMKKysjaWZkZWYgQ09SRV8xOTBNSFogCisrCXsweDFmMCwgMHgx OCwgMHgwMSwgMHgwNSwgMHgwOCwgMHgwNCwgMHgwNiwgMHgwNX0sCisrI2Vsc2UgLyogRGVmYXVs dCBDT1JFIEAxNjZNSHogKi8KKysJezB4MWIwLCAweDE4LCAweDAxLCAweDA1LCAweDA4LCAweDA0 LCAweDA2LCAweDA1fSwKKysjZW5kaWYKKysjZWxzZQorKwl7MHg3ZCwgMHgwNSwgMHgwMSwgMHgw NSwgMHgwOCwgMHgwNCwgMHgwNiwgMHgwOH0sCisrI2VuZGlmCisrfTsKKysKKysvKiBQRVIgcGFy YW1ldGVycyAqLworK3N0cnVjdCBkcGxsX3BhcmFtIHBlcl9kcGxsX3BhcmFtWzddID0geworKwkv KiAxMk0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4 MH0sCisrCS8qIDEzTSB2YWx1ZXMgKi8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAs IDB4MCwgMHgwfSwKKysJLyogMTYuOE0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAs IDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDE5LjJNIHZhbHVlcyAqLworKwl7MHgwLCAweDAs IDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkvKiAyNk0gdmFsdWVzICovCisrCXsw eDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDI3TSB2YWx1ZXMg Ki8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJLyogMzgu NE0gdmFsdWVzICovCisrI2lmIDAKKysJLyogU0RDIHNldHRpbmdzICovCisrCXsweDBhLCAweDAw LCAweDA0LCAweDAzLCAweDA2LCAweDA1LCAweDAyLCAweDAzfSwKKysjZW5kaWYKKysJezB4MTQs IDB4MDAsIDB4MDgsIDB4MDYsIDB4MGMsIDB4MDksIDB4MDQsIDB4MDV9LAorK307CisrCisrLyog QUJFIHBhcmFtZXRlcnMgKi8KKytzdHJ1Y3QgZHBsbF9wYXJhbSBhYmVfZHBsbF9wYXJhbVs3XSA9 IHsKKysJLyogMTJNIHZhbHVlcyAqLworKwl7MHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwg MHgwLCAweDB9LAorKwkvKiAxM00gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4 MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDE2LjhNIHZhbHVlcyAqLworKwl7MHgwLCAweDAsIDB4 MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkvKiAxOS4yTSB2YWx1ZXMgKi8KKysJezB4 MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJLyogMjZNIHZhbHVlcyAq LworKwl7MHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkvKiAyN00g dmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisr CS8qIDM4LjRNIHZhbHVlcyAqLworKyNpZmRlZiBDT05GSUdfT01BUDRfU0RDCisrCXsweDQwLCAw eDE4LCAweDEsIDB4MSwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysjZWxzZQorKwl7MHg0MCwgMHgx OCwgMHgxLCAweDEsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrI2VuZGlmCisrfTsKKysKKysvKiBV U0IgcGFyYW1ldGVycyAqLworK3N0cnVjdCBkcGxsX3BhcmFtIHVzYl9kcGxsX3BhcmFtWzddID0g eworKwkvKiAxMk0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAw eDAsIDB4MH0sCisrCS8qIDEzTSB2YWx1ZXMgKi8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgw LCAweDAsIDB4MCwgMHgwfSwKKysJLyogMTYuOE0gdmFsdWVzICovCisrCXsweDAsIDB4MCwgMHgw LCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDE5LjJNIHZhbHVlcyAqLworKwl7MHgw LCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDB9LAorKwkvKiAyNk0gdmFsdWVzICov CisrCXsweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrCS8qIDI3TSB2 YWx1ZXMgKi8KKysJezB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwfSwKKysJ LyogMzguNE0gdmFsdWVzICovCisrI2lmZGVmIENPTkZJR19PTUFQNF9TREMKKysJezB4MzIsIDB4 MSwgMHgyLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrI2Vsc2UKKysJezB4MzIsIDB4MSwg MHgyLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MH0sCisrI2VuZGlmCisrfTsKKysKKyt0eXBlZGVm IHN0cnVjdCBkcGxsX3BhcmFtIGRwbGxfcGFyYW07CisrCisrc3RhdGljIHZvaWQgY29uZmlndXJl X21wdV9kcGxsKHUzMiBjbGtfaW5kZXgpCisreworKwlkcGxsX3BhcmFtICpkcGxsX3BhcmFtX3A7 CisrCisrCS8qIFVubG9jayB0aGUgTVBVIGRwbGwgKi8KKysJc3IzMihDTV9DTEtNT0RFX0RQTExf TVBVLCAwLCAzLCBQTExfTU5fUE9XRVJfQllQQVNTKTsKKysJd2FpdF9vbl92YWx1ZShCSVQwLCAw LCBDTV9JRExFU1RfRFBMTF9NUFUsIExERUxBWSk7CisrCisrCS8qIFByb2dyYW0gTVBVIERQTEwg Ki8KKysJZHBsbF9wYXJhbV9wID0gJm1wdV9kcGxsX3BhcmFtW2Nsa19pbmRleF07CisrCisrCXNy MzIoQ01fQVVUT0lETEVfRFBMTF9NUFUsIDAsIDMsIDB4MCk7IC8qIERpc2FibGUgRFBMTCBhdXRv aWRsZSAqLworKworKwkvKiBTZXQgTSxOLE0yIHZhbHVlcyAqLworKwlzcjMyKENNX0NMS1NFTF9E UExMX01QVSwgOCwgMTEsIGRwbGxfcGFyYW1fcC0+bSk7CisrCXNyMzIoQ01fQ0xLU0VMX0RQTExf TVBVLCAwLCA2LCBkcGxsX3BhcmFtX3AtPm4pOworKwlzcjMyKENNX0RJVl9NMl9EUExMX01QVSwg MCwgNSwgZHBsbF9wYXJhbV9wLT5tMik7CisrCXNyMzIoQ01fRElWX00yX0RQTExfTVBVLCA4LCAx LCAweDEpOworKworKwkvKiBMb2NrIHRoZSBtcHUgZHBsbCAqLworKwlzcjMyKENNX0NMS01PREVf RFBMTF9NUFUsIDAsIDMsIFBMTF9MT0NLIHwgMHgxMCk7CisrCXdhaXRfb25fdmFsdWUoQklUMCwg MSwgQ01fSURMRVNUX0RQTExfTVBVLCBMREVMQVkpOworKworKwlyZXR1cm47CisrfQorKworK3N0 YXRpYyB2b2lkIGNvbmZpZ3VyZV9pdmFfZHBsbCh1MzIgY2xrX2luZGV4KQorK3sKKysJZHBsbF9w YXJhbSAqZHBsbF9wYXJhbV9wOworKworKwkvKiBVbmxvY2sgdGhlIElWQSBkcGxsICovCisrCXNy MzIoQ01fQ0xLTU9ERV9EUExMX0lWQSwgMCwgMywgUExMX01OX1BPV0VSX0JZUEFTUyk7CisrCXdh aXRfb25fdmFsdWUoQklUMCwgMCwgQ01fSURMRVNUX0RQTExfSVZBLCBMREVMQVkpOworKworKwkv KiBDTV9CWVBDTEtfRFBMTF9JVkEgPSBDT1JFX1gyX0NMSy8yICovCisrCXNyMzIoQ01fQllQQ0xL X0RQTExfSVZBLCAwLCAyLCAweDEpOworKworKwkvKiBQcm9ncmFtIElWQSBEUExMICovCisrCWRw bGxfcGFyYW1fcCA9ICZpdmFfZHBsbF9wYXJhbVtjbGtfaW5kZXhdOworKworKwlzcjMyKENNX0FV VE9JRExFX0RQTExfSVZBLCAwLCAzLCAweDApOyAvKiBEaXNhYmxlIERQTEwgYXV0b2lkbGUgKi8K KysKKysJLyogU2V0IE0sTixNNCxNNSAqLworKwlzcjMyKENNX0NMS1NFTF9EUExMX0lWQSwgOCwg MTEsIGRwbGxfcGFyYW1fcC0+bSk7CisrCXNyMzIoQ01fQ0xLU0VMX0RQTExfSVZBLCAwLCA3LCBk cGxsX3BhcmFtX3AtPm4pOworKwlzcjMyKENNX0RJVl9NNF9EUExMX0lWQSwgMCwgNSwgZHBsbF9w YXJhbV9wLT5tNCk7CisrCXNyMzIoQ01fRElWX000X0RQTExfSVZBLCA4LCAxLCAweDEpOworKwlz cjMyKENNX0RJVl9NNV9EUExMX0lWQSwgMCwgNSwgZHBsbF9wYXJhbV9wLT5tNSk7CisrCXNyMzIo Q01fRElWX001X0RQTExfSVZBLCA4LCAxLCAweDEpOworKworKwkvKiBMb2NrIHRoZSBpdmEgZHBs bCAqLworKwlzcjMyKENNX0NMS01PREVfRFBMTF9JVkEsIDAsIDMsIFBMTF9MT0NLKTsKKysJd2Fp dF9vbl92YWx1ZShCSVQwLCAxLCBDTV9JRExFU1RfRFBMTF9JVkEsIExERUxBWSk7CisrCisrCXJl dHVybjsKKyt9CisrCisrc3RhdGljIHZvaWQgY29uZmlndXJlX3Blcl9kcGxsKHUzMiBjbGtfaW5k ZXgpCisreworKwlkcGxsX3BhcmFtICpkcGxsX3BhcmFtX3A7CisrCisrCS8qIFVubG9jayB0aGUg UEVSIGRwbGwgKi8KKysJc3IzMihDTV9DTEtNT0RFX0RQTExfUEVSLCAwLCAzLCBQTExfTU5fUE9X RVJfQllQQVNTKTsKKysJd2FpdF9vbl92YWx1ZShCSVQwLCAwLCBDTV9JRExFU1RfRFBMTF9QRVIs IExERUxBWSk7CisrCisrCS8qIFByb2dyYW0gUEVSIERQTEwgKi8KKysJZHBsbF9wYXJhbV9wID0g JnBlcl9kcGxsX3BhcmFtW2Nsa19pbmRleF07CisrCisrCS8qIERpc2FibGUgYXV0b2lkbGUgKi8K KysJc3IzMihDTV9BVVRPSURMRV9EUExMX1BFUiwgMCwgMywgMHgwKTsKKysKKysJc3IzMihDTV9D TEtTRUxfRFBMTF9QRVIsIDgsIDExLCBkcGxsX3BhcmFtX3AtPm0pOworKwlzcjMyKENNX0NMS1NF TF9EUExMX1BFUiwgMCwgNiwgZHBsbF9wYXJhbV9wLT5uKTsKKysJc3IzMihDTV9ESVZfTTJfRFBM TF9QRVIsIDAsIDUsIGRwbGxfcGFyYW1fcC0+bTIpOworKwlzcjMyKENNX0RJVl9NM19EUExMX1BF UiwgMCwgNSwgZHBsbF9wYXJhbV9wLT5tMyk7CisrCXNyMzIoQ01fRElWX000X0RQTExfUEVSLCAw LCA1LCBkcGxsX3BhcmFtX3AtPm00KTsKKysJc3IzMihDTV9ESVZfTTVfRFBMTF9QRVIsIDAsIDUs IGRwbGxfcGFyYW1fcC0+bTUpOworKwlzcjMyKENNX0RJVl9NNl9EUExMX1BFUiwgMCwgNSwgZHBs bF9wYXJhbV9wLT5tNik7CisrCXNyMzIoQ01fRElWX003X0RQTExfUEVSLCAwLCA1LCBkcGxsX3Bh cmFtX3AtPm03KTsKKysKKysvLwlpZihvbWFwX3JldmlzaW9uKCkgPT0gT01BUDQ0MzBfRVMxXzAp CisrLy8JeworKwkJLyogRG8gdGhpcyBvbmx5IG9uIEVTMS4wICovCisrCQlzcjMyKENNX0RJVl9N Ml9EUExMX1BFUiwgOCwgMSwgMHgxKTsKKysJCXNyMzIoQ01fRElWX00zX0RQTExfUEVSLCA4LCAx LCAweDEpOworKwkJc3IzMihDTV9ESVZfTTRfRFBMTF9QRVIsIDgsIDEsIDB4MSk7CisrCQlzcjMy KENNX0RJVl9NNV9EUExMX1BFUiwgOCwgMSwgMHgxKTsKKysJCXNyMzIoQ01fRElWX002X0RQTExf UEVSLCA4LCAxLCAweDEpOworKwkJc3IzMihDTV9ESVZfTTdfRFBMTF9QRVIsIDgsIDEsIDB4MSk7 CisrLy8JfQorKworKwkvKiBMb2NrIHRoZSBwZXIgZHBsbCAqLworKwlzcjMyKENNX0NMS01PREVf RFBMTF9QRVIsIDAsIDMsIFBMTF9MT0NLKTsKKysJd2FpdF9vbl92YWx1ZShCSVQwLCAxLCBDTV9J RExFU1RfRFBMTF9QRVIsIExERUxBWSk7CisrCisrCXJldHVybjsKKyt9CisrCisrc3RhdGljIHZv aWQgY29uZmlndXJlX2FiZV9kcGxsKHUzMiBjbGtfaW5kZXgpCisreworKwlkcGxsX3BhcmFtICpk cGxsX3BhcmFtX3A7CisrCisrCS8qIFNlbGVjdCBzeXNfY2xrIGFzIHJlZiBjbGsgZm9yIEFCRSBk cGxsICovCisrCXNyMzIoQ01fQUJFX1BMTF9SRUZfQ0xLU0VMLCAwLCAzMiwgMHgwKTsKKysKKysJ LyogRW5hYmxlIHNsaW1idXMgYW5kIHBhZCBjbG9ja3MgKi8KKysJc3IzMihDTV9DTEtTRUxfQUJF LCAwLCAzMiwgMHg1MDApOworKworKwkvKiBVbmxvY2sgdGhlIEFCRSBkcGxsICovCisrCXNyMzIo Q01fQ0xLTU9ERV9EUExMX0FCRSwgMCwgMywgUExMX01OX1BPV0VSX0JZUEFTUyk7CisrCXdhaXRf b25fdmFsdWUoQklUMCwgMCwgQ01fSURMRVNUX0RQTExfQUJFLCBMREVMQVkpOworKworKwkvKiBQ cm9ncmFtIEFCRSBEUExMICovCisrCWRwbGxfcGFyYW1fcCA9ICZhYmVfZHBsbF9wYXJhbVtjbGtf aW5kZXhdOworKworKwkvKiBEaXNhYmxlIGF1dG9pZGxlICovCisrCXNyMzIoQ01fQVVUT0lETEVf RFBMTF9BQkUsIDAsIDMsIDB4MCk7CisrCisrCXNyMzIoQ01fQ0xLU0VMX0RQTExfQUJFLCA4LCAx MSwgZHBsbF9wYXJhbV9wLT5tKTsKKysJc3IzMihDTV9DTEtTRUxfRFBMTF9BQkUsIDAsIDYsIGRw bGxfcGFyYW1fcC0+bik7CisrCisrCS8qIEZvcmNlIERQTEwgQ0xLT1VUSElGIHRvIHN0YXkgZW5h YmxlZCAqLworKwlzcjMyKENNX0RJVl9NMl9EUExMX0FCRSwgMCwgMzIsIDB4NTAwKTsKKysJc3Iz MihDTV9ESVZfTTJfRFBMTF9BQkUsIDAsIDUsIGRwbGxfcGFyYW1fcC0+bTIpOworKwlzcjMyKENN X0RJVl9NMl9EUExMX0FCRSwgOCwgMSwgMHgxKTsKKysJLyogRm9yY2UgRFBMTCBDTEtPVVRISUYg dG8gc3RheSBlbmFibGVkICovCisrCXNyMzIoQ01fRElWX00zX0RQTExfQUJFLCAwLCAzMiwgMHgx MDApOworKwlzcjMyKENNX0RJVl9NM19EUExMX0FCRSwgMCwgNSwgZHBsbF9wYXJhbV9wLT5tMyk7 CisrCXNyMzIoQ01fRElWX00zX0RQTExfQUJFLCA4LCAxLCAweDEpOworKworKwkvKiBMb2NrIHRo ZSBhYmUgZHBsbCAqLworKwlzcjMyKENNX0NMS01PREVfRFBMTF9BQkUsIDAsIDMsIFBMTF9MT0NL KTsKKysJd2FpdF9vbl92YWx1ZShCSVQwLCAxLCBDTV9JRExFU1RfRFBMTF9BQkUsIExERUxBWSk7 CisrCisrCXJldHVybjsKKyt9CisrCisrc3RhdGljIHZvaWQgY29uZmlndXJlX3VzYl9kcGxsKHUz MiBjbGtfaW5kZXgpCisreworKwlkcGxsX3BhcmFtICpkcGxsX3BhcmFtX3A7CisrCisrCS8qIFNl bGVjdCB0aGUgNjBNaHogY2xvY2sgNDgwLzggPSA2MCovCisrCXNyMzIoQ01fQ0xLU0VMX1VTQl82 ME1IeiwgMCwgMzIsIDB4MSk7CisrCisrCS8qIFVubG9jayB0aGUgVVNCIGRwbGwgKi8KKysJc3Iz MihDTV9DTEtNT0RFX0RQTExfVVNCLCAwLCAzLCBQTExfTU5fUE9XRVJfQllQQVNTKTsKKysJd2Fp dF9vbl92YWx1ZShCSVQwLCAwLCBDTV9JRExFU1RfRFBMTF9VU0IsIExERUxBWSk7CisrCisrCS8q IFByb2dyYW0gVVNCIERQTEwgKi8KKysJZHBsbF9wYXJhbV9wID0gJnVzYl9kcGxsX3BhcmFtW2Ns a19pbmRleF07CisrCisrCS8qIERpc2FibGUgYXV0b2lkbGUgKi8KKysJc3IzMihDTV9BVVRPSURM RV9EUExMX1VTQiwgMCwgMywgMHgwKTsKKysKKysJc3IzMihDTV9DTEtTRUxfRFBMTF9VU0IsIDgs IDExLCBkcGxsX3BhcmFtX3AtPm0pOworKwlzcjMyKENNX0NMS1NFTF9EUExMX1VTQiwgMCwgNiwg ZHBsbF9wYXJhbV9wLT5uKTsKKysKKysJLyogRm9yY2UgRFBMTCBDTEtPVVQgdG8gc3RheSBhY3Rp dmUgKi8KKysJc3IzMihDTV9ESVZfTTJfRFBMTF9VU0IsIDAsIDMyLCAweDEwMCk7CisrCXNyMzIo Q01fRElWX00yX0RQTExfVVNCLCAwLCA1LCBkcGxsX3BhcmFtX3AtPm0yKTsKKysJc3IzMihDTV9E SVZfTTJfRFBMTF9VU0IsIDgsIDEsIDB4MSk7CisrCXNyMzIoQ01fQ0xLRENPTERPX0RQTExfVVNC LCA4LCAxLCAweDEpOworKworKwkvKiBMb2NrIHRoZSB1c2IgZHBsbCAqLworKwlzcjMyKENNX0NM S01PREVfRFBMTF9VU0IsIDAsIDMsIFBMTF9MT0NLKTsKKysJd2FpdF9vbl92YWx1ZShCSVQwLCAx LCBDTV9JRExFU1RfRFBMTF9VU0IsIExERUxBWSk7CisrCisrCS8qIGZvcmNlIGVuYWJsZSB0aGUg Q0xLRENPTERPIGNsb2NrICovCisrCXNyMzIoQ01fQ0xLRENPTERPX0RQTExfVVNCLCAwLCAzMiwg MHgxMDApOworKworKwlyZXR1cm47CisrfQorKworK3N0YXRpYyB2b2lkIGNvbmZpZ3VyZV9jb3Jl X2RwbGwoY2xrX2luZGV4KQorK3sKKysJZHBsbF9wYXJhbSAqZHBsbF9wYXJhbV9wOworKworKwkv KiBHZXQgdGhlIHN5c2NsayBzcGVlZCBmcm9tIGNtX3N5c19jbGtzZWwKKysJICogU2V0IGl0IHRv IDM4LjQgTUh6LCBpbiBjYXNlIFJPTSBjb2RlIGlzIGJ5cGFzc2VkCisrCSAqLworKwlpZiAoIWNs a19pbmRleCkKKysJCXJldHVybjsKKysKKysJLyogQ09SRV9DTEs9Q09SRV9YMl9DTEsvMiwgTDNf Q0xLPUNPUkVfQ0xLLzIsIEw0X0NMSz1MM19DTEsvMiAqLworKwlzcjMyKENNX0NMS1NFTF9DT1JF LCAwLCAzMiwgMHgxMTApOworKworKwkvKiBVbmxvY2sgdGhlIENPUkUgZHBsbCAqLworKwlzcjMy KENNX0NMS01PREVfRFBMTF9DT1JFLCAwLCAzLCBQTExfTU5fUE9XRVJfQllQQVNTKTsKKysJd2Fp dF9vbl92YWx1ZShCSVQwLCAwLCBDTV9JRExFU1RfRFBMTF9DT1JFLCBMREVMQVkpOworKworKwkv KiBQcm9ncmFtIENvcmUgRFBMTCAqLworKwlpZihvbWFwX3JldmlzaW9uKCkgPT0gT01BUDQ0MzBf RVMxXzApCisrCQlkcGxsX3BhcmFtX3AgPSAmY29yZV9kcGxsX3BhcmFtX2wzXzE5MFtjbGtfaW5k ZXhdOworKwllbHNlIGlmKG9tYXBfcmV2aXNpb24oKSA9PSBPTUFQNDQzMF9FUzJfMCkKKysJCWRw bGxfcGFyYW1fcCA9ICZjb3JlX2RwbGxfcGFyYW1bY2xrX2luZGV4XTsKKysJZWxzZSBpZihvbWFw X3JldmlzaW9uKCkgPT0gT01BUDQ0MzBfRVMyXzEpCisrCQlkcGxsX3BhcmFtX3AgPSAmY29yZV9k cGxsX3BhcmFtX2RkcjQwMFtjbGtfaW5kZXhdOworKworKwkvKiBEaXNhYmxlIGF1dG9pZGxlICov CisrCXNyMzIoQ01fQVVUT0lETEVfRFBMTF9DT1JFLCAwLCAzLCAweDApOworKworKwlzcjMyKENN X0NMS1NFTF9EUExMX0NPUkUsIDgsIDExLCBkcGxsX3BhcmFtX3AtPm0pOworKwlzcjMyKENNX0NM S1NFTF9EUExMX0NPUkUsIDAsIDYsIGRwbGxfcGFyYW1fcC0+bik7CisrCXNyMzIoQ01fRElWX00y X0RQTExfQ09SRSwgMCwgNSwgZHBsbF9wYXJhbV9wLT5tMik7CisrCXNyMzIoQ01fRElWX00zX0RQ TExfQ09SRSwgMCwgNSwgZHBsbF9wYXJhbV9wLT5tMyk7CisrCXNyMzIoQ01fRElWX000X0RQTExf Q09SRSwgMCwgNSwgZHBsbF9wYXJhbV9wLT5tNCk7CisrCXNyMzIoQ01fRElWX001X0RQTExfQ09S RSwgMCwgNSwgZHBsbF9wYXJhbV9wLT5tNSk7CisrCXNyMzIoQ01fRElWX002X0RQTExfQ09SRSwg MCwgNSwgZHBsbF9wYXJhbV9wLT5tNik7CisrCXNyMzIoQ01fRElWX003X0RQTExfQ09SRSwgMCwg NSwgZHBsbF9wYXJhbV9wLT5tNyk7CisrCisrCWlmKG9tYXBfcmV2aXNpb24oKSA9PSBPTUFQNDQz MF9FUzFfMCkKKysJeworKwkJLyogRG8gdGhpcyBvbmx5IG9uIEVTMS4wICovCisrCQlzcjMyKENN X0RJVl9NMl9EUExMX0NPUkUsIDgsIDEsIDB4MSk7CisrCQlzcjMyKENNX0RJVl9NM19EUExMX0NP UkUsIDgsIDEsIDB4MSk7CisrCQlzcjMyKENNX0RJVl9NNF9EUExMX0NPUkUsIDgsIDEsIDB4MSk7 CisrCQlzcjMyKENNX0RJVl9NNV9EUExMX0NPUkUsIDgsIDEsIDB4MSk7CisrCQlzcjMyKENNX0RJ Vl9NNl9EUExMX0NPUkUsIDgsIDEsIDB4MSk7CisrCQlzcjMyKENNX0RJVl9NN19EUExMX0NPUkUs IDgsIDEsIDB4MSk7CisrCX0KKysKKysKKysJLyogTG9jayB0aGUgY29yZSBkcGxsICovCisrCXNy MzIoQ01fQ0xLTU9ERV9EUExMX0NPUkUsIDAsIDMsIFBMTF9MT0NLKTsKKysJd2FpdF9vbl92YWx1 ZShCSVQwLCAxLCBDTV9JRExFU1RfRFBMTF9DT1JFLCBMREVMQVkpOworKworKwlyZXR1cm47Cisr fQorKworKworK3ZvaWQgY29uZmlndXJlX2NvcmVfZHBsbF9ub19sb2NrKHZvaWQpCisreworKwlk cGxsX3BhcmFtICpkcGxsX3BhcmFtX3A7CisrCXUzMiBjbGtfaW5kZXg7CisrCisrCS8qIEdldCB0 aGUgc3lzY2xrIHNwZWVkIGZyb20gY21fc3lzX2Nsa3NlbAorKwkgKiBTZXQgaXQgdG8gMzguNCBN SHosIGluIGNhc2UgUk9NIGNvZGUgaXMgYnlwYXNzZWQKKysJICovCisrCV9fcmF3X3dyaXRlbCgw eDcsQ01fU1lTX0NMS1NFTCk7CisrCWNsa19pbmRleCA9IDc7CisrCisrCWNsa19pbmRleCA9IGNs a19pbmRleCAtIDE7CisrCS8qIENPUkVfQ0xLPUNPUkVfWDJfQ0xLLzIsIEwzX0NMSz1DT1JFX0NM Sy8yLCBMNF9DTEs9TDNfQ0xLLzIgKi8KKysJc3IzMihDTV9DTEtTRUxfQ09SRSwgMCwgMzIsIDB4 MTEwKTsKKysKKysJLyogVW5sb2NrIHRoZSBDT1JFIGRwbGwgKi8KKysJc3IzMihDTV9DTEtNT0RF X0RQTExfQ09SRSwgMCwgMywgUExMX01OX1BPV0VSX0JZUEFTUyk7CisrCXdhaXRfb25fdmFsdWUo QklUMCwgMCwgQ01fSURMRVNUX0RQTExfQ09SRSwgTERFTEFZKTsKKysKKysJLyogUHJvZ3JhbSBD b3JlIERQTEwgKi8KKysJaWYob21hcF9yZXZpc2lvbigpID09IE9NQVA0NDMwX0VTMV8wKQorKwkJ ZHBsbF9wYXJhbV9wID0gJmNvcmVfZHBsbF9wYXJhbV9sM18xOTBbY2xrX2luZGV4XTsKKysJZWxz ZSBpZihvbWFwX3JldmlzaW9uKCkgPT0gT01BUDQ0MzBfRVMyXzApCisrCQlkcGxsX3BhcmFtX3Ag PSAmY29yZV9kcGxsX3BhcmFtW2Nsa19pbmRleF07CisrCWVsc2UgaWYob21hcF9yZXZpc2lvbigp ID09IE9NQVA0NDMwX0VTMl8xKQorKwkJZHBsbF9wYXJhbV9wID0gJmNvcmVfZHBsbF9wYXJhbV9k ZHI0MDBbY2xrX2luZGV4XTsKKysKKysJLyogRGlzYWJsZSBhdXRvaWRsZSAqLworKwlzcjMyKENN X0FVVE9JRExFX0RQTExfQ09SRSwgMCwgMywgMHgwKTsKKysKKysJc3IzMihDTV9DTEtTRUxfRFBM TF9DT1JFLCA4LCAxMSwgZHBsbF9wYXJhbV9wLT5tKTsKKysJc3IzMihDTV9DTEtTRUxfRFBMTF9D T1JFLCAwLCA2LCBkcGxsX3BhcmFtX3AtPm4pOworKwlzcjMyKENNX0RJVl9NMl9EUExMX0NPUkUs IDAsIDUsIGRwbGxfcGFyYW1fcC0+bTIpOworKwlzcjMyKENNX0RJVl9NM19EUExMX0NPUkUsIDAs IDUsIGRwbGxfcGFyYW1fcC0+bTMpOworKwlzcjMyKENNX0RJVl9NNF9EUExMX0NPUkUsIDAsIDUs IGRwbGxfcGFyYW1fcC0+bTQpOworKwlzcjMyKENNX0RJVl9NNV9EUExMX0NPUkUsIDAsIDUsIGRw bGxfcGFyYW1fcC0+bTUpOworKwlzcjMyKENNX0RJVl9NNl9EUExMX0NPUkUsIDAsIDUsIGRwbGxf cGFyYW1fcC0+bTYpOworKwlzcjMyKENNX0RJVl9NN19EUExMX0NPUkUsIDAsIDUsIGRwbGxfcGFy YW1fcC0+bTcpOworKworKy8vCWlmKG9tYXBfcmV2aXNpb24oKSA9PSBPTUFQNDQzMF9FUzFfMCkK KysvLwl7CisrCQkvKiBEbyB0aGlzIG9ubHkgb24gRVMxLjAgKi8KKysJCXNyMzIoQ01fRElWX00y X0RQTExfQ09SRSwgOCwgMSwgMHgxKTsKKysJCXNyMzIoQ01fRElWX00zX0RQTExfQ09SRSwgOCwg MSwgMHgxKTsKKysJCXNyMzIoQ01fRElWX000X0RQTExfQ09SRSwgOCwgMSwgMHgxKTsKKysJCXNy MzIoQ01fRElWX001X0RQTExfQ09SRSwgOCwgMSwgMHgxKTsKKysJCXNyMzIoQ01fRElWX002X0RQ TExfQ09SRSwgOCwgMSwgMHgxKTsKKysJCXNyMzIoQ01fRElWX003X0RQTExfQ09SRSwgOCwgMSwg MHgxKTsKKysvLwl9CisrCisrCXJldHVybjsKKyt9CisrCisrdm9pZCBsb2NrX2NvcmVfZHBsbCh2 b2lkKQorK3sKKysJLyogTG9jayB0aGUgY29yZSBkcGxsICovCisrCXNyMzIoQ01fQ0xLTU9ERV9E UExMX0NPUkUsIDAsIDMsIFBMTF9MT0NLKTsKKysJd2FpdF9vbl92YWx1ZShCSVQwLCAxLCBDTV9J RExFU1RfRFBMTF9DT1JFLCBMREVMQVkpOworKworKwlyZXR1cm47CisrfQorKworK3ZvaWQgbG9j a19jb3JlX2RwbGxfc2hhZG93KHZvaWQpCisreworKwlkcGxsX3BhcmFtICpkcGxsX3BhcmFtX3A7 CisrCS8qIExvY2sgdGhlIGNvcmUgZHBsbCB1c2luZyBmcmVxIHVwZGF0ZSBtZXRob2QgKi8KKysJ Kih2b2xhdGlsZSBpbnQqKTB4NEEwMDQxMjAgPSAxMDsJLy8oQ01fQ0xLTU9ERV9EUExMX0NPUkUp CisrCisrCWlmKG9tYXBfcmV2aXNpb24oKSA9PSBPTUFQNDQzMF9FUzFfMCkKKysJCWRwbGxfcGFy YW1fcCA9ICZjb3JlX2RwbGxfcGFyYW1fbDNfMTkwWzZdOworKwllbHNlIGlmKG9tYXBfcmV2aXNp b24oKSA9PSBPTUFQNDQzMF9FUzJfMCkKKysJCWRwbGxfcGFyYW1fcCA9ICZjb3JlX2RwbGxfcGFy YW1bNl07CisrCWVsc2UgaWYob21hcF9yZXZpc2lvbigpID09IE9NQVA0NDMwX0VTMl8xKQorKwkJ ZHBsbF9wYXJhbV9wID0gJmNvcmVfZHBsbF9wYXJhbV9kZHI0MDBbNl07CisrCisrCS8qIENNX1NI QURPV19GUkVRX0NPTkZJRzE6IERMTF9PVkVSUklERSA9IDEoaGFjayksIERMTF9SRVNFVCA9IDEs CisrCSAqIERQTExfQ09SRV9NMl9ESVYgPTEsIERQTExfQ09SRV9EUExMX0VOID0gMHg3LCBGUkVR X1VQREFURSA9IDEKKysJICovCisrCSoodm9sYXRpbGUgaW50KikweDRBMDA0MjYwID0gMHg3MEQg fCAoZHBsbF9wYXJhbV9wLT5tMiA8PCAxMSk7CisrCisrCS8qIFdhaXQgZm9yIEZyZXFfVXBkYXRl IHRvIGdldCBjbGVhcmVkOiBDTV9TSEFET1dfRlJFUV9DT05GSUcxICovCisrCXdoaWxlKCAoICgq KHZvbGF0aWxlIGludCopMHg0QTAwNDI2MCkgJiAweDEpID09IDB4MSApOworKworKwkvKiBXYWl0 IGZvciBEUExMIHRvIExvY2sgOiBDTV9JRExFU1RfRFBMTF9DT1JFICovCisrCXdhaXRfb25fdmFs dWUoQklUMCwgMSwgQ01fSURMRVNUX0RQTExfQ09SRSwgTERFTEFZKTsKKysJLy9sb2NrX2NvcmVf ZHBsbCgpOworKworKwlyZXR1cm47CisrfQorKworK3N0YXRpYyB2b2lkIGVuYWJsZV9hbGxfY2xv Y2tzKHZvaWQpCisreworKwl2b2xhdGlsZSBpbnQgcmVndmFsdWUgPSAwOworKworKwkvKiBFbmFi bGUgRHVjYXRpIGNsb2NrcyAqLworKwlzcjMyKENNX0RVQ0FUSV9EVUNBVElfQ0xLQ1RSTCwgMCwg MzIsIDB4MSk7CisrCXNyMzIoQ01fRFVDQVRJX0NMS1NUQ1RSTCwgMCwgMzIsIDB4Mik7CisrCisr CXdhaXRfb25fdmFsdWUoQklUOCwgQklUOCwgQ01fRFVDQVRJX0NMS1NUQ1RSTCwgTERFTEFZKTsK KysJLy93YWl0X29uX3ZhbHVlKEJJVDE4fEJJVDE3fEJJVDE2LCAwLCBDTV9EVUNBVElfRFVDQVRJ X0NMS0NUUkwsIExERUxBWSk7CisrCisrCS8qIEVuYWJsZSBpdmFoZCBhbmQgc2wyIGNsb2NrcyAq LworKwlzcjMyKElWQUhEX0lWQUhEX0NMS0NUUkwsIDAsIDMyLCAweDEpOworKwlzcjMyKElWQUhE X1NMMl9DTEtDVFJMLCAwLCAzMiwgMHgxKTsKKysJc3IzMihJVkFIRF9DTEtTVENUUkwsIDAsIDMy LCAweDIpOworKworKwl3YWl0X29uX3ZhbHVlKEJJVDgsIEJJVDgsIElWQUhEX0NMS1NUQ1RSTCwg TERFTEFZKTsKKysKKysJLyogd2FpdCBmb3IgaXZhaGQgdG8gYmVjb21lIGFjY2Vzc2libGUgKi8K KysJLy93YWl0X29uX3ZhbHVlKEJJVDE4fEJJVDE3fEJJVDE2LCAwLCBJVkFIRF9JVkFIRF9DTEtD VFJMLCBMREVMQVkpOworKwkvKiB3YWl0IGZvciBzbDIgdG8gYmVjb21lIGFjY2Vzc2libGUgKi8K KysJLy93YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBJVkFIRF9TTDJfQ0xLQ1RSTCwgTERF TEFZKTsKKysKKysJLyogRW5hYmxlIFRlc2xhIGNsb2NrcyAqLworKwlzcjMyKERTUF9EU1BfQ0xL Q1RSTCwgMCwgMzIsIDB4MSk7CisrCXNyMzIoRFNQX0NMS1NUQ1RSTCwgMCwgMzIsIDB4Mik7Cisr CisrCXdhaXRfb25fdmFsdWUoQklUOCwgQklUOCwgRFNQX0NMS1NUQ1RSTCwgTERFTEFZKTsKKysK KysJLyogd2FpdCBmb3IgdGVzbGEgdG8gYmVjb21lIGFjY2Vzc2libGUgKi8KKysJLy93YWl0X29u X3ZhbHVlKEJJVDE4fEJJVDE3fEJJVDE2LCAwLCBEU1BfRFNQX0NMS0NUUkwsIExERUxBWSk7Cisr CisrCS8qIFRPRE86IFNvbWUgaGFjayBuZWVkZWQgYnkgTU06IENsZWFuIHRoaXMgKi8KKysJI2lm IDAgLyogRG9lc24ndCB3b3JrIG9uIHNvbWUgWmVidSAqLworKwkqKHZvbGF0aWxlIGludCopMHg0 YTMwNjkxMCA9IDB4MDAwMDAwMDM7CisrCSoodm9sYXRpbGUgaW50KikweDU1MDgwOWEwID0gMHgw MDAwMDAwMTsKKysJKih2b2xhdGlsZSBpbnQqKTB4NTUwODBhMjAgPSAweDAwMDAwMDA3OworKwkj ZW5kaWYKKysKKysJLyogQUJFIGNsb2NrcyAqLworKwlzcjMyKENNMV9BQkVfQ0xLU1RDVFJMLCAw LCAzMiwgMHgzKTsKKysJc3IzMihDTTFfQUJFX0FFU1NfQ0xLQ1RSTCwgMCwgMzIsIDB4Mik7Cisr CS8vd2FpdF9vbl92YWx1ZShCSVQxOHxCSVQxN3xCSVQxNiwgMCwgQ00xX0FCRV9BRVNTX0NMS0NU UkwsIExERUxBWSk7CisrCXNyMzIoQ00xX0FCRV9QRE1fQ0xLQ1RSTCwgMCwgMzIsIDB4Mik7Cisr CS8vd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ00xX0FCRV9QRE1fQ0xLQ1RSTCwgTERF TEFZKTsKKysJc3IzMihDTTFfQUJFX0RNSUNfQ0xLQ1RSTCwgMCwgMzIsIDB4Mik7CisrCS8vd2Fp dF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ00xX0FCRV9ETUlDX0NMS0NUUkwsIExERUxBWSk7 CisrCXNyMzIoQ00xX0FCRV9NQ0FTUF9DTEtDVFJMLCAwLCAzMiwgMHgyKTsKKysJLy93YWl0X29u X3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTTFfQUJFX01DQVNQX0NMS0NUUkwsIExERUxBWSk7Cisr CXNyMzIoQ00xX0FCRV9NQ0JTUDFfQ0xLQ1RSTCwgMCwgMzIsIDB4MDgwMDAwMDIpOworKwkvL3dh aXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAsIENNMV9BQkVfTUNCU1AxX0NMS0NUUkwsIExERUxB WSk7CisrCXNyMzIoQ00xX0FCRV9NQ0JTUDJfQ0xLQ1RSTCwgMCwgMzIsIDB4MDgwMDAwMDIpOwor KwkvL3dhaXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAsIENNMV9BQkVfTUNCU1AyX0NMS0NUUkws IExERUxBWSk7CisrCXNyMzIoQ00xX0FCRV9NQ0JTUDNfQ0xLQ1RSTCwgMCwgMzIsIDB4MDgwMDAw MDIpOworKwkvL3dhaXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAsIENNMV9BQkVfTUNCU1AzX0NM S0NUUkwsIExERUxBWSk7CisrCXNyMzIoQ00xX0FCRV9TTElNQlVTX0NMS0NUUkwsIDAsIDMyLCAw eGYwMik7CisrCS8vd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ00xX0FCRV9TTElNQlVT X0NMS0NUUkwsIExERUxBWSk7CisrCXNyMzIoQ00xX0FCRV9USU1FUjVfQ0xLQ1RSTCwgMCwgMzIs IDB4Mik7CisrCS8vd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ00xX0FCRV9USU1FUjVf Q0xLQ1RSTCwgTERFTEFZKTsKKysJc3IzMihDTTFfQUJFX1RJTUVSNl9DTEtDVFJMLCAwLCAzMiwg MHgyKTsKKysJLy93YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTTFfQUJFX1RJTUVSNl9D TEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNMV9BQkVfVElNRVI3X0NMS0NUUkwsIDAsIDMyLCAw eDIpOworKwkvL3dhaXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAsIENNMV9BQkVfVElNRVI3X0NM S0NUUkwsIExERUxBWSk7CisrCXNyMzIoQ00xX0FCRV9USU1FUjhfQ0xLQ1RSTCwgMCwgMzIsIDB4 Mik7CisrCS8vd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ00xX0FCRV9USU1FUjhfQ0xL Q1RSTCwgTERFTEFZKTsKKysJc3IzMihDTTFfQUJFX1dEVDNfQ0xLQ1RSTCwgMCwgMzIsIDB4Mik7 CisrCS8vd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ00xX0FCRV9XRFQzX0NMS0NUUkws IExERUxBWSk7CisrCS8qIERpc2FibGUgc2xlZXAgdHJhbnNpdGlvbnMgKi8KKysJc3IzMihDTTFf QUJFX0NMS1NUQ1RSTCwgMCwgMzIsIDB4MCk7CisrCisrCS8qIEw0UEVSIGNsb2NrcyAqLworKwlz cjMyKENNX0w0UEVSX0NMS1NUQ1RSTCwgMCwgMzIsIDB4Mik7CisrCXNyMzIoQ01fTDRQRVJfRE1U SU1FUjEwX0NMS0NUUkwsIDAsIDMyLCAweDIpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2 LCAwLCBDTV9MNFBFUl9ETVRJTUVSMTBfQ0xLQ1RSTCwgTERFTEFZKTsKKysJc3IzMihDTV9MNFBF Ul9ETVRJTUVSMTFfQ0xLQ1RSTCwgMCwgMzIsIDB4Mik7CisrCXdhaXRfb25fdmFsdWUoQklUMTd8 QklUMTYsIDAsIENNX0w0UEVSX0RNVElNRVIxMV9DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENN X0w0UEVSX0RNVElNRVIyX0NMS0NUUkwsIDAsIDMyLCAweDIpOworKwl3YWl0X29uX3ZhbHVlKEJJ VDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9ETVRJTUVSMl9DTEtDVFJMLCBMREVMQVkpOworKwlzcjMy KENNX0w0UEVSX0RNVElNRVIzX0NMS0NUUkwsIDAsIDMyLCAweDIpOworKwl3YWl0X29uX3ZhbHVl KEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9ETVRJTUVSM19DTEtDVFJMLCBMREVMQVkpOworKwlz cjMyKENNX0w0UEVSX0RNVElNRVI0X0NMS0NUUkwsIDAsIDMyLCAweDIpOworKwl3YWl0X29uX3Zh bHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9ETVRJTUVSNF9DTEtDVFJMLCBMREVMQVkpOwor KwlzcjMyKENNX0w0UEVSX0RNVElNRVI5X0NMS0NUUkwsIDAsIDMyLCAweDIpOworKwl3YWl0X29u X3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9ETVRJTUVSOV9DTEtDVFJMLCBMREVMQVkp OworKworKwkvKiBHUElPIGNsb2NrcyAqLworKwlzcjMyKENNX0w0UEVSX0dQSU8yX0NMS0NUUkws IDAgLDMyLCAweDEpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9H UElPMl9DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX0dQSU8zX0NMS0NUUkwsIDAs IDMyLCAweDEpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9HUElP M19DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX0dQSU80X0NMS0NUUkwsIDAsIDMy LCAweDEpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9HUElPNF9D TEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX0dQSU81X0NMS0NUUkwsIDAsIDMyLCAw eDEpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9HUElPNV9DTEtD VFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX0dQSU82X0NMS0NUUkwsIDAsIDMyLCAweDEp OworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9HUElPNl9DTEtDVFJM LCBMREVMQVkpOworKworKwlzcjMyKENNX0w0UEVSX0hEUTFXX0NMS0NUUkwsIDAsIDMyLCAweDIp OworKworKwkvKiBJMkMgY2xvY2tzICovCisrCXNyMzIoQ01fTDRQRVJfSTJDMV9DTEtDVFJMLCAw LCAzMiwgMHgyKTsKKysJd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ01fTDRQRVJfSTJD MV9DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX0kyQzJfQ0xLQ1RSTCwgMCwgMzIs IDB4Mik7CisrCXdhaXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAsIENNX0w0UEVSX0kyQzJfQ0xL Q1RSTCwgTERFTEFZKTsKKysJc3IzMihDTV9MNFBFUl9JMkMzX0NMS0NUUkwsIDAsIDMyLCAweDIp OworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9JMkMzX0NMS0NUUkws IExERUxBWSk7CisrCXNyMzIoQ01fTDRQRVJfSTJDNF9DTEtDVFJMLCAwLCAzMiwgMHgyKTsKKysJ d2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ01fTDRQRVJfSTJDNF9DTEtDVFJMLCBMREVM QVkpOworKworKwlzcjMyKENNX0w0UEVSX01DQlNQNF9DTEtDVFJMLCAwLCAzMiwgMHgyKTsKKysJ d2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ01fTDRQRVJfTUNCU1A0X0NMS0NUUkwsIExE RUxBWSk7CisrCisrCS8qIE1DU1BJIGNsb2NrcyAqLworKwlzcjMyKENNX0w0UEVSX01DU1BJMV9D TEtDVFJMLCAwLCAzMiwgMHgyKTsKKysJd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ01f TDRQRVJfTUNTUEkxX0NMS0NUUkwsIExERUxBWSk7CisrCXNyMzIoQ01fTDRQRVJfTUNTUEkyX0NM S0NUUkwsIDAsIDMyLCAweDIpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9M NFBFUl9NQ1NQSTJfQ0xLQ1RSTCwgTERFTEFZKTsKKysJc3IzMihDTV9MNFBFUl9NQ1NQSTNfQ0xL Q1RSTCwgMCwgMzIsIDB4Mik7CisrCXdhaXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAsIENNX0w0 UEVSX01DU1BJM19DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX01DU1BJNF9DTEtD VFJMLCAwLCAzMiwgMHgyKTsKKysJd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ01fTDRQ RVJfTUNTUEk0X0NMS0NUUkwsIExERUxBWSk7CisrCisrCS8qIE1NQyBjbG9ja3MgKi8KKysJc3Iz MihDTV9MM0lOSVRfSFNNTUMxX0NMS0NUUkwsIDAsIDIsIDB4Mik7CisrCXNyMzIoQ01fTDNJTklU X0hTTU1DMV9DTEtDVFJMLCAyNCwgMSwgMHgxKTsKKysJLy93YWl0X29uX3ZhbHVlKEJJVDE4fEJJ VDE3fEJJVDE2LCAwLCBDTV9MM0lOSVRfSFNNTUMxX0NMS0NUUkwsIExERUxBWSk7CisrCXNyMzIo Q01fTDNJTklUX0hTTU1DMl9DTEtDVFJMLCAwLCAyLCAweDIpOworKwlzcjMyKENNX0wzSU5JVF9I U01NQzJfQ0xLQ1RSTCwgMjQsIDEsIDB4MSk7CisrCS8vd2FpdF9vbl92YWx1ZShCSVQxOHxCSVQx N3xCSVQxNiwgMCwgQ01fTDNJTklUX0hTTU1DMl9DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENN X0w0UEVSX01NQ1NEM19DTEtDVFJMLCAwLCAzMiwgMHgyKTsKKysJd2FpdF9vbl92YWx1ZShCSVQx OHxCSVQxN3xCSVQxNiwgMCwgQ01fTDRQRVJfTU1DU0QzX0NMS0NUUkwsIExERUxBWSk7CisrCXNy MzIoQ01fTDRQRVJfTU1DU0Q0X0NMS0NUUkwsIDAsIDMyLCAweDIpOworKwl3YWl0X29uX3ZhbHVl KEJJVDE4fEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9NTUNTRDRfQ0xLQ1RSTCwgTERFTEFZKTsK KysJc3IzMihDTV9MNFBFUl9NTUNTRDVfQ0xLQ1RSTCwgMCwgMzIsIDB4Mik7CisrCXdhaXRfb25f dmFsdWUoQklUMTd8QklUMTYsIDAsIENNX0w0UEVSX01NQ1NENV9DTEtDVFJMLCBMREVMQVkpOwor KworKwkvKiBVQVJUIGNsb2NrcyAqLworKwlzcjMyKENNX0w0UEVSX1VBUlQxX0NMS0NUUkwsIDAs IDMyLCAweDIpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9VQVJU MV9DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX1VBUlQyX0NMS0NUUkwsIDAsIDMy LCAweDIpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9VQVJUMl9D TEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX1VBUlQzX0NMS0NUUkwsIDAsIDMyLCAw eDIpOworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9VQVJUM19DTEtD VFJMLCBMREVMQVkpOworKwlzcjMyKENNX0w0UEVSX1VBUlQ0X0NMS0NUUkwsIDAsIDMyLCAweDIp OworKwl3YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MNFBFUl9VQVJUNF9DTEtDVFJM LCBMREVMQVkpOworKworKwkvKiBXS1VQIGNsb2NrcyAqLworKwlzcjMyKENNX1dLVVBfR1BJTzFf Q0xLQ1RSTCwgMCwgMzIsIDB4MSk7CisrCXdhaXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAsIENN X1dLVVBfR1BJTzFfQ0xLQ1RSTCwgTERFTEFZKTsKKysJc3IzMihDTV9XS1VQX1RJTUVSMV9DTEtD VFJMLCAwLCAzMiwgMHgwMTAwMDAwMik7CisrCXdhaXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAs IENNX1dLVVBfVElNRVIxX0NMS0NUUkwsIExERUxBWSk7CisrCisrCXNyMzIoQ01fV0tVUF9LRVlC T0FSRF9DTEtDVFJMLCAwLCAzMiwgMHgyKTsKKysJd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwg MCwgQ01fV0tVUF9LRVlCT0FSRF9DTEtDVFJMLCBMREVMQVkpOworKworKwlzcjMyKENNX1NETUFf Q0xLU1RDVFJMLCAwLCAzMiwgMHgwKTsKKysJc3IzMihDTV9NRU1JRl9DTEtTVENUUkwsIDAsIDMy LCAweDMpOworKwlzcjMyKENNX01FTUlGX0VNSUZfMV9DTEtDVFJMLCAwLCAzMiwgMHgxKTsKKysJ d2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwgMCwgQ01fTUVNSUZfRU1JRl8xX0NMS0NUUkwsIExE RUxBWSk7CisrCXNyMzIoQ01fTUVNSUZfRU1JRl8yX0NMS0NUUkwsIDAsIDMyLCAweDEpOworKwl3 YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9NRU1JRl9FTUlGXzJfQ0xLQ1RSTCwgTERF TEFZKTsKKysJc3IzMihDTV9EMkRfQ0xLU1RDVFJMLCAwLCAzMiwgMHgzKTsKKysJc3IzMihDTV9M M18yX0dQTUNfQ0xLQ1RSTCwgMCwgMzIsIDB4MSk7CisrCXdhaXRfb25fdmFsdWUoQklUMTd8QklU MTYsIDAsIENNX0wzXzJfR1BNQ19DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0wzSU5TVFJf TDNfM19DTEtDVFJMLCAwLCAzMiwgMHgxKTsKKysJd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQxNiwg MCwgQ01fTDNJTlNUUl9MM18zX0NMS0NUUkwsIExERUxBWSk7CisrCXNyMzIoQ01fTDNJTlNUUl9M M19JTlNUUl9DTEtDVFJMLCAwLCAzMiwgMHgxKTsKKysJd2FpdF9vbl92YWx1ZShCSVQxN3xCSVQx NiwgMCwgQ01fTDNJTlNUUl9MM19JTlNUUl9DTEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0wz SU5TVFJfT0NQX1dQMV9DTEtDVFJMLCAwLCAzMiwgMHgxKTsKKysJd2FpdF9vbl92YWx1ZShCSVQx N3xCSVQxNiwgMCwgQ01fTDNJTlNUUl9PQ1BfV1AxX0NMS0NUUkwsIExERUxBWSk7CisrCisrCS8q IFdEVCBjbG9ja3MgKi8KKysJc3IzMihDTV9XS1VQX1dEVDJfQ0xLQ1RSTCwgMCwgMzIsIDB4Mik7 CisrCXdhaXRfb25fdmFsdWUoQklUMTd8QklUMTYsIDAsIENNX1dLVVBfV0RUMl9DTEtDVFJMLCBM REVMQVkpOworKworKwkvKiBFbmFibGUgQ2FtZXJhIGNsb2NrcyAqLworKwlzcjMyKENNX0NBTV9D TEtTVENUUkwsIDAsIDMyLCAweDMpOworKwlzcjMyKENNX0NBTV9JU1NfQ0xLQ1RSTCwgMCwgMzIs IDB4MTAyKTsKKysJLy93YWl0X29uX3ZhbHVlKEJJVDE4fEJJVDE3fEJJVDE2LCAwLCBDTV9DQU1f SVNTX0NMS0NUUkwsIExERUxBWSk7CisrCXNyMzIoQ01fQ0FNX0ZESUZfQ0xLQ1RSTCwgMCwgMzIs IDB4Mik7CisrCS8vd2FpdF9vbl92YWx1ZShCSVQxOHxCSVQxN3xCSVQxNiwgMCwgQ01fQ0FNX0ZE SUZfQ0xLQ1RSTCwgTERFTEFZKTsKKysJc3IzMihDTV9DQU1fQ0xLU1RDVFJMLCAwLCAzMiwgMHgw KTsKKysKKysJLyogRW5hYmxlIERTUyBjbG9ja3MgKi8KKysJLyogUE1fRFNTX1BXUlNUQ1RSTCBP TiBTdGF0ZSBhbmQgTG9naWNTdGF0ZSA9IDEgKFJldGVudGlvbikgKi8KKysJKih2b2xhdGlsZSBp bnQqKTB4NEEzMDcxMDAgPSAweDc7IC8vRFNTX1BSTQorKwlzcjMyKENNX0RTU19DTEtTVENUUkws IDAsIDMyLCAweDIpOworKwlzcjMyKENNX0RTU19EU1NfQ0xLQ1RSTCwgMCwgMzIsIDB4ZjAyKTsK KysJLy93YWl0X29uX3ZhbHVlKEJJVDE4fEJJVDE3fEJJVDE2LCAwLCBDTV9EU1NfRFNTX0NMS0NU UkwsIExERUxBWSk7CisrCXNyMzIoQ01fRFNTX0RFSVNTX0NMS0NUUkwsIDAsIDMyLCAweDIpOwor KwkvL3dhaXRfb25fdmFsdWUoQklUMTh8QklUMTd8QklUMTYsIDAsIENNX0RTU19ERUlTU19DTEtD VFJMLCBMREVMQVkpOworKwkvKiBDaGVjayBmb3IgRFNTIENsb2NrcyAqLworKwl3aGlsZSAoKCgq KHZvbGF0aWxlIGludCopMHg0QTAwOTEwMCkgJiAweEYwMCkgIT0gMHhFMDApCisrCS8qIFNldCBI V19BVVRPIHRyYW5zaXRpb24gbW9kZSAqLworKwlzcjMyKENNX0RTU19DTEtTVENUUkwsIDAsIDMy LCAweDMpOworKworKwkvKiBFbmFibGUgU0dYIGNsb2NrcyAqLworKwlzcjMyKENNX1NHWF9DTEtT VENUUkwsIDAsIDMyLCAweDIpOworKwlzcjMyKENNX1NHWF9TR1hfQ0xLQ1RSTCwgMCwgMzIsIDB4 Mik7CisrCS8vd2FpdF9vbl92YWx1ZShCSVQxOHxCSVQxN3xCSVQxNiwgMCwgQ01fU0dYX1NHWF9D TEtDVFJMLCBMREVMQVkpOworKwkvKiBDaGVjayBmb3IgU0dYIEZDTEsgYW5kIElDTEsgKi8KKysJ d2hpbGUgKCAoKih2b2xhdGlsZSBpbnQqKTB4NEEwMDkyMDApICE9IDB4MzAyICk7CisrCS8vc3Iz MihDTV9TR1hfQ0xLU1RDVFJMLCAwLCAzMiwgMHgwKTsKKysJLyogRW5hYmxlIGhzaS91bmlwcm8v dXNiIGNsb2NrcyAqLworKwlzcjMyKENNX0wzSU5JVF9IU0lfQ0xLQ1RSTCwgMCwgMzIsIDB4MSk7 CisrCS8vd2FpdF9vbl92YWx1ZShCSVQxOHxCSVQxN3xCSVQxNiwgMCwgQ01fTDNJTklUX0hTSV9D TEtDVFJMLCBMREVMQVkpOworKwlzcjMyKENNX0wzSU5JVF9VTklQUk8xX0NMS0NUUkwsIDAsIDMy LCAweDIpOworKwkvL3dhaXRfb25fdmFsdWUoQklUMTh8QklUMTd8QklUMTYsIDAsIENNX0wzSU5J VF9VTklQUk8xX0NMS0NUUkwsIExERUxBWSk7CisrCXNyMzIoQ01fTDNJTklUX0hTVVNCSE9TVF9D TEtDVFJMLCAwLCAzMiwgMHgyKTsKKysJLy93YWl0X29uX3ZhbHVlKEJJVDE4fEJJVDE3fEJJVDE2 LCAwLCBDTV9MM0lOSVRfSFNVU0JIT1NUX0NMS0NUUkwsIExERUxBWSk7CisrCXNyMzIoQ01fTDNJ TklUX0hTVVNCT1RHX0NMS0NUUkwsIDAsIDMyLCAweDEpOworKwkvL3dhaXRfb25fdmFsdWUoQklU MTh8QklUMTd8QklUMTYsIDAsIENNX0wzSU5JVF9IU1VTQk9UR19DTEtDVFJMLCBMREVMQVkpOwor KwlzcjMyKENNX0wzSU5JVF9IU1VTQlRMTF9DTEtDVFJMLCAwLCAzMiwgMHgxKTsKKysJLy93YWl0 X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MM0lOSVRfSFNVU0JUTExfQ0xLQ1RSTCwgTERF TEFZKTsKKysJc3IzMihDTV9MM0lOSVRfRlNVU0JfQ0xLQ1RSTCwgMCwgMzIsIDB4Mik7CisrCS8v d2FpdF9vbl92YWx1ZShCSVQxOHxCSVQxN3xCSVQxNiwgMCwgQ01fTDNJTklUX0ZTVVNCX0NMS0NU UkwsIExERUxBWSk7CisrCS8qIGVuYWJsZSB0aGUgMzJLLCA0OE0gb3B0aW9uYWwgY2xvY2tzIGFu ZCBlbmFibGUgdGhlIG1vZHVsZSAqLworKwlzcjMyKENNX0wzSU5JVF9VU0JQSFlfQ0xLQ1RSTCwg MCwgMzIsIDB4MzAxKTsKKysJLy93YWl0X29uX3ZhbHVlKEJJVDE3fEJJVDE2LCAwLCBDTV9MM0lO SVRfVVNCUEhZX0NMS0NUUkwsIExERUxBWSk7CisrCXJldHVybjsKKyt9CisrCisrLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorKyAqIHByY21faW5pdCgpIC0gaW5pdHMgY2xvY2tzIGZvciBQUkNNIGFz IGRlZmluZWQgaW4gY2xvY2tzLmgKKysgKiAgIC0tIGNhbGxlZCBmcm9tIFNSQU0sIG9yIEZsYXNo ICh1c2luZyB0ZW1wIFNSQU0gc3RhY2spLgorKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyt2b2lk IHByY21faW5pdCh2b2lkKQorK3sKKysJdTMyIGNsa19pbmRleDsKKysKKysJLyogR2V0IHRoZSBz eXNjbGsgc3BlZWQgZnJvbSBjbV9zeXNfY2xrc2VsCisrCSAqIFNldCB0aGUgQ01fU1lTX0NMS1NF TCBpbiBjYXNlIFJPTSBjb2RlIGhhcyBub3Qgc2V0CisrCSAqLworKwlfX3Jhd193cml0ZWwoMHg3 LENNX1NZU19DTEtTRUwpOworKwljbGtfaW5kZXggPSByZWFkbChDTV9TWVNfQ0xLU0VMKTsKKysJ aWYgKCFjbGtfaW5kZXgpCisrCQlyZXR1cm47IC8qIFN5cyBjbGsgdW5pbml0aWFsaXplZCAqLwor KwkvKiBDb3JlIERQTEwgaXMgbG9ja2VkIHVzaW5nIEZSRVEgdXBkYXRlIG1ldGhvZCAqLworKwkv KiBjb25maWd1cmVfY29yZV9kcGxsKGNsa19pbmRleCAtIDEpOyAqLworKworKwkvKiBDb25maWd1 cmUgYWxsIERQTEwncyBhdCAxMDAlIE9QUCAqLworKwljb25maWd1cmVfbXB1X2RwbGwoY2xrX2lu ZGV4IC0gMSk7CisrCWNvbmZpZ3VyZV9pdmFfZHBsbChjbGtfaW5kZXggLSAxKTsKKysJY29uZmln dXJlX3Blcl9kcGxsKGNsa19pbmRleCAtIDEpOworKwljb25maWd1cmVfYWJlX2RwbGwoY2xrX2lu ZGV4IC0gMSk7CisrCWNvbmZpZ3VyZV91c2JfZHBsbChjbGtfaW5kZXggLSAxKTsKKysKKysjaWZk ZWYgQ09ORklHX09NQVA0X1NEQworKwkvKiBFbmFibGUgYWxsIGNsb2NrcyAqLworKwllbmFibGVf YWxsX2Nsb2NrcygpOworKyNlbmRpZgorKworKwlyZXR1cm47CisrfQorZGlmZiAtdU5yIHgtbG9h ZC1mMjQzOTM4Lm9yaWcvYm9hcmQvb21hcDQ0MzBwYW5kYS9jb25maWcubWsgeC1sb2FkLWYyNDM5 MzgvYm9hcmQvb21hcDQ0MzBwYW5kYS9jb25maWcubWsKKy0tLSB4LWxvYWQtZjI0MzkzOC5vcmln L2JvYXJkL29tYXA0NDMwcGFuZGEvY29uZmlnLm1rCTE5NjktMTItMzEgMjE6MDA6MDAuMDAwMDAw MDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvYm9hcmQvb21hcDQ0MzBwYW5kYS9jb25maWcu bWsJMjAxMi0wNi0wNyAxNDo0NTozOS40NDU2NDg2NjYgLTAzMDAKK0BAIC0wLDAgKzEsMjEgQEAK KysjCisrIyAoQykgQ29weXJpZ2h0IDIwMDYtMjAwOQorKyMgVGV4YXMgSW5zdHJ1bWVudHMsIDx3 d3cudGkuY29tPgorKyMKKysjIFNEUDQ0MzAgYm9hcmQgdXNlcyBBUk0tQ29ydGV4QTkgY3B1Cisr IyBzZWUgaHR0cDovL3d3dy50aS5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIFRleGFzIElu c3RydW1lbnRzCisrIworKyMgUGh5c2ljYWwgQWRkcmVzczoKKysjIDgwMDAnMDAwMCAoYmFuazAp CisrIyBBMDAwLzAwMDAgKGJhbmsxKQorKyMgTGludXgtS2VybmVsIGlzIGV4cGVjdGVkIHRvIGJl IGF0IDgwMDAnODAwMCwgZW50cnkgODAwMCc4MDAwCisrIyAobWVtIGJhc2UgKyByZXNlcnZlZCkK KysKKysjIEZvciB1c2Ugd2l0aCBleHRlcm5hbCBvciBpbnRlcm5hbCBib290cy4KKytURVhUX0JB U0UgPSAweDQwMzA0MzUwCisrCisrCisrIyBIYW5keSB0byBnZXQgc3ltYm9scyB0byBkZWJ1ZyBS T00gdmVyc2lvbi4KKysjVEVYVF9CQVNFID0gMHgwCisrI1RFWFRfQkFTRSA9IDB4MDgwMDAwMDAK KysjVEVYVF9CQVNFID0gMHgwNDAwMDAwMAorZGlmZiAtdU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcv Ym9hcmQvb21hcDQ0MzBwYW5kYS9NYWtlZmlsZSB4LWxvYWQtZjI0MzkzOC9ib2FyZC9vbWFwNDQz MHBhbmRhL01ha2VmaWxlCistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9ib2FyZC9vbWFwNDQzMHBh bmRhL01ha2VmaWxlCTE5NjktMTItMzEgMjE6MDA6MDAuMDAwMDAwMDAwIC0wMzAwCisrKysgeC1s b2FkLWYyNDM5MzgvYm9hcmQvb21hcDQ0MzBwYW5kYS9NYWtlZmlsZQkyMDEyLTA2LTA3IDE0OjQ1 OjM5LjQ0NTY0ODY2NiAtMDMwMAorQEAgLTAsMCArMSw0OSBAQAorKyMKKysjIChDKSBDb3B5cmln aHQgMjAwOQorKyMgVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cudGkuY29tPgorKyMKKysjIChDKSBD b3B5cmlnaHQgMjAwMCwgMjAwMSwgMjAwMgorKyMgV29sZmdhbmcgRGVuaywgREVOWCBTb2Z0d2Fy ZSBFbmdpbmVlcmluZywgd2RAZGVueC5kZS4KKysjCisrIyBTZWUgZmlsZSBDUkVESVRTIGZvciBs aXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworKyMgcHJvamVjdC4KKysjCisr IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCisrIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyMgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl IFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMz MCwgQm9zdG9uLAorKyMgTUEgMDIxMTEtMTMwNyBVU0EKKysjCisrCisraW5jbHVkZSAkKFRPUERJ UikvY29uZmlnLm1rCisrCisrTElCCT0gbGliJChCT0FSRCkuYQorKworK09CSlMJOj0gb21hcDQ0 MzBwYW5kYS5vIGNsb2NrLm8gc3lzbGliLm8KKytTT0JKUwk6PSBwbGF0Zm9ybS5vCisrCisrJChM SUIpOgkkKE9CSlMpICQoU09CSlMpCisrCSQoQVIpIGNydiAkQCAkXgorKworK2NsZWFuOgorKwly bSAtZiAkKFNPQkpTKSAkKE9CSlMpCisrCisrZGlzdGNsZWFuOgljbGVhbgorKwlybSAtZiAkKExJ QikgY29yZSAqLmJhayAuZGVwZW5kCisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKworKy5kZXBlbmQ6 CU1ha2VmaWxlICQoU09CSlM6Lm89LlMpICQoT0JKUzoubz0uYykKKysJCSQoQ0MpIC1NICQoQ1BQ RkxBR1MpICQoU09CSlM6Lm89LlMpICQoT0JKUzoubz0uYykgPiAkQAorKworKy1pbmNsdWRlIC5k ZXBlbmQKKysKKysjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC11TnIgeC1sb2FkLWYyNDM5Mzgub3Jp Zy9ib2FyZC9vbWFwNDQzMHBhbmRhL29tYXA0NDMwcGFuZGEuYyB4LWxvYWQtZjI0MzkzOC9ib2Fy ZC9vbWFwNDQzMHBhbmRhL29tYXA0NDMwcGFuZGEuYworLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcv Ym9hcmQvb21hcDQ0MzBwYW5kYS9vbWFwNDQzMHBhbmRhLmMJMTk2OS0xMi0zMSAyMTowMDowMC4w MDAwMDAwMDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0MzkzOC9ib2FyZC9vbWFwNDQzMHBhbmRhL29t YXA0NDMwcGFuZGEuYwkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ0NTY0ODY2NiAtMDMwMAorQEAgLTAs MCArMSwxMjM1IEBACisrLyoKKysgKiAoQykgQ29weXJpZ2h0IDIwMDQtMjAwOQorKyAqIFRleGFz IEluc3RydW1lbnRzLCA8d3d3LnRpLmNvbT4KKysgKiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2Ry dWZmMkB0aS5jb20+CisrICoKKysgKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3Bs ZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworKyAqIHByb2plY3QuCisrICoKKysgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisr ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKysgKiB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24uCisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgKiBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl ZSBTb2Z0d2FyZQorKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUg MzMwLCBCb3N0b24sCisrICogTUEgMDIxMTEtMTMwNyBVU0EKKysgKi8KKysjaW5jbHVkZSA8Y29t bW9uLmg+CisrI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgorKyNpbmNsdWRlIDxhc20vaW8uaD4K KysjaW5jbHVkZSA8YXNtL2FyY2gvYml0cy5oPgorKyNpbmNsdWRlIDxhc20vYXJjaC9tdXguaD4K KysjaW5jbHVkZSA8YXNtL2FyY2gvc3lzX3Byb3RvLmg+CisrI2luY2x1ZGUgPGFzbS9hcmNoL3N5 c19pbmZvLmg+CisrI2luY2x1ZGUgPGFzbS9hcmNoL2Nsb2Nrcy5oPgorKyNpbmNsdWRlIDxhc20v YXJjaC9tZW0uaD4KKysjaW5jbHVkZSA8aTJjLmg+CisrI2lmIChDT05GSUdfQ09NTUFORFMgJiBD RkdfQ01EX05BTkQpICYmIGRlZmluZWQoQ0ZHX05BTkRfTEVHQUNZKQorKyNpbmNsdWRlIDxsaW51 eC9tdGQvbmFuZF9sZWdhY3kuaD4KKysjZW5kaWYKKysKKysvKiBFTUlGIGFuZCBETU0gcmVnaXN0 ZXJzICovCisrI2RlZmluZSBFTUlGMV9CQVNFCQkJMHg0YzAwMDAwMAorKyNkZWZpbmUgRU1JRjJf QkFTRQkJCTB4NGQwMDAwMDAKKysjZGVmaW5lIERNTV9CQVNFCQkJMHg0ZTAwMDAwMAorKy8qIEVN SUYgKi8KKysjZGVmaW5lIEVNSUZfTU9EX0lEX1JFVgkJCTB4MDAwMAorKyNkZWZpbmUgRU1JRl9T VEFUVVMJCQkweDAwMDQKKysjZGVmaW5lIEVNSUZfU0RSQU1fQ09ORklHCQkweDAwMDgKKysjZGVm aW5lIEVNSUZfTFBERFIyX05WTV9DT05GSUcJCTB4MDAwQworKyNkZWZpbmUgRU1JRl9TRFJBTV9S RUZfQ1RSTAkJMHgwMDEwCisrI2RlZmluZSBFTUlGX1NEUkFNX1JFRl9DVFJMX1NIRFcJMHgwMDE0 CisrI2RlZmluZSBFTUlGX1NEUkFNX1RJTV8xCQkweDAwMTgKKysjZGVmaW5lIEVNSUZfU0RSQU1f VElNXzFfU0hEVwkJMHgwMDFDCisrI2RlZmluZSBFTUlGX1NEUkFNX1RJTV8yCQkweDAwMjAKKysj ZGVmaW5lIEVNSUZfU0RSQU1fVElNXzJfU0hEVwkJMHgwMDI0CisrI2RlZmluZSBFTUlGX1NEUkFN X1RJTV8zCQkweDAwMjgKKysjZGVmaW5lIEVNSUZfU0RSQU1fVElNXzNfU0hEVwkJMHgwMDJDCisr I2RlZmluZSBFTUlGX0xQRERSMl9OVk1fVElNCQkweDAwMzAKKysjZGVmaW5lIEVNSUZfTFBERFIy X05WTV9USU1fU0hEVwkweDAwMzQKKysjZGVmaW5lIEVNSUZfUFdSX01HTVRfQ1RSTAkJMHgwMDM4 CisrI2RlZmluZSBFTUlGX1BXUl9NR01UX0NUUkxfU0hEVwkJMHgwMDNDCisrI2RlZmluZSBFTUlG X0xQRERSMl9NT0RFX1JFR19EQVRBCTB4MDA0MAorKyNkZWZpbmUgRU1JRl9MUEREUjJfTU9ERV9S RUdfQ0ZHCTB4MDA1MAorKyNkZWZpbmUgRU1JRl9MM19DT05GSUcJCQkweDAwNTQKKysjZGVmaW5l IEVNSUZfTDNfQ0ZHX1ZBTF8xCQkweDAwNTgKKysjZGVmaW5lIEVNSUZfTDNfQ0ZHX1ZBTF8yCQkw eDAwNUMKKysjZGVmaW5lIElPREZUX1RMR0MJCQkweDAwNjAKKysjZGVmaW5lIEVNSUZfUEVSRl9D TlRfMQkJCTB4MDA4MAorKyNkZWZpbmUgRU1JRl9QRVJGX0NOVF8yCQkJMHgwMDg0CisrI2RlZmlu ZSBFTUlGX1BFUkZfQ05UX0NGRwkJMHgwMDg4CisrI2RlZmluZSBFTUlGX1BFUkZfQ05UX1NFTAkJ MHgwMDhDCisrI2RlZmluZSBFTUlGX1BFUkZfQ05UX1RJTQkJMHgwMDkwCisrI2RlZmluZSBFTUlG X1JFQURfSURMRV9DVFJMCQkweDAwOTgKKysjZGVmaW5lIEVNSUZfUkVBRF9JRExFX0NUUkxfU0hE VwkweDAwOWMKKysjZGVmaW5lIEVNSUZfWlFfQ09ORklHCQkJMHgwMEM4CisrI2RlZmluZSBFTUlG X0REUl9QSFlfQ1RSTF8xCQkweDAwRTQKKysjZGVmaW5lIEVNSUZfRERSX1BIWV9DVFJMXzFfU0hE VwkweDAwRTgKKysjZGVmaW5lIEVNSUZfRERSX1BIWV9DVFJMXzIJCTB4MDBFQworKworKyNkZWZp bmUgRE1NX0xJU0FfTUFQXzAgCQkJMHgwMDQwCisrI2RlZmluZSBETU1fTElTQV9NQVBfMSAJCQkw eDAwNDQKKysjZGVmaW5lIERNTV9MSVNBX01BUF8yIAkJCTB4MDA0OAorKyNkZWZpbmUgRE1NX0xJ U0FfTUFQXzMgCQkJMHgwMDRDCisrCisrI2RlZmluZSBNUjBfQUREUgkJCTAKKysjZGVmaW5lIE1S MV9BRERSCQkJMQorKyNkZWZpbmUgTVIyX0FERFIJCQkyCisrI2RlZmluZSBNUjRfQUREUgkJCTQK KysjZGVmaW5lIE1SMTBfQUREUgkJCTEwCisrI2RlZmluZSBNUjE2X0FERFIJCQkxNgorKyNkZWZp bmUgUkVGX0VOCQkJCTB4NDAwMDAwMDAKKysvKiBkZWZpbmVzIGZvciBNUjEgKi8KKysjZGVmaW5l IE1SMV9CTDQJCQkJMgorKyNkZWZpbmUgTVIxX0JMOAkJCQkzCisrI2RlZmluZSBNUjFfQkwxNgkJ CTQKKysKKysjZGVmaW5lIE1SMV9CVF9TRVEJCQkwCisrI2RlZmluZSBCVF9JTlQJCQkJMQorKwor KyNkZWZpbmUgTVIxX1dDCQkJCTAKKysjZGVmaW5lIE1SMV9OV0MJCQkJMQorKworKyNkZWZpbmUg TVIxX05XUjMJCQkxCisrI2RlZmluZSBNUjFfTldSNAkJCTIKKysjZGVmaW5lIE1SMV9OV1I1CQkJ MworKyNkZWZpbmUgTVIxX05XUjYJCQk0CisrI2RlZmluZSBNUjFfTldSNwkJCTUKKysjZGVmaW5l IE1SMV9OV1I4CQkJNgorKworKyNkZWZpbmUgTVIxX1ZBTFVFCShNUjFfTldSMyA8PCA1KSB8IChN UjFfV0MgPDwgNCkgfCAoTVIxX0JUX1NFUSA8PCAzKSAgXAorKwkJCQkJCQl8IChNUjFfQkw4IDw8 IDApCisrCisrLyogZGVmaW5lcyBmb3IgTVIyICovCisrI2RlZmluZSBNUjJfUkwzX1dMMQkJCTEK KysjZGVmaW5lIE1SMl9STDRfV0wyCQkJMgorKyNkZWZpbmUgTVIyX1JMNV9XTDIJCQkzCisrI2Rl ZmluZSBNUjJfUkw2X1dMMwkJCTQKKysKKysvKiBkZWZpbmVzIGZvciBNUjEwICovCisrI2RlZmlu ZSBNUjEwX1pRSU5JVAkJCTB4RkYKKysjZGVmaW5lIE1SMTBfWlFSRVNFVAkJCTB4QzMKKysjZGVm aW5lIE1SMTBfWlFDTAkJCTB4QUIKKysjZGVmaW5lIE1SMTBfWlFDUwkJCTB4NTYKKysKKysKKysv KiBUT0RPOiBGUkVRIHVwZGF0ZSBtZXRob2QgaXMgbm90IHdvcmtpbmcgc28gc2hhZG93IHJlZ2lz dGVycyBwcm9ncmFtbWluZworKyAqIGlzIGp1c3QgZm9yIHNhbWUgb2YgY29tcGxldGVuZXNzLiBU aGlzIHdvdWxkIGJlIHNhZmVyIGlmIGF1dG8KKysgKiB0cmFzbml0aW9ucyBhcmUgd29ya2luZwor KyAqLworKyNkZWZpbmUgRlJFUV9VUERBVEVfRU1JRgorKy8qIEVNSUYgTmVlZHMgdG8gYmUgY29u ZmlndXJlZEAxOS4yIE1IeiBhbmQgc2hhZG93IHJlZ2lzdGVycworKyAqIHNob3VsZCBiZSBwcm9n cmFtbWVkIGZvciBuZXcgT1BQLgorKyAqLworKy8qIEVscGlkYSAyeDJHYml0ICovCisrI2RlZmlu ZSBTRFJBTV9DT05GSUdfSU5JVAkJMHg4MDgwMEVCMQorKyNkZWZpbmUgRERSX1BIWV9DVFJMXzFf SU5JVAkJMHg4NDlGRkZGNQorKyNkZWZpbmUgUkVBRF9JRExFX0NUUkwJCQkweDAwMDUwMUZGCisr I2RlZmluZSBQV1JfTUdNVF9DVFJMCQkJMHg0MDAwMDAwZgorKyNkZWZpbmUgUFdSX01HTVRfQ1RS TF9PUFAxMDAJCTB4NDAwMDAwMGYKKysjZGVmaW5lIFpRX0NPTkZJRwkJCTB4NTAwYjMyMTUKKysK KysjZGVmaW5lIENTMV9NUihtcikJKChtcikgfCAweDgwMDAwMDAwKQorK3N0cnVjdCBkZHJfcmVn c3sKKysJdTMyIHRpbTE7CisrCXUzMiB0aW0yOworKwl1MzIgdGltMzsKKysJdTMyIHBoeV9jdHJs XzE7CisrCXUzMiByZWZfY3RybDsKKysJdTMyIGNvbmZpZ19pbml0OworKwl1MzIgY29uZmlnX2Zp bmFsOworKwl1MzIgenFfY29uZmlnOworKwl1OCBtcjE7CisrCXU4IG1yMjsKKyt9OworK2NvbnN0 IHN0cnVjdCBkZHJfcmVncyBkZHJfcmVnc18zODBfbWh6ID0geworKwkudGltMQkJPSAweDEwY2Iw NjFhLAorKwkudGltMgkJPSAweDIwMzUwZDUyLAorKwkudGltMwkJPSAweDAwYjE0MzFmLAorKwku cGh5X2N0cmxfMQk9IDB4ODQ5RkY0MDgsCisrCS5yZWZfY3RybAk9IDB4MDAwMDA1Y2EsCisrCS5j b25maWdfaW5pdAk9IDB4ODAwMDBlYjEsCisrCS5jb25maWdfZmluYWwJPSAweDgwMDAxYWIxLAor KwkuenFfY29uZmlnCT0gMHg1MDBiMzIxNSwKKysJLm1yMQkJPSAweDgzLAorKwkubXIyCQk9IDB4 NAorK307CisrCisrLyoKKysgKiBVbnVzZWQgdGltaW5ncyAtIGJ1dCB3ZSBtYXkgbmVlZCB0aGVt IGxhdGVyCisrICogS2VlcCB0aGVtIGNvbW1lbnRlZAorKyAqLworKyNpZiAwCisrY29uc3Qgc3Ry dWN0IGRkcl9yZWdzIGRkcl9yZWdzXzQwMF9taHogPSB7CisrCS50aW0xCQk9IDB4MTBlYjA2NWEs CisrCS50aW0yCQk9IDB4MjAzNzBkZDIsCisrCS50aW0zCQk9IDB4MDBiMWMzM2YsCisrCS5waHlf Y3RybF8xCT0gMHg4NDlGRjQwOCwKKysJLnJlZl9jdHJsCT0gMHgwMDAwMDYxOCwKKysJLmNvbmZp Z19pbml0CT0gMHg4MDAwMGViMSwKKysJLmNvbmZpZ19maW5hbAk9IDB4ODAwMDFhYjEsCisrCS56 cV9jb25maWcJPSAweDUwMGIzMjE1LAorKwkubXIxCQk9IDB4ODMsCisrCS5tcjIJCT0gMHg0Cisr fTsKKysKKytjb25zdCBzdHJ1Y3QgZGRyX3JlZ3MgZGRyX3JlZ3NfMjAwX21oeiA9IHsKKysJLnRp bTEJCT0gMHgwODY0ODMwOSwKKysJLnRpbTIJCT0gMHgxMDFiMDZjYSwKKysJLnRpbTMJCT0gMHgw MDQ4YTE5ZiwKKysJLnBoeV9jdHJsXzEJPSAweDg0OUZGNDA1LAorKwkucmVmX2N0cmwJPSAweDAw MDAwMzBjLAorKwkuY29uZmlnX2luaXQJPSAweDgwMDAwZWIxLAorKwkuY29uZmlnX2ZpbmFsCT0g MHg4MDAwMGViMSwKKysJLnpxX2NvbmZpZwk9IDB4NTAwYjMyMTUsCisrCS5tcjEJCT0gMHgyMywK KysJLm1yMgkJPSAweDEKKyt9OworKyNlbmRpZgorKworK2NvbnN0IHN0cnVjdCBkZHJfcmVncyBk ZHJfcmVnc18yMDBfbWh6XzJjcyA9IHsKKysJLnRpbTEJCT0gMHgwODY0ODMwOSwKKysJLnRpbTIJ CT0gMHgxMDFiMDZjYSwKKysJLnRpbTMJCT0gMHgwMDQ4YTE5ZiwKKysJLnBoeV9jdHJsXzEJPSAw eDg0OUZGNDA1LAorKwkucmVmX2N0cmwJPSAweDAwMDAwMzBjLAorKwkuY29uZmlnX2luaXQJPSAw eDgwMDAwZWI5LAorKwkuY29uZmlnX2ZpbmFsCT0gMHg4MDAwMGViOSwKKysJLnpxX2NvbmZpZwk9 IDB4RDAwYjMyMTUsCisrCS5tcjEJCT0gMHgyMywKKysJLm1yMgkJPSAweDEKKyt9OworKworK2Nv bnN0IHN0cnVjdCBkZHJfcmVncyBkZHJfcmVnc180MDBfbWh6XzJjcyA9IHsKKysJLyogdFJSRCBj aGFuZ2VkIGZyb20gMTBucyB0byAxMi41bnMgYmVjYXVzZSBvZiB0aGUgdEZBVyByZXF1aXJlbWVu dCovCisrCS50aW0xCQk9IDB4MTBlYjA2NjIsCisrCS50aW0yCQk9IDB4MjAzNzBkZDIsCisrCS50 aW0zCQk9IDB4MDBiMWMzM2YsCisrCS5waHlfY3RybF8xCT0gMHg4NDlGRjQwOCwKKysJLnJlZl9j dHJsCT0gMHgwMDAwMDYxOCwKKysJLmNvbmZpZ19pbml0CT0gMHg4MDAwMGViOSwKKysJLmNvbmZp Z19maW5hbAk9IDB4ODAwMDFhYjksCisrCS56cV9jb25maWcJPSAweEQwMGIzMjE1LAorKwkubXIx CQk9IDB4ODMsCisrCS5tcjIJCT0gMHg0CisrfTsKKysKKysvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyAqIFJvdXRpbmU6IGRlbGF5Cisr ICogRGVzY3JpcHRpb246IHNwaW5uaW5nIGRlbGF5IHRvIHVzZSBiZWZvcmUgdWRlbGF5IHdvcmtz CisrICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKytzdGF0aWMgaW5saW5lIHZvaWQgZGVsYXkodW5zaWduZWQgbG9uZyBsb29wcykKKyt7Cisr CV9fYXNtX18gdm9sYXRpbGUgKCIxOlxuIiAic3VicyAlMCwgJTEsICMxXG4iCisrCQkJICAiYm5l IDFiIiA6ICI9ciIgKGxvb3BzKSA6ICIwIihsb29wcykpOworK30KKysKKysKKyt2b2lkIGJpZ19k ZWxheSh1bnNpZ25lZCBpbnQgY291bnQpCisreworKwlpbnQgaTsKKysJZm9yIChpPTA7IGk8Y291 bnQ7IGkrKykKKysJCWRlbGF5KDEpOworK30KKysKKysvKiBUT0RPOiBGUkVRIHVwZGF0ZSBtZXRo b2QgaXMgbm90IHdvcmtpbmcgc28gc2hhZG93IHJlZ2lzdGVycyBwcm9ncmFtbWluZworKyAqIGlz IGp1c3QgZm9yIHNhbWUgb2YgY29tcGxldGVuZXNzLiBUaGlzIHdvdWxkIGJlIHNhZmVyIGlmIGF1 dG8KKysgKiB0cmFzbml0aW9ucyBhcmUgd29ya2luZworKyAqLworK3N0YXRpYyBpbnQgZW1pZl9j b25maWcodW5zaWduZWQgaW50IGJhc2UpCisreworKwl1bnNpZ25lZCBpbnQgcmVnX3ZhbHVlLCBy ZXY7CisrCWNvbnN0IHN0cnVjdCBkZHJfcmVncyAqZGRyX3JlZ3M7CisrCXJldiA9IG9tYXBfcmV2 aXNpb24oKTsKKysKKysJaWYocmV2ID09IE9NQVA0NDMwX0VTMV8wKQorKwkJZGRyX3JlZ3MgPSAm ZGRyX3JlZ3NfMzgwX21oejsKKysJZWxzZSBpZiAocmV2ID09IE9NQVA0NDMwX0VTMl8wKQorKwkJ ZGRyX3JlZ3MgPSAmZGRyX3JlZ3NfMjAwX21oel8yY3M7CisrCWVsc2UgaWYgKHJldiA9PSBPTUFQ NDQzMF9FUzJfMSkKKysJCWRkcl9yZWdzID0gJmRkcl9yZWdzXzQwMF9taHpfMmNzOworKwkvKgor KwkgKiBzZXQgU0RSQU0gQ09ORklHIHJlZ2lzdGVyCisrCSAqIEVNSUZfU0RSQU1fQ09ORklHWzMx OjI5XSBSRUdfU0RSQU1fVFlQRSA9IDQgZm9yIExQRERSMi1TNAorKwkgKiBFTUlGX1NEUkFNX0NP TkZJR1syODoyN10gUkVHX0lCQU5LX1BPUyA9IDAKKysJICogRU1JRl9TRFJBTV9DT05GSUdbMTM6 MTBdIFJFR19DTCA9IDMKKysJICogRU1JRl9TRFJBTV9DT05GSUdbNjo0XSBSRUdfSUJBTksgPSAz IC0gOCBiYW5rcworKwkgKiBFTUlGX1NEUkFNX0NPTkZJR1szXSBSRUdfRUJBTksgPSAwIC0gQ1Mw CisrIAkgKiBFTUlGX1NEUkFNX0NPTkZJR1syOjBdIFJFR19QQUdFU0laRSA9IDIgIC0gNTEyLSA5 IGNvbHVtbgorKwkgKiBKREVDIHNwZWNzIC0gUzQtMkdiIC0tOCBiYW5rcyAtLSBSMC1SMTMsIEMw LWM4CisrCSAqLworKwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBFTUlGX0xQRERSMl9OVk1fQ09O RklHKSAmPSAweEJGRkZGRkZGOworKwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBFTUlGX1NEUkFN X0NPTkZJRykgPSBkZHJfcmVncy0+Y29uZmlnX2luaXQ7CisrCisrCS8qIFBIWSBjb250cm9sIHZh bHVlcyAqLworKwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBFTUlGX0REUl9QSFlfQ1RSTF8xKSA9 IEREUl9QSFlfQ1RSTF8xX0lOSVQ7CisrCSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfRERS X1BIWV9DVFJMXzFfU0hEVyk9IGRkcl9yZWdzLT5waHlfY3RybF8xOworKworKwkvKgorKwkgKiBF TUlGX1JFQURfSURMRV9DVFJMCisrCSAqLworKwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBFTUlG X1JFQURfSURMRV9DVFJMKSA9IFJFQURfSURMRV9DVFJMOworKwkqKHZvbGF0aWxlIGludCopKGJh c2UgKyBFTUlGX1JFQURfSURMRV9DVFJMX1NIRFcpID0gUkVBRF9JRExFX0NUUkw7CisrCisrCS8q CisrCSAqIEVNSUZfU0RSQU1fVElNXzEKKysJICovCisrCSoodm9sYXRpbGUgaW50KikoYmFzZSAr IEVNSUZfU0RSQU1fVElNXzEpID0gZGRyX3JlZ3MtPnRpbTE7CisrCSoodm9sYXRpbGUgaW50Kiko YmFzZSArIEVNSUZfU0RSQU1fVElNXzFfU0hEVykgPSBkZHJfcmVncy0+dGltMTsKKysKKysJLyoK KysJICogRU1JRl9TRFJBTV9USU1fMgorKwkgKi8KKysJKih2b2xhdGlsZSBpbnQqKShiYXNlICsg RU1JRl9TRFJBTV9USU1fMikgPSBkZHJfcmVncy0+dGltMjsKKysJKih2b2xhdGlsZSBpbnQqKShi YXNlICsgRU1JRl9TRFJBTV9USU1fMl9TSERXKSA9IGRkcl9yZWdzLT50aW0yOworKworKwkvKgor KwkgKiBFTUlGX1NEUkFNX1RJTV8zCisrCSAqLworKwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBF TUlGX1NEUkFNX1RJTV8zKSA9IGRkcl9yZWdzLT50aW0zOworKwkqKHZvbGF0aWxlIGludCopKGJh c2UgKyBFTUlGX1NEUkFNX1RJTV8zX1NIRFcpID0gZGRyX3JlZ3MtPnRpbTM7CisrCisrCSoodm9s YXRpbGUgaW50KikoYmFzZSArIEVNSUZfWlFfQ09ORklHKSA9IGRkcl9yZWdzLT56cV9jb25maWc7 CisrCS8qCisrCSAqIEVNSUZfUFdSX01HTVRfQ1RSTAorKwkgKi8KKysJLy8qKHZvbGF0aWxlIGlu dCopKGJhc2UgKyBFTUlGX1BXUl9NR01UX0NUUkwpID0gUFdSX01HTVRfQ1RSTDsKKysJLy8qKHZv bGF0aWxlIGludCopKGJhc2UgKyBFTUlGX1BXUl9NR01UX0NUUkxfU0hEVykgPSBQV1JfTUdNVF9D VFJMX09QUDEwMDsKKysJLyoKKysJICogcG9sbCBNUjAgcmVnaXN0ZXIgKERBSSBiaXQpCisrCSAq IFJFR19DU1szMV0gPSAwIC0tIE1vZGUgcmVnaXN0ZXIgY29tbWFuZCB0byBDUzAKKysJICogUkVH X1JFRlJFU0hfRU5bMzBdID0gMSAtLSBSZWZyZXNoIGVuYWJsZSBhZnRlciBNUlcKKysJICogUkVH X0FERFJFU1NbNzowXSA9IDAwIC0tIFJlZnJlc2ggZW5hYmxlIGFmdGVyIE1SVworKwkgKi8KKysK KysJKih2b2xhdGlsZSBpbnQqKShiYXNlICsgRU1JRl9MUEREUjJfTU9ERV9SRUdfQ0ZHKSA9IE1S MF9BRERSOworKwlkbyB7CisrCQlyZWdfdmFsdWUgPSAqKHZvbGF0aWxlIGludCopKGJhc2UgKyBF TUlGX0xQRERSMl9NT0RFX1JFR19EQVRBKTsKKysJfSB3aGlsZSAoKHJlZ192YWx1ZSAmIDB4MSkg IT0gMCk7CisrCisrCSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfTFBERFIyX01PREVfUkVH X0NGRykgPSBDUzFfTVIoTVIwX0FERFIpOworKwlkbyB7CisrCQlyZWdfdmFsdWUgPSAqKHZvbGF0 aWxlIGludCopKGJhc2UgKyBFTUlGX0xQRERSMl9NT0RFX1JFR19EQVRBKTsKKysJfSB3aGlsZSAo KHJlZ192YWx1ZSAmIDB4MSkgIT0gMCk7CisrCisrCisrCS8qIHNldCBNUjEwIHJlZ2lzdGVyICov CisrCSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfTFBERFIyX01PREVfUkVHX0NGRyk9IE1S MTBfQUREUjsKKysJKih2b2xhdGlsZSBpbnQqKShiYXNlICsgRU1JRl9MUEREUjJfTU9ERV9SRUdf REFUQSkgPSBNUjEwX1pRSU5JVDsKKysJKih2b2xhdGlsZSBpbnQqKShiYXNlICsgRU1JRl9MUERE UjJfTU9ERV9SRUdfQ0ZHKSA9IENTMV9NUihNUjEwX0FERFIpOworKwkqKHZvbGF0aWxlIGludCop KGJhc2UgKyBFTUlGX0xQRERSMl9NT0RFX1JFR19EQVRBKSA9IE1SMTBfWlFJTklUOworKworKwkv KiB3YWl0IGZvciB0WlFJTklUPTF1cyAgKi8KKysJZGVsYXkoMTApOworKworKwkvKiBzZXQgTVIx IHJlZ2lzdGVyICovCisrCSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfTFBERFIyX01PREVf UkVHX0NGRyk9IE1SMV9BRERSOworKwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBFTUlGX0xQRERS Ml9NT0RFX1JFR19EQVRBKSA9IGRkcl9yZWdzLT5tcjE7CisrCSoodm9sYXRpbGUgaW50KikoYmFz ZSArIEVNSUZfTFBERFIyX01PREVfUkVHX0NGRykgPSBDUzFfTVIoTVIxX0FERFIpOworKwkqKHZv bGF0aWxlIGludCopKGJhc2UgKyBFTUlGX0xQRERSMl9NT0RFX1JFR19EQVRBKSA9IGRkcl9yZWdz LT5tcjE7CisrCisrCisrCS8qIHNldCBNUjIgcmVnaXN0ZXIgUkw9NiBmb3IgT1BQMTAwICovCisr CSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfTFBERFIyX01PREVfUkVHX0NGRyk9IE1SMl9B RERSOworKwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBFTUlGX0xQRERSMl9NT0RFX1JFR19EQVRB KSA9IGRkcl9yZWdzLT5tcjI7CisrCSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfTFBERFIy X01PREVfUkVHX0NGRykgPSBDUzFfTVIoTVIyX0FERFIpOworKwkqKHZvbGF0aWxlIGludCopKGJh c2UgKyBFTUlGX0xQRERSMl9NT0RFX1JFR19EQVRBKSA9IGRkcl9yZWdzLT5tcjI7CisrCisrCS8q IFNldCBTRFJBTSBDT05GSUcgcmVnaXN0ZXIgYWdhaW4gaGVyZSB3aXRoIGZpbmFsIFJMLVdMIHZh bHVlICovCisrCSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfU0RSQU1fQ09ORklHKSA9IGRk cl9yZWdzLT5jb25maWdfZmluYWw7CisrCSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfRERS X1BIWV9DVFJMXzEpID0gZGRyX3JlZ3MtPnBoeV9jdHJsXzE7CisrCisrCS8qCisrCSAqIEVNSUZf U0RSQU1fUkVGX0NUUkwKKysJICogcmVmcmVzaCByYXRlID0gRERSX0NMSyAvIHJlZ19yZWZyZXNo X3JhdGUKKysJICogMy45IHVTID0gKDQwME1IeikJLyByZWdfcmVmcmVzaF9yYXRlCisrCSAqLwor KwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBFTUlGX1NEUkFNX1JFRl9DVFJMKSA9IGRkcl9yZWdz LT5yZWZfY3RybDsKKysJKih2b2xhdGlsZSBpbnQqKShiYXNlICsgRU1JRl9TRFJBTV9SRUZfQ1RS TF9TSERXKSA9IGRkcl9yZWdzLT5yZWZfY3RybDsKKysKKysJLyogc2V0IE1SMTYgcmVnaXN0ZXIg Ki8KKysJKih2b2xhdGlsZSBpbnQqKShiYXNlICsgRU1JRl9MUEREUjJfTU9ERV9SRUdfQ0ZHKT0g TVIxNl9BRERSIHwgUkVGX0VOOworKwkqKHZvbGF0aWxlIGludCopKGJhc2UgKyBFTUlGX0xQRERS Ml9NT0RFX1JFR19EQVRBKSA9IDA7CisrCSoodm9sYXRpbGUgaW50KikoYmFzZSArIEVNSUZfTFBE RFIyX01PREVfUkVHX0NGRykgPQorKwkJCQkJCSBDUzFfTVIoTVIxNl9BRERSIHwgUkVGX0VOKTsK KysJKih2b2xhdGlsZSBpbnQqKShiYXNlICsgRU1JRl9MUEREUjJfTU9ERV9SRUdfREFUQSkgPSAw OworKwkvKiBMUEREUjIgaW5pdCBjb21wbGV0ZSAqLworKworK30KKysvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysgKiBSb3V0aW5lOiBkZHJfaW5pdAorKyAqIERl c2NyaXB0aW9uOiBDb25maWd1cmUgRERSCisrICogRU1JRjEgLS0gQ1MwIC0tIEREUjEgKDI1NiBN QikKKysgKiBFTUlGMiAtLSBDUzAgLS0gRERSMiAoMjU2IE1CKQorKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKytzdGF0aWMgdm9pZCBkZHJfaW5pdCh2b2lkKQor K3sKKysJdW5zaWduZWQgaW50IGJhc2VfYWRkciwgcmV2OworKwlyZXYgPSBvbWFwX3JldmlzaW9u KCk7CisrCisrCWlmIChyZXYgPT0gT01BUDQ0MzBfRVMxXzApCisrCXsKKysJCS8qIENvbmZpZ3Vy dGUgdGhlIENvbnRyb2wgTW9kdWxlIEREUklPIGRldmljZSAqLworKwkJX19yYXdfd3JpdGVsKDB4 MWMxYzFjMWMsIDB4NEExMDA2MzgpOworKwkJX19yYXdfd3JpdGVsKDB4MWMxYzFjMWMsIDB4NEEx MDA2M2MpOworKwkJX19yYXdfd3JpdGVsKDB4MWMxYzFjMWMsIDB4NEExMDA2NDApOworKwkJX19y YXdfd3JpdGVsKDB4MWMxYzFjMWMsIDB4NEExMDA2NDgpOworKwkJX19yYXdfd3JpdGVsKDB4MWMx YzFjMWMsIDB4NEExMDA2NGMpOworKwkJX19yYXdfd3JpdGVsKDB4MWMxYzFjMWMsIDB4NEExMDA2 NTApOworKwkJLyogTFBERFIySU8gc2V0IHRvIE5NT1MgUFRWICovCisrCQlfX3Jhd193cml0ZWwo MHgwMGZmYzAwMCwgMHg0QTEwMDcwNCk7CisrCX0gZWxzZSBpZiAocmV2ID09IE9NQVA0NDMwX0VT Ml8wKSB7CisrCQlfX3Jhd193cml0ZWwoMHg5ZTllOWU5ZSwgMHg0QTEwMDYzOCk7CisrCQlfX3Jh d193cml0ZWwoMHg5ZTllOWU5ZSwgMHg0QTEwMDYzYyk7CisrCQlfX3Jhd193cml0ZWwoMHg5ZTll OWU5ZSwgMHg0QTEwMDY0MCk7CisrCQlfX3Jhd193cml0ZWwoMHg5ZTllOWU5ZSwgMHg0QTEwMDY0 OCk7CisrCQlfX3Jhd193cml0ZWwoMHg5ZTllOWU5ZSwgMHg0QTEwMDY0Yyk7CisrCQlfX3Jhd193 cml0ZWwoMHg5ZTllOWU5ZSwgMHg0QTEwMDY1MCk7CisrCQkvKiBMUEREUjJJTyBzZXQgdG8gTk1P UyBQVFYgKi8KKysJCV9fcmF3X3dyaXRlbCgweDAwZmZjMDAwLCAweDRBMTAwNzA0KTsKKysJfQor KworKwkvKgorKwkgKiBETU0gQ29uZmlndXJhdGlvbgorKwkgKi8KKysKKysJLyogQm90aCBFTUlG cyAxMjggYnl0ZSBpbnRlcmxlYXZlZCovCisrCWlmIChyZXYgPT0gT01BUDQ0MzBfRVMxXzApCisr CQkqKHZvbGF0aWxlIGludCopKERNTV9CQVNFICsgRE1NX0xJU0FfTUFQXzApID0gMHg4MDU0MDMw MDsKKysJZWxzZQorKwkJKih2b2xhdGlsZSBpbnQqKShETU1fQkFTRSArIERNTV9MSVNBX01BUF8w KSA9IDB4ODA2NDAzMDA7CisrCisrCS8qIEVNSUYyIG9ubHkgYXQgMHg5MDAwMDAwMCAqLworKwkv Lyoodm9sYXRpbGUgaW50KikoRE1NX0JBU0UgKyBETU1fTElTQV9NQVBfMSkgPSAweDkwNDAwMjAw OworKworKwkqKHZvbGF0aWxlIGludCopKERNTV9CQVNFICsgRE1NX0xJU0FfTUFQXzIpID0gMHgw MDAwMDAwMDsKKysJKih2b2xhdGlsZSBpbnQqKShETU1fQkFTRSArIERNTV9MSVNBX01BUF8zKSA9 IDB4RkYwMjAxMDA7CisrCisrCS8qIEREUiBuZWVkcyB0byBiZSBpbml0aWFsaXNlZCBAIDE5LjIg TUh6CisrCSAqIFNvIHB1dCBjb3JlIERQTEwgaW4gYnlwYXNzIG1vZGUKKysJICogQ29uZmlndXJl IHRoZSBDb3JlIERQTEwgYnV0IGRvbid0IGxvY2sgaXQKKysJICovCisrCWNvbmZpZ3VyZV9jb3Jl X2RwbGxfbm9fbG9jaygpOworKworKwkvKiBObyBJRExFOiBCVUcgaW4gU0RDICovCisrCS8vc3Iz MihDTV9NRU1JRl9DTEtTVENUUkwsIDAsIDMyLCAweDIpOworKwkvL3doaWxlKCgoKih2b2xhdGls ZSBpbnQqKUNNX01FTUlGX0NMS1NUQ1RSTCkgJiAweDcwMCkgIT0gMHg3MDApOworKwkqKHZvbGF0 aWxlIGludCopKEVNSUYxX0JBU0UgKyBFTUlGX1BXUl9NR01UX0NUUkwpID0gMHgwOworKwkqKHZv bGF0aWxlIGludCopKEVNSUYyX0JBU0UgKyBFTUlGX1BXUl9NR01UX0NUUkwpID0gMHgwOworKwor KwliYXNlX2FkZHIgPSBFTUlGMV9CQVNFOworKwllbWlmX2NvbmZpZyhiYXNlX2FkZHIpOworKwor KwkvKiBDb25maWd1cmUgRU1JRjI0RCAqLworKwliYXNlX2FkZHIgPSBFTUlGMl9CQVNFOworKwll bWlmX2NvbmZpZyhiYXNlX2FkZHIpOworKwkvKiBMb2NrIENvcmUgdXNpbmcgc2hhZG93IENNX1NI QURPV19GUkVRX0NPTkZJRzEgKi8KKysJbG9ja19jb3JlX2RwbGxfc2hhZG93KCk7CisrCS8qIFRP RE86IFNEQyBuZWVkcyBmZXcgaGFja3MgdG8gZ2V0IEREUiBmcmVxIHVwZGF0ZSB3b3JraW5nICov CisrCisrCS8qIFNldCBETExfT1ZFUlJJREUgPSAwICovCisrCSoodm9sYXRpbGUgaW50KilDTV9E TExfQ1RSTCA9IDB4MDsKKysKKysJZGVsYXkoMjAwKTsKKysKKysJLyogQ2hlY2sgZm9yIEREUiBQ SFkgcmVhZHkgZm9yIEVNSUYxICYgRU1JRjIgKi8KKysJd2hpbGUoKCgoKih2b2xhdGlsZSBpbnQq KShFTUlGMV9CQVNFICsgRU1JRl9TVEFUVVMpKSYoMHgwNCkpICE9IDB4MDQpIFwKKysJfHwgKCgo Kih2b2xhdGlsZSBpbnQqKShFTUlGMl9CQVNFICsgRU1JRl9TVEFUVVMpKSYoMHgwNCkpICE9IDB4 MDQpKTsKKysKKysJLyogUmVwcm9ncmFtIHRoZSBERFIgUFlIWSBDb250cm9sIHJlZ2lzdGVyICov CisrCS8qIFBIWSBjb250cm9sIHZhbHVlcyAqLworKworKwlzcjMyKENNX01FTUlGX0VNSUZfMV9D TEtDVFJMLCAwLCAzMiwgMHgxKTsKKysgICAgICAgIHNyMzIoQ01fTUVNSUZfRU1JRl8yX0NMS0NU UkwsIDAsIDMyLCAweDEpOworKworKwkvKiBQdXQgdGhlIENvcmUgU3Vic3lzdGVtIFBEIHRvIE9O IFN0YXRlICovCisrCisrCS8qIE5vIElETEU6IEJVRyBpbiBTREMgKi8KKysJLy9zcjMyKENNX01F TUlGX0NMS1NUQ1RSTCwgMCwgMzIsIDB4Mik7CisrCS8vd2hpbGUoKCgqKHZvbGF0aWxlIGludCop Q01fTUVNSUZfQ0xLU1RDVFJMKSAmIDB4NzAwKSAhPSAweDcwMCk7CisrCSoodm9sYXRpbGUgaW50 KikoRU1JRjFfQkFTRSArIEVNSUZfUFdSX01HTVRfQ1RSTCkgPSAweDgwMDAwMDAwOworKwkqKHZv bGF0aWxlIGludCopKEVNSUYyX0JBU0UgKyBFTUlGX1BXUl9NR01UX0NUUkwpID0gMHg4MDAwMDAw MDsKKysKKysJLyogU1lTVEVNIEJVRzoKKysJICogSW4gbiBhIHNwZWNpZmljIHNpdHVhdGlvbiwg dGhlIE9DUCBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgRE1NIGFuZAorKwkgKiBFTUlGIG1heSBoYW5n LgorKwkgKiAxLiBBIFRJTEVSIHBvcnQgaXMgdXNlZCB0byBwZXJmb3JtIDJEIGJ1cnN0IHdyaXRl cyBvZgorKwkgKiAJIHdpZHRoIDEgYW5kIGhlaWdodCA4CisrCSAqIDIuIEVMTEFuIHBvcnQgaXMg dXNlZCB0byBwZXJmb3JtIHJlYWRzCisrCSAqIDMuIEFsbCBhY2Nlc3NlcyBhcmUgcm91dGVkIHRv IHRoZSBzYW1lIEVNSUYgY29udHJvbGxlcgorKwkgKgorKwkgKiBXb3JrIGFyb3VuZCB0byBhdm9p ZCB0aGlzIGlzc3VlIFJFR19TWVNfVEhSRVNIX01BWCB2YWx1ZSBzaG91bGQKKysJICogYmUga2Vw dCBoaWdoZXIgdGhhbiBkZWZhdWx0IDB4Ny4gQXMgcGVyIHJlY29tbW9uZGF0aW9uIDB4MEEgd2ls bAorKwkgKiBiZSB1c2VkIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2Ugd2l0aCBSRUdfTExfVEhSRVNI X01BWCA9IDB4MDAKKysJICovCisrCWlmIChyZXYgPT0gT01BUDQ0MzBfRVMxXzApIHsKKysJCSoo dm9sYXRpbGUgaW50KikoRU1JRjFfQkFTRSArIEVNSUZfTDNfQ09ORklHKSA9IDB4MEEwMDAwRkY7 CisrCQkqKHZvbGF0aWxlIGludCopKEVNSUYyX0JBU0UgKyBFTUlGX0wzX0NPTkZJRykgPSAweDBB MDAwMEZGOworKwl9CisrCisrCS8qCisrCSAqIERNTSA6IERNTV9MSVNBX01BUF8wKFNlY3Rpb25f MCkKKysJICogWzMxOjI0XSBTWVNfQUREUiAJCTB4ODAKKysJICogWzIyOjIwXSBTWVNfU0laRQkJ MHg3IC0gMkdiCisrCSAqIFsxOToxOF0gU0RSQ19JTlRMRE1NCQkweDEgLSAxMjggYnl0ZQorKwkg KiBbMTc6MTZdIFNEUkNfQUREUlNQQyAJMHgwCisrCSAqIFs5OjhdIFNEUkNfTUFQIAkJMHgzCisr CSAqIFs3OjBdIFNEUkNfQUREUgkJMFgwCisrCSAqLworKwlyZXNldF9waHkoRU1JRjFfQkFTRSk7 CisrCXJlc2V0X3BoeShFTUlGMl9CQVNFKTsKKysKKysJKigodm9sYXRpbGUgaW50ICopMHg4MDAw MDAwMCkgPSAwOworKwkqKCh2b2xhdGlsZSBpbnQgKikweDgwMDAwMDgwKSA9IDA7CisrCS8vKigo dm9sYXRpbGUgaW50ICopMHg5MDAwMDAwMCkgPSAwOworK30KKysvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKysgKiBSb3V0aW5lOiBib2FyZF9pbml0CisrICogRGVz Y3JpcHRpb246IEVhcmx5IGhhcmR3YXJlIGluaXQuCisrICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworK2ludCBib2FyZF9pbml0KHZvaWQpCisreworKwlyZXR1cm4g MDsKKyt9CisrCisrLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKysgKiBSb3V0aW5lOiBnZXRfbWVtX3R5cGUodm9pZCkgLSByZXR1 cm5zIHRoZSBraW5kIG9mIG1lbW9yeSBjb25uZWN0ZWQKKysgKiB0byBHUE1DIHRoYXQgd2UgYXJl IHRyeWluZyB0byBib290IGZvcm0uIFVzZXMgU1lTIEJPT1Qgc2V0dGluZ3MuCisrICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisr dTMyIGdldF9tZW1fdHlwZSh2b2lkKQorK3sKKysJLyogbm8gbmFuZCwgc28gcmV0dXJuIEdQTUNf Tk9ORSAqLworKwlyZXR1cm4gR1BNQ19OT05FOwkKKyt9CisrCisrLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisrICogUm91dGluZTogc2VjdXJlX3VubG9jaworKyAq IERlc2NyaXB0aW9uOiBTZXR1cCBzZWN1cml0eSByZWdpc3RlcnMgZm9yIGFjY2VzcworKyAqIChH UCBEZXZpY2Ugb25seSkKKysgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisrdm9pZCBzZWN1cmVfdW5sb2NrX21lbSh2b2lkKQorK3sKKysJLyogUGVybWlzc2lvbiB2 YWx1ZXMgZm9yIHJlZ2lzdGVycyAtRnVsbCBmbGVkZ2VkIHBlcm1pc3Npb25zIHRvIGFsbCAqLwor KwkjZGVmaW5lIFVOTE9DS18xIDB4RkZGRkZGRkYKKysJI2RlZmluZSBVTkxPQ0tfMiAweDAwMDAw MDAwCisrCSNkZWZpbmUgVU5MT0NLXzMgMHgwMDAwRkZGRgorKworKwkvKiBQcm90ZWN0aW9uIE1v ZHVsZSBSZWdpc3RlciBUYXJnZXQgQVBFIChQTV9SVCkqLworKwlfX3Jhd193cml0ZWwoVU5MT0NL XzEsIFJUX1JFUV9JTkZPX1BFUk1JU1NJT05fMSk7CisrCV9fcmF3X3dyaXRlbChVTkxPQ0tfMSwg UlRfUkVBRF9QRVJNSVNTSU9OXzApOworKwlfX3Jhd193cml0ZWwoVU5MT0NLXzEsIFJUX1dSSVRF X1BFUk1JU1NJT05fMCk7CisrCV9fcmF3X3dyaXRlbChVTkxPQ0tfMiwgUlRfQUREUl9NQVRDSF8x KTsKKysKKysJX19yYXdfd3JpdGVsKFVOTE9DS18zLCBHUE1DX1JFUV9JTkZPX1BFUk1JU1NJT05f MCk7CisrCV9fcmF3X3dyaXRlbChVTkxPQ0tfMywgR1BNQ19SRUFEX1BFUk1JU1NJT05fMCk7Cisr CV9fcmF3X3dyaXRlbChVTkxPQ0tfMywgR1BNQ19XUklURV9QRVJNSVNTSU9OXzApOworKworKwlf X3Jhd193cml0ZWwoVU5MT0NLXzMsIE9DTV9SRVFfSU5GT19QRVJNSVNTSU9OXzApOworKwlfX3Jh d193cml0ZWwoVU5MT0NLXzMsIE9DTV9SRUFEX1BFUk1JU1NJT05fMCk7CisrCV9fcmF3X3dyaXRl bChVTkxPQ0tfMywgT0NNX1dSSVRFX1BFUk1JU1NJT05fMCk7CisrCV9fcmF3X3dyaXRlbChVTkxP Q0tfMiwgT0NNX0FERFJfTUFUQ0hfMik7CisrCisrCS8qIElWQSBDaGFuZ2VzICovCisrCV9fcmF3 X3dyaXRlbChVTkxPQ0tfMywgSVZBMl9SRVFfSU5GT19QRVJNSVNTSU9OXzApOworKwlfX3Jhd193 cml0ZWwoVU5MT0NLXzMsIElWQTJfUkVBRF9QRVJNSVNTSU9OXzApOworKwlfX3Jhd193cml0ZWwo VU5MT0NLXzMsIElWQTJfV1JJVEVfUEVSTUlTU0lPTl8wKTsKKysKKysJX19yYXdfd3JpdGVsKFVO TE9DS18xLCBTTVNfUkdfQVRUMCk7IC8qIFNEUkMgcmVnaW9uIDAgcHVibGljICovCisrfQorKwor Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisrICogUm91dGluZTogdHJ5X3VubG9ja19zcmFtKCkKKysgKiBEZXNjcmlwdGlvbjogSWYg Y2hpcCBpcyBHUC9FTVUoc3BlY2lhbCkgdHlwZSwgdW5sb2NrIHRoZSBTUkFNIGZvcgorKyAqICBn ZW5lcmFsIHVzZS4KKysgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisrdm9pZCB0cnlfdW5sb2NrX21lbW9yeSh2b2lkKQorK3sKKysJ aW50IG1vZGU7CisrCisrCS8qIGlmIEdQIGRldmljZSB1bmxvY2sgZGV2aWNlIFNSQU0gZm9yIGdl bmVyYWwgdXNlICovCisrCS8qIHNlY3VyZSBjb2RlIGJyZWFrcyBmb3IgU2VjdXJlL0VtdWxhdGlv biBkZXZpY2UgLSBIUy9FL1QqLworKwlyZXR1cm47CisrfQorKworKworKyNpZiBkZWZpbmVkKENP TkZJR19NUFVfNjAwKSB8fCBkZWZpbmVkKENPTkZJR19NUFVfMTAwMCkKKytzdGF0aWMgc2NhbGVf dmNvcmVzKHZvaWQpCisreworKwl1bnNpZ25lZCBpbnQgcmV2ID0gb21hcF9yZXZpc2lvbigpOwor KwkvKiBGb3IgVkMgYnlwYXNzIG9ubHkgVkNPUkV4X0NHRl9GT1JDRSAgaXMgbmVjZXNzYXJ5IGFu ZAorKwkgKiBWQ09SRXhfQ0ZHX1ZPTFRBR0UgIGNoYW5nZXMgY2FuIGJlIGRpc2NhcmRlZAorKwkg Ki8KKysJLyogUFJNX1ZDX0NGR19JMkNfTU9ERSAqLworKwkqKHZvbGF0aWxlIGludCopKDB4NEEz MDdCQTgpID0gMHgwOworKwkvKiBQUk1fVkNfQ0ZHX0kyQ19DTEsgKi8KKysJKih2b2xhdGlsZSBp bnQqKSgweDRBMzA3QkFDKSA9IDB4NjAyNjsKKysKKysJLyogc2V0IFZDT1JFMSBmb3JjZSBWU0VM ICovCisrCS8qIFBSTV9WQ19WQUxfQllQQVNTKSAqLworKwlpZihyZXYgPT0gT01BUDQ0MzBfRVMx XzApCisrCQkqKHZvbGF0aWxlIGludCopKDB4NEEzMDdCQTApID0gMHgzQjU1MTI7CisrCWVsc2UK KysJCSoodm9sYXRpbGUgaW50KikoMHg0QTMwN0JBMCkgPSAweDNBNTUxMjsKKysKKysJKih2b2xh dGlsZSBpbnQqKSgweDRBMzA3QkEwKSB8PSAweDEwMDAwMDA7CisrCXdoaWxlKCgqKHZvbGF0aWxl IGludCopKDB4NEEzMDdCQTApKSAmIDB4MTAwMDAwMCk7CisrCisrCS8qIFBSTV9JUlFTVEFUVVNf TVBVICovCisrCSoodm9sYXRpbGUgaW50KikoMHg0QTMwNjAxMCkgPSAqKHZvbGF0aWxlIGludCop KDB4NEEzMDYwMTApOworKworKworKwkvKiBGSVhNRTogc2V0IFZDT1JFMiBmb3JjZSBWU0VMLCBD aGVjayB0aGUgcmVzZXQgdmFsdWUgKi8KKysJLyogUFJNX1ZDX1ZBTF9CWVBBU1MpICovCisrICAg ICAgICBpZihyZXYgPT0gT01BUDQ0MzBfRVMxXzApCisrCQkqKHZvbGF0aWxlIGludCopKDB4NEEz MDdCQTApID0gMHgzMTVCMTI7CisrCWVsc2UKKysJCSoodm9sYXRpbGUgaW50KikoMHg0QTMwN0JB MCkgPSAweDI5NUIxMjsKKysJKih2b2xhdGlsZSBpbnQqKSgweDRBMzA3QkEwKSB8PSAweDEwMDAw MDA7CisrCXdoaWxlKCgqKHZvbGF0aWxlIGludCopKDB4NEEzMDdCQTApKSAmIDB4MTAwMDAwMCk7 CisrCisrCS8qIFBSTV9JUlFTVEFUVVNfTVBVICovCisrCSoodm9sYXRpbGUgaW50KikoMHg0QTMw NjAxMCkgPSAqKHZvbGF0aWxlIGludCopKDB4NEEzMDYwMTApOworKworKwkvKi9zZXQgVkNPUkUz IGZvcmNlIFZTRUwgKi8KKysJLyogUFJNX1ZDX1ZBTF9CWVBBU1MgKi8KKysJaWYocmV2ID09IE9N QVA0NDMwX0VTMV8wKQorKwkJKih2b2xhdGlsZSBpbnQqKSgweDRBMzA3QkEwKSA9IDB4MzE2MTEy OworKwllbHNlIGlmIChyZXYgPT0gT01BUDQ0MzBfRVMyXzApCisrCQkqKHZvbGF0aWxlIGludCop KDB4NEEzMDdCQTApID0gMHgyOTYxMTI7CisrCWVsc2UgaWYgKHJldiA9PSBPTUFQNDQzMF9FUzJf MSkKKysJCSoodm9sYXRpbGUgaW50KikoMHg0QTMwN0JBMCkgPSAweDJBNjExMjsKKysJKih2b2xh dGlsZSBpbnQqKSgweDRBMzA3QkEwKSB8PSAweDEwMDAwMDA7CisrCXdoaWxlKCgqKHZvbGF0aWxl IGludCopKDB4NEEzMDdCQTApKSAmIDB4MTAwMDAwMCk7CisrCisrCS8qIFBSTV9JUlFTVEFUVVNf TVBVICovCisrCSoodm9sYXRpbGUgaW50KikoMHg0QTMwNjAxMCkgPSAqKHZvbGF0aWxlIGludCop KDB4NEEzMDYwMTApOworKworK30KKysjZW5kaWYKKysKKysvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyAqIFJvdXRpbmU6IHNfaW5p dAorKyAqIERlc2NyaXB0aW9uOiBEb2VzIGVhcmx5IHN5c3RlbSBpbml0IG9mIG11eGluZyBhbmQg Y2xvY2tzLgorKyAqIC0gQ2FsbGVkIHBhdGggaXMgd2l0aCBTUkFNIHN0YWNrLgorKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworKwor K3ZvaWQgc19pbml0KHZvaWQpCisreworKwl1bnNpZ25lZCBpbnQgcmV2ID0gb21hcF9yZXZpc2lv bigpOworKworKwlzZXRfbXV4Y29uZl9yZWdzKCk7CisrCWRlbGF5KDEwMCk7CisrCisrCS8qIFdy aXRpbmcgdG8gQXV4Q1IgaW4gVS1ib290IHVzaW5nIFNNSSBmb3IgR1AvRU1VIERFViAqLworKwkv KiBDdXJyZW50bHkgU01JIGluIEtlcm5lbCBvbiBFUzIgZGV2aWNlcyBzZWVtcyB0byBoYXZlIGFu IGlzc2UKKysJICogT25jZSB0aGF0IGlzIHJlc29sdmVkLCB3ZSBjYW4gcG9zdHBvbmUgdGhpcyBj b25maWcgdG8ga2VybmVsCisrCSAqLworKwkvL3NldHVwX2F1eGNyKGdldF9kZXZpY2VfdHlwZSgp LCBleHRlcm5hbF9ib290KTsKKysKKysJZGRyX2luaXQoKTsKKysKKysvKiBTZXQgVkNPUkUxID0g MS4zIFYsIFZDT1JFMiA9IFZDT1JFMyA9IDEuMjFWICovCisrI2lmIGRlZmluZWQoQ09ORklHX01Q VV82MDApIHx8IGRlZmluZWQoQ09ORklHX01QVV8xMDAwKQorKwlzY2FsZV92Y29yZXMoKTsKKysj ZW5kaWYJCisrCXByY21faW5pdCgpOworKworKwlpZihyZXYgIT0gT01BUDQ0MzBfRVMxXzApIHsK KysJCWlmIChfX3Jhd19yZWFkbCgweDQ4MDVEMTM4KSAmICgxPDwyMikpIHsKKysJCQlzcjMyKDB4 NEEzMGEzMUMsIDgsIDEsIDB4MSk7ICAvKiBlbmFibGUgc29mdHdhcmUgaW9yZXEgKi8KKysJCQlz cjMyKDB4NEEzMGEzMUMsIDEsIDIsIDB4MCk7ICAvKiBzZXQgZm9yIHN5c19jbGsgKDM4LjRNSHop ICovCisrCQkJc3IzMigweDRBMzBhMzFDLCAxNiwgNCwgMHgxKTsgLyogc2V0IGRpdmlzb3IgdG8g MiAqLworKwkJCXNyMzIoMHg0QTMwYTExMCwgMCwgMSwgMHgxKTsgIC8qIHNldCB0aGUgY2xvY2sg c291cmNlIHRvIGFjdGl2ZSAqLworKwkJCXNyMzIoMHg0QTMwYTExMCwgMiwgMiwgMHgzKTsgIC8q IGVuYWJsZSBjbG9ja3MgKi8KKysJCX0KKysJCWVsc2UgeworKwkJCXNyMzIoMHg0QTMwYTMxNCwg OCwgMSwgMHgxKTsgLyogZW5hYmxlIHNvZnR3YXJlIGlvcmVxICovCisrCQkJc3IzMigweDRBMzBh MzE0LCAxLCAyLCAweDIpOyAvKiBzZXQgZm9yIFBFUl9EUExMICovCisrCQkJc3IzMigweDRBMzBh MzE0LCAxNiwgNCwgMHhmKTsgLyogc2V0IGRpdmlzb3IgdG8gMTYgKi8KKysJCQlzcjMyKDB4NEEz MGExMTAsIDAsIDEsIDB4MSk7IC8qIHNldCB0aGUgY2xvY2sgc291cmNlIHRvIGFjdGl2ZSAqLwor KwkJCXNyMzIoMHg0QTMwYTExMCwgMiwgMiwgMHgzKTsgLyogZW5hYmxlIGNsb2NrcyAqLworKwkJ fQorKwl9CisrCisrfQorKworKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisrICogUm91dGluZTogbWlzY19pbml0X3IKKysgKiBEZXNjcmlw dGlvbjogSW5pdCBldGhlcm5ldCAoZG9uZSBoZXJlIHNvIHVkZWxheSB3b3JrcykKKysgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisraW50 IG1pc2NfaW5pdF9yKHZvaWQpCisreworKwlyZXR1cm4gMDsKKyt9CisrCisrLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyAqIFJvdXRpbmU6 IHdhaXRfZm9yX2NvbW1hbmRfY29tcGxldGUKKysgKiBEZXNjcmlwdGlvbjogV2FpdCBmb3IgcG9z dGluZyB0byBmaW5pc2ggb24gd2F0Y2hkb2cKKysgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworK3ZvaWQgd2FpdF9mb3JfY29tbWFuZF9jb21w bGV0ZSh1bnNpZ25lZCBpbnQgd2RfYmFzZSkKKyt7CisrCWludCBwZW5kaW5nID0gMTsKKysJZG8g eworKwkJcGVuZGluZyA9IF9fcmF3X3JlYWRsKHdkX2Jhc2UgKyBXV1BTKTsKKysJfSB3aGlsZSAo cGVuZGluZyk7CisrfQorKworKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrICogUm91dGluZTpldGhlcl9pbml0Cisr ICogRGVzY3JpcHRpb246IHRha2UgdGhlIEV0aGVybmV0IGNvbnRyb2xsZXIgb3V0IG9mIHJlc2V0 IGFuZCB3YWl0CisrICogIAkJICAgZm9yIHRoZSBFRVBST00gbG9hZCB0byBjb21wbGV0ZS4KKysg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworKworKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrICogUm91dGluZTogZHJhbV9pbml0CisrICogRGVzY3JpcHRpb246IHNldHMgdWJv b3RzIGlkZWEgb2Ygc2RyYW0gc2l6ZQorKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworK2ludCBkcmFtX2luaXQodm9pZCkKKyt7CisrCXJldHVybiAwOwor K30KKysKKysjZGVmaW5lCQlPTUFQNDRYWF9XS1VQX0NUUkxfQkFTRQkJMHg0QTMxRTAwMCAKKysj aWYgMQorKyNkZWZpbmUgTTBfU0FGRSBNMAorKyNkZWZpbmUgTTFfU0FGRSBNMQorKyNkZWZpbmUg TTJfU0FGRSBNMgorKyNkZWZpbmUgTTRfU0FGRSBNNAorKyNkZWZpbmUgTTdfU0FGRSBNNworKyNk ZWZpbmUgTTNfU0FGRSBNMworKyNkZWZpbmUgTTVfU0FGRSBNNQorKyNkZWZpbmUgTTZfU0FGRSBN NgorKyNlbHNlCisrI2RlZmluZSBNMF9TQUZFIE03CisrI2RlZmluZSBNMV9TQUZFIE03CisrI2Rl ZmluZSBNMl9TQUZFIE03CisrI2RlZmluZSBNNF9TQUZFIE03CisrI2RlZmluZSBNN19TQUZFIE03 CisrI2RlZmluZSBNM19TQUZFIE03CisrI2RlZmluZSBNNV9TQUZFIE03CisrI2RlZmluZSBNNl9T QUZFIE03CisrI2VuZGlmCisrI2RlZmluZQkJTVYoT0ZGU0VULCBWQUxVRSlcCisrCQkJX19yYXdf d3JpdGV3KChWQUxVRSksIE9NQVA0NFhYX0NUUkxfQkFTRSArIChPRkZTRVQpKTsKKysjZGVmaW5l CQlNVjEoT0ZGU0VULCBWQUxVRSlcCisrCQkJX19yYXdfd3JpdGV3KChWQUxVRSksIE9NQVA0NFhY X1dLVVBfQ1RSTF9CQVNFICsgKE9GRlNFVCkpOworKworKyNkZWZpbmUJCUNQKHgpCShDT05UUk9M X1BBRENPTkZfIyN4KQorKyNkZWZpbmUJCVdLKHgpCShDT05UUk9MX1dLVVBfIyN4KQorKy8qCisr ICogSUVOICAtIElucHV0IEVuYWJsZQorKyAqIElESVMgLSBJbnB1dCBEaXNhYmxlCisrICogUFRE ICAtIFB1bGwgdHlwZSBEb3duCisrICogUFRVICAtIFB1bGwgdHlwZSBVcAorKyAqIERJUyAgLSBQ dWxsIHR5cGUgc2VsZWN0aW9uIGlzIGluYWN0aXZlCisrICogRU4gICAtIFB1bGwgdHlwZSBzZWxl Y3Rpb24gaXMgYWN0aXZlCisrICogTTAgICAtIE1vZGUgMAorKyAqIFRoZSBjb21tZW50ZWQgc3Ry aW5nIGdpdmVzIHRoZSBmaW5hbCBtdXggY29uZmlndXJhdGlvbiBmb3IgdGhhdCBwaW4KKysgKi8K KysKKysjZGVmaW5lIE1VWF9ERUZBVUxUX09NQVA0KCkgXAorKwlNVihDUChHUE1DX0FEMCkgLCAo IFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0xKSkgIC8qIHNkbW1jMl9k YXQwICovIFwKKysJTVYoQ1AoR1BNQ19BRDEpICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZf UEQgfCBPRkZfSU4gfCBNMSkpICAvKiBzZG1tYzJfZGF0MSAqLyBcCisrCU1WKENQKEdQTUNfQUQy KSAsICggUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAgLyogc2Rt bWMyX2RhdDIgKi8gXAorKwlNVihDUChHUE1DX0FEMykgLCAoIFBUVSB8IElFTiB8IE9GRl9FTiB8 IE9GRl9QRCB8IE9GRl9JTiB8IE0xKSkgIC8qIHNkbW1jMl9kYXQzICovIFwKKysJTVYoQ1AoR1BN Q19BRDQpICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpICAv KiBzZG1tYzJfZGF0NCAqLyBcCisrCU1WKENQKEdQTUNfQUQ1KSAsICggUFRVIHwgSUVOIHwgT0ZG X0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAgLyogc2RtbWMyX2RhdDUgKi8gXAorKwlNVihD UChHUE1DX0FENikgLCAoIFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0x KSkgIC8qIHNkbW1jMl9kYXQ2ICovIFwKKysJTVYoQ1AoR1BNQ19BRDcpICwgKCBQVFUgfCBJRU4g fCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpICAvKiBzZG1tYzJfZGF0NyAqLyBcCisr CU1WKENQKEdQTUNfQUQ4KSAsICggUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lO IHwgTTMpKSAgLyogZ3Bpb18zMiAqLyBcCisrCU1WKENQKEdQTUNfQUQ5KSAsICggUFRVIHwgSUVO IHwgTTMpKSAgLyogZ3Bpb18zMyAqLyBcCisrCU1WKENQKEdQTUNfQUQxMCkgLCAoIFBUVSB8IElF TiB8IE0zKSkgIC8qIGdwaW9fMzQgKi8gXAorKwlNVihDUChHUE1DX0FEMTEpICwgKCBQVFUgfCBJ RU4gfCBNMykpICAvKiBncGlvXzM1ICovIFwKKysJTVYoQ1AoR1BNQ19BRDEyKSAsICggUFRVIHwg SUVOIHwgTTMpKSAgLyogZ3Bpb18zNiAqLyBcCisrCU1WKENQKEdQTUNfQUQxMykgLCAoIFBURCB8 IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9PVVRfUFREIHwgTTMpKSAgLyogZ3Bpb18zNyAqLyBcCisr CU1WKENQKEdQTUNfQUQxNCkgLCAoIFBURCB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9PVVRfUFRE IHwgTTMpKSAgLyogZ3Bpb18zOCAqLyBcCisrCU1WKENQKEdQTUNfQUQxNSkgLCAoIFBURCB8IE9G Rl9FTiB8IE9GRl9QRCB8IE9GRl9PVVRfUFREIHwgTTMpKSAgLyogZ3Bpb18zOSAqLyBcCisrCU1W KENQKEdQTUNfQTE2KSAsICggTTMpKSAgLyogZ3Bpb180MCAqLyBcCisrCU1WKENQKEdQTUNfQTE3 KSAsICggUFREIHwgTTMpKSAgLyogZ3Bpb180MSAqLyBcCisrCU1WKENQKEdQTUNfQTE4KSAsICgg UFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAgLyoga3BkX3JvdzYg Ki8gXAorKwlNVihDUChHUE1DX0ExOSkgLCAoIFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8 IE9GRl9JTiB8IE0xKSkgIC8qIGtwZF9yb3c3ICovIFwKKysJTVYoQ1AoR1BNQ19BMjApICwgKCBJ RU4gfCBNMykpICAvKiBncGlvXzQ0ICovIFwKKysJTVYoQ1AoR1BNQ19BMjEpICwgKCBNMykpICAv KiBncGlvXzQ1ICovIFwKKysJTVYoQ1AoR1BNQ19BMjIpICwgKCBNMykpICAvKiBncGlvXzQ2ICov IFwKKysJTVYoQ1AoR1BNQ19BMjMpICwgKCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkp ICAvKiBrcGRfY29sNyAqLyBcCisrCU1WKENQKEdQTUNfQTI0KSAsICggUFREIHwgTTMpKSAgLyog Z3Bpb180OCAqLyBcCisrCU1WKENQKEdQTUNfQTI1KSAsICggUFREIHwgTTMpKSAgLyogZ3Bpb180 OSAqLyBcCisrCU1WKENQKEdQTUNfTkNTMCkgLCAoIE0zKSkgIC8qIGdwaW9fNTAgKi8gXAorKwlN VihDUChHUE1DX05DUzEpICwgKCBJRU4gfCBNMykpICAvKiBncGlvXzUxICovIFwKKysJTVYoQ1Ao R1BNQ19OQ1MyKSAsICggSUVOIHwgTTMpKSAgLyogZ3Bpb181MiAqLyBcCisrCU1WKENQKEdQTUNf TkNTMykgLCAoIElFTiB8IE0zKSkgIC8qIGdwaW9fNTMgKi8gXAorKwlNVihDUChHUE1DX05XUCkg LCAoIE0zKSkgIC8qIGdwaW9fNTQgKi8gXAorKwlNVihDUChHUE1DX0NMSykgLCAoIFBURCB8IE0z KSkgIC8qIGdwaW9fNTUgKi8gXAorKwlNVihDUChHUE1DX05BRFZfQUxFKSAsICggTTMpKSAgLyog Z3Bpb181NiAqLyBcCisrCU1WKENQKEdQTUNfTk9FKSAsICggUFRVIHwgSUVOIHwgT0ZGX0VOIHwg T0ZGX09VVF9QVEQgfCBNMSkpICAvKiBzZG1tYzJfY2xrICovIFwKKysJTVYoQ1AoR1BNQ19OV0Up ICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpICAvKiBzZG1t YzJfY21kICovIFwKKysJTVYoQ1AoR1BNQ19OQkUwX0NMRSkgLCAoIE0zKSkgIC8qIGdwaW9fNTkg Ki8gXAorKwlNVihDUChHUE1DX05CRTEpICwgKCBQVEQgfCBNMykpICAvKiBncGlvXzYwICovIFwK KysJTVYoQ1AoR1BNQ19XQUlUMCkgLCAoIFBUVSB8IElFTiB8IE0zKSkgIC8qIGdwaW9fNjEgKi8g XAorKwlNVihDUChHUE1DX1dBSVQxKSwJKFBURCB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9PVVRf UFREIHwgTTMpKSAvKiBncGlvXzYyICovIFwKKysJTVYoQ1AoQzJDX0RBVEExMSkgLCAoIFBURCB8 IE0zKSkgIC8qIGdwaW9fMTAwICovIFwKKysJTVYoQ1AoQzJDX0RBVEExMikgLCAoIFBURCB8IElF TiB8IE0zKSkgIC8qIGdwaW9fMTAxICovIFwKKysJTVYoQ1AoQzJDX0RBVEExMykgLCAoIFBURCB8 IE0zKSkgIC8qIGdwaW9fMTAyICovIFwKKysJTVYoQ1AoQzJDX0RBVEExNCkgLCAoIE0xKSkgIC8q IGRzaTJfdGUwICovIFwKKysJTVYoQ1AoQzJDX0RBVEExNSkgLCAoIFBURCB8IE0zKSkgIC8qIGdw aW9fMTA0ICovIFwKKysJTVYoQ1AoSERNSV9IUEQpICwgKCBNMCkpICAvKiBoZG1pX2hwZCAqLyBc CisrCU1WKENQKEhETUlfQ0VDKSAsICggTTApKSAgLyogaGRtaV9jZWMgKi8gXAorKwlNVihDUChI RE1JX0REQ19TQ0wpICwgKCBQVFUgfCBNMCkpICAvKiBoZG1pX2RkY19zY2wgKi8gXAorKwlNVihD UChIRE1JX0REQ19TREEpICwgKCBQVFUgfCBJRU4gfCBNMCkpICAvKiBoZG1pX2RkY19zZGEgKi8g XAorKwlNVihDUChDU0kyMV9EWDApICwgKCBJRU4gfCBNMCkpICAvKiBjc2kyMV9keDAgKi8gXAor KwlNVihDUChDU0kyMV9EWTApICwgKCBJRU4gfCBNMCkpICAvKiBjc2kyMV9keTAgKi8gXAorKwlN VihDUChDU0kyMV9EWDEpICwgKCBJRU4gfCBNMCkpICAvKiBjc2kyMV9keDEgKi8gXAorKwlNVihD UChDU0kyMV9EWTEpICwgKCBJRU4gfCBNMCkpICAvKiBjc2kyMV9keTEgKi8gXAorKwlNVihDUChD U0kyMV9EWDIpICwgKCBJRU4gfCBNMCkpICAvKiBjc2kyMV9keDIgKi8gXAorKwlNVihDUChDU0ky MV9EWTIpICwgKCBJRU4gfCBNMCkpICAvKiBjc2kyMV9keTIgKi8gXAorKwlNVihDUChDU0kyMV9E WDMpICwgKCBQVEQgfCBNNykpICAvKiBjc2kyMV9keDMgKi8gXAorKwlNVihDUChDU0kyMV9EWTMp ICwgKCBQVEQgfCBNNykpICAvKiBjc2kyMV9keTMgKi8gXAorKwlNVihDUChDU0kyMV9EWDQpICwg KCBQVEQgfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNNykpICAvKiBjc2kyMV9keDQgKi8g XAorKwlNVihDUChDU0kyMV9EWTQpICwgKCBQVEQgfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4g fCBNNykpICAvKiBjc2kyMV9keTQgKi8gXAorKwlNVihDUChDU0kyMl9EWDApICwgKCBJRU4gfCBN MCkpICAvKiBjc2kyMl9keDAgKi8gXAorKwlNVihDUChDU0kyMl9EWTApICwgKCBJRU4gfCBNMCkp ICAvKiBjc2kyMl9keTAgKi8gXAorKwlNVihDUChDU0kyMl9EWDEpICwgKCBJRU4gfCBNMCkpICAv KiBjc2kyMl9keDEgKi8gXAorKwlNVihDUChDU0kyMl9EWTEpICwgKCBJRU4gfCBNMCkpICAvKiBj c2kyMl9keTEgKi8gXAorKwlNVihDUChDQU1fU0hVVFRFUikgLCAoIE9GRl9FTiB8IE9GRl9QRCB8 IE9GRl9PVVRfUFREIHwgTTApKSAgLyogY2FtX3NodXR0ZXIgKi8gXAorKwlNVihDUChDQU1fU1RS T0JFKSAsICggT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX09VVF9QVEQgfCBNMCkpICAvKiBjYW1fc3Ry b2JlICovIFwKKysJTVYoQ1AoQ0FNX0dMT0JBTFJFU0VUKSAsICggUFREIHwgT0ZGX0VOIHwgT0ZG X1BEIHwgT0ZGX09VVF9QVEQgfCBNMykpICAvKiBncGlvXzgzICovIFwKKysJTVYoQ1AoVVNCQjFf VUxQSVRMTF9DTEspICwgKCBQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBN NCkpICAvKiB1c2JiMV91bHBpcGh5X2NsayAqLyBcCisrCU1WKENQKFVTQkIxX1VMUElUTExfU1RQ KSAsICggT0ZGX0VOIHwgT0ZGX09VVF9QVEQgfCBNNCkpICAvKiB1c2JiMV91bHBpcGh5X3N0cCAq LyBcCisrCU1WKENQKFVTQkIxX1VMUElUTExfRElSKSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BE IHwgT0ZGX0lOIHwgTTQpKSAgLyogdXNiYjFfdWxwaXBoeV9kaXIgKi8gXAorKwlNVihDUChVU0JC MV9VTFBJVExMX05YVCkgLCAoIElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE00KSkg IC8qIHVzYmIxX3VscGlwaHlfbnh0ICovIFwKKysJTVYoQ1AoVVNCQjFfVUxQSVRMTF9EQVQwKSAs ICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAgLyogdXNiYjFfdWxwaXBo eV9kYXQwICovIFwKKysJTVYoQ1AoVVNCQjFfVUxQSVRMTF9EQVQxKSAsICggSUVOIHwgT0ZGX0VO IHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAgLyogdXNiYjFfdWxwaXBoeV9kYXQxICovIFwKKysJ TVYoQ1AoVVNCQjFfVUxQSVRMTF9EQVQyKSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZG X0lOIHwgTTQpKSAgLyogdXNiYjFfdWxwaXBoeV9kYXQyICovIFwKKysJTVYoQ1AoVVNCQjFfVUxQ SVRMTF9EQVQzKSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAgLyog dXNiYjFfdWxwaXBoeV9kYXQzICovIFwKKysJTVYoQ1AoVVNCQjFfVUxQSVRMTF9EQVQ0KSAsICgg SUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAgLyogdXNiYjFfdWxwaXBoeV9k YXQ0ICovIFwKKysJTVYoQ1AoVVNCQjFfVUxQSVRMTF9EQVQ1KSAsICggSUVOIHwgT0ZGX0VOIHwg T0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAgLyogdXNiYjFfdWxwaXBoeV9kYXQ1ICovIFwKKysJTVYo Q1AoVVNCQjFfVUxQSVRMTF9EQVQ2KSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lO IHwgTTQpKSAgLyogdXNiYjFfdWxwaXBoeV9kYXQ2ICovIFwKKysJTVYoQ1AoVVNCQjFfVUxQSVRM TF9EQVQ3KSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAgLyogdXNi YjFfdWxwaXBoeV9kYXQ3ICovIFwKKysJTVYoQ1AoVVNCQjFfSFNJQ19EQVRBKSAsICggSUVOIHwg T0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogdXNiYjFfaHNpY19kYXRhICovIFwK KysJTVYoQ1AoVVNCQjFfSFNJQ19TVFJPQkUpICwgKCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBP RkZfSU4gfCBNMCkpICAvKiB1c2JiMV9oc2ljX3N0cm9iZSAqLyBcCisrCU1WKENQKFVTQkMxX0lD VVNCX0RQKSAsICggSUVOIHwgTTApKSAgLyogdXNiYzFfaWN1c2JfZHAgKi8gXAorKwlNVihDUChV U0JDMV9JQ1VTQl9ETSkgLCAoIElFTiB8IE0wKSkgIC8qIHVzYmMxX2ljdXNiX2RtICovIFwKKysJ TVYoQ1AoU0RNTUMxX0NMSykgLCAoIFBUVSB8IE9GRl9FTiB8IE9GRl9PVVRfUFREIHwgTTApKSAg Lyogc2RtbWMxX2NsayAqLyBcCisrCU1WKENQKFNETU1DMV9DTUQpICwgKCBQVFUgfCBJRU4gfCBP RkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpICAvKiBzZG1tYzFfY21kICovIFwKKysJTVYo Q1AoU0RNTUMxX0RBVDApICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4g fCBNMCkpICAvKiBzZG1tYzFfZGF0MCAqLyBcCisrCU1WKENQKFNETU1DMV9EQVQxKSAsICggUFRV IHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogc2RtbWMxX2RhdDEg Ki8gXAorKwlNVihDUChTRE1NQzFfREFUMikgLCAoIFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9Q RCB8IE9GRl9JTiB8IE0wKSkgIC8qIHNkbW1jMV9kYXQyICovIFwKKysJTVYoQ1AoU0RNTUMxX0RB VDMpICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpICAvKiBz ZG1tYzFfZGF0MyAqLyBcCisrCU1WKENQKFNETU1DMV9EQVQ0KSAsICggUFRVIHwgSUVOIHwgT0ZG X0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogc2RtbWMxX2RhdDQgKi8gXAorKwlNVihD UChTRE1NQzFfREFUNSkgLCAoIFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8 IE0wKSkgIC8qIHNkbW1jMV9kYXQ1ICovIFwKKysJTVYoQ1AoU0RNTUMxX0RBVDYpICwgKCBQVFUg fCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpICAvKiBzZG1tYzFfZGF0NiAq LyBcCisrCU1WKENQKFNETU1DMV9EQVQ3KSAsICggUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BE IHwgT0ZGX0lOIHwgTTApKSAgLyogc2RtbWMxX2RhdDcgKi8gXAorKwlNVihDUChBQkVfTUNCU1Ay X0NMS1gpICwgKCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpICAvKiBhYmVf bWNic3AyX2Nsa3ggKi8gXAorKwlNVihDUChBQkVfTUNCU1AyX0RSKSAsICggSUVOIHwgT0ZGX0VO IHwgT0ZGX09VVF9QVEQgfCBNMCkpICAvKiBhYmVfbWNic3AyX2RyICovIFwKKysJTVYoQ1AoQUJF X01DQlNQMl9EWCkgLCAoIE9GRl9FTiB8IE9GRl9PVVRfUFREIHwgTTApKSAgLyogYWJlX21jYnNw Ml9keCAqLyBcCisrCU1WKENQKEFCRV9NQ0JTUDJfRlNYKSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZG X1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogYWJlX21jYnNwMl9mc3ggKi8gXAorKwlNVihDUChBQkVf TUNCU1AxX0NMS1gpICwgKCBJRU4gfCBNMSkpICAvKiBhYmVfc2xpbWJ1czFfY2xvY2sgKi8gXAor KwlNVihDUChBQkVfTUNCU1AxX0RSKSAsICggSUVOIHwgTTEpKSAgLyogYWJlX3NsaW1idXMxX2Rh dGEgKi8gXAorKwlNVihDUChBQkVfTUNCU1AxX0RYKSAsICggT0ZGX0VOIHwgT0ZGX09VVF9QVEQg fCBNMCkpICAvKiBhYmVfbWNic3AxX2R4ICovIFwKKysJTVYoQ1AoQUJFX01DQlNQMV9GU1gpICwg KCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpICAvKiBhYmVfbWNic3AxX2Zz eCAqLyBcCisrCU1WKENQKEFCRV9QRE1fVUxfREFUQSkgLCAoIFBURCB8IElFTiB8IE9GRl9FTiB8 IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkgIC8qIGFiZV9wZG1fdWxfZGF0YSAqLyBcCisrCU1WKENQ KEFCRV9QRE1fRExfREFUQSkgLCAoIFBURCB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9J TiB8IE0wKSkgIC8qIGFiZV9wZG1fZGxfZGF0YSAqLyBcCisrCU1WKENQKEFCRV9QRE1fRlJBTUUp ICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpICAvKiBhYmVf cGRtX2ZyYW1lICovIFwKKysJTVYoQ1AoQUJFX1BETV9MQl9DTEspICwgKCBQVEQgfCBJRU4gfCBP RkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpICAvKiBhYmVfcGRtX2xiX2NsayAqLyBcCisr CU1WKENQKEFCRV9DTEtTKSAsICggUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lO IHwgTTApKSAgLyogYWJlX2Nsa3MgKi8gXAorKwlNVihDUChBQkVfRE1JQ19DTEsxKSAsICggTTAp KSAgLyogYWJlX2RtaWNfY2xrMSAqLyBcCisrCU1WKENQKEFCRV9ETUlDX0RJTjEpICwgKCBJRU4g fCBNMCkpICAvKiBhYmVfZG1pY19kaW4xICovIFwKKysJTVYoQ1AoQUJFX0RNSUNfRElOMikgLCAo IElFTiB8IE0wKSkgIC8qIGFiZV9kbWljX2RpbjIgKi8gXAorKwlNVihDUChBQkVfRE1JQ19ESU4z KSAsICggSUVOIHwgTTApKSAgLyogYWJlX2RtaWNfZGluMyAqLyBcCisrCU1WKENQKFVBUlQyX0NU UykgLCAoIFBUVSB8IElFTiB8IE0wKSkgIC8qIHVhcnQyX2N0cyAqLyBcCisrCU1WKENQKFVBUlQy X1JUUykgLCAoIE0wKSkgIC8qIHVhcnQyX3J0cyAqLyBcCisrCU1WKENQKFVBUlQyX1JYKSAsICgg UFRVIHwgSUVOIHwgTTApKSAgLyogdWFydDJfcnggKi8gXAorKwlNVihDUChVQVJUMl9UWCkgLCAo IE0wKSkgIC8qIHVhcnQyX3R4ICovIFwKKysJTVYoQ1AoSERRX1NJTykgLCAoIE0zKSkgIC8qIGdw aW9fMTI3ICovIFwKKysJTVYoQ1AoSTJDMV9TQ0wpICwgKCBQVFUgfCBJRU4gfCBNMCkpICAvKiBp MmMxX3NjbCAqLyBcCisrCU1WKENQKEkyQzFfU0RBKSAsICggUFRVIHwgSUVOIHwgTTApKSAgLyog aTJjMV9zZGEgKi8gXAorKwlNVihDUChJMkMyX1NDTCkgLCAoIFBUVSB8IElFTiB8IE0wKSkgIC8q IGkyYzJfc2NsICovIFwKKysJTVYoQ1AoSTJDMl9TREEpICwgKCBQVFUgfCBJRU4gfCBNMCkpICAv KiBpMmMyX3NkYSAqLyBcCisrCU1WKENQKEkyQzNfU0NMKSAsICggUFRVIHwgSUVOIHwgTTApKSAg LyogaTJjM19zY2wgKi8gXAorKwlNVihDUChJMkMzX1NEQSkgLCAoIFBUVSB8IElFTiB8IE0wKSkg IC8qIGkyYzNfc2RhICovIFwKKysJTVYoQ1AoSTJDNF9TQ0wpICwgKCBQVFUgfCBJRU4gfCBNMCkp ICAvKiBpMmM0X3NjbCAqLyBcCisrCU1WKENQKEkyQzRfU0RBKSAsICggUFRVIHwgSUVOIHwgTTAp KSAgLyogaTJjNF9zZGEgKi8gXAorKwlNVihDUChNQ1NQSTFfQ0xLKSAsICggSUVOIHwgT0ZGX0VO IHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogbWNzcGkxX2NsayAqLyBcCisrCU1WKENQKE1D U1BJMV9TT01JKSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAgLyog bWNzcGkxX3NvbWkgKi8gXAorKwlNVihDUChNQ1NQSTFfU0lNTykgLCAoIElFTiB8IE9GRl9FTiB8 IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkgIC8qIG1jc3BpMV9zaW1vICovIFwKKysJTVYoQ1AoTUNT UEkxX0NTMCkgLCAoIFBURCB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkg IC8qIG1jc3BpMV9jczAgKi8gXAorKwlNVihDUChNQ1NQSTFfQ1MxKSAsICggUFREIHwgSUVOIHwg T0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTMpKSAgLyogbWNzcGkxX2NzMSAqLyBcCisrCU1W KENQKE1DU1BJMV9DUzIpICwgKCBQVFUgfCBPRkZfRU4gfCBPRkZfT1VUX1BUVSB8IE0zKSkgIC8q IGdwaW9fMTM5ICovIFwKKysJTVYoQ1AoTUNTUEkxX0NTMykgLCAoIFBUVSB8IElFTiB8IE0zKSkg IC8qIGdwaW9fMTQwICovIFwKKysJTVYoQ1AoVUFSVDNfQ1RTX1JDVFgpICwgKCBQVFUgfCBJRU4g fCBNMCkpICAvKiB1YXJ0M190eCAqLyBcCisrCU1WKENQKFVBUlQzX1JUU19TRCkgLCAoIE0wKSkg IC8qIHVhcnQzX3J0c19zZCAqLyBcCisrCU1WKENQKFVBUlQzX1JYX0lSUlgpICwgKCBJRU4gfCBN MCkpICAvKiB1YXJ0M19yeCAqLyBcCisrCU1WKENQKFVBUlQzX1RYX0lSVFgpICwgKCBNMCkpICAv KiB1YXJ0M190eCAqLyBcCisrCU1WKENQKFNETU1DNV9DTEspICwgKCBQVFUgfCBJRU4gfCBPRkZf RU4gfCBPRkZfT1VUX1BURCB8IE0wKSkgIC8qIHNkbW1jNV9jbGsgKi8gXAorKwlNVihDUChTRE1N QzVfQ01EKSAsICggUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAg Lyogc2RtbWM1X2NtZCAqLyBcCisrCU1WKENQKFNETU1DNV9EQVQwKSAsICggUFRVIHwgSUVOIHwg T0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogc2RtbWM1X2RhdDAgKi8gXAorKwlN VihDUChTRE1NQzVfREFUMSkgLCAoIFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9J TiB8IE0wKSkgIC8qIHNkbW1jNV9kYXQxICovIFwKKysJTVYoQ1AoU0RNTUM1X0RBVDIpICwgKCBQ VFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpICAvKiBzZG1tYzVfZGF0 MiAqLyBcCisrCU1WKENQKFNETU1DNV9EQVQzKSAsICggUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZG X1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogc2RtbWM1X2RhdDMgKi8gXAorKwlNVihDUChNQ1NQSTRf Q0xLKSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogbWNzcGk0 X2NsayAqLyBcCisrCU1WKENQKE1DU1BJNF9TSU1PKSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BE IHwgT0ZGX0lOIHwgTTApKSAgLyogbWNzcGk0X3NpbW8gKi8gXAorKwlNVihDUChNQ1NQSTRfU09N SSkgLCAoIElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkgIC8qIG1jc3BpNF9z b21pICovIFwKKysJTVYoQ1AoTUNTUEk0X0NTMCkgLCAoIFBURCB8IElFTiB8IE9GRl9FTiB8IE9G Rl9QRCB8IE9GRl9JTiB8IE0wKSkgIC8qIG1jc3BpNF9jczAgKi8gXAorKwlNVihDUChVQVJUNF9S WCkgLCAoIElFTiB8IE0wKSkgIC8qIHVhcnQ0X3J4ICovIFwKKysJTVYoQ1AoVUFSVDRfVFgpICwg KCBNMCkpICAvKiB1YXJ0NF90eCAqLyBcCisrCU1WKENQKFVTQkIyX1VMUElUTExfQ0xLKSAsICgg SUVOIHwgTTMpKSAgLyogZ3Bpb18xNTcgKi8gXAorKwlNVihDUChVU0JCMl9VTFBJVExMX1NUUCkg LCAoIElFTiB8IE01KSkgIC8qIGRpc3BjMl9kYXRhMjMgKi8gXAorKwlNVihDUChVU0JCMl9VTFBJ VExMX0RJUikgLCAoIElFTiB8IE01KSkgIC8qIGRpc3BjMl9kYXRhMjIgKi8gXAorKwlNVihDUChV U0JCMl9VTFBJVExMX05YVCkgLCAoIElFTiB8IE01KSkgIC8qIGRpc3BjMl9kYXRhMjEgKi8gXAor KwlNVihDUChVU0JCMl9VTFBJVExMX0RBVDApICwgKCBJRU4gfCBNNSkpICAvKiBkaXNwYzJfZGF0 YTIwICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQSVRMTF9EQVQxKSAsICggSUVOIHwgTTUpKSAgLyog ZGlzcGMyX2RhdGExOSAqLyBcCisrCU1WKENQKFVTQkIyX1VMUElUTExfREFUMikgLCAoIElFTiB8 IE01KSkgIC8qIGRpc3BjMl9kYXRhMTggKi8gXAorKwlNVihDUChVU0JCMl9VTFBJVExMX0RBVDMp ICwgKCBJRU4gfCBNNSkpICAvKiBkaXNwYzJfZGF0YTE1ICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQ SVRMTF9EQVQ0KSAsICggSUVOIHwgTTUpKSAgLyogZGlzcGMyX2RhdGExNCAqLyBcCisrCU1WKENQ KFVTQkIyX1VMUElUTExfREFUNSkgLCAoIElFTiB8IE01KSkgIC8qIGRpc3BjMl9kYXRhMTMgKi8g XAorKwlNVihDUChVU0JCMl9VTFBJVExMX0RBVDYpICwgKCBJRU4gfCBNNSkpICAvKiBkaXNwYzJf ZGF0YTEyICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQSVRMTF9EQVQ3KSAsICggSUVOIHwgTTUpKSAg LyogZGlzcGMyX2RhdGExMSAqLyBcCisrCU1WKENQKFVTQkIyX0hTSUNfREFUQSkgLCAoIFBURCB8 IE9GRl9FTiB8IE9GRl9PVVRfUFRVIHwgTTMpKSAgLyogZ3Bpb18xNjkgKi8gXAorKwlNVihDUChV U0JCMl9IU0lDX1NUUk9CRSkgLCAoIFBURCB8IE9GRl9FTiB8IE9GRl9PVVRfUFRVIHwgTTMpKSAg LyogZ3Bpb18xNzAgKi8gXAorKwlNVihDUChVTklQUk9fVFgwKSAsICggUFREIHwgSUVOIHwgTTMp KSAgLyogZ3Bpb18xNzEgKi8gXAorKwlNVihDUChVTklQUk9fVFkwKSAsICggT0ZGX0VOIHwgT0ZG X1BEIHwgT0ZGX0lOIHwgTTEpKSAgLyoga3BkX2NvbDEgKi8gXAorKwlNVihDUChVTklQUk9fVFgx KSAsICggT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAgLyoga3BkX2NvbDIgKi8gXAor KwlNVihDUChVTklQUk9fVFkxKSAsICggT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAg Lyoga3BkX2NvbDMgKi8gXAorKwlNVihDUChVTklQUk9fVFgyKSAsICggUFRVIHwgSUVOIHwgTTMp KSAgLyogZ3Bpb18wICovIFwKKysJTVYoQ1AoVU5JUFJPX1RZMikgLCAoIFBUVSB8IElFTiB8IE0z KSkgIC8qIGdwaW9fMSAqLyBcCisrCU1WKENQKFVOSVBST19SWDApICwgKCBQVFUgfCBJRU4gfCBP RkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpICAvKiBrcGRfcm93MCAqLyBcCisrCU1WKENQ KFVOSVBST19SWTApICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBN MSkpICAvKiBrcGRfcm93MSAqLyBcCisrCU1WKENQKFVOSVBST19SWDEpICwgKCBQVFUgfCBJRU4g fCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpICAvKiBrcGRfcm93MiAqLyBcCisrCU1W KENQKFVOSVBST19SWTEpICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4g fCBNMSkpICAvKiBrcGRfcm93MyAqLyBcCisrCU1WKENQKFVOSVBST19SWDIpICwgKCBQVFUgfCBJ RU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpICAvKiBrcGRfcm93NCAqLyBcCisr CU1WKENQKFVOSVBST19SWTIpICwgKCBQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZf SU4gfCBNMSkpICAvKiBrcGRfcm93NSAqLyBcCisrCU1WKENQKFVTQkEwX09UR19DRSkgLCAoIFBU RCB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9PVVRfUFREIHwgTTApKSAgLyogdXNiYTBfb3RnX2Nl ICovIFwKKysJTVYoQ1AoVVNCQTBfT1RHX0RQKSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwg T0ZGX0lOIHwgTTApKSAgLyogdXNiYTBfb3RnX2RwICovIFwKKysJTVYoQ1AoVVNCQTBfT1RHX0RN KSAsICggSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAgLyogdXNiYTBfb3Rn X2RtICovIFwKKysJTVYoQ1AoRlJFRl9DTEsxX09VVCkgLCAoIE0wKSkgIC8qIGZyZWZfY2xrMV9v dXQgKi8gXAorKwlNVihDUChGUkVGX0NMSzJfT1VUKSAsICggUFREIHwgSUVOIHwgTTMpKSAgLyog Z3Bpb18xODIgKi8gXAorKwlNVihDUChTWVNfTklSUTEpICwgKCBQVFUgfCBJRU4gfCBNMCkpICAv KiBzeXNfbmlycTEgKi8gXAorKwlNVihDUChTWVNfTklSUTIpICwgKCBQVFUgfCBJRU4gfCBNMCkp ICAvKiBzeXNfbmlycTIgKi8gXAorKwlNVihDUChTWVNfQk9PVDApICwgKCBQVFUgfCBJRU4gfCBN MykpICAvKiBncGlvXzE4NCAqLyBcCisrCU1WKENQKFNZU19CT09UMSkgLCAoIE0zKSkgIC8qIGdw aW9fMTg1ICovIFwKKysJTVYoQ1AoU1lTX0JPT1QyKSAsICggUFREIHwgSUVOIHwgTTMpKSAgLyog Z3Bpb18xODYgKi8gXAorKwlNVihDUChTWVNfQk9PVDMpICwgKCBNMykpICAvKiBncGlvXzE4NyAq LyBcCisrCU1WKENQKFNZU19CT09UNCkgLCAoIE0zKSkgIC8qIGdwaW9fMTg4ICovIFwKKysJTVYo Q1AoU1lTX0JPT1Q1KSAsICggUFREIHwgSUVOIHwgTTMpKSAgLyogZ3Bpb18xODkgKi8gXAorKwlN VihDUChEUE1fRU1VMCkgLCAoIElFTiB8IE0wKSkgIC8qIGRwbV9lbXUwICovIFwKKysJTVYoQ1Ao RFBNX0VNVTEpICwgKCBJRU4gfCBNMCkpICAvKiBkcG1fZW11MSAqLyBcCisrCU1WKENQKERQTV9F TVUyKSAsICggSUVOIHwgTTApKSAgLyogZHBtX2VtdTIgKi8gXAorKwlNVihDUChEUE1fRU1VMykg LCAoIElFTiB8IE01KSkgIC8qIGRpc3BjMl9kYXRhMTAgKi8gXAorKwlNVihDUChEUE1fRU1VNCkg LCAoIElFTiB8IE01KSkgIC8qIGRpc3BjMl9kYXRhOSAqLyBcCisrCU1WKENQKERQTV9FTVU1KSAs ICggSUVOIHwgTTUpKSAgLyogZGlzcGMyX2RhdGExNiAqLyBcCisrCU1WKENQKERQTV9FTVU2KSAs ICggSUVOIHwgTTUpKSAgLyogZGlzcGMyX2RhdGExNyAqLyBcCisrCU1WKENQKERQTV9FTVU3KSAs ICggSUVOIHwgTTUpKSAgLyogZGlzcGMyX2hzeW5jICovIFwKKysJTVYoQ1AoRFBNX0VNVTgpICwg KCBJRU4gfCBNNSkpICAvKiBkaXNwYzJfcGNsayAqLyBcCisrCU1WKENQKERQTV9FTVU5KSAsICgg SUVOIHwgTTUpKSAgLyogZGlzcGMyX3ZzeW5jICovIFwKKysJTVYoQ1AoRFBNX0VNVTEwKSAsICgg SUVOIHwgTTUpKSAgLyogZGlzcGMyX2RlICovIFwKKysJTVYoQ1AoRFBNX0VNVTExKSAsICggSUVO IHwgTTUpKSAgLyogZGlzcGMyX2RhdGE4ICovIFwKKysJTVYoQ1AoRFBNX0VNVTEyKSAsICggSUVO IHwgTTUpKSAgLyogZGlzcGMyX2RhdGE3ICovIFwKKysJTVYoQ1AoRFBNX0VNVTEzKSAsICggSUVO IHwgTTUpKSAgLyogZGlzcGMyX2RhdGE2ICovIFwKKysJTVYoQ1AoRFBNX0VNVTE0KSAsICggSUVO IHwgTTUpKSAgLyogZGlzcGMyX2RhdGE1ICovIFwKKysJTVYoQ1AoRFBNX0VNVTE1KSAsICggSUVO IHwgTTUpKSAgLyogZGlzcGMyX2RhdGE0ICovIFwKKysJTVYoQ1AoRFBNX0VNVTE2KSAsICggTTMp KSAgLyogZ3Bpb18yNyAqLyBcCisrCU1WKENQKERQTV9FTVUxNykgLCAoIElFTiB8IE01KSkgIC8q IGRpc3BjMl9kYXRhMiAqLyBcCisrCU1WKENQKERQTV9FTVUxOCkgLCAoIElFTiB8IE01KSkgIC8q IGRpc3BjMl9kYXRhMSAqLyBcCisrCU1WKENQKERQTV9FTVUxOSkgLCAoIElFTiB8IE01KSkgIC8q IGRpc3BjMl9kYXRhMCAqLyBcCisrCU1WMShXSyhQQUQwX1NJTV9JTykgLCAoIElFTiB8IE0wKSkg IC8qIHNpbV9pbyAqLyBcCisrCU1WMShXSyhQQUQxX1NJTV9DTEspICwgKCBNMCkpICAvKiBzaW1f Y2xrICovIFwKKysJTVYxKFdLKFBBRDBfU0lNX1JFU0VUKSAsICggTTApKSAgLyogc2ltX3Jlc2V0 ICovIFwKKysJTVYxKFdLKFBBRDFfU0lNX0NEKSAsICggUFRVIHwgSUVOIHwgTTApKSAgLyogc2lt X2NkICovIFwKKysJTVYxKFdLKFBBRDBfU0lNX1BXUkNUUkwpICwgKCBNMCkpICAvKiBzaW1fcHdy Y3RybCAqLyBcCisrCU1WMShXSyhQQUQxX1NSX1NDTCkgLCAoIFBUVSB8IElFTiB8IE0wKSkgIC8q IHNyX3NjbCAqLyBcCisrCU1WMShXSyhQQUQwX1NSX1NEQSkgLCAoIFBUVSB8IElFTiB8IE0wKSkg IC8qIHNyX3NkYSAqLyBcCisrCU1WMShXSyhQQUQxX0ZSRUZfWFRBTF9JTikgLCAoIE0wKSkgIC8q ICMgKi8gXAorKwlNVjEoV0soUEFEMF9GUkVGX1NMSUNFUl9JTikgLCAoIE0wKSkgIC8qIGZyZWZf c2xpY2VyX2luICovIFwKKysJTVYxKFdLKFBBRDFfRlJFRl9DTEtfSU9SRVEpICwgKCBNMCkpICAv KiBmcmVmX2Nsa19pb3JlcSAqLyBcCisrCU1WMShXSyhQQUQwX0ZSRUZfQ0xLMF9PVVQpICwgKCBN MikpICAvKiBzeXNfZHJtX21zZWN1cmUgKi8gXAorKwlNVjEoV0soUEFEMV9GUkVGX0NMSzNfUkVR KSAsICggUFRVIHwgSUVOIHwgTTApKSAgLyogIyAqLyBcCisrCU1WMShXSyhQQUQwX0ZSRUZfQ0xL M19PVVQpICwgKCBNMCkpICAvKiBmcmVmX2NsazNfb3V0ICovIFwKKysJTVYxKFdLKFBBRDFfRlJF Rl9DTEs0X1JFUSkgLCAoIFBUVSB8IElFTiB8IE0wKSkgIC8qICMgKi8gXAorKwlNVjEoV0soUEFE MF9GUkVGX0NMSzRfT1VUKSAsICggTTApKSAgLyogIyAqLyBcCisrCU1WMShXSyhQQUQxX1NZU18z MkspICwgKCBJRU4gfCBNMCkpICAvKiBzeXNfMzJrICovIFwKKysJTVYxKFdLKFBBRDBfU1lTX05S RVNQV1JPTikgLCAoIE0wKSkgIC8qIHN5c19ucmVzcHdyb24gKi8gXAorKwlNVjEoV0soUEFEMV9T WVNfTlJFU1dBUk0pICwgKCBNMCkpICAvKiBzeXNfbnJlc3dhcm0gKi8gXAorKwlNVjEoV0soUEFE MF9TWVNfUFdSX1JFUSkgLCAoIFBUVSB8IE0wKSkgIC8qIHN5c19wd3JfcmVxICovIFwKKysJTVYx KFdLKFBBRDFfU1lTX1BXUk9OX1JFU0VUKSAsICggTTMpKSAgLyogZ3Bpb193azI5ICovIFwKKysJ TVYxKFdLKFBBRDBfU1lTX0JPT1Q2KSAsICggSUVOIHwgTTMpKSAgLyogZ3Bpb193azkgKi8gXAor KwlNVjEoV0soUEFEMV9TWVNfQk9PVDcpICwgKCBJRU4gfCBNMykpICAvKiBncGlvX3drMTAgKi8g XAorKwlNVjEoV0soUEFEMV9GUkVGX0NMSzNfUkVRKSwgICAgIChNMykpIC8qIGdwaW9fd2szMCAq LyBcCisrCU1WMShXSyhQQUQxX0ZSRUZfQ0xLNF9SRVEpLCAgICAgKE0zKSkgLyogZ3Bpb193azcg Ki8gXAorKwlNVjEoV0soUEFEMF9GUkVGX0NMSzRfT1VUKSwgICAgIChNMykpIC8qIGdwaW9fd2s4 ICovCisrCisrI2RlZmluZSBNVVhfREVGQVVMVF9PTUFQNF9BTEwoKSBcCisrICAJTVYoQ1AoR1BN Q19BRDApLAkoUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAvKiBz ZG1tYzJfZGF0MCAqLyBcCisrCU1WKENQKEdQTUNfQUQxKSwJKFBUVSB8IElFTiB8IE9GRl9FTiB8 IE9GRl9QRCB8IE9GRl9JTiB8IE0xKSkgLyogc2RtbWMyX2RhdDEgKi8gXAorKwlNVihDUChHUE1D X0FEMiksCShQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpIC8qIHNk bW1jMl9kYXQyICovIFwKKysJTVYoQ1AoR1BNQ19BRDMpLAkoUFRVIHwgSUVOIHwgT0ZGX0VOIHwg T0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAvKiBzZG1tYzJfZGF0MyAqLyBcCisrCU1WKENQKEdQTUNf QUQ0KSwJKFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0xKSkgLyogc2Rt bWMyX2RhdDQgKi8gXAorKwlNVihDUChHUE1DX0FENSksCShQVFUgfCBJRU4gfCBPRkZfRU4gfCBP RkZfUEQgfCBPRkZfSU4gfCBNMSkpIC8qIHNkbW1jMl9kYXQ1ICovIFwKKysJTVYoQ1AoR1BNQ19B RDYpLAkoUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAvKiBzZG1t YzJfZGF0NiAqLyBcCisrCU1WKENQKEdQTUNfQUQ3KSwJKFBUVSB8IElFTiB8IE9GRl9FTiB8IE9G Rl9QRCB8IE9GRl9JTiB8IE0xKSkgLyogc2RtbWMyX2RhdDcgKi8gXAorKwlNVihDUChHUE1DX0FE OCksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMykpIC8qIGdwaW9f MzIgKi8gXAorKwlNVihDUChHUE1DX0FEOSksCShNM19TQUZFKSkgLyogZ3Bpb18zMyAqLyBcCisr CU1WKENQKEdQTUNfQUQxMCksCShNM19TQUZFKSkgLyogZ3Bpb18zNCAqLyBcCisrCU1WKENQKEdQ TUNfQUQxMSksCShNM19TQUZFKSkgLyogZ3Bpb18zNSAqLyBcCisrCU1WKENQKEdQTUNfQUQxMiks CShNM19TQUZFKSkgLyogZ3Bpb18zNiAqLyBcCisrCU1WKENQKEdQTUNfQUQxMyksCShQVEQgfCBP RkZfRU4gfCBPRkZfUEQgfCBPRkZfT1VUX1BURCB8IE0zKSkgLyogZ3Bpb18zNyAqLyBcCisrCU1W KENQKEdQTUNfQUQxNCksCShQVEQgfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfT1VUX1BURCB8IE0z KSkgLyogZ3Bpb18zOCAqLyBcCisrCU1WKENQKEdQTUNfQUQxNSksCShQVEQgfCBPRkZfRU4gfCBP RkZfUEQgfCBPRkZfT1VUX1BURCB8IE0zKSkgLyogZ3Bpb18zOSAqLyBcCisrCU1WKENQKEdQTUNf QTE2KSwJKE0zX1NBRkUpKSAvKiBncGlvXzQwICovIFwKKysJTVYoQ1AoR1BNQ19BMTcpLAkoTTNf U0FGRSkpIC8qIGdwaW9fNDEgKi8gXAorKwlNVihDUChHUE1DX0ExOCksCShQVEQgfCBJRU4gfCBP RkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpIC8qIGtwZF9yb3c2ICovIFwKKysJTVYoQ1Ao R1BNQ19BMTkpLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAv KiBrcGRfcm93NyAqLyBcCisrCU1WKENQKEdQTUNfQTIwKSwJKE0zX1NBRkUpKSAvKiBncGlvXzQ0 ICovIFwKKysJTVYoQ1AoR1BNQ19BMjEpLAkoTTNfU0FGRSkpIC8qIGdwaW9fNDUgKi8gXAorKwlN VihDUChHUE1DX0EyMiksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBN MSkpIC8qIGtwZF9jb2w2ICovIFwKKysJTVYoQ1AoR1BNQ19BMjMpLAkoUFREIHwgSUVOIHwgT0ZG X0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTEpKSAvKiBrcGRfY29sNyAqLyBcCisrCU1WKENQKEdQ TUNfQTI0KSwJKE0zX1NBRkUpKSAvKiBncGlvXzQ4ICovIFwKKysJTVYoQ1AoR1BNQ19BMjUpLAko TTNfU0FGRSkpIC8qIGdwaW9fNDkgKi8gXAorKwlNVihDUChHUE1DX05DUzApLAkoTTApKSAvKiBn cG1jX25jczAgKi8gXAorKwlNVihDUChHUE1DX05DUzEpLAkoTTNfU0FGRSkpIC8qIGdwaW9fNTEg Ki8gXAorKwlNVihDUChHUE1DX05DUzIpLAkoTTNfU0FGRSkpIC8qIGdwaW9fNTIgKi8gXAorKwlN VihDUChHUE1DX05DUzMpLAkoTTNfU0FGRSkpIC8qIGdwaW9fNTMgKi8gXAorKwlNVihDUChHUE1D X05XUCksCShNMF9TQUZFKSkgLyogZ3BtY19ud3AgKi8gXAorKwlNVihDUChHUE1DX0NMSyksCShN M19TQUZFKSkgLyogZ3Bpb181NSAqLyBcCisrCU1WKENQKEdQTUNfTkFEVl9BTEUpLAkoTTApKSAv KiBncG1jX25hZHZfYWxlICovIFwKKysJTVYoQ1AoR1BNQ19OT0UpLAkoUFRVIHwgT0ZGX0VOIHwg T0ZGX09VVF9QVEQgfCBNMSkpIC8qIHNkbW1jMl9jbGsgKi8gXAorKwlNVihDUChHUE1DX05XRSks CShQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpIC8qIHNkbW1jMl9j bWQgKi8gXAorKwlNVihDUChHUE1DX05CRTBfQ0xFKSwJKE0wKSkgLyogZ3BtY19uYmUwX2NsZSov IFwKKysJTVYoQ1AoR1BNQ19OQkUxKSwJKE0zX1NBRkUpKSAvKiBncGlvXzYwICovIFwKKysJTVYo Q1AoR1BNQ19XQUlUMCksCShNMCkpIC8qIGdwbWNfd2FpdCAqLyBcCisrCU1WKENQKEdQTUNfV0FJ VDEpLAkoUFREIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX09VVF9QVEQgfCBNMykpIC8qIGdwaW9f MzkgKi8gXAorKwlNVihDUChDMkNfREFUQTExKSwJKE0zX1NBRkUpKSAvKiBncGlvXzEwMCAqLyBc CisrCU1WKENQKEMyQ19EQVRBMTIpLAkoTTFfU0FGRSkpIC8qIGRzaTFfdGUwICovIFwKKysJTVYo Q1AoQzJDX0RBVEExMyksCShNM19TQUZFKSkgLyogZ3Bpb18xMDIgKi8gXAorKwlNVihDUChDMkNf REFUQTE0KSwJKE0xX1NBRkUpKSAvKiBkc2kyX3RlMCAqLyBcCisrCU1WKENQKEMyQ19EQVRBMTUp LAkoTTNfU0FGRSkpIC8qIGdwaW9fMTA0ICovIFwKKysJTVYoQ1AoSERNSV9IUEQpLAkoTTBfU0FG RSkpIC8qIGhkbWlfaHBkICovIFwKKysJTVYoQ1AoSERNSV9DRUMpLAkoTTBfU0FGRSkpIC8qIGhk bWlfY2VjICovIFwKKysJTVYoQ1AoSERNSV9ERENfU0NMKSwJKE0wX1NBRkUpKSAvKiBoZG1pX2Rk Y19zY2wgKi8gXAorKwlNVihDUChIRE1JX0REQ19TREEpLAkoTTBfU0FGRSkpIC8qIGhkbWlfZGRj X3NkYSAqLyBcCisrCU1WKENQKENTSTIxX0RYMCksCShNMF9TQUZFKSkgLyogY3NpMjFfZHgwICov IFwKKysJTVYoQ1AoQ1NJMjFfRFkwKSwJKE0wX1NBRkUpKSAvKiBjc2kyMV9keTAgKi8gXAorKwlN VihDUChDU0kyMV9EWDEpLAkoTTBfU0FGRSkpIC8qIGNzaTIxX2R4MSAqLyBcCisrCU1WKENQKENT STIxX0RZMSksCShNMF9TQUZFKSkgLyogY3NpMjFfZHkxICovIFwKKysJTVYoQ1AoQ1NJMjFfRFgy KSwJKE0wX1NBRkUpKSAvKiBjc2kyMV9keDIgKi8gXAorKwlNVihDUChDU0kyMV9EWTIpLAkoTTBf U0FGRSkpIC8qIGNzaTIxX2R5MiAqLyBcCisrCU1WKENQKENTSTIxX0RYMyksCShNMF9TQUZFKSkg LyogY3NpMjFfZHgzICovIFwKKysJTVYoQ1AoQ1NJMjFfRFkzKSwJKE0wX1NBRkUpKSAvKiBjc2ky MV9keTMgKi8gXAorKwlNVihDUChDU0kyMV9EWDQpLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZG X1BEIHwgT0ZGX0lOIHwgTTMpKSAvKiBncGlfNzUgKi8gXAorKwlNVihDUChDU0kyMV9EWTQpLAko UFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTMpKSAvKiBncGlfNzYgKi8g XAorKwlNVihDUChDU0kyMl9EWDApLAkoTTBfU0FGRSkpIC8qIGNzaTIyX2R4MCAqLyBcCisrCU1W KENQKENTSTIyX0RZMCksCShNMF9TQUZFKSkgLyogY3NpMjJfZHkwICovIFwKKysJTVYoQ1AoQ1NJ MjJfRFgxKSwJKE0wX1NBRkUpKSAvKiBjc2kyMl9keDEgKi8gXAorKwlNVihDUChDU0kyMl9EWTEp LAkoTTBfU0FGRSkpIC8qIGNzaTIyX2R5MSAqLyBcCisrCU1WKENQKENBTV9TSFVUVEVSKSwJKFBU RCB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9PVVRfUFREIHwgTTApKSAvKiBjYW1fc2h1dHRlciAq LyBcCisrCU1WKENQKENBTV9TVFJPQkUpLAkoUFREIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX09V VF9QVEQgfCBNMCkpIC8qIGNhbV9zdHJvYmUgKi8gXAorKwlNVihDUChDQU1fR0xPQkFMUkVTRVQp LAkoUFREIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX09VVF9QVEQgfCBNMykpIC8qIGdwaW9fODMg Ki8gXAorKwlNVihDUChVU0JCMV9VTFBJVExMX0NMSyksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBP RkZfUEQgfCBPRkZfSU4gfCBNNCkpIC8qIHVzYmIxX3VscGlwaHlfY2xrICovIFwKKysJTVYoQ1Ao VVNCQjFfVUxQSVRMTF9TVFApLAkoUFRVIHwgT0ZGX0VOIHwgT0ZGX09VVF9QVEQgfCBNNCkpIC8q IHVzYmIxX3VscGlwaHlfc3RwICovIFwKKysJTVYoQ1AoVVNCQjFfVUxQSVRMTF9ESVIpLAkoUFRE IHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAvKiB1c2JiMV91bHBpcGh5 X2RpciAqLyBcCisrCU1WKENQKFVTQkIxX1VMUElUTExfTlhUKSwJKFBURCB8IElFTiB8IE9GRl9F TiB8IE9GRl9QRCB8IE9GRl9JTiB8IE00KSkgLyogdXNiYjFfdWxwaXBoeV9ueHQgKi8gXAorKwlN VihDUChVU0JCMV9VTFBJVExMX0RBVDApLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwg T0ZGX0lOIHwgTTQpKSAvKiB1c2JiMV91bHBpcGh5X2RhdDAgKi8gXAorKwlNVihDUChVU0JCMV9V TFBJVExMX0RBVDEpLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQp KSAvKiB1c2JiMV91bHBpcGh5X2RhdDEgKi8gXAorKwlNVihDUChVU0JCMV9VTFBJVExMX0RBVDIp LAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAvKiB1c2JiMV91 bHBpcGh5X2RhdDIgKi8gXAorKwlNVihDUChVU0JCMV9VTFBJVExMX0RBVDMpLAkoUFREIHwgSUVO IHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAvKiB1c2JiMV91bHBpcGh5X2RhdDMg Ki8gXAorKwlNVihDUChVU0JCMV9VTFBJVExMX0RBVDQpLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwg T0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAvKiB1c2JiMV91bHBpcGh5X2RhdDQgKi8gXAorKwlNVihD UChVU0JCMV9VTFBJVExMX0RBVDUpLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZG X0lOIHwgTTQpKSAvKiB1c2JiMV91bHBpcGh5X2RhdDUgKi8gXAorKwlNVihDUChVU0JCMV9VTFBJ VExMX0RBVDYpLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAv KiB1c2JiMV91bHBpcGh5X2RhdDYgKi8gXAorKwlNVihDUChVU0JCMV9VTFBJVExMX0RBVDcpLAko UFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTQpKSAvKiB1c2JiMV91bHBp cGh5X2RhdDcgKi8gXAorKwlNVihDUChVU0JCMV9IU0lDX0RBVEEpLAkoUFREIHwgSUVOIHwgT0ZG X0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAvKiB1c2JiMV9oc2ljX2RhdGEgKi8gXAorKwlN VihDUChVU0JCMV9IU0lDX1NUUk9CRSksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBP RkZfSU4gfCBNMCkpIC8qIHVzYmIxX2hzaWNfc3Ryb2JlICovIFwKKysJTVYoQ1AoVVNCQzFfSUNV U0JfRFApLAkoTTBfU0FGRSkpIC8qIHVzYmMxX2ljdXNiX2RwICovIFwKKysJTVYoQ1AoVVNCQzFf SUNVU0JfRE0pLAkoTTBfU0FGRSkpIC8qIHVzYmMxX2ljdXNiX2RtICovIFwKKysJTVYoQ1AoU0RN TUMxX0NMSyksCShQVFUgfCBPRkZfRU4gfCBPRkZfT1VUX1BURCB8IE0wKSkgLyogc2RtbWMxX2Ns ayAqLyBcCisrCU1WKENQKFNETU1DMV9DTUQpLAkoUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BE IHwgT0ZGX0lOIHwgTTApKSAvKiBzZG1tYzFfY21kICovIFwKKysJTVYoQ1AoU0RNTUMxX0RBVDAp LAkoUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAvKiBzZG1tYzFf ZGF0MCAqLyBcCisrCU1WKENQKFNETU1DMV9EQVQxKSwJKFBUVSB8IElFTiB8IE9GRl9FTiB8IE9G Rl9QRCB8IE9GRl9JTiB8IE0wKSkgLyogc2RtbWMxX2RhdDEgKi8gXAorKwlNVihDUChTRE1NQzFf REFUMiksCShQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpIC8qIHNk bW1jMV9kYXQyICovIFwKKysJTVYoQ1AoU0RNTUMxX0RBVDMpLAkoUFRVIHwgSUVOIHwgT0ZGX0VO IHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAvKiBzZG1tYzFfZGF0MyAqLyBcCisrCU1WKENQKFNE TU1DMV9EQVQ0KSwJKFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkg Lyogc2RtbWMxX2RhdDQgKi8gXAorKwlNVihDUChTRE1NQzFfREFUNSksCShQVFUgfCBJRU4gfCBP RkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpIC8qIHNkbW1jMV9kYXQ1ICovIFwKKysJTVYo Q1AoU0RNTUMxX0RBVDYpLAkoUFRVIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwg TTApKSAvKiBzZG1tYzFfZGF0NiAqLyBcCisrCU1WKENQKFNETU1DMV9EQVQ3KSwJKFBUVSB8IElF TiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkgLyogc2RtbWMxX2RhdDcgKi8gXAor KwlNVihDUChBQkVfTUNCU1AyX0NMS1gpLAkoSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lO IHwgTTApKSAvKiBhYmVfbWNic3AyX2Nsa3ggKi8gXAorKwlNVihDUChBQkVfTUNCU1AyX0RSKSwJ KElFTiB8IE9GRl9FTiB8IE9GRl9PVVRfUFREIHwgTTApKSAvKiBhYmVfbWNic3AyX2RyICovIFwK KysJTVYoQ1AoQUJFX01DQlNQMl9EWCksCShPRkZfRU4gfCBPRkZfT1VUX1BURCB8IE0wKSkgLyog YWJlX21jYnNwMl9keCAqLyBcCisrCU1WKENQKEFCRV9NQ0JTUDJfRlNYKSwJKElFTiB8IE9GRl9F TiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkgLyogYWJlX21jYnNwMl9mc3ggKi8gXAorKwlNVihD UChBQkVfTUNCU1AxX0NMS1gpLAkoTTFfU0FGRSkpIC8qIGFiZV9zbGltYnVzMV9jbG9jayAqLyBc CisrCU1WKENQKEFCRV9NQ0JTUDFfRFIpLAkoTTFfU0FGRSkpIC8qIGFiZV9zbGltYnVzMV9kYXRh ICovIFwKKysJTVYoQ1AoQUJFX01DQlNQMV9EWCksCShPRkZfRU4gfCBPRkZfT1VUX1BURCB8IE0w KSkgLyogYWJlX21jYnNwMV9keCAqLyBcCisrCU1WKENQKEFCRV9NQ0JTUDFfRlNYKSwJKElFTiB8 IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkgLyogYWJlX21jYnNwMV9mc3ggKi8gXAor KwlNVihDUChBQkVfUERNX1VMX0RBVEEpLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwg T0ZGX0lOIHwgTTBfU0FGRSkpIC8qIGFiZV9wZG1fdWxfZGF0YSAqLyBcCisrCU1WKENQKEFCRV9Q RE1fRExfREFUQSksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMF9T QUZFKSkgLyogYWJlX3BkbV9kbF9kYXRhICovIFwKKysJTVYoQ1AoQUJFX1BETV9GUkFNRSksCShQ VFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMF9TQUZFKSkgLyogYWJlX3Bk bV9mcmFtZSAqLyBcCisrCU1WKENQKEFCRV9QRE1fTEJfQ0xLKSwJKFBURCB8IElFTiB8IE9GRl9F TiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wX1NBRkUpKSAvKiBhYmVfcGRtX2xiX2NsayAqLyBcCisr CU1WKENQKEFCRV9DTEtTKSwJKFBURCB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8 IE0wX1NBRkUpKSAvKiBhYmVfY2xrcyAqLyBcCisrCU1WKENQKEFCRV9ETUlDX0NMSzEpLAkoTTBf U0FGRSkpIC8qIGFiZV9kbWljX2NsazEgKi8gXAorKwlNVihDUChBQkVfRE1JQ19ESU4xKSwJKE0w X1NBRkUpKSAvKiBhYmVfZG1pY19kaW4xICovIFwKKysJTVYoQ1AoQUJFX0RNSUNfRElOMiksCShN MF9TQUZFKSkgLyogYWJlX2RtaWNfZGluMiAqLyBcCisrCU1WKENQKEFCRV9ETUlDX0RJTjMpLAko TTBfU0FGRSkpIC8qIGFiZV9kbWljX2RpbjMgKi8gXAorKwlNVihDUChVQVJUMl9DVFMpLAkoUFRV IHwgSUVOIHwgTTApKSAvKiB1YXJ0Ml9jdHMgKi8gXAorKwlNVihDUChVQVJUMl9SVFMpLAkoTTAp KSAvKiB1YXJ0Ml9ydHMgKi8gXAorKwlNVihDUChVQVJUMl9SWCksCShQVFUgfCBJRU4gfCBNMCkp IC8qIHVhcnQyX3J4ICovIFwKKysJTVYoQ1AoVUFSVDJfVFgpLAkoTTApKSAvKiB1YXJ0Ml90eCAq LyBcCisrCU1WKENQKEhEUV9TSU8pLAkoTTNfU0FGRSkpIC8qIGdwaW9fMTI3ICovIFwKKysJTVYo Q1AoSTJDMV9TQ0wpLAkoUFRVIHwgSUVOIHwgTTApKSAvKiBpMmMxX3NjbCAqLyBcCisrCU1WKENQ KEkyQzFfU0RBKSwJKFBUVSB8IElFTiB8IE0wKSkgLyogaTJjMV9zZGEgKi8gXAorKwlNVihDUChJ MkMyX1NDTCksCShQVFUgfCBJRU4gfCBNMCkpIC8qIGkyYzJfc2NsICovIFwKKysJTVYoQ1AoSTJD Ml9TREEpLAkoUFRVIHwgSUVOIHwgTTApKSAvKiBpMmMyX3NkYSAqLyBcCisrCU1WKENQKEkyQzNf U0NMKSwJKFBUVSB8IElFTiB8IE0wKSkgLyogaTJjM19zY2wgKi8gXAorKwlNVihDUChJMkMzX1NE QSksCShQVFUgfCBJRU4gfCBNMCkpIC8qIGkyYzNfc2RhICovIFwKKysJTVYoQ1AoSTJDNF9TQ0wp LAkoUFRVIHwgSUVOIHwgTTApKSAvKiBpMmM0X3NjbCAqLyBcCisrCU1WKENQKEkyQzRfU0RBKSwJ KFBUVSB8IElFTiB8IE0wKSkgLyogaTJjNF9zZGEgKi8gXAorKwlNVihDUChNQ1NQSTFfQ0xLKSwJ KElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkgLyogbWNzcGkxX2NsayAqLyBc CisrCU1WKENQKE1DU1BJMV9TT01JKSwJKElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8 IE0wKSkgLyogbWNzcGkxX3NvbWkgKi8gXAorKwlNVihDUChNQ1NQSTFfU0lNTyksCShJRU4gfCBP RkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpIC8qIG1jc3BpMV9zaW1vICovIFwKKysJTVYo Q1AoTUNTUEkxX0NTMCksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBN MCkpIC8qIG1jc3BpMV9jczAgKi8gXAorKwlNVihDUChNQ1NQSTFfQ1MxKSwJKFBURCB8IElFTiB8 IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wX1NBRkUpKSAvKiBtY3NwaTFfY3MxICovIFwK KysJTVYoQ1AoTUNTUEkxX0NTMiksCShPRkZfRU4gfCBPRkZfT1VUX1BUVSB8IE0zKSkgLyogZ3Bp b18xMzkgKi8gXAorKwlNVihDUChNQ1NQSTFfQ1MzKSwJKE0zX1NBRkUpKSAvKiBncGlvXzE0MCAq LyBcCisrCU1WKENQKFVBUlQzX0NUU19SQ1RYKSwJKFBUVSB8IElFTiB8IE0wKSkgLyogdWFydDNf dHggKi8gXAorKwlNVihDUChVQVJUM19SVFNfU0QpLAkoTTApKSAvKiB1YXJ0M19ydHNfc2QgKi8g XAorKwlNVihDUChVQVJUM19SWF9JUlJYKSwJKElFTiB8IE0wKSkgLyogdWFydDNfcnggKi8gXAor KwlNVihDUChVQVJUM19UWF9JUlRYKSwJKE0wKSkgLyogdWFydDNfdHggKi8gXAorKwlNVihDUChT RE1NQzVfQ0xLKSwJKFBUVSB8IE9GRl9FTiB8IE9GRl9PVVRfUFREIHwgTTApKSAvKiBzZG1tYzVf Y2xrICovIFwKKysJTVYoQ1AoU0RNTUM1X0NNRCksCShQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZf UEQgfCBPRkZfSU4gfCBNMCkpIC8qIHNkbW1jNV9jbWQgKi8gXAorKwlNVihDUChTRE1NQzVfREFU MCksCShQVFUgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpIC8qIHNkbW1j NV9kYXQwICovIFwKKysJTVYoQ1AoU0RNTUM1X0RBVDEpLAkoUFRVIHwgSUVOIHwgT0ZGX0VOIHwg T0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAvKiBzZG1tYzVfZGF0MSAqLyBcCisrCU1WKENQKFNETU1D NV9EQVQyKSwJKFBUVSB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0wKSkgLyog c2RtbWM1X2RhdDIgKi8gXAorKwlNVihDUChTRE1NQzVfREFUMyksCShQVFUgfCBJRU4gfCBPRkZf RU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpIC8qIHNkbW1jNV9kYXQzICovIFwKKysJTVYoQ1Ao TUNTUEk0X0NMSyksCShJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpIC8qIG1j c3BpNF9jbGsgKi8gXAorKwlNVihDUChNQ1NQSTRfU0lNTyksCShJRU4gfCBPRkZfRU4gfCBPRkZf UEQgfCBPRkZfSU4gfCBNMCkpIC8qIG1jc3BpNF9zaW1vICovIFwKKysJTVYoQ1AoTUNTUEk0X1NP TUkpLAkoSUVOIHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX0lOIHwgTTApKSAvKiBtY3NwaTRfc29t aSAqLyBcCisrCU1WKENQKE1DU1BJNF9DUzApLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwgT0ZGX1BE IHwgT0ZGX0lOIHwgTTApKSAvKiBtY3NwaTRfY3MwICovIFwKKysJTVYoQ1AoVUFSVDRfUlgpLAko SUVOIHwgTTApKSAvKiB1YXJ0NF9yeCAqLyBcCisrCU1WKENQKFVBUlQ0X1RYKSwJKE0wKSkgLyog dWFydDRfdHggKi8gXAorKwlNVihDUChVU0JCMl9VTFBJVExMX0NMSyksCShNMykpIC8qIGdwaW9f MTU3ICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQSVRMTF9TVFApLAkoTTUpKSAvKiBkaXNwYzJfZGF0 YTIzICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQSVRMTF9ESVIpLAkoTTUpKSAvKiBkaXNwYzJfZGF0 YTIyICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQSVRMTF9OWFQpLAkoTTUpKSAvKiBkaXNwYzJfZGF0 YTIxICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQSVRMTF9EQVQwKSwJKE01KSkgLyogZGlzcGMyX2Rh dGEyMCAqLyBcCisrCU1WKENQKFVTQkIyX1VMUElUTExfREFUMSksCShNNSkpIC8qIGRpc3BjMl9k YXRhMTkgKi8gXAorKwlNVihDUChVU0JCMl9VTFBJVExMX0RBVDIpLAkoTTUpKSAvKiBkaXNwYzJf ZGF0YTE4ICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQSVRMTF9EQVQzKSwJKE01KSkgLyogZGlzcGMy X2RhdGExNSAqLyBcCisrCU1WKENQKFVTQkIyX1VMUElUTExfREFUNCksCShNNSkpIC8qIGRpc3Bj Ml9kYXRhMTQgKi8gXAorKwlNVihDUChVU0JCMl9VTFBJVExMX0RBVDUpLAkoTTUpKSAvKiBkaXNw YzJfZGF0YTEzICovIFwKKysJTVYoQ1AoVVNCQjJfVUxQSVRMTF9EQVQ2KSwJKE01KSkgLyogZGlz cGMyX2RhdGExMiAqLyBcCisrCU1WKENQKFVTQkIyX1VMUElUTExfREFUNyksCShNNSkpIC8qIGRp c3BjMl9kYXRhMTEgKi8gXAorKwlNVihDUChVU0JCMl9IU0lDX0RBVEEpLAkoT0ZGX0VOIHwgT0ZG X09VVF9QVFUgfCBNMykpIC8qIGdwaW9fMTY5ICovIFwKKysJTVYoQ1AoVVNCQjJfSFNJQ19TVFJP QkUpLAkoT0ZGX0VOIHwgT0ZGX09VVF9QVFUgfCBNMykpIC8qIGdwaW9fMTcwICovIFwKKysJTVYo Q1AoVU5JUFJPX1RYMCksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBN MSkpIC8qIGtwZF9jb2wwICovIFwKKysJTVYoQ1AoVU5JUFJPX1RZMCksCShQVEQgfCBJRU4gfCBP RkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpIC8qIGtwZF9jb2wxICovIFwKKysJTVYoQ1Ao VU5JUFJPX1RYMSksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkp IC8qIGtwZF9jb2wyICovIFwKKysJTVYoQ1AoVU5JUFJPX1RZMSksCShQVEQgfCBJRU4gfCBPRkZf RU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMSkpIC8qIGtwZF9jb2wzICovIFwKKysJTVYoQ1AoVU5J UFJPX1RYMiksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMykpIC8q IGdwaW9fMCAqLyBcCisrCU1WKENQKFVOSVBST19UWTIpLAkoUFREIHwgSUVOIHwgT0ZGX0VOIHwg T0ZGX1BEIHwgT0ZGX0lOIHwgTTMpKSAvKiBncGlvXzEgKi8gXAorKwlNVihDUChVTklQUk9fUlgw KSwJKFBURCB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0xKSkgLyoga3BkX3Jv dzAgKi8gXAorKwlNVihDUChVTklQUk9fUlkwKSwJKFBURCB8IElFTiB8IE9GRl9FTiB8IE9GRl9Q RCB8IE9GRl9JTiB8IE0xKSkgLyoga3BkX3JvdzEgKi8gXAorKwlNVihDUChVTklQUk9fUlgxKSwJ KFBURCB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0xKSkgLyoga3BkX3JvdzIg Ki8gXAorKwlNVihDUChVTklQUk9fUlkxKSwJKFBURCB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8 IE9GRl9JTiB8IE0xKSkgLyoga3BkX3JvdzMgKi8gXAorKwlNVihDUChVTklQUk9fUlgyKSwJKFBU RCB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9GRl9JTiB8IE0xKSkgLyoga3BkX3JvdzQgKi8g XAorKwlNVihDUChVTklQUk9fUlkyKSwJKFBURCB8IElFTiB8IE9GRl9FTiB8IE9GRl9QRCB8IE9G Rl9JTiB8IE0xKSkgLyoga3BkX3JvdzUgKi8gXAorKwlNVihDUChVU0JBMF9PVEdfQ0UpLAkoUFRV IHwgT0ZGX0VOIHwgT0ZGX1BEIHwgT0ZGX09VVF9QVEQgfCBNMCkpIC8qIHVzYmEwX290Z19jZSAq LyBcCisrCU1WKENQKFVTQkEwX09UR19EUCksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQg fCBPRkZfSU4gfCBNMCkpIC8qIHVzYmEwX290Z19kcCAqLyBcCisrCU1WKENQKFVTQkEwX09UR19E TSksCShQVEQgfCBJRU4gfCBPRkZfRU4gfCBPRkZfUEQgfCBPRkZfSU4gfCBNMCkpIC8qIHVzYmEw X290Z19kbSAqLyBcCisrCU1WKENQKEZSRUZfQ0xLMV9PVVQpLAkoTTBfU0FGRSkpIC8qIGZyZWZf Y2xrMV9vdXQgKi8gXAorKwlNVihDUChGUkVGX0NMSzJfT1VUKSwJKE0wX1NBRkUpKSAvKiBmcmVm X2NsazJfb3V0ICovIFwKKysJTVYoQ1AoU1lTX05JUlExKSwJKFBUVSB8IElFTiB8IE0wKSkgLyog c3lzX25pcnExICovIFwKKysJTVYoQ1AoU1lTX05JUlEyKSwJKFBUVSB8IElFTiB8IE0wKSkgLyog c3lzX25pcnEyICovIFwKKysJTVYoQ1AoU1lTX0JPT1QwKSwJKE0zX1NBRkUpKSAvKiBncGlvXzE4 NCAqLyBcCisrCU1WKENQKFNZU19CT09UMSksCShNM19TQUZFKSkgLyogZ3Bpb18xODUgKi8gXAor KwlNVihDUChTWVNfQk9PVDIpLAkoTTNfU0FGRSkpIC8qIGdwaW9fMTg2ICovIFwKKysJTVYoQ1Ao U1lTX0JPT1QzKSwJKE0zX1NBRkUpKSAvKiBncGlvXzE4NyAqLyBcCisrCU1WKENQKFNZU19CT09U NCksCShNM19TQUZFKSkgLyogZ3Bpb18xODggKi8gXAorKwlNVihDUChTWVNfQk9PVDUpLAkoTTNf U0FGRSkpIC8qIGdwaW9fMTg5ICovIFwKKysJTVYoQ1AoRFBNX0VNVTApLAkoTTBfU0FGRSkpIC8q IGRwbV9lbXUwICovIFwKKysJTVYoQ1AoRFBNX0VNVTEpLAkoTTBfU0FGRSkpIC8qIGRwbV9lbXUx ICovIFwKKysJTVYoQ1AoRFBNX0VNVTIpLAkoTTBfU0FGRSkpIC8qIGRwbV9lbXUyICovIFwKKysJ TVYoQ1AoRFBNX0VNVTMpLAkoTTUpKSAvKiBkaXNwYzJfZGF0YTEwICovIFwKKysJTVYoQ1AoRFBN X0VNVTQpLAkoTTUpKSAvKiBkaXNwYzJfZGF0YTkgKi8gXAorKwlNVihDUChEUE1fRU1VNSksCShN NSkpIC8qIGRpc3BjMl9kYXRhMTYgKi8gXAorKwlNVihDUChEUE1fRU1VNiksCShNNSkpIC8qIGRp c3BjMl9kYXRhMTcgKi8gXAorKwlNVihDUChEUE1fRU1VNyksCShNNSkpIC8qIGRpc3BjMl9oc3lu YyAqLyBcCisrCU1WKENQKERQTV9FTVU4KSwJKE01KSkgLyogZGlzcGMyX3BjbGsgKi8gXAorKwlN VihDUChEUE1fRU1VOSksCShNNSkpIC8qIGRpc3BjMl92c3luYyAqLyBcCisrCU1WKENQKERQTV9F TVUxMCksCShNNSkpIC8qIGRpc3BjMl9kZSAqLyBcCisrCU1WKENQKERQTV9FTVUxMSksCShNNSkp IC8qIGRpc3BjMl9kYXRhOCAqLyBcCisrCU1WKENQKERQTV9FTVUxMiksCShNNSkpIC8qIGRpc3Bj Ml9kYXRhNyAqLyBcCisrCU1WKENQKERQTV9FTVUxMyksCShNNSkpIC8qIGRpc3BjMl9kYXRhNiAq LyBcCisrCU1WKENQKERQTV9FTVUxNCksCShNNSkpIC8qIGRpc3BjMl9kYXRhNSAqLyBcCisrCU1W KENQKERQTV9FTVUxNSksCShNNSkpIC8qIGRpc3BjMl9kYXRhNCAqLyBcCisrCU1WKENQKERQTV9F TVUxNiksCShNNSkpIC8qIGRpc3BjMl9kYXRhMy9kbXRpbWVyOF9wd21fZXZ0ICovIFwKKysJTVYo Q1AoRFBNX0VNVTE3KSwJKE01KSkgLyogZGlzcGMyX2RhdGEyICovIFwKKysJTVYoQ1AoRFBNX0VN VTE4KSwJKE01KSkgLyogZGlzcGMyX2RhdGExICovIFwKKysJTVYoQ1AoRFBNX0VNVTE5KSwJKE01 KSkgLyogZGlzcGMyX2RhdGEwICovIFwKKysJTVYxKFdLKFBBRDBfU0lNX0lPKSwJKE0wX1NBRkUp KSAvKiBzaW1faW8gKi8gXAorKwlNVjEoV0soUEFEMV9TSU1fQ0xLKSwJKE0wX1NBRkUpKSAvKiBz aW1fY2xrICovIFwKKysJTVYxKFdLKFBBRDBfU0lNX1JFU0VUKSwJKE0wX1NBRkUpKSAvKiBzaW1f cmVzZXQgKi8gXAorKwlNVjEoV0soUEFEMV9TSU1fQ0QpLAkoTTBfU0FGRSkpIC8qIHNpbV9jZCAq LyBcCisrCU1WMShXSyhQQUQwX1NJTV9QV1JDVFJMKSwJKE0wX1NBRkUpKSAvKiBzaW1fcHdyY3Ry bCAqLyBcCisrCU1WMShXSyhQQUQxX1NSX1NDTCksCShQVFUgfCBJRU4gfCBNMCkpIC8qIHNyX3Nj bCAqLyBcCisrCU1WMShXSyhQQUQwX1NSX1NEQSksCShQVFUgfCBJRU4gfCBNMCkpIC8qIHNyX3Nk YSAqLyBcCisrCU1WMShXSyhQQUQxX0ZSRUZfWFRBTF9JTiksCShNMF9TQUZFKSkgLyogIyAqLyBc CisrCU1WMShXSyhQQUQwX0ZSRUZfU0xJQ0VSX0lOKSwJKE0wX1NBRkUpKSAvKiBmcmVmX3NsaWNl cl9pbiAqLyBcCisrCU1WMShXSyhQQUQxX0ZSRUZfQ0xLX0lPUkVRKSwJKE0wX1NBRkUpKSAvKiBm cmVmX2Nsa19pb3JlcSAqLyBcCisrCU1WMShXSyhQQUQwX0ZSRUZfQ0xLMF9PVVQpLAkoTTApKSAv KiBzeXNfZHJtX21zZWN1cmUgKi8gXAorKwlNVjEoV0soUEFEMV9GUkVGX0NMSzNfUkVRKSwJKE0w KSkgLyogIyAqLyBcCisrCU1WMShXSyhQQUQwX0ZSRUZfQ0xLM19PVVQpLAkoTTBfU0FGRSkpIC8q IGZyZWZfY2xrM19vdXQgKi8gXAorKwlNVjEoV0soUEFEMV9GUkVGX0NMSzRfUkVRKSwJKE0wX1NB RkUpKSAvKiAjICovIFwKKysJTVYxKFdLKFBBRDBfRlJFRl9DTEs0X09VVCksCShNMF9TQUZFKSkg LyogIyAqLyBcCisrCU1WMShXSyhQQUQxX1NZU18zMkspLAkoSUVOIHwgTTBfU0FGRSkpIC8qIHN5 c18zMmsgKi8gXAorKwlNVjEoV0soUEFEMF9TWVNfTlJFU1BXUk9OKSwJKElFTiB8IE0wX1NBRkUp KSAvKiBzeXNfbnJlc3B3cm9uICovIFwKKysJTVYxKFdLKFBBRDFfU1lTX05SRVNXQVJNKSwJKElF TiB8IE0wX1NBRkUpKSAvKiBzeXNfbnJlc3dhcm0gKi8gXAorKwlNVjEoV0soUEFEMF9TWVNfUFdS X1JFUSksCShNMF9TQUZFKSkgLyogc3lzX3B3cl9yZXEgKi8gXAorKwlNVjEoV0soUEFEMV9TWVNf UFdST05fUkVTRVQpLAkoTTNfU0FGRSkpIC8qIGdwaW9fd2syOSAqLyBcCisrCU1WMShXSyhQQUQw X1NZU19CT09UNiksCShNM19TQUZFKSkgLyogZ3Bpb193azkgKi8gXAorKwlNVjEoV0soUEFEMV9T WVNfQk9PVDcpLAkoTTNfU0FGRSkpIC8qIGdwaW9fd2sxMCAqLyBcCisrCU1WMShXSyhQQUQxX0pU QUdfVENLKSwJKElFTiB8IE0wKSkgLyoganRhZ190Y2sgKi8gXAorKwlNVjEoV0soUEFEMF9KVEFH X1JUQ0spLAkoTTApKSAvKiBqdGFnX3J0Y2sgKi8gXAorKwlNVjEoV0soUEFEMV9KVEFHX1RNU19U TVNDKSwJKElFTiB8IE0wKSkgLyoganRhZ190bXNfdG1zYyAqLyBcCisrCU1WMShXSyhQQUQwX0pU QUdfVERJKSwJKElFTiB8IE0wKSkgLyoganRhZ190ZGkgKi8gXAorKwlNVjEoV0soUEFEMV9KVEFH X1RETyksCShNMCkpIAkJICAvKiBqdGFnX3RkbyAqLyAKKysKKysvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyAqIFJvdXRpbmU6IHNl dF9tdXhjb25mX3JlZ3MKKysgKiBEZXNjcmlwdGlvbjogU2V0dGluZyB1cCB0aGUgY29uZmlndXJh dGlvbiBNdXggcmVnaXN0ZXJzCisrICogICAgICAgICAgICAgIHNwZWNpZmljIHRvIHRoZSBoYXJk d2FyZS4gTWFueSBwaW5zIG5lZWQKKysgKiAgICAgICAgICAgICAgdG8gYmUgbW92ZWQgZnJvbSBw cm90ZWN0IHRvIHByaW1hcnkgbW9kZS4KKysgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworK3ZvaWQgc2V0X211eGNvbmZfcmVncyh2b2lk KQorK3sKKysJTVVYX0RFRkFVTFRfT01BUDQoKTsKKysJcmV0dXJuOworK30KKysKKysvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisrICogUm91dGluZTogdXBkYXRlX211eCgpCisrICogRGVzY3JpcHRp b246VXBkYXRlIGJhbGxzIHdoaWNoIGFyZSBkaWZmZXJlbnQgYmV0d2VlbiBib2FyZHMuICBBbGwg c2hvdWxkIGJlCisrICogICAgICAgICAgICAgdXBkYXRlZCB0byBtYXRjaCBmdW5jdGlvbmFsaXR5 LiAgSG93ZXZlciwgSSdtIG9ubHkgdXBkYXRpbmcgb25lcworKyAqICAgICAgICAgICAgIHdoaWNo IEknbGwgYmUgdXNpbmcgZm9yIG5vdy4gIFdoZW4gcG93ZXIgY29tZXMgaW50byBwbGF5IHRoZXkK KysgKiAgICAgICAgICAgICBhbGwgbmVlZCB1cGRhdGluZy4KKysgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisrdm9pZCB1cGRhdGVfbXV4KHUzMiBidHlwZSwgdTMyIG10eXBlKQorK3sKKysJLyogUkVW SVNJVCAgKi8KKysJcmV0dXJuOworKworK30KKysKKysvKiBvcHRpb25hbGx5IGRvIHNvbWV0aGlu ZyBsaWtlIGJsaW5raW5nIExFRCAqLworK3ZvaWQgYm9hcmRfaGFuZyAodm9pZCkKKyt7IHdoaWxl ICgwKSB7fTt9CisrCisraW50IG5hbmRfaW5pdCh2b2lkKQorK3sKKysJcmV0dXJuIDA7CisrfQor K3ZvaWQgcmVzZXRfcGh5KHVuc2lnbmVkIGludCBiYXNlKQorK3sKKysJKih2b2xhdGlsZSBpbnQq KShiYXNlICsgSU9ERlRfVExHQykgfD0gKDEgPDwgMTApOworK30KK2RpZmYgLXVOciB4LWxvYWQt ZjI0MzkzOC5vcmlnL2JvYXJkL29tYXA0NDMwcGFuZGEvcGxhdGZvcm0uUyB4LWxvYWQtZjI0Mzkz OC9ib2FyZC9vbWFwNDQzMHBhbmRhL3BsYXRmb3JtLlMKKy0tLSB4LWxvYWQtZjI0MzkzOC5vcmln L2JvYXJkL29tYXA0NDMwcGFuZGEvcGxhdGZvcm0uUwkxOTY5LTEyLTMxIDIxOjAwOjAwLjAwMDAw MDAwMCAtMDMwMAorKysrIHgtbG9hZC1mMjQzOTM4L2JvYXJkL29tYXA0NDMwcGFuZGEvcGxhdGZv cm0uUwkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ0NTY0ODY2NiAtMDMwMAorQEAgLTAsMCArMSw1MSBA QAorKy8qCisrICogQm9hcmQgc3BlY2lmaWMgc2V0dXAgaW5mbworKyAqCisrICogKEMpIENvcHly aWdodCAyMDA0LTIwMDYKKysgKiBUZXhhcyBJbnN0cnVtZW50cywgPHd3dy50aS5jb20+CisrICog UmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgorKyAqCisrICogU2VlIGZpbGUg Q1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKysgKiBw cm9qZWN0LgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisrICogcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKysgKiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrICogRm91bmRh dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKysgKiBNQSAw MjExMS0xMzA3IFVTQQorKyAqLworKworKyNpbmNsdWRlIDxjb25maWcuaD4KKysjaW5jbHVkZSA8 YXNtL2FyY2gvY3B1Lmg+CisrI2luY2x1ZGUgPGFzbS9hcmNoL21lbS5oPgorKyNpbmNsdWRlIDxh c20vYXJjaC9jbG9ja3MuaD4KKysKKytfVEVYVF9CQVNFOgorKwkud29yZAlURVhUX0JBU0UJLyog c2RyYW0gbG9hZCBhZGRyIGZyb20gY29uZmlnLm1rICovCisrCisrLmdsb2JsIGxvd2xldmVsX2lu aXQKKytsb3dsZXZlbF9pbml0OgorKwlsZHIJc3AsCVNSQU1fU1RBQ0sKKysgICAgICAgIHN0ciAg ICAgaXAsCVtzcF0gICAgLyogc3Rhc2ggb2xkIGxpbmsgcmVnaXN0ZXIgKi8KKysJbW92CWlwLAls cgkvKiBzYXZlIGxpbmsgcmVnIGFjcm9zcyBjYWxsICovCisrCWJsICAgICAgc19pbml0ICAgICAg ICAgIC8qIGdvIHNldHVwIHBsbCxtdXgsbWVtb3J5ICovCisrICAgICAgICBsZHIgICAgIGlwLAlb c3BdICAgIC8qIHJlc3RvcmUgc2F2ZSBpcCAqLworKwltb3YJbHIsCWlwCS8qIHJlc3RvcmUgbGlu ayByZWcgKi8KKysKKysJLyogYmFjayB0byBhcmNoIGNhbGxpbmcgY29kZSAqLworKwltb3YJcGMs CWxyCisrCisrCS8qIHRoZSBsaXRlcmFsIHBvb2xzIG9yaWdpbiAqLworKwkubHRvcmcKKysKKytT UkFNX1NUQUNLOgorKwkud29yZCBMT1dfTEVWRUxfU1JBTV9TVEFDSworZGlmZiAtdU5yIHgtbG9h ZC1mMjQzOTM4Lm9yaWcvYm9hcmQvb21hcDQ0MzBwYW5kYS9zeXNsaWIuYyB4LWxvYWQtZjI0Mzkz OC9ib2FyZC9vbWFwNDQzMHBhbmRhL3N5c2xpYi5jCistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9i b2FyZC9vbWFwNDQzMHBhbmRhL3N5c2xpYi5jCTE5NjktMTItMzEgMjE6MDA6MDAuMDAwMDAwMDAw IC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvYm9hcmQvb21hcDQ0MzBwYW5kYS9zeXNsaWIuYwky MDEyLTA2LTA3IDE0OjQ1OjM5LjQ0NTY0ODY2NiAtMDMwMAorQEAgLTAsMCArMSw3MyBAQAorKy8q CisrICogKEMpIENvcHlyaWdodCAyMDA2CisrICogVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cudGku Y29tPgorKyAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KKysgKgorKyAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcworKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisrICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKysgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl bXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisrICogTUEgMDIxMTEtMTMwNyBVU0EKKysg Ki8KKysKKysjaW5jbHVkZSA8Y29tbW9uLmg+CisrI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgor KyNpbmNsdWRlIDxhc20vaW8uaD4KKysjaW5jbHVkZSA8YXNtL2FyY2gvYml0cy5oPgorKyNpbmNs dWRlIDxhc20vYXJjaC9tZW0uaD4KKysjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2tzLmg+CisrI2lu Y2x1ZGUgPGFzbS9hcmNoL3N5c19wcm90by5oPgorKyNpbmNsdWRlIDxhc20vYXJjaC9zeXNfaW5m by5oPgorKworKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKysgKiBzZGVsYXkoKSAtIHNpbXBsZSBzcGluIGxvb3AuICBXaWxsIGJl IGNvbnN0YW50IHRpbWUgYXMKKysgKiAgaXRzIGdlbmVyYWxseSB1c2VkIGluIGJ5cGFzcyBjb25k aXRpb25zIG9ubHkuICBUaGlzCisrICogIGlzIG5lY2Vzc2FyeSB1bnRpbCB0aW1lcnMgYXJlIGFj Y2Vzc2libGUuCisrICoKKysgKiAgbm90IGlubGluZSB0byBpbmNyZWFzZSBjaGFuY2VzIGl0cyBp biBjYWNoZSB3aGVuIGNhbGxlZAorKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworK3ZvaWQgc2RlbGF5KHVuc2lnbmVkIGxvbmcg bG9vcHMpCisreworKwlfX2FzbV9fIHZvbGF0aWxlICgiMTpcbiIgInN1YnMgJTAsICUxLCAjMVxu IiAgCisrCQkJCQkgICJibmUgMWIiOiI9ciIgKGxvb3BzKToiMCIobG9vcHMpKTsKKyt9CisrCisr LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisrICogc3IzMiAtIGNsZWFyICYgc2V0IGEgdmFsdWUgaW4gYSBiaXQgcmFuZ2Ug Zm9yIGEgMzIgYml0IGFkZHJlc3MKKysgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisrdm9pZCBzcjMyKHUzMiBhZGRyLCB1 MzIgc3RhcnRfYml0LCB1MzIgbnVtX2JpdHMsIHUzMiB2YWx1ZSkKKyt7CisrCXUzMiB0bXAsIG1z ayA9IDA7CisrCW1zayA9IDEgPDwgbnVtX2JpdHM7CisrCS0tbXNrOworKwl0bXAgPSBfX3Jhd19y ZWFkbChhZGRyKSAmIH4obXNrIDw8IHN0YXJ0X2JpdCk7CisrCXRtcCB8PSAgdmFsdWUgPDwgc3Rh cnRfYml0OworKwlfX3Jhd193cml0ZWwodG1wLCBhZGRyKTsKKyt9CisrCisrLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorKyAqIHdhaXRfb25fdmFsdWUoKSAtIGNvbW1vbiByb3V0aW5lIHRvIGFsbG93IHdhaXRpbmcg Zm9yIGNoYW5nZXMgaW4KKysgKiAgIHZvbGF0aWxlIHJlZ3MuCisrICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyt1 MzIgd2FpdF9vbl92YWx1ZSh1MzIgcmVhZF9iaXRfbWFzaywgdTMyIG1hdGNoX3ZhbHVlLCB1MzIg cmVhZF9hZGRyLCB1MzIgYm91bmQpCisreworKwl1MzIgaSA9IDAsIHZhbDsKKysJZG8geworKwkJ KytpOworKwkJdmFsID0gX19yYXdfcmVhZGwocmVhZF9hZGRyKSAmIHJlYWRfYml0X21hc2s7Cisr CQlpZiAodmFsID09IG1hdGNoX3ZhbHVlKQorKwkJCXJldHVybiAoMSk7CisrCQlpZiAoaSA9PSBi b3VuZCkKKysJCQlyZXR1cm4gKDApOworKwl9IHdoaWxlICgxKTsKKyt9CisrCitkaWZmIC11TnIg eC1sb2FkLWYyNDM5Mzgub3JpZy9ib2FyZC9vbWFwNDQzMHBhbmRhL3gtbG9hZC5sZHMgeC1sb2Fk LWYyNDM5MzgvYm9hcmQvb21hcDQ0MzBwYW5kYS94LWxvYWQubGRzCistLS0geC1sb2FkLWYyNDM5 Mzgub3JpZy9ib2FyZC9vbWFwNDQzMHBhbmRhL3gtbG9hZC5sZHMJMTk2OS0xMi0zMSAyMTowMDow MC4wMDAwMDAwMDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0MzkzOC9ib2FyZC9vbWFwNDQzMHBhbmRh L3gtbG9hZC5sZHMJMjAxMi0wNi0wNyAxNDo0NTozOS40NDU2NDg2NjYgLTAzMDAKK0BAIC0wLDAg KzEsNTQgQEAKKysvKgorKyAqIE5vdmVtYmVyIDIwMDYgLSBDaGFuZ2VkIHRvIHN1cHBvcnQgMzQz MHNkcCBkZXZpY2UgCisrICogQ29weXJpZ2h0IChjKSAyMDA0LTIwMDYgVGV4YXMgSW5zdHJ1bWVu dHMgCisrICoKKysgKiAoQykgQ29weXJpZ2h0IDIwMDIKKysgKiBHYXJ5IEplbm5lam9obiwgREVO WCBTb2Z0d2FyZSBFbmdpbmVlcmluZywgPGdqQGRlbnguZGU+CisrICoKKysgKiBTZWUgZmlsZSBD UkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcworKyAqIHBy b2plY3QuCisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKysgKiBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorKyAqIHRoZSBMaWNl bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyAqCisrICogVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICogYWxvbmcgd2l0aCB0aGlz IHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKysgKiBGb3VuZGF0 aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorKyAqIE1BIDAy MTExLTEzMDcgVVNBCisrICovCisrCisrT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwg ImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1saXR0bGVhcm0iKQorK09VVFBVVF9BUkNIKGFybSkK KytFTlRSWShfc3RhcnQpCisrU0VDVElPTlMKKyt7CisrCS4gPSAweDAwMDAwMDAwOworKworKwku ID0gQUxJR04oNCk7CisrCS50ZXh0ICAgICAgOgorKwl7CisrCSAgY3B1L29tYXA0L3N0YXJ0Lm8J KC50ZXh0KQorKwkgICooLnRleHQpCisrCX0KKysKKysJLiA9IEFMSUdOKDQpOworKwkucm9kYXRh IDogeyAqKC5yb2RhdGEpIH0KKysKKysJLiA9IEFMSUdOKDQpOworKwkuZGF0YSA6IHsgKiguZGF0 YSkgfQorKworKwkuID0gQUxJR04oNCk7CisrCS5nb3QgOiB7ICooLmdvdCkgfQorKworKwkuID0g QUxJR04oNCk7CisrCV9fYnNzX3N0YXJ0ID0gLjsKKysJLmJzcyA6IHsgKiguYnNzKSB9CisrCV9l bmQgPSAuOworK30KK2RpZmYgLXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2JvYXJkL292ZXJvL2Nv bmZpZy5tayB4LWxvYWQtZjI0MzkzOC9ib2FyZC9vdmVyby9jb25maWcubWsKKy0tLSB4LWxvYWQt ZjI0MzkzOC5vcmlnL2JvYXJkL292ZXJvL2NvbmZpZy5tawkyMDEwLTA4LTAzIDE4OjA4OjM4LjAw MDAwMDAwMCAtMDMwMAorKysrIHgtbG9hZC1mMjQzOTM4L2JvYXJkL292ZXJvL2NvbmZpZy5tawky MDEyLTA2LTA3IDE0OjQ1OjM5LjQ0NTY0ODY2NiAtMDMwMAorQEAgLTEwLDExICsxMCwxMSBAQAor ICMgODAwMCcwMDAwIChiYW5rMCkKKyAKKyAjIEZvciB1c2UgaWYgeW91IHdhbnQgWC1Mb2FkZXIg dG8gcmVsb2NhdGUgZnJvbSBTUkFNIHRvIEREUgorLVRFWFRfQkFTRSA9IDB4ODBlODAwMDAKKysj VEVYVF9CQVNFID0gMHg4MGU4MDAwMAorIAorICMgRm9yIFhJUCBpbiA2NEsgb2YgU1JBTSBvciBk ZWJ1ZyAoR1AgZGV2aWNlIGhhcyBpdCBhbGwgYXZhaWxhYmUpCisgIyBTUkFNIDQwMjAwMDAwLTQw MjBGRkZGIGJhc2UKKyAjIGluaXRpYWwgc3RhY2sgYXQgMHg0MDIwZmZmYyB1c2VkIGluIHNfaW5p dCAoYmVsb3cgeGxvYWRlcikuCisgIyBUaGUgcnVuIHRpbWUgc3RhY2sgaXMgKGFib3ZlIHhsb2Fk ZXIsIDJrIGJlbG93KQorICMgSWYgYW55IGdsb2JhbHMgZXhpc3QgdGhlcmUgbmVlZHMgdG8gYmUg cm9vbSBmb3IgdGhlbSBhbHNvCistI1RFWFRfQkFTRSA9IDB4NDAyMDA4MDAKKytURVhUX0JBU0Ug PSAweDQwMjAwODAwCitkaWZmIC11TnIgeC1sb2FkLWYyNDM5Mzgub3JpZy9ib2FyZC9vdmVyby9v dmVyby5jIHgtbG9hZC1mMjQzOTM4L2JvYXJkL292ZXJvL292ZXJvLmMKKy0tLSB4LWxvYWQtZjI0 MzkzOC5vcmlnL2JvYXJkL292ZXJvL292ZXJvLmMJMjAxMC0wOC0wMyAxODowODozOC4wMDAwMDAw MDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0MzkzOC9ib2FyZC9vdmVyby9vdmVyby5jCTIwMTItMDYt MDcgMTQ6NDU6MzkuNDQ1NjQ4NjY2IC0wMzAwCitAQCAtMzAsMTQgKzMwLDIxIEBACisgI2luY2x1 ZGUgPGNvbW1hbmQuaD4KKyAjaW5jbHVkZSA8cGFydC5oPgorICNpbmNsdWRlIDxmYXQuaD4KKysj aW5jbHVkZSA8aTJjLmg+CisgI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgorICNpbmNsdWRlIDxh c20vYXJjaC9iaXRzLmg+CisrI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KKyAjaW5jbHVkZSA8 YXNtL2FyY2gvbXV4Lmg+CisgI2luY2x1ZGUgPGFzbS9hcmNoL3N5c19wcm90by5oPgorICNpbmNs dWRlIDxhc20vYXJjaC9zeXNfaW5mby5oPgorICNpbmNsdWRlIDxhc20vYXJjaC9jbG9ja3MuaD4K KyAjaW5jbHVkZSA8YXNtL2FyY2gvbWVtLmg+CisgCisrLyogcGFyYW1zIGZvciAzN1hYICovCisr I2RlZmluZSBDT1JFX0RQTExfUEFSQU1fTTIJMHgwOQorKyNkZWZpbmUgQ09SRV9EUExMX1BBUkFN X00JMHgzNjAKKysjZGVmaW5lIENPUkVfRFBMTF9QQVJBTV9OCTB4QworKworIC8qIFVzZWQgdG8g aW5kZXggaW50byBEUExMIHBhcmFtZXRlciB0YWJsZXMgKi8KKyBzdHJ1Y3QgZHBsbF9wYXJhbSB7 CisgCXVuc2lnbmVkIGludCBtOworQEAgLTU5LDYgKzY2LDE2IEBACisgI2RlZmluZSBfX3Jhd19y ZWFkdyhhKQkJKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoYSkpCisgI2RlZmluZSBfX3Jh d193cml0ZXcodiwgYSkJKCoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKikoYSkgPSAodikpCisg Cisrc3RhdGljIGNoYXIgKnJldl9zW0NQVV8zWFhfTUFYX1JFVl0gPSB7CisrCQkJCSIxLjAiLAor KwkJCQkiMi4wIiwKKysJCQkJIjIuMSIsCisrCQkJCSIzLjAiLAorKwkJCQkiMy4xIiwKKysJCQkJ IlVOS05PV04iLAorKwkJCQkiVU5LTk9XTiIsCisrCQkJCSIzLjEuMiJ9OworKworIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICogUm91 dGluZTogZGVsYXkKKyAgKiBEZXNjcmlwdGlvbjogc3Bpbm5pbmcgZGVsYXkgdG8gdXNlIGJlZm9y ZSB1ZGVsYXkgd29ya3MKK0BAIC0xMDksNiArMTI2LDcgQEAKKyB1MzIgZ2V0X21lbV90eXBlKHZv aWQpCisgeworIAl1MzIgICBtZW1fdHlwZSA9IGdldF9zeXNib290X3ZhbHVlKCk7CisrCisgCXN3 aXRjaCAobWVtX3R5cGUpIHsKKyAJY2FzZSAwOgorIAljYXNlIDI6CitAQCAtMTUxLDIxICsxNjks MTU4IEBACisgfQorIAorIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKy0gKiBnZXRfY3B1X3Jldih2b2lkKSAtIGV4dHJhY3QgdmVyc2lvbiBpbmZvCisrICogZ2V0 X2NwdV90eXBlKHZvaWQpIC0gZXh0cmFjdCBjcHUgaW5mbworICAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCistdTMyIGdldF9jcHVfcmV2KHZvaWQpCisrdTMyIGdl dF9jcHVfdHlwZSh2b2lkKQorK3sKKysJcmV0dXJuIF9fcmF3X3JlYWRsKENPTlRST0xfT01BUF9T VEFUVVMpOworK30KKysKKysvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisrICogZ2V0X2NwdV9pZCh2b2lkKSAtIGV4dHJhY3QgY3B1IGlkCisrICogcmV0dXJucyAw IGZvciBFUzEuMCwgY3B1aWQgb3RoZXJ3aXNlCisrICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKyt1MzIgZ2V0X2NwdV9pZCh2b2lkKQorIHsKKyAJdTMyIGNwdWlk ID0gMDsKKy0JLyogT24gRVMxLjAgdGhlIElEQ09ERSByZWdpc3RlciBpcyBub3QgZXhwb3NlZCBv biBMNAorLQkgKiBzbyB1c2luZyBDUFUgSUQgdG8gZGlmZmVyZW50aWF0ZQorLQkgKiBiZXR3ZWVu IEVTMi4wIGFuZCBFUzEuMC4KKysKKysJLyoKKysJICogT24gRVMxLjAgdGhlIElEQ09ERSByZWdp c3RlciBpcyBub3QgZXhwb3NlZCBvbiBMNAorKwkgKiBzbyB1c2luZyBDUFUgSUQgdG8gZGlmZmVy ZW50aWF0ZSBiZXR3ZWVuIEVTMS4wIGFuZCA+IEVTMS4wLgorIAkgKi8KKy0JX19hc21fXyBfX3Zv bGF0aWxlX18oIm1yYyBwMTUsIDAsICUwLCBjMCwgYzAsIDAiOiI9ciIgKGNwdWlkKSk7CistCWlm ICgoY3B1aWQgICYgMHhmKSA9PSAweDApCistCQlyZXR1cm4gQ1BVXzM0MzBfRVMxOworKwlfX2Fz bV9fIF9fdm9sYXRpbGVfXygibXJjIHAxNSwgMCwgJTAsIGMwLCBjMCwgMCI6Ij1yIihjcHVpZCkp OworKwlpZiAoKGNwdWlkICYgMHhmKSA9PSAweDApIHsKKysJCXJldHVybiAwOworKwl9IGVsc2Ug eworKwkJLyogRGVjb2RlIHRoZSBJRHMgb24gPiBFUzEuMCAqLworKwkJY3B1aWQgPSBfX3Jhd19y ZWFkbChDT05UUk9MX0lEQ09ERSk7CisrCX0KKysKKysJcmV0dXJuIGNwdWlkOworK30KKysKKysv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrICogZ2V0X2NwdV9m YW1pbHkodm9pZCkgLSBleHRyYWN0IGNwdSBpbmZvCisrICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKyt1MzIgZ2V0X2NwdV9mYW1pbHkodm9pZCkKKyt7CisrCXUx NiBoYXdrZXllOworKwl1MzIgY3B1X2ZhbWlseTsKKysJdTMyIGNwdWlkID0gZ2V0X2NwdV9pZCgp OworKworKwlpZiAoY3B1aWQgPT0gMCkKKysJCXJldHVybiBDUFVfT01BUDM0WFg7CisrCisrCWhh d2tleWUgPSAoY3B1aWQgPj4gSEFXS0VZRV9TSElGVCkgJiAweGZmZmY7CisrCXN3aXRjaCAoaGF3 a2V5ZSkgeworKwljYXNlIEhBV0tFWUVfT01BUDM0WFg6CisrCQljcHVfZmFtaWx5ID0gQ1BVX09N QVAzNFhYOworKwkJYnJlYWs7CisrCWNhc2UgSEFXS0VZRV9BTTM1WFg6CisrCQljcHVfZmFtaWx5 ID0gQ1BVX0FNMzVYWDsKKysJCWJyZWFrOworKwljYXNlIEhBV0tFWUVfT01BUDM2WFg6CisrCQlj cHVfZmFtaWx5ID0gQ1BVX09NQVAzNlhYOworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQljcHVf ZmFtaWx5ID0gQ1BVX09NQVAzNFhYOworKwl9CisrCisrCXJldHVybiBjcHVfZmFtaWx5OworK30K KysKKysvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrICogZ2V0 X2NwdV9yZXYodm9pZCkgLSBleHRyYWN0IHZlcnNpb24gaW5mbworKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisrdTMyIGdldF9jcHVfcmV2KHZvaWQpCisrewor Kwl1MzIgY3B1aWQgPSBnZXRfY3B1X2lkKCk7CisrCisrCWlmIChjcHVpZCA9PSAwKQorKwkJcmV0 dXJuIENQVV8zWFhfRVMxMDsKKyAJZWxzZQorLQkJcmV0dXJuIENQVV8zNDMwX0VTMjsKKysJCXJl dHVybiAoY3B1aWQgPj4gQ1BVXzNYWF9JRF9TSElGVCkgJiAweGY7CisrfQorKworKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysgKiBQcmludCBDUFUgaW5mb3Jt YXRpb24KKysgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworK2lu dCBwcmludF9jcHVpbmZvICh2b2lkKQorK3sKKysJY2hhciAqY3B1X2ZhbWlseV9zLCAqY3B1X3Ms ICpzZWNfczsKKysKKysJc3dpdGNoIChnZXRfY3B1X2ZhbWlseSgpKSB7CisrCWNhc2UgQ1BVX09N QVAzNFhYOgorKwkJY3B1X2ZhbWlseV9zID0gIk9NQVAiOworKwkJc3dpdGNoIChnZXRfY3B1X3R5 cGUoKSkgeworKwkJY2FzZSBPTUFQMzUwMzoKKysJCQljcHVfcyA9ICIzNTAzIjsKKysJCQlicmVh azsKKysJCWNhc2UgT01BUDM1MTU6CisrCQkJY3B1X3MgPSAiMzUxNSI7CisrCQkJYnJlYWs7Cisr CQljYXNlIE9NQVAzNTI1OgorKwkJCWNwdV9zID0gIjM1MjUiOworKwkJCWJyZWFrOworKwkJY2Fz ZSBPTUFQMzUzMDoKKysJCQljcHVfcyA9ICIzNTMwIjsKKysJCQlicmVhazsKKysJCWRlZmF1bHQ6 CisrCQkJY3B1X3MgPSAiMzVYWCI7CisrCQkJYnJlYWs7CisrCQl9CisrCQlicmVhazsKKysJY2Fz ZSBDUFVfQU0zNVhYOgorKwkJY3B1X2ZhbWlseV9zID0gIkFNIjsKKysJCXN3aXRjaCAoZ2V0X2Nw dV90eXBlKCkpIHsKKysJCWNhc2UgQU0zNTA1OgorKwkJCWNwdV9zID0gIjM1MDUiOworKwkJCWJy ZWFrOworKwkJY2FzZSBBTTM1MTc6CisrCQkJY3B1X3MgPSAiMzUxNyI7CisrCQkJYnJlYWs7Cisr CQlkZWZhdWx0OgorKwkJCWNwdV9zID0gIjM1WFgiOworKwkJCWJyZWFrOworKwkJfQorKwkJYnJl YWs7CisrCWNhc2UgQ1BVX09NQVAzNlhYOgorKwkJY3B1X2ZhbWlseV9zID0gIk9NQVAiOworKwkJ c3dpdGNoIChnZXRfY3B1X3R5cGUoKSkgeworKwkJY2FzZSBPTUFQMzczMDoKKysJCQljcHVfcyA9 ICIzNjMwLzM3MzAiOworKwkJCWJyZWFrOworKwkJZGVmYXVsdDoKKysJCQljcHVfcyA9ICIzNlhY LzM3WFgiOworKwkJCWJyZWFrOworKwkJfQorKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQljcHVf ZmFtaWx5X3MgPSAiT01BUCI7CisrCQljcHVfcyA9ICIzNVhYIjsKKysJfQorIAorKwlzd2l0Y2gg KGdldF9kZXZpY2VfdHlwZSgpKSB7CisrCWNhc2UgVFNUX0RFVklDRToKKysJCXNlY19zID0gIlRT VCI7CisrCQlicmVhazsKKysJY2FzZSBFTVVfREVWSUNFOgorKwkJc2VjX3MgPSAiRU1VIjsKKysJ CWJyZWFrOworKwljYXNlIEhTX0RFVklDRToKKysJCXNlY19zID0gIkhTIjsKKysJCWJyZWFrOwor KwljYXNlIEdQX0RFVklDRToKKysJCXNlY19zID0gIkdQIjsKKysJCWJyZWFrOworKwlkZWZhdWx0 OgorKwkJc2VjX3MgPSAiPyI7CisrCX0KKysKKysJcHJpbnRmKCIlcyVzLSVzIEVTJXNcbiIsCisr CQkJY3B1X2ZhbWlseV9zLCBjcHVfcywgc2VjX3MsIHJldl9zW2dldF9jcHVfcmV2KCldKTsKKysK KysJcmV0dXJuIDA7CisgfQorIAorIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKK0BAIC0xOTAsNiArMzQ1LDQ3IEBACisgfQorIAorIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyAqIFJv dXRpbmU6IGdldF9ib2FyZF9yZXZpc2lvbgorKyAqIERlc2NyaXB0aW9uOiBSZXR1cm5zIHRoZSBi b2FyZCByZXZpc2lvbgorKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKytpbnQgZ2V0X2JvYXJkX3JldmlzaW9uKHZvaWQp CisreworKwlpbnQgcmV2aXNpb247CisrCXVuc2lnbmVkIGNoYXIgZGF0YTsKKysKKysJLyogYm9h cmQgcmV2aXNpb25zIDw9IFIyNDEwIGNvbm5lY3QgNDAzMCBpcnFfMSB0byBncGlvMTEyICAgICAg ICAgICAgICovCisrCS8qIHRoZXNlIGJvYXJkcyBzaG91bGQgcmV0dXJuIGEgcmV2aXNpb24gbnVt YmVyIG9mIDAgICAgICAgICAgICAgICAgICAqLworKwkvKiB0aGUgY29kZSBiZWxvdyBmb3JjZXMg YSA0MDMwIFJUQyBpcnEgdG8gZW5zdXJlIHRoYXQgZ3BpbzExMiBpcyBsb3cgKi8KKysJZGF0YSA9 IDB4MDE7CisrCWkyY193cml0ZSgweDRCLCAweDI5LCAxLCAmZGF0YSwgMSk7CisrCWRhdGEgPSAw eDBjOworKwlpMmNfd3JpdGUoMHg0QiwgMHgyYiwgMSwgJmRhdGEsIDEpOworKwlpMmNfcmVhZCgw eDRCLCAweDJhLCAxLCAmZGF0YSwgMSk7CisrCisrCWlmICghb21hcF9yZXF1ZXN0X2dwaW8oMTEy KSAmJgorKwkgICAgIW9tYXBfcmVxdWVzdF9ncGlvKDExMykgJiYKKysJICAgICFvbWFwX3JlcXVl c3RfZ3BpbygxMTUpKSB7CisrCisrCQlvbWFwX3NldF9ncGlvX2RpcmVjdGlvbigxMTIsIDEpOwor KwkJb21hcF9zZXRfZ3Bpb19kaXJlY3Rpb24oMTEzLCAxKTsKKysJCW9tYXBfc2V0X2dwaW9fZGly ZWN0aW9uKDExNSwgMSk7CisrCisrCQlyZXZpc2lvbiA9IG9tYXBfZ2V0X2dwaW9fZGF0YWluKDEx NSkgPDwgMiB8CisrCQkJICAgb21hcF9nZXRfZ3Bpb19kYXRhaW4oMTEzKSA8PCAxIHwKKysJCQkg ICBvbWFwX2dldF9ncGlvX2RhdGFpbigxMTIpOworKworKwkJb21hcF9mcmVlX2dwaW8oMTEyKTsK KysJCW9tYXBfZnJlZV9ncGlvKDExMyk7CisrCQlvbWFwX2ZyZWVfZ3BpbygxMTUpOworKwl9IGVs c2UgeworKwkJcHJpbnRmKCJFcnJvcjogdW5hYmxlIHRvIGFjcXVpcmUgYm9hcmQgcmV2aXNpb24g R1BJT3NcbiIpOworKwkJcmV2aXNpb24gPSAtMTsKKysJfQorKworKwlyZXR1cm4gcmV2aXNpb247 CisrfQorKworKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorICAqIHNyMzIgLSBjbGVhciAmIHNldCBhIHZhbHVlIGluIGEg Yml0IHJhbmdlIGZvciBhIDMyIGJpdCBhZGRyZXNzCisgICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIHZvaWQgc3IzMih1 MzIgYWRkciwgdTMyIHN0YXJ0X2JpdCwgdTMyIG51bV9iaXRzLCB1MzIgdmFsdWUpCitAQCAtMjI1 LDU1ICs0MjEsODQgQEAKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIHZvaWQgY29uZmlnXzM0MzBzZHJhbV9k ZHIodm9pZCkKKyB7CistICAgICAgICAvKiByZXNldCBzZHJjIGNvbnRyb2xsZXIgKi8KKy0gICAg ICAgIF9fcmF3X3dyaXRlbChTT0ZUUkVTRVQsIFNEUkNfU1lTQ09ORklHKTsKKy0gICAgICAgIHdh aXRfb25fdmFsdWUoQklUMCwgQklUMCwgU0RSQ19TVEFUVVMsIDEyMDAwMDAwKTsKKy0gICAgICAg IF9fcmF3X3dyaXRlbCgwLCBTRFJDX1NZU0NPTkZJRyk7CistCistICAgICAgICAvKiBzZXR1cCBz ZHJjIHRvIGJhbGwgbXV4ICovCistICAgICAgICBfX3Jhd193cml0ZWwoU0RQX1NEUkNfU0hBUklO RywgU0RSQ19TSEFSSU5HKTsKKy0KKy0gICAgICAgIC8qIFNEUkMgcHV0IGluIHdlYWsgKi8KKy0v LyAgICAgICAgKCoodW5zaWduZWQgaW50KikweDZEMDAwMDhDKSA9IDB4MDAwMDAwMjA7CistCist ICAgICAgICAvKiBTRFJDX01DRkcwIHJlZ2lzdGVyICovCistICAgICAgICAoKih1bnNpZ25lZCBp bnQqKTB4NkQwMDAwODApID0gMHgwMjU4NDA5OTsvL2Zyb20gTWljcm9uCistCistICAgICAgICAv KiBTRFJDX0FDVElNX0NUUkxBMCByZWdpc3RlciAqLworLS8vb3VyIHZhbHVlICAgICAgICAoKih1 bnNpZ25lZCBpbnQqKTB4NkQwMDAwOWMpID0gMHhhMjlkYjRjNjsvLyBmb3IgMTY2TQorLSAgICAg ICAgKCoodW5zaWduZWQgaW50KikweDZEMDAwMDljKSA9IDB4YWE5ZGI0YzY7Ly8gZm9yIDE2Nk0g ZnJvbSBya3cKKy0KKy0gICAgICAgIC8qIFNEUkNfQUNUSU1fQ1RSTEIwIHJlZ2lzdGVyICovCist Ly9mcm9tIG1pY3JvbiAgICgqKHVuc2lnbmVkIGludCopMHg2RDAwMDBhMCkgPSAweDEyMjE0Oy8v IGZvciAxNjZNCistCistLy8gICAgICAgICgqKHVuc2lnbmVkIGludCopMHg2RDAwMDBhMCkgPSAw eDAwMDExNDE3OyBvdXIgdmFsdWUKKy0gICAgICAgICgqKHVuc2lnbmVkIGludCopMHg2RDAwMDBh MCkgPSAweDAwMDExNTE3OworLQorLSAgICAgICAgLyogU0RSQ19SRlJfQ1RSTDAgcmVnaXN0ZXIg Ki8KKy0vL2Zyb20gbWljcm9uICAgKCoodW5zaWduZWQgaW50KikweDZEMDAwMGE0KSA9MHg1NDYw MTsgLy8gZm9yIDE2Nk0KKy0KKy0gICAgICAgICgqKHVuc2lnbmVkIGludCopMHg2RDAwMDBhNCkg PTB4MDAwNERDMDE7CistCistICAgICAgICAvKiBEaXNibGUgUG93ZXIgRG93biBvZiBDS0UgY3V6 IG9mIDEgQ0tFIG9uIGNvbWJvIHBhcnQgKi8KKy0gICAgICAgICgqKHVuc2lnbmVkIGludCopMHg2 RDAwMDA3MCkgPSAweDAwMDAwMDgxOworLQorLSAgICAgICAgLyogU0RSQ19NYW51YWwgY29tbWFu ZCByZWdpc3RlciAqLworLSAgICAgICAgKCoodW5zaWduZWQgaW50KikweDZEMDAwMGE4KSA9IDB4 MDAwMDAwMDA7IC8vIE5PUCBjb21tYW5kCistICAgICAgICBkZWxheSg1MDAwKTsKKy0gICAgICAg ICgqKHVuc2lnbmVkIGludCopMHg2RDAwMDBhOCkgPSAweDAwMDAwMDAxOyAvLyBQcmVjaGFyZ2Ug Y29tbWFuZAorLSAgICAgICAgKCoodW5zaWduZWQgaW50KikweDZEMDAwMGE4KSA9IDB4MDAwMDAw MDI7IC8vIEF1dG8tcmVmcmVzaCBjb21tYW5kCistICAgICAgICAoKih1bnNpZ25lZCBpbnQqKTB4 NkQwMDAwYTgpID0gMHgwMDAwMDAwMjsgLy8gQXV0by1yZWZyZXNoIGNvbW1hbmQKKy0KKy0gICAg ICAgIC8qIFNEUkMgTVIwIHJlZ2lzdGVyICovCistICAgICAgICAoKihpbnQqKTB4NkQwMDAwODQp ID0gMHgwMDAwMDAzMjsgLy8gQnVyc3QgbGVuZ3RoID00CistICAgICAgICAvLyBDQVMgbGF0ZW5j eSA9IDMKKy0gICAgICAgIC8vIFdyaXRlIEJ1cnN0ID0gUmVhZCBCdXJzdAorLSAgICAgICAgLy8g U2VyaWFsIE1vZGUKKy0KKy0gICAgICAgIC8qIFNEUkMgRExMQSBjb250cm9sIHJlZ2lzdGVyICov CistICAgICAgICAoKih1bnNpZ25lZCBpbnQqKTB4NkQwMDAwNjApID0gMHgwMDAwQTsKKy0gICAg ICAgIGRlbGF5KDB4MjAwMDApOyAvLyBzb21lIGRlbGF5CisrCS8qIHJlc2V0IHNkcmMgY29udHJv bGxlciAqLworKwlfX3Jhd193cml0ZWwoU09GVFJFU0VULCBTRFJDX1NZU0NPTkZJRyk7CisrCXdh aXRfb25fdmFsdWUoQklUMCwgQklUMCwgU0RSQ19TVEFUVVMsIDEyMDAwMDAwKTsKKysJX19yYXdf d3JpdGVsKDAsIFNEUkNfU1lTQ09ORklHKTsKKysKKysJLyogc2V0dXAgc2RyYyB0byBiYWxsIG11 eCAqLworKwlfX3Jhd193cml0ZWwoU0RQX1NEUkNfU0hBUklORywgU0RSQ19TSEFSSU5HKTsKKysK KysJc3dpdGNoIChnZXRfYm9hcmRfcmV2aXNpb24oKSkgeworKwljYXNlIDA6IC8qIE1pY3JvbiAx Mjg2TUIvMjU2TUIsIDEvMiBiYW5rcyBvZiAxMjhNQiAqLworKwkJX19yYXdfd3JpdGVsKDB4MSwg U0RSQ19DU19DRkcpOyAvKiAxMjhNQi9iYW5rICovCisrCQlfX3Jhd193cml0ZWwoU0RQX1NEUkNf TURDRkdfMF9ERFIsIFNEUkNfTUNGR18wKTsKKysJCV9fcmF3X3dyaXRlbChTRFBfU0RSQ19NRENG R18wX0REUiwgU0RSQ19NQ0ZHXzEpOworKwkJX19yYXdfd3JpdGVsKE1JQ1JPTl9WX0FDVElNQV8x NjUsIFNEUkNfQUNUSU1fQ1RSTEFfMCk7CisrCQlfX3Jhd193cml0ZWwoTUlDUk9OX1ZfQUNUSU1C XzE2NSwgU0RSQ19BQ1RJTV9DVFJMQl8wKTsKKysJCV9fcmF3X3dyaXRlbChNSUNST05fVl9BQ1RJ TUFfMTY1LCBTRFJDX0FDVElNX0NUUkxBXzEpOworKwkJX19yYXdfd3JpdGVsKE1JQ1JPTl9WX0FD VElNQl8xNjUsIFNEUkNfQUNUSU1fQ1RSTEJfMSk7CisrCQlfX3Jhd193cml0ZWwoU0RQXzM0MzBf U0RSQ19SRlJfQ1RSTF8xNjVNSHosIFNEUkNfUkZSX0NUUkxfMCk7CisrCQlfX3Jhd193cml0ZWwo U0RQXzM0MzBfU0RSQ19SRlJfQ1RSTF8xNjVNSHosIFNEUkNfUkZSX0NUUkxfMSk7CisrCQlicmVh azsKKysJY2FzZSAxOiAvKiBNaWNyb24gMjU2TUIvNTEyTUIsIDEvMiBiYW5rcyBvZiAyNTZNQiAq LworKwkJX19yYXdfd3JpdGVsKDB4MiwgU0RSQ19DU19DRkcpOyAvKiAyNTZNQi9iYW5rICovCisr CQlfX3Jhd193cml0ZWwoU0RQX1NEUkNfTURDRkdfMF9ERFJfTUlDUk9OX1hNLCBTRFJDX01DRkdf MCk7CisrCQlfX3Jhd193cml0ZWwoU0RQX1NEUkNfTURDRkdfMF9ERFJfTUlDUk9OX1hNLCBTRFJD X01DRkdfMSk7CisrCQlfX3Jhd193cml0ZWwoTUlDUk9OX1ZfQUNUSU1BXzE2NSwgU0RSQ19BQ1RJ TV9DVFJMQV8wKTsKKysJCV9fcmF3X3dyaXRlbChNSUNST05fVl9BQ1RJTUJfMTY1LCBTRFJDX0FD VElNX0NUUkxCXzApOworKwkJX19yYXdfd3JpdGVsKE1JQ1JPTl9WX0FDVElNQV8xNjUsIFNEUkNf QUNUSU1fQ1RSTEFfMSk7CisrCQlfX3Jhd193cml0ZWwoTUlDUk9OX1ZfQUNUSU1CXzE2NSwgU0RS Q19BQ1RJTV9DVFJMQl8xKTsKKysJCV9fcmF3X3dyaXRlbChTRFBfMzQzMF9TRFJDX1JGUl9DVFJM XzE2NU1IeiwgU0RSQ19SRlJfQ1RSTF8wKTsKKysJCV9fcmF3X3dyaXRlbChTRFBfMzQzMF9TRFJD X1JGUl9DVFJMXzE2NU1IeiwgU0RSQ19SRlJfQ1RSTF8xKTsKKysJCWJyZWFrOworKwljYXNlIDI6 IC8qIEh5bml4IDI1Nk1CLzUxMk1CLCAxLzIgYmFua3Mgb2YgMjU2TUIgKi8KKysJCV9fcmF3X3dy aXRlbCgweDIsIFNEUkNfQ1NfQ0ZHKTsgLyogMjU2TUIvYmFuayAqLworKwkJX19yYXdfd3JpdGVs KFNEUF9TRFJDX01EQ0ZHXzBfRERSX0hZTklYLCBTRFJDX01DRkdfMCk7CisrCQlfX3Jhd193cml0 ZWwoU0RQX1NEUkNfTURDRkdfMF9ERFJfSFlOSVgsIFNEUkNfTUNGR18xKTsKKysJCV9fcmF3X3dy aXRlbChIWU5JWF9WX0FDVElNQV8xNjUsIFNEUkNfQUNUSU1fQ1RSTEFfMCk7CisrCQlfX3Jhd193 cml0ZWwoSFlOSVhfVl9BQ1RJTUJfMTY1LCBTRFJDX0FDVElNX0NUUkxCXzApOworKwkJX19yYXdf d3JpdGVsKEhZTklYX1ZfQUNUSU1BXzE2NSwgU0RSQ19BQ1RJTV9DVFJMQV8xKTsKKysJCV9fcmF3 X3dyaXRlbChIWU5JWF9WX0FDVElNQl8xNjUsIFNEUkNfQUNUSU1fQ1RSTEJfMSk7CisrCQlfX3Jh d193cml0ZWwoU0RQXzM0MzBfU0RSQ19SRlJfQ1RSTF8xNjVNSHosIFNEUkNfUkZSX0NUUkxfMCk7 CisrCQlfX3Jhd193cml0ZWwoU0RQXzM0MzBfU0RSQ19SRlJfQ1RSTF8xNjVNSHosIFNEUkNfUkZS X0NUUkxfMSk7CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCV9fcmF3X3dyaXRlbCgweDEsIFNE UkNfQ1NfQ0ZHKTsgLyogMTI4TUIvYmFuayAqLworKwkJX19yYXdfd3JpdGVsKFNEUF9TRFJDX01E Q0ZHXzBfRERSLCBTRFJDX01DRkdfMCk7CisrCQlfX3Jhd193cml0ZWwoU0RQX1NEUkNfTURDRkdf MF9ERFIsIFNEUkNfTUNGR18xKTsKKysJCV9fcmF3X3dyaXRlbChNSUNST05fVl9BQ1RJTUFfMTY1 LCBTRFJDX0FDVElNX0NUUkxBXzApOworKwkJX19yYXdfd3JpdGVsKE1JQ1JPTl9WX0FDVElNQl8x NjUsIFNEUkNfQUNUSU1fQ1RSTEJfMCk7CisrCQlfX3Jhd193cml0ZWwoTUlDUk9OX1ZfQUNUSU1B XzE2NSwgU0RSQ19BQ1RJTV9DVFJMQV8xKTsKKysJCV9fcmF3X3dyaXRlbChNSUNST05fVl9BQ1RJ TUJfMTY1LCBTRFJDX0FDVElNX0NUUkxCXzEpOworKwkJX19yYXdfd3JpdGVsKFNEUF8zNDMwX1NE UkNfUkZSX0NUUkxfMTY1TUh6LCBTRFJDX1JGUl9DVFJMXzApOworKwkJX19yYXdfd3JpdGVsKFNE UF8zNDMwX1NEUkNfUkZSX0NUUkxfMTY1TUh6LCBTRFJDX1JGUl9DVFJMXzEpOworKwl9CisrCisr CV9fcmF3X3dyaXRlbChTRFBfU0RSQ19QT1dFUl9QT1AsIFNEUkNfUE9XRVIpOworKworKwkvKiBp bml0IHNlcXVlbmNlIGZvciBtRERSL21TRFIgdXNpbmcgbWFudWFsIGNvbW1hbmRzIChERFIgaXMg ZGlmZmVyZW50KSAqLworKwlfX3Jhd193cml0ZWwoQ01EX05PUCwgU0RSQ19NQU5VQUxfMCk7Cisr CV9fcmF3X3dyaXRlbChDTURfTk9QLCBTRFJDX01BTlVBTF8xKTsKKysKKysJZGVsYXkoNTAwMCk7 CisrCisrCV9fcmF3X3dyaXRlbChDTURfUFJFQ0hBUkdFLCBTRFJDX01BTlVBTF8wKTsKKysJX19y YXdfd3JpdGVsKENNRF9QUkVDSEFSR0UsIFNEUkNfTUFOVUFMXzEpOworIAorKwlfX3Jhd193cml0 ZWwoQ01EX0FVVE9SRUZSRVNILCBTRFJDX01BTlVBTF8wKTsKKysJX19yYXdfd3JpdGVsKENNRF9B VVRPUkVGUkVTSCwgU0RSQ19NQU5VQUxfMSk7CisrCisrCV9fcmF3X3dyaXRlbChDTURfQVVUT1JF RlJFU0gsIFNEUkNfTUFOVUFMXzApOworKwlfX3Jhd193cml0ZWwoQ01EX0FVVE9SRUZSRVNILCBT RFJDX01BTlVBTF8xKTsKKysKKysJLyogc2V0IG1yMCAqLworKwlfX3Jhd193cml0ZWwoU0RQX1NE UkNfTVJfMF9ERFIsIFNEUkNfTVJfMCk7CisrCV9fcmF3X3dyaXRlbChTRFBfU0RSQ19NUl8wX0RE UiwgU0RSQ19NUl8xKTsKKysKKysJLyogc2V0IHVwIGRsbCAqLworKwlfX3Jhd193cml0ZWwoU0RQ X1NEUkNfRExMQUJfQ1RSTCwgU0RSQ19ETExBX0NUUkwpOworKwlkZWxheSgweDIwMDApOwkvKiBn aXZlIHRpbWUgdG8gbG9jayAqLworIH0KKyAjZW5kaWYgLyogQ0ZHXzM0MzBTRFJBTV9ERFIgKi8K KyAKK0BAIC0yODMsMTIgKzUwOCwxNCBAQAorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIHUzMiBnZXRfb3NjX2Nsa19zcGVl ZCh2b2lkKQorIHsKKy0JdTMyIHN0YXJ0LCBjc3RhcnQsIGNlbmQsIGNkaWZmLCB2YWw7CisrCXUz MiBzdGFydCwgY3N0YXJ0LCBjZW5kLCBjZGlmZiwgY2RpdiwgdmFsOworIAorIAl2YWwgPSBfX3Jh d19yZWFkbChQUk1fQ0xLU1JDX0NUUkwpOworLQkvKiBJZiBTWVNfQ0xLIGlzIGJlaW5nIGRpdmlk ZWQgYnkgMiwgcmVtb3ZlIGZvciBub3cgKi8KKy0JdmFsID0gKHZhbCAmICh+QklUNykpIHwgQklU NjsKKy0JX19yYXdfd3JpdGVsKHZhbCwgUFJNX0NMS1NSQ19DVFJMKTsKKysKKysJaWYgKHZhbCAm IFNZU0NMS0RJVl8yKQorKwkJY2RpdiA9IDI7CisrCWVsc2UKKysJCWNkaXYgPSAxOworIAorIAkv KiBlbmFibGUgdGltZXIyICovCisgCXZhbCA9IF9fcmF3X3JlYWRsKENNX0NMS1NFTF9XS1VQKSB8 IEJJVDA7CitAQCAtMzEyLDYgKzUzOSw3IEBACisgCXdoaWxlIChfX3Jhd19yZWFkbChTMzJLX0NS KSA8IChzdGFydCArIDIwKSk7CS8qIHdhaXQgZm9yIDQwIGN5Y2xlcyAqLworIAljZW5kID0gX19y YXdfcmVhZGwoT01BUDM0WFhfR1BUMSArIFRDUlIpOwkvKiBnZXQgZW5kIHN5c19jbGsgY291bnQg Ki8KKyAJY2RpZmYgPSBjZW5kIC0gY3N0YXJ0OwkJCQkvKiBnZXQgZWxhcHNlZCB0aWNrcyAqLwor KwljZGlmZiAqPSBjZGl2OworIAorIAkvKiBiYXNlZCBvbiBudW1iZXIgb2YgdGlja3MgYXNzaWdu IHNwZWVkICovCisgCWlmIChjZGlmZiA+IDE5MDAwKQorQEAgLTM2MywxNyArNTkxLDE5IEBACisg CW9zY19jbGsgPSBnZXRfb3NjX2Nsa19zcGVlZCgpOworIAlnZXRfc3lzX2Nsa2luX3NlbChvc2Nf Y2xrLCAmc3lzX2Nsa2luX3NlbCk7CisgCistCXNyMzIoUFJNX0NMS1NFTCwgMCwgMywgc3lzX2Ns a2luX3NlbCk7IC8qIHNldCBpbnB1dCBjcnlzdGFsIHNwZWVkICovCisrCXNyMzIoUFJNX0NMS1NF TCwgMCwgMywgc3lzX2Nsa2luX3NlbCk7CS8qIHNldCBpbnB1dCBjcnlzdGFsIHNwZWVkICovCisg CisgCS8qIElmIHRoZSBpbnB1dCBjbG9jayBpcyBncmVhdGVyIHRoYW4gMTkuMk0gYWx3YXlzIGRp dmlkZS8yICovCisgCWlmIChzeXNfY2xraW5fc2VsID4gMikgeworLQkJc3IzMihQUk1fQ0xLU1JD X0NUUkwsIDYsIDIsIDIpOy8qIGlucHV0IGNsb2NrIGRpdmlkZXIgKi8KKy0JCWNsa19pbmRleCA9 IHN5c19jbGtpbl9zZWwvMjsKKysJCXNyMzIoUFJNX0NMS1NSQ19DVFJMLCA2LCAyLCAyKTsJLyog aW5wdXQgY2xvY2sgZGl2aWRlciAqLworKwkJY2xrX2luZGV4ID0gc3lzX2Nsa2luX3NlbCAvIDI7 CisgCX0gZWxzZSB7CistCQlzcjMyKFBSTV9DTEtTUkNfQ1RSTCwgNiwgMiwgMSk7LyogaW5wdXQg Y2xvY2sgZGl2aWRlciAqLworKwkJc3IzMihQUk1fQ0xLU1JDX0NUUkwsIDYsIDIsIDEpOwkvKiBp bnB1dCBjbG9jayBkaXZpZGVyICovCisgCQljbGtfaW5kZXggPSBzeXNfY2xraW5fc2VsOworIAl9 CisgCisrCXNyMzIoUFJNX0NMS1NSQ19DVFJMLCAwLCAyLCAwKTsvKiBCeXBhc3MgbW9kZTogVDIg aW5wdXRzIGEgc3F1YXJlIGNsb2NrICovCisrCisgCS8qIFRoZSBEUExMIHRhYmxlcyBhcmUgZGVm aW5lZCBhY2NvcmRpbmcgdG8gc3lzY2xrIHZhbHVlIGFuZAorIAkgKiBzaWxpY29uIHJldmlzaW9u LiBUaGUgY2xrX2luZGV4IHZhbHVlIHdpbGwgYmUgdXNlZCB0byBnZXQKKyAJICogdGhlIHZhbHVl cyBmb3IgdGhhdCBpbnB1dCBzeXNjbGsgZnJvbSB0aGUgRFBMTCBwYXJhbSB0YWJsZQorQEAgLTM4 NiwzMSArNjE2LDM1IEBACisgCXNyMzIoQ01fQ0xLRU5fUExMX01QVSwgMCwgMywgUExMX0xPV19Q T1dFUl9CWVBBU1MpOworIAl3YWl0X29uX3ZhbHVlKEJJVDAsIDAsIENNX0lETEVTVF9QTExfTVBV LCBMREVMQVkpOworIAorLQkvKiBHZXR0aW5nIHRoZSBiYXNlIGFkZHJlc3Mgb2YgQ29yZSBEUExM IHBhcmFtIHRhYmxlKi8KKy0JZHBsbF9wYXJhbV9wID0gKGRwbGxfcGFyYW0gKilnZXRfY29yZV9k cGxsX3BhcmFtKCk7CisrCS8qIEdldHRpbmcgdGhlIGJhc2UgYWRkcmVzcyBvZiBDb3JlIERQTEwg cGFyYW0gdGFibGUgKi8KKysJZHBsbF9wYXJhbV9wID0gKGRwbGxfcGFyYW0gKikgZ2V0X2NvcmVf ZHBsbF9wYXJhbSgpOworIAkvKiBNb3ZpbmcgaXQgdG8gdGhlIHJpZ2h0IHN5c2NsayBhbmQgRVMg cmV2IGJhc2UgKi8KKy0JZHBsbF9wYXJhbV9wID0gZHBsbF9wYXJhbV9wICsgMipjbGtfaW5kZXgg KyBzaWxfaW5kZXg7CisrCWRwbGxfcGFyYW1fcCA9IGRwbGxfcGFyYW1fcCArIDMgKiBjbGtfaW5k ZXggKyBzaWxfaW5kZXg7CisgCS8qIENPUkUgRFBMTCAqLworIAkvKiBzcjMyKENNX0NMS1NFTDJf RU1VKSBzZXQgb3ZlcnJpZGUgdG8gd29yayB3aGVuIGFzbGVlcCAqLworIAlzcjMyKENNX0NMS0VO X1BMTCwgMCwgMywgUExMX0ZBU1RfUkVMT0NLX0JZUEFTUyk7CisgCXdhaXRfb25fdmFsdWUoQklU MCwgMCwgQ01fSURMRVNUX0NLR0VOLCBMREVMQVkpOworKworKwkgLyogRm9yIDM0MzAgRVMxLjAg RXJyYXRhIDEuNTAsIGRlZmF1bHQgdmFsdWUgZGlyZWN0bHkgZG9lc250CisrCXdvcmsuIHdyaXRl IGFub3RoZXIgdmFsdWUgYW5kIHRoZW4gZGVmYXVsdCB2YWx1ZS4gKi8KKysJc3IzMihDTV9DTEtT RUwxX0VNVSwgMTYsIDUsIENPUkVfTTNYMiArIDEpOyAgICAgLyogbTN4MiAqLworIAlzcjMyKENN X0NMS1NFTDFfRU1VLCAxNiwgNSwgQ09SRV9NM1gyKTsJLyogbTN4MiAqLworIAlzcjMyKENNX0NM S1NFTDFfUExMLCAyNywgMiwgZHBsbF9wYXJhbV9wLT5tMik7CS8qIFNldCBNMiAqLworIAlzcjMy KENNX0NMS1NFTDFfUExMLCAxNiwgMTEsIGRwbGxfcGFyYW1fcC0+bSk7CS8qIFNldCBNICovCisg CXNyMzIoQ01fQ0xLU0VMMV9QTEwsIDgsIDcsIGRwbGxfcGFyYW1fcC0+bik7CS8qIFNldCBOICov CistCXNyMzIoQ01fQ0xLU0VMMV9QTEwsIDYsIDEsIDApOwkJCS8qIDk2TSBTcmMgKi8KKysJc3Iz MihDTV9DTEtTRUwxX1BMTCwgNiwgMSwgMCk7CS8qIDk2TSBTcmMgKi8KKyAJc3IzMihDTV9DTEtT RUxfQ09SRSwgOCwgNCwgQ09SRV9TU0lfRElWKTsJLyogc3NpICovCisgCXNyMzIoQ01fQ0xLU0VM X0NPUkUsIDQsIDIsIENPUkVfRlVTQl9ESVYpOwkvKiBmc3VzYiAqLworIAlzcjMyKENNX0NMS1NF TF9DT1JFLCAyLCAyLCBDT1JFX0w0X0RJVik7CS8qIGw0ICovCisgCXNyMzIoQ01fQ0xLU0VMX0NP UkUsIDAsIDIsIENPUkVfTDNfRElWKTsJLyogbDMgKi8KKy0Jc3IzMihDTV9DTEtTRUxfR0ZYLCAw LCAzLCBHRlhfRElWKTsJCS8qIGdmeCAqLworLQlzcjMyKENNX0NMS1NFTF9XS1VQLCAxLCAyLCBX S1VQX1JTTSk7CQkvKiByZXNldCBtZ3IgKi8KKysJc3IzMihDTV9DTEtTRUxfR0ZYLCAwLCAzLCBH RlhfRElWKTsJLyogZ2Z4ICovCisrCXNyMzIoQ01fQ0xLU0VMX1dLVVAsIDEsIDIsIFdLVVBfUlNN KTsJLyogcmVzZXQgbWdyICovCisgCXNyMzIoQ01fQ0xLRU5fUExMLCA0LCA0LCBkcGxsX3BhcmFt X3AtPmZzZWwpOwkvKiBGUkVRU0VMICovCistCXNyMzIoQ01fQ0xLRU5fUExMLCAwLCAzLCBQTExf TE9DSyk7CQkvKiBsb2NrIG1vZGUgKi8KKysJc3IzMihDTV9DTEtFTl9QTEwsIDAsIDMsIFBMTF9M T0NLKTsJLyogbG9jayBtb2RlICovCisgCXdhaXRfb25fdmFsdWUoQklUMCwgMSwgQ01fSURMRVNU X0NLR0VOLCBMREVMQVkpOworIAorLQkvKiBHZXR0aW5nIHRoZSBiYXNlIGFkZHJlc3MgdG8gUEVS ICBEUExMIHBhcmFtIHRhYmxlKi8KKy0JZHBsbF9wYXJhbV9wID0gKGRwbGxfcGFyYW0gKilnZXRf cGVyX2RwbGxfcGFyYW0oKTsKKysJLyogR2V0dGluZyB0aGUgYmFzZSBhZGRyZXNzIHRvIFBFUiAg RFBMTCBwYXJhbSB0YWJsZSAqLworKwlkcGxsX3BhcmFtX3AgPSAoZHBsbF9wYXJhbSAqKSBnZXRf cGVyX2RwbGxfcGFyYW0oKTsKKyAJLyogTW92aW5nIGl0IHRvIHRoZSByaWdodCBzeXNjbGsgYmFz ZSAqLworIAlkcGxsX3BhcmFtX3AgPSBkcGxsX3BhcmFtX3AgKyBjbGtfaW5kZXg7CisgCS8qIFBF UiBEUExMICovCitAQCAtNDIwLDI5ICs2NTQsMzkgQEAKKyAJc3IzMihDTV9DTEtTRUxfQ0FNLCAw LCA1LCBQRVJfTTVYMik7CS8qIHNldCBNNSAqLworIAlzcjMyKENNX0NMS1NFTF9EU1MsIDAsIDUs IFBFUl9NNFgyKTsJLyogc2V0IE00ICovCisgCXNyMzIoQ01fQ0xLU0VMX0RTUywgOCwgNSwgUEVS X00zWDIpOwkvKiBzZXQgTTMgKi8KKy0Jc3IzMihDTV9DTEtTRUwzX1BMTCwgMCwgNSwgZHBsbF9w YXJhbV9wLT5tMik7CS8qIHNldCBNMiAqLworLQlzcjMyKENNX0NMS1NFTDJfUExMLCA4LCAxMSwg ZHBsbF9wYXJhbV9wLT5tKTsJLyogc2V0IG0gKi8KKy0Jc3IzMihDTV9DTEtTRUwyX1BMTCwgMCwg NywgZHBsbF9wYXJhbV9wLT5uKTsJLyogc2V0IG4gKi8KKy0Jc3IzMihDTV9DTEtFTl9QTEwsIDIw LCA0LCBkcGxsX3BhcmFtX3AtPmZzZWwpOy8qIEZSRVFTRUwgKi8KKysKKysJaWYgKGdldF9jcHVf ZmFtaWx5KCkgPT0gQ1BVX09NQVAzNlhYKSB7CisrCSAgICAgICAgc3IzMihDTV9DTEtTRUwzX1BM TCwgMCwgNSwgQ09SRV9EUExMX1BBUkFNX00yKTsgLyogc2V0IE0yICovCisrCSAgICAgICAgc3Iz MihDTV9DTEtTRUwyX1BMTCwgOCwgMTEsIENPUkVfRFBMTF9QQVJBTV9NKTsgLyogc2V0IG0gKi8K KysJICAgICAgICBzcjMyKENNX0NMS1NFTDJfUExMLCAwLCA3LCBDT1JFX0RQTExfUEFSQU1fTik7 ICAvKiBzZXQgbiAqLworKwl9IGVsc2UgeworKwkJc3IzMihDTV9DTEtTRUwzX1BMTCwgMCwgNSwg ZHBsbF9wYXJhbV9wLT5tMik7CS8qIHNldCBNMiAqLworKwkJc3IzMihDTV9DTEtTRUwyX1BMTCwg OCwgMTEsIGRwbGxfcGFyYW1fcC0+bSk7CS8qIHNldCBtICovCisrCQlzcjMyKENNX0NMS1NFTDJf UExMLCAwLCA3LCBkcGxsX3BhcmFtX3AtPm4pOwkvKiBzZXQgbiAqLworKwl9CisrCisrCXNyMzIo Q01fQ0xLRU5fUExMLCAyMCwgNCwgZHBsbF9wYXJhbV9wLT5mc2VsKTsJLyogRlJFUVNFTCAqLwor IAlzcjMyKENNX0NMS0VOX1BMTCwgMTYsIDMsIFBMTF9MT0NLKTsJLyogbG9jayBtb2RlICovCisg CXdhaXRfb25fdmFsdWUoQklUMSwgMiwgQ01fSURMRVNUX0NLR0VOLCBMREVMQVkpOworIAorLQkv KiBHZXR0aW5nIHRoZSBiYXNlIGFkZHJlc3MgdG8gTVBVIERQTEwgcGFyYW0gdGFibGUqLworLQlk cGxsX3BhcmFtX3AgPSAoZHBsbF9wYXJhbSAqKWdldF9tcHVfZHBsbF9wYXJhbSgpOworKwkvKiBH ZXR0aW5nIHRoZSBiYXNlIGFkZHJlc3MgdG8gTVBVIERQTEwgcGFyYW0gdGFibGUgKi8KKysJZHBs bF9wYXJhbV9wID0gKGRwbGxfcGFyYW0gKikgZ2V0X21wdV9kcGxsX3BhcmFtKCk7CisrCisgCS8q IE1vdmluZyBpdCB0byB0aGUgcmlnaHQgc3lzY2xrIGFuZCBFUyByZXYgYmFzZSAqLworLQlkcGxs X3BhcmFtX3AgPSBkcGxsX3BhcmFtX3AgKyAyKmNsa19pbmRleCArIHNpbF9pbmRleDsKKysJZHBs bF9wYXJhbV9wID0gZHBsbF9wYXJhbV9wICsgMyAqIGNsa19pbmRleCArIHNpbF9pbmRleDsKKysK KyAJLyogTVBVIERQTEwgKHVubG9ja2VkIGFscmVhZHkpICovCisgCXNyMzIoQ01fQ0xLU0VMMl9Q TExfTVBVLCAwLCA1LCBkcGxsX3BhcmFtX3AtPm0yKTsJLyogU2V0IE0yICovCisgCXNyMzIoQ01f Q0xLU0VMMV9QTExfTVBVLCA4LCAxMSwgZHBsbF9wYXJhbV9wLT5tKTsJLyogU2V0IE0gKi8KKyAJ c3IzMihDTV9DTEtTRUwxX1BMTF9NUFUsIDAsIDcsIGRwbGxfcGFyYW1fcC0+bik7CS8qIFNldCBO ICovCisgCXNyMzIoQ01fQ0xLRU5fUExMX01QVSwgNCwgNCwgZHBsbF9wYXJhbV9wLT5mc2VsKTsJ LyogRlJFUVNFTCAqLworLQlzcjMyKENNX0NMS0VOX1BMTF9NUFUsIDAsIDMsIFBMTF9MT0NLKTsg LyogbG9jayBtb2RlICovCisrCXNyMzIoQ01fQ0xLRU5fUExMX01QVSwgMCwgMywgUExMX0xPQ0sp OwkvKiBsb2NrIG1vZGUgKi8KKyAJd2FpdF9vbl92YWx1ZShCSVQwLCAxLCBDTV9JRExFU1RfUExM X01QVSwgTERFTEFZKTsKKyAKKy0JLyogR2V0dGluZyB0aGUgYmFzZSBhZGRyZXNzIHRvIElWQSBE UExMIHBhcmFtIHRhYmxlKi8KKy0JZHBsbF9wYXJhbV9wID0gKGRwbGxfcGFyYW0gKilnZXRfaXZh X2RwbGxfcGFyYW0oKTsKKysJLyogR2V0dGluZyB0aGUgYmFzZSBhZGRyZXNzIHRvIElWQSBEUExM IHBhcmFtIHRhYmxlICovCisrCWRwbGxfcGFyYW1fcCA9IChkcGxsX3BhcmFtICopIGdldF9pdmFf ZHBsbF9wYXJhbSgpOworIAkvKiBNb3ZpbmcgaXQgdG8gdGhlIHJpZ2h0IHN5c2NsayBhbmQgRVMg cmV2IGJhc2UgKi8KKy0JZHBsbF9wYXJhbV9wID0gZHBsbF9wYXJhbV9wICsgMipjbGtfaW5kZXgg KyBzaWxfaW5kZXg7CisrCWRwbGxfcGFyYW1fcCA9IGRwbGxfcGFyYW1fcCArIDMgKiBjbGtfaW5k ZXggKyBzaWxfaW5kZXg7CisgCS8qIElWQSBEUExMIChzZXQgdG8gMTIqMjA9MjQwTUh6KSAqLwor IAlzcjMyKENNX0NMS0VOX1BMTF9JVkEyLCAwLCAzLCBQTExfU1RPUCk7CisgCXdhaXRfb25fdmFs dWUoQklUMCwgMCwgQ01fSURMRVNUX1BMTF9JVkEyLCBMREVMQVkpOworQEAgLTUzNiwyMCArNzgw LDExIEBACisgCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyAgKiBSb3V0aW5lOiBtaXNjX2luaXRfcgorLSAqIERlc2NyaXB0aW9uOiBJ bml0IGV0aGVybmV0IChkb25lIGhlcmUgc28gdWRlbGF5IHdvcmtzKQorICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyBpbnQgbWlzY19p bml0X3Iodm9pZCkKKyB7CistI2lmZGVmIENPTkZJR19NTUMKKy0JLyogUkVNT1ZFISEgZm9yIHBy b3RvIGJvYXJkcyBvbmx5ICovCistCS8qIHNldCB2YXV4MiB0byAyLjhWICovCistCXVuc2lnbmVk IGNoYXIgYnl0ZSA9IDB4MjA7CistCWkyY193cml0ZSgweDRCLCAweDc2LCAxLCAmYnl0ZSwgMSk7 CistCWJ5dGUgPSAweDA5OworLQlpMmNfd3JpdGUoMHg0QiwgMHg3OSwgMSwgJmJ5dGUsIDEpOwor LQorLQl1ZGVsYXkoNTAwMCk7CistI2VuZGlmCisrCXByaW50X2NwdWluZm8oKTsKKysJcHJpbnRm KCJCb2FyZCByZXZpc2lvbjogJWRcbiIsIGdldF9ib2FyZF9yZXZpc2lvbigpKTsKKyAJcmV0dXJu IDA7CisgfQorIAorQEAgLTYxNiw2ICs4NTEsMTAgQEAKKyAKKyAjZW5kaWYKKyAKKysJLyogRW5h YmxlIEdQSU8gNCwgNSwgJiA2IGNsb2NrcyAqLworKwlzcjMyKENNX0ZDTEtFTl9QRVIsIDE3LCAz LCAweDcpOworKwlzcjMyKENNX0lDTEtFTl9QRVIsIDE3LCAzLCAweDcpOworKworICNpZmRlZiBD T05GSUdfRFJJVkVSX09NQVAzNFhYX0kyQworIAkvKiBUdXJuIG9uIGFsbCAzIEkyQyBjbG9ja3Mg Ki8KKyAJc3IzMihDTV9GQ0xLRU4xX0NPUkUsIDE1LCAzLCAweDcpOworQEAgLTYzOCwxMCArODc3 LDYgQEAKKyAJc3IzMihDTV9GQ0xLRU5fUEVSLCAwLCAzMiwgRkNLX1BFUl9PTik7CisgCXNyMzIo Q01fSUNMS0VOX1BFUiwgMCwgMzIsIElDS19QRVJfT04pOworIAorLQkvKiBFbmFibGUgR1BJTzUg Y2xvY2tzIGZvciBibGlua3kgTEVEcyAqLworLQlzcjMyKENNX0ZDTEtFTl9QRVIsIDE2LCAxLCAw eDEpOwkvKiBGQ0tlbiBHUElPNSAqLworLQlzcjMyKENNX0lDTEtFTl9QRVIsIDE2LCAxLCAweDEp OwkvKiBJQ0tlbiBHUElPNSAqLworLQorIAlkZWxheSgxMDAwKTsKKyB9CisgCitAQCAtNzQ4LDYg Kzk4MywxMSBAQAorIAlNVVhfVkFMKENQKERTU19EQVRBMTkpLCAgICAgKElFTiAgfCBQVEQgfCBE SVMgfCBNNCkpIC8qR1BJT184OSovXAorIAlNVVhfVkFMKENQKERTU19EQVRBMjApLCAgICAgKElF TiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT185MCovXAorIAlNVVhfVkFMKENQKERTU19EQVRB MjEpLCAgICAgKElFTiAgfCBQVEQgfCBESVMgfCBNNCkpIC8qR1BJT185MSovXAorKwlNVVhfVkFM KENQKENTSTJfRFgwKSwgICAgICAgKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkpIC8qR1BJT18xMTIq L1wKKysJTVVYX1ZBTChDUChDU0kyX0RZMCksICAgICAgIChJRU4gIHwgUFREIHwgRU4gIHwgTTQp KSAvKkdQSU9fMTEzKi9cCisrCU1VWF9WQUwoQ1AoQ1NJMl9EWDEpLCAgICAgICAoSUVOICB8IFBU RCB8IEVOICB8IE00KSkgLypHUElPXzExNCovXAorKwkJCQkJCQkJIC8qIC0gUEVOX0RPV04qL1wK KysJTVVYX1ZBTChDUChDU0kyX0RZMSksICAgICAgIChJRU4gIHwgUFREIHwgRU4gIHwgTTQpKSAv KkdQSU9fMTE1Ki9cCisgCU1VWF9WQUwoQ1AoQ0FNX1dFTiksICAgICAgICAoSUVOICB8IFBURCB8 IERJUyB8IE00KSkgLypHUElPXzE2NyovXAorIAlNVVhfVkFMKENQKE1NQzFfQ0xLKSwgICAgICAg KElESVMgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9DTEsqL1wKKyAJTVVYX1ZBTChDUChNTUMx X0NNRCksICAgICAgIChJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfQ01EKi9cCitAQCAt NzU1LDEwICs5OTUsMTIgQEAKKyAJTVVYX1ZBTChDUChNTUMxX0RBVDEpLCAgICAgIChJRU4gIHwg UFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUMSovXAorIAlNVVhfVkFMKENQKE1NQzFfREFUMiks ICAgICAgKElFTiAgfCBQVFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQyKi9cCisgCU1VWF9WQUwo Q1AoTU1DMV9EQVQzKSwgICAgICAoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDMq L1wKKy0JTVVYX1ZBTChDUChNTUMxX0RBVDQpLCAgICAgIChJRU4gIHwgUFRVIHwgRU4gIHwgTTAp KSAvKk1NQzFfREFUNCovXAorLQlNVVhfVkFMKENQKE1NQzFfREFUNSksICAgICAgKElFTiAgfCBQ VFUgfCBFTiAgfCBNMCkpIC8qTU1DMV9EQVQ1Ki9cCistCU1VWF9WQUwoQ1AoTU1DMV9EQVQ2KSwg ICAgICAoSUVOICB8IFBUVSB8IEVOICB8IE0wKSkgLypNTUMxX0RBVDYqL1wKKy0JTVVYX1ZBTChD UChNTUMxX0RBVDcpLCAgICAgIChJRU4gIHwgUFRVIHwgRU4gIHwgTTApKSAvKk1NQzFfREFUNyov XAorKwlNVVhfVkFMKENQKE1NQzFfREFUNCksICAgICAgKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkp IC8qR1BJT18xMjYqL1wKKysJTVVYX1ZBTChDUChNTUMxX0RBVDUpLCAgICAgIChJRU4gIHwgUFRE IHwgRU4gIHwgTTQpKSAvKkdQSU9fMTI3Ki9cCisrCU1VWF9WQUwoQ1AoTU1DMV9EQVQ2KSwgICAg ICAoSUVOICB8IFBURCB8IEVOICB8IE00KSkgLypHUElPXzEyOCovXAorKwlNVVhfVkFMKENQKE1N QzFfREFUNyksICAgICAgKElFTiAgfCBQVEQgfCBFTiAgfCBNNCkpIC8qR1BJT18xMjkqL1wKKysJ TVVYX1ZBTChDUChNTUMyX0NMSyksICAgICAgIChJRU4gIHwgUFRVIHwgRU4gIHwgTTQpKSAvKkdQ SU9fMTMwKi9cCisrCU1VWF9WQUwoQ1AoTU1DMl9EQVQ3KSwgICAgICAoSUVOICB8IFBUVSB8IEVO ICB8IE00KSkgLypHUElPXzEzOSovXAorIAlNVVhfVkFMKENQKFVBUlQxX1RYKSwgICAgICAgKElE SVMgfCBQVEQgfCBESVMgfCBNMCkpIC8qVUFSVDFfVFgqL1wKKyAJTVVYX1ZBTChDUChVQVJUMV9S VFMpLCAgICAgIChJRElTIHwgUFREIHwgRElTIHwgTTApKSAvKlVBUlQxX1JUUyovXAorIAlNVVhf VkFMKENQKFVBUlQxX0NUUyksICAgICAgKElFTiAgfCBQVFUgfCBESVMgfCBNMCkpIC8qVUFSVDFf Q1RTKi9cCitAQCAtODMzLDYgKzEwNzUsNyBAQAorIAlfX3Jhd193cml0ZWwoMCAsIEdQTUNfQ09O RklHNyArIEdQTUNfQ09ORklHX0NTMCk7CisgCWRlbGF5KDEwMDApOworIAorKyNpZmRlZiBDRkdf TkFORF9LOUYxRzA4UjBBCisgCWlmICgoZ2V0X21lbV90eXBlKCkgPT0gR1BNQ19OQU5EKSB8fCAo Z2V0X21lbV90eXBlKCkgPT0gTU1DX05BTkQpKSB7CisgCQlfX3Jhd193cml0ZWwoTV9OQU5EX0dQ TUNfQ09ORklHMSwgR1BNQ19DT05GSUcxICsgR1BNQ19DT05GSUdfQ1MwKTsKKyAJCV9fcmF3X3dy aXRlbChNX05BTkRfR1BNQ19DT05GSUcyLCBHUE1DX0NPTkZJRzIgKyBHUE1DX0NPTkZJR19DUzAp OworQEAgLTg1Myw5ICsxMDk2LDEwIEBACisgI2VuZGlmCisgCQkJcmV0dXJuIDE7CisgCQl9Cist CisgCX0KKysjZW5kaWYKKyAKKysjaWZkZWYgQ0ZHX09ORU5BTkQKKyAJaWYgKChnZXRfbWVtX3R5 cGUoKSA9PSBHUE1DX09ORU5BTkQpIHx8IChnZXRfbWVtX3R5cGUoKSA9PSBNTUNfT05FTkFORCkp IHsKKyAJCV9fcmF3X3dyaXRlbChPTkVOQU5EX0dQTUNfQ09ORklHMSwgR1BNQ19DT05GSUcxICsg R1BNQ19DT05GSUdfQ1MwKTsKKyAJCV9fcmF3X3dyaXRlbChPTkVOQU5EX0dQTUNfQ09ORklHMiwg R1BNQ19DT05GSUcyICsgR1BNQ19DT05GSUdfQ1MwKTsKK0BAIC04NzcsNiArMTEyMSw4IEBACisg CQkJcmV0dXJuIDE7CisgCQl9CisgCX0KKysjZW5kaWYKKysKKyAJcmV0dXJuIDA7CisgfQorIAor ZGlmZiAtdU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvY29tbW9uL2NtZF9sb2FkLmMgeC1sb2FkLWYy NDM5MzgvY29tbW9uL2NtZF9sb2FkLmMKKy0tLSB4LWxvYWQtZjI0MzkzOC5vcmlnL2NvbW1vbi9j bWRfbG9hZC5jCTIwMTAtMDgtMDMgMTg6MDg6MzguMDAwMDAwMDAwIC0wMzAwCisrKysgeC1sb2Fk LWYyNDM5MzgvY29tbW9uL2NtZF9sb2FkLmMJMjAxMi0wNi0wNyAxNToyMDowNS45MjE2OTU4MTkg LTAzMDAKK0BAIC0yNiw3ICsyNiw3IEBACisgICovCisgI2luY2x1ZGUgPGNvbW1vbi5oPgorIAor LSNkZWZpbmUgcHV0YyBzZXJpYWxfcHV0YworKyNkZWZpbmUgcHV0YyAKKyAjZGVmaW5lIHRzdGMg c2VyaWFsX3RzdGMKKyAKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorZGlmZiAtdU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvY3B1L29tYXA0 L2NvbmZpZy5tayB4LWxvYWQtZjI0MzkzOC9jcHUvb21hcDQvY29uZmlnLm1rCistLS0geC1sb2Fk LWYyNDM5Mzgub3JpZy9jcHUvb21hcDQvY29uZmlnLm1rCTE5NjktMTItMzEgMjE6MDA6MDAuMDAw MDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvY3B1L29tYXA0L2NvbmZpZy5tawkyMDEy LTA2LTA3IDE0OjQ1OjM5LjQ0OTY0ODY2NyAtMDMwMAorQEAgLTAsMCArMSwzMiBAQAorKyMKKysj IChDKSBDb3B5cmlnaHQgMjAwMgorKyMgR2FyeSBKZW5uZWpvaG4sIERFTlggU29mdHdhcmUgRW5n aW5lZXJpbmcsIDxnakBkZW54LmRlPgorKyMKKysjIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qg b2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisrIyBwcm9qZWN0LgorKyMKKysjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKysjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrIyB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKKysjIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBC b3N0b24sCisrIyBNQSAwMjExMS0xMzA3IFVTQQorKyMKKytQTEFURk9STV9SRUxGTEFHUyArPSAt Zm5vLXN0cmljdC1hbGlhc2luZyAgLWZuby1jb21tb24gLWZmaXhlZC1yOCBcCisrCS1tc29mdC1m bG9hdAorKworK1BMQVRGT1JNX0NQUEZMQUdTICs9IC1tYXJjaD1hcm12Ny1hCisrIyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrIworKyMgU3VwcGx5IG9wdGlvbnMgYWNjb3JkaW5nIHRvIGNvbXBpbGVyIHZl cnNpb24KKysjCisrIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrUExBVEZPUk1fQ1BQRkxBR1MgKz0kKGNh bGwgY2Mtb3B0aW9uLC1tYXBjcy0zMiwtbWFiaT1hcGNzLWdudSkKKytQTEFURk9STV9SRUxGTEFH UyArPSQoY2FsbCBjYy1vcHRpb24sLW1zaG9ydC1sb2FkLWJ5dGVzLCQoY2FsbCBjYy1vcHRpb24s LW1hbGlnbm1lbnQtdHJhcHMsKSkKK2RpZmYgLXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2NwdS9v bWFwNC9jcHUuYyB4LWxvYWQtZjI0MzkzOC9jcHUvb21hcDQvY3B1LmMKKy0tLSB4LWxvYWQtZjI0 MzkzOC5vcmlnL2NwdS9vbWFwNC9jcHUuYwkxOTY5LTEyLTMxIDIxOjAwOjAwLjAwMDAwMDAwMCAt MDMwMAorKysrIHgtbG9hZC1mMjQzOTM4L2NwdS9vbWFwNC9jcHUuYwkyMDEyLTA2LTA3IDE0OjQ1 OjM5LjQ0OTY0ODY2NyAtMDMwMAorQEAgLTAsMCArMSw3OSBAQAorKy8qCisrICogKEMpIENvcHly aWdodCAyMDA0LTIwMDkgVGV4YXMgSW5zdHVybWVudHMKKysgKgorKyAqIChDKSBDb3B5cmlnaHQg MjAwMgorKyAqIFN5c2dvIFJlYWwtVGltZSBTb2x1dGlvbnMsIEdtYkggPHd3dy5lbGlub3MuY29t PgorKyAqIE1hcml1cyBHcm9lZ2VyIDxtZ3JvZWdlckBzeXNnby5kZT4KKysgKgorKyAqIChDKSBD b3B5cmlnaHQgMjAwMgorKyAqIEdhcnkgSmVubmVqb2huLCBERU5YIFNvZnR3YXJlIEVuZ2luZWVy aW5nLCA8Z2pAZGVueC5kZT4KKysgKgorKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2Yg cGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisrICogcHJvamVjdC4KKysgKgorKyAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyAqIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCisrICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBT dWl0ZSAzMzAsIEJvc3RvbiwKKysgKiBNQSAwMjExMS0xMzA3IFVTQQorKyAqLworKworKy8qCisr ICogQ1BVIHNwZWNpZmljIGNvZGUKKysgKi8KKysKKysjaW5jbHVkZSA8Y29tbW9uLmg+CisrI2lu Y2x1ZGUgPGFzbS9pby5oPgorKworKy8qIFNlZSBhbHNvIEFSTSBSZWYuIE1hbi4gKi8KKysjZGVm aW5lIEMxX01NVQkJKDE8PDApCQkvKiBtbXUgb2ZmL29uICovCisrI2RlZmluZSBDMV9BTElHTgko MTw8MSkJCS8qIGFsaWdubWVudCBmYXVsdHMgb2ZmL29uICovCisrI2RlZmluZSBDMV9EQwkJKDE8 PDIpCQkvKiBkY2FjaGUgb2ZmL29uICovCisrI2RlZmluZSBDMV9XQgkJKDE8PDMpCQkvKiBtZXJn aW5nIHdyaXRlIGJ1ZmZlciBvbi9vZmYgKi8KKysjZGVmaW5lIEMxX0JJR19FTkRJQU4JKDE8PDcp CQkvKiBiaWcgZW5kaWFuIG9mZi9vbiAqLworKyNkZWZpbmUgQzFfU1lTX1BST1QJKDE8PDgpCQkv KiBzeXN0ZW0gcHJvdGVjdGlvbiAqLworKyNkZWZpbmUgQzFfUk9NX1BST1QJKDE8PDkpCQkvKiBS T00gcHJvdGVjdGlvbiAqLworKyNkZWZpbmUgQzFfSUMJCSgxPDwxMikJCS8qIGljYWNoZSBvZmYv b24gKi8KKysjZGVmaW5lIEMxX0hJR0hfVkVDVE9SUwkoMTw8MTMpIC8qIGxvY2F0aW9uIG9mIHZl Y3RvcnM6IGxvdy9oaWdoIGFkZHJlc3NlcyAqLworKyNkZWZpbmUgUkVTRVJWRURfMQkoMHhmIDw8 IDMpCS8qIG11c3QgYmUgMTExYiBmb3IgUi9XICovCisrCisraW50IGNwdV9pbml0ICh2b2lkKQor K3sKKysJcmV0dXJuIDA7CisrfQorKworK3Vuc2lnbmVkIGludCBjb3J0ZXhfYTlfcmV2KHZvaWQp CisreworKworKwl1bnNpZ25lZCBpbnQgaTsKKysKKysJLyogdHVybiBvZmYgSS9ELWNhY2hlICov CisrCWFzbSAoIm1yYyBwMTUsIDAsICUwLCBjMCwgYzAsIDAiIDogIj1yIiAoaSkpOworKworKwly ZXR1cm4gaTsKKyt9CisrCisrdW5zaWduZWQgaW50IG9tYXBfcmV2aXNpb24odm9pZCkKKyt7Cisr CXVuc2lnbmVkIGludCByZXYgPSBjb3J0ZXhfYTlfcmV2KCk7CisrCisrCXN3aXRjaChyZXYpIHsK KysJY2FzZSAweDQxMEZDMDkxOgorKwkJcmV0dXJuIE9NQVA0NDMwX0VTMV8wOworKwljYXNlIDB4 NDExRkMwOTI6CisrCQlpZiAoX19yYXdfcmVhZGwoMHg0YTAwMjIwNCkgPT0gMHgzYjk1YzAyZikK KysJCQlyZXR1cm4gT01BUDQ0MzBfRVMyXzE7CisrCQllbHNlCisrCQkJcmV0dXJuIE9NQVA0NDMw X0VTMl8wOworKwlkZWZhdWx0OgorKwkJcmV0dXJuIE9NQVA0NDMwX1NJTElDT05fSURfSU5WQUxJ RDsKKysJfQorK30KK2RpZmYgLXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2NwdS9vbWFwNC9NYWtl ZmlsZSB4LWxvYWQtZjI0MzkzOC9jcHUvb21hcDQvTWFrZWZpbGUKKy0tLSB4LWxvYWQtZjI0Mzkz OC5vcmlnL2NwdS9vbWFwNC9NYWtlZmlsZQkxOTY5LTEyLTMxIDIxOjAwOjAwLjAwMDAwMDAwMCAt MDMwMAorKysrIHgtbG9hZC1mMjQzOTM4L2NwdS9vbWFwNC9NYWtlZmlsZQkyMDEyLTA2LTA3IDE0 OjQ1OjM5LjQ0OTY0ODY2NyAtMDMwMAorQEAgLTAsMCArMSw0NCBAQAorKyMKKysjIChDKSBDb3B5 cmlnaHQgMjAwOQorKyMgVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cudGkuY29tPgorKyMgKEMpIENv cHlyaWdodCAyMDAwLTIwMDMKKysjIFdvbGZnYW5nIERlbmssIERFTlggU29mdHdhcmUgRW5naW5l ZXJpbmcsIHdkQGRlbnguZGUuCisrIworKyMgU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBw ZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKysjIHByb2plY3QuCisrIworKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor KyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKysjIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQorKyMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3Rv biwKKysjIE1BIDAyMTExLTEzMDcgVVNBCisrIworKworK2luY2x1ZGUgJChUT1BESVIpL2NvbmZp Zy5taworKworK0xJQgk9IGxpYiQoQ1BVKS5hCisrCisrU1RBUlQJPSBzdGFydC5vCisrT0JKUwk9 IGNwdS5vIG1tYy5vIHN5c19pbmZvLm8KKysKKythbGw6CS5kZXBlbmQgJChTVEFSVCkgJChMSUIp CisrCisrJChMSUIpOgkkKE9CSlMpCisrCSQoQVIpIGNydiAkQCAkKE9CSlMpCisrCisrIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworKworKy5kZXBlbmQ6CU1ha2VmaWxlICQoU1RBUlQ6Lm89LlMpICQoT0JKUzou bz0uYykKKysJCSQoQ0MpIC1NICQoQ0ZMQUdTKSAkKFNUQVJUOi5vPS5TKSAkKE9CSlM6Lm89LmMp ID4gJEAKKysKKytzaW5jbHVkZSAuZGVwZW5kCisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZGlmZiAt dU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvY3B1L29tYXA0L21tYy5jIHgtbG9hZC1mMjQzOTM4L2Nw dS9vbWFwNC9tbWMuYworLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcvY3B1L29tYXA0L21tYy5jCTE5 NjktMTItMzEgMjE6MDA6MDAuMDAwMDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvY3B1 L29tYXA0L21tYy5jCTIwMTItMDYtMDcgMTQ6NDU6MzkuNDQ5NjQ4NjY3IC0wMzAwCitAQCAtMCww ICsxLDU0NyBAQAorKy8qCisrICogKEMpIENvcHlyaWdodCAyMDA4CisrICogVGV4YXMgSW5zdHJ1 bWVudHMsIDx3d3cudGkuY29tPgorKyAqIFN5ZWQgTW9oYW1tZWQgS2hhc2ltIDxraGFzaW1AdGku Y29tPgorKyAqCisrICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNv bnRyaWJ1dGVkIHRvIHRoaXMKKysgKiBwcm9qZWN0LgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz CisrICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24ncyB2ZXJzaW9u IDIgb2YKKysgKiB0aGUgTGljZW5zZS4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr ICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl IFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKysgKiBNQSAwMjExMS0xMzA3IFVTQQorKyAqLwor KworKyNpbmNsdWRlIDxjb25maWcuaD4KKysjaW5jbHVkZSA8Y29tbW9uLmg+CisrI2luY2x1ZGUg PHBhcnQuaD4KKysjaW5jbHVkZSA8ZmF0Lmg+CisrI2luY2x1ZGUgPG1tYy5oPgorKyNpbmNsdWRl IDxpMmMuaD4KKysKKytjb25zdCB1bnNpZ25lZCBzaG9ydCBtbWNfdHJhbnNzcGVlZF92YWxbMTVd WzRdID0geworKwl7Q0xLRCgxMCwgMSksIENMS0QoMTAsIDEwKSwgQ0xLRCgxMCwgMTAwKSwgQ0xL RCgxMCwgMTAwMCl9LAorKwl7Q0xLRCgxMiwgMSksIENMS0QoMTIsIDEwKSwgQ0xLRCgxMiwgMTAw KSwgQ0xLRCgxMiwgMTAwMCl9LAorKwl7Q0xLRCgxMywgMSksIENMS0QoMTMsIDEwKSwgQ0xLRCgx MywgMTAwKSwgQ0xLRCgxMywgMTAwMCl9LAorKwl7Q0xLRCgxNSwgMSksIENMS0QoMTUsIDEwKSwg Q0xLRCgxNSwgMTAwKSwgQ0xLRCgxNSwgMTAwMCl9LAorKwl7Q0xLRCgyMCwgMSksIENMS0QoMjAs IDEwKSwgQ0xLRCgyMCwgMTAwKSwgQ0xLRCgyMCwgMTAwMCl9LAorKwl7Q0xLRCgyNiwgMSksIENM S0QoMjYsIDEwKSwgQ0xLRCgyNiwgMTAwKSwgQ0xLRCgyNiwgMTAwMCl9LAorKwl7Q0xLRCgzMCwg MSksIENMS0QoMzAsIDEwKSwgQ0xLRCgzMCwgMTAwKSwgQ0xLRCgzMCwgMTAwMCl9LAorKwl7Q0xL RCgzNSwgMSksIENMS0QoMzUsIDEwKSwgQ0xLRCgzNSwgMTAwKSwgQ0xLRCgzNSwgMTAwMCl9LAor Kwl7Q0xLRCg0MCwgMSksIENMS0QoNDAsIDEwKSwgQ0xLRCg0MCwgMTAwKSwgQ0xLRCg0MCwgMTAw MCl9LAorKwl7Q0xLRCg0NSwgMSksIENMS0QoNDUsIDEwKSwgQ0xLRCg0NSwgMTAwKSwgQ0xLRCg0 NSwgMTAwMCl9LAorKwl7Q0xLRCg1MiwgMSksIENMS0QoNTIsIDEwKSwgQ0xLRCg1MiwgMTAwKSwg Q0xLRCg1MiwgMTAwMCl9LAorKwl7Q0xLRCg1NSwgMSksIENMS0QoNTUsIDEwKSwgQ0xLRCg1NSwg MTAwKSwgQ0xLRCg1NSwgMTAwMCl9LAorKwl7Q0xLRCg2MCwgMSksIENMS0QoNjAsIDEwKSwgQ0xL RCg2MCwgMTAwKSwgQ0xLRCg2MCwgMTAwMCl9LAorKwl7Q0xLRCg3MCwgMSksIENMS0QoNzAsIDEw KSwgQ0xLRCg3MCwgMTAwKSwgQ0xLRCg3MCwgMTAwMCl9LAorKwl7Q0xLRCg4MCwgMSksIENMS0Qo ODAsIDEwKSwgQ0xLRCg4MCwgMTAwKSwgQ0xLRCg4MCwgMTAwMCl9CisrfTsKKysKKyttbWNfY2Fy ZF9kYXRhIGN1cl9jYXJkX2RhdGE7Cisrc3RhdGljIGJsb2NrX2Rldl9kZXNjX3QgbW1jX2Jsa19k ZXY7CisrCisrYmxvY2tfZGV2X2Rlc2NfdCAqbW1jX2dldF9kZXYoaW50IGRldikKKyt7CisrCXJl dHVybiAoKGJsb2NrX2Rldl9kZXNjX3QgKikgJm1tY19ibGtfZGV2KTsKKyt9CisrCisrdW5zaWdu ZWQgY2hhciBtbWNfYm9hcmRfaW5pdCh2b2lkKQorK3sKKysJdW5zaWduZWQgaW50IHZhbHVlID0g MDsKKysKKysJcmV0dXJuIDE7CisrfQorKworK3ZvaWQgbW1jX2luaXRfc3RyZWFtKHZvaWQpCisr eworKwl2b2xhdGlsZSB1bnNpZ25lZCBpbnQgbW1jX3N0YXQ7CisrCisrCU9NQVBfSFNNTUNfQ09O IHw9IElOSVRfSU5JVFNUUkVBTTsKKysKKysJT01BUF9IU01NQ19DTUQgPSBNTUNfQ01EMDsKKysJ ZG8geworKwkJbW1jX3N0YXQgPSBPTUFQX0hTTU1DX1NUQVQ7CisrCX0gd2hpbGUgKCEobW1jX3N0 YXQgJiBDQ19NQVNLKSk7CisrCisrCU9NQVBfSFNNTUNfU1RBVCA9IENDX01BU0s7CisrCisrCU9N QVBfSFNNTUNfQ01EID0gTU1DX0NNRDA7CisrCWRvIHsKKysJCW1tY19zdGF0ID0gT01BUF9IU01N Q19TVEFUOworKwl9IHdoaWxlICghKG1tY19zdGF0ICYgQ0NfTUFTSykpOworKworKwlPTUFQX0hT TU1DX1NUQVQgPSBPTUFQX0hTTU1DX1NUQVQ7CisrCU9NQVBfSFNNTUNfQ09OICY9IH5JTklUX0lO SVRTVFJFQU07CisrfQorKworK3Vuc2lnbmVkIGNoYXIgbW1jX2Nsb2NrX2NvbmZpZyh1bnNpZ25l ZCBpbnQgaWNsaywgdW5zaWduZWQgc2hvcnQgY2xrX2RpdikKKyt7CisrCXVuc2lnbmVkIGludCB2 YWw7CisrCisrCW1tY19yZWdfb3V0KE9NQVBfSFNNTUNfU1lTQ1RMLCAoSUNFX01BU0sgfCBEVE9f TUFTSyB8IENFTl9NQVNLKSwKKysJCSAgICAoSUNFX1NUT1AgfCBEVE9fMTVUSERUTyB8IENFTl9E SVNBQkxFKSk7CisrCisrCXN3aXRjaCAoaWNsaykgeworKwljYXNlIENMS19JTklUU0VROgorKwkJ dmFsID0gTU1DX0lOSVRfU0VRX0NMSyAvIDI7CisrCQlicmVhazsKKysJY2FzZSBDTEtfNDAwS0ha OgorKwkJdmFsID0gTU1DXzQwMGtIel9DTEs7CisrCQlicmVhazsKKysJY2FzZSBDTEtfTUlTQzoK KysJCXZhbCA9IGNsa19kaXY7CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCXJldHVybiAwOwor Kwl9CisrCW1tY19yZWdfb3V0KE9NQVBfSFNNTUNfU1lTQ1RMLAorKwkJICAgIElDRV9NQVNLIHwg Q0xLRF9NQVNLLCAodmFsIDw8IENMS0RfT0ZGU0VUKSB8IElDRV9PU0NJTExBVEUpOworKworKwl3 aGlsZSAoKE9NQVBfSFNNTUNfU1lTQ1RMICYgSUNTX01BU0spID09IElDU19OT1RSRUFEWSkgewor Kwl9CisrCisrCU9NQVBfSFNNTUNfU1lTQ1RMIHw9IENFTl9FTkFCTEU7CisrCXJldHVybiAxOwor K30KKysKKyt1bnNpZ25lZCBjaGFyIG1tY19pbml0X3NldHVwKHZvaWQpCisreworKwl1bnNpZ25l ZCBpbnQgcmVnX3ZhbDsKKysKKysJbW1jX2JvYXJkX2luaXQoKTsKKysKKysJT01BUF9IU01NQ19T WVNDT05GSUcgfD0gTU1DX1NPRlRSRVNFVDsKKysJd2hpbGUgKChPTUFQX0hTTU1DX1NZU1NUQVRV UyAmIFJFU0VURE9ORSkgPT0gMCkgOworKworKwlPTUFQX0hTTU1DX1NZU0NUTCB8PSBTT0ZUUkVT RVRBTEw7CisrCXdoaWxlICgoT01BUF9IU01NQ19TWVNDVEwgJiBTT0ZUUkVTRVRBTEwpICE9IDB4 MCkgOworKworKwlPTUFQX0hTTU1DX0hDVEwgPSBEVFdfMV9CSVRNT0RFIHwgU0RCUF9QV1JPRkYg fCBTRFZTXzNWMDsKKysJT01BUF9IU01NQ19DQVBBIHw9IFZTMzBfM1YwU1VQIHwgVlMxOF8xVjhT VVA7CisrCisrCXJlZ192YWwgPSBPTUFQX0hTTU1DX0NPTiAmIFJFU0VSVkVEX01BU0s7CisrCisr CU9NQVBfSFNNTUNfQ09OID0gQ1RQTF9NTUNfU0QgfCByZWdfdmFsIHwgV1BQX0FDVElWRUhJR0gg fAorKwkgICAgQ0RQX0FDVElWRUhJR0ggfCBNSVRfQ1RPIHwgRFc4XzFfNEJJVE1PREUgfCBNT0RF X0ZVTkMgfAorKwkgICAgU1RSX0JMT0NLIHwgSFJfTk9IT1NUUkVTUCB8IElOSVRfTk9JTklUIHwg Tk9PUEVORFJBSU47CisrCisrCW1tY19jbG9ja19jb25maWcoQ0xLX0lOSVRTRVEsIDApOworKwlP TUFQX0hTTU1DX0hDVEwgfD0gU0RCUF9QV1JPTjsKKysKKysJT01BUF9IU01NQ19JRSA9IDB4MzA3 ZjAwMzM7CisrCisrCW1tY19pbml0X3N0cmVhbSgpOworKwlyZXR1cm4gMTsKKyt9CisrCisrdW5z aWduZWQgY2hhciBtbWNfc2VuZF9jbWQodW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgaW50IGFy ZywKKysJCQkgICB1bnNpZ25lZCBpbnQgKnJlc3BvbnNlKQorK3sKKysJdm9sYXRpbGUgdW5zaWdu ZWQgaW50IG1tY19zdGF0OworKworKwl3aGlsZSAoKE9NQVBfSFNNTUNfUFNUQVRFICYgREFUSV9N QVNLKSA9PSBEQVRJX0NNRERJUykgeworKwl9CisrCisrCU9NQVBfSFNNTUNfQkxLID0gQkxFTl81 MTJCWVRFU0xFTiB8IE5CTEtfU1RQQ05UOworKwlPTUFQX0hTTU1DX1NUQVQgPSAweEZGRkZGRkZG OworKwlPTUFQX0hTTU1DX0FSRyA9IGFyZzsKKysJT01BUF9IU01NQ19DTUQgPSBjbWQgfCBDTURf VFlQRV9OT1JNQUwgfCBDSUNFX05PQ0hFQ0sgfAorKwkgICAgQ0NDRV9OT0NIRUNLIHwgTVNCU19T R0xFQkxLIHwgQUNFTl9ESVNBQkxFIHwgQkNFX0RJU0FCTEUgfAorKwkgICAgREVfRElTQUJMRTsK KysKKysJd2hpbGUgKDEpIHsKKysJCWRvIHsKKysJCQltbWNfc3RhdCA9IE9NQVBfSFNNTUNfU1RB VDsKKysJCX0gd2hpbGUgKG1tY19zdGF0ID09IDApOworKworKwkJaWYgKChtbWNfc3RhdCAmIEVS UklfTUFTSykgIT0gMCkKKysJCQlyZXR1cm4gKHVuc2lnbmVkIGNoYXIpIG1tY19zdGF0OworKwor KwkJaWYgKG1tY19zdGF0ICYgQ0NfTUFTSykgeworKwkJCU9NQVBfSFNNTUNfU1RBVCA9IENDX01B U0s7CisrCQkJcmVzcG9uc2VbMF0gPSBPTUFQX0hTTU1DX1JTUDEwOworKwkJCWlmICgoY21kICYg UlNQX1RZUEVfTUFTSykgPT0gUlNQX1RZUEVfTEdIVDEzNikgeworKwkJCQlyZXNwb25zZVsxXSA9 IE9NQVBfSFNNTUNfUlNQMzI7CisrCQkJCXJlc3BvbnNlWzJdID0gT01BUF9IU01NQ19SU1A1NDsK KysJCQkJcmVzcG9uc2VbM10gPSBPTUFQX0hTTU1DX1JTUDc2OworKwkJCX0KKysJCQlicmVhazsK KysJCX0KKysJfQorKwlyZXR1cm4gMTsKKyt9CisrCisrdW5zaWduZWQgY2hhciBtbWNfcmVhZF9k YXRhKHVuc2lnbmVkIGludCAqb3V0cHV0X2J1ZikKKyt7CisrCXZvbGF0aWxlIHVuc2lnbmVkIGlu dCBtbWNfc3RhdDsKKysJdW5zaWduZWQgaW50IHJlYWRfY291bnQgPSAwOworKworKwkvKgorKwkg KiBTdGFydCBQb2xsZWQgUmVhZAorKwkgKi8KKysJd2hpbGUgKDEpIHsKKysJCWRvIHsKKysJCQlt bWNfc3RhdCA9IE9NQVBfSFNNTUNfU1RBVDsKKysJCX0gd2hpbGUgKG1tY19zdGF0ID09IDApOwor KworKwkJaWYgKChtbWNfc3RhdCAmIEVSUklfTUFTSykgIT0gMCkKKysJCQlyZXR1cm4gKHVuc2ln bmVkIGNoYXIpIG1tY19zdGF0OworKworKwkJaWYgKG1tY19zdGF0ICYgQlJSX01BU0spIHsKKysJ CQl1bnNpZ25lZCBpbnQgazsKKysKKysJCQlPTUFQX0hTTU1DX1NUQVQgfD0gQlJSX01BU0s7Cisr CQkJZm9yIChrID0gMDsgayA8IE1NQ1NEX1NFQ1RPUl9TSVpFIC8gNDsgaysrKSB7CisrCQkJCSpv dXRwdXRfYnVmID0gT01BUF9IU01NQ19EQVRBOworKwkJCQlvdXRwdXRfYnVmKys7CisrCQkJCXJl YWRfY291bnQgKz0gNDsKKysJCQl9CisrCQl9CisrCisrCQlpZiAobW1jX3N0YXQgJiBCV1JfTUFT SykKKysJCQlPTUFQX0hTTU1DX1NUQVQgfD0gQldSX01BU0s7CisrCisrCQlpZiAobW1jX3N0YXQg JiBUQ19NQVNLKSB7CisrCQkJT01BUF9IU01NQ19TVEFUIHw9IFRDX01BU0s7CisrCQkJYnJlYWs7 CisrCQl9CisrCX0KKysJcmV0dXJuIDE7CisrfQorKworK3Vuc2lnbmVkIGNoYXIgbW1jX2RldGVj dF9jYXJkKG1tY19jYXJkX2RhdGEgKm1tY19jYXJkX2N1cikKKyt7CisrCXVuc2lnbmVkIGNoYXIg ZXJyOworKwl1bnNpZ25lZCBpbnQgYXJndW1lbnQgPSAwOworKwl1bnNpZ25lZCBpbnQgb2NyX3Zh bHVlLCBvY3JfcmVjdmQsIHJldF9jbWQ0MSwgaGNzX3ZhbDsKKysJdW5zaWduZWQgaW50IHJlc3Bb NF07CisrCXVuc2lnbmVkIHNob3J0IHJldHJ5X2NudCA9IDIwMDA7CisrCisrCS8qIFNldCB0byBJ bml0aWFsaXphdGlvbiBDbG9jayAqLworKwllcnIgPSBtbWNfY2xvY2tfY29uZmlnKENMS180MDBL SFosIDApOworKwlpZiAoZXJyICE9IDEpCisrCQlyZXR1cm4gZXJyOworKworKwltbWNfY2FyZF9j dXItPlJDQSA9IE1NQ19SRUxBVElWRV9DQVJEX0FERFJFU1M7CisrCWFyZ3VtZW50ID0gMHgwMDAw MDAwMDsKKysKKysJb2NyX3ZhbHVlID0gKDB4MUZGIDw8IDE1KTsKKysJZXJyID0gbW1jX3NlbmRf Y21kKE1NQ19DTUQwLCBhcmd1bWVudCwgcmVzcCk7CisrCWlmIChlcnIgIT0gMSkKKysJCXJldHVy biBlcnI7CisrCisrCWFyZ3VtZW50ID0gU0RfQ01EOF9DSEVDS19QQVRURVJOIHwgU0RfQ01EOF8y XzdfM182X1ZfUkFOR0U7CisrCWVyciA9IG1tY19zZW5kX2NtZChNTUNfU0RDTUQ4LCBhcmd1bWVu dCwgcmVzcCk7CisrCWhjc192YWwgPSAoZXJyID09IDEpID8KKysJICAgIE1NQ19PQ1JfUkVHX0hP U1RfQ0FQQUNJVFlfU1VQUE9SVF9TRUNUT1IgOgorKwkgICAgTU1DX09DUl9SRUdfSE9TVF9DQVBB Q0lUWV9TVVBQT1JUX0JZVEU7CisrCisrCWFyZ3VtZW50ID0gMHgwMDAwIDw8IDE2OworKwllcnIg PSBtbWNfc2VuZF9jbWQoTU1DX0NNRDU1LCBhcmd1bWVudCwgcmVzcCk7CisrCWlmIChlcnIgPT0g MSkgeworKwkJbW1jX2NhcmRfY3VyLT5jYXJkX3R5cGUgPSBTRF9DQVJEOworKwkJb2NyX3ZhbHVl IHw9IGhjc192YWw7CisrCQlyZXRfY21kNDEgPSBNTUNfQUNNRDQxOworKwl9IGVsc2UgeworKwkJ bW1jX2NhcmRfY3VyLT5jYXJkX3R5cGUgPSBNTUNfQ0FSRDsKKysJCW9jcl92YWx1ZSB8PSBNTUNf T0NSX1JFR19BQ0NFU1NfTU9ERV9TRUNUT1I7CisrCQlyZXRfY21kNDEgPSBNTUNfQ01EMTsKKysJ CU9NQVBfSFNNTUNfQ09OICY9IH5PRDsKKysJCU9NQVBfSFNNTUNfQ09OIHw9IE9QRU5EUkFJTjsK KysJfQorKworKwlhcmd1bWVudCA9IG9jcl92YWx1ZTsKKysJZXJyID0gbW1jX3NlbmRfY21kKHJl dF9jbWQ0MSwgYXJndW1lbnQsIHJlc3ApOworKwlpZiAoZXJyICE9IDEpCisrCQlyZXR1cm4gZXJy OworKworKwlvY3JfcmVjdmQgPSAoKG1tY19yZXNwX3IzICopIHJlc3ApLT5vY3I7CisrCisrCXdo aWxlICghKG9jcl9yZWN2ZCAmICgweDEgPDwgMzEpKSAmJiAocmV0cnlfY250ID4gMCkpIHsKKysJ CXJldHJ5X2NudC0tOworKwkJaWYgKG1tY19jYXJkX2N1ci0+Y2FyZF90eXBlID09IFNEX0NBUkQp IHsKKysJCQlhcmd1bWVudCA9IDB4MDAwMCA8PCAxNjsKKysJCQllcnIgPSBtbWNfc2VuZF9jbWQo TU1DX0NNRDU1LCBhcmd1bWVudCwgcmVzcCk7CisrCQl9CisrCisrCQlhcmd1bWVudCA9IG9jcl92 YWx1ZTsKKysJCWVyciA9IG1tY19zZW5kX2NtZChyZXRfY21kNDEsIGFyZ3VtZW50LCByZXNwKTsK KysJCWlmIChlcnIgIT0gMSkKKysJCQlyZXR1cm4gZXJyOworKwkJb2NyX3JlY3ZkID0gKChtbWNf cmVzcF9yMyAqKSByZXNwKS0+b2NyOworKwl9CisrCisrCWlmICghKG9jcl9yZWN2ZCAmICgweDEg PDwgMzEpKSkKKysJCXJldHVybiAwOworKworKwlpZiAobW1jX2NhcmRfY3VyLT5jYXJkX3R5cGUg PT0gTU1DX0NBUkQpIHsKKysJCWlmICgob2NyX3JlY3ZkICYgTU1DX09DUl9SRUdfQUNDRVNTX01P REVfTUFTSykgPT0KKysJCSAgICBNTUNfT0NSX1JFR19BQ0NFU1NfTU9ERV9TRUNUT1IpIHsKKysJ CQltbWNfY2FyZF9jdXItPm1vZGUgPSBTRUNUT1JfTU9ERTsKKysJCX0gZWxzZSB7CisrCQkJbW1j X2NhcmRfY3VyLT5tb2RlID0gQllURV9NT0RFOworKwkJfQorKworKwkJb2NyX3JlY3ZkICY9IH5N TUNfT0NSX1JFR19BQ0NFU1NfTU9ERV9NQVNLOworKwl9IGVsc2UgeworKwkJaWYgKChvY3JfcmVj dmQgJiBNTUNfT0NSX1JFR19IT1NUX0NBUEFDSVRZX1NVUFBPUlRfTUFTSykKKysJCSAgICA9PSBN TUNfT0NSX1JFR19IT1NUX0NBUEFDSVRZX1NVUFBPUlRfU0VDVE9SKSB7CisrCQkJbW1jX2NhcmRf Y3VyLT5tb2RlID0gU0VDVE9SX01PREU7CisrCQl9IGVsc2UgeworKwkJCW1tY19jYXJkX2N1ci0+ bW9kZSA9IEJZVEVfTU9ERTsKKysJCX0KKysJCW9jcl9yZWN2ZCAmPSB+TU1DX09DUl9SRUdfSE9T VF9DQVBBQ0lUWV9TVVBQT1JUX01BU0s7CisrCX0KKysKKysJb2NyX3JlY3ZkICY9IH4oMHgxIDw8 IDMxKTsKKysJaWYgKCEob2NyX3JlY3ZkICYgb2NyX3ZhbHVlKSkKKysJCXJldHVybiAwOworKwor KwllcnIgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDIsIGFyZ3VtZW50LCByZXNwKTsKKysJaWYgKGVy ciAhPSAxKQorKwkJcmV0dXJuIGVycjsKKysKKysJaWYgKG1tY19jYXJkX2N1ci0+Y2FyZF90eXBl ID09IE1NQ19DQVJEKSB7CisrCQlhcmd1bWVudCA9IG1tY19jYXJkX2N1ci0+UkNBIDw8IDE2Owor KwkJZXJyID0gbW1jX3NlbmRfY21kKE1NQ19DTUQzLCBhcmd1bWVudCwgcmVzcCk7CisrCQlpZiAo ZXJyICE9IDEpCisrCQkJcmV0dXJuIGVycjsKKysJfSBlbHNlIHsKKysJCWFyZ3VtZW50ID0gMHgw MDAwMDAwMDsKKysJCWVyciA9IG1tY19zZW5kX2NtZChNTUNfU0RDTUQzLCBhcmd1bWVudCwgcmVz cCk7CisrCQlpZiAoZXJyICE9IDEpCisrCQkJcmV0dXJuIGVycjsKKysKKysJCW1tY19jYXJkX2N1 ci0+UkNBID0gKChtbWNfcmVzcF9yNiAqKSByZXNwKS0+bmV3cHVibGlzaGVkcmNhOworKwl9Cisr CisrCU9NQVBfSFNNTUNfQ09OICY9IH5PRDsKKysJT01BUF9IU01NQ19DT04gfD0gTk9PUEVORFJB SU47CisrCXJldHVybiAxOworK30KKysKKyt1bnNpZ25lZCBjaGFyIG1tY19yZWFkX2NhcmRzaXpl KG1tY19jYXJkX2RhdGEgKm1tY19kZXZfZGF0YSwKKysJCQkJbW1jX2NzZF9yZWdfdCAqY3VyX2Nz ZCkKKyt7CisrCW1tY19leHRlbmRlZF9jc2RfcmVnX3QgZXh0X2NzZDsKKysJdW5zaWduZWQgaW50 IHNpemUsIGNvdW50LCBibGtfbGVuLCBibGtfbm8sIGNhcmRfc2l6ZSwgYXJndW1lbnQ7CisrCXVu c2lnbmVkIGNoYXIgZXJyOworKwl1bnNpZ25lZCBpbnQgcmVzcFs0XTsKKysKKysJaWYgKG1tY19k ZXZfZGF0YS0+bW9kZSA9PSBTRUNUT1JfTU9ERSkgeworKwkJaWYgKG1tY19kZXZfZGF0YS0+Y2Fy ZF90eXBlID09IFNEX0NBUkQpIHsKKysJCQljYXJkX3NpemUgPQorKwkJCSAgICAoKChtbWNfc2Qy X2NzZF9yZWdfdCAqKSBjdXJfY3NkKS0+CisrCQkJICAgICBjX3NpemVfbHNiICYgTU1DX1NEMl9D U0RfQ19TSVpFX0xTQl9NQVNLKSB8CisrCQkJICAgICgoKChtbWNfc2QyX2NzZF9yZWdfdCAqKSBj dXJfY3NkKS0+CisrCQkJICAgICAgY19zaXplX21zYiAmIE1NQ19TRDJfQ1NEX0NfU0laRV9NU0Jf TUFTSykKKysJCQkgICAgIDw8IE1NQ19TRDJfQ1NEX0NfU0laRV9NU0JfT0ZGU0VUKTsKKysJCQlt bWNfZGV2X2RhdGEtPnNpemUgPSBjYXJkX3NpemUgKiAxMDI0OworKwkJCWlmIChtbWNfZGV2X2Rh dGEtPnNpemUgPT0gMCkKKysJCQkJcmV0dXJuIDA7CisrCQl9IGVsc2UgeworKwkJCWFyZ3VtZW50 ID0gMHgwMDAwMDAwMDsKKysJCQllcnIgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDgsIGFyZ3VtZW50 LCByZXNwKTsKKysJCQlpZiAoZXJyICE9IDEpCisrCQkJCXJldHVybiBlcnI7CisrCQkJZXJyID0g bW1jX3JlYWRfZGF0YSgodW5zaWduZWQgaW50ICopICZleHRfY3NkKTsKKysJCQlpZiAoZXJyICE9 IDEpCisrCQkJCXJldHVybiBlcnI7CisrCQkJbW1jX2Rldl9kYXRhLT5zaXplID0gZXh0X2NzZC5z ZWN0b3Jjb3VudDsKKysKKysJCQlpZiAobW1jX2Rldl9kYXRhLT5zaXplID09IDApCisrCQkJCW1t Y19kZXZfZGF0YS0+c2l6ZSA9IDgzODg2MDg7CisrCQl9CisrCX0gZWxzZSB7CisrCQlpZiAoY3Vy X2NzZC0+Y19zaXplX211bHQgPj0gOCkKKysJCQlyZXR1cm4gMDsKKysKKysJCWlmIChjdXJfY3Nk LT5yZWFkX2JsX2xlbiA+PSAxMikKKysJCQlyZXR1cm4gMDsKKysKKysJCS8qIENvbXB1dGUgc2l6 ZSAqLworKwkJY291bnQgPSAxIDw8IChjdXJfY3NkLT5jX3NpemVfbXVsdCArIDIpOworKwkJY2Fy ZF9zaXplID0gKGN1cl9jc2QtPmNfc2l6ZV9sc2IgJiBNTUNfQ1NEX0NfU0laRV9MU0JfTUFTSykg fAorKwkJICAgICgoY3VyX2NzZC0+Y19zaXplX21zYiAmIE1NQ19DU0RfQ19TSVpFX01TQl9NQVNL KQorKwkJICAgICA8PCBNTUNfQ1NEX0NfU0laRV9NU0JfT0ZGU0VUKTsKKysJCWJsa19ubyA9IChj YXJkX3NpemUgKyAxKSAqIGNvdW50OworKwkJYmxrX2xlbiA9IDEgPDwgY3VyX2NzZC0+cmVhZF9i bF9sZW47CisrCQlzaXplID0gYmxrX25vICogYmxrX2xlbjsKKysJCW1tY19kZXZfZGF0YS0+c2l6 ZSA9IHNpemUgLyBNTUNTRF9TRUNUT1JfU0laRTsKKysJCWlmIChtbWNfZGV2X2RhdGEtPnNpemUg PT0gMCkKKysJCQlyZXR1cm4gMDsKKysJfQorKwlyZXR1cm4gMTsKKyt9CisrCisrdW5zaWduZWQg Y2hhciBvbWFwX21tY19yZWFkX3NlY3QodW5zaWduZWQgaW50IHN0YXJ0X3NlYywgdW5zaWduZWQg aW50IG51bV9ieXRlcywKKysJCQkJIG1tY19jYXJkX2RhdGEgKm1tY19jLAorKwkJCQkgdW5zaWdu ZWQgbG9uZyAqb3V0cHV0X2J1ZikKKyt7CisrCXVuc2lnbmVkIGNoYXIgZXJyOworKwl1bnNpZ25l ZCBpbnQgYXJndW1lbnQ7CisrCXVuc2lnbmVkIGludCByZXNwWzRdOworKwl1bnNpZ25lZCBpbnQg bnVtX3NlY192YWwgPQorKwkgICAgKG51bV9ieXRlcyArIChNTUNTRF9TRUNUT1JfU0laRSAtIDEp KSAvIE1NQ1NEX1NFQ1RPUl9TSVpFOworKwl1bnNpZ25lZCBpbnQgc2VjX2luY192YWw7CisrCisr CWlmIChudW1fc2VjX3ZhbCA9PSAwKQorKwkJcmV0dXJuIDE7CisrCisrCWlmIChtbWNfYy0+bW9k ZSA9PSBTRUNUT1JfTU9ERSkgeworKwkJYXJndW1lbnQgPSBzdGFydF9zZWM7CisrCQlzZWNfaW5j X3ZhbCA9IDE7CisrCX0gZWxzZSB7CisrCQlhcmd1bWVudCA9IHN0YXJ0X3NlYyAqIE1NQ1NEX1NF Q1RPUl9TSVpFOworKwkJc2VjX2luY192YWwgPSBNTUNTRF9TRUNUT1JfU0laRTsKKysJfQorKwor Kwl3aGlsZSAobnVtX3NlY192YWwpIHsKKysJCWVyciA9IG1tY19zZW5kX2NtZChNTUNfQ01EMTcs IGFyZ3VtZW50LCByZXNwKTsKKysJCWlmIChlcnIgIT0gMSkKKysJCQlyZXR1cm4gZXJyOworKwor KwkJZXJyID0gbW1jX3JlYWRfZGF0YSgodW5zaWduZWQgaW50ICopIG91dHB1dF9idWYpOworKwkJ aWYgKGVyciAhPSAxKQorKwkJCXJldHVybiBlcnI7CisrCisrCQlvdXRwdXRfYnVmICs9IChNTUNT RF9TRUNUT1JfU0laRSAvIDQpOworKwkJYXJndW1lbnQgKz0gc2VjX2luY192YWw7CisrCQludW1f c2VjX3ZhbC0tOworKwl9CisrCXJldHVybiAxOworK30KKysKKyt1bnNpZ25lZCBjaGFyIGNvbmZp Z3VyZV9tbWMobW1jX2NhcmRfZGF0YSAqbW1jX2NhcmRfY3VyKQorK3sKKysJdW5zaWduZWQgY2hh ciByZXRfdmFsOworKwl1bnNpZ25lZCBpbnQgYXJndW1lbnQ7CisrCXVuc2lnbmVkIGludCByZXNw WzRdOworKwl1bnNpZ25lZCBpbnQgdHJhbnNfY2xrLCB0cmFuc19mYWN0LCB0cmFuc191bml0LCBy ZXRyaWVzID0gMjsKKysJbW1jX2NzZF9yZWdfdCBDYXJkX0NTRDsKKysJdW5zaWduZWQgY2hhciB0 cmFuc19zcGVlZDsKKysKKysJcmV0X3ZhbCA9IG1tY19pbml0X3NldHVwKCk7CisrCisrCWlmIChy ZXRfdmFsICE9IDEpCisrCQlyZXR1cm4gcmV0X3ZhbDsKKysKKysJZG8geworKwkJcmV0X3ZhbCA9 IG1tY19kZXRlY3RfY2FyZChtbWNfY2FyZF9jdXIpOworKwkJcmV0cmllcy0tOworKwl9IHdoaWxl ICgocmV0cmllcyA+IDApICYmIChyZXRfdmFsICE9IDEpKTsKKysKKysJYXJndW1lbnQgPSBtbWNf Y2FyZF9jdXItPlJDQSA8PCAxNjsKKysJcmV0X3ZhbCA9IG1tY19zZW5kX2NtZChNTUNfQ01EOSwg YXJndW1lbnQsIHJlc3ApOworKwlpZiAocmV0X3ZhbCAhPSAxKQorKwkJcmV0dXJuIHJldF92YWw7 CisrCisrCSgodW5zaWduZWQgaW50ICopICZDYXJkX0NTRClbM10gPSByZXNwWzNdOworKwkoKHVu c2lnbmVkIGludCAqKSAmQ2FyZF9DU0QpWzJdID0gcmVzcFsyXTsKKysJKCh1bnNpZ25lZCBpbnQg KikgJkNhcmRfQ1NEKVsxXSA9IHJlc3BbMV07CisrCSgodW5zaWduZWQgaW50ICopICZDYXJkX0NT RClbMF0gPSByZXNwWzBdOworKworKwlpZiAobW1jX2NhcmRfY3VyLT5jYXJkX3R5cGUgPT0gTU1D X0NBUkQpCisrCQltbWNfY2FyZF9jdXItPnZlcnNpb24gPSBDYXJkX0NTRC5zcGVjX3ZlcnM7Cisr CisrCXRyYW5zX3NwZWVkID0gQ2FyZF9DU0QudHJhbl9zcGVlZDsKKysKKysJcmV0X3ZhbCA9IG1t Y19zZW5kX2NtZChNTUNfQ01ENCwgTU1DX0RTUl9ERUZBVUxUIDw8IDE2LCByZXNwKTsKKysJaWYg KHJldF92YWwgIT0gMSkKKysJCXJldHVybiByZXRfdmFsOworKworKwl0cmFuc191bml0ID0gdHJh bnNfc3BlZWQgJiBNTUNfQ1NEX1RSQU5fU1BFRURfVU5JVF9NQVNLOworKwl0cmFuc19mYWN0ID0g dHJhbnNfc3BlZWQgJiBNTUNfQ1NEX1RSQU5fU1BFRURfRkFDVE9SX01BU0s7CisrCisrCWlmICh0 cmFuc191bml0ID4gTU1DX0NTRF9UUkFOX1NQRUVEX1VOSVRfMTAwTUhaKQorKwkJcmV0dXJuIDA7 CisrCisrCWlmICgodHJhbnNfZmFjdCA8IE1NQ19DU0RfVFJBTl9TUEVFRF9GQUNUT1JfMV8wKSB8 fAorKwkgICAgKHRyYW5zX2ZhY3QgPiBNTUNfQ1NEX1RSQU5fU1BFRURfRkFDVE9SXzhfMCkpCisr CQlyZXR1cm4gMDsKKysKKysJdHJhbnNfdW5pdCA+Pj0gMDsKKysJdHJhbnNfZmFjdCA+Pj0gMzsK KysKKysJdHJhbnNfY2xrID0gbW1jX3RyYW5zc3BlZWRfdmFsW3RyYW5zX2ZhY3QgLSAxXVt0cmFu c191bml0XSAqIDI7CisrCXJldF92YWwgPSBtbWNfY2xvY2tfY29uZmlnKENMS19NSVNDLCB0cmFu c19jbGspOworKworKwlpZiAocmV0X3ZhbCAhPSAxKQorKwkJcmV0dXJuIHJldF92YWw7CisrCisr CWFyZ3VtZW50ID0gbW1jX2NhcmRfY3VyLT5SQ0EgPDwgMTY7CisrCXJldF92YWwgPSBtbWNfc2Vu ZF9jbWQoTU1DX0NNRDdfU0VMRUNULCBhcmd1bWVudCwgcmVzcCk7CisrCWlmIChyZXRfdmFsICE9 IDEpCisrCQlyZXR1cm4gcmV0X3ZhbDsKKysKKysJLyogQ29uZmlndXJlIHRoZSBibG9jayBsZW5n dGggdG8gNTEyIGJ5dGVzICovCisrCWFyZ3VtZW50ID0gTU1DU0RfU0VDVE9SX1NJWkU7CisrCXJl dF92YWwgPSBtbWNfc2VuZF9jbWQoTU1DX0NNRDE2LCBhcmd1bWVudCwgcmVzcCk7CisrCWlmIChy ZXRfdmFsICE9IDEpCisrCQlyZXR1cm4gcmV0X3ZhbDsKKysKKysJLyogZ2V0IHRoZSBjYXJkIHNp emUgaW4gc2VjdG9ycyAqLworKwlyZXRfdmFsID0gbW1jX3JlYWRfY2FyZHNpemUobW1jX2NhcmRf Y3VyLCAmQ2FyZF9DU0QpOworKwlpZiAocmV0X3ZhbCAhPSAxKQorKwkJcmV0dXJuIHJldF92YWw7 CisrCisrCXJldHVybiAxOworK30KKyt1bnNpZ25lZCBsb25nIG1tY19icmVhZChpbnQgZGV2X251 bSwgdW5zaWduZWQgbG9uZyBibGtuciwgbGJhaW50X3QgYmxrY250LAorKwkJCXZvaWQgKmRzdCkK Kyt7CisrCW9tYXBfbW1jX3JlYWRfc2VjdChibGtuciwgKGJsa2NudCAqIE1NQ1NEX1NFQ1RPUl9T SVpFKSwgJmN1cl9jYXJkX2RhdGEsCisrCQkJICAgKHVuc2lnbmVkIGxvbmcgKikgZHN0KTsKKysJ cmV0dXJuIDE7CisrfQorKworK2ludCBtbWNfaW5pdChpbnQgdmVyYm9zZSkKKyt7CisrCXVuc2ln bmVkIGNoYXIgcmV0OworKworKwlyZXQgPSBjb25maWd1cmVfbW1jKCZjdXJfY2FyZF9kYXRhKTsK KysKKysJaWYgKHJldCA9PSAxKSB7CisrCQltbWNfYmxrX2Rldi5pZl90eXBlID0gSUZfVFlQRV9N TUM7CisrCQltbWNfYmxrX2Rldi5wYXJ0X3R5cGUgPSBQQVJUX1RZUEVfRE9TOworKwkJbW1jX2Js a19kZXYuZGV2ID0gMDsKKysJCW1tY19ibGtfZGV2Lmx1biA9IDA7CisrCQltbWNfYmxrX2Rldi50 eXBlID0gMDsKKysKKysJCS8qIEZJWE1FIGZpbGwgaW4gdGhlIGNvcnJlY3Qgc2l6ZSAoaXMgc2V0 IHRvIDMyTUJ5dGUpICovCisrCQltbWNfYmxrX2Rldi5ibGtzeiA9IE1NQ1NEX1NFQ1RPUl9TSVpF OworKwkJbW1jX2Jsa19kZXYubGJhID0gMHgxMDAwMDsKKysJCW1tY19ibGtfZGV2LnJlbW92YWJs ZSA9IDA7CisrCQltbWNfYmxrX2Rldi5ibG9ja19yZWFkID0gbW1jX2JyZWFkOworKworKwkJZmF0 X3JlZ2lzdGVyX2RldmljZSgmbW1jX2Jsa19kZXYsIDEpOworKwkJcmV0dXJuIDE7CisrCX0KKysJ ZWxzZSAKKysJCXJldHVybiAwOworK30KKysKKytpbnQgbW1jX3JlYWQodWxvbmcgc3JjLCB1Y2hh ciAqZHN0LCBpbnQgc2l6ZSkKKyt7CisrCXJldHVybiAwOworK30KKysKKytpbnQgbW1jX3dyaXRl KHVjaGFyICpzcmMsIHVsb25nIGRzdCwgaW50IHNpemUpCisreworKwlyZXR1cm4gMDsKKyt9Cisr CisraW50IG1tYzJpbmZvKHVsb25nIGFkZHIpCisreworKwlyZXR1cm4gMDsKKyt9CitkaWZmIC11 TnIgeC1sb2FkLWYyNDM5Mzgub3JpZy9jcHUvb21hcDQvc3RhcnQuUyB4LWxvYWQtZjI0MzkzOC9j cHUvb21hcDQvc3RhcnQuUworLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcvY3B1L29tYXA0L3N0YXJ0 LlMJMTk2OS0xMi0zMSAyMTowMDowMC4wMDAwMDAwMDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0Mzkz OC9jcHUvb21hcDQvc3RhcnQuUwkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ0OTY0ODY2NyAtMDMwMAor QEAgLTAsMCArMSwyMjAgQEAKKysvKgorKyAqICBhcm1ib290IC0gU3RhcnR1cCBDb2RlIGZvciBP TUFQNDQzMC9BUk0gQ29ydGV4IENQVS1jb3JlCisrICoKKysgKiAgQ29weXJpZ2h0IChjKSAyMDA0 CVRleGFzIEluc3RydW1lbnRzIDxyLXdvb2RydWZmMkB0aS5jb20+CisrICoKKysgKiAgQ29weXJp Z2h0IChjKSAyMDAxCU1hcml1cyBHcm9nZXIgPG1hZ0BzeXNnby5kZT4KKysgKiAgQ29weXJpZ2h0 IChjKSAyMDAyCUFsZXggWnVwa2UgPGF6dUBzeXNnby5kZT4KKysgKiAgQ29weXJpZ2h0IChjKSAy MDAyCUdhcnkgSmVubmVqb2huIDxnakBkZW54LmRlPgorKyAqICBDb3B5cmlnaHQgKGMpIDIwMDMJ UmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgorKyAqICBDb3B5cmlnaHQgKGMp IDIwMDMJS3NoaXRpaiA8a3NoaXRpakB0aS5jb20+CisrICogIENvcHlyaWdodCAoYykgMjAwNglT eWVkIE1vaGFtbWVkIEtoYXNpbSA8eDBraGFzaW1AdGkuY29tPgorKyAqICBDb3B5cmlnaHQgKGMp IDIwMDkJVGV4YXMgSW5zdHJ1bWVudHMKKysgKgorKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxp c3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisrICogcHJvamVjdC4KKysgKgor KyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyAqIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgkgU2VlIHRo ZQorKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoK KysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs YWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKysgKiBNQSAwMjExMS0xMzA3IFVTQQorKyAqLworKwor KyNpbmNsdWRlIDxjb25maWcuaD4KKysjaWYgIWRlZmluZWQoQ09ORklHX0lOVEVHUkFUT1IpICYm ICEgZGVmaW5lZChDT05GSUdfQVJDSF9DSU5URUdSQVRPUikKKysjaW5jbHVkZSA8YXNtL2FyY2gv Y3B1Lmg+CisrI2VuZGlmCisrI2RlZmluZSBDT05GSUdfU0tJUF9SRUxPQ0FURV9YTE9BREVSCisr Lmdsb2JsIF9zdGFydAorK19zdGFydDoKKysJYglyZXNldAorKyAJbGRyCXBjLCBfaGFuZworKwls ZHIJcGMsIF9oYW5nCisrCWxkcglwYywgX2hhbmcKKysJbGRyCXBjLCBfaGFuZworKwlsZHIJcGMs IF9oYW5nCisrCWxkcglwYywgX2hhbmcKKysJbGRyCXBjLCBfaGFuZworKworK19oYW5nOgorKyAJ LndvcmQgZG9faGFuZworKwkKKysJLndvcmQgMHgxMjM0NTY3OAorKwkud29yZCAweDEyMzQ1Njc4 CisrCS53b3JkIDB4MTIzNDU2NzgKKysJLndvcmQgMHgxMjM0NTY3OAorKwkud29yZCAweDEyMzQ1 Njc4CisrCS53b3JkIDB4MTIzNDU2NzgKKysJLndvcmQgMHgxMjM0NTY3OCAvKiBub3cgMTYqND02 NCAqLworKworKy5nbG9iYWwgX2VuZF92ZWN0CisrX2VuZF92ZWN0OgorKworKwkuYmFsaWdubCAx NiwweGRlYWRiZWVmCisrLyoKKysgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyAqCisrICogU3RhcnR1cCBD b2RlIChyZXNldCB2ZWN0b3IpCisrICoKKysgKiBkbyBpbXBvcnRhbnQgaW5pdCBvbmx5IGlmIHdl IGRvbid0IHN0YXJ0IGZyb20gbWVtb3J5IQorKyAqIHNldHVwIE1lbW9yeSBhbmQgYm9hcmQgc3Bl Y2lmaWMgYml0cyBwcmlvciB0byByZWxvY2F0aW9uLgorKyAqIHJlbG9jYXRlIGFybWJvb3QgdG8g cmFtCisrICogc2V0dXAgc3RhY2sKKysgKgorKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrICovCisrCisr X1RFWFRfQkFTRToKKysJLndvcmQJVEVYVF9CQVNFCisrCisrLmdsb2JsIF9hcm1ib290X3N0YXJ0 CisrX2FybWJvb3Rfc3RhcnQ6CisrCS53b3JkIF9zdGFydAorKworKy8qCisrICogVGhlc2UgYXJl IGRlZmluZWQgaW4gdGhlIGJvYXJkLXNwZWNpZmljIGxpbmtlciBzY3JpcHQuCisrICovCisrLmds b2JsIF9ic3Nfc3RhcnQKKytfYnNzX3N0YXJ0OgorKwkud29yZCBfX2Jzc19zdGFydAorKworKy5n bG9ibCBfYnNzX2VuZAorK19ic3NfZW5kOgorKwkud29yZCBfZW5kCisrCisrLyoKKysgKiB0aGUg YWN0dWFsIHJlc2V0IGNvZGUKKysgKi8KKysKKytyZXNldDoKKysJLyogVXNlIGEgdGVtcCBzY3Jh dGNoIHBhZCBtZW1vcnkKKysJICogdG8gc3RvcmUgdGhlIGJvb3QgcmVhc29uCisrCSAqLworKwls ZHIgICAgIHI0LCBzY3JhdGNocGFkCisrCWxkciAgICAgcjUsIFtyMCwgIzB4OF0gICAgICAgICAg LyogcjUgPC0gdmFsdWUgb2YgYm9vdCBkZXZpY2UgKi8KKysJc3RyICAgICByNSwgW3I0XSAgICAg ICAgICAgICAgICAvKiBzdG9yZSByNSBpbiBzY3JhdGNocGFkIHJlZyAqLworKworKwkvKgorKwkg KiBzZXQgdGhlIGNwdSB0byBTVkMzMiBtb2RlCisrCSAqLworKwltcnMJcjAsY3BzcgorKwliaWMJ cjAscjAsIzB4MWYKKysJb3JyCXIwLHIwLCMweGQzCisrCW1zcgljcHNyLHIwCisrCisrICAgICAg IC8qIENvcHkgdmVjdG9ycyB0byBtYXNrIFJPTSBpbmRpcmVjdCBhZGRyICovCisrCWFkcglyMCwg X3N0YXJ0CQkvKiByMCA8LSBjdXJyZW50IHBvc2l0aW9uIG9mIGNvZGUgICAqLworKyAgICAgICAg YWRkICAgICByMCwgcjAsICM0CQkJCS8qIHNraXAgcmVzZXQgdmVjdG9yICovCisrCW1vdglyMiwg IzY0CQkJLyogcjIgPC0gc2l6ZSB0byBjb3B5ICAqLworKwlhZGQJcjIsIHIwLCByMgkJLyogcjIg PC0gc291cmNlIGVuZCBhZGRyZXNzCSAgICAqLworKwltb3YJcjEsICNTUkFNX09GRlNFVDAJICAv KiBidWlsZCB2ZWN0IGFkZHIgKi8KKysJbW92CXIzLCAjU1JBTV9PRkZTRVQxCisrCWFkZAlyMSwg cjEsIHIzCisrCW1vdglyMywgI1NSQU1fT0ZGU0VUMgorKwlhZGQJcjEsIHIxLCByMworK25leHQ6 CisrCWxkbWlhCXIwISwge3IzLXIxMH0JCS8qIGNvcHkgZnJvbSBzb3VyY2UgYWRkcmVzcyBbcjBd ICAgICovCisrCXN0bWlhCXIxISwge3IzLXIxMH0JCS8qIGNvcHkgdG8gICB0YXJnZXQgYWRkcmVz cyBbcjFdICAgICovCisrCWNtcAlyMCwgcjIJCQkvKiB1bnRpbCBzb3VyY2UgZW5kIGFkZHJlc3Mg W3IyXSAgICAqLworKwlibmUJbmV4dAkJCS8qIGxvb3AgdW50aWwgZXF1YWwgKi8KKysJLyogdGhl IG1hc2sgUk9NIGNvZGUgc2hvdWxkIGhhdmUgUExMIGFuZCBvdGhlcnMgc3RhYmxlICovCisrCWJs ICBjcHVfaW5pdF9jcml0CisrCisrI2lmbmRlZiBDT05GSUdfU0tJUF9SRUxPQ0FURV9YTE9BREVS CisrcmVsb2NhdGU6CQkJCS8qIHJlbG9jYXRlIFUtQm9vdCB0byBSQU0JICAgICovCisrCWFkcgly MCwgX3N0YXJ0CQkvKiByMCA8LSBjdXJyZW50IHBvc2l0aW9uIG9mIGNvZGUgICAqLworKwlsZHIJ cjEsIF9URVhUX0JBU0UJCS8qIHRlc3QgaWYgd2UgcnVuIGZyb20gZmxhc2ggb3IgUkFNICovCisr CWNtcAlyMCwgcjEJCQkvKiBkb24ndCByZWxvYyBkdXJpbmcgZGVidWcJICAgICovCisrCWJlcQlz dGFja19zZXR1cAorKworKwlsZHIJcjIsIF9hcm1ib290X3N0YXJ0CisrCWxkcglyMywgX2Jzc19z dGFydAorKwlzdWIJcjIsIHIzLCByMgkJLyogcjIgPC0gc2l6ZSBvZiBhcm1ib290CSAgICAqLwor KwlhZGQJcjIsIHIwLCByMgkJLyogcjIgPC0gc291cmNlIGVuZCBhZGRyZXNzCSAgICAqLworKwor K2NvcHlfbG9vcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb3B5IDMyIGJ5dGVz IGF0IGEgdGltZSAgICAgICAgICAqLworKwlsZG1pYQlyMCEsIHtyMy1yMTB9CQkvKiBjb3B5IGZy b20gc291cmNlIGFkZHJlc3MgW3IwXSAgICAqLworKwlzdG1pYQlyMSEsIHtyMy1yMTB9CQkvKiBj b3B5IHRvICAgdGFyZ2V0IGFkZHJlc3MgW3IxXSAgICAqLworKwljbXAJcjAsIHIyCQkJLyogdW50 aWwgc291cmNlIGVuZCBhZGRyZWVlIFtyMl0gICAgKi8KKysJYmxlCWNvcHlfbG9vcAorKyNlbmRp ZgorKworKwkvKiBTZXQgdXAgdGhlIHN0YWNrCQkJCQkJICAgICovCisrc3RhY2tfc2V0dXA6Cisr CWxkcglyMCwgX1RFWFRfQkFTRQkJLyogdXBwZXIgMTI4IEtpQjogcmVsb2NhdGVkIHVib290ICAg Ki8KKysJYW5kCXNwLCBzcCwgI343CQkvKiA4IGJ5dGUgYWxpbmdlZCBmb3IgKGxkci9zdHIpZCAg ICAqLworKworKwkvKiBDbGVhciBCU1MgKGlmIGFueSkuICBJcyBiZWxvdyB0eCAod2F0Y2ggbG9h ZCBhZGRyIC0gbmVlZCBzcGFjZSkgICovCisrY2xlYXJfYnNzOgorKwlsZHIJcjAsIF9ic3Nfc3Rh cnQJCS8qIGZpbmQgc3RhcnQgb2YgYnNzIHNlZ21lbnQgICAgICAgICovCisrCWxkcglyMSwgX2Jz c19lbmQJCS8qIHN0b3AgaGVyZSAgICAgICAgICAgICAgICAgICAgICAgICovCisrCW1vdiAJcjIs ICMweDAwMDAwMDAwCQkvKiBjbGVhciB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAqLworK2Ns YnNzX2w6CisrCXN0cglyMiwgW3IwXQkJLyogY2xlYXIgQlNTIGxvY2F0aW9uICAgICAgICAgICAg ICAgKi8KKysJY21wCXIwLCByMQkJCS8qIGFyZSB3ZSBhdCB0aGUgZW5kIHlldCAgICAgICAgICAg ICovCisrCWFkZAlyMCwgcjAsICM0CQkvKiBpbmNyZW1lbnQgY2xlYXIgaW5kZXggcG9pbnRlciAg ICAqLworKwlibmUJY2xic3NfbCAgICAgICAgICAgICAgICAgLyoga2VlcCBjbGVhcmluZyB0aWxs IGF0IGVuZCAgICAgICAgKi8KKysKKysJbGRyCXBjLCBfc3RhcnRfYXJtYm9vdAkvKiBqdW1wIHRv IEMgY29kZSAgICAgICAgICAgICAgICAgICAqLworKworK19zdGFydF9hcm1ib290OiAud29yZCBz dGFydF9hcm1ib290CisrCisrCisrLyoKKysgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyAqCisrICogQ1BV X2luaXRfY3JpdGljYWwgcmVnaXN0ZXJzCisrICoKKysgKiBzZXR1cCBpbXBvcnRhbnQgcmVnaXN0 ZXJzCisrICogc2V0dXAgbWVtb3J5IHRpbWluZworKyAqCisrICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysg Ki8KKytjcHVfaW5pdF9jcml0OgorKwkvKgorKwkgKiBJbnZhbGlkYXRlIEwxIEkvRAorKwkgKi8K KysgICAgICAgIG1vdglyMCwgIzAgICAgICAgICAgICAgICAgIC8qIHNldCB1cCBmb3IgTUNSICov CisrICAgICAgICBtY3IJcDE1LCAwLCByMCwgYzgsIGM3LCAwICAvKiBpbnZhbGlkYXRlIFRMQnMg Ki8KKysgICAgICAgIG1jcglwMTUsIDAsIHIwLCBjNywgYzUsIDAgIC8qIGludmFsaWRhdGUgaWNh Y2hlICovCisrCisrCS8qCisrCSAqIGRpc2FibGUgTU1VIHN0dWZmIGFuZCBjYWNoZXMKKysJICov CisrCW1yYwlwMTUsIDAsIHIwLCBjMSwgYzAsIDAKKysJYmljCXIwLCByMCwgIzB4MDAwMDIwMDAJ QCBjbGVhciBiaXRzIDEzICgtLVYtKQorKwliaWMJcjAsIHIwLCAjMHgwMDAwMDAwNwlAIGNsZWFy IGJpdHMgMjowICgtQ0FNKQorKwlvcnIJcjAsIHIwLCAjMHgwMDAwMDAwMglAIHNldCBiaXQgMSAo LS1BLSkgQWxpZ24KKysJb3JyCXIwLCByMCwgIzB4MDAwMDA4MDAJQCBzZXQgYml0IDEyIChaLS0t KSBCVEIKKysJbWNyCXAxNSwgMCwgcjAsIGMxLCBjMCwgMAorKworKwkvKgorKwkgKiBKdW1wIHRv IGJvYXJkIHNwZWNpZmljIGluaXRpYWxpemF0aW9uLi4uIFRoZSBNYXNrIFJPTSB3aWxsCisrICAg ICAgICAgKiBoYXZlIGFscmVhZHkgaW5pdGlhbGl6ZWQgYmFzaWMgbWVtb3J5LiAgR28gaGVyZSB0 byBidW1wIHVwCisrICAgICAgICAgKiBjbG9jayByYXRlIGFuZCBoYW5kbGUgd2FrZSB1cCBjb25k aXRpb25zLgorKwkgKi8KKysJbW92CWlwLCBscgkJLyogcGVyc2V2ZXJlIGxpbmsgcmVnIGFjcm9z cyBjYWxsICovCisrCWJsCWxvd2xldmVsX2luaXQJLyogZ28gc2V0dXAgcGxsLG11eCxtZW1vcnkg Ki8KKysJbW92CWxyLCBpcAkJLyogcmVzdG9yZSBsaW5rICovCisrCW1vdglwYywgbHIJCS8qIGJh Y2sgdG8gbXkgY2FsbGVyICovCisrCisrCisrLyoKKysgKiBleGNlcHRpb24gaGFuZGxlcgorKyAq LworKyAJLmFsaWduICA1CisrZG9faGFuZzoKKysJbGRyCXNwLCBfVEVYVF9CQVNFCQkvKiB1c2Ug MzIgd29yZHMgYWJvcnQgc3RhY2sgKi8KKysgICAJYmwJaGFuZwkJCS8qIGhhbmcgYW5kIG5ldmVy IHJldHVybiAqLworKworK3NjcmF0Y2hwYWQ6CisrICAgIC53b3JkIDB4NEEzMjYwMDAKK2RpZmYg LXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2NwdS9vbWFwNC9zeXNfaW5mby5jIHgtbG9hZC1mMjQz OTM4L2NwdS9vbWFwNC9zeXNfaW5mby5jCistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9jcHUvb21h cDQvc3lzX2luZm8uYwkxOTY5LTEyLTMxIDIxOjAwOjAwLjAwMDAwMDAwMCAtMDMwMAorKysrIHgt bG9hZC1mMjQzOTM4L2NwdS9vbWFwNC9zeXNfaW5mby5jCTIwMTItMDYtMDcgMTQ6NDU6MzkuNDQ5 NjQ4NjY3IC0wMzAwCitAQCAtMCwwICsxLDM1IEBACisrLyoKKysgKiAoQykgQ29weXJpZ2h0IDIw MDQtMjAwOQorKyAqIFRleGFzIEluc3RydW1lbnRzLCA8d3d3LnRpLmNvbT4KKysgKiBSaWNoYXJk IFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+CisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICogbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysg KiB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24u CisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgL1BVUlBPU0UuICBTZWUgdGhlCisrICogR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICog YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh cmUKKysgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9z dG9uLAorKyAqIE1BIDAyMTExLTEzMDcgVVNBCisrICovCisrCisrI2luY2x1ZGUgPGNvbW1vbi5o PgorKyNpbmNsdWRlIDxhc20vYXJjaC9jcHUuaD4KKysjaW5jbHVkZSA8YXNtL2FyY2gvc3lzX2lu Zm8uaD4KKysKKysKKysvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisrICogZ2V0X2NwdV9yZXYodm9pZCkgLSBleHRyYWN0IHZlcnNpb24gaW5mbworKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisrdTMyIGdldF9jcHVfcmV2KHZv aWQpCisreworKwlyZXR1cm4gQ1BVXzQ0MzBfRVMxOworKworK30KKysKKysKK2RpZmYgLXVOciB4 LWxvYWQtZjI0MzkzOC5vcmlnL2RyaXZlcnMvazlmMWcwOHIwYS5jIHgtbG9hZC1mMjQzOTM4L2Ry aXZlcnMvazlmMWcwOHIwYS5jCistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9kcml2ZXJzL2s5ZjFn MDhyMGEuYwkyMDEwLTA4LTAzIDE4OjA4OjM4LjAwMDAwMDAwMCAtMDMwMAorKysrIHgtbG9hZC1m MjQzOTM4L2RyaXZlcnMvazlmMWcwOHIwYS5jCTIwMTItMDYtMDcgMTQ6NDU6MzkuNDUzNjQ4NjY3 IC0wMzAwCitAQCAtNDIsNiArNDIsNyBAQAorICAqLworICNkZWZpbmUgTVQyOUYxR19NRlIJCTB4 MmMgIC8qIE1pY3JvbiAqLworICNkZWZpbmUgTVQyOUYxR19NRlIyCQkweDIwICAvKiBudW1vbnl4 ICovCisrI2RlZmluZSBNVDI5RjFHX01GUjMJCTB4YWQgIC8qIEh5bml4ICovCisgI2RlZmluZSBN VDI5RjFHX0lECQkweGExICAvKiB4OCwgMUdpQiAqLworICNkZWZpbmUgTVQyOUYyR19JRCAgICAg IAkweGJhICAvKiB4MTYsIDJHaUIgKi8KKyAjZGVmaW5lIE1UMjlGNEdfSUQJCTB4YmMgIC8qIHgx NiwgNEdpQiAqLworQEAgLTIwNiwxMyArMjA3LDE4IEBACisgCisgCU5BTkRfRElTQUJMRV9DRSgp OworIAorLQlpZiAoKChtZnIgPT0gTVQyOUYxR19NRlIgfHwgbWZyID09IE1UMjlGMUdfTUZSMikg JiYKKysJaWYgKCgobWZyID09IE1UMjlGMUdfTUZSIHx8IG1mciA9PSBNVDI5RjFHX01GUjIgfHwg bWZyID09IE1UMjlGMUdfTUZSMykgJiYKKyAJCShpZCA9PSBNVDI5RjFHX0lEIHx8IGlkID09IE1U MjlGMkdfSUQgfHwgaWQgPT0gTVQyOUY0R19JRCkpIHx8CisgCSAgICAgKG1mciA9PSBLOUYxRzA4 UjBBX01GUiAmJiAoaWQgPT0gSzlGMUcwOFIwQV9JRCkpKSB7CisgCQlyZXR1cm4gMDsKKyAJfSBl bHNlIHsKKy0JCXByaW50ZigiVW5rbm93biBjaGlwOiBtZnIgd2FzIDB4JTAyeCwgaWQgd2FzIDB4 JTAyeFxuIiwgbWZyLCBpZCk7CistCQlyZXR1cm4gMTsKKysJCWlmICgobWZyID09IDApICYmIChp ZCA9PSAwKSkgeworKwkJCXByaW50ZigiTm8gTkFORCBkZXRlY3RlZFxuIik7CisrCQkJcmV0dXJu IDA7CisrCQl9IGVsc2UgeworKwkJCXByaW50ZigiVW5rbm93biBjaGlwOiBtZnIgd2FzIDB4JTAy eCwgaWQgd2FzIDB4JTAyeFxuIiwgbWZyLCBpZCk7CisrCQkJcmV0dXJuIDE7CisrCQl9CisgCX0K KyB9CisgCitkaWZmIC11TnIgeC1sb2FkLWYyNDM5Mzgub3JpZy9kcml2ZXJzL01ha2VmaWxlIHgt bG9hZC1mMjQzOTM4L2RyaXZlcnMvTWFrZWZpbGUKKy0tLSB4LWxvYWQtZjI0MzkzOC5vcmlnL2Ry aXZlcnMvTWFrZWZpbGUJMjAxMC0wOC0wMyAxODowODozOC4wMDAwMDAwMDAgLTAzMDAKKysrKyB4 LWxvYWQtZjI0MzkzOC9kcml2ZXJzL01ha2VmaWxlCTIwMTItMDYtMDcgMTQ6NDU6MzkuNDQ5NjQ4 NjY3IC0wMzAwCitAQCAtMjYsNyArMjYsNyBAQAorICMgQ0ZMQUdTICs9IC1ERVRfREVCVUcgLURE RUJVRworIAorIExJQgk9IGxpYmRyaXZlcnMuYQorLU9CSlMJPSBzZXJpYWwubyBuczE2NTUwLm8g b25lbmFuZC5vIG9tYXAyNHh4X2kyYy5vCisrT0JKUwk9IHNlcmlhbC5vIG5zMTY1NTAubyBvbWFw MjR4eF9pMmMubworIAorIGlmZXEgKCQoQk9BUkQpLCBvbWFwMzQzMHNkcCkKKyBPQkpTIAkrPSBr OWYxZzA4cjBhLm8KK0BAIC00MSw3ICs0MSw3IEBACisgZW5kaWYKKyAKKyBpZmVxICgkKEJPQVJE KSwgb21hcDNldm0pCistT0JKUyAJKz0gazlmMWcwOHIwYS5vCisrT0JKUyAJKz0gazlmMWcwOHIw YS5vIG9uZW5hbmQubworIGVuZGlmCisgCisgaWZlcSAoJChCT0FSRCksIG92ZXJvKQorZGlmZiAt dU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvZnMvZmF0L2ZhdC5jIHgtbG9hZC1mMjQzOTM4L2ZzL2Zh dC9mYXQuYworLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcvZnMvZmF0L2ZhdC5jCTIwMTAtMDgtMDMg MTg6MDg6MzguMDAwMDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvZnMvZmF0L2ZhdC5j CTIwMTItMDYtMDcgMTQ6NDU6MzkuNDUzNjQ4NjY3IC0wMzAwCitAQCAtMzg0LDcgKzM4NCw3IEBA CisgCQkJbmV3Y2x1c3QgPSBnZXRfZmF0ZW50KG15ZGF0YSwgZW5kY2x1c3QpOworIAkJCWlmKChu ZXdjbHVzdCAtMSkhPWVuZGNsdXN0KQorIAkJCQlnb3RvIGdldGl0OworLQkJCWlmIChuZXdjbHVz dCA8PSAweDAwMDEgfHwgbmV3Y2x1c3QgPj0gMHhmZmYwKSB7CisrCQkJaWYgKG5ld2NsdXN0IDw9 IDB4MDAwMSB8fCBuZXdjbHVzdCA+PSAweGZmZmZmMCkgeworIAkJCQlGQVRfRFBSSU5UKCJjdXJj bHVzdDogMHgleFxuIiwgbmV3Y2x1c3QpOworIAkJCQlGQVRfRFBSSU5UKCJJbnZhbGlkIEZBVCBl bnRyeVxuIik7CisgCQkJCXJldHVybiBnb3RzaXplOworQEAgLTQxOSw3ICs0MTksNyBAQAorIAkJ ZmlsZXNpemUgLT0gYWN0c2l6ZTsKKyAJCWJ1ZmZlciArPSBhY3RzaXplOworIAkJY3VyY2x1c3Qg PSBnZXRfZmF0ZW50KG15ZGF0YSwgZW5kY2x1c3QpOworLQkJaWYgKGN1cmNsdXN0IDw9IDB4MDAw MSB8fCBjdXJjbHVzdCA+PSAweGZmZjApIHsKKysJCWlmIChjdXJjbHVzdCA8PSAweDAwMDEgfHwg Y3VyY2x1c3QgPj0gMHhmZmZmZjApIHsKKyAJCQlGQVRfRFBSSU5UKCJjdXJjbHVzdDogMHgleFxu IiwgY3VyY2x1c3QpOworIAkJCUZBVF9FUlJPUigiSW52YWxpZCBGQVQgZW50cnlcbiIpOworIAkJ CXJldHVybiBnb3RzaXplOworQEAgLTU4MCw3ICs1ODAsNyBAQAorIAkgICAgcmV0dXJuIHJldGRl bnQ7CisgCX0KKyAJY3VyY2x1c3QgPSBnZXRfZmF0ZW50IChteWRhdGEsIGN1cmNsdXN0KTsKKy0J aWYgKGN1cmNsdXN0IDw9IDB4MDAwMSB8fCBjdXJjbHVzdCA+PSAweGZmZjApIHsKKysJaWYgKGN1 cmNsdXN0IDw9IDB4MDAwMSB8fCBjdXJjbHVzdCA+PSAweGZmZmZmMCkgeworIAkgICAgRkFUX0RQ UklOVCAoImN1cmNsdXN0OiAweCV4XG4iLCBjdXJjbHVzdCk7CisgCSAgICBGQVRfRVJST1IgKCJJ bnZhbGlkIEZBVCBlbnRyeVxuIik7CisgCSAgICByZXR1cm4gTlVMTDsKK0BAIC02NzksNyArNjc5 LDcgQEAKKyAgICAgZGlyX2VudHJ5ICpkZW50cHRyOworICAgICBfX3UxNiBwcmV2Y2tzdW0gPSAw eGZmZmY7CisgICAgIGNoYXIgKnN1Ym5hbWUgPSAiIjsKKy0gICAgaW50IHJvb3RkaXJfc2l6ZSwg Y3Vyc2VjdDsKKysgICAgaW50IHJvb3RkaXJfc2l6ZSwgY3Vyc2VjdCwgY3VyY2x1czsKKyAgICAg aW50IGlkeCwgaXNkaXIgPSAwOworICAgICBpbnQgZmlsZXMgPSAwLCBkaXJzID0gMDsKKyAgICAg bG9uZyByZXQgPSAwOworQEAgLTY5Nyw2ICs2OTcsNyBAQAorICAgICBteWRhdGEtPmZhdF9zZWN0 ID0gYnMucmVzZXJ2ZWQ7CisgICAgIGN1cnNlY3QgPSBteWRhdGEtPnJvb3RkaXJfc2VjdAorIAkg ICAgPSBteWRhdGEtPmZhdF9zZWN0ICsgbXlkYXRhLT5mYXRsZW5ndGggKiBicy5mYXRzOworKyAg ICBjdXJjbHVzID0gYnMucm9vdF9jbHVzdGVyOyAgIC8vIEZvciBGQVQzMiBvbmx5CisgICAgIG15 ZGF0YS0+Y2x1c3Rfc2l6ZSA9IGJzLmNsdXN0ZXJfc2l6ZTsKKyAgICAgaWYgKG15ZGF0YS0+ZmF0 c2l6ZSA9PSAzMikgeworIAlyb290ZGlyX3NpemUgPSBteWRhdGEtPmNsdXN0X3NpemU7CitAQCAt ODE4LDcgKzgxOSwxNiBAQAorIAorIAkgICAgZ290byByb290ZGlyX2RvbmU7ICAvKiBXZSBnb3Qg YSBtYXRjaCAqLworIAl9CistCWN1cnNlY3QrKzsKKysKKysJaWYgKG15ZGF0YS0+ZmF0c2l6ZSAh PSAzMikKKysJICAgY3Vyc2VjdCsrOworKwllbHNlIHsKKysJICAgLy8gRkFUMzIgZG9lcyBub3Qg Z3VhcmFudGVlIGNvbnRpZ3VvdXMgcm9vdCBkaXJlY3RvcnkKKysJICAgY3VyY2x1cyA9IGdldF9m YXRlbnQgKG15ZGF0YSwgY3VyY2x1cyk7CisrCSAgIGN1cnNlY3QgPSAoY3VyY2x1cyAqIG15ZGF0 YS0+Y2x1c3Rfc2l6ZSkgKyBteWRhdGEtPmRhdGFfYmVnaW47CisrCisrCSAgIEZBVF9EUFJJTlQg KCJyb290IGNsdXMgJWQgc2VjdG9yICVkXG4iLCBjdXJjbHVzLCBjdXJzZWN0KTsKKysJfQorICAg ICB9CisgICByb290ZGlyX2RvbmU6CisgCitkaWZmIC11TnIgeC1sb2FkLWYyNDM5Mzgub3JpZy8u Z2l0aWdub3JlIHgtbG9hZC1mMjQzOTM4Ly5naXRpZ25vcmUKKy0tLSB4LWxvYWQtZjI0MzkzOC5v cmlnLy5naXRpZ25vcmUJMTk2OS0xMi0zMSAyMTowMDowMC4wMDAwMDAwMDAgLTAzMDAKKysrKyB4 LWxvYWQtZjI0MzkzOC8uZ2l0aWdub3JlCTIwMTItMDYtMDcgMTQ6NDU6MzkuNDM3NjQ4NjY3IC0w MzAwCitAQCAtMCwwICsxLDUwIEBACisrIworKyMgTk9URSEgRG9uJ3QgYWRkIGZpbGVzIHRoYXQg YXJlIGdlbmVyYXRlZCBpbiBzcGVjaWZpYworKyMgc3ViZGlyZWN0b3JpZXMgaGVyZS4gQWRkIHRo ZW0gaW4gdGhlICIuZ2l0aWdub3JlIiBmaWxlCisrIyBpbiB0aGF0IHN1YmRpcmVjdG9yeSBpbnN0 ZWFkLgorKyMKKysjIE5vcm1hbCBydWxlcworKyMKKysuKgorKyoubworKyouby4qCisrKi5hCisr Ki5zCisrKi5rbworKyouc28KKysqLnNvLmRiZworKyoubW9kLmMKKysqLmkKKysqLmxzdAorKyou c3ltdHlwZXMKKysKKysjCisrIyBUb3AtbGV2ZWwgZ2VuZXJpYyBmaWxlcworKyMKKyt4LWxvYWQK Kyt4LWxvYWQuKgorK1N5c3RlbS5tYXAKKytpbmNsdWRlL2FzbS9hcmNoCisraW5jbHVkZS9hc20v cHJvYworK2luY2x1ZGUvY29uZmlnLmgKKytpbmNsdWRlL2NvbmZpZy5taworKyEuZ2l0aWdub3Jl Cisrc2lnbkdQCisrTUxPCisrCisrIworKyMgR2VuZXJhdGVkIGluY2x1ZGUgZmlsZXMKKysjCisr CisrIyBzdGdpdCBnZW5lcmF0ZWQgZGlycworK3BhdGNoZXMtKgorKworKyMgcXVpbHQncyBmaWxl cworK3BhdGNoZXMKKytzZXJpZXMKKysKKysjIGNzY29wZSBmaWxlcworK2NzY29wZS4qCisrCisr Ki5vcmlnCisrKi5yZWoKK2RpZmYgLXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2luY2x1ZGUvYXNt L2FyY2gtb21hcDMvbWVtLmggeC1sb2FkLWYyNDM5MzgvaW5jbHVkZS9hc20vYXJjaC1vbWFwMy9t ZW0uaAorLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcvaW5jbHVkZS9hc20vYXJjaC1vbWFwMy9tZW0u aAkyMDEwLTA4LTAzIDE4OjA4OjM4LjAwMDAwMDAwMCAtMDMwMAorKysrIHgtbG9hZC1mMjQzOTM4 L2luY2x1ZGUvYXNtL2FyY2gtb21hcDMvbWVtLmgJMjAxMi0wNi0wNyAxNDo0NTozOS40NTM2NDg2 NjcgLTAzMDAKK0BAIC03NCw2ICs3NCw3IEBACisgI2RlZmluZSBTRFBfU0RSQ19NRENGR18wX0RE UgkoMHgwMjU4NDAxOXxCX0FMTCkKKyAjZGVmaW5lIFNEUF9TRFJDX01EQ0ZHXzBfRERSX01JQ1JP Tl9YTQkoMHgwMzU4ODAxOXxCX0FMTCkKKyAjZGVmaW5lIFNEUF9TRFJDX01EQ0ZHXzBfRERSX05V TU9OWVhfWE0JKDB4MDQ1OTAwMTl8Ql9BTEwpCisrI2RlZmluZSBTRFBfU0RSQ19NRENGR18wX0RE Ul9IWU5JWAkoMHgwMzU4ODAxOXxCX0FMTCkKKyAjZW5kaWYKKyAKKyAjZGVmaW5lIFNEUF9TRFJD X01SXzBfRERSCQkweDAwMDAwMDMyCitAQCAtMjk1LDYgKzI5Niw0NiBAQAorICNkZWZpbmUgTlVN T05ZWF9WX0FDVElNQl8xNjUgKChOVU1PTllYX1RDS0VfMTY1IDw8IDEyKSB8IChOVU1PTllYX1hT Ul8xNjUgPDwgMCkpIHwgXAorIAkJCQkoTlVNT05ZWF9UWFBfMTY1IDw8IDgpIHwgKE5VTU9OWVhf VFdUUl8xNjUgPDwgMTYpCisgCisrLyoKKysgKiBIeW5peCBwYXJ0IG9mIE92ZXJvICgxNjVNSHog b3B0aW1pemVkKSA2LjA2bnMKKysgKiAgIEFDVElNQQorKyAqICAgICBBQ1RJTUEKKysgKiAgICAg ICAgVERBTCA9IFR3ci9UY2sgKyBUcnAvdGNrID0gMTUvNiArIDE4LzYgPSAyLjUgKyAzID0gNS41 IC0+IDYKKysgKiAgICAgICAgVERQTCAoVHdyKSA9IDE1LzYgICAgICAgPSAyLjUgLT4gMworKyAq ICAgICAgICBUUlJEID0gMTIvNiAgICAgPSAyCisrICogICAgICAgIFRSQ0QgPSAxOC82ICAgICA9 IDMKKysgKiAgICAgICAgVFJQID0gMTgvNiAgICAgID0gMworKyAqICAgICAgICBUUkFTID0gNDIv NiAgICAgPSA3CisrICogICAgICAgIFRSQyA9IDYwLzYgICAgICA9IDEwCisrICogICAgICAgIFRS RkMgPSA5Ny41LzYgICAgPSAxNworKyAqICAgICBBQ1RJTUIKKysgKiAgICAgICAgVFdUUiA9IDEK KysgKiAgICAgICAgVENLRSA9IDEKKysgKiAgICAgICAgVFhQID0gMSsxCisrICogICAgICAgIFhT UiA9IDE0MC82ID0gMjQKKysgKi8KKysjZGVmaW5lIEhZTklYX1REQUxfMTY1ICAgNgorKyNkZWZp bmUgSFlOSVhfVERQTF8xNjUgICAzCisrI2RlZmluZSBIWU5JWF9UUlJEXzE2NSAgIDIKKysjZGVm aW5lIEhZTklYX1RSQ0RfMTY1ICAgMworKyNkZWZpbmUgSFlOSVhfVFJQXzE2NSAgICAzCisrI2Rl ZmluZSBIWU5JWF9UUkFTXzE2NSAgIDcKKysjZGVmaW5lIEhZTklYX1RSQ18xNjUgICAxMAorKyNk ZWZpbmUgSFlOSVhfVFJGQ18xNjUgIDIxCisrI2RlZmluZSBIWU5JWF9WX0FDVElNQV8xNjUgKChI WU5JWF9UUkZDXzE2NSA8PCAyNykgfCBcCisrCQkoSFlOSVhfVFJDXzE2NSA8PCAyMikgfCAoSFlO SVhfVFJBU18xNjUgPDwgMTgpIHwgXAorKwkJKEhZTklYX1RSUF8xNjUgPDwgMTUpIHwgKEhZTklY X1RSQ0RfMTY1IDw8IDEyKSB8IFwKKysJCShIWU5JWF9UUlJEXzE2NSA8PCA5KSB8IChIWU5JWF9U RFBMXzE2NSA8PCA2KSB8IFwKKysJCShIWU5JWF9UREFMXzE2NSkpCisrCisrI2RlZmluZSBIWU5J WF9UV1RSXzE2NSAgIDEKKysjZGVmaW5lIEhZTklYX1RDS0VfMTY1ICAgMQorKyNkZWZpbmUgSFlO SVhfVFhQXzE2NSAgICAyCisrI2RlZmluZSBIWU5JWF9YU1JfMTY1ICAgIDI0CisrI2RlZmluZSBI WU5JWF9WX0FDVElNQl8xNjUgKChIWU5JWF9UQ0tFXzE2NSA8PCAxMikgfCBcCisrCQkoSFlOSVhf WFNSXzE2NSA8PCAwKSB8IChIWU5JWF9UWFBfMTY1IDw8IDgpIHwgXAorKwkJKEhZTklYX1RXVFJf MTY1IDw8IDE2KSkKKysKKyAvKiBOZXcgYW5kIGNvbXBhdGFiaWxpdHkgc3BlZWQgZGVmaW5lcyAq LworICNpZiBkZWZpbmVkKFBSQ01fQ0xLX0NGRzJfMjAwTUhaKSB8fCBkZWZpbmVkKFBSQ01fQ09O RklHX0lJKSB8fCBkZWZpbmVkKFBSQ01fQ09ORklHXzVCKQorICMgZGVmaW5lIEwzXzEwME1IWiAg IC8qIFVzZSB3aXRoIDw9IDEwME1IeiBTRFJBTSAqLworZGlmZiAtdU5yIHgtbG9hZC1mMjQzOTM4 Lm9yaWcvaW5jbHVkZS9hc20vYXJjaC1vbWFwMy9vbWFwMzQzMC5oIHgtbG9hZC1mMjQzOTM4L2lu Y2x1ZGUvYXNtL2FyY2gtb21hcDMvb21hcDM0MzAuaAorLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcv aW5jbHVkZS9hc20vYXJjaC1vbWFwMy9vbWFwMzQzMC5oCTIwMTAtMDgtMDMgMTg6MDg6MzguMDAw MDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvaW5jbHVkZS9hc20vYXJjaC1vbWFwMy9v bWFwMzQzMC5oCTIwMTItMDYtMDcgMTQ6NDU6MzkuNDUzNjQ4NjY3IC0wMzAwCitAQCAtMTM4LDQg KzEzOCw2MCBAQAorICNkZWZpbmUgRU5IQU5DRURfVUlfRUVfTkFNRQkJIjc1MC0yMDc1IgorICNl bmRpZgorIAorKy8qCisrICogMzQzeCByZWFsIGhhcmR3YXJlOgorKyAqICBFUzEgICAgID0gcmV2 IDAKKysgKgorKyAqICBFUzIgb253YXJkcywgdGhlIHZhbHVlIG1hcHMgdG8gY29udGVudHMgb2Yg SURDT0RFIHJlZ2lzdGVyIFszMToyOF0uCisrICoKKysgKiBOb3RlIDogQ1BVXzNYWF9FUzIwIGlz IHVzZWQgaW4gY2FjaGUuUy4gIFBsZWFzZSByZXZpZXcgYmVmb3JlIGNoYW5naW5nLgorKyAqLwor KyNkZWZpbmUgQ1BVXzNYWF9FUzEwCQkwCisrI2RlZmluZSBDUFVfM1hYX0VTMjAJCTEKKysjZGVm aW5lIENQVV8zWFhfRVMyMQkJMgorKyNkZWZpbmUgQ1BVXzNYWF9FUzMwCQkzCisrI2RlZmluZSBD UFVfM1hYX0VTMzEJCTQKKysjZGVmaW5lIENQVV8zWFhfRVMzMTIJCTcKKysjZGVmaW5lIENQVV8z WFhfTUFYX1JFVgkJOAorKworKyNkZWZpbmUgQ1BVXzNYWF9JRF9TSElGVAkyOAorKworKyNkZWZp bmUgV0lEVEhfOEJJVAkJMHgwMDAwCisrI2RlZmluZSBXSURUSF8xNkJJVAkJMHgxMDAwCS8qIGJp dCBwb3MgZm9yIDE2IGJpdCBpbiBncG1jICovCisrCisrLyoKKysgKiBDb250cm9sIGlkY29kZSBy ZWdpc3RlciBjb250YWlucyBoYXdrZXllIGFuZCByZXZpc2lvbiBpbmZvCisrICovCisrI2RlZmlu ZSBDT05UUk9MX0lEQ09ERQkJMHg0ODMwQTIwNAorKyNkZWZpbmUgQ09OVFJPTF9PTUFQX1NUQVRV UyAgICAgMHg0ODAwMjQ0QworKworKy8qCisrICogSGF3a2V5ZSB2YWx1ZXMKKysgKi8KKysjZGVm aW5lIEhBV0tFWUVfT01BUDM0WFgJMHhiN2FlCisrI2RlZmluZSBIQVdLRVlFX0FNMzVYWAkJMHhi ODY4CisrI2RlZmluZSBIQVdLRVlFX09NQVAzNlhYCTB4Yjg5MQorKworKyNkZWZpbmUgSEFXS0VZ RV9TSElGVAkJMTIKKysKKysvKgorKyAqIERlZmluZSBDUFUgZmFtaWxpZXMKKysgKi8KKysjZGVm aW5lIENQVV9PTUFQMzRYWAkJMHgzNDAwCS8qIE9NQVAzNHh4L09NQVAzNSBkZXZpY2VzICovCisr I2RlZmluZSBDUFVfQU0zNVhYCQkweDM1MDAJLyogQU0zNXh4IGRldmljZXMgICAgICAgICAgKi8K KysjZGVmaW5lIENQVV9PTUFQMzZYWAkJMHgzNjAwCS8qIE9NQVAzNnh4IGRldmljZXMgICAgICAg ICovCisrCisrLyoKKysgKiBDb250cm9sIHN0YXR1cyByZWdpc3RlciB2YWx1ZXMgY29ycmVzcG9u ZGluZyB0byBjcHUgdmFyaWFudHMKKysgKi8KKysjZGVmaW5lIE9NQVAzNTAzCQkweDVjMDAKKysj ZGVmaW5lIE9NQVAzNTE1CQkweDFjMDAKKysjZGVmaW5lIE9NQVAzNTI1CQkweDRjMDAKKysjZGVm aW5lIE9NQVAzNTMwCQkweDBjMDAKKysKKysjZGVmaW5lIEFNMzUwNQkJCTB4NWMwMAorKyNkZWZp bmUgQU0zNTE3CQkJMHgxYzAwCisrCisrI2RlZmluZSBPTUFQMzczMAkJMHgwYzAwCisrCisgI2Vu ZGlmICAvKiBfT01BUDM0MzBfU1lTX0hfICovCitkaWZmIC11TnIgeC1sb2FkLWYyNDM5Mzgub3Jp Zy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L2JpdHMuaCB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2Fz bS9hcmNoLW9tYXA0L2JpdHMuaAorLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcvaW5jbHVkZS9hc20v YXJjaC1vbWFwNC9iaXRzLmgJMTk2OS0xMi0zMSAyMTowMDowMC4wMDAwMDAwMDAgLTAzMDAKKysr KyB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L2JpdHMuaAkyMDEyLTA2LTA3 IDE0OjQ1OjM5LjQ1MzY0ODY2NyAtMDMwMAorQEAgLTAsMCArMSw0OCBAQAorKy8qIGJpdHMuaAor KyAqIENvcHlyaWdodCAoYykgMjAwNC0yMDA5IFRleGFzIEluc3RydW1lbnRzCisrICoKKysgKiBU aGlzIHBhY2thZ2UgaXMgZnJlZSBzb2Z0d2FyZTsgIHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIGxpY2Vuc2UgZm91bmQg aW4gdGhlIGZpbGUKKysgKiBuYW1lZCBDT1BZSU5HIHRoYXQgc2hvdWxkIGhhdmUgYWNjb21wYW5p ZWQgdGhpcyBmaWxlLgorKyAqCisrICogVEhJUyBQQUNLQUdFIElTIFBST1ZJREVEIGBgQVMgSVMn JyBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUgorKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5D TFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIFRIRSBJTVBMSUVECisrICogV0FSUkFOVElFUyBP RiBNRVJDSEFOVElCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgor KyAqLworKyNpZm5kZWYgX19iaXRzX2gKKysjZGVmaW5lIF9fYml0c19oIDEKKysKKysjZGVmaW5l IEJJVDAgICgxPDwwKQorKyNkZWZpbmUgQklUMSAgKDE8PDEpCisrI2RlZmluZSBCSVQyICAoMTw8 MikKKysjZGVmaW5lIEJJVDMgICgxPDwzKQorKyNkZWZpbmUgQklUNCAgKDE8PDQpCisrI2RlZmlu ZSBCSVQ1ICAoMTw8NSkKKysjZGVmaW5lIEJJVDYgICgxPDw2KQorKyNkZWZpbmUgQklUNyAgKDE8 PDcpCisrI2RlZmluZSBCSVQ4ICAoMTw8OCkKKysjZGVmaW5lIEJJVDkgICgxPDw5KQorKyNkZWZp bmUgQklUMTAgKDE8PDEwKQorKyNkZWZpbmUgQklUMTEgKDE8PDExKQorKyNkZWZpbmUgQklUMTIg KDE8PDEyKQorKyNkZWZpbmUgQklUMTMgKDE8PDEzKQorKyNkZWZpbmUgQklUMTQgKDE8PDE0KQor KyNkZWZpbmUgQklUMTUgKDE8PDE1KQorKyNkZWZpbmUgQklUMTYgKDE8PDE2KQorKyNkZWZpbmUg QklUMTcgKDE8PDE3KQorKyNkZWZpbmUgQklUMTggKDE8PDE4KQorKyNkZWZpbmUgQklUMTkgKDE8 PDE5KQorKyNkZWZpbmUgQklUMjAgKDE8PDIwKQorKyNkZWZpbmUgQklUMjEgKDE8PDIxKQorKyNk ZWZpbmUgQklUMjIgKDE8PDIyKQorKyNkZWZpbmUgQklUMjMgKDE8PDIzKQorKyNkZWZpbmUgQklU MjQgKDE8PDI0KQorKyNkZWZpbmUgQklUMjUgKDE8PDI1KQorKyNkZWZpbmUgQklUMjYgKDE8PDI2 KQorKyNkZWZpbmUgQklUMjcgKDE8PDI3KQorKyNkZWZpbmUgQklUMjggKDE8PDI4KQorKyNkZWZp bmUgQklUMjkgKDE8PDI5KQorKyNkZWZpbmUgQklUMzAgKDE8PDMwKQorKyNkZWZpbmUgQklUMzEg KDE8PDMxKQorKworKyNlbmRpZgorZGlmZiAtdU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvaW5jbHVk ZS9hc20vYXJjaC1vbWFwNC9jbG9ja3M0NDN4LmggeC1sb2FkLWYyNDM5MzgvaW5jbHVkZS9hc20v YXJjaC1vbWFwNC9jbG9ja3M0NDN4LmgKKy0tLSB4LWxvYWQtZjI0MzkzOC5vcmlnL2luY2x1ZGUv YXNtL2FyY2gtb21hcDQvY2xvY2tzNDQzeC5oCTE5NjktMTItMzEgMjE6MDA6MDAuMDAwMDAwMDAw IC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvaW5jbHVkZS9hc20vYXJjaC1vbWFwNC9jbG9ja3M0 NDN4LmgJMjAxMi0wNi0wNyAxNDo0NTozOS40NTM2NDg2NjcgLTAzMDAKK0BAIC0wLDAgKzEsMTU0 IEBACisrLyoKKysgKiAoQykgQ29weXJpZ2h0IDIwMDYtMjAwOQorKyAqIFRleGFzIEluc3RydW1l bnRzLCA8d3d3LnRpLmNvbT4KKysgKiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5j b20+CisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCisrICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgKiB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgL1BVUlBP U0UuICBTZWUgdGhlCisrICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKysgKiBGb3VuZGF0aW9uLCBJbmMuLCA1 OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorKyAqIE1BIDAyMTExLTEzMDcgVVNB CisrICAqLworKyNpZm5kZWYgX09NQVA0NDNYX0NMT0NLU19IXworKyNkZWZpbmUgX09NQVA0NDNY X0NMT0NLU19IXworKworKyNkZWZpbmUgUExMX1NUT1AgICAgICAgIDEgICAgICAgICAvKiBQRVIg JiBJVkEgKi8KKysjZGVmaW5lIFBMTF9NTl9QT1dFUl9CWVBBU1MgCTQKKysjZGVmaW5lIFBMTF9M T1dfUE9XRVJfQllQQVNTICAgNSAgLyogTVBVLCBJVkEgJiBDT1JFICovCisrI2RlZmluZSBQTExf RkFTVF9SRUxPQ0tfQllQQVNTIDYgIC8qIENPUkUgKi8KKysjZGVmaW5lIFBMTF9MT0NLICAgICAg ICA3ICAgICAgICAgLyogTVBVLCBJVkEsIENPUkUgJiBQRVIgKi8KKysKKysvKiBUaGUgZm9sbG93 aW5nIGNvbmZpZ3VyYXRpb25zIGFyZSBPUFAgYW5kIFN5c0NsayB2YWx1ZSBpbmRlcGVuZGFudAor KyAqIGFuZCBoZW5jZSBhcmUgZGVmaW5lZCBoZXJlLiBBbGwgdGhlIG90aGVyIERQTEwgcmVsYXRl ZCB2YWx1ZXMgYXJlCisrICogdGFidWxhdGVkIGluIGxvd2xldmVsX2luaXQuUy4KKysgKi8KKysK KysvKiBDT1JFIERQTEwgKi8KKysjICBkZWZpbmUgQ09SRV9NM1gyICAgICAgMiAgICAgICAgLyog MzMyTUh6IDogQ01fQ0xLU0VMMV9FTVUgKi8KKysjICBkZWZpbmUgQ09SRV9TU0lfRElWICAgMyAg ICAgICAgLyogMjIxTUh6IDogQ01fQ0xLU0VMX0NPUkUgKi8KKysjICBkZWZpbmUgQ09SRV9GVVNC X0RJViAgMiAgICAgICAgLyogNDEuNU1IejogKi8KKysjICBkZWZpbmUgQ09SRV9MNF9ESVYgICAg MiAgICAgICAgLyogIDgzTUh6IDogTDQgKi8KKysjICBkZWZpbmUgQ09SRV9MM19ESVYgICAgMiAg ICAgICAgLyogMTY2TUh6IDogTDMge0REUn0gKi8KKysjICBkZWZpbmUgR0ZYX0RJViAgICAgICAg MiAgICAgICAgLyogIDgzTUh6IDogQ01fQ0xLU0VMX0dGWCAqLworKyMgIGRlZmluZSBXS1VQX1JT TSAgICAgICAyICAgICAgICAvKiA0MS41TUh6OiBDTV9DTEtTRUxfV0tVUCAqLworKworKy8qIFBF UiBEUExMICovCisrIyBkZWZpbmUgUEVSX002WDIgICAgICAgMyAgICAgICAgIC8qIDI4OE1Iejog Q01fQ0xLU0VMMV9FTVUgKi8KKysjIGRlZmluZSBQRVJfTTVYMiAgICAgICA0ICAgICAgICAgLyog MjE2TUh6OiBDTV9DTEtTRUxfQ0FNICovCisrIyBkZWZpbmUgUEVSX000WDIgICAgICAgOSAgICAg ICAgIC8qIDk2TUh6IDogQ01fQ0xLU0VMX0RTUy1kc3MxICovCisrIyBkZWZpbmUgUEVSX00zWDIg ICAgICAgMTYgICAgICAgIC8qIDU0TUh6IDogQ01fQ0xLU0VMX0RTUy10diAqLworKworKyMgIGRl ZmluZSBDTFNFTDFfRU1VX1ZBTCAoKENPUkVfTTNYMiA8PCAxNikgfCAoUEVSX002WDIgPDwgMjQp IHwgKDB4MGE1MCkpCisrCisrI2lmZGVmIFBSQ01fQ0xLX0NGRzJfMzMyTUhaCisrIyBkZWZpbmUg TV8xMgkJMHhBNgorKyMgZGVmaW5lIE5fMTIJCTB4MDUKKysjIGRlZmluZSBGU0VMXzEyCTB4MDcK KysjIGRlZmluZSBNMl8xMgkJMHgwMSAvKiBNMyBvZiAyICovCisrCisrIyBkZWZpbmUgTV8xMl9F UzEJMHgwRQorKyMgZGVmaW5lIEZTTF8xMl9FUzEgMHgwMworKyMgZGVmaW5lIE0yXzEyX0VTMSAg MHgxIC8qIE0zIG9mIDIgKi8KKysKKysjIGRlZmluZSBNXzEzICAgICAgIDB4MTRDCisrIyBkZWZp bmUgTl8xMyAgICAgICAweDBDCisrIyBkZWZpbmUgRlNFTF8xMwkweDAzCisrIyBkZWZpbmUgTTJf MTMJCTB4MDEgLyogTTMgb2YgMiAqLworKworKyMgZGVmaW5lIE1fMTNfRVMxCTB4MUIyCisrIyBk ZWZpbmUgTl8xM19FUzEJMHgxMAorKyMgZGVmaW5lIEZTTF8xM19FUzEgMHgwMworKyMgZGVmaW5l IE0yXzEzX0VTMQkweDAxIC8qIE0zIG9mIDIgKi8KKysKKysjIGRlZmluZSBNXzE5cDIgICAgIDB4 MTlGCisrIyBkZWZpbmUgTl8xOXAyICAgICAweDE3CisrIyBkZWZpbmUgRlNFTF8xOXAyICAweDAz CisrIyBkZWZpbmUgTTJfMTlwMiAgICAweDAxIC8qIE0zIG9mIDIgKi8KKysKKysjIGRlZmluZSBN XzE5cDJfRVMxCTB4MTlGCisrIyBkZWZpbmUgTl8xOXAyX0VTMQkweDE3CisrIyBkZWZpbmUgRlNM XzE5cDJfRVMxIDB4MDMKKysjIGRlZmluZSBNMl8xOXAyX0VTMSAweDAxIC8qIE0zIG9mIDIgKi8K KysKKysjIGRlZmluZSBNXzI2ICAgICAgIDB4QTYKKysjIGRlZmluZSBOXzI2ICAgICAgIDB4MEMK KysjIGRlZmluZSBGU0VMXzI2ICAgIDB4MDcKKysjIGRlZmluZSBNMl8yNiAgICAgIDB4MDEgLyog TTMgb2YgMiAqLworKworKyMgZGVmaW5lIE1fMjZfRVMxCTB4MUIyCisrIyBkZWZpbmUgTl8yNl9F UzEJMHgyMQorKyMgZGVmaW5lIEZTTF8yNl9FUzEJMHgwMworKyMgZGVmaW5lIE0yXzI2X0VTMQkw eDAxIC8qIE0zIG9mIDIgKi8KKysKKysjIGRlZmluZSBNXzM4cDQgICAgIDB4MTlGCisrIyBkZWZp bmUgTl8zOHA0ICAgICAweDJGCisrIyBkZWZpbmUgRlNFTF8zOHA0ICAweDAzCisrIyBkZWZpbmUg TTJfMzhwNCAgICAweDAxIC8qIE0zIG9mIDIgKi8KKysKKysjIGRlZmluZSBNXzM4cDRfRVMxCTB4 MTlGCisrIyBkZWZpbmUgTl8zOHA0X0VTMQkweDJGCisrIyBkZWZpbmUgRlNMXzM4cDRfRVMxIDB4 MDMKKysjIGRlZmluZSBNMl8zOHA0X0VTMSAweDAxIC8qIE0zIG9mIDIgKi8KKysKKysjZWxpZiBk ZWZpbmVkKFBSQ01fQ0xLX0NGRzJfMjY2TUhaKQorKyMgZGVmaW5lIE1fMTIJCTB4ODUKKysjIGRl ZmluZSBOXzEyICAgICAgIDB4MDUKKysjIGRlZmluZSBGU0VMXzEyICAgIDB4MDcKKysjIGRlZmlu ZSBNMl8xMiAgICAgIDB4MDIgLyogTTMgb2YgMiAqLworKworKyMgZGVmaW5lIE1fMTJfRVMxCTB4 ODUgIC8qIDB4MTBBICovCisrIyBkZWZpbmUgTl8xMl9FUzEJMHgwNSAgLyogMHgwNSAqLworKyMg ZGVmaW5lIEZTTF8xMl9FUzEgMHgwNyAgLyogMHg3ICovCisrIyBkZWZpbmUgTTJfMTJfRVMxICAw eDIgICAvKiAweDIgd2l0aCBhbiBNMyBvZiA0Ki8KKysKKysjIGRlZmluZSBNXzEzICAgICAgIDB4 MTBBCisrIyBkZWZpbmUgTl8xMyAgICAgICAweDBDCisrIyBkZWZpbmUgRlNFTF8xMyAgICAweDMK KysjIGRlZmluZSBNMl8xMyAgICAgIDB4MSAvKiBNMyBvZiAyICovCisrCisrIyBkZWZpbmUgTV8x M19FUzEJMHgxMEEgLyogMHgyMTQgKi8KKysjIGRlZmluZSBOXzEzX0VTMQkweDBDICAvKiAweEMg Ki8KKysjIGRlZmluZSBGU0xfMTNfRVMxIDB4MyAgIC8qIDB4MyAqLworKyMgZGVmaW5lIE0yXzEz X0VTMQkweDEgICAvKiAweDIgd2l0aCBhbiBNMyBvZiA0Ki8KKysKKysjIGRlZmluZSBNXzE5cDIg ICAgIDB4MTE1CisrIyBkZWZpbmUgTl8xOXAyICAgICAweDEzCisrIyBkZWZpbmUgRlNFTF8xOXAy ICAweDAzCisrIyBkZWZpbmUgTTJfMTlwMiAgICAweDAxIC8qIE0zIG9mIDIgKi8KKysKKysjIGRl ZmluZSBNXzE5cDJfRVMxCTB4MTE1ICAvKiAweDI5OSAqLworKyMgZGVmaW5lIE5fMTlwMl9FUzEJ MHgxMyAgIC8qIDB4MTcgKi8KKysjIGRlZmluZSBGU0xfMTlwMl9FUzEgMHgwMyAvKiAweDAzICov CisrIyBkZWZpbmUgTTJfMTlwMl9FUzEgMHgwMSAgLyogMHgyIHdpdGggTTMgb2YgNCAqLworKwor KyMgZGVmaW5lIE1fMjYJCTB4ODUKKysjIGRlZmluZSBOXzI2CQkweDBDCisrIyBkZWZpbmUgRlNF TF8yNgkweDA3CisrIyBkZWZpbmUgTTJfMjYJCTB4MDEgLyogTTMgb2YgMiAqLworKworKyMgZGVm aW5lIE1fMjZfRVMxCTB4ODUgIC8qIDB4MTBBICovCisrIyBkZWZpbmUgTl8yNl9FUzEJMHgwQyAg LyogMHhDICovCisrIyBkZWZpbmUgRlNMXzI2X0VTMSAweDA3ICAvKiAweDcgKi8KKysjIGRlZmlu ZSBNMl8yNl9FUzEJMHgwMSAgLyogMHgyIHdpdGggYW4gTTMgb2YgNCAqLworKworKyMgZGVmaW5l IE1fMzhwNCAgICAgMHgxMUMKKysjIGRlZmluZSBOXzM4cDQgICAgIDB4MjgKKysjIGRlZmluZSBG U0VMXzM4cDQgIDB4MDMKKysjIGRlZmluZSBNMl8zOHA0ICAgIDB4MDEgLyogTTMgb2YgMiAqLwor KworKyMgZGVmaW5lIE1fMzhwNF9FUzEJMHgxMUMgIC8qIDB4Mjk5ICovCisrIyBkZWZpbmUgTl8z OHA0X0VTMQkweDI4ICAgLyogMHgyZiAqLworKyMgZGVmaW5lIEZTTF8zOHA0X0VTMSAweDAzIC8q IDB4MyAqLworKyMgZGVmaW5lIE0yXzM4cDRfRVMxIDB4MDEgIC8qIDB4MiB3aXRoIGFuIE0zIG9m IDQqLworKworKyNlbmRpZgorKworKyNlbmRpZiAgLyogZW5kaWYgX09NQVA0NDNYX0NMT0NLU19I XyAqLworZGlmZiAtdU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvaW5jbHVkZS9hc20vYXJjaC1vbWFw NC9jbG9ja3MuaCB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L2Nsb2Nrcy5o CistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L2Nsb2Nrcy5o CTE5NjktMTItMzEgMjE6MDA6MDAuMDAwMDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5Mzgv aW5jbHVkZS9hc20vYXJjaC1vbWFwNC9jbG9ja3MuaAkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ1MzY0 ODY2NyAtMDMwMAorQEAgLTAsMCArMSwzNiBAQAorKy8qCisrICogKEMpIENvcHlyaWdodCAyMDA2 LTIwMDkKKysgKiBUZXhhcyBJbnN0cnVtZW50cywgPHd3dy50aS5jb20+CisrICogUmljaGFyZCBX b29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICog dmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgor KyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIC9QVVJQT1NFLiAgU2VlIHRoZQorKyAqIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAqIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl CisrICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3Rv biwKKysgKiBNQSAwMjExMS0xMzA3IFVTQQorKyAgKi8KKysjaWZuZGVmIF9PTUFQNDRYWF9DTE9D S1NfSF8KKysjZGVmaW5lIF9PTUFQNDRYWF9DTE9DS1NfSF8KKysKKysjZGVmaW5lIExERUxBWSAg ICAgIDEyMDAwMDAwCisrCisrI2RlZmluZSBTMTJNCQkxMjAwMDAwMAorKyNkZWZpbmUgUzEzTQkJ MTMwMDAwMDAKKysjZGVmaW5lIFMxNl84TQkJMTY4MDAwMDAKKysjZGVmaW5lIFMxOV8yTQkJMTky MDAwMDAKKysjZGVmaW5lIFMyNE0JCTI0MDAwMDAwCisrI2RlZmluZSBTMjZNCQkyNjAwMDAwMAor KyNkZWZpbmUJUzI3TQkJMjcwMDAwMDAKKysjZGVmaW5lIFMzOF80TQkJMzg0MDAwMDAKKysKKysj aW5jbHVkZSA8YXNtL2FyY2gvY2xvY2tzNDQzeC5oPgorKworKyNlbmRpZgorZGlmZiAtdU5yIHgt bG9hZC1mMjQzOTM4Lm9yaWcvaW5jbHVkZS9hc20vYXJjaC1vbWFwNC9jcHUuaCB4LWxvYWQtZjI0 MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L2NwdS5oCistLS0geC1sb2FkLWYyNDM5Mzgub3Jp Zy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L2NwdS5oCTE5NjktMTItMzEgMjE6MDA6MDAuMDAwMDAw MDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvaW5jbHVkZS9hc20vYXJjaC1vbWFwNC9jcHUu aAkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ1MzY0ODY2NyAtMDMwMAorQEAgLTAsMCArMSw0NjQgQEAK KysvKgorKyAqIChDKSBDb3B5cmlnaHQgMjAwNi0yMDA5CisrICogVGV4YXMgSW5zdHJ1bWVudHMs IDx3d3cudGkuY29tPgorKyAqCisrICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9w bGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKysgKiBwcm9qZWN0LgorKyAqCisrICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisrICogdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICogR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisrICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKKysgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRl IDMzMCwgQm9zdG9uLAorKyAqIE1BIDAyMTExLTEzMDcgVVNBCisrICoKKysgKi8KKysKKysjaWZu ZGVmIF9PTUFQNDRYWF9DUFVfSAorKyNkZWZpbmUgIF9PTUFQNDRYWF9DUFVfSAorKyNpbmNsdWRl IDxhc20vYXJjaC9vbWFwNDQzMC5oPgorKworKy8qIFJlZ2lzdGVyIG9mZnNldHMgb2YgY29tbW9u IG1vZHVsZXMgKi8KKysvKiBDb250cm9sICovCisrI2RlZmluZSBDT05UUk9MX1NUQVRVUwkJCShP TUFQNDRYWF9DVFJMX0JBU0UgKyAweDJGMCkKKysjZGVmaW5lIE9NQVA0NFhYX01DUgkJCShPTUFQ NDRYWF9DVFJMX0JBU0UgKyAweDhDKQorKyNkZWZpbmUgQ09OVFJPTF9TQ0FMQUJMRV9PTUFQX1NU QVRVUwkoT01BUDQ0WFhfQ1RSTF9CQVNFICsgMHg0NEMpCisrI2RlZmluZSBDT05UUk9MX1NDQUxB QkxFX09NQVBfT0NQCShPTUFQNDRYWF9DVFJMX0JBU0UgKyAweDUzNCkKKysKKysKKysvKiBUYXAg SW5mb3JtYXRpb24gKi8KKysjZGVmaW5lIFRBUF9JRENPREVfUkVHCQkoT01BUDQ0WFhfVEFQX0JB U0UrMHgyMDQpCisrI2RlZmluZSBQUk9EVUNUSU9OX0lECQkoT01BUDQ0WFhfVEFQX0JBU0UrMHgy MDgpCisrCisrLyogZGV2aWNlIHR5cGUgKi8KKysjZGVmaW5lIERFVklDRV9NQVNLCQkoQklUOHxC SVQ5fEJJVDEwKQorKyNkZWZpbmUgVFNUX0RFVklDRQkJMHgwCisrI2RlZmluZSBFTVVfREVWSUNF CQkweDEKKysjZGVmaW5lIEhTX0RFVklDRQkJMHgyCisrI2RlZmluZSBHUF9ERVZJQ0UJCTB4Mwor KworKy8qIEdQTUMgQ1MzL2NzNC9jczYgbm90IGF2YWxpYWJsZSAqLworKyNkZWZpbmUgR1BNQ19C QVNFCQkoT01BUDQ0WFhfR1BNQ19CQVNFKQorKyNkZWZpbmUgR1BNQ19TWVNDT05GSUcJCShPTUFQ NDRYWF9HUE1DX0JBU0UrMHgxMCkKKysjZGVmaW5lIEdQTUNfSVJRU1RBVFVTCQkoT01BUDQ0WFhf R1BNQ19CQVNFKzB4MTgpCisrI2RlZmluZSBHUE1DX0lSUUVOQUJMRQkJKE9NQVA0NFhYX0dQTUNf QkFTRSsweDFDKQorKyNkZWZpbmUgR1BNQ19USU1FT1VUX0NPTlRST0wJKE9NQVA0NFhYX0dQTUNf QkFTRSsweDQwKQorKyNkZWZpbmUgR1BNQ19DT05GSUcJCShPTUFQNDRYWF9HUE1DX0JBU0UrMHg1 MCkKKysjZGVmaW5lIEdQTUNfU1RBVFVTCQkoT01BUDQ0WFhfR1BNQ19CQVNFKzB4NTQpCisrCisr I2RlZmluZSBHUE1DX0NPTkZJR19DUzAJCShPTUFQNDRYWF9HUE1DX0JBU0UrMHg2MCkKKysjZGVm aW5lIEdQTUNfQ09ORklHX1dJRFRICSgweDMwKQorKworKyNkZWZpbmUgR1BNQ19DT05GSUcxCQko MHgwMCkKKysjZGVmaW5lIEdQTUNfQ09ORklHMgkJKDB4MDQpCisrI2RlZmluZSBHUE1DX0NPTkZJ RzMJCSgweDA4KQorKyNkZWZpbmUgR1BNQ19DT05GSUc0CQkoMHgwQykKKysjZGVmaW5lIEdQTUNf Q09ORklHNQkJKDB4MTApCisrI2RlZmluZSBHUE1DX0NPTkZJRzYJCSgweDE0KQorKyNkZWZpbmUg R1BNQ19DT05GSUc3CQkoMHgxOCkKKysjZGVmaW5lIEdQTUNfTkFORF9DTUQJCSgweDFDKQorKyNk ZWZpbmUgR1BNQ19OQU5EX0FEUgkJKDB4MjApCisrI2RlZmluZSBHUE1DX05BTkRfREFUCQkoMHgy NCkKKysKKysjZGVmaW5lIEdQTUNfRUNDX0NPTkZJRwkJKDB4MUY0KQorKyNkZWZpbmUgR1BNQ19F Q0NfQ09OVFJPTAkoMHgxRjgpCisrI2RlZmluZSBHUE1DX0VDQ19TSVpFX0NPTkZJRwkoMHgxRkMp CisrI2RlZmluZSBHUE1DX0VDQzFfUkVTVUxUCSgweDIwMCkKKysjZGVmaW5lIEdQTUNfRUNDMl9S RVNVTFQJKDB4MjA0KQorKyNkZWZpbmUgR1BNQ19FQ0MzX1JFU1VMVAkoMHgyMDgpCisrI2RlZmlu ZSBHUE1DX0VDQzRfUkVTVUxUCSgweDIwQykKKysjZGVmaW5lIEdQTUNfRUNDNV9SRVNVTFQJKDB4 MjEwKQorKyNkZWZpbmUgR1BNQ19FQ0M2X1JFU1VMVAkoMHgyMTQpCisrI2RlZmluZSBHUE1DX0VD QzdfUkVTVUxUCSgweDIxOCkKKysjZGVmaW5lIEdQTUNfRUNDOF9SRVNVTFQJKDB4MjFDKQorKyNk ZWZpbmUgR1BNQ19FQ0M5X1JFU1VMVAkoMHgyMjApCisrCisrI2RlZmluZSBHUE1DX1BSRUZFVENI X0NPTkZJRzEJKDB4MWUwKQorKyNkZWZpbmUgR1BNQ19QUkVGRVRDSF9DT05GSUcyCSgweDFlNCkK KysjZGVmaW5lIEdQTUNfUFJFRkVUQ0hfQ09OVFJPTAkoMHgxZWMpCisrI2RlZmluZSBHUE1DX1BS RUZFVENIX1NUQVRVUwkoMHgxZjApCisrCisrLyogR1BNQyBNYXBwaW5nICovCisrIyBkZWZpbmUg RkxBU0hfQkFTRQkJMHgxMDAwMDAwMCAgLyogTk9SIGZsYXNoIChhbGlnbmVkIHRvIDI1NiBNZWcp ICovCisrIyBkZWZpbmUgRkxBU0hfQkFTRV9TRFBWMQkweDA0MDAwMDAwICAvKiBOT1IgZmxhc2gg KGFsaWduZWQgdG8gNjQgTWVnKSAqLworKyMgZGVmaW5lIEZMQVNIX0JBU0VfU0RQVjIJMHgxMDAw MDAwMCAgLyogTk9SIGZsYXNoIChhbGlnbmVkIHRvIDI1NiBNZWcpICovCisrIyBkZWZpbmUgREVC VUdfQkFTRQkJMHgwODAwMDAwMCAgLyogZGVidWcgYm9hcmQgKi8KKysjIGRlZmluZSBOQU5EX0JB U0UJMHgzMDAwMDAwMCAgLyogTkFORCBhZGRyIChhY3R1YWwgc2l6ZSBzbWFsbCBwb3J0KSovCisr IyBkZWZpbmUgUElTTU8yX0JBU0UJMHgxODAwMDAwMCAgLyogUElTTU8yIENTMS8yICovCisrIyBk ZWZpbmUgT05FTkFORF9NQVAJMHgyMDAwMDAwMCAgLyogT25lTmFuZCBhZGRyIChhY3R1YWwgc2l6 ZSBzbWFsbCBwb3J0ICovCisrCisrLyogRE1NICovCisrI2RlZmluZSBETU1fU1lTQ09ORklHCQko T01BUDQ0WFhfRE1NX0JBU0UrMHgxMCkKKysjZGVmaW5lIERNTV9MSVNBX01BUAkJKE9NQVA0NFhY X0RNTV9CQVNFKzB4MTAwKQorKworKy8qIFNNUyAqLworKyNkZWZpbmUgU01TX1NZU0NPTkZJRyAg ICAgICAgICAgKE9NQVA0NFhYX1NNU19CQVNFKzB4MTApCisrI2RlZmluZSBTTVNfUkdfQVRUMCAg ICAgICAgICAgICAoT01BUDQ0WFhfU01TX0JBU0UrMHg0OCkKKysjZGVmaW5lIFNNU19DTEFTU19B UkIwICAgICAgICAgIChPTUFQNDRYWF9TTVNfQkFTRSsweEQwKQorKyNkZWZpbmUgQlVSU1RDT01Q TEVURV9HUk9VUDcgICAgQklUMzEKKysKKysjZGVmaW5lIFNEUkNfQ1NfQ0ZHCQkoT01BUDQ0WFhf U0RSQ19CQVNFKzB4NDApCisrI2RlZmluZSBPTUFQNDRYWF9TRFJDX0NTMAkweDgwMDAwMDAwCisr I2RlZmluZSBTRFJDX1BPV0VSCQkoT01BUDQ0WFhfU0RSQ19CQVNFKzB4NzApCisrI2RlZmluZSBT RFJDX01DRkdfMAkJKE9NQVA0NFhYX1NEUkNfQkFTRSsweDgwKQorKyNkZWZpbmUgU0RSQ19NUl8w CQkoT01BUDQ0WFhfU0RSQ19CQVNFKzB4ODQpCisrCisrLyogdGltZXIgcmVncyBvZmZzZXRzICgz MiBiaXQgcmVncykgKi8KKysjZGVmaW5lIFRJRFIJCQkweDAgICAgICAvKiByICovCisrI2RlZmlu ZSBUSU9DUF9DRkcJCTB4MTAgICAgIC8qIHJ3ICovCisrI2RlZmluZSBUSVNUQVQJCQkweDE0ICAg ICAvKiByICovCisrI2RlZmluZSBUSVNSCQkJMHgxOCAgICAgLyogcncgKi8KKysjZGVmaW5lIFRJ RVIJCQkweDFDICAgICAvKiBydyAqLworKyNkZWZpbmUgVFdFUgkJCTB4MjAgICAgIC8qIHJ3ICov CisrI2RlZmluZSBUQ0xSCQkJMHgyNCAgICAgLyogcncgKi8KKysjZGVmaW5lIFRDUlIJCQkweDI4 ICAgICAvKiBydyAqLworKyNkZWZpbmUgVExEUgkJCTB4MkMgICAgIC8qIHJ3ICovCisrI2RlZmlu ZSBUVEdSCQkJMHgzMCAgICAgLyogcncgKi8KKysjZGVmaW5lIFRXUFMJCQkweDM0ICAgICAvKiBy ICovCisrI2RlZmluZSBUTUFSCQkJMHgzOCAgICAgLyogcncgKi8KKysjZGVmaW5lIFRDQVIxCQkJ MHgzYyAgICAgLyogciAqLworKyNkZWZpbmUgVFNJQ1IJCQkweDQwICAgICAvKiBydyAqLworKyNk ZWZpbmUgVENBUjIJCQkweDQ0ICAgICAvKiByICovCisrI2RlZmluZSBHUFRfRU4JCSgoMDw8Mil8 QklUMXxCSVQwKSAvKiBlbmFibGUgc3lzX2NsayBOTy1wcmVzY2FsZSAvMSAqLworKworKy8qIFdh dGNoZG9nICovCisrI2RlZmluZSBXV1BTCQkJMHgzNCAgICAgLyogciAqLworKyNkZWZpbmUgV1NQ UgkJCTB4NDggICAgIC8qIHJ3ICovCisrI2RlZmluZSBXRF9VTkxPQ0sxCQkweEFBQUEKKysjZGVm aW5lIFdEX1VOTE9DSzIJCTB4NTU1NQorKworKy8qIEZJWE1FICovCisrI2RlZmluZSBQUk1fUlNU Q1RSTCAgICAgICAgICAJCQkweDQ4MzA3MjUwCisrICAvKiBQUkNNICovCisrI2RlZmluZSBDTV9T WVNfQ0xLU0VMCQkJCTB4NGEzMDYxMTAKKysKKysvKiBQUk0uQ0tHRU4gbW9kdWxlIHJlZ2lzdGVy cyAqLworKyNkZWZpbmUgQ01fQUJFX1BMTF9SRUZfQ0xLU0VMCQkweDRhMzA2MTBjCisrCisrCisr LyogUFJNLldLVVBfQ00gbW9kdWxlIHJlZ2lzdGVycyAqLworKyNkZWZpbmUgQ01fV0tVUF9DTEtT VENUUkwJCTB4NGEzMDc4MDAKKysjZGVmaW5lIENNX1dLVVBfTDRXS1VQX0NMS0NUUkwJCTB4NGEz MDc4MjAKKysjZGVmaW5lIENNX1dLVVBfV0RUMV9DTEtDVFJMCQkweDRhMzA3ODI4CisrI2RlZmlu ZSBDTV9XS1VQX1dEVDJfQ0xLQ1RSTAkJMHg0YTMwNzgzMAorKyNkZWZpbmUgQ01fV0tVUF9HUElP MV9DTEtDVFJMCQkweDRhMzA3ODM4CisrI2RlZmluZSBDTV9XS1VQX1RJTUVSMV9DTEtDVFJMCQkw eDRhMzA3ODQwCisrI2RlZmluZSBDTV9XS1VQX1RJTUVSMTJfQ0xLQ1RSTAkJMHg0YTMwNzg0OAor KyNkZWZpbmUgQ01fV0tVUF9TWU5DVElNRVJfQ0xLQ1RSTAkweDRhMzA3ODUwCisrI2RlZmluZSBD TV9XS1VQX1VTSU1fQ0xLQ1RSTAkJMHg0YTMwNzg1OAorKyNkZWZpbmUgQ01fV0tVUF9TQVJSQU1f Q0xLQ1RSTAkJMHg0YTMwNzg2MAorKyNkZWZpbmUgQ01fV0tVUF9LRVlCT0FSRF9DTEtDVFJMCTB4 NGEzMDc4NzgKKysjZGVmaW5lIENNX1dLVVBfUlRDX0NMS0NUUkwJCTB4NGEzMDc4ODAKKysjZGVm aW5lIENNX1dLVVBfQkFOREdBUF9DTEtDVFJMCQkweDRhMzA3ODg4CisrCisrLyogQ00xLkNLR0VO IG1vZHVsZSByZWdpc3RlcnMgKi8KKysjZGVmaW5lIENNX0NMS1NFTF9DT1JFCQkJCTB4NGEwMDQx MDAKKysjZGVmaW5lIENNX0NMS1NFTF9BQkUJCQkJMHg0YTAwNDEwOAorKyNkZWZpbmUgQ01fRExM X0NUUkwJCQkJMHg0YTAwNDExMAorKyNkZWZpbmUgQ01fQ0xLTU9ERV9EUExMX0NPUkUJCQkweDRh MDA0MTIwCisrI2RlZmluZSBDTV9JRExFU1RfRFBMTF9DT1JFCQkJMHg0YTAwNDEyNAorKyNkZWZp bmUgQ01fQVVUT0lETEVfRFBMTF9DT1JFCQkJMHg0YTAwNDEyOAorKyNkZWZpbmUgQ01fQ0xLU0VM X0RQTExfQ09SRQkJCTB4NGEwMDQxMmMKKysjZGVmaW5lIENNX0RJVl9NMl9EUExMX0NPUkUJCQkw eDRhMDA0MTMwCisrI2RlZmluZSBDTV9ESVZfTTNfRFBMTF9DT1JFCQkJMHg0YTAwNDEzNAorKyNk ZWZpbmUgQ01fRElWX000X0RQTExfQ09SRQkJCTB4NGEwMDQxMzgKKysjZGVmaW5lIENNX0RJVl9N NV9EUExMX0NPUkUJCQkweDRhMDA0MTNjCisrI2RlZmluZSBDTV9ESVZfTTZfRFBMTF9DT1JFCQkJ MHg0YTAwNDE0MAorKyNkZWZpbmUgQ01fRElWX003X0RQTExfQ09SRQkJCTB4NGEwMDQxNDQKKysj ZGVmaW5lIENNX1NTQ19ERUxUQU1TVEVQX0RQTExfQ09SRQkJMHg0YTAwNDE0OAorKyNkZWZpbmUg Q01fU1NDX01PREZSRVFESVZfRFBMTF9DT1JFCQkweDRhMDA0MTRjCisrI2RlZmluZSBDTV9FTVVf T1ZFUlJJREVfRFBMTF9DT1JFCQkweDRhMDA0MTUwCisrI2RlZmluZSBDTV9DTEtNT0RFX0RQTExf TVBVCQkJMHg0YTAwNDE2MAorKyNkZWZpbmUgQ01fSURMRVNUX0RQTExfTVBVCQkJMHg0YTAwNDE2 NAorKyNkZWZpbmUgQ01fQVVUT0lETEVfRFBMTF9NUFUJCQkweDRhMDA0MTY4CisrI2RlZmluZSBD TV9DTEtTRUxfRFBMTF9NUFUJCQkweDRhMDA0MTZjCisrI2RlZmluZSBDTV9ESVZfTTJfRFBMTF9N UFUJCQkweDRhMDA0MTcwCisrI2RlZmluZSBDTV9TU0NfREVMVEFNU1RFUF9EUExMX01QVQkJMHg0 YTAwNDE4OAorKyNkZWZpbmUgQ01fU1NDX01PREZSRVFESVZfRFBMTF9NUFUJCTB4NGEwMDQxOGMK KysjZGVmaW5lIENNX0JZUENMS19EUExMX01QVQkJCTB4NGEwMDQxOWMKKysjZGVmaW5lIENNX0NM S01PREVfRFBMTF9JVkEJCQkweDRhMDA0MWEwCisrI2RlZmluZSBDTV9JRExFU1RfRFBMTF9JVkEJ CQkweDRhMDA0MWE0CisrI2RlZmluZSBDTV9BVVRPSURMRV9EUExMX0lWQQkJCTB4NGEwMDQxYTgK KysjZGVmaW5lIENNX0NMS1NFTF9EUExMX0lWQQkJCTB4NGEwMDQxYWMKKysjZGVmaW5lIENNX0RJ Vl9NNF9EUExMX0lWQQkJCTB4NGEwMDQxYjgKKysjZGVmaW5lIENNX0RJVl9NNV9EUExMX0lWQQkJ CTB4NGEwMDQxYmMKKysjZGVmaW5lIENNX1NTQ19ERUxUQU1TVEVQX0RQTExfSVZBCQkweDRhMDA0 MWM4CisrI2RlZmluZSBDTV9TU0NfTU9ERlJFUURJVl9EUExMX0lWQQkJMHg0YTAwNDFjYworKyNk ZWZpbmUgQ01fQllQQ0xLX0RQTExfSVZBCQkJMHg0YTAwNDFkYworKyNkZWZpbmUgQ01fQ0xLTU9E RV9EUExMX0FCRQkJCTB4NGEwMDQxZTAKKysjZGVmaW5lIENNX0lETEVTVF9EUExMX0FCRQkJCTB4 NGEwMDQxZTQKKysjZGVmaW5lIENNX0FVVE9JRExFX0RQTExfQUJFCQkJMHg0YTAwNDFlOAorKyNk ZWZpbmUgQ01fQ0xLU0VMX0RQTExfQUJFCQkJMHg0YTAwNDFlYworKyNkZWZpbmUgQ01fRElWX00y X0RQTExfQUJFCQkJMHg0YTAwNDFmMAorKyNkZWZpbmUgQ01fRElWX00zX0RQTExfQUJFCQkJMHg0 YTAwNDFmNAorKyNkZWZpbmUgQ01fU1NDX0RFTFRBTVNURVBfRFBMTF9BQkUJCTB4NGEwMDQyMDgK KysjZGVmaW5lIENNX1NTQ19NT0RGUkVRRElWX0RQTExfQUJFCQkweDRhMDA0MjBjCisrI2RlZmlu ZSBDTV9DTEtNT0RFX0RQTExfRERSUEhZCQkJMHg0YTAwNDIyMAorKyNkZWZpbmUgQ01fSURMRVNU X0RQTExfRERSUEhZCQkJMHg0YTAwNDIyNAorKyNkZWZpbmUgQ01fQVVUT0lETEVfRFBMTF9ERFJQ SFkJCQkweDRhMDA0MjI4CisrI2RlZmluZSBDTV9DTEtTRUxfRFBMTF9ERFJQSFkJCQkweDRhMDA0 MjJjCisrI2RlZmluZSBDTV9ESVZfTTJfRFBMTF9ERFJQSFkJCQkweDRhMDA0MjMwCisrI2RlZmlu ZSBDTV9ESVZfTTRfRFBMTF9ERFJQSFkJCQkweDRhMDA0MjM4CisrI2RlZmluZSBDTV9ESVZfTTVf RFBMTF9ERFJQSFkJCQkweDRhMDA0MjNjCisrI2RlZmluZSBDTV9ESVZfTTZfRFBMTF9ERFJQSFkJ CQkweDRhMDA0MjQwCisrI2RlZmluZSBDTV9TU0NfREVMVEFNU1RFUF9EUExMX0REUlBIWQkJMHg0 YTAwNDI0OAorKworKy8qIENNMS5BQkUgcmVnaXN0ZXIgb2Zmc2V0cyAqLworKyNkZWZpbmUgQ00x X0FCRV9DTEtTVENUUkwJCTB4NGEwMDQ1MDAKKysjZGVmaW5lIENNMV9BQkVfTDRBQkVfQ0xLQ1RS TAkJMHg0YTAwNDUyMAorKyNkZWZpbmUgQ00xX0FCRV9BRVNTX0NMS0NUUkwJCTB4NGEwMDQ1MjgK KysjZGVmaW5lIENNMV9BQkVfUERNX0NMS0NUUkwJCTB4NGEwMDQ1MzAKKysjZGVmaW5lIENNMV9B QkVfRE1JQ19DTEtDVFJMCQkweDRhMDA0NTM4CisrI2RlZmluZSBDTTFfQUJFX01DQVNQX0NMS0NU UkwJCTB4NGEwMDQ1NDAKKysjZGVmaW5lIENNMV9BQkVfTUNCU1AxX0NMS0NUUkwJCTB4NGEwMDQ1 NDgKKysjZGVmaW5lIENNMV9BQkVfTUNCU1AyX0NMS0NUUkwJCTB4NGEwMDQ1NTAKKysjZGVmaW5l IENNMV9BQkVfTUNCU1AzX0NMS0NUUkwJCTB4NGEwMDQ1NTgKKysjZGVmaW5lIENNMV9BQkVfU0xJ TUJVU19DTEtDVFJMCQkweDRhMDA0NTYwCisrI2RlZmluZSBDTTFfQUJFX1RJTUVSNV9DTEtDVFJM CQkweDRhMDA0NTY4CisrI2RlZmluZSBDTTFfQUJFX1RJTUVSNl9DTEtDVFJMCQkweDRhMDA0NTcw CisrI2RlZmluZSBDTTFfQUJFX1RJTUVSN19DTEtDVFJMCQkweDRhMDA0NTc4CisrI2RlZmluZSBD TTFfQUJFX1RJTUVSOF9DTEtDVFJMCQkweDRhMDA0NTgwCisrI2RlZmluZSBDTTFfQUJFX1dEVDNf Q0xLQ1RSTAkJMHg0YTAwNDU4OAorKworKy8qIENNMS5EU1AgcmVnaXN0ZXIgb2Zmc2V0cyAqLwor KyNkZWZpbmUgRFNQX0NMS1NUQ1RSTAkJCTB4NGEwMDQ0MDAKKysjZGVmaW5lCURTUF9EU1BfQ0xL Q1RSTAkJCTB4NGEwMDQ0MjAKKysKKysvKiBDTTIuQ0tHRU4gbW9kdWxlIHJlZ2lzdGVycyAqLwor KyNkZWZpbmUgQ01fQ0xLU0VMX0RVQ0FUSV9JU1NfUk9PVAkJMHg0YTAwODEwMAorKyNkZWZpbmUg Q01fQ0xLU0VMX1VTQl82ME1IegkJCTB4NGEwMDgxMDQKKysjZGVmaW5lIENNX1NDQUxFX0ZDTEsJ CQkJMHg0YTAwODEwOAorKyNkZWZpbmUgQ01fQ09SRV9EVkZTX1BFUkYxCQkJMHg0YTAwODExMAor KyNkZWZpbmUgQ01fQ09SRV9EVkZTX1BFUkYyCQkJMHg0YTAwODExNAorKyNkZWZpbmUgQ01fQ09S RV9EVkZTX1BFUkYzCQkJMHg0YTAwODExOAorKyNkZWZpbmUgQ01fQ09SRV9EVkZTX1BFUkY0CQkJ MHg0YTAwODExYworKyNkZWZpbmUgQ01fQ09SRV9EVkZTX0NVUlJFTlQJCQkweDRhMDA4MTI0Cisr I2RlZmluZSBDTV9JVkFfRFZGU19QRVJGX1RFU0xBCQkJMHg0YTAwODEyOAorKyNkZWZpbmUgQ01f SVZBX0RWRlNfUEVSRl9JVkFIRAkJCTB4NGEwMDgxMmMKKysjZGVmaW5lIENNX0lWQV9EVkZTX1BF UkZfQUJFCQkJMHg0YTAwODEzMAorKyNkZWZpbmUgQ01fSVZBX0RWRlNfQ1VSUkVOVAkJCTB4NGEw MDgxMzgKKysjZGVmaW5lIENNX0NMS01PREVfRFBMTF9QRVIJCQkweDRhMDA4MTQwCisrI2RlZmlu ZSBDTV9JRExFU1RfRFBMTF9QRVIJCQkweDRhMDA4MTQ0CisrI2RlZmluZSBDTV9BVVRPSURMRV9E UExMX1BFUgkJCTB4NGEwMDgxNDgKKysjZGVmaW5lIENNX0NMS1NFTF9EUExMX1BFUgkJCTB4NGEw MDgxNGMKKysjZGVmaW5lIENNX0RJVl9NMl9EUExMX1BFUgkJCTB4NGEwMDgxNTAKKysjZGVmaW5l IENNX0RJVl9NM19EUExMX1BFUgkJCTB4NGEwMDgxNTQKKysjZGVmaW5lIENNX0RJVl9NNF9EUExM X1BFUgkJCTB4NGEwMDgxNTgKKysjZGVmaW5lIENNX0RJVl9NNV9EUExMX1BFUgkJCTB4NGEwMDgx NWMKKysjZGVmaW5lIENNX0RJVl9NNl9EUExMX1BFUgkJCTB4NGEwMDgxNjAKKysjZGVmaW5lIENN X0RJVl9NN19EUExMX1BFUgkJCTB4NGEwMDgxNjQKKysjZGVmaW5lIENNX1NTQ19ERUxUQU1TVEVQ X0RQTExfUEVSCQkweDRhMDA4MTY4CisrI2RlZmluZSBDTV9TU0NfTU9ERlJFUURJVl9EUExMX1BF UgkJMHg0YTAwODE2YworKyNkZWZpbmUgQ01fRU1VX09WRVJSSURFX0RQTExfUEVSCQkweDRhMDA4 MTcwCisrI2RlZmluZSBDTV9DTEtNT0RFX0RQTExfVVNCCQkJMHg0YTAwODE4MAorKyNkZWZpbmUg Q01fSURMRVNUX0RQTExfVVNCCQkJMHg0YTAwODE4NAorKyNkZWZpbmUgQ01fQVVUT0lETEVfRFBM TF9VU0IJCQkweDRhMDA4MTg4CisrI2RlZmluZSBDTV9DTEtTRUxfRFBMTF9VU0IJCQkweDRhMDA4 MThjCisrI2RlZmluZSBDTV9ESVZfTTJfRFBMTF9VU0IJCQkweDRhMDA4MTkwCisrI2RlZmluZSBD TV9TU0NfREVMVEFNU1RFUF9EUExMX1VTQgkJMHg0YTAwODFhOAorKyNkZWZpbmUgQ01fU1NDX01P REZSRVFESVZfRFBMTF9VU0IJCTB4NGEwMDgxYWMKKysjZGVmaW5lIENNX0NMS0RDT0xET19EUExM X1VTQgkJCTB4NGEwMDgxYjQKKysjZGVmaW5lIENNX0NMS01PREVfRFBMTF9VTklQUk8JCQkweDRh MDA4MWMwCisrI2RlZmluZSBDTV9JRExFU1RfRFBMTF9VTklQUk8JCQkweDRhMDA4MWM0CisrI2Rl ZmluZSBDTV9BVVRPSURMRV9EUExMX1VOSVBSTwkJCTB4NGEwMDgxYzgKKysjZGVmaW5lIENNX0NM S1NFTF9EUExMX1VOSVBSTwkJCTB4NGEwMDgxY2MKKysjZGVmaW5lIENNX0RJVl9NMl9EUExMX1VO SVBSTwkJCTB4NGEwMDgxZDAKKysjZGVmaW5lIENNX1NTQ19ERUxUQU1TVEVQX0RQTExfVU5JUFJP CQkweDRhMDA4MWU4CisrI2RlZmluZSBDTV9TU0NfTU9ERlJFUURJVl9EUExMX1VOSVBSTwkJMHg0 YTAwODFlYworKworKy8qIENNMi5DT1JFIG1vZHVsZSByZWdpc3RlcnMgKi8KKysjZGVmaW5lIENN X0wzXzFfQ0xLU1RDVFJMCQkweDRhMDA4NzAwCisrI2RlZmluZSBDTV9MM18xX0RZTkFNSUNERVAJ CTB4NGEwMDg3MDgKKysjZGVmaW5lIENNX0wzXzFfTDNfMV9DTEtDVFJMCQkweDRhMDA4NzIwCisr I2RlZmluZSBDTV9MM18yX0NMS1NUQ1RSTAkJMHg0YTAwODgwMAorKyNkZWZpbmUgQ01fTDNfMl9E WU5BTUlDREVQCQkweDRhMDA4ODA4CisrI2RlZmluZSBDTV9MM18yX0wzXzJfQ0xLQ1RSTAkJMHg0 YTAwODgyMAorKyNkZWZpbmUgQ01fTDNfMl9HUE1DX0NMS0NUUkwJCTB4NGEwMDg4MjgKKysjZGVm aW5lIENNX0wzXzJfT0NNQ19SQU1fQ0xLQ1RSTAkweDRhMDA4ODMwCisrI2RlZmluZSBDTV9EVUNB VElfQ0xLU1RDVFJMCQkweDRhMDA4OTAwCisrI2RlZmluZSBDTV9EVUNBVElfU1RBVElDREVQCQkw eDRhMDA4OTA0CisrI2RlZmluZSBDTV9EVUNBVElfRFlOQU1JQ0RFUAkJMHg0YTAwODkwOAorKyNk ZWZpbmUgQ01fRFVDQVRJX0RVQ0FUSV9DTEtDVFJMCTB4NGEwMDg5MjAKKysjZGVmaW5lIENNX1NE TUFfQ0xLU1RDVFJMCQkweDRhMDA4YTAwCisrI2RlZmluZSBDTV9TRE1BX1NUQVRJQ0RFUAkJMHg0 YTAwOGEwNAorKyNkZWZpbmUgQ01fU0RNQV9EWU5BTUlDREVQCQkweDRhMDA4YTA4CisrI2RlZmlu ZSBDTV9TRE1BX1NETUFfQ0xLQ1RSTAkJMHg0YTAwOGEyMAorKyNkZWZpbmUgQ01fTUVNSUZfQ0xL U1RDVFJMCQkweDRhMDA4YjAwCisrI2RlZmluZSBDTV9NRU1JRl9ETU1fQ0xLQ1RSTAkJMHg0YTAw OGIyMAorKyNkZWZpbmUgQ01fTUVNSUZfRU1JRl9GV19DTEtDVFJMCTB4NGEwMDhiMjgKKysjZGVm aW5lIENNX01FTUlGX0VNSUZfMV9DTEtDVFJMCQkweDRhMDA4YjMwCisrI2RlZmluZSBDTV9NRU1J Rl9FTUlGXzJfQ0xLQ1RSTAkJMHg0YTAwOGIzOAorKyNkZWZpbmUgQ01fTUVNSUZfRExMX0NMS0NU UkwJCTB4NGEwMDhiNDAKKysjZGVmaW5lIENNX01FTUlGX0VNSUZfSDFfQ0xLQ1RSTAkweDRhMDA4 YjUwCisrI2RlZmluZSBDTV9NRU1JRl9FTUlGX0gyX0NMS0NUUkwJMHg0YTAwOGI1OAorKyNkZWZp bmUgQ01fTUVNSUZfRExMX0hfQ0xLQ1RSTAkJMHg0YTAwOGI2MAorKyNkZWZpbmUgQ01fRDJEX0NM S1NUQ1RSTAkJMHg0YTAwOGMwMAorKyNkZWZpbmUgQ01fRDJEX1NUQVRJQ0RFUAkJMHg0YTAwOGMw NAorKyNkZWZpbmUgQ01fRDJEX0RZTkFNSUNERVAJCTB4NGEwMDhjMDgKKysjZGVmaW5lIENNX0Qy RF9TQUQyRF9DTEtDVFJMCQkweDRhMDA4YzIwCisrI2RlZmluZSBDTV9EMkRfTU9ERU1fSUNSX0NM S0NUUkwJMHg0YTAwOGMyOAorKyNkZWZpbmUgQ01fRDJEX1NBRDJEX0ZXX0NMS0NUUkwJCTB4NGEw MDhjMzAKKysjZGVmaW5lIENNX0w0Q0ZHX0NMS1NUQ1RSTAkJMHg0YTAwOGQwMAorKyNkZWZpbmUg Q01fTDRDRkdfRFlOQU1JQ0RFUAkJMHg0YTAwOGQwOAorKyNkZWZpbmUgQ01fTDRDRkdfTDRfQ0ZH X0NMS0NUUkwJCTB4NGEwMDhkMjAKKysjZGVmaW5lIENNX0w0Q0ZHX0hXX1NFTV9DTEtDVFJMCQkw eDRhMDA4ZDI4CisrI2RlZmluZSBDTV9MNENGR19NQUlMQk9YX0NMS0NUUkwJMHg0YTAwOGQzMAor KyNkZWZpbmUgQ01fTDRDRkdfU0FSX1JPTV9DTEtDVFJMCTB4NGEwMDhkMzgKKysjZGVmaW5lIENN X0wzSU5TVFJfQ0xLU1RDVFJMCQkweDRhMDA4ZTAwCisrI2RlZmluZSBDTV9MM0lOU1RSX0wzXzNf Q0xLQ1RSTAkJMHg0YTAwOGUyMAorKyNkZWZpbmUgQ01fTDNJTlNUUl9MM19JTlNUUl9DTEtDVFJM CTB4NGEwMDhlMjgKKysjZGVmaW5lIENNX0wzSU5TVFJfT0NQX1dQMV9DTEtDVFJMCTB4NGEwMDhl NDAKKysKKysvKiBDTTIuTDRQRVIgcmVnaXN0ZXIgb2Zmc2V0cyAqLworKyNkZWZpbmUgQ01fTDRQ RVJfQ0xLU1RDVFJMCQkweDRhMDA5NDAwCisrI2RlZmluZSBDTV9MNFBFUl9EWU5BTUlDREVQCQkw eDRhMDA5NDA4CisrI2RlZmluZSBDTV9MNFBFUl9BRENfQ0xLQ1RSTAkJMHg0YTAwOTQyMAorKyNk ZWZpbmUgQ01fTDRQRVJfRE1USU1FUjEwX0NMS0NUUkwJMHg0YTAwOTQyOAorKyNkZWZpbmUgQ01f TDRQRVJfRE1USU1FUjExX0NMS0NUUkwJMHg0YTAwOTQzMAorKyNkZWZpbmUgQ01fTDRQRVJfRE1U SU1FUjJfQ0xLQ1RSTAkweDRhMDA5NDM4CisrI2RlZmluZSBDTV9MNFBFUl9ETVRJTUVSM19DTEtD VFJMCTB4NGEwMDk0NDAKKysjZGVmaW5lIENNX0w0UEVSX0RNVElNRVI0X0NMS0NUUkwJMHg0YTAw OTQ0OAorKyNkZWZpbmUgQ01fTDRQRVJfRE1USU1FUjlfQ0xLQ1RSTAkweDRhMDA5NDUwCisrI2Rl ZmluZSBDTV9MNFBFUl9FTE1fQ0xLQ1RSTAkJMHg0YTAwOTQ1OAorKyNkZWZpbmUgQ01fTDRQRVJf R1BJTzJfQ0xLQ1RSTAkJMHg0YTAwOTQ2MAorKyNkZWZpbmUgQ01fTDRQRVJfR1BJTzNfQ0xLQ1RS TAkJMHg0YTAwOTQ2OAorKyNkZWZpbmUgQ01fTDRQRVJfR1BJTzRfQ0xLQ1RSTAkJMHg0YTAwOTQ3 MAorKyNkZWZpbmUgQ01fTDRQRVJfR1BJTzVfQ0xLQ1RSTAkJMHg0YTAwOTQ3OAorKyNkZWZpbmUg Q01fTDRQRVJfR1BJTzZfQ0xLQ1RSTAkJMHg0YTAwOTQ4MAorKyNkZWZpbmUgQ01fTDRQRVJfSERR MVdfQ0xLQ1RSTAkJMHg0YTAwOTQ4OAorKyNkZWZpbmUgQ01fTDRQRVJfSEVDQzFfQ0xLQ1RSTAkJ MHg0YTAwOTQ5MAorKyNkZWZpbmUgQ01fTDRQRVJfSEVDQzJfQ0xLQ1RSTAkJMHg0YTAwOTQ5OAor KyNkZWZpbmUgQ01fTDRQRVJfSTJDMV9DTEtDVFJMCQkweDRhMDA5NGEwCisrI2RlZmluZSBDTV9M NFBFUl9JMkMyX0NMS0NUUkwJCTB4NGEwMDk0YTgKKysjZGVmaW5lIENNX0w0UEVSX0kyQzNfQ0xL Q1RSTAkJMHg0YTAwOTRiMAorKyNkZWZpbmUgQ01fTDRQRVJfSTJDNF9DTEtDVFJMCQkweDRhMDA5 NGI4CisrI2RlZmluZSBDTV9MNFBFUl9MNFBFUl9DTEtDVFJMCQkweDRhMDA5NGMwCisrI2RlZmlu ZSBDTV9MNFBFUl9NQ0FTUDJfQ0xLQ1RSTAkJMHg0YTAwOTRkMAorKyNkZWZpbmUgQ01fTDRQRVJf TUNBU1AzX0NMS0NUUkwJCTB4NGEwMDk0ZDgKKysjZGVmaW5lIENNX0w0UEVSX01DQlNQNF9DTEtD VFJMCQkweDRhMDA5NGUwCisrI2RlZmluZSBDTV9MNFBFUl9NR0FURV9DTEtDVFJMCQkweDRhMDA5 NGU4CisrI2RlZmluZSBDTV9MNFBFUl9NQ1NQSTFfQ0xLQ1RSTAkJMHg0YTAwOTRmMAorKyNkZWZp bmUgQ01fTDRQRVJfTUNTUEkyX0NMS0NUUkwJCTB4NGEwMDk0ZjgKKysjZGVmaW5lIENNX0w0UEVS X01DU1BJM19DTEtDVFJMCQkweDRhMDA5NTAwCisrI2RlZmluZSBDTV9MNFBFUl9NQ1NQSTRfQ0xL Q1RSTAkJMHg0YTAwOTUwOAorKyNkZWZpbmUgQ01fTDRQRVJfTU1DU0QzX0NMS0NUUkwJCTB4NGEw MDk1MjAKKysjZGVmaW5lIENNX0w0UEVSX01NQ1NENF9DTEtDVFJMCQkweDRhMDA5NTI4CisrI2Rl ZmluZSBDTV9MNFBFUl9NU1BST0hHX0NMS0NUUkwJMHg0YTAwOTUzMAorKyNkZWZpbmUgQ01fTDRQ RVJfU0xJTUJVUzJfQ0xLQ1RSTAkweDRhMDA5NTM4CisrI2RlZmluZSBDTV9MNFBFUl9VQVJUMV9D TEtDVFJMCQkweDRhMDA5NTQwCisrI2RlZmluZSBDTV9MNFBFUl9VQVJUMl9DTEtDVFJMCQkweDRh MDA5NTQ4CisrI2RlZmluZSBDTV9MNFBFUl9VQVJUM19DTEtDVFJMCQkweDRhMDA5NTUwCisrI2Rl ZmluZSBDTV9MNFBFUl9VQVJUNF9DTEtDVFJMCQkweDRhMDA5NTU4CisrI2RlZmluZSBDTV9MNFBF Ul9NTUNTRDVfQ0xLQ1RSTAkJMHg0YTAwOTU2MAorKyNkZWZpbmUgQ01fTDRQRVJfSTJDNV9DTEtD VFJMCQkweDRhMDA5NTY4CisrI2RlZmluZSBDTV9MNFNFQ19DTEtTVENUUkwJCTB4NGEwMDk1ODAK KysjZGVmaW5lIENNX0w0U0VDX1NUQVRJQ0RFUAkJMHg0YTAwOTU4NAorKyNkZWZpbmUgQ01fTDRT RUNfRFlOQU1JQ0RFUAkJMHg0YTAwOTU4OAorKyNkZWZpbmUgQ01fTDRTRUNfQUVTMV9DTEtDVFJM CQkweDRhMDA5NWEwCisrI2RlZmluZSBDTV9MNFNFQ19BRVMyX0NMS0NUUkwJCTB4NGEwMDk1YTgK KysjZGVmaW5lIENNX0w0U0VDX0RFUzNERVNfQ0xLQ1RSTAkweDRhMDA5NWIwCisrI2RlZmluZSBD TV9MNFNFQ19QS0FFSVAyOV9DTEtDVFJMCTB4NGEwMDk1YjgKKysjZGVmaW5lIENNX0w0U0VDX1JO R19DTEtDVFJMCQkweDRhMDA5NWMwCisrI2RlZmluZSBDTV9MNFNFQ19TSEEyTUQ1MV9DTEtDVFJM CTB4NGEwMDk1YzgKKysjZGVmaW5lIENNX0w0U0VDX0NSWVBUT0RNQV9DTEtDVFJMCTB4NGEwMDk1 ZDgKKysKKysvKiBDTTIuSVZBSEQgKi8KKysjZGVmaW5lIElWQUhEX0NMS1NUQ1RSTAkJCTB4NGEw MDhmMDAKKysjZGVmaW5lIElWQUhEX0lWQUhEX0NMS0NUUkwJCTB4NGEwMDhmMjAKKysjZGVmaW5l IElWQUhEX1NMMl9DTEtDVFJMCQkweDRhMDA4ZjI4CisrCisrLyogQ00yLkwzSU5JVCAqLworKyNk ZWZpbmUgQ01fTDNJTklUX0hTTU1DMV9DTEtDVFJMCTB4NGEwMDkzMjgKKysjZGVmaW5lIENNX0wz SU5JVF9IU01NQzJfQ0xLQ1RSTAkweDRhMDA5MzMwCisrI2RlZmluZSBDTV9MM0lOSVRfSFNJX0NM S0NUUkwgICAgICAgICAgIDB4NGEwMDkzMzgKKysjZGVmaW5lIENNX0wzSU5JVF9VTklQUk8xX0NM S0NUUkwgICAgICAgMHg0YTAwOTM0MAorKyNkZWZpbmUgQ01fTDNJTklUX0hTVVNCSE9TVF9DTEtD VFJMICAgICAweDRhMDA5MzU4CisrI2RlZmluZSBDTV9MM0lOSVRfSFNVU0JPVEdfQ0xLQ1RSTCAg ICAgIDB4NGEwMDkzNjAKKysjZGVmaW5lIENNX0wzSU5JVF9IU1VTQlRMTF9DTEtDVFJMICAgICAg MHg0YTAwOTM2OAorKyNkZWZpbmUgQ01fTDNJTklUX1AxNTAwX0NMS0NUUkwgICAgICAgICAweDRh MDA5Mzc4CisrI2RlZmluZSBDTV9MM0lOSVRfRlNVU0JfQ0xLQ1RSTCAgICAgICAgIDB4NGEwMDkz ZDAKKysjZGVmaW5lIENNX0wzSU5JVF9VU0JQSFlfQ0xLQ1RSTCAgICAgICAgMHg0YTAwOTNlMAor KworKy8qIENNMi5DQU0gKi8KKysjZGVmaW5lIENNX0NBTV9DTEtTVENUUkwgICAgICAgICAgICAg ICAgMHg0YTAwOTAwMAorKyNkZWZpbmUgQ01fQ0FNX0lTU19DTEtDVFJMICAgICAgICAgICAgICAw eDRhMDA5MDIwCisrI2RlZmluZSBDTV9DQU1fRkRJRl9DTEtDVFJMICAgICAgICAgICAgIDB4NGEw MDkwMjgKKysKKysvKiBDTTIuRFNTICovCisrI2RlZmluZSBDTV9EU1NfQ0xLU1RDVFJMICAgICAg ICAgICAgICAgIDB4NGEwMDkxMDAKKysjZGVmaW5lIENNX0RTU19EU1NfQ0xLQ1RSTCAgICAgICAg ICAgICAgMHg0YTAwOTEyMAorKyNkZWZpbmUgQ01fRFNTX0RFSVNTX0NMS0NUUkwgICAgICAgICAg ICAweDRhMDA5MTI4CisrCisrLyogQ00yLlNHWCAqLworKyNkZWZpbmUgQ01fU0dYX0NMS1NUQ1RS TCAgICAgICAgICAgICAgICAweDRhMDA5MjAwCisrI2RlZmluZSBDTV9TR1hfU0dYX0NMS0NUUkwg ICAgICAgICAgICAgIDB4NGEwMDkyMjAKKysKKysvKiBTTVgtQVBFICovCisrI2RlZmluZSBQTV9S VF9BUEVfQkFTRV9BRERSX0FSTQkJKFNNWF9BUEVfQkFTRSArIDB4MTAwMDApCisrI2RlZmluZSBQ TV9HUE1DX0JBU0VfQUREUl9BUk0JCShTTVhfQVBFX0JBU0UgKyAweDEyNDAwKQorKyNkZWZpbmUg UE1fT0NNX1JBTV9CQVNFX0FERFJfQVJNCShTTVhfQVBFX0JBU0UgKyAweDEyODAwKQorKyNkZWZp bmUgUE1fT0NNX1JPTV9CQVNFX0FERFJfQVJNCShTTVhfQVBFX0JBU0UgKyAweDEyQzAwKQorKyNk ZWZpbmUgUE1fSVZBMl9CQVNFX0FERFJfQVJNCQkoU01YX0FQRV9CQVNFICsgMHgxNDAwMCkKKysK KysjZGVmaW5lIFJUX1JFUV9JTkZPX1BFUk1JU1NJT05fMQkoUE1fUlRfQVBFX0JBU0VfQUREUl9B Uk0gKyAweDY4KQorKyNkZWZpbmUgUlRfUkVBRF9QRVJNSVNTSU9OXzAJCShQTV9SVF9BUEVfQkFT RV9BRERSX0FSTSArIDB4NTApCisrI2RlZmluZSBSVF9XUklURV9QRVJNSVNTSU9OXzAJCShQTV9S VF9BUEVfQkFTRV9BRERSX0FSTSArIDB4NTgpCisrI2RlZmluZSBSVF9BRERSX01BVENIXzEJCQko UE1fUlRfQVBFX0JBU0VfQUREUl9BUk0gKyAweDYwKQorKworKyNkZWZpbmUgR1BNQ19SRVFfSU5G T19QRVJNSVNTSU9OXzAJKFBNX0dQTUNfQkFTRV9BRERSX0FSTSArIDB4NDgpCisrI2RlZmluZSBH UE1DX1JFQURfUEVSTUlTU0lPTl8wCQkoUE1fR1BNQ19CQVNFX0FERFJfQVJNICsgMHg1MCkKKysj ZGVmaW5lIEdQTUNfV1JJVEVfUEVSTUlTU0lPTl8wCQkoUE1fR1BNQ19CQVNFX0FERFJfQVJNICsg MHg1OCkKKysKKysjZGVmaW5lIE9DTV9SRVFfSU5GT19QRVJNSVNTSU9OXzAJKFBNX09DTV9SQU1f QkFTRV9BRERSX0FSTSArIDB4NDgpCisrI2RlZmluZSBPQ01fUkVBRF9QRVJNSVNTSU9OXzAJCShQ TV9PQ01fUkFNX0JBU0VfQUREUl9BUk0gKyAweDUwKQorKyNkZWZpbmUgT0NNX1dSSVRFX1BFUk1J U1NJT05fMAkJKFBNX09DTV9SQU1fQkFTRV9BRERSX0FSTSArIDB4NTgpCisrI2RlZmluZSBPQ01f QUREUl9NQVRDSF8yCQkoUE1fT0NNX1JBTV9CQVNFX0FERFJfQVJNICsgMHg4MCkKKysKKysjZGVm aW5lIElWQTJfUkVRX0lORk9fUEVSTUlTU0lPTl8wCShQTV9JVkEyX0JBU0VfQUREUl9BUk0gKyAw eDQ4KQorKyNkZWZpbmUgSVZBMl9SRUFEX1BFUk1JU1NJT05fMAkJKFBNX0lWQTJfQkFTRV9BRERS X0FSTSArIDB4NTApCisrI2RlZmluZSBJVkEyX1dSSVRFX1BFUk1JU1NJT05fMAkJKFBNX0lWQTJf QkFTRV9BRERSX0FSTSArIDB4NTgpCisrCisrI2RlZmluZSBJVkEyX1JFUV9JTkZPX1BFUk1JU1NJ T05fMQkoUE1fSVZBMl9CQVNFX0FERFJfQVJNICsgMHg2OCkKKysjZGVmaW5lIElWQTJfUkVBRF9Q RVJNSVNTSU9OXzEJCShQTV9JVkEyX0JBU0VfQUREUl9BUk0gKyAweDcwKQorKyNkZWZpbmUgSVZB Ml9XUklURV9QRVJNSVNTSU9OXzEJCShQTV9JVkEyX0JBU0VfQUREUl9BUk0gKyAweDc4KQorKwor KyNkZWZpbmUgSVZBMl9SRVFfSU5GT19QRVJNSVNTSU9OXzIJKFBNX0lWQTJfQkFTRV9BRERSX0FS TSArIDB4ODgpCisrI2RlZmluZSBJVkEyX1JFQURfUEVSTUlTU0lPTl8yCQkoUE1fSVZBMl9CQVNF X0FERFJfQVJNICsgMHg5MCkKKysjZGVmaW5lIElWQTJfV1JJVEVfUEVSTUlTU0lPTl8yCQkoUE1f SVZBMl9CQVNFX0FERFJfQVJNICsgMHg5OCkKKysKKysjZGVmaW5lIElWQTJfUkVRX0lORk9fUEVS TUlTU0lPTl8zCShQTV9JVkEyX0JBU0VfQUREUl9BUk0gKyAweEE4KQorKyNkZWZpbmUgSVZBMl9S RUFEX1BFUk1JU1NJT05fMwkJKFBNX0lWQTJfQkFTRV9BRERSX0FSTSArIDB4QjApCisrI2RlZmlu ZSBJVkEyX1dSSVRFX1BFUk1JU1NJT05fMwkJKFBNX0lWQTJfQkFTRV9BRERSX0FSTSArIDB4Qjgp CisrCisrLyogSTJDIGJhc2UgKi8KKysjZGVmaW5lIEkyQ19CQVNFMQkJKE9NQVA0NFhYX0w0X1BF UiArIDB4NzAwMDApCisrI2RlZmluZSBJMkNfQkFTRTIJCShPTUFQNDRYWF9MNF9QRVIgKyAweDcy MDAwKQorKyNkZWZpbmUgSTJDX0JBU0UzCQkoT01BUDQ0WFhfTDRfUEVSICsgMHg2MDAwMCkKKysK KysjaWZkZWYgQ09ORklHX0xDRAorKwlleHRlcm4gdm9pZCBsY2RfZGlzYWJsZSh2b2lkKTsKKysJ ZXh0ZXJuIHZvaWQgbGNkX3BhbmVsX2Rpc2FibGUodm9pZCk7CisrI2VuZGlmCisrCisrLyogU2ls aWNvbiByZXZpc2lvbnMgKi8KKysjZGVmaW5lIE9NQVA0NDMwX1NJTElDT05fSURfSU5WQUxJRAkw CisrI2RlZmluZSBPTUFQNDQzMF9FUzFfMAkxCisrI2RlZmluZSBPTUFQNDQzMF9FUzJfMAkyCisr I2RlZmluZSBPTUFQNDQzMF9FUzJfMQkzCisrCisrI2lmbmRlZglfX0FTU0VNQkxZX18KKysvKkZ1 bmN0aW9ucyBmb3Igc2lsaWNvbiByZXZpc2lvbiAqLworK3Vuc2lnbmVkIGludCBvbWFwX3Jldmlz aW9uKHZvaWQpOworK3Vuc2lnbmVkIGludCBjb3J0ZXhfYTlfcmV2KHZvaWQpOworKworK3ZvaWQg YmlnX2RlbGF5KHVuc2lnbmVkIGludCBjb3VudCk7CisrI2VuZGlmCisrCisrI2VuZGlmCitkaWZm IC11TnIgeC1sb2FkLWYyNDM5Mzgub3JpZy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L21lbS5oIHgt bG9hZC1mMjQzOTM4L2luY2x1ZGUvYXNtL2FyY2gtb21hcDQvbWVtLmgKKy0tLSB4LWxvYWQtZjI0 MzkzOC5vcmlnL2luY2x1ZGUvYXNtL2FyY2gtb21hcDQvbWVtLmgJMTk2OS0xMi0zMSAyMTowMDow MC4wMDAwMDAwMDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9t YXA0L21lbS5oCTIwMTItMDYtMDcgMTQ6NDU6MzkuNDUzNjQ4NjY3IC0wMzAwCitAQCAtMCwwICsx LDI4NSBAQAorKy8qCisrICogKEMpIENvcHlyaWdodCAyMDA2LTIwMDkKKysgKiBUZXhhcyBJbnN0 cnVtZW50cywgPHd3dy50aS5jb20+CisrICogUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJA dGkuY29tPgorKyAqCisrICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hv IGNvbnRyaWJ1dGVkIHRvIHRoaXMKKysgKiBwcm9qZWN0LgorKyAqCisrICogVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisrICogdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICogR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr ICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKKysgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwg Qm9zdG9uLAorKyAqIE1BIDAyMTExLTEzMDcgVVNBCisrICovCisrCisrI2lmbmRlZiBfT01BUDQ0 WFhfTUVNX0hfCisrI2RlZmluZSBfT01BUDQ0WFhfTUVNX0hfCisrCisrI2lmbmRlZiBfX0FTU0VN QkxZX18KKysKKyt0eXBlZGVmIGVudW0geworKwlTVEFDS0VECQk9IDAsCisrCUlQX0REUgkJPSAx LAorKwlDT01CT19ERFIJPSAyLAorKwlJUF9TRFIJIAk9IDMsCisrfSBtZW1fdDsKKysKKysvKiBN ZW1vcnkgdGhhdCBjYW4gYmUgY29ubmVjdGVkIHRvIEdQTUMgKi8KKysjZGVmaW5lIEdQTUNfTk9S ICAgICAgICAgICAgMAorKyNkZWZpbmUgR1BNQ19OQU5EICAgICAgICAgICAxCisrI2RlZmluZSBH UE1DX01ET0MgICAgICAgICAgIDIKKysjZGVmaW5lIEdQTUNfT05FTkFORCAgICAgICAgMworKyNk ZWZpbmUgTU1DX05BTkQgICAgICAgICAgICA0CisrI2RlZmluZSBNTUNfT05FTkFORCAgICAgICAg IDUKKysjZGVmaW5lIEdQTUNfTk9ORSAgICAgICAgICAgNgorKyNkZWZpbmUgR1BNQ19PTkVOQU5E X1RSWSAgICA3CisrCisrI2VuZGlmCisrCisrCisrLyogTmV3IGFuZCBjb21wYXRhYmlsaXR5IHNw ZWVkIGRlZmluZXMgKi8KKysjaWYgZGVmaW5lZChQUkNNX0NMS19DRkcyXzIwME1IWikgfHwgZGVm aW5lZChQUkNNX0NPTkZJR19JSSlcCisrCQl8fCBkZWZpbmVkKFBSQ01fQ09ORklHXzVCKQorKyMg ZGVmaW5lIEwzXzEwME1IWiAgIC8qIFVzZSB3aXRoIDw9IDEwME1IeiBTRFJBTSAqLworKyNlbGlm IGRlZmluZWQoUFJDTV9DTEtfQ0ZHMl8yNjZNSFopIHx8IGRlZmluZWQoUFJDTV9DT05GSUdfSUlJ KVwKKysJCXx8IGRlZmluZWQoUFJDTV9DT05GSUdfNUEpCisrIyBkZWZpbmUgTDNfMTMzTUhaICAg IC8qIFVzZSB3aXRoIDw9IDEzM01IeiBTRFJBTSovCisrI2VsaWYgZGVmaW5lZChQUkNNX0NMS19D RkcyXzMzMk1IWikgfHwgZGVmaW5lZChQUkNNX0NPTkZJR19JKSBcCisrCQl8fCBkZWZpbmVkKFBS Q01fQ09ORklHXzIpCisrIyBkZWZpbmUgTDNfMTY1TUhaICAgIC8qIFVzZSB3aXRoIDw9IDE2NU1I eiBTRFJBTSAoTDM9MTY2IG9uIDQ0MzApICovCisrI2VuZGlmCisrCisrLyoKKysgKiBHUE1DIHNl dHRpbmdzIC0KKysgKiBEZWZpbml0aW9ucyBpcyBhcyBwZXIgdGhlIGZvbGxvd2luZyBmb3JtYXQK KysgKiAjIGRlZmluZSA8UEFSVD5fR1BNQ19DT05GSUc8eD4gPHZhbHVlPgorKyAqIFdoZXJlOgor KyAqIFBBUlQgaXMgdGhlIHBhcnQgbmFtZSBlLmcuIFNUTk9SIC0gSW50ZWwgU3RyYXRhIEZsYXNo CisrICogeCBpcyBHUE1DIGNvbmZpZyByZWdpc3RlcnMgZnJvbSAxIHRvIDYgKHRoZXJlIHdpbGwg YmUgNiBtYWNyb3MpCisrICogVmFsdWUgaXMgY29ycmVzcG9uZGluZyB2YWx1ZQorKyAqCisrICog Rm9yIGV2ZXJ5IHZhbGlkIFBSQ00gY29uZmlndXJhdGlvbiB0aGVyZSBzaG91bGQgYmUgb25seSBv bmUgZGVmaW5pdGlvbiBvZgorKyAqIHRoZSBzYW1lLiBpZiB2YWx1ZXMgYXJlIGluZGVwZW5kZW50 IG9mIHRoZSBib2FyZCwgdGhpcyBkZWZpbml0aW9uIHdpbGwgYmUKKysgKiBwcmVzZW50IGluIHRo aXMgZmlsZSBpZiB2YWx1ZXMgYXJlIGRlcGVuZGVudCBvbiB0aGUgYm9hcmQsIHRoZW4gdGhpcyBz aG91bGQKKysgKiBnbyBpbnRvIGNvcnJlc3BvbmRpbmcgbWVtLWJvYXJkTmFtZS5oIGZpbGUKKysg KgorKyAqIEN1cnJlbnRseSB2YWxpZCBwYXJ0IE5hbWVzIGFyZSAoUEFSVCk6CisrICogU1ROT1Ig LSBJbnRlbCBTdHJhdGEgRmxhc2gKKysgKiBTTU5BTkQgLSBTYW1zdW5nIE5BTkQKKysgKiBNX05B TkQgLSBNaWNyb24gTGFyZ2UgcGFnZSB4MTYgTkFORAorKyAqIE1QREIgLSBINCBNUERCIGJvYXJk CisrICogU0JOT1IgLSBTaWJsZXkgTk9SCisrICogT05OQU5EIC0gU2Ftc3VuZyBPbmUgTkFORAor KyAqCisrICogaW5jbHVkZS9jb25maWdzL2ZpbGUuaCBjb250YWlucyB0aGUgZGVmbiAtIGZvciBh bGwgQ1Mgd2UgYXJlIGludGVyZXN0ZWQKKysgKiAjZGVmaW5lIE9NQVA0NFhYX0dQTUNfQ1N4IFBB UlQKKysgKiAjZGVmaW5lIE9NQVA0NFhYX0dQTUNfQ1N4X1NJWkUgU2l6ZQorKyAqICNkZWZpbmUg T01BUDQ0WFhfR1BNQ19DU3hfTUFQIE1hcAorKyAqIFdoZXJlOgorKyAqIHggLSBDUyBudW1iZXIK KysgKiBQQVJUIC0gUGFydCBOYW1lIGFzIGRlZmluZWQgYWJvdmUKKysgKiBTSVpFIC0gaG93IGJp ZyBpcyB0aGUgbWFwcGluZyB0byBiZQorKyAqICAgR1BNQ19TSVpFXzEyOE0gLSAweDgKKysgKiAg IEdQTUNfU0laRV82NE0gIC0gMHhDCisrICogICBHUE1DX1NJWkVfMzJNICAtIDB4RQorKyAqICAg R1BNQ19TSVpFXzE2TSAgLSAweEYKKysgKiBNQVAgIC0gTWFwIHRoaXMgQ1MgdG8gd2hpY2ggYWRk cmVzcyhHUE1DIGFkZHJlc3Mgc3BhY2UpLSBBYnNvbHV0ZSBhZGRyZXNzCisrICogICA+PjI0IGJl Zm9yZSBiZWluZyB1c2VkLgorKyAqLworKyNkZWZpbmUgR1BNQ19TSVpFXzEyOE0gIDB4OAorKyNk ZWZpbmUgR1BNQ19TSVpFXzY0TSAgIDB4QworKyNkZWZpbmUgR1BNQ19TSVpFXzMyTSAgIDB4RQor KyNkZWZpbmUgR1BNQ19TSVpFXzE2TSAgIDB4RgorKworKyNpZiBkZWZpbmVkKEwzXzEwME1IWikK KysjIGRlZmluZSBTTU5BTkRfR1BNQ19DT05GSUcxIDB4MAorKyMgZGVmaW5lIFNNTkFORF9HUE1D X0NPTkZJRzIgMHgwMDE0MTQwMAorKyMgZGVmaW5lIFNNTkFORF9HUE1DX0NPTkZJRzMgMHgwMDE0 MTQwMAorKyMgZGVmaW5lIFNNTkFORF9HUE1DX0NPTkZJRzQgMHgwRjAxMEYwMQorKyMgZGVmaW5l IFNNTkFORF9HUE1DX0NPTkZJRzUgMHgwMTBDMTQxNAorKyMgZGVmaW5lIFNNTkFORF9HUE1DX0NP TkZJRzYgMHgwMDAwMEE4MAorKworKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NPTkZJRzEgMHgwMDAw MTgwMAorKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NPTkZJRzIgMHgwMDE0MTQwMAorKyMgZGVmaW5l IE1fTkFORF9HUE1DX0NPTkZJRzMgMHgwMDE0MTQwMAorKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NP TkZJRzQgMHgwRjAxMEYwMQorKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NPTkZJRzUgMHgwMTBDMTQx NAorKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NPTkZJRzYgMHgxZjBmMEE4MAorKworKyMgZGVmaW5l IFNUTk9SX0dQTUNfQ09ORklHMSAgMHgzCisrIyBkZWZpbmUgU1ROT1JfR1BNQ19DT05GSUcyICAw eDAwMGYwZjAxCisrIyBkZWZpbmUgU1ROT1JfR1BNQ19DT05GSUczICAweDAwMDUwNTAyCisrIyBk ZWZpbmUgU1ROT1JfR1BNQ19DT05GSUc0ICAweDBDMDYwQzA2CisrIyBkZWZpbmUgU1ROT1JfR1BN Q19DT05GSUc1ICAweDAxMTMxRjFGCisrIyBkZWZpbmUgU1ROT1JfR1BNQ19DT05GSUc2ICAweDFG MEYwMDAwCisrCisrIyBkZWZpbmUgTVBEQl9HUE1DX0NPTkZJRzEgICAweDAwMDExMDAwCisrIyBk ZWZpbmUgTVBEQl9HUE1DX0NPTkZJRzIgICAweDAwMUYxRjAwCisrIyBkZWZpbmUgTVBEQl9HUE1D X0NPTkZJRzMgICAweDAwMDgwODAyCisrIyBkZWZpbmUgTVBEQl9HUE1DX0NPTkZJRzQgICAweDFD MDkxQzA5CisrIyBkZWZpbmUgTVBEQl9HUE1DX0NPTkZJRzUgICAweDAzMUExRjFGCisrIyBkZWZp bmUgTVBEQl9HUE1DX0NPTkZJRzYgICAweDAwMDAwM0MyCisrI2VuZGlmCisrCisrI2lmIGRlZmlu ZWQoTDNfMTMzTUhaKQorKyMgZGVmaW5lIFNNTkFORF9HUE1DX0NPTkZJRzEgMHgwMDAwMDgwMAor KyMgZGVmaW5lIFNNTkFORF9HUE1DX0NPTkZJRzIgMHgwMDE0MTQwMAorKyMgZGVmaW5lIFNNTkFO RF9HUE1DX0NPTkZJRzMgMHgwMDE0MTQwMAorKyMgZGVmaW5lIFNNTkFORF9HUE1DX0NPTkZJRzQg MHgwRjAxMEYwMQorKyMgZGVmaW5lIFNNTkFORF9HUE1DX0NPTkZJRzUgMHgwMTBDMTQxNAorKyMg ZGVmaW5lIFNNTkFORF9HUE1DX0NPTkZJRzYgMHgxRjBGMEE4MAorKyMgZGVmaW5lIFNNTkFORF9H UE1DX0NPTkZJRzcgMHgwMDAwMEM0NAorKworKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NPTkZJRzEg MHgwMDAwMTgwMCAvKiBtaWdodCByZXVzZSBzbW5hbmQsIHdpdGggfD0gMTAwMCAqLworKyMgZGVm aW5lIE1fTkFORF9HUE1DX0NPTkZJRzIgMHgwMDE0MTQwMAorKyMgZGVmaW5lIE1fTkFORF9HUE1D X0NPTkZJRzMgMHgwMDE0MTQwMAorKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NPTkZJRzQgMHgwRjAx MEYwMQorKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NPTkZJRzUgMHgwMTBDMTQxNAorKyMgZGVmaW5l IE1fTkFORF9HUE1DX0NPTkZJRzYgMHgxRjBGMEE4MAorKyMgZGVmaW5lIE1fTkFORF9HUE1DX0NP TkZJRzcgMHgwMDAwMEM0NAorKworKyMgZGVmaW5lIFNUTk9SX0dQTUNfQ09ORklHMSAgMHgxMjAz CisrIyBkZWZpbmUgU1ROT1JfR1BNQ19DT05GSUcyICAweDAwMTUxNTAxCisrIyBkZWZpbmUgU1RO T1JfR1BNQ19DT05GSUczICAweDAwMDYwNjAyCisrIyBkZWZpbmUgU1ROT1JfR1BNQ19DT05GSUc0 ICAweDEwMDgxMDA4CisrIyBkZWZpbmUgU1ROT1JfR1BNQ19DT05GSUc1ICAweDAxMTMxRjFGCisr IyBkZWZpbmUgU1ROT1JfR1BNQ19DT05GSUc2ICAweDFGMEYwNGM0CisrCisrIyBkZWZpbmUgU0lC Tk9SX0dQTUNfQ09ORklHMSAgMHgxMjAwCisrIyBkZWZpbmUgU0lCTk9SX0dQTUNfQ09ORklHMiAg MHgwMDFmMWYwMAorKyMgZGVmaW5lIFNJQk5PUl9HUE1DX0NPTkZJRzMgIDB4MDAwODA4MDIKKysj IGRlZmluZSBTSUJOT1JfR1BNQ19DT05GSUc0ICAweDFDMDkxQzA5CisrIyBkZWZpbmUgU0lCTk9S X0dQTUNfQ09ORklHNSAgMHgwMTEzMUYxRgorKyMgZGVmaW5lIFNJQk5PUl9HUE1DX0NPTkZJRzYg IDB4MUYwRjAzQzIKKysKKysvKiBFUzEgU0RQIGFuZCBFUzEgY2hpcCBEZWJ1ZyBGUEdBICovCisr IyBkZWZpbmUgTVBEQl9HUE1DX0NPTkZJRzEgIDB4MDAwMTEwMDAKKysjIGRlZmluZSBNUERCX0dQ TUNfQ09ORklHMiAgMHgwMDFmMWYwMQorKyMgZGVmaW5lIE1QREJfR1BNQ19DT05GSUczICAweDAw MDgwODAzCisrIyBkZWZpbmUgTVBEQl9HUE1DX0NPTkZJRzQgIDB4MUMwOTFDMDkKKysjIGRlZmlu ZSBNUERCX0dQTUNfQ09ORklHNSAgMHgwNDFmMUYxRgorKyMgZGVmaW5lIE1QREJfR1BNQ19DT05G SUc2ICAweDAwMDAwNEM0CisrCisrLyogRVMyIFNEUCBhbmQgRVMyIGNoaXAgRGVidWcgRlBHQSAq LworKyMgZGVmaW5lIFNEUFYyX01QREJfR1BNQ19DT05GSUcxICAweDAwNjExMjAwCisrIyBkZWZp bmUgU0RQVjJfTVBEQl9HUE1DX0NPTkZJRzIgIDB4MDAxRjFGMDEKKysjIGRlZmluZSBTRFBWMl9N UERCX0dQTUNfQ09ORklHMyAgMHgwMDA4MDgwMworKyMgZGVmaW5lIFNEUFYyX01QREJfR1BNQ19D T05GSUc0ICAweDFEMDkxRDA5CisrIyBkZWZpbmUgU0RQVjJfTVBEQl9HUE1DX0NPTkZJRzUgIDB4 MDQxRDFGMUYKKysjIGRlZmluZSBTRFBWMl9NUERCX0dQTUNfQ09ORklHNiAgMHgxRDA5MDRDNAor KworKyMgZGVmaW5lIFAyX0dQTUNfQ09ORklHMSAgMHgwCisrIyBkZWZpbmUgUDJfR1BNQ19DT05G SUcyICAweDAKKysjIGRlZmluZSBQMl9HUE1DX0NPTkZJRzMgIDB4MAorKyMgZGVmaW5lIFAyX0dQ TUNfQ09ORklHNCAgMHgwCisrIyBkZWZpbmUgUDJfR1BNQ19DT05GSUc1ICAweDAKKysjIGRlZmlu ZSBQMl9HUE1DX0NPTkZJRzYgIDB4MAorKworKyMgZGVmaW5lIE9ORU5BTkRfR1BNQ19DT05GSUcx IDB4MDAwMDEyMDAKKysjIGRlZmluZSBPTkVOQU5EX0dQTUNfQ09ORklHMiAweDAwMGMwYzAxCisr IyBkZWZpbmUgT05FTkFORF9HUE1DX0NPTkZJRzMgMHgwMDAzMDMwMQorKyMgZGVmaW5lIE9ORU5B TkRfR1BNQ19DT05GSUc0IDB4MGMwNDBjMDQKKysjIGRlZmluZSBPTkVOQU5EX0dQTUNfQ09ORklH NSAweDAxMEMxMDEwCisrIyBkZWZpbmUgT05FTkFORF9HUE1DX0NPTkZJRzYgMHgxRjA2MDAwMAor KworKyNlbmRpZiAvKiBlbmRpZiBMM18xMzNNSFogKi8KKysKKysjaWYgZGVmaW5lZChMM18xNjVN SFopCisrIyBkZWZpbmUgU01OQU5EX0dQTUNfQ09ORklHMSAweDAwMDAwODAwCisrIyBkZWZpbmUg U01OQU5EX0dQTUNfQ09ORklHMiAweDAwMDYwNjAwCisrIyBkZWZpbmUgU01OQU5EX0dQTUNfQ09O RklHMyAweDAwMDYwNDAxCisrIyBkZWZpbmUgU01OQU5EX0dQTUNfQ09ORklHNCAweDA1MDEwODAx CisrIyBkZWZpbmUgU01OQU5EX0dQTUNfQ09ORklHNSAweDAwMDkwQjBCCisrIyBkZWZpbmUgU01O QU5EX0dQTUNfQ09ORklHNiAweDA1MDAwMUMwCisrIyBkZWZpbmUgU01OQU5EX0dQTUNfQ09ORklH NyAweDAwMDAwQzQ0CisrCisrIyBkZWZpbmUgTV9OQU5EX0dQTUNfQ09ORklHMSAweDAwMDAxODAw CisrIyBkZWZpbmUgTV9OQU5EX0dQTUNfQ09ORklHMiAweDAwMTQxNDAwCisrIyBkZWZpbmUgTV9O QU5EX0dQTUNfQ09ORklHMyAweDAwMTQxNDAwCisrIyBkZWZpbmUgTV9OQU5EX0dQTUNfQ09ORklH NCAweDBGMDEwRjAxCisrIyBkZWZpbmUgTV9OQU5EX0dQTUNfQ09ORklHNSAweDAxMEMxNDE0Cisr IyBkZWZpbmUgTV9OQU5EX0dQTUNfQ09ORklHNiAweDFGMEYwQTgwCisrIyBkZWZpbmUgTV9OQU5E X0dQTUNfQ09ORklHNyAweDAwMDAwQzQ0CisrCisrIyBkZWZpbmUgU1ROT1JfR1BNQ19DT05GSUcx ICAweDMKKysjIGRlZmluZSBTVE5PUl9HUE1DX0NPTkZJRzIgIDB4MDAxNTE1MDEKKysjIGRlZmlu ZSBTVE5PUl9HUE1DX0NPTkZJRzMgIDB4MDAwNjA2MDIKKysjIGRlZmluZSBTVE5PUl9HUE1DX0NP TkZJRzQgIDB4MTEwOTExMDkKKysjIGRlZmluZSBTVE5PUl9HUE1DX0NPTkZJRzUgIDB4MDExNDFG MUYKKysjIGRlZmluZSBTVE5PUl9HUE1DX0NPTkZJRzYgIDB4MUYwRjA0YzQKKysKKysjIGRlZmlu ZSBTSUJOT1JfR1BNQ19DT05GSUcxICAweDEyMDAKKysjIGRlZmluZSBTSUJOT1JfR1BNQ19DT05G SUcyICAweDAwMWYxZjAwCisrIyBkZWZpbmUgU0lCTk9SX0dQTUNfQ09ORklHMyAgMHgwMDA4MDgw MgorKyMgZGVmaW5lIFNJQk5PUl9HUE1DX0NPTkZJRzQgIDB4MUMwOTFDMDkKKysjIGRlZmluZSBT SUJOT1JfR1BNQ19DT05GSUc1ICAweDAxMTMxRjFGCisrIyBkZWZpbmUgU0lCTk9SX0dQTUNfQ09O RklHNiAgMHgxRjBGMDNDMgorKworKyMgZGVmaW5lIFNEUFYyX01QREJfR1BNQ19DT05GSUcxICAw eDAwNjExMjAwCisrIyBkZWZpbmUgU0RQVjJfTVBEQl9HUE1DX0NPTkZJRzIgIDB4MDAxRjFGMDEK KysjIGRlZmluZSBTRFBWMl9NUERCX0dQTUNfQ09ORklHMyAgMHgwMDA4MDgwMworKyMgZGVmaW5l IFNEUFYyX01QREJfR1BNQ19DT05GSUc0ICAweDFEMDkxRDA5CisrIyBkZWZpbmUgU0RQVjJfTVBE Ql9HUE1DX0NPTkZJRzUgIDB4MDQxRDFGMUYKKysjIGRlZmluZSBTRFBWMl9NUERCX0dQTUNfQ09O RklHNiAgMHgxRDA5MDRDNAorKworKyMgZGVmaW5lIE1QREJfR1BNQ19DT05GSUcxICAweDAwMDEx MDAwCisrIyBkZWZpbmUgTVBEQl9HUE1DX0NPTkZJRzIgIDB4MDAxZjFmMDEKKysjIGRlZmluZSBN UERCX0dQTUNfQ09ORklHMyAgMHgwMDA4MDgwMworKyMgZGVmaW5lIE1QREJfR1BNQ19DT05GSUc0 ICAweDFjMGIxYzBhCisrIyBkZWZpbmUgTVBEQl9HUE1DX0NPTkZJRzUgIDB4MDQxZjFGMUYKKysj IGRlZmluZSBNUERCX0dQTUNfQ09ORklHNiAgMHgxRjBGMDRDNAorKworKyMgZGVmaW5lIExBQl9F TkVUX0dQTUNfQ09ORklHMSAgMHgwMDYxMTAwMAorKyMgZGVmaW5lIExBQl9FTkVUX0dQTUNfQ09O RklHMiAgMHgwMDFGMUYwMQorKyMgZGVmaW5lIExBQl9FTkVUX0dQTUNfQ09ORklHMyAgMHgwMDA4 MDgwMworKyMgZGVmaW5lIExBQl9FTkVUX0dQTUNfQ09ORklHNCAgMHgxRDA5MUQwOQorKyMgZGVm aW5lIExBQl9FTkVUX0dQTUNfQ09ORklHNSAgMHgwNDFEMUYxRgorKyMgZGVmaW5lIExBQl9FTkVU X0dQTUNfQ09ORklHNiAgMHgxRDA5MDRDNAorKworKyMgZGVmaW5lIFAyX0dQTUNfQ09ORklHMSAg MHgwCisrIyBkZWZpbmUgUDJfR1BNQ19DT05GSUcyICAweDAKKysjIGRlZmluZSBQMl9HUE1DX0NP TkZJRzMgIDB4MAorKyMgZGVmaW5lIFAyX0dQTUNfQ09ORklHNCAgMHgwCisrIyBkZWZpbmUgUDJf R1BNQ19DT05GSUc1ICAweDAKKysjIGRlZmluZSBQMl9HUE1DX0NPTkZJRzYgIDB4MAorKworKyMg ZGVmaW5lIE9ORU5BTkRfR1BNQ19DT05GSUcxIDB4MDAwMDEyMDAKKysjIGRlZmluZSBPTkVOQU5E X0dQTUNfQ09ORklHMiAweDAwMEYwRjAxCisrIyBkZWZpbmUgT05FTkFORF9HUE1DX0NPTkZJRzMg MHgwMDAzMDMwMQorKyMgZGVmaW5lIE9ORU5BTkRfR1BNQ19DT05GSUc0IDB4MEYwNDBGMDQKKysj IGRlZmluZSBPTkVOQU5EX0dQTUNfQ09ORklHNSAweDAxMEYxMDEwCisrIyBkZWZpbmUgT05FTkFO RF9HUE1DX0NPTkZJRzYgMHgxRjA2MDAwMAorKworKyNlbmRpZgorKworKy8qIG1heCBudW1iZXIg b2YgR1BNQyBDaGlwIFNlbGVjdHMgKi8KKysjZGVmaW5lIEdQTUNfTUFYX0NTCTgKKysvKiBtYXgg bnVtYmVyIG9mIEdQTUMgcmVncyAqLworKyNkZWZpbmUgR1BNQ19NQVhfUkVHCTcKKysKKysjZGVm aW5lIFBJU01PMV9OT1IJMQorKyNkZWZpbmUgUElTTU8xX05BTkQJMgorKyNkZWZpbmUgUElTTU8y X0NTMAkzCisrI2RlZmluZSBQSVNNTzJfQ1MxCTQKKysjZGVmaW5lIFBJU01PMV9PTkVOQU5ECTUK KysjZGVmaW5lIERCR19NUERCCTYKKysjZGVmaW5lIFBJU01PMl9OQU5EX0NTMCA3CisrI2RlZmlu ZSBQSVNNTzJfTkFORF9DUzEgOAorKworKy8qIG1ha2UgaXQgcmVhZGFibGUgZm9yIHRoZSBncG1j X2luaXQgKi8KKysjZGVmaW5lIFBJU01PMV9OT1JfQkFTRQkJRkxBU0hfQkFTRQorKyNkZWZpbmUg UElTTU8xX05BTkRfQkFTRQlOQU5EX0JBU0UKKysjZGVmaW5lIFBJU01PMl9DUzBfQkFTRQkJUElT TU8yX01BUDEKKysjZGVmaW5lIFBJU01PMV9PTkVOX0JBU0UJT05FTkFORF9NQVAKKysjZGVmaW5l IERCR19NUERCX0JBU0UJCURFQlVHX0JBU0UKKysKKysjZW5kaWYgLyogZW5kaWYgX09NQVA0NFhY X01FTV9IXyAqLworZGlmZiAtdU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvaW5jbHVkZS9hc20vYXJj aC1vbWFwNC9tbWMuaCB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L21tYy5o CistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L21tYy5oCTE5 NjktMTItMzEgMjE6MDA6MDAuMDAwMDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvaW5j bHVkZS9hc20vYXJjaC1vbWFwNC9tbWMuaAkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ1MzY0ODY2NyAt MDMwMAorQEAgLTAsMCArMSwyMzUgQEAKKysvKgorKyAqIChDKSBDb3B5cmlnaHQgMjAwOAorKyAq IFRleGFzIEluc3RydW1lbnRzLCA8d3d3LnRpLmNvbT4KKysgKiBTeWVkIE1vaGFtbWVkIEtoYXNp bSA8a2hhc2ltQHRpLmNvbT4KKysgKgorKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2Yg cGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisrICogcHJvamVjdC4KKysgKgorKyAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcworKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uJ3MgdmVyc2lvbiAyIG9mCisrICogdGhlIExpY2Vuc2UuCisrICoKKysgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyAqIEZvdW5kYXRpb24sIElu Yy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisrICogTUEgMDIxMTEtMTMw NyBVU0EKKysgKi8KKysKKysjaWZuZGVmIE1NQ19ICisrI2RlZmluZSBNTUNfSAorKworKyNpbmNs dWRlICJtbWNfaG9zdF9kZWYuaCIKKysKKysvKiBSZXNwb25zZXMgKi8KKysjZGVmaW5lIFJTUF9U WVBFX05PTkUJICAoUlNQX1RZUEVfTk9SU1AgICB8IENDQ0VfTk9DSEVDSyB8IENJQ0VfTk9DSEVD SykKKysjZGVmaW5lIFJTUF9UWVBFX1IxCSAgKFJTUF9UWVBFX0xHSFQ0OCAgfCBDQ0NFX0NIRUNL ICAgfCBDSUNFX0NIRUNLKQorKyNkZWZpbmUgUlNQX1RZUEVfUjFCCSAgKFJTUF9UWVBFX0xHSFQ0 OEIgfCBDQ0NFX0NIRUNLICAgfCBDSUNFX0NIRUNLKQorKyNkZWZpbmUgUlNQX1RZUEVfUjIJICAo UlNQX1RZUEVfTEdIVDEzNiB8IENDQ0VfQ0hFQ0sgICB8IENJQ0VfTk9DSEVDSykKKysjZGVmaW5l IFJTUF9UWVBFX1IzCSAgKFJTUF9UWVBFX0xHSFQ0OCAgfCBDQ0NFX05PQ0hFQ0sgfCBDSUNFX05P Q0hFQ0spCisrI2RlZmluZSBSU1BfVFlQRV9SNAkgIChSU1BfVFlQRV9MR0hUNDggIHwgQ0NDRV9O T0NIRUNLIHwgQ0lDRV9OT0NIRUNLKQorKyNkZWZpbmUgUlNQX1RZUEVfUjUJICAoUlNQX1RZUEVf TEdIVDQ4ICB8IENDQ0VfQ0hFQ0sgICB8IENJQ0VfQ0hFQ0spCisrI2RlZmluZSBSU1BfVFlQRV9S NgkgIChSU1BfVFlQRV9MR0hUNDggIHwgQ0NDRV9DSEVDSyAgIHwgQ0lDRV9DSEVDSykKKysjZGVm aW5lIFJTUF9UWVBFX1I3CSAgKFJTUF9UWVBFX0xHSFQ0OCAgfCBDQ0NFX0NIRUNLICAgfCBDSUNF X0NIRUNLKQorKworKy8qIEFsbCBzdXBwb3J0ZWQgY29tbWFuZHMgKi8KKysjZGVmaW5lIE1NQ19D TUQwICAgICAgICAgIChJTkRFWCgwKSAgfCBSU1BfVFlQRV9OT05FIHwgRFBfTk9fREFUQSB8IERE SVJfV1JJVEUpCisrI2RlZmluZSBNTUNfQ01EMSAgICAgICAgICAoSU5ERVgoMSkgIHwgUlNQX1RZ UEVfUjMgICB8IERQX05PX0RBVEEgfCBERElSX1dSSVRFKQorKyNkZWZpbmUgTU1DX0NNRDIgICAg ICAgICAgKElOREVYKDIpICB8IFJTUF9UWVBFX1IyICAgfCBEUF9OT19EQVRBIHwgRERJUl9XUklU RSkKKysjZGVmaW5lIE1NQ19DTUQzICAgICAgICAgIChJTkRFWCgzKSAgfCBSU1BfVFlQRV9SMSAg IHwgRFBfTk9fREFUQSB8IERESVJfV1JJVEUpCisrI2RlZmluZSBNTUNfU0RDTUQzICAgICAgICAo SU5ERVgoMykgIHwgUlNQX1RZUEVfUjYgICB8IERQX05PX0RBVEEgfCBERElSX1dSSVRFKQorKyNk ZWZpbmUgTU1DX0NNRDQgICAgICAgICAgKElOREVYKDQpICB8IFJTUF9UWVBFX05PTkUgfCBEUF9O T19EQVRBIHwgRERJUl9XUklURSkKKysjZGVmaW5lIE1NQ19DTUQ2ICAgICAgICAgIChJTkRFWCg2 KSAgfCBSU1BfVFlQRV9SMUIgIHwgRFBfTk9fREFUQSB8IERESVJfV1JJVEUpCisrI2RlZmluZSBN TUNfQ01EN19TRUxFQ1QgICAoSU5ERVgoNykgIHwgUlNQX1RZUEVfUjFCICB8IERQX05PX0RBVEEg fCBERElSX1dSSVRFKQorKyNkZWZpbmUgTU1DX0NNRDdfREVTRUxFQ1QgKElOREVYKDcpICB8IFJT UF9UWVBFX05PTkUgfCBEUF9OT19EQVRBIHwgRERJUl9XUklURSkKKysjZGVmaW5lIE1NQ19DTUQ4 ICAgICAgICAgIChJTkRFWCg4KSAgfCBSU1BfVFlQRV9SMSAgIHwgRFBfREFUQSAgICB8IERESVJf UkVBRCkKKysjZGVmaW5lIE1NQ19TRENNRDggICAgICAgIChJTkRFWCg4KSAgfCBSU1BfVFlQRV9S NyAgIHwgRFBfTk9fREFUQSB8IERESVJfV1JJVEUpCisrI2RlZmluZSBNTUNfQ01EOSAgICAgICAg ICAoSU5ERVgoOSkgIHwgUlNQX1RZUEVfUjIgICB8IERQX05PX0RBVEEgfCBERElSX1dSSVRFKQor KyNkZWZpbmUgTU1DX0NNRDEyICAgICAgICAgKElOREVYKDEyKSB8IFJTUF9UWVBFX1IxQiAgfCBE UF9OT19EQVRBIHwgRERJUl9XUklURSkKKysjZGVmaW5lIE1NQ19DTUQxMyAgICAgICAgIChJTkRF WCgxMykgfCBSU1BfVFlQRV9SMSAgIHwgRFBfTk9fREFUQSB8IERESVJfV1JJVEUpCisrI2RlZmlu ZSBNTUNfQ01EMTUgICAgICAgICAoSU5ERVgoMTUpIHwgUlNQX1RZUEVfTk9ORSB8IERQX05PX0RB VEEgfCBERElSX1dSSVRFKQorKyNkZWZpbmUgTU1DX0NNRDE2ICAgICAgICAgKElOREVYKDE2KSB8 IFJTUF9UWVBFX1IxICAgfCBEUF9OT19EQVRBIHwgRERJUl9XUklURSkKKysjZGVmaW5lIE1NQ19D TUQxNyAgICAgICAgIChJTkRFWCgxNykgfCBSU1BfVFlQRV9SMSAgIHwgRFBfREFUQSAgICB8IERE SVJfUkVBRCkKKysjZGVmaW5lIE1NQ19DTUQyNCAgICAgICAgIChJTkRFWCgyNCkgfCBSU1BfVFlQ RV9SMSAgIHwgRFBfREFUQSAgICB8IERESVJfV1JJVEUpCisrI2RlZmluZSBNTUNfQUNNRDYgICAg ICAgICAoSU5ERVgoNikgIHwgUlNQX1RZUEVfUjEgICB8IERQX05PX0RBVEEgfCBERElSX1dSSVRF KQorKyNkZWZpbmUgTU1DX0FDTUQ0MSAgICAgICAgKElOREVYKDQxKSB8IFJTUF9UWVBFX1IzICAg fCBEUF9OT19EQVRBIHwgRERJUl9XUklURSkKKysjZGVmaW5lIE1NQ19BQ01ENTEgICAgICAgIChJ TkRFWCg1MSkgfCBSU1BfVFlQRV9SMSAgIHwgRFBfREFUQSAgICB8IERESVJfUkVBRCkKKysjZGVm aW5lIE1NQ19DTUQ1NSAgICAgICAgIChJTkRFWCg1NSkgfCBSU1BfVFlQRV9SMSAgIHwgRFBfTk9f REFUQSB8IERESVJfV1JJVEUpCisrCisrI2RlZmluZSBNTUNfQUNfQ01EX1JDQV9NQVNLICAgICAo dW5zaWduZWQgaW50KSgweEZGRkYgPDwgMTYpCisrI2RlZmluZSBNTUNfQkNfQ01EX0RTUl9NQVNL ICAgICAodW5zaWduZWQgaW50KSgweEZGRkYgPDwgMTYpCisrI2RlZmluZSBNTUNfRFNSX0RFRkFV TFQgICAgICAgICAoMHgwNDA0KQorKyNkZWZpbmUgU0RfQ01EOF9DSEVDS19QQVRURVJOCSgweEFB KQorKyNkZWZpbmUgU0RfQ01EOF8yXzdfM182X1ZfUkFOR0UJKDB4MDEgPDwgOCkKKysKKysvKiBD bG9jayBDb25maWd1cmF0aW9ucyBhbmQgTWFjcm9zICovCisrCisrI2RlZmluZSBNTUNfQ0xPQ0tf UkVGRVJFTkNFCQkoOTYpCisrI2RlZmluZSBNTUNfUkVMQVRJVkVfQ0FSRF9BRERSRVNTCSgweDEy MzQpCisrI2RlZmluZSBNTUNfSU5JVF9TRVFfQ0xLCQkoTU1DX0NMT0NLX1JFRkVSRU5DRSAqIDEw MDAgLyA4MCkKKysjZGVmaW5lIE1NQ180MDBrSHpfQ0xLCQkJKE1NQ19DTE9DS19SRUZFUkVOQ0Ug KiAxMDAwIC8gNDAwKQorKyNkZWZpbmUgQ0xLRFIociwgZiwgdSkJCQkoKCgocikqMTAwKSAvICgo ZikqKHUpKSkgKyAxKQorKyNkZWZpbmUgQ0xLRChmLCB1KQkJCShDTEtEUihNTUNfQ0xPQ0tfUkVG RVJFTkNFLCBmLCB1KSkKKysKKysjZGVmaW5lIE1NQ19PQ1JfUkVHX0FDQ0VTU19NT0RFX01BU0sJ CQkoMHgzIDw8IDI5KQorKyNkZWZpbmUgTU1DX09DUl9SRUdfQUNDRVNTX01PREVfQllURSAgICAJ CSgweDAgPDwgMjkpCisrI2RlZmluZSBNTUNfT0NSX1JFR19BQ0NFU1NfTU9ERV9TRUNUT1IgIAkJ KDB4MiA8PCAyOSkKKysKKysjZGVmaW5lIE1NQ19PQ1JfUkVHX0hPU1RfQ0FQQUNJVFlfU1VQUE9S VF9NQVNLCQkoMHgxIDw8IDMwKQorKyNkZWZpbmUgTU1DX09DUl9SRUdfSE9TVF9DQVBBQ0lUWV9T VVBQT1JUX0JZVEUJCSgweDAgPDwgMzApCisrI2RlZmluZSBNTUNfT0NSX1JFR19IT1NUX0NBUEFD SVRZX1NVUFBPUlRfU0VDVE9SCSgweDEgPDwgMzApCisrCisrI2RlZmluZSBNTUNfU0QyX0NTRF9D X1NJWkVfTFNCX01BU0sgICAgICAgICAoMHhGRkZGKQorKyNkZWZpbmUgTU1DX1NEMl9DU0RfQ19T SVpFX01TQl9NQVNLICAgICAgICAgKDB4MDAzRikKKysjZGVmaW5lIE1NQ19TRDJfQ1NEX0NfU0la RV9NU0JfT0ZGU0VUICAgICAgICgxNikKKysjZGVmaW5lIE1NQ19DU0RfQ19TSVpFX0xTQl9NQVNL ICAgICAgICAgICAgICgweDAwMDMpCisrI2RlZmluZSBNTUNfQ1NEX0NfU0laRV9NU0JfTUFTSyAg ICAgICAgICAgICAoMHgwM0ZGKQorKyNkZWZpbmUgTU1DX0NTRF9DX1NJWkVfTVNCX09GRlNFVCAg ICAgICAgICAgKDIpCisrCisrI2RlZmluZSBNTUNfQ1NEX1RSQU5fU1BFRURfVU5JVF9NQVNLICAg ICAgICAoMHgwNyA8PCAwKQorKyNkZWZpbmUgTU1DX0NTRF9UUkFOX1NQRUVEX0ZBQ1RPUl9NQVNL ICAgICAgKDB4MEYgPDwgMykKKysjZGVmaW5lIE1NQ19DU0RfVFJBTl9TUEVFRF9VTklUXzEwME1I WiAgICAgICgweDMgPDwgMCkKKysjZGVmaW5lIE1NQ19DU0RfVFJBTl9TUEVFRF9GQUNUT1JfMV8w ICAgICAgICgweDAxIDw8IDMpCisrI2RlZmluZSBNTUNfQ1NEX1RSQU5fU1BFRURfRkFDVE9SXzhf MCAgICAgICAoMHgwRiA8PCAzKQorKworK3R5cGVkZWYgc3RydWN0IHsKKysJdW5zaWduZWQgbm90 X3VzZWQ6MTsKKysJdW5zaWduZWQgY3JjOjc7CisrCXVuc2lnbmVkIGVjYzoyOworKwl1bnNpZ25l ZCBmaWxlX2Zvcm1hdDoyOworKwl1bnNpZ25lZCB0bXBfd3JpdGVfcHJvdGVjdDoxOworKwl1bnNp Z25lZCBwZXJtX3dyaXRlX3Byb3RlY3Q6MTsKKysJdW5zaWduZWQgY29weToxOworKwl1bnNpZ25l ZCBmaWxlX2Zvcm1hdF9ncnA6MTsKKysJdW5zaWduZWQgY29udGVudF9wcm90X2FwcDoxOworKwl1 bnNpZ25lZCByZXNlcnZlZF8xOjQ7CisrCXVuc2lnbmVkIHdyaXRlX2JsX3BhcnRpYWw6MTsKKysJ dW5zaWduZWQgd3JpdGVfYmxfbGVuOjQ7CisrCXVuc2lnbmVkIHIyd19mYWN0b3I6MzsKKysJdW5z aWduZWQgZGVmYXVsdF9lY2M6MjsKKysJdW5zaWduZWQgd3BfZ3JwX2VuYWJsZToxOworKwl1bnNp Z25lZCB3cF9ncnBfc2l6ZTo1OworKwl1bnNpZ25lZCBlcmFzZV9ncnBfbXVsdDo1OworKwl1bnNp Z25lZCBlcmFzZV9ncnBfc2l6ZTo1OworKwl1bnNpZ25lZCBjX3NpemVfbXVsdDozOworKwl1bnNp Z25lZCB2ZGRfd19jdXJyX21heDozOworKwl1bnNpZ25lZCB2ZGRfd19jdXJyX21pbjozOworKwl1 bnNpZ25lZCB2ZGRfcl9jdXJyX21heDozOworKwl1bnNpZ25lZCB2ZGRfcl9jdXJyX21pbjozOwor Kwl1bnNpZ25lZCBjX3NpemVfbHNiOjI7CisrCXVuc2lnbmVkIGNfc2l6ZV9tc2I6MTA7CisrCXVu c2lnbmVkIHJlc2VydmVkXzI6MjsKKysJdW5zaWduZWQgZHNyX2ltcDoxOworKwl1bnNpZ25lZCBy ZWFkX2Jsa19taXNhbGlnbjoxOworKwl1bnNpZ25lZCB3cml0ZV9ibGtfbWlzYWxpZ246MTsKKysJ dW5zaWduZWQgcmVhZF9ibF9wYXJ0aWFsOjE7CisrCXVuc2lnbmVkIHJlYWRfYmxfbGVuOjQ7Cisr CXVuc2lnbmVkIGNjYzoxMjsKKysJdW5zaWduZWQgdHJhbl9zcGVlZDo4OworKwl1bnNpZ25lZCBu c2FjOjg7CisrCXVuc2lnbmVkIHRhYWM6ODsKKysJdW5zaWduZWQgcmVzZXJ2ZWRfMzoyOworKwl1 bnNpZ25lZCBzcGVjX3ZlcnM6NDsKKysJdW5zaWduZWQgY3NkX3N0cnVjdHVyZToyOworK30gbW1j X2NzZF9yZWdfdDsKKysKKysvKiBjc2QgZm9yIHNkMi4wICovCisrdHlwZWRlZiBzdHJ1Y3Qgewor Kwl1bnNpZ25lZCBub3RfdXNlZDoxOworKwl1bnNpZ25lZCBjcmM6NzsKKysJdW5zaWduZWQgcmVz ZXJ2ZWRfMToyOworKwl1bnNpZ25lZCBmaWxlX2Zvcm1hdDoyOworKwl1bnNpZ25lZCB0bXBfd3Jp dGVfcHJvdGVjdDoxOworKwl1bnNpZ25lZCBwZXJtX3dyaXRlX3Byb3RlY3Q6MTsKKysJdW5zaWdu ZWQgY29weToxOworKwl1bnNpZ25lZCBmaWxlX2Zvcm1hdF9ncnA6MTsKKysJdW5zaWduZWQgcmVz ZXJ2ZWRfMjo1OworKwl1bnNpZ25lZCB3cml0ZV9ibF9wYXJ0aWFsOjE7CisrCXVuc2lnbmVkIHdy aXRlX2JsX2xlbjo0OworKwl1bnNpZ25lZCByMndfZmFjdG9yOjM7CisrCXVuc2lnbmVkIHJlc2Vy dmVkXzM6MjsKKysJdW5zaWduZWQgd3BfZ3JwX2VuYWJsZToxOworKwl1bnNpZ25lZCB3cF9ncnBf c2l6ZTo3OworKwl1bnNpZ25lZCBzZWN0b3Jfc2l6ZTo3OworKwl1bnNpZ25lZCBlcmFzZV9ibGtf bGVuOjE7CisrCXVuc2lnbmVkIHJlc2VydmVkXzQ6MTsKKysJdW5zaWduZWQgY19zaXplX2xzYjox NjsKKysJdW5zaWduZWQgY19zaXplX21zYjo2OworKwl1bnNpZ25lZCByZXNlcnZlZF81OjY7Cisr CXVuc2lnbmVkIGRzcl9pbXA6MTsKKysJdW5zaWduZWQgcmVhZF9ibGtfbWlzYWxpZ246MTsKKysJ dW5zaWduZWQgd3JpdGVfYmxrX21pc2FsaWduOjE7CisrCXVuc2lnbmVkIHJlYWRfYmxfcGFydGlh bDoxOworKwl1bnNpZ25lZCByZWFkX2JsX2xlbjo0OworKwl1bnNpZ25lZCBjY2M6MTI7CisrCXVu c2lnbmVkIHRyYW5fc3BlZWQ6ODsKKysJdW5zaWduZWQgbnNhYzo4OworKwl1bnNpZ25lZCB0YWFj Ojg7CisrCXVuc2lnbmVkIHJlc2VydmVkXzY6NjsKKysJdW5zaWduZWQgY3NkX3N0cnVjdHVyZToy OworK30gbW1jX3NkMl9jc2RfcmVnX3Q7CisrCisrLyogZXh0ZW5kZWQgY3NkIC0gNTEyIGJ5dGVz IGxvbmcgKi8KKyt0eXBlZGVmIHN0cnVjdCB7CisrCXVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWRfMVsx ODFdOworKwl1bnNpZ25lZCBjaGFyIGVyYXNlZG1lbW9yeWNvbnRlbnQ7CisrCXVuc2lnbmVkIGNo YXIgcmVzZXJ2ZWRfMjsKKysJdW5zaWduZWQgY2hhciBidXN3aWR0aG1vZGU7CisrCXVuc2lnbmVk IGNoYXIgcmVzZXJ2ZWRfMzsKKysJdW5zaWduZWQgY2hhciBoaWdoc3BlZWRpbnRlcmZhY2V0aW1p bmc7CisrCXVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWRfNDsKKysJdW5zaWduZWQgY2hhciBwb3dlcmNs YXNzOworKwl1bnNpZ25lZCBjaGFyIHJlc2VydmVkXzU7CisrCXVuc2lnbmVkIGNoYXIgY29tbWFu ZHNldHJldmlzaW9uOworKwl1bnNpZ25lZCBjaGFyIHJlc2VydmVkXzY7CisrCXVuc2lnbmVkIGNo YXIgY29tbWFuZHNldDsKKysJdW5zaWduZWQgY2hhciBleHRlbmRlZGNzZHJldmlzaW9uOworKwl1 bnNpZ25lZCBjaGFyIHJlc2VydmVkXzc7CisrCXVuc2lnbmVkIGNoYXIgY3Nkc3RydWN0dXJldmVy c2lvbjsKKysJdW5zaWduZWQgY2hhciByZXNlcnZlZF84OworKwl1bnNpZ25lZCBjaGFyIGNhcmR0 eXBlOworKwl1bnNpZ25lZCBjaGFyIHJlc2VydmVkXzlbM107CisrCXVuc2lnbmVkIGNoYXIgcG93 ZXJjbGFzc181Mm1oel8xXzk1djsKKysJdW5zaWduZWQgY2hhciBwb3dlcmNsYXNzXzI2bWh6XzFf OTV2OworKwl1bnNpZ25lZCBjaGFyIHBvd2VyY2xhc3NfNTJtaHpfM182djsKKysJdW5zaWduZWQg Y2hhciBwb3dlcmNsYXNzXzI2bWh6XzNfNnY7CisrCXVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWRfMTA7 CisrCXVuc2lnbmVkIGNoYXIgbWlucmVhZHBlcmZfNGJfMjZtaHo7CisrCXVuc2lnbmVkIGNoYXIg bWlud3JpdGVwZXJmXzRiXzI2bWh6OworKwl1bnNpZ25lZCBjaGFyIG1pbnJlYWRwZXJmXzhiXzI2 bWh6XzRiXzUybWh6OworKwl1bnNpZ25lZCBjaGFyIG1pbndyaXRlcGVyZl84Yl8yNm1oel80Yl81 Mm1oejsKKysJdW5zaWduZWQgY2hhciBtaW5yZWFkcGVyZl84Yl81Mm1oejsKKysJdW5zaWduZWQg Y2hhciBtaW53cml0ZXBlcmZfOGJfNTJtaHo7CisrCXVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWRfMTE7 CisrCXVuc2lnbmVkIGludCBzZWN0b3Jjb3VudDsKKysJdW5zaWduZWQgY2hhciByZXNlcnZlZF8x MlsyODhdOworKwl1bnNpZ25lZCBjaGFyIHN1cHBvcnRlZGNvbW1hbmRzZXRzOworKwl1bnNpZ25l ZCBjaGFyIHJlc2VydmVkXzEzWzddOworK30gbW1jX2V4dGVuZGVkX2NzZF9yZWdfdDsKKysKKysv KiBtbWMgc2QgcmVzcG9uY2UgKi8KKyt0eXBlZGVmIHN0cnVjdCB7CisrCXVuc2lnbmVkIGludCBv Y3I7CisrfSBtbWNfcmVzcF9yMzsKKysKKyt0eXBlZGVmIHN0cnVjdCB7CisrCXVuc2lnbmVkIHNo b3J0IGNhcmRzdGF0dXM7CisrCXVuc2lnbmVkIHNob3J0IG5ld3B1Ymxpc2hlZHJjYTsKKyt9IG1t Y19yZXNwX3I2OworKworK2V4dGVybiBtbWNfY2FyZF9kYXRhIG1tY19kZXY7CisrCisrdW5zaWdu ZWQgY2hhciBtbWNfbG93bGV2ZWxfaW5pdCh2b2lkKTsKKyt1bnNpZ25lZCBjaGFyIG1tY19zZW5k X2NvbW1hbmQodW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgaW50IGFyZywKKysJCQkgICAgICAg dW5zaWduZWQgaW50ICpyZXNwb25zZSk7CisrdW5zaWduZWQgY2hhciBtbWNfc2V0dXBfY2xvY2so dW5zaWduZWQgaW50IGljbGssIHVuc2lnbmVkIHNob3J0IGNsa2QpOworK3Vuc2lnbmVkIGNoYXIg bW1jX3NldF9vcGVuZHJhaW4odW5zaWduZWQgY2hhciBzdGF0ZSk7CisrdW5zaWduZWQgY2hhciBt bWNfcmVhZF9kYXRhKHVuc2lnbmVkIGludCAqb3V0cHV0X2J1Zik7CisrCisrI2VuZGlmIC8qIE1N Q19IICovCitkaWZmIC11TnIgeC1sb2FkLWYyNDM5Mzgub3JpZy9pbmNsdWRlL2FzbS9hcmNoLW9t YXA0L21tY19ob3N0X2RlZi5oIHgtbG9hZC1mMjQzOTM4L2luY2x1ZGUvYXNtL2FyY2gtb21hcDQv bW1jX2hvc3RfZGVmLmgKKy0tLSB4LWxvYWQtZjI0MzkzOC5vcmlnL2luY2x1ZGUvYXNtL2FyY2gt b21hcDQvbW1jX2hvc3RfZGVmLmgJMTk2OS0xMi0zMSAyMTowMDowMC4wMDAwMDAwMDAgLTAzMDAK KysrKyB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L21tY19ob3N0X2RlZi5o CTIwMTItMDYtMDcgMTQ6NDU6MzkuNDUzNjQ4NjY3IC0wMzAwCitAQCAtMCwwICsxLDE2OCBAQAor Ky8qCisrICogKEMpIENvcHlyaWdodCAyMDA4CisrICogVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cu dGkuY29tPgorKyAqIFN5ZWQgTW9oYW1tZWQgS2hhc2ltIDxraGFzaW1AdGkuY29tPgorKyAqCisr ICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRv IHRoaXMKKysgKiBwcm9qZWN0LgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisrICogcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24ncyB2ZXJzaW9uIDIgb2YKKysgKiB0 aGUgTGljZW5zZS4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlCisrICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0 ZSAzMzAsIEJvc3RvbiwKKysgKiBNQSAwMjExMS0xMzA3IFVTQQorKyAqLworKworKyNpZm5kZWYg TU1DX0hPU1RfREVGSU5JVElPTlNfSAorKyNkZWZpbmUgTU1DX0hPU1RfREVGSU5JVElPTlNfSAor KworKyNkZWZpbmUgT01BUF9IU01NQzFfQkFTRSAgICAgICAgMHg0ODA5QzEwMAorKyNkZWZpbmUg T01BUF9IU01NQzJfQkFTRSAgICAgICAgMHg0ODBCNDEwMAorKworKy8qCisrICogT01BUCBIU01N QyByZWdpc3RlciBkZWZpbml0aW9ucworKyAqLworKworKyNkZWZpbmUgT01BUF9IU01NQ19TWVND T05GSUcJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIChPTUFQX0hTTU1DMV9CQVNFKzB4MDEw KSkKKysjZGVmaW5lIE9NQVBfSFNNTUNfU1lTU1RBVFVTCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGlu dCAqKSAoT01BUF9IU01NQzFfQkFTRSsweDAxNCkpCisrI2RlZmluZSBPTUFQX0hTTU1DX0NPTgkJ KCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIChPTUFQX0hTTU1DMV9CQVNFKzB4MDJDKSkKKysj ZGVmaW5lIE9NQVBfSFNNTUNfQkxLCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgKE9NQVBf SFNNTUMxX0JBU0UrMHgxMDQpKQorKyNkZWZpbmUgT01BUF9IU01NQ19BUkcJCSgqKHZvbGF0aWxl IHVuc2lnbmVkIGludCAqKSAoT01BUF9IU01NQzFfQkFTRSsweDEwOCkpCisrI2RlZmluZSBPTUFQ X0hTTU1DX0NNRAkJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIChPTUFQX0hTTU1DMV9CQVNF KzB4MTBDKSkKKysjZGVmaW5lIE9NQVBfSFNNTUNfUlNQMTAJKCoodm9sYXRpbGUgdW5zaWduZWQg aW50ICopIChPTUFQX0hTTU1DMV9CQVNFKzB4MTEwKSkKKysjZGVmaW5lIE9NQVBfSFNNTUNfUlNQ MzIJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIChPTUFQX0hTTU1DMV9CQVNFKzB4MTE0KSkK KysjZGVmaW5lIE9NQVBfSFNNTUNfUlNQNTQJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIChP TUFQX0hTTU1DMV9CQVNFKzB4MTE4KSkKKysjZGVmaW5lIE9NQVBfSFNNTUNfUlNQNzYJKCoodm9s YXRpbGUgdW5zaWduZWQgaW50ICopIChPTUFQX0hTTU1DMV9CQVNFKzB4MTFDKSkKKysjZGVmaW5l IE9NQVBfSFNNTUNfREFUQQkJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIChPTUFQX0hTTU1D MV9CQVNFKzB4MTIwKSkKKysjZGVmaW5lIE9NQVBfSFNNTUNfUFNUQVRFCSgqKHZvbGF0aWxlIHVu c2lnbmVkIGludCAqKSAoT01BUF9IU01NQzFfQkFTRSsweDEyNCkpCisrI2RlZmluZSBPTUFQX0hT TU1DX0hDVEwJCSgqKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqKSAoT01BUF9IU01NQzFfQkFTRSsw eDEyOCkpCisrI2RlZmluZSBPTUFQX0hTTU1DX1NZU0NUTAkoKih2b2xhdGlsZSB1bnNpZ25lZCBp bnQgKikgKE9NQVBfSFNNTUMxX0JBU0UrMHgxMkMpKQorKyNkZWZpbmUgT01BUF9IU01NQ19TVEFU CQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgKE9NQVBfSFNNTUMxX0JBU0UrMHgxMzApKQor KyNkZWZpbmUgT01BUF9IU01NQ19JRQkJKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIChPTUFQ X0hTTU1DMV9CQVNFKzB4MTM0KSkKKysjZGVmaW5lIE9NQVBfSFNNTUNfQ0FQQQkJKCoodm9sYXRp bGUgdW5zaWduZWQgaW50ICopIChPTUFQX0hTTU1DMV9CQVNFKzB4MTQwKSkKKysKKysvKiBUMiBS ZWdpc3RlciBkZWZpbml0aW9ucyAqLworKyNkZWZpbmUgQ09OVFJPTF9QQklBU19MSVRFCSgqKHZv bGF0aWxlIHVuc2lnbmVkIGludCAqKSAweDRBMTAwNjAwKQorKyNkZWZpbmUgQ09OVFJPTF9DT05G X01NQzEgICAgICAgKCoodm9sYXRpbGUgdW5zaWduZWQgaW50ICopIDB4NEExMDA2MjgpCisrCisr LyoKKysgKiBPTUFQIEhTIE1NQyBCaXQgZGVmaW5pdGlvbnMKKysgKi8KKysjZGVmaW5lIE1NQ19T T0ZUUkVTRVQJCSgweDEgPDwgMSkKKysjZGVmaW5lIFJFU0VURE9ORQkJKDB4MSA8PCAwKQorKyNk ZWZpbmUgTk9PUEVORFJBSU4JCSgweDAgPDwgMCkKKysjZGVmaW5lIE9QRU5EUkFJTgkJKDB4MSA8 PCAwKQorKyNkZWZpbmUgT0QJCQkoMHgxIDw8IDApCisrI2RlZmluZSBJTklUX05PSU5JVAkJKDB4 MCA8PCAxKQorKyNkZWZpbmUgSU5JVF9JTklUU1RSRUFNCQkoMHgxIDw8IDEpCisrI2RlZmluZSBI Ul9OT0hPU1RSRVNQCQkoMHgwIDw8IDIpCisrI2RlZmluZSBTVFJfQkxPQ0sgCQkoMHgwIDw8IDMp CisrI2RlZmluZSBNT0RFX0ZVTkMJCSgweDAgPDwgNCkKKysjZGVmaW5lIERXOF8xXzRCSVRNT0RF IAkJKDB4MCA8PCA1KQorKyNkZWZpbmUgTUlUX0NUTwkJCSgweDAgPDwgNikKKysjZGVmaW5lIENE UF9BQ1RJVkVISUdICQkoMHgwIDw8IDcpCisrI2RlZmluZSBXUFBfQUNUSVZFSElHSCAJCSgweDAg PDwgOCkKKysjZGVmaW5lIFJFU0VSVkVEX01BU0sJCSgweDMgPDwgOSkKKysjZGVmaW5lIENUUExf TU1DX1NEIAkJKDB4MCA8PCAxMSkKKysjZGVmaW5lIEJMRU5fNTEyQllURVNMRU4JKDB4MjAwIDw8 IDApCisrI2RlZmluZSBOQkxLX1NUUENOVAkJKDB4MCA8PCAxNikKKysjZGVmaW5lIERFX0RJU0FC TEUJCSgweDAgPDwgMCkKKysjZGVmaW5lIEJDRV9ESVNBQkxFCQkoMHgwIDw8IDEpCisrI2RlZmlu ZSBBQ0VOX0RJU0FCTEUJCSgweDAgPDwgMikKKysjZGVmaW5lIERESVJfT0ZGU0VUCQkoNCkKKysj ZGVmaW5lIERESVJfTUFTSwkJKDB4MSA8PCA0KQorKyNkZWZpbmUgRERJUl9XUklURQkJKDB4MCA8 PCA0KQorKyNkZWZpbmUgRERJUl9SRUFECQkoMHgxIDw8IDQpCisrI2RlZmluZSBNU0JTX1NHTEVC TEsJCSgweDAgPDwgNSkKKysjZGVmaW5lIFJTUF9UWVBFX09GRlNFVAkJKDE2KQorKyNkZWZpbmUg UlNQX1RZUEVfTUFTSwkJKDB4MyA8PCAxNikKKysjZGVmaW5lIFJTUF9UWVBFX05PUlNQCQkoMHgw IDw8IDE2KQorKyNkZWZpbmUgUlNQX1RZUEVfTEdIVDEzNgkoMHgxIDw8IDE2KQorKyNkZWZpbmUg UlNQX1RZUEVfTEdIVDQ4CQkoMHgyIDw8IDE2KQorKyNkZWZpbmUgUlNQX1RZUEVfTEdIVDQ4Qgko MHgzIDw8IDE2KQorKyNkZWZpbmUgQ0NDRV9OT0NIRUNLCQkoMHgwIDw8IDE5KQorKyNkZWZpbmUg Q0NDRV9DSEVDSwkJKDB4MSA8PCAxOSkKKysjZGVmaW5lIENJQ0VfTk9DSEVDSwkJKDB4MCA8PCAy MCkKKysjZGVmaW5lIENJQ0VfQ0hFQ0sJCSgweDEgPDwgMjApCisrI2RlZmluZSBEUF9PRkZTRVQJ CSgyMSkKKysjZGVmaW5lIERQX01BU0sJCQkoMHgxIDw8IDIxKQorKyNkZWZpbmUgRFBfTk9fREFU QQkJKDB4MCA8PCAyMSkKKysjZGVmaW5lIERQX0RBVEEJCQkoMHgxIDw8IDIxKQorKyNkZWZpbmUg Q01EX1RZUEVfTk9STUFMCQkoMHgwIDw8IDIyKQorKyNkZWZpbmUgSU5ERVhfT0ZGU0VUCQkoMjQp CisrI2RlZmluZSBJTkRFWF9NQVNLCQkoMHgzZiA8PCAyNCkKKysjZGVmaW5lIElOREVYKGkpCQko aSA8PCAyNCkKKysjZGVmaW5lIERBVElfTUFTSwkJKDB4MSA8PCAxKQorKyNkZWZpbmUgREFUSV9D TURESVMJCSgweDEgPDwgMSkKKysjZGVmaW5lIERUV18xX0JJVE1PREUJCSgweDAgPDwgMSkKKysj ZGVmaW5lIERUV180X0JJVE1PREUJCSgweDEgPDwgMSkKKysjZGVmaW5lIFNEQlBfUFdST0ZGCQko MHgwIDw8IDgpCisrI2RlZmluZSBTREJQX1BXUk9OCQkoMHgxIDw8IDgpCisrI2RlZmluZSBTRFZT XzFWOAkJKDB4NSA8PCA5KQorKyNkZWZpbmUgU0RWU18zVjAJCSgweDYgPDwgOSkKKysjZGVmaW5l IElDRV9NQVNLCQkoMHgxIDw8IDApCisrI2RlZmluZSBJQ0VfU1RPUAkJKDB4MCA8PCAwKQorKyNk ZWZpbmUgSUNTX01BU0sJCSgweDEgPDwgMSkKKysjZGVmaW5lIElDU19OT1RSRUFEWQkJKDB4MCA8 PCAxKQorKyNkZWZpbmUgSUNFX09TQ0lMTEFURQkJKDB4MSA8PCAwKQorKyNkZWZpbmUgQ0VOX01B U0sJCSgweDEgPDwgMikKKysjZGVmaW5lIENFTl9ESVNBQkxFCQkoMHgwIDw8IDIpCisrI2RlZmlu ZSBDRU5fRU5BQkxFCQkoMHgxIDw8IDIpCisrI2RlZmluZSBDTEtEX09GRlNFVAkJKDYpCisrI2Rl ZmluZSBDTEtEX01BU0sJCSgweDNGRiA8PCA2KQorKyNkZWZpbmUgRFRPX01BU0sJCSgweEYgPDwg MTYpCisrI2RlZmluZSBEVE9fMTVUSERUTwkJKDB4RSA8PCAxNikKKysjZGVmaW5lIFNPRlRSRVNF VEFMTAkJKDB4MSA8PCAyNCkKKysjZGVmaW5lIENDX01BU0sJCQkoMHgxIDw8IDApCisrI2RlZmlu ZSBUQ19NQVNLCQkJKDB4MSA8PCAxKQorKyNkZWZpbmUgQldSX01BU0sJCSgweDEgPDwgNCkKKysj ZGVmaW5lIEJSUl9NQVNLCQkoMHgxIDw8IDUpCisrI2RlZmluZSBFUlJJX01BU0sJCSgweDEgPDwg MTUpCisrI2RlZmluZSBJRV9DQwkJCSgweDAxIDw8IDApCisrI2RlZmluZSBJRV9UQwkJCSgweDAx IDw8IDEpCisrI2RlZmluZSBJRV9CV1IJCQkoMHgwMSA8PCA0KQorKyNkZWZpbmUgSUVfQlJSCQkJ KDB4MDEgPDwgNSkKKysjZGVmaW5lIElFX0NUTwkJCSgweDAxIDw8IDE2KQorKyNkZWZpbmUgSUVf Q0NSQwkJCSgweDAxIDw8IDE3KQorKyNkZWZpbmUgSUVfQ0VCCQkJKDB4MDEgPDwgMTgpCisrI2Rl ZmluZSBJRV9DSUUJCQkoMHgwMSA8PCAxOSkKKysjZGVmaW5lIElFX0RUTwkJCSgweDAxIDw8IDIw KQorKyNkZWZpbmUgSUVfRENSQwkJCSgweDAxIDw8IDIxKQorKyNkZWZpbmUgSUVfREVCCQkJKDB4 MDEgPDwgMjIpCisrI2RlZmluZSBJRV9DRVJSCQkJKDB4MDEgPDwgMjgpCisrI2RlZmluZSBJRV9C QURBCQkJKDB4MDEgPDwgMjkpCisrCisrI2RlZmluZSBWUzMwXzNWMFNVUAkJKDEgPDwgMjUpCisr I2RlZmluZSBWUzE4XzFWOFNVUAkJKDEgPDwgMjYpCisrCisrLyogRHJpdmVyIGRlZmluaXRpb25z ICovCisrI2RlZmluZSBNTUNTRF9TRUNUT1JfU0laRQkoNTEyKQorKyNkZWZpbmUgTU1DX0NBUkQJ CTAKKysjZGVmaW5lIFNEX0NBUkQJCQkxCisrI2RlZmluZSBCWVRFX01PREUJCTAKKysjZGVmaW5l IFNFQ1RPUl9NT0RFCQkxCisrI2RlZmluZSBDTEtfSU5JVFNFUQkJMAorKyNkZWZpbmUgQ0xLXzQw MEtIWgkJMQorKyNkZWZpbmUgQ0xLX01JU0MJCTIKKysKKyt0eXBlZGVmIHN0cnVjdCB7CisrCXVu c2lnbmVkIGludCBjYXJkX3R5cGU7CisrCXVuc2lnbmVkIGludCB2ZXJzaW9uOworKwl1bnNpZ25l ZCBpbnQgbW9kZTsKKysJdW5zaWduZWQgaW50IHNpemU7CisrCXVuc2lnbmVkIGludCBSQ0E7Cisr fSBtbWNfY2FyZF9kYXRhOworKworKyNkZWZpbmUgbW1jX3JlZ19vdXQoYWRkciwgbWFzaywgdmFs KSBcCisrCShhZGRyKSA9ICgoKGFkZHIpKSAmICh+KG1hc2spKSApIHwgKCAodmFsKSAmIChtYXNr KSk7CisrCisrI2VuZGlmCQkJCS8qIE1NQ19IT1NUX0RFRklOSVRJT05TX0ggKi8KK2RpZmYgLXVO ciB4LWxvYWQtZjI0MzkzOC5vcmlnL2luY2x1ZGUvYXNtL2FyY2gtb21hcDQvbXV4LmggeC1sb2Fk LWYyNDM5MzgvaW5jbHVkZS9hc20vYXJjaC1vbWFwNC9tdXguaAorLS0tIHgtbG9hZC1mMjQzOTM4 Lm9yaWcvaW5jbHVkZS9hc20vYXJjaC1vbWFwNC9tdXguaAkxOTY5LTEyLTMxIDIxOjAwOjAwLjAw MDAwMDAwMCAtMDMwMAorKysrIHgtbG9hZC1mMjQzOTM4L2luY2x1ZGUvYXNtL2FyY2gtb21hcDQv bXV4LmgJMjAxMi0wNi0wNyAxNDo0NTozOS40NTc2NDg2NjcgLTAzMDAKK0BAIC0wLDAgKzEsMzky IEBACisrLyogQ29weXJpZ2h0IDIwMDkKKysgKiBUZXhhcyBJbnN0cnVtZW50cywgPHd3dy50aS5j b20+CisrICogU3llZCBSYWZpdWRkaW4gPHJhZml1ZGRpbi5zeWVkQHRpLmNvbT4KKysgKgorKyAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcworKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisrICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKysgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl bXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisrICogTUEgMDIxMTEtMTMwNyBVU0EKKysg Ki8KKysjaWZuZGVmIF9PTUFQNDQzMF9NVVhfSF8KKysjZGVmaW5lIF9PTUFQNDQzMF9NVVhfSF8K KysKKysvKgorKyAqIE9GRl9QRCAgICAgICAtIE9mZiBtb2RlIHB1bGwgdHlwZSBkb3duCisrICog T0ZGX1BVICAgICAgIC0gT2ZmIG1vZGUgcHVsbCB0eXBlIHVwCisrICogT0ZGX09VVF9QVEQgIC0g T2ZmIE1vZGUgTXV4IGxvdyBmb3IgT1VUCisrICogT0ZGX09VVF9QVFUgIC0gT2ZmIE1vZGUgTXV4 IGhpZ2ggZm9yIE9VVAorKyAqIE9GRl9JTiAgICAgICAtIE9mZiBNb2RlIE11eCBzZXQgdG8gSU4K KysgKiBPRkZfT1VUICAgICAgLSBPZmYgTW9kZSBNdXggc2V0IHRvIE9VVAorKyAqIE9GRl9FTiAg ICAgICAtIE9mZiBNb2RlIE11eCBFbmFibGUKKysgKiBJRU4gICAgICAgICAgLSBJbnB1dCBFbmFi bGUKKysgKiBJRElTICAgICAgICAgLSBJbnB1dCBEaXNhYmxlCisrICogUFREICAgICAgICAgIC0g UHVsbCB0eXBlIERvd24KKysgKiBQVFUgICAgICAgICAgLSBQdWxsIHR5cGUgVXAKKysgKiBESVMg ICAgICAgICAgLSBQdWxsIHR5cGUgc2VsZWN0aW9uIGlzIGluYWN0aXZlCisrICogRU4gICAgICAg ICAgIC0gUHVsbCB0eXBlIHNlbGVjdGlvbiBpcyBhY3RpdmUKKysgKiBNMCAgICAgICAgICAgLSBN b2RlIDAKKysgKi8KKysjaWZkZWYgQ09ORklHX09GRl9QQURDT05GCisrI2RlZmluZSBPRkZfUEQg ICAgICAgICAgKDEgPDwgMTIpCisrI2RlZmluZSBPRkZfUFUgICAgICAgICAgKDMgPDwgMTIpCisr I2RlZmluZSBPRkZfT1VUX1BURCAgICAgKDAgPDwgMTApCisrI2RlZmluZSBPRkZfT1VUX1BUVSAg ICAgKDIgPDwgMTApCisrI2RlZmluZSBPRkZfSU4gICAgICAgICAgKDEgPDwgMTApCisrI2RlZmlu ZSBPRkZfT1VUICAgICAgICAgKDAgPDwgMTApCisrI2RlZmluZSBPRkZfRU4gICAgICAgICAgKDEg PDwgOSkKKysjZWxzZQorKyNkZWZpbmUgT0ZGX1BEICAgICAgICAgICgwIDw8IDEyKQorKyNkZWZp bmUgT0ZGX1BVICAgICAgICAgICgwIDw8IDEyKQorKyNkZWZpbmUgT0ZGX09VVF9QVEQgICAgICgw IDw8IDEwKQorKyNkZWZpbmUgT0ZGX09VVF9QVFUgICAgICgwIDw8IDEwKQorKyNkZWZpbmUgT0ZG X0lOICAgICAgICAgICgwIDw8IDEwKQorKyNkZWZpbmUgT0ZGX09VVCAgICAgICAgICgwIDw8IDEw KQorKyNkZWZpbmUgT0ZGX0VOICAgICAgICAgICgwIDw8IDkpCisrI2VuZGlmCisrCisrI2RlZmlu ZSBJRU4gICAgICAgICAgICAgKDEgPDwgOCkKKysjZGVmaW5lIElESVMgICAgICAgICAgICAoMCA8 PCA4KQorKyNkZWZpbmUgUFRVICAgICAgICAgICAgICgzIDw8IDMpCisrI2RlZmluZSBQVEQgICAg ICAgICAgICAgKDEgPDwgMykKKysjZGVmaW5lIEVOICAgICAgICAgICAgICAoMSA8PCAzKQorKyNk ZWZpbmUgRElTICAgICAgICAgICAgICgwIDw8IDMpCisrCisrI2RlZmluZSBNMCAgICAgICAgICAg ICAgMAorKyNkZWZpbmUgTTEgICAgICAgICAgICAgIDEKKysjZGVmaW5lIE0yICAgICAgICAgICAg ICAyCisrI2RlZmluZSBNMyAgICAgICAgICAgICAgMworKyNkZWZpbmUgTTQgICAgICAgICAgICAg IDQKKysjZGVmaW5lIE01ICAgICAgICAgICAgICA1CisrI2RlZmluZSBNNiAgICAgICAgICAgICAg NgorKyNkZWZpbmUgTTcgICAgICAgICAgICAgIDcKKysKKysjaWZkZWYgQ09ORklHX09GRl9QQURD T05GCisrI2RlZmluZSBPRkZfSU5fUEQgICAgICAgKE9GRl9QRCB8IE9GRl9JTiB8IE9GRl9FTikK KysjZGVmaW5lIE9GRl9JTl9QVSAgICAgICAoT0ZGX1BVIHwgT0ZGX0lOIHwgT0ZGX0VOKQorKyNk ZWZpbmUgT0ZGX09VVF9QRCAgICAgIChPRkZfT1VUX1BURCB8IE9GRl9PVVQgfCBPRkZfRU4pCisr I2RlZmluZSBPRkZfT1VUX1BVICAgICAgKE9GRl9PVVRfUFRVIHwgT0ZGX09VVCB8IE9GRl9FTikK KysjZWxzZQorKyNkZWZpbmUgT0ZGX0lOX1BEICAgICAgIDAKKysjZGVmaW5lIE9GRl9JTl9QVSAg ICAgICAwCisrI2RlZmluZSBPRkZfT1VUX1BEICAgICAgMAorKyNkZWZpbmUgT0ZGX09VVF9QVSAg ICAgIDAKKysjZW5kaWYgLyogI2lmZGVmIENPTkZJR19PRkZfUEFEQ09ORiAqLworKworKy8qCisr ICogVG8gZ2V0IHRoZSBhY3R1YWwgYWRkcmVzcyB0aGUgb2Zmc2V0IGhhcyB0byBhZGRlZAorKyAq IHdpdGggT01BUDQ0WFhfQ1RSTF9CQVNFIHRvIGdldCB0aGUgYWN0dWFsIGFkZHJlc3MKKysgKi8K KysKKysvKiBPTUFQNCBTUEVDSUZJQyBQQURDT05GIFJFR0lTVEVSUyAqLworKworKyNkZWZpbmUg Q09OVFJPTF9QQURDT05GX0NPUkVfUkVWSVNJT04JCTB4MDAwMAorKyNkZWZpbmUgQ09OVFJPTF9Q QURDT05GX0NPUkVfSFdJTkZPCQkweDAwMDQKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9DT1JF X1NZU0NPTkZJRwkJMHgwMDEwCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfR1BNQ19BRDAJCTB4 MDA0MAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQTUNfQUQxCQkweDAwNDIKKysjZGVmaW5l IENPTlRST0xfUEFEQ09ORl9HUE1DX0FEMgkJMHgwMDQ0CisrI2RlZmluZSBDT05UUk9MX1BBRENP TkZfR1BNQ19BRDMJCTB4MDA0NgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQTUNfQUQ0CQkw eDAwNDgKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9HUE1DX0FENQkJMHgwMDRBCisrI2RlZmlu ZSBDT05UUk9MX1BBRENPTkZfR1BNQ19BRDYJCTB4MDA0QworKyNkZWZpbmUgQ09OVFJPTF9QQURD T05GX0dQTUNfQUQ3CQkweDAwNEUKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9HUE1DX0FEOAkJ MHgwMDUwCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfR1BNQ19BRDkJCTB4MDA1MgorKyNkZWZp bmUgQ09OVFJPTF9QQURDT05GX0dQTUNfQUQxMAkJMHgwMDU0CisrI2RlZmluZSBDT05UUk9MX1BB RENPTkZfR1BNQ19BRDExCQkweDAwNTYKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9HUE1DX0FE MTIJCTB4MDA1OAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQTUNfQUQxMwkJMHgwMDVBCisr I2RlZmluZSBDT05UUk9MX1BBRENPTkZfR1BNQ19BRDE0CQkweDAwNUMKKysjZGVmaW5lIENPTlRS T0xfUEFEQ09ORl9HUE1DX0FEMTUJCTB4MDA1RQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQ TUNfQTE2CQkweDAwNjAKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9HUE1DX0ExNwkJMHgwMDYy CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfR1BNQ19BMTgJCTB4MDA2NAorKyNkZWZpbmUgQ09O VFJPTF9QQURDT05GX0dQTUNfQTE5CQkweDAwNjYKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9H UE1DX0EyMAkJMHgwMDY4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfR1BNQ19BMjEJCTB4MDA2 QQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQTUNfQTIyCQkweDAwNkMKKysjZGVmaW5lIENP TlRST0xfUEFEQ09ORl9HUE1DX0EyMwkJMHgwMDZFCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZf R1BNQ19BMjQJCTB4MDA3MAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQTUNfQTI1CQkweDAw NzIKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9HUE1DX05DUzAJCTB4MDA3NAorKyNkZWZpbmUg Q09OVFJPTF9QQURDT05GX0dQTUNfTkNTMQkJMHgwMDc2CisrI2RlZmluZSBDT05UUk9MX1BBRENP TkZfR1BNQ19OQ1MyCQkweDAwNzgKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9HUE1DX05DUzMJ CTB4MDA3QQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQTUNfTldQCQkweDAwN0MKKysjZGVm aW5lIENPTlRST0xfUEFEQ09ORl9HUE1DX0NMSwkJMHgwMDdFCisrI2RlZmluZSBDT05UUk9MX1BB RENPTkZfR1BNQ19OQURWX0FMRQkJMHgwMDgwCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfR1BN Q19OT0UJCTB4MDA4MgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQTUNfTldFCQkweDAwODQK KysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9HUE1DX05CRTBfQ0xFCQkweDAwODYKKysjZGVmaW5l IENPTlRST0xfUEFEQ09ORl9HUE1DX05CRTEJCTB4MDA4OAorKyNkZWZpbmUgQ09OVFJPTF9QQURD T05GX0dQTUNfV0FJVDAJCTB4MDA4QQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dQTUNfV0FJ VDEJCTB4MDA4QworKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0MyQ19EQVRBMTEJCTB4MDA4RQor KyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0MyQ19EQVRBMTIJCTB4MDA5MAorKyNkZWZpbmUgQ09O VFJPTF9QQURDT05GX0MyQ19EQVRBMTMJCTB4MDA5MgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05G X0MyQ19EQVRBMTQJCTB4MDA5NAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0MyQ19EQVRBMTUJ CTB4MDA5NgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0hETUlfSFBECQkweDAwOTgKKysjZGVm aW5lIENPTlRST0xfUEFEQ09ORl9IRE1JX0NFQwkJMHgwMDlBCisrI2RlZmluZSBDT05UUk9MX1BB RENPTkZfSERNSV9ERENfU0NMCQkweDAwOUMKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9IRE1J X0REQ19TREEJCTB4MDA5RQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0NTSTIxX0RYMAkJMHgw MEEwCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfQ1NJMjFfRFkwCQkweDAwQTIKKysjZGVmaW5l IENPTlRST0xfUEFEQ09ORl9DU0kyMV9EWDEJCTB4MDBBNAorKyNkZWZpbmUgQ09OVFJPTF9QQURD T05GX0NTSTIxX0RZMQkJMHgwMEE2CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfQ1NJMjFfRFgy CQkweDAwQTgKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9DU0kyMV9EWTIJCTB4MDBBQQorKyNk ZWZpbmUgQ09OVFJPTF9QQURDT05GX0NTSTIxX0RYMwkJMHgwMEFDCisrI2RlZmluZSBDT05UUk9M X1BBRENPTkZfQ1NJMjFfRFkzCQkweDAwQUUKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9DU0ky MV9EWDQJCTB4MDBCMAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0NTSTIxX0RZNAkJMHgwMEIy CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfQ1NJMjJfRFgwCQkweDAwQjQKKysjZGVmaW5lIENP TlRST0xfUEFEQ09ORl9DU0kyMl9EWTAJCTB4MDBCNgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05G X0NTSTIyX0RYMQkJMHgwMEI4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfQ1NJMjJfRFkxCQkw eDAwQkEKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9DQU1fU0hVVFRFUgkJMHgwMEJDCisrI2Rl ZmluZSBDT05UUk9MX1BBRENPTkZfQ0FNX1NUUk9CRQkJMHgwMEJFCisrI2RlZmluZSBDT05UUk9M X1BBRENPTkZfQ0FNX0dMT0JBTFJFU0VUCQkweDAwQzAKKysjZGVmaW5lIENPTlRST0xfUEFEQ09O Rl9VU0JCMV9VTFBJVExMX0NMSwkweDAwQzIKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VU0JC MV9VTFBJVExMX1NUUAkweDAwQzQKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VU0JCMV9VTFBJ VExMX0RJUgkweDAwQzYKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VU0JCMV9VTFBJVExMX05Y VAkweDAwQzgKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VU0JCMV9VTFBJVExMX0RBVDAJMHgw MENBCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVVNCQjFfVUxQSVRMTF9EQVQxCTB4MDBDQwor KyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1VTQkIxX1VMUElUTExfREFUMgkweDAwQ0UKKysjZGVm aW5lIENPTlRST0xfUEFEQ09ORl9VU0JCMV9VTFBJVExMX0RBVDMJMHgwMEQwCisrI2RlZmluZSBD T05UUk9MX1BBRENPTkZfVVNCQjFfVUxQSVRMTF9EQVQ0CTB4MDBEMgorKyNkZWZpbmUgQ09OVFJP TF9QQURDT05GX1VTQkIxX1VMUElUTExfREFUNQkweDAwRDQKKysjZGVmaW5lIENPTlRST0xfUEFE Q09ORl9VU0JCMV9VTFBJVExMX0RBVDYJMHgwMEQ2CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZf VVNCQjFfVUxQSVRMTF9EQVQ3CTB4MDBEOAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1VTQkIx X0hTSUNfREFUQQkJMHgwMERBCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVVNCQjFfSFNJQ19T VFJPQkUJMHgwMERDCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVVNCQzFfSUNVU0JfRFAJCTB4 MDBERQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1VTQkMxX0lDVVNCX0RNCQkweDAwRTAKKysj ZGVmaW5lIENPTlRST0xfUEFEQ09ORl9TRE1NQzFfQ0xLCQkweDAwRTIKKysjZGVmaW5lIENPTlRS T0xfUEFEQ09ORl9TRE1NQzFfQ01ECQkweDAwRTQKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9T RE1NQzFfREFUMAkJMHgwMEU2CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfU0RNTUMxX0RBVDEJ CTB4MDBFOAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1NETU1DMV9EQVQyCQkweDAwRUEKKysj ZGVmaW5lIENPTlRST0xfUEFEQ09ORl9TRE1NQzFfREFUMwkJMHgwMEVDCisrI2RlZmluZSBDT05U Uk9MX1BBRENPTkZfU0RNTUMxX0RBVDQJCTB4MDBFRQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05G X1NETU1DMV9EQVQ1CQkweDAwRjAKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9TRE1NQzFfREFU NgkJMHgwMEYyCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfU0RNTUMxX0RBVDcJCTB4MDBGNAor KyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0FCRV9NQ0JTUDJfQ0xLWAkJMHgwMEY2CisrI2RlZmlu ZSBDT05UUk9MX1BBRENPTkZfQUJFX01DQlNQMl9EUgkJMHgwMEY4CisrI2RlZmluZSBDT05UUk9M X1BBRENPTkZfQUJFX01DQlNQMl9EWAkJMHgwMEZBCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZf QUJFX01DQlNQMl9GU1gJCTB4MDBGQworKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0FCRV9NQ0JT UDFfQ0xLWAkJMHgwMEZFCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfQUJFX01DQlNQMV9EUgkJ MHgwMTAwCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfQUJFX01DQlNQMV9EWAkJMHgwMTAyCisr I2RlZmluZSBDT05UUk9MX1BBRENPTkZfQUJFX01DQlNQMV9GU1gJCTB4MDEwNAorKyNkZWZpbmUg Q09OVFJPTF9QQURDT05GX0FCRV9QRE1fVUxfREFUQQkJMHgwMTA2CisrI2RlZmluZSBDT05UUk9M X1BBRENPTkZfQUJFX1BETV9ETF9EQVRBCQkweDAxMDgKKysjZGVmaW5lIENPTlRST0xfUEFEQ09O Rl9BQkVfUERNX0ZSQU1FCQkweDAxMEEKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9BQkVfUERN X0xCX0NMSwkJMHgwMTBDCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfQUJFX0NMS1MJCTB4MDEw RQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0FCRV9ETUlDX0NMSzEJCTB4MDExMAorKyNkZWZp bmUgQ09OVFJPTF9QQURDT05GX0FCRV9ETUlDX0RJTjEJCTB4MDExMgorKyNkZWZpbmUgQ09OVFJP TF9QQURDT05GX0FCRV9ETUlDX0RJTjIJCTB4MDExNAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05G X0FCRV9ETUlDX0RJTjMJCTB4MDExNgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1VBUlQyX0NU UwkJMHgwMTE4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVUFSVDJfUlRTCQkweDAxMUEKKysj ZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VQVJUMl9SWAkJMHgwMTFDCisrI2RlZmluZSBDT05UUk9M X1BBRENPTkZfVUFSVDJfVFgJCTB4MDExRQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0hEUV9T SU8JCQkweDAxMjAKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9JMkMxX1NDTAkJMHgwMTIyCisr I2RlZmluZSBDT05UUk9MX1BBRENPTkZfSTJDMV9TREEJCTB4MDEyNAorKyNkZWZpbmUgQ09OVFJP TF9QQURDT05GX0kyQzJfU0NMCQkweDAxMjYKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9JMkMy X1NEQQkJMHgwMTI4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfSTJDM19TQ0wJCTB4MDEyQQor KyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0kyQzNfU0RBCQkweDAxMkMKKysjZGVmaW5lIENPTlRS T0xfUEFEQ09ORl9JMkM0X1NDTAkJMHgwMTJFCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfSTJD NF9TREEJCTB4MDEzMAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX01DU1BJMV9DTEsJCTB4MDEz MgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX01DU1BJMV9TT01JCQkweDAxMzQKKysjZGVmaW5l IENPTlRST0xfUEFEQ09ORl9NQ1NQSTFfU0lNTwkJMHgwMTM2CisrI2RlZmluZSBDT05UUk9MX1BB RENPTkZfTUNTUEkxX0NTMAkJMHgwMTM4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfTUNTUEkx X0NTMQkJMHgwMTNBCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfTUNTUEkxX0NTMgkJMHgwMTND CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfTUNTUEkxX0NTMwkJMHgwMTNFCisrI2RlZmluZSBD T05UUk9MX1BBRENPTkZfVUFSVDNfQ1RTX1JDVFgJCTB4MDE0MAorKyNkZWZpbmUgQ09OVFJPTF9Q QURDT05GX1VBUlQzX1JUU19TRAkJMHgwMTQyCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVUFS VDNfUlhfSVJSWAkJMHgwMTQ0CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVUFSVDNfVFhfSVJU WAkJMHgwMTQ2CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfU0RNTUM1X0NMSwkJMHgwMTQ4Cisr I2RlZmluZSBDT05UUk9MX1BBRENPTkZfU0RNTUM1X0NNRAkJMHgwMTRBCisrI2RlZmluZSBDT05U Uk9MX1BBRENPTkZfU0RNTUM1X0RBVDAJCTB4MDE0QworKyNkZWZpbmUgQ09OVFJPTF9QQURDT05G X1NETU1DNV9EQVQxCQkweDAxNEUKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9TRE1NQzVfREFU MgkJMHgwMTUwCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfU0RNTUM1X0RBVDMJCTB4MDE1Mgor KyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX01DU1BJNF9DTEsJCTB4MDE1NAorKyNkZWZpbmUgQ09O VFJPTF9QQURDT05GX01DU1BJNF9TSU1PCQkweDAxNTYKKysjZGVmaW5lIENPTlRST0xfUEFEQ09O Rl9NQ1NQSTRfU09NSQkJMHgwMTU4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfTUNTUEk0X0NT MAkJMHgwMTVBCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVUFSVDRfUlgJCTB4MDE1QworKyNk ZWZpbmUgQ09OVFJPTF9QQURDT05GX1VBUlQ0X1RYCQkweDAxNUUKKysjZGVmaW5lIENPTlRST0xf UEFEQ09ORl9VU0JCMl9VTFBJVExMX0NMSwkweDAxNjAKKysjZGVmaW5lIENPTlRST0xfUEFEQ09O Rl9VU0JCMl9VTFBJVExMX1NUUAkweDAxNjIKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VU0JC Ml9VTFBJVExMX0RJUgkweDAxNjQKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VU0JCMl9VTFBJ VExMX05YVAkweDAxNjYKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VU0JCMl9VTFBJVExMX0RB VDAJMHgwMTY4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVVNCQjJfVUxQSVRMTF9EQVQxCTB4 MDE2QQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1VTQkIyX1VMUElUTExfREFUMgkweDAxNkMK KysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9VU0JCMl9VTFBJVExMX0RBVDMJMHgwMTZFCisrI2Rl ZmluZSBDT05UUk9MX1BBRENPTkZfVVNCQjJfVUxQSVRMTF9EQVQ0CTB4MDE3MAorKyNkZWZpbmUg Q09OVFJPTF9QQURDT05GX1VTQkIyX1VMUElUTExfREFUNQkweDAxNzIKKysjZGVmaW5lIENPTlRS T0xfUEFEQ09ORl9VU0JCMl9VTFBJVExMX0RBVDYJMHgwMTc0CisrI2RlZmluZSBDT05UUk9MX1BB RENPTkZfVVNCQjJfVUxQSVRMTF9EQVQ3CTB4MDE3NgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05G X1VTQkIyX0hTSUNfREFUQQkJMHgwMTc4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVVNCQjJf SFNJQ19TVFJPQkUJMHgwMTdBCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVU5JUFJPX1RYMAkJ MHgwMTdDCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVU5JUFJPX1RZMAkJMHgwMTdFCisrI2Rl ZmluZSBDT05UUk9MX1BBRENPTkZfVU5JUFJPX1RYMQkJMHgwMTgwCisrI2RlZmluZSBDT05UUk9M X1BBRENPTkZfVU5JUFJPX1RZMQkJMHgwMTgyCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVU5J UFJPX1RYMgkJMHgwMTg0CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVU5JUFJPX1RZMgkJMHgw MTg2CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVU5JUFJPX1JYMAkJMHgwMTg4CisrI2RlZmlu ZSBDT05UUk9MX1BBRENPTkZfVU5JUFJPX1JZMAkJMHgwMThBCisrI2RlZmluZSBDT05UUk9MX1BB RENPTkZfVU5JUFJPX1JYMQkJMHgwMThDCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVU5JUFJP X1JZMQkJMHgwMThFCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVU5JUFJPX1JYMgkJMHgwMTkw CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfVU5JUFJPX1JZMgkJMHgwMTkyCisrI2RlZmluZSBD T05UUk9MX1BBRENPTkZfVVNCQTBfT1RHX0NFCQkweDAxOTQKKysjZGVmaW5lIENPTlRST0xfUEFE Q09ORl9VU0JBMF9PVEdfRFAJCTB4MDE5NgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1VTQkEw X09UR19ETQkJMHgwMTk4CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfRlJFRl9DTEsxX09VVAkJ MHgwMTlBCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfRlJFRl9DTEsyX09VVAkJMHgwMTlDCisr I2RlZmluZSBDT05UUk9MX1BBRENPTkZfU1lTX05JUlExCQkweDAxOUUKKysjZGVmaW5lIENPTlRS T0xfUEFEQ09ORl9TWVNfTklSUTIJCTB4MDFBMAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1NZ U19CT09UMAkJMHgwMUEyCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfU1lTX0JPT1QxCQkweDAx QTQKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9TWVNfQk9PVDIJCTB4MDFBNgorKyNkZWZpbmUg Q09OVFJPTF9QQURDT05GX1NZU19CT09UMwkJMHgwMUE4CisrI2RlZmluZSBDT05UUk9MX1BBRENP TkZfU1lTX0JPT1Q0CQkweDAxQUEKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9TWVNfQk9PVDUJ CTB4MDFBQworKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0RQTV9FTVUwCQkweDAxQUUKKysjZGVm aW5lIENPTlRST0xfUEFEQ09ORl9EUE1fRU1VMQkJMHgwMUIwCisrI2RlZmluZSBDT05UUk9MX1BB RENPTkZfRFBNX0VNVTIJCTB4MDFCMgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0RQTV9FTVUz CQkweDAxQjQKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9EUE1fRU1VNAkJMHgwMUI2CisrI2Rl ZmluZSBDT05UUk9MX1BBRENPTkZfRFBNX0VNVTUJCTB4MDFCOAorKyNkZWZpbmUgQ09OVFJPTF9Q QURDT05GX0RQTV9FTVU2CQkweDAxQkEKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9EUE1fRU1V NwkJMHgwMUJDCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfRFBNX0VNVTgJCTB4MDFCRQorKyNk ZWZpbmUgQ09OVFJPTF9QQURDT05GX0RQTV9FTVU5CQkweDAxQzAKKysjZGVmaW5lIENPTlRST0xf UEFEQ09ORl9EUE1fRU1VMTAJCTB4MDFDMgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0RQTV9F TVUxMQkJMHgwMUM0CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfRFBNX0VNVTEyCQkweDAxQzYK KysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9EUE1fRU1VMTMJCTB4MDFDOAorKyNkZWZpbmUgQ09O VFJPTF9QQURDT05GX0RQTV9FTVUxNAkJMHgwMUNBCisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZf RFBNX0VNVTE1CQkweDAxQ0MKKysjZGVmaW5lIENPTlRST0xfUEFEQ09ORl9EUE1fRU1VMTYJCTB4 MDFDRQorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0RQTV9FTVUxNwkJMHgwMUQwCisrI2RlZmlu ZSBDT05UUk9MX1BBRENPTkZfRFBNX0VNVTE4CQkweDAxRDIKKysjZGVmaW5lIENPTlRST0xfUEFE Q09ORl9EUE1fRU1VMTkJCTB4MDFENAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1dBS0VVUEVW RU5UXzAJCTB4MDFEOAorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1dBS0VVUEVWRU5UXzEJCTB4 MDFEQworKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1dBS0VVUEVWRU5UXzIJCTB4MDFFMAorKyNk ZWZpbmUgQ09OVFJPTF9QQURDT05GX1dBS0VVUEVWRU5UXzMJCTB4MDFFNAorKyNkZWZpbmUgQ09O VFJPTF9QQURDT05GX1dBS0VVUEVWRU5UXzQJCTB4MDFFOAorKyNkZWZpbmUgQ09OVFJPTF9QQURD T05GX1dBS0VVUEVWRU5UXzUJCTB4MDFFQworKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX1dBS0VV UEVWRU5UXzYJCTB4MDFGMAorKworKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX0dMT0JBTAkJCTB4 MDVBMgorKyNkZWZpbmUgQ09OVFJPTF9QQURDT05GX01PREUJCQkweDA1QTQKKysjZGVmaW5lIENP TlRST0xfU01BUlQxSU9fUEFEQ09ORl8wCQkweDA1QTgKKysjZGVmaW5lIENPTlRST0xfU01BUlQx SU9fUEFEQ09ORl8xCQkweDA1QUMKKysjZGVmaW5lIENPTlRST0xfU01BUlQySU9fUEFEQ09ORl8w CQkweDA1QjAKKysjZGVmaW5lIENPTlRST0xfU01BUlQySU9fUEFEQ09ORl8xCQkweDA1QjQKKysj ZGVmaW5lIENPTlRST0xfU01BUlQzSU9fUEFEQ09ORl8wCQkweDA1QjgKKysjZGVmaW5lIENPTlRS T0xfU01BUlQzSU9fUEFEQ09ORl8xCQkweDA1QkMKKysjZGVmaW5lIENPTlRST0xfU01BUlQzSU9f UEFEQ09ORl8yCQkweDA1QzAKKysjZGVmaW5lIENPTlRST0xfVVNCQl9IU0lDCQkJMHgwNUM0Cisr I2RlZmluZSBDT05UUk9MX1NMSU1CVVMJCQkJMHgwNUM4CisrI2RlZmluZSBDT05UUk9MX1BCSUFT TElURQkJCTB4MDYwMAorKyNkZWZpbmUgQ09OVFJPTF9JMkNfMAkJCQkweDA2MDQKKysjZGVmaW5l IENPTlRST0xfQ0FNRVJBX1JYCQkJMHgwNjA4CisrI2RlZmluZSBDT05UUk9MX0FWREFDCQkJCTB4 MDYwQworKyNkZWZpbmUgQ09OVFJPTF9IRE1JX1RYX1BIWQkJCTB4MDYxMAorKyNkZWZpbmUgQ09O VFJPTF9NTUMyCQkJCTB4MDYxNAorKyNkZWZpbmUgQ09OVFJPTF9EU0lQSFkJCQkJMHgwNjE4Cisr I2RlZmluZSBDT05UUk9MX01DQlNQTFAJCQkJMHgwNjFDCisrI2RlZmluZSBDT05UUk9MX1VTQjJQ SFlDT1JFCQkJMHgwNjIwCisrI2RlZmluZSBDT05UUk9MX0kyQ18xCQkJCTB4MDYyNAorKyNkZWZp bmUgQ09OVFJPTF9NTUMxCQkJCTB4MDYyOAorKyNkZWZpbmUgQ09OVFJPTF9IU0kJCQkJMHgwNjJD CisrI2RlZmluZSBDT05UUk9MX1VTQgkJCQkweDA2MzAKKysjZGVmaW5lIENPTlRST0xfSERRCQkJ CTB4MDYzNAorKyNkZWZpbmUgQ09OVFJPTF9MUEREUjJJTzFfMAkJCTB4MDYzOAorKyNkZWZpbmUg Q09OVFJPTF9MUEREUjJJTzFfMQkJCTB4MDYzQworKyNkZWZpbmUgQ09OVFJPTF9MUEREUjJJTzFf MgkJCTB4MDY0MAorKyNkZWZpbmUgQ09OVFJPTF9MUEREUjJJTzFfMwkJCTB4MDY0NAorKyNkZWZp bmUgQ09OVFJPTF9MUEREUjJJTzJfMAkJCTB4MDY0OAorKyNkZWZpbmUgQ09OVFJPTF9MUEREUjJJ TzJfMQkJCTB4MDY0QworKyNkZWZpbmUgQ09OVFJPTF9MUEREUjJJTzJfMgkJCTB4MDY1MAorKyNk ZWZpbmUgQ09OVFJPTF9MUEREUjJJTzJfMwkJCTB4MDY1NAorKyNkZWZpbmUgQ09OVFJPTF9CVVNf SE9MRAkJCTB4MDY1OAorKyNkZWZpbmUgQ09OVFJPTF9DMkMJCQkJMHgwNjVDCisrI2RlZmluZSBD T05UUk9MX0NPUkVfQ09OVFJPTF9TUEFSRV9SVwkJMHgwNjYwCisrI2RlZmluZSBDT05UUk9MX0NP UkVfQ09OVFJPTF9TUEFSRV9SCQkweDA2NjQKKysjZGVmaW5lIENPTlRST0xfQ09SRV9DT05UUk9M X1NQQVJFX1JfQzAJCTB4MDY2OAorKyNkZWZpbmUgQ09OVFJPTF9FRlVTRV8xCQkJCTB4MDcwMAor KyNkZWZpbmUgQ09OVFJPTF9FRlVTRV8yCQkJCTB4MDcwNAorKyNkZWZpbmUgQ09OVFJPTF9FRlVT RV8zCQkJCTB4MDcwOAorKyNkZWZpbmUgQ09OVFJPTF9FRlVTRV80CQkJCTB4MDcwQworKworKyNk ZWZpbmUgQ09OVFJPTF9QQURDT05GX1dLVVBfUkVWSVNJT04JCTB4MDAwMAorKyNkZWZpbmUgQ09O VFJPTF9QQURDT05GX1dLVVBfSFdJTkZPCQkweDAwMDQKKysjZGVmaW5lIENPTlRST0xfUEFEQ09O Rl9XS1VQX1NZU0NPTkZJRwkJMHgwMDEwCisrI2RlZmluZSBDT05UUk9MX1dLVVBfUEFEMF9TSU1f SU8JCTB4MDA0MAorKyNkZWZpbmUgQ09OVFJPTF9XS1VQX1BBRDFfU0lNX0NMSwkJMHgwMDQyCisr I2RlZmluZSBDT05UUk9MX1dLVVBfUEFEMF9TSU1fUkVTRVQJCTB4MDA0NAorKyNkZWZpbmUgQ09O VFJPTF9XS1VQX1BBRDFfU0lNX0NECQkweDAwNDYKKysjZGVmaW5lIENPTlRST0xfV0tVUF9QQUQw X1NJTV9QV1JDVFJMCQkweDAwNDgKKysjZGVmaW5lIENPTlRST0xfV0tVUF9QQUQxX1NSX1NDTAkJ MHgwMDRBCisrI2RlZmluZSBDT05UUk9MX1dLVVBfUEFEMF9TUl9TREEJCTB4MDA0QworKyNkZWZp bmUgQ09OVFJPTF9XS1VQX1BBRDFfRlJFRl9YVEFMX0lOCQkweDAwNEUKKysjZGVmaW5lIENPTlRS T0xfV0tVUF9QQUQwX0ZSRUZfU0xJQ0VSX0lOCTB4MDA1MAorKyNkZWZpbmUgQ09OVFJPTF9XS1VQ X1BBRDFfRlJFRl9DTEtfSU9SRVEJMHgwMDUyCisrI2RlZmluZSBDT05UUk9MX1dLVVBfUEFEMF9G UkVGX0NMSzBfT1VUCQkweDAwNTQKKysjZGVmaW5lIENPTlRST0xfV0tVUF9QQUQxX0ZSRUZfQ0xL M19SRVEJCTB4MDA1NgorKyNkZWZpbmUgQ09OVFJPTF9XS1VQX1BBRDBfRlJFRl9DTEszX09VVAkJ MHgwMDU4CisrI2RlZmluZSBDT05UUk9MX1dLVVBfUEFEMV9GUkVGX0NMSzRfUkVRCQkweDAwNUEK KysjZGVmaW5lIENPTlRST0xfV0tVUF9QQUQwX0ZSRUZfQ0xLNF9PVVQJCTB4MDA1QworKyNkZWZp bmUgQ09OVFJPTF9XS1VQX1BBRDFfU1lTXzMySwkJMHgwMDVFCisrI2RlZmluZSBDT05UUk9MX1dL VVBfUEFEMF9TWVNfTlJFU1BXUk9OCQkweDAwNjAKKysjZGVmaW5lIENPTlRST0xfV0tVUF9QQUQx X1NZU19OUkVTV0FSTQkJMHgwMDYyCisrI2RlZmluZSBDT05UUk9MX1dLVVBfUEFEMF9TWVNfUFdS X1JFUQkJMHgwMDY0CisrI2RlZmluZSBDT05UUk9MX1dLVVBfUEFEMV9TWVNfUFdST05fUkVTRVQJ MHgwMDY2CisrI2RlZmluZSBDT05UUk9MX1dLVVBfUEFEMF9TWVNfQk9PVDYJCTB4MDA2OAorKyNk ZWZpbmUgQ09OVFJPTF9XS1VQX1BBRDFfU1lTX0JPT1Q3CQkweDAwNkEKKysjZGVmaW5lIENPTlRS T0xfV0tVUF9QQUQwX0pUQUdfTlRSU1QJCTB4MDA2QworKyNkZWZpbmUgQ09OVFJPTF9XS1VQX1BB RDFfSlRBR19UQ0sJCTB4MDA2RAorKyNkZWZpbmUgQ09OVFJPTF9XS1VQX1BBRDBfSlRBR19SVENL CQkweDAwNzAKKysjZGVmaW5lIENPTlRST0xfV0tVUF9QQUQxX0pUQUdfVE1TX1RNU0MJCTB4MDA3 MgorKyNkZWZpbmUgQ09OVFJPTF9XS1VQX1BBRDBfSlRBR19UREkJCTB4MDA3NAorKyNkZWZpbmUg Q09OVFJPTF9XS1VQX1BBRDFfSlRBR19URE8JCTB4MDA3NgorKyNkZWZpbmUgQ09OVFJPTF9QQURD T05GX1dBS0VVUEVWRU5UXzAJCTB4MDA3QworKyNkZWZpbmUgQ09OVFJPTF9TTUFSVDFOT1BNSU9f UEFEQ09ORl8wCQkweDA1QTAKKysjZGVmaW5lIENPTlRST0xfU01BUlQxTk9QTUlPX1BBRENPTkZf MQkJMHgwNUE0CisrI2RlZmluZSBDT05UUk9MX1BBRENPTkZfTU9ERQkJCTB4MDVBOAorKyNkZWZp bmUgQ09OVFJPTF9YVEFMX09TQ0lMTEFUT1IJCQkweDA1QUMKKysjZGVmaW5lIENPTlRST0xfQ09O VFJPTF9JMkNfMgkJCTB4MDYwNAorKyNkZWZpbmUgQ09OVFJPTF9DT05UUk9MX0pUQUcJCQkweDA2 MDgKKysjZGVmaW5lIENPTlRST0xfQ09OVFJPTF9TWVMJCQkweDA2MEMKKysjZGVmaW5lIENPTlRS T0xfV0tVUF9DT05UUk9MX1NQQVJFX1JXCQkweDA2MTQKKysjZGVmaW5lIENPTlRST0xfV0tVUF9D T05UUk9MX1NQQVJFX1IJCTB4MDYxOAorKyNkZWZpbmUgQ09OVFJPTF9XS1VQX0NPTlRST0xfU1BB UkVfUl9DMAkJMHgwNjFDCisrCisrI2VuZGlmCitkaWZmIC11TnIgeC1sb2FkLWYyNDM5Mzgub3Jp Zy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L29tYXA0NDMwLmggeC1sb2FkLWYyNDM5MzgvaW5jbHVk ZS9hc20vYXJjaC1vbWFwNC9vbWFwNDQzMC5oCistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9pbmNs dWRlL2FzbS9hcmNoLW9tYXA0L29tYXA0NDMwLmgJMTk2OS0xMi0zMSAyMTowMDowMC4wMDAwMDAw MDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L29tYXA0 NDMwLmgJMjAxMi0wNi0wNyAxNDo0NTozOS40NTc2NDg2NjcgLTAzMDAKK0BAIC0wLDAgKzEsMTM3 IEBACisrLyoKKysgKiAoQykgQ29weXJpZ2h0IDIwMDYtMjAwOQorKyAqIFRleGFzIEluc3RydW1l bnRzLCA8d3d3LnRpLmNvbT4KKysgKiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5j b20+CisrICogU3llZCBNb2hhbW1lZCBLaGFzaW0gPHgwa2hhc2ltQHRpLmNvbT4KKysgKgorKyAq IFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0 aGlzCisrICogcHJvamVjdC4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAqIHZlcnNpb24gMiBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKysgKgorKyAqIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrICogRm91bmRh dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKysgKiBNQSAw MjExMS0xMzA3IFVTQQorKyAqLworKworKyNpZm5kZWYgX09NQVA0NDMwX1NZU19IXworKyNkZWZp bmUgX09NQVA0NDMwX1NZU19IXworKworKyNpbmNsdWRlIDxhc20vYXJjaC9zaXplcy5oPgorKwor Ky8qCisrICogNDQzMCBzcGVjaWZpYyBTZWN0aW9uCisrICovCisrCisrLyogU3R1ZmYgb24gTDMg SW50ZXJjb25uZWN0ICovCisrI2RlZmluZSBTTVhfQVBFX0JBU0UJCQkweDY4MDAwMDAwCisrCisr LyogTDMgRmlyZXdhbGwgKi8KKysjZGVmaW5lIEFfUkVRSU5GT1BFUk0wCQkoU01YX0FQRV9CQVNF ICsgMHgwNTA0OCkKKysjZGVmaW5lIEFfUkVBRFBFUk0wCQkoU01YX0FQRV9CQVNFICsgMHgwNTA1 MCkKKysjZGVmaW5lIEFfV1JJVEVQRVJNMAkJKFNNWF9BUEVfQkFTRSArIDB4MDUwNTgpCisrCisr LyogR1BNQyAqLworKyNkZWZpbmUgT01BUDQ0WFhfR1BNQ19CQVNFCQkoMHg1MDAwMDAwMCkKKysK KysvKiBETU0gKi8KKysjZGVmaW5lIE9NQVA0NFhYX0RNTV9CQVNFCQkweDRFMDAwMDAwCisrCisr LyogU01TICovCisrI2RlZmluZSBPTUFQNDRYWF9TTVNfQkFTRSAgICAgICAgICAgICAgIDB4NkMw MDAwMDAKKysKKysvKiBTRFJDICovCisrI2RlZmluZSBPTUFQNDRYWF9TRFJDX0JBU0UgICAgICAg ICAgICAgIDB4NkQwMDAwMDAKKysKKysKKysvKgorKyAqIEw0IFBlcmlwaGVyYWxzIC0gTDQgV2Fr ZXVwIGFuZCBMNCBDb3JlIG5vdworKyAqLworKyNkZWZpbmUgT01BUDQ0WFhfQ09SRV9MNF9JT19C QVNFCTB4NEEwMDAwMDAKKysKKysjZGVmaW5lIE9NQVA0NFhYX1dBS0VVUF9MNF9JT19CQVNFCTB4 NEEzMDAwMDAKKysKKysjZGVmaW5lIE9NQVA0NFhYX0w0X1BFUgkJCTB4NDgwMDAwMDAKKysKKysj ZGVmaW5lIE9NQVA0NFhYX0w0X0lPX0JBU0UJCU9NQVA0NFhYX0NPUkVfTDRfSU9fQkFTRQorKwor Ky8qIENPTlRST0wgKi8KKysvLyNkZWZpbmUgT01BUDQ0WFhfQ1RSTF9CQVNFCQkoT01BUDQ0WFhf TDRfSU9fQkFTRSsweDIwMDApCisrI2RlZmluZSBPTUFQNDRYWF9DVFJMX0JBU0UJCTB4NGExMDAw MDAKKysKKysvKiBUQVAgaW5mb3JtYXRpb24gIGRvbnQga25vdyBmb3IgMzQzMCovCisrI2RlZmlu ZSBPTUFQNDRYWF9UQVBfQkFTRQkoMHg0OTAwMDAwMCkgLypnaXZpbmcgc29tZSBqdW5rIGZvciB2 aXJ0aW8gKi8KKysKKysvKiBVQVJUICovCisrI2RlZmluZSBPTUFQNDRYWF9VQVJUMQkJCShPTUFQ NDRYWF9MNF9QRVIrMHg2YTAwMCkKKysjZGVmaW5lIE9NQVA0NFhYX1VBUlQyCQkJKE9NQVA0NFhY X0w0X1BFUisweDZjMDAwKQorKyNkZWZpbmUgT01BUDQ0WFhfVUFSVDMJCQkoT01BUDQ0WFhfTDRf UEVSKzB4MjAwMDApCisrCisrLyogR2VuZXJhbCBQdXJwb3NlIFRpbWVycyAqLworKyNkZWZpbmUg T01BUDQ0WFhfR1BUMQkJCTB4NDgzMTgwMDAKKysjZGVmaW5lIE9NQVA0NFhYX0dQVDIJCQkweDQ4 MDMyMDAwCisrI2RlZmluZSBPTUFQNDRYWF9HUFQzCQkJMHg0ODAzNDAwMAorKyNkZWZpbmUgT01B UDQ0WFhfR1BUNAkJCTB4NDgwMzYwMDAKKysjZGVmaW5lIE9NQVA0NFhYX0dQVDUJCQkweDQwMTM4 MDAwCisrI2RlZmluZSBPTUFQNDRYWF9HUFQ2CQkJMHg0MDEzQTAwMAorKyNkZWZpbmUgT01BUDQ0 WFhfR1BUNwkJCTB4NDAxM0MwMDAKKysjZGVmaW5lIE9NQVA0NFhYX0dQVDgJCQkweDQwMTNFMDAw CisrI2RlZmluZSBPTUFQNDRYWF9HUFQ5CQkJMHg0ODA0MDAwMAorKyNkZWZpbmUgT01BUDQ0WFhf R1BUMTAJCQkweDQ4MDg2MDAwCisrI2RlZmluZSBPTUFQNDRYWF9HUFQxMQkJCTB4NDgwODgwMDAK KysjZGVmaW5lIE9NQVA0NFhYX0dQVDEyCQkJMHg0ODMwNDAwMAorKworKy8qIFdhdGNoRG9nIFRp bWVycyAoMSBzZWN1cmUsIDMgR1ApICovCisrI2RlZmluZSBXRDFfQkFTRQkJCSgweDRBMzIyMDAw KQorKyNkZWZpbmUgV0QyX0JBU0UJCQkoMHg0QTMxNDAwMCkKKysjZGVmaW5lIFdEM19CQVNFCQkJ KDB4NDAxMzAwMDApCisrCisrLyogMzJLVElNRVIgKi8KKysjZGVmaW5lIFNZTkNfMzJLVElNRVJf QkFTRQkJKDB4NDgzMjAwMDApCisrI2RlZmluZSBTMzJLX0NSCQkJCShTWU5DXzMyS1RJTUVSX0JB U0UrMHgxMCkKKysKKysvKgorKyAqIFNEUDQ0MzAgc3BlY2lmaWMgU2VjdGlvbgorKyAqLworKwor Ky8qCisrICogIFRoZSA0NDN4J3MgY2hpcCBzZWxlY3RzIGFyZSBwcm9ncmFtbWFibGUuICBUaGUg bWFzayBST00KKysgKiAgZG9lcyBjb25maWd1cmUgQ1MwIHRvIDB4MDgwMDAwMDAgYmVmb3JlIGRp c3BhdGNoLiAgU28sIGlmCisrICogIHlvdSB3YW50IHlvdXIgY29kZSB0byBsaXZlIGJlbG93IHRo YXQgYWRkcmVzcywgeW91IGhhdmUgdG8KKysgKiAgYmUgcHJlcGFyZWQgdG8ganVtcCB0aG91Z2gg aG9vcHMsIHRvIHJlc2V0IHRoZSBiYXNlIGFkZHJlc3MuCisrICogIFNhbWUgYXMgaW4gU0RQNDQz MAorKyAqLworKyNpZmRlZiBDT05GSUdfT01BUDQ0WFgKKysvKiBiYXNlIGFkZHJlc3MgZm9yIGlu ZGlyZWN0IHZlY3RvcnMgKGludGVybmFsIGJvb3QgbW9kZSkgKi8KKysjZGVmaW5lIFNSQU1fT0ZG U0VUMCAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMAorKyNkZWZpbmUgU1JBTV9PRkZTRVQx ICAgICAgICAgICAgICAgICAgICAweDAwMzAwMDAwCisrI2RlZmluZSBTUkFNX09GRlNFVDIgICAg ICAgICAgICAgICAgICAgIDB4MDAwMEQwMDAKKysjZGVmaW5lIFNSQU1fT0ZGU0VUMyAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDgwMAorKyNkZWZpbmUgU1JBTV9WRUNUX0NPREUgICAgICAgICAg ICAgICAgICAoU1JBTV9PRkZTRVQwfFNSQU1fT0ZGU0VUMXxTUkFNX09GRlNFVDJ8U1JBTV9PRkZT RVQzKQorKyNkZWZpbmUgTE9XX0xFVkVMX1NSQU1fU1RBQ0sgICAgICAgICAgICAweDQwMzBERkZD CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQoQ09ORklHXzQ0MzBTRFApCisrLyogRlBHQSBvbiBE ZWJ1ZyBib2FyZC4qLworKyMgZGVmaW5lIEVUSF9DT05UUk9MX1JFRwkJCShERUJVR19CQVNFKzB4 MzBiKQorKyMgZGVmaW5lIExBTl9SRVNFVF9SRUdJU1RFUgkJKERFQlVHX0JBU0UrMHgxYykKKysK KysjIGRlZmluZSBESVBfU1dJVENIX0lOUFVUX1JFRzIJCShERUJVR19CQVNFKzB4NjApCisrIyBk ZWZpbmUgTEVEX1JFR0lTVEVSCQkJKERFQlVHX0JBU0UrMHg0MCkKKysjIGRlZmluZSBGUEdBX1JF Vl9SRUdJU1RFUgkJKERFQlVHX0JBU0UrMHgxMCkKKysjIGRlZmluZSBFRVBST01fTUFJTl9CUkQJ CQkoREVCVUdfQkFTRSsweDEwMDAwKzB4MTgwMCkKKysjIGRlZmluZSBFRVBST01fQ09OTl9CUkQJ CQkoREVCVUdfQkFTRSsweDEwMDAwKzB4MTkwMCkKKysjIGRlZmluZSBFRVBST01fVUlfQlJECQkJ KERFQlVHX0JBU0UrMHgxMDAwMCsweDFBMDApCisrIyBkZWZpbmUgRUVQUk9NX01DQU1fQlJECQkJ KERFQlVHX0JBU0UrMHgxMDAwMCsweDFCMDApCisrIyBkZWZpbmUgRU5IQU5DRURfVUlfRUVfTkFN RQkJIjc1MC0yMDc1IgorKyNlbmRpZgorKworKyNlbmRpZiAgLyogX09NQVA0NDMwX1NZU19IXyAq LworZGlmZiAtdU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvaW5jbHVkZS9hc20vYXJjaC1vbWFwNC9y ZXYuaCB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L3Jldi5oCistLS0geC1s b2FkLWYyNDM5Mzgub3JpZy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L3Jldi5oCTE5NjktMTItMzEg MjE6MDA6MDAuMDAwMDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvaW5jbHVkZS9hc20v YXJjaC1vbWFwNC9yZXYuaAkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ1NzY0ODY2NyAtMDMwMAorQEAg LTAsMCArMSw0MSBAQAorKy8qCisrICogKEMpIENvcHlyaWdodCAyMDA2LTIwMDkKKysgKiBUZXhh cyBJbnN0cnVtZW50cywgPHd3dy50aS5jb20+CisrICoKKysgKiBSaWNoYXJkIFdvb2RydWZmIDxy LXdvb2RydWZmMkB0aS5jb20+CisrICogU3llZCBNb2hhbW1lZCBLaGFzaW0gPHgwa2hhc2ltQHRp LmNvbT4KKysgKgorKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBj b250cmlidXRlZCB0byB0aGlzCisrICogcHJvamVjdC4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor KyAqIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAq IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlCisrICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJv c3RvbiwKKysgKiBNQSAwMjExMS0xMzA3IFVTQQorKyAqLworKworKyNpZm5kZWYgX09NQVA0NFhY X1JFVl9IXworKyNkZWZpbmUgX09NQVA0NFhYX1JFVl9IXworKworKyNkZWZpbmUgQ0RCX0REUl9D T01CTyAgICAgICAgICAgICAgICAgICAvKiBjb21ibyBwYXJ0IG9uIGNwdSBkYXVnaHRlciBjYXJk ICovCisrI2RlZmluZSBDREJfRERSX0lQREIgICAgICAgICAgICAgICAgICAgIC8qIDJ4MTYgcGFy dHMgb24gZGF1Z2h0ZXIgY2FyZCAqLworKworKyNkZWZpbmUgRERSXzEwMAkJMTAwICAgICAgICAg ICAgIC8qIHR5cGUgZm91bmQgb24gbW9zdCBtZW0gZC1ib2FyZHMgKi8KKysjZGVmaW5lIEREUl8x MTEJCTExMSAgICAgICAgICAgICAvKiBzb21lIGNvbWJvIHBhcnRzICovCisrI2RlZmluZSBERFJf MTMzCQkxMzMgICAgICAgICAgICAgLyogbW9zdCBjb21ibywgc29tZSBtZW0gZC1ib2FyZHMgKi8K KysjZGVmaW5lIEREUl8xNjUJCTE2NSAgICAgICAgICAgICAvKiBmdXR1cmUgcGFydHMgKi8KKysK KysjZGVmaW5lIENQVV80NDMwCTB4NDQzMAorKworKyNkZWZpbmUgQ1BVXzQ0MzBfRVMxCTEKKysK KysjZW5kaWYKK2RpZmYgLXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2luY2x1ZGUvYXNtL2FyY2gt b21hcDQvc2l6ZXMuaCB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L3NpemVz LmgKKy0tLSB4LWxvYWQtZjI0MzkzOC5vcmlnL2luY2x1ZGUvYXNtL2FyY2gtb21hcDQvc2l6ZXMu aAkxOTY5LTEyLTMxIDIxOjAwOjAwLjAwMDAwMDAwMCAtMDMwMAorKysrIHgtbG9hZC1mMjQzOTM4 L2luY2x1ZGUvYXNtL2FyY2gtb21hcDQvc2l6ZXMuaAkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ1NzY0 ODY2NyAtMDMwMAorQEAgLTAsMCArMSw0OCBAQAorKy8qCisrICogVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICog dmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgor KyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCSBTZWUgdGhlCisrICogR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICogYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KysgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9u LCBNQSAgMDIxMTEtMTMwNwkgVVNBCisrICovCisrLyogIFNpemUgZGVmaW50aW9ucworKyAqICBD b3B5cmlnaHQgKEMpIEFSTSBMaW1pdGVkIDE5OTguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrICov CisrCisrI2lmbmRlZiBfX3NpemVzX2gKKysjZGVmaW5lIF9fc2l6ZXNfaAkJCTEKKysKKysvKiBo YW5keSBzaXplcyAqLworKyNkZWZpbmUgU1pfMUsJCQkJMHgwMDAwMDQwMAorKyNkZWZpbmUgU1pf NEsJCQkJMHgwMDAwMTAwMAorKyNkZWZpbmUgU1pfOEsJCQkJMHgwMDAwMjAwMAorKyNkZWZpbmUg U1pfMTZLCQkJCTB4MDAwMDQwMDAKKysjZGVmaW5lIFNaXzMySwkJCQkweDAwMDA4MDAwCisrI2Rl ZmluZSBTWl82NEsJCQkJMHgwMDAxMDAwMAorKyNkZWZpbmUgU1pfMTI4SwkJCQkweDAwMDIwMDAw CisrI2RlZmluZSBTWl8yNTZLCQkJCTB4MDAwNDAwMDAKKysjZGVmaW5lIFNaXzUxMksJCQkJMHgw MDA4MDAwMAorKworKyNkZWZpbmUgU1pfMU0JCQkJMHgwMDEwMDAwMAorKyNkZWZpbmUgU1pfMk0J CQkJMHgwMDIwMDAwMAorKyNkZWZpbmUgU1pfNE0JCQkJMHgwMDQwMDAwMAorKyNkZWZpbmUgU1pf OE0JCQkJMHgwMDgwMDAwMAorKyNkZWZpbmUgU1pfMTZNCQkJCTB4MDEwMDAwMDAKKysjZGVmaW5l IFNaXzMxTQkJCQkweDAxRjAwMDAwCisrI2RlZmluZSBTWl8zMk0JCQkJMHgwMjAwMDAwMAorKyNk ZWZpbmUgU1pfNjRNCQkJCTB4MDQwMDAwMDAKKysjZGVmaW5lIFNaXzEyOE0JCQkJMHgwODAwMDAw MAorKyNkZWZpbmUgU1pfMjU2TQkJCQkweDEwMDAwMDAwCisrI2RlZmluZSBTWl81MTJNCQkJCTB4 MjAwMDAwMDAKKysKKysjZGVmaW5lIFNaXzFHCQkJCTB4NDAwMDAwMDAKKysjZGVmaW5lIFNaXzJH CQkJCTB4ODAwMDAwMDAKKysKKysjZW5kaWYJLyogX19zaXplc19oICovCitkaWZmIC11TnIgeC1s b2FkLWYyNDM5Mzgub3JpZy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L3N5c19pbmZvLmggeC1sb2Fk LWYyNDM5MzgvaW5jbHVkZS9hc20vYXJjaC1vbWFwNC9zeXNfaW5mby5oCistLS0geC1sb2FkLWYy NDM5Mzgub3JpZy9pbmNsdWRlL2FzbS9hcmNoLW9tYXA0L3N5c19pbmZvLmgJMTk2OS0xMi0zMSAy MTowMDowMC4wMDAwMDAwMDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2FzbS9h cmNoLW9tYXA0L3N5c19pbmZvLmgJMjAxMi0wNi0wNyAxNDo0NTozOS40NTc2NDg2NjcgLTAzMDAK K0BAIC0wLDAgKzEsNzUgQEAKKysvKgorKyAqIChDKSBDb3B5cmlnaHQgMjAwNi0yMDA5CisrICog VGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cudGkuY29tPgorKyAqIFJpY2hhcmQgV29vZHJ1ZmYgPHIt d29vZHJ1ZmYyQHRpLmNvbT4KKysgKgorKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2Yg cGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisrICogcHJvamVjdC4KKysgKgorKyAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyAqIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCisrICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBT dWl0ZSAzMzAsIEJvc3RvbiwKKysgKiBNQSAwMjExMS0xMzA3IFVTQQorKyAqLworKworKyNpZm5k ZWYgX09NQVA0NFhYX1NZU19JTkZPX0hfCisrI2RlZmluZSBfT01BUDQ0WFhfU1lTX0lORk9fSF8K KysKKysjZGVmaW5lIFhEUl9QT1AJCTUgICAgICAvKiBwYWNrYWdlIG9uIHBhY2thZ2UgcGFydCAq LworKyNkZWZpbmUgU0RSX0RJU0NSRVRFCTQgICAgICAvKiAxMjhNIG1lbW9yeSBTRFIgbW9kdWxl Ki8KKysjZGVmaW5lIEREUl9TVEFDS0VECTMgICAgICAvKiBzdGFja2VkIHBhcnQgb24gMjQyMiAq LworKyNkZWZpbmUgRERSX0NPTUJPCTIgICAgICAvKiBjb21ibyBwYXJ0IG9uIGNwdSBkYXVnaHRl ciBjYXJkIChtZW5hbGFldXMpICovCisrI2RlZmluZSBERFJfRElTQ1JFVEUJMSAgICAgIC8qIDJ4 MTYgcGFydHMgb24gZGF1Z2h0ZXIgY2FyZCAqLworKworKyNkZWZpbmUgRERSXzEwMAkJMTAwICAg IC8qIHR5cGUgZm91bmQgb24gbW9zdCBtZW0gZC1ib2FyZHMgKi8KKysjZGVmaW5lIEREUl8xMTEJ CTExMSAgICAvKiBzb21lIGNvbWJvIHBhcnRzICovCisrI2RlZmluZSBERFJfMTMzCQkxMzMgICAg LyogbW9zdCBjb21ibywgc29tZSBtZW0gZC1ib2FyZHMgKi8KKysjZGVmaW5lIEREUl8xNjUJCTE2 NSAgICAvKiBmdXR1cmUgcGFydHMgKi8KKysKKysjZGVmaW5lIENQVV80NDMwCTB4NDQzMAorKwor Ky8qIDM0M3ggcmVhbCBoYXJkd2FyZToKKysgKiAgRVMxICAgICA9IHJldiAwCisrICovCisrCisr LyogMzQzeCBjb2RlIGRlZmluZXM6CisrICogRVMxICAgICA9IDArMSA9IDEKKysgKiBFUzEgICAg ID0gMSsxID0gMQorKyAqLworKyNkZWZpbmUgQ1BVXzQ0MzBfRVMxCQkxCisrCisrLyogQ3VycmVu dGx5IFZpcnRpbyBtb2RlbHMgdGhpcyBvbmUgKi8KKysjZGVmaW5lIENQVV80NDMwX0NISVBJRAkJ MHgwQjY4QTAwMAorKworKyNkZWZpbmUgR1BNQ19NVVhFRAkJMQorKyNkZWZpbmUgR1BNQ19OT05N VVhFRAkJMAorKworKyNkZWZpbmUgVFlQRV9OQU5ECQkweDgwMAkvKiBiaXQgcG9zIGZvciBuYW5k IGluIGdwbWMgcmVnICovCisrI2RlZmluZSBUWVBFX05PUgkJMHgwMDAKKysjZGVmaW5lIFRZUEVf T05FTkFORAkJMHg4MDAKKysKKysjZGVmaW5lIFdJRFRIXzhCSVQJCTB4MDAwMAorKyNkZWZpbmUg V0lEVEhfMTZCSVQJCTB4MTAwMAkvKiBiaXQgcG9zIGZvciAxNiBiaXQgaW4gZ3BtYyAqLworKwor KyNkZWZpbmUgSTJDX01FTkVMQVVTCQkweDcyCS8qIGkyYyBpZCBmb3IgY29tcGFuaW9uIGNoaXAg Ki8KKysjZGVmaW5lIEkyQ19UUklUT04yCQkweDRCCS8qIGFkZHJlcyBvZiBwb3dlciBncm91cCAq LworKworKyNkZWZpbmUgQk9PVF9GQVNUX1hJUAkJMHgxZgorKworKy8qIFNEUCBkZWZpbml0aW9u cyBhY2NvcmRpbmcgdG8gRlBHQSBSZXYuIElzIHRoaXMgT0s/PyAqLworKyNkZWZpbmUgU0RQXzQ0 MzBfVklSVElPCQkweDEKKysjZGVmaW5lIFNEUF80NDMwX1YxCQkweDIKKysKKysjZGVmaW5lIEJP QVJEXzQ0MzBfTEFCUkFET1IJMHg4MAorKyNkZWZpbmUgQk9BUkRfNDQzMF9MQUJSQURPUl9WMQkw eDEKKysKKysjZW5kaWYKK2RpZmYgLXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2luY2x1ZGUvYXNt L2FyY2gtb21hcDQvc3lzX3Byb3RvLmggeC1sb2FkLWYyNDM5MzgvaW5jbHVkZS9hc20vYXJjaC1v bWFwNC9zeXNfcHJvdG8uaAorLS0tIHgtbG9hZC1mMjQzOTM4Lm9yaWcvaW5jbHVkZS9hc20vYXJj aC1vbWFwNC9zeXNfcHJvdG8uaAkxOTY5LTEyLTMxIDIxOjAwOjAwLjAwMDAwMDAwMCAtMDMwMAor KysrIHgtbG9hZC1mMjQzOTM4L2luY2x1ZGUvYXNtL2FyY2gtb21hcDQvc3lzX3Byb3RvLmgJMjAx Mi0wNi0wNyAxNDo0NTozOS40NTc2NDg2NjcgLTAzMDAKK0BAIC0wLDAgKzEsNjAgQEAKKysvKgor KyAqIChDKSBDb3B5cmlnaHQgMjAwNC0yMDA5CisrICogVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cu dGkuY29tPgorKyAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KKysgKgor KyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyAqIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiAvUFVSUE9TRS4gIFNlZSB0 aGUKKysgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyAq CisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQ bGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisrICogTUEgMDIxMTEtMTMwNyBVU0EKKysgICovCisr I2lmbmRlZiBfT01BUDQ0WFhfU1lTX1BST1RPX0hfCisrI2RlZmluZSBfT01BUDQ0WFhfU1lTX1BS T1RPX0hfCisrCisrdm9pZCBwcmNtX2luaXQodm9pZCk7Cisrdm9pZCBwZXJfY2xvY2tzX2VuYWJs ZSh2b2lkKTsKKyt2b2lkIGNvbmZpZ3VyZV9jb3JlX2RwbGxfbm9fbG9jayh2b2lkKTsKKyt2b2lk IGxvY2tfY29yZV9kcGxsKHZvaWQpOworK3ZvaWQgbG9ja19jb3JlX2RwbGxfc2hhZG93KHZvaWQp OworKworK3ZvaWQgbWVtaWZfaW5pdCh2b2lkKTsKKyt2b2lkIHNkcmNfaW5pdCh2b2lkKTsKKyt2 b2lkIGRvX3NkcmNfaW5pdCh1MzIsIHUzMik7Cisrdm9pZCBncG1jX2luaXQodm9pZCk7CisrCisr dm9pZCBldGhlcl9pbml0KHZvaWQpOworK3ZvaWQgd2F0Y2hkb2dfaW5pdCh2b2lkKTsKKyt2b2lk IHNldF9tdXhjb25mX3JlZ3Modm9pZCk7CisrCisrdTMyIGdldF9jcHVfdHlwZSh2b2lkKTsKKyt1 MzIgZ2V0X2NwdV9yZXYodm9pZCk7CisrdTMyIGdldF9tZW1fdHlwZSh2b2lkKTsKKyt1MzIgZ2V0 X3N5c2Jvb3RfdmFsdWUodm9pZCk7CisrdTMyIGdldF9ncG1jMF9iYXNlKHZvaWQpOworK3UzMiBp c19ncG1jX211eGVkKHZvaWQpOworK3UzMiBnZXRfZ3BtYzBfdHlwZSh2b2lkKTsKKyt1MzIgZ2V0 X2dwbWMwX3dpZHRoKHZvaWQpOworK3UzMiBnZXRfYm9hcmRfdHlwZSh2b2lkKTsKKyt2b2lkIGRp c3BsYXlfYm9hcmRfaW5mbyh1MzIpOworK3ZvaWQgdXBkYXRlX211eCh1MzIsIHUzMik7CisrdTMy IGdldF9zZHJfY3Nfc2l6ZSh1MzIgb2Zmc2V0KTsKKyt1MzIgcnVubmluZ19pbl9zZHJhbSh2b2lk KTsKKyt1MzIgcnVubmluZ19pbl9zcmFtKHZvaWQpOworK3UzMiBydW5uaW5nX2luX2ZsYXNoKHZv aWQpOworK3UzMiBydW5uaW5nX2Zyb21faW50ZXJuYWxfYm9vdCh2b2lkKTsKKyt1MzIgZ2V0X2Rl dmljZV90eXBlKHZvaWQpOworKworK3ZvaWQgc3IzMih1MzIgYWRkciwgdTMyIHN0YXJ0X2JpdCwg dTMyIG51bV9iaXRzLCB1MzIgdmFsdWUpOworK3UzMiB3YWl0X29uX3ZhbHVlKHUzMiByZWFkX2Jp dF9tYXNrLCB1MzIgbWF0Y2hfdmFsdWUsIHUzMiByZWFkX2FkZHIsIHUzMiBib3VuZCk7Cisrdm9p ZCBzZGVsYXkodW5zaWduZWQgbG9uZyBsb29wcyk7CisrCisrI2VuZGlmCitkaWZmIC11TnIgeC1s b2FkLWYyNDM5Mzgub3JpZy9pbmNsdWRlL2NvbmZpZ3Mvb21hcDM1MzBiZWFnbGUuaCB4LWxvYWQt ZjI0MzkzOC9pbmNsdWRlL2NvbmZpZ3Mvb21hcDM1MzBiZWFnbGUuaAorLS0tIHgtbG9hZC1mMjQz OTM4Lm9yaWcvaW5jbHVkZS9jb25maWdzL29tYXAzNTMwYmVhZ2xlLmgJMjAxMC0wOC0wMyAxODow ODozOC4wMDAwMDAwMDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2NvbmZpZ3Mv b21hcDM1MzBiZWFnbGUuaAkyMDEyLTA2LTA3IDE1OjE3OjM4LjYyNTY5MjQ1NyAtMDMwMAorQEAg LTI4LDggKzI4LDggQEAKKyAjZGVmaW5lIF9fQ09ORklHX0gKKyAKKyAvKiBzZXJpYWwgcHJpbnRm IGZhY2lsaXR5IHRha2VzIGFib3V0IDMuNUsgKi8KKy0jZGVmaW5lIENGR19QUklOVEYgCistLy8j dW5kZWYgQ0ZHX1BSSU5URiAKKysvLyNkZWZpbmUgQ0ZHX1BSSU5URiAKKysjdW5kZWYgQ0ZHX1BS SU5URiAKKyAKKyAvKgorICAqIEhpZ2ggTGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zCitkaWZm IC11TnIgeC1sb2FkLWYyNDM5Mzgub3JpZy9pbmNsdWRlL2NvbmZpZ3Mvb21hcDQ0MzBwYW5kYS5o IHgtbG9hZC1mMjQzOTM4L2luY2x1ZGUvY29uZmlncy9vbWFwNDQzMHBhbmRhLmgKKy0tLSB4LWxv YWQtZjI0MzkzOC5vcmlnL2luY2x1ZGUvY29uZmlncy9vbWFwNDQzMHBhbmRhLmgJMTk2OS0xMi0z MSAyMTowMDowMC4wMDAwMDAwMDAgLTAzMDAKKysrKyB4LWxvYWQtZjI0MzkzOC9pbmNsdWRlL2Nv bmZpZ3Mvb21hcDQ0MzBwYW5kYS5oCTIwMTItMDYtMDcgMTQ6NDU6MzkuNDU3NjQ4NjY3IC0wMzAw CitAQCAtMCwwICsxLDEwNiBAQAorKy8qCisrICogKEMpIENvcHlyaWdodCAyMDA2IAorKyAqIFRl eGFzIEluc3RydW1lbnRzIDx3d3cudGkuY29tPgorKyAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29v ZHJ1ZmYyQHRpLmNvbT4KKysgKgorKyAqIFgtTG9hZGVyIENvbmZpZ3VhdGlvbiBzZXR0aW5ncyBm b3IgdGhlIFRJIE9NQVAgU0RQMzQzMCBib2FyZC4KKysgKgorKyAqIFNlZSBmaWxlIENSRURJVFMg Zm9yIGxpc3Qgb2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisrICogcHJvamVjdC4K KysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisrICogdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4JIFNlZSB0aGUKKysgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyAqIEZvdW5kYXRpb24sIElu Yy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisrICogTUEgMDIxMTEtMTMw NyBVU0EKKysgKi8KKysKKysjaWZuZGVmIF9fQ09ORklHX0gKKysjZGVmaW5lIF9fQ09ORklHX0gK KysKKysvKiBzZXJpYWwgcHJpbnRmIGZhY2lsaXR5IHRha2VzIGFib3V0IDMuNUsgKi8KKysjZGVm aW5lIENGR19QUklOVEYgCisrLy8jdW5kZWYgQ0ZHX1BSSU5URiAKKysKKysvKgorKyAqIEhpZ2gg TGV2ZWwgQ29uZmlndXJhdGlvbiBPcHRpb25zCisrICovCisrI2RlZmluZSBDT05GSUdfQVJNQ09S VEVYQTkgICAgICAgMSAgICAvKiBUaGlzIGlzIGFuIEFSTSBWNyBDUFUgY29yZSAqLworKyNkZWZp bmUgQ09ORklHX09NQVAgICAgICAgICAgICAgIDEgICAgLyogaW4gYSBUSSBPTUFQIGNvcmUgKi8K KysjZGVmaW5lIENPTkZJR19PTUFQNDRYWCAgICAgICAgICAxICAgIC8qIHdoaWNoIGlzIGEgMzRY WCAqLworKyNkZWZpbmUgQ09ORklHX09NQVA0NDMwICAgICAgICAgIDEgICAgLyogd2hpY2ggaXMg aW4gYSAzNDMwICovCisrI2RlZmluZSBDT05GSUdfNDQzMFBBTkRBICAgICAgICAgMSAgICAvKiB3 b3JraW5nIHdpdGggU0RQICovCisrCisrLyogS2VlcCBEZWZhdWx0IEAgMzNNSHogYXQgYm9vdCBs b2FkZXIgbGV2ZWwKKysgKiBPbiBQaG9lbml4IGJvYXJkIHZsb3RhZ2UgbmVlZHMgdG8gYmUgYnVt cGVkIHVwCisrICogYmVmb3JlIHNjYWxpbmcgdGhlIE1QVSB1cAorKyAqLworKyNkZWZpbmUgQ09O RklHX01QVV82MDAJCTEKKysjZGVmaW5lIENPUkVfMTkwTUhaCQkxCisrLyogRW5hYmxlIHRoZSBi ZWxvdyBtYWNybyBpZiBNTUMgYm9vdCBzdXBwb3J0IGlzIHJlcXVpcmVkICovCisrI2RlZmluZSBD T05GSUdfTU1DICAgICAgICAgICAgICAgMQorKyNpZiBkZWZpbmVkKENPTkZJR19NTUMpCisrCS8q IFRvIEVuYWJsZSBNTUMgYm9vdCBmb3IgT01BUDQ0MzAgUGFuZGEgKi8KKysJLy8jZGVmaW5lIENP TkZJR19NTUMxCQkxCisrCS8qIFRvIEVuYWJsZSBFTU1DIGJvb3QgZm9yIE9NQVA0NDMwIFBhbmRh ICovCisrCSNkZWZpbmUgQ09ORklHX01NQzIJCTEKKysJI2RlZmluZSBDRkdfQ01EX01NQwkJMQor KwkjZGVmaW5lIENGR19DTURfRkFUCQkxCisrI2VuZGlmCisrCisrI2luY2x1ZGUgPGFzbS9hcmNo L2NwdS5oPiAgICAgICAgLyogZ2V0IGNoaXAgYW5kIGJvYXJkIGRlZnMgKi8KKysKKysvKiB1bmNv bW1lbnQgaXQgaWYgeW91IG5lZWQgdGltZXIgYmFzZWQgdWRlbGF5KCkuIGl0IHRha2VzIGFib3V0 IDI1MCBieXRlcyAqLworKy8vI2RlZmluZSBDRkdfVURFTEFZCisrIAorKy8qIENsb2NrIERlZmlu ZXMgKi8KKysjZGVmaW5lIFZfT1NDSyAgICAgICAgICAgICAgICAgICAxOTIwMDAwMCAgLyogQ2xv Y2sgb3V0cHV0IGZyb20gVDIgKi8KKysjZGVmaW5lIFZfU0NMSyAgICAgICAgICAgICAgICAgICBW X09TQ0sKKysKKysvKiBNZW1vcnkgdHlwZSAqLworKyNkZWZpbmUgQ0ZHXzQ0MzBTRFJBTV9ERFIg ICAgICAgIDEKKysKKysjaWZkZWYgQ0ZHX1BSSU5URgorKworKyNkZWZpbmUgQ0ZHX05TMTY1NTAK KysjZGVmaW5lIENGR19OUzE2NTUwX1NFUklBTAorKyNkZWZpbmUgQ0ZHX05TMTY1NTBfUkVHX1NJ WkUgICAgICgtNCkKKysjZGVmaW5lIENGR19OUzE2NTUwX0NMSyAgICAgICAgICAoNDgwMDAwMDAp CisrI2RlZmluZSBDRkdfTlMxNjU1MF9DT00zICAgICAgICAgT01BUDQ0WFhfVUFSVDMKKysgCisr LyoKKysgKiBzZWxlY3Qgc2VyaWFsIGNvbnNvbGUgY29uZmlndXJhdGlvbgorKyAqLworKyNkZWZp bmUgQ09ORklHX1NFUklBTDEgICAgICAgICAgIDEgICAgLyogVUFSVDEgb24gMzQzMFNEUCAqLwor KyNkZWZpbmUgQ09ORklHX0NPTlNfSU5ERVggICAgICAgIDMKKysKKysjZGVmaW5lIENPTkZJR19C QVVEUkFURSAgICAgICAgICAxMTUyMDAKKysjZGVmaW5lIENGR19QQlNJWkUgICAgICAgICAgICAg ICAyNTYKKysKKysjZW5kaWYgLyogQ0ZHX1BSSU5URiAqLworKworKy8qCisrICogTWlzY2VsbGFu ZW91cyBjb25maWd1cmFibGUgb3B0aW9ucworKyAqLworKyNkZWZpbmUgQ0ZHX0xPQURBRERSICAg ICAgICAgICAgIDB4ODBlODAwMDAKKysgIAorKyN1bmRlZglDRkdfQ0xLU19JTl9IWgkJLyogZXZl cnl0aGluZywgaW5jbCBib2FyZCBpbmZvLCBpbiBIeiAqLworKyNkZWZpbmUgQ0ZHX0VOVl9TSVpF CQkweDEwMCAKKysvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICogU3RhY2sgc2l6ZXMKKysgKgorKyAqIFRo ZSBzdGFjayBzaXplcyBhcmUgc2V0IHVwIGluIHN0YXJ0LlMgdXNpbmcgdGhlIHNldHRpbmdzIGJl bG93CisrICovCisrI2RlZmluZSBDT05GSUdfU1RBQ0tTSVpFICAgICAgICAgKDEyOCoxMDI0KSAv KiByZWd1bGFyIHN0YWNrICovCisrCisrI2VuZGlmIC8qIF9fQ09ORklHX0ggKi8KKysKK2RpZmYg LXVOciB4LWxvYWQtZjI0MzkzOC5vcmlnL2xpYi9ib2FyZC5jIHgtbG9hZC1mMjQzOTM4L2xpYi9i b2FyZC5jCistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9saWIvYm9hcmQuYwkyMDEwLTA4LTAzIDE4 OjA4OjM4LjAwMDAwMDAwMCAtMDMwMAorKysrIHgtbG9hZC1mMjQzOTM4L2xpYi9ib2FyZC5jCTIw MTItMDYtMDcgMTQ6NDU6MzkuNDU3NjQ4NjY3IC0wMzAwCitAQCAtNDksOCArNDksMTAgQEAKKyBz dGF0aWMgaW50IGluaXRfZnVuY19pMmMgKHZvaWQpCisgeworICNpZmRlZiBDT05GSUdfTU1DCisr I2lmZGVmIENPTkZJR19EUklWRVJfT01BUDM0WFhfSTJDCisgCWkyY19pbml0IChDRkdfSTJDX1NQ RUVELCBDRkdfSTJDX1NMQVZFKTsKKyAjZW5kaWYKKysjZW5kaWYKKyAJcmV0dXJuIDA7CisgfQor IAorQEAgLTY1LDggKzY3LDEwIEBACisgCXByaW50X2luZm8sCisgICAJbmFuZF9pbml0LAkJLyog Ym9hcmQgc3BlY2lmaWMgbmFuZCBpbml0ICovCisgI2lmZGVmIENPTkZJR19NTUMKKysjaWZkZWYg Q09ORklHX0RSSVZFUl9PTUFQMzRYWF9JMkMKKyAJaW5pdF9mdW5jX2kyYywKKyAjZW5kaWYKKysj ZW5kaWYKKyAgIAlOVUxMLAorIH07CisgCitAQCAtODcsNiArOTEsNyBAQAorIAltaXNjX2luaXRf cigpOworIAorIAlidWYgPSAgKHVjaGFyKikgQ0ZHX0xPQURBRERSOworKwkqKGludCAqKWJ1ZiA9 IDB4ZmZmZmZmZmY7CisgCisgI2lmZGVmIENPTkZJR19NTUMKKyAJLyogZmlyc3QgdHJ5IG1tYyAq LworQEAgLTEwNCw2ICsxMDksNyBAQAorIAlpZiAoYnVmID09ICh1Y2hhciAqKUNGR19MT0FEQURE UikgeworIAkJLyogaWYgbm8gdS1ib290IG9uIG1tYywgdHJ5IG9uZW5hbmQgb3IgbmFuZCwgZGVw ZW5kaW5nIHVwb24gc3lzYm9vdCAqLworIAkJaWYgKGdldF9tZW1fdHlwZSgpID09IEdQTUNfT05F TkFORCl7CisrI2lmZGVmIENGR19PTkVOQU5ECisgI2lmZGVmIENGR19QUklOVEYKKyAgICAgICAg CQkJcHJpbnRmKCJMb2FkaW5nIHUtYm9vdC5iaW4gZnJvbSBvbmVuYW5kXG4iKTsKKyAjZW5kaWYK K0BAIC0xMTEsNyArMTE3LDkgQEAKKyAgICAgICAgIAkJCWlmICghb25lbmFuZF9yZWFkX2Jsb2Nr KGJ1ZiwgaSkpCisgICAgICAgICAJCQkJYnVmICs9IE9ORU5BTkRfQkxPQ0tfU0laRTsKKyAgICAg ICAgIAkJfQorKyNlbmRpZgorIAkJfSBlbHNlIGlmIChnZXRfbWVtX3R5cGUoKSA9PSBHUE1DX05B TkQpeworKyNpZmRlZiBDRkdfTkFORF9LOUYxRzA4UjBBCisgI2lmZGVmIENGR19QUklOVEYKKyAg ICAgICAgCQkJcHJpbnRmKCJMb2FkaW5nIHUtYm9vdC5iaW4gZnJvbSBuYW5kXG4iKTsKKyAjZW5k aWYKK0BAIC0xMTksNiArMTI3LDcgQEAKKyAgICAgICAgIAkJCWlmICghbmFuZF9yZWFkX2Jsb2Nr KGJ1ZiwgaSkpCisgICAgICAgICAJCQkJYnVmICs9IE5BTkRfQkxPQ0tfU0laRTsgLyogYWR2YW5j ZSBidWYgcHRyICovCisgICAgICAgICAJCX0KKysjZW5kaWYKKyAJCX0KKyAJfQorIAorZGlmZiAt dU5yIHgtbG9hZC1mMjQzOTM4Lm9yaWcvTWFrZWZpbGUgeC1sb2FkLWYyNDM5MzgvTWFrZWZpbGUK Ky0tLSB4LWxvYWQtZjI0MzkzOC5vcmlnL01ha2VmaWxlCTIwMTAtMDgtMDMgMTg6MDg6MzguMDAw MDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5MzgvTWFrZWZpbGUJMjAxMi0wNi0wNyAxNDo0 NTozOS40Mzc2NDg2NjcgLTAzMDAKK0BAIC04NCw2ICs4NCwxMiBAQAorIAorIGFsbDoJCSQoQUxM KQorIAorK2lmdDoJJChBTEwpIHgtbG9hZC5iaW4uaWZ0CisrCisreC1sb2FkLmJpbi5pZnQ6IHNp Z25HUCBTeXN0ZW0ubWFwIHgtbG9hZC5iaW4KKysJVEVYVF9CQVNFPWBncmVwIC13IF9zdGFydCBT eXN0ZW0ubWFwfGN1dCAtZCAnICcgLWYxYAorKwkuL3NpZ25HUCB4LWxvYWQuYmluICQoVEVYVF9C QVNFKQorKwljcCB4LWxvYWQuYmluLmlmdCBNTE8KKyAgCisgeC1sb2FkLmJpbjoJeC1sb2FkCisg CQkkKE9CSkNPUFkpICR7T0JKQ0ZMQUdTfSAtTyBiaW5hcnkgJDwgJEAKK0BAIC0xMDYsNiArMTEy LDkgQEAKKyBvbmVib290Ogl4LWxvYWQuYmluCisgCQlzY3JpcHRzL21rb25lYm9vdC5zaAorIAor K3NpZ25HUDoJCXNjcmlwdHMvc2lnbkdQLmMKKysJCWdjYyAtTzMgLW8gc2lnbkdQICAkPAorKwor ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyBlbHNlCisgYWxsIGluc3RhbGwgeC1sb2FkIHgtbG9hZC5zcmVj IG9uZWJvb3QgZGVwZW5kIGRlcDoKK0BAIC0xNTcsNiArMTY2LDEyIEBACisgCUAuL21rY29uZmln ICQoQDpfY29uZmlnPSkgYXJtIG9tYXAzIG9tYXAzNTMwYmVhZ2xlCisgCisgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworKyMjIE9NQVA0IChBUk0tQ29ydGV4QTkpIFN5c3RlbXMKKysjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Cisrb21hcDQ0MzBwYW5kYV9jb25maWcgOiAgICB1bmNvbmZpZworKwlALi9ta2NvbmZpZyAkKEA6 X2NvbmZpZz0pIGFybSBvbWFwNCBvbWFwNDQzMHBhbmRhCisrCisrIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IAorIGNsZWFuOgorIAlmaW5kIC4gLXR5cGUgZiBcCitAQCAtMTcxLDcgKzE4Niw3IEBACisgCQl8 IHhhcmdzIHJtIC1mCisgCXJtIC1mICQoT0JKUykgKi5iYWsgdGFncyBUQUdTCisgCXJtIC1mciAq Lip+CistCXJtIC1mIHgtbG9hZCB4LWxvYWQubWFwICQoQUxMKSAKKysJcm0gLWYgeC1sb2FkIHgt bG9hZC5tYXAgJChBTEwpIHgtbG9hZC5iaW4uaWZ0IHNpZ25HUCBNTE8KKyAJcm0gLWYgaW5jbHVk ZS9hc20vcHJvYyBpbmNsdWRlL2FzbS9hcmNoCisgCisgbXJwcm9wZXIgXAorZGlmZiAtdU5yIHgt bG9hZC1mMjQzOTM4Lm9yaWcvc2NyaXB0cy9zaWduR1AuYyB4LWxvYWQtZjI0MzkzOC9zY3JpcHRz L3NpZ25HUC5jCistLS0geC1sb2FkLWYyNDM5Mzgub3JpZy9zY3JpcHRzL3NpZ25HUC5jCTE5Njkt MTItMzEgMjE6MDA6MDAuMDAwMDAwMDAwIC0wMzAwCisrKysgeC1sb2FkLWYyNDM5Mzgvc2NyaXB0 cy9zaWduR1AuYwkyMDEyLTA2LTA3IDE0OjQ1OjM5LjQ2MTY0ODY2NyAtMDMwMAorQEAgLTAsMCAr MSwyODAgQEAKKysvLworKy8vIHNpZ25HUC5jCisrLy8gUmVhZCB0aGUgeC1sb2FkLmJpbiBmaWxl IGFuZCB3cml0ZSBvdXQgdGhlIHgtbG9hZC5iaW4uaWZ0IGZpbGUuCisrLy8gVGhlIHNpZ25lZCBp bWFnZSBpcyB0aGUgb3JpZ2luYWwgcHJlLXBlbmRlZCB3aXRoIHRoZSBzaXplIG9mIHRoZSBpbWFn ZQorKy8vIGFuZCB0aGUgbG9hZCBhZGRyZXNzLiAgSWYgbm90IGVudGVyZWQgb24gY29tbWFuZCBs aW5lLCBmaWxlIG5hbWUgaXMKKysvLyBhc3N1bWVkIHRvIGJlIHgtbG9hZC5iaW4gaW4gY3VycmVu dCBkaXJlY3RvcnkgYW5kIGxvYWQgYWRkcmVzcyBpcworKy8vIDB4NDAyMDA4MDAuCisrCisrI2lu Y2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxmY250bC5o PgorKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVk ZSA8bWFsbG9jLmg+CisrI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisrCisrI3VuZGVmIENIX1dJ VEhfQ0hSQU0KKytzdHJ1Y3QgY2hzZXR0aW5ncyB7CisrCV9fdTMyIHNlY3Rpb25fa2V5OworKwlf X3U4IHZhbGlkOworKwlfX3U4IHZlcnNpb247CisrCV9fdTE2IHJlc2VydmVkOworKwlfX3UzMiBm bGFnczsKKyt9IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9fKSk7CisrCisrLyogICAgX191MzIg IGNtX2Nsa3NlbF9jb3JlOworKyAgICBfX3UzMiAgcmVzZXJ2ZWQxOworKyAgICBfX3UzMiAgY21f YXV0b2lkbGVfZHBsbF9tcHU7CisrICAgIF9fdTMyICBjbV9jbGtzZWxfZHBsbF9tcHU7CisrICAg IF9fdTMyICBjbV9kaXZfbTJfZHBsbF9tcHU7CisrICAgIF9fdTMyICBjbV9hdXRvaWRsZV9kcGxs X2NvcmU7CisrICAgIF9fdTMyICBjbV9jbGtzZWxfZHBsbF9jb3JlOworKyAgICBfX3UzMiAgY21f ZGl2X20yX2RwbGxfY29yZTsKKysgICAgX191MzIgIGNtX2Rpdl9tM19kcGxsX2NvcmU7CisrICAg IF9fdTMyICBjbV9kaXZfbTRfZHBsbF9jb3JlOworKyAgICBfX3UzMiAgY21fZGl2X201X2RwbGxf Y29yZTsKKysgICAgX191MzIgIGNtX2Rpdl9tNl9kcGxsX2NvcmU7CisrICAgIF9fdTMyICBjbV9k aXZfbTdfZHBsbF9jb3JlOworKyAgICBfX3UzMiAgY21fYXV0b2lkbGVfZHBsbF9wZXI7CisrICAg IF9fdTMyICBjbV9jbGtzZWxfZHBsbF9wZXI7CisrICAgIF9fdTMyICBjbV9kaXZfbTJfZHBsbF9w ZXI7CisrICAgIF9fdTMyICBjbV9kaXZfbTNfZHBsbF9wZXI7CisrICAgIF9fdTMyICBjbV9kaXZf bTRfZHBsbF9wZXI7CisrICAgIF9fdTMyICBjbV9kaXZfbTVfZHBsbF9wZXI7CisrICAgIF9fdTMy ICBjbV9kaXZfbTZfZHBsbF9wZXI7CisrICAgIF9fdTMyICBjbV9kaXZfbTdfZHBsbF9wZXI7Cisr ICAgIF9fdTMyICBjbV9hdXRvaWRsZV9kcGxsX3VzYjsKKysgICAgX191MzIgIGNtX2Nsa3NlbF9k cGxsX3VzYjsKKysgICAgX191MzIgIGNtX2Rpdl9tMl9kcGxsX3VzYjsKKyt9Ki8KKysKKytzdHJ1 Y3QgZ3BfaGVhZGVyIHsKKysJX191MzIgc2l6ZTsKKysJX191MzIgbG9hZF9hZGRyOworK30gX19h dHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKTsKKysKKytzdHJ1Y3QgY2hfdG9jIHsKKysJX191MzIg c2VjdGlvbl9vZmZzZXQ7CisrCV9fdTMyIHNlY3Rpb25fc2l6ZTsKKysJX191OCB1bnVzZWRbMTJd OworKwlfX3U4IHNlY3Rpb25fbmFtZVsxMl07CisrfSBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRf XykpOworKworK3N0cnVjdCBjaHJhbSB7CisrCS8qQ0hSQU0gKi8KKysJX191MzIgc2VjdGlvbl9r ZXlfY2hyOworKwlfX3U4IHNlY3Rpb25fZGlzYWJsZV9jaHI7CisrCV9fdTggcGFkX2NoclszXTsK KysJLypFTUlGMSAqLworKwlfX3UzMiBjb25maWdfZW1pZjE7CisrCV9fdTMyIHJlZnJlc2hfZW1p ZjE7CisrCV9fdTMyIHRpbTFfZW1pZjE7CisrCV9fdTMyIHRpbTJfZW1pZjE7CisrCV9fdTMyIHRp bTNfZW1pZjE7CisrCV9fdTMyIHB3ckNvbnRyb2xfZW1pZjE7CisrCV9fdTMyIHBoeV9jbnRyMV9l bWlmMTsKKysJX191MzIgcGh5X2NudHIyX2VtaWYxOworKwlfX3U4IG1vZGVyZWcxX2VtaWYxOwor KwlfX3U4IG1vZGVyZWcyX2VtaWYxOworKwlfX3U4IG1vZGVyZWczX2VtaWYxOworKwlfX3U4IHBh ZF9lbWlmMTsKKysJLypFTUlGMiAqLworKwlfX3UzMiBjb25maWdfZW1pZjI7CisrCV9fdTMyIHJl ZnJlc2hfZW1pZjI7CisrCV9fdTMyIHRpbTFfZW1pZjI7CisrCV9fdTMyIHRpbTJfZW1pZjI7Cisr CV9fdTMyIHRpbTNfZW1pZjI7CisrCV9fdTMyIHB3ckNvbnRyb2xfZW1pZjI7CisrCV9fdTMyIHBo eV9jbnRyMV9lbWlmMjsKKysJX191MzIgcGh5X2NudHIyX2VtaWYyOworKwlfX3U4IG1vZGVyZWcx X2VtaWYyOworKwlfX3U4IG1vZGVyZWcyX2VtaWYyOworKwlfX3U4IG1vZGVyZWczX2VtaWYyOwor KwlfX3U4IHBhZF9lbWlmMjsKKysKKysJX191MzIgZG1tX2xpc2FfbWFwOworKwlfX3U4IGZsYWdz OworKwlfX3U4IHBhZFszXTsKKyt9IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9fKSk7CisrCisr Cisrc3RydWN0IGNoX2Noc2V0dGluZ3NfY2hyYW0geworKwlzdHJ1Y3QgY2hfdG9jIHRvY19jaHNl dHRpbmdzOworKwlzdHJ1Y3QgY2hfdG9jIHRvY19jaHJhbTsKKysJc3RydWN0IGNoX3RvYyB0b2Nf dGVybWluYXRvcjsKKysJc3RydWN0IGNoc2V0dGluZ3Mgc2VjdGlvbl9jaHNldHRpbmdzOworKwlz dHJ1Y3QgY2hyYW0gc2VjdGlvbl9jaHJhbTsKKysJX191OCBwYWRkaW5nMVs1MTIgLQorKwkJICAg IChzaXplb2Yoc3RydWN0IGNoX3RvYykgKiAzICsKKysJCSAgICAgc2l6ZW9mKHN0cnVjdCBjaHNl dHRpbmdzKSArIHNpemVvZihzdHJ1Y3QgY2hyYW0pKV07CisrCS8vc3RydWN0IGdwX2hlYWRlciBn cGhlYWRlcjsKKyt9IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9fKSk7CisrCisrc3RydWN0IGNo X2Noc2V0dGluZ3Nfbm9jaHJhbSB7CisrCXN0cnVjdCBjaF90b2MgdG9jX2Noc2V0dGluZ3M7Cisr CXN0cnVjdCBjaF90b2MgdG9jX3Rlcm1pbmF0b3I7CisrCXN0cnVjdCBjaHNldHRpbmdzIHNlY3Rp b25fY2hzZXR0aW5nczsKKysJX191OCBwYWRkaW5nMVs1MTIgLQorKwkJICAgIChzaXplb2Yoc3Ry dWN0IGNoX3RvYykgKiAyICsKKysJCSAgICAgc2l6ZW9mKHN0cnVjdCBjaHNldHRpbmdzKSldOwor KwkvL3N0cnVjdCBncF9oZWFkZXIgZ3BoZWFkZXI7CisrfSBfX2F0dHJpYnV0ZV9fICgoX19wYWNr ZWRfXykpOworKworKworKyNpZmRlZiBDSF9XSVRIX0NIUkFNCisrY29uc3Qgc3RydWN0IGNoX2No c2V0dGluZ3NfY2hyYW0gY29uZmlnX2hlYWRlciA9IHsKKysJLy9DSFNFVFRJTkdTIFRPQworKwl7 c2l6ZW9mKHN0cnVjdCBjaF90b2MpICogNCwKKysJIHNpemVvZihzdHJ1Y3QgY2hzZXR0aW5ncyks CisrCSAiIiwKKysJIHsiQ0hTRVRUSU5HUyJ9CisrCSB9LAorKwkvL0NIUkFNIFRPQworKwl7c2l6 ZW9mKHN0cnVjdCBjaF90b2MpICogNCArIHNpemVvZihzdHJ1Y3QgY2hzZXR0aW5ncyksCisrCSBz aXplb2Yoc3RydWN0IGNocmFtKSwKKysJICIiLAorKwkgeyJDSFJBTSJ9CisrCSB9LAorKwkvLyB0 b2MgdGVybWluYXRvcgorKwl7MHhGRkZGRkZGRiwKKysJIDB4RkZGRkZGRkYsCisrCSB7MHhGRiwg MHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhG RiwKKysJICAweEZGfSwKKysJIHsweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAw eEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLAorKwkgIDB4RkZ9CisrCSB9LAorKwkvL0NIU0VU VElOR1Mgc2VjdGlvbgorKwl7CisrCSAweEMwQzBDMEMxLAorKwkgMCwKKysJIDEsCisrCSAwLAor KwkgMH0sCisrCS8vQ0hSQU0gc2VjdGlvbgorKwl7CisrCSAweGMwYzBjMGMyLAorKwkgMHgwMSwK KysJIHsweDAwLCAweDAwLCAweDAwfSwKKysKKysJIC8qRU1JRjEgKi8KKysJIDB4ODA4MDBlYjIs CisrCSAweDAwMDAwMDEwLAorKwkgMHgxMTBkMTYyNCwKKysJIDB4MzA1ODE2MWIsCisrCSAweDAz MDA2MGIyLAorKwkgMHgwMDAwMDIwMCwKKysJIDB4OTAxZmY0MTYsCisrCSAweDAwMDAwMDAwLAor KwkgMHgyMywKKysJIDB4MDEsCisrCSAweDAyLAorKwkgMHgwMCwKKysKKysJIC8qRU1JRjIgKi8K KysJIDB4ODA4MDBlYjIsCisrCSAweDAwMDAwMmJhLAorKwkgMHgxMTBkMTYyNCwKKysJIDB4MzA1 ODE2MWIsCisrCSAweDAzMDA2NTQyLAorKwkgMHgwMDAwMDIwMCwKKysJIDB4OTAxZmY0MTYsCisr CSAweDAwMDAwMDAwLAorKwkgMHgyMywKKysJIDB4MDEsCisrCSAweDAyLAorKwkgMHgwMCwKKysK KysJIC8qIExJU0EgbWFwICovCisrCSAweDgwNzAwMTAwLAorKwkgMHgwNSwKKysJIHsweDAwLCAw eDAwLCAweDAwfSwKKysJIH0sCisrCSIiCisrfTsKKysjZWxzZQorK3N0cnVjdCBjaF9jaHNldHRp bmdzX25vY2hyYW0gY29uZmlnX2hlYWRlciAgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmNvbmZp Z19oZWFkZXIiKSkpID0geworKwkvL0NIU0VUVElOR1MgVE9DCisrCXsoc2l6ZW9mKHN0cnVjdCBj aF90b2MpKSAqIDIsCisrCSBzaXplb2Yoc3RydWN0IGNoc2V0dGluZ3MpLAorKwkgIiIsCisrCSB7 IkNIU0VUVElOR1MifQorKwkgfSwKKysJLy8gdG9jIHRlcm1pbmF0b3IKKysJezB4RkZGRkZGRkYs CisrCSAweEZGRkZGRkZGLAorKwkgezB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYs IDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsCisrCSAgMHhGRn0sCisrCSB7MHhGRiwgMHhG RiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwK KysJICAweEZGfQorKwkgfSwKKysJLy9DSFNFVFRJTkdTIHNlY3Rpb24KKysJeworKwkgMHhDMEMw QzBDMSwKKysJIDAsCisrCSAxLAorKwkgMCwKKysJIDB9LAorKwkiIgorK307CisrI2VuZGlmCisr CisrCisrbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQorK3sKKysJaW50CWk7CisrCWNoYXIJ aWZuYW1lW0ZJTEVOQU1FX01BWF0sIG9mbmFtZVtGSUxFTkFNRV9NQVhdLCBjaDsKKysJRklMRQkq aWZpbGUsICpvZmlsZTsKKysJdW5zaWduZWQgbG9uZwlsb2FkYWRkciwgbGVuOworKwlzdHJ1Y3Qg c3RhdAlzaW5mbzsKKysKKysKKysJLy8gRGVmYXVsdCB0byB4LWxvYWQuYmluIGFuZCAweDQwMjAw ODAwLgorKwlzdHJjcHkoaWZuYW1lLCAieC1sb2FkLmJpbiIpOworKwlsb2FkYWRkciA9IDB4NDAy MDA4MDA7CisrCisrCWlmICgoYXJnYyA9PSAyKSB8fCAoYXJnYyA9PSAzKSkKKysJCXN0cmNweShp Zm5hbWUsIGFyZ3ZbMV0pOworKworKwlpZiAoYXJnYyA9PSAzKQorKwkJbG9hZGFkZHIgPSBzdHJ0 b3VsKGFyZ3ZbMl0sIE5VTEwsIDE2KTsKKysKKysJLy8gRm9ybSB0aGUgb3V0cHV0IGZpbGUgbmFt ZS4KKysJc3RyY3B5KG9mbmFtZSwgaWZuYW1lKTsKKysJc3RyY2F0KG9mbmFtZSwgIi5pZnQiKTsK KysKKysJLy8gT3BlbiB0aGUgaW5wdXQgZmlsZS4KKysJaWZpbGUgPSBmb3BlbihpZm5hbWUsICJy YiIpOworKwlpZiAoaWZpbGUgPT0gTlVMTCkgeworKwkJcHJpbnRmKCJDYW5ub3Qgb3BlbiAlc1xu IiwgaWZuYW1lKTsKKysJCWV4aXQoMCk7CisrCX0KKysKKysJLy8gR2V0IGZpbGUgbGVuZ3RoLgor KwlzdGF0KGlmbmFtZSwgJnNpbmZvKTsKKysJbGVuID0gc2luZm8uc3Rfc2l6ZTsKKysKKysJLy8g T3BlbiB0aGUgb3V0cHV0IGZpbGUgYW5kIHdyaXRlIGl0LgorKwlvZmlsZSA9IGZvcGVuKG9mbmFt ZSwgIndiIik7CisrCWlmIChvZmlsZSA9PSBOVUxMKSB7CisrCQlwcmludGYoIkNhbm5vdCBvcGVu ICVzXG4iLCBvZm5hbWUpOworKwkJZmNsb3NlKGlmaWxlKTsKKysJCWV4aXQoMCk7CisrCX0KKysK KysJLy8gUGFkIDEgc2VjdG9yIG9mIHplcm9lcy4KKysJLy9jaCA9IDB4MDA7CisrCS8vZm9yIChp PTA7IGk8MHgyMDA7IGkrKykKKysJLy8JZndyaXRlKCZjaCwgMSwgMSwgb2ZpbGUpOworKworKwlm d3JpdGUoJmNvbmZpZ19oZWFkZXIsIDEsIDUxMiwgb2ZpbGUpOworKwlmd3JpdGUoJmxlbiwgMSwg NCwgb2ZpbGUpOworKwlmd3JpdGUoJmxvYWRhZGRyLCAxLCA0LCBvZmlsZSk7CisrCWZvciAoaT0w OyBpPGxlbjsgaSsrKSB7CisrCQlmcmVhZCgmY2gsIDEsIDEsIGlmaWxlKTsKKysJCWZ3cml0ZSgm Y2gsIDEsIDEsIG9maWxlKTsKKysJfQorKworKwlmY2xvc2UoaWZpbGUpOworKwlmY2xvc2Uob2Zp bGUpOworK30KLS0gCjEuNy45LjUKCg== --e89a8fb2063442bbda04c26fcf3d Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- ptxdist mailing list ptxdist@pengutronix.de --e89a8fb2063442bbda04c26fcf3d--