From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smarthost4.atos.net (smtppost.atos.net [193.56.114.177]) by sourceware.org (Postfix) with ESMTPS id 70F2A387090C for ; Tue, 16 Feb 2021 10:00:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 70F2A387090C X-IronPort-AV: E=Sophos;i="5.81,183,1610406000"; d="scan'208,223";a="169568951" X-MGA-submission: =?us-ascii?q?MDEsmtizxBKpRH9gj3YivInC0nIXzHEPIa7Ygr?= =?us-ascii?q?c1jPArk7pesEImQwikDZkT4LnQSr2Anzm92prkFAc1G2VexBd6XrezmT?= =?us-ascii?q?hR5aD2aRjjp1GB7caZGPhQ9EKPNiPu6X6l9LUjz39ooSNCMIFK3KfxPJ?= =?us-ascii?q?Z8?= Received: from mail.sis.atos.net (HELO GITEXCPRDMB13.ww931.my-it-solutions.net) ([10.89.28.143]) by smarthost4.atos.net with ESMTP/TLS/AES256-GCM-SHA384; 16 Feb 2021 10:59:52 +0100 Received: from GITEXCPRDMB14.ww931.my-it-solutions.net (10.89.28.144) by GITEXCPRDMB13.ww931.my-it-solutions.net (10.89.28.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 16 Feb 2021 10:59:50 +0100 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (172.16.214.172) by GITEXCPRDMB14.ww931.my-it-solutions.net (10.89.28.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2 via Frontend Transport; Tue, 16 Feb 2021 10:59:50 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GYCjtG8PtIWcYvHg8JJhPOJmuIgO+/51OhlUtIDvBTofSxW6nnKln0/Ba7MA1+XmMsYJ447CIMnABO0tyRaOnlPyKcuy9U6N76+CXD9AkSId4Peczs1ZR8sG+Nuu6Bw0JcaXx/huHAymfxALl80/CzzeSxnOWJtfs8fah1nxcQndVOy1amO9udNrDqX3zXNIxn8/SWtHo2MTrf9ETIxzKa7CpAH76BSZ1ygWL0HZwF0lY6ptbHX4L9IFfF375P2mAPV6upPcIg9/n/OvUx2+7t7LtJywNI3D8fsDSivcih1Gn0+6RUPjbOfIH0toNvxhoyv80r+1R1arfdBOrQ7lqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hylMELFe3J9FHz0wHvgfqOlPa5E+Kown0Btwh8MyL3k=; b=OqJWl+J5xnpuKqjm0ZCObifDSsaDtM4xjMgAczLH6bkQQkJpzNTknYO9nhiJGejXYtjqBYi8w23ZZuDG55oQZNSXTZYY7cwZ6XOHyl3sM13o8uU8T4z/gmDyToD49ExP0RyN16KKDUBnmrctLBnwwAk9SbCX64ZC682CNZEwhPD0YkVMSboSQrDc18Dk5vIp7UoWmKwWmXZODtfQLBEt5jQrLomaF4QHdKjY5MCqZ38F89qXGT+VFj2k/xH22VTXM2mvK2KNymg0zUTv+DL5M7q7MXBFyltmvQ+THa1F40rNSBmWWf1ICX7LF/TcmwpxaG2d6S5m0bvAtLNIqgD2Zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=atos.net; dmarc=pass action=none header.from=atos.net; dkim=pass header.d=atos.net; arc=none Received: from PA4PR02MB6686.eurprd02.prod.outlook.com (2603:10a6:102:ff::14) by PR3PR02MB6251.eurprd02.prod.outlook.com (2603:10a6:102:7a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.27; Tue, 16 Feb 2021 09:59:48 +0000 Received: from PA4PR02MB6686.eurprd02.prod.outlook.com ([fe80::e187:6d8d:478b:5402]) by PA4PR02MB6686.eurprd02.prod.outlook.com ([fe80::e187:6d8d:478b:5402%4]) with mapi id 15.20.3846.043; Tue, 16 Feb 2021 09:59:48 +0000 From: "CHIGOT, CLEMENT" To: "binutils@sourceware.org" Subject: [PATCH 6/6] aix: implement TLS relocation for gas and ld Thread-Topic: [PATCH 6/6] aix: implement TLS relocation for gas and ld Thread-Index: AQHXBEppPfWB27Vqv0ChNSjhkSizAg== Date: Tue, 16 Feb 2021 09:59:48 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Enabled=True; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_SiteId=33440fc6-b7c7-412c-bb73-0e70b0198d5a; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_SetDate=2021-02-16T09:59:48.222Z; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Name=Atos For Internal Use - All Employees; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_ContentBits=0; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Method=Standard; x-originating-ip: [165.225.77.51] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b710414c-b8f0-46c3-b07a-08d8d261989e x-ms-traffictypediagnostic: PR3PR02MB6251: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:218; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DfwJ7IZ9rOiSaj5GQ0aGUlN4JACD+gf53ZB0wkCl20Cz84tv0gdpt5BYhXvab/nSR8XNE2eQGehFK7PYWgd9zw1s4qYUSHROqBupF6Z5O1MyQv9537QciPkOtwBixENZP25PvLD4t/MM3pTvPdfDrZjSq9LJkVClHDMOEFlrlPW19u9bIPyKFVEkHSpaCCkrzBGEGUiju5kk2sJoG+/HSsnpDQL4+6A7+Q16FzBMR8UYLkRktVsDlJu5772TrS+zu74b433FO4Vwm11pVj6wdOsY0FV6PNb+cq2QrOZXLZKBbmpqDI+kxvv7sXgdXS6JHcQMsb7bwRzPikMQT7jxKl8qq3b+sPMo22tK0gbvkGucSxP8EYgQNkQDpzuTL6veVm/rmA9N29nWq3r1Ag67iicOz85b5ezjo6sWgnIPgrMBEvf5r1w73UBw9XCEQHWJ7RlK2PLSONPD53LKUZkiH7wCPIC3r7NztzB5/max3CyN+jJ3h5yBnx0Qbd9GvOrWKBzkCV+Omhp5Q2Z4jeisDw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR02MB6686.eurprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(66446008)(64756008)(66946007)(66556008)(8936002)(83380400001)(66616009)(316002)(86362001)(66476007)(8676002)(26005)(7696005)(4001150100001)(76116006)(71200400001)(6506007)(55236004)(66574015)(186003)(4326008)(55016002)(9686003)(33656002)(99936003)(5660300002)(2906002)(478600001)(52536014)(6916009); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?iso-8859-1?Q?/pZvdtDedz8EjqBFnXVB8wN26o8Mg1d6Lvzy/s7ClkEj1uqxV6fbPpTyrY?= =?iso-8859-1?Q?7X3lS7ZVT8mea2cafLqCIn5zovbHRdq+gOX56wvahObtiEI3jaI00uba2Y?= =?iso-8859-1?Q?hw8M6gEBVdUTQIm0/z587NODMEEEY0f32uzAdQMreI/MB7gQ2AFQJQN1jH?= =?iso-8859-1?Q?v4m8UI/2RaEkMadinaVDf22pOVyvNtEJxqfesUYjEdTTvbENzFDL+8dGm1?= =?iso-8859-1?Q?Q6r6FMnADytj342U6td+fPjZW3hZVFtuZ/wEqHhas/jvzDq+pjIFCnB3ZB?= =?iso-8859-1?Q?yZcKzok9GQuisit6DU3KFiIOvLMinzU96FaYVhNRlyO9t3Enas/bxn14Tj?= =?iso-8859-1?Q?a1T60lCiGWafC4Mh8v9xEm8ZrF8cRmEmCG1PKLFbG03qAZXO7SGNDtoM1q?= =?iso-8859-1?Q?qcgnR8oR+d8GbCU+iKNZO8bPjw3rwTf5o/HxSZo6JJsqu/zsZ6MlRh0Xur?= =?iso-8859-1?Q?nBRC9Kmfhj4q4/QolbPt0M9AJfLo6nPX5qbF/nJvb+1HhTOq0rx+FI6qcY?= =?iso-8859-1?Q?4ui97PzSGxEpwbOu/i8iDK97D61QhofKwWmfthzZ2iQ+5h7TeinAZQqP/e?= =?iso-8859-1?Q?7mb1k+OeN4lLGKFc5t9mKhSLLLsiRFKqT4eqzT7YivN0Ty9xUMI+nj573n?= =?iso-8859-1?Q?Bh9pGDKsbfjYW7VJE0lUVpaKaRZrJJa95nl0eUI847+6/mRTCt9IWQBPR9?= =?iso-8859-1?Q?b3hjwk7TXCx5cBne97pF0RocHW79xtndQtkOFReSIDYaQ/zzRQZLr+JVuT?= =?iso-8859-1?Q?julBJqx/f0ZPKB8xZ4vsVFxjOW30hW0lgMJJQoXH8XPNc3jYuaL2W7yI2I?= =?iso-8859-1?Q?OKS3yPY8FKI4tZiW8FcU+UALTKcNPjBzX4Q8EHEn/2JEOdkdwThXWmJCV5?= =?iso-8859-1?Q?D1nETm9dZ+25B3U+lXnb6dywQiviZEdDRgf2/rS0boym33BfVZsb9IXNnH?= =?iso-8859-1?Q?B8HcNhBM+t1Jf0b+Frd8qMDSmWDL2mvZ/shovMb8SiDzN8+KtxD0XOFFPw?= =?iso-8859-1?Q?afCg1PEXOEpfMzYdNkWNHKsT9VrqSCBzLhZ8r1OCn53MIpUUdBvKcDUpe1?= =?iso-8859-1?Q?H8u2Ty5coJvusGxkrend/huKBnDFuTv4y2cwRvU5Q84GiMx2qEDFLQweK9?= =?iso-8859-1?Q?F6PSxUzlru9ZK049t29XS3rpzF9Wlk15aXH4L5iNuj3gQPX/U28vbZZfiY?= =?iso-8859-1?Q?x0K6xxnieIKFhx7Z/hd2ycFM9sgiE6wBGr/WZ7gB0+e2+q/8mGH3ND0jfU?= =?iso-8859-1?Q?gnGUo2rTgmHdaNPizb6YE/7DImFzYo/ZHmLk/JK/0hy0s9mvJfm55qA4Mh?= =?iso-8859-1?Q?mn6uMD9fGr7IP9soto3VV2LnaUSiZIG/NuJ6sZQhb0SQzk0=3D?= x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_PA4PR02MB66867DBE6F6DAE0ADF827926EA879PA4PR02MB6686eurp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PA4PR02MB6686.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b710414c-b8f0-46c3-b07a-08d8d261989e X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2021 09:59:48.4902 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 33440fc6-b7c7-412c-bb73-0e70b0198d5a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5oejRLrj8UaasYpr7Tc/xB5etkDafzNto+a7LvJnir2bFw/JhsJMSYlXZLdyABKXVeCVG49JNIZRQzfZBxqKKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR02MB6251 X-OriginatorOrg: atos.net X-Spam-Status: No, score=2.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_ABUSEAT, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, RCVD_IN_SBL_CSS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Feb 2021 10:00:12 -0000 --_002_PA4PR02MB66867DBE6F6DAE0ADF827926EA879PA4PR02MB6686eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Add support for TLS in XCOFF. Amongst the things done by this commit:=0A= - Update XCOFF auxiliary header to match new versions and allow TLS=0A= sections.=0A= - Add TLS sections (.tdata and .tbss) support in gas and ld.=0A= - Add support for the new TLS relocations in gas and ld.=0A= Two different types BFD_RELOC are created for PPC and PPC64 as=0A= the size is a pointer, thus distinct in 32 or 64bit.=0A= =0A= The addresses given by ld to .tdata and .tbss is a bit special. In=0A= XCOFF, these addresses are actually offsets from the TLS pointer=0A= computed at runtime. AIX assembly and linker does the same. As in=0A= top of that, the .tdata must be before .data (this is mandatory for AIX=0A= loader), the aix ld script is recomputing "." before .data to restore=0A= its original value. There might be a simpler way, but this one is working.= =0A= The only problem with this method is that ld keeps .tdata even if=0A= empty when using -r flag. This patch forces the removal in aix.em=0A= to avoid useless .tdata sections.=0A= =0A= Optimisation linked to TLS relocations aren't yet implemented.=0A= =0A= bfd/ChangeLog:=0A= 2020-11-20 Cl=E9ment Chigot =0A= =0A= * bfd-in2.h (BFD_RELOC_PPC_TLS{LE, IE, M, ML})=0A= (BFD_RELOC_PPC64_TLS{GD, LD, LE, IE, M, ML}): New defines.=0A= * coff-rs6000.c (xcoff_calculate_relocation=C3): Call=0A= xcoff_reloc_type_tls for R_TLS{ ,IE, LD, LE, M, ML}.=0A= (xcoff_howto_table): Implement R_TLS{ ,IE, LD, LE, M, ML}.=0A= (_bfd_xcoff_reloc_type_lookup): Add cases for=0A= BFD_RELOC_PPC_TLS{GD, LD, LE, IE, M, ML}.=0A= (xcoff_reloc_type_tls): New function.=0A= * coff64-rs6000.c (xcoff_calculate_relocation): Call=0A= xcoff_reloc_type_tls for R_TLS{ ,IE, LD, LE, M, ML}.=0A= (xcoff_howto_table): Implement R_TLS{ ,IE, LD, LE, M, ML}.=0A= (_bfd_xcoff_reloc_type_lookup): Add cases for=0A= BFD_RELOC_PPC64_TLS{GD, LD, LE, IE, M, ML}.=0A= * coffcode.h (sec_to_styp_flags): Handle TLS sections.=0A= (styp_to_sec_flags=C3): ikewise.=0A= (coff_compute_section_file_positions): Avoid file offset=0A= optimisation for .data when the previous section is .tdata.=0A= (coff_write_object_contents): Handle TLS sections.=0A= * coffswap.h (coff_swap_aouthdr_out): Add support for=0A= new fields in aouthdr.=0A= * libbfd.h (bfd_reloc_code_real_names): Add new BFD_RELOC=0A= defines.=0A= * libxcoff.h (xcoff_reloc_type_tls): Add prototype.=0A= * xcofflink.c (xcoff_link_add_symbols): Handle XMC_UL.=0A= (xcoff_need_ldrel_p): Add cases for TLS relocations.=0A= (xcoff_create_ldrel): Add l_symndx for TLS sections.=0A= =0A= gas/Changelog=0A= 2020-11-20 Cl=E9ment Chigot =0A= =0A= * config/tc-ppc.c (ppc_xcoff_text_section, ppc_xcoff_data_section,= =0A= (ppc_xcoff_bss_section, ppc_xcoff_tdata_section,=0A= (ppc_xcoff_tbss_section): New variables.=0A= (ppc_text_subsegment, ppc_text_csects, ppc_data_subgments,=0A= (ppc_data_csects): Removed.=0A= (ppc_xcoff_section_is_initialized, ppc_init_xcoff_section,=0A= ppc_xcoff_parse_cons): New functions.=0A= (md_being): Initialize XCOFF sections.=0A= (ppc_xcoff_suffix): Add support for TLS relocations=0A= (fixup_size, md_apply_fix): Add support for new BFD_RELOC.=0A= (ppc_change_csect): Handle XMC_TL, XMC_UL. Correctly, add XMC_BS= =0A= to .bss section. Handle new XCOFF section variables.=0A= (ppc_comm): Likewise.=0A= (ppc_toc): Likewise.=0A= (ppc_symbol_new_hook): Likewise.=0A= (ppc_frob_symbol): Likewise.=0A= (ppc_fix_adjustable): Add tbss support.=0A= * config/tc-ppc.h (TC_PARSE_CONS_EXPRESSION): New define.=0A= (ppc_xcoff_parse_cons): Add prototype.=0A= (struct ppc_xcoff_section): New structure.=0A= =0A= ld/Changelog=0A= 2020-11-20 Cl=E9ment Chigot =0A= =0A= * emultempl/aix.em: Ensure .tdata section is removed=0A= if empty, even with -r flag.=0A= * scripttempl/aix.sc: Handle TLS sections.=0A= * testsuite/ld-powerpc/aix52.exp: Add new tests.=0A= * testsuite/ld-powerpc/aix-tls-reloc-32.d: New test.=0A= * testsuite/ld-powerpc/aix-tls-reloc-64.d: New test.=0A= * testsuite/ld-powerpc/aix-tls-reloc.ex: New test.=0A= * testsuite/ld-powerpc/aix-tls-reloc.s: New test.=0A= * testsuite/ld-powerpc/aix-tls-section-32.d: New test.=0A= * testsuite/ld-powerpc/aix-tls-section-64.d: New test.=0A= * testsuite/ld-powerpc/aix-tls-section.ex: New test.=0A= * testsuite/ld-powerpc/aix-tls-section.s: New test.=0A= =0A= include/ChangeLog:=0A= =0A= * coff/internal.h (struct internal_aouthdr): Add new fields.=0A= * coff/rs6000.h (AOUTHDR=C3): Add new fields.=0A= * coff/rs6k64.h (struct external_filehdr): Likewise.=0A= * coff/xcoff.h (_TDATA), _TBSS): New defines=0A= (RS6K_AOUTHDR_TLS_LE, RS6K_AOUTHDR_RAS, RS6K_AOUTHDR_ALGNTDATA,=0A= RS6K_AOUTHDR_SHR_SYMTAB, RS6K_AOUTHDR_FORK_POLICY,=0A= RS6K_AOUTHDR_FORK_COR): New defines.=0A= (XMC_TU): Removed.=0A= (XMC_UL): New define.=0A= =0A= =0A= =0A= =0A= =0A= =0A= =0A= Cl=E9ment Chigot=0A= =0A= =0A= --_002_PA4PR02MB66867DBE6F6DAE0ADF827926EA879PA4PR02MB6686eurp_ Content-Type: application/octet-stream; name="0006-aix-implement-TLS-relocation-for-gas-and-ld.patch" Content-Description: 0006-aix-implement-TLS-relocation-for-gas-and-ld.patch Content-Disposition: attachment; filename="0006-aix-implement-TLS-relocation-for-gas-and-ld.patch"; size=61703; creation-date="Tue, 16 Feb 2021 09:59:44 GMT"; modification-date="Tue, 16 Feb 2021 09:59:44 GMT" Content-Transfer-Encoding: base64 RnJvbSAwMTYxNDA5MDQ1NzFhNDk1Yzk0MDkwNWM3YWZiODE3NjI0NTlmYTg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q2w9QzM9QTltZW50PTIwQ2hpZ290Pz0gPGNs ZW1lbnQuY2hpZ290QGF0b3MubmV0PgpEYXRlOiBUdWUsIDE2IEZlYiAyMDIxIDEwOjQzOjUxICsw MTAwClN1YmplY3Q6IFtQQVRDSCA2LzZdIGFpeDogaW1wbGVtZW50IFRMUyByZWxvY2F0aW9uIGZv ciBnYXMgYW5kIGxkCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpBZGQgc3VwcG9y dCBmb3IgVExTIGluIFhDT0ZGLiBBbW9uZ3N0IHRoZSB0aGluZ3MgZG9uZSBieSB0aGlzIGNvbW1p dDoKIC0gVXBkYXRlIFhDT0ZGIGF1eGlsaWFyeSBoZWFkZXIgdG8gbWF0Y2ggbmV3IHZlcnNpb25z IGFuZCBhbGxvdyBUTFMKICAgc2VjdGlvbnMuCiAtIEFkZCBUTFMgc2VjdGlvbnMgKC50ZGF0YSBh bmQgLnRic3MpIHN1cHBvcnQgaW4gZ2FzIGFuZCBsZC4KIC0gQWRkIHN1cHBvcnQgZm9yIHRoZSBu ZXcgVExTIHJlbG9jYXRpb25zIGluIGdhcyBhbmQgbGQuCiAgIFR3byBkaWZmZXJlbnQgdHlwZXMg QkZEX1JFTE9DIGFyZSBjcmVhdGVkIGZvciBQUEMgYW5kIFBQQzY0IGFzCiAgIHRoZSBzaXplIGlz IGEgcG9pbnRlciwgdGh1cyBkaXN0aW5jdCBpbiAzMiBvciA2NGJpdC4KClRoZSBhZGRyZXNzZXMg Z2l2ZW4gYnkgbGQgdG8gLnRkYXRhIGFuZCAudGJzcyBpcyBhIGJpdCBzcGVjaWFsLiBJbgpYQ09G RiwgdGhlc2UgYWRkcmVzc2VzIGFyZSBhY3R1YWxseSBvZmZzZXRzIGZyb20gdGhlIFRMUyBwb2lu dGVyCmNvbXB1dGVkIGF0IHJ1bnRpbWUuIEFJWCBhc3NlbWJseSBhbmQgbGlua2VyIGRvZXMgdGhl IHNhbWUuIEFzIGluCnRvcCBvZiB0aGF0LCB0aGUgLnRkYXRhIG11c3QgYmUgYmVmb3JlIC5kYXRh ICh0aGlzIGlzIG1hbmRhdG9yeSBmb3IgQUlYCmxvYWRlciksIHRoZSBhaXggbGQgc2NyaXB0IGlz IHJlY29tcHV0aW5nICIuIiBiZWZvcmUgLmRhdGEgdG8gcmVzdG9yZQppdHMgb3JpZ2luYWwgdmFs dWUuIFRoZXJlIG1pZ2h0IGJlIGEgc2ltcGxlciB3YXksIGJ1dCB0aGlzIG9uZSBpcyB3b3JraW5n LgpUaGUgb25seSBwcm9ibGVtIHdpdGggdGhpcyBtZXRob2QgaXMgdGhhdCBsZCBrZWVwcyAudGRh dGEgZXZlbiBpZgplbXB0eSB3aGVuIHVzaW5nIC1yIGZsYWcuIFRoaXMgcGF0Y2ggZm9yY2VzIHRo ZSByZW1vdmFsIGluIGFpeC5lbQp0byBhdm9pZCB1c2VsZXNzIC50ZGF0YSBzZWN0aW9ucy4KCk9w dGltaXNhdGlvbiBsaW5rZWQgdG8gVExTIHJlbG9jYXRpb25zIGFyZW4ndCB5ZXQgaW1wbGVtZW50 ZWQuCgpiZmQvQ2hhbmdlTG9nOgoyMDIwLTExLTIwICBDbMOpbWVudCBDaGlnb3QgIDxjbGVtZW50 LmNoaWdvdEBhdG9zLm5ldD4KCiAgICAgICAgKiBiZmQtaW4yLmggKEJGRF9SRUxPQ19QUENfVExT e0xFLCBJRSwgTSwgTUx9KQogICAgICAgIChCRkRfUkVMT0NfUFBDNjRfVExTe0dELCBMRCwgTEUs IElFLCBNLCBNTH0pOiBOZXcgZGVmaW5lcy4KICAgICAgICAqIGNvZmYtcnM2MDAwLmMgKHhjb2Zm X2NhbGN1bGF0ZV9yZWxvY2F0aW9uw4MpOiBDYWxsCiAgICAgICAgeGNvZmZfcmVsb2NfdHlwZV90 bHMgZm9yIFJfVExTeyAsSUUsIExELCBMRSwgTSwgTUx9LgogICAgICAgICh4Y29mZl9ob3d0b190 YWJsZSk6IEltcGxlbWVudCBSX1RMU3sgLElFLCBMRCwgTEUsIE0sIE1MfS4KICAgICAgICAoX2Jm ZF94Y29mZl9yZWxvY190eXBlX2xvb2t1cCk6IEFkZCBjYXNlcyBmb3IKICAgICAgICBCRkRfUkVM T0NfUFBDX1RMU3tHRCwgTEQsIExFLCBJRSwgTSwgTUx9LgogICAgICAgICh4Y29mZl9yZWxvY190 eXBlX3Rscyk6IE5ldyBmdW5jdGlvbi4KICAgICAgICAqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmZf Y2FsY3VsYXRlX3JlbG9jYXRpb24pOiBDYWxsCiAgICAgICAgeGNvZmZfcmVsb2NfdHlwZV90bHMg Zm9yIFJfVExTeyAsSUUsIExELCBMRSwgTSwgTUx9LgogICAgICAgICh4Y29mZl9ob3d0b190YWJs ZSk6IEltcGxlbWVudCBSX1RMU3sgLElFLCBMRCwgTEUsIE0sIE1MfS4KICAgICAgICAoX2JmZF94 Y29mZl9yZWxvY190eXBlX2xvb2t1cCk6IEFkZCBjYXNlcyBmb3IKICAgICAgICBCRkRfUkVMT0Nf UFBDNjRfVExTe0dELCBMRCwgTEUsIElFLCBNLCBNTH0uCiAgICAgICAgKiBjb2ZmY29kZS5oIChz ZWNfdG9fc3R5cF9mbGFncyk6IEhhbmRsZSBUTFMgc2VjdGlvbnMuCiAgICAgICAgKHN0eXBfdG9f c2VjX2ZsYWdzw4MpOiBpa2V3aXNlLgogICAgICAgIChjb2ZmX2NvbXB1dGVfc2VjdGlvbl9maWxl X3Bvc2l0aW9ucyk6IEF2b2lkIGZpbGUgb2Zmc2V0CiAgICAgICAgb3B0aW1pc2F0aW9uIGZvciAu ZGF0YSB3aGVuIHRoZSBwcmV2aW91cyBzZWN0aW9uIGlzIC50ZGF0YS4KICAgICAgICAoY29mZl93 cml0ZV9vYmplY3RfY29udGVudHMpOiBIYW5kbGUgVExTIHNlY3Rpb25zLgogICAgICAgICogY29m ZnN3YXAuaCAoY29mZl9zd2FwX2FvdXRoZHJfb3V0KTogQWRkIHN1cHBvcnQgZm9yCiAgICAgICAg bmV3IGZpZWxkcyBpbiBhb3V0aGRyLgogICAgICAgICogbGliYmZkLmggKGJmZF9yZWxvY19jb2Rl X3JlYWxfbmFtZXMpOiBBZGQgbmV3IEJGRF9SRUxPQwogICAgICAgIGRlZmluZXMuCiAgICAgICAg KiBsaWJ4Y29mZi5oICh4Y29mZl9yZWxvY190eXBlX3Rscyk6IEFkZCBwcm90b3R5cGUuCiAgICAg ICAgKiB4Y29mZmxpbmsuYyAoeGNvZmZfbGlua19hZGRfc3ltYm9scyk6IEhhbmRsZSBYTUNfVUwu CiAgICAgICAgKHhjb2ZmX25lZWRfbGRyZWxfcCk6IEFkZCBjYXNlcyBmb3IgVExTIHJlbG9jYXRp b25zLgogICAgICAgICh4Y29mZl9jcmVhdGVfbGRyZWwpOiBBZGQgbF9zeW1uZHggZm9yIFRMUyBz ZWN0aW9ucy4KCmdhcy9DaGFuZ2Vsb2cKMjAyMC0xMS0yMCAgQ2zDqW1lbnQgQ2hpZ290ICA8Y2xl bWVudC5jaGlnb3RAYXRvcy5uZXQ+CgogICAgICAgICogY29uZmlnL3RjLXBwYy5jIChwcGNfeGNv ZmZfdGV4dF9zZWN0aW9uLCBwcGNfeGNvZmZfZGF0YV9zZWN0aW9uLAogICAgICAgIChwcGNfeGNv ZmZfYnNzX3NlY3Rpb24sIHBwY194Y29mZl90ZGF0YV9zZWN0aW9uLAogICAgICAgIChwcGNfeGNv ZmZfdGJzc19zZWN0aW9uKTogTmV3IHZhcmlhYmxlcy4KICAgICAgICAocHBjX3RleHRfc3Vic2Vn bWVudCwgcHBjX3RleHRfY3NlY3RzLCBwcGNfZGF0YV9zdWJnbWVudHMsCiAgICAgICAgKHBwY19k YXRhX2NzZWN0cyk6IFJlbW92ZWQuCiAgICAgICAgKHBwY194Y29mZl9zZWN0aW9uX2lzX2luaXRp YWxpemVkLCBwcGNfaW5pdF94Y29mZl9zZWN0aW9uLAogICAgICAgIHBwY194Y29mZl9wYXJzZV9j b25zKTogTmV3IGZ1bmN0aW9ucy4KICAgICAgICAobWRfYmVpbmcpOiBJbml0aWFsaXplIFhDT0ZG IHNlY3Rpb25zLgogICAgICAgIChwcGNfeGNvZmZfc3VmZml4KTogQWRkIHN1cHBvcnQgZm9yIFRM UyByZWxvY2F0aW9ucwogICAgICAgIChmaXh1cF9zaXplLCBtZF9hcHBseV9maXgpOiBBZGQgc3Vw cG9ydCBmb3IgbmV3IEJGRF9SRUxPQy4KICAgICAgICAocHBjX2NoYW5nZV9jc2VjdCk6IEhhbmRs ZSBYTUNfVEwsIFhNQ19VTC4gIENvcnJlY3RseSwgYWRkIFhNQ19CUwogICAgICAgIHRvIC5ic3Mg c2VjdGlvbi4gIEhhbmRsZSBuZXcgWENPRkYgc2VjdGlvbiB2YXJpYWJsZXMuCiAgICAgICAgKHBw Y19jb21tKTogTGlrZXdpc2UuCiAgICAgICAgKHBwY190b2MpOiBMaWtld2lzZS4KICAgICAgICAo cHBjX3N5bWJvbF9uZXdfaG9vayk6IExpa2V3aXNlLgogICAgICAgIChwcGNfZnJvYl9zeW1ib2wp OiBMaWtld2lzZS4KICAgICAgICAocHBjX2ZpeF9hZGp1c3RhYmxlKTogQWRkIHRic3Mgc3VwcG9y dC4KICAgICAgICAqIGNvbmZpZy90Yy1wcGMuaCAoVENfUEFSU0VfQ09OU19FWFBSRVNTSU9OKTog TmV3IGRlZmluZS4KICAgICAgICAocHBjX3hjb2ZmX3BhcnNlX2NvbnMpOiBBZGQgcHJvdG90eXBl LgogICAgICAgIChzdHJ1Y3QgcHBjX3hjb2ZmX3NlY3Rpb24pOiBOZXcgc3RydWN0dXJlLgoKbGQv Q2hhbmdlbG9nCjIwMjAtMTEtMjAgIENsw6ltZW50IENoaWdvdCAgPGNsZW1lbnQuY2hpZ290QGF0 b3MubmV0PgoKICAgICAgICAqIGVtdWx0ZW1wbC9haXguZW06IEVuc3VyZSAudGRhdGEgc2VjdGlv biBpcyByZW1vdmVkCiAgICAgICAgaWYgZW1wdHksIGV2ZW4gd2l0aCAtciBmbGFnLgogICAgICAg ICogc2NyaXB0dGVtcGwvYWl4LnNjOiBIYW5kbGUgVExTIHNlY3Rpb25zLgogICAgICAgICogdGVz dHN1aXRlL2xkLXBvd2VycGMvYWl4NTIuZXhwOiBBZGQgbmV3IHRlc3RzLgogICAgICAgICogdGVz dHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1yZWxvYy0zMi5kOiBOZXcgdGVzdC4KICAgICAgICAq IHRlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtcmVsb2MtNjQuZDogTmV3IHRlc3QuCiAgICAg ICAgKiB0ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXJlbG9jLmV4OiBOZXcgdGVzdC4KICAg ICAgICAqIHRlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtcmVsb2MuczogTmV3IHRlc3QuCiAg ICAgICAgKiB0ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXNlY3Rpb24tMzIuZDogTmV3IHRl c3QuCiAgICAgICAgKiB0ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXNlY3Rpb24tNjQuZDog TmV3IHRlc3QuCiAgICAgICAgKiB0ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXNlY3Rpb24u ZXg6IE5ldyB0ZXN0LgogICAgICAgICogdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1zZWN0 aW9uLnM6IE5ldyB0ZXN0LgoKaW5jbHVkZS9DaGFuZ2VMb2c6CgogICAgICAgICogY29mZi9pbnRl cm5hbC5oIChzdHJ1Y3QgaW50ZXJuYWxfYW91dGhkcik6IEFkZCBuZXcgZmllbGRzLgogICAgICAg ICogY29mZi9yczYwMDAuaCAoQU9VVEhEUsODKTogQWRkIG5ldyBmaWVsZHMuCiAgICAgICAgKiBj b2ZmL3JzNms2NC5oIChzdHJ1Y3QgZXh0ZXJuYWxfZmlsZWhkcik6IExpa2V3aXNlLgogICAgICAg ICogY29mZi94Y29mZi5oIChfVERBVEEpLCBfVEJTUyk6IE5ldyBkZWZpbmVzCiAgICAgICAgKFJT NktfQU9VVEhEUl9UTFNfTEUsIFJTNktfQU9VVEhEUl9SQVMsIFJTNktfQU9VVEhEUl9BTEdOVERB VEEsCiAgICAgICAgUlM2S19BT1VUSERSX1NIUl9TWU1UQUIsIFJTNktfQU9VVEhEUl9GT1JLX1BP TElDWSwKICAgICAgICBSUzZLX0FPVVRIRFJfRk9SS19DT1IpOiBOZXcgZGVmaW5lcy4KICAgICAg ICAoWE1DX1RVKTogUmVtb3ZlZC4KICAgICAgICAoWE1DX1VMKTogTmV3IGRlZmluZS4KLS0tCiBi ZmQvYmZkLWluMi5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArCiBiZmQv Y29mZi1yczYwMDAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIxNyArKysrKysrKysr KysrKystLQogYmZkL2NvZmY2NC1yczYwMDAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx MDkgKysrKysrKy0tCiBiZmQvY29mZmNvZGUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA2NiArKysrKy0KIGJmZC9jb2Zmc3dhcC5oICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDExICstCiBiZmQvbGliYmZkLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAxMCArCiBiZmQvbGlieGNvZmYuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBiZmQveGNvZmZsaW5rLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx OCArKwogZ2FzL2NvbmZpZy90Yy1wcGMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMzEg KysrKysrKysrKysrKysrLS0tLQogZ2FzL2NvbmZpZy90Yy1wcGMuaCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMTcgKysKIGluY2x1ZGUvY29mZi9pbnRlcm5hbC5oICAgICAgICAgICAgICAg ICAgICAgIHwgICA5ICstCiBpbmNsdWRlL2NvZmYvcnM2MDAwLmggICAgICAgICAgICAgICAgICAg ICAgICB8ICA1MCArKy0tCiBpbmNsdWRlL2NvZmYvcnM2azY0LmggICAgICAgICAgICAgICAgICAg ICAgICB8ICA1NCArKystLQogaW5jbHVkZS9jb2ZmL3hjb2ZmLmggICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTkgKy0KIGxkL2VtdWx0ZW1wbC9haXguZW0gICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIwICsrCiBsZC9zY3JpcHR0ZW1wbC9haXguc2MgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzMCArKy0KIGxkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtcmVsb2MtMzIuZCAg IHwgIDM1ICsrKwogbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1yZWxvYy02NC5kICAg fCAgMzEgKysrCiBsZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXJlbG9jLmV4ICAgICB8 ICAgMSArCiBsZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXJlbG9jLnMgICAgICB8ICA2 NSArKysrKysKIGxkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2VjdGlvbi0zMi5kIHwg IDE1ICsrCiBsZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXNlY3Rpb24tNjQuZCB8ICAx NSArKwogbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1zZWN0aW9uLmV4ICAgfCAgIDIg KwogbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1zZWN0aW9uLnMgICAgfCAgIDggKwog bGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4NTIuZXhwICAgICAgICAgICAgfCAgMTAgKwogMjUg ZmlsZXMgY2hhbmdlZCwgOTIxIGluc2VydGlvbnMoKyksIDEzMyBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXJlbG9jLTMyLmQK IGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXJlbG9j LTY0LmQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxz LXJlbG9jLmV4CiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4 LXRscy1yZWxvYy5zCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMv YWl4LXRscy1zZWN0aW9uLTMyLmQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQt cG93ZXJwYy9haXgtdGxzLXNlY3Rpb24tNjQuZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3Rz dWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2VjdGlvbi5leAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxk L3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2VjdGlvbi5zCgpkaWZmIC0tZ2l0IGEvYmZk L2JmZC1pbjIuaCBiL2JmZC9iZmQtaW4yLmgKaW5kZXggMmIyYzJjMmIxNi4uN2E4NWVkODhiZCAx MDA2NDQKLS0tIGEvYmZkL2JmZC1pbjIuaAorKysgYi9iZmQvYmZkLWluMi5oCkBAIC0zMDAzLDYg KzMwMDMsMTAgQEAgaW5zdHJ1Y3Rpb24uICAqLwogICBCRkRfUkVMT0NfUFBDX1RMUywKICAgQkZE X1JFTE9DX1BQQ19UTFNHRCwKICAgQkZEX1JFTE9DX1BQQ19UTFNMRCwKKyAgQkZEX1JFTE9DX1BQ Q19UTFNMRSwKKyAgQkZEX1JFTE9DX1BQQ19UTFNJRSwKKyAgQkZEX1JFTE9DX1BQQ19UTFNNLAor ICBCRkRfUkVMT0NfUFBDX1RMU01MLAogICBCRkRfUkVMT0NfUFBDX0RUUE1PRCwKICAgQkZEX1JF TE9DX1BQQ19UUFJFTDE2LAogICBCRkRfUkVMT0NfUFBDX1RQUkVMMTZfTE8sCkBAIC0zMDMwLDYg KzMwMzQsMTIgQEAgaW5zdHJ1Y3Rpb24uICAqLwogICBCRkRfUkVMT0NfUFBDX0dPVF9EVFBSRUwx Nl9MTywKICAgQkZEX1JFTE9DX1BQQ19HT1RfRFRQUkVMMTZfSEksCiAgIEJGRF9SRUxPQ19QUENf R09UX0RUUFJFTDE2X0hBLAorICBCRkRfUkVMT0NfUFBDNjRfVExTR0QsCisgIEJGRF9SRUxPQ19Q UEM2NF9UTFNMRCwKKyAgQkZEX1JFTE9DX1BQQzY0X1RMU0xFLAorICBCRkRfUkVMT0NfUFBDNjRf VExTSUUsCisgIEJGRF9SRUxPQ19QUEM2NF9UTFNNLAorICBCRkRfUkVMT0NfUFBDNjRfVExTTUws CiAgIEJGRF9SRUxPQ19QUEM2NF9UUFJFTDE2X0RTLAogICBCRkRfUkVMT0NfUFBDNjRfVFBSRUwx Nl9MT19EUywKICAgQkZEX1JFTE9DX1BQQzY0X1RQUkVMMTZfSElHSCwKZGlmZiAtLWdpdCBhL2Jm ZC9jb2ZmLXJzNjAwMC5jIGIvYmZkL2NvZmYtcnM2MDAwLmMKaW5kZXggMjA5NGY3ZjZhNC4uYjgy YmZlZTdhYiAxMDA2NDQKLS0tIGEvYmZkL2NvZmYtcnM2MDAwLmMKKysrIGIvYmZkL2NvZmYtcnM2 MDAwLmMKQEAgLTE5MCwxMiArMTkwLDEyIEBAIHhjb2ZmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uW1hD T0ZGX01BWF9DQUxDVUxBVEVfUkVMT0NBVElPTl0gPQogICB4Y29mZl9yZWxvY190eXBlX2ZhaWws IC8qICAgICAgICAgICAoMHgxZCkgKi8KICAgeGNvZmZfcmVsb2NfdHlwZV9mYWlsLCAvKiAgICAg ICAgICAgKDB4MWUpICovCiAgIHhjb2ZmX3JlbG9jX3R5cGVfZmFpbCwgLyogICAgICAgICAgICgw eDFmKSAqLwotICB4Y29mZl9yZWxvY190eXBlX2ZhaWwsIC8qIFJfVExTICAgICAoMHgyMCkgKi8K LSAgeGNvZmZfcmVsb2NfdHlwZV9mYWlsLCAvKiBSX1RMU19JRSAgKDB4MjEpICovCi0gIHhjb2Zm X3JlbG9jX3R5cGVfZmFpbCwgLyogUl9UTFNfTEQgICgweDIyKSAqLwotICB4Y29mZl9yZWxvY190 eXBlX2ZhaWwsIC8qIFJfVExTX0xFICAoMHgyMykgKi8KLSAgeGNvZmZfcmVsb2NfdHlwZV9mYWls LCAvKiBSX1RMU00gICAgKDB4MjQpICovCi0gIHhjb2ZmX3JlbG9jX3R5cGVfZmFpbCwgLyogUl9U TFNNTCAgICgweDI1KSAqLworICB4Y29mZl9yZWxvY190eXBlX3RscywgIC8qIFJfVExTICAgICAo MHgyMCkgKi8KKyAgeGNvZmZfcmVsb2NfdHlwZV90bHMsICAvKiBSX1RMU19JRSAgKDB4MjEpICov CisgIHhjb2ZmX3JlbG9jX3R5cGVfdGxzLCAgLyogUl9UTFNfTEQgICgweDIyKSAqLworICB4Y29m Zl9yZWxvY190eXBlX3RscywgIC8qIFJfVExTX0xFICAoMHgyMykgKi8KKyAgeGNvZmZfcmVsb2Nf dHlwZV90bHMsICAvKiBSX1RMU00gICAgKDB4MjQpICovCisgIHhjb2ZmX3JlbG9jX3R5cGVfdGxz LCAgLyogUl9UTFNNTCAgICgweDI1KSAqLwogICB4Y29mZl9yZWxvY190eXBlX2ZhaWwsIC8qICAg ICAgICAgICAoMHgyNikgKi8KICAgeGNvZmZfcmVsb2NfdHlwZV9mYWlsLCAvKiAgICAgICAgICAg KDB4MjcpICovCiAgIHhjb2ZmX3JlbG9jX3R5cGVfZmFpbCwgLyogICAgICAgICAgICgweDI4KSAq LwpAQCAtMTA2NCwyMiArMTA2NCw5NSBAQCByZWxvY19ob3d0b190eXBlIHhjb2ZmX2hvd3RvX3Rh YmxlW10gPQogICBFTVBUWV9IT1dUTyAoMHgxZiksCiAKICAgLyogMHgyMDogR2VuZXJhbC1keW5h bWljIFRMUyByZWxvY2F0aW9uLiAgKi8KLSAgRU1QVFlfSE9XVE8gKFJfVExTKSwKKyAgSE9XVE8g KFJfVExTLAkJCS8qIHR5cGUgKi8KKwkgMCwJCQkvKiByaWdodHNoaWZ0ICovCisJIDIsCQkJLyog c2l6ZSAoMCA9IGJ5dGUsIDEgPSBzaG9ydCwgMiA9IGxvbmcpICovCisJIDMyLAkJCS8qIGJpdHNp emUgKi8KKwkgRkFMU0UsCQkJLyogcGNfcmVsYXRpdmUgKi8KKwkgMCwJCQkvKiBiaXRwb3MgKi8K KwkgY29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQsIC8qIGNvbXBsYWluX29uX292ZXJmbG93ICov CisJIDAsCQkJLyogc3BlY2lhbF9mdW5jdGlvbiAqLworCSAiUl9UTFMiLAkJLyogbmFtZSAqLwor CSBUUlVFLAkJCS8qIHBhcnRpYWxfaW5wbGFjZSAqLworCSAweGZmZmZmZmZmLAkJLyogc3JjX21h c2sgKi8KKwkgMHhmZmZmZmZmZiwJCS8qIGRzdF9tYXNrICovCisJIEZBTFNFKSwJCS8qIHBjcmVs X29mZnNldCAqLwogCiAgIC8qIDB4MjE6IEluaXRpYWwtZXhlYyBUTFMgcmVsb2NhdGlvbi4gICov Ci0gIEVNUFRZX0hPV1RPIChSX1RMU19JRSksCisgIEhPV1RPIChSX1RMU19JRSwJCS8qIHR5cGUg Ki8KKwkgMCwJCQkvKiByaWdodHNoaWZ0ICovCisJIDIsCQkJLyogc2l6ZSAoMCA9IGJ5dGUsIDEg PSBzaG9ydCwgMiA9IGxvbmcpICovCisJIDMyLAkJCS8qIGJpdHNpemUgKi8KKwkgRkFMU0UsCQkJ LyogcGNfcmVsYXRpdmUgKi8KKwkgMCwJCQkvKiBiaXRwb3MgKi8KKwkgY29tcGxhaW5fb3ZlcmZs b3dfYml0ZmllbGQsIC8qIGNvbXBsYWluX29uX292ZXJmbG93ICovCisJIDAsCQkJLyogc3BlY2lh bF9mdW5jdGlvbiAqLworCSAiUl9UTFNfSUUiLAkJLyogbmFtZSAqLworCSBUUlVFLAkJCS8qIHBh cnRpYWxfaW5wbGFjZSAqLworCSAweGZmZmZmZmZmLAkJLyogc3JjX21hc2sgKi8KKwkgMHhmZmZm ZmZmZiwJCS8qIGRzdF9tYXNrICovCisJIEZBTFNFKSwJCS8qIHBjcmVsX29mZnNldCAqLwogCiAg IC8qIDB4MjI6IExvY2FsLWR5bmFtaWMgVExTIHJlbG9jYXRpb24uICAqLwotICBFTVBUWV9IT1dU TyAoUl9UTFNfTEQpLAorICBIT1dUTyAoUl9UTFNfTEQsCQkvKiB0eXBlICovCisJIDAsCQkJLyog cmlnaHRzaGlmdCAqLworCSAyLAkJCS8qIHNpemUgKDAgPSBieXRlLCAxID0gc2hvcnQsIDIgPSBs b25nKSAqLworCSAzMiwJCQkvKiBiaXRzaXplICovCisJIEZBTFNFLAkJCS8qIHBjX3JlbGF0aXZl ICovCisJIDAsCQkJLyogYml0cG9zICovCisJIGNvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkLCAv KiBjb21wbGFpbl9vbl9vdmVyZmxvdyAqLworCSAwLAkJCS8qIHNwZWNpYWxfZnVuY3Rpb24gKi8K KwkgIlJfVExTX0xEIiwJCS8qIG5hbWUgKi8KKwkgVFJVRSwJCQkvKiBwYXJ0aWFsX2lucGxhY2Ug Ki8KKwkgMHhmZmZmZmZmZiwJCS8qIHNyY19tYXNrICovCisJIDB4ZmZmZmZmZmYsCQkvKiBkc3Rf bWFzayAqLworCSBGQUxTRSksCQkvKiBwY3JlbF9vZmZzZXQgKi8KIAogICAvKiAweDIzOiBMb2Nh bC1leGVjIFRMUyByZWxvY2F0aW9uLiAgKi8KLSAgRU1QVFlfSE9XVE8gKFJfVExTX0xFKSwKKyAg SE9XVE8gKFJfVExTX0xFLAkJLyogdHlwZSAqLworCSAwLAkJCS8qIHJpZ2h0c2hpZnQgKi8KKwkg MiwJCQkvKiBzaXplICgwID0gYnl0ZSwgMSA9IHNob3J0LCAyID0gbG9uZykgKi8KKwkgMzIsCQkJ LyogYml0c2l6ZSAqLworCSBGQUxTRSwJCQkvKiBwY19yZWxhdGl2ZSAqLworCSAwLAkJCS8qIGJp dHBvcyAqLworCSBjb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZCwgLyogY29tcGxhaW5fb25fb3Zl cmZsb3cgKi8KKwkgMCwJCQkvKiBzcGVjaWFsX2Z1bmN0aW9uICovCisJICJSX1RMU19MRSIsCQkv KiBuYW1lICovCisJIFRSVUUsCQkJLyogcGFydGlhbF9pbnBsYWNlICovCisJIDB4ZmZmZmZmZmYs CQkvKiBzcmNfbWFzayAqLworCSAweGZmZmZmZmZmLAkJLyogZHN0X21hc2sgKi8KKwkgRkFMU0Up LAkJLyogcGNyZWxfb2Zmc2V0ICovCiAKICAgLyogMHgyNDogVExTIHJlbG9jYXRpb24uICAqLwot ICBFTVBUWV9IT1dUTyhSX1RMU00pLAorICBIT1dUTyAoUl9UTFNNLAkJLyogdHlwZSAqLworCSAw LAkJCS8qIHJpZ2h0c2hpZnQgKi8KKwkgMiwJCQkvKiBzaXplICgwID0gYnl0ZSwgMSA9IHNob3J0 LCAyID0gbG9uZykgKi8KKwkgMzIsCQkJLyogYml0c2l6ZSAqLworCSBGQUxTRSwJCQkvKiBwY19y ZWxhdGl2ZSAqLworCSAwLAkJCS8qIGJpdHBvcyAqLworCSBjb21wbGFpbl9vdmVyZmxvd19iaXRm aWVsZCwgLyogY29tcGxhaW5fb25fb3ZlcmZsb3cgKi8KKwkgMCwJCQkvKiBzcGVjaWFsX2Z1bmN0 aW9uICovCisJICJSX1RMU00iLAkJLyogbmFtZSAqLworCSBUUlVFLAkJCS8qIHBhcnRpYWxfaW5w bGFjZSAqLworCSAweGZmZmZmZmZmLAkJLyogc3JjX21hc2sgKi8KKwkgMHhmZmZmZmZmZiwJCS8q IGRzdF9tYXNrICovCisJIEZBTFNFKSwJCS8qIHBjcmVsX29mZnNldCAqLworCiAKICAgLyogMHgy NTogVExTIG1vZHVsZSByZWxvY2F0aW9uLiAgKi8KLSAgRU1QVFlfSE9XVE8oUl9UTFNNTCksCisg IEhPV1RPIChSX1RMU01MLAkJLyogdHlwZSAqLworICAgICAgICAgMCwJCQkvKiByaWdodHNoaWZ0 ICovCisgICAgICAgICAyLAkJCS8qIHNpemUgKDAgPSBieXRlLCAxID0gc2hvcnQsIDIgPSBsb25n KSAqLworICAgICAgICAgMzIsCQkJLyogYml0c2l6ZSAqLworICAgICAgICAgRkFMU0UsCQkJLyog cGNfcmVsYXRpdmUgKi8KKyAgICAgICAgIDAsCQkJLyogYml0cG9zICovCisgICAgICAgICBjb21w bGFpbl9vdmVyZmxvd19iaXRmaWVsZCwgLyogY29tcGxhaW5fb25fb3ZlcmZsb3cgKi8KKyAgICAg ICAgIDAsCQkJLyogc3BlY2lhbF9mdW5jdGlvbiAqLworICAgICAgICAgIlJfVExTTSIsCQkvKiBu YW1lICovCisgICAgICAgICBUUlVFLAkJCS8qIHBhcnRpYWxfaW5wbGFjZSAqLworICAgICAgICAg MHhmZmZmZmZmZiwJCS8qIHNyY19tYXNrICovCisgICAgICAgICAweGZmZmZmZmZmLAkJLyogZHN0 X21hc2sgKi8KKyAgICAgICAgIEZBTFNFKSwJCS8qIHBjcmVsX29mZnNldCAqLwogCiAgIEVNUFRZ X0hPV1RPKDB4MjYpLAogICBFTVBUWV9IT1dUTygweDI3KSwKQEAgLTExODMsNiArMTI1NiwxOCBA QCBfYmZkX3hjb2ZmX3JlbG9jX3R5cGVfbG9va3VwIChiZmQgKmFiZmQgQVRUUklCVVRFX1VOVVNF RCwKICAgICAgIHJldHVybiAmeGNvZmZfaG93dG9fdGFibGVbMF07CiAgICAgY2FzZSBCRkRfUkVM T0NfTk9ORToKICAgICAgIHJldHVybiAmeGNvZmZfaG93dG9fdGFibGVbMHhmXTsKKyAgICBjYXNl IEJGRF9SRUxPQ19QUENfVExTR0Q6CisgICAgICByZXR1cm4gJnhjb2ZmX2hvd3RvX3RhYmxlWzB4 MjBdOworICAgIGNhc2UgQkZEX1JFTE9DX1BQQ19UTFNJRToKKyAgICAgIHJldHVybiAmeGNvZmZf aG93dG9fdGFibGVbMHgyMV07CisgICAgY2FzZSBCRkRfUkVMT0NfUFBDX1RMU0xEOgorICAgICAg cmV0dXJuICZ4Y29mZl9ob3d0b190YWJsZVsweDIyXTsKKyAgICBjYXNlIEJGRF9SRUxPQ19QUENf VExTTEU6CisgICAgICByZXR1cm4gJnhjb2ZmX2hvd3RvX3RhYmxlWzB4MjNdOworICAgIGNhc2Ug QkZEX1JFTE9DX1BQQ19UTFNNOgorICAgICAgcmV0dXJuICZ4Y29mZl9ob3d0b190YWJsZVsweDI0 XTsKKyAgICBjYXNlIEJGRF9SRUxPQ19QUENfVExTTUw6CisgICAgICByZXR1cm4gJnhjb2ZmX2hv d3RvX3RhYmxlWzB4MjVdOwogICAgIGRlZmF1bHQ6CiAgICAgICByZXR1cm4gTlVMTDsKICAgICB9 CkBAIC0zMTIyLDYgKzMyMDcsODggQEAgeGNvZmZfcmVsb2NfdHlwZV9jcmVsIChiZmQgKmlucHV0 X2JmZCBBVFRSSUJVVEVfVU5VU0VELAogICByZXR1cm4gVFJVRTsKIH0KIAorYmZkX2Jvb2xlYW4K K3hjb2ZmX3JlbG9jX3R5cGVfdGxzIChiZmQgKmlucHV0X2JmZCBBVFRSSUJVVEVfVU5VU0VELAor CQkgICAgICBhc2VjdGlvbiAqaW5wdXRfc2VjdGlvbiBBVFRSSUJVVEVfVU5VU0VELAorCQkgICAg ICBiZmQgKm91dHB1dF9iZmQgQVRUUklCVVRFX1VOVVNFRCwKKwkJICAgICAgc3RydWN0IGludGVy bmFsX3JlbG9jICpyZWwgQVRUUklCVVRFX1VOVVNFRCwKKwkJICAgICAgc3RydWN0IGludGVybmFs X3N5bWVudCAqc3ltIEFUVFJJQlVURV9VTlVTRUQsCisJCSAgICAgIHN0cnVjdCByZWxvY19ob3d0 b19zdHJ1Y3QgKmhvd3RvLAorCQkgICAgICBiZmRfdm1hIHZhbCwKKwkJICAgICAgYmZkX3ZtYSBh ZGRlbmQsCisJCSAgICAgIGJmZF92bWEgKnJlbG9jYXRpb24sCisJCSAgICAgIGJmZF9ieXRlICpj b250ZW50cyBBVFRSSUJVVEVfVU5VU0VEKQoreworICBzdHJ1Y3QgeGNvZmZfbGlua19oYXNoX2Vu dHJ5ICpoOworCisgIGlmICgwID4gcmVsLT5yX3N5bW5keCkKKyAgICByZXR1cm4gRkFMU0U7CisK KyAgaCA9IG9ial94Y29mZl9zeW1faGFzaGVzIChpbnB1dF9iZmQpW3JlbC0+cl9zeW1uZHhdOwor CisgIC8qIEZJWE1FOiBSX1RMU01MIGlzIHRhcmdldGluZyBhIGludGVybmFsIFRPQyBzeW1ib2ws IHdoaWNoIHdpbGwKKyAgICAgbWFrZSB0aGUgZm9sbG93aW5nIGNoZWNrcyBmYWlsaW5nLiBJdCBz aG91bGQgYmUgbW92ZWQgd2l0aAorICAgICBSX1RMU00gYmVsbG93IG9uY2UgaXQgd29ya3MuICAq LworICBpZiAoaG93dG8tPnR5cGUgPT0gUl9UTFNNTCkKKyAgICB7CisgICAgICAqcmVsb2NhdGlv biA9IDA7CisgICAgICByZXR1cm4gVFJVRTsKKyAgICB9CisKKyAgLyogRklYTUU6IGggaXMgc29t ZXRpbWVzIG51bGwsIGlmIHRoZSBUTFMgc3ltYm9sIGlzIG5vdCBleHBvcnRlZC4gICovCisgIGlm ICghaCkKKyAgICB7CisgICAgICBfYmZkX2Vycm9yX2hhbmRsZXIKKwkoXygiJXBCOiBUTFMgcmVs b2NhdGlvbiBhdCAoMHglbHgpIG92ZXIgaW50ZXJuYWwgc3ltYm9scyAoQ19ISURFWFQpICIKKwkg ICAibm90IHlldCBwb3NzaWJsZVxuIiksCisJIGlucHV0X2JmZCwgcmVsLT5yX3ZhZGRyKTsKKyAg ICAgIHJldHVybiBGQUxTRTsKKyAgICB9CisKKworICAvKiBUTFMgcmVsb2NhdGlvbnMgbXVzdCB0 YXJnZXQgYSBUTFMgc3ltYm9sLiAgKi8KKyAgaWYgKGgtPnNtY2xhcyAhPSBYTUNfVEwgJiYgaC0+ c21jbGFzICE9IFhNQ19VTCkKKyAgICB7CisgICAgICBfYmZkX2Vycm9yX2hhbmRsZXIKKwkoXygi JXBCOiBUTFMgcmVsb2NhdGlvbiBhdCAoMHglbHgpIG92ZXIgbm9uLVRMUyAiCisJICAgInN5bWJv bCAlcyAoMHgleClcbiIpLAorCSBpbnB1dF9iZmQsIHJlbC0+cl92YWRkciwgaC0+cm9vdC5yb290 LnN0cmluZywgaC0+c21jbGFzKTsKKyAgICAgIHJldHVybiBGQUxTRTsKKyAgICB9CisKKyAgLyog TG9jYWwgVExTIHJlbG9jYXRpb25zIG11c3QgdGFyZ2V0IGEgbG9jYWwgc3ltYm9sLCBpZQorICAg ICBub24taW1wb3J0ZWQuICovCisgIGlmICgocmVsLT5yX3R5cGUgPT0gUl9UTFNfTEQgfHwgcmVs LT5yX3R5cGUgPT0gUl9UTFNfTEUpCisgICAgICAmJiAoKChoLT5mbGFncyAmIFhDT0ZGX0RFRl9S RUdVTEFSKSA9PSAwCisgICAgICAgJiYgKGgtPmZsYWdzICYgWENPRkZfREVGX0RZTkFNSUMpICE9 IDApCisJICB8fCAoaC0+ZmxhZ3MgJiBYQ09GRl9JTVBPUlQpICE9IDApKQorICAgIHsKKyAgICAg IF9iZmRfZXJyb3JfaGFuZGxlcgorCShfKCIlcEI6IFRMUyBsb2NhbCByZWxvY2F0aW9uIGF0ICgw eCVseCkgb3ZlciAiCisJICAgImltcG9ydGVkIHN5bWJvbCAlc1xuIiksCisJIGlucHV0X2JmZCwg cmVsLT5yX3ZhZGRyLCBoLT5yb290LnJvb3Quc3RyaW5nKTsKKyAgICAgIHJldHVybiBGQUxTRTsK KyAgICB9CisKKyAgLyogUl9UTFNNIGFuZCBSX1RMU01MIGFyZSByZWxvY2F0aW9ucyB1c2VkIGJ5 IHRoZSBsb2FkZXIuCisgICAgIFRoZSB2YWx1ZSBtdXN0IGJlIDAuCisgICAgIEZJWE1FOiBtb3Zl IFJfVExTTUwgaGVyZS4gICovCisgIGlmIChob3d0by0+dHlwZSA9PSBSX1RMU00pCisgICAgewor ICAgICAgKnJlbG9jYXRpb24gPSAwOworICAgICAgcmV0dXJuIFRSVUU7CisgICAgfQorCisgIC8q IE90aGVyIFRMUyByZWxvY2F0aW9ucyBhaW1zIHRvIHB1dCBvZmZzZXRzIGZyb20gVExTIHBvaW50 ZXJzCisgICAgIHN0YXJ0aW5nIGF0IC0weDdjMDAgKG9yIC0weDc4MDAgaW4gWENPRkY2NCkuICBJ dCBiZWNvbWVzIGEKKyAgICAgc2ltcGxlIFJfUE9TIHJlbG9jYXRpb24gYXMgbG9uZyBhcyAudGRh dGEgYW5kIC50YnNzIGFkZHJlc3NlcworICAgICBzdGFydCBhdCB0aGUgc2FtZSB2YWx1ZS4gVGhp cyBpcyBkb25lIGluIGFpeCBsZCBzY3JpcHRzLgorICAgICBUT0RPOiBpbXBsZW1lbnQgb3B0aW1p emF0aW9uIHdoZW4gdGxzIHNpemUgaXMgPCA2MksuICAqLworICAqcmVsb2NhdGlvbiA9IHZhbCAr IGFkZGVuZDsKKworICByZXR1cm4gVFJVRTsKK30KKwogc3RhdGljIGJmZF9ib29sZWFuCiB4Y29m Zl9jb21wbGFpbl9vdmVyZmxvd19kb250X2Z1bmMgKGJmZCAqaW5wdXRfYmZkIEFUVFJJQlVURV9V TlVTRUQsCiAJCQkJICAgYmZkX3ZtYSB2YWwgQVRUUklCVVRFX1VOVVNFRCwKQEAgLTMzMzAsMTMg KzM0OTcsNiBAQCB4Y29mZl9jb21wbGFpbl9vdmVyZmxvd191bnNpZ25lZF9mdW5jIChiZmQgKmlu cHV0X2JmZCwKICAgIHF1aXRlIGZpZ3VyZSBvdXQgd2hlbiB0aGlzIGlzIHVzZWZ1bC4gIFRoZXNl IHJlbG9jcyBhcmUKICAgIG5vdCBkZWZpbmVkIGJ5IHRoZSBQb3dlck9wZW4gQUJJLgogCi0gICBS X1RMUwotICAgUl9UTFNfSUUKLSAgIFJfVExTX0xECi0gICBSX1RMU0xFCi0KLSAgIE5vdCB5ZXQg aW1wbGVtZW50ZWQuCi0KICAgIFN1cHBvcnRlZCByX3R5cGUncwogCiAgICBSX1BPUzoKQEAgLTM0 MzIsNiArMzU5MiwyNSBAQCB4Y29mZl9jb21wbGFpbl9vdmVyZmxvd191bnNpZ25lZF9mdW5jIChi ZmQgKmlucHV0X2JmZCwKICAgIGZpeGVkIGFkZHJlc3Mgd2hpY2ggbWF5IGJlIG1vZGlmaWVkIHRv IGEgcmVsYXRpdmUgYnJhbmNoLgogICAgVGhlIFBvd2VyT3BlbiBBQkkgZG9lcyBub3QgZGVmaW5l IHRoaXMgcmVsb2NhdGlvbiB0eXBlLgogCisgICBSX1RMUzoKKyAgIFRocmVhZC1sb2NhbCBzdG9y YWdlIHJlbG9jYXRpb24gdXNpbmcgZ2VuZXJhbC1keW5hbWljCisgICBtb2RlbC4KKworICAgUl9U TFNfSUU6CisgICBUaHJlYWQtbG9jYWwgc3RvcmFnZSByZWxvY2F0aW9uIHVzaW5nIGluaXRpYWwt ZXhlYyBtb2RlbC4KKworICAgUl9UTFNfTEQ6CisgICBUaHJlYWQtbG9jYWwgc3RvcmFnZSByZWxv Y2F0aW9uIHVzaW5nIGxvY2FsLWR5bmFtaWMgbW9kZWwuCisKKyAgIFJfVExTX0xFOgorICAgVGhy ZWFkLWxvY2FsIHN0b3JhZ2UgcmVsb2NhdGlvbiB1c2luZyBsb2NhbC1leGVjIG1vZGVsLgorCisg ICBSX1RMUzoKKyAgIFRyZWFkLWxvY2FsIHN0b3JhZ2UgcmVsb2NhdGlvbiB1c2VkIGJ5IHRoZSBs b2FkZXIuCisKKyAgIFJfVExTTToKKyAgIFRyZWFkLWxvY2FsIHN0b3JhZ2UgcmVsb2NhdGlvbiB1 c2VkIGJ5IHRoZSBsb2FkZXIuCisKICAgIFJfVE9DVToKICAgIFVwcGVyIFRPQyByZWxhdGl2ZSBy ZWxvY2F0aW9uLiBUaGUgdmFsdWUgaXMgdGhlCiAgICBoaWdoLW9yZGVyIDE2IGJpdCBvZiBhIFRP QyByZWxhdGl2ZSByZWxvY2F0aW9uLgpkaWZmIC0tZ2l0IGEvYmZkL2NvZmY2NC1yczYwMDAuYyBi L2JmZC9jb2ZmNjQtcnM2MDAwLmMKaW5kZXggNGY3NGMzMzlkZS4uOWNjOTUyNjZkZiAxMDA2NDQK LS0tIGEvYmZkL2NvZmY2NC1yczYwMDAuYworKysgYi9iZmQvY29mZjY0LXJzNjAwMC5jCkBAIC0y MTIsMTIgKzIxMiwxMiBAQCB4Y29mZjY0X2NhbGN1bGF0ZV9yZWxvY2F0aW9uW1hDT0ZGX01BWF9D QUxDVUxBVEVfUkVMT0NBVElPTl0gPQogICB4Y29mZl9yZWxvY190eXBlX2ZhaWwsIC8qICAgICAg ICAgICAoMHgxZCkgKi8KICAgeGNvZmZfcmVsb2NfdHlwZV9mYWlsLCAvKiAgICAgICAgICAgKDB4 MWUpICovCiAgIHhjb2ZmX3JlbG9jX3R5cGVfZmFpbCwgLyogICAgICAgICAgICgweDFmKSAqLwot ICB4Y29mZl9yZWxvY190eXBlX2ZhaWwsIC8qIFJfVExTICAgICAoMHgyMCkgKi8KLSAgeGNvZmZf cmVsb2NfdHlwZV9mYWlsLCAvKiBSX1RMU19JRSAgKDB4MjEpICovCi0gIHhjb2ZmX3JlbG9jX3R5 cGVfZmFpbCwgLyogUl9UTFNfTEQgICgweDIyKSAqLwotICB4Y29mZl9yZWxvY190eXBlX2ZhaWws IC8qIFJfVExTX0xFICAoMHgyMykgKi8KLSAgeGNvZmZfcmVsb2NfdHlwZV9mYWlsLCAvKiBSX1RM U00gICAgKDB4MjQpICovCi0gIHhjb2ZmX3JlbG9jX3R5cGVfZmFpbCwgLyogUl9UTFNNTCAgICgw eDI1KSAqLworICB4Y29mZl9yZWxvY190eXBlX3RscywgIC8qIFJfVExTICAgICAoMHgyMCkgKi8K KyAgeGNvZmZfcmVsb2NfdHlwZV90bHMsICAvKiBSX1RMU19JRSAgKDB4MjEpICovCisgIHhjb2Zm X3JlbG9jX3R5cGVfdGxzLCAgLyogUl9UTFNfTEQgICgweDIyKSAqLworICB4Y29mZl9yZWxvY190 eXBlX3RscywgIC8qIFJfVExTX0xFICAoMHgyMykgKi8KKyAgeGNvZmZfcmVsb2NfdHlwZV90bHMs ICAvKiBSX1RMU00gICAgKDB4MjQpICovCisgIHhjb2ZmX3JlbG9jX3R5cGVfdGxzLCAgLyogUl9U TFNNTCAgICgweDI1KSAqLwogICB4Y29mZl9yZWxvY190eXBlX2ZhaWwsIC8qICAgICAgICAgICAo MHgyNikgKi8KICAgeGNvZmZfcmVsb2NfdHlwZV9mYWlsLCAvKiAgICAgICAgICAgKDB4MjcpICov CiAgIHhjb2ZmX3JlbG9jX3R5cGVfZmFpbCwgLyogICAgICAgICAgICgweDI4KSAqLwpAQCAtMTEy NiwyNCArMTEyNiw5NSBAQCByZWxvY19ob3d0b190eXBlIHhjb2ZmNjRfaG93dG9fdGFibGVbXSA9 CiAJIDB4ZmZmZiwJCS8qIGRzdF9tYXNrICovCiAJIEZBTFNFKSwJCS8qIHBjcmVsX29mZnNldCAq LwogCi0KICAgLyogMHgyMDogR2VuZXJhbC1keW5hbWljIFRMUyByZWxvY2F0aW9uLiAgKi8KLSAg RU1QVFlfSE9XVE8gKFJfVExTKSwKKyAgSE9XVE8gKFJfVExTLAkJCS8qIHR5cGUgKi8KKwkgMCwJ CQkvKiByaWdodHNoaWZ0ICovCisJIDQsCQkJLyogc2l6ZSAoMCA9IGJ5dGUsIDEgPSBzaG9ydCwg MiA9IGxvbmcpICovCisJIDY0LAkJCS8qIGJpdHNpemUgKi8KKwkgRkFMU0UsCQkJLyogcGNfcmVs YXRpdmUgKi8KKwkgMCwJCQkvKiBiaXRwb3MgKi8KKwkgY29tcGxhaW5fb3ZlcmZsb3dfYml0Zmll bGQsIC8qIGNvbXBsYWluX29uX292ZXJmbG93ICovCisJIDAsCQkJLyogc3BlY2lhbF9mdW5jdGlv biAqLworCSAiUl9UTFMiLAkJLyogbmFtZSAqLworCSBUUlVFLAkJCS8qIHBhcnRpYWxfaW5wbGFj ZSAqLworCSBNSU5VU19PTkUsCQkvKiBzcmNfbWFzayAqLworCSBNSU5VU19PTkUsCQkvKiBkc3Rf bWFzayAqLworCSBGQUxTRSksCQkvKiBwY3JlbF9vZmZzZXQgKi8KIAogICAvKiAweDIxOiBJbml0 aWFsLWV4ZWMgVExTIHJlbG9jYXRpb24uICAqLwotICBFTVBUWV9IT1dUTyAoUl9UTFNfSUUpLAor ICBIT1dUTyAoUl9UTFNfSUUsCQkvKiB0eXBlICovCisJIDAsCQkJLyogcmlnaHRzaGlmdCAqLwor CSA0LAkJCS8qIHNpemUgKDAgPSBieXRlLCAxID0gc2hvcnQsIDIgPSBsb25nKSAqLworCSA2NCwJ CQkvKiBiaXRzaXplICovCisJIEZBTFNFLAkJCS8qIHBjX3JlbGF0aXZlICovCisJIDAsCQkJLyog Yml0cG9zICovCisJIGNvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkLCAvKiBjb21wbGFpbl9vbl9v dmVyZmxvdyAqLworCSAwLAkJCS8qIHNwZWNpYWxfZnVuY3Rpb24gKi8KKwkgIlJfVExTX0lFIiwJ CS8qIG5hbWUgKi8KKwkgVFJVRSwJCQkvKiBwYXJ0aWFsX2lucGxhY2UgKi8KKwkgTUlOVVNfT05F LAkJLyogc3JjX21hc2sgKi8KKwkgTUlOVVNfT05FLAkJLyogZHN0X21hc2sgKi8KKwkgRkFMU0Up LAkJLyogcGNyZWxfb2Zmc2V0ICovCiAKICAgLyogMHgyMjogTG9jYWwtZHluYW1pYyBUTFMgcmVs b2NhdGlvbi4gICovCi0gIEVNUFRZX0hPV1RPIChSX1RMU19MRCksCisgIEhPV1RPIChSX1RMU19M RCwJCS8qIHR5cGUgKi8KKwkgMCwJCQkvKiByaWdodHNoaWZ0ICovCisJIDQsCQkJLyogc2l6ZSAo MCA9IGJ5dGUsIDEgPSBzaG9ydCwgMiA9IGxvbmcpICovCisJIDY0LAkJCS8qIGJpdHNpemUgKi8K KwkgRkFMU0UsCQkJLyogcGNfcmVsYXRpdmUgKi8KKwkgMCwJCQkvKiBiaXRwb3MgKi8KKwkgY29t cGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQsIC8qIGNvbXBsYWluX29uX292ZXJmbG93ICovCisJIDAs CQkJLyogc3BlY2lhbF9mdW5jdGlvbiAqLworCSAiUl9UTFNfTEQiLAkJLyogbmFtZSAqLworCSBU UlVFLAkJCS8qIHBhcnRpYWxfaW5wbGFjZSAqLworCSBNSU5VU19PTkUsCQkvKiBzcmNfbWFzayAq LworCSBNSU5VU19PTkUsCQkvKiBkc3RfbWFzayAqLworCSBGQUxTRSksCQkvKiBwY3JlbF9vZmZz ZXQgKi8KIAogICAvKiAweDIzOiBMb2NhbC1leGVjIFRMUyByZWxvY2F0aW9uLiAgKi8KLSAgRU1Q VFlfSE9XVE8gKFJfVExTX0xFKSwKKyAgSE9XVE8gKFJfVExTX0xFLAkJLyogdHlwZSAqLworCSAw LAkJCS8qIHJpZ2h0c2hpZnQgKi8KKwkgNCwJCQkvKiBzaXplICgwID0gYnl0ZSwgMSA9IHNob3J0 LCAyID0gbG9uZykgKi8KKwkgNjQsCQkJLyogYml0c2l6ZSAqLworCSBGQUxTRSwJCQkvKiBwY19y ZWxhdGl2ZSAqLworCSAwLAkJCS8qIGJpdHBvcyAqLworCSBjb21wbGFpbl9vdmVyZmxvd19iaXRm aWVsZCwgLyogY29tcGxhaW5fb25fb3ZlcmZsb3cgKi8KKwkgMCwJCQkvKiBzcGVjaWFsX2Z1bmN0 aW9uICovCisJICJSX1RMU19MRSIsCQkvKiBuYW1lICovCisJIFRSVUUsCQkJLyogcGFydGlhbF9p bnBsYWNlICovCisJIE1JTlVTX09ORSwJCS8qIHNyY19tYXNrICovCisJIE1JTlVTX09ORSwJCS8q IGRzdF9tYXNrICovCisJIEZBTFNFKSwJCS8qIHBjcmVsX29mZnNldCAqLwogCiAgIC8qIDB4MjQ6 IFRMUyByZWxvY2F0aW9uLiAgKi8KLSAgRU1QVFlfSE9XVE8oUl9UTFNNKSwKKyAgSE9XVE8gKFJf VExTTSwJCS8qIHR5cGUgKi8KKwkgMCwJCQkvKiByaWdodHNoaWZ0ICovCisJIDQsCQkJLyogc2l6 ZSAoMCA9IGJ5dGUsIDEgPSBzaG9ydCwgMiA9IGxvbmcpICovCisJIDY0LAkJCS8qIGJpdHNpemUg Ki8KKwkgRkFMU0UsCQkJLyogcGNfcmVsYXRpdmUgKi8KKwkgMCwJCQkvKiBiaXRwb3MgKi8KKwkg Y29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQsIC8qIGNvbXBsYWluX29uX292ZXJmbG93ICovCisJ IDAsCQkJLyogc3BlY2lhbF9mdW5jdGlvbiAqLworCSAiUl9UTFNNIiwJCS8qIG5hbWUgKi8KKwkg VFJVRSwJCQkvKiBwYXJ0aWFsX2lucGxhY2UgKi8KKwkgTUlOVVNfT05FLAkJLyogc3JjX21hc2sg Ki8KKwkgTUlOVVNfT05FLAkJLyogZHN0X21hc2sgKi8KKwkgRkFMU0UpLAkJLyogcGNyZWxfb2Zm c2V0ICovCiAKICAgLyogMHgyNTogVExTIG1vZHVsZSByZWxvY2F0aW9uLiAgKi8KLSAgRU1QVFlf SE9XVE8oUl9UTFNNTCksCisgIEhPV1RPIChSX1RMU01MLAkJLyogdHlwZSAqLworCSAwLAkJCS8q IHJpZ2h0c2hpZnQgKi8KKwkgNCwJCQkvKiBzaXplICgwID0gYnl0ZSwgMSA9IHNob3J0LCAyID0g bG9uZykgKi8KKwkgNjQsCQkJLyogYml0c2l6ZSAqLworCSBGQUxTRSwJCQkvKiBwY19yZWxhdGl2 ZSAqLworCSAwLAkJCS8qIGJpdHBvcyAqLworCSBjb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZCwg LyogY29tcGxhaW5fb25fb3ZlcmZsb3cgKi8KKwkgMCwJCQkvKiBzcGVjaWFsX2Z1bmN0aW9uICov CisJICJSX1RMU00iLAkJLyogbmFtZSAqLworCSBUUlVFLAkJCS8qIHBhcnRpYWxfaW5wbGFjZSAq LworCSBNSU5VU19PTkUsCQkvKiBzcmNfbWFzayAqLworCSBNSU5VU19PTkUsCQkvKiBkc3RfbWFz ayAqLworCSBGQUxTRSksCQkvKiBwY3JlbF9vZmZzZXQgKi8KIAogICBFTVBUWV9IT1dUTygweDI2 KSwKICAgRU1QVFlfSE9XVE8oMHgyNyksCkBAIC0xMjU0LDYgKzEzMjUsMTggQEAgeGNvZmY2NF9y ZWxvY190eXBlX2xvb2t1cCAoYmZkICphYmZkIEFUVFJJQlVURV9VTlVTRUQsCiAgICAgICByZXR1 cm4gJnhjb2ZmNjRfaG93dG9fdGFibGVbMF07CiAgICAgY2FzZSBCRkRfUkVMT0NfTk9ORToKICAg ICAgIHJldHVybiAmeGNvZmY2NF9ob3d0b190YWJsZVsweGZdOworICAgIGNhc2UgQkZEX1JFTE9D X1BQQzY0X1RMU0dEOgorICAgICAgcmV0dXJuICZ4Y29mZjY0X2hvd3RvX3RhYmxlWzB4MjBdOwor ICAgIGNhc2UgQkZEX1JFTE9DX1BQQzY0X1RMU0lFOgorICAgICAgcmV0dXJuICZ4Y29mZjY0X2hv d3RvX3RhYmxlWzB4MjFdOworICAgIGNhc2UgQkZEX1JFTE9DX1BQQzY0X1RMU0xEOgorICAgICAg cmV0dXJuICZ4Y29mZjY0X2hvd3RvX3RhYmxlWzB4MjJdOworICAgIGNhc2UgQkZEX1JFTE9DX1BQ QzY0X1RMU0xFOgorICAgICAgcmV0dXJuICZ4Y29mZjY0X2hvd3RvX3RhYmxlWzB4MjNdOworICAg IGNhc2UgQkZEX1JFTE9DX1BQQzY0X1RMU006CisgICAgICByZXR1cm4gJnhjb2ZmNjRfaG93dG9f dGFibGVbMHgyNF07CisgICAgY2FzZSBCRkRfUkVMT0NfUFBDNjRfVExTTUw6CisgICAgICByZXR1 cm4gJnhjb2ZmNjRfaG93dG9fdGFibGVbMHgyNV07CiAgICAgZGVmYXVsdDoKICAgICAgIHJldHVy biBOVUxMOwogICAgIH0KZGlmZiAtLWdpdCBhL2JmZC9jb2ZmY29kZS5oIGIvYmZkL2NvZmZjb2Rl LmgKaW5kZXggYWQxMjdkNDU2YS4uNTRkMTJhZTg4ZiAxMDA2NDQKLS0tIGEvYmZkL2NvZmZjb2Rl LmgKKysrIGIvYmZkL2NvZmZjb2RlLmgKQEAgLTU0OCw2ICs1NDgsMTQgQEAgc2VjX3RvX3N0eXBf ZmxhZ3MgKGNvbnN0IGNoYXIgKnNlY19uYW1lLCBmbGFnd29yZCBzZWNfZmxhZ3MpCiAgICAgfQog I2VuZGlmCiAjaWZkZWYgUlM2MDAwQ09GRl9DCisgIGVsc2UgaWYgKCFzdHJjbXAgKHNlY19uYW1l LCBfVERBVEEpKQorICAgIHsKKyAgICAgIHN0eXBfZmxhZ3MgPSBTVFlQX1REQVRBOworICAgIH0K KyAgZWxzZSBpZiAoIXN0cmNtcCAoc2VjX25hbWUsIF9UQlNTKSkKKyAgICB7CisgICAgICBzdHlw X2ZsYWdzID0gU1RZUF9UQlNTOworICAgIH0KICAgZWxzZSBpZiAoIXN0cmNtcCAoc2VjX25hbWUs IF9QQUQpKQogICAgIHsKICAgICAgIHN0eXBfZmxhZ3MgPSBTVFlQX1BBRDsKQEAgLTc3OCw2ICs3 ODYsMjIgQEAgc3R5cF90b19zZWNfZmxhZ3MgKGJmZCAqYWJmZCwKICAgZWxzZSBpZiAoc3R5cF9m bGFncyAmIFNUWVBfUEFEKQogICAgIHNlY19mbGFncyA9IDA7CiAjaWZkZWYgUlM2MDAwQ09GRl9D CisgIGVsc2UgaWYgKHN0eXBfZmxhZ3MgJiBTVFlQX1REQVRBKQorICAgIHsKKyAgICAgIGlmIChz ZWNfZmxhZ3MgJiBTRUNfTkVWRVJfTE9BRCkKKwlzZWNfZmxhZ3MgfD0gU0VDX0RBVEEgfCBTRUNf VEhSRUFEX0xPQ0FMIHwgU0VDX0NPRkZfU0hBUkVEX0xJQlJBUlk7CisgICAgICBlbHNlCisJc2Vj X2ZsYWdzIHw9IFNFQ19EQVRBIHwgU0VDX1RIUkVBRF9MT0NBTCB8IFNFQ19MT0FEIHwgU0VDX0FM TE9DOworICAgIH0KKyAgZWxzZSBpZiAoc3R5cF9mbGFncyAmIFNUWVBfVEJTUykKKyAgICB7Cisj aWZkZWYgQlNTX05PTE9BRF9JU19TSEFSRURfTElCUkFSWQorICAgICAgaWYgKHNlY19mbGFncyAm IFNFQ19ORVZFUl9MT0FEKQorCXNlY19mbGFncyB8PSBTRUNfQUxMT0MgfCBTRUNfVEhSRUFEX0xP Q0FMIHwgU0VDX0NPRkZfU0hBUkVEX0xJQlJBUlk7CisgICAgICBlbHNlCisjZW5kaWYKKwlzZWNf ZmxhZ3MgfD0gU0VDX0FMTE9DIHwgU0VDX1RIUkVBRF9MT0NBTDsKKyAgICB9CiAgIGVsc2UgaWYg KHN0eXBfZmxhZ3MgJiBTVFlQX0VYQ0VQVCkKICAgICBzZWNfZmxhZ3MgfD0gU0VDX0xPQUQ7CiAg IGVsc2UgaWYgKHN0eXBfZmxhZ3MgJiBTVFlQX0xPQURFUikKQEAgLTMxNTksMTAgKzMxODMsMTUg QEAgY29mZl9jb21wdXRlX3NlY3Rpb25fZmlsZV9wb3NpdGlvbnMgKGJmZCAqIGFiZmQpCiAKIAkg ICAgIDAgLnRleHQJICAgICAwMDAwNTRjYyAgMTAwMDAxMjgJIDEwMDAwMTI4ICAwMDAwMDEyOCAg MioqNQogCQkJICAgICBDT05URU5UUywgQUxMT0MsIExPQUQsIENPREUKKworCSAgICAgRG9uJ3Qg cGVyZm9ybSB0aGUgYWJvdmUgdHdlYWsgaWYgdGhlIHByZXZpb3VzIG9uZSBpcyAudGRhdGEsCisJ ICAgICBhcyBpdCB3aWxsIGluY3JlYXNlIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvciBldmVyeSB0 aHJlYWRzCisJICAgICBjcmVhdGVkIGFuZCBub3QganVzdCBpbXByb3ZlIHBlcmZvcm1hbmNlcyB3 aXRoIGdkYi4KIAkgICovCiAKLQkgIGlmICghc3RyY21wIChjdXJyZW50LT5uYW1lLCBfVEVYVCkK LQkgICAgICB8fCAhc3RyY21wIChjdXJyZW50LT5uYW1lLCBfREFUQSkpCisJICBpZiAoKCFzdHJj bXAgKGN1cnJlbnQtPm5hbWUsIF9URVhUKQorCSAgICAgICB8fCAhc3RyY21wIChjdXJyZW50LT5u YW1lLCBfREFUQSkpCisJICAgICAgJiYgKHByZXZpb3VzID09IE5VTEwgfHwgc3RyY21wKHByZXZp b3VzLT5uYW1lLCBfVERBVEEpKSkKIAkgICAgewogCSAgICAgIGJmZF92bWEgYWxpZ24gPSA0MDk2 OwogCSAgICAgIGJmZF92bWEgc29mYXJfb2ZmID0gc29mYXIgJSBhbGlnbjsKQEAgLTMzNzIsNiAr MzQwMSwxMCBAQCBjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyAoYmZkICogYWJmZCkKICAgYXNl Y3Rpb24gKnRleHRfc2VjID0gTlVMTDsKICAgYXNlY3Rpb24gKmRhdGFfc2VjID0gTlVMTDsKICAg YXNlY3Rpb24gKmJzc19zZWMgPSBOVUxMOworI2lmZGVmIFJTNjAwMENPRkZfQworICBhc2VjdGlv biAqdGRhdGFfc2VjID0gTlVMTDsKKyAgYXNlY3Rpb24gKnRic3Nfc2VjID0gTlVMTDsKKyNlbmRp ZgogICBzdHJ1Y3QgaW50ZXJuYWxfZmlsZWhkciBpbnRlcm5hbF9mOwogICBzdHJ1Y3QgaW50ZXJu YWxfYW91dGhkciBpbnRlcm5hbF9hOwogI2lmZGVmIENPRkZfTE9OR19TRUNUSU9OX05BTUVTCkBA IC0zNTk0LDYgKzM2MjcsMTMgQEAgY29mZl93cml0ZV9vYmplY3RfY29udGVudHMgKGJmZCAqIGFi ZmQpCiAJZGF0YV9zZWMgPSBjdXJyZW50OwogICAgICAgZWxzZSBpZiAoIXN0cmNtcCAoY3VycmVu dC0+bmFtZSwgX0JTUykpCiAJYnNzX3NlYyA9IGN1cnJlbnQ7CisjaWZkZWYgUlM2MDAwQ09GRl9D CisgICAgICBlbHNlIGlmICghc3RyY21wIChjdXJyZW50LT5uYW1lLCBfVERBVEEpKQorCXRkYXRh X3NlYyA9IGN1cnJlbnQ7CisgICAgICBlbHNlIGlmICghc3RyY21wIChjdXJyZW50LT5uYW1lLCBf VEJTUykpCisJdGJzc19zZWMgPSBjdXJyZW50OworI2VuZGlmCisKIAogI2lmZGVmIENPRkZfRU5D T0RFX0FMSUdOTUVOVAogICAgICAgQ09GRl9FTkNPREVfQUxJR05NRU5UKHNlY3Rpb24sIGN1cnJl bnQtPmFsaWdubWVudF9wb3dlcik7CkBAIC00MDMyLDYgKzQwNzIsMjggQEAgY29mZl93cml0ZV9v YmplY3RfY29udGVudHMgKGJmZCAqIGFiZmQpCiAgICAgICBlbHNlCiAJaW50ZXJuYWxfYS5vX3Nu YnNzID0gMDsKIAorICAgICAgaWYgKHRkYXRhX3NlYyAhPSBOVUxMKQorCXsKKwkgIGludGVybmFs X2Eub19zbnRkYXRhID0gdGRhdGFfc2VjLT50YXJnZXRfaW5kZXg7CisJICAvKiBUT0RPICovCisJ ICBpbnRlcm5hbF9hLm9fZmxhZ3MgPSBSUzZLX0FPVVRIRFJfVExTX0xFOworI2lmZGVmIFhDT0ZG NjQKKwkgIGludGVybmFsX2Eub194NjRmbGFncyA9IDA7CisjZW5kaWYKKwl9CisgICAgICBlbHNl CisJeworCSAgaW50ZXJuYWxfYS5vX3NudGRhdGEgPSAwOworCSAgaW50ZXJuYWxfYS5vX2ZsYWdz ID0gMDsKKyNpZmRlZiBYQ09GRjY0CisJICBpbnRlcm5hbF9hLm9feDY0ZmxhZ3MgPSAwOworI2Vu ZGlmCisJfQorICAgICAgaWYgKHRic3Nfc2VjICE9IE5VTEwpCisJICBpbnRlcm5hbF9hLm9fc250 YnNzID0gdGJzc19zZWMtPnRhcmdldF9pbmRleDsKKyAgICAgIGVsc2UKKwkgIGludGVybmFsX2Eu b19zbnRic3MgPSAwOworCiAgICAgICB0b2MgPSB4Y29mZl9kYXRhIChhYmZkKS0+dG9jOwogICAg ICAgaW50ZXJuYWxfYS5vX3RvYyA9IHRvYzsKICAgICAgIGludGVybmFsX2Eub19zbnRvYyA9IHhj b2ZmX2RhdGEgKGFiZmQpLT5zbnRvYzsKZGlmZiAtLWdpdCBhL2JmZC9jb2Zmc3dhcC5oIGIvYmZk L2NvZmZzd2FwLmgKaW5kZXggYjk3YjY2Yzc1Yy4uNjNhMDAyNmE2NiAxMDA2NDQKLS0tIGEvYmZk L2NvZmZzd2FwLmgKKysrIGIvYmZkL2NvZmZzd2FwLmgKQEAgLTY5NSw5ICs2OTUsMTYgQEAgY29m Zl9zd2FwX2FvdXRoZHJfb3V0IChiZmQgKiBhYmZkLCB2b2lkICogaW4sIHZvaWQgKiBvdXQpCiAg IEhfUFVUXzMyIChhYmZkLCBhb3V0aGRyX2luLT5vX21heHN0YWNrLCBhb3V0aGRyX291dC0+b19t YXhzdGFjayk7CiAgIEhfUFVUXzMyIChhYmZkLCBhb3V0aGRyX2luLT5vX21heGRhdGEsIGFvdXRo ZHJfb3V0LT5vX21heGRhdGEpOwogI2VuZGlmCi0gIG1lbXNldCAoYW91dGhkcl9vdXQtPm9fcmVz djIsIDAsIHNpemVvZiBhb3V0aGRyX291dC0+b19yZXN2Mik7CisgIC8qIFRPRE86IHNldCBvXypw c2l6ZSBkeW5hbWljYWxseSAqLworICBIX1BVVF84IChhYmZkLCAwLCBhb3V0aGRyX291dC0+b190 ZXh0cHNpemUpOworICBIX1BVVF84IChhYmZkLCAwLCBhb3V0aGRyX291dC0+b19kYXRhcHNpemUp OworICBIX1BVVF84IChhYmZkLCAwLCBhb3V0aGRyX291dC0+b19zdGFja3BzaXplKTsKKyAgSF9Q VVRfOCAoYWJmZCwgYW91dGhkcl9pbi0+b19mbGFncywgYW91dGhkcl9vdXQtPm9fZmxhZ3MpOwor ICBIX1BVVF8xNiAoYWJmZCwgYW91dGhkcl9pbi0+b19zbnRkYXRhLCBhb3V0aGRyX291dC0+b19z bnRkYXRhKTsKKyAgSF9QVVRfMTYgKGFiZmQsIGFvdXRoZHJfaW4tPm9fc250YnNzLCBhb3V0aGRy X291dC0+b19zbnRic3MpOworICBIX1BVVF8zMiAoYWJmZCwgMCwgYW91dGhkcl9vdXQtPm9fZGVi dWdnZXIpOwogI2lmZGVmIFhDT0ZGNjQKLSAgbWVtc2V0IChhb3V0aGRyX291dC0+b19kZWJ1Z2dl ciwgMCwgc2l6ZW9mIGFvdXRoZHJfb3V0LT5vX2RlYnVnZ2VyKTsKKyAgSF9QVVRfMTYgKGFiZmQs IGFvdXRoZHJfaW4tPm9feDY0ZmxhZ3MsIGFvdXRoZHJfb3V0LT5vX3g2NGZsYWdzKTsKICAgbWVt c2V0IChhb3V0aGRyX291dC0+b19yZXN2MywgMCwgc2l6ZW9mIGFvdXRoZHJfb3V0LT5vX3Jlc3Yz KTsKICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9iZmQvbGliYmZkLmggYi9iZmQvbGliYmZk LmgKaW5kZXggNzkxZTIzNDA1OC4uNmYzNDVhNzk4NyAxMDA2NDQKLS0tIGEvYmZkL2xpYmJmZC5o CisrKyBiL2JmZC9saWJiZmQuaApAQCAtMTU2Miw2ICsxNTYyLDEwIEBAIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBiZmRfcmVsb2NfY29kZV9yZWFsX25hbWVzW10gPSB7ICJAQHVuaW5pdGlhbGl6 ZWRAQCIsCiAgICJCRkRfUkVMT0NfUFBDX1RMUyIsCiAgICJCRkRfUkVMT0NfUFBDX1RMU0dEIiwK ICAgIkJGRF9SRUxPQ19QUENfVExTTEQiLAorICAiQkZEX1JFTE9DX1BQQ19UTFNMRSIsCisgICJC RkRfUkVMT0NfUFBDX1RMU0lFIiwKKyAgIkJGRF9SRUxPQ19QUENfVExTTSIsCisgICJCRkRfUkVM T0NfUFBDX1RMU01MIiwKICAgIkJGRF9SRUxPQ19QUENfRFRQTU9EIiwKICAgIkJGRF9SRUxPQ19Q UENfVFBSRUwxNiIsCiAgICJCRkRfUkVMT0NfUFBDX1RQUkVMMTZfTE8iLApAQCAtMTU4OSw2ICsx NTkzLDEyIEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBiZmRfcmVsb2NfY29kZV9yZWFsX25h bWVzW10gPSB7ICJAQHVuaW5pdGlhbGl6ZWRAQCIsCiAgICJCRkRfUkVMT0NfUFBDX0dPVF9EVFBS RUwxNl9MTyIsCiAgICJCRkRfUkVMT0NfUFBDX0dPVF9EVFBSRUwxNl9ISSIsCiAgICJCRkRfUkVM T0NfUFBDX0dPVF9EVFBSRUwxNl9IQSIsCisgICJCRkRfUkVMT0NfUFBDNjRfVExTR0QiLAorICAi QkZEX1JFTE9DX1BQQzY0X1RMU0xEIiwKKyAgIkJGRF9SRUxPQ19QUEM2NF9UTFNMRSIsCisgICJC RkRfUkVMT0NfUFBDNjRfVExTSUUiLAorICAiQkZEX1JFTE9DX1BQQzY0X1RMU00iLAorICAiQkZE X1JFTE9DX1BQQzY0X1RMU01MIiwKICAgIkJGRF9SRUxPQ19QUEM2NF9UUFJFTDE2X0RTIiwKICAg IkJGRF9SRUxPQ19QUEM2NF9UUFJFTDE2X0xPX0RTIiwKICAgIkJGRF9SRUxPQ19QUEM2NF9UUFJF TDE2X0hJR0giLApkaWZmIC0tZ2l0IGEvYmZkL2xpYnhjb2ZmLmggYi9iZmQvbGlieGNvZmYuaApp bmRleCAyMjllNDdjMmFlLi5iZmZkZWUyNTU5IDEwMDY0NAotLS0gYS9iZmQvbGlieGNvZmYuaAor KysgYi9iZmQvbGlieGNvZmYuaApAQCAtMjM0LDYgKzIzNCw3IEBAIGV4dGVybiB4Y29mZl9yZWxv Y19mdW5jdGlvbiB4Y29mZl9yZWxvY190eXBlX3JlbDsKIGV4dGVybiB4Y29mZl9yZWxvY19mdW5j dGlvbiB4Y29mZl9yZWxvY190eXBlX3RvYzsKIGV4dGVybiB4Y29mZl9yZWxvY19mdW5jdGlvbiB4 Y29mZl9yZWxvY190eXBlX2JhOwogZXh0ZXJuIHhjb2ZmX3JlbG9jX2Z1bmN0aW9uIHhjb2ZmX3Jl bG9jX3R5cGVfY3JlbDsKK2V4dGVybiB4Y29mZl9yZWxvY19mdW5jdGlvbiB4Y29mZl9yZWxvY190 eXBlX3RsczsKIAogLyogU3RydWN0dXJlIHRvIGRlc2NyaWJlIGR3YXJmIHNlY3Rpb25zLgogICAg VXNlZnVsIHRvIGNvbnZlcnQgZnJvbSBYQ09GRiBzZWN0aW9uIG5hbWUgdG8gZmxhZyBhbmQgdmlj ZS12ZXJzYS4KZGlmZiAtLWdpdCBhL2JmZC94Y29mZmxpbmsuYyBiL2JmZC94Y29mZmxpbmsuYwpp bmRleCBmMGQ2YzhkZmEyLi5mMGRkMGU5ZDY3IDEwMDY0NAotLS0gYS9iZmQveGNvZmZsaW5rLmMK KysrIGIvYmZkL3hjb2ZmbGluay5jCkBAIC0xODE0LDYgKzE4MTQsMTIgQEAgeGNvZmZfbGlua19h ZGRfc3ltYm9scyAoYmZkICphYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykKIAkgICAg ICBjc2VjdCA9IGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5X3dpdGhfZmxhZ3MgKGFiZmQsICIudGQi LAogCQkJCQkJCSAgU0VDX0FMTE9DKTsKIAkgICAgfQorCSAgZWxzZSBpZiAoYXV4LnhfY3NlY3Qu eF9zbWNsYXMgPT0gWE1DX1VMKQorCSAgICB7CisJICAgICAgLyogVGhpcyBpcyBhIHRocmVhZC1s b2NhbCB1bml0aWFsaXplZCBjc2VjdC4gICovCisJICAgICAgY3NlY3QgPSBiZmRfbWFrZV9zZWN0 aW9uX2FueXdheV93aXRoX2ZsYWdzIChhYmZkLCAiLnRic3MiLAorCQkJCQkJCSAgU0VDX0FMTE9D IHwgU0VDX1RIUkVBRF9MT0NBTCk7CisJICAgIH0KIAkgIGVsc2UKIAkgICAgY3NlY3QgPSBiZmRf bWFrZV9zZWN0aW9uX2FueXdheV93aXRoX2ZsYWdzIChhYmZkLCAiLmJzcyIsCiAJCQkJCQkJU0VD X0FMTE9DKTsKQEAgLTI2OTcsNiArMjcwMywxNCBAQCB4Y29mZl9uZWVkX2xkcmVsX3AgKHN0cnVj dCBiZmRfbGlua19pbmZvICppbmZvLCBzdHJ1Y3QgaW50ZXJuYWxfcmVsb2MgKnJlbCwKIAkgICAg cmV0dXJuIEZBTFNFOwogCX0KICAgICAgIHJldHVybiBUUlVFOworCisgICAgY2FzZSBSX1RMUzoK KyAgICBjYXNlIFJfVExTX0xFOgorICAgIGNhc2UgUl9UTFNfSUU6CisgICAgY2FzZSBSX1RMU19M RDoKKyAgICBjYXNlIFJfVExTTToKKyAgICBjYXNlIFJfVExTTUw6CisgICAgICByZXR1cm4gVFJV RTsKICAgICB9CiB9CiAMCkBAIC00MDYwLDYgKzQwNzQsMTAgQEAgeGNvZmZfY3JlYXRlX2xkcmVs IChiZmQgKm91dHB1dF9iZmQsIHN0cnVjdCB4Y29mZl9maW5hbF9saW5rX2luZm8gKmZsaW5mbywK IAlsZHJlbC5sX3N5bW5keCA9IDE7CiAgICAgICBlbHNlIGlmIChzdHJjbXAgKHNlY25hbWUsICIu YnNzIikgPT0gMCkKIAlsZHJlbC5sX3N5bW5keCA9IDI7CisgICAgICBlbHNlIGlmIChzdHJjbXAg KHNlY25hbWUsICIudGRhdGEiKSA9PSAwKQorCWxkcmVsLmxfc3ltbmR4ID0gLTE7CisgICAgICBl bHNlIGlmIChzdHJjbXAgKHNlY25hbWUsICIudGJzcyIpID09IDApCisJbGRyZWwubF9zeW1uZHgg PSAtMjsKICAgICAgIGVsc2UKIAl7CiAJICBfYmZkX2Vycm9yX2hhbmRsZXIKZGlmZiAtLWdpdCBh L2dhcy9jb25maWcvdGMtcHBjLmMgYi9nYXMvY29uZmlnL3RjLXBwYy5jCmluZGV4IDJiYzQ5MjM3 YTIuLmQ3NTM3MzdlMzggMTAwNjQ0Ci0tLSBhL2dhcy9jb25maWcvdGMtcHBjLmMKKysrIGIvZ2Fz L2NvbmZpZy90Yy1wcGMuYwpAQCAtOTkyLDIxICs5OTIsNDEgQEAgc3RhdGljIGJmZF9ib29sZWFu IG1zb2xhcmlzID0gU09MQVJJU19QOwogCiAvKiBUaGUgUlMvNjAwMCBhc3NlbWJsZXIgdXNlcyB0 aGUgLmNzZWN0IHBzZXVkby1vcCB0byBnZW5lcmF0ZSBjb2RlCiAgICB1c2luZyBhIGJ1bmNoIG9m IGRpZmZlcmVudCBzZWN0aW9ucy4gIFRoZXNlIGFzc2VtYmxlciBzZWN0aW9ucywKLSAgIGhvd2V2 ZXIsIGFyZSBhbGwgZW5jb21wYXNzZWQgd2l0aGluIHRoZSAudGV4dCBvciAuZGF0YSBzZWN0aW9u cyBvZgotICAgdGhlIGZpbmFsIG91dHB1dCBmaWxlLiAgV2UgaGFuZGxlIHRoaXMgYnkgdXNpbmcg ZGlmZmVyZW50Ci0gICBzdWJzZWdtZW50cyB3aXRoaW4gdGhlc2UgbWFpbiBzZWdtZW50cy4gICov Ci0KLS8qIE5leHQgc3Vic2VnbWVudCB0byBhbGxvY2F0ZSB3aXRoaW4gdGhlIC50ZXh0IHNlZ21l bnQuICAqLwotc3RhdGljIHN1YnNlZ1QgcHBjX3RleHRfc3Vic2VnbWVudCA9IDI7Ci0KLS8qIExp bmtlZCBsaXN0IG9mIGNzZWN0cyBpbiB0aGUgdGV4dCBzZWN0aW9uLiAgKi8KLXN0YXRpYyBzeW1i b2xTICpwcGNfdGV4dF9jc2VjdHM7Ci0KLS8qIE5leHQgc3Vic2VnbWVudCB0byBhbGxvY2F0ZSB3 aXRoaW4gdGhlIC5kYXRhIHNlZ21lbnQuICAqLwotc3RhdGljIHN1YnNlZ1QgcHBjX2RhdGFfc3Vi c2VnbWVudCA9IDI7CisgICBob3dldmVyLCBhcmUgYWxsIGVuY29tcGFzc2VkIHdpdGhpbiB0aGUg LnRleHQsIC5kYXRhIG9yIC5ic3Mgc2VjdGlvbnMKKyAgIG9mIHRoZSBmaW5hbCBvdXRwdXQgZmls ZS4gIFdlIGhhbmRsZSB0aGlzIGJ5IHVzaW5nIGRpZmZlcmVudAorICAgc3Vic2VnbWVudHMgd2l0 aGluIHRoZXNlIG1haW4gc2VnbWVudHMuCisgICAudGRhdGEgYW5kIC50YnNzIHNlY3Rpb25zIG9u bHkgaGF2ZSBvbmUgdHlwZSBvZiBjc2VjdHMgZm9yIG5vdywKKyAgIGJ1dCBpdCdzIGJldHRlciB0 byBmb2xsb3cgdGhlIHNhbWUgY29uc3RydWN0aW9uIHRoYW4gdGhlIG90aGVycy4gICovCisKK3N0 cnVjdCBwcGNfeGNvZmZfc2VjdGlvbiBwcGNfeGNvZmZfdGV4dF9zZWN0aW9uOworc3RydWN0IHBw Y194Y29mZl9zZWN0aW9uIHBwY194Y29mZl9kYXRhX3NlY3Rpb247CitzdHJ1Y3QgcHBjX3hjb2Zm X3NlY3Rpb24gcHBjX3hjb2ZmX2Jzc19zZWN0aW9uOworc3RydWN0IHBwY194Y29mZl9zZWN0aW9u IHBwY194Y29mZl90ZGF0YV9zZWN0aW9uOworc3RydWN0IHBwY194Y29mZl9zZWN0aW9uIHBwY194 Y29mZl90YnNzX3NlY3Rpb247CisKKy8qIFJldHVybiB0cnVlIGlmIHRoZSBwcGNfeGNvZmZfc2Vj dGlvbiBzdHJ1Y3R1cmUgaXMgYWxyZWFkeQorICAgaW5pdGlhbGl6ZWQuICAqLworc3RhdGljICBi ZmRfYm9vbGVhbgorcHBjX3hjb2ZmX3NlY3Rpb25faXNfaW5pdGlhbGl6ZWQgKHN0cnVjdCBwcGNf eGNvZmZfc2VjdGlvbiAqc2VjdGlvbikKK3sKKyAgcmV0dXJuIHNlY3Rpb24tPnNlZ21lbnQgIT0g TlVMTDsKK30KIAotLyogTGlua2VkIGxpc3Qgb2YgY3NlY3RzIGluIHRoZSBkYXRhIHNlY3Rpb24u ICAqLwotc3RhdGljIHN5bWJvbFMgKnBwY19kYXRhX2NzZWN0czsKKy8qIEluaXRpYWxpemUgYSBw cGNfeGNvZmZfc2VjdGlvbi4KKyAgIER1bW15IHN5bWJvbHMgYXJlIHVzZWQgdG8gZW5zdXJlIHRo ZSBwb3NpdGlvbiBvZiAudGV4dCBvdmVyIC5kYXRhCisgICBhbmQgLnRkYXRhLiAgVGhlc2Ugc3lt Ym9scyB3b24ndCBiZSBvdXRwdXQuICAqLworc3RhdGljIHZvaWQKK3BwY19pbml0X3hjb2ZmX3Nl Y3Rpb24gKHN0cnVjdCBwcGNfeGNvZmZfc2VjdGlvbiAqcywgc2VnVCBzZWcsCisJCQliZmRfYm9v bGVhbiBuZWVkX2R1bW15KQoreworICBzLT5zZWdtZW50ID0gc2VnOworICBzLT5uZXh0X3N1YnNl Z21lbnQgPSAyOworICBpZiAobmVlZF9kdW1teSkKKyAgICB7CisgICAgICBzLT5jc2VjdHMgPSBz eW1ib2xfbWFrZSAoImR1bW15XDAwMSIpOworICAgICAgc3ltYm9sX2dldF90YyAocy0+Y3NlY3Rz KS0+d2l0aGluID0gcy0+Y3NlY3RzOworICAgIH0KK30KIAogLyogVGhlIGN1cnJlbnQgY3NlY3Qu ICAqLwogc3RhdGljIHN5bWJvbFMgKnBwY19jdXJyZW50X2NzZWN0OwpAQCAtMTg1OCwxMyArMTg3 OCwxMiBAQCBtZF9iZWdpbiAodm9pZCkKICNpZmRlZiBPQkpfWENPRkYKICAgcHBjX2NvZmZfZGVi dWdfc2VjdGlvbiA9IGNvZmZfc2VjdGlvbl9mcm9tX2JmZF9pbmRleCAoc3Rkb3V0cHV0LCBOX0RF QlVHKTsKIAotICAvKiBDcmVhdGUgZHVtbXkgc3ltYm9scyB0byBzZXJ2ZSBhcyBpbml0aWFsIGNz ZWN0cy4gIFRoaXMgZm9yY2VzIHRoZQotICAgICB0ZXh0IGNzZWN0cyB0byBwcmVjZWRlIHRoZSBk YXRhIGNzZWN0cy4gIFRoZXNlIHN5bWJvbHMgd2lsbCBub3QKLSAgICAgYmUgb3V0cHV0LiAgKi8K LSAgcHBjX3RleHRfY3NlY3RzID0gc3ltYm9sX21ha2UgKCJkdW1teVwwMDEiKTsKLSAgc3ltYm9s X2dldF90YyAocHBjX3RleHRfY3NlY3RzKS0+d2l0aGluID0gcHBjX3RleHRfY3NlY3RzOwotICBw cGNfZGF0YV9jc2VjdHMgPSBzeW1ib2xfbWFrZSAoImR1bW15XDAwMSIpOwotICBzeW1ib2xfZ2V0 X3RjIChwcGNfZGF0YV9jc2VjdHMpLT53aXRoaW4gPSBwcGNfZGF0YV9jc2VjdHM7CisgIC8qIENy ZWF0ZSBYQ09GRiBzZWN0aW9ucyB3aXRoIC50ZXh0IGluIGZpcnN0LCBhcyBpdCdzIGNyZWF0aW5n IGR1bW15IHN5bWJvbHMKKyAgICAgdG8gc2VydmUgYXMgaW5pdGlhbCBjc2VjdHMuICBUaGlzIGZv cmNlcyB0aGUgdGV4dCBjc2VjdHMgdG8gcHJlY2VkZSB0aGUKKyAgICAgZGF0YSBjc2VjdHMuICBU aGVzZSBzeW1ib2xzIHdpbGwgbm90IGJlIG91dHB1dC4gICovCisgIHBwY19pbml0X3hjb2ZmX3Nl Y3Rpb24gKCZwcGNfeGNvZmZfdGV4dF9zZWN0aW9uLCB0ZXh0X3NlY3Rpb24sIFRSVUUpOworICBw cGNfaW5pdF94Y29mZl9zZWN0aW9uICgmcHBjX3hjb2ZmX2RhdGFfc2VjdGlvbiwgZGF0YV9zZWN0 aW9uLCBUUlVFKTsKKyAgcHBjX2luaXRfeGNvZmZfc2VjdGlvbiAoJnBwY194Y29mZl9ic3Nfc2Vj dGlvbiwgYnNzX3NlY3Rpb24sIEZBTFNFKTsKICNlbmRpZgogfQogCkBAIC0yNjc0LDYgKzI2OTMs MTYgQEAgcHBjX3hjb2ZmX3N1ZmZpeCAoY2hhciAqKnN0cl9wKQogICBzdGF0aWMgY29uc3Qgc3Ry dWN0IG1hcF9iZmQgbWFwcGluZ1tdID0gewogICAgIE1BUCAoImwiLAkJCUJGRF9SRUxPQ19QUENf VE9DMTZfTE8pLAogICAgIE1BUCAoInUiLAkJCUJGRF9SRUxPQ19QUENfVE9DMTZfSEkpLAorICAg IE1BUDMyICgiaWUiLAkJQkZEX1JFTE9DX1BQQ19UTFNJRSksCisgICAgTUFQMzIgKCJsZCIsCQlC RkRfUkVMT0NfUFBDX1RMU0xEKSwKKyAgICBNQVAzMiAoImxlIiwJCUJGRF9SRUxPQ19QUENfVExT TEUpLAorICAgIE1BUDMyICgibSIsIAkJQkZEX1JFTE9DX1BQQ19UTFNNKSwKKyAgICBNQVAzMiAo Im1sIiwJCUJGRF9SRUxPQ19QUENfVExTTUwpLAorICAgIE1BUDY0ICgiaWUiLAkJQkZEX1JFTE9D X1BQQzY0X1RMU0lFKSwKKyAgICBNQVA2NCAoImxkIiwJCUJGRF9SRUxPQ19QUEM2NF9UTFNMRCks CisgICAgTUFQNjQgKCJsZSIsCQlCRkRfUkVMT0NfUFBDNjRfVExTTEUpLAorICAgIE1BUDY0ICgi bSIsIAkJQkZEX1JFTE9DX1BQQzY0X1RMU00pLAorICAgIE1BUDY0ICgibWwiLAkJQkZEX1JFTE9D X1BQQzY0X1RMU01MKSwKICAgfTsKIAogICBpZiAoKnN0cisrICE9ICdAJykKQEAgLTI3MzQsNiAr Mjc2MywyNCBAQCBwcGNfeGNvZmZfZml4dXBfYWRkaXMgKGNoYXIgKipzdHJfcCkKICAgZnJlZSAo c3RyMik7CiB9CiAKKy8qIFN1cHBvcnQgQGllLCBldGMuIG9uIGNvbnN0YW50cyBlbWl0dGVkIHZp YSAuc2hvcnQsIC5pbnQgZXRjLiAgKi8KKworYmZkX3JlbG9jX2NvZGVfcmVhbF90eXBlCitwcGNf eGNvZmZfcGFyc2VfY29ucyAoZXhwcmVzc2lvblMgKmV4cCwgdW5zaWduZWQgaW50IG5ieXRlcykK K3sKKyAgZXhwcmVzc2lvbiAoZXhwKTsKKyAgaWYgKG5ieXRlcyA+PSAyICYmICppbnB1dF9saW5l X3BvaW50ZXIgPT0gJ0AnKQorICAgIHJldHVybiBwcGNfeGNvZmZfc3VmZml4ICgmaW5wdXRfbGlu ZV9wb2ludGVyKTsKKworICAvKiBUaGVyZSBpc24ndCBhbnkgQCBzeW1ib2wgZm9yIGRlZmF1bHQg VExTIHJlbG9jYXRpb25zIChSX1RMUykuICAqLworICBpZiAoZXhwLT5YX2FkZF9zeW1ib2wgIT0g TlVMTAorICAgICAgJiYgKHN5bWJvbF9nZXRfdGMgKGV4cC0+WF9hZGRfc3ltYm9sKS0+c3ltYm9s X2NsYXNzID09IFhNQ19UTAorCSAgfHwgc3ltYm9sX2dldF90YyAoZXhwLT5YX2FkZF9zeW1ib2wp LT5zeW1ib2xfY2xhc3MgPT0gWE1DX1VMKSkKKyAgICAgIHJldHVybiAocHBjX29iajY0ID8gQkZE X1JFTE9DX1BQQzY0X1RMU0dEOiBCRkRfUkVMT0NfUFBDX1RMU0dEKTsKKworICByZXR1cm4gQkZE X1JFTE9DX05PTkU7Cit9CisKICNlbmRpZiAvKiBPQkpfWENPRkYgKi8KIAwKICNpZiBkZWZpbmVk IChPQkpfWENPRkYpIHx8IGRlZmluZWQgKE9CSl9FTEYpCkBAIC0zMDYwLDYgKzMxMDcsMTAgQEAg Zml4dXBfc2l6ZSAoYmZkX3JlbG9jX2NvZGVfcmVhbF90eXBlIHJlbG9jLCBiZmRfYm9vbGVhbiAq cGNfcmVsYXRpdmUpCiAgICAgY2FzZSBCRkRfUkVMT0NfUFBDX1RMUzoKICAgICBjYXNlIEJGRF9S RUxPQ19QUENfVExTR0Q6CiAgICAgY2FzZSBCRkRfUkVMT0NfUFBDX1RMU0xEOgorICAgIGNhc2Ug QkZEX1JFTE9DX1BQQ19UTFNMRToKKyAgICBjYXNlIEJGRF9SRUxPQ19QUENfVExTSUU6CisgICAg Y2FzZSBCRkRfUkVMT0NfUFBDX1RMU006CisgICAgY2FzZSBCRkRfUkVMT0NfUFBDX1RMU01MOgog ICAgIGNhc2UgQkZEX1JFTE9DX1BQQ19WTEVfSEExNkE6CiAgICAgY2FzZSBCRkRfUkVMT0NfUFBD X1ZMRV9IQTE2RDoKICAgICBjYXNlIEJGRF9SRUxPQ19QUENfVkxFX0hJMTZBOgpAQCAtMzExOSw2 ICszMTcwLDEyIEBAIGZpeHVwX3NpemUgKGJmZF9yZWxvY19jb2RlX3JlYWxfdHlwZSByZWxvYywg YmZkX2Jvb2xlYW4gKnBjX3JlbGF0aXZlKQogICAgIGNhc2UgQkZEX1JFTE9DX1BQQzY0X1RQUkVM MzQ6CiAgICAgY2FzZSBCRkRfUkVMT0NfUFBDNjRfRFRQUkVMMzQ6CiAgICAgY2FzZSBCRkRfUkVM T0NfUFBDNjRfVE9DOgorICAgIGNhc2UgQkZEX1JFTE9DX1BQQzY0X1RMU0dEOgorICAgIGNhc2Ug QkZEX1JFTE9DX1BQQzY0X1RMU0xEOgorICAgIGNhc2UgQkZEX1JFTE9DX1BQQzY0X1RMU0xFOgor ICAgIGNhc2UgQkZEX1JFTE9DX1BQQzY0X1RMU0lFOgorICAgIGNhc2UgQkZEX1JFTE9DX1BQQzY0 X1RMU006CisgICAgY2FzZSBCRkRfUkVMT0NfUFBDNjRfVExTTUw6CiAgICAgICBzaXplID0gODsK ICAgICAgIGJyZWFrOwogCkBAIC00MjAwLDcgKzQyNTcsOSBAQCBzdGF0aWMgYmZkX2Jvb2xlYW4g cHBjX3N0YWJfc3ltYm9sOwogLyogVGhlIC5jb21tIGFuZCAubGNvbW0gcHNldWRvLW9wcyBmb3Ig WENPRkYuICBYQ09GRiBwdXRzIGNvbW1vbgogICAgc3ltYm9scyBpbiB0aGUgLmJzcyBzZWdtZW50 IGFzIHRob3VnaCB0aGV5IHdlcmUgbG9jYWwgY29tbW9uCiAgICBzeW1ib2xzLCBhbmQgdXNlcyBh IGRpZmZlcmVudCBzbWNsYXMuICBUaGUgbmF0aXZlIEFpeCA0LjMuMyBhc3NlbWJsZXIKLSAgIGFs aWducyAuY29tbSBhbmQgLmxjb21tIHRvIDQgYnl0ZXMuICAqLworICAgYWxpZ25zIC5jb21tIGFu ZCAubGNvbW0gdG8gNCBieXRlcy4KKyAgIFN5bWJvbHMgaGF2aW5nIGEgWE1DX1VMIHN0b3JhZ2Ug Y2xhc3MgYXJlIHVuaW5pYWxpemVkIHRocmVhZC1sb2NhbAorICAgZGF0YS4gICovCiAKIHN0YXRp YyB2b2lkCiBwcGNfY29tbSAoaW50IGxjb21tKQpAQCAtNDIxNSw2ICs0Mjc0LDcgQEAgcHBjX2Nv bW0gKGludCBsY29tbSkKICAgc3ltYm9sUyAqbGNvbW1fc3ltID0gTlVMTDsKICAgc3ltYm9sUyAq c3ltOwogICBjaGFyICpwZnJhZzsKKyAgc3RydWN0IHBwY194Y29mZl9zZWN0aW9uICpzZWN0aW9u OwogCiAgIGVuZGMgPSBnZXRfc3ltYm9sX25hbWUgKCZuYW1lKTsKICAgZW5kX25hbWUgPSBpbnB1 dF9saW5lX3BvaW50ZXI7CkBAIC00MzA3LDcgKzQzNjcsMjMgQEAgcHBjX2NvbW0gKGludCBsY29t bSkKICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgcmVjb3JkX2FsaWdubWVudCAoYnNzX3NlY3Rp b24sIGFsaWduKTsKKyAgaWYgKHN5bWJvbF9nZXRfdGMgKHN5bSktPnN5bWJvbF9jbGFzcyA9PSBY TUNfVUwKKyAgICAgIHx8IChsY29tbSAmJiBzeW1ib2xfZ2V0X3RjIChsY29tbV9zeW0pLT5zeW1i b2xfY2xhc3MgPT0gWE1DX1VMKSkKKyAgICB7CisgICAgICBzZWN0aW9uID0gJnBwY194Y29mZl90 YnNzX3NlY3Rpb247CisgICAgICBpZiAoIXBwY194Y29mZl9zZWN0aW9uX2lzX2luaXRpYWxpemVk IChzZWN0aW9uKSkKKwl7CisJICBwcGNfaW5pdF94Y29mZl9zZWN0aW9uIChzZWN0aW9uLAorCQkJ CSAgc3Vic2VnX25ldyAoIi50YnNzIiwgMCksIEZBTFNFKTsKKwkgIGJmZF9zZXRfc2VjdGlvbl9m bGFncyAoc2VjdGlvbi0+c2VnbWVudCwKKwkJCQkgU0VDX0FMTE9DIHwgU0VDX1RIUkVBRF9MT0NB TCk7CisJICBzZWdfaW5mbyAoc2VjdGlvbi0+c2VnbWVudCktPmJzcyA9IDE7CisJfQorICAgIH0K KyAgZWxzZQorICAgIHNlY3Rpb24gPSAmcHBjX3hjb2ZmX2Jzc19zZWN0aW9uOworCisgIHJlY29y ZF9hbGlnbm1lbnQgKHNlY3Rpb24tPnNlZ21lbnQsIGFsaWduKTsKIAogICBpZiAoISBsY29tbQog ICAgICAgfHwgISBTX0lTX0RFRklORUQgKGxjb21tX3N5bSkpCkBAIC00MzI4LDE0ICs0NDA0LDE0 IEBAIHBwY19jb21tIChpbnQgbGNvbW0pCiAJICBkZWZfc2l6ZSA9IDA7CiAJfQogCi0gICAgICBz dWJzZWdfc2V0IChic3Nfc2VjdGlvbiwgMSk7CisgICAgICBzdWJzZWdfc2V0IChzZWN0aW9uLT5z ZWdtZW50LCAxKTsKICAgICAgIGZyYWdfYWxpZ24gKGFsaWduLCAwLCAwKTsKIAogICAgICAgc3lt Ym9sX3NldF9mcmFnIChkZWZfc3ltLCBmcmFnX25vdyk7CiAgICAgICBwZnJhZyA9IGZyYWdfdmFy IChyc19vcmcsIDEsIDEsIChyZWxheF9zdWJzdGF0ZVQpIDAsIGRlZl9zeW0sCiAJCQlkZWZfc2l6 ZSwgKGNoYXIgKikgTlVMTCk7CiAgICAgICAqcGZyYWcgPSAwOwotICAgICAgU19TRVRfU0VHTUVO VCAoZGVmX3N5bSwgYnNzX3NlY3Rpb24pOworICAgICAgU19TRVRfU0VHTUVOVCAoZGVmX3N5bSwg c2VjdGlvbi0+c2VnbWVudCk7CiAgICAgICBzeW1ib2xfZ2V0X3RjIChkZWZfc3ltKS0+YWxpZ24g PSBhbGlnbjsKICAgICB9CiAgIGVsc2UgaWYgKGxjb21tKQpAQCAtNDM1MSw3ICs0NDI3LDcgQEAg cHBjX2NvbW0gKGludCBsY29tbSkKICAgaWYgKGxjb21tKQogICAgIHsKICAgICAgIC8qIE1ha2Ug c3ltIGFuIG9mZnNldCBmcm9tIGxjb21tX3N5bS4gICovCi0gICAgICBTX1NFVF9TRUdNRU5UIChz eW0sIGJzc19zZWN0aW9uKTsKKyAgICAgIFNfU0VUX1NFR01FTlQgKHN5bSwgc2VjdGlvbi0+c2Vn bWVudCk7CiAgICAgICBzeW1ib2xfc2V0X2ZyYWcgKHN5bSwgc3ltYm9sX2dldF9mcmFnIChsY29t bV9zeW0pKTsKICAgICAgIFNfU0VUX1ZBTFVFIChzeW0sIHN5bWJvbF9nZXRfZnJhZyAobGNvbW1f c3ltKS0+ZnJfb2Zmc2V0KTsKICAgICAgIHN5bWJvbF9nZXRfZnJhZyAobGNvbW1fc3ltKS0+ZnJf b2Zmc2V0ICs9IHNpemU7CkBAIC00NDA5LDcgKzQ0ODUsNyBAQCBwcGNfY2hhbmdlX2NzZWN0IChz eW1ib2xTICpzeW0sIG9mZnNldFQgYWxpZ24pCiAgICAgc3Vic2VnX3NldCAoU19HRVRfU0VHTUVO VCAoc3ltKSwgc3ltYm9sX2dldF90YyAoc3ltKS0+c3Vic2VnKTsKICAgZWxzZQogICAgIHsKLSAg ICAgIHN5bWJvbFMgKipsaXN0X3B0cjsKKyAgICAgIHN0cnVjdCBwcGNfeGNvZmZfc2VjdGlvbiAq c2VjdGlvbjsKICAgICAgIGludCBhZnRlcl90b2M7CiAgICAgICBpbnQgaG9sZF9jaHVua3NpemU7 CiAgICAgICBzeW1ib2xTICpsaXN0OwpAQCAtNDQzMSwxMCArNDUwNyw3IEBAIHBwY19jaGFuZ2Vf Y3NlY3QgKHN5bWJvbFMgKnN5bSwgb2Zmc2V0VCBhbGlnbikKIAljYXNlIFhNQ19TVjoKIAljYXNl IFhNQ19USToKIAljYXNlIFhNQ19UQjoKLQkgIFNfU0VUX1NFR01FTlQgKHN5bSwgdGV4dF9zZWN0 aW9uKTsKLQkgIHN5bWJvbF9nZXRfdGMgKHN5bSktPnN1YnNlZyA9IHBwY190ZXh0X3N1YnNlZ21l bnQ7Ci0JICArK3BwY190ZXh0X3N1YnNlZ21lbnQ7Ci0JICBsaXN0X3B0ciA9ICZwcGNfdGV4dF9j c2VjdHM7CisJICBzZWN0aW9uID0gJnBwY194Y29mZl90ZXh0X3NlY3Rpb247CiAJICBpc19jb2Rl ID0gMTsKIAkgIGJyZWFrOwogCWNhc2UgWE1DX1JXOgpAQCAtNDQ0MywyMSArNDUxNiw0OCBAQCBw cGNfY2hhbmdlX2NzZWN0IChzeW1ib2xTICpzeW0sIG9mZnNldFQgYWxpZ24pCiAJY2FzZSBYTUNf VEU6CiAJY2FzZSBYTUNfRFM6CiAJY2FzZSBYTUNfVUE6Ci0JY2FzZSBYTUNfQlM6CiAJY2FzZSBY TUNfVUM6CisJICBzZWN0aW9uID0gJnBwY194Y29mZl9kYXRhX3NlY3Rpb247CiAJICBpZiAocHBj X3RvY19jc2VjdCAhPSBOVUxMCiAJICAgICAgJiYgKHN5bWJvbF9nZXRfdGMgKHBwY190b2NfY3Nl Y3QpLT5zdWJzZWcgKyAxCi0JCSAgPT0gcHBjX2RhdGFfc3Vic2VnbWVudCkpCisJCSAgPT0gc2Vj dGlvbi0+bmV4dF9zdWJzZWdtZW50KSkKIAkgICAgYWZ0ZXJfdG9jID0gMTsKLQkgIFNfU0VUX1NF R01FTlQgKHN5bSwgZGF0YV9zZWN0aW9uKTsKLQkgIHN5bWJvbF9nZXRfdGMgKHN5bSktPnN1YnNl ZyA9IHBwY19kYXRhX3N1YnNlZ21lbnQ7Ci0JICArK3BwY19kYXRhX3N1YnNlZ21lbnQ7Ci0JICBs aXN0X3B0ciA9ICZwcGNfZGF0YV9jc2VjdHM7CisJICBicmVhazsKKwljYXNlIFhNQ19CUzoKKwkg IHNlY3Rpb24gPSAmcHBjX3hjb2ZmX2Jzc19zZWN0aW9uOworCSAgYnJlYWs7CisJY2FzZSBYTUNf VEw6CisJICBzZWN0aW9uID0gJnBwY194Y29mZl90ZGF0YV9zZWN0aW9uOworCSAgLyogQ3JlYXRl IC50ZGF0YSBzZWN0aW9uIGlmIG5vdCB5ZXQgZG9uZS4gICovCisJICBpZiAoIXBwY194Y29mZl9z ZWN0aW9uX2lzX2luaXRpYWxpemVkIChzZWN0aW9uKSkKKwkgICAgeworCSAgICAgIHBwY19pbml0 X3hjb2ZmX3NlY3Rpb24gKHNlY3Rpb24sIHN1YnNlZ19uZXcgKCIudGRhdGEiLCAwKSwKKwkJCQkJ VFJVRSk7CisJICAgICAgYmZkX3NldF9zZWN0aW9uX2ZsYWdzIChzZWN0aW9uLT5zZWdtZW50LCBT RUNfQUxMT0MKKwkJCQkgICAgIHwgU0VDX0xPQUQgfCBTRUNfUkVMT0MgfCBTRUNfREFUQQorCQkJ CSAgICAgfCBTRUNfVEhSRUFEX0xPQ0FMKTsKKwkgICAgfQorCSAgYnJlYWs7CisJY2FzZSBYTUNf VUw6CisJICBzZWN0aW9uID0gJnBwY194Y29mZl90YnNzX3NlY3Rpb247CisJICAvKiBDcmVhdGUg LnRic3Mgc2VjdGlvbiBpZiBub3QgeWV0IGRvbmUuICAqLworCSAgaWYgKCFwcGNfeGNvZmZfc2Vj dGlvbl9pc19pbml0aWFsaXplZCAoc2VjdGlvbikpCisJICAgIHsKKwkgICAgICBwcGNfaW5pdF94 Y29mZl9zZWN0aW9uIChzZWN0aW9uLCBzdWJzZWdfbmV3ICgiLnRic3MiLCAwKSwKKwkJCQkgICAg ICAgIEZBTFNFKTsKKwkgICAgICBiZmRfc2V0X3NlY3Rpb25fZmxhZ3MgKHNlY3Rpb24tPnNlZ21l bnQsIFNFQ19BTExPQyB8CisJCQkJICAgICBTRUNfVEhSRUFEX0xPQ0FMKTsKKwkgICAgICBzZWdf aW5mbyAoc2VjdGlvbi0+c2VnbWVudCktPmJzcyA9IDE7CisJICAgIH0KIAkgIGJyZWFrOwogCWRl ZmF1bHQ6CiAJICBhYm9ydCAoKTsKIAl9CiAKKyAgICAgIFNfU0VUX1NFR01FTlQgKHN5bSwgc2Vj dGlvbi0+c2VnbWVudCk7CisgICAgICBzeW1ib2xfZ2V0X3RjIChzeW0pLT5zdWJzZWcgPSBzZWN0 aW9uLT5uZXh0X3N1YnNlZ21lbnQ7CisgICAgICArK3NlY3Rpb24tPm5leHRfc3Vic2VnbWVudDsK KwogICAgICAgLyogV2Ugc2V0IHRoZSBvYnN0YWNrIGNodW5rIHNpemUgdG8gYSBzbWFsbCB2YWx1 ZSBiZWZvcmUKIAkgY2hhbmdpbmcgc3Vic2VnbWVudHMsIHNvIHRoYXQgd2UgZG9uJ3QgdXNlIGEg bG90IG9mIG1lbW9yeQogCSBzcGFjZSBmb3Igd2hhdCBtYXkgYmUgYSBzbWFsbCBzZWN0aW9uLiAg Ki8KQEAgLTQ0ODUsNyArNDU4NSw3IEBAIHBwY19jaGFuZ2VfY3NlY3QgKHN5bWJvbFMgKnN5bSwg b2Zmc2V0VCBhbGlnbikKICAgICAgIHN5bWJvbF9nZXRfdGMgKHN5bSktPm91dHB1dCA9IDE7CiAg ICAgICBzeW1ib2xfZ2V0X3RjIChzeW0pLT53aXRoaW4gPSBzeW07CiAKLSAgICAgIGZvciAobGlz dCA9ICpsaXN0X3B0cjsKKyAgICAgIGZvciAobGlzdCA9IHNlY3Rpb24tPmNzZWN0czsKIAkgICBz eW1ib2xfZ2V0X3RjIChsaXN0KS0+bmV4dCAhPSAoc3ltYm9sUyAqKSBOVUxMOwogCSAgIGxpc3Qg PSBzeW1ib2xfZ2V0X3RjIChsaXN0KS0+bmV4dCkKIAk7CkBAIC01MzI0LDggKzU0MjQsOCBAQCBw cGNfdG9jIChpbnQgaWdub3JlIEFUVFJJQlVURV9VTlVTRUQpCiAgICAgICBzeW1ib2xTICpzeW07 CiAgICAgICBzeW1ib2xTICpsaXN0OwogCi0gICAgICBzdWJzZWcgPSBwcGNfZGF0YV9zdWJzZWdt ZW50OwotICAgICAgKytwcGNfZGF0YV9zdWJzZWdtZW50OworICAgICAgc3Vic2VnID0gcHBjX3hj b2ZmX2RhdGFfc2VjdGlvbi5uZXh0X3N1YnNlZ21lbnQ7CisgICAgICArK3BwY194Y29mZl9kYXRh X3NlY3Rpb24ubmV4dF9zdWJzZWdtZW50OwogCiAgICAgICBzdWJzZWdfbmV3IChzZWdtZW50X25h bWUgKGRhdGFfc2VjdGlvbiksIHN1YnNlZyk7CiAgICAgICBwcGNfdG9jX2ZyYWcgPSBmcmFnX25v dzsKQEAgLTUzNDAsNyArNTQ0MCw3IEBAIHBwY190b2MgKGludCBpZ25vcmUgQVRUUklCVVRFX1VO VVNFRCkKIAogICAgICAgcHBjX3RvY19jc2VjdCA9IHN5bTsKIAotICAgICAgZm9yIChsaXN0ID0g cHBjX2RhdGFfY3NlY3RzOworICAgICAgZm9yIChsaXN0ID0gcHBjX3hjb2ZmX2RhdGFfc2VjdGlv bi5jc2VjdHM7CiAJICAgc3ltYm9sX2dldF90YyAobGlzdCktPm5leHQgIT0gKHN5bWJvbFMgKikg TlVMTDsKIAkgICBsaXN0ID0gc3ltYm9sX2dldF90YyAobGlzdCktPm5leHQpCiAJOwpAQCAtNTcw NiwxMiArNTgwNiwxNiBAQCBwcGNfc3ltYm9sX25ld19ob29rIChzeW1ib2xTICpzeW0pCiAJdGMt PnN5bWJvbF9jbGFzcyA9IFhNQ19UQzA7CiAgICAgICBlbHNlIGlmIChzdHJjbXAgKHMsICJURV0i KSA9PSAwKQogCXRjLT5zeW1ib2xfY2xhc3MgPSBYTUNfVEU7CisgICAgICBlbHNlIGlmIChzdHJj bXAgKHMsICJUTF0iKSA9PSAwKQorICAgICAgICB0Yy0+c3ltYm9sX2NsYXNzID0gWE1DX1RMOwog ICAgICAgYnJlYWs7CiAgICAgY2FzZSAnVSc6CiAgICAgICBpZiAoc3RyY21wIChzLCAiVUFdIikg PT0gMCkKIAl0Yy0+c3ltYm9sX2NsYXNzID0gWE1DX1VBOwogICAgICAgZWxzZSBpZiAoc3RyY21w IChzLCAiVUNdIikgPT0gMCkKIAl0Yy0+c3ltYm9sX2NsYXNzID0gWE1DX1VDOworICAgICAgZWxz ZSBpZiAoc3RyY21wIChzLCAiVUxdIikgPT0gMCkKKwl0Yy0+c3ltYm9sX2NsYXNzID0gWE1DX1VM OwogICAgICAgYnJlYWs7CiAgICAgY2FzZSAnWCc6CiAgICAgICBpZiAoc3RyY21wIChzLCAiWE9d IikgPT0gMCkKQEAgLTU4NTMsMTIgKzU5NTcsMTUgQEAgcHBjX2Zyb2Jfc3ltYm9sIChzeW1ib2xT ICpzeW0pCiAJICAgIH0KIAkgIGEtPnhfY3NlY3QueF9zbXR5cCA9IChzeW1ib2xfZ2V0X3RjIChz eW0pLT5hbGlnbiA8PCAzKSB8IFhUWV9TRDsKIAl9Ci0gICAgICBlbHNlIGlmIChTX0dFVF9TRUdN RU5UIChzeW0pID09IGJzc19zZWN0aW9uKQorICAgICAgZWxzZSBpZiAoU19HRVRfU0VHTUVOVCAo c3ltKSA9PSBic3Nfc2VjdGlvbgorCSAgICAgICB8fCBTX0dFVF9TRUdNRU5UIChzeW0pID09IHBw Y194Y29mZl90YnNzX3NlY3Rpb24uc2VnbWVudCkKIAl7CiAJICAvKiBUaGlzIGlzIGEgY29tbW9u IHN5bWJvbC4gICovCiAJICBhLT54X2NzZWN0Lnhfc2NubGVuLmwgPSBzeW1ib2xfZ2V0X2ZyYWcg KHN5bSktPmZyX29mZnNldDsKIAkgIGEtPnhfY3NlY3QueF9zbXR5cCA9IChzeW1ib2xfZ2V0X3Rj IChzeW0pLT5hbGlnbiA8PCAzKSB8IFhUWV9DTTsKLQkgIGlmIChTX0lTX0VYVEVSTkFMIChzeW0p KQorCSAgaWYgKFNfR0VUX1NFR01FTlQgKHN5bSkgPT0gcHBjX3hjb2ZmX3Ric3Nfc2VjdGlvbi5z ZWdtZW50KQorCSAgICBzeW1ib2xfZ2V0X3RjIChzeW0pLT5zeW1ib2xfY2xhc3MgPSBYTUNfVUw7 CisJICBlbHNlIGlmIChTX0lTX0VYVEVSTkFMIChzeW0pKQogCSAgICBzeW1ib2xfZ2V0X3RjIChz eW0pLT5zeW1ib2xfY2xhc3MgPSBYTUNfUlc7CiAJICBlbHNlCiAJICAgIHN5bWJvbF9nZXRfdGMg KHN5bSktPnN5bWJvbF9jbGFzcyA9IFhNQ19CUzsKQEAgLTU5MTIsOSArNjAxOSwxMSBAQCBwcGNf ZnJvYl9zeW1ib2wgKHN5bWJvbFMgKnN5bSkKIAkgIC8qIFRoaXMgaXMgYSBub3JtYWwgc3ltYm9s IGRlZmluaXRpb24uICB4X3NjbmxlbiBpcyB0aGUKIAkgICAgIHN5bWJvbCBpbmRleCBvZiB0aGUg Y29udGFpbmluZyBjc2VjdC4gICovCiAJICBpZiAoU19HRVRfU0VHTUVOVCAoc3ltKSA9PSB0ZXh0 X3NlY3Rpb24pCi0JICAgIGNzZWN0ID0gcHBjX3RleHRfY3NlY3RzOworCSAgICBjc2VjdCA9IHBw Y194Y29mZl90ZXh0X3NlY3Rpb24uY3NlY3RzOwogCSAgZWxzZSBpZiAoU19HRVRfU0VHTUVOVCAo c3ltKSA9PSBkYXRhX3NlY3Rpb24pCi0JICAgIGNzZWN0ID0gcHBjX2RhdGFfY3NlY3RzOworCSAg ICBjc2VjdCA9IHBwY194Y29mZl9kYXRhX3NlY3Rpb24uY3NlY3RzOworCSAgZWxzZSBpZiAoU19H RVRfU0VHTUVOVCAoc3ltKSA9PSBwcGNfeGNvZmZfdGRhdGFfc2VjdGlvbi5zZWdtZW50KQorCSAg ICBjc2VjdCA9IHBwY194Y29mZl90ZGF0YV9zZWN0aW9uLmNzZWN0czsKIAkgIGVsc2UKIAkgICAg YWJvcnQgKCk7CiAKQEAgLTYxOTYsNiArNjMwNSw3IEBAIHBwY19maXhfYWRqdXN0YWJsZSAoZml4 UyAqZml4KQogICAgICAgJiYgdGMtPnN5bWJvbF9jbGFzcyAhPSBYTUNfVEMKICAgICAgICYmIHRj LT5zeW1ib2xfY2xhc3MgIT0gWE1DX1RFCiAgICAgICAmJiBzeW1zZWcgIT0gYnNzX3NlY3Rpb24K KyAgICAgICYmIHN5bXNlZyAhPSBwcGNfeGNvZmZfdGJzc19zZWN0aW9uLnNlZ21lbnQKICAgICAg IC8qIERvbid0IGFkanVzdCBpZiB0aGlzIGlzIGEgcmVsb2MgaW4gdGhlIHRvYyBzZWN0aW9uLiAg Ki8KICAgICAgICYmIChzeW1zZWcgIT0gZGF0YV9zZWN0aW9uCiAJICB8fCBwcGNfdG9jX2NzZWN0 ID09IE5VTEwKQEAgLTcxMjksNiArNzIzOSwzNyBAQCBtZF9hcHBseV9maXggKGZpeFMgKmZpeFAs IHZhbHVlVCAqdmFsUCwgc2VnVCBzZWcpCiAjZW5kaWYKIAogI2lmZGVmIE9CSl9YQ09GRgorCWNh c2UgQkZEX1JFTE9DX1BQQ19UTFNHRDoKKwljYXNlIEJGRF9SRUxPQ19QUENfVExTTEQ6CisJY2Fz ZSBCRkRfUkVMT0NfUFBDX1RMU0xFOgorCWNhc2UgQkZEX1JFTE9DX1BQQ19UTFNJRToKKwljYXNl IEJGRF9SRUxPQ19QUENfVExTTToKKwljYXNlIEJGRF9SRUxPQ19QUEM2NF9UTFNHRDoKKwljYXNl IEJGRF9SRUxPQ19QUEM2NF9UTFNMRDoKKwljYXNlIEJGRF9SRUxPQ19QUEM2NF9UTFNMRToKKwlj YXNlIEJGRF9SRUxPQ19QUEM2NF9UTFNJRToKKwljYXNlIEJGRF9SRUxPQ19QUEM2NF9UTFNNOgor CSAgZ2FzX2Fzc2VydCAoZml4UC0+ZnhfYWRkc3kgIT0gTlVMTCk7CisJICBTX1NFVF9USFJFQURf TE9DQUwgKGZpeFAtPmZ4X2FkZHN5KTsKKwkgIGZpZWxkdmFsID0gMDsKKwkgIGJyZWFrOworCisJ ICAvKiBUTFNNTCByZWxvY2F0aW9ucyBhcmUgdGFyZ2V0aW5nIGEgWE1DX1RDIHN5bWJvbCBuYW1l ZAorCSAgICAgIl8kVExTTUwiLiBXZSBjYW4ndCBjaGVjayBlYXJsaWVyIGJlY2F1c2UgdGhlIHJl bG9jYXRpb24KKwkgICAgIGNhbiB0YXJnZXQgYW55IHN5bWJvbCBuYW1lIHdoaWNoIHdpbGwgYmUg bGF0dGVyIC5yZW5hbWUKKwkgICAgIHRvICJfJFRMU01MIi4gICovCisJY2FzZSBCRkRfUkVMT0Nf UFBDX1RMU01MOgorCWNhc2UgQkZEX1JFTE9DX1BQQzY0X1RMU01MOgorCSAgZ2FzX2Fzc2VydCAo Zml4UC0+ZnhfYWRkc3kgIT0gTlVMTCk7CisJICBpZiAoc3RyY21wIChzeW1ib2xfZ2V0X3RjIChm aXhQLT5meF9hZGRzeSktPnJlYWxfbmFtZSwgIl8kVExTTUwiKSAhPSAwKQorCSAgICB7CisJICAg ICAgYXNfYmFkX3doZXJlIChmaXhQLT5meF9maWxlLCBmaXhQLT5meF9saW5lLAorCQkJICAgIF8o IlJfVExTTUwgcmVsb2NhdGlvbiBkb2Vzbid0IHRhcmdldCBhICIKKwkJCSAgICAgICJzeW1ib2wg bmFtZWQgXCJfJFRMU01MXCIuICVzIiksIFNfR0VUX05BTUUoZml4UC0+ZnhfYWRkc3kpKTsKKwkg ICAgfQorCSAgZmllbGR2YWwgPSAwOworCSAgYnJlYWs7CisKIAljYXNlIEJGRF9SRUxPQ19OT05F OgogI2VuZGlmCiAJY2FzZSBCRkRfUkVMT0NfQ1RPUjoKZGlmZiAtLWdpdCBhL2dhcy9jb25maWcv dGMtcHBjLmggYi9nYXMvY29uZmlnL3RjLXBwYy5oCmluZGV4IDllMmYxNzQ1ZmQuLmQzOGM3ZDQ3 MDggMTAwNjQ0Ci0tLSBhL2dhcy9jb25maWcvdGMtcHBjLmgKKysrIGIvZ2FzL2NvbmZpZy90Yy1w cGMuaApAQCAtMTg5LDYgKzE4OSwyMyBAQCBkbyB7CQkJCQkJCQlcCiBleHRlcm4gdm9pZCBwcGNf eGNvZmZfZW5kICh2b2lkKTsKICNkZWZpbmUgbWRfZW5kIHBwY194Y29mZl9lbmQKIAorI2RlZmlu ZSBUQ19QQVJTRV9DT05TX0VYUFJFU1NJT04oRVhQLCBOQllURVMpCVwKKyAgcHBjX3hjb2ZmX3Bh cnNlX2NvbnMgKEVYUCwgTkJZVEVTKQorZXh0ZXJuIGJmZF9yZWxvY19jb2RlX3JlYWxfdHlwZSBw cGNfeGNvZmZfcGFyc2VfY29ucyAoZXhwcmVzc2lvblMgKiwKKwkJCQkJCSAgICB1bnNpZ25lZCBp bnQpOworLyogWENPRkYgZm9ybWF0IGFsbG93cyBvbmx5IGZldyBwcmVkZWZpbmVkIHNlY3Rpb25z LiBHYXRoZXIgYWxsCisgICBpbmZvcm1hdGlvbiBpbiBhIGNvbW1vbiBzdHJ1Y3R1cmUuICAqLwor c3RydWN0IHBwY194Y29mZl9zZWN0aW9uIHsKKyAgLyogTWFpbiBzZWdtZW50IG9mIHRoZSBzZWN0 aW9uLiAgKi8KKyAgc2VnVCBzZWdtZW50OworCisgIC8qIE5leHQgc3Vic2VnbWVudCB0byBhbGxv Y2F0ZSB3aXRoaW4gdGhlIHNlZ21lbnQuICAqLworICBzdWJzZWdUIG5leHRfc3Vic2VnbWVudDsK KworICAvKiBMaW5rZWQgbGlzdCBvZiBjc2VjdHMgaW4gdGhlIHNlY3Rpb24uICAqLworICBzeW1i b2xTICpjc2VjdHM7Cit9OworCiAjZW5kaWYgLyogT0JKX1hDT0ZGICovCiAKICNkZWZpbmUgdGNf bmV3X2RvdF9sYWJlbChzeW0pIHBwY19uZXdfZG90X2xhYmVsIChzeW0pCmRpZmYgLS1naXQgYS9p bmNsdWRlL2NvZmYvaW50ZXJuYWwuaCBiL2luY2x1ZGUvY29mZi9pbnRlcm5hbC5oCmluZGV4IDhl MjFiNGVmM2IuLjg1NDg2NTM1NTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29mZi9pbnRlcm5hbC5o CisrKyBiL2luY2x1ZGUvY29mZi9pbnRlcm5hbC5oCkBAIC0yNjMsOCArMjYzLDEzIEBAIHN0cnVj dCBpbnRlcm5hbF9hb3V0aGRyCiAgIHNob3J0IG9fYWxnbmRhdGE7CQkvKiBtYXggYWxpZ25tZW50 IGZvciBkYXRhCSovCiAgIHNob3J0IG9fbW9kdHlwZTsJCS8qIE1vZHVsZSB0eXBlIGZpZWxkLCAx UixSRSxSTwkqLwogICBzaG9ydCBvX2NwdXR5cGU7CQkvKiBFbmNvZGVkIENQVSB0eXBlCQkqLwot ICBiZmRfdm1hIG9fbWF4c3RhY2s7CS8qIG1heCBzdGFjayBzaXplIGFsbG93ZWQuCSovCi0gIGJm ZF92bWEgb19tYXhkYXRhOwkvKiBtYXggZGF0YSBzaXplIGFsbG93ZWQuCSovCisgIGJmZF92bWEg b19tYXhzdGFjazsJCS8qIG1heCBzdGFjayBzaXplIGFsbG93ZWQuCSovCisgIGJmZF92bWEgb19t YXhkYXRhOwkJLyogbWF4IGRhdGEgc2l6ZSBhbGxvd2VkLgkqLworICBjaGFyIG9fZmxhZ3M7CQkJ LyogRmxhZ3MgYW5kIFRMUyBhbGlnbm1lbnQJKi8KKyAgc2hvcnQgb19zbnRkYXRhOwkJLyogc2Vj dGlvbiBudW1iZXIgZm9yIHRkYXRhCSovCisgIHNob3J0IG9fc250YnNzOwkJLyogc2VjdGlvbiBu dW1iZXIgZm9yIHRic3MJKi8KKyAgc2hvcnQgb194NjRmbGFnczsJCS8qIFhDT0ZGNjQgZmxhZ3MJ CSovCisKIAogICAvKiBFQ09GRiBzdHVmZiAqLwogICBiZmRfdm1hIGJzc19zdGFydDsJCS8qIEJh c2Ugb2YgYnNzIHNlY3Rpb24uCQkqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb2ZmL3JzNjAwMC5o IGIvaW5jbHVkZS9jb2ZmL3JzNjAwMC5oCmluZGV4IDI4MGE4MWZhOWEuLmZmMmRlNTMwYjggMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvY29mZi9yczYwMDAuaAorKysgYi9pbmNsdWRlL2NvZmYvcnM2MDAw LmgKQEAgLTQ4LDI4ICs0OCwzNCBAQCBzdHJ1Y3QgZXh0ZXJuYWxfZmlsZWhkciB7CiAKIHR5cGVk ZWYgc3RydWN0CiB7Ci0gIHVuc2lnbmVkIGNoYXIJbWFnaWNbMl07CS8qIHR5cGUgb2YgZmlsZQkJ CSovCi0gIHVuc2lnbmVkIGNoYXIJdnN0YW1wWzJdOwkvKiB2ZXJzaW9uIHN0YW1wCQkqLwotICB1 bnNpZ25lZCBjaGFyCXRzaXplWzRdOwkvKiB0ZXh0IHNpemUgaW4gYnl0ZXMsIHBhZGRlZCB0byBG VyBiZHJ5ICovCi0gIHVuc2lnbmVkIGNoYXIJZHNpemVbNF07CS8qIGluaXRpYWxpemVkIGRhdGEg IiAgIgkqLwotICB1bnNpZ25lZCBjaGFyCWJzaXplWzRdOwkvKiB1bmluaXRpYWxpemVkIGRhdGEg IiAgICIJKi8KLSAgdW5zaWduZWQgY2hhcgllbnRyeVs0XTsJLyogZW50cnkgcHQuCQkJKi8KLSAg dW5zaWduZWQgY2hhcgl0ZXh0X3N0YXJ0WzRdOwkvKiBiYXNlIG9mIHRleHQgdXNlZCBmb3IgdGhp cyBmaWxlICovCi0gIHVuc2lnbmVkIGNoYXIJZGF0YV9zdGFydFs0XTsJLyogYmFzZSBvZiBkYXRh IHVzZWQgZm9yIHRoaXMgZmlsZSAqLwotICB1bnNpZ25lZCBjaGFyCW9fdG9jWzRdOwkvKiBhZGRy ZXNzIG9mIFRPQyAqLwotICB1bnNpZ25lZCBjaGFyCW9fc25lbnRyeVsyXTsJLyogc2VjdGlvbiBu dW1iZXIgb2YgZW50cnkgcG9pbnQgKi8KLSAgdW5zaWduZWQgY2hhcglvX3NudGV4dFsyXTsJLyog c2VjdGlvbiBudW1iZXIgb2YgLnRleHQgc2VjdGlvbiAqLwotICB1bnNpZ25lZCBjaGFyCW9fc25k YXRhWzJdOwkvKiBzZWN0aW9uIG51bWJlciBvZiAuZGF0YSBzZWN0aW9uICovCi0gIHVuc2lnbmVk IGNoYXIJb19zbnRvY1syXTsJLyogc2VjdGlvbiBudW1iZXIgb2YgVE9DICovCi0gIHVuc2lnbmVk IGNoYXIJb19zbmxvYWRlclsyXTsJLyogc2VjdGlvbiBudW1iZXIgb2YgLmxvYWRlciBzZWN0aW9u ICovCi0gIHVuc2lnbmVkIGNoYXIJb19zbmJzc1syXTsJLyogc2VjdGlvbiBudW1iZXIgb2YgLmJz cyBzZWN0aW9uICovCi0gIHVuc2lnbmVkIGNoYXIJb19hbGdudGV4dFsyXTsJLyogLnRleHQgYWxp Z25tZW50ICovCi0gIHVuc2lnbmVkIGNoYXIJb19hbGduZGF0YVsyXTsJLyogLmRhdGEgYWxpZ25t ZW50ICovCi0gIHVuc2lnbmVkIGNoYXIJb19tb2R0eXBlWzJdOwkvKiBtb2R1bGUgdHlwZSAoPz8p ICovCi0gIHVuc2lnbmVkIGNoYXIgb19jcHV0eXBlWzJdOwkvKiBjcHUgdHlwZSAqLwotICB1bnNp Z25lZCBjaGFyCW9fbWF4c3RhY2tbNF07CS8qIG1heCBzdGFjayBzaXplICg/PykgKi8KLSAgdW5z aWduZWQgY2hhciBvX21heGRhdGFbNF07CS8qIG1heCBkYXRhIHNpemUgKD8/KSAqLwotICB1bnNp Z25lZCBjaGFyCW9fcmVzdjJbMTJdOwkvKiByZXNlcnZlZCAqLworICB1bnNpZ25lZCBjaGFyIG1h Z2ljWzJdOwkJLyogdHlwZSBvZiBmaWxlCQkJKi8KKyAgdW5zaWduZWQgY2hhciB2c3RhbXBbMl07 CQkvKiB2ZXJzaW9uIHN0YW1wCQkqLworICB1bnNpZ25lZCBjaGFyIHRzaXplWzRdOwkJLyogdGV4 dCBzaXplIGluIGJ5dGVzLCBwYWRkZWQgdG8gRlcgYmRyeSAqLworICB1bnNpZ25lZCBjaGFyIGRz aXplWzRdOwkJLyogaW5pdGlhbGl6ZWQgZGF0YSAiCSAiCSovCisgIHVuc2lnbmVkIGNoYXIgYnNp emVbNF07CQkvKiB1bmluaXRpYWxpemVkIGRhdGEgIgkgICIJKi8KKyAgdW5zaWduZWQgY2hhciBl bnRyeVs0XTsJCS8qIGVudHJ5IHB0LgkJCSovCisgIHVuc2lnbmVkIGNoYXIgdGV4dF9zdGFydFs0 XTsJCS8qIGJhc2Ugb2YgdGV4dCB1c2VkIGZvciB0aGlzIGZpbGUgKi8KKyAgdW5zaWduZWQgY2hh ciBkYXRhX3N0YXJ0WzRdOwkJLyogYmFzZSBvZiBkYXRhIHVzZWQgZm9yIHRoaXMgZmlsZSAqLwor ICB1bnNpZ25lZCBjaGFyIG9fdG9jWzRdOwkJLyogYWRkcmVzcyBvZiBUT0MgKi8KKyAgdW5zaWdu ZWQgY2hhciBvX3NuZW50cnlbMl07CQkvKiBzZWN0aW9uIG51bWJlciBvZiBlbnRyeSBwb2ludCAq LworICB1bnNpZ25lZCBjaGFyIG9fc250ZXh0WzJdOwkJLyogc2VjdGlvbiBudW1iZXIgb2YgLnRl eHQgc2VjdGlvbiAqLworICB1bnNpZ25lZCBjaGFyIG9fc25kYXRhWzJdOwkJLyogc2VjdGlvbiBu dW1iZXIgb2YgLmRhdGEgc2VjdGlvbiAqLworICB1bnNpZ25lZCBjaGFyIG9fc250b2NbMl07CQkv KiBzZWN0aW9uIG51bWJlciBvZiBUT0MgKi8KKyAgdW5zaWduZWQgY2hhciBvX3NubG9hZGVyWzJd OwkJLyogc2VjdGlvbiBudW1iZXIgb2YgLmxvYWRlciBzZWN0aW9uICovCisgIHVuc2lnbmVkIGNo YXIgb19zbmJzc1syXTsJCS8qIHNlY3Rpb24gbnVtYmVyIG9mIC5ic3Mgc2VjdGlvbiAqLworICB1 bnNpZ25lZCBjaGFyIG9fYWxnbnRleHRbMl07CQkvKiAudGV4dCBhbGlnbm1lbnQgKi8KKyAgdW5z aWduZWQgY2hhciBvX2FsZ25kYXRhWzJdOwkJLyogLmRhdGEgYWxpZ25tZW50ICovCisgIHVuc2ln bmVkIGNoYXIgb19tb2R0eXBlWzJdOwkJLyogbW9kdWxlIHR5cGUgKD8/KSAqLworICB1bnNpZ25l ZCBjaGFyIG9fY3B1dHlwZVsyXTsJCS8qIGNwdSB0eXBlICovCisgIHVuc2lnbmVkIGNoYXIgb19t YXhzdGFja1s0XTsJCS8qIG1heCBzdGFjayBzaXplICg/PykgKi8KKyAgdW5zaWduZWQgY2hhciBv X21heGRhdGFbNF07CQkvKiBtYXggZGF0YSBzaXplICg/PykgKi8KKyAgdW5zaWduZWQgY2hhciBv X2RlYnVnZ2VyWzRdOwkJLyogcmVzZXJ2ZWQgKi8KKyAgdW5zaWduZWQgY2hhciBvX3RleHRwc2l6 ZVsxXTsgCS8qIHRleHQgcGFnZSBzaXplICovCisgIHVuc2lnbmVkIGNoYXIgb19kYXRhcHNpemVb MV07IAkvKiBkYXRhIHBhZ2Ugc2l6ZSAqLworICB1bnNpZ25lZCBjaGFyIG9fc3RhY2twc2l6ZVsx XTsJLyogc3RhY2sgcGFnZSBzaXplICovCisgIHVuc2lnbmVkIGNoYXIgb19mbGFnc1sxXTsJCS8q IEZsYWdzIGFuZCBUTFMgYWxpZ25tZW50ICovCisgIHVuc2lnbmVkIGNoYXIgb19zbnRkYXRhWzJd OwkJLyogc2VjdGlvbiBudW1iZXIgb2YgLnRkYXRhIHNlY3Rpb24gKi8KKyAgdW5zaWduZWQgY2hh ciBvX3NudGJzc1syXTsJCS8qIHNlY3Rpb24gbnVtYmVyIG9mIC50YnNzIHNlY3Rpb24gKi8KIH0K IEFPVVRIRFI7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29mZi9yczZrNjQuaCBiL2luY2x1ZGUv Y29mZi9yczZrNjQuaAppbmRleCAxZmFmOGU1MjY5Li41M2FkZjRiZTQ5IDEwMDY0NAotLS0gYS9p bmNsdWRlL2NvZmYvcnM2azY0LmgKKysrIGIvaW5jbHVkZS9jb2ZmL3JzNms2NC5oCkBAIC0zOSwz MiArMzksMzggQEAgc3RydWN0IGV4dGVybmFsX2ZpbGVoZHIKIAogLyoqKioqKioqKioqKioqKioq KioqKiogQU9VVCAiT1BUSU9OQUwgSEVBREVSIiAqKioqKioqKioqKioqKioqKioqKioqLwogCi10 eXBlZGVmIHN0cnVjdCAKK3R5cGVkZWYgc3RydWN0CiB7Ci0gIHVuc2lnbmVkIGNoYXIJbWFnaWNb Ml07CQkvKiB0eXBlIG9mIGZpbGUJCQkqLwotICB1bnNpZ25lZCBjaGFyCXZzdGFtcFsyXTsJCS8q IHZlcnNpb24gc3RhbXAJCSovCi0gIHVuc2lnbmVkIGNoYXIJb19kZWJ1Z2dlcls0XTsJCS8qIHJl c2VydmVkIAkJCSovCi0gIHVuc2lnbmVkIGNoYXIJdGV4dF9zdGFydFs4XTsJCS8qIGJhc2Ugb2Yg dGV4dCB1c2VkIGZvciB0aGlzIGZpbGUgKi8KLSAgdW5zaWduZWQgY2hhcglkYXRhX3N0YXJ0Wzhd OwkJLyogYmFzZSBvZiBkYXRhIHVzZWQgZm9yIHRoaXMgZmlsZSAqLwotICB1bnNpZ25lZCBjaGFy CW9fdG9jWzhdOwkJLyogYWRkcmVzcyBvZiBUT0MgKi8KLSAgdW5zaWduZWQgY2hhcglvX3NuZW50 cnlbMl07CQkvKiBzZWN0aW9uIG51bWJlciBvZiBlbnRyeSBwb2ludCAqLwotICB1bnNpZ25lZCBj aGFyCW9fc250ZXh0WzJdOwkJLyogc2VjdGlvbiBudW1iZXIgb2YgLnRleHQgc2VjdGlvbiAqLwot ICB1bnNpZ25lZCBjaGFyCW9fc25kYXRhWzJdOwkJLyogc2VjdGlvbiBudW1iZXIgb2YgLmRhdGEg c2VjdGlvbiAqLwotICB1bnNpZ25lZCBjaGFyCW9fc250b2NbMl07CQkvKiBzZWN0aW9uIG51bWJl ciBvZiBUT0MgKi8KLSAgdW5zaWduZWQgY2hhcglvX3NubG9hZGVyWzJdOwkJLyogc2VjdGlvbiBu dW1iZXIgb2YgLmxvYWRlciBzZWN0aW9uICovCi0gIHVuc2lnbmVkIGNoYXIJb19zbmJzc1syXTsJ CS8qIHNlY3Rpb24gbnVtYmVyIG9mIC5ic3Mgc2VjdGlvbiAqLwotICB1bnNpZ25lZCBjaGFyCW9f YWxnbnRleHRbMl07CQkvKiAudGV4dCBhbGlnbm1lbnQgKi8KLSAgdW5zaWduZWQgY2hhcglvX2Fs Z25kYXRhWzJdOwkJLyogLmRhdGEgYWxpZ25tZW50ICovCi0gIHVuc2lnbmVkIGNoYXIJb19tb2R0 eXBlWzJdOwkJLyogbW9kdWxlIHR5cGUgKD8/KSAqLworICB1bnNpZ25lZCBjaGFyIG1hZ2ljWzJd OwkJLyogdHlwZSBvZiBmaWxlCQkJKi8KKyAgdW5zaWduZWQgY2hhciB2c3RhbXBbMl07CQkvKiB2 ZXJzaW9uIHN0YW1wCQkqLworICB1bnNpZ25lZCBjaGFyIG9fZGVidWdnZXJbNF07CQkvKiByZXNl cnZlZAkJCSovCisgIHVuc2lnbmVkIGNoYXIgdGV4dF9zdGFydFs4XTsJCS8qIGJhc2Ugb2YgdGV4 dCB1c2VkIGZvciB0aGlzIGZpbGUgKi8KKyAgdW5zaWduZWQgY2hhciBkYXRhX3N0YXJ0WzhdOwkJ LyogYmFzZSBvZiBkYXRhIHVzZWQgZm9yIHRoaXMgZmlsZSAqLworICB1bnNpZ25lZCBjaGFyIG9f dG9jWzhdOwkJLyogYWRkcmVzcyBvZiBUT0MgKi8KKyAgdW5zaWduZWQgY2hhciBvX3NuZW50cnlb Ml07CQkvKiBzZWN0aW9uIG51bWJlciBvZiBlbnRyeSBwb2ludCAqLworICB1bnNpZ25lZCBjaGFy IG9fc250ZXh0WzJdOwkJLyogc2VjdGlvbiBudW1iZXIgb2YgLnRleHQgc2VjdGlvbiAqLworICB1 bnNpZ25lZCBjaGFyIG9fc25kYXRhWzJdOwkJLyogc2VjdGlvbiBudW1iZXIgb2YgLmRhdGEgc2Vj dGlvbiAqLworICB1bnNpZ25lZCBjaGFyIG9fc250b2NbMl07CQkvKiBzZWN0aW9uIG51bWJlciBv ZiBUT0MgKi8KKyAgdW5zaWduZWQgY2hhciBvX3NubG9hZGVyWzJdOwkJLyogc2VjdGlvbiBudW1i ZXIgb2YgLmxvYWRlciBzZWN0aW9uICovCisgIHVuc2lnbmVkIGNoYXIgb19zbmJzc1syXTsJCS8q IHNlY3Rpb24gbnVtYmVyIG9mIC5ic3Mgc2VjdGlvbiAqLworICB1bnNpZ25lZCBjaGFyIG9fYWxn bnRleHRbMl07CQkvKiAudGV4dCBhbGlnbm1lbnQgKi8KKyAgdW5zaWduZWQgY2hhciBvX2FsZ25k YXRhWzJdOwkJLyogLmRhdGEgYWxpZ25tZW50ICovCisgIHVuc2lnbmVkIGNoYXIgb19tb2R0eXBl WzJdOwkJLyogbW9kdWxlIHR5cGUgKD8/KSAqLwogICB1bnNpZ25lZCBjaGFyIG9fY3B1dHlwZVsy XTsJCS8qIGNwdSB0eXBlICovCi0gIHVuc2lnbmVkIGNoYXIJb19yZXN2Mls0XTsJCS8qIHJlc2Vy dmVkIAkJCSovCi0gIHVuc2lnbmVkIGNoYXIJdHNpemVbOF07CQkvKiB0ZXh0IHNpemUgYnl0ZXMs IHBhZGRlZCB0byBGVyBiZHJ5ICovCi0gIHVuc2lnbmVkIGNoYXIJZHNpemVbOF07CQkvKiBpbml0 aWFsaXplZCBkYXRhICIgICIJKi8KLSAgdW5zaWduZWQgY2hhcglic2l6ZVs4XTsJCS8qIHVuaW5p dGlhbGl6ZWQgZGF0YSAiICAgIgkqLwotICB1bnNpZ25lZCBjaGFyCWVudHJ5WzhdOwkJLyogZW50 cnkgcHQuCQkJKi8KLSAgdW5zaWduZWQgY2hhcglvX21heHN0YWNrWzhdOwkJLyogbWF4IHN0YWNr IHNpemUgKD8/KSAJCSovCi0gIHVuc2lnbmVkIGNoYXIgb19tYXhkYXRhWzhdOwkJLyogbWF4IGRh dGEgc2l6ZSAoPz8pIAkJKi8KLSAgdW5zaWduZWQgY2hhcglvX3Jlc3YzWzE2XTsJCS8qIHJlc2Vy dmVkIAkJCSovCisgIHVuc2lnbmVkIGNoYXIgb190ZXh0cHNpemVbMV07IAkvKiB0ZXh0IHBhZ2Ug c2l6ZSAqLworICB1bnNpZ25lZCBjaGFyIG9fZGF0YXBzaXplWzFdOyAJLyogZGF0YSBwYWdlIHNp emUgKi8KKyAgdW5zaWduZWQgY2hhciBvX3N0YWNrcHNpemVbMV07CS8qIHN0YWNrIHBhZ2Ugc2l6 ZSAqLworICB1bnNpZ25lZCBjaGFyIG9fZmxhZ3NbMV07CQkvKiBGbGFncyBhbmQgVExTIGFsaWdu bWVudCAqLworICB1bnNpZ25lZCBjaGFyIHRzaXplWzhdOwkJLyogdGV4dCBzaXplIGJ5dGVzLCBw YWRkZWQgdG8gRlcgYmRyeSAqLworICB1bnNpZ25lZCBjaGFyIGRzaXplWzhdOwkJLyogaW5pdGlh bGl6ZWQgZGF0YSAiICAiCSovCisgIHVuc2lnbmVkIGNoYXIgYnNpemVbOF07CQkvKiB1bmluaXRp YWxpemVkIGRhdGEgIgkgICIJKi8KKyAgdW5zaWduZWQgY2hhciBlbnRyeVs4XTsJCS8qIGVudHJ5 IHB0LgkJCSovCisgIHVuc2lnbmVkIGNoYXIgb19tYXhzdGFja1s4XTsJCS8qIG1heCBzdGFjayBz aXplICg/PykJCSovCisgIHVuc2lnbmVkIGNoYXIgb19tYXhkYXRhWzhdOwkJLyogbWF4IGRhdGEg c2l6ZSAoPz8pCQkqLworICB1bnNpZ25lZCBjaGFyIG9fc250ZGF0YVsyXTsJCS8qIHNlY3Rpb24g bnVtYmVyIG9mIC50ZGF0YSBzZWN0aW9uICovCisgIHVuc2lnbmVkIGNoYXIgb19zbnRic3NbMl07 CQkvKiBzZWN0aW9uIG51bWJlciBvZiAudGJzcyBzZWN0aW9uICovCisgIHVuc2lnbmVkIGNoYXIg b194NjRmbGFnc1syXTsJCS8qIFhDT0ZGNjQgZmxhZ3MgKi8KKyAgdW5zaWduZWQgY2hhciBvX3Jl c3YzWzEwXTsJCS8qIHJlc2VydmVkCQkJKi8KIH0KIEFPVVRIRFI7CiAKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvY29mZi94Y29mZi5oIGIvaW5jbHVkZS9jb2ZmL3hjb2ZmLmgKaW5kZXggMzY2NTFkNDM3 NS4uMDVlOTE2MGMwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb2ZmL3hjb2ZmLmgKKysrIGIvaW5j bHVkZS9jb2ZmL3hjb2ZmLmgKQEAgLTQ2LDYgKzQ2LDggQEAKICNkZWZpbmUgX1RFWFQJIi50ZXh0 IgogI2RlZmluZSBfREFUQQkiLmRhdGEiCiAjZGVmaW5lIF9CU1MJIi5ic3MiCisjZGVmaW5lIF9U REFUQQkiLnRkYXRhIgorI2RlZmluZSBfVEJTUwkiLnRic3MiCiAjZGVmaW5lIF9QQUQJIi5wYWQi CiAjZGVmaW5lIF9MT0FERVIJIi5sb2FkZXIiCiAjZGVmaW5lIF9FWENFUFQgIi5leGNlcHQiCkBA IC05Myw4ICs5NSwxOSBAQAogI2RlZmluZQlSUzZLX0FPVVRIRFJfTk1BR0lDIDB4MDEwOCAvKiBu ZXc6IHRleHQgci9vLCBkYXRhIHIvdyAqLwogI2RlZmluZQlSUzZLX0FPVVRIRFJfWk1BR0lDIDB4 MDEwQiAvKiBwYWdlZDogdGV4dCByL28sIGJvdGggcGFnZS1hbGlnbmVkICovCiAKLS8qIFhDT0ZG IHJlbG9jYXRpb24gdHlwZXMuICAKLSAgIFRoZSByZWxvY2F0aW9ucyBhcmUgZGVzY3JpYmVkIGlu IHRoZSBmdW5jdGlvbiAgCisvKiBGbGFncyBmb3IgYW91dGhkciBvX2ZsYWdzICovCisjZGVmaW5l IFJTNktfQU9VVEhEUl9UTFNfTEUgICAgMHg4MCAgLyogVExTIGxvY2FsLWV4ZWMgY29kZSB3YXMg Z2VuZXJhdGVkICovCisjZGVmaW5lIFJTNktfQU9VVEhEUl9SQVMgICAgICAgMHg0MCAgLyoga2Vy bmVsIG1vZHVsZSBpcyBrZXkgJiByZWNvdmVyeSBzYWZlICovCisjZGVmaW5lIFJTNktfQU9VVEhE Ul9BTEdOVERBVEEgMHhmICAgLyogVExTIGFsaWdubWVudCAqLworCisvKiBGbGFncyBmb3IgYW91 dGhkciBvX3g2NGZsYWdzICovCisjZGVmaW5lIFJTNktfQU9VVEhEUl9TSFJfU1lNVEFCICAweDgw MDAKKyNkZWZpbmUgUlM2S19BT1VUSERSX0ZPUktfUE9MSUNZIDB4NDAwMAorI2RlZmluZSBSUzZL X0FPVVRIRFJfRk9SS19DT1IgICAgMHgyMDAwCisKKworLyogWENPRkYgcmVsb2NhdGlvbiB0eXBl cy4KKyAgIFRoZSByZWxvY2F0aW9ucyBhcmUgZGVzY3JpYmVkIGluIHRoZSBmdW5jdGlvbgogICAg eGNvZmZbNjRdX3BwY19yZWxvY2F0ZV9zZWN0aW9uIGluIGNvZmY2NC1yczYwMDAuYyBhbmQgY29m Zi1yczYwMDAuYyAgKi8KIAogI2RlZmluZSBSX1BPUyAgICAoMHgwMCkKQEAgLTE3MSw3ICsxODQs NyBAQAogI2RlZmluZQlYTUNfU1YzMjY0IDE4CQkvKiBSZWFkLW9ubHkgMzIgb3IgNjQgYml0IHN1 cGVydmlzb3IgY2FsbCAqLwogLyogICAgICAgICAgICAgICAgMTkgICA/Pz8gKi8KICNkZWZpbmUg WE1DX1RMICAgICAyMCAgICAgICAgICAvKiBSZWFkLXdyaXRlIGluaXRpYWxpemVkIFRMUyBkYXRh ICovCi0jZGVmaW5lIFhNQ19UVSAgICAgMjEgICAgICAgICAgLyogUmVhZC13cml0ZSB1bmluaXRp YWxpemVkIFRMUyBkYXRhICovCisjZGVmaW5lIFhNQ19VTCAgICAgMjEgICAgICAgICAgLyogUmVh ZC13cml0ZSB1bmluaXRpYWxpemVkIFRMUyBkYXRhICovCiAjZGVmaW5lIFhNQ19URSAgICAgMjIg ICAgICAgICAgLyogU2FtZSBhcyBYTUNfVEMgYnV0IG1hcHBlZCBhZnRlciBpdCAqLwogCiAvKiBU aGUgbGRoZHIgc3RydWN0dXJlLiAgVGhpcyBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiB0aGUgLmxv YWRlcgpkaWZmIC0tZ2l0IGEvbGQvZW11bHRlbXBsL2FpeC5lbSBiL2xkL2VtdWx0ZW1wbC9haXgu ZW0KaW5kZXggZDU3OGI2ZWFlNy4uYjhlNjU0ZTBhMSAxMDA2NDQKLS0tIGEvbGQvZW11bHRlbXBs L2FpeC5lbQorKysgYi9sZC9lbXVsdGVtcGwvYWl4LmVtCkBAIC05NjksNiArOTY5LDI2IEBAIGds ZCR7RU1VTEFUSU9OX05BTUV9X2JlZm9yZV9hbGxvY2F0aW9uICh2b2lkKQogCSAgc2VjLT5mbGFn cyB8PSBTRUNfS0VFUDsKICAgICAgIH0KIAorICAvKiBNYWtlIHN1cmUgLnRkYXRhIGlzIHJlbW92 ZWQgaWYgZW1wdHksIGV2ZW4gd2l0aCAtciBmbGFnLgorICAgICAudGRhdGEgaXMgYWx3YXlzIGJl aW5nIGdlbmVyYXRlZCBiZWNhdXNlIGl0cyBzaXplIGlzIG5lZWRlZAorICAgICB0byBjdW1wdXRl IC5kYXRhIGFkZHJlc3MuICAqLworICBpZiAoYmZkX2xpbmtfcmVsb2NhdGFibGUgKCZsaW5rX2lu Zm8pKQorICAgIHsKKyAgICAgIGFzZWN0aW9uICpzZWM7CisKKyAgICAgIHNlYyA9IGJmZF9nZXRf c2VjdGlvbl9ieV9uYW1lIChsaW5rX2luZm8ub3V0cHV0X2JmZCwKKwkJCQkgICAgICIudGRhdGEi KTsKKyAgICAgIGlmIChzZWMtPnJhd3NpemUgPT0gMAorCSAgJiYgKHNlYy0+ZmxhZ3MgJiBTRUNf S0VFUCkgPT0gMAorCSAgJiYgIWJmZF9zZWN0aW9uX3JlbW92ZWRfZnJvbV9saXN0IChsaW5rX2lu Zm8ub3V0cHV0X2JmZCwKKwkJCQkJICAgICBzZWMpKQorCXsKKwkgIHNlYy0+ZmxhZ3MgfD0gU0VD X0VYQ0xVREU7CisJICBiZmRfc2VjdGlvbl9saXN0X3JlbW92ZSAobGlua19pbmZvLm91dHB1dF9i ZmQsIHNlYyk7CisJICBsaW5rX2luZm8ub3V0cHV0X2JmZC0+c2VjdGlvbl9jb3VudC0tOworCX0K KyAgICB9CisKICAgYmVmb3JlX2FsbG9jYXRpb25fZGVmYXVsdCAoKTsKIH0KIApkaWZmIC0tZ2l0 IGEvbGQvc2NyaXB0dGVtcGwvYWl4LnNjIGIvbGQvc2NyaXB0dGVtcGwvYWl4LnNjCmluZGV4IGFh MTI5ZDk4ZmIuLjNlNGQ3YzBhZTkgMTAwNjQ0Ci0tLSBhL2xkL3NjcmlwdHRlbXBsL2FpeC5zYwor KysgYi9sZC9zY3JpcHR0ZW1wbC9haXguc2MKQEAgLTM3LDcgKzM3LDM1IEBAIFNFQ1RJT05TCiAg ICAgJHtSRUxPQ0FUSU5HK1BST1ZJREUgKF9ldGV4dCA9IC4pO30KICAgfQogCi0gIC4gPSBBTElH TiAoQUxJR04gKDB4MTAwMDAwMDApICsgKC4gJiAweGZmZiksIDMyKTsKKyAgLyogLnRkYXRhIGFu ZCAudGJzcyBhZGRyZXNzZXMgYXJlIHJlcHJlc2VudGluZyB0aGUgb2Zmc2V0IGZyb20KKyAgICAg dGhlIFRMUyBwb2ludGVyLiBJdCBzdGFydHMgYXQgLTB4NzgwMCBmb3IgNjRiaXQgYW5kIC0weDdj MDAKKyAgICAgZm9yIDMyYml0LgorICAgICBUT0RPOiAzMmJpdCBzaG91bGQgaGF2ZSAtMHg3YzAw IGJ1dCBpdCB3b3JrcyBsaWtlIHRoaXMgZm9yCisgICAgIG5vdy4KKyAgICAgVGhlIG90aGVyIHBh cnRpY3VsYXJpdHkgaXMgdGhhdCB0aGV5IG11c3QgYmUgYmVmb3JlIC5kYXRhCisgICAgIHNlY3Rp b25zLiBCdXQgLmRhdGEgbXVzdCBiZSBhbGlnbmVkIGNvcnJlY3RseSBhcyBpZiB0aGUKKyAgICAg YWRkcmVzc2VzIHdlcmUgY29udGlndW91cy4gVGhpcyBtZWFucyB0aGF0IHRoZSBjb3JyZWN0Cisg ICAgIGFkZHJlc3MgbXVzdCBiZSByZXN0b3JlZCwgdGFraW5nIGludG8gYWNjb3VudDogdGhlIHNp emUgb2YKKyAgICAgLnRleHQsIGl0cyBhbGlnbm1lbnQgMl41LCB0aGUgc2l6ZSBvZiAudGRhdGEg YW5kIGl0cworICAgICBhbGlnbWVudCAyXjQuICAqLworICAudGRhdGEgLTB4NzgwMCA6IHsKKyAg ICAqKC50ZGF0YSkKKyAgICAqKC50bCkKKyAgfQorCisgIC50YnNzIDogeworICAgICooLnRic3Mp CisgICAgKigudWwpCisgIH0KKworICAuID0gJHtSRUxPQ0FUSU5HKyhBTElHTiAoMHgxMDAwMDAw MCArIFNJWkVPRl9IRUFERVJTLCAzMikpICsgfVNJWkVPRigudGV4dCk7CisgIC4gPSBBTElHTiAo LiwzMik7CisgIC4gPSAuICsgU0laRU9GKC50ZGF0YSk7CisgIC4gPSBBTElHTiAoLiwxNik7CisK KyAgLyogLmRhdGEgc3RhcnRpbmcgYWRkcmVzcyBtdXN0IGJlIGluIGEgZGlmZmVyZW50IHNlZ21l bnQgdGhhbgorICAgICB0aGUgLnRleHQgYWRkcmVzc2VzLiBUaHVzLCAweDEwMDAwMDAwIGlzIGFk ZGVkLiAgKi8KKyAgLiA9IEFMSUdOICgweDEwMDAwMDAwKSArICguICYgMHhmZmYpOwogICAuZGF0 YSAuIDogewogICAgICR7UkVMT0NBVElORytQUk9WSURFIChfZGF0YSA9IC4pO30KICAgICAqKC5k YXRhKQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1yZWxvYy0z Mi5kIGIvbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1yZWxvYy0zMi5kCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmNkYWY5MTdlZWMKLS0tIC9kZXYvbnVsbAor KysgYi9sZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXJlbG9jLTMyLmQKQEAgLTAsMCAr MSwzNSBAQAorI3NvdXJjZTogYWl4LXRscy1yZWxvYy5zCisjYXM6IC1hMzIKKyNsZDogLWIzMiAt c2hhcmVkIC1iRTphaXgtdGxzLXJlbG9jLmV4Cisjb2JqZHVtcDogLWRyCisjdGFyZ2V0OiBwb3dl cnBjKi0qLWFpeCoKKworLioKKworRGlzYXNzZW1ibHkgb2Ygc2VjdGlvbiBcLnRleHQ6CisKKy4q IDxcLmZvbz46CisuKjoJODAgODIgMDAgMDAgCWwgICAgICAgcjQsMFwocjJcKQorLio6IFJfVE9D CWdkLS4qCisuKjoJODAgNjIgMDAgMDQgCWwgICAgICAgcjMsNFwocjJcKQorLio6IFJfVE9DCS5n ZC0uKgorLio6CTQ4IDAwIDAwIDAzIAlibGEgICAgIDAgPFwuZm9vLS4qPgorLio6IFJfQkFfMjYJ X190bHNfZ2V0X2FkZHIKKy4qOgk4MCA2MiAwMCAwYyAJbCAgICAgICByMywxMlwocjJcKQorLio6 IFJfVE9DCV9cJFRMU01MLS4qCisuKjoJNDggMDAgMDAgMDMgCWJsYSAgICAgMCA8XC5mb28tLio+ CisuKjogUl9CQV8yNglfX3Rsc19nZXRfbW9kCisuKjoJODAgODIgMDAgMDggCWwgICAgICAgcjQs OFwocjJcKQorLio6IFJfVE9DCWxkLS4qCisuKjoJN2MgYTMgMjIgMTQgCWNheCAgICAgcjUscjMs cjQKKy4qOgk0OCAwMCAwMCAwMyAJYmxhICAgICAwIDxcLmZvby0uKj4KKy4qOiBSX0JBXzI2CV9f Z2V0X3Rwb2ludGVyCisuKjoJODAgODIgMDAgMTAgCWwgICAgICAgcjQsMTZcKHIyXCkKKy4qOiBS X1RPQwlpZS0uKgorLio6CTdjIGEzIDIyIDE0IAljYXggICAgIHI1LHIzLHI0CisuKjoJNDggMDAg MDAgMDMgCWJsYSAgICAgMCA8XC5mb28tLio+CisuKjogUl9CQV8yNglfX2dldF90cG9pbnRlcgor Lio6CTgwIDgyIDAwIDE0IAlsICAgICAgIHI0LDIwXChyMlwpCisuKjogUl9UT0MJbGUtLioKKy4q Ogk3YyBhMyAyMiAxNCAJY2F4ICAgICByNSxyMyxyNAorLioKZGlmZiAtLWdpdCBhL2xkL3Rlc3Rz dWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtcmVsb2MtNjQuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1wb3dl cnBjL2FpeC10bHMtcmVsb2MtNjQuZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi4zMjhjZmQ4M2NhCi0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXBvd2Vy cGMvYWl4LXRscy1yZWxvYy02NC5kCkBAIC0wLDAgKzEsMzEgQEAKKyNzb3VyY2U6IGFpeC10bHMt cmVsb2MucworI2FzOiAtYTMyCisjbGQ6IC1iMzIgLXNoYXJlZCAtYkU6YWl4LXRscy1yZWxvYy5l eAorI29iamR1bXA6IC1kcgorI3RhcmdldDogcG93ZXJwYyotKi1haXgqCisKKy4qCisKK0Rpc2Fz c2VtYmx5IG9mIHNlY3Rpb24gXC50ZXh0OgorCisuKiA8XC5mb28+OgorLio6CWU4IDgyIDAwIDAw IAlsZCAgICAgIHI0LDBcKHIyXCkKKy4qOiBSX1RPQwlnZC0uKgorLio6CWU4IDYyIDAwIDA4IAls ZCAgICAgIHIzLDhcKHIyXCkKKy4qOiBSX1RPQwkuZ2QtLioKKy4qOgk0OCAwMCAwMCAwMyAJYmxh ICAgICAwIDxcLmZvby0uKj4KKy4qOiBSX0JBXzI2CV9fdGxzX2dldF9hZGRyCisuKjoJZTggNjIg MDAgMTggCWxkICAgICAgcjMsMjRcKHIyXCkKKy4qOiBSX1RPQwlfXCRUTFNNTC0uKgorLio6CTQ4 IDAwIDAwIDAzIAlibGEgICAgIDAgPFwuZm9vLS4qPgorLio6IFJfQkFfMjYJX190bHNfZ2V0X21v ZAorLio6CTgwIDgyIDAwIDEwIAlsd3ogICAgIHI0LDE2XChyMlwpCisuKjogUl9UT0MJbGQtLioK Ky4qOgk3YyBhMyAyMiAxNCAJYWRkICAgICByNSxyMyxyNAorLio6CWU4IDgyIDAwIDIwIAlsZCAg ICAgIHI0LDMyXChyMlwpCisuKjogUl9UT0MJaWUtLioKKy4qOgk3YyBhNCA2YSAxNCAJYWRkICAg ICByNSxyNCxyMTMKKy4qOgllOCA4MiAwMCAyOCAJbGQgICAgICByNCw0MFwocjJcKQorLio6IFJf VE9DCWxlLS4qCisuKjoJN2MgYTMgNmEgMTQgCWFkZCAgICAgcjUscjMscjEzCisuKgpkaWZmIC0t Z2l0IGEvbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1yZWxvYy5leCBiL2xkL3Rlc3Rz dWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtcmVsb2MuZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uMjU3Y2M1NjQyYwotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0 ZS9sZC1wb3dlcnBjL2FpeC10bHMtcmVsb2MuZXgKQEAgLTAsMCArMSBAQAorZm9vCmRpZmYgLS1n aXQgYS9sZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXJlbG9jLnMgYi9sZC90ZXN0c3Vp dGUvbGQtcG93ZXJwYy9haXgtdGxzLXJlbG9jLnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uNjJlZjczY2RjMwotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9s ZC1wb3dlcnBjL2FpeC10bHMtcmVsb2MucwpAQCAtMCwwICsxLDY1IEBACisgIC5nbG9ibCBiYXJb VExdCisgIC5jc2VjdCBiYXJbVExdCisgIC5sb25nIDEKKworICAudG9jCisgIC50YyBnZFtUQ10s YmFyW1RMXQorICAudGMgLmdkW1RDXSxiYXJbVExdQG0KKyAgLnRjIGxkW1RDXSxiYXJbVExdQGxk CisgIC50YyBtaFtUQ10sbWhbVENdQG1sCisgIC50YyBpZVtUQ10sYmFyW1RMXUBpZQorICAudGMg bGVbVENdLGJhcltUTF1AbGUKKworICAuZ2xvYmwgZm9vCisgIC5nbG9ibCAuZm9vCisgIC5jc2Vj dCBmb29bRFNdLDMKK2ZvbzoKKyAgLmlmIHNpemUgPT0gMzIKKyAgLmxvbmcJLmZvbywgVE9DW3Rj MF0sIDAKKyAgLmVsc2UKKyAgLmxsb25nIC5mb28sIFRPQ1t0YzBdLCAwCisgIC5lbmRpZgorCisg IC5jc2VjdCBmb29bUFJdCisuZm9vOgorICAjR0QKKyAgLmlmIHNpemUgPT0gMzIKKyAgbHd6IDQs IGdkW1RDXSgyKQorICBsd3ogMywgLmdkW1RDXSgyKQorICAuZWxzZQorICBsZCA0LCBnZFtUQ10o MikKKyAgbGQgMywgLmdkW1RDXSgyKQorICAuZW5kaWYKKyAgYmxhIF9fdGxzX2dldF9hZGRyCisK KyAgI0xECisgIC5pZiBzaXplID09IDMyCisgIGx3eiAzLCBtaFtUQ10oMikKKyAgLmVsc2UKKyAg bGQgMywgbWhbVENdKDIpCisgIC5lbmRpZgorICBibGEgX190bHNfZ2V0X21vZAorICBsd3ogNCwg bGRbVENdKDIpCisgIGFkZCA1LDMsNAorCisgICNJRQorICAuaWYgc2l6ZSA9PSAzMgorICBibGEg X19nZXRfdHBvaW50ZXIKKyAgbHd6IDQsIGllW1RDXSgyKQorICBhZGQgNSwzLDQKKyAgLmVsc2UK KyAgbGQgNCwgaWVbVENdKDIpCisgIGFkZCA1LDQsMTMKKyAgLmVuZGlmCisKKyAgI0xFCisgIC5p ZiBzaXplID09IDMyCisgIGJsYSBfX2dldF90cG9pbnRlcgorICBsd3ogNCwgbGVbVENdKDIpCisg IGFkZCA1LDMsNAorICAuZWxzZQorICBsZCA0LCBsZVtUQ10oMikKKyAgYWRkIDUsMywxMworICAu ZW5kaWYKKworLnJlbmFtZSBtaFtUQ10sICJfJFRMU01MIiAjIFN5bWJvbCBmb3IgdGhlIG1vZHVs ZSBoYW5kbGUKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2Vj dGlvbi0zMi5kIGIvbGQvdGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4LXRscy1zZWN0aW9uLTMyLmQK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTE3NDE2MDFmMwotLS0gL2Rl di9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2VjdGlvbi0zMi5k CkBAIC0wLDAgKzEsMTUgQEAKKyNzb3VyY2U6IGFpeC10bHMtc2VjdGlvbi5zCisjYXM6IC1hMzIK KyNsZDogLWIzMiAtc2hhcmVkIC1iRTphaXgtdGxzLXNlY3Rpb24uZXgKKyNvYmpkdW1wOiAtaHcK KyN0YXJnZXQ6IHBvd2VycGMqLSotYWl4KgorCisuKgorCitTZWN0aW9uczoKKy4qCisgIDAgXC50 ZXh0ICAgICAgICAgLiogIC4qICAuKiAgLiogIC4qICBBTExPQywgTE9BRCwgQ09ERQorICAxIFwu dGRhdGEgICAgICAgIDAwMDAwMDA4ICBmZmZmODgwMCAgZmZmZjg4MDAgIC4qICAuKiAgQ09OVEVO VFMsIEFMTE9DLCBMT0FELCBEQVRBLCBUSFJFQURfTE9DQUwKKyAgMiBcLnRic3MgICAgICAgICAw MDAwMDAwOCAgZmZmZjg4MDggIGZmZmY4ODA4ICAuKiAgLiogIEFMTE9DLCBUSFJFQURfTE9DQUwK KyAgMyBcLmRhdGEgICAgICAgICAuKiAgLiogIC4qICAuKiAgLiogIEFMTE9DLCBMT0FELCBEQVRB CisjLi4uCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXNlY3Rp b24tNjQuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2VjdGlvbi02NC5kCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg2OGRhZjhiMmIKLS0tIC9kZXYv bnVsbAorKysgYi9sZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXgtdGxzLXNlY3Rpb24tNjQuZApA QCAtMCwwICsxLDE1IEBACisjc291cmNlOiBhaXgtdGxzLXNlY3Rpb24ucworI2FzOiAtYTY0Cisj bGQ6IC1iNjQgLXNoYXJlZCAtYkU6YWl4LXRscy1zZWN0aW9uLmV4Cisjb2JqZHVtcDogLWh3Cisj dGFyZ2V0OiBwb3dlcnBjKi0qLWFpeCoKKworLioKKworU2VjdGlvbnNcOgorLioKKyAgMCBcLnRl eHQgICAgICAgICAuKiAgLiogIC4qICAuKiAgLiogIEFMTE9DLCBMT0FELCBDT0RFCisgIDEgXC50 ZGF0YSAgICAgICAgMDAwMDAwMDggIGZmZmZmZmZmZmZmZjg4MDAgIGZmZmZmZmZmZmZmZjg4MDAg IC4qICAuKiAgQ09OVEVOVFMsIEFMTE9DLCBMT0FELCBEQVRBLCBUSFJFQURfTE9DQUwKKyAgMiBc LnRic3MgICAgICAgICAwMDAwMDAwOCAgZmZmZmZmZmZmZmZmODgwOCAgZmZmZmZmZmZmZmZmODgw OCAgLiogIC4qICBBTExPQywgVEhSRUFEX0xPQ0FMCisgIDMgXC5kYXRhICAgICAgICAgLiogLiog LiogIC4qICAuKiAgQUxMT0MsIExPQUQsIERBVEEKKyMuLi4KZGlmZiAtLWdpdCBhL2xkL3Rlc3Rz dWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2VjdGlvbi5leCBiL2xkL3Rlc3RzdWl0ZS9sZC1wb3dl cnBjL2FpeC10bHMtc2VjdGlvbi5leApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi4zYmQxZjBlMjk3Ci0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXBvd2Vy cGMvYWl4LXRscy1zZWN0aW9uLmV4CkBAIC0wLDAgKzEsMiBAQAorZm9vCitiYXIKZGlmZiAtLWdp dCBhL2xkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2VjdGlvbi5zIGIvbGQvdGVzdHN1 aXRlL2xkLXBvd2VycGMvYWl4LXRscy1zZWN0aW9uLnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uMzBjMzI4Zjg4YQotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0 ZS9sZC1wb3dlcnBjL2FpeC10bHMtc2VjdGlvbi5zCkBAIC0wLDAgKzEsOCBAQAorICAvKiAudGJz cyAqLworICAuY29tbSBmb29bVUxdLDgKKyAgLmxjb21tIGZvbzJfbCw4LGZvbzJbVUxdCisKKyAg LyogLnRkYXRhICovCisgIC5nbG9ibCBiYXJbVExdCisgIC5jc2VjdCBiYXJbVExdCisgIC5sb25n IDEKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wb3dlcnBjL2FpeDUyLmV4cCBiL2xkL3Rl c3RzdWl0ZS9sZC1wb3dlcnBjL2FpeDUyLmV4cAppbmRleCBhY2UwMDZkYWM2Li42MDU2OTJlMGFi IDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtcG93ZXJwYy9haXg1Mi5leHAKKysrIGIvbGQv dGVzdHN1aXRlL2xkLXBvd2VycGMvYWl4NTIuZXhwCkBAIC0yNzksNiArMjc5LDE2IEBAIHNldCBh aXg3dGVzdHMgewogCSIiIHthaXgtbGFyZ2V0b2MtMS5zfQogCXt7b2JqZHVtcCAtZHIgYWl4LWxh cmdldG9jLTEtU0laRS5kfX0KIAkiYWl4LWxhcmdldG9jLTEuc28ifQorCisgICAgeyJUTFMgcmVs b2NhdGlvbnMiICItc2hhcmVkIC1iRTphaXgtdGxzLXJlbG9jLmV4IgorCSIiIHthaXgtdGxzLXJl bG9jLnN9CisJe3tvYmpkdW1wIC1kciBhaXgtdGxzLXJlbG9jLVNJWkUuZH19CisJImFpeC10bHMt cmVsb2Muc28ifQorCisgICAgeyJUTFMgc2VjdGlvbiIgIi1zaGFyZWQgLWJFOmFpeC10bHMtc2Vj dGlvbi5leCIKKwkiIiB7YWl4LXRscy1zZWN0aW9uLnN9CisJe3tvYmpkdW1wIC1odyBhaXgtdGxz LXNlY3Rpb24tU0laRS5kfX0KKwkiYWl4LXRscy1zZWN0aW9uLnNvIn0KIH0KIAogZm9yZWFjaCB0 ZXN0ICRhaXg3dGVzdHMgewotLSAKMi4yNS4xCgo= --_002_PA4PR02MB66867DBE6F6DAE0ADF827926EA879PA4PR02MB6686eurp_--