From owner-freebsd-arm@FreeBSD.ORG Thu Jun 27 19:21:25 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 97022DA6 for ; Thu, 27 Jun 2013 19:21:25 +0000 (UTC) (envelope-from alexander.fedorov@rtlservice.com) Received: from mail-ob0-f175.google.com (mail-ob0-f175.google.com [209.85.214.175]) by mx1.freebsd.org (Postfix) with ESMTP id 5D5EA1A8A for ; Thu, 27 Jun 2013 19:21:25 +0000 (UTC) Received: by mail-ob0-f175.google.com with SMTP id xn12so1122278obc.6 for ; Thu, 27 Jun 2013 12:21:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-gm-message-state; bh=Yt1WUscP+vvq3aGxD7eKjlutlgcPYe4/MMBgGhoikyY=; b=Jr2eVxoII1kDkdDA6CHX+0gWokO3Di0y3Gwx8FrAsXa4NOxSpgLcNjFayheeryYSWe +GwzoDOjPyMnFz0gaIhVwu3T77IqHLXN4tRv6TW8bPJWPEC/kkzzuRjR2um8vaSXfkaI P4Xi8fUQxe59QAhT7mH3yaDc3tLLzkdRRCpvLEuL9uF5I2YB+36PdRpBT0Idt36lAAAm sWa4KlJyR9HIiWLKcfQuoJgoaboZ4ZZ5+vQmSQmgpdjBXOCqFT6EdL51sBA2aZY8/Pkx 33yPPfCuNyRpuxxiWjALkZsXFLvWPYoZoH2uCDlLfQJQ7jssbi2vwYSVvypOrC5kcZlz H54g== MIME-Version: 1.0 X-Received: by 10.182.233.137 with SMTP id tw9mr4860357obc.2.1372359064957; Thu, 27 Jun 2013 11:51:04 -0700 (PDT) Received: by 10.60.141.41 with HTTP; Thu, 27 Jun 2013 11:51:04 -0700 (PDT) In-Reply-To: References: Date: Thu, 27 Jun 2013 22:51:04 +0400 Message-ID: Subject: Re: Booting kernel on Cubieboard/Mele a_1000 (Allwiner A10) From: Alexander Fedorov To: Mariano Lescano Content-Type: multipart/mixed; boundary=001a11c1c556924ed204e0273ed1 X-Gm-Message-State: ALoCoQlkTpP7Yv0QxD0K3Ve2JN2Qe3/t+v6V75VqBk9jGoX3xQhmJ5aGPO3BFfKKEHLfb/63VXgZ Cc: freebsd-arm@freebsd.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Jun 2013 19:21:25 -0000 --001a11c1c556924ed204e0273ed1 Content-Type: text/plain; charset=ISO-8859-1 Hi! Freebsd doesn't support Allwinner A10 MMC controller. You should use USB stick for the root filesystem. P.S. I have an initial version of the driver for MMC, but it does not support DMA, so the IO is very slow. I tested it with my Hackberry board. If you're interested, see the patch in attachment and configuration files. Also, I will publish the code on github in a few days. 2013/6/27 Mariano Lescano : > Hi > We have the kernel booting using ubldr. At the point to mount the root > filesystem we get this message: > > ====================================================== > > Trying to mount root from ufs:/dev/mmcsd0s2a [rw,noatime]... > stack_capture: frame=0xdcacfa3c > stack_capture: frame=0 > stack_capture: frame=0xdcacf85c > stack_capture: frame=0xc30feda4 > stack_capture: frame=0 > mountroot: waiting for device /dev/mmcsd0s2a ... > Mounting from ufs:/dev/mmcsd0s2a failed with error 19. > Trying to mount root from ufs:/dev/da0s2a []... > mountroot: waiting for device /dev/da0s2a ... > Mounting from ufs:/dev/da0s2a failed with error 19. > > Loader variables: > vfs.root.mountfrom=ufs:/dev/mmcsd0s2a > vfs.root.mountfrom.options=rw,noatime > > Manual root filesystem specification: > : [options] > Mount using filesystem > and with the specified (optional) option list. > > eg. ufs:/dev/da0s1a > zfs:tank > cd9660:/dev/acd0 ro > (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /) > > ? List valid disk boot devices > . Yield 1 second (for background tasks) > Abort manual input > > mountroot> ? > > List of GEOM managed disk devices: > > > mountroot> > > ======================================================== > > We can see that List of GEOM managed disk devices is empty > > What could be the problem? > Any suggestions? > > Thanks > _______________________________________________ > freebsd-arm@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arm > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org" --001a11c1c556924ed204e0273ed1 Content-Type: application/octet-stream; name="a10_mmc.patch" Content-Disposition: attachment; filename="a10_mmc.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_higb7hxr0 SW5kZXg6IHN5cy9hcm0vY29uZi9DVUJJRUJPQVJECj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9hcm0vY29u Zi9DVUJJRUJPQVJECShyZXZpc2lvbiAyNTIzMTApCisrKyBzeXMvYXJtL2NvbmYvQ1VCSUVCT0FS RAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogaW5jbHVkZQkJIi4uL2FsbHdpbm5l ci9zdGQuYTEwIgogCiBtYWtlb3B0aW9ucwlNT0RVTEVTX09WRVJSSURFPSIiCi1tYWtlb3B0aW9u cwlXSVRIT1VUX01PRFVMRVM9ImFoYyIKKyNtYWtlb3B0aW9ucwlXSVRIT1VUX01PRFVMRVM9ImFo YyBhaWM3eHh4IgogCiBvcHRpb25zIAlIWj0xMDAKIG9wdGlvbnMgCVNDSEVEXzRCU0QJCSM0QlNE IHNjaGVkdWxlcgpJbmRleDogc3lzL2FybS9hbGx3aW5uZXIvYTEwX21tYy5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHN5cy9hcm0vYWxsd2lubmVyL2ExMF9tbWMuYwkocmV2aXNpb24gMCkKKysrIHN5cy9hcm0v YWxsd2lubmVyL2ExMF9tbWMuYwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY1NCBAQAorLyot CisgKiBDb3B5cmlnaHQgKGMpIDIwMTMgQWxleGFuZGVyIEZlZG9yb3YgPGFsZXhhbmRlci5mZWRv cm92QHJ0bHNlcnZpY2UuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJV VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF CisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09O VFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP T0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV U0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFks IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB TlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKyNpbmNs dWRlIDxzeXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMvYXJtL2xwYy9s cGNfbW1jLmMgMjM5Mjc4IDIwMTItMDgtMTUgMDU6Mzc6MTBaIGdvbnpvICQiKTsKKworI2luY2x1 ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgorI2luY2x1ZGUgPHN5cy9i aW8uaD4KKyNpbmNsdWRlIDxzeXMvYnVzLmg+CisjaW5jbHVkZSA8c3lzL2NvbmYuaD4KKyNpbmNs dWRlIDxzeXMvZW5kaWFuLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5 cy9rdGhyZWFkLmg+CisjaW5jbHVkZSA8c3lzL2xvY2suaD4KKyNpbmNsdWRlIDxzeXMvbWFsbG9j Lmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9tdXRleC5oPgorI2lu Y2x1ZGUgPHN5cy9xdWV1ZS5oPgorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1ZGUg PHN5cy9ybWFuLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdGltZXRj Lmg+CisjaW5jbHVkZSA8c3lzL3dhdGNoZG9nLmg+CisKKyNpbmNsdWRlIDxzeXMva2RiLmg+CisK KyNpbmNsdWRlIDxtYWNoaW5lL2J1cy5oPgorI2luY2x1ZGUgPG1hY2hpbmUvY3B1Lmg+CisjaW5j bHVkZSA8bWFjaGluZS9jcHVmdW5jLmg+CisjaW5jbHVkZSA8bWFjaGluZS9yZXNvdXJjZS5oPgor I2luY2x1ZGUgPG1hY2hpbmUvZnJhbWUuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL2ludHIuaD4KKwor I2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1cy5oPgorI2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1c19z dWJyLmg+CisKKyNpbmNsdWRlIDxkZXYvbW1jL2JyaWRnZS5oPgorI2luY2x1ZGUgPGRldi9tbWMv bW1jcmVnLmg+CisjaW5jbHVkZSA8ZGV2L21tYy9tbWNicnZhci5oPgorCisjaW5jbHVkZSA8YXJt L2FsbHdpbm5lci9hMTBfY2xrLmg+CisjaW5jbHVkZSA8YXJtL2FsbHdpbm5lci9hMTBfbW1jLmg+ CisKK3N0cnVjdCBhMTBfbW1jX3NvZnRjIHsKKwlkZXZpY2VfdAkJYTEwX2RldjsKKwlzdHJ1Y3Qg bXR4CQlhMTBfbXR4OworCXN0cnVjdCByZXNvdXJjZSAqCWExMF9tZW1fcmVzOworCXN0cnVjdCBy ZXNvdXJjZSAqCWExMF9pcnFfcmVzOworCWJ1c19zcGFjZV90YWdfdAkJYTEwX2JzdDsKKwlidXNf c3BhY2VfaGFuZGxlX3QJYTEwX2JzaDsKKwl2b2lkICoJCQlhMTBfaW50cmhhbmQ7CisJc3RydWN0 IG1tY19ob3N0CQlhMTBfaG9zdDsKKwlzdHJ1Y3QgbW1jX3JlcXVlc3QgKglhMTBfcmVxOworCWlu dAkJCWExMF9idXNfYnVzeTsKKwl1aW50OF90IHdhaXQ7CisJdWludDMyX3QgZXJyb3I7CisJZW51 bXsKKwkJQTEwX01NQ19TVF9VTksgPSAwLAorCQlBMTBfTU1DX1NUX1dBSVRfQ01EX0RPTkUsCisJ CUExMF9NTUNfU1RfV0FJVF9EQVRBX0RPTkUKKwl9c3RhdGU7Cit9OworCitzdGF0aWMgaW50IGEx MF9tbWNfcHJvYmUoZGV2aWNlX3QpOworc3RhdGljIGludCBhMTBfbW1jX2F0dGFjaChkZXZpY2Vf dCk7CitzdGF0aWMgaW50IGExMF9tbWNfZGV0YWNoKGRldmljZV90KTsKK3N0YXRpYyB2b2lkIGEx MF9tbWNfaW50cih2b2lkICopOworCitzdGF0aWMgaW50IGExMF9tbWNfdXBkYXRlX2lvcyhkZXZp Y2VfdCwgZGV2aWNlX3QpOworc3RhdGljIGludCBhMTBfbW1jX3JlcXVlc3QoZGV2aWNlX3QsIGRl dmljZV90LCBzdHJ1Y3QgbW1jX3JlcXVlc3QgKik7CitzdGF0aWMgaW50IGExMF9tbWNfZ2V0X3Jv KGRldmljZV90LCBkZXZpY2VfdCk7CitzdGF0aWMgaW50IGExMF9tbWNfYWNxdWlyZV9ob3N0KGRl dmljZV90LCBkZXZpY2VfdCk7CitzdGF0aWMgaW50IGExMF9tbWNfcmVsZWFzZV9ob3N0KGRldmlj ZV90LCBkZXZpY2VfdCk7CisKKyNkZWZpbmUJYTEwX21tY19sb2NrKF9zYykJCQkJCQlcCisgICAg bXR4X2xvY2soJl9zYy0+YTEwX210eCk7CisjZGVmaW5lCWExMF9tbWNfdW5sb2NrKF9zYykJCQkJ CQlcCisgICAgbXR4X3VubG9jaygmX3NjLT5hMTBfbXR4KTsKKyNkZWZpbmUJYTEwX21tY19yZWFk XzQoX3NjLCBfcmVnKQkJCQkJXAorICAgIGJ1c19zcGFjZV9yZWFkXzQoX3NjLT5hMTBfYnN0LCBf c2MtPmExMF9ic2gsIF9yZWcpCisjZGVmaW5lCWExMF9tbWNfd3JpdGVfNChfc2MsIF9yZWcsIF92 YWx1ZSkJCQkJXAorICAgIGJ1c19zcGFjZV93cml0ZV80KF9zYy0+YTEwX2JzdCwgX3NjLT5hMTBf YnNoLCBfcmVnLCBfdmFsdWUpCisKK3N0YXRpYyBpbnQKK2ExMF9tbWNfcmVzZXQoc3RydWN0IGEx MF9tbWNfc29mdGMgKnNjKQoreworICAgIHVpbnQzMl90IHJ2YWwgPSBhMTBfbW1jX3JlYWRfNChz YywgTU1DX0dDVFJMKSB8IE1NQ19TT0ZUX1JFU0VUX0IgfCBNTUNfRklGT19SRVNFVF9CIHwgTU1D X0RNQV9SRVNFVF9COworICAgIGludCB0aW1lID0gMHhmZmZmOworCisJYTEwX21tY193cml0ZV80 KHNjLCBNTUNfR0NUUkwsIHJ2YWwpOworICAgIHdoaWxlKChhMTBfbW1jX3JlYWRfNChzYywgTU1D X0dDVFJMKSAmIChNTUNfU09GVF9SRVNFVF9CIHwgTU1DX0ZJRk9fUkVTRVRfQiB8IE1NQ19ETUFf UkVTRVRfQikpICYmIHRpbWUtLSk7CisgICAgaWYgKHRpbWUgPD0gMCl7CisJCWRldmljZV9wcmlu dGYoc2MtPmExMF9kZXYsICJSZXNldCBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gLTE7Cisg ICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorYTEwX21tY19pbnRfZW5hYmxl KHN0cnVjdCBhMTBfbW1jX3NvZnRjICpzYykKK3sKKyAgICBhMTBfbW1jX3dyaXRlXzQoc2MsIE1N Q19HQ1RSTCwgYTEwX21tY19yZWFkXzQoc2MsIE1NQ19HQ1RSTCl8TU1DX0lOVF9FTkFCTEVfQik7 Cit9CisKK3N0YXRpYyBpbnQKK2ExMF9tbWNfdXBkYXRlX2NsayhzdHJ1Y3QgYTEwX21tY19zb2Z0 YyAqc2MpCit7CisJdW5zaWduZWQgaW50IGNtZDsKKwl1bnNpZ25lZCB0aW1lb3V0ID0gMHhmZmZm ZjsKKworCWNtZCA9IE1NQ19TdGFydCB8IE1NQ19VUENMS09ubHkgfCBNTUNfV2FpdFByZU92ZXI7 CisgIAlhMTBfbW1jX3dyaXRlXzQoc2MsIE1NQ19DTURSLCBjbWQpOworCXdoaWxlKChhMTBfbW1j X3JlYWRfNChzYywgTU1DX0NNRFIpICYgTU1DX1N0YXJ0KSAmJiB0aW1lb3V0LS0pOworCWlmICgh dGltZW91dCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2Ex MF9tbWNfY29uZmlnX2Nsb2NrKHN0cnVjdCBhMTBfbW1jX3NvZnRjICpzYywgdW5zaWduZWQgZGl2 KQoreworCXVuc2lnbmVkIHJ2YWwgPSBhMTBfbW1jX3JlYWRfNChzYywgTU1DX0NMS0NSKTsKKwor CS8qCisJICogQ0xLQ1JFR1s3OjBdOiBkaXZpZGVyCisJICogQ0xLQ1JFR1sxNl06ICBvbi9vZmYK KwkgKiBDTEtDUkVHWzE3XTogIHBvd2VyIHNhdmUKKwkgKi8KKworCS8qIERpc2FibGUgQ2xvY2sg Ki8KKwlydmFsICY9IH5NTUNfQ0FSRF9DTEtfT047CisJYTEwX21tY193cml0ZV80KHNjLCBNTUNf Q0xLQ1IsIHJ2YWwpOworCWlmKGExMF9tbWNfdXBkYXRlX2NsayhzYykpCisJCXJldHVybiAtMTsK KworCS8qIENoYW5nZSBEaXZpZGVyIEZhY3RvciAqLworCXJ2YWwgJj0gfigweEZGKTsKKwlydmFs IHw9IGRpdjsKKwlhMTBfbW1jX3dyaXRlXzQoc2MsIE1NQ19DTEtDUiwgcnZhbCk7CisJaWYoYTEw X21tY191cGRhdGVfY2xrKHNjKSkKKwkJcmV0dXJuIC0xOworCisJLyogRW5hYmxlIENsb2NrICov CisJcnZhbCB8PSBNTUNfQ0FSRF9DTEtfT047CisJYTEwX21tY193cml0ZV80KHNjLCBNTUNfQ0xL Q1IsIHJ2YWwpOworCWlmKGExMF9tbWNfdXBkYXRlX2NsayhzYykpCisJCXJldHVybiAtMTsKKwor CXJldHVybiAwOworfQorCitzdGF0aWMgaW50CithMTBfbW1jX3Byb2JlKGRldmljZV90IGRldikK K3sKKwlpZiAoIW9md19idXNfaXNfY29tcGF0aWJsZShkZXYsICJhbGx3aW5uZXIsc3VuNGktbW1j IikpCisJCXJldHVybiAoRU5YSU8pOworCisJZGV2aWNlX3NldF9kZXNjKGRldiwgIkFsbHdpbm5l ciBJbnRlZ3JhdGVkIE1NQy9TRCBjb250cm9sbGVyIik7CisJcmV0dXJuIChCVVNfUFJPQkVfREVG QVVMVCk7Cit9CisKK3N0YXRpYyBpbnQKK2ExMF9tbWNfYXR0YWNoKGRldmljZV90IGRldikKK3sK KwlzdHJ1Y3QgYTEwX21tY19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJZGV2 aWNlX3QgY2hpbGQ7CisJaW50IHJpZDsKKworCXNjLT5hMTBfZGV2ID0gZGV2OworCXNjLT5hMTBf cmVxID0gTlVMTDsKKworCW10eF9pbml0KCZzYy0+YTEwX210eCwgZGV2aWNlX2dldF9uYW1ldW5p dChzYy0+YTEwX2RldiksICJhMTBfbW1jIiwgTVRYX0RFRik7CisKKwlyaWQgPSAwOworCXNjLT5h MTBfbWVtX3JlcyA9IGJ1c19hbGxvY19yZXNvdXJjZV9hbnkoZGV2LCBTWVNfUkVTX01FTU9SWSwg JnJpZCwKKwkgICAgUkZfQUNUSVZFKTsKKwlpZiAoIXNjLT5hMTBfbWVtX3JlcykgeworCQlkZXZp Y2VfcHJpbnRmKGRldiwgImNhbm5vdCBhbGxvY2F0ZSBtZW1vcnkgd2luZG93XG4iKTsKKwkJcmV0 dXJuIChFTlhJTyk7CisJfQorCisJc2MtPmExMF9ic3QgPSBybWFuX2dldF9idXN0YWcoc2MtPmEx MF9tZW1fcmVzKTsKKwlzYy0+YTEwX2JzaCA9IHJtYW5fZ2V0X2J1c2hhbmRsZShzYy0+YTEwX21l bV9yZXMpOworCisJcmlkID0gMDsKKwlzYy0+YTEwX2lycV9yZXMgPSBidXNfYWxsb2NfcmVzb3Vy Y2VfYW55KGRldiwgU1lTX1JFU19JUlEsICZyaWQsCisJICAgIFJGX0FDVElWRSB8IFJGX1NIQVJF QUJMRSk7CisJaWYgKCFzYy0+YTEwX2lycV9yZXMpIHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICJj YW5ub3QgYWxsb2NhdGUgaW50ZXJydXB0XG4iKTsKKwkJYnVzX3JlbGVhc2VfcmVzb3VyY2UoZGV2 LCBTWVNfUkVTX01FTU9SWSwgMCwgc2MtPmExMF9tZW1fcmVzKTsKKwkJcmV0dXJuIChFTlhJTyk7 CisJfQorCisJaWYgKGJ1c19zZXR1cF9pbnRyKGRldiwgc2MtPmExMF9pcnFfcmVzLCBJTlRSX1RZ UEVfTUlTQyB8IElOVFJfTVBTQUZFLAorCSAgICBOVUxMLCBhMTBfbW1jX2ludHIsIHNjLCAmc2Mt PmExMF9pbnRyaGFuZCkpCisJeworCQlidXNfcmVsZWFzZV9yZXNvdXJjZShkZXYsIFNZU19SRVNf TUVNT1JZLCAwLCBzYy0+YTEwX21lbV9yZXMpOworCQlidXNfcmVsZWFzZV9yZXNvdXJjZShkZXYs IFNZU19SRVNfSVJRLCAwLCBzYy0+YTEwX2lycV9yZXMpOworCQlkZXZpY2VfcHJpbnRmKGRldiwg ImNhbm5vdCBzZXR1cCBpbnRlcnJ1cHQgaGFuZGxlclxuIik7CisJCXJldHVybiAoRU5YSU8pOwor CX0KKworCWExMF9jbGtfbW1jX2FjdGl2YXRlKCk7CisKKwkvKiBSZXNldCBjb250cm9sbGVyICov CisJYTEwX21tY19yZXNldChzYyk7CisKKyAgICAvKiBjb25maWcgRE1BL0ludGVycnVwdCBUcmln Z2VyIHRocmVzaG9sZCAqLworICAvLyAgYTEwX21tY193cml0ZV80KHNjLCBNTUNfRlRSR0wsIDB4 NzAwMDgpOworCisgICAgLyogY29uZmlnIHRpbWVvdXQgcmVnaXN0ZXIgKi8KKyAgICBhMTBfbW1j X3dyaXRlXzQoc2MsIE1NQ19UTU9VVCwgMHhmZmZmZmZmZik7CisKKyAgICAvKiBjbGVhciBpbnRl cnJ1cHQgZmxhZ3MgKi8KKyAgICBhMTBfbW1jX3dyaXRlXzQoc2MsIE1NQ19SSU5UUiwgMHhmZmZm ZmZmZik7CisKKyAgICBhMTBfbW1jX3dyaXRlXzQoc2MsIE1NQ19EQkdDLCAweGRlYik7CisgICAg YTEwX21tY193cml0ZV80KHNjLCBNTUNfRlVOUywgMHhjZWFhMDAwMCk7CisKKwlzYy0+YTEwX2hv c3QuZl9taW4gPSA0MDAwMDA7CisJc2MtPmExMF9ob3N0LmZfbWF4ID0gNTIwMDAwMDA7CisJc2Mt PmExMF9ob3N0Lmhvc3Rfb2NyID0gTU1DX09DUl8zMjBfMzMwIHwgTU1DX09DUl8zMzBfMzQwOwor CXNjLT5hMTBfaG9zdC5jYXBzID0gTU1DX0NBUF80X0JJVF9EQVRBIHwgTU1DX0NBUF9IU1BFRUQ7 CisJc2MtPmExMF9ob3N0Lm1vZGUgPSBtb2RlX3NkOworCisJZGV2aWNlX3NldF9pdmFycyhkZXYs ICZzYy0+YTEwX2hvc3QpOworCisJY2hpbGQgPSBkZXZpY2VfYWRkX2NoaWxkKGRldiwgIm1tYyIs IDApOworCWlmICghY2hpbGQpIHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICJhdHRhY2hpbmcgTU1D IGJ1cyBmYWlsZWQhXG4iKTsKKwkJYnVzX3RlYXJkb3duX2ludHIoZGV2LCBzYy0+YTEwX2lycV9y ZXMsIHNjLT5hMTBfaW50cmhhbmQpOworCQlidXNfcmVsZWFzZV9yZXNvdXJjZShkZXYsIFNZU19S RVNfTUVNT1JZLCAwLCBzYy0+YTEwX21lbV9yZXMpOworCQlidXNfcmVsZWFzZV9yZXNvdXJjZShk ZXYsIFNZU19SRVNfSVJRLCAwLCBzYy0+YTEwX2lycV9yZXMpOworCQlyZXR1cm4gKEVOWElPKTsK Kwl9CisKKwlkZXZpY2Vfc2V0X2l2YXJzKGRldiwgJnNjLT5hMTBfaG9zdCk7CisJYnVzX2dlbmVy aWNfYXR0YWNoKGRldik7CisKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50CithMTBfbW1j X2RldGFjaChkZXZpY2VfdCBkZXYpCit7CisJcmV0dXJuIChFQlVTWSk7Cit9CisKK3N0YXRpYyBp bnQKK21tY190cmFuc19kYXRhX2J5X2NwdShzdHJ1Y3QgYTEwX21tY19zb2Z0YyAqc2MsIHN0cnVj dCBtbWNfZGF0YSAqZGF0YSkKK3sKKwl1bnNpZ25lZCBpOworCXVuc2lnbmVkIGJ5dGVfY250ID0g ZGF0YS0+bGVuOworCXVuc2lnbmVkICpidWZmOworCXVuc2lnbmVkIHRpbWVvdXQgPSAweGZmZmZm OworCisJaWYgKGRhdGEtPmZsYWdzICYgTU1DX0RBVEFfUkVBRCkgeworCQlidWZmID0gKHVuc2ln bmVkIGludCAqKWRhdGEtPmRhdGE7CisJCWZvciAoaT0wOyBpPChieXRlX2NudD4+Mik7IGkrKykg eworCQkJd2hpbGUoLS10aW1lb3V0ICYmIChhMTBfbW1jX3JlYWRfNChzYywgTU1DX1NUQVMpICYg TU1DX0ZJRk9FbXB0eSkpOworCQkJaWYgKHRpbWVvdXQgPD0gMCkgCisJCQkJZ290byBvdXQ7CisJ CQlidWZmW2ldID0gYTEwX21tY19yZWFkXzQoc2MsIE1NQ19GSUZPKTsKKwkJCXRpbWVvdXQgPSAw eGZmZmZmOworCQl9CisJfSBlbHNlIHsKKwkJYnVmZiA9ICh1bnNpZ25lZCBpbnQgKilkYXRhLT5k YXRhOworCQlmb3IgKGk9MDsgaTwoYnl0ZV9jbnQ+PjIpOyBpKyspIHsKKwkJCXdoaWxlKC0tdGlt ZW91dCAmJiAoYTEwX21tY19yZWFkXzQoc2MsIE1NQ19TVEFTKSAmIE1NQ19GSUZPRnVsbCkpOwor CQkJaWYgKHRpbWVvdXQgPD0gMCkgCisJCQkJZ290byBvdXQ7CisJCQlhMTBfbW1jX3dyaXRlXzQo c2MsIE1NQ19GSUZPLCBidWZmW2ldKTsKKwkJCXRpbWVvdXQgPSAweGZmZmZmOworCQl9CisJfQor CitvdXQ6CisJaWYgKHRpbWVvdXQgPD0gMCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyB2b2lkCithMTBfcmVxX29rKHN0cnVjdCBhMTBfbW1jX3NvZnRjICpzYykKK3sK KwlzdHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZCA9IHNjLT5hMTBfcmVxLT5jbWQ7CisJdWludDMyX3Qg cmVzcF9zdGF0dXM7OworCisJZG97CisJCXJlc3Bfc3RhdHVzID0gYTEwX21tY19yZWFkXzQoc2Ms IE1NQ19TVEFTKTsKKwl9d2hpbGUocmVzcF9zdGF0dXMgJiBNTUNfQ2FyZERhdGFCdXN5KTsKKwor CWlmIChjbWQtPmZsYWdzICYgTU1DX1JTUF8xMzYpIHsKKwkJY21kLT5yZXNwWzBdID0gYTEwX21t Y19yZWFkXzQoc2MsIE1NQ19SRVNQMyk7CisJCWNtZC0+cmVzcFsxXSA9IGExMF9tbWNfcmVhZF80 KHNjLCBNTUNfUkVTUDIpOworCQljbWQtPnJlc3BbMl0gPSBhMTBfbW1jX3JlYWRfNChzYywgTU1D X1JFU1AxKTsKKwkJY21kLT5yZXNwWzNdID0gYTEwX21tY19yZWFkXzQoc2MsIE1NQ19SRVNQMCk7 CisJfSBlbHNlIHsKKwkJY21kLT5yZXNwWzBdID0gYTEwX21tY19yZWFkXzQoc2MsIE1NQ19SRVNQ MCk7CisJfQorCisJc2MtPmExMF9yZXEtPmNtZC0+ZXJyb3IgPSBNTUNfRVJSX05PTkU7CisJc2Mt PmExMF9yZXEtPmRvbmUoc2MtPmExMF9yZXEpOworCXNjLT5hMTBfcmVxID0gTlVMTDsKK30KKwor c3RhdGljIHZvaWQKK2ExMF9yZXFfZXJyKHN0cnVjdCBhMTBfbW1jX3NvZnRjICpzYykKK3sKKwlz dHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZCA9IHNjLT5hMTBfcmVxLT5jbWQ7CisJZGV2aWNlX3ByaW50 ZihzYy0+YTEwX2RldiwgInJlcSBlcnJvclxuIik7CisJY21kLT5lcnJvciA9IE1NQ19FUlJfVElN RU9VVDsKKwlzYy0+YTEwX3JlcS0+ZG9uZShzYy0+YTEwX3JlcSk7CisJc2MtPmExMF9yZXEgPSBO VUxMOworfQorCitzdGF0aWMgdm9pZAorYTEwX21tY19pbnRyKHZvaWQgKmFyZykKK3sKKwlzdHJ1 Y3QgYTEwX21tY19zb2Z0YyAqc2MgPSAoc3RydWN0IGExMF9tbWNfc29mdGMgKilhcmc7CisJdWlu dDMyX3QgcmludCA9IGExMF9tbWNfcmVhZF80KHNjLCBNTUNfUklOVFIpOworCXVpbnQzMl90IGlt YXNrID0gYTEwX21tY19yZWFkXzQoc2MsIE1NQ19JTUFTSyk7CisKKwlpbWFzayAmPSB+cmludDsK KwlhMTBfbW1jX3dyaXRlXzQoc2MsIE1NQ19JTUFTSywgaW1hc2spOworCWExMF9tbWNfd3JpdGVf NChzYywgTU1DX1JJTlRSLCByaW50KTsKKworCWlmKHNjLT5hMTBfcmVxID09IE5VTEwpeworCQlk ZXZpY2VfcHJpbnRmKHNjLT5hMTBfZGV2LCAicmVxID09IE5VTEwsIHJpbnQ6IDB4JTA4WFxuIiwg cmludCk7CisJfQorCisJc3RydWN0IG1tY19jb21tYW5kICpjbWQgPSBzYy0+YTEwX3JlcS0+Y21k OworCisvLwlpZiAoY21kLT5kYXRhKSB7CisvLwkJaWYgKGNtZC0+ZGF0YS0+ZmxhZ3MgJiBNTUNf REFUQV9XUklURSl7CisvLwkJCWRldmljZV9wcmludGYoc2MtPmExMF9kZXYsICJyaW50OiAweCUw OFgsIGltYXNrOiAweCUwOFhcbiIsIHJpbnQsIGltYXNrKTsKKy8vCQl9CisvLwl9CisKKwlpZihy aW50ICYgTU1DX0ludEVyckJpdCl7CisJCWRldmljZV9wcmludGYoc2MtPmExMF9kZXYsICJlcnJv ciByaW50OiAweCUwOFhcbiIsIHJpbnQpOworCQlhMTBfcmVxX2VycihzYyk7CisJCXJldHVybjsK Kwl9CisKKwlpZighY21kLT5kYXRhICYmIChyaW50ICYgTU1DX0NtZERvbmUpKXsKKwkJYTEwX3Jl cV9vayhzYyk7CisJCXJldHVybjsKKwl9CisKKwlpZihjbWQtPmRhdGEgJiYgKHJpbnQgJiBNTUNf RGF0YU92ZXIpKXsKKwkJYTEwX3JlcV9vayhzYyk7CisJCXJldHVybjsKKwl9CisKKwlpZihjbWQt PmRhdGEtPmZsYWdzICYgTU1DX0RBVEFfUkVBRCl7CisJCWludCByZXQgPSBtbWNfdHJhbnNfZGF0 YV9ieV9jcHUoc2MsIGNtZC0+ZGF0YSk7CisJCWlmKHJldCl7CisJCQlkZXZpY2VfcHJpbnRmKHNj LT5hMTBfZGV2LCAiZGF0YSByZWFkIGVycm9yLCByaW50OiAweCUwOFhcbiIsIHJpbnQpOworCQkJ YTEwX3JlcV9lcnIoc2MpOworCisJCX0KKwl9CisKKwlpZihjbWQtPmRhdGEtPmZsYWdzICYgTU1D X0RBVEFfV1JJVEUpeworCQlpZihyaW50ICYgTU1DX1R4RGF0YVJlcSl7CisJCQlpbnQgcmV0ID0g bW1jX3RyYW5zX2RhdGFfYnlfY3B1KHNjLCBjbWQtPmRhdGEpOworCQkJaWYocmV0KXsKKwkJCQlk ZXZpY2VfcHJpbnRmKHNjLT5hMTBfZGV2LCAiZGF0YSB3cml0ZSBlcnJvciwgcmludDogMHglMDhY XG4iLCByaW50KTsKKwkJCQlhMTBfcmVxX2VycihzYyk7CisJCQl9CisJCX0KKwl9CQorfQorCitz dGF0aWMgaW50CithMTBfbW1jX3JlcXVlc3QoZGV2aWNlX3QgYnVzLCBkZXZpY2VfdCBjaGlsZCwg c3RydWN0IG1tY19yZXF1ZXN0ICpyZXEpCit7CisJdW5zaWduZWQgaW50IGNtZHJlZyA9IDB4ODAw MDAwMDA7CisJc3RydWN0IGExMF9tbWNfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhidXMp OworCXN0cnVjdCBtbWNfY29tbWFuZCAqY21kID0gcmVxLT5jbWQ7CisJdWludDMyX3QgaW1hc2sg PSBNTUNfQ21kRG9uZSB8IE1NQ19JbnRFcnJCaXQ7CisKKwlhMTBfbW1jX2xvY2soc2MpOworCWlm IChzYy0+YTEwX3JlcSl7CisJCWExMF9tbWNfdW5sb2NrKHNjKTsKKwkJcmV0dXJuIChFQlVTWSk7 CisJfQorCisJc2MtPmExMF9yZXEgPSByZXE7CisKKwlpZiAoY21kLT5vcGNvZGUgPT0gTU1DX0dP X0lETEVfU1RBVEUpCisJCWNtZHJlZyB8PSBNTUNfU2VuZEluaXRTZXE7CisJaWYgKGNtZC0+Zmxh Z3MgJiBNTUNfUlNQX1BSRVNFTlQpCisJCWNtZHJlZyB8PSBNTUNfUnNwRXhwOworCWlmIChjbWQt PmZsYWdzICYgTU1DX1JTUF8xMzYpCisJCWNtZHJlZyB8PSBNTUNfTG9uZ1JzcDsKKwlpZiAoY21k LT5mbGFncyAmIE1NQ19SU1BfQ1JDKQorCQljbWRyZWcgfD0gTU1DX0NoZWNrUnNwQ1JDOworCisJ aWYgKGNtZC0+ZGF0YSkgeworCQljbWRyZWcgfD0gTU1DX0RhdGFFeHAgfCBNTUNfV2FpdFByZU92 ZXI7CisJCWltYXNrIHw9IE1NQ19EYXRhT3ZlcjsKKwkJaWYgKGNtZC0+ZGF0YS0+ZmxhZ3MgJiBN TUNfREFUQV9XUklURSl7CisJCQljbWRyZWcgfD0gTU1DX1dyaXRlOworCQkJaW1hc2sgfD0gTU1D X1R4RGF0YVJlcTsKKwkJfWVsc2V7CisJCQlpbWFzayB8PSBNTUNfUnhEYXRhUmVxOworCQl9CisK Ky8vCQlpZiAoZGF0YS0+YmxvY2tzID4gMSkKKy8vCQkJY21kcmVnIHw9IE1NQ19TZW5kQXV0b1N0 b3A7CisKKwkJYTEwX21tY193cml0ZV80KHNjLCBNTUNfQkxLU1osIGNtZC0+ZGF0YS0+bGVuKTsK KwkJYTEwX21tY193cml0ZV80KHNjLCBNTUNfQkNOVFIsIGNtZC0+ZGF0YS0+bGVuKTsKKworCQkv KiBDaG9vc2UgYWNjZXNzIGJ5IEFIQiAqLworCQlhMTBfbW1jX3dyaXRlXzQoc2MsIE1NQ19HQ1RS TCwgYTEwX21tY19yZWFkXzQoc2MsIE1NQ19HQ1RSTCl8MHg4MDAwMDAwMCk7CisJfQorCisJaWYg KGNtZC0+ZmxhZ3MgJiBNTUNfUlNQX0JVU1kpIHsKKwkJaW1hc2sgfD0gTU1DX0RhdGFUaW1lb3V0 OworCX0KKworCS8qIEVuYWJsZSBpbnRlcnJ1cHRzIGFuZCBzZXQgSU1BU0sgKi8KKwlhMTBfbW1j X3dyaXRlXzQoc2MsIE1NQ19JTUFTSywgaW1hc2spOworCWExMF9tbWNfaW50X2VuYWJsZShzYyk7 CisKKwlhMTBfbW1jX3dyaXRlXzQoc2MsIE1NQ19DQVJHLCBjbWQtPmFyZyk7CisJYTEwX21tY193 cml0ZV80KHNjLCBNTUNfQ01EUiwgY21kcmVnfGNtZC0+b3Bjb2RlKTsKKwlzYy0+c3RhdGUgPSBB MTBfTU1DX1NUX1dBSVRfQ01EX0RPTkU7CisKKwlhMTBfbW1jX3VubG9jayhzYyk7CisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQKK2ExMF9tbWNfcmVhZF9pdmFyKGRldmljZV90IGJ1cywgZGV2 aWNlX3QgY2hpbGQsIGludCB3aGljaCwgCisgICAgdWludHB0cl90ICpyZXN1bHQpCit7CisJc3Ry dWN0IGExMF9tbWNfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhidXMpOworCisJc3dpdGNo ICh3aGljaCkgeworCWRlZmF1bHQ6CisJCXJldHVybiAoRUlOVkFMKTsKKwljYXNlIE1NQ0JSX0lW QVJfQlVTX01PREU6CisJCSooaW50ICopcmVzdWx0ID0gc2MtPmExMF9ob3N0Lmlvcy5idXNfbW9k ZTsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFSX0JVU19XSURUSDoKKwkJKihpbnQgKilyZXN1 bHQgPSBzYy0+YTEwX2hvc3QuaW9zLmJ1c193aWR0aDsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9J VkFSX0NISVBfU0VMRUNUOgorCQkqKGludCAqKXJlc3VsdCA9IHNjLT5hMTBfaG9zdC5pb3MuY2hp cF9zZWxlY3Q7CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZBUl9DTE9DSzoKKwkJKihpbnQgKily ZXN1bHQgPSBzYy0+YTEwX2hvc3QuaW9zLmNsb2NrOworCQlicmVhazsKKwljYXNlIE1NQ0JSX0lW QVJfRl9NSU46CisJCSooaW50ICopcmVzdWx0ID0gc2MtPmExMF9ob3N0LmZfbWluOworCQlicmVh azsKKwljYXNlIE1NQ0JSX0lWQVJfRl9NQVg6CisJCSooaW50ICopcmVzdWx0ID0gc2MtPmExMF9o b3N0LmZfbWF4OworCQlicmVhazsKKwljYXNlIE1NQ0JSX0lWQVJfSE9TVF9PQ1I6CisJCSooaW50 ICopcmVzdWx0ID0gc2MtPmExMF9ob3N0Lmhvc3Rfb2NyOworCQlicmVhazsKKwljYXNlIE1NQ0JS X0lWQVJfTU9ERToKKwkJKihpbnQgKilyZXN1bHQgPSBzYy0+YTEwX2hvc3QubW9kZTsKKwkJYnJl YWs7CisJY2FzZSBNTUNCUl9JVkFSX09DUjoKKwkJKihpbnQgKilyZXN1bHQgPSBzYy0+YTEwX2hv c3Qub2NyOworCQlicmVhazsKKwljYXNlIE1NQ0JSX0lWQVJfUE9XRVJfTU9ERToKKwkJKihpbnQg KilyZXN1bHQgPSBzYy0+YTEwX2hvc3QuaW9zLnBvd2VyX21vZGU7CisJCWJyZWFrOworCWNhc2Ug TU1DQlJfSVZBUl9WREQ6CisJCSooaW50ICopcmVzdWx0ID0gc2MtPmExMF9ob3N0Lmlvcy52ZGQ7 CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZBUl9DQVBTOgorCQkqKGludCAqKXJlc3VsdCA9IHNj LT5hMTBfaG9zdC5jYXBzOworCQlicmVhazsKKwljYXNlIE1NQ0JSX0lWQVJfTUFYX0RBVEE6CisJ CSooaW50ICopcmVzdWx0ID0gMTsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuICgwKTsKK30KKwor c3RhdGljIGludAorYTEwX21tY193cml0ZV9pdmFyKGRldmljZV90IGJ1cywgZGV2aWNlX3QgY2hp bGQsIGludCB3aGljaCwKKyAgICB1aW50cHRyX3QgdmFsdWUpCit7CisJc3RydWN0IGExMF9tbWNf c29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhidXMpOworCisJc3dpdGNoICh3aGljaCkgewor CWRlZmF1bHQ6CisJCXJldHVybiAoRUlOVkFMKTsKKwljYXNlIE1NQ0JSX0lWQVJfQlVTX01PREU6 CisJCXNjLT5hMTBfaG9zdC5pb3MuYnVzX21vZGUgPSB2YWx1ZTsKKwkJYnJlYWs7CisJY2FzZSBN TUNCUl9JVkFSX0JVU19XSURUSDoKKwkJc2MtPmExMF9ob3N0Lmlvcy5idXNfd2lkdGggPSB2YWx1 ZTsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFSX0NISVBfU0VMRUNUOgorCQlzYy0+YTEwX2hv c3QuaW9zLmNoaXBfc2VsZWN0ID0gdmFsdWU7CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZBUl9D TE9DSzoKKwkJc2MtPmExMF9ob3N0Lmlvcy5jbG9jayA9IHZhbHVlOworCQlicmVhazsKKwljYXNl IE1NQ0JSX0lWQVJfTU9ERToKKwkJc2MtPmExMF9ob3N0Lm1vZGUgPSB2YWx1ZTsKKwkJYnJlYWs7 CisJY2FzZSBNTUNCUl9JVkFSX09DUjoKKwkJc2MtPmExMF9ob3N0Lm9jciA9IHZhbHVlOworCQli cmVhazsKKwljYXNlIE1NQ0JSX0lWQVJfUE9XRVJfTU9ERToKKwkJc2MtPmExMF9ob3N0Lmlvcy5w b3dlcl9tb2RlID0gdmFsdWU7CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZBUl9WREQ6CisJCXNj LT5hMTBfaG9zdC5pb3MudmRkID0gdmFsdWU7CisJCWJyZWFrOworCS8qIFRoZXNlIGFyZSByZWFk LW9ubHkgKi8KKwljYXNlIE1NQ0JSX0lWQVJfQ0FQUzoKKwljYXNlIE1NQ0JSX0lWQVJfSE9TVF9P Q1I6CisJY2FzZSBNTUNCUl9JVkFSX0ZfTUlOOgorCWNhc2UgTU1DQlJfSVZBUl9GX01BWDoKKwlj YXNlIE1NQ0JSX0lWQVJfTUFYX0RBVEE6CisJCXJldHVybiAoRUlOVkFMKTsKKwl9CisJcmV0dXJu ICgwKTsKK30KKworc3RhdGljIGludAorYTEwX21tY191cGRhdGVfaW9zKGRldmljZV90IGJ1cywg ZGV2aWNlX3QgY2hpbGQpCit7CisJc3RydWN0IGExMF9tbWNfc29mdGMgKnNjID0gZGV2aWNlX2dl dF9zb2Z0YyhidXMpOworCXN0cnVjdCBtbWNfaW9zICppb3MgPSAmc2MtPmExMF9ob3N0LmlvczsK Kwl1bnNpZ25lZCBpbnQgY2xrZGl2ID0gMDsKKworCS8qIENoYW5nZSBjbG9jayBmaXJzdCAqLwor CWNsa2RpdiA9ICgweDA0ZGQxZTAwICsgKGlvcy0+Y2xvY2s+PjEpKS9pb3MtPmNsb2NrLzI7CisJ aWYgKGlvcy0+Y2xvY2spIHsKKwkJaWYgKGExMF9tbWNfY29uZmlnX2Nsb2NrKHNjLCBjbGtkaXYp KSB7CisJCQlyZXR1cm4gLTE7CisJCX0KKwl9CisKKwkvKiBTZXQgdGhlIGJ1cyB3aWR0aCAqLwor CXN3aXRjaCAoaW9zLT5idXNfd2lkdGgpIHsKKwkJY2FzZSBidXNfd2lkdGhfMToKKwkJCWExMF9t bWNfd3JpdGVfNChzYywgTU1DX1dJRFRILCBNTUNfV0lEVEgxKTsKKwkJCWJyZWFrOworCQljYXNl IGJ1c193aWR0aF80OgorCQkJYTEwX21tY193cml0ZV80KHNjLCBNTUNfV0lEVEgsIE1NQ19XSURU SDQpOworCQkJYnJlYWs7CisJCWNhc2UgYnVzX3dpZHRoXzg6CisJCQlhMTBfbW1jX3dyaXRlXzQo c2MsIE1NQ19XSURUSCwgTU1DX1dJRFRIOCk7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gKDAp OworfQorCitzdGF0aWMgaW50CithMTBfbW1jX2dldF9ybyhkZXZpY2VfdCBidXMsIGRldmljZV90 IGNoaWxkKQoreworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK2ExMF9tbWNfYWNxdWly ZV9ob3N0KGRldmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQpCit7CisJc3RydWN0IGExMF9tbWNf c29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhidXMpOworCWludCBlcnJvciA9IDA7CisKKwlh MTBfbW1jX2xvY2soc2MpOworCXdoaWxlIChzYy0+YTEwX2J1c19idXN5KQorCQllcnJvciA9IG10 eF9zbGVlcChzYywgJnNjLT5hMTBfbXR4LCBQWkVSTywgIm1tY2FoIiwgMCk7CisKKwlzYy0+YTEw X2J1c19idXN5Kys7CisJYTEwX21tY191bmxvY2soc2MpOworCXJldHVybiAoZXJyb3IpOworfQor CitzdGF0aWMgaW50CithMTBfbW1jX3JlbGVhc2VfaG9zdChkZXZpY2VfdCBidXMsIGRldmljZV90 IGNoaWxkKQoreworCXN0cnVjdCBhMTBfbW1jX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMo YnVzKTsKKworCWExMF9tbWNfbG9jayhzYyk7CisJc2MtPmExMF9idXNfYnVzeS0tOworCXdha2V1 cChzYyk7CisJYTEwX21tY191bmxvY2soc2MpOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBk ZXZpY2VfbWV0aG9kX3QgYTEwX21tY19tZXRob2RzW10gPSB7CisJLyogRGV2aWNlIGludGVyZmFj ZSAqLworCURFVk1FVEhPRChkZXZpY2VfcHJvYmUsCQlhMTBfbW1jX3Byb2JlKSwKKwlERVZNRVRI T0QoZGV2aWNlX2F0dGFjaCwJYTEwX21tY19hdHRhY2gpLAorCURFVk1FVEhPRChkZXZpY2VfZGV0 YWNoLAlhMTBfbW1jX2RldGFjaCksCisKKwkvKiBCdXMgaW50ZXJmYWNlICovCisJREVWTUVUSE9E KGJ1c19yZWFkX2l2YXIsCWExMF9tbWNfcmVhZF9pdmFyKSwKKwlERVZNRVRIT0QoYnVzX3dyaXRl X2l2YXIsCWExMF9tbWNfd3JpdGVfaXZhciksCisJREVWTUVUSE9EKGJ1c19wcmludF9jaGlsZCwJ YnVzX2dlbmVyaWNfcHJpbnRfY2hpbGQpLAorCisJLyogTU1DIGJyaWRnZSBpbnRlcmZhY2UgKi8K KwlERVZNRVRIT0QobW1jYnJfdXBkYXRlX2lvcywJYTEwX21tY191cGRhdGVfaW9zKSwKKwlERVZN RVRIT0QobW1jYnJfcmVxdWVzdCwJYTEwX21tY19yZXF1ZXN0KSwKKwlERVZNRVRIT0QobW1jYnJf Z2V0X3JvLAkJYTEwX21tY19nZXRfcm8pLAorCURFVk1FVEhPRChtbWNicl9hY3F1aXJlX2hvc3Qs CWExMF9tbWNfYWNxdWlyZV9ob3N0KSwKKwlERVZNRVRIT0QobW1jYnJfcmVsZWFzZV9ob3N0LAlh MTBfbW1jX3JlbGVhc2VfaG9zdCksCisKKwl7IDAsIDAgfQorfTsKKworc3RhdGljIGRldmNsYXNz X3QgYTEwX21tY19kZXZjbGFzczsKKworc3RhdGljIGRyaXZlcl90IGExMF9tbWNfZHJpdmVyID0g eworCSJhMTBfbW1jIiwKKwlhMTBfbW1jX21ldGhvZHMsCisJc2l6ZW9mKHN0cnVjdCBhMTBfbW1j X3NvZnRjKSwKK307CisKK0RSSVZFUl9NT0RVTEUoYTEwX21tYywgc2ltcGxlYnVzLCBhMTBfbW1j X2RyaXZlciwgYTEwX21tY19kZXZjbGFzcywgMCwgMCk7CisKSW5kZXg6IHN5cy9hcm0vYWxsd2lu bmVyL2ExMF9tbWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvYXJtL2FsbHdpbm5lci9hMTBfbW1jLmgJ KHJldmlzaW9uIDApCisrKyBzeXMvYXJtL2FsbHdpbm5lci9hMTBfbW1jLmgJKHdvcmtpbmcgY29w eSkKQEAgLTAsMCArMSwxNzcgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDEzIEFsZXhhbmRl ciBGZWRvcm92IDxhbGV4YW5kZXIuZmVkb3JvdkBydGxzZXJ2aWNlLmNvbT4KKyAqIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6 CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0 aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3 aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC WSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJF U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO VCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkg RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVS IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB Q1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJ UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VD SCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgX0ExMF9NTUNfSF8KKyNkZWZpbmUgX0ExMF9N TUNfSF8KKworI2RlZmluZSBNTUNfR0NUUkwgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAg IC8vIFNNQyBHbG9iYWwgQ29udHJvbCBSZWdpc3RlcgorI2RlZmluZSBNTUNfQ0xLQ1IgICAgICAg ICAgICAgIDB4MDQgICAgICAgICAgICAgIC8vIFNNQyBDbG9jayBDb250cm9sIFJlZ2lzdGVyCisj ZGVmaW5lIE1NQ19UTU9VVCAgICAgICAgICAgICAgMHgwOCAgICAgICAgICAgICAgLy8gU01DIFRp bWUgT3V0IFJlZ2lzdGVyCisjZGVmaW5lIE1NQ19XSURUSCAgICAgICAgICAgICAgMHgwQyAgICAg ICAgICAgICAgLy8gU01DIEJ1cyBXaWR0aCBSZWdpc3RlcgorI2RlZmluZSBNTUNfQkxLU1ogICAg ICAgICAgICAgIDB4MTAgICAgICAgICAgICAgIC8vIFNNQyBCbG9jayBTaXplIFJlZ2lzdGVyCisj ZGVmaW5lIE1NQ19CQ05UUiAgICAgICAgICAgICAgMHgxNCAgICAgICAgICAgICAgLy8gU01DIEJ5 dGUgQ291bnQgUmVnaXN0ZXIKKyNkZWZpbmUgTU1DX0NNRFIgICAgICAgICAgICAgICAweDE4ICAg ICAgICAgICAgICAvLyBTTUMgQ29tbWFuZCBSZWdpc3RlcgorI2RlZmluZSBNTUNfQ0FSRyAgICAg ICAgICAgICAgIDB4MUMgICAgICAgICAgICAgIC8vIFNNQyBBcmd1bWVudCBSZWdpc3RlcgorI2Rl ZmluZSBNTUNfUkVTUDAgICAgICAgICAgICAgIDB4MjAgICAgICAgICAgICAgIC8vIFNNQyBSZXNw b25zZSBSZWdpc3RlciAwCisjZGVmaW5lIE1NQ19SRVNQMSAgICAgICAgICAgICAgMHgyNCAgICAg ICAgICAgICAgLy8gU01DIFJlc3BvbnNlIFJlZ2lzdGVyIDEKKyNkZWZpbmUgTU1DX1JFU1AyICAg ICAgICAgICAgICAweDI4ICAgICAgICAgICAgICAvLyBTTUMgUmVzcG9uc2UgUmVnaXN0ZXIgMgor I2RlZmluZSBNTUNfUkVTUDMgICAgICAgICAgICAgIDB4MkMgICAgICAgICAgICAgIC8vIFNNQyBS ZXNwb25zZSBSZWdpc3RlciAzCisjZGVmaW5lIE1NQ19JTUFTSyAgICAgICAgICAgICAgMHgzMCAg ICAgICAgICAgICAgLy8gU01DIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyCisjZGVmaW5lIE1NQ19N SVNUQSAgICAgICAgICAgICAgMHgzNCAgICAgICAgICAgICAgLy8gU01DIE1hc2tlZCBJbnRlcnJ1 cHQgU3RhdHVzIFJlZ2lzdGVyCisjZGVmaW5lIE1NQ19SSU5UUiAgICAgICAgICAgICAgMHgzOCAg ICAgICAgICAgICAgLy8gU01DIFJhdyBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyCisjZGVmaW5l IE1NQ19TVEFTICAgICAgICAgICAgICAgMHgzQyAgICAgICAgICAgICAgLy8gU01DIFN0YXR1cyBS ZWdpc3RlcgorI2RlZmluZSBNTUNfRlRSR0wgICAgICAgICAgICAgIDB4NDAgICAgICAgICAgICAg IC8vIFNNQyBGSUZPIFRocmVzaG9sZCBXYXRlcm1hcmsgUmVnaXN0ZXIKKyNkZWZpbmUgTU1DX0ZV TlMgICAgICAgICAgICAgICAweDQ0ICAgICAgICAgICAgICAvLyBTTUMgRnVuY3Rpb24gU2VsZWN0 IFJlZ2lzdGVyCisjZGVmaW5lIE1NQ19DQkNSICAgICAgICAgICAgICAgMHg0OCAgICAgICAgICAg ICAgLy8gU01DIENJVSBCeXRlIENvdW50IFJlZ2lzdGVyCisjZGVmaW5lIE1NQ19CQkNSICAgICAg ICAgICAgICAgMHg0QyAgICAgICAgICAgICAgLy8gU01DIEJJVSBCeXRlIENvdW50IFJlZ2lzdGVy CisjZGVmaW5lIE1NQ19EQkdDICAgICAgICAgICAgICAgMHg1MCAgICAgICAgICAgICAgLy8gU01D IERlYnVnIEVuYWJsZSBSZWdpc3RlcgorI2RlZmluZSBNTUNfRE1BQyAgICAgICAgICAgICAgIDB4 ODAgICAgICAgICAgICAgIC8vIFNNQyBJRE1BQyBDb250cm9sIFJlZ2lzdGVyCisjZGVmaW5lIE1N Q19ETEJBICAgICAgICAgICAgICAgMHg4NCAgICAgICAgICAgICAgLy8gU01DIElETUFDIERlc2Ny aXB0b3IgTGlzdCBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIKKyNkZWZpbmUgTU1DX0lEU1QgICAgICAg ICAgICAgICAweDg4ICAgICAgICAgICAgICAvLyBTTUMgSURNQUMgU3RhdHVzIFJlZ2lzdGVyCisj ZGVmaW5lIE1NQ19JRElFICAgICAgICAgICAgICAgMHg4QyAgICAgICAgICAgICAgLy8gU01DIElE TUFDIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIKKyNkZWZpbmUgTU1DX0NIREEgICAgICAgICAg ICAgICAweDkwCisjZGVmaW5lIE1NQ19DQkRBICAgICAgICAgICAgICAgMHg5NAorI2RlZmluZSBN TUNfRklGTyAgICAgICAgICAgICAgIDB4MTAwICAgICAgICAgICAgIC8vIFNNQyBGSUZPIEFjY2Vz cyBBZGRyZXNzCisKKy8qIE1NQ19HQ1RSTCAqLworI2RlZmluZSBNTUNfU09GVF9SRVNFVF9CICAg ICAgICAgICAgICAgICgxIDw8ICAwKQorI2RlZmluZSBNTUNfRklGT19SRVNFVF9CICAgICAgICAg ICAgICAgICgxIDw8ICAxKQorI2RlZmluZSBNTUNfRE1BX1JFU0VUX0IgICAgICAgICAgICAgICAg ICgxIDw8ICAyKQorI2RlZmluZSBNTUNfSU5UX0VOQUJMRV9CICAgICAgICAgICAgICAgICAgICgx IDw8IDQpCisjZGVmaW5lIE1NQ19ETUFfRU5BQkxFX0IgICAgICAgICAgICAgICAgICAgKDEgPDwg NSkKKyNkZWZpbmUgTU1DX0RFQk9VTkNFX0VOQUJMRV9CICAgICAgICAgICAgICAoMSA8PCA4KQor I2RlZmluZSBNTUNfUG9zZWRnZUxhdGNoRGF0YSAgICAgICAgICgxIDw8IDkpCisjZGVmaW5lIE1N Q19OZWdlZGdlTGF0Y2hEYXRhICAgICAgICAgKDAgPDwgOSkKKyNkZWZpbmUgTU1DX0REUl9NT0RF ICAgICAgICAgICAgICAgICAoMSA8PCAxMCkKKyNkZWZpbmUgTU1DX0FDQ0VTU19CWV9BSEIgICAg ICAgICAgICAoMSA8PCAzMSkKKyNkZWZpbmUgTU1DX0FDQ0VTU19CWV9ETUEgICAgICAgICAgICAo MCA8PCAzMSkKKworLyogQ0xLQ1IgKi8KKyNkZWZpbmUgTU1DX0NBUkRfQ0xLX09OICAgICAgICAg ICAgICAgICgxIDw8IDE2KQorI2RlZmluZSBNTUNfTE9XX1BPV0VSX09OICAgICAgICAgICAgICAg KDEgPDwgMTcpCisKKy8qIE1NQ19XSURUSCAqLworI2RlZmluZSBNTUNfV0lEVEgxICAgICAgICAg ICAgICAgICAgICgwKQorI2RlZmluZSBNTUNfV0lEVEg0ICAgICAgICAgICAgICAgICAgICgxKQor I2RlZmluZSBNTUNfV0lEVEg4ICAgICAgICAgICAgICAgICAgICgyKQorCisvKiBNTUNfQ01EUiAq LworI2RlZmluZSBNTUNfUnNwRXhwICAgICAgICAgICAgICAgICAgICgxIDw8IDYpICAvLzB4NDAK KyNkZWZpbmUgTU1DX0xvbmdSc3AgICAgICAgICAgICAgICAgICAoMSA8PCA3KSAgLy8weDgwCisj ZGVmaW5lIE1NQ19DaGVja1JzcENSQyAgICAgICAgICAgICAgKDEgPDwgOCkgIC8vMHgxMDAKKyNk ZWZpbmUgTU1DX0RhdGFFeHAgICAgICAgICAgICAgICAgICAoMSA8PCA5KSAgLy8weDIwMAorI2Rl ZmluZSBNTUNfUmVhZCAgICAgICAgICAgICAgICAgICAgICgwIDw8IDEwKSAvLzB4MDAwCisjZGVm aW5lIE1NQ19Xcml0ZSAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApIC8vMHg0MDAKKyNkZWZp bmUgTU1DX0Jsb2NrbW9kICAgICAgICAgICAgICAgICAoMCA8PCAxMSkgLy8weDAwMAorI2RlZmlu ZSBNTUNfU2VxbW9kICAgICAgICAgICAgICAgICAgICgxIDw8IDExKSAvLzB4ODAwCisjZGVmaW5l IE1NQ19TZW5kQXV0b1N0b3AgICAgICAgICAgICAgKDEgPDwgMTIpIC8vMHgxMDAwCisjZGVmaW5l IE1NQ19XYWl0UHJlT3ZlciAgICAgICAgICAgICAgKDEgPDwgMTMpIC8vMHgyMDAwCisjZGVmaW5l IE1NQ19TdG9wQWJvcnRDTUQgICAgICAgICAgICAgKDEgPDwgMTQpIC8vMHg0MDAwCisjZGVmaW5l IE1NQ19TZW5kSW5pdFNlcSAgICAgICAgICAgICAgKDEgPDwgMTUpIC8vMHg4MDAwCisjZGVmaW5l IE1NQ19VUENMS09ubHkgICAgICAgICAgICAgICAgKDEgPDwgMjEpIC8vMHgyMDAwMDAKKyNkZWZp bmUgTU1DX1JkQ0VBVEFEZXYgICAgICAgICAgICAgICAoMSA8PCAyMikgLy8weDQwMDAwMAorI2Rl ZmluZSBNTUNfQ0NTRXhwICAgICAgICAgICAgICAgICAgICgxIDw8IDIzKSAvLzB4ODAwMDAwCisj ZGVmaW5lIE1NQ19FbmJCb290ICAgICAgICAgICAgICAgICAgKDEgPDwgMjQpIC8vMHgxMDAwMDAw CisjZGVmaW5lIE1NQ19BbHRCb290T3B0ICAgICAgICAgICAgICAgKDEgPDwgMjUpIC8vMHgyMDAw MDAwCisjZGVmaW5lIE1NQ19NYW5kQm9vdE9wdCAgICAgICAgICAgICAgKDAgPDwgMjUpIC8vMHgw MDAwMDAwCisjZGVmaW5lIE1NQ19Cb290QUNLRXhwICAgICAgICAgICAgICAgKDEgPDwgMjYpIC8v MHg0MDAwMDAwCisjZGVmaW5lIE1NQ19EaXNhYmxlQm9vdCAgICAgICAgICAgICAgKDEgPDwgMjcp IC8vMHg4MDAwMDAwCisjZGVmaW5lIE1NQ19Wb2xTd2l0Y2ggICAgICAgICAgICAgICAgKDEgPDwg MjgpIC8vMHgxMDAwMDAwMAorI2RlZmluZSBNTUNfU3RhcnQgICAgICAgICAgICAgICAgICAgICgx IDw8IDMxKSAvLzB4ODAwMDAwMDAKKworLyogU3RydWN0IGZvciBJbnRycnJ1cHQgSW5mb3JtYXRp b24gKi8KKyNkZWZpbmUgTU1DX1Jlc3BFcnIgICAgICAgICAgICAgICAgICAoMSA8PCAxKSAgLy8w eDIKKyNkZWZpbmUgTU1DX0NtZERvbmUgICAgICAgICAgICAgICAgICAoMSA8PCAyKSAgLy8weDQK KyNkZWZpbmUgTU1DX0RhdGFPdmVyICAgICAgICAgICAgICAgICAoMSA8PCAzKSAgLy8weDgKKyNk ZWZpbmUgTU1DX1R4RGF0YVJlcSAgICAgICAgICAgICAgICAoMSA8PCA0KSAgLy8weDEwCisjZGVm aW5lIE1NQ19SeERhdGFSZXEgICAgICAgICAgICAgICAgKDEgPDwgNSkgIC8vMHgyMAorI2RlZmlu ZSBNTUNfUmVzcENSQ0VyciAgICAgICAgICAgICAgICgxIDw8IDYpICAvLzB4NDAKKyNkZWZpbmUg TU1DX0RhdGFDUkNFcnIgICAgICAgICAgICAgICAoMSA8PCA3KSAgLy8weDgwCisjZGVmaW5lIE1N Q19SZXNwVGltZW91dCAgICAgICAgICAgICAgKDEgPDwgOCkgIC8vMHgxMDAKKyNkZWZpbmUgTU1D X0FDS1JjdiAgICAgICAgICAgICAgICAgICAoMSA8PCA4KSAgLy8weDEwMAorI2RlZmluZSBNTUNf RGF0YVRpbWVvdXQgICAgICAgICAgICAgICgxIDw8IDkpICAvLzB4MjAwCisjZGVmaW5lIE1NQ19C b290U3RhcnQgICAgICAgICAgICAgICAgKDEgPDwgOSkgIC8vMHgyMDAKKyNkZWZpbmUgTU1DX0Rh dGFTdGFydmUgICAgICAgICAgICAgICAoMSA8PCAxMCkgLy8weDQwMAorI2RlZmluZSBNTUNfVm9s Q2hnRG9uZSAgICAgICAgICAgICAgICgxIDw8IDEwKSAvLzB4NDAwCisjZGVmaW5lIE1NQ19GSUZP UnVuRXJyICAgICAgICAgICAgICAgKDEgPDwgMTEpIC8vMHg4MDAKKyNkZWZpbmUgTU1DX0hhcmRX TG9ja2VkICAgICAgICAgICAgICAoMSA8PCAxMikgLy8weDEwMDAKKyNkZWZpbmUgTU1DX1N0YXJ0 Qml0RXJyICAgICAgICAgICAgICAoMSA8PCAxMykgLy8weDIwMDAKKyNkZWZpbmUgTU1DX0F1dG9D TUREb25lICAgICAgICAgICAgICAoMSA8PCAxNCkgLy8weDQwMDAKKyNkZWZpbmUgTU1DX0VuZEJp dEVyciAgICAgICAgICAgICAgICAoMSA8PCAxNSkgLy8weDgwMDAKKyNkZWZpbmUgTU1DX1NESU9J bnQgICAgICAgICAgICAgICAgICAoMSA8PCAxNikgLy8weDEwMDAwCisjZGVmaW5lIE1NQ19DYXJk SW5zZXJ0ICAgICAgICAgICAgICAgKDEgPDwgMzApIC8vMHg0MDAwMDAwMAorI2RlZmluZSBNTUNf Q2FyZFJlbW92ZSAgICAgICAgICAgICAgICgxIDw8IDMxKSAvLzB4ODAwMDAwMDAKKyNkZWZpbmUg TU1DX0ludEVyckJpdCAgICAgICAgICAgICAgICAoTU1DX1Jlc3BFcnIgfCBNTUNfUmVzcENSQ0Vy ciB8IE1NQ19EYXRhQ1JDRXJyIHwgTU1DX1Jlc3BUaW1lb3V0IHwgTU1DX0RhdGFUaW1lb3V0ICBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNTUNfRklGT1J1bkVy ciB8IE1NQ19IYXJkV0xvY2tlZCB8IE1NQ19TdGFydEJpdEVyciB8IE1NQ19FbmRCaXRFcnIpICAv LzB4YmZjMgorLyogc3RhdHVzICovCisjZGVmaW5lIE1NQ19SWFdMRmxhZyAgICAgICAgICAgICAg ICAgKDEgPDwgMCkKKyNkZWZpbmUgTU1DX1RYV0xGbGFnICAgICAgICAgICAgICAgICAoMSA8PCAx KQorI2RlZmluZSBNTUNfRklGT0VtcHR5ICAgICAgICAgICAgICAgICgxIDw8IDIpCisjZGVmaW5l IE1NQ19GSUZPRnVsbCAgICAgICAgICAgICAgICAgKDEgPDwgMykKKyNkZWZpbmUgTU1DX0NhcmRQ cmVzZW50ICAgICAgICAgICAgICAoMSA8PCA4KQorI2RlZmluZSBNTUNfQ2FyZERhdGFCdXN5ICAg ICAgICAgICAgICgxIDw8IDkpCisjZGVmaW5lIE1NQ19EYXRhRlNNQnVzeSAgICAgICAgICAgICAg KDEgPDwgMTApCisjZGVmaW5lIE1NQ19ETUFSZXEgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEp CisjZGVmaW5lIE1NQ19GSUZPX1NJWkUgICAgICAgICAgICAgICAgKDE2KQorLyogRnVuY3Rpb24g c2VsZWN0ICovCisjZGVmaW5lIE1NQ19DRUFUQU9uICAgICAgICAgICAgICAgICAgKDB4Y2VhYVU8 PCAxNikKKyNkZWZpbmUgTU1DX1NlbmRJcnFSc3AgICAgICAgICAgICAgICAoMSA8PCAwKQorI2Rl ZmluZSBNTUNfU0RJT1JkV2FpdCAgICAgICAgICAgICAgICgxIDw8IDEpCisjZGVmaW5lIE1NQ19B YnRSZERhdGEgICAgICAgICAgICAgICAgKDEgPDwgMikKKyNkZWZpbmUgTU1DX1NlbmRDQ1NEICAg ICAgICAgICAgICAgICAoMSA8PCA4KQorI2RlZmluZSBNTUNfU2VuZEF1dG9TdG9wQ0NTRCAgICAg ICAgICgxIDw8IDkpCisjZGVmaW5lIE1NQ19DRUFUQURldkludEVuYiAgICAgICAgICAgKDEgPDwg MTApCisvKiBJRE1BIGNvbnRyb2xsZXIgYnVzIG1vZCBiaXQgZmllbGQgKi8KKyNkZWZpbmUgTU1D X0lETUFDU29mdFJTVCAgICAgICAgICAgICAoMSA8PCAwKQorI2RlZmluZSBNTUNfSURNQUNGaXhC dXJzdCAgICAgICAgICAgICgxIDw8IDEpCisjZGVmaW5lIE1NQ19JRE1BQ0lETUFPbiAgICAgICAg ICAgICAgKDEgPDwgNykKKyNkZWZpbmUgTU1DX0lETUFDUmVmZXRjaERFUyAgICAgICAgICAoMSA8 PCAzMSkKKy8qIElETUEgc3RhdHVzIGJpdCBmaWVsZCAqLworI2RlZmluZSBNTUNfSURNQUNUcmFu c21pdEludCAgICAgICAgICgxIDw8IDApCisjZGVmaW5lIE1NQ19JRE1BQ1JlY2VpdmVJbnQgICAg ICAgICAgKDEgPDwgMSkKKyNkZWZpbmUgTU1DX0lETUFDRmF0YWxCdXNFcnIgICAgICAgICAoMSA8 PCAyKQorI2RlZmluZSBNTUNfSURNQUNEZXNJbnZhbGlkICAgICAgICAgICgxIDw8IDQpCisjZGVm aW5lIE1NQ19JRE1BQ0NhcmRFcnJTdW0gICAgICAgICAgKDEgPDwgNSkKKyNkZWZpbmUgTU1DX0lE TUFDTm9ybWFsSW50U3VtICAgICAgICAoMSA8PCA4KQorI2RlZmluZSBNTUNfSURNQUNBYm5vcm1h bEludFN1bSAgICAgICgxIDw8IDkpCisjZGVmaW5lIE1NQ19JRE1BQ0hvc3RBYnRJblR4ICAgICAg ICAgKDEgPDwgMTApCisjZGVmaW5lIE1NQ19JRE1BQ0hvc3RBYnRJblJ4ICAgICAgICAgKDEgPDwg MTApCisjZGVmaW5lIE1NQ19JRE1BQ0lkbGUgICAgICAgICAgICAgICAgKDAgPDwgMTMpCisjZGVm aW5lIE1NQ19JRE1BQ1N1c3BlbmQgICAgICAgICAgICAgKDEgPDwgMTMpCisjZGVmaW5lIE1NQ19J RE1BQ0RFU0NSZCAgICAgICAgICAgICAgKDB4MlU8PCAxMykKKyNkZWZpbmUgTU1DX0lETUFDREVT Q0NoZWNrICAgICAgICAgICAoMHgzVTw8IDEzKQorI2RlZmluZSBNTUNfSURNQUNSZFJlcVdhaXQg ICAgICAgICAgICgweDRVPDwgMTMpCisjZGVmaW5lIE1NQ19JRE1BQ1dyUmVxV2FpdCAgICAgICAg ICAgKDB4NVU8PCAxMykKKyNkZWZpbmUgTU1DX0lETUFDUmQgICAgICAgICAgICAgICAgICAoMHg2 VTw8IDEzKQorI2RlZmluZSBNTUNfSURNQUNXciAgICAgICAgICAgICAgICAgICgweDdVPDwgMTMp CisjZGVmaW5lIE1NQ19JRE1BQ0RFU0NDbG9zZSAgICAgICAgICAgKDB4OFU8PCAxMykKKworI2Rl ZmluZSBNTUNfSURNQV9PVkVSICAgICAgIChNTUNfSURNQUNUcmFuc21pdEludHxNTUNfSURNQUNS ZWNlaXZlSW50fE1NQ19JRE1BQ05vcm1hbEludFN1bSkKKyNkZWZpbmUgTU1DX0lETUFfRVJSICAg ICAgICAoTU1DX0lETUFDRmF0YWxCdXNFcnJ8TU1DX0lETUFDRGVzSW52YWxpZHxNTUNfSURNQUND YXJkRXJyU3VtfE1NQ19JRE1BQ0Fibm9ybWFsSW50U3VtKQorCisjZW5kaWYgLyogX0ExMF9NTUNf SF8gKi8KKwpJbmRleDogc3lzL2FybS9hbGx3aW5uZXIvZmlsZXMuYTEwCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHN5cy9hcm0vYWxsd2lubmVyL2ZpbGVzLmExMAkocmV2aXNpb24gMjUyMzEwKQorKysgc3lzL2Fy bS9hbGx3aW5uZXIvZmlsZXMuYTEwCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2ICsxMiw3IEBACiBh cm0vYWxsd2lubmVyL2ExMF9jbGsuYwkJCXN0YW5kYXJkCiBhcm0vYWxsd2lubmVyL2ExMF9ncGlv LmMJCW9wdGlvbmFsCWdwaW8KIGFybS9hbGx3aW5uZXIvYTEwX2VoY2kuYwkJb3B0aW9uYWwJZWhj aQorYXJtL2FsbHdpbm5lci9hMTBfbW1jLmMJCQlvcHRpb25hbAltbWMKIGFybS9hbGx3aW5uZXIv YTEwX3dkb2cuYwkJc3RhbmRhcmQKIGFybS9hbGx3aW5uZXIvdGltZXIuYwkJCXN0YW5kYXJkCiBh cm0vYWxsd2lubmVyL2FpbnRjLmMJCQlzdGFuZGFyZApJbmRleDogc3lzL2FybS9hbGx3aW5uZXIv YTEwX2Nsay5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9hcm0vYWxsd2lubmVyL2ExMF9jbGsuYwkocmV2 aXNpb24gMjUyMzEwKQorKysgc3lzL2FybS9hbGx3aW5uZXIvYTEwX2Nsay5jCSh3b3JraW5nIGNv cHkpCkBAIC0xNzAsMyArMTcwLDM2IEBACiAJcmV0dXJuICgwKTsKIH0KIAoraW50CithMTBfY2xr X21tY19hY3RpdmF0ZSh2b2lkKQoreworCXN0cnVjdCBhMTBfY2NtX3NvZnRjICpzYyA9IGExMF9j Y21fc2M7CisJdWludDMyX3QgcmVnX3ZhbHVlOworCXVuc2lnbmVkIGludCBwbGw1X2NsazsKKwl1 bnNpZ25lZCBpbnQgZGl2aWRlcjsKKwl1bnNpZ25lZCBpbnQgbiwgaywgcDsKKworCWlmIChzYyA9 PSBOVUxMKQorCQlyZXR1cm4gRU5YSU87CisKKwkvKiBHYXRpbmcgQUhCIGNsb2NrIGZvciBTRE1N QzAgKi8KKwlyZWdfdmFsdWUgPSBjY21fcmVhZF80KHNjLCBDQ01fQUhCX0dBVElORzApOworCXJl Z192YWx1ZSB8PSBDQ01fQUhCX0dBVElOR19TRE1NQzA7CisJY2NtX3dyaXRlXzQoc2MsIENDTV9B SEJfR0FUSU5HMCwgcmVnX3ZhbHVlKTsKKworCS8qIGNvbmZpZyBtb2QgY2xvY2sgKi8KKwlyZWdf dmFsdWUgPSBjY21fcmVhZF80KHNjLCBDQ01fUExMNV9DRkcpOworCW4gPSAocmVnX3ZhbHVlID4+ IDgpICYgMHgxZjsKKwlrID0gKChyZWdfdmFsdWUgPj4gNCkgJiAzKSArIDE7CisJcCA9IDEgPDwg KChyZWdfdmFsdWUgPj4gMTYpICYgMyk7CisJcGxsNV9jbGsgPSAyNDAwMDAwMCAqIG4gKiBrIC8g cDsKKwlpZiAocGxsNV9jbGsgPiA0MDAwMDAwMDApCisJCWRpdmlkZXIgPSA0OworCWVsc2UKKwkJ ZGl2aWRlciA9IDM7CisJY2NtX3dyaXRlXzQoc2MsIENDTV9NTUMwX1NDTEtfQ0ZHLCAoMVUgPDwg MzEpIHwgKDJVIDw8IDI0KSB8IGRpdmlkZXIpOworCXByaW50ZigiTU1DMCBNT0RFX0NMSzogMHgl MDh4XG4iLCBwbGw1X2NsayAvIChkaXZpZGVyICsgMSkpOworCisJcmV0dXJuIDA7Cit9CisKSW5k ZXg6IHN5cy9hcm0vYWxsd2lubmVyL2ExMF9jbGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvYXJtL2Fs bHdpbm5lci9hMTBfY2xrLmgJKHJldmlzaW9uIDI1MjMxMCkKKysrIHN5cy9hcm0vYWxsd2lubmVy L2ExMF9jbGsuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMyw3IEBACiAjZGVmaW5lIEND TV9BSEJfR0FUSU5HX1VTQjAJKDEgPDwgMCkKICNkZWZpbmUgQ0NNX0FIQl9HQVRJTkdfRUhDSTAJ KDEgPDwgMSkKICNkZWZpbmUgQ0NNX0FIQl9HQVRJTkdfRUhDSTEJKDEgPDwgMykKKyNkZWZpbmUg Q0NNX0FIQl9HQVRJTkdfU0RNTUMwICgxIDw8IDgpCiAKICNkZWZpbmUgQ0NNX1VTQl9QSFkJCSgx IDw8IDgpCiAjZGVmaW5lIENDTV9VU0IwX1JFU0VUCQkoMSA8PCAwKQpAQCAtMTExLDUgKzExMiw2 IEBACiAKIGludCBhMTBfY2xrX3VzYl9hY3RpdmF0ZSh2b2lkKTsKIGludCBhMTBfY2xrX3VzYl9k ZWFjdGl2YXRlKHZvaWQpOworaW50IGExMF9jbGtfbW1jX2FjdGl2YXRlKHZvaWQpOwogCiAjZW5k aWYgLyogX0ExMF9DTEtfSF8gKi8KSW5kZXg6IHN5cy9kZXYvbW1jL21tYy5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHN5cy9kZXYvbW1jL21tYy5jCShyZXZpc2lvbiAyNTIzMTApCisrKyBzeXMvZGV2L21tYy9t bWMuYwkod29ya2luZyBjb3B5KQpAQCAtMTczNSwzICsxNzM1LDQgQEAKIERSSVZFUl9NT0RVTEUo bW1jLCBzZGhjaV9wY2ksIG1tY19kcml2ZXIsIG1tY19kZXZjbGFzcywgTlVMTCwgTlVMTCk7CiBE UklWRVJfTU9EVUxFKG1tYywgc2RoY2lfYmNtLCBtbWNfZHJpdmVyLCBtbWNfZGV2Y2xhc3MsIE5V TEwsIE5VTEwpOwogRFJJVkVSX01PRFVMRShtbWMsIHNkaGNpX2ZkdCwgbW1jX2RyaXZlciwgbW1j X2RldmNsYXNzLCBOVUxMLCBOVUxMKTsKK0RSSVZFUl9NT0RVTEUobW1jLCBhMTBfbW1jLCBtbWNf ZHJpdmVyLCBtbWNfZGV2Y2xhc3MsIE5VTEwsIE5VTEwpOwo= --001a11c1c556924ed204e0273ed1 Content-Type: application/octet-stream; name="hackberry.dts" Content-Disposition: attachment; filename="hackberry.dts" Content-Transfer-Encoding: base64 X-Attachment-Id: f_higba80k1 LyotCiAqIENvcHlyaWdodCAoYykgMjAxMiBHYW5ib2xkIFRzYWdhYW5raHV1IDxnYW5ib2xkQGdt YWlsLmNvbT4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5k IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlm aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0 aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAq ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz Y2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAogKiBB TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J VEVEIFRPLCBUSEUKICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKICogQVJFIERJU0NMQUlNRUQuICBJTiBO TyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKICogRk9S IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S IENPTlNFUVVFTlRJQUwKICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKICogT1IgU0VSVklDRVM7IExPU1MgT0Yg VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCiAqIEhPV0VW RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U UkFDVCwgU1RSSUNUCiAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJ UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgogKiBTVUNI IERBTUFHRS4KICogCiAqICRGcmVlQlNEOiBoZWFkL3N5cy9ib290L2ZkdC9kdHMvY3ViaWVib2Fy ZC5kdHMgMjQ3NTIwIDIwMTMtMDMtMDEgMDE6NDc6MTFaIGdhbmJvbGQgJAogKi8KCi9kdHMtdjEv OwoKLyB7Cgltb2RlbCA9ICJNaW5pYW5kIEhhY2tiZXJyeSI7Cgljb21wYXRpYmxlID0gIm1pbmlh bmQsYTEwLWhhY2tiZXJyeSIsICJhbGx3aW5uZXIsc3VuNGktYTEwIjsKCSNhZGRyZXNzLWNlbGxz ID0gPDE+OwoJI3NpemUtY2VsbHMgPSA8MT47CgoJaW50ZXJydXB0LXBhcmVudCA9IDwmQUlOVEM+ OwoKCW1lbW9yeSB7CgkJZGV2aWNlX3R5cGUgPSAibWVtb3J5IjsKCQlyZWcgPSA8IDB4NDAwMDAw MDAgMHgyMDAwMDAwMCA+OwkvKiAxR0IgUkFNICovCgl9OwoKCWFsaWFzZXMgewoJCXNvYyA9ICZT T0M7CgkJVUFSVDAgPSAmVUFSVDA7Cgl9OwoKCVNPQzogYTEwIHsKCQkjYWRkcmVzcy1jZWxscyA9 IDwxPjsKCQkjc2l6ZS1jZWxscyA9IDwxPjsKCQljb21wYXRpYmxlID0gInNpbXBsZS1idXMiOwoJ CXJhbmdlczsKCQlidXMtZnJlcXVlbmN5ID0gPDA+OwoKCQlBSU5UQzogaW50ZXJydXB0LWNvbnRy b2xsZXJAMDFjMjA0MDAgewoJCQljb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW40aS1pYyI7CgkJ CWludGVycnVwdC1jb250cm9sbGVyOwoJCQkjYWRkcmVzcy1jZWxscyA9IDwwPjsKCQkJI2ludGVy cnVwdC1jZWxscyA9IDwxPjsKCQkJcmVnID0gICA8IDB4MDFjMjA0MDAgMHg0MDAgPjsKCQl9OwoK CQljY21AMDFjMjAwMDAgewoJCQljb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW40aS1jY20iOwoJ CQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKCQkJI3NpemUtY2VsbHMgPSA8MT47CgkJCXJlZyA9IDwg MHgwMWMyMDAwMCAweDQwMCA+OwoJCX07CgoJCXRpbWVyQDAxYzIwYzAwIHsKCQkJY29tcGF0aWJs ZSA9ICJhbGx3aW5uZXIsc3VuNGktdGltZXIiOwoJCQlyZWcgPSA8MHgwMWMyMGMwMCAweDkwPjsK CQkJaW50ZXJydXB0cyA9IDwgMjIgPjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmQUlOVEM+OwoJ CQljbG9jay1mcmVxdWVuY3kgPSA8IDI0MDAwMDAwID47CgkJfTsKCgkJd2F0Y2hkb2dAMDFjMjBj OTAgewoJCQljb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW40aS13ZHQiOwoJCQlyZWcgPSA8MHgw MWMyMGM5MCAweDA4PjsKCQl9OwoKCQlHUElPOiBncGlvQDAxYzIwODAwIHsKCQkJI2dwaW8tY2Vs bHMgPSA8Mz47CgkJCWNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjRpLWdwaW8iOwoJCQlncGlv LWNvbnRyb2xsZXI7CgkJCXJlZyA9PCAgMHgwMWMyMDgwMCAweDQwMCA+OwoJCQlpbnRlcnJ1cHRz ID0gPCAyOCA+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZBSU5UQz47CgkJfTsKCgkJdXNiMDog dXNiQDAxYzE0MDAwIHsKCQkJY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsdXNiLWVoY2kiLCAidXNi LWVoY2kiOwoJCQlyZWcgPSA8MHgwMWMxNDAwMCAweDEwMDA+OwoJCQlpbnRlcnJ1cHRzID0gPCAz OSA+OwoJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZBSU5UQz47CgkJfTsKCgkJdXNiMTogdXNiQDAx YzFjMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsdXNiLWVoY2kiLCAidXNiLWVoY2ki OwoJCQlyZWcgPSA8MHgwMWMxYzAwMCAweDEwMDA+OwoJCQlpbnRlcnJ1cHRzID0gPCA0MCA+OwoJ CQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZBSU5UQz47CgkJfTsKCi8qCgkJdXNiMjogdXNiQDAxYzEz MDAwIHsKCQkJY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsbXVzYi1vdGciLCAidXNiLW11c2IiOwoJ CQlyZWcgPSA8MHgwMWMxMzAwMCAweDEwMDA+OwoJCQlpbnRlcnJ1cHRzID0gPDM4PjsKCQkJaW50 ZXJydXB0LXBhcmVudCA9IDwmQUlOVEM+OwoJCX07CiovCgoJCXNhdGFAMDFjMTgwMDAgewoJCQlj b21wYXRpYmxlID0gImFsbHdpbm5lcixhaGNpIjsKCQkJcmVnID0gPDB4MDFjMTgwMDAgMHgxMDAw PjsKCQkJaW50ZXJydXB0cyA9IDw1Nj47CgkJCWludGVycnVwdC1wYXJlbnQgPSA8JkFJTlRDPjsK CQl9OwoKCQlVQVJUMDogc2VyaWFsQDAxYzI4MDAwIHsKCQkJc3RhdHVzID0gIm9rYXkiOwoJCQlj b21wYXRpYmxlID0gIm5zMTY1NTAiOwoJCQlyZWcgPSA8MHgwMWMyODAwMCAweDQwMD47CgkJCXJl Zy1zaGlmdCA9IDwyPjsKCQkJaW50ZXJydXB0cyA9IDwxPjsKCQkJaW50ZXJydXB0LXBhcmVudCA9 IDwmQUlOVEM+OwoJCQljdXJyZW50LXNwZWVkID0gPDExNTIwMD47CgkJCWNsb2NrLWZyZXF1ZW5j eSA9IDwgMjQwMDAwMDAgPjsKCQkJYnVzeS1kZXRlY3QgPSA8MT47CgkJCWJyb2tlbi10eGZpZm8g PSA8MT47CgkJfTsKCgkJbW1jQDB4MDFjMGYwMDAgewoJCQljb21wYXRpYmxlID0gImFsbHdpbm5l cixzdW40aS1tbWMiOwoJCQlyZWcgPSA8MHgwMWMwZjAwMCAweDEwMDA+OwoJCQlpbnRlcnJ1cHRz ID0gPDMyPjsKCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmQUlOVEM+OwoJCX07CgoJCW5mY0AweDAx YzAzMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJzdW40aSxuZmMiOwogICAgICAgICAgICByZWcgPSA8 MHgwMWMwMzAwMCAweDEwMDA+OyAKCQl9OwoJfTsKCgljaG9zZW4gewoJCWJvb3RhcmdzID0gIi12 IjsKCQlzdGRpbiA9ICJVQVJUMCI7CgkJc3Rkb3V0ID0gIlVBUlQwIjsKCX07Cn07Cgo= --001a11c1c556924ed204e0273ed1 Content-Type: application/octet-stream; name=HACKBERRY Content-Disposition: attachment; filename=HACKBERRY Content-Transfer-Encoding: base64 X-Attachment-Id: f_higbaoh72 IyBDVUJJRUJPQVJEIC0tIEN1c3RvbSBjb25maWd1cmF0aW9uIGZvciB0aGUgQ1VCSUVCT0FSRCBB Uk0gZGV2ZWxvcG1lbnQKIyBwbGF0Zm9ybSwgY2hlY2sgb3V0IGh0dHA6Ly93d3cuY3ViaWVib2Fy ZC5vcmcKIwojIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgZmlsZSwgcGxlYXNlIHJlYWQg dGhlIGhhbmRib29rIHNlY3Rpb24gb24KIyBLZXJuZWwgQ29uZmlndXJhdGlvbiBGaWxlczoKIwoj ICAgIGh0dHA6Ly93d3cuRnJlZUJTRC5vcmcvZG9jL2VuX1VTLklTTzg4NTktMS9ib29rcy9oYW5k Ym9vay9rZXJuZWxjb25maWctY29uZmlnLmh0bWwKIwojIFRoZSBoYW5kYm9vayBpcyBhbHNvIGF2 YWlsYWJsZSBsb2NhbGx5IGluIC91c3Ivc2hhcmUvZG9jL2hhbmRib29rCiMgaWYgeW91J3ZlIGlu c3RhbGxlZCB0aGUgZG9jIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIGFsd2F5cyBzZWUgdGhlCiMg RnJlZUJTRCBXb3JsZCBXaWRlIFdlYiBzZXJ2ZXIgKGh0dHA6Ly93d3cuRnJlZUJTRC5vcmcvKSBm b3IgdGhlCiMgbGF0ZXN0IGluZm9ybWF0aW9uLgojCiMgQW4gZXhoYXVzdGl2ZSBsaXN0IG9mIG9w dGlvbnMgYW5kIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb25zIG9mIHRoZQojIGRldmljZSBsaW5l cyBpcyBhbHNvIHByZXNlbnQgaW4gdGhlIC4uLy4uL2NvbmYvTk9URVMgYW5kIE5PVEVTIGZpbGVz LgojIElmIHlvdSBhcmUgaW4gZG91YnQgYXMgdG8gdGhlIHB1cnBvc2Ugb3IgbmVjZXNzaXR5IG9m IGEgbGluZSwgY2hlY2sgZmlyc3QKIyBpbiBOT1RFUy4KIwojICRGcmVlQlNEOiBoZWFkL3N5cy9h cm0vY29uZi9DVUJJRUJPQVJEIDI0NzUyMCAyMDEzLTAzLTAxIDAxOjQ3OjExWiBnYW5ib2xkICQK CmlkZW50CQlIQUNLQkVSUlkKCmluY2x1ZGUJCSIuLi9hbGx3aW5uZXIvc3RkLmExMCIKCm1ha2Vv cHRpb25zCU1PRFVMRVNfT1ZFUlJJREU9IiIKbWFrZW9wdGlvbnMJV0lUSE9VVF9NT0RVTEVTPSJh aGMiCgpvcHRpb25zIAlIWj0xMDAKb3B0aW9ucyAJU0NIRURfNEJTRAkJIzRCU0Qgc2NoZWR1bGVy Cm9wdGlvbnMgCUlORVQJCQkjSW50ZXJORVR3b3JraW5nCm9wdGlvbnMgCUlORVQ2CQkJI0lQdjYg Y29tbXVuaWNhdGlvbnMgcHJvdG9jb2xzCm9wdGlvbnMgCUZGUwkJCSNCZXJrZWxleSBGYXN0IEZp bGVzeXN0ZW0Kb3B0aW9ucyAJU09GVFVQREFURVMJCSNFbmFibGUgRkZTIHNvZnQgdXBkYXRlcyBz dXBwb3J0Cm9wdGlvbnMgCVVGU19BQ0wJCQkjU3VwcG9ydCBmb3IgYWNjZXNzIGNvbnRyb2wgbGlz dHMKb3B0aW9ucyAJVUZTX0RJUkhBU0gJCSNJbXByb3ZlIHBlcmZvcm1hbmNlIG9uIGJpZyBkaXJl Y3RvcmllcwpvcHRpb25zIAlNU0RPU0ZTCQkJI01TRE9TIEZpbGVzeXN0ZW0KI29wdGlvbnMgCUNE OTY2MAkJCSNJU08gOTY2MCBGaWxlc3lzdGVtCm9wdGlvbnMgCVBST0NGUwkJCSNQcm9jZXNzIGZp bGVzeXN0ZW0gKHJlcXVpcmVzIFBTRVVET0ZTKQpvcHRpb25zIAlQU0VVRE9GUwkJI1BzZXVkby1m aWxlc3lzdGVtIGZyYW1ld29yawpvcHRpb25zIAlDT01QQVRfNDMJCSNDb21wYXRpYmxlIHdpdGgg QlNEIDQuMyBbS0VFUCBUSElTIV0Kb3B0aW9ucyAJU0NTSV9ERUxBWT01MDAwCQkjRGVsYXkgKGlu IG1zKSBiZWZvcmUgcHJvYmluZyBTQ1NJCm9wdGlvbnMgCUtUUkFDRQkJCSNrdHJhY2UoMSkgc3Vw cG9ydApvcHRpb25zIAlTWVNWU0hNCQkJI1NZU1Ytc3R5bGUgc2hhcmVkIG1lbW9yeQpvcHRpb25z IAlTWVNWTVNHCQkJI1NZU1Ytc3R5bGUgbWVzc2FnZSBxdWV1ZXMKb3B0aW9ucyAJU1lTVlNFTQkJ CSNTWVNWLXN0eWxlIHNlbWFwaG9yZXMKb3B0aW9ucyAJX0tQT1NJWF9QUklPUklUWV9TQ0hFRFVM SU5HICNQb3NpeCBQMTAwM18xQiByZWFsLXRpbWUgZXh0ZW5zaW9ucwpvcHRpb25zIAlLQkRfSU5T VEFMTF9DREVWCSMgaW5zdGFsbCBhIENERVYgZW50cnkgaW4gL2RldgpvcHRpb25zIAlQUkVFTVBU SU9OCm9wdGlvbnMgCUZSRUVCU0RfQk9PVF9MT0FERVIKCiMgRGVidWdnaW5nCm1ha2VvcHRpb25z CURFQlVHPS1nCQkjQnVpbGQga2VybmVsIHdpdGggZ2RiKDEpIGRlYnVnIHN5bWJvbHMKb3B0aW9u cyAJQlJFQUtfVE9fREVCVUdHRVIKI29wdGlvbnMgCVZFUkJPU0VfU1lTSU5JVAkJI0VuYWJsZSB2 ZXJib3NlIHN5c2luaXQgbWVzc2FnZXMKb3B0aW9ucyAJS0RCCm9wdGlvbnMgCUREQgkJCSNFbmFi bGUgdGhlIGtlcm5lbCBkZWJ1Z2dlcgpvcHRpb25zIAlJTlZBUklBTlRTCQkjRW5hYmxlIGNhbGxz IG9mIGV4dHJhIHNhbml0eSBjaGVja2luZwpvcHRpb25zIAlJTlZBUklBTlRfU1VQUE9SVAkjRXh0 cmEgc2FuaXR5IGNoZWNrcyBvZiBpbnRlcm5hbCBzdHJ1Y3R1cmVzLCByZXF1aXJlZCBieSBJTlZB UklBTlRTCm9wdGlvbnMgCVdJVE5FU1MJCQkjRW5hYmxlIGNoZWNrcyB0byBkZXRlY3QgZGVhZGxv Y2tzIGFuZCBjeWNsZXMKb3B0aW9ucyAJV0lUTkVTU19TS0lQU1BJTgkjRG9uJ3QgcnVuIHdpdG5l c3Mgb24gc3BpbmxvY2tzIGZvciBzcGVlZAojb3B0aW9ucyAJRElBR05PU1RJQwoKIyBORlMgc3Vw cG9ydAojb3B0aW9ucyAJTkZTQ0wKI29wdGlvbnMgCU5GU1NFUlZFUgkJI05ldHdvcmsgRmlsZXN5 c3RlbSBTZXJ2ZXIKI29wdGlvbnMgCU5GU0NMSUVOVAkJI05ldHdvcmsgRmlsZXN5c3RlbSBDbGll bnQKCiMgVW5jb21tZW50IHRoaXMgZm9yIE5GUyByb290CiNvcHRpb25zIAlORlNfUk9PVAkJI05G UyB1c2FibGUgYXMgLywgcmVxdWlyZXMgTkZTQ0xJRU5UCiNvcHRpb25zIAlCT09UUF9ORlNST09U CiNvcHRpb25zIAlCT09UUF9DT01QQVQKI29wdGlvbnMgCUJPT1RQCiNvcHRpb25zIAlCT09UUF9O RlNWMwojb3B0aW9ucyAJQk9PVFBfV0lSRURfVE89Y3BzdzAKCiNvcHRpb25zICAgICAgICAgTURf Uk9PVAojb3B0aW9ucyAgICAgICAgIE1EX1JPT1RfU0laRT0zMjc2OAojbWFrZW9wdGlvbnMgICAg IE1GU19JTUFHRT0vcm9vdC9yb290LnVmcwojb3B0aW9ucyAgICAgICAgIFJPT1RERVZOQU1FPVwi dWZzOm1kMFwiCgojIE1NQy9TRC9TRElPIGNhcmQgc2xvdCBzdXBwb3J0CmRldmljZQkJbW1jCQkJ IyBtbWMvc2QgYnVzCmRldmljZQkJbW1jc2QJCQkjIG1tYy9zZCBmbGFzaCBjYXJkcwoKIyBCb290 IGRldmljZSBpcyAybmQgc2xpY2Ugb24gTU1DL1NEIGNhcmQKb3B0aW9ucwkJUk9PVERFVk5BTUU9 XCJ1ZnM6L2Rldi9tbWNzZDBzMlwiCgojIEFUQSBjb250cm9sbGVycwojZGV2aWNlCQlhaGNpCQkj IEFIQ0ktY29tcGF0aWJsZSBTQVRBIGNvbnRyb2xsZXJzCiNkZXZpY2UJCWF0YQkJIyBMZWdhY3kg QVRBL1NBVEEgY29udHJvbGxlcnMKI29wdGlvbnMJQVRBX0NBTQkJIyBIYW5kbGUgbGVnYWN5IGNv bnRyb2xsZXJzIHdpdGggQ0FNCiNvcHRpb25zCUFUQV9TVEFUSUNfSUQJIyBTdGF0aWMgZGV2aWNl IG51bWJlcmluZwoKIyBDb25zb2xlIGFuZCBtaXNjCmRldmljZQkJdWFydApkZXZpY2UJCXVhcnRf bnM4MjUwCmRldmljZQkJcHR5CmRldmljZQkJc25wCmRldmljZQkJbWQKZGV2aWNlCQlyYW5kb20J CQkjIEVudHJvcHkgZGV2aWNlCgojIEkyQyBzdXBwb3J0CiNkZXZpY2UJCWlpY2J1cwojZGV2aWNl CQlpaWMKCiMgTkFORAojZGV2aWNlCQluYW5kCgojIEdQSU8KZGV2aWNlCQlncGlvCgpkZXZpY2UJ CXNjYnVzCQkJIyBTQ1NJIGJ1cyAocmVxdWlyZWQgZm9yIFNDU0kpCmRldmljZQkJZGEJCQkjIERp cmVjdCBBY2Nlc3MgKGRpc2tzKQpkZXZpY2UJCXBhc3MKCiMgVVNCIHN1cHBvcnQKZGV2aWNlCQl1 c2IKb3B0aW9ucyAJVVNCX0RFQlVHCm9wdGlvbnMgCVVTQl9SRVFfREVCVUcKb3B0aW9ucyAJVVNC X1ZFUkJPU0UKI2RldmljZQkJdWhjaQojZGV2aWNlCQlvaGNpCmRldmljZQkJZWhjaQpkZXZpY2UJ CXVtYXNzCmRldmljZQkJdW1zCmRldmljZQkJbXVzYgoKIyBFdGhlcm5ldApkZXZpY2UJCWxvb3AK ZGV2aWNlCQlldGhlcgpkZXZpY2UJCW1paQpkZXZpY2UJCXNtc2NwaHkKI2RldmljZQkJY3Bzdwpk ZXZpY2UJCWJwZgoKIyBVU0IgZXRoZXJuZXQgc3VwcG9ydCwgcmVxdWlyZXMgbWlpYnVzCmRldmlj ZQkJbWlpYnVzCgpkZXZpY2UJCWZpcm13YXJlCgpkZXZpY2UJCXdsYW4KCiMgRmxhdHRlbmVkIERl dmljZSBUcmVlCm9wdGlvbnMJCUZEVApvcHRpb25zCQlGRFRfRFRCX1NUQVRJQwptYWtlb3B0aW9u cwlGRFRfRFRTX0ZJTEU9aGFja2JlcnJ5LmR0cwoK --001a11c1c556924ed204e0273ed1--