From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754773Ab2DWNB4 (ORCPT ); Mon, 23 Apr 2012 09:01:56 -0400 Received: from static.153.120.9.176.clients.your-server.de ([176.9.120.153]:47474 "EHLO gandalf.zerties.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752526Ab2DWNBz (ORCPT ); Mon, 23 Apr 2012 09:01:55 -0400 X-Greylist: delayed 1108 seconds by postgrey-1.27 at vger.kernel.org; Mon, 23 Apr 2012 09:01:54 EDT From: Christian Dietrich To: Jiandong Zheng , Scott Branden , Russell King , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, vamos-dev@i4.informatik.uni-erlangen.de Subject: Possible integer overflow in mach-bcmring with FPGA11107 Date: Mon, 23 Apr 2012 14:43:15 +0200 Message-ID: <86r4veipp8.fsf@gandalf.zerties.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-=-= Hi, due to statical analysis, i think i found a possible integer overflow in the timer (sp804) code, when mach-bcmring is used together with FPGA11107. All following line numbers are according to Linux v3.2, but the problem should be still in Linux HEAD (if i haven't missed anything). Ok here is the Problem: ,----[arch/arm/mach-bcmring/clock.h:24]------------------ | struct clk { | [..] | unsigned long rate_hz; /* clock rate in Hz */ | [..] | }; `---- ,---- | % arm-linux-gnueabihf-cpp-4.6 -dM /dev/null | grep __SIZEOF_LONG__ | #define __SIZEOF_LONG__ 4 `---- As you see rate_hz is defined as long, but long is according to gnueabihf (and gnueabi) 4 bytes long. I hope i got the right compiler here. ,----[arch/arm/mach-bcmring/include/mach/csp/tmrHw_reg.h]---- | #if defined(CFG_GLOBAL_CHIP) && (CFG_GLOBAL_CHIP == FPGA11107) | #define tmrHw_HIGH_FREQUENCY_MHZ 150 /* Always 150MHz for FPGA */ | #define tmrHw_HIGH_FREQUENCY_HZ 150000000 | #else | [..] | #endif `---- When FPGA11107 is used the frequency is set to 150 000 000 Hz. ,----[arch/arm/mach-bcmring/core.c:100]--- | #if defined(CONFIG_ARCH_FPGA11107) | /* fpga cpu/bus are currently 30 times slower so scale frequency as well to */ | /* slow down Linux's sense of time */ | [..] | #define TIMER3_FREQUENCY_KHZ (tmrHw_HIGH_FREQUENCY_HZ / 1000 * 30) | #else | [..] | #define TIMER3_FREQUENCY_KHZ (tmrHw_HIGH_FREQUENCY_HZ / 1000) | #endif `---- ,----[arch/arm/mach-bcmring/core.c:121]--- | static struct clk sp804_timer3_clk = { | .name = "sp804-timer-3", | .type = CLK_TYPE_PRIMARY, | .mode = CLK_MODE_XTAL, | .rate_hz = TIMER3_FREQUENCY_KHZ * 1000, | }; `---- This seems totally innocent, but when doing the caluculation for rate_hz by hand (or python) the result is slighly bigger than 2^32-1. Therfore an integer overflow should occur and the rate_hz rate will be far too low. It may be that there is a sanity check in hardware, but i don't know the used hardware at all. ,----[python shell] | >>> tmrHw_HIGH_FREQUENCY_HZ = 150000000 | >>> TIMER3_FREQUENCY_KHZ = (tmrHw_HIGH_FREQUENCY_HZ / 1000 * 30) | >>> rate_hz = TIMER3_FREQUENCY_KHZ * 1000 | >>> | >>> import math | >>> math.log(rate_hz, 2) # Bits used | 32.06727785542857 | >>> rate_hz % 2**32 | 205032704L `---- I hope my observations are correct, and this is a real bug and i didn't just waste your time. For better testing the issue i will append the used configuration. I just did: ,---- | cp ~/mach-bcmring.config .config | ARCH=arm make silentoldconfig | ARCH=arm SUBARCH=arm KERNELVERSION="v3.2" make arch/arm/mach-bcmring/core.o CC=arm-linux-gnueabi-gcc-4.5 | [...] | CC arch/arm/mach-bcmring/core.o | arch/arm/mach-bcmring/core.c:125:34: warning: integer overflow in expression `---- chris --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=mach-bcmring.config Content-Transfer-Encoding: base64 IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGU7IERPIE5PVCBFRElULgojIExpbnV4L2Fy bSAzLjIuMCBLZXJuZWwgQ29uZmlndXJhdGlvbgojCkNPTkZJR19BUk09eQpDT05GSUdfSEFWRV9Q V009eQpDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQpDT05GSUdfR0VORVJJQ19H UElPPXkKIyBDT05GSUdfQVJDSF9VU0VTX0dFVFRJTUVPRkZTRVQgaXMgbm90IHNldApDT05GSUdf R0VORVJJQ19DTE9DS0VWRU5UUz15CkNPTkZJR19LVElNRV9TQ0FMQVI9eQpDT05GSUdfSEFWRV9Q Uk9DX0NQVT15CkNPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQpDT05GSUdfSEFWRV9MQVRFTkNZ VE9QX1NVUFBPUlQ9eQpDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKQ09ORklHX1RSQUNFX0lSUUZM QUdTX1NVUFBPUlQ9eQpDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKQ09ORklHX0dFTkVSSUNf SVJRX1BST0JFPXkKQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQpDT05GSUdfQVJDSF9I QVNfQ1BVX0lETEVfV0FJVD15CkNPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpDT05GSUdfR0VORVJJ Q19DQUxJQlJBVEVfREVMQVk9eQpDT05GSUdfTkVFRF9ETUFfTUFQX1NUQVRFPXkKQ09ORklHX1ZF Q1RPUlNfQkFTRT0weGZmZmYwMDAwCkNPTkZJR19BUk1fUEFUQ0hfUEhZU19WSVJUPXkKQ09ORklH X0dFTkVSSUNfQlVHPXkKQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1F X1JFTEVBU0UvLmNvbmZpZyIKQ09ORklHX0hBVkVfSVJRX1dPUks9eQpDT05GSUdfSVJRX1dPUks9 eQoKIwojIEdlbmVyYWwgc2V0dXAKIwpDT05GSUdfRVhQRVJJTUVOVEFMPXkKQ09ORklHX0JST0tF Tl9PTl9TTVA9eQpDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCkNPTkZJR19DUk9TU19DT01Q SUxFPSIiCkNPTkZJR19MT0NBTFZFUlNJT049IiIKQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkK Q09ORklHX0hBVkVfS0VSTkVMX0daSVA9eQpDT05GSUdfSEFWRV9LRVJORUxfTFpNQT15CkNPTkZJ R19IQVZFX0tFUk5FTF9MWk89eQpDT05GSUdfS0VSTkVMX0daSVA9eQojIENPTkZJR19LRVJORUxf TFpNQSBpcyBub3Qgc2V0CiMgQ09ORklHX0tFUk5FTF9MWk8gaXMgbm90IHNldApDT05GSUdfREVG QVVMVF9IT1NUTkFNRT0iKG5vbmUpIgpDT05GSUdfU1dBUD15CiMgQ09ORklHX1NZU1ZJUEMgaXMg bm90IHNldAojIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAojIENPTkZJR19CU0RfUFJP Q0VTU19BQ0NUIGlzIG5vdCBzZXQKIyBDT05GSUdfRkhBTkRMRSBpcyBub3Qgc2V0CiMgQ09ORklH X1RBU0tTVEFUUyBpcyBub3Qgc2V0CkNPTkZJR19BVURJVD15CkNPTkZJR19IQVZFX0dFTkVSSUNf SEFSRElSUVM9eQoKIwojIElSUSBzdWJzeXN0ZW0KIwpDT05GSUdfR0VORVJJQ19IQVJESVJRUz15 CkNPTkZJR19IQVZFX1NQQVJTRV9JUlE9eQpDT05GSUdfR0VORVJJQ19JUlFfU0hPVz15CkNPTkZJ R19JUlFfRE9NQUlOPXkKQ09ORklHX1NQQVJTRV9JUlE9eQoKIwojIFJDVSBTdWJzeXN0ZW0KIwpD T05GSUdfVElOWV9SQ1U9eQojIENPTkZJR19QUkVFTVBUX1JDVSBpcyBub3Qgc2V0CiMgQ09ORklH X1JDVV9UUkFDRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RSRUVfUkNVX1RSQUNFIGlzIG5vdCBzZXQK IyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldApDT05GSUdfTE9HX0JVRl9TSElGVD0xNwojIENP TkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKQ09ORklHX05BTUVTUEFDRVM9eQpDT05GSUdfVVRTX05T PXkKQ09ORklHX1VTRVJfTlM9eQpDT05GSUdfUElEX05TPXkKQ09ORklHX05FVF9OUz15CiMgQ09O RklHX1NDSEVEX0FVVE9HUk9VUCBpcyBub3Qgc2V0CiMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQg aXMgbm90IHNldAojIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfSU5J VFJEIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldApD T05GSUdfU1lTQ1RMPXkKQ09ORklHX0FOT05fSU5PREVTPXkKIyBDT05GSUdfRVhQRVJUIGlzIG5v dCBzZXQKQ09ORklHX1VJRDE2PXkKIyBDT05GSUdfU1lTQ1RMX1NZU0NBTEwgaXMgbm90IHNldApD T05GSUdfS0FMTFNZTVM9eQojIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldApDT05GSUdf SE9UUExVRz15CkNPTkZJR19QUklOVEs9eQpDT05GSUdfQlVHPXkKQ09ORklHX0VMRl9DT1JFPXkK Q09ORklHX0JBU0VfRlVMTD15CkNPTkZJR19GVVRFWD15CkNPTkZJR19FUE9MTD15CkNPTkZJR19T SUdOQUxGRD15CkNPTkZJR19USU1FUkZEPXkKQ09ORklHX0VWRU5URkQ9eQpDT05GSUdfU0hNRU09 eQpDT05GSUdfQUlPPXkKIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldApDT05GSUdfSEFWRV9Q RVJGX0VWRU5UUz15CkNPTkZJR19QRVJGX1VTRV9WTUFMTE9DPXkKCiMKIyBLZXJuZWwgUGVyZm9y bWFuY2UgRXZlbnRzIEFuZCBDb3VudGVycwojCkNPTkZJR19QRVJGX0VWRU5UUz15CiMgQ09ORklH X1BFUkZfQ09VTlRFUlMgaXMgbm90IHNldApDT05GSUdfREVCVUdfUEVSRl9VU0VfVk1BTExPQz15 CkNPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CkNPTkZJR19TTFVCX0RFQlVHPXkKQ09ORklHX0NP TVBBVF9CUks9eQojIENPTkZJR19TTEFCIGlzIG5vdCBzZXQKQ09ORklHX1NMVUI9eQojIENPTkZJ R19QUk9GSUxJTkcgaXMgbm90IHNldApDT05GSUdfSEFWRV9PUFJPRklMRT15CiMgQ09ORklHX0tQ Uk9CRVMgaXMgbm90IHNldApDT05GSUdfSEFWRV9LUFJPQkVTPXkKQ09ORklHX0hBVkVfS1JFVFBS T0JFUz15CkNPTkZJR19IQVZFX1JFR1NfQU5EX1NUQUNLX0FDQ0VTU19BUEk9eQpDT05GSUdfSEFW RV9DTEs9eQpDT05GSUdfSEFWRV9ETUFfQVBJX0RFQlVHPXkKQ09ORklHX0hBVkVfSFdfQlJFQUtQ T0lOVD15CgojCiMgR0NPVi1iYXNlZCBrZXJuZWwgcHJvZmlsaW5nCiMKQ09ORklHX0hBVkVfR0VO RVJJQ19ETUFfQ09IRVJFTlQ9eQpDT05GSUdfU0xBQklORk89eQpDT05GSUdfUlRfTVVURVhFUz15 CkNPTkZJR19CQVNFX1NNQUxMPTAKQ09ORklHX01PRFVMRVM9eQojIENPTkZJR19NT0RVTEVfRk9S Q0VfTE9BRCBpcyBub3Qgc2V0CiMgQ09ORklHX01PRFVMRV9VTkxPQUQgaXMgbm90IHNldAojIENP TkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CiMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FM TCBpcyBub3Qgc2V0CkNPTkZJR19CTE9DSz15CkNPTkZJR19MQkRBRj15CkNPTkZJR19CTEtfREVW X0JTRz15CiMgQ09ORklHX0JMS19ERVZfQlNHTElCIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RF Vl9JTlRFR1JJVFkgaXMgbm90IHNldAoKIwojIElPIFNjaGVkdWxlcnMKIwpDT05GSUdfSU9TQ0hF RF9OT09QPXkKQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQpDT05GSUdfSU9TQ0hFRF9DRlE9eQoj IENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfQ0ZRPXkK IyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0i Y2ZxIgojIENPTkZJR19JTkxJTkVfU1BJTl9UUllMT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5M SU5FX1NQSU5fVFJZTE9DS19CSCBpcyBub3Qgc2V0CiMgQ09ORklHX0lOTElORV9TUElOX0xPQ0sg aXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfU1BJTl9MT0NLX0JIIGlzIG5vdCBzZXQKIyBDT05G SUdfSU5MSU5FX1NQSU5fTE9DS19JUlEgaXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfU1BJTl9M T0NLX0lSUVNBVkUgaXMgbm90IHNldApDT05GSUdfSU5MSU5FX1NQSU5fVU5MT0NLPXkKIyBDT05G SUdfSU5MSU5FX1NQSU5fVU5MT0NLX0JIIGlzIG5vdCBzZXQKQ09ORklHX0lOTElORV9TUElOX1VO TE9DS19JUlE9eQojIENPTkZJR19JTkxJTkVfU1BJTl9VTkxPQ0tfSVJRUkVTVE9SRSBpcyBub3Qg c2V0CiMgQ09ORklHX0lOTElORV9SRUFEX1RSWUxPQ0sgaXMgbm90IHNldAojIENPTkZJR19JTkxJ TkVfUkVBRF9MT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5MSU5FX1JFQURfTE9DS19CSCBpcyBu b3Qgc2V0CiMgQ09ORklHX0lOTElORV9SRUFEX0xPQ0tfSVJRIGlzIG5vdCBzZXQKIyBDT05GSUdf SU5MSU5FX1JFQURfTE9DS19JUlFTQVZFIGlzIG5vdCBzZXQKQ09ORklHX0lOTElORV9SRUFEX1VO TE9DSz15CiMgQ09ORklHX0lOTElORV9SRUFEX1VOTE9DS19CSCBpcyBub3Qgc2V0CkNPTkZJR19J TkxJTkVfUkVBRF9VTkxPQ0tfSVJRPXkKIyBDT05GSUdfSU5MSU5FX1JFQURfVU5MT0NLX0lSUVJF U1RPUkUgaXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfV1JJVEVfVFJZTE9DSyBpcyBub3Qgc2V0 CiMgQ09ORklHX0lOTElORV9XUklURV9MT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5MSU5FX1dS SVRFX0xPQ0tfQkggaXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfV1JJVEVfTE9DS19JUlEgaXMg bm90IHNldAojIENPTkZJR19JTkxJTkVfV1JJVEVfTE9DS19JUlFTQVZFIGlzIG5vdCBzZXQKQ09O RklHX0lOTElORV9XUklURV9VTkxPQ0s9eQojIENPTkZJR19JTkxJTkVfV1JJVEVfVU5MT0NLX0JI IGlzIG5vdCBzZXQKQ09ORklHX0lOTElORV9XUklURV9VTkxPQ0tfSVJRPXkKIyBDT05GSUdfSU5M SU5FX1dSSVRFX1VOTE9DS19JUlFSRVNUT1JFIGlzIG5vdCBzZXQKIyBDT05GSUdfTVVURVhfU1BJ Tl9PTl9PV05FUiBpcyBub3Qgc2V0CkNPTkZJR19GUkVFWkVSPXkKCiMKIyBTeXN0ZW0gVHlwZQoj CkNPTkZJR19NTVU9eQojIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAojIENPTkZJ R19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90 IHNldAojIENPTkZJR19BUkNIX1ZFWFBSRVNTIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9BVDkx IGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfQkNNUklORz15CiMgQ09ORklHX0FSQ0hfSElHSEJBTksg aXMgbm90IHNldAojIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJD SF9DTlMzWFhYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9HRU1JTkkgaXMgbm90IHNldAojIENP TkZJR19BUkNIX1BSSU1BMiBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qg c2V0CiMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9GT09UQlJJ REdFIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAojIENPTkZJR19BUkNI X01YUyBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CiMgQ09ORklHX0FS Q0hfSDcyMFggaXMgbm90IHNldAojIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAojIENP TkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBz ZXQKIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9JWFAyMDAw IGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAojIENPTkZJR19BUkNI X0RPVkUgaXMgbm90IHNldAojIENPTkZJR19BUkNIX0tJUktXT09EIGlzIG5vdCBzZXQKIyBDT05G SUdfQVJDSF9MUEMzMlhYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9NVjc4WFgwIGlzIG5vdCBz ZXQKIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9NTVAgaXMg bm90IHNldAojIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfVzkw WDkwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfVEVHUkEgaXMgbm90IHNldAojIENPTkZJR19B UkNIX1BJQ09YQ0VMTCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0 CiMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9NU00gaXMgbm90IHNl dAojIENPTkZJR19BUkNIX1NITU9CSUxFIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9SUEMgaXMg bm90IHNldAojIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfUzND MjQxMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfUzNDNjRYWCBpcyBub3Qgc2V0CiMgQ09ORklH X0FSQ0hfUzVQNjRYMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfUzVQQzEwMCBpcyBub3Qgc2V0 CiMgQ09ORklHX0FSQ0hfUzVQVjIxMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfRVhZTk9TIGlz IG5vdCBzZXQKIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfVEND XzkyNiBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfVTMwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FS Q0hfVTg1MDAgaXMgbm90IHNldAojIENPTkZJR19BUkNIX05PTUFESUsgaXMgbm90IHNldAojIENP TkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAojIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNl dAojIENPTkZJR19QTEFUX1NQRUFSIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9WVDg1MDAgaXMg bm90IHNldAojIENPTkZJR19BUkNIX1pZTlEgaXMgbm90IHNldApDT05GSUdfQVJDSF9GUEdBMTEx MDc9eQojIENPTkZJR19BUkNIX0JDTTExMTA3IGlzIG5vdCBzZXQKCiMKIyBCQ01SSU5HIE9wdGlv bnMKIwpDT05GSUdfQkNNX1pSRUxBRERSPTAKIyBDT05GSUdfR1BJT19QQ0E5NTNYIGlzIG5vdCBz ZXQKIyBDT05GSUdfS0VZQk9BUkRfR1BJT19QT0xMRUQgaXMgbm90IHNldAoKIwojIFN5c3RlbSBN TVUKIwpDT05GSUdfQVJNX1RJTUVSX1NQODA0PXkKCiMKIyBQcm9jZXNzb3IgVHlwZQojCkNPTkZJ R19DUFVfVjY9eQpDT05GSUdfQ1BVXzMydjY9eQpDT05GSUdfQ1BVX0FCUlRfRVY2PXkKQ09ORklH X0NQVV9QQUJSVF9WNj15CkNPTkZJR19DUFVfQ0FDSEVfVjY9eQpDT05GSUdfQ1BVX0NBQ0hFX1ZJ UFQ9eQpDT05GSUdfQ1BVX0NPUFlfVjY9eQpDT05GSUdfQ1BVX1RMQl9WNj15CkNPTkZJR19DUFVf SEFTX0FTSUQ9eQpDT05GSUdfQ1BVX0NQMTU9eQpDT05GSUdfQ1BVX0NQMTVfTU1VPXkKQ09ORklH X0NQVV9VU0VfRE9NQUlOUz15CgojCiMgUHJvY2Vzc29yIEZlYXR1cmVzCiMKQ09ORklHX0FSTV9U SFVNQj15CiMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CiMgQ09ORklHX0NQ VV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CiMgQ09ORklHX0NQVV9CUFJFRElDVF9ESVNBQkxF IGlzIG5vdCBzZXQKQ09ORklHX0FSTV9MMV9DQUNIRV9TSElGVD01CkNPTkZJR19BUk1fRE1BX01F TV9CVUZGRVJBQkxFPXkKQ09ORklHX0NQVV9IQVNfUE1VPXkKIyBDT05GSUdfQVJNX0VSUkFUQV80 MTE5MjAgaXMgbm90IHNldAojIENPTkZJR19BUk1fRVJSQVRBXzM2NDI5NiBpcyBub3Qgc2V0Cgoj CiMgQnVzIHN1cHBvcnQKIwpDT05GSUdfQVJNX0FNQkE9eQojIENPTkZJR19QQ0lfU1lTQ0FMTCBp cyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKQ09ORklHX1BD Q0FSRD15CkNPTkZJR19QQ01DSUE9bQpDT05GSUdfUENNQ0lBX0xPQURfQ0lTPXkKCiMKIyBQQy1j YXJkIGJyaWRnZXMKIwoKIwojIEtlcm5lbCBGZWF0dXJlcwojCkNPTkZJR19USUNLX09ORVNIT1Q9 eQpDT05GSUdfTk9fSFo9eQpDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKQ09ORklHX0dFTkVSSUNf Q0xPQ0tFVkVOVFNfQlVJTEQ9eQojIENPTkZJR19WTVNQTElUXzNHIGlzIG5vdCBzZXQKIyBDT05G SUdfVk1TUExJVF8yRyBpcyBub3Qgc2V0CkNPTkZJR19WTVNQTElUXzFHPXkKQ09ORklHX1BBR0Vf T0ZGU0VUPTB4NDAwMDAwMDAKQ09ORklHX1BSRUVNUFRfTk9ORT15CiMgQ09ORklHX1BSRUVNUFRf Vk9MVU5UQVJZIGlzIG5vdCBzZXQKIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CkNPTkZJR19I Wj0xMDAKQ09ORklHX0FFQUJJPXkKQ09ORklHX09BQklfQ09NUEFUPXkKIyBDT05GSUdfQVJDSF9T UEFSU0VNRU1fREVGQVVMVCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfU0VMRUNUX01FTU9SWV9N T0RFTCBpcyBub3Qgc2V0CkNPTkZJR19IQVZFX0FSQ0hfUEZOX1ZBTElEPXkKIyBDT05GSUdfSElH SE1FTSBpcyBub3Qgc2V0CkNPTkZJR19IV19QRVJGX0VWRU5UUz15CkNPTkZJR19TRUxFQ1RfTUVN T1JZX01PREVMPXkKQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKQ09ORklHX0ZMQVRNRU09eQpDT05G SUdfRkxBVF9OT0RFX01FTV9NQVA9eQpDT05GSUdfSEFWRV9NRU1CTE9DSz15CkNPTkZJR19QQUdF RkxBR1NfRVhURU5ERUQ9eQpDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAojIENPTkZJR19DT01Q QUNUSU9OIGlzIG5vdCBzZXQKIyBDT05GSUdfUEhZU19BRERSX1RfNjRCSVQgaXMgbm90IHNldApD T05GSUdfWk9ORV9ETUFfRkxBRz0wCkNPTkZJR19WSVJUX1RPX0JVUz15CiMgQ09ORklHX0tTTSBp cyBub3Qgc2V0CkNPTkZJR19ERUZBVUxUX01NQVBfTUlOX0FERFI9NDA5NgpDT05GSUdfTkVFRF9Q RVJfQ1BVX0tNPXkKIyBDT05GSUdfQ0xFQU5DQUNIRSBpcyBub3Qgc2V0CkNPTkZJR19GT1JDRV9N QVhfWk9ORU9SREVSPTExCkNPTkZJR19BTElHTk1FTlRfVFJBUD15CiMgQ09ORklHX1VBQ0NFU1Nf V0lUSF9NRU1DUFkgaXMgbm90IHNldAojIENPTkZJR19TRUNDT01QIGlzIG5vdCBzZXQKIyBDT05G SUdfQ0NfU1RBQ0tQUk9URUNUT1IgaXMgbm90IHNldAojIENPTkZJR19ERVBSRUNBVEVEX1BBUkFN X1NUUlVDVCBpcyBub3Qgc2V0CgojCiMgQm9vdCBvcHRpb25zCiMKQ09ORklHX1VTRV9PRj15CkNP TkZJR19aQk9PVF9ST01fVEVYVD0wCkNPTkZJR19aQk9PVF9ST01fQlNTPTAKIyBDT05GSUdfQVJN X0FQUEVOREVEX0RUQiBpcyBub3Qgc2V0CkNPTkZJR19DTURMSU5FPSIiCiMgQ09ORklHX1hJUF9L RVJORUwgaXMgbm90IHNldAojIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CiMgQ09ORklHX0NSQVNI X0RVTVAgaXMgbm90IHNldAojIENPTkZJR19BVVRPX1pSRUxBRERSIGlzIG5vdCBzZXQKCiMKIyBD UFUgUG93ZXIgTWFuYWdlbWVudAojCkNPTkZJR19DUFVfSURMRT15CkNPTkZJR19DUFVfSURMRV9H T1ZfTEFEREVSPXkKQ09ORklHX0NQVV9JRExFX0dPVl9NRU5VPXkKCiMKIyBGbG9hdGluZyBwb2lu dCBlbXVsYXRpb24KIwoKIwojIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3Rl ZAojCiMgQ09ORklHX0ZQRV9OV0ZQRSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZQRV9GQVNURlBFIGlz IG5vdCBzZXQKIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKCiMKIyBVc2Vyc3BhY2UgYmluYXJ5IGZv cm1hdHMKIwpDT05GSUdfQklORk1UX0VMRj15CkNPTkZJR19DT1JFX0RVTVBfREVGQVVMVF9FTEZf SEVBREVSUz15CkNPTkZJR19IQVZFX0FPVVQ9eQojIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qg c2V0CiMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKCiMKIyBQb3dlciBtYW5hZ2VtZW50 IG9wdGlvbnMKIwpDT05GSUdfU1VTUEVORD15CkNPTkZJR19TVVNQRU5EX0ZSRUVaRVI9eQpDT05G SUdfUE1fU0xFRVA9eQpDT05GSUdfUE1fUlVOVElNRT15CkNPTkZJR19QTT15CiMgQ09ORklHX1BN X0RFQlVHIGlzIG5vdCBzZXQKIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CkNPTkZJ R19QTV9DTEs9eQpDT05GSUdfQ1BVX1BNPXkKQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15 CkNPTkZJR19BUk1fQ1BVX1NVU1BFTkQ9eQpDT05GSUdfTkVUPXkKCiMKIyBOZXR3b3JraW5nIG9w dGlvbnMKIwojIENPTkZJR19QQUNLRVQgaXMgbm90IHNldAojIENPTkZJR19VTklYIGlzIG5vdCBz ZXQKQ09ORklHX1hGUk09eQojIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAojIENPTkZJR19Y RlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAojIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNl dAojIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAojIENPTkZJR19ORVRfS0VZIGlz IG5vdCBzZXQKQ09ORklHX0lORVQ9eQojIENPTkZJR19JUF9NVUxUSUNBU1QgaXMgbm90IHNldAoj IENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAojIENPTkZJR19JUF9QTlAgaXMg bm90IHNldAojIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9JUEdSRV9E RU1VWCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSUEQgaXMgbm90IHNldAojIENPTkZJR19TWU5fQ09P S0lFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAojIENPTkZJR19JTkVU X0VTUCBpcyBub3Qgc2V0CiMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKIyBDT05GSUdf SU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CkNPTkZJR19JTkVUX1RVTk5FTD1tCkNPTkZJR19J TkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQpDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkK Q09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQpDT05GSUdfSU5FVF9MUk89eQpDT05GSUdfSU5F VF9ESUFHPXkKQ09ORklHX0lORVRfVENQX0RJQUc9eQojIENPTkZJR19UQ1BfQ09OR19BRFZBTkNF RCBpcyBub3Qgc2V0CkNPTkZJR19UQ1BfQ09OR19DVUJJQz15CkNPTkZJR19ERUZBVUxUX1RDUF9D T05HPSJjdWJpYyIKIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CkNPTkZJR19JUFY2PW0K IyBDT05GSUdfSVBWNl9QUklWQUNZIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBWNl9ST1VURVJfUFJF RiBpcyBub3Qgc2V0CiMgQ09ORklHX0lQVjZfT1BUSU1JU1RJQ19EQUQgaXMgbm90IHNldAojIENP TkZJR19JTkVUNl9BSCBpcyBub3Qgc2V0CiMgQ09ORklHX0lORVQ2X0VTUCBpcyBub3Qgc2V0CiMg Q09ORklHX0lORVQ2X0lQQ09NUCBpcyBub3Qgc2V0CiMgQ09ORklHX0lQVjZfTUlQNiBpcyBub3Qg c2V0CiMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5FVDZf VFVOTkVMIGlzIG5vdCBzZXQKQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UUkFOU1BPUlQ9bQpDT05G SUdfSU5FVDZfWEZSTV9NT0RFX1RVTk5FTD1tCkNPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD1t CiMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CkNP TkZJR19JUFY2X1NJVD1tCiMgQ09ORklHX0lQVjZfU0lUXzZSRCBpcyBub3Qgc2V0CkNPTkZJR19J UFY2X05ESVNDX05PREVUWVBFPXkKIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAojIENP TkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0lQVjZfTVJPVVRF IGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKIyBDT05GSUdf TkVUV09SS19QSFlfVElNRVNUQU1QSU5HIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVURklMVEVSIGlz IG5vdCBzZXQKIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CiMgQ09ORklHX0lQX1NDVFAgaXMg bm90IHNldAojIENPTkZJR19SRFMgaXMgbm90IHNldAojIENPTkZJR19USVBDIGlzIG5vdCBzZXQK IyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKIyBDT05GSUdfTDJUUCBpcyBub3Qgc2V0CiMgQ09ORklH X0JSSURHRSBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9EU0EgaXMgbm90IHNldAojIENPTkZJR19W TEFOXzgwMjFRIGlzIG5vdCBzZXQKIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKIyBDT05GSUdf TExDMiBpcyBub3Qgc2V0CiMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CiMgQ09ORklHX0FUQUxLIGlz IG5vdCBzZXQKIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0 CiMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CiMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNl dAojIENPTkZJR19QSE9ORVQgaXMgbm90IHNldAojIENPTkZJR19JRUVFODAyMTU0IGlzIG5vdCBz ZXQKIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKIyBDT05GSUdfRENCIGlzIG5vdCBzZXQK IyBDT05GSUdfQkFUTUFOX0FEViBpcyBub3Qgc2V0CgojCiMgTmV0d29yayB0ZXN0aW5nCiMKIyBD T05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CiMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQK Q09ORklHX0NBTj15CiMgQ09ORklHX0NBTl9SQVcgaXMgbm90IHNldAojIENPTkZJR19DQU5fQkNN IGlzIG5vdCBzZXQKIyBDT05GSUdfQ0FOX0dXIGlzIG5vdCBzZXQKCiMKIyBDQU4gRGV2aWNlIERy aXZlcnMKIwojIENPTkZJR19DQU5fVkNBTiBpcyBub3Qgc2V0CiMgQ09ORklHX0NBTl9TTENBTiBp cyBub3Qgc2V0CkNPTkZJR19DQU5fREVWPXkKQ09ORklHX0NBTl9DQUxDX0JJVFRJTUlORz15CiMg Q09ORklHX0NBTl9NQ1AyNTFYIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0FOX1NKQTEwMDAgaXMgbm90 IHNldAojIENPTkZJR19DQU5fQ19DQU4gaXMgbm90IHNldAoKIwojIENBTiBVU0IgaW50ZXJmYWNl cwojCiMgQ09ORklHX0NBTl9FTVNfVVNCIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0FOX0VTRF9VU0Iy IGlzIG5vdCBzZXQKIyBDT05GSUdfQ0FOX1NPRlRJTkcgaXMgbm90IHNldAojIENPTkZJR19DQU5f REVCVUdfREVWSUNFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0lSREEgaXMgbm90IHNldAojIENPTkZJ R19CVCBpcyBub3Qgc2V0CiMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKQ09ORklHX1dJUkVM RVNTPXkKIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAojIENPTkZJR19MSUI4MDIxMSBpcyBu b3Qgc2V0CgojCiMgQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTEKIwoj IENPTkZJR19XSU1BWCBpcyBub3Qgc2V0CiMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CiMgQ09O RklHX1JGS0lMTF9SRUdVTEFUT1IgaXMgbm90IHNldAojIENPTkZJR19ORVRfOVAgaXMgbm90IHNl dAojIENPTkZJR19DQUlGIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0VQSF9MSUIgaXMgbm90IHNldAoj IENPTkZJR19ORkMgaXMgbm90IHNldAoKIwojIERldmljZSBEcml2ZXJzCiMKCiMKIyBHZW5lcmlj IERyaXZlciBPcHRpb25zCiMKQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iIgojIENPTkZJR19E RVZUTVBGUyBpcyBub3Qgc2V0CkNPTkZJR19TVEFOREFMT05FPXkKQ09ORklHX1BSRVZFTlRfRklS TVdBUkVfQlVJTEQ9eQpDT05GSUdfRldfTE9BREVSPXkKQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5F TD15CkNPTkZJR19FWFRSQV9GSVJNV0FSRT0iIgojIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90 IHNldAojIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAojIENPTkZJR19TWVNfSFlQRVJW SVNPUiBpcyBub3Qgc2V0CkNPTkZJR19SRUdNQVA9eQpDT05GSUdfUkVHTUFQX0kyQz15CkNPTkZJ R19SRUdNQVBfU1BJPXkKIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKIyBDT05GSUdfTVRE IGlzIG5vdCBzZXQKQ09ORklHX0RUQz15CkNPTkZJR19PRj15CgojCiMgRGV2aWNlIFRyZWUgYW5k IE9wZW4gRmlybXdhcmUgc3VwcG9ydAojCiMgQ09ORklHX1BST0NfREVWSUNFVFJFRSBpcyBub3Qg c2V0CkNPTkZJR19PRl9GTEFUVFJFRT15CkNPTkZJR19PRl9FQVJMWV9GTEFUVFJFRT15CkNPTkZJ R19PRl9BRERSRVNTPXkKQ09ORklHX09GX0lSUT15CkNPTkZJR19PRl9ERVZJQ0U9eQpDT05GSUdf T0ZfR1BJTz15CkNPTkZJR19PRl9JMkM9eQpDT05GSUdfT0ZfTkVUPXkKQ09ORklHX09GX1NQST15 CiMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldApDT05GSUdfQkxLX0RFVj15CiMgQ09ORklHX0JM S19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfTE9PUCBpcyBub3Qg c2V0CgojCiMgRFJCRCBkaXNhYmxlZCBiZWNhdXNlIFBST0NfRlMsIElORVQgb3IgQ09OTkVDVE9S IG5vdCBzZWxlY3RlZAojCiMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKIyBDT05GSUdf QkxLX0RFVl9VQiBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKIyBD T05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBu b3Qgc2V0CiMgQ09ORklHX01HX0RJU0sgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX1JCRCBp cyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfTElTM0xWMDJEIGlzIG5vdCBzZXQKQ09ORklHX01J U0NfREVWSUNFUz15CiMgQ09ORklHX0FENTI1WF9EUE9UIGlzIG5vdCBzZXQKIyBDT05GSUdfQVRN RUxfUFdNIGlzIG5vdCBzZXQKIyBDT05GSUdfSUNTOTMyUzQwMSBpcyBub3Qgc2V0CiMgQ09ORklH X0VOQ0xPU1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0FQRFM5ODAyQUxTIGlzIG5v dCBzZXQKIyBDT05GSUdfSVNMMjkwMDMgaXMgbm90IHNldAojIENPTkZJR19JU0wyOTAyMCBpcyBu b3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNP UlNfQkgxNzgwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19CSDE3NzAgaXMgbm90IHNldAoj IENPTkZJR19TRU5TT1JTX0FQRFM5OTBYIGlzIG5vdCBzZXQKIyBDT05GSUdfSE1DNjM1MiBpcyBu b3Qgc2V0CiMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CiMgQ09ORklHX1RJX0RBQzc1MTIgaXMg bm90IHNldAojIENPTkZJR19CTVAwODUgaXMgbm90IHNldAojIENPTkZJR19VU0JfU1dJVENIX0ZT QTk0ODAgaXMgbm90IHNldAojIENPTkZJR19DMlBPUlQgaXMgbm90IHNldAoKIwojIEVFUFJPTSBz dXBwb3J0CiMKIyBDT05GSUdfRUVQUk9NX0FUMjQgaXMgbm90IHNldAojIENPTkZJR19FRVBST01f QVQyNSBpcyBub3Qgc2V0CiMgQ09ORklHX0VFUFJPTV9MRUdBQ1kgaXMgbm90IHNldAojIENPTkZJ R19FRVBST01fTUFYNjg3NSBpcyBub3Qgc2V0CiMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qg c2V0CiMgQ09ORklHX0VFUFJPTV85M1hYNDYgaXMgbm90IHNldAoKIwojIFRleGFzIEluc3RydW1l bnRzIHNoYXJlZCB0cmFuc3BvcnQgbGluZSBkaXNjaXBsaW5lCiMKIyBDT05GSUdfVElfU1QgaXMg bm90IHNldAojIENPTkZJR19TRU5TT1JTX0xJUzNfU1BJIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VO U09SU19MSVMzX0kyQyBpcyBub3Qgc2V0CgojCiMgQWx0ZXJhIEZQR0EgZmlybXdhcmUgZG93bmxv YWQgbW9kdWxlCiMKIyBDT05GSUdfQUxURVJBX1NUQVBMIGlzIG5vdCBzZXQKQ09ORklHX0hBVkVf SURFPXkKIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKCiMKIyBTQ1NJIGRldmljZSBzdXBwb3J0CiMK Q09ORklHX1NDU0lfTU9EPXkKIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CiMgQ09ORklH X1NDU0kgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0RNQSBpcyBub3Qgc2V0CiMgQ09ORklHX1ND U0lfTkVUTElOSyBpcyBub3Qgc2V0CiMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CiMgQ09ORklHX01E IGlzIG5vdCBzZXQKQ09ORklHX05FVERFVklDRVM9eQpDT05GSUdfTkVUX0NPUkU9eQojIENPTkZJ R19CT05ESU5HIGlzIG5vdCBzZXQKIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAojIENPTkZJR19F UVVBTElaRVIgaXMgbm90IHNldAojIENPTkZJR19NSUkgaXMgbm90IHNldAojIENPTkZJR19NQUNW TEFOIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CiMgQ09ORklHX05F VFBPTEwgaXMgbm90IHNldAojIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQK IyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CiMgQ09ORklH X0FSQ05FVCBpcyBub3Qgc2V0CgojCiMgQ0FJRiB0cmFuc3BvcnQgZHJpdmVycwojCkNPTkZJR19F VEhFUk5FVD15CkNPTkZJR19ORVRfVkVORE9SXzNDT009eQojIENPTkZJR19QQ01DSUFfM0M1NzQg aXMgbm90IHNldAojIENPTkZJR19QQ01DSUFfM0M1ODkgaXMgbm90IHNldApDT05GSUdfTkVUX1ZF TkRPUl9BTUQ9eQojIENPTkZJR19QQ01DSUFfTk1DTEFOIGlzIG5vdCBzZXQKQ09ORklHX05FVF9W RU5ET1JfQlJPQURDT009eQojIENPTkZJR19CNDQgaXMgbm90IHNldApDT05GSUdfTkVUX1ZFTkRP Ul9DSEVMU0lPPXkKIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKIyBDT05GSUdfRE5FVCBpcyBu b3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX0ZBUkFEQVk9eQojIENPTkZJR19GVE1BQzEwMCBpcyBu b3Qgc2V0CiMgQ09ORklHX0ZUR01BQzEwMCBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX0ZV SklUU1U9eQojIENPTkZJR19QQ01DSUFfRk1WSjE4WCBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVO RE9SX0lOVEVMPXkKQ09ORklHX05FVF9WRU5ET1JfSTgyNVhYPXkKQ09ORklHX05FVF9WRU5ET1Jf TUFSVkVMTD15CkNPTkZJR19ORVRfVkVORE9SX01JQ1JFTD15CiMgQ09ORklHX0tTODg1MSBpcyBu b3Qgc2V0CiMgQ09ORklHX0tTODg1MV9NTEwgaXMgbm90IHNldApDT05GSUdfTkVUX1ZFTkRPUl9N SUNST0NISVA9eQojIENPTkZJR19FTkMyOEo2MCBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9S X05BVFNFTUk9eQpDT05GSUdfTkVUX1ZFTkRPUl84MzkwPXkKIyBDT05GSUdfUENNQ0lBX0FYTkVU IGlzIG5vdCBzZXQKIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CiMgQ09ORklHX1BDTUNJQV9Q Q05FVCBpcyBub3Qgc2V0CiMgQ09ORklHX0VUSE9DIGlzIG5vdCBzZXQKQ09ORklHX05FVF9WRU5E T1JfU0VFUT15CiMgQ09ORklHX1NFRVE4MDA1IGlzIG5vdCBzZXQKQ09ORklHX05FVF9WRU5ET1Jf U01TQz15CiMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CiMgQ09ORklHX1BDTUNJQV9TTUM5MUM5 MiBpcyBub3Qgc2V0CiMgQ09ORklHX1NNQzkxMVggaXMgbm90IHNldAojIENPTkZJR19TTVNDOTEx WCBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX1NUTUlDUk89eQojIENPTkZJR19TVE1NQUNf RVRIIGlzIG5vdCBzZXQKQ09ORklHX05FVF9WRU5ET1JfWElSQ09NPXkKIyBDT05GSUdfUENNQ0lB X1hJUkMyUFMgaXMgbm90IHNldAojIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAojIENPTkZJR19Q UFAgaXMgbm90IHNldAojIENPTkZJR19TTElQIGlzIG5vdCBzZXQKIyBDT05GSUdfVFIgaXMgbm90 IHNldAoKIwojIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCiMKIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90 IHNldAojIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1BFR0FTVVMg aXMgbm90IHNldAojIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9V U0JORVQgaXMgbm90IHNldAojIENPTkZJR19VU0JfSVBIRVRIIGlzIG5vdCBzZXQKQ09ORklHX1dM QU49eQojIENPTkZJR19QQ01DSUFfUkFZQ1MgaXMgbm90IHNldAojIENPTkZJR19BVE1FTCBpcyBu b3Qgc2V0CiMgQ09ORklHX0FJUk9fQ1MgaXMgbm90IHNldAojIENPTkZJR19QQ01DSUFfV0wzNTAx IGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1pEMTIwMSBpcyBub3Qgc2V0CiMgQ09ORklHX0hPU1RB UCBpcyBub3Qgc2V0CgojCiMgRW5hYmxlIFdpTUFYIChOZXR3b3JraW5nIG9wdGlvbnMpIHRvIHNl ZSB0aGUgV2lNQVggZHJpdmVycwojCiMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiMgQ09ORklHX0lT RE4gaXMgbm90IHNldAojIENPTkZJR19QSE9ORSBpcyBub3Qgc2V0CgojCiMgSW5wdXQgZGV2aWNl IHN1cHBvcnQKIwpDT05GSUdfSU5QVVQ9eQojIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5v dCBzZXQKIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX1NQ QVJTRUtNQVAgaXMgbm90IHNldAoKIwojIFVzZXJsYW5kIGludGVyZmFjZXMKIwpDT05GSUdfSU5Q VVRfTU9VU0VERVY9eQpDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQpDT05GSUdfSU5QVVRf TU9VU0VERVZfU0NSRUVOX1g9MTAyNApDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4 CiMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX0VWREVWIGlz IG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAoKIwojIElucHV0IERldmlj ZSBEcml2ZXJzCiMKQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKIyBDT05GSUdfS0VZQk9BUkRfQURQ NTU4OCBpcyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJEX0FEUDU1ODkgaXMgbm90IHNldApDT05G SUdfS0VZQk9BUkRfQVRLQkQ9eQojIENPTkZJR19LRVlCT0FSRF9RVDEwNzAgaXMgbm90IHNldAoj IENPTkZJR19LRVlCT0FSRF9RVDIxNjAgaXMgbm90IHNldAojIENPTkZJR19LRVlCT0FSRF9MS0tC RCBpcyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJEX0dQSU8gaXMgbm90IHNldAojIENPTkZJR19L RVlCT0FSRF9UQ0E2NDE2IGlzIG5vdCBzZXQKIyBDT05GSUdfS0VZQk9BUkRfTUFUUklYIGlzIG5v dCBzZXQKIyBDT05GSUdfS0VZQk9BUkRfTE04MzIzIGlzIG5vdCBzZXQKIyBDT05GSUdfS0VZQk9B UkRfTUFYNzM1OSBpcyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJEX01DUyBpcyBub3Qgc2V0CiMg Q09ORklHX0tFWUJPQVJEX01QUjEyMSBpcyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJEX05FV1RP TiBpcyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJEX09QRU5DT1JFUyBpcyBub3Qgc2V0CiMgQ09O RklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JE IGlzIG5vdCBzZXQKIyBDT05GSUdfS0VZQk9BUkRfVFdMNDAzMCBpcyBub3Qgc2V0CiMgQ09ORklH X0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKQ09ORklHX0lOUFVUX01PVVNFPXkKQ09ORklHX01P VVNFX1BTMj15CkNPTkZJR19NT1VTRV9QUzJfQUxQUz15CkNPTkZJR19NT1VTRV9QUzJfTE9HSVBT MlBQPXkKQ09ORklHX01PVVNFX1BTMl9TWU5BUFRJQ1M9eQpDT05GSUdfTU9VU0VfUFMyX1RSQUNL UE9JTlQ9eQojIENPTkZJR19NT1VTRV9QUzJfRUxBTlRFQ0ggaXMgbm90IHNldAojIENPTkZJR19N T1VTRV9QUzJfU0VOVEVMSUMgaXMgbm90IHNldAojIENPTkZJR19NT1VTRV9QUzJfVE9VQ0hLSVQg aXMgbm90IHNldAojIENPTkZJR19NT1VTRV9TRVJJQUwgaXMgbm90IHNldAojIENPTkZJR19NT1VT RV9BUFBMRVRPVUNIIGlzIG5vdCBzZXQKIyBDT05GSUdfTU9VU0VfQkNNNTk3NCBpcyBub3Qgc2V0 CiMgQ09ORklHX01PVVNFX1ZTWFhYQUEgaXMgbm90IHNldAojIENPTkZJR19NT1VTRV9HUElPIGlz IG5vdCBzZXQKIyBDT05GSUdfTU9VU0VfU1lOQVBUSUNTX0kyQyBpcyBub3Qgc2V0CiMgQ09ORklH X0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBz ZXQKIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAojIENPTkZJR19JTlBVVF9N SVNDIGlzIG5vdCBzZXQKCiMKIyBIYXJkd2FyZSBJL08gcG9ydHMKIwpDT05GSUdfU0VSSU89eQpD T05GSUdfU0VSSU9fU0VSUE9SVD15CiMgQ09ORklHX1NFUklPX0FNQkFLTUkgaXMgbm90IHNldApD T05GSUdfU0VSSU9fTElCUFMyPXkKIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKIyBDT05G SUdfU0VSSU9fQUxURVJBX1BTMiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklPX1BTMk1VTFQgaXMg bm90IHNldAojIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CgojCiMgQ2hhcmFjdGVyIGRldmlj ZXMKIwpDT05GSUdfVlQ9eQpDT05GSUdfQ09OU09MRV9UUkFOU0xBVElPTlM9eQpDT05GSUdfVlRf Q09OU09MRT15CkNPTkZJR19WVF9DT05TT0xFX1NMRUVQPXkKQ09ORklHX0hXX0NPTlNPTEU9eQoj IENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldApDT05GSUdfVU5JWDk4X1BU WVM9eQojIENPTkZJR19ERVZQVFNfTVVMVElQTEVfSU5TVEFOQ0VTIGlzIG5vdCBzZXQKQ09ORklH X0xFR0FDWV9QVFlTPXkKQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CiMgQ09ORklHX1NFUklB TF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiMgQ09ORklHX05fR1NNIGlzIG5vdCBzZXQKIyBDT05G SUdfVFJBQ0VfU0lOSyBpcyBub3Qgc2V0CkNPTkZJR19ERVZLTUVNPXkKCiMKIyBTZXJpYWwgZHJp dmVycwojCiMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKCiMKIyBOb24tODI1MCBzZXJp YWwgcG9ydCBzdXBwb3J0CiMKIyBDT05GSUdfU0VSSUFMX0FNQkFfUEwwMTAgaXMgbm90IHNldAoj IENPTkZJR19TRVJJQUxfQU1CQV9QTDAxMSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklBTF9NQVgz MTAwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VSSUFMX01BWDMxMDcgaXMgbm90IHNldAojIENPTkZJ R19TRVJJQUxfVElNQkVSREFMRSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklBTF9BTFRFUkFfSlRB R1VBUlQgaXMgbm90IHNldAojIENPTkZJR19TRVJJQUxfQUxURVJBX1VBUlQgaXMgbm90IHNldAoj IENPTkZJR19TRVJJQUxfSUZYNlg2MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklBTF9YSUxJTlhf UFNfVUFSVCBpcyBub3Qgc2V0CiMgQ09ORklHX0hWQ19EQ0MgaXMgbm90IHNldAojIENPTkZJR19J UE1JX0hBTkRMRVIgaXMgbm90IHNldApDT05GSUdfSFdfUkFORE9NPW0KIyBDT05GSUdfSFdfUkFO RE9NX1RJTUVSSU9NRU0gaXMgbm90IHNldAojIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CgojCiMg UENNQ0lBIGNoYXJhY3RlciBkZXZpY2VzCiMKIyBDT05GSUdfU1lOQ0xJTktfQ1MgaXMgbm90IHNl dAojIENPTkZJR19DQVJETUFOXzQwMDAgaXMgbm90IHNldAojIENPTkZJR19DQVJETUFOXzQwNDAg aXMgbm90IHNldAojIENPTkZJR19JUFdJUkVMRVNTIGlzIG5vdCBzZXQKIyBDT05GSUdfUkFXX0RS SVZFUiBpcyBub3Qgc2V0CiMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAojIENPTkZJR19SQU1P T1BTIGlzIG5vdCBzZXQKQ09ORklHX0kyQz15CkNPTkZJR19JMkNfQk9BUkRJTkZPPXkKQ09ORklH X0kyQ19DT01QQVQ9eQojIENPTkZJR19JMkNfQ0hBUkRFViBpcyBub3Qgc2V0CiMgQ09ORklHX0ky Q19NVVggaXMgbm90IHNldApDT05GSUdfSTJDX0hFTFBFUl9BVVRPPXkKCiMKIyBJMkMgSGFyZHdh cmUgQnVzIHN1cHBvcnQKIwoKIwojIEkyQyBzeXN0ZW0gYnVzIGRyaXZlcnMgKG1vc3RseSBlbWJl ZGRlZCAvIHN5c3RlbS1vbi1jaGlwKQojCiMgQ09ORklHX0kyQ19ERVNJR05XQVJFX1BMQVRGT1JN IGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX0dQSU8gaXMgbm90IHNldAojIENPTkZJR19JMkNfT0NP UkVTIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiMgQ09O RklHX0kyQ19QWEFfUENJIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0 CiMgQ09ORklHX0kyQ19YSUxJTlggaXMgbm90IHNldAoKIwojIEV4dGVybmFsIEkyQy9TTUJ1cyBh ZGFwdGVyIGRyaXZlcnMKIwojIENPTkZJR19JMkNfRElPTEFOX1UyQyBpcyBub3Qgc2V0CiMgQ09O RklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlz IG5vdCBzZXQKIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKCiMKIyBPdGhlciBJMkMv U01CdXMgYnVzIGRyaXZlcnMKIwojIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CiMgQ09ORklH X0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90 IHNldAojIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKQ09ORklHX1NQST15CiMgQ09O RklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19TUElfTUFTVEVSPXkKCiMKIyBTUEkgTWFz dGVyIENvbnRyb2xsZXIgRHJpdmVycwojCiMgQ09ORklHX1NQSV9BTFRFUkEgaXMgbm90IHNldAoj IENPTkZJR19TUElfQklUQkFORyBpcyBub3Qgc2V0CiMgQ09ORklHX1NQSV9HUElPIGlzIG5vdCBz ZXQKIyBDT05GSUdfU1BJX09DX1RJTlkgaXMgbm90IHNldAojIENPTkZJR19TUElfUEwwMjIgaXMg bm90IHNldAojIENPTkZJR19TUElfUFhBMlhYX1BDSSBpcyBub3Qgc2V0CiMgQ09ORklHX1NQSV9Y SUxJTlggaXMgbm90IHNldAojIENPTkZJR19TUElfREVTSUdOV0FSRSBpcyBub3Qgc2V0CgojCiMg U1BJIFByb3RvY29sIE1hc3RlcnMKIwojIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKIyBD T05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAoKIwojIFBQUyBzdXBwb3J0CiMKIyBDT05GSUdf UFBTIGlzIG5vdCBzZXQKCiMKIyBQUFMgZ2VuZXJhdG9ycyBzdXBwb3J0CiMKCiMKIyBQVFAgY2xv Y2sgc3VwcG9ydAojCgojCiMgRW5hYmxlIERldmljZSBEcml2ZXJzIC0+IFBQUyB0byBzZWUgdGhl IFBUUCBjbG9jayBvcHRpb25zLgojCkNPTkZJR19BUkNIX1dBTlRfT1BUSU9OQUxfR1BJT0xJQj15 CkNPTkZJR19HUElPTElCPXkKIyBDT05GSUdfREVCVUdfR1BJTyBpcyBub3Qgc2V0CkNPTkZJR19H UElPX1NZU0ZTPXkKCiMKIyBNZW1vcnkgbWFwcGVkIEdQSU8gZHJpdmVyczoKIwojIENPTkZJR19H UElPX0dFTkVSSUNfUExBVEZPUk0gaXMgbm90IHNldAojIENPTkZJR19HUElPX0lUODc2MUUgaXMg bm90IHNldApDT05GSUdfR1BJT19QTDA2MT15CgojCiMgSTJDIEdQSU8gZXhwYW5kZXJzOgojCiMg Q09ORklHX0dQSU9fTUFYNzMwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0dQSU9fTUFYNzMyWCBpcyBu b3Qgc2V0CiMgQ09ORklHX0dQSU9fUENGODU3WCBpcyBub3Qgc2V0CiMgQ09ORklHX0dQSU9fU1gx NTBYIGlzIG5vdCBzZXQKIyBDT05GSUdfR1BJT19UV0w0MDMwIGlzIG5vdCBzZXQKIyBDT05GSUdf R1BJT19XTTgzMVggaXMgbm90IHNldAojIENPTkZJR19HUElPX0FEUDU1ODggaXMgbm90IHNldAoK IwojIFBDSSBHUElPIGV4cGFuZGVyczoKIwoKIwojIFNQSSBHUElPIGV4cGFuZGVyczoKIwojIENP TkZJR19HUElPX01BWDczMDEgaXMgbm90IHNldAojIENPTkZJR19HUElPX01DUDIzUzA4IGlzIG5v dCBzZXQKIyBDT05GSUdfR1BJT19NQzMzODgwIGlzIG5vdCBzZXQKIyBDT05GSUdfR1BJT183NFgx NjQgaXMgbm90IHNldAoKIwojIEFDOTcgR1BJTyBleHBhbmRlcnM6CiMKCiMKIyBNT0RVTGJ1cyBH UElPIGV4cGFuZGVyczoKIwojIENPTkZJR19XMSBpcyBub3Qgc2V0CiMgQ09ORklHX1BPV0VSX1NV UFBMWSBpcyBub3Qgc2V0CkNPTkZJR19IV01PTj15CiMgQ09ORklHX0hXTU9OX1ZJRCBpcyBub3Qg c2V0CiMgQ09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAoKIwojIE5hdGl2ZSBkcml2 ZXJzCiMKIyBDT05GSUdfU0VOU09SU19BRDczMTQgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JT X0FENzQxNCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQUQ3NDE4IGlzIG5vdCBzZXQKIyBD T05GSUdfU0VOU09SU19BRENYWCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQURNMTAyMSBp cyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQURNMTAyNSBpcyBub3Qgc2V0CiMgQ09ORklHX1NF TlNPUlNfQURNMTAyNiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQURNMTAyOSBpcyBub3Qg c2V0CiMgQ09ORklHX1NFTlNPUlNfQURNMTAzMSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNf QURNOTI0MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQURUNzQxMSBpcyBub3Qgc2V0CiMg Q09ORklHX1NFTlNPUlNfQURUNzQ2MiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQURUNzQ3 MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQURUNzQ3NSBpcyBub3Qgc2V0CiMgQ09ORklH X1NFTlNPUlNfQVNDNzYyMSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQVRYUDEgaXMgbm90 IHNldAojIENPTkZJR19TRU5TT1JTX0RTNjIwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19E UzE2MjEgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0Y3MTgwNUYgaXMgbm90IHNldAojIENP TkZJR19TRU5TT1JTX0Y3MTg4MkZHIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19GNzUzNzVT IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19HNzYwQSBpcyBub3Qgc2V0CiMgQ09ORklHX1NF TlNPUlNfR0w1MThTTSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfR0w1MjBTTSBpcyBub3Qg c2V0CiMgQ09ORklHX1NFTlNPUlNfR1BJT19GQU4gaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JT X0lUODcgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0pDNDIgaXMgbm90IHNldAojIENPTkZJ R19TRU5TT1JTX0xJTkVBR0UgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNNjMgaXMgbm90 IHNldAojIENPTkZJR19TRU5TT1JTX0xNNzAgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xN NzMgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNNzUgaXMgbm90IHNldAojIENPTkZJR19T RU5TT1JTX0xNNzcgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNNzggaXMgbm90IHNldAoj IENPTkZJR19TRU5TT1JTX0xNODAgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNODMgaXMg bm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNODUgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JT X0xNODcgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNOTAgaXMgbm90IHNldAojIENPTkZJ R19TRU5TT1JTX0xNOTIgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNOTMgaXMgbm90IHNl dAojIENPTkZJR19TRU5TT1JTX0xUQzQxNTEgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xU QzQyMTUgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xUQzQyNDUgaXMgbm90IHNldAojIENP TkZJR19TRU5TT1JTX0xUQzQyNjEgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNOTUyNDEg aXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNOTUyNDUgaXMgbm90IHNldAojIENPTkZJR19T RU5TT1JTX01BWDExMTEgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX01BWDE2MDY1IGlzIG5v dCBzZXQKIyBDT05GSUdfU0VOU09SU19NQVgxNjE5IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09S U19NQVgxNjY4IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19NQVg2NjM5IGlzIG5vdCBzZXQK IyBDT05GSUdfU0VOU09SU19NQVg2NjQyIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19NQVg2 NjUwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19OVENfVEhFUk1JU1RPUiBpcyBub3Qgc2V0 CiMgQ09ORklHX1NFTlNPUlNfUEM4NzM2MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfUEM4 NzQyNyBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CiMgQ09O RklHX1BNQlVTIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19TSFQxNSBpcyBub3Qgc2V0CiMg Q09ORklHX1NFTlNPUlNfU0hUMjEgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1NNTTY2NSBp cyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfRE1FMTczNyBpcyBub3Qgc2V0CiMgQ09ORklHX1NF TlNPUlNfRU1DMTQwMyBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfRU1DMjEwMyBpcyBub3Qg c2V0CiMgQ09ORklHX1NFTlNPUlNfRU1DNlcyMDEgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JT X1NNU0M0N00xIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMTkyIGlzIG5vdCBz ZXQKIyBDT05GSUdfU0VOU09SU19TTVNDNDdCMzk3IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09S U19TQ0g1NlhYX0NPTU1PTiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfU0NINTYyNyBpcyBu b3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfU0NINTYzNiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNP UlNfQURTMTAxNSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQURTNzgyOCBpcyBub3Qgc2V0 CiMgQ09ORklHX1NFTlNPUlNfQURTNzg3MSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfQU1D NjgyMSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfVEhNQzUwIGlzIG5vdCBzZXQKIyBDT05G SUdfU0VOU09SU19UTVAxMDIgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1RNUDQwMSBpcyBu b3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfVE1QNDIxIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09S U19WVDEyMTEgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1c4Mzc4MUQgaXMgbm90IHNldAoj IENPTkZJR19TRU5TT1JTX1c4Mzc5MUQgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1c4Mzc5 MkQgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1c4Mzc5MyBpcyBub3Qgc2V0CiMgQ09ORklH X1NFTlNPUlNfVzgzNzk1IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19XODNMNzg1VFMgaXMg bm90IHNldAojIENPTkZJR19TRU5TT1JTX1c4M0w3ODZORyBpcyBub3Qgc2V0CiMgQ09ORklHX1NF TlNPUlNfVzgzNjI3SEYgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1c4MzYyN0VIRiBpcyBu b3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfV004MzFYIGlzIG5vdCBzZXQKIyBDT05GSUdfVEhFUk1B TCBpcyBub3Qgc2V0CkNPTkZJR19XQVRDSERPRz15CiMgQ09ORklHX1dBVENIRE9HX0NPUkUgaXMg bm90IHNldAojIENPTkZJR19XQVRDSERPR19OT1dBWU9VVCBpcyBub3Qgc2V0CgojCiMgV2F0Y2hk b2cgRGV2aWNlIERyaXZlcnMKIwojIENPTkZJR19TT0ZUX1dBVENIRE9HIGlzIG5vdCBzZXQKIyBD T05GSUdfV004MzFYX1dBVENIRE9HIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJNX1NQODA1X1dBVENI RE9HIGlzIG5vdCBzZXQKIyBDT05GSUdfRFdfV0FUQ0hET0cgaXMgbm90IHNldAojIENPTkZJR19U V0w0MDMwX1dBVENIRE9HIGlzIG5vdCBzZXQKIyBDT05GSUdfTUFYNjNYWF9XQVRDSERPRyBpcyBu b3Qgc2V0CgojCiMgVVNCLWJhc2VkIFdhdGNoZG9nIENhcmRzCiMKIyBDT05GSUdfVVNCUENXQVRD SERPRyBpcyBub3Qgc2V0CkNPTkZJR19TU0JfUE9TU0lCTEU9eQoKIwojIFNvbmljcyBTaWxpY29u IEJhY2twbGFuZQojCiMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CkNPTkZJR19CQ01BX1BPU1NJQkxF PXkKCiMKIyBCcm9hZGNvbSBzcGVjaWZpYyBBTUJBCiMKIyBDT05GSUdfQkNNQSBpcyBub3Qgc2V0 CgojCiMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwojCkNPTkZJR19NRkRfQ09SRT15CiMg Q09ORklHX01GRF84OFBNODYwWCBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qg c2V0CiMgQ09ORklHX01GRF9BU0lDMyBpcyBub3Qgc2V0CkNPTkZJR19IVENfRUdQSU89eQojIENP TkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIyBDT05GSUdfSFRDX0kyQ1BMRCBpcyBub3Qgc2V0 CiMgQ09ORklHX1RQUzYxMDVYIGlzIG5vdCBzZXQKIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNl dAojIENPTkZJR19UUFM2NTA3WCBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9UUFM2NTg2WCBpcyBu b3Qgc2V0CiMgQ09ORklHX01GRF9UUFM2NTkxMCBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9UUFM2 NTkxMl9JMkMgaXMgbm90IHNldAojIENPTkZJR19NRkRfVFBTNjU5MTJfU1BJIGlzIG5vdCBzZXQK Q09ORklHX1RXTDQwMzBfQ09SRT15CiMgQ09ORklHX1RXTDQwMzBfTUFEQyBpcyBub3Qgc2V0CiMg Q09ORklHX1RXTDQwMzBfUE9XRVIgaXMgbm90IHNldAojIENPTkZJR19NRkRfVFdMNDAzMF9BVURJ TyBpcyBub3Qgc2V0CkNPTkZJR19UV0w2MDMwX1BXTT1tCiMgQ09ORklHX1RXTDYwNDBfQ09SRSBp cyBub3Qgc2V0CiMgQ09ORklHX01GRF9TVE1QRSBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9UQzM1 ODlYIGlzIG5vdCBzZXQKQ09ORklHX01GRF9UTUlPPXkKQ09ORklHX01GRF9UN0w2NlhCPXkKQ09O RklHX01GRF9UQzYzODdYQj15CkNPTkZJR19NRkRfVEM2MzkzWEI9eQojIENPTkZJR19QTUlDX0RB OTAzWCBpcyBub3Qgc2V0CiMgQ09ORklHX1BNSUNfQURQNTUyMCBpcyBub3Qgc2V0CiMgQ09ORklH X01GRF9NQVg4OTI1IGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX01BWDg5OTcgaXMgbm90IHNldAoj IENPTkZJR19NRkRfTUFYODk5OCBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9XTTg0MDAgaXMgbm90 IHNldApDT05GSUdfTUZEX1dNODMxWD15CiMgQ09ORklHX01GRF9XTTgzMVhfSTJDIGlzIG5vdCBz ZXQKQ09ORklHX01GRF9XTTgzMVhfU1BJPXkKIyBDT05GSUdfTUZEX1dNODM1MF9JMkMgaXMgbm90 IHNldAojIENPTkZJR19NRkRfV004OTk0IGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX1BDRjUwNjMz IGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX01DMTNYWFggaXMgbm90IHNldApDT05GSUdfQUJYNTAw X0NPUkU9eQojIENPTkZJR19BQjMxMDBfQ09SRSBpcyBub3Qgc2V0CiMgQ09ORklHX0VaWF9QQ0FQ IGlzIG5vdCBzZXQKQ09ORklHX0FCODUwMF9DT1JFPXkKIyBDT05GSUdfTUZEX1dMMTI3M19DT1JF IGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX0FBVDI4NzBfQ09SRSBpcyBub3Qgc2V0CkNPTkZJR19S RUdVTEFUT1I9eQojIENPTkZJR19SRUdVTEFUT1JfREVCVUcgaXMgbm90IHNldAojIENPTkZJR19S RUdVTEFUT1JfRFVNTVkgaXMgbm90IHNldAojIENPTkZJR19SRUdVTEFUT1JfRklYRURfVk9MVEFH RSBpcyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9WSVJUVUFMX0NPTlNVTUVSIGlzIG5vdCBz ZXQKIyBDT05GSUdfUkVHVUxBVE9SX1VTRVJTUEFDRV9DT05TVU1FUiBpcyBub3Qgc2V0CiMgQ09O RklHX1JFR1VMQVRPUl9HUElPIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX0JRMjQwMjIg aXMgbm90IHNldAojIENPTkZJR19SRUdVTEFUT1JfTUFYMTU4NiBpcyBub3Qgc2V0CiMgQ09ORklH X1JFR1VMQVRPUl9NQVg4NjQ5IGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX01BWDg2NjAg aXMgbm90IHNldAojIENPTkZJR19SRUdVTEFUT1JfTUFYODk1MiBpcyBub3Qgc2V0CiMgQ09ORklH X1JFR1VMQVRPUl9UV0w0MDMwIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX1dNODMxWCBp cyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9MUDM5NzEgaXMgbm90IHNldAojIENPTkZJR19S RUdVTEFUT1JfTFAzOTcyIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1MDIzIGlz IG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1MDdYIGlzIG5vdCBzZXQKIyBDT05GSUdf UkVHVUxBVE9SX0lTTDYyNzFBIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX0FENTM5OCBp cyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9BQjg1MDAgaXMgbm90IHNldAojIENPTkZJR19S RUdVTEFUT1JfVFBTNjUyNFggaXMgbm90IHNldApDT05GSUdfTUVESUFfU1VQUE9SVD15CgojCiMg TXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKIwojIENPTkZJR19NRURJQV9DT05UUk9MTEVSIGlzIG5v dCBzZXQKQ09ORklHX1ZJREVPX0RFVj15CkNPTkZJR19WSURFT19WNEwyX0NPTU1PTj15CiMgQ09O RklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKQ09ORklHX1ZJREVPX01FRElBPXkKCiMKIyBNdWx0aW1l ZGlhIGRyaXZlcnMKIwpDT05GSUdfUkNfQ09SRT15CkNPTkZJR19MSVJDPXkKQ09ORklHX1JDX01B UD15CkNPTkZJR19JUl9ORUNfREVDT0RFUj15CkNPTkZJR19JUl9SQzVfREVDT0RFUj15CkNPTkZJ R19JUl9SQzZfREVDT0RFUj15CkNPTkZJR19JUl9KVkNfREVDT0RFUj15CkNPTkZJR19JUl9TT05Z X0RFQ09ERVI9eQpDT05GSUdfSVJfUkM1X1NaX0RFQ09ERVI9eQpDT05GSUdfSVJfTUNFX0tCRF9E RUNPREVSPXkKQ09ORklHX0lSX0xJUkNfQ09ERUM9eQojIENPTkZJR19SQ19BVElfUkVNT1RFIGlz IG5vdCBzZXQKIyBDT05GSUdfSVJfSU1PTiBpcyBub3Qgc2V0CiMgQ09ORklHX0lSX01DRVVTQiBp cyBub3Qgc2V0CiMgQ09ORklHX0lSX1JFRFJBVDMgaXMgbm90IHNldAojIENPTkZJR19JUl9TVFJF QU1aQVAgaXMgbm90IHNldAojIENPTkZJR19SQ19MT09QQkFDSyBpcyBub3Qgc2V0CiMgQ09ORklH X01FRElBX0FUVEFDSCBpcyBub3Qgc2V0CkNPTkZJR19NRURJQV9UVU5FUj15CiMgQ09ORklHX01F RElBX1RVTkVSX0NVU1RPTUlTRSBpcyBub3Qgc2V0CkNPTkZJR19NRURJQV9UVU5FUl9TSU1QTEU9 eQpDT05GSUdfTUVESUFfVFVORVJfVERBODI5MD15CkNPTkZJR19NRURJQV9UVU5FUl9UREE4MjdY PXkKQ09ORklHX01FRElBX1RVTkVSX1REQTE4MjcxPXkKQ09ORklHX01FRElBX1RVTkVSX1REQTk4 ODc9eQpDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2MT15CkNPTkZJR19NRURJQV9UVU5FUl9URUE1 NzY3PXkKQ09ORklHX01FRElBX1RVTkVSX01UMjBYWD15CkNPTkZJR19NRURJQV9UVU5FUl9YQzIw Mjg9eQpDT05GSUdfTUVESUFfVFVORVJfWEM1MDAwPXkKQ09ORklHX01FRElBX1RVTkVSX1hDNDAw MD15CkNPTkZJR19NRURJQV9UVU5FUl9NQzQ0UzgwMz15CkNPTkZJR19WSURFT19WNEwyPXkKQ09O RklHX1ZJREVPQlVGX0dFTj1tCkNPTkZJR19WSURFT0JVRjJfQ09SRT1tCkNPTkZJR19WSURFT19D QVBUVVJFX0RSSVZFUlM9eQojIENPTkZJR19WSURFT19BRFZfREVCVUcgaXMgbm90IHNldAojIENP TkZJR19WSURFT19GSVhFRF9NSU5PUl9SQU5HRVMgaXMgbm90IHNldApDT05GSUdfVklERU9fSEVM UEVSX0NISVBTX0FVVE89eQpDT05GSUdfVklERU9fSVJfSTJDPXkKCiMKIyBBdWRpbyBkZWNvZGVy cywgcHJvY2Vzc29ycyBhbmQgbWl4ZXJzCiMKCiMKIyBSRFMgZGVjb2RlcnMKIwoKIwojIFZpZGVv IGRlY29kZXJzCiMKCiMKIyBWaWRlbyBhbmQgYXVkaW8gZGVjb2RlcnMKIwoKIwojIE1QRUcgdmlk ZW8gZW5jb2RlcnMKIwoKIwojIFZpZGVvIGVuY29kZXJzCiMKCiMKIyBDYW1lcmEgc2Vuc29yIGRl dmljZXMKIwoKIwojIEZsYXNoIGRldmljZXMKIwoKIwojIFZpZGVvIGltcHJvdmVtZW50IGNoaXBz CiMKCiMKIyBNaXNjZWxhbmVvdXMgaGVscGVyIGNoaXBzCiMKIyBDT05GSUdfVklERU9fQ1BJQTIg aXMgbm90IHNldAojIENPTkZJR19WSURFT19USU1CRVJEQUxFIGlzIG5vdCBzZXQKQ09ORklHX1NP Q19DQU1FUkE9bQojIENPTkZJR19TT0NfQ0FNRVJBX0lNWDA3NCBpcyBub3Qgc2V0CiMgQ09ORklH X1NPQ19DQU1FUkFfTVQ5TTAwMSBpcyBub3Qgc2V0CiMgQ09ORklHX1NPQ19DQU1FUkFfTVQ5TTEx MSBpcyBub3Qgc2V0CiMgQ09ORklHX1NPQ19DQU1FUkFfTVQ5VDAzMSBpcyBub3Qgc2V0CiMgQ09O RklHX1NPQ19DQU1FUkFfTVQ5VDExMiBpcyBub3Qgc2V0CiMgQ09ORklHX1NPQ19DQU1FUkFfTVQ5 VjAyMiBpcyBub3Qgc2V0CiMgQ09ORklHX1NPQ19DQU1FUkFfUko1NE4xIGlzIG5vdCBzZXQKIyBD T05GSUdfU09DX0NBTUVSQV9UVzk5MTAgaXMgbm90IHNldAojIENPTkZJR19TT0NfQ0FNRVJBX1BM QVRGT1JNIGlzIG5vdCBzZXQKIyBDT05GSUdfU09DX0NBTUVSQV9PVjI2NDAgaXMgbm90IHNldAoj IENPTkZJR19TT0NfQ0FNRVJBX09WNTY0MiBpcyBub3Qgc2V0CiMgQ09ORklHX1NPQ19DQU1FUkFf T1Y2NjUwIGlzIG5vdCBzZXQKIyBDT05GSUdfU09DX0NBTUVSQV9PVjc3MlggaXMgbm90IHNldAoj IENPTkZJR19TT0NfQ0FNRVJBX09WOTY0MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NPQ19DQU1FUkFf T1Y5NzQwIGlzIG5vdCBzZXQKIyBDT05GSUdfVklERU9fU0hfTU9CSUxFX0NTSTIgaXMgbm90IHNl dAojIENPTkZJR19WSURFT19TSF9NT0JJTEVfQ0VVIGlzIG5vdCBzZXQKQ09ORklHX1Y0TF9VU0Jf RFJJVkVSUz15CiMgQ09ORklHX1VTQl9WSURFT19DTEFTUyBpcyBub3Qgc2V0CkNPTkZJR19VU0Jf VklERU9fQ0xBU1NfSU5QVVRfRVZERVY9eQpDT05GSUdfVVNCX0dTUENBPW0KIyBDT05GSUdfVVNC X001NjAyIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1NUVjA2WFggaXMgbm90IHNldAojIENPTkZJ R19VU0JfR0w4NjAgaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQQ0FfQkVOUSBpcyBub3Qgc2V0 CiMgQ09ORklHX1VTQl9HU1BDQV9DT05FWCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9D UElBMSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9FVE9NUyBpcyBub3Qgc2V0CiMgQ09O RklHX1VTQl9HU1BDQV9GSU5FUElYIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dTUENBX0pFSUxJ TkogaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQQ0FfS0lORUNUIGlzIG5vdCBzZXQKIyBDT05G SUdfVVNCX0dTUENBX0tPTklDQSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9NQVJTIGlz IG5vdCBzZXQKIyBDT05GSUdfVVNCX0dTUENBX01SOTczMTBBIGlzIG5vdCBzZXQKIyBDT05GSUdf VVNCX0dTUENBX05XODBYIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dTUENBX09WNTE5IGlzIG5v dCBzZXQKIyBDT05GSUdfVVNCX0dTUENBX09WNTM0IGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dT UENBX09WNTM0XzkgaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQQ0FfUEFDMjA3IGlzIG5vdCBz ZXQKIyBDT05GSUdfVVNCX0dTUENBX1BBQzczMDIgaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQ Q0FfUEFDNzMxMSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9TRTQwMSBpcyBub3Qgc2V0 CiMgQ09ORklHX1VTQl9HU1BDQV9TTjlDMjAyOCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BD QV9TTjlDMjBYIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dTUENBX1NPTklYQiBpcyBub3Qgc2V0 CiMgQ09ORklHX1VTQl9HU1BDQV9TT05JWEogaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQQ0Ff U1BDQTUwMCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9TUENBNTAxIGlzIG5vdCBzZXQK IyBDT05GSUdfVVNCX0dTUENBX1NQQ0E1MDUgaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQQ0Ff U1BDQTUwNiBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9TUENBNTA4IGlzIG5vdCBzZXQK IyBDT05GSUdfVVNCX0dTUENBX1NQQ0E1NjEgaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQQ0Ff U1BDQTE1MjggaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQQ0FfU1E5MDUgaXMgbm90IHNldAoj IENPTkZJR19VU0JfR1NQQ0FfU1E5MDVDIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dTUENBX1NR OTMwWCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9TVEswMTQgaXMgbm90IHNldAojIENP TkZJR19VU0JfR1NQQ0FfU1RWMDY4MCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9TVU5Q TFVTIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dTUENBX1Q2MTMgaXMgbm90IHNldAojIENPTkZJ R19VU0JfR1NQQ0FfVE9QUk8gaXMgbm90IHNldAojIENPTkZJR19VU0JfR1NQQ0FfVFY4NTMyIGlz IG5vdCBzZXQKIyBDT05GSUdfVVNCX0dTUENBX1ZDMDMyWCBpcyBub3Qgc2V0CiMgQ09ORklHX1VT Ql9HU1BDQV9WSUNBTSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9YSVJMSU5LX0NJVCBp cyBub3Qgc2V0CiMgQ09ORklHX1VTQl9HU1BDQV9aQzNYWCBpcyBub3Qgc2V0CiMgQ09ORklHX1ZJ REVPX1BWUlVTQjIgaXMgbm90IHNldAojIENPTkZJR19WSURFT19IRFBWUiBpcyBub3Qgc2V0CiMg Q09ORklHX1ZJREVPX0VNMjhYWCBpcyBub3Qgc2V0CiMgQ09ORklHX1ZJREVPX0NYMjMxWFggaXMg bm90IHNldAojIENPTkZJR19WSURFT19UTTYwMDAgaXMgbm90IHNldAojIENPTkZJR19WSURFT19V U0JWSVNJT04gaXMgbm90IHNldAojIENPTkZJR19VU0JfRVQ2MVgyNTEgaXMgbm90IHNldAojIENP TkZJR19VU0JfU045QzEwMiBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9QV0MgaXMgbm90IHNldAoj IENPTkZJR19VU0JfWlIzNjRYWCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9TVEtXRUJDQU0gaXMg bm90IHNldAojIENPTkZJR19VU0JfUzIyNTUgaXMgbm90IHNldAojIENPTkZJR19WNExfTUVNMk1F TV9EUklWRVJTIGlzIG5vdCBzZXQKQ09ORklHX1JBRElPX0FEQVBURVJTPXkKIyBDT05GSUdfSTJD X1NJNDcxMyBpcyBub3Qgc2V0CiMgQ09ORklHX1JBRElPX1NJNDcxMyBpcyBub3Qgc2V0CiMgQ09O RklHX1VTQl9EU0JSIGlzIG5vdCBzZXQKIyBDT05GSUdfUkFESU9fU0k0NzBYIGlzIG5vdCBzZXQK IyBDT05GSUdfVVNCX01SODAwIGlzIG5vdCBzZXQKIyBDT05GSUdfUkFESU9fVEVBNTc2NCBpcyBu b3Qgc2V0CiMgQ09ORklHX1JBRElPX1NBQTc3MDZIIGlzIG5vdCBzZXQKIyBDT05GSUdfUkFESU9f VEVGNjg2MiBpcyBub3Qgc2V0CiMgQ09ORklHX1JBRElPX1dMMTI3MyBpcyBub3Qgc2V0CgojCiMg VGV4YXMgSW5zdHJ1bWVudHMgV0wxMjh4IEZNIGRyaXZlciAoU1QgYmFzZWQpCiMKCiMKIyBHcmFw aGljcyBzdXBwb3J0CiMKIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKIyBDT05GSUdfVkdBU1RBVEUg aXMgbm90IHNldAojIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CiMgQ09O RklHX0ZCIGlzIG5vdCBzZXQKIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBz ZXQKCiMKIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CiMKIyBDT05GSUdfRElTUExBWV9TVVBQT1JU IGlzIG5vdCBzZXQKCiMKIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKIwpDT05GSUdf RFVNTVlfQ09OU09MRT15CkNPTkZJR19TT1VORD15CiMgQ09ORklHX1NPVU5EX09TU19DT1JFIGlz IG5vdCBzZXQKQ09ORklHX1NORD15CkNPTkZJR19TTkRfVElNRVI9eQpDT05GSUdfU05EX1BDTT15 CkNPTkZJR19TTkRfSkFDSz15CiMgQ09ORklHX1NORF9TRVFVRU5DRVIgaXMgbm90IHNldAojIENP TkZJR19TTkRfTUlYRVJfT1NTIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX1BDTV9PU1MgaXMgbm90 IHNldAojIENPTkZJR19TTkRfSFJUSU1FUiBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9EWU5BTUlD X01JTk9SUyBpcyBub3Qgc2V0CkNPTkZJR19TTkRfU1VQUE9SVF9PTERfQVBJPXkKQ09ORklHX1NO RF9WRVJCT1NFX1BST0NGUz15CiMgQ09ORklHX1NORF9WRVJCT1NFX1BSSU5USyBpcyBub3Qgc2V0 CiMgQ09ORklHX1NORF9ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9SQVdNSURJX1NFUSBp cyBub3Qgc2V0CiMgQ09ORklHX1NORF9PUEwzX0xJQl9TRVEgaXMgbm90IHNldAojIENPTkZJR19T TkRfT1BMNF9MSUJfU0VRIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX1NCQVdFX1NFUSBpcyBub3Qg c2V0CiMgQ09ORklHX1NORF9FTVUxMEsxX1NFUSBpcyBub3Qgc2V0CkNPTkZJR19TTkRfRFJJVkVS Uz15CiMgQ09ORklHX1NORF9EVU1NWSBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9BTE9PUCBpcyBu b3Qgc2V0CiMgQ09ORklHX1NORF9NVFBBViBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9TRVJJQUxf VTE2NTUwIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX01QVTQwMSBpcyBub3Qgc2V0CkNPTkZJR19T TkRfQVJNPXkKIyBDT05GSUdfU05EX0FSTUFBQ0kgaXMgbm90IHNldApDT05GSUdfU05EX1NQST15 CkNPTkZJR19TTkRfVVNCPXkKIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0CiMgQ09O RklHX1NORF9VU0JfVUExMDEgaXMgbm90IHNldAojIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5v dCBzZXQKIyBDT05GSUdfU05EX1VTQl82RklSRSBpcyBub3Qgc2V0CkNPTkZJR19TTkRfUENNQ0lB PXkKIyBDT05GSUdfU05EX1ZYUE9DS0VUIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX1BEQVVESU9D RiBpcyBub3Qgc2V0CkNPTkZJR19TTkRfU09DPXkKIyBDT05GSUdfU05EX1NPQ19DQUNIRV9MWk8g aXMgbm90IHNldApDT05GSUdfU05EX1NPQ19JMkNfQU5EX1NQST15CiMgQ09ORklHX1NORF9TT0Nf QUxMX0NPREVDUyBpcyBub3Qgc2V0CiMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKQ09O RklHX0hJRF9TVVBQT1JUPXkKQ09ORklHX0hJRD15CiMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0 CgojCiMgVVNCIElucHV0IERldmljZXMKIwpDT05GSUdfVVNCX0hJRD15CiMgQ09ORklHX0hJRF9Q SUQgaXMgbm90IHNldAojIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKCiMKIyBTcGVjaWFs IEhJRCBkcml2ZXJzCiMKQ09ORklHX0hJRF9BNFRFQ0g9eQojIENPTkZJR19ISURfQUNSVVggaXMg bm90IHNldApDT05GSUdfSElEX0FQUExFPXkKQ09ORklHX0hJRF9CRUxLSU49eQpDT05GSUdfSElE X0NIRVJSWT15CkNPTkZJR19ISURfQ0hJQ09OWT15CiMgQ09ORklHX0hJRF9QUk9ESUtFWVMgaXMg bm90IHNldApDT05GSUdfSElEX0NZUFJFU1M9eQojIENPTkZJR19ISURfRFJBR09OUklTRSBpcyBu b3Qgc2V0CiMgQ09ORklHX0hJRF9FTVNfRkYgaXMgbm90IHNldApDT05GSUdfSElEX0VaS0VZPXkK IyBDT05GSUdfSElEX0hPTFRFSyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9LRVlUT1VDSCBpcyBu b3Qgc2V0CkNPTkZJR19ISURfS1lFPXkKIyBDT05GSUdfSElEX1VDTE9HSUMgaXMgbm90IHNldAoj IENPTkZJR19ISURfV0FMVE9QIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX0dZUkFUSU9OIGlzIG5v dCBzZXQKIyBDT05GSUdfSElEX1RXSU5IQU4gaXMgbm90IHNldApDT05GSUdfSElEX0tFTlNJTkdU T049eQojIENPTkZJR19ISURfTENQT1dFUiBpcyBub3Qgc2V0CkNPTkZJR19ISURfTE9HSVRFQ0g9 eQpDT05GSUdfSElEX0xPR0lURUNIX0RKPW0KIyBDT05GSUdfTE9HSVRFQ0hfRkYgaXMgbm90IHNl dAojIENPTkZJR19MT0dJUlVNQkxFUEFEMl9GRiBpcyBub3Qgc2V0CiMgQ09ORklHX0xPR0lHOTQw X0ZGIGlzIG5vdCBzZXQKIyBDT05GSUdfTE9HSVdIRUVMU19GRiBpcyBub3Qgc2V0CkNPTkZJR19I SURfTUlDUk9TT0ZUPXkKQ09ORklHX0hJRF9NT05URVJFWT15CiMgQ09ORklHX0hJRF9NVUxUSVRP VUNIIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX05UUklHIGlzIG5vdCBzZXQKIyBDT05GSUdfSElE X09SVEVLIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX1BBTlRIRVJMT1JEIGlzIG5vdCBzZXQKIyBD T05GSUdfSElEX1BFVEFMWU5YIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX1BJQ09MQ0QgaXMgbm90 IHNldAojIENPTkZJR19ISURfUFJJTUFYIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX1FVQU5UQSBp cyBub3Qgc2V0CiMgQ09ORklHX0hJRF9ST0NDQVQgaXMgbm90IHNldAojIENPTkZJR19ISURfU0FN U1VORyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9TT05ZIGlzIG5vdCBzZXQKIyBDT05GSUdfSElE X1NQRUVETElOSyBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9TVU5QTFVTIGlzIG5vdCBzZXQKIyBD T05GSUdfSElEX0dSRUVOQVNJQSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9TTUFSVEpPWVBMVVMg aXMgbm90IHNldAojIENPTkZJR19ISURfVE9QU0VFRCBpcyBub3Qgc2V0CiMgQ09ORklHX0hJRF9U SFJVU1RNQVNURVIgaXMgbm90IHNldAojIENPTkZJR19ISURfWkVST1BMVVMgaXMgbm90IHNldAoj IENPTkZJR19ISURfWllEQUNST04gaXMgbm90IHNldApDT05GSUdfVVNCX1NVUFBPUlQ9eQpDT05G SUdfVVNCX0NPTU1PTj15CkNPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKQ09ORklHX1VTQl9BUkNI X0hBU19PSENJPXkKIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAojIENPTkZJ R19VU0JfQVJDSF9IQVNfWEhDSSBpcyBub3Qgc2V0CkNPTkZJR19VU0I9eQojIENPTkZJR19VU0Jf REVCVUcgaXMgbm90IHNldAojIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90 IHNldAoKIwojIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKIwojIENPTkZJR19VU0JfREVWSUNF RlMgaXMgbm90IHNldApDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CiMgQ09ORklHX1VTQl9EWU5B TUlDX01JTk9SUyBpcyBub3Qgc2V0CkNPTkZJR19VU0JfU1VTUEVORD15CkNPTkZJR19VU0JfT1RH PXkKQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUPXkKIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1Rf SFVCIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9EV0MzPXkKIyBDT05GSUdfVVNCX0RXQzNfREVCVUcg aXMgbm90IHNldAojIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1dVU0Ig aXMgbm90IHNldAojIENPTkZJR19VU0JfV1VTQl9DQkFGIGlzIG5vdCBzZXQKCiMKIyBVU0IgSG9z dCBDb250cm9sbGVyIERyaXZlcnMKIwojIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0 CiMgQ09ORklHX1VTQl9PWFUyMTBIUF9IQ0QgaXMgbm90IHNldAojIENPTkZJR19VU0JfSVNQMTE2 WF9IQ0QgaXMgbm90IHNldAojIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAojIENP TkZJR19VU0JfSVNQMTM2Ml9IQ0QgaXMgbm90IHNldApDT05GSUdfVVNCX09IQ0lfSENEPXkKIyBD T05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX09I Q0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJ QU49eQojIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1I4QTY2 NTk3X0hDRCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9SRU5FU0FTX1VTQkhTX0hDRCBpcyBub3Qg c2V0CiMgQ09ORklHX1VTQl9IV0FfSENEIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9NVVNCX0hEUkM9 eQojIENPTkZJR19NVVNCX1BJT19PTkxZIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX1VYNTAwX0RN QSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9JTlZFTlRSQV9ETUEgaXMgbm90IHNldAojIENPTkZJ R19VU0JfVElfQ1BQSV9ETUEgaXMgbm90IHNldApDT05GSUdfVVNCX1JFTkVTQVNfVVNCSFM9eQoK IwojIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycwojCiMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNl dAojIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9XRE0gaXMgbm90 IHNldAojIENPTkZJR19VU0JfVE1DIGlzIG5vdCBzZXQKCiMKIyBOT1RFOiBVU0JfU1RPUkFHRSBk ZXBlbmRzIG9uIFNDU0kgYnV0IEJMS19ERVZfU0QgbWF5CiMKCiMKIyBhbHNvIGJlIG5lZWRlZDsg c2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mbwojCiMgQ09ORklHX1VTQl9MSUJVU1VB TCBpcyBub3Qgc2V0CgojCiMgVVNCIEltYWdpbmcgZGV2aWNlcwojCiMgQ09ORklHX1VTQl9NREM4 MDAgaXMgbm90IHNldAoKIwojIFVTQiBwb3J0IGRyaXZlcnMKIwojIENPTkZJR19VU0JfU0VSSUFM IGlzIG5vdCBzZXQKCiMKIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCiMKIyBDT05GSUdfVVNC X0VNSTYyIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKIyBDT05GSUdf VVNCX0FEVVRVWCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9TRVZTRUcgaXMgbm90IHNldAojIENP TkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qg c2V0CiMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAojIENPTkZJR19VU0JfTEVEIGlzIG5vdCBz ZXQKIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0NZ VEhFUk0gaXMgbm90IHNldAojIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CiMgQ09ORklH X1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAojIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5v dCBzZXQKIyBDT05GSUdfVVNCX1NJU1VTQlZHQSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9MRCBp cyBub3Qgc2V0CiMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiMgQ09ORklH X1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAojIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CiMg Q09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9ZVVJFWCBpcyBub3Qg c2V0CkNPTkZJR19VU0JfR0FER0VUPXkKIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVRyBpcyBub3Qg c2V0CiMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldApDT05GSUdfVVNC X0dBREdFVF9WQlVTX0RSQVc9MgpDT05GSUdfVVNCX0dBREdFVF9TVE9SQUdFX05VTV9CVUZGRVJT PTIKIyBDT05GSUdfVVNCX0ZVU0IzMDAgaXMgbm90IHNldApDT05GSUdfVVNCX1I4QTY2NTk3PXkK IyBDT05GSUdfVVNCX0dBREdFVF9EV0MzIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dBREdFVF9N VVNCX0hEUkMgaXMgbm90IHNldAojIENPTkZJR19VU0JfTTY2NTkyIGlzIG5vdCBzZXQKIyBDT05G SUdfVVNCX05FVDIyNzIgaXMgbm90IHNldAojIENPTkZJR19VU0JfRFVNTVlfSENEIGlzIG5vdCBz ZXQKQ09ORklHX1VTQl9HQURHRVRfRFVBTFNQRUVEPXkKQ09ORklHX1VTQl9aRVJPPXkKIyBDT05G SUdfVVNCX1pFUk9fSE5QVEVTVCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9BVURJTyBpcyBub3Qg c2V0CiMgQ09ORklHX1VTQl9FVEggaXMgbm90IHNldAojIENPTkZJR19VU0JfR19OQ00gaXMgbm90 IHNldAojIENPTkZJR19VU0JfR0FER0VURlMgaXMgbm90IHNldAojIENPTkZJR19VU0JfRlVOQ1RJ T05GUyBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0UgaXMgbm90IHNldAojIENP TkZJR19VU0JfTUFTU19TVE9SQUdFIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dfU0VSSUFMIGlz IG5vdCBzZXQKIyBDT05GSUdfVVNCX01JRElfR0FER0VUIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNC X0dfUFJJTlRFUiBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9DRENfQ09NUE9TSVRFIGlzIG5vdCBz ZXQKIyBDT05GSUdfVVNCX0dfQUNNX01TIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dfTVVMVEkg aXMgbm90IHNldAojIENPTkZJR19VU0JfR19ISUQgaXMgbm90IHNldAojIENPTkZJR19VU0JfR19E QkdQIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0dfV0VCQ0FNIGlzIG5vdCBzZXQKCiMKIyBPVEcg YW5kIHJlbGF0ZWQgaW5mcmFzdHJ1Y3R1cmUKIwpDT05GSUdfVVNCX09UR19VVElMUz15CkNPTkZJ R19VU0JfR1BJT19WQlVTPXkKQ09ORklHX1VTQl9VTFBJPXkKQ09ORklHX1RXTDYwMzBfVVNCPW0K Q09ORklHX05PUF9VU0JfWENFSVY9eQpDT05GSUdfQUI4NTAwX1VTQj15CiMgQ09ORklHX01NQyBp cyBub3Qgc2V0CiMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKQ09ORklHX05FV19MRURTPXkK Q09ORklHX0xFRFNfQ0xBU1M9eQoKIwojIExFRCBkcml2ZXJzCiMKIyBDT05GSUdfTEVEU19MTTM1 MzAgaXMgbm90IHNldAojIENPTkZJR19MRURTX1BDQTk1MzIgaXMgbm90IHNldAojIENPTkZJR19M RURTX0dQSU8gaXMgbm90IHNldAojIENPTkZJR19MRURTX0xQMzk0NCBpcyBub3Qgc2V0CiMgQ09O RklHX0xFRFNfTFA1NTIxIGlzIG5vdCBzZXQKIyBDT05GSUdfTEVEU19MUDU1MjMgaXMgbm90IHNl dAojIENPTkZJR19MRURTX1BDQTk1NVggaXMgbm90IHNldAojIENPTkZJR19MRURTX1dNODMxWF9T VEFUVVMgaXMgbm90IHNldAojIENPTkZJR19MRURTX0RBQzEyNFMwODUgaXMgbm90IHNldAojIENP TkZJR19MRURTX1BXTSBpcyBub3Qgc2V0CiMgQ09ORklHX0xFRFNfUkVHVUxBVE9SIGlzIG5vdCBz ZXQKIyBDT05GSUdfTEVEU19CRDI4MDIgaXMgbm90IHNldAojIENPTkZJR19MRURTX0xUMzU5MyBp cyBub3Qgc2V0CiMgQ09ORklHX0xFRFNfUkVORVNBU19UUFUgaXMgbm90IHNldAojIENPTkZJR19M RURTX1RSSUdHRVJTIGlzIG5vdCBzZXQKCiMKIyBMRUQgVHJpZ2dlcnMKIwojIENPTkZJR19BQ0NF U1NJQklMSVRZIGlzIG5vdCBzZXQKQ09ORklHX1JUQ19MSUI9eQpDT05GSUdfUlRDX0NMQVNTPXkK Q09ORklHX1JUQ19IQ1RPU1lTPXkKQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKIyBD T05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKCiMKIyBSVEMgaW50ZXJmYWNlcwojCkNPTkZJR19S VENfSU5URl9TWVNGUz15CkNPTkZJR19SVENfSU5URl9QUk9DPXkKQ09ORklHX1JUQ19JTlRGX0RF Vj15CiMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CiMgQ09ORklHX1JU Q19EUlZfVEVTVCBpcyBub3Qgc2V0CgojCiMgSTJDIFJUQyBkcml2ZXJzCiMKIyBDT05GSUdfUlRD X0RSVl9EUzEzMDcgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0 CiMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9EUzMy MzIgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAojIENPTkZJ R19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMg bm90IHNldAojIENPTkZJR19SVENfRFJWX0lTTDEyMDIyIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRD X0RSVl9YMTIwNSBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0 CiMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfTTQx VDgwIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9CUTMySyBpcyBub3Qgc2V0CiMgQ09ORklH X1JUQ19EUlZfVFdMNDAzMCBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBu b3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfRk0zMTMwIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RS Vl9SWDg1ODEgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX1JYODAyNSBpcyBub3Qgc2V0CiMg Q09ORklHX1JUQ19EUlZfRU0zMDI3IGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9SVjMwMjlD MiBpcyBub3Qgc2V0CgojCiMgU1BJIFJUQyBkcml2ZXJzCiMKIyBDT05GSUdfUlRDX0RSVl9NNDFU OTMgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX000MVQ5NCBpcyBub3Qgc2V0CiMgQ09ORklH X1JUQ19EUlZfRFMxMzA1IGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9EUzEzOTAgaXMgbm90 IHNldAojIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJW X1I5NzAxIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9SUzVDMzQ4IGlzIG5vdCBzZXQKIyBD T05GSUdfUlRDX0RSVl9EUzMyMzQgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX1BDRjIxMjMg aXMgbm90IHNldAoKIwojIFBsYXRmb3JtIFJUQyBkcml2ZXJzCiMKIyBDT05GSUdfUlRDX0RSVl9D TU9TIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9EUzEyODYgaXMgbm90IHNldAojIENPTkZJ R19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5v dCBzZXQKIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJW X1NUSzE3VEE4IGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAoj IENPTkZJR19SVENfRFJWX000OFQzNSBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5 IGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9NU002MjQyIGlzIG5vdCBzZXQKIyBDT05GSUdf UlRDX0RSVl9CUTQ4MDIgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX1JQNUMwMSBpcyBub3Qg c2V0CiMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX1dN ODMxWCBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfQUI4NTAwIGlzIG5vdCBzZXQKCiMKIyBv bi1DUFUgUlRDIGRyaXZlcnMKIwojIENPTkZJR19SVENfRFJWX1BMMDMwIGlzIG5vdCBzZXQKIyBD T05GSUdfUlRDX0RSVl9QTDAzMSBpcyBub3Qgc2V0CkNPTkZJR19ETUFERVZJQ0VTPXkKIyBDT05G SUdfRE1BREVWSUNFU19ERUJVRyBpcyBub3Qgc2V0CgojCiMgRE1BIERldmljZXMKIwojIENPTkZJ R19BTUJBX1BMMDhYIGlzIG5vdCBzZXQKIyBDT05GSUdfRFdfRE1BQyBpcyBub3Qgc2V0CiMgQ09O RklHX1RJTUJfRE1BIGlzIG5vdCBzZXQKIyBDT05GSUdfUEwzMzBfRE1BIGlzIG5vdCBzZXQKIyBD T05GSUdfQVVYRElTUExBWSBpcyBub3Qgc2V0CiMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CgojCiMg VmlydGlvIGRyaXZlcnMKIwojIENPTkZJR19WSVJUSU9fQkFMTE9PTiBpcyBub3Qgc2V0CiMgQ09O RklHX1ZJUlRJT19NTUlPIGlzIG5vdCBzZXQKQ09ORklHX1NUQUdJTkc9eQojIENPTkZJR19VU0JJ UF9DT1JFIGlzIG5vdCBzZXQKIyBDT05GSUdfRUNITyBpcyBub3Qgc2V0CiMgQ09ORklHX0FTVVNf T0xFRCBpcyBub3Qgc2V0CiMgQ09ORklHX1I4NzEyVSBpcyBub3Qgc2V0CiMgQ09ORklHX1RSQU5a UE9SVCBpcyBub3Qgc2V0CiMgQ09ORklHX1BPSE1FTEZTIGlzIG5vdCBzZXQKIyBDT05GSUdfTElO RTZfVVNCIGlzIG5vdCBzZXQKIyBDT05GSUdfVlQ2NjU2IGlzIG5vdCBzZXQKIyBDT05GSUdfSUlP IGlzIG5vdCBzZXQKIyBDT05GSUdfWFZNQUxMT0MgaXMgbm90IHNldAojIENPTkZJR19aUkFNIGlz IG5vdCBzZXQKIyBDT05GSUdfV0xBR1M0OV9IMiBpcyBub3Qgc2V0CiMgQ09ORklHX1dMQUdTNDlf SDI1IGlzIG5vdCBzZXQKIyBDT05GSUdfQkNNX1dJTUFYIGlzIG5vdCBzZXQKIyBDT05GSUdfRlQx MDAwIGlzIG5vdCBzZXQKCiMKIyBTcGVha3VwIGNvbnNvbGUgc3BlZWNoCiMKIyBDT05GSUdfU1BF QUtVUCBpcyBub3Qgc2V0CiMgQ09ORklHX1RPVUNIU0NSRUVOX0NMRUFSUEFEX1RNMTIxNyBpcyBu b3Qgc2V0CiMgQ09ORklHX1RPVUNIU0NSRUVOX1NZTkFQVElDU19JMkNfUk1JNCBpcyBub3Qgc2V0 CiMgQ09ORklHX1NUQUdJTkdfTUVESUEgaXMgbm90IHNldApDT05GSUdfQ0xLREVWX0xPT0tVUD15 CgojCiMgSGFyZHdhcmUgU3BpbmxvY2sgZHJpdmVycwojCkNPTkZJR19DTEtTUkNfTU1JTz15CkNP TkZJR19JT01NVV9TVVBQT1JUPXkKIyBDT05GSUdfVklSVF9EUklWRVJTIGlzIG5vdCBzZXQKIyBD T05GSUdfUE1fREVWRlJFUSBpcyBub3Qgc2V0CgojCiMgRmlsZSBzeXN0ZW1zCiMKIyBDT05GSUdf RVhUMl9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAojIENPTkZJR19F WFQ0X0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAojIENPTkZJ R19KRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19H RlMyX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfQlRSRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19O SUxGUzJfRlMgaXMgbm90IHNldAojIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldApDT05G SUdfRklMRV9MT0NLSU5HPXkKQ09ORklHX0ZTTk9USUZZPXkKQ09ORklHX0ROT1RJRlk9eQpDT05G SUdfSU5PVElGWV9VU0VSPXkKQ09ORklHX0ZBTk9USUZZPXkKIyBDT05GSUdfUVVPVEEgaXMgbm90 IHNldAojIENPTkZJR19RVU9UQUNUTCBpcyBub3Qgc2V0CiMgQ09ORklHX0FVVE9GUzRfRlMgaXMg bm90IHNldAojIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKCiMKIyBDYWNoZXMKIwojIENPTkZJ R19GU0NBQ0hFIGlzIG5vdCBzZXQKCiMKIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCiMKIyBDT05G SUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CgojCiMg RE9TL0ZBVC9OVCBGaWxlc3lzdGVtcwojCiMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKIyBD T05GSUdfVkZBVF9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAoKIwoj IFBzZXVkbyBmaWxlc3lzdGVtcwojCkNPTkZJR19QUk9DX0ZTPXkKQ09ORklHX1BST0NfU1lTQ1RM PXkKQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKQ09ORklHX1NZU0ZTPXkKIyBDT05GSUdfVE1Q RlMgaXMgbm90IHNldAojIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAojIENPTkZJR19D T05GSUdGU19GUyBpcyBub3Qgc2V0CkNPTkZJR19NSVNDX0ZJTEVTWVNURU1TPXkKIyBDT05GSUdf QURGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19I RlNfRlMgaXMgbm90IHNldAojIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdf QkVGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0VG U19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0xPR0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JBTUZT IGlzIG5vdCBzZXQKIyBDT05GSUdfU1FVQVNIRlMgaXMgbm90IHNldAojIENPTkZJR19WWEZTX0ZT IGlzIG5vdCBzZXQKIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAojIENPTkZJR19PTUZTX0ZT IGlzIG5vdCBzZXQKIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX1FOWDRGU19G UyBpcyBub3Qgc2V0CiMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfUFNUT1JF IGlzIG5vdCBzZXQKIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX1VGU19GUyBp cyBub3Qgc2V0CkNPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKIyBDT05GSUdfTkZTX0ZTIGlz IG5vdCBzZXQKIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiMgQ09ORklHX0NFUEhfRlMgaXMgbm90 IHNldAojIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQK IyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0Cgoj CiMgUGFydGl0aW9uIFR5cGVzCiMKIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBz ZXQKQ09ORklHX01TRE9TX1BBUlRJVElPTj15CkNPTkZJR19OTFM9eQpDT05GSUdfTkxTX0RFRkFV TFQ9Imlzbzg4NTktMSIKIyBDT05GSUdfTkxTX0NPREVQQUdFXzQzNyBpcyBub3Qgc2V0CiMgQ09O RklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1 IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MCBpcyBub3Qgc2V0CiMgQ09ORklH X05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlz IG5vdCBzZXQKIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CiMgQ09ORklHX05M U19DT0RFUEFHRV84NjAgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5v dCBzZXQKIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19D T0RFUEFHRV84NjMgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBz ZXQKIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RF UEFHRV84NjYgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQK IyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFH RV85NTAgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKIyBD T05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV84 NzQgaXMgbm90IHNldAojIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKIyBDT05GSUdf TkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBp cyBub3Qgc2V0CiMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19JU084 ODU5XzEgaXMgbm90IHNldAojIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKIyBDT05G SUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90 IHNldAojIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0lTTzg4 NTlfNiBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAojIENPTkZJ R19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90 IHNldAojIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19JU084 ODU5XzE1IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CiMgQ09ORklH X05MU19LT0k4X1UgaXMgbm90IHNldAojIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CgojCiMg S2VybmVsIGhhY2tpbmcKIwojIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CkNPTkZJR19E RUZBVUxUX01FU1NBR0VfTE9HTEVWRUw9NApDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15 CkNPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CkNPTkZJR19GUkFNRV9XQVJOPTEwMjQKIyBDT05G SUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAojIENPTkZJR19TVFJJUF9BU01fU1lNUyBpcyBub3Qg c2V0CiMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfRlMg aXMgbm90IHNldAojIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKIyBDT05GSUdfREVC VUdfU0VDVElPTl9NSVNNQVRDSCBpcyBub3Qgc2V0CkNPTkZJR19ERUJVR19LRVJORUw9eQojIENP TkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CiMgQ09ORklHX0xPQ0tVUF9ERVRFQ1RPUiBpcyBu b3Qgc2V0CiMgQ09ORklHX0hBUkRMT0NLVVBfREVURUNUT1IgaXMgbm90IHNldAojIENPTkZJR19E RVRFQ1RfSFVOR19UQVNLIGlzIG5vdCBzZXQKQ09ORklHX1NDSEVEX0RFQlVHPXkKIyBDT05GSUdf U0NIRURTVEFUUyBpcyBub3Qgc2V0CiMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKIyBD T05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMg bm90IHNldAojIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfS01F TUxFQUsgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKIyBD T05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sg aXMgbm90IHNldAojIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKIyBDT05GSUdfREVC VUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CiMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNl dAojIENPTkZJR19TUEFSU0VfUkNVX1BPSU5URVIgaXMgbm90IHNldAojIENPTkZJR19MT0NLX1NU QVQgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19BVE9NSUNfU0xFRVAgaXMgbm90IHNldAojIENP TkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAojIENPTkZJR19ERUJV R19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNl dApDT05GSUdfREVCVUdfQlVHVkVSQk9TRT15CiMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNl dAojIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQg aXMgbm90IHNldApDT05GSUdfREVCVUdfTUVNT1JZX0lOSVQ9eQojIENPTkZJR19ERUJVR19MSVNU IGlzIG5vdCBzZXQKIyBDT05GSUdfVEVTVF9MSVNUX1NPUlQgaXMgbm90IHNldAojIENPTkZJR19E RUJVR19TRyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX05PVElGSUVSUyBpcyBub3Qgc2V0CiMg Q09ORklHX0RFQlVHX0NSRURFTlRJQUxTIGlzIG5vdCBzZXQKIyBDT05GSUdfQk9PVF9QUklOVEtf REVMQVkgaXMgbm90IHNldAojIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKIyBD T05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX0JMT0NL X0VYVF9ERVZUIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfRk9SQ0VfV0VBS19QRVJfQ1BVIGlz IG5vdCBzZXQKIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKIyBDT05GSUdfTEFU RU5DWVRPUCBpcyBub3Qgc2V0CiMgQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLIGlzIG5vdCBz ZXQKIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKQ09ORklHX0hBVkVfRlVOQ1RJ T05fVFJBQ0VSPXkKQ09ORklHX0hBVkVfRlVOQ1RJT05fR1JBUEhfVFJBQ0VSPXkKQ09ORklHX0hB VkVfRFlOQU1JQ19GVFJBQ0U9eQpDT05GSUdfSEFWRV9GVFJBQ0VfTUNPVU5UX1JFQ09SRD15CkNP TkZJR19IQVZFX0NfUkVDT1JETUNPVU5UPXkKQ09ORklHX1RSQUNJTkdfU1VQUE9SVD15CkNPTkZJ R19GVFJBQ0U9eQojIENPTkZJR19GVU5DVElPTl9UUkFDRVIgaXMgbm90IHNldAojIENPTkZJR19J UlFTT0ZGX1RSQUNFUiBpcyBub3Qgc2V0CiMgQ09ORklHX1NDSEVEX1RSQUNFUiBpcyBub3Qgc2V0 CiMgQ09ORklHX0VOQUJMRV9ERUZBVUxUX1RSQUNFUlMgaXMgbm90IHNldApDT05GSUdfQlJBTkNI X1BST0ZJTEVfTk9ORT15CiMgQ09ORklHX1BST0ZJTEVfQU5OT1RBVEVEX0JSQU5DSEVTIGlzIG5v dCBzZXQKIyBDT05GSUdfUFJPRklMRV9BTExfQlJBTkNIRVMgaXMgbm90IHNldAojIENPTkZJR19T VEFDS19UUkFDRVIgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBz ZXQKIyBDT05GSUdfRE1BX0FQSV9ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX0FUT01JQzY0X1NF TEZURVNUIGlzIG5vdCBzZXQKIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CkNPTkZJR19IQVZF X0FSQ0hfS0dEQj15CiMgQ09ORklHX0tHREIgaXMgbm90IHNldAojIENPTkZJR19URVNUX0tTVFJU T1ggaXMgbm90IHNldAojIENPTkZJR19TVFJJQ1RfREVWTUVNIGlzIG5vdCBzZXQKQ09ORklHX0FS TV9VTldJTkQ9eQojIENPTkZJR19ERUJVR19VU0VSIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdf TEwgaXMgbm90IHNldApDT05GSUdfT0NfRVRNPXkKCiMKIyBTZWN1cml0eSBvcHRpb25zCiMKIyBD T05GSUdfS0VZUyBpcyBub3Qgc2V0CiMgQ09ORklHX1NFQ1VSSVRZX0RNRVNHX1JFU1RSSUNUIGlz IG5vdCBzZXQKIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAojIENPTkZJR19TRUNVUklUWUZT IGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfU0VDVVJJVFlfREFDPXkKQ09ORklHX0RFRkFVTFRf U0VDVVJJVFk9IiIKQ09ORklHX0NSWVBUTz15CgojCiMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCiMK IyBDT05GSUdfQ1JZUFRPX0ZJUFMgaXMgbm90IHNldApDT05GSUdfQ1JZUFRPX0FMR0FQST15CkNP TkZJR19DUllQVE9fQUxHQVBJMj15CkNPTkZJR19DUllQVE9fUk5HPW0KQ09ORklHX0NSWVBUT19S TkcyPW0KQ09ORklHX0NSWVBUT19QQ09NUD15CkNPTkZJR19DUllQVE9fUENPTVAyPXkKIyBDT05G SUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fTUFOQUdFUjIgaXMg bm90IHNldAojIENPTkZJR19DUllQVE9fVVNFUiBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19H RjEyOE1VTCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKIyBDT05G SUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5v dCBzZXQKIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAoKIwojIEF1dGhlbnRpY2F0ZWQg RW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQojCiMgQ09ORklHX0NSWVBUT19DQ00gaXMg bm90IHNldAojIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1NF UUlWIGlzIG5vdCBzZXQKCiMKIyBCbG9jayBtb2RlcwojCiMgQ09ORklHX0NSWVBUT19DQkMgaXMg bm90IHNldAojIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0NU UyBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAojIENPTkZJR19DUllQ VE9fTFJXIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAojIENPTkZJ R19DUllQVE9fWFRTIGlzIG5vdCBzZXQKCiMKIyBIYXNoIG1vZGVzCiMKIyBDT05GSUdfQ1JZUFRP X0hNQUMgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CiMgQ09ORklH X0NSWVBUT19WTUFDIGlzIG5vdCBzZXQKCiMKIyBEaWdlc3QKIwojIENPTkZJR19DUllQVE9fQ1JD MzJDIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0dIQVNIIGlzIG5vdCBzZXQKIyBDT05GSUdf Q1JZUFRPX01ENCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAojIENP TkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fUk1EMTI4 IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1JNRDE2MCBpcyBub3Qgc2V0CiMgQ09ORklHX0NS WVBUT19STUQyNTYgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fUk1EMzIwIGlzIG5vdCBzZXQK IyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fU0hBMjU2IGlz IG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBU T19UR1IxOTIgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAoKIwoj IENpcGhlcnMKIwpDT05GSUdfQ1JZUFRPX0FFUz1tCiMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMg bm90IHNldAojIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19C TE9XRklTSCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiMg Q09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBu b3Qgc2V0CiMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fRkNS WVBUIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CiMgQ09ORklH X0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNl dAojIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19URUEg aXMgbm90IHNldAojIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CgojCiMgQ29tcHJl c3Npb24KIwojIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9f WkxJQj15CiMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAoKIwojIFJhbmRvbSBOdW1iZXIg R2VuZXJhdGlvbgojCkNPTkZJR19DUllQVE9fQU5TSV9DUFJORz1tCiMgQ09ORklHX0NSWVBUT19V U0VSX0FQSV9IQVNIIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX1NLQ0lQSEVS IGlzIG5vdCBzZXQKQ09ORklHX0NSWVBUT19IVz15CiMgQ09ORklHX0JJTkFSWV9QUklOVEYgaXMg bm90IHNldAoKIwojIExpYnJhcnkgcm91dGluZXMKIwpDT05GSUdfQklUUkVWRVJTRT15CiMgQ09O RklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKIyBDT05G SUdfQ1JDX1QxMERJRiBpcyBub3Qgc2V0CiMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkNP TkZJR19DUkMzMj15CiMgQ09ORklHX0NSQzcgaXMgbm90IHNldAojIENPTkZJR19MSUJDUkMzMkMg aXMgbm90IHNldAojIENPTkZJR19DUkM4IGlzIG5vdCBzZXQKQ09ORklHX0FVRElUX0dFTkVSSUM9 eQpDT05GSUdfWkxJQl9JTkZMQVRFPXkKQ09ORklHX1pMSUJfREVGTEFURT15CkNPTkZJR19MWk9f Q09NUFJFU1M9eQpDT05GSUdfTFpPX0RFQ09NUFJFU1M9eQojIENPTkZJR19YWl9ERUMgaXMgbm90 IHNldAojIENPTkZJR19YWl9ERUNfQkNKIGlzIG5vdCBzZXQKQ09ORklHX0hBU19JT01FTT15CkNP TkZJR19IQVNfSU9QT1JUPXkKQ09ORklHX0hBU19ETUE9eQpDT05GSUdfTkxBVFRSPXkKQ09ORklH X0dFTkVSSUNfQVRPTUlDNjQ9eQojIENPTkZJR19BVkVSQUdFIGlzIG5vdCBzZXQKIyBDT05GSUdf Q09SRElDIGlzIG5vdCBzZXQK --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 (=CE=BB x . x x) (=CE=BB x . x x) -- See how beautiful the lambda is =E2=88=A7 No documentation is better than bad documentation =E2=88=A7 and always be awesome to each other, always. --=-=-=-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: dietrich@cs.fau.de (Christian Dietrich) Date: Mon, 23 Apr 2012 14:43:15 +0200 Subject: Possible integer overflow in mach-bcmring with FPGA11107 Message-ID: <86r4veipp8.fsf@gandalf.zerties.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi, due to statical analysis, i think i found a possible integer overflow in the timer (sp804) code, when mach-bcmring is used together with FPGA11107. All following line numbers are according to Linux v3.2, but the problem should be still in Linux HEAD (if i haven't missed anything). Ok here is the Problem: ,----[arch/arm/mach-bcmring/clock.h:24]------------------ | struct clk { | [..] | unsigned long rate_hz; /* clock rate in Hz */ | [..] | }; `---- ,---- | % arm-linux-gnueabihf-cpp-4.6 -dM /dev/null | grep __SIZEOF_LONG__ | #define __SIZEOF_LONG__ 4 `---- As you see rate_hz is defined as long, but long is according to gnueabihf (and gnueabi) 4 bytes long. I hope i got the right compiler here. ,----[arch/arm/mach-bcmring/include/mach/csp/tmrHw_reg.h]---- | #if defined(CFG_GLOBAL_CHIP) && (CFG_GLOBAL_CHIP == FPGA11107) | #define tmrHw_HIGH_FREQUENCY_MHZ 150 /* Always 150MHz for FPGA */ | #define tmrHw_HIGH_FREQUENCY_HZ 150000000 | #else | [..] | #endif `---- When FPGA11107 is used the frequency is set to 150 000 000 Hz. ,----[arch/arm/mach-bcmring/core.c:100]--- | #if defined(CONFIG_ARCH_FPGA11107) | /* fpga cpu/bus are currently 30 times slower so scale frequency as well to */ | /* slow down Linux's sense of time */ | [..] | #define TIMER3_FREQUENCY_KHZ (tmrHw_HIGH_FREQUENCY_HZ / 1000 * 30) | #else | [..] | #define TIMER3_FREQUENCY_KHZ (tmrHw_HIGH_FREQUENCY_HZ / 1000) | #endif `---- ,----[arch/arm/mach-bcmring/core.c:121]--- | static struct clk sp804_timer3_clk = { | .name = "sp804-timer-3", | .type = CLK_TYPE_PRIMARY, | .mode = CLK_MODE_XTAL, | .rate_hz = TIMER3_FREQUENCY_KHZ * 1000, | }; `---- This seems totally innocent, but when doing the caluculation for rate_hz by hand (or python) the result is slighly bigger than 2^32-1. Therfore an integer overflow should occur and the rate_hz rate will be far too low. It may be that there is a sanity check in hardware, but i don't know the used hardware at all. ,----[python shell] | >>> tmrHw_HIGH_FREQUENCY_HZ = 150000000 | >>> TIMER3_FREQUENCY_KHZ = (tmrHw_HIGH_FREQUENCY_HZ / 1000 * 30) | >>> rate_hz = TIMER3_FREQUENCY_KHZ * 1000 | >>> | >>> import math | >>> math.log(rate_hz, 2) # Bits used | 32.06727785542857 | >>> rate_hz % 2**32 | 205032704L `---- I hope my observations are correct, and this is a real bug and i didn't just waste your time. For better testing the issue i will append the used configuration. I just did: ,---- | cp ~/mach-bcmring.config .config | ARCH=arm make silentoldconfig | ARCH=arm SUBARCH=arm KERNELVERSION="v3.2" make arch/arm/mach-bcmring/core.o CC=arm-linux-gnueabi-gcc-4.5 | [...] | CC arch/arm/mach-bcmring/core.o | arch/arm/mach-bcmring/core.c:125:34: warning: integer overflow in expression `---- chris -------------- next part -------------- A non-text attachment was scrubbed... Name: mach-bcmring.config Type: application/octet-stream Size: 53541 bytes Desc: not available URL: -------------- next part -------------- -- (? x . x x) (? x . x x) -- See how beautiful the lambda is ? No documentation is better than bad documentation ? and always be awesome to each other, always.