From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam08on2071d.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e8d::71d]) by sourceware.org (Postfix) with ESMTPS id 62F693834F2F for ; Thu, 26 May 2022 19:17:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 62F693834F2F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=cornell.edu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cornell.edu ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K9gKpiaDWtKoCLvCn1rKTlDoJ5YwK1JEO7LqvA7hSMv3gHUwjU89Nl1pV1GEk8VYH7MFfg6ay57dfQZ88yVJ74vWWxCPTN32N9ORgzwUYLF5I0jHOaRvkLQPCna/uwIHhoeZGV9Yqi6QqkkBIkr3GSZmDKwt+DRXwE43Bx49NiLPfm5j2voEyT1O0vu2jBr5kYkh2ceCWQVFbZBOxf9Ihkz3kzZ0G7dz6DfUBKm8G5++6qXLn00IPBD4gbhzTeRjJNmS4P2ozqSmz0Bj6VDHTCSrh51YCoO97zHtEz5wkwIKrls2gGZbMLoZAPsUeiGMNax8rqj3ZkOYknS2Lag66g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=75Io5OyF+p7bKGcUBNboJ0PBKCVgz9ALI2zWLy5YKhg=; b=MRSXE3c2g6bvOV8NMVpr1hNH0CMwhfl/4APdmWryfDoMouJO3FebGDu1SAa9UrAfq2P4t0t8GG03IYF+hlOuZ8EYHXCQ3pa4AWs1A/CgyjDE0FRzzzQacTheT92pi49ViSBfyTWtT5OQn4cQRpk4Lh2C+qra+IqcifO2yjU+DEORaKHW2uAMSW9xNXdwYC/WR50bP3D3oxkyUVDuoetB/7w2ppIVGiC4jhY2ETttJJ/FXUUrFcHD4yp+aF7oyUzdlvsFW/TG+T2i4bhVHJz9MxzjtTua7bRVBTztQobnf9cgSCRwduKXzNUg7f0Zp+LHkWL4mqyE1Aq9KPUw/fUP+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cornell.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=75Io5OyF+p7bKGcUBNboJ0PBKCVgz9ALI2zWLy5YKhg=; b=PivGLAW5yvtdgynZOWzkzm0xbiZilRmh5KkGjK2zS0Vl+7fAScCk2RGGniRKBgxFubj0YqZqNbmQfJTD/eHXSj7maq69x/X3Q7WYG1tiMQ2up1MFU4pAVRIZgRUMLnyIByfDb4TgEXoflX6Ce1Xmn5ejC+pWAIyTFYuVSZIb1GA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cornell.edu; Received: from BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) by MN2PR04MB6461.namprd04.prod.outlook.com (2603:10b6:208:1a8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Thu, 26 May 2022 19:17:41 +0000 Received: from BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::ed45:6a5d:b109:673e]) by BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::ed45:6a5d:b109:673e%6]) with mapi id 15.20.5273.023; Thu, 26 May 2022 19:17:41 +0000 Content-Type: multipart/mixed; boundary="------------FS9iKONrJ1t7NVSYeuMoBcEE" Message-ID: <2de3539b-efc2-b6f1-b9e3-8429ecb24c0b@cornell.edu> Date: Thu, 26 May 2022 15:17:40 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Content-Language: en-US To: cygwin-patches From: Ken Brown Subject: [PATCH 7/7] Cygwin: remove miscellaneous 32-bit code X-ClientProxiedBy: BL1PR13CA0364.namprd13.prod.outlook.com (2603:10b6:208:2c0::9) To BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 23a2b86a-cf96-4bd9-4109-08da3f4c6774 X-MS-TrafficTypeDiagnostic: MN2PR04MB6461:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: X+UZFrOYorMb9wQkdMW99Tfo+pKa8gCsPt1K0OQzz+ur8kngn9K5Nymr+QVZkK07XN0h0c2Mgp+pOGTo4rshgOUGsOeVO/v5UuwjHLVyxEfP4x8XrgvchR32Bx32hDSKDpOPL+trOEOyyCJLTWc4UwQE/XGNljeCJH+baIk2xLM4u3nANiz3xIm5cq4n8opOWUpx1qIFMtZavZ/n6/CmgfLvZYwxp5QFpcagt0qerse2P9hs6SaoDtscy1LfPUUaXBBk3/twhnsUs2Z+MsafqCeLADbK2tjqweL25W2UbW56ea5E2iI/Go2RjO7st9rPT+ZVULqe7vz+D4/pX9D4QwPQ8bp2uZx+mMnjsUG94+UCKw3o3GQHHo96N11W8od0FWHaiaDepKPrAtboqF3AaRvQToPvPJEfWFED2ASVF/YGOdJVTcQFTShNc0T5bRHTNk+M7ma6EDSr7lgFr96XrzOd/ybDJ46sGI+qvt7QlFUwXvdYhbkkBhmmPW6wx9ws4iMRJINns53gyDzAqJjxrgSB5Nz9ot0TjYuRdCdNdkLG4JbwaiRhrhx7JoIGLhbl45iRRsRawedwtOk8C+9N/GW+/2tV/VfFYll+rqYnYdPsUwbQpoc5dOxDQU8EfFcNXQEhUc75dk2FQJodfuB5KViXohogdnX7WUkmNsPsHqu4NvxJIQfCRHyNSRZ8Zk6S7TDinT+yQG8ZcH9hfvAZ5DNHAElHhWLUsNCaNdVzM78= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR04MB4388.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(38100700002)(186003)(31696002)(508600001)(33964004)(86362001)(6486002)(2906002)(6506007)(2616005)(235185007)(6512007)(8936002)(19618925003)(786003)(316002)(36756003)(564344004)(66946007)(66476007)(66556008)(8676002)(6916009)(31686004)(75432002)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Sm44eWtCMWZTem43dFJHeUhmMEtrL2ZHeFY0Wi80Q1FwK3pSRm9NMXgvTHE1?= =?utf-8?B?SnZ1OUpZcTJ4Q250S1IySnk5dkVRdC9IVENPL3JJVVptZnM4b1ZjK0dYUHdh?= =?utf-8?B?NWFGcHZ4dTdXYXFsWnFaK0ZsVFB2NlVRS0hMcDRCbHJtVnFQWU5yYmZGUGlt?= =?utf-8?B?WE1GN0FOaHIvU3BZL0lUeHlEOEFobTI2UlpoOElpRThyR05vQ0RvSzFtSm1C?= =?utf-8?B?cnA2a1JBSlpSUFJBeFVQNFN2SXI4WlVRMjdTbHVpKzQyQTROOHV0ZjVIbVZJ?= =?utf-8?B?TXg1MU83REpWMUlSQXBMbWsxUTRVNytadW9UUjdZeTBiRDg5clN2aGtlZjRi?= =?utf-8?B?SmJCVWxGZWpnbG9TRkVvaVZUbXlrSVpUcjZTL0ViMkUyem9iWnN5UktIUVdZ?= =?utf-8?B?WU5JaGtTUFRhZStUV3NwaEdDVi9Vcm42a3c4WjYySnFFM2lKNGtoNjZjVlE5?= =?utf-8?B?QXRQMTdWZU8xUEtKNXp1L01Ob3NMTXF5VGY3SG9rTVNCbXZnTk05M2VEUDdk?= =?utf-8?B?VXQvYkQyNDdtdjd3STE1b0pqVzMyMWhVMzUrTlJPSGZyenFZSjcvaVhQYSsw?= =?utf-8?B?bVoraFozY0RpaEN6YlR2ZVd2TzI2eUphMlRkMUVKdTN5c21JUU5BM24zcWF6?= =?utf-8?B?cXFUNGpRd3A1ZWY3VFF4OEJlMndONk1yWElXQy8ydFZ4cGN1dWFaQ3FSZ1dk?= =?utf-8?B?VWxRQzB4Q25CRDVRVlpMdysveGwzTUdFNVVaV09rekliN2FTZmpZeFF6MHFv?= =?utf-8?B?NXZMWGFtNFJTWHd2Z3VzejcxNk5YU0tURXEwbFk3MHhmU3JYK0hlc01nS05s?= =?utf-8?B?c3JzSzl2amV6U0owUTBkUEUxSDlzMm16ZXFLWGQwSmxCbVFQTUYxREN5bXVl?= =?utf-8?B?dVZwWkNVenpnWHg0cTAwMkNIRUR3UGpEcjVCMjhIQkpIa2ozZ0t0RGg0cURQ?= =?utf-8?B?dmFhSHcrU0NvMmw3WGREckJZY3BYRUtZVyt3NTAxcXM4dDdqL01xekE3Y2sz?= =?utf-8?B?azhuc1RRUFdDTFF4U0hjSERDM3Y0TlRiV2k5ZHlJWW1zWTdnUXQ5WHBVUlE1?= =?utf-8?B?T1dycXFHUDFTak1sVFBqaDh0UXNsMEp0WEJiaXhWOTcvaC9JMGV2OEZzRUdr?= =?utf-8?B?bUExUHJ4RlNNRW8xQTBnUnlrZjdnc3FCSTJyNTBZMnN3QlRVWUExMkE0dzdt?= =?utf-8?B?cWtGTExwc1pubnNVSWdzMVdGeXlheTFyZ0VTNG9rSUlTb01OU2ZLUlRkcHl2?= =?utf-8?B?SG1kd3ZOcVVDOElMWTRta2o4LzVUOEdmZnpRRWtpOFdXMlIzcDZWTlBhaWMx?= =?utf-8?B?eWNzbTZVeHpLaTdLbWhkY2lUQnRTNDk3anYwaVNWZm9WM2FKVWhlTDlscmpJ?= =?utf-8?B?R3VBNStGZGRhS2p0TDVMYWZvaVVoVk1PdFRYdHpDYURZaFlqVXZSODlmNTRQ?= =?utf-8?B?Y3hZTDRKOUxKOUJwV2cwdWR3YjVraS9qY0pCeXlyZG81Ulp6aEJoSlo1WExC?= =?utf-8?B?WjFaaEN4d3ZFNzU5a2U2OC96Skp2Wm5KWkFyT1Z4STArYzFnSnNzak1RTk94?= =?utf-8?B?MDNhalV0ZHNDVEdMU1dEQ2o1NDlFbEFETFFLNEhBL2J1dk83Y3NQNDg1dFVQ?= =?utf-8?B?eVhSbjRmMjFoemQ2U0IzZGFadldZSDBZL1JtZjJjS2Z3R2Vud2NDNjBrWUtI?= =?utf-8?B?b3ZEcEFaOVo1ZHpYL0RaUklyZVhkZ3RPL1dzeXZua2Y5VmQ2bHZRMWZ6WEtn?= =?utf-8?B?Q1M1clc4dDdodjl3cUpabFhBVHB5NUZpRzd4c09HYzJGKzExN25ZVWgzMFNJ?= =?utf-8?B?VWZMM1FISjlxenJ0VVh0dGtBa2ZremdNQjNJZ05UM0VqZk10OXVMdXF4My9k?= =?utf-8?B?UGtDM3RMZmNteWVPaG9CeXY0S0VpS1pHL3FzSysyZHFXdW5NTktkVEU2U2or?= =?utf-8?B?cFVHL2U4TVN0TktkME9YZWNxdEpQY3pYRkRjZE1YYlFDcXR0OWs4VS9kS1lK?= =?utf-8?B?MWFMV0llN0dITVI4RTNpVlVNT3hZOGVaRFR1Sy91eEFyRUowQjZ6a3N5L1Ju?= =?utf-8?B?aCsyVFRmT1FwbU8rdDRkc3FqWGJHbkZ5WW9EZ3ZkckNqQ1ZWVVpZQTNZb1U5?= =?utf-8?B?TlVhUGZ1NjZrR1RXU21XSDlXUWpCVk5aV2hwMVlqdEV1MHl3VndBQ0hTWnhJ?= =?utf-8?B?cU43UU5VSThMUEFjQ2ZYY1NjUUFlUmFXWG9rV0V1NFZWS3l4Uzc0bTNqaE9V?= =?utf-8?B?WUczOEZLdS91bkMrOVFjVTFuOTdPb3lDOE04bkxHL3VxTGhWWlllU29rSjJM?= =?utf-8?B?K3BHRmxWaVpnY0dPbWRLWUN4aWpidko1TFpEWkZsclVpWkRJYkRtaml4cDRt?= =?utf-8?Q?A7lfh0xF5zk1J4vO2Uujgi4UGSh4x9H3nbrGNAfJoMSKE?= X-MS-Exchange-AntiSpam-MessageData-1: 0E8AeMRWKdylyA== X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 23a2b86a-cf96-4bd9-4109-08da3f4c6774 X-MS-Exchange-CrossTenant-AuthSource: BN7PR04MB4388.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2022 19:17:41.4114 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: D0T5Z0uV2yV38oadugpXcDiannaz7592EUnOBl/TUExQt1vr+PXAx8oO8UcTqi7TGWYBmljULPxBUfpTfIKmRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR04MB6461 X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_STOCKGEN, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: cygwin-patches@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component patch submission and discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 May 2022 19:17:49 -0000 --------------FS9iKONrJ1t7NVSYeuMoBcEE Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Patch attached. --------------FS9iKONrJ1t7NVSYeuMoBcEE Content-Type: text/plain; charset=UTF-8; name="0007-Cygwin-remove-miscellaneous-32-bit-code.patch" Content-Disposition: attachment; filename="0007-Cygwin-remove-miscellaneous-32-bit-code.patch" Content-Transfer-Encoding: base64 RnJvbSBkNzhiM2YxM2E1ZWNhNTU0ZDUwYTdjNDA1MzJmODRjYWZkZDE0MzVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4KRGF0ZTog VHVlLCAyNCBNYXkgMjAyMiAxNDoyNjozMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggNy83XSBDeWd3 aW46IHJlbW92ZSBtaXNjZWxsYW5lb3VzIDMyLWJpdCBjb2RlCgotLS0KIHdpbnN1cC9jeWd3aW4v YXV0b2xvYWQuY2MgICAgICAgICAgICAgICAgfCAxMzYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IHdpbnN1cC9jeWd3aW4vY2hpbGRfaW5mby5oICAgICAgICAgICAgICAgfCAgIDQgLQogd2luc3Vw L2N5Z3dpbi9jcHVpZC5oICAgICAgICAgICAgICAgICAgICB8ICAyMyAtLS0tCiB3aW5zdXAvY3ln d2luL2N5Z2hlYXAuY2MgICAgICAgICAgICAgICAgIHwgICA0IC0KIHdpbnN1cC9jeWd3aW4vY3ln bWFsbG9jLmggICAgICAgICAgICAgICAgfCAgIDIgLQogd2luc3VwL2N5Z3dpbi9jeWd0bHMuY2Mg ICAgICAgICAgICAgICAgICB8ICAgMiAtCiB3aW5zdXAvY3lnd2luL2N5Z3Rscy5oICAgICAgICAg ICAgICAgICAgIHwgICA0IC0KIHdpbnN1cC9jeWd3aW4vZGNydDAuY2MgICAgICAgICAgICAgICAg ICAgfCAgMTkgLS0tLQogd2luc3VwL2N5Z3dpbi9kbGZjbi5jYyAgICAgICAgICAgICAgICAgICB8 ICAyMyAtLS0tCiB3aW5zdXAvY3lnd2luL2RsbF9pbml0LmNjICAgICAgICAgICAgICAgIHwgIDEx IC0tCiB3aW5zdXAvY3lnd2luL2V4dGVybmFsLmNjICAgICAgICAgICAgICAgIHwgICA3IC0tCiB3 aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3Byb2MuY2MgICAgICAgICAgIHwgICAyIC0KIHdpbnN1cC9j eWd3aW4vZmhhbmRsZXJfcHJvY25ldC5jYyAgICAgICAgfCAgIDIgLQogd2luc3VwL2N5Z3dpbi9m aGFuZGxlcl9zb2NrZXRfaW5ldC5jYyAgICB8ICA0OSAtLS0tLS0tLQogd2luc3VwL2N5Z3dpbi9m aGFuZGxlcl9zb2NrZXRfbG9jYWwuY2MgICB8ICAxMCAtLQogd2luc3VwL2N5Z3dpbi9maGFuZGxl cl9zb2NrZXRfdW5peC5jYyAgICB8ICAgNCAtCiB3aW5zdXAvY3lnd2luL2ZvcmsuY2MgICAgICAg ICAgICAgICAgICAgIHwgICA0IC0KIHdpbnN1cC9jeWd3aW4vZ2NjX3NlaC5oICAgICAgICAgICAg ICAgICAgfCAgIDIgLQogd2luc3VwL2N5Z3dpbi9oZWFwLmNjICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0tLS0tLS0KIHdpbnN1cC9jeWd3aW4vaG9va2FwaS5jYyAgICAgICAgICAgICAgICAg fCAgMjUgKy0tLS0KIHdpbnN1cC9jeWd3aW4vaW5jbHVkZS9hLm91dC5oICAgICAgICAgICAgfCAg IDcgLS0KIHdpbnN1cC9jeWd3aW4vaW5jbHVkZS9hc20vYml0c3BlcmxvbmcuaCAgfCAgIDQgLQog d2luc3VwL2N5Z3dpbi9pbmNsdWRlL2JpdHMvd29yZHNpemUuaCAgICB8ICAgNiArLQogd2luc3Vw L2N5Z3dpbi9pbmNsdWRlL2N5Z3dpbi9jb25maWcuaCAgICB8ICAxMSArLQogd2luc3VwL2N5Z3dp bi9pbmNsdWRlL2N5Z3dpbi9zaWduYWwuaCAgICB8ICA1OSAtLS0tLS0tLS0tCiB3aW5zdXAvY3ln d2luL2luY2x1ZGUvc3lzL2N5Z3dpbi5oICAgICAgIHwgICA0IC0KIHdpbnN1cC9jeWd3aW4vaW5j bHVkZS9zeXMvZGlyZW50LmggICAgICAgfCAgMTYgLS0tCiB3aW5zdXAvY3lnd2luL2luaXQuY2Mg ICAgICAgICAgICAgICAgICAgIHwgICAzIC0KIHdpbnN1cC9jeWd3aW4vbGliL19jeWd3aW5fY3J0 MF9jb21tb24uY2MgfCAgMTEgLS0KIHdpbnN1cC9jeWd3aW4vbGlic3RkY3h4X3dyYXBwZXIuY2Mg ICAgICAgfCAgIDcgLS0KIHdpbnN1cC9jeWd3aW4vbWlzY2Z1bmNzLmNjICAgICAgICAgICAgICAg fCAgOTYgLS0tLS0tLS0tLS0tLS0tLQogd2luc3VwL2N5Z3dpbi9taXNjZnVuY3MuaCAgICAgICAg ICAgICAgICB8ICAgMiAtCiB3aW5zdXAvY3lnd2luL21tYXAuY2MgICAgICAgICAgICAgICAgICAg IHwgIDM2IC0tLS0tLQogd2luc3VwL2N5Z3dpbi9tbWFwX2FsbG9jLmNjICAgICAgICAgICAgICB8 ICAgNCAtCiB3aW5zdXAvY3lnd2luL21tYXBfYWxsb2MuaCAgICAgICAgICAgICAgIHwgICA0IC0K IHdpbnN1cC9jeWd3aW4vbmV0LmNjICAgICAgICAgICAgICAgICAgICAgfCAgIDggLS0KIHdpbnN1 cC9jeWd3aW4vbnRkbGwuaCAgICAgICAgICAgICAgICAgICAgfCAgIDIgLQogd2luc3VwL2N5Z3dp bi9wYXRoLmNjICAgICAgICAgICAgICAgICAgICB8IDEwMiAtLS0tLS0tLS0tLS0tLS0tLQogd2lu c3VwL2N5Z3dpbi9wZXJwcm9jZXNzLmggICAgICAgICAgICAgICB8ICAgNCAtCiB3aW5zdXAvY3ln d2luL3NobS5jYyAgICAgICAgICAgICAgICAgICAgIHwgICA0IC0KIHdpbnN1cC9jeWd3aW4vc2ln cHJvYy5jYyAgICAgICAgICAgICAgICAgfCAgIDUgLQogd2luc3VwL2N5Z3dpbi9zbWFsbHByaW50 LmNjICAgICAgICAgICAgICB8ICAzMiAtLS0tLS0KIHdpbnN1cC9jeWd3aW4vc3Ryc2lnLmNjICAg ICAgICAgICAgICAgICAgfCAgMTQgKy0tCiB3aW5zdXAvY3lnd2luL3N5c2NvbmYuY2MgICAgICAg ICAgICAgICAgIHwgIDE2IC0tLQogd2luc3VwL2N5Z3dpbi90aHJlYWQuY2MgICAgICAgICAgICAg ICAgICB8ICAgNCAtCiB3aW5zdXAvY3lnd2luL3dpbmNhcC5oICAgICAgICAgICAgICAgICAgIHwg ICAyIC0KIHdpbnN1cC9jeWd3aW4vd2luc3VwLmggICAgICAgICAgICAgICAgICAgfCAgMTAgLS0K IDQ3IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDg0NCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2F1dG9sb2FkLmNjIGIvd2luc3VwL2N5Z3dpbi9hdXRv bG9hZC5jYwppbmRleCAxZjUyNDExZDguLjE4MzY2YzYwMCAxMDA2NDQKLS0tIGEvd2luc3VwL2N5 Z3dpbi9hdXRvbG9hZC5jYworKysgYi93aW5zdXAvY3lnd2luL2F1dG9sb2FkLmNjCkBAIC02Niw3 ICs2Niw2IEBAIGJvb2wgTk9fQ09QWSB3c29ja19zdGFydGVkOwogLyogTG9hZERMTHByaW1lIGlz IHVzZWQgdG8gcHJpbWUgdGhlIERMTCBpbmZvIGluZm9ybWF0aW9uLCBwcm92aWRpbmcgYW4KICAg IGFkZGl0aW9uYWwgaW5pdGlhbGl6YXRpb24gcm91dGluZSB0byBjYWxsIHByaW9yIHRvIGNhbGxp bmcgdGhlIGZpcnN0CiAgICBmdW5jdGlvbi4gICovCi0jaWZkZWYgX194ODZfNjRfXwogI2RlZmlu ZSBMb2FkRExMcHJpbWUoZGxsbmFtZSwgaW5pdF9hbHNvLCBub19yZXNvbHZlX29uX2ZvcmspIF9f YXNtX18gKCIJXG5cCiAuaWZuZGVmICIgI2RsbG5hbWUgIl9wcmltZWQJCQkJXG5cCiAgIC5zZWN0 aW9uCS5kYXRhX2N5Z3dpbl9ub2NvcHksXCJ3XCIJCVxuXApAQCAtODIsMjIgKzgxLDYgQEAgYm9v bCBOT19DT1BZIHdzb2NrX3N0YXJ0ZWQ7CiAgIC5zZXQJCSIgI2RsbG5hbWUgIl9wcmltZWQsIDEJ CQlcblwKIC5lbmRpZgkJCQkJCQlcblwKICIpOwotI2Vsc2UKLSNkZWZpbmUgTG9hZERMTHByaW1l KGRsbG5hbWUsIGluaXRfYWxzbywgbm9fcmVzb2x2ZV9vbl9mb3JrKSBfX2FzbV9fICgiCVxuXAot LmlmbmRlZiAiICNkbGxuYW1lICJfcHJpbWVkCQkJCVxuXAotICAuc2VjdGlvbgkuZGF0YV9jeWd3 aW5fbm9jb3B5LFwid1wiCQlcblwKLSAgLmFsaWduCTQJCQkJCVxuXAotLiIjZGxsbmFtZSAiX2lu Zm86CQkJCQlcblwKLSAgLmxvbmcJCV9zdGRfZGxsX2luaXQJCQkJXG5cCi0gIC5sb25nCQkiICNu b19yZXNvbHZlX29uX2ZvcmsgIgkJCVxuXAotICAubG9uZwkJLTEJCQkJCVxuXAotICAubG9uZwkJ IiAjaW5pdF9hbHNvICIJCQkJXG5cCi0gIC5zdHJpbmcxNglcIiIgI2RsbG5hbWUgIi5kbGxcIgkJ CVxuXAotICAudGV4dAkJCQkJCQlcblwKLSAgLnNldAkJIiAjZGxsbmFtZSAiX3ByaW1lZCwgMQkJ CVxuXAotLmVuZGlmCQkJCQkJCVxuXAotIik7Ci0jZW5kaWYKIAogLyogQ3JlYXRlIGEgImRlY29y YXRlZCIgbmFtZSAqLwogI2RlZmluZSBtYW5nbGUobmFtZSwgbikgI25hbWUgIkAiICNuCkBAIC0x MTIsNyArOTUsNiBAQCBib29sIE5PX0NPUFkgd3NvY2tfc3RhcnRlZDsKICAgTG9hZERMTGZ1bmNF eDMobmFtZSwgbiwgZGxsbmFtZSwgbm90aW1wLCBlcnIsIDApCiAKIC8qIE1haW4gRExMIHNldHVw IHN0dWZmLiAqLwotI2lmZGVmIF9feDg2XzY0X18KICNkZWZpbmUgTG9hZERMTGZ1bmNFeDMobmFt ZSwgbiwgZGxsbmFtZSwgbm90aW1wLCBlcnIsIG5vX3Jlc29sdmVfb25fZm9yaykgXAogICBMb2Fk RExMcHJpbWUgKGRsbG5hbWUsIGRsbF9mdW5jX2xvYWQsIG5vX3Jlc29sdmVfb25fZm9yaykgXAog ICBfX2FzbV9fICgiCQkJCQkJXG5cCkBAIC0xMzcsMjYgKzExOSw2IEBAIF93aW4zMl8iICNuYW1l ICI6CQkJCQlcblwKICAgLmFzY2l6CVwiIiAjbmFtZSAiXCIJCQkJXG5cCiAgIC50ZXh0CQkJCQkJ CVxuXAogIik7Ci0jZWxzZQotI2RlZmluZSBMb2FkRExMZnVuY0V4MyhuYW1lLCBuLCBkbGxuYW1l LCBub3RpbXAsIGVyciwgbm9fcmVzb2x2ZV9vbl9mb3JrKSBcCi0gIExvYWRETExwcmltZSAoZGxs bmFtZSwgZGxsX2Z1bmNfbG9hZCwgbm9fcmVzb2x2ZV9vbl9mb3JrKSBcCi0gIF9fYXNtX18gKCIJ CQkJCQlcblwKLSAgLnNlY3Rpb24JLiIgI2RsbG5hbWUgIl9hdXRvbG9hZF90ZXh0LFwid3hcIglc blwKLSAgLmdsb2JhbAlfIiBtYW5nbGUgKG5hbWUsIG4pICIJCQlcblwKLSAgLmdsb2JhbAlfd2lu MzJfIiBtYW5nbGUgKG5hbWUsIG4pICIJCVxuXAotICAuYWxpZ24JOAkJCQkJXG5cCi1fIiBtYW5n bGUgKG5hbWUsIG4pICI6CQkJCQlcblwKLV93aW4zMl8iIG1hbmdsZSAobmFtZSwgbikgIjoJCQkJ XG5cCi0gIC5ieXRlCQkweGU5CQkJCQlcblwKLSAgLmxvbmcJCS00ICsgMWYgLSAuCQkJCVxuXAot MTptb3ZsCQkoMmYpLCVlYXgJCQkJXG5cCi0gICBjYWxsCQkqKCVlYXgpCQkJCQlcblwKLTI6Lmxv bmcJCS4iICNkbGxuYW1lICJfaW5mbwkJCVxuXAotICAubG9uZwkJKCIgI24gIisiICNub3RpbXAg IikgfCAoKCgiICNlcnIgIikgJiAweGZmKSA8PDE2KSBcblwKLSAgLmFzY2l6CVwiIiAjbmFtZSAi XCIJCQkJXG5cCi0gIC50ZXh0CQkJCQkJCVxuXAotIik7Ci0jZW5kaWYKIAogLyogRExMIGxvYWRl ciBoZWxwZXIgZnVuY3Rpb25zIHVzZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLiAqLwogCkBAIC0x NzIsNyArMTM0LDYgQEAgZXh0ZXJuICJDIiB2b2lkIGRsbF9jaGFpbiAoKSBfX2FzbV9fICgiZGxs X2NoYWluIik7CiAKIGV4dGVybiAiQyIgewogCi0jaWZkZWYgX194ODZfNjRfXwogX19hc21fXyAo IgkJCQkJCQkJXG5cCiAJIC5zZWN0aW9uIC5yZGF0YSxcInJcIgkJCQkJCQlcblwKIG1zZzE6CQkJ CQkJCQkJXG5cCkBAIC0yMzQsNjYgKzE5NSw2IEBAIGRsbF9jaGFpbjoJCQkJCQkJCVxuXAogCXB1 c2gJJXJheAkJIyBSZXN0b3JlICdyZXR1cm4gYWRkcmVzcycJCVxuXAogCWptcAkqJXJkeAkJIyBK dW1wIHRvIG5leHQgaW5pdCBmdW5jdGlvbgkJXG5cCiAiKTsKLSNlbHNlCi1fX2FzbV9fICgiCQkJ CQkJCQlcblwKLQkgLnRleHQJCQkJCQkJCVxuXAotbXNnMToJCQkJCQkJCQlcblwKLQkuYXNjaWkJ XCJjb3VsZG4ndCBkeW5hbWljYWxseSBkZXRlcm1pbmUgbG9hZCBhZGRyZXNzIGZvciAnJXMnICho YW5kbGUgJXApLCAlRVxcMFwiXG5cCi0JCQkJCQkJCQlcblwKLQkuYWxpZ24JMzIJCQkJCQkJXG5c Ci1ub2xvYWQ6CQkJCQkJCQkJXG5cCi0JcG9wbAklZWR4CQkjIEdldCB0aGUgYWRkcmVzcyBvZiB0 aGUgaW5mb3JtYXRpb24gYmxvY2tcblwKLQltb3ZsCTQoJWVkeCksJWVheAkjIFNob3VsZCB3ZSAn aWdub3JlJyB0aGUgbGFjawkJXG5cCi0JdGVzdAkkMSwlZWF4CQkjICBvZiB0aGlzIGZ1bmN0aW9u PwkJCVxuXAotCWp6CTFmCQkjIE5vcGUuCQkJCQlcblwKLQlkZWNsCSVlYXgJCSMgWWVzLiAgVGhp cyBpcyB0aGUgIyBvZiBieXRlcyArIDEJXG5cCi0JcG9wbAklZWR4CQkjIENhbGxlcidzIGNhbGxl cgkJCVxuXAotCWFkZGwJJWVheCwlZXNwCSMgUG9wIG9mZiBieXRlcwkJCQlcblwKLQlhbmRsCSQw eGZmZmYwMDAwLCVlYXgjIHVwcGVyIHdvcmQJCQkJXG5cCi0Jc3VibAklZWF4LCVlc3AJIyBhZGp1 c3QgZm9yIHBvc3NpYmxlIHJldHVybiB2YWx1ZQlcblwKLQlwdXNobAklZWF4CQkjIFNhdmUgcmV0 dXJuIHZhbHVlIGZvciBsYXRlcgkJXG5cCi0JcHVzaGwJJWVkeAkJIyBTYXZlIHJldHVybiBhZGRy ZXNzIGZvciBsYXRlcgkJXG5cCi0JbW92bAkkMTI3LCVlYXgJIyBFUlJPUl9QUk9DX05PVF9GT1VO RAkJCVxuXAotCXB1c2hsCSVlYXgJCSMgRmlyc3QgYXJndW1lbnQJCQlcblwKLQljYWxsCV9TZXRM YXN0RXJyb3JANAkjIFNldCBpdAkJCQlcblwKLQlwb3BsCSVlZHgJCSMgR2V0IGJhY2sgcmV0dXJu IGFkZHJlc3MJCVxuXAotCXBvcGwJJWVheAkJIyBHZXQgYmFjayByZXR1cm4gdmFsdWUJCQlcblwK LQlzYXJsCSQxNiwlZWF4CSMgcmV0dXJuIHZhbHVlIGluIGhpZ2ggb3JkZXIgd29yZAlcblwKLQlq bXAJKiVlZHgJCSMgUmV0dXJuCQkJCVxuXAotMToJCQkJCQkJCQlcblwKLQltb3ZsCSglZWR4KSwl ZWF4CSMgSGFuZGxlIHZhbHVlCQkJCVxuXAotCXB1c2hsCTQoJWVheCkJCQkJCQkJXG5cCi0JbGVh bAk4KCVlZHgpLCVlYXgJIyBMb2NhdGlvbiBvZiBuYW1lIG9mIGZ1bmN0aW9uCQlcblwKLQlwdXNo bAklZWF4CQkJCQkJCVxuXAotCXB1c2hsCSRtc2cxCQkjIFRoZSBtZXNzYWdlCQkJCVxuXAotCWNh bGwJX2FwaV9mYXRhbAkjIFByaW50IG1lc3NhZ2UuIE5ldmVyIHJldHVybnMJCVxuXAotCQkJCQkJ CQkJXG5cCi0JLmdsb2JsCWRsbF9mdW5jX2xvYWQJCQkJCQlcblwKLWRsbF9mdW5jX2xvYWQ6CQkJ CQkJCQlcblwKLQltb3ZsCSglZXNwKSwlZWF4CSMgJ1JldHVybiBhZGRyZXNzJyBjb250YWlucyBs b2FkIGluZm8JXG5cCi0JYWRkbAkkOCwlZWF4CQkjIEFkZHJlc3Mgb2YgbmFtZSBvZiBmdW5jdGlv biB0byBsb2FkCVxuXAotCXB1c2hsCSVlYXgJCSMgU2Vjb25kIGFyZ3VtZW50CQkJXG5cCi0JbW92 bAktOCglZWF4KSwlZWF4CSMgV2hlcmUgaGFuZGxlIGxpdmVzCQkJXG5cCi0JbW92bAk0KCVlYXgp LCVlYXgJIyBBZGRyZXNzIG9mIEhhbmRsZSB0byBETEwJCVxuXAotCXB1c2hsCSVlYXgJCSMgSGFu ZGxlIHRvIERMTAkJCQlcblwKLQljYWxsCV9HZXRQcm9jQWRkcmVzc0A4IyBMb2FkIGl0CQkJCVxu XAotCXRlc3QJJWVheCwlZWF4CSMgU3VjY2Vzcz8JCQkJXG5cCi0Jam5lCWdvdGl0CQkjIFllcwkJ CQkJXG5cCi0Jam1wCW5vbG9hZAkJIyBJc3N1ZSBhbiBlcnJvciBvciByZXR1cm4JCVxuXAotZ290 aXQ6CQkJCQkJCQkJXG5cCi0JcG9wbAklZWR4CQkjIFBvaW50ZXIgdG8gJ3JldHVybiBhZGRyZXNz JwkJXG5cCi0Jc3VibAklZWR4LCVlYXgJIyBNYWtlIGl0IHJlbGF0aXZlCQkJXG5cCi0JYWRkbAkk NywlZWF4CQkjIFR3ZWFrCQkJCQlcblwKLQlzdWJsCSQxMiwlZWR4CSMgUG9pbnQgdG8gam1wCQkJ CVxuXAotCW1vdmwJJWVheCwxKCVlZHgpCSMgTW92ZSByZWxhdGl2ZSBhZGRyZXNzIGFmdGVyIGp1 bXAJXG5cCi0Jam1wCSolZWR4CQkjIEp1bXAgdG8gYWN0dWFsIGZ1bmN0aW9uCQlcblwKLQkJCQkJ CQkJCVxuXAotCS5nbG9iYWwJZGxsX2NoYWluCQkJCQkJXG5cCi1kbGxfY2hhaW46CQkJCQkJCQlc blwKLQlwdXNobAklZWF4CQkjIFJlc3RvcmUgJ3JldHVybiBhZGRyZXNzJwkJXG5cCi0Jam1wCSol ZWR4CQkjIEp1bXAgdG8gbmV4dCBpbml0IGZ1bmN0aW9uCQlcblwKLSIpOwotI2VuZGlmCiAKIC8q IEMgcmVwcmVzZW50YXRpb25zIG9mIHRoZSB0d28gaW5mbyBibG9ja3MgZGVzY3JpYmVkIGFib3Zl LgogICAgRklYTUU6IFRoZXNlIHN0cnVjdHVyZXMgY29uZnVzZSBnZGIgZm9yIHNvbWUgcmVhc29u LiAgR0RCIGNhbiBwcmludApAQCAtMzExLDE4ICsyMTIsMTIgQEAgc3RydWN0IGZ1bmNfaW5mbwog ewogICBzdHJ1Y3QgZGxsX2luZm8gKmRsbDsKICAgTE9ORyBkZWNvcmF0aW9uOwotI2lmZGVmIF9f eDg2XzY0X18KICAgVUlOVF9QVFIgZnVuY19hZGRyOwotI2VuZGlmCiAgIGNoYXIgbmFtZVtdOwog fTsKIAogLyogTWVjaGFuaXNtIGZvciBzZXR0aW5nIHVwIGluZm8gZm9yIHBhc3NpbmcgdG8gZGxs X2NoYWluIHJvdXRpbmVzLiAqLwotI2lmZGVmIF9feDg2XzY0X18KIHR5cGVkZWYgX191aW50MTI4 X3QgdHdvX2FkZHJfdDsKLSNlbHNlCi10eXBlZGVmIF9fdWludDY0X3QgdHdvX2FkZHJfdDsKLSNl bmRpZgogdW5pb24gcmV0Y2hhaW4KIHsKICAgc3RydWN0IHt1aW50cHRyX3QgaGlnaDsgdWludHB0 cl90IGxvdzt9OwpAQCAtMzU0LDcgKzI0OSw2IEBAIGRsbF9sb2FkIChIQU5ETEUmIGhhbmRsZSwg UFdDSEFSIG5hbWUpCiAjZGVmaW5lIFJFVFJZX0NPVU5UIDEwCiAKIC8qIFRoZSBzdGFuZGFyZCBE TEwgaW5pdGlhbGl6YXRpb24gcm91dGluZS4gKi8KLSNpZmRlZiBfX3g4Nl82NF9fCiAKIC8qIE9u IHg4Nl82NCwgd2UgbmVlZCBhc3NlbWJsZXIgd3JhcHBlcnMgZm9yIHN0ZF9kbGxfaW5pdCBhbmQg d3NvY2tfaW5pdC4KICAgIEluIHRoZSB4ODZfNjQgQUJJIGl0J3Mgbm8gc2FmZSBiZXQgdGhhdCBm cmFtZVsxXSAoYWthIDgoJXJicCkpIGNvbnRhaW5zCkBAIC0zOTYsMTQgKzI5MCw3IEBAIElOSVRf V1JBUFBFUiAoc3RkX2RsbF9pbml0KQogCiBfX2F0dHJpYnV0ZV9fICgodXNlZCwgbm9pbmxpbmUp KSBzdGF0aWMgdHdvX2FkZHJfdAogc3RkX2RsbF9pbml0IChzdHJ1Y3QgZnVuY19pbmZvICpmdW5j KQotI2Vsc2UKLV9fYXR0cmlidXRlX18gKCh1c2VkLCBub2lubGluZSkpIHN0YXRpYyB0d29fYWRk cl90Ci1zdGRfZGxsX2luaXQgKCkKLSNlbmRpZgogewotI2lmZGVmIF9faTM4Nl9fCi0gIHN0cnVj dCBmdW5jX2luZm8gKmZ1bmMgPSAoc3RydWN0IGZ1bmNfaW5mbyAqKSBfX2J1aWx0aW5fcmV0dXJu X2FkZHJlc3MgKDApOwotI2VuZGlmCiAgIHN0cnVjdCBkbGxfaW5mbyAqZGxsID0gZnVuYy0+ZGxs OwogICByZXRjaGFpbiByZXQ7CiAKQEAgLTQ1MiwzNyArMzM5LDIyIEBAIHN0ZF9kbGxfaW5pdCAo KQogICByZXQuaGlnaCA9ICh1aW50cHRyX3QpIGZ1bmM7CiAKICAgSW50ZXJsb2NrZWREZWNyZW1l bnQgKCZkbGwtPmhlcmUpOwotCi0jaWZkZWYgX19pMzg2X18KLSAgLyogS2x1ZGdlIGFsZXJ0LiAg UmVkaXJlY3RzIHRoZSByZXR1cm4gYWRkcmVzcyB0byBkbGxfY2hhaW4uICovCi0gIHVpbnRwdHJf dCAqdm9sYXRpbGUgZnJhbWUgPSAodWludHB0cl90ICopIF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNz ICgwKTsKLSAgZnJhbWVbMV0gPSAodWludHB0cl90KSBkbGxfY2hhaW47Ci0jZW5kaWYKLQogICBy ZXR1cm4gcmV0LmxsOwogfQogCiAvKiBJbml0aWFsaXphdGlvbiBmdW5jdGlvbiBmb3Igd2luc29j ayBzdHVmZi4gKi8KIAotI2lmZGVmIF9feDg2XzY0X18KIC8qIFNlZSBhYm92ZSBjb21tZW50IHBy ZWNlZWRpbmcgc3RkX2RsbF9pbml0LiAqLwogSU5JVF9XUkFQUEVSICh3c29ja19pbml0KQogCiBf X2F0dHJpYnV0ZV9fICgodXNlZCwgbm9pbmxpbmUpKSBzdGF0aWMgdHdvX2FkZHJfdAogd3NvY2tf aW5pdCAoc3RydWN0IGZ1bmNfaW5mbyAqZnVuYykKLSNlbHNlCi1fX2F0dHJpYnV0ZV9fICgodXNl ZCwgbm9pbmxpbmUpKSBzdGF0aWMgdHdvX2FkZHJfdAotd3NvY2tfaW5pdCAoKQotI2VuZGlmCiB7 CiAgIC8qIENWIDIwMTYtMDMtMDk6IE1vdmVkIHdzYWRhdGEgaW50byB3c29ja19pbml0IHRvIHdv cmthcm91bmQgYSBwcm9ibGVtCiAgICAgIHdpdGggdGhlIE5PX0NPUFkgZGVmaW5pdGlvbiBvZiB3 c2FkYXRhIGFuZCBoZXJlIHN0YXJ0aW5nIHdpdGggZ2NjLTUuMy4wLgogICAgICBTZWUgdGhlIGdp dCBsb2cgZm9yIGEgZGVzY3JpcHRpb24uICovCiAgIHN0YXRpYyBXU0FEQVRBIE5PX0NPUFkgd3Nh ZGF0YTsKICAgc3RhdGljIExPTkcgTk9fQ09QWSBoZXJlID0gLTFMOwotI2lmZGVmIF9faTM4Nl9f Ci0gIHN0cnVjdCBmdW5jX2luZm8gKmZ1bmMgPSAoc3RydWN0IGZ1bmNfaW5mbyAqKSBfX2J1aWx0 aW5fcmV0dXJuX2FkZHJlc3MgKDApOwotI2VuZGlmCiAgIHN0cnVjdCBkbGxfaW5mbyAqZGxsID0g ZnVuYy0+ZGxsOwogCiAgIHdoaWxlIChJbnRlcmxvY2tlZEluY3JlbWVudCAoJmhlcmUpKQpAQCAt NTEzLDE1ICszODUsNyBAQCB3c29ja19pbml0ICgpCiAJICB3c29ja19zdGFydGVkID0gMTsKIAl9 CiAgICAgfQotCi0jaWZkZWYgX19pMzg2X18KLSAgLyogS2x1ZGdlIGFsZXJ0LiAgUmVkaXJlY3Rz IHRoZSByZXR1cm4gYWRkcmVzcyB0byBkbGxfY2hhaW4uICovCi0gIHVpbnRwdHJfdCAqdm9sYXRp bGUgZnJhbWUgPSAodWludHB0cl90ICopIF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzICgwKTsKLSAg ZnJhbWVbMV0gPSAodWludHB0cl90KSBkbGxfY2hhaW47Ci0jZW5kaWYKLQogICBJbnRlcmxvY2tl ZERlY3JlbWVudCAoJmhlcmUpOwotCiAgIHZvbGF0aWxlIHJldGNoYWluIHJldDsKICAgLyogU2V0 ICJhcmd1bWVudHMgZm9yIGRsbF9jaGFpbi4gKi8KICAgcmV0LmxvdyA9ICh1aW50cHRyX3QpIGRs bF9mdW5jX2xvYWQ7CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2NoaWxkX2luZm8uaCBiL3dp bnN1cC9jeWd3aW4vY2hpbGRfaW5mby5oCmluZGV4IDhhOGNhMjU2My4uNDUzMzM5MzE3IDEwMDY0 NAotLS0gYS93aW5zdXAvY3lnd2luL2NoaWxkX2luZm8uaAorKysgYi93aW5zdXAvY3lnd2luL2No aWxkX2luZm8uaApAQCAtMjgsMTEgKzI4LDcgQEAgZW51bSBjaGlsZF9zdGF0dXMKICNkZWZpbmUg T1BST0NfTUFHSUNfTUFTSyAweGZmMDBmZjAwCiAjZGVmaW5lIE9QUk9DX01BR0lDX0dFTkVSSUMg MHhhZjAwZjAwMAogCi0jaWZkZWYgX194ODZfNjRfXwogI2RlZmluZSBQUk9DX01BR0lDX0dFTkVS SUMgMHhhZjAwZmE2NAotI2Vsc2UgLyoheDg2XzY0Ki8KLSNkZWZpbmUgUFJPQ19NQUdJQ19HRU5F UklDIDB4YWYwMGZhMzIKLSNlbmRpZgogCiAjZGVmaW5lIEVYRUNfTUFHSUNfU0laRSBzaXplb2Yo Y2hpbGRfaW5mbykKIApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9jcHVpZC5oIGIvd2luc3Vw L2N5Z3dpbi9jcHVpZC5oCmluZGV4IDE4ZDkyMDk1NS4uYmQ5MDM3MzNkIDEwMDY0NAotLS0gYS93 aW5zdXAvY3lnd2luL2NwdWlkLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9jcHVpZC5oCkBAIC0xOCw3 ICsxOCw2IEBAIGNwdWlkICh1aW50MzJfdCAqYSwgdWludDMyX3QgKmIsIHVpbnQzMl90ICpjLCB1 aW50MzJfdCAqZCwgdWludDMyX3QgYWluLAogCQk6ICJhIiAoYWluKSwgImMiIChjaW4pKTsKIH0K IAotI2lmZGVmIF9feDg2XzY0X18KIHN0YXRpYyBpbmxpbmUgYm9vbCBfX2F0dHJpYnV0ZSAoKGFs d2F5c19pbmxpbmUpKQogY2FuX3NldF9mbGFnICh1aW50MzJfdCBsb25nIGZsYWcpCiB7CkBAIC0z OSwyNyArMzgsNSBAQCBjYW5fc2V0X2ZsYWcgKHVpbnQzMl90IGxvbmcgZmxhZykKICAgKTsKICAg cmV0dXJuICgocjEgXiByMikgJiBmbGFnKSAhPSAwOwogfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUg Ym9vbCBfX2F0dHJpYnV0ZSAoKGFsd2F5c19pbmxpbmUpKQotY2FuX3NldF9mbGFnICh1aW50MzJf dCBmbGFnKQotewotICB1aW50MzJfdCByMSwgcjI7Ci0KLSAgYXNtIHZvbGF0aWxlICgicHVzaGZs XG4iCi0JCSJwb3BsICUwXG4iCi0JCSJtb3ZsICUwLCAlMVxuIgotCQkieG9ybCAlMiwgJTBcbiIK LQkJInB1c2hsICUwXG4iCi0JCSJwb3BmbFxuIgotCQkicHVzaGZsXG4iCi0JCSJwb3BsICUwXG4i Ci0JCSJwdXNobCAlMVxuIgotCQkicG9wZmxcbiIKLQkJOiAiPSZyIiAocjEpLCAiPSZyIiAocjIp Ci0JCTogImlyIiAoZmxhZykKLSAgKTsKLSAgcmV0dXJuICgocjEgXiByMikgJiBmbGFnKSAhPSAw OwotfQotI2VuZGlmCiAKICNlbmRpZiAvLyAhQ1BVSURfSApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5 Z3dpbi9jeWdoZWFwLmNjIGIvd2luc3VwL2N5Z3dpbi9jeWdoZWFwLmNjCmluZGV4IDQ2NWE5YmNk ZC4uNmU5YjM5M2Y5IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2N5Z2hlYXAuY2MKKysrIGIv d2luc3VwL2N5Z3dpbi9jeWdoZWFwLmNjCkBAIC0yNTIsMTEgKzI1Miw3IEBAIGN5Z2hlYXBfaW5p dCAoKQogCSBUaGUgaWRlYSBpcyB0byBoYXZlIGJldHRlciBtYXRjaGluZyBidWNrZXQgc2l6ZXMg KG5vdCB3YXN0aW5nCiAJIHNwYWNlKSB3aXRob3V0IHRyYWRpbmcgaW4gcGVyZm9ybWFuY2UgY29t cGFyZWQgdG8gdGhlIG9sZCBwb3dlcnMKIAkgb2YgMiBtZXRob2QuICovCi0jaWZkZWYgX194ODZf NjRfXwogICAgICAgdW5zaWduZWQgc3pbMl0gPSB7IDE2LCAyNCB9OwkvKiBzaXplb2YgY3lnaGVh cF9lbnRyeSA9PSAxNiAqLwotI2Vsc2UKLSAgICAgIHVuc2lnbmVkIHN6WzJdID0geyA4LCAxMiB9 OwkvKiBzaXplb2YgY3lnaGVhcF9lbnRyeSA9PSA4ICovCi0jZW5kaWYKICAgICAgIGZvciAodW5z aWduZWQgYiA9IDE7IGIgPCBOQlVDS0VUUzsgYisrLCBzeltiICYgMV0gPDw9IDEpCiAJY3lnaGVh cC0+YnVja2V0X3ZhbFtiXSA9IHN6W2IgJiAxXTsKICAgICAgIC8qIERlZmF1bHQgbG9jYWxlIHNl dHRpbmdzLiAqLwpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9jeWdtYWxsb2MuaCBiL3dpbnN1 cC9jeWd3aW4vY3lnbWFsbG9jLmgKaW5kZXggOTA5NWY5YjRhLi43M2EyZjA2MGIgMTAwNjQ0Ci0t LSBhL3dpbnN1cC9jeWd3aW4vY3lnbWFsbG9jLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9jeWdtYWxs b2MuaApAQCAtMjEsOSArMjEsNyBAQCBpbnQgZGxtYWxsb2NfdHJpbSAoc2l6ZV90KTsKIGludCBk bG1hbGxvcHQgKGludCBwLCBpbnQgdik7CiB2b2lkIGRsbWFsbG9jX3N0YXRzICgpOwogCi0jaWZk ZWYgX194ODZfNjRfXwogI2RlZmluZSBNQUxMT0NfQUxJR05NRU5UICgoc2l6ZV90KTE2VSkKLSNl bmRpZgogCiAjaWYgZGVmaW5lZCAoRExNQUxMT0NfVkVSU0lPTikJLyogQnVpbGRpbmcgbWFsbG9j LmNjICovCiAKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vY3lndGxzLmNjIGIvd2luc3VwL2N5 Z3dpbi9jeWd0bHMuY2MKaW5kZXggYzBlZTY0NWUwLi44NjYzNDI2MTMgMTAwNjQ0Ci0tLSBhL3dp bnN1cC9jeWd3aW4vY3lndGxzLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vY3lndGxzLmNjCkBAIC0x NDcsMTEgKzE0Nyw5IEBAIF9jeWd0bHM6OmNsZWFudXBfZWFybHkgKHN0cnVjdCBfcmVlbnQgKikK ICAgLyogRG8gbm90aGluZyAqLwogfQogCi0jaWZkZWYgX194ODZfNjRfXwogdm9pZCBzYW46Omxl YXZlICgpCiB7CiAgIC8qIFJlc3RvcmUgdGxzX3BhdGhidWYgY291bnRlcnMgaW4gY2FzZSBvZiBl cnJvci4gKi8KICAgX215X3Rscy5sb2NhbHMucGF0aGJ1ZnMuX2NvdW50ZXJzID0gX2NudDsKICAg X215X3Rscy5hbmRyZWFzID0gX2NsZW1lbnRlOwogfQotI2VuZGlmCmRpZmYgLS1naXQgYS93aW5z dXAvY3lnd2luL2N5Z3Rscy5oIGIvd2luc3VwL2N5Z3dpbi9jeWd0bHMuaAppbmRleCBkMjIzMGE0 OTMuLmIyNjU5NzhmMCAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9jeWd0bHMuaAorKysgYi93 aW5zdXAvY3lnd2luL2N5Z3Rscy5oCkBAIC0zNywxMSArMzcsNyBAQCBkZXRhaWxzLiAqLwogI2lu Y2x1ZGUgInRocmVhZC5oIgogI2VuZGlmCiAKLSNpZmRlZiBfX3g4Nl82NF9fCiAjcHJhZ21hIHBh Y2socHVzaCw4KQotI2Vsc2UKLSNwcmFnbWEgcGFjayhwdXNoLDQpCi0jZW5kaWYKIAogLyogRGVm aW5lZCBoZXJlIHRvIHN1cHBvcnQgYXV0byByZWJ1aWxkIG9mIHRsc29mZnNldHMuaC4gKi8KIGNs YXNzIHRsc19wYXRoYnVmCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2RjcnQwLmNjIGIvd2lu c3VwL2N5Z3dpbi9kY3J0MC5jYwppbmRleCBiODQ2Y2M1YmIuLjljYzQzNmNkYSAxMDA2NDQKLS0t IGEvd2luc3VwL2N5Z3dpbi9kY3J0MC5jYworKysgYi93aW5zdXAvY3lnd2luL2RjcnQwLmNjCkBA IC0zOTAsMTQgKzM5MCw2IEBAIGNoZWNrX3Nhbml0eV9hbmRfc3luYyAocGVyX3Byb2Nlc3MgKnAp CiAgIGlmIChwLT5hcGlfbWFqb3IgPiBjeWd3aW5fdmVyc2lvbi5hcGlfbWFqb3IpCiAgICAgYXBp X2ZhdGFsICgiY3lnd2luIERMTCBhbmQgQVBQIGFyZSBvdXQgb2Ygc3luYyAtLSBBUEkgdmVyc2lv biBtaXNtYXRjaCAldSA+ICV1IiwKIAkgICAgICAgcC0+YXBpX21ham9yLCBjeWd3aW5fdmVyc2lv bi5hcGlfbWFqb3IpOwotCi0jaWZkZWYgX19pMzg2X18KLSAgLyogVGhpcyBpcyBhIGtsdWRnZSB0 byB3b3JrIGFyb3VuZCBhIHZlcnNpb24gb2YgX2N5Z3dpbl9jb21tb25fY3J0MAotICAgICB3aGlj aCBvdmVyd3JvdGUgdGhlIGN4eF9tYWxsb2MgZmllbGQgd2l0aCB0aGUgbG9jYWwgRExMIGNvcHku Ci0gICAgIEhpbGFyaXR5IGVuc3VlcyBpZiB0aGUgRExMIGlzIG5vdCBsb2FkZWQgd2hpbGUgdGhl IHByb2Nlc3MKLSAgICAgaXMgZm9ya2luZy4gKi8KLSAgX19jeWd3aW5fdXNlcl9kYXRhLmN4eF9t YWxsb2MgPSAmZGVmYXVsdF9jeWd3aW5fY3h4X21hbGxvYzsKLSNlbmRpZgogfQogCiBjaGlsZF9p bmZvIE5PX0NPUFkgKmNoaWxkX3Byb2NfaW5mbzsKQEAgLTU4MSwxNyArNTczLDEwIEBAIGdldF9j eWd3aW5fc3RhcnR1cF9pbmZvICgpCiAgIHJldHVybiByZXM7CiB9CiAKLSNpZmRlZiBfX3g4Nl82 NF9fCiAjZGVmaW5lIGRsbF9kYXRhX3N0YXJ0ICZfX2RhdGFfc3RhcnRfXwogI2RlZmluZSBkbGxf ZGF0YV9lbmQgJl9fZGF0YV9lbmRfXwogI2RlZmluZSBkbGxfYnNzX3N0YXJ0ICZfX2Jzc19zdGFy dF9fCiAjZGVmaW5lIGRsbF9ic3NfZW5kICZfX2Jzc19lbmRfXwotI2Vsc2UKLSNkZWZpbmUgZGxs X2RhdGFfc3RhcnQgJl9kYXRhX3N0YXJ0X18KLSNkZWZpbmUgZGxsX2RhdGFfZW5kICZfZGF0YV9l bmRfXwotI2RlZmluZSBkbGxfYnNzX3N0YXJ0ICZfYnNzX3N0YXJ0X18KLSNkZWZpbmUgZGxsX2Jz c19lbmQgJl9ic3NfZW5kX18KLSNlbmRpZgogCiB2b2lkCiBjaGlsZF9pbmZvX2Zvcms6OmhhbmRs ZV9mb3JrICgpCkBAIC03OTEsMTAgKzc3Niw4IEBAIGRsbF9jcnQwXzAgKCkKICAgaWYgKCFkeW5h bWljYWxseV9sb2FkZWQpCiAgICAgc2lncHJvY19pbml0ICgpOwogCi0jaWZkZWYgX194ODZfNjRf XwogICAvKiBTZWUgY29tbWVudCBwcmVjZWVkaW5nIG15ZmF1bHRfYWx0c3RhY2tfaGFuZGxlciBp biBleGNlcHRpb24uY2MuICovCiAgIEFkZFZlY3RvcmVkQ29udGludWVIYW5kbGVyICgwLCBteWZh dWx0X2FsdHN0YWNrX2hhbmRsZXIpOwotI2VuZGlmCiAKICAgZGVidWdfcHJpbnRmICgiZmluaXNo ZWQgZGxsX2NydDBfMCBpbml0aWFsaXphdGlvbiIpOwogfQpAQCAtMTIyMSw3ICsxMjA0LDYgQEAg Y3lnd2luX2F0ZXhpdCAodm9pZCAoKmZuKSAodm9pZCkpCiAgIGludCByZXM7CiAKICAgZGxsICpk ID0gZGxscy5maW5kICgodm9pZCAqKSBfbXlfdGxzLnJldGFkZHIgKCkpOwotI2lmZGVmIF9feDg2 XzY0X18KICAgLyogeDg2XzY0IERMTHMgY3JlYXRlZCB3aXRoIEdDQyA0LjguMy0zIHJlZ2lzdGVy IF9fZ2NjX2RlcmVnaXN0ZXJfZnJhbWUKICAgICAgYXMgYXRleGl0IGZ1bmN0aW9uIHVzaW5nIGEg Y2FsbCB0byBhdGV4aXQsIHJhdGhlciB0aGFuIF9fY3hhX2F0ZXhpdC4KICAgICAgRHVlIHRvIEdD QydzIHRhaWwgY2FsbCBvcHRpbWl6aW5nLCBjeWd3aW5fYXRleGl0IGRvZXNuJ3QgZ2V0IHRoZSBj b3JyZWN0CkBAIC0xMjQzLDcgKzEyMjUsNiBAQCBjeWd3aW5fYXRleGl0ICh2b2lkICgqZm4pICh2 b2lkKSkKICAgICAgdXNlIHRoZSBzdGF0aWNhbGx5IGxpbmtlZCBhdGV4aXQgZnVuY3Rpb24gdGhv dWdoLCBhcyBvdXRsaW5lZCBhYm92ZS4gKi8KICAgaWYgKCFkKQogICAgIGQgPSBkbGxzLmZpbmQg KCh2b2lkICopIGZuKTsKLSNlbmRpZgogICByZXMgPSBkID8gX19jeGFfYXRleGl0ICgodm9pZCAo KikgKHZvaWQgKikpIGZuLCBOVUxMLCBkLT5oYW5kbGUpIDogYXRleGl0IChmbik7CiAgIHJldHVy biByZXM7CiB9CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2RsZmNuLmNjIGIvd2luc3VwL2N5 Z3dpbi9kbGZjbi5jYwppbmRleCA5YTc0NzI4NTAuLmZiNzA1MjQ3MyAxMDA2NDQKLS0tIGEvd2lu c3VwL2N5Z3dpbi9kbGZjbi5jYworKysgYi93aW5zdXAvY3lnd2luL2RsZmNuLmNjCkBAIC0yNzIs MjQgKzI3Miw2IEBAIGRsb3BlbiAoY29uc3QgY2hhciAqbmFtZSwgaW50IGZsYWdzKQogCSAgICBi cmVhazsKIAl9CiAKLSNpZmRlZiBfX2kzODZfXwotICAgICAgLyogV29ya2Fyb3VuZCBmb3IgYnJv a2VuIERMTHMgYnVpbHQgYWdhaW5zdCBDeWd3aW4gdmVyc2lvbnMgMS43LjAtNDkKLQkgdXAgdG8g MS43LjAtNTcuICBUaGV5IG92ZXJyaWRlIHRoZSBjeHhfbWFsbG9jIHBvaW50ZXIgaW4gdGhlaXIK LQkgRExMIGluaXRpYWxpemF0aW9uIGNvZGUgZXZlbiBpZiBsb2FkZWQgZHluYW1pY2FsbHkuICBU aGlzIGlzIGEKLQkgbm8tbm8gc2luY2UgYSBsYXRlciBkbGNsb3NlIGxldHMgY3h4X21hbGxvYyBw b2ludCBpbnRvIG5pcnZhbmEuCi0JIFRoZSBiZWxvdyBrbHVkZ2UgImZpeGVzIiB0aGF0IGJ5IHJl dmVydGluZyB0aGUgb3JpZ2luYWwgY3h4X21hbGxvYwotCSBwb2ludGVyIGFmdGVyIExvYWRMaWJy YXJ5LiAgVGhpcyBpbXBsaWVzIHRoYXQgdGhlaXIgb3ZlcnJpZGVzCi0JIHdvbid0IGJlIGFwcGxp ZWQ7IHRoYXQncyBPSy4gIEFsbCBvdmVycmlkZXMgc2hvdWxkIGJlIHByZXNlbnQgYXQKLQkgZmlu YWwgbGluayB0aW1lLCBhcyBXaW5kb3dzIGRvZXNuJ3QgYWxsb3cgdW5kZWZpbmVkIHJlZmVyZW5j ZXM7Ci0JIGl0IHdvdWxkIGFjdHVhbGx5IGJlIHdyb25nIGZvciBhIGRsb3BlbidkIERMTCB0byBv cHBvcnR1bmlzdGljYWxseQotCSBvdmVycmlkZSBmdW5jdGlvbnMgaW4gYSB3YXkgdGhhdCB3YXNu J3Qga25vd24gdGhlbi4gIFdlJ3JlIG5vdAotCSBnb2luZyB0byB0cnkgYW5kIHJlcHJvZHVjZSB0 aGUgZnVsbCBFTEYgZHluYW1pYyBsb2FkZXIgaGVyZSEgICovCi0KLSAgICAgIC8qIFN0b3JlIG9y aWdpbmFsIGN4eF9tYWxsb2MgcG9pbnRlci4gKi8KLSAgICAgIHN0cnVjdCBwZXJfcHJvY2Vzc19j eHhfbWFsbG9jICp0bXBfbWFsbG9jOwotICAgICAgdG1wX21hbGxvYyA9IF9fY3lnd2luX3VzZXJf ZGF0YS5jeHhfbWFsbG9jOwotI2VuZGlmCi0KICAgICAgIHJldCA9ICh2b2lkICopIExvYWRMaWJy YXJ5VyAod3BhdGgpOwogICAgICAgLyogcmVmZXJlbmNlIGNvdW50aW5nICovCiAgICAgICBpZiAo cmV0KQpAQCAtMjk5LDExICsyODEsNiBAQCBkbG9wZW4gKGNvbnN0IGNoYXIgKm5hbWUsIGludCBm bGFncykKIAkgICAgKytkLT5jb3VudDsKIAl9CiAKLSNpZmRlZiBfX2kzODZfXwotICAgICAgLyog UmVzdG9yZSBvcmlnaW5hbCBjeHhfbWFsbG9jIHBvaW50ZXIuICovCi0gICAgICBfX2N5Z3dpbl91 c2VyX2RhdGEuY3h4X21hbGxvYyA9IHRtcF9tYWxsb2M7Ci0jZW5kaWYKLQogICAgICAgaWYgKHJl dCAmJiBnbWhlZmxhZ3MpCiAJR2V0TW9kdWxlSGFuZGxlRXhXIChnbWhlZmxhZ3MsIHdwYXRoLCAo SE1PRFVMRSAqKSAmcmV0KTsKIApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9kbGxfaW5pdC5j YyBiL3dpbnN1cC9jeWd3aW4vZGxsX2luaXQuY2MKaW5kZXggMjRlM2I4NzY0Li42NDlhZjExNTMg MTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vZGxsX2luaXQuY2MKKysrIGIvd2luc3VwL2N5Z3dp bi9kbGxfaW5pdC5jYwpAQCAtODczLDE3ICs4NzMsNiBAQCBkbGxfZGxsY3J0MF8xIChWT0lEICp4 KQogICAgIHJlcyA9IChQVk9JRCkgZDsKIH0KIAotI2lmZGVmIF9faTM4Nl9fCi0vKiBPQlNPTEVU RTogVGhpcyBmdW5jdGlvbiBpcyBvYnNvbGV0ZSBhbmQgd2lsbCBnbyBhd2F5IGluIHRoZQotICAg ZnV0dXJlLiAgQ3lnd2luIGNhbiBub3cgaGFuZGxlIGJlaW5nIGxvYWRlZCBmcm9tIGEgbm9uY3ln d2luIGFwcAotICAgdXNpbmcgdGhlIHNhbWUgZW50cnkgcG9pbnQuICovCi1leHRlcm4gIkMiIGlu dAotZGxsX25vbmN5Z3dpbl9kbGxjcnQwIChITU9EVUxFIGgsIHBlcl9wcm9jZXNzICpwKQotewot ICByZXR1cm4gKGludCkgZGxsX2RsbGNydDAgKGgsIHApOwotfQotI2VuZGlmIC8qIF9faTM4Nl9f ICovCi0KIGV4dGVybiAiQyIgdm9pZAogY3lnd2luX2RldGFjaF9kbGwgKGRsbCAqKQogewpkaWZm IC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9leHRlcm5hbC5jYyBiL3dpbnN1cC9jeWd3aW4vZXh0ZXJu YWwuY2MKaW5kZXggZjY1YWMyNjUwLi5hOWE1YjY0MzIgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3 aW4vZXh0ZXJuYWwuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9leHRlcm5hbC5jYwpAQCAtMjQ2LDEz ICsyNDYsNiBAQCBjeWd3aW5faW50ZXJuYWwgKGN5Z3dpbl9nZXRpbmZvX3R5cGVzIHQsIC4uLikK IAlicmVhazsKIAogICAgICAgY2FzZSBDV19VU0VSX0RBVEE6Ci0jaWZkZWYgX19pMzg2X18KLQkv KiBUaGlzIGlzIGEga2x1ZGdlIHRvIHdvcmsgYXJvdW5kIGEgdmVyc2lvbiBvZiBfY3lnd2luX2Nv bW1vbl9jcnQwCi0JICAgd2hpY2ggb3Zlcndyb3RlIHRoZSBjeHhfbWFsbG9jIGZpZWxkIHdpdGgg dGhlIGxvY2FsIERMTCBjb3B5LgotCSAgIEhpbGFyaXR5IGVuc3VlcyBpZiB0aGUgRExMIGlzIG5v dCBsb2FkZWQgbGlrZSB3aGlsZSB0aGUgcHJvY2VzcwotCSAgIGlzIGZvcmtpbmcuICovCi0JX19j eWd3aW5fdXNlcl9kYXRhLmN4eF9tYWxsb2MgPSAmZGVmYXVsdF9jeWd3aW5fY3h4X21hbGxvYzsK LSNlbmRpZgogCXJlcyA9ICh1aW50cHRyX3QpICZfX2N5Z3dpbl91c2VyX2RhdGE7CiAJYnJlYWs7 CiAKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcHJvYy5jYyBiL3dpbnN1cC9j eWd3aW4vZmhhbmRsZXJfcHJvYy5jYwppbmRleCBiNzlmMzE5MjIuLjI0MDY3ZjY4NyAxMDA2NDQK LS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9wcm9jLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4v ZmhhbmRsZXJfcHJvYy5jYwpAQCAtMTEwNCw5ICsxMTA0LDcgQEAgZm9ybWF0X3Byb2NfY3B1aW5m byAodm9pZCAqLCBjaGFyIComZGVzdGJ1ZikKIAkgIGZ0Y3ByaW50IChmZWF0dXJlczIsIDEyLCAi YWNjX3Bvd2VyIik7IC8qIGFjY3VtIHBvd2VyICovCiAJfQogCi0jaWYgX194ODZfNjRfXwogICAg ICAgZnR1cHJpbnQgKCJub3BsIik7CS8qIE5PUEwgKDBGIDFGKSBpbnN0cnVjdGlvbnMgKi8KLSNl bmRpZgogCiAvKiBjcHVpZCAweDAwMDAwMDBiIGVjeFs4OjE1XSB0eXBlICovCiAjZGVmaW5lIEJB RF9UWVBFICAgIDAKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcHJvY25ldC5j YyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcHJvY25ldC5jYwppbmRleCA5MzczNTNiZGUuLmQ1 MTI4ODdkNSAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9wcm9jbmV0LmNjCisr KyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcHJvY25ldC5jYwpAQCAtOSwxMyArOSwxMSBAQCBk ZXRhaWxzLiAqLwogI2RlZmluZSAgX19JTlNJREVfQ1lHV0lOX05FVF9fCiAjZGVmaW5lIFVTRV9T WVNfVFlQRVNfRkRfU0VUCiAjaW5jbHVkZSAid2luc3VwLmgiCi0jaWZkZWYgX194ODZfNjRfXwog LyogMjAxNC0wNC0yNDogQ3VycmVudCBNaW5ndyBoZWFkZXJzIGRlZmluZSBzb2NrYWRkcl9pbjYg dXNpbmcgdV9sb25nICg4IGJ5dGUpCiAgICBiZWNhdXNlIGEgcmVkZWZpbml0aW9uIGZvciBMUDY0 IHN5c3RlbXMgaXMgbWlzc2luZy4gIFRoaXMgbGVhZHMgdG8gYSB3cm9uZwogICAgZGVmaW5pdGlv biBhbmQgc2l6ZSBvZiBzb2NrYWRkcl9pbjYgd2hlbiBidWlsZGluZyB3aXRoIHdpbnNvY2sgaGVh ZGVycy4gKi8KICN1bmRlZiB1X2xvbmcKICNkZWZpbmUgdV9sb25nIF9fbXNfdV9sb25nCi0jZW5k aWYKICNpbmNsdWRlIDx3MzJhcGkvd3MydGNwaXAuaD4KICNpbmNsdWRlIDx3MzJhcGkvaXBobHBh cGkuaD4KICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CmRpZmYgLS1naXQgYS93aW5zdXAvY3ln d2luL2ZoYW5kbGVyX3NvY2tldF9pbmV0LmNjIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9zb2Nr ZXRfaW5ldC5jYwppbmRleCA2MzM5MDUyZmIuLjJmZmU0OTE3ZiAxMDA2NDQKLS0tIGEvd2luc3Vw L2N5Z3dpbi9maGFuZGxlcl9zb2NrZXRfaW5ldC5jYworKysgYi93aW5zdXAvY3lnd2luL2ZoYW5k bGVyX3NvY2tldF9pbmV0LmNjCkBAIC0xMiw3ICsxMiw2IEBACiAjZGVmaW5lIFVTRV9TWVNfVFlQ RVNfRkRfU0VUCiAKICNpbmNsdWRlICJ3aW5zdXAuaCIKLSNpZmRlZiBfX3g4Nl82NF9fCiAvKiAy MDE0LTA0LTI0OiBDdXJyZW50IE1pbmd3IGhlYWRlcnMgZGVmaW5lIHNvY2thZGRyX2luNiB1c2lu ZyB1X2xvbmcgKDggYnl0ZSkKICAgIGJlY2F1c2UgYSByZWRlZmluaXRpb24gZm9yIExQNjQgc3lz dGVtcyBpcyBtaXNzaW5nLiAgVGhpcyBsZWFkcyB0byBhIHdyb25nCiAgICBkZWZpbml0aW9uIGFu ZCBzaXplIG9mIHNvY2thZGRyX2luNiB3aGVuIGJ1aWxkaW5nIHdpdGggd2luc29jayBoZWFkZXJz LgpAQCAtMjAsNyArMTksNiBAQAogICAgZnVuY3Rpb24gY2FsbHMuICovCiAjdW5kZWYgdV9sb25n CiAjZGVmaW5lIHVfbG9uZyBfX21zX3VfbG9uZwotI2VuZGlmCiAjaW5jbHVkZSA8dzMyYXBpL3dz MnRjcGlwLmg+CiAjaW5jbHVkZSA8dzMyYXBpL21zd3NvY2suaD4KICNpbmNsdWRlIDx3MzJhcGkv bXN0Y3BpcC5oPgpAQCAtNjk2LDEzICs2OTQsOCBAQCBmaGFuZGxlcl9zb2NrZXRfd3NvY2s6OnNl dF9zb2NrZXRfaGFuZGxlIChTT0NLRVQgc29jaywgaW50IGFmLCBpbnQgdHlwZSwKIAlkZWJ1Z19w cmludGYgKCJSZXNldCBTSU9fVURQX0NPTk5SRVNFVDogV2luU29jayBlcnJvciAldSIsCiAJCSAg ICAgIFdTQUdldExhc3RFcnJvciAoKSk7CiAgICAgfQotI2lmZGVmIF9feDg2XzY0X18KICAgcm1l bSAoKSA9IDIxMjk5MjsKICAgd21lbSAoKSA9IDIxMjk5MjsKLSNlbHNlCi0gIHJtZW0gKCkgPSA2 NDUxMjsKLSAgd21lbSAoKSA9IDY0NTEyOwotI2VuZGlmCiAgIHJldHVybiAwOwogfQogCkBAIC0x MTQ3LDEyICsxMTQwLDggQEAgZmhhbmRsZXJfc29ja2V0X2luZXQ6OnJlY3ZfaW50ZXJuYWwgKExQ V1NBTVNHIHdzYW1zZywgYm9vbCB1c2VfcmVjdm1zZykKICAgICBpZiAoKHdzYW1zZy0+ZHdGbGFn cyAmIE1TR19PT0IpIHx8IG9vYmlubGluZSkKICAgICAgIHsKIAl1X2xvbmcgYXRtYXJrID0gMDsK LSNpZmRlZiBfX3g4Nl82NF9fCiAJLyogU0lPQ0FUTUFSSyA9IF9JT1IoJ3MnLDcsdV9sb25nKSAq LwogCWludCBlcnIgPSA6OmlvY3Rsc29ja2V0IChnZXRfc29ja2V0ICgpLCBfSU9SKCdzJyw3LHVf bG9uZyksICZhdG1hcmspOwotI2Vsc2UKLQlpbnQgZXJyID0gOjppb2N0bHNvY2tldCAoZ2V0X3Nv Y2tldCAoKSwgU0lPQ0FUTUFSSywgJmF0bWFyayk7Ci0jZW5kaWYKIAlpZiAoZXJyKQogCSAgewog CSAgICBzZXRfd2luc29ja19lcnJubyAoKTsKQEAgLTEyNzYsNyArMTI2NSw2IEBAIGZoYW5kbGVy X3NvY2tldF93c29jazo6cmVjdmZyb20gKHZvaWQgKmluX3B0ciwgc2l6ZV90IGxlbiwgaW50IGZs YWdzLAogewogICBjaGFyICpwdHIgPSAoY2hhciAqKSBpbl9wdHI7CiAKLSNpZmRlZiBfX3g4Nl82 NF9fCiAgIC8qIHNpemVfdCBpcyA2NCBiaXQsIGJ1dCB0aGUgbGVuIG1lbWJlciBpbiBXU0FCVUYg aXMgMzIgYml0LgogICAgICBTcGxpdCBidWZmZXIgaWYgbmVjZXNzYXJ5LiAqLwogICBEV09SRCBi dWZjbnQgPSBsZW4gLyBVSU5UMzJfTUFYICsgKCghbGVuIHx8IChsZW4gJSBVSU5UMzJfTUFYKSkg PyAxIDogMCk7CkBAIC0xMjkzLDEzICsxMjgxLDYgQEAgZmhhbmRsZXJfc29ja2V0X3dzb2NrOjpy ZWN2ZnJvbSAodm9pZCAqaW5fcHRyLCBzaXplX3QgbGVuLCBpbnQgZmxhZ3MsCiAgICAgICBsZW4g LT0gd3NhcHRyLT5sZW47CiAgICAgICBwdHIgKz0gd3NhcHRyLT5sZW47CiAgICAgfQotI2Vsc2UK LSAgV1NBQlVGIHdzYWJ1ZiA9IHsgbGVuLCBwdHIgfTsKLSAgV1NBTVNHIHdzYW1zZyA9IHsgZnJv bSwgZnJvbSAmJiBmcm9tbGVuID8gKmZyb21sZW4gOiAwLAotCQkgICAgJndzYWJ1ZiwgMSwKLQkJ ICAgIHsgMCwgTlVMTH0sCi0JCSAgICAoRFdPUkQpIGZsYWdzIH07Ci0jZW5kaWYKICAgc3NpemVf dCByZXQgPSByZWN2X2ludGVybmFsICgmd3NhbXNnLCBmYWxzZSk7CiAgIGlmIChmcm9tbGVuKQog ICAgICpmcm9tbGVuID0gd3NhbXNnLm5hbWVsZW47CkBAIC0xMzcxLDcgKzEzNTIsNiBAQCBmaGFu ZGxlcl9zb2NrZXRfd3NvY2s6OnJlYWQgKHZvaWQgKmluX3B0ciwgc2l6ZV90JiBsZW4pCiB7CiAg IGNoYXIgKnB0ciA9IChjaGFyICopIGluX3B0cjsKIAotI2lmZGVmIF9feDg2XzY0X18KICAgLyog c2l6ZV90IGlzIDY0IGJpdCwgYnV0IHRoZSBsZW4gbWVtYmVyIGluIFdTQUJVRiBpcyAzMiBiaXQu CiAgICAgIFNwbGl0IGJ1ZmZlciBpZiBuZWNlc3NhcnkuICovCiAgIERXT1JEIGJ1ZmNudCA9IGxl biAvIFVJTlQzMl9NQVggKyAoKCFsZW4gfHwgKGxlbiAlIFVJTlQzMl9NQVgpKSA/IDEgOiAwKTsK QEAgLTEzODUsMTEgKzEzNjUsNiBAQCBmaGFuZGxlcl9zb2NrZXRfd3NvY2s6OnJlYWQgKHZvaWQg KmluX3B0ciwgc2l6ZV90JiBsZW4pCiAgICAgICBsZW4gLT0gd3NhcHRyLT5sZW47CiAgICAgICBw dHIgKz0gd3NhcHRyLT5sZW47CiAgICAgfQotI2Vsc2UKLSAgV1NBQlVGIHdzYWJ1ZiA9IHsgbGVu LCBwdHIgfTsKLSAgV1NBTVNHIHdzYW1zZyA9IHsgTlVMTCwgMCwgJndzYWJ1ZiwgMSwgeyAwLCAg TlVMTCB9LCAwIH07Ci0jZW5kaWYKLQogICBsZW4gPSByZWN2X2ludGVybmFsICgmd3NhbXNnLCBm YWxzZSk7CiB9CiAKQEAgLTE1MzksNyArMTUxNCw2IEBAIGZoYW5kbGVyX3NvY2tldF9pbmV0Ojpz ZW5kdG8gKGNvbnN0IHZvaWQgKmluX3B0ciwgc2l6ZV90IGxlbiwgaW50IGZsYWdzLAogICBpZiAo dG8gJiYgZ2V0X2luZXRfYWRkcl9pbmV0ICh0bywgdG9sZW4sICZzc3QsICZ0b2xlbikgPT0gU09D S0VUX0VSUk9SKQogICAgIHJldHVybiBTT0NLRVRfRVJST1I7CiAKLSNpZmRlZiBfX3g4Nl82NF9f CiAgIC8qIHNpemVfdCBpcyA2NCBiaXQsIGJ1dCB0aGUgbGVuIG1lbWJlciBpbiBXU0FCVUYgaXMg MzIgYml0LgogICAgICBTcGxpdCBidWZmZXIgaWYgbmVjZXNzYXJ5LiAqLwogICBEV09SRCBidWZj bnQgPSBsZW4gLyBVSU5UMzJfTUFYICsgKCghbGVuIHx8IChsZW4gJSBVSU5UMzJfTUFYKSkgPyAx IDogMCk7CkBAIC0xNTU2LDEzICsxNTMwLDYgQEAgZmhhbmRsZXJfc29ja2V0X2luZXQ6OnNlbmR0 byAoY29uc3Qgdm9pZCAqaW5fcHRyLCBzaXplX3QgbGVuLCBpbnQgZmxhZ3MsCiAgICAgICBsZW4g LT0gd3NhcHRyLT5sZW47CiAgICAgICBwdHIgKz0gd3NhcHRyLT5sZW47CiAgICAgfQotI2Vsc2UK LSAgV1NBQlVGIHdzYWJ1ZiA9IHsgbGVuLCBwdHIgfTsKLSAgV1NBTVNHIHdzYW1zZyA9IHsgdG8g PyAoc3RydWN0IHNvY2thZGRyICopICZzc3QgOiBOVUxMLCB0b2xlbiwKLQkJICAgICZ3c2FidWYs IDEsCi0JCSAgICB7IDAsIE5VTEx9LAotCQkgICAgMCB9OwotI2VuZGlmCiAgIHJldHVybiBzZW5k X2ludGVybmFsICgmd3NhbXNnLCBmbGFncyk7CiB9CiAKQEAgLTE2OTAsNyArMTY1Nyw2IEBAIGZo YW5kbGVyX3NvY2tldF93c29jazo6d3JpdGUgKGNvbnN0IHZvaWQgKmluX3B0ciwgc2l6ZV90IGxl bikKIHsKICAgY2hhciAqcHRyID0gKGNoYXIgKikgaW5fcHRyOwogCi0jaWZkZWYgX194ODZfNjRf XwogICAvKiBzaXplX3QgaXMgNjQgYml0LCBidXQgdGhlIGxlbiBtZW1iZXIgaW4gV1NBQlVGIGlz IDMyIGJpdC4KICAgICAgU3BsaXQgYnVmZmVyIGlmIG5lY2Vzc2FyeS4gKi8KICAgRFdPUkQgYnVm Y250ID0gbGVuIC8gVUlOVDMyX01BWCArICgoIWxlbiB8fCAobGVuICUgVUlOVDMyX01BWCkpID8g MSA6IDApOwpAQCAtMTcwNCwxMCArMTY3MCw2IEBAIGZoYW5kbGVyX3NvY2tldF93c29jazo6d3Jp dGUgKGNvbnN0IHZvaWQgKmluX3B0ciwgc2l6ZV90IGxlbikKICAgICAgIGxlbiAtPSB3c2FwdHIt PmxlbjsKICAgICAgIHB0ciArPSB3c2FwdHItPmxlbjsKICAgICB9Ci0jZWxzZQotICBXU0FCVUYg d3NhYnVmID0geyBsZW4sIHB0ciB9OwotICBXU0FNU0cgd3NhbXNnID0geyBOVUxMLCAwLCAmd3Nh YnVmLCAxLCB7IDAsIE5VTEwgfSwgMCB9OwotI2VuZGlmCiAgIHJldHVybiBzZW5kX2ludGVybmFs ICgmd3NhbXNnLCAwKTsKIH0KIApAQCAtMjM5NSw5ICsyMzU3LDcgQEAgZmhhbmRsZXJfc29ja2V0 X3dzb2NrOjppb2N0bCAodW5zaWduZWQgaW50IGNtZCwgdm9pZCAqcCkKICAgICAgICBhbmQgQlNE IHN5c3RlbXMgZGVmaW5lZCBhcyBpbnQgcG9pbnRlciwgc28gdGhlIGFwcGxpY2F0aW9ucyB3aWxs CiAgICAgICAgdXNlIGEgdHlwZSBvZiB0aGUgZXhwZWN0ZWQgc2l6ZS4gIEhvcGVmdWxseS4gKi8K ICAgICBjYXNlIEZJT0FTWU5DOgotI2lmZGVmIF9feDg2XzY0X18KICAgICBjYXNlIF9JT1coJ2Yn LCAxMjUsIHVfbG9uZyk6Ci0jZW5kaWYKICAgICAgIHJlcyA9IFdTQUFzeW5jU2VsZWN0IChnZXRf c29ja2V0ICgpLCB3aW5tc2csIFdNX0FTWU5DSU8sCiAJICAgICAgKihpbnQgKikgcCA/IEFTWU5D X01BU0sgOiAwKTsKICAgICAgIHN5c2NhbGxfcHJpbnRmICgiQXN5bmMgSS9PIG9uIHNvY2tldCAl cyIsCkBAIC0yNDA4LDkgKzIzNjgsNyBAQCBmaGFuZGxlcl9zb2NrZXRfd3NvY2s6OmlvY3RsICh1 bnNpZ25lZCBpbnQgY21kLCB2b2lkICpwKQogCVdTQUV2ZW50U2VsZWN0IChnZXRfc29ja2V0ICgp LCB3c29ja19ldnQsIEVWRU5UX01BU0spOwogICAgICAgYnJlYWs7CiAgICAgY2FzZSBGSU9OUkVB RDoKLSNpZmRlZiBfX3g4Nl82NF9fCiAgICAgY2FzZSBfSU9SKCdmJywgMTI3LCB1X2xvbmcpOgot I2VuZGlmCiAgICAgICAvKiBNYWtlIHN1cmUgdG8gdXNlIHRoZSBXaW5zb2NrIGRlZmluaXRpb24g b2YgRklPTlJFQUQuICovCiAgICAgICByZXMgPSA6OmlvY3Rsc29ja2V0IChnZXRfc29ja2V0ICgp LCBfSU9SKCdmJywgMTI3LCB1X2xvbmcpLCAodV9sb25nICopIHApOwogICAgICAgaWYgKHJlcyA9 PSBTT0NLRVRfRVJST1IpCkBAIC0yNDIwLDExICsyMzc4LDkgQEAgZmhhbmRsZXJfc29ja2V0X3dz b2NrOjppb2N0bCAodW5zaWduZWQgaW50IGNtZCwgdm9pZCAqcCkKICAgICBjYXNlIFNJT0NBVE1B Uks6CiAgICAgICAvKiBTb2NrZXRzIGFyZSBhbHdheXMgbm9uLWJsb2NraW5nIGludGVybmFsbHku ICBTbyB3ZSBqdXN0IG5vdGUgdGhlCiAJIHN0YXRlIGhlcmUuICovCi0jaWZkZWYgX194ODZfNjRf XwogICAgICAgLyogQ29udmVydCB0aGUgZGlmZmVyZW50IGlkZWEgb2YgdV9sb25nIGluIHRoZSBk ZWZpbml0aW9uIG9mIGNtZC4gKi8KICAgICAgIGlmICgoKGNtZCA+PiAxNikgJiBJT0NQQVJNX01B U0spID09IHNpemVvZiAodW5zaWduZWQgbG9uZykpCiAJY21kID0gKGNtZCAmIH4oSU9DUEFSTV9N QVNLIDw8IDE2KSkgfCAoc2l6ZW9mICh1X2xvbmcpIDw8IDE2KTsKLSNlbmRpZgogICAgICAgaWYg KGNtZCA9PSBGSU9OQklPKQogCXsKIAkgIHN5c2NhbGxfcHJpbnRmICgic29ja2V0IGlzIG5vdyAl c2Jsb2NraW5nIiwKQEAgLTI0MzcsMTQgKzIzOTMsOSBAQCBmaGFuZGxlcl9zb2NrZXRfd3NvY2s6 OmlvY3RsICh1bnNpZ25lZCBpbnQgY21kLCB2b2lkICpwKQogICAgICAgLyogSW4gd2luc29jaywg dGhlIHJldHVybiB2YWx1ZSBvZiBTSU9DQVRNQVJLIGlzIEZBTFNFIGlmCiAJIE9PQiBkYXRhIGV4 aXN0cywgVFJVRSBvdGhlcndpc2UuIFRoaXMgaXMgYWxtb3N0IG9wcG9zaXRlCiAJIHRvIGV4cGVj dGF0aW9uLiAqLwotI2lmZGVmIF9feDg2XzY0X18KICAgICAgIC8qIFNJT0NBVE1BUksgPSBfSU9S KCdzJyw3LHVfbG9uZykgKi8KICAgICAgIGlmIChjbWQgPT0gX0lPUigncycsNyx1X2xvbmcpICYm ICFyZXMpCiAJKih1X2xvbmcgKilwID0gISoodV9sb25nICopcDsKLSNlbHNlCi0gICAgICBpZiAo Y21kID09IFNJT0NBVE1BUksgJiYgIXJlcykKLQkqKHVfbG9uZyAqKXAgPSAhKih1X2xvbmcgKilw OwotI2VuZGlmCiAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgcmVzID0gZmhhbmRs ZXJfc29ja2V0Ojppb2N0bCAoY21kLCBwKTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhh bmRsZXJfc29ja2V0X2xvY2FsLmNjIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9zb2NrZXRfbG9j YWwuY2MKaW5kZXggMjQ5YWQwZTRiLi5lNGE4ODE2OWIgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3 aW4vZmhhbmRsZXJfc29ja2V0X2xvY2FsLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJf c29ja2V0X2xvY2FsLmNjCkBAIC0xMiw3ICsxMiw2IEBACiAjZGVmaW5lIFVTRV9TWVNfVFlQRVNf RkRfU0VUCiAKICNpbmNsdWRlICJ3aW5zdXAuaCIKLSNpZmRlZiBfX3g4Nl82NF9fCiAvKiAyMDE0 LTA0LTI0OiBDdXJyZW50IE1pbmd3IGhlYWRlcnMgZGVmaW5lIHNvY2thZGRyX2luNiB1c2luZyB1 X2xvbmcgKDggYnl0ZSkKICAgIGJlY2F1c2UgYSByZWRlZmluaXRpb24gZm9yIExQNjQgc3lzdGVt cyBpcyBtaXNzaW5nLiAgVGhpcyBsZWFkcyB0byBhIHdyb25nCiAgICBkZWZpbml0aW9uIGFuZCBz aXplIG9mIHNvY2thZGRyX2luNiB3aGVuIGJ1aWxkaW5nIHdpdGggd2luc29jayBoZWFkZXJzLgpA QCAtMjAsNyArMTksNiBAQAogICAgZnVuY3Rpb24gY2FsbHMuICovCiAjdW5kZWYgdV9sb25nCiAj ZGVmaW5lIHVfbG9uZyBfX21zX3VfbG9uZwotI2VuZGlmCiAjaW5jbHVkZSAibnRzZWNhcGkuaCIK ICNpbmNsdWRlIDx3MzJhcGkvd3MydGNwaXAuaD4KICNpbmNsdWRlIDx3MzJhcGkvbXN3c29jay5o PgpAQCAtMTM0MSw3ICsxMzM5LDYgQEAgZmhhbmRsZXJfc29ja2V0X2xvY2FsOjpzZW5kdG8gKGNv bnN0IHZvaWQgKmluX3B0ciwgc2l6ZV90IGxlbiwgaW50IGZsYWdzLAogICBpZiAodG8gJiYgZ2V0 X2luZXRfYWRkcl9sb2NhbCAodG8sIHRvbGVuLCAmc3N0LCAmdG9sZW4pID09IFNPQ0tFVF9FUlJP UikKICAgICByZXR1cm4gU09DS0VUX0VSUk9SOwogCi0jaWZkZWYgX194ODZfNjRfXwogICAvKiBz aXplX3QgaXMgNjQgYml0LCBidXQgdGhlIGxlbiBtZW1iZXIgaW4gV1NBQlVGIGlzIDMyIGJpdC4K ICAgICAgU3BsaXQgYnVmZmVyIGlmIG5lY2Vzc2FyeS4gKi8KICAgRFdPUkQgYnVmY250ID0gbGVu IC8gVUlOVDMyX01BWCArICgoIWxlbiB8fCAobGVuICUgVUlOVDMyX01BWCkpID8gMSA6IDApOwpA QCAtMTM1OCwxMyArMTM1NSw2IEBAIGZoYW5kbGVyX3NvY2tldF9sb2NhbDo6c2VuZHRvIChjb25z dCB2b2lkICppbl9wdHIsIHNpemVfdCBsZW4sIGludCBmbGFncywKICAgICAgIGxlbiAtPSB3c2Fw dHItPmxlbjsKICAgICAgIHB0ciArPSB3c2FwdHItPmxlbjsKICAgICB9Ci0jZWxzZQotICBXU0FC VUYgd3NhYnVmID0geyBsZW4sIHB0ciB9OwotICBXU0FNU0cgd3NhbXNnID0geyB0byA/IChzdHJ1 Y3Qgc29ja2FkZHIgKikgJnNzdCA6IE5VTEwsIHRvbGVuLAotCQkgICAgJndzYWJ1ZiwgMSwKLQkJ ICAgIHsgMCwgTlVMTH0sCi0JCSAgICAwIH07Ci0jZW5kaWYKICAgcmV0dXJuIHNlbmRfaW50ZXJu YWwgKCZ3c2Ftc2csIGZsYWdzKTsKIH0KIApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9maGFu ZGxlcl9zb2NrZXRfdW5peC5jYyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfc29ja2V0X3VuaXgu Y2MKaW5kZXggMTBiMTMzOWM2Li41NWUwNDMyYjYgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4v ZmhhbmRsZXJfc29ja2V0X3VuaXguY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9zb2Nr ZXRfdW5peC5jYwpAQCAtMjI0NywxNCArMjI0NywxMCBAQCBmaGFuZGxlcl9zb2NrZXRfdW5peDo6 aW9jdGwgKHVuc2lnbmVkIGludCBjbWQsIHZvaWQgKnApCiAgIHN3aXRjaCAoY21kKQogICAgIHsK ICAgICBjYXNlIEZJT0FTWU5DOgotI2lmZGVmIF9feDg2XzY0X18KICAgICBjYXNlIF9JT1coJ2Yn LCAxMjUsIGludCk6Ci0jZW5kaWYKICAgICAgIGJyZWFrOwogICAgIGNhc2UgRklPTlJFQUQ6Ci0j aWZkZWYgX194ODZfNjRfXwogICAgIGNhc2UgX0lPUignZicsIDEyNywgaW50KToKLSNlbmRpZgog ICAgIGNhc2UgRklPTkJJTzoKICAgICAgIHsKIAljb25zdCBib29sIHdhc19ub25ibG9ja2luZyA9 IGlzX25vbmJsb2NraW5nICgpOwpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9mb3JrLmNjIGIv d2luc3VwL2N5Z3dpbi9mb3JrLmNjCmluZGV4IDkxMmYxNzI3NC4uNjVmM2UwNTFiIDEwMDY0NAot LS0gYS93aW5zdXAvY3lnd2luL2ZvcmsuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9mb3JrLmNjCkBA IC02MjYsMTEgKzYyNiw3IEBAIGRvZm9yayAodm9pZCAqKnByb2MsIGJvb2wgKndpdGhfZm9ya2Fi bGVzKQogICAgIGlzY2hpbGQgPSAhIXNldGptcCAoZ3JvdXBlZC5jaC5qbXApOwogCiAgICAgdm9s YXRpbGUgY2hhciAqIHZvbGF0aWxlIHN0YWNrcDsKLSNpZmRlZiBfX3g4Nl82NF9fCiAgICAgX19h c21fXyB2b2xhdGlsZSAoIm1vdnEgJSVyc3AsJTAiOiAiPXIiIChzdGFja3ApKTsKLSNlbHNlCi0g ICAgX19hc21fXyB2b2xhdGlsZSAoIm1vdmwgJSVlc3AsJTAiOiAiPXIiIChzdGFja3ApKTsKLSNl bmRpZgogCiAgICAgaWYgKCFpc2NoaWxkKQogICAgICAgcmVzID0gZ3JvdXBlZC5wYXJlbnQgKHN0 YWNrcCk7CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2djY19zZWguaCBiL3dpbnN1cC9jeWd3 aW4vZ2NjX3NlaC5oCmluZGV4IGZiNzc5ZWY3My4uZDkzYzVhMjM5IDEwMDY0NAotLS0gYS93aW5z dXAvY3lnd2luL2djY19zZWguaAorKysgYi93aW5zdXAvY3lnd2luL2djY19zZWguaApAQCAtOCw3 ICs4LDYgQEAgZGV0YWlscy4gKi8KIAogLyogRnJvbSB0aGUgR0NDIHNvdXJjZSBmaWxlIGxpYmdj Yy91bndpbmQtc2VoLmMuICovCiAKLSNpZmRlZiBfX3g4Nl82NF9fCiAjZGVmaW5lIFNUQVRVU19V U0VSX0RFRklORUQJCSgxVSA8PCAyOSkKICNkZWZpbmUgR0NDX01BR0lDCQkJKCgnRycgPDwgMTYp IHwgKCdDJyA8PCA4KSB8ICdDJykKICNkZWZpbmUgR0NDX0VYQ0VQVElPTihUWVBFKQkJXApAQCAt MTYsNCArMTUsMyBAQCBkZXRhaWxzLiAqLwogI2RlZmluZSBTVEFUVVNfR0NDX1RIUk9XCQlHQ0Nf RVhDRVBUSU9OICgwKQogI2RlZmluZSBTVEFUVVNfR0NDX1VOV0lORAkJR0NDX0VYQ0VQVElPTiAo MSkKICNkZWZpbmUgU1RBVFVTX0dDQ19GT1JDRUQJCUdDQ19FWENFUFRJT04gKDIpCi0jZW5kaWYK ZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vaGVhcC5jYyBiL3dpbnN1cC9jeWd3aW4vaGVhcC5j YwppbmRleCAwZmJkYTMwZjIuLmZiZWM3ZDQ5OSAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9o ZWFwLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vaGVhcC5jYwpAQCAtMjksNyArMjksNiBAQCBzdGF0 aWMgcHRyZGlmZl90IHBhZ2VfY29uc3Q7CiBzdGF0aWMgdWludHB0cl90CiBldmFsX3N0YXJ0X2Fk ZHJlc3MgKCkKIHsKLSNpZmRlZiBfX3g4Nl82NF9fCiAgIC8qIE9uIDY0IGJpdCwgd2UgY2hvb3Nl IGEgZml4ZWQgYWRkcmVzcyBvdXRzaWRlIHRoZSAzMiBiaXQgYXJlYS4gIFRoZQogICAgICBleGVj dXRhYmxlIHN0YXJ0cyBhdCAweDE6MDA0MDAwMDBMLCB0aGUgQ3lnd2luIERMTCBzdGFydHMgYXQK ICAgICAgMHgxOjgwMDQwMDAwTCwgb3RoZXIgcmViYXNlZCBETExzIGFyZSBsb2NhdGVkIGluIHRo ZSByZWdpb24gZnJvbQpAQCAtMzgsMzggKzM3LDYgQEAgZXZhbF9zdGFydF9hZGRyZXNzICgpCiAg ICAgIGFyZSBsb2NhdGVkIGluIHRoZSByZWdpb24gZnJvbSAweDY6MDAwMDAwMDBMIHVwIHRvIDB4 ODowMDAwMDAwMEwuCiAgICAgIFNvIHRoZSBoZWFwIHN0YXJ0cyBhdCAweDg6MDAwMDAwMDBMLiAq LwogICB1aW50cHRyX3Qgc3RhcnRfYWRkcmVzcyA9IDB4ODAwMDAwMDAwTDsKLSNlbHNlCi0gIC8q IFdpbmRvd3MgcGVyZm9ybXMgaGVhcCBBU0xSLiAgVGhpcyBzcG9pbHMgdGhlIGVudGlyZSByZWdp b24gYmVsb3cKLSAgICAgMHgyMDAwMDAwMCBmb3IgdXMsIGJlY2F1c2UgdGhhdCByZWdpb24gaXMg dXNlZCBieSBXaW5kb3dzIHRvIHJhbmRvbWl6ZQotICAgICBoZWFwIGFuZCBzdGFjayBhZGRyZXNz ZXMuICBUaGVyZWZvcmUgd2UgcHV0IG91ciBoZWFwIGludG8gYSBzYWZlIHJlZ2lvbgotICAgICBz dGFydGluZyBhdCAweDIwMDAwMDAwLiAgVGhpcyBzaG91bGQgd29yayByaWdodCBmcm9tIHRoZSBz dGFydCBpbiA5OSUKLSAgICAgb2YgdGhlIGNhc2VzLiAqLwotICB1aW50cHRyX3Qgc3RhcnRfYWRk cmVzcyA9IDB4MjAwMDAwMDBMOwotICBNRU1PUllfQkFTSUNfSU5GT1JNQVRJT04gbWJpOwotCi0g IGlmIChWaXJ0dWFsUXVlcnkgKCh2b2lkICopIDB4YmYwMDAwMDBMLCAmbWJpLCBzaXplb2YgbWJp KSkKLSAgICB7Ci0gICAgICAvKiBIb3dldmVyLCBpZiB3ZSdyZSBydW5uaW5nIG9uIGEgLzNHQiBl bmFibGVkIDMyIGJpdCBzeXN0ZW0gb3Igb24KLQkgYSA2NCBiaXQgc3lzdGVtLCBhbmQgdGhlIGV4 ZWN1dGFibGUgaXMgbGFyZ2UgYWRkcmVzcyBhd2FyZSwgdGhlbgotCSB3ZSBrbm93IHRoYXQgd2Ug aGF2ZSBzcGFyZSAxIEdpZyAoMzIgYml0KSBvciBldmVuIDIgR2lncyAoNjQgYml0KQotCSB2aXJ0 dWFsIGFkZHJlc3Mgc3BhY2UuICBUaGlzIG1lbW9yeSByZWdpb24gaXMgcHJhY3RpY2FsbHkgdW51 c2VkCi0JIGJ5IFdpbmRvd3MsIG9ubHkgUEVCIGFuZCBURUJzIGFyZSBhbGxvY2F0ZWQgdG9wLWRv d24gaGVyZS4KLQotCSBXZSB1c2VkIHRvIHVzZSB0aGUgY3VycmVudCBURUIgYWRkcmVzcyBhcyB2 ZXJ5IHNpbXBsZSB0ZXN0IHRoYXQKLQkgdGhpcyBpcyBhIGxhcmdlIGFkZHJlc3MgYXdhcmUgZXhl Y3V0YWJsZSwgYnV0IHRoYXQgZmFpbHMgb24gVzEwCi0JIFdPVzY0IGJlY2F1c2UgdGhlIG1haW4g VEVCIGlzIGFwcGFyZW50bHkgY29tbWl0ZWQgaW4gdGhlIGxvd2VyCi0JIDIgR2lncyB0aGVzZSBk YXlzLgotCi0JIFRoZSBhYm92ZSB0ZXN0IGZvciBhZGRyZXNzIDB4YmYwMDAwMDAgaXMgc3VwcG9z ZWQgdG8gbWFrZSBzdXJlCi0JIHRoYXQgd2UgcmVhbGx5IGhhdmUgM0dCIG9uIGEgMzIgYml0IHN5 c3RlbS4gIFdpbmRvd3Mgc3VwcG9ydHMKLQkgc21hbGxlciBsYXJnZSBhZGRyZXNzIHJlZ2lvbnMs IGJ1dCB0aGVuIGl0J3Mgbm90IHRoYXQgaW50ZXJlc3RpbmcKLQkgZm9yIHVzIHRvIHVzZSBpdCBm b3IgdGhlIGhlYXAuICBJZiB0aGUgcmVnaW9uIGlzIGJpZyBlbm91Z2gsIHRoZQotCSBoZWFwIGdl dHMgYWxsb2NhdGVkIGF0IGl0cyBzdGFydC4gIFdoYXQgd2UgZ2V0IGFyZSAwLjk5OSBvciAxLjk5 OQotCSBHaWdzIG9mIGZyZWUgY29udGlndW91cyBtZW1vcnkgZm9yIGhlYXAsIHRocmVhZCBzdGFj a3MsIGFuZCBzaGFyZWQKLQkgbWVtb3J5IHJlZ2lvbnMuICovCi0gICAgICBzdGFydF9hZGRyZXNz ID0gMHg4MDAwMDAwMEw7Ci0gICAgfQotI2VuZGlmCiAgIHJldHVybiBzdGFydF9hZGRyZXNzOwog fQogCkBAIC04MywyNyArNTAsMTggQEAgZXZhbF9pbml0aWFsX2hlYXBfc2l6ZSAoKQogICBkb3No ZWFkZXIgPSAoUElNQUdFX0RPU19IRUFERVIpIEdldE1vZHVsZUhhbmRsZSAoTlVMTCk7CiAgIG50 aGVhZGVyID0gKFBJTUFHRV9OVF9IRUFERVJTKSAoKFBCWVRFKSBkb3NoZWFkZXIgKyBkb3NoZWFk ZXItPmVfbGZhbmV3KTsKICAgLyogTG9hZGVyRmxhZ3MgaXMgYW4gb2Jzb2xldGUgRFdPUkQgbWVt YmVyIG9mIHRoZSBQRS9DT0ZGIGZpbGUgaGVhZGVyLgotICAgICBJdCdzIHZhbHVlIGlzIGlnbm9y ZWQgYnkgdGhlIGxvYWRlciwgc28gd2UncmUgZnJlZSB0byB1c2UgaXQgZm9yCi0gICAgIEN5Z3dp bi4gIElmIGl0J3MgMCwgd2UgZGVmYXVsdCB0byB0aGUgdXN1YWwgMzg0IE1lZ3Mgb24gMzIgYml0 IGFuZAotICAgICA1MTIgb24gNjQgYml0LiAgT3RoZXJ3aXNlLCB3ZSB1c2UgaXQgYXMgdGhlIGRl ZmF1bHQgaW5pdGlhbCBoZWFwIHNpemUKLSAgICAgaW4gbWVnYWJ5dGUuICBWYWxpZCB2YWx1ZXMg YXJlIGJldHdlZW4gNCBhbmQgMjA0OC84Mzg4NjA4IE1lZ3MuICovCisgICAgIEl0cyB2YWx1ZSBp cyBpZ25vcmVkIGJ5IHRoZSBsb2FkZXIsIHNvIHdlJ3JlIGZyZWUgdG8gdXNlIGl0IGZvcgorICAg ICBDeWd3aW4uICBJZiBpdCdzIDAsIHdlIGRlZmF1bHQgdG8gNTEyLiAgT3RoZXJ3aXNlLCB3ZSB1 c2UgaXQgYXMKKyAgICAgdGhlIGRlZmF1bHQgaW5pdGlhbCBoZWFwIHNpemUgaW4gbWVnYWJ5dGUu ICBWYWxpZCB2YWx1ZXMgYXJlCisgICAgIGJldHdlZW4gNCBhbmQgODM4ODYwOCBNZWdzLiAqLwog CiAgIHNpemUgPSBudGhlYWRlci0+T3B0aW9uYWxIZWFkZXIuTG9hZGVyRmxhZ3M7Ci0jaWZkZWYg X194ODZfNjRfXwogICBpZiAoc2l6ZSA9PSAwKQogICAgIHNpemUgPSA1MTI7CiAgIGVsc2UgaWYg KHNpemUgPCA0KQogICAgIHNpemUgPSA0OwogICBlbHNlIGlmIChzaXplID4gODM4ODYwOCkKICAg ICBzaXplID0gODM4ODYwODsKLSNlbHNlCi0gIGlmIChzaXplID09IDApCi0gICAgc2l6ZSA9IDM4 NDsKLSAgZWxzZSBpZiAoc2l6ZSA8IDQpCi0gICAgc2l6ZSA9IDQ7Ci0gIGVsc2UgaWYgKHNpemUg PiAyMDQ4KQotICAgIHNpemUgPSAyMDQ4OwotI2VuZGlmCiAgIHJldHVybiBzaXplIDw8IDIwOwog fQogCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2hvb2thcGkuY2MgYi93aW5zdXAvY3lnd2lu L2hvb2thcGkuY2MKaW5kZXggMWViNWZkZWEyLi5mYmYxM2NlOTAgMTAwNjQ0Ci0tLSBhL3dpbnN1 cC9jeWd3aW4vaG9va2FwaS5jYworKysgYi93aW5zdXAvY3lnd2luL2hvb2thcGkuY2MKQEAgLTcy LDExICs3Miw3IEBAIHJ2YWRlbHRhIChQSU1BR0VfTlRfSEVBREVSUyBwbnQsIERXT1JEIGltcG9y dF9ydmEsIERXT1JEICZtYXhfc2l6ZSkKIHN0YXRpYyB2b2lkICoKIHB1dG1lbSAoUElNQUdFX1RI VU5LX0RBVEEgcGksIGNvbnN0IHZvaWQgKmhvb2tmbikKIHsKLSNpZmRlZiBfX3g4Nl82NF9fCiAj ZGVmaW5lIFRIVU5LX0ZVTkNfVFlQRSBVTE9OR0xPTkcKLSNlbHNlCi0jZGVmaW5lIFRIVU5LX0ZV TkNfVFlQRSBEV09SRAotI2VuZGlmCiAKICAgRFdPUkQgb2ZsOwogICBpZiAoIVZpcnR1YWxQcm90 ZWN0IChwaSwgc2l6ZW9mIChUSFVOS19GVU5DX1RZUEUpLCBQQUdFX1JFQURXUklURSwgJm9mbCkg KQpAQCAtMjgyLDE0ICsyNzgsNyBAQCBmaW5kX2ZpcnN0X25vdGxvYWRlZF9kbGwgKHBhdGhfY29u diYgcGMpCiAgIGJvb2wgaXNfNjRiaXQ7CiAgIHBFeGVOVEhkciA9IFBFSGVhZGVyRnJvbUhNb2R1 bGUgKGhtLCBpc182NGJpdCk7CiAKLSAgaWYgKCFwRXhlTlRIZHIpCi0gICAgZ290byBvdXQ7Ci0K LSNpZmRlZiBfX3g4Nl82NF9fCi0gIGlmICghaXNfNjRiaXQpCi0jZWxzZQotICBpZiAoaXNfNjRi aXQpCi0jZW5kaWYKKyAgaWYgKCFwRXhlTlRIZHIgfHwgIWlzXzY0Yml0KQogICAgIGdvdG8gb3V0 OwogCiAgIGltcG9ydFJWQSA9IHBFeGVOVEhkci0+T3B0aW9uYWxIZWFkZXIuRGF0YURpcmVjdG9y eQpAQCAtMzQ5LDE3ICszMzgsOSBAQCBob29rX29yX2RldGVjdF9jeWd3aW4gKGNvbnN0IGNoYXIg Km5hbWUsIGNvbnN0IHZvaWQgKmZuLCBXT1JEJiBzdWJzeXMsIEhBTkRMRSBoKQogICBib29sIGlz XzY0Yml0OwogICBQSU1BR0VfTlRfSEVBREVSUyBwRXhlTlRIZHIgPSBQRUhlYWRlckZyb21ITW9k dWxlIChobSwgaXNfNjRiaXQpOwogCi0gIGlmICghcEV4ZU5USGRyKQotICAgIHJldHVybiBOVUxM OwotCiAgIC8qIFNob3J0Y3V0LiAgV2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZyBmdXJ0aGVy IGZyb20gaGVyZSwgaWYgdGhlCi0gICAgIGV4ZWN1dGFibGUncyBhcmNoaXRlY3R1cmUgZG9lc24n dCBtYXRjaCwgdW5sZXNzIHdlIHdhbnQgdG8gc3VwcG9ydAotICAgICBhIG1peCBvZiAzMiBhbmQg NjQgYml0IEN5Z3dpbiBhdCBvbmUgcG9pbnQuICovCi0jaWZkZWYgX194ODZfNjRfXwotICBpZiAo IWlzXzY0Yml0KQotI2Vsc2UKLSAgaWYgKGlzXzY0Yml0KQotI2VuZGlmCisgICAgIGV4ZWN1dGFi bGUncyBhcmNoaXRlY3R1cmUgZG9lc24ndCBtYXRjaC4gKi8KKyAgaWYgKCFwRXhlTlRIZHIgfHwg IWlzXzY0Yml0KQogICAgIHJldHVybiBOVUxMOwogCiAgIERXT1JEIGltcG9ydFJWQSwgaW1wb3J0 UlZBU2l6ZTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9hLm91dC5oIGIvd2lu c3VwL2N5Z3dpbi9pbmNsdWRlL2Eub3V0LmgKaW5kZXggODcwNTM2NjhjLi44ZjAwNmIzMjggMTAw NjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9hLm91dC5oCisrKyBiL3dpbnN1cC9jeWd3 aW4vaW5jbHVkZS9hLm91dC5oCkBAIC0zOTEsOSArMzkxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QKICAg dWludDMyX3QgYnNpemU7CQkvKiB1bmluaXRpYWxpemVkIGRhdGEgIiAgICIJCSovCiAgIHVpbnQz Ml90IGVudHJ5OwkJLyogZW50cnkgcHQuCQkJCSovCiAgIHVpbnQzMl90IHRleHRfc3RhcnQ7CS8q IGJhc2Ugb2YgdGV4dCB1c2VkIGZvciB0aGlzIGZpbGUgKi8KLSNpZmRlZiBfX2kzODZfXwotICB1 aW50MzJfdCBkYXRhX3N0YXJ0OwkvKiBiYXNlIG9mIGFsbCBkYXRhIHVzZWQgZm9yIHRoaXMgZmls ZSAqLwotI2VuZGlmCiAKICAgLyogTlQgZXh0cmEgZmllbGRzOyBzZWUgaW50ZXJuYWwuaCBmb3Ig ZGVzY3JpcHRpb25zICovCiAgIHVpbnRwdHJfdCBJbWFnZUJhc2U7CkBAIC00MjQsMTEgKzQyMSw3 IEBAIHR5cGVkZWYgc3RydWN0CiAKIAogI3VuZGVmIEFPVVRTWgotI2lmZGVmIF9feDg2XzY0X18K ICNkZWZpbmUgQU9VVFNaIChBT1VUSERSU1ogKyAyMTIpCi0jZWxzZQotI2RlZmluZSBBT1VUU1og KEFPVVRIRFJTWiArIDE5NikKLSNlbmRpZgogCiAjdW5kZWYgIEVfRklMTk1MRU4KICNkZWZpbmUg RV9GSUxOTUxFTgkxOAkvKiAjIGNoYXJhY3RlcnMgaW4gYSBmaWxlIG5hbWUJCSovCmRpZmYgLS1n aXQgYS93aW5zdXAvY3lnd2luL2luY2x1ZGUvYXNtL2JpdHNwZXJsb25nLmggYi93aW5zdXAvY3ln d2luL2luY2x1ZGUvYXNtL2JpdHNwZXJsb25nLmgKaW5kZXggNDgwMzdiNjQ1Li40ZjI3NjgwNTYg MTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9hc20vYml0c3BlcmxvbmcuaAorKysg Yi93aW5zdXAvY3lnd2luL2luY2x1ZGUvYXNtL2JpdHNwZXJsb25nLmgKQEAgLTksMTAgKzksNiBA QCBkZXRhaWxzLiAqLwogI2lmbmRlZiBfX0FTTV9CSVRTUEVSTE9OR19ICiAjZGVmaW5lIF9fQVNN X0JJVFNQRVJMT05HX0gKIAotI2lmZGVmIF9feDg2XzY0X18KICNkZWZpbmUgX19CSVRTX1BFUl9M T05HIDY0Ci0jZWxzZQotI2RlZmluZSBfX0JJVFNfUEVSX0xPTkcgMzIKLSNlbmRpZgogCiAjZW5k aWYgLyogX19BU01fQklUU1BFUkxPTkdfSCAqLwpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9p bmNsdWRlL2JpdHMvd29yZHNpemUuaCBiL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9iaXRzL3dvcmRz aXplLmgKaW5kZXggYjBlZTMzN2Y4Li42NjMwNjMxZTYgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3 aW4vaW5jbHVkZS9iaXRzL3dvcmRzaXplLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL2Jp dHMvd29yZHNpemUuaApAQCAtMiwxMCArMiw4IEBACiAKICNpZm5kZWYgX1dPUkRTSVpFX0gKICNk ZWZpbmUgX1dPUkRTSVpFX0ggMQotI2lmZGVmIF9feDg2XzY0X18KKwogIyBkZWZpbmUgX19XT1JE U0laRSAgICAgNjQKICMgZGVmaW5lIF9fV09SRFNJWkVfQ09NUEFUMzIgICAgMQotI2Vsc2UKLSMg ZGVmaW5lIF9fV09SRFNJWkUgICAgIDMyCi0jZW5kaWYKKwogI2VuZGlmIC8qX1dPUkRTSVpFX0gq LwpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL2N5Z3dpbi9jb25maWcuaCBiL3dp bnN1cC9jeWd3aW4vaW5jbHVkZS9jeWd3aW4vY29uZmlnLmgKaW5kZXggMjM3M2MxYjNmLi5mZDMw OTM3NTUgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9jeWd3aW4vY29uZmlnLmgK KysrIGIvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL2N5Z3dpbi9jb25maWcuaApAQCAtMzYsMjEgKzM2 LDEyIEBAIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkKIGV4dGVybiBpbmxpbmUgc3Ry dWN0IF9yZWVudCAqX19nZXRyZWVudCAodm9pZCkKIHsKICAgcmVnaXN0ZXIgY2hhciAqcmV0Owot I2lmZGVmIF9feDg2XzY0X18KICAgX19hc20gX192b2xhdGlsZV9fICgibW92cSAlJWdzOjgsJTAi IDogIj1yIiAocmV0KSk7Ci0jZWxzZQotICBfX2FzbSBfX3ZvbGF0aWxlX18gKCJtb3ZsICUlZnM6 NCwlMCIgOiAiPXIiIChyZXQpKTsKLSNlbmRpZgogICByZXR1cm4gKHN0cnVjdCBfcmVlbnQgKikg KHJldCAtIF9fQ1lHVExTX1BBRFNJWkVfXyk7CiB9CiAjZW5kaWYgLyogX0xJQkMgfHwgX19JTlNJ REVfQ1lHV0lOX18gKi8KIAotI2lmZGVmIF9feDg2XzY0X18KLSMgZGVmaW5lIF9fU1lNQk9MX1BS RUZJWAotI2Vsc2UKLSMgZGVmaW5lIF9fU1lNQk9MX1BSRUZJWCAiXyIKLSNlbmRpZgotI2RlZmlu ZSBfU1lNU1RSKHgpCV9fU1lNQk9MX1BSRUZJWCAjeAorI2RlZmluZSBfU1lNU1RSKHgpCSN4CiAK ICNkZWZpbmUgX19GSUxFTkFNRV9NQVhfXyA0MDk2CS8qIEtlZXAgaW4gc3luYyB3aXRoIFBBVEhf TUFYIGluIGxpbWl0cy5oLiAqLwogCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2luY2x1ZGUv Y3lnd2luL3NpZ25hbC5oIGIvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL2N5Z3dpbi9zaWduYWwuaApp bmRleCA3YjE3MTM0ZjUuLjIyMWE1MzcyMSAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9pbmNs dWRlL2N5Z3dpbi9zaWduYWwuaAorKysgYi93aW5zdXAvY3lnd2luL2luY2x1ZGUvY3lnd2luL3Np Z25hbC5oCkBAIC0xOSw3ICsxOSw2IEBAIGV4dGVybiAiQyIgewogICBEZWZpbmUgYSBzdHJ1Y3Qg X19tY29udGV4dCwgd2hpY2ggc2hvdWxkIGJlIGlkZW50aWNhbCBpbiBsYXlvdXQgdG8gdGhlIFdp bjMyCiAgIEFQSSB0eXBlIENPTlRFWFQgd2l0aCB0aGUgYWRkaXRpb24gb2Ygb2xkbWFzayBhbmQg Y3IyIGZpZWxkcyBhdCB0aGUgZW5kLgogKi8KLSNpZmRlZiBfX3g4Nl82NF9fCiAKIHN0cnVjdCBf dWNfZnB4cmVnIHsKICAgX191aW50MTZfdCBzaWduaWZpY2FuZFs0XTsKQEAgLTk4LDY3ICs5Nyw5 IEBAIHN0cnVjdCBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDE2KSkpIF9fbWNvbnRleHQK ICAgX191aW50NjRfdCBjcjI7CiB9OwogCi0jZWxzZSAvKiAheDg2XzY0ICovCi0KLXN0cnVjdCBf dWNfZnByZWcKLXsKLSAgX191aW50MTZfdCBzaWduaWZpY2FuZFs0XTsKLSAgX191aW50MTZfdCBl eHBvbmVudDsKLX07Ci0KLXN0cnVjdCBfZnBzdGF0ZQotewotICBfX3VpbnQzMl90IGN3OwotICBf X3VpbnQzMl90IHN3OwotICBfX3VpbnQzMl90IHRhZzsKLSAgX191aW50MzJfdCBpcG9mZjsKLSAg X191aW50MzJfdCBjc3NlbDsKLSAgX191aW50MzJfdCBkYXRhb2ZmOwotICBfX3VpbnQzMl90IGRh dGFzZWw7Ci0gIHN0cnVjdCBfdWNfZnByZWcgX3N0WzhdOwotICBfX3VpbnQzMl90IG54c3Q7Ci19 OwotCi1zdHJ1Y3QgX19tY29udGV4dAotewotICBfX3VpbnQzMl90IGN0eGZsYWdzOwotICBfX3Vp bnQzMl90IGRyMDsKLSAgX191aW50MzJfdCBkcjE7Ci0gIF9fdWludDMyX3QgZHIyOwotICBfX3Vp bnQzMl90IGRyMzsKLSAgX191aW50MzJfdCBkcjY7Ci0gIF9fdWludDMyX3QgZHI3OwotICBzdHJ1 Y3QgX2Zwc3RhdGUgZnBzdGF0ZTsKLSAgX191aW50MzJfdCBnczsKLSAgX191aW50MzJfdCBmczsK LSAgX191aW50MzJfdCBlczsKLSAgX191aW50MzJfdCBkczsKLSAgX191aW50MzJfdCBlZGk7Ci0g IF9fdWludDMyX3QgZXNpOwotICBfX3VpbnQzMl90IGVieDsKLSAgX191aW50MzJfdCBlZHg7Ci0g IF9fdWludDMyX3QgZWN4OwotICBfX3VpbnQzMl90IGVheDsKLSAgX191aW50MzJfdCBlYnA7Ci0g IF9fdWludDMyX3QgZWlwOwotICBfX3VpbnQzMl90IGNzOwotICBfX3VpbnQzMl90IGVmbGFnczsK LSAgX191aW50MzJfdCBlc3A7Ci0gIF9fdWludDMyX3Qgc3M7Ci0gIF9fdWludDMyX3QgcmVzZXJ2 ZWRbMTI4XTsKLSAgX191aW50MzJfdCBvbGRtYXNrOwotICBfX3VpbnQzMl90IGNyMjsKLX07Ci0K LSNlbmRpZiAvKiAheDg2XzY0ICovCi0KIC8qIE5lZWRlZCBmb3IgR0RCLiAgSXQgb25seSBjb21w aWxlcyBpbiB0aGUgY29udGV4dCBjb3B5IGNvZGUgaWYgdGhpcyBtYWNybyBpcwogICAgZGVmaW5l ZC4gIFRoaXMgaXMgbm90IHNpemVvZihDT05URVhUKSBkdWUgdG8gaGlzdG9yaWNhbCBhY2NpZGVu dHMuICovCi0jaWZkZWYgX194ODZfNjRfXwogI2RlZmluZSBfX0NPUFlfQ09OVEVYVF9TSVpFIDgx NgotI2Vsc2UKLSNkZWZpbmUgX19DT1BZX0NPTlRFWFRfU0laRSAyMDQKLSNlbmRpZgogCiB0eXBl ZGVmIHVuaW9uIHNpZ3ZhbAogewpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL3N5 cy9jeWd3aW4uaCBiL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9zeXMvY3lnd2luLmgKaW5kZXggNTUz MmNiNjgzLi4yYzU5OTdiNWUgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9zeXMv Y3lnd2luLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL3N5cy9jeWd3aW4uaApAQCAtMzMw LDExICszMzAsNyBAQCBzdHJ1Y3QgcGVyX3Byb2Nlc3MKICAgRFdPUkQgYXBpX21pbm9yOwkJLyog IGxpbmtlZCB3aXRoICovCiAgIC8qIEZvciBmdXR1cmUgZXhwYW5zaW9uLCBzbyBhcHBzIHdvbid0 IGhhdmUgdG8gYmUgcmVsaW5rZWQgaWYgd2UKICAgICAgYWRkIGFuIGl0ZW0uICovCi0jaWZkZWYg X194ODZfNjRfXwogICBEV09SRF9QVFIgdW51c2VkMls0XTsKLSNlbHNlCi0gIERXT1JEX1BUUiB1 bnVzZWQyWzJdOwotI2VuZGlmCiAKICAgaW50ICgqcG9zaXhfbWVtYWxpZ24pKHZvaWQgKiosIHNp emVfdCwgc2l6ZV90KTsKIApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL3N5cy9k aXJlbnQuaCBiL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9zeXMvZGlyZW50LmgKaW5kZXggMGU3YTc4 Y2MwLi40MGU1ZTc3MjkgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9zeXMvZGly ZW50LmgKKysrIGIvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL3N5cy9kaXJlbnQuaApAQCAtMTUsOSAr MTUsNiBAQAogCiAjZGVmaW5lIF9fRElSRU5UX1ZFUlNJT04JMgogCi0jaWZkZWYgX19pMzg2X18K LSNwcmFnbWEgcGFjayhwdXNoLDQpCi0jZW5kaWYKICNkZWZpbmUgX0RJUkVOVF9IQVZFX0RfVFlQ RQogc3RydWN0IGRpcmVudAogewpAQCAtMjgsMjEgKzI1LDExIEBAIHN0cnVjdCBkaXJlbnQKICAg X191aW50MzJfdCBfX2RfaW50ZXJuYWwxOwogICBjaGFyIGRfbmFtZVtOQU1FX01BWCArIDFdOwog fTsKLSNpZmRlZiBfX2kzODZfXwotI3ByYWdtYSBwYWNrKHBvcCkKLSNlbmRpZgogCiAjZGVmaW5l IGRfZmlsZW5vIGRfaW5vCQkJLyogQlNEIGNvbXBhdGlibGUgZGVmaW5pdGlvbiAqLwogCi0jaWZk ZWYgX194ODZfNjRfXwogI2RlZmluZSBfX0RJUkVOVF9DT09LSUUgMHhjZGNkODQ4NAotI2Vsc2UK LSNkZWZpbmUgX19ESVJFTlRfQ09PS0lFIDB4ZGVkZTQyNDIKLSNlbmRpZgogCi0jaWZkZWYgX19p Mzg2X18KLSNwcmFnbWEgcGFjayhwdXNoLDQpCi0jZW5kaWYKIHR5cGVkZWYgc3RydWN0IF9fRElS CiB7CiAgIC8qIFRoaXMgaXMgZmlyc3QgdG8gc2V0IGFsaWdubWVudCBpbiBub24gX0xJQkMgY2Fz ZS4gICovCkBAIC01Niw5ICs0Myw2IEBAIHR5cGVkZWYgc3RydWN0IF9fRElSCiAgIHZvaWQgKl9f Zmg7CiAgIHVuc2lnbmVkIF9fZmxhZ3M7CiB9IERJUjsKLSNpZmRlZiBfX2kzODZfXwotI3ByYWdt YSBwYWNrKHBvcCkKLSNlbmRpZgogCiAjaWYgX19CU0RfVklTSUJMRQogI2lmZGVmIF9ESVJFTlRf SEFWRV9EX1RZUEUKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vaW5pdC5jYyBiL3dpbnN1cC9j eWd3aW4vaW5pdC5jYwppbmRleCBhYjIwY2U1NzcuLmQ4MjJhMzg1MSAxMDA2NDQKLS0tIGEvd2lu c3VwL2N5Z3dpbi9pbml0LmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vaW5pdC5jYwpAQCAtMTksOSAr MTksNiBAQCB1bnNpZ25lZCB0aHJlYWRmdW5jX2l4WzhdOwogc3RhdGljIGJvb2wgZGxsX2Zpbmlz aGVkX2xvYWRpbmc7CiAjZGVmaW5lIE9MREZVTkNfT0ZGU0VUIC0xCiAKLSNpZmRlZiBfX2kzODZf XwotX19hdHRyaWJ1dGVfXyAoKGZvcmNlX2FsaWduX2FyZ19wb2ludGVyKSkKLSNlbmRpZgogc3Rh dGljIHZvaWQgV0lOQVBJCiB0aHJlYWRmdW5jX2ZlIChWT0lEICphcmcpCiB7CmRpZmYgLS1naXQg YS93aW5zdXAvY3lnd2luL2xpYi9fY3lnd2luX2NydDBfY29tbW9uLmNjIGIvd2luc3VwL2N5Z3dp bi9saWIvX2N5Z3dpbl9jcnQwX2NvbW1vbi5jYwppbmRleCA2YzUxNDIyYjguLjM2NTAxNTAxMSAx MDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9saWIvX2N5Z3dpbl9jcnQwX2NvbW1vbi5jYworKysg Yi93aW5zdXAvY3lnd2luL2xpYi9fY3lnd2luX2NydDBfY29tbW9uLmNjCkBAIC0xNCwxNyArMTQs MTAgQEAgZGV0YWlscy4gKi8KICAgIHVubmVjZXNzYXJpbHkuICAqLwogI2RlZmluZSBXRUFLIF9f YXR0cmlidXRlX18gKCh3ZWFrKSkKIAotI2lmZGVmIF9feDg2XzY0X18KICNkZWZpbmUgUkVBTF9a TldYCQkiX19yZWFsX19abndtIgogI2RlZmluZSBSRUFMX1pOQVgJCSJfX3JlYWxfX1puYW0iCiAj ZGVmaW5lIFJFQUxfWk5XWF9OT1RIUk9XX1QJIl9fcmVhbF9fWm53bVJLU3Q5bm90aHJvd190Igog I2RlZmluZSBSRUFMX1pOQVhfTk9USFJPV19UCSJfX3JlYWxfX1puYW1SS1N0OW5vdGhyb3dfdCIK LSNlbHNlCi0jZGVmaW5lIFJFQUxfWk5XWAkJIl9fX3JlYWxfX1pud2oiCi0jZGVmaW5lIFJFQUxf Wk5BWAkJIl9fX3JlYWxfX1puYWoiCi0jZGVmaW5lIFJFQUxfWk5XWF9OT1RIUk9XX1QJIl9fX3Jl YWxfX1pud2pSS1N0OW5vdGhyb3dfdCIKLSNkZWZpbmUgUkVBTF9aTkFYX05PVEhST1dfVAkiX19f cmVhbF9fWm5halJLU3Q5bm90aHJvd190IgotI2VuZGlmCiAjZGVmaW5lIFJFQUxfWkRMUFYJCV9T WU1TVFIgKF9fcmVhbF9fWmRsUHYpCiAjZGVmaW5lIFJFQUxfWkRBUFYJCV9TWU1TVFIgKF9fcmVh bF9fWmRhUHYpCiAjZGVmaW5lIFJFQUxfWkRMUFZfTk9USFJPV19UCV9TWU1TVFIgKF9fcmVhbF9f WmRsUHZSS1N0OW5vdGhyb3dfdCkKQEAgLTY1LDEyICs1OCw4IEBAIGludCBfZm1vZGU7CiAKIGV4 dGVybiBjaGFyIF9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9fOwogZXh0ZXJuIGNoYXIgX19S VU5USU1FX1BTRVVET19SRUxPQ19MSVNUX0VORF9fOwotI2lmZGVmIF9feDg2XzY0X18KIGV4dGVy biBjaGFyIF9faW1hZ2VfYmFzZV9fOwogI2RlZmluZSBfaW1hZ2VfYmFzZV9fIF9faW1hZ2VfYmFz ZV9fCi0jZWxzZQotZXh0ZXJuIGNoYXIgX2ltYWdlX2Jhc2VfXzsKLSNlbmRpZgogCiBzdHJ1Y3Qg cGVyX3Byb2Nlc3NfY3h4X21hbGxvYyBfX2N5Z3dpbl9jeHhfbWFsbG9jID0KIHsKZGlmZiAtLWdp dCBhL3dpbnN1cC9jeWd3aW4vbGlic3RkY3h4X3dyYXBwZXIuY2MgYi93aW5zdXAvY3lnd2luL2xp YnN0ZGN4eF93cmFwcGVyLmNjCmluZGV4IDJjNDFiMzc1OS4uMzQ5MTFkMGUxIDEwMDY0NAotLS0g YS93aW5zdXAvY3lnd2luL2xpYnN0ZGN4eF93cmFwcGVyLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4v bGlic3RkY3h4X3dyYXBwZXIuY2MKQEAgLTIwLDE3ICsyMCwxMCBAQCBkZXRhaWxzLiAgKi8KICAg IGFyb3VuZCB0aGUgc3RhbmRhcmQgQysrIG1lbW9yeSBtYW5hZ2VtZW50IG9wZXJhdG9yczsgdGhl c2UgYXJlIHRoZSB3cmFwcGVycywKICAgIGJ1dCB3ZSB3YW50IHRoZSBjb21waWxlciB0byBrbm93 IHRoZXkgYXJlIHRoZSBtYWxsb2Mgb3BlcmF0b3JzIGFuZCBub3QgaGF2ZQogICAgaXQgdGhpbmsg dGhleSdyZSBqdXN0IGFueSBvbGQgZnVuY3Rpb24gbWF0Y2hpbmcgJ2V4dGVybiAiQyIgX3dyYXBf KicuICAqLwotI2lmZGVmIF9feDg2XzY0X18KICNkZWZpbmUgTUFOR0xFRF9aTldYCQkJIl9fd3Jh cF9fWm53bSIKICNkZWZpbmUgTUFOR0xFRF9aTkFYCQkJIl9fd3JhcF9fWm5hbSIKICNkZWZpbmUg TUFOR0xFRF9aTldYX05PVEhST1dfVAkJIl9fd3JhcF9fWm53bVJLU3Q5bm90aHJvd190IgogI2Rl ZmluZSBNQU5HTEVEX1pOQVhfTk9USFJPV19UCQkiX193cmFwX19abmFtUktTdDlub3Rocm93X3Qi Ci0jZWxzZQotI2RlZmluZSBNQU5HTEVEX1pOV1gJCQkiX19fd3JhcF9fWm53aiIKLSNkZWZpbmUg TUFOR0xFRF9aTkFYCQkJIl9fX3dyYXBfX1puYWoiCi0jZGVmaW5lIE1BTkdMRURfWk5XWF9OT1RI Uk9XX1QJCSJfX193cmFwX19abndqUktTdDlub3Rocm93X3QiCi0jZGVmaW5lIE1BTkdMRURfWk5B WF9OT1RIUk9XX1QJCSJfX193cmFwX19abmFqUktTdDlub3Rocm93X3QiCi0jZW5kaWYKIAogZXh0 ZXJuIHZvaWQgKm9wZXJhdG9yIG5ldyhzdGQ6OnNpemVfdCBzeikgbm9leGNlcHQgKGZhbHNlKQog CQkJX19hc21fXyAoTUFOR0xFRF9aTldYKTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vbWlz Y2Z1bmNzLmNjIGIvd2luc3VwL2N5Z3dpbi9taXNjZnVuY3MuY2MKaW5kZXggYzNlNjNmNDMzLi5k OWNhZjliNzMgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vbWlzY2Z1bmNzLmNjCisrKyBiL3dp bnN1cC9jeWd3aW4vbWlzY2Z1bmNzLmNjCkBAIC0zMzQsMTIgKzMzNCw4IEBAIF9faW1wb3J0X2Fk ZHJlc3MgKHZvaWQgKmltcCkKICAgICAgIGlmICgqKCh1aW50MTZfdCAqKSBpbXApID09IDB4MjVm ZikKIAl7CiAJICBjb25zdCBjaGFyICpwdHIgPSAoY29uc3QgY2hhciAqKSBpbXA7Ci0jaWZkZWYg X194ODZfNjRfXwogCSAgY29uc3QgdWludHB0cl90ICpqbXB0byA9ICh1aW50cHRyX3QgKikKIAkJ CQkgICAocHRyICsgNiArICooaW50MzJfdCAqKShwdHIgKyAyKSk7Ci0jZWxzZQotCSAgY29uc3Qg dWludHB0cl90ICpqbXB0byA9ICh1aW50cHRyX3QgKikgKigodWludHB0cl90ICopIChwdHIgKyAy KSk7Ci0jZW5kaWYKIAkgIHJldHVybiAodm9pZCAqKSAqam1wdG87CiAJfQogICAgIH0KQEAgLTQx Nyw0MSArNDEzLDYgQEAgcHRocmVhZF93cmFwcGVyIChQVk9JRCBhcmcpCiAgIC8qIEluaXRpYWxp emUgbmV3IF9jeWd0bHMuICovCiAgIF9teV90bHMuaW5pdF90aHJlYWQgKHdyYXBwZXJfYXJnLnN0 YWNrYmFzZSAtIF9fQ1lHVExTX1BBRFNJWkVfXywKIAkJICAgICAgIChEV09SRCAoKikodm9pZCos IHZvaWQqKSkgd3JhcHBlcl9hcmcuZnVuYyk7Ci0jaWZkZWYgX19pMzg2X18KLSAgLyogQ29weSBl eGNlcHRpb24gbGlzdCBvdmVyIHRvIG5ldyBzdGFjay4gIEknbSBub3QgcXVpdGUgc3VyZSBob3cg dGhlCi0gICAgIGV4Y2VwdGlvbiBsaXN0IGlzIGV4dGVuZGVkIGJ5IFdpbmRvd3MgaXRzZWxmLiAg V2hhdCdzIGNsZWFyIGlzIHRoYXQgaXQKLSAgICAgYWx3YXlzIGdyb3dzIGRvd253YXJkcyBhbmQg dGhhdCBpdCBzdGFydHMgcmlnaHQgYXQgdGhlIHN0YWNrYmFzZS4KLSAgICAgVGhlcmVmb3JlIHdl IGZpcnN0IGNvdW50IHRoZSBudW1iZXIgb2YgZXhjZXB0aW9uIHJlY29yZHMgYW5kIHBsYWNlCi0g ICAgIHRoZSBjb3B5IGF0IHRoZSBzdGFja2Jhc2UsIHRvbywgc28gdGhlcmUncyBzdGlsbCBhIGxv dCBvZiByb29tIHRvCi0gICAgIGV4dGVuZCB0aGUgbGlzdCB1cCB0byB3aGVyZSBvdXIgX2N5Z3Rs cyByZWdpb24gc3RhcnRzLiAqLwotICBfZXhjZXB0aW9uX2xpc3QgKm9sZF9zdGFydCA9IChfZXhj ZXB0aW9uX2xpc3QgKikgdGViLT5UaWIuRXhjZXB0aW9uTGlzdDsKLSAgdW5zaWduZWQgY291bnQg PSAwOwotICB0ZWItPlRpYi5FeGNlcHRpb25MaXN0ID0gTlVMTDsKLSAgZm9yIChfZXhjZXB0aW9u X2xpc3QgKmVfcHRyID0gb2xkX3N0YXJ0OwotICAgICAgIGVfcHRyICYmIGVfcHRyICE9IChfZXhj ZXB0aW9uX2xpc3QgKikgLTE7Ci0gICAgICAgZV9wdHIgPSBlX3B0ci0+cHJldikKLSAgICArK2Nv dW50OwotICBpZiAoY291bnQpCi0gICAgewotICAgICAgX2V4Y2VwdGlvbl9saXN0ICpuZXdfc3Rh cnQgPSAoX2V4Y2VwdGlvbl9saXN0ICopIHdyYXBwZXJfYXJnLnN0YWNrYmFzZQotCQkJCQkJICAg ICAgIC0gY291bnQ7Ci0gICAgICB0ZWItPlRpYi5FeGNlcHRpb25MaXN0ID0gKHN0cnVjdCBfRVhD RVBUSU9OX1JFR0lTVFJBVElPTl9SRUNPUkQgKikKLQkJCSAgICAgICBuZXdfc3RhcnQ7Ci0gICAg ICB3aGlsZSAodHJ1ZSkKLQl7Ci0JICBuZXdfc3RhcnQtPmhhbmRsZXIgPSBvbGRfc3RhcnQtPmhh bmRsZXI7Ci0JICBpZiAob2xkX3N0YXJ0LT5wcmV2ID09IChfZXhjZXB0aW9uX2xpc3QgKikgLTEp Ci0JICAgIHsKLQkgICAgICBuZXdfc3RhcnQtPnByZXYgPSAoX2V4Y2VwdGlvbl9saXN0ICopIC0x OwotCSAgICAgIGJyZWFrOwotCSAgICB9Ci0JICBuZXdfc3RhcnQtPnByZXYgPSBuZXdfc3RhcnQg KyAxOwotCSAgbmV3X3N0YXJ0ID0gbmV3X3N0YXJ0LT5wcmV2OwotCSAgb2xkX3N0YXJ0ID0gb2xk X3N0YXJ0LT5wcmV2OwotCX0KLSAgICB9Ci0jZW5kaWYKLSNpZmRlZiBfX3g4Nl82NF9fCiAgIF9f YXNtX18gKCJcblwKIAkgICBsZWFxICAlW1dSQVBQRVJfQVJHXSwgJSVyYngJIyBMb2FkICZ3cmFw cGVyX2FyZyBpbnRvIHJieAlcblwKIAkgICBtb3ZxICAoJSVyYngpLCAlJXIxMgkJIyBMb2FkIHRo cmVhZCBmdW5jIGludG8gcjEyCVxuXApAQCAtNDc1LDQ0ICs0MzYsMTEgQEAgcHRocmVhZF93cmFw cGVyIChQVk9JRCBhcmcpCiAJICAgY2FsbCAgKiUlcjEyCQkJIyBDYWxsIHRocmVhZCBmdW5jCQlc biIKIAkgICA6IDogW1dSQVBQRVJfQVJHXSAibyIgKHdyYXBwZXJfYXJnKSwKIAkgICAgICAgW0NZ R1RMU10gImkiIChfX0NZR1RMU19QQURTSVpFX18pKTsKLSNlbHNlCi0gIF9fYXNtX18gKCJcblwK LQkgICBsZWFsICAlW1dSQVBQRVJfQVJHXSwgJSVlYngJIyBMb2FkICZ3cmFwcGVyX2FyZyBpbnRv IGVieAlcblwKLQkgICBtb3ZsICAoJSVlYngpLCAlJWVheAkJIyBMb2FkIHRocmVhZCBmdW5jIGlu dG8gZWF4CVxuXAotCSAgIG1vdmwgIDQoJSVlYngpLCAlJWVjeAkjIExvYWQgdGhyZWFkIGFyZyBp bnRvIGVjeAlcblwKLQkgICBtb3ZsICA4KCUlZWJ4KSwgJSVlZHgJIyBMb2FkIHN0YWNrYWRkciBp bnRvIGVkeAlcblwKLQkgICBtb3ZsICAxMiglJWVieCksICUlZWJ4CSMgTG9hZCBzdGFja2Jhc2Ug aW50byBlYngJXG5cCi0JICAgc3VibCAgJVtDWUdUTFNdLCAlJWVieAkjIFN1YnRyYWN0IF9fQ1lH VExTX1BBRFNJWkVfXwlcblwKLQkgICBzdWJsICAkNCwgJSVlYngJCSMgU3VidHJhY3QgYW5vdGhl ciA0IGJ5dGVzCVxuXAotCSAgIG1vdmwgICUlZWJ4LCAlJWVzcAkJIyBTZXQgZXNwCQkJXG5cCi0J ICAgeG9ybCAgJSVlYnAsICUlZWJwCQkjIFNldCBlYnAgdG8gMAkJCVxuXAotCSAgICMgTWFrZSBn Y2MgMy54IGhhcHB5IGFuZCBhbGlnbiB0aGUgc3RhY2sgc28gdGhhdCBpdCBpcwlcblwKLQkgICAj IDE2IGJ5dGUgYWxpZ25lZCByaWdodCBiZWZvcmUgdGhlIGZpbmFsIGNhbGwgb3Bjb2RlLglcblwK LQkgICBhbmRsICAkLTE2LCAlJWVzcAkJIyAxNiBieXRlIGFsaWduCQkJXG5cCi0JICAgYWRkbCAg JC0xMiwgJSVlc3AJCSMgMTIgYnl0ZXMgKyA0IGJ5dGUgYXJnID0gMTYJXG5cCi0JICAgIyBOb3cg d2UgbW92ZWQgdG8gdGhlIG5ldyBzdGFjay4gIFNhdmUgdGhyZWFkIGZ1bmMgYWRkcmVzcwlcblwK LQkgICAjIGFuZCB0aHJlYWQgYXJnIG9uIG5ldyBzdGFjawkJCQlcblwKLQkgICBwdXNobCAlJWVj eAkJCSMgUHVzaCB0aHJlYWQgYXJnIG9udG8gc3RhY2sJXG5cCi0JICAgcHVzaGwgJSVlYXgJCQkj IFB1c2ggdGhyZWFkIGZ1bmMgb250byBzdGFjawlcblwKLQkgICAjIE5vdyBpdCdzIHNhZmUgdG8g cmVsZWFzZSB0aGUgT1Mgc3RhY2suCQkJXG5cCi0JICAgcHVzaGwgJDB4ODAwMAkJIyBkd0ZyZWVU eXBlOiBNRU1fUkVMRUFTRQlcblwKLQkgICBwdXNobCAkMHgwCQkJIyBkd1NpemU6ICAgICAwCQkJ XG5cCi0JICAgcHVzaGwgJSVlZHgJCQkjIGxwQWRkcmVzczogIHN0YWNrYWRkcgkJXG5cCi0JICAg Y2FsbCBfVmlydHVhbEZyZWVAMTIJCSMgU2hvb3QJCQkJXG5cCi0JICAgIyBBbGwgc2V0LiAgV2Ug Y2FuIHBvcCB0aGUgdGhyZWFkIGZ1bmN0aW9uIGFkZHJlc3MgZnJvbQlcblwKLQkgICAjIHRoZSBz dGFjayBhbmQgY2FsbCBpdC4gIFRoZSB0aHJlYWQgYXJnIGlzIHN0aWxsIG9uIHRoZQlcblwKLQkg ICAjIHN0YWNrIGluIHRoZSBleHBlY3RlZCBzcG90LgkJCQlcblwKLQkgICBwb3BsICAlJWVheAkJ CSMgUG9wIHRocmVhZF9mdW5jIGFkZHJlc3MJXG5cCi0JICAgY2FsbCAgKiUlZWF4CQkJIyBDYWxs IHRocmVhZCBmdW5jCQlcbiIKLQkgICA6IDogW1dSQVBQRVJfQVJHXSAibyIgKHdyYXBwZXJfYXJn KSwKLQkgICAgICAgW0NZR1RMU10gImkiIChfX0NZR1RMU19QQURTSVpFX18pKTsKLSNlbmRpZgog ICAvKiBwdGhyZWFkOjp0aHJlYWRfaW5pdF93cmFwcGVyIGNhbGxzIHB0aHJlYWQ6OmV4aXQsIHdo aWNoCiAgICAgIGluIHR1cm4gY2FsbHMgRXhpdFRocmVhZCwgc28gd2Ugc2hvdWxkIG5ldmVyIGFy cml2ZSBoZXJlLiAqLwogICBhcGlfZmF0YWwgKCJEdW1iIHRoaW5rbyBpbiBwdGhyZWFkIGhhbmRs aW5nLiAgV2hpcCB0aGUgZGV2ZWxvcGVyLiIpOwogfQogCi0jaWZkZWYgX194ODZfNjRfXwogLyog VGhlIG1lbW9yeSByZWdpb24gdXNlZCBmb3IgdGhyZWFkIHN0YWNrcy4gVGhlIG1lbW9yeSBsYXlv dXQgaXMgb3V0bGluZWQKICAgIGluIGhlYXAuY2MsIGZ1bmN0aW9uIGV2YWxfc3RhcnRfYWRkcmVz cygpLiAqLwogI2RlZmluZSBUSFJFQURfU1RPUkFHRV9MT1cJMHg2MDAwMDAwMDBMCkBAIC02NjUs NyArNTkzLDYgQEAgY3JlYXRlX25ld19tYWluX3RocmVhZF9zdGFjayAoUFZPSUQgJmFsbG9jYXRp b25iYXNlKQogICBOdEN1cnJlbnRUZWIoKS0+VGliLlN0YWNrTGltaXQgPSBzdGFja2xpbWl0Owog ICByZXR1cm4gKChQQllURSkgYWxsb2NhdGlvbmJhc2UgKyBzdGFja3NpemUgLSAxNik7CiB9Ci0j ZW5kaWYKIAogSEFORExFIFdJTkFQSQogQ3lnd2luQ3JlYXRlVGhyZWFkIChMUFRIUkVBRF9TVEFS VF9ST1VUSU5FIHRocmVhZF9mdW5jLCBQVk9JRCB0aHJlYWRfYXJnLApAQCAtNzEwLDE3ICs2Mzcs NyBAQCBDeWd3aW5DcmVhdGVUaHJlYWQgKExQVEhSRUFEX1NUQVJUX1JPVVRJTkUgdGhyZWFkX2Z1 bmMsIFBWT0lEIHRocmVhZF9hcmcsCiAgICAgICByZWFsX3N0YWNrc2l6ZSA9IHJvdW5kdXAyIChy ZWFsX3N0YWNrc2l6ZSwKIAkJCQkgd2luY2FwLmFsbG9jYXRpb25fZ3JhbnVsYXJpdHkgKCkpOwog ICAgICAgLyogUmVzZXJ2ZSBzdGFjay4gKi8KLSNpZmRlZiBfX3g4Nl82NF9fCiAgICAgICByZWFs X3N0YWNrYWRkciA9IHRocl9hbGxvYy5hbGxvYyAocmVhbF9zdGFja3NpemUpOwotI2Vsc2UKLSAg ICAgIC8qIEZJWE1FPyBJZiB0aGUgVE9QX0RPV04gbWV0aG9kIHRlbmRzIHRvIGNvbGxpZGUgdG9v IG11Y2ggd2l0aAotCSBvdGhlciBzdHVmZiwgd2Ugc2hvdWxkIHByb3ZpZGUgb3VyIG93biBtZWNo YW5pc20gdG8gZmluZCBhCi0JIHN1aXRhYmxlIHBsYWNlIGZvciB0aGUgc3RhY2suICBUb3AgZG93 biBmcm9tIHRoZSBzdGFydCBvZgotCSB0aGUgQ3lnd2luIERMTCBjb21lcyB0byBtaW5kLiAqLwot ICAgICAgcmVhbF9zdGFja2FkZHIgPSBWaXJ0dWFsQWxsb2MgKE5VTEwsIHJlYWxfc3RhY2tzaXpl LAotCQkJCSAgICAgTUVNX1JFU0VSVkUgfCBNRU1fVE9QX0RPV04sCi0JCQkJICAgICBQQUdFX1JF QURXUklURSk7Ci0jZW5kaWYKICAgICAgIGlmICghcmVhbF9zdGFja2FkZHIpCiAJcmV0dXJuIE5V TEw7CiAgICAgICAvKiBTZXQgdXAgY29tbWl0dGVkIHJlZ2lvbi4gIFdlIHNldCB1cCB0aGUgc3Rh Y2sgbGlrZSB0aGUgT1MgZG9lcywKQEAgLTc4MSw3ICs2OTgsNiBAQCBlcnI6CiAgIHJldHVybiB0 aHJlYWQ7CiB9CiAKLSNpZmRlZiBfX3g4Nl82NF9fCiAvKiBUaGVzZSBmdW5jdGlvbnMgYXJlIGFs bW9zdCB2ZXJiYXRpbSBGcmVlQlNEIGNvZGUgKGV2ZW4gaWYgdGhlIGhlYWRlciBvZgogICAgb25l IGZpbGUgbWVudGlvbmVzIE5ldEJTRCksIGp1c3Qgd3JhcHBlZCBpbiB0aGUgbWluaW11bSByZXF1 aXJlZCBjb2RlIHRvCiAgICBtYWtlIHRoZW0gd29yayB3aXRoIHRoZSBNUyBBTUQ2NCBBQkkuCkBA IC05ODQsOCArOTAwLDYgQEAgd21lbXBjcHk6CQkJCQkJCQlcblwKIAkuc2VoX2VuZHByb2MJCQkJ CQkJXG5cCiAiKTsKIAotI2VuZGlmCi0KIC8qIFNpZ25hbCB0aGUgdGhyZWFkIG5hbWUgdG8gYW55 IGF0dGFjaGVkIGRlYnVnZ2VyCiAKICAgIChTZWUgIkhvdyB0bzogU2V0IGEgVGhyZWFkIE5hbWUg aW4gTmF0aXZlIENvZGUiCkBAIC0xMDA0LDE4ICs5MTgsOCBAQCBTZXRUaHJlYWROYW1lKERXT1JE IGR3VGhyZWFkSUQsIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCiAgICAgICAweDEwMDAsICAgICAg ICAgICAgICAgICAvKiB0eXBlLCBtdXN0IGJlIDB4MTAwMCAqLwogICAgICAgKFVMT05HX1BUUikg dGhyZWFkTmFtZSwgLyogcG9pbnRlciB0byB0aHJlYWRuYW1lICovCiAgICAgICBkd1RocmVhZElE LCAgICAgICAgICAgICAvKiB0aHJlYWQgSUQgKCsgZmxhZ3Mgb24geDg2XzY0KSAqLwotI2lmZGVm IF9YODZfCi0gICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKiBmbGFncywgbXVzdCBiZSB6 ZXJvICovCi0jZW5kaWYKICAgICB9OwogCi0jaWZkZWYgX1g4Nl8KLSAgLyogT24geDg2LCBmb3Ig X190cnkvX19leGNlcHQgdG8gd29yaywgd2UgbXVzdCBlbnN1cmUgb3VyIGV4Y2VwdGlvbiBoYW5k bGVyIGlzCi0gICAgIGluc3RhbGxlZCwgd2hpY2ggbWF5IG5vdCBiZSB0aGUgY2FzZSBpZiB0aGlz IGlzIGJlaW5nIGNhbGxlZCBkdXJpbmcgZWFybHkKLSAgICAgaW5pdGlhbGl6YXRpb24uICovCi0g IGV4Y2VwdGlvbiBwcm90ZWN0OwotI2VuZGlmCi0KICAgX190cnkKICAgICB7CiAgICAgICBSYWlz ZUV4Y2VwdGlvbiAoTVNfVkNfRVhDRVBUSU9OLCAwLCBzaXplb2YgKGluZm8pIC8gc2l6ZW9mIChV TE9OR19QVFIpLApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9taXNjZnVuY3MuaCBiL3dpbnN1 cC9jeWd3aW4vbWlzY2Z1bmNzLmgKaW5kZXggYjBmOGMyNDJjLi41NjUwMjk1NjEgMTAwNjQ0Ci0t LSBhL3dpbnN1cC9jeWd3aW4vbWlzY2Z1bmNzLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9taXNjZnVu Y3MuaApAQCAtMTA4LDkgKzEwOCw3IEBAIHNzaXplX3QgY2hlY2tfaW92ZWMgKGNvbnN0IHN0cnVj dCBpb3ZlYyAqLCBpbnQsIGJvb2wpOwogI2RlZmluZSBjaGVja19pb3ZlY19mb3JfcmVhZChhLCBi KSBjaGVja19pb3ZlYyAoKGEpLCAoYiksIGZhbHNlKQogI2RlZmluZSBjaGVja19pb3ZlY19mb3Jf d3JpdGUoYSwgYikgY2hlY2tfaW92ZWMgKChhKSwgKGIpLCB0cnVlKQogCi0jaWZkZWYgX194ODZf NjRfXwogZXh0ZXJuIFBWT0lEIGNyZWF0ZV9uZXdfbWFpbl90aHJlYWRfc3RhY2sgKFBWT0lEICZh bGxvY2F0aW9uYmFzZSk7Ci0jZW5kaWYKIAogZXh0ZXJuICJDIiBEV09SRCBXSU5BUEkgcHRocmVh ZF93cmFwcGVyIChQVk9JRCBhcmcpOwogZXh0ZXJuICJDIiBIQU5ETEUgV0lOQVBJIEN5Z3dpbkNy ZWF0ZVRocmVhZCAoTFBUSFJFQURfU1RBUlRfUk9VVElORSB0aHJlYWRfZnVuYywKZGlmZiAtLWdp dCBhL3dpbnN1cC9jeWd3aW4vbW1hcC5jYyBiL3dpbnN1cC9jeWd3aW4vbW1hcC5jYwppbmRleCA1 YWE2ZDBjMDkuLjk0OGVlZWMxZiAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9tbWFwLmNjCisr KyBiL3dpbnN1cC9jeWd3aW4vbW1hcC5jYwpAQCAtMTk2LDcgKzE5Niw2IEBAIE1hcFZpZXcgKEhB TkRMRSBoLCB2b2lkICphZGRyLCBzaXplX3QgbGVuLCBEV09SRCBvcGVuZmxhZ3MsCiAgIFNJWkVf VCB2aWV3c2l6ZSA9IGxlbjsKICAgVUxPTkcgYWxsb2NfdHlwZSA9IE1FTV9UT1BfRE9XTjsKIAot I2lmZGVmIF9feDg2XzY0X18KICAgLyogRG9uJ3QgY2FsbCBOdE1hcFZpZXdPZlNlY3Rpb25FeCBk dXJpbmcgZm9yay4gIEl0IHJlcXVpcmVzIGF1dG9sb2FkaW5nCiAgICAgIGEgZnVuY3Rpb24gdW5k ZXIgbG9hZGVyIGxvY2sgKFNUQVRVU19ETExfSU5JVF9GQUlMRUQpLiAqLwogICBpZiAoIWZyb21f Zml4dXBfYWZ0ZXJfZm9yayAmJiB3aW5jYXAuaGFzX2V4dGVuZGVkX21lbV9hcGkgKCkpCkBAIC0y MzIsNyArMjMxLDYgQEAgTWFwVmlldyAoSEFORExFIGgsIHZvaWQgKmFkZHIsIHNpemVfdCBsZW4s IERXT1JEIG9wZW5mbGFncywKIAkJICAgIGJhc2UsIHN0YXR1cywgaCwgYWRkciwgb2ZmLCB2aWV3 c2l6ZSwgYWxsb2NfdHlwZSwgcHJvdGVjdCk7CiAgICAgICByZXR1cm4gYmFzZTsKICAgICB9Ci0j ZW5kaWYKIAogICAvKiBUcnkgbWFwcGluZyB1c2luZyB0aGUgZ2l2ZW4gYWRkcmVzcyBmaXJzdCwg ZXZlbiBpZiBpdCdzIE5VTEwuCiAgICAgIElmIGl0IGZhaWxlZCwgYW5kIGFkZHIgd2FzIG5vdCBO VUxMIGFuZCBmbGFncyBpcyBub3QgTUFQX0ZJWEVELApAQCAtMTA2Myw0MCArMTA2MSw4IEBAIGdv X2FoZWFkOgogICAgIH0KIAogICBvcmlnX2xlbiA9IHJvdW5kdXAyIChvcmlnX2xlbiwgcGFnZXNp emUpOwotI2lmZGVmIF9feDg2XzY0X18KICAgaWYgKCF3aW5jYXAuaGFzX2V4dGVuZGVkX21lbV9h cGkgKCkpCiAgICAgYWRkciA9IG1tYXBfYWxsb2MuYWxsb2MgKGFkZHIsIG9yaWdfbGVuID86IGxl biwgZml4ZWQgKGZsYWdzKSk7Ci0jZWxzZQotICBpZiAob3JpZ19sZW4pCi0gICAgewotICAgICAg LyogSWYgdGhlIHJlcXVlc3RlZCBsZW5ndGggaXMgYmlnZ2VyIHRoYW4gdGhlIGZpbGUgc2l6ZSwg d2UgdHJ5IHRvCi0JIGFsbG9jYXRlIGFuIGFyZWEgb2YgdGhlIGZ1bGwgc2l6ZSBmaXJzdC4gIFRo aXMgYXJlYSBpcyBpbW1lZGlhdGVseQotCSBkZWFsbG9jYXRlZCBhbmQgdGhlIGFkZHJlc3Mgd2Ug Z290IGlzIHVzZWQgYXMgYmFzZSBhZGRyZXNzIGZvciB0aGUKLQkgc3Vic2VxdWVudCByZWFsIG1h cHBpbmdzLiAgVGhpcyBlbnN1cmVzIHRoYXQgd2UgaGF2ZSBlbm91Z2ggc3BhY2UKLQkgZm9yIHRo ZSB3aG9sZSB0aGluZy4gKi8KLSAgICAgIFBWT0lEIG5ld2FkZHIgPSBWaXJ0dWFsQWxsb2MgKGFk ZHIsIG9yaWdfbGVuLCBNRU1fVE9QX0RPV04gfCBNRU1fUkVTRVJWRSwKLQkJCQkgICAgUEFHRV9S RUFEV1JJVEUpOwotICAgICAgaWYgKCFuZXdhZGRyKQotCXsKLQkgIC8qIElmIGFkZHIgaXMgbm90 IE5VTEwsIGJ1dCBNQVBfRklYRUQgaXNuJ3QgZ2l2ZW4sIGFsbG93IHRoZSBPUwotCSAgICAgdG8g Y2hvb3NlLiAqLwotCSAgaWYgKGFkZHIgJiYgIWZpeGVkIChmbGFncykpCi0JICAgIG5ld2FkZHIg PSBWaXJ0dWFsQWxsb2MgKE5VTEwsIG9yaWdfbGVuLCBNRU1fVE9QX0RPV04gfCBNRU1fUkVTRVJW RSwKLQkJCQkgICAgUEFHRV9SRUFEV1JJVEUpOwotCSAgaWYgKCFuZXdhZGRyKQotCSAgICB7Ci0J ICAgICAgX19zZXRlcnJubyAoKTsKLQkgICAgICBnb3RvIG91dF93aXRoX3VubG9jazsKLQkgICAg fQotCX0KLSAgICAgIGlmICghVmlydHVhbEZyZWUgKG5ld2FkZHIsIDAsIE1FTV9SRUxFQVNFKSkK LQl7Ci0JICBfX3NldGVycm5vICgpOwotCSAgZ290byBvdXRfd2l0aF91bmxvY2s7Ci0JfQotICAg ICAgYWRkciA9IG5ld2FkZHI7Ci0gICAgfQotI2VuZGlmCiAKICAgYmFzZSA9IG1tYXBfd29ya2Vy IChtYXBfbGlzdCwgZmgsIChjYWRkcl90KSBhZGRyLCBsZW4sIHByb3QsIGZsYWdzLCBmZCwgb2Zm LAogCQkgICAgICAmc3QpOwpAQCAtMTYwMCw3ICsxNTY2LDYgQEAgZmhhbmRsZXJfZGV2X3plcm86 Om1tYXAgKGNhZGRyX3QgKmFkZHIsIHNpemVfdCBsZW4sIGludCBwcm90LAogICAgICAgRFdPUkQg cHJvdGVjdCA9IGdlbl9wcm90ZWN0IChwcm90LCBmbGFncyk7CiAgICAgICBEV09SRCBhbGxvY190 eXBlID0gTUVNX1RPUF9ET1dOIHwgTUVNX1JFU0VSVkUKIAkJCSB8IChub3Jlc2VydmUgKGZsYWdz KSA/IDAgOiBNRU1fQ09NTUlUKTsKLSNpZmRlZiBfX3g4Nl82NF9fCiAgICAgICBpZiAod2luY2Fw Lmhhc19leHRlbmRlZF9tZW1fYXBpICgpKQogCXsKIAkgIHN0YXRpYyBjb25zdCBNRU1fQUREUkVT U19SRVFVSVJFTUVOVFMgbW1hcF9yZXEgPSB7CkBAIC0xNjIxLDcgKzE1ODYsNiBAQCBmaGFuZGxl cl9kZXZfemVybzo6bW1hcCAoY2FkZHJfdCAqYWRkciwgc2l6ZV90IGxlbiwgaW50IHByb3QsCiAJ CQkJICBwcm90ZWN0LCAmbW1hcF9leHQsIDEpOwogCX0KICAgICAgIGVsc2UKLSNlbmRpZgogCXsK IAkgIGJhc2UgPSBWaXJ0dWFsQWxsb2MgKCphZGRyLCBsZW4sIGFsbG9jX3R5cGUsIHByb3RlY3Qp OwogCSAgaWYgKCFiYXNlICYmIGFkZHIgJiYgIWZpeGVkIChmbGFncykpCmRpZmYgLS1naXQgYS93 aW5zdXAvY3lnd2luL21tYXBfYWxsb2MuY2MgYi93aW5zdXAvY3lnd2luL21tYXBfYWxsb2MuY2MK aW5kZXggY2Q0ZDQ5YmM5Li43Y2JlNDI1NTMgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vbW1h cF9hbGxvYy5jYworKysgYi93aW5zdXAvY3lnd2luL21tYXBfYWxsb2MuY2MKQEAgLTEsNSArMSwz IEBACi0jaWZkZWYgX194ODZfNjRfXwotCiAjaW5jbHVkZSAid2luc3VwLmgiCiAjaW5jbHVkZSAi bW1hcF9hbGxvYy5oIgogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgpAQCAtNzgsNSArNzYsMyBAQCBt bWFwX2FsbG9jYXRvcjo6YWxsb2MgKFBWT0lEIGluX2FkZHIsIFNJWkVfVCBpbl9zaXplLCBib29s IGZpeGVkKQogfQogCiBtbWFwX2FsbG9jYXRvciBtbWFwX2FsbG9jOwkvKiBJbmhlcml0ZWQgYnkg Zm9ya2VkIGNoaWxkLiAqLwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vbW1h cF9hbGxvYy5oIGIvd2luc3VwL2N5Z3dpbi9tbWFwX2FsbG9jLmgKaW5kZXggMDFjMTk1ZDUyLi44 ZDZhZWJjYWYgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vbW1hcF9hbGxvYy5oCisrKyBiL3dp bnN1cC9jeWd3aW4vbW1hcF9hbGxvYy5oCkBAIC0xLDUgKzEsMyBAQAotI2lmZGVmIF9feDg2XzY0 X18KLQogLyogVGhlIG1lbW9yeSByZWdpb24gdXNlZCBmb3IgbWVtb3J5IG1hcHMgKi8KICNkZWZp bmUgTU1BUF9TVE9SQUdFX0xPVwkweDAwMTAwMDAwMDAwMEwJLyogTGVhdmUgMzIgR2lncyBmb3Ig aGVhcC4gKi8KIC8qIFVwIHRvIFdpbiA4IG9ubHkgc3VwcG9ydGluZyA0NCBiaXQgYWRkcmVzcyBz cGFjZSwgc3RhcnRpbmcgd2l0aCBXaW4gOC4xCkBAIC0xNyw1ICsxNSwzIEBAIHB1YmxpYzoKIH07 CiAKIGV4dGVybiBtbWFwX2FsbG9jYXRvciBtbWFwX2FsbG9jOwotCi0jZW5kaWYKZGlmZiAtLWdp dCBhL3dpbnN1cC9jeWd3aW4vbmV0LmNjIGIvd2luc3VwL2N5Z3dpbi9uZXQuY2MKaW5kZXggMzZl MjkyM2I0Li5lNmM1ZWFkZjIgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vbmV0LmNjCisrKyBi L3dpbnN1cC9jeWd3aW4vbmV0LmNjCkBAIC0xMiwxMyArMTIsMTEgQEAgZGV0YWlscy4gKi8KICNk ZWZpbmUgVVNFX1NZU19UWVBFU19GRF9TRVQKICNkZWZpbmUgX19XU0FfRVJSX01BQ1JPU19ERUZJ TkVECiAjaW5jbHVkZSAid2luc3VwLmgiCi0jaWZkZWYgX194ODZfNjRfXwogLyogMjAxNC0wNC0y NDogQ3VycmVudCBNaW5ndyBoZWFkZXJzIGRlZmluZSBzb2NrYWRkcl9pbjYgdXNpbmcgdV9sb25n ICg4IGJ5dGUpCiAgICBiZWNhdXNlIGEgcmVkZWZpbml0aW9uIGZvciBMUDY0IHN5c3RlbXMgaXMg bWlzc2luZy4gIFRoaXMgbGVhZHMgdG8gYSB3cm9uZwogICAgZGVmaW5pdGlvbiBhbmQgc2l6ZSBv ZiBzb2NrYWRkcl9pbjYgd2hlbiBidWlsZGluZyB3aXRoIHdpbnNvY2sgaGVhZGVycy4gKi8KICN1 bmRlZiB1X2xvbmcKICNkZWZpbmUgdV9sb25nIF9fbXNfdV9sb25nCi0jZW5kaWYKICNpbmNsdWRl IDx3MzJhcGkvd3MydGNwaXAuaD4KICNpbmNsdWRlIDx3MzJhcGkvbXN3c29jay5oPgogI2luY2x1 ZGUgPHczMmFwaS9pcGhscGFwaS5oPgpAQCAtMjkwLDcgKzI4OCw2IEBAIHJlYWxsb2NfZW50IChp bnQgc3osIGhvc3RlbnQgKikKICAgIFRoZSAndW5pb25lbnQnIHN0cnVjdCBpcyBhIHVuaW9uIG9m IGFsbCBvZiB0aGUgY3VycmVudGx5IHVzZWQKICAgICplbnQgc3RydWN0dXJlLiAgKi8KIAotI2lm ZGVmIF9feDg2XzY0X18KIC8qIEZvciBzb21lIGJhZmZsaW5nIHJlYXNvbiwgc29tZWJvZHkgYXQg TWljcm9zb2Z0IGRlY2lkZWQgdGhhdCBpdCB3b3VsZCBiZQogICAgYSBnb29kIGlkZWEgdG8gZXhj aGFuZ2UgdGhlIHNfcG9ydCBhbmQgc19wcm90byBtZW1iZXJzIGluIHRoZSBzZXJ2ZW50CiAgICBz dHJ1Y3R1cmUuICovCkBAIC0zMDIsOSArMjk5LDYgQEAgc3RydWN0IHdpbjY0X3NlcnZlbnQKICAg c2hvcnQgIHNfcG9ydDsKIH07CiAjZGVmaW5lIFdJTl9TRVJWRU5UKHgpCSgod2luNjRfc2VydmVu dCAqKSh4KSkKLSNlbHNlCi0jZGVmaW5lIFdJTl9TRVJWRU5UKHgpCSgoc2VydmVudCAqKSh4KSkK LSNlbmRpZgogCiAjaWZkZWYgREVCVUdHSU5HCiBzdGF0aWMgdm9pZCAqCkBAIC0zMDc4LDExICsz MDcyLDkgQEAgY3lnd2luX2dldGFkZHJpbmZvIChjb25zdCBjaGFyICpob3N0bmFtZSwgY29uc3Qg Y2hhciAqc2Vydm5hbWUsCiAJICAvKiBzaXplb2YgYWRkcmluZm8gPT0gc2l6ZW9mIGFkZHJpbmZv VyAqLwogCSAgbWVtY3B5ICgmd2hpbnRzLCBoaW50cywgc2l6ZW9mIHdoaW50cyk7CiAJICB3aGlu dHMuYWlfZmxhZ3MgJj0gfkFJX0lETl9NQVNLOwotI2lmZGVmIF9feDg2XzY0X18KIAkgIC8qIGFp X2FkZHJsZW4gaXMgc29ja2xlbl90ICg0IGJ5dGVzKSBpbiBQT1NJWCBidXQgc2l6ZV90ICg4IGJ5 dGVzKSBpbgogCSAgICAgV2luc29jay4gIFNlcnQgdXBwZXIgNCBieXRlcyBleHBsaWNpdGVseSB0 byAwIHRvIGF2b2lkIEVBSV9GQUlMLiAqLwogCSAgd2hpbnRzLmFpX2FkZHJsZW4gJj0gVUlOVDMy X01BWDsKLSNlbmRpZgogCSAgLyogT24gV2luZG93cywgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIGlz IGFzIGlmIEFJX0FERFJDT05GSUcgaXMgc2V0LAogCSAgICAgYXBwYXJlbnRseSBmb3IgcGVyZm9y bWFuY2UgcmVhc29ucy4gIFRvIGdldCB0aGUgUE9TSVggZGVmYXVsdAogCSAgICAgYmVoYXZpb3Vy LCB0aGUgQUlfQUxMIGZsYWcgaGFzIHRvIGJlIHNldC4gKi8KZGlmZiAtLWdpdCBhL3dpbnN1cC9j eWd3aW4vbnRkbGwuaCBiL3dpbnN1cC9jeWd3aW4vbnRkbGwuaAppbmRleCBjZDQ1NWViZmMuLjVj YjdjYzYzNiAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9udGRsbC5oCisrKyBiL3dpbnN1cC9j eWd3aW4vbnRkbGwuaApAQCAtMTM3Nyw3ICsxMzc3LDYgQEAgdHlwZWRlZiBlbnVtIF9TRUNUSU9O X0lOSEVSSVQKIAogdHlwZWRlZiBWT0lEIChBUElFTlRSWSAqUFRJTUVSX0FQQ19ST1VUSU5FKShQ Vk9JRCwgVUxPTkcsIFVMT05HKTsKIAotI2lmZGVmIF9feDg2XzY0X18KIHR5cGVkZWYgc3RydWN0 IF9TQ09QRV9UQUJMRQogewogICBVTE9ORyBDb3VudDsKQEAgLTEzODksNyArMTM4OCw2IEBAIHR5 cGVkZWYgc3RydWN0IF9TQ09QRV9UQUJMRQogICAgIFVMT05HIEp1bXBUYXJnZXQ7CiAgIH0gU2Nv cGVSZWNvcmRbMV07CiB9IFNDT1BFX1RBQkxFLCAqUFNDT1BFX1RBQkxFOwotI2VuZGlmCiAKICNp ZmRlZiBfX2NwbHVzcGx1cwogLyogVGhpcyBpcyB0aGUgbWFwcGluZyBvZiB0aGUgS1VTRVJfU0hB UkVEX0RBVEEgc3RydWN0dXJlIGludG8gdGhlIHVzZXIKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3 aW4vcGF0aC5jYyBiL3dpbnN1cC9jeWd3aW4vcGF0aC5jYwppbmRleCBiZDNmZmRjZTYuLmVhNjk1 ZWQ5OSAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9wYXRoLmNjCisrKyBiL3dpbnN1cC9jeWd3 aW4vcGF0aC5jYwpAQCAtNDQ4OSw4ICs0NDg5LDYgQEAgZmN3ZF9hY2Nlc3NfdDo6U2V0VmVyc2lv bkZyb21Qb2ludGVyIChQQllURSBidWZfcCwgYm9vbCBpc19idWZmZXIpCiAgICBpdCdzIG5vdCBl eHBvcnRlZCBmcm9tIHRoZSBETEwsIHVuZm9ydHVuYXRlbHkuICBUaGVyZWZvcmUgd2UgaGF2ZSB0 bwogICAgdXNlIHNvbWUga25vd2xlZGdlIHRvIGZpZ3VyZSBvdXQgdGhlIGFkZHJlc3MuICovCiAK LSNpZmRlZiBfX3g4Nl82NF9fCi0KICNkZWZpbmUgcGVlazMyKHgpCSgqKGludDMyX3QgKikoeCkp CiAKIHN0YXRpYyBmY3dkX2FjY2Vzc190ICoqCkBAIC00NTg4LDEwNiArNDU4Niw2IEBAIGZpbmRf ZmFzdF9jd2RfcG9pbnRlciAoKQogICAvKiBDb21wdXRlIGFkZHJlc3Mgb2YgdGhlIGZjd2RfYWNj ZXNzX3QgKiogcG9pbnRlci4gKi8KICAgcmV0dXJuIChmY3dkX2FjY2Vzc190ICoqKSAodGVzdHJi eCArIHBlZWszMiAobW92cmJ4ICsgMykpOwogfQotI2Vsc2UKLQotI2RlZmluZSBwZWVrMzIoeCkJ KCoodWludDMyX3QgKikoeCkpCi0KLXN0YXRpYyBmY3dkX2FjY2Vzc190ICoqCi1maW5kX2Zhc3Rf Y3dkX3BvaW50ZXIgKCkKLXsKLSAgLyogRmV0Y2ggZW50cnkgcG9pbnRzIG9mIHJlbGV2YW50IGZ1 bmN0aW9ucyBpbiBudGRsbC5kbGwuICovCi0gIEhNT0RVTEUgbnRkbGwgPSBHZXRNb2R1bGVIYW5k bGUgKCJudGRsbC5kbGwiKTsKLSAgaWYgKCFudGRsbCkKLSAgICByZXR1cm4gTlVMTDsKLSAgY29u c3QgdWludDhfdCAqZ2V0X2RpciA9IChjb25zdCB1aW50OF90ICopCi0JCQkgICBHZXRQcm9jQWRk cmVzcyAobnRkbGwsICJSdGxHZXRDdXJyZW50RGlyZWN0b3J5X1UiKTsKLSAgY29uc3QgdWludDhf dCAqZW50X2NyaXQgPSAoY29uc3QgdWludDhfdCAqKQotCQkJICAgIEdldFByb2NBZGRyZXNzIChu dGRsbCwgIlJ0bEVudGVyQ3JpdGljYWxTZWN0aW9uIik7Ci0gIGlmICghZ2V0X2RpciB8fCAhZW50 X2NyaXQpCi0gICAgcmV0dXJuIE5VTEw7Ci0gIC8qIFNlYXJjaCBmaXJzdCByZWxhdGl2ZSBjYWxs IGluc3RydWN0aW9uIGluIFJ0bEdldEN1cnJlbnREaXJlY3RvcnlfVS4gKi8KLSAgY29uc3QgdWlu dDhfdCAqcmNhbGwgPSAoY29uc3QgdWludDhfdCAqKSBtZW1jaHIgKGdldF9kaXIsIDB4ZTgsIDY0 KTsKLSAgaWYgKCFyY2FsbCkKLSAgICByZXR1cm4gTlVMTDsKLSAgLyogRmV0Y2ggb2Zmc2V0IGZy b20gaW5zdHJ1Y3Rpb24gYW5kIGNvbXB1dGUgYWRkcmVzcyBvZiBjYWxsZWQgZnVuY3Rpb24uCi0g ICAgIFRoaXMgZnVuY3Rpb24gYWN0dWFsbHkgZmV0Y2hlcyB0aGUgY3VycmVudCBGQVNUX0NXRCBp bnN0YW5jZSBhbmQKLSAgICAgcGVyZm9ybXMgc29tZSBvdGhlciBhY3Rpb25zLCBub3QgaW1wb3J0 YW50IHRvIHVzLiAqLwotICBwdHJkaWZmX3Qgb2Zmc2V0ID0gKHB0cmRpZmZfdCkgcGVlazMyIChy Y2FsbCArIDEpOwotICBjb25zdCB1aW50OF90ICp1c2VfY3dkID0gcmNhbGwgKyA1ICsgb2Zmc2V0 OwotICAvKiBGaW5kIGZpcnN0IGBwdXNoICVlZGknIGluc3RydWN0aW9uLiAqLwotICBjb25zdCB1 aW50OF90ICpwdXNoZWRpID0gKGNvbnN0IHVpbnQ4X3QgKikgbWVtY2hyICh1c2VfY3dkLCAweDU3 LCAzMik7Ci0gIGlmICghcHVzaGVkaSkKLSAgICByZXR1cm4gTlVMTDsKLSAgLyogLi4ud2hpY2gg c2hvdWxkIGJlIGZvbGxvd2VkIGJ5IGBtb3YgY3JpdC1zZWN0LWFkZHIsJWVkaScgdGhlbgotICAg ICBgcHVzaCAlZWRpJywgb3IgYnkganVzdCBhIHNpbmdsZSBgcHVzaCBjcml0LXNlY3QtYWRkcicu ICovCi0gIGNvbnN0IHVpbnQ4X3QgKm1vdmVkaSA9IHB1c2hlZGkgKyAxOwotICBjb25zdCB1aW50 OF90ICptb3ZfcGZhc3RfY3dkOwotICBpZiAobW92ZWRpWzBdID09IDB4OGIgJiYgbW92ZWRpWzFd ID09IDB4ZmYpCS8qIG1vdiAlZWRpLCVlZGkgLT4gVzggKi8KLSAgICB7Ci0gICAgICAvKiBXaW5k b3dzIDggZG9lcyBub3QgY2FsbCBSdGxFbnRlckNyaXRpY2FsU2VjdGlvbi4gIFRoZSBjb2RlIG1h bmlwdWxhdGVzCi0JIHRoZSBGYXN0UGViTG9jayBtYW51YWxseSwgcHJvYmFibHkgYmVjYXVzZSBS dGxFbnRlckNyaXRpY2FsU2VjdGlvbiBoYXMKLQkgYmVlbiBjb252ZXJ0ZWQgdG8gYW4gaW5saW5l IGZ1bmN0aW9uLgotCi0JIE5leHQgd2Ugc2VhcmNoIGZvciBhIGBtb3Ygc29tZSBhZGRyZXNzLCVl YXgnLiAgVGhpcyBhZGRyZXNzIHBvaW50cwotCSB0byB0aGUgTG9ja0NvdW50IG1lbWJlciBvZiB0 aGUgRmFzdFBlYkxvY2sgc3RydWN0dXJlLCBzbyB0aGUgYWRkcmVzcwotCSBpcyBlcXVhbCB0byBG YXN0UGViTG9jayArIDQuICovCi0gICAgICBjb25zdCB1aW50OF90ICptb3ZlYXggPSAoY29uc3Qg dWludDhfdCAqKSBtZW1jaHIgKG1vdmVkaSwgMHhiOCwgMTYpOwotICAgICAgaWYgKCFtb3ZlYXgp Ci0JcmV0dXJuIE5VTEw7Ci0gICAgICBvZmZzZXQgPSAocHRyZGlmZl90KSBwZWVrMzIgKG1vdmVh eCArIDEpIC0gNDsKLSAgICAgIC8qIENvbXBhcmUgdGhlIGFkZHJlc3Mgd2l0aCB0aGUga25vd24g UEVCIGxvY2sgYXMgc3RvcmVkIGluIHRoZSBQRUIuICovCi0gICAgICBpZiAoKFBSVExfQ1JJVElD QUxfU0VDVElPTikgb2Zmc2V0ICE9IE50Q3VycmVudFRlYiAoKS0+UGViLT5GYXN0UGViTG9jaykK LQlyZXR1cm4gTlVMTDsKLSAgICAgIC8qIE5vdyBzZWFyY2ggZm9yIHRoZSBtb3YgaW5zdHJ1Y3Rp b24gZmV0Y2hpbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIGdsb2JhbAotCSBQRkFTVF9DV0QgKi4gKi8K LSAgICAgIG1vdl9wZmFzdF9jd2QgPSBtb3ZlYXg7Ci0gICAgICBkbwotCXsKLQkgIG1vdl9wZmFz dF9jd2QgPSAoY29uc3QgdWludDhfdCAqKSBtZW1jaHIgKCsrbW92X3BmYXN0X2N3ZCwgMHg4Yiwg NDgpOwotCX0KLSAgICAgIHdoaWxlIChtb3ZfcGZhc3RfY3dkICYmIG1vdl9wZmFzdF9jd2RbMV0g IT0gMHgxZAotCSAgICAgJiYgKG1vdl9wZmFzdF9jd2QgLSBtb3ZlYXgpIDwgNDgpOwotICAgICAg aWYgKCFtb3ZfcGZhc3RfY3dkIHx8IG1vdl9wZmFzdF9jd2RbMV0gIT0gMHgxZCkKLQlyZXR1cm4g TlVMTDsKLSAgICB9Ci0gIGVsc2UKLSAgICB7Ci0gICAgICBpZiAobW92ZWRpWzBdID09IDB4YmYg JiYgbW92ZWRpWzVdID09IDB4NTcpCi0JcmNhbGwgPSBtb3ZlZGkgKyA2OwotICAgICAgZWxzZSBp ZiAobW92ZWRpWzBdID09IDB4NjgpCi0JcmNhbGwgPSBtb3ZlZGkgKyA1OwotICAgICAgZWxzZSBp ZiAobW92ZWRpWzBdID09IDB4ODggJiYgbW92ZWRpWzRdID09IDB4ODMgJiYgbW92ZWRpWzddID09 IDB4NjgpCi0JewotCSAgLyogV2luZG93cyA4LjEgUHJldmlldzogVGhlIGBtb3YgbG9ja19hZGRy LCVlZGknIGlzIGFjdHVhbGx5IGEKLQkgICAgIGBtb3YgJWNsLDE1KCVlc3ApLCBmb2xsb3dlZCBi eSBhbiBgb3IgIy0xLCVlYngsIGZvbGxvd2VkIGJ5IGEKLQkgICAgIGBwdXNoIGxvY2tfYWRkcicu ICovCi0JICBtb3ZlZGkgKz0gNzsKLQkgIHJjYWxsID0gbW92ZWRpICsgNTsKLQl9Ci0gICAgICBl bHNlCi0JcmV0dXJuIE5VTEw7Ci0gICAgICAvKiBDb21wYXJlIHRoZSBhZGRyZXNzIHVzZWQgZm9y IHRoZSBjcml0aWNhbCBzZWN0aW9uIHdpdGggdGhlIGtub3duCi0JIFBFQiBsb2NrIGFzIHN0b3Jl ZCBpbiB0aGUgUEVCLiAqLwotICAgICAgaWYgKChQUlRMX0NSSVRJQ0FMX1NFQ1RJT04pIHBlZWsz MiAobW92ZWRpICsgMSkKLQkgICE9IE50Q3VycmVudFRlYiAoKS0+UGViLT5GYXN0UGViTG9jaykK LQlyZXR1cm4gTlVMTDsKLSAgICAgIC8qIFRvIGNoZWNrIHdlIGFyZSBzZWVpbmcgdGhlIHJpZ2h0 IGNvZGUsIHdlIGNoZWNrIG91ciBleHBlY3RhdGlvbiB0aGF0Ci0JIHRoZSBuZXh0IGluc3RydWN0 aW9uIGlzIGEgcmVsYXRpdmUgY2FsbCBpbnRvIFJ0bEVudGVyQ3JpdGljYWxTZWN0aW9uLiAqLwot ICAgICAgaWYgKHJjYWxsWzBdICE9IDB4ZTgpCi0JcmV0dXJuIE5VTEw7Ci0gICAgICAvKiBDaGVj ayB0aGF0IHRoaXMgaXMgYSByZWxhdGl2ZSBjYWxsIHRvIFJ0bEVudGVyQ3JpdGljYWxTZWN0aW9u LiAqLwotICAgICAgb2Zmc2V0ID0gKHB0cmRpZmZfdCkgcGVlazMyIChyY2FsbCArIDEpOwotICAg ICAgaWYgKHJjYWxsICsgNSArIG9mZnNldCAhPSBlbnRfY3JpdCkKLQlyZXR1cm4gTlVMTDsKLSAg ICAgIG1vdl9wZmFzdF9jd2QgPSByY2FsbCArIDU7Ci0gICAgfQotICAvKiBBZnRlciBsb2NraW5n IHRoZSBjcml0aWNhbCBzZWN0aW9uLCB0aGUgY29kZSBzaG91bGQgcmVhZCB0aGUgZ2xvYmFsCi0g ICAgIFBGQVNUX0NXRCAqIHBvaW50ZXIgdGhhdCBpcyBndWFyZGVkIGJ5IHRoYXQgY3JpdGljYWwg c2VjdGlvbi4gKi8KLSAgaWYgKG1vdl9wZmFzdF9jd2RbMF0gIT0gMHg4YikKLSAgICByZXR1cm4g TlVMTDsKLSAgcmV0dXJuIChmY3dkX2FjY2Vzc190ICoqKSBwZWVrMzIgKG1vdl9wZmFzdF9jd2Qg KyAyKTsKLX0KLSNlbmRpZgogCiBzdGF0aWMgZmN3ZF9hY2Nlc3NfdCAqKgogZmluZF9mYXN0X2N3 ZCAoKQpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9wZXJwcm9jZXNzLmggYi93aW5zdXAvY3ln d2luL3BlcnByb2Nlc3MuaAppbmRleCBiNTI0YWI5ZGIuLjc4NTMwODk0ZiAxMDA2NDQKLS0tIGEv d2luc3VwL2N5Z3dpbi9wZXJwcm9jZXNzLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9wZXJwcm9jZXNz LmgKQEAgLTE5LDExICsxOSw3IEBAIGV4dGVybiBzdHJ1Y3QgcGVyX3Byb2Nlc3MgX19jeWd3aW5f dXNlcl9kYXRhOwogLyogV2UgdXNlIHRoZSBmb2xsb3dpbmcgdG8gdGVzdCB0aGF0IHNpemVvZiBo YXNuJ3QgY2hhbmdlZC4gIFdoZW4gYWRkaW5nCiAgICBvciBkZWxldGluZyBtZW1iZXJzLCBpbnNl cnQgZmlsbGVycyBvciB1c2UgdGhlIHJlc2VydmVkIGVudHJpZXMuCiAgICBEbyBub3QgY2hhbmdl IHRoaXMgdmFsdWUuICovCi0jaWZkZWYgX194ODZfNjRfXwogI2RlZmluZSBTSVpFT0ZfUEVSX1BS T0NFU1MgKDQxICogOCkKLSNlbHNlCi0jZGVmaW5lIFNJWkVPRl9QRVJfUFJPQ0VTUyAoNDIgKiA0 KQotI2VuZGlmCiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5 Z3dpbi9zaG0uY2MgYi93aW5zdXAvY3lnd2luL3NobS5jYwppbmRleCA0MGQ4ZGNiMTAuLmFmMDc5 YWQ4NiAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9zaG0uY2MKKysrIGIvd2luc3VwL2N5Z3dp bi9zaG0uY2MKQEAgLTIyMiwxMSArMjIyLDcgQEAgc2htYXQgKGludCBzaG1pZCwgY29uc3Qgdm9p ZCAqc2htYWRkciwgaW50IHNobWZsZykKICAgICB9CiAgIE5UU1RBVFVTIHN0YXR1czsKICAgU0la RV9UIHZpZXdzaXplID0gc3NoX2VudHJ5LT5zaXplOwotI2lmZGVmIF9feDg2XzY0X18KICAgdm1f b2JqZWN0X3QgcHRyID0gbW1hcF9hbGxvYy5hbGxvYyAoTlVMTCwgdmlld3NpemUsIGZhbHNlKTsK LSNlbHNlCi0gIHZtX29iamVjdF90IHB0ciA9IE5VTEw7Ci0jZW5kaWYKIAogICBVTE9ORyBhY2Nl c3MgPSAoc2htZmxnICYgU0hNX1JET05MWSkgPyBQQUdFX1JFQURPTkxZIDogUEFHRV9SRUFEV1JJ VEU7CiAgIHN0YXR1cyA9IE50TWFwVmlld09mU2VjdGlvbiAoc3NoX2VudHJ5LT5oZGwsIE50Q3Vy cmVudFByb2Nlc3MgKCksICZwdHIsIDAsCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL3NpZ3By b2MuY2MgYi93aW5zdXAvY3lnd2luL3NpZ3Byb2MuY2MKaW5kZXggMGQ5ZGEyMzdjLi4wY2NiYzUw NDYgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vc2lncHJvYy5jYworKysgYi93aW5zdXAvY3ln d2luL3NpZ3Byb2MuY2MKQEAgLTUwLDEzICs1MCw4IEBAIGNoYXIgTk9fQ09QWSBteXNlbGZfbm93 YWl0X2R1bW15WzFdID0geycwJ307CiAgICBUaGlzIGNsYXNzIGNhbiBhbGxvY2F0ZSBtZW1vcnku ICBCdXQgdGhlcmUncyBubyBuZWVkIHRvIGZyZWUgaXQKICAgIGJlY2F1c2Ugb25seSBvbmUgaW5z dGFuY2Ugb2YgdGhlIGNsYXNzIGlzIGNyZWF0ZWQgcGVyIHByb2Nlc3MuICovCiBjbGFzcyBjaGls ZF9wcm9jcyB7Ci0jaWZkZWYgX19pMzg2X18KLSAgICBzdGF0aWMgY29uc3QgaW50IF9OUFJPQ1Mg PSAyNTY7Ci0gICAgc3RhdGljIGNvbnN0IGludCBfTlBST0NTXzIgPSAxMDIzOwotI2Vsc2UKICAg ICBzdGF0aWMgY29uc3QgaW50IF9OUFJPQ1MgPSAxMDI0OwogICAgIHN0YXRpYyBjb25zdCBpbnQg X05QUk9DU18yID0gNDA5NTsKLSNlbmRpZgogICAgIGludCBfY291bnQ7CiAgICAgdWludDhfdCBf cHJvY3NbX05QUk9DUyAqIHNpemVvZiAocGluZm8pXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVk X18pKTsKICAgICBwaW5mbyAqX3Byb2NzXzI7CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL3Nt YWxscHJpbnQuY2MgYi93aW5zdXAvY3lnd2luL3NtYWxscHJpbnQuY2MKaW5kZXggNGExNGVlM2Nm Li40ZWM0YjI3OWMgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vc21hbGxwcmludC5jYworKysg Yi93aW5zdXAvY3lnd2luL3NtYWxscHJpbnQuY2MKQEAgLTIxOSwzNyArMjE5LDI5IEBAIF9fc21h bGxfdnNwcmludGYgKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwKQogCQkg IGJyZWFrOwogCQljYXNlICdSJzoKIAkJICB7Ci0jaWZkZWYgX194ODZfNjRfXwogCQkgICAgaWYg KGxfb3B0KQogCQkgICAgICBSdmFsID0gdmFfYXJnIChhcCwgaW50NjRfdCk7CiAJCSAgICBlbHNl Ci0jZW5kaWYKIAkJICAgICAgUnZhbCA9IHZhX2FyZyAoYXAsIGludDMyX3QpOwogCQkgICAgZHN0 ID0gX19ybiAoZHN0LCAxMCwgYWRkc2lnbiwgUnZhbCwgbGVuLCBwYWQsIExNQVNLKTsKIAkJICB9 CiAJCSAgYnJlYWs7CiAJCWNhc2UgJ2QnOgogCQkgIGJhc2UgPSAxMDsKLSNpZmRlZiBfX3g4Nl82 NF9fCiAJCSAgaWYgKGxfb3B0KQogCQkgICAgZ290byBnZW5fZGVjaW1hbExMOwotI2VuZGlmCiAJ CSAgZ290byBnZW5fZGVjaW1hbDsKIAkJY2FzZSAndSc6CiAJCSAgYmFzZSA9IDEwOwogCQkgIGFk ZHNpZ24gPSAwOwotI2lmZGVmIF9feDg2XzY0X18KIAkJICBpZiAobF9vcHQpCiAJCSAgICBnb3Rv IGdlbl9kZWNpbWFsTEw7Ci0jZW5kaWYKIAkJICBnb3RvIGdlbl9kZWNpbWFsOwogCQljYXNlICdv JzoKIAkJICBiYXNlID0gODsKIAkJICBhZGRzaWduID0gMDsKLSNpZmRlZiBfX3g4Nl82NF9fCiAJ CSAgaWYgKGxfb3B0KQogCQkgICAgZ290byBnZW5fZGVjaW1hbExMOwotI2VuZGlmCiAJCSAgZ290 byBnZW5fZGVjaW1hbDsKIAkJY2FzZSAneSc6CiAJCSAgKmRzdCsrID0gJzAnOwpAQCAtMjU4LDEw ICsyNTAsOCBAQCBfX3NtYWxsX3ZzcHJpbnRmIChjaGFyICpkc3QsIGNvbnN0IGNoYXIgKmZtdCwg dmFfbGlzdCBhcCkKIAkJY2FzZSAneCc6CiAJCSAgYmFzZSA9IDE2OwogCQkgIGFkZHNpZ24gPSAw OwotI2lmZGVmIF9feDg2XzY0X18KIAkJICBpZiAobF9vcHQpCiAJCSAgICBnb3RvIGdlbl9kZWNp bWFsTEw7Ci0jZW5kaWYKIGdlbl9kZWNpbWFsOgogCQkgIGRzdCA9IHJuYXJnIChkc3QsIGhfb3B0 ICogYmFzZSwgYWRkc2lnbiwgbGVuLCBwYWQpOwogCQkgIGJyZWFrOwpAQCAtMjg5LDExICsyNzks NyBAQCBnZW5fZGVjaW1hbExMOgogCQljYXNlICdwJzoKIAkJICAqZHN0KysgPSAnMCc7CiAJCSAg KmRzdCsrID0gJ3gnOwotI2lmZGVmIF9feDg2XzY0X18KIAkJICBkc3QgPSBybmFyZ0xMIChkc3Qs IGhfb3B0ICogMTYsIDAsIGxlbiwgcGFkKTsKLSNlbHNlCi0JCSAgZHN0ID0gcm5hcmcgKGRzdCwg aF9vcHQgKiAxNiwgMCwgbGVuLCBwYWQpOwotI2VuZGlmCiAJCSAgYnJlYWs7CiAJCWNhc2UgJy4n OgogCQkgIG4gPSBzdHJ0b2wgKGZtdCwgKGNoYXIgKiopICZmbXQsIDEwKTsKQEAgLTUwMyw5ICs0 ODksNyBAQCBfX3NtYWxsX3Zzd3ByaW50ZiAoUFdDSEFSIGRzdCwgY29uc3QgV0NIQVIgKmZtdCwg dmFfbGlzdCBhcCkKICAgd2hpbGUgKCpmbXQpCiAgICAgewogICAgICAgdW5zaWduZWQgaW50IG4g PSAweDdmZmY7Ci0jaWZkZWYgX194ODZfNjRfXwogICAgICAgYm9vbCBsX29wdCA9IGZhbHNlOwot I2VuZGlmCiAgICAgICAvKiBzZXQgdG8gLTEgb24gJ18nLCBpbmRpY2F0ZXMgdXBwZXIgKDEpL2xv d2VyKC0xKSBjYXNlICovCiAgICAgICBpbnQgaF9vcHQgPSAxOwogICAgICAgaWYgKCpmbXQgIT0g TCclJykKQEAgLTU0Myw5ICs1MjcsNyBAQCBfX3NtYWxsX3Zzd3ByaW50ZiAoUFdDSEFSIGRzdCwg Y29uc3QgV0NIQVIgKmZtdCwgdmFfbGlzdCBhcCkKIAkJICBsZW4gPSBsZW4gKiAxMCArIChjIC0g TCcwJyk7CiAJCSAgY29udGludWU7CiAJCWNhc2UgTCdsJzoKLSNpZmRlZiBfX3g4Nl82NF9fCiAJ CSAgbF9vcHQgPSB0cnVlOwotI2VuZGlmCiAJCSAgY29udGludWU7CiAJCWNhc2UgJ18nOgogCQkg IGhfb3B0ID0gLTE7CkBAIC01NjAsMzcgKzU0MiwyOSBAQCBfX3NtYWxsX3Zzd3ByaW50ZiAoUFdD SEFSIGRzdCwgY29uc3QgV0NIQVIgKmZtdCwgdmFfbGlzdCBhcCkKIAkJICBicmVhazsKIAkJY2Fz ZSAnUic6CiAJCSAgewotI2lmZGVmIF9feDg2XzY0X18KIAkJICAgIGlmIChsX29wdCkKIAkJICAg ICAgUnZhbCA9IHZhX2FyZyAoYXAsIGludDY0X3QpOwogCQkgICAgZWxzZQotI2VuZGlmCiAJCSAg ICAgIFJ2YWwgPSB2YV9hcmcgKGFwLCBpbnQzMl90KTsKIAkJICAgIGRzdCA9IF9fd3JuIChkc3Qs IDEwLCBhZGRzaWduLCBSdmFsLCBsZW4sIHBhZCwgTE1BU0spOwogCQkgIH0KIAkJICBicmVhazsK IAkJY2FzZSBMJ2QnOgogCQkgIGJhc2UgPSAxMDsKLSNpZmRlZiBfX3g4Nl82NF9fCiAJCSAgaWYg KGxfb3B0KQogCQkgICAgZ290byBnZW5fZGVjaW1hbExMOwotI2VuZGlmCiAJCSAgZ290byBnZW5f ZGVjaW1hbDsKIAkJY2FzZSAndSc6CiAJCSAgYmFzZSA9IDEwOwogCQkgIGFkZHNpZ24gPSAwOwot I2lmZGVmIF9feDg2XzY0X18KIAkJICBpZiAobF9vcHQpCiAJCSAgICBnb3RvIGdlbl9kZWNpbWFs TEw7Ci0jZW5kaWYKIAkJICBnb3RvIGdlbl9kZWNpbWFsOwogCQljYXNlICdvJzoKIAkJICBiYXNl ID0gODsKIAkJICBhZGRzaWduID0gMDsKLSNpZmRlZiBfX3g4Nl82NF9fCiAJCSAgaWYgKGxfb3B0 KQogCQkgICAgZ290byBnZW5fZGVjaW1hbExMOwotI2VuZGlmCiAJCSAgZ290byBnZW5fZGVjaW1h bDsKIAkJY2FzZSAneSc6CiAJCSAgKmRzdCsrID0gJzAnOwpAQCAtNTk5LDEwICs1NzMsOCBAQCBf X3NtYWxsX3Zzd3ByaW50ZiAoUFdDSEFSIGRzdCwgY29uc3QgV0NIQVIgKmZtdCwgdmFfbGlzdCBh cCkKIAkJY2FzZSAneCc6CiAJCSAgYmFzZSA9IDE2OwogCQkgIGFkZHNpZ24gPSAwOwotI2lmZGVm IF9feDg2XzY0X18KIAkJICBpZiAobF9vcHQpCiAJCSAgICBnb3RvIGdlbl9kZWNpbWFsTEw7Ci0j ZW5kaWYKIGdlbl9kZWNpbWFsOgogCQkgIGRzdCA9IHdybmFyZyAoZHN0LCBoX29wdCAqIGJhc2Us IGFkZHNpZ24sIGxlbiwgcGFkKTsKIAkJICBicmVhazsKQEAgLTYzMCwxMSArNjAyLDcgQEAgZ2Vu X2RlY2ltYWxMTDoKIAkJY2FzZSBMJ3AnOgogCQkgICpkc3QrKyA9IEwnMCc7CiAJCSAgKmRzdCsr ID0gTCd4JzsKLSNpZmRlZiBfX3g4Nl82NF9fCiAJCSAgZHN0ID0gd3JuYXJnTEwgKGRzdCwgaF9v cHQgKiAxNiwgMCwgbGVuLCBwYWQpOwotI2Vsc2UKLQkJICBkc3QgPSB3cm5hcmcgKGRzdCwgaF9v cHQgKiAxNiwgMCwgbGVuLCBwYWQpOwotI2VuZGlmCiAJCSAgYnJlYWs7CiAJCWNhc2UgTCdQJzoK IAkJICBSdGxJbml0VW5pY29kZVN0cmluZyAodXMgPSAmdXcsIGdsb2JhbF9wcm9nbmFtZSk7CmRp ZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL3N0cnNpZy5jYyBiL3dpbnN1cC9jeWd3aW4vc3Ryc2ln LmNjCmluZGV4IDAzZjk1OWY4OC4uNjVmOGNlZGZmIDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2lu L3N0cnNpZy5jYworKysgYi93aW5zdXAvY3lnd2luL3N0cnNpZy5jYwpAQCAtMTksNyArMTksNyBA QCBzdHJ1Y3Qgc2lnZGVzYwogICBjb25zdCBjaGFyICpzdHI7CiB9OwogCi0jZGVmaW5lIF9fc2ln bmFsc19jb21tb24gXAorI2RlZmluZSBfX3NpZ25hbHMgXAogICBfcyhTSUdIVVAsICJIYW5ndXAi KSwJCQkJLyogIDEgKi8gXAogICBfcyhTSUdJTlQsICJJbnRlcnJ1cHQiKSwJCQkvKiAgMiAqLyBc CiAgIF9zKFNJR1FVSVQsICJRdWl0IiksCQkJCS8qICAzICovIFwKQEAgLTU0LDExICs1NCw3IEBA IHN0cnVjdCBzaWdkZXNjCiAgIF9zMihTSUdQV1IsICJQb3dlciBmYWlsdXJlIiwJCQkvKiAyOSAq LyBcCiAgICAgICBTSUdMT1NULCAiUmVzb3VyY2UgbG9zdCIpLAkJCSBcCiAgIF9zKFNJR1VTUjEs ICJVc2VyIGRlZmluZWQgc2lnbmFsIDEiKSwJCS8qIDMwICovIFwKLSAgX3MoU0lHVVNSMiwgIlVz ZXIgZGVmaW5lZCBzaWduYWwgMiIpLAkJLyogMzEgKi8KLQotI2lmZGVmIF9feDg2XzY0X18KLSMg ZGVmaW5lIF9fc2lnbmFscyBcCi0gIF9fc2lnbmFsc19jb21tb24gXAorICBfcyhTSUdVU1IyLCAi VXNlciBkZWZpbmVkIHNpZ25hbCAyIiksCQkvKiAzMSAqLyBcCiAgIF9zKFNJR1JUTUlOLCAiUmVh bC10aW1lIHNpZ25hbCAwIiksCQkvKiAzMiAqLyBcCiAgIF9zKFNJR1JUTUlOICsgMSwgIlJlYWwt dGltZSBzaWduYWwgMSIpLAkvKiAzMyAqLyBcCiAgIF9zKFNJR1JUTUlOICsgMiwgIlJlYWwtdGlt ZSBzaWduYWwgMiIpLAkvKiAzNCAqLyBcCkBAIC05MiwxMiArODgsNiBAQCBzdHJ1Y3Qgc2lnZGVz YwogICBfcyhTSUdSVE1JTiArIDMwLCAiUmVhbC10aW1lIHNpZ25hbCAzMCIpLAkvKiA2MiAqLyBc CiAgIF9zKFNJR1JUTUlOICsgMzEsICJSZWFsLXRpbWUgc2lnbmFsIDMxIiksCS8qIDYzICovIFwK ICAgX3MoU0lHUlRNQVgsICJSZWFsLXRpbWUgc2lnbmFsIDMyIikJCS8qIDY0ICovCi0jZWxzZQot IyBkZWZpbmUgX19zaWduYWxzIFwKLSAgX19zaWduYWxzX2NvbW1vbiBcCi0gIF9zMihTSUdSVE1J TiwgIlJlYWwtdGltZSBzaWduYWwgMCIsCQkvKiAzMiAqLyBcCi0gICAgICBTSUdSVE1BWCwgIlJl YWwtdGltZSBzaWduYWwgMCIpCi0jZW5kaWYKIAogI2RlZmluZSBfcyhuLCBzKSAjbgogI2RlZmlu ZSBfczIobiwgcywgbjEsIHMxKSAjbgpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9zeXNjb25m LmNjIGIvd2luc3VwL2N5Z3dpbi9zeXNjb25mLmNjCmluZGV4IDNkMGJiOWM0Zi4uMmRiOTJlNGRl IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL3N5c2NvbmYuY2MKKysrIGIvd2luc3VwL2N5Z3dp bi9zeXNjb25mLmNjCkBAIC02NjQsNyArNjY0LDYgQEAgc3RhdGljIHN0cnVjdAogICB7MCwgTlVM TH0sCQkJCS8qIF9DU19QT1NJWF9WNl9JTFAzMl9PRkYzMl9MREZMQUdTICovCiAgIHswLCBOVUxM fSwJCQkJLyogX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0xJQlMgKi8KICAgezAsIE5VTEx9LAkJ CQkvKiBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9MSU5URkxBR1MgKi8KLSNpZmRlZiBfX3g4Nl82NF9f CiAgIHswLCBOVUxMfSwJCQkJLyogX0NTX1BPU0lYX1Y2X0lMUDMyX09GRkJJR19DRkxBR1MgKi8K ICAgezAsIE5VTEx9LAkJCQkvKiBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xERkxBR1MgKi8K ICAgezAsIE5VTEx9LAkJCQkvKiBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xJQlMgKi8KQEAg LTY3OCwyMSArNjc3LDYgQEAgc3RhdGljIHN0cnVjdAogICB7bHMgKCIiKX0sCQkJCS8qIF9DU19Q T1NJWF9WNl9MUEJJR19PRkZCSUdfTElCUyAqLwogICB7bHMgKCIiKX0sCQkJCS8qIF9DU19YQlM1 X0xQQklHX09GRkJJR19MSU5URkxBR1MgKi8KICAge2xzICgiUE9TSVhfVjZfTFA2NF9PRkY2NCIp fSwJCS8qIF9DU19QT1NJWF9WNl9XSURUSF9SRVNUUklDVEVEX0VOVlMgKi8KLSNlbHNlCi0gIHts cyAoIiIpfSwJCQkJLyogX0NTX1BPU0lYX1Y2X0lMUDMyX09GRkJJR19DRkxBR1MgKi8KLSAge2xz ICgiIil9LAkJCQkvKiBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xERkxBR1MgKi8KLSAge2xz ICgiIil9LAkJCQkvKiBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xJQlMgKi8KLSAge2xzICgi Iil9LAkJCQkvKiBfQ1NfWEJTNV9JTFAzMl9PRkZCSUdfTElOVEZMQUdTICovCi0gIHswLCBOVUxM fSwJCQkJLyogX0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfQ0ZMQUdTICovCi0gIHswLCBOVUxMfSwJ CQkJLyogX0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfTERGTEFHUyAqLwotICB7MCwgTlVMTH0sCQkJ CS8qIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0X0xJQlMgKi8KLSAgezAsIE5VTEx9LAkJCQkvKiBf Q1NfWEJTNV9MUDY0X09GRjY0X0xJTlRGTEFHUyAqLwotICB7MCwgTlVMTH0sCQkJCS8qIF9DU19Q T1NJWF9WNl9MUEJJR19PRkZCSUdfQ0ZMQUdTICovCi0gIHswLCBOVUxMfSwJCQkJLyogX0NTX1BP U0lYX1Y2X0xQQklHX09GRkJJR19MREZMQUdTICovCi0gIHswLCBOVUxMfSwJCQkJLyogX0NTX1BP U0lYX1Y2X0xQQklHX09GRkJJR19MSUJTICovCi0gIHswLCBOVUxMfSwJCQkJLyogX0NTX1hCUzVf TFBCSUdfT0ZGQklHX0xJTlRGTEFHUyAqLwotICB7bHMgKCJQT1NJWF9WNl9JTFAzMl9PRkZCSUci KX0sCS8qIF9DU19QT1NJWF9WNl9XSURUSF9SRVNUUklDVEVEX0VOVlMgKi8KLSNlbmRpZgogICB7 bHMgKCIiKX0sCQkJCS8qIF9DU19QT1NJWF9WN19USFJFQURTX0NGTEFHUyAqLwogICB7bHMgKCIi KX0sCQkJCS8qIF9DU19QT1NJWF9WN19USFJFQURTX0xERkxBR1MgKi8KICAge2xzICgiUE9TSVhM WV9DT1JSRUNUPTEiKX0sCQkvKiBfQ1NfVjdfRU5WICovCmRpZmYgLS1naXQgYS93aW5zdXAvY3ln d2luL3RocmVhZC5jYyBiL3dpbnN1cC9jeWd3aW4vdGhyZWFkLmNjCmluZGV4IGI3ZGE0ZDBjNy4u NzJjMDRkYmRhIDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL3RocmVhZC5jYworKysgYi93aW5z dXAvY3lnd2luL3RocmVhZC5jYwpAQCAtNjMwLDExICs2MzAsNyBAQCBwdGhyZWFkOjpjYW5jZWwg KCkKICAgICAgIHRocmVhZGxpc3RfdCAqdGxfZW50cnkgPSBjeWdoZWFwLT5maW5kX3RscyAoY3ln dGxzKTsKICAgICAgIGlmICghY3lndGxzLT5pbnNpZGVfa2VybmVsICgmY29udGV4dCkpCiAJewot I2lmZGVmIF9feDg2XzY0X18KIAkgIGNvbnRleHQuUmlwID0gKFVMT05HX1BUUikgcHRocmVhZDo6 c3RhdGljX2NhbmNlbF9zZWxmOwotI2Vsc2UKLQkgIGNvbnRleHQuRWlwID0gKERXT1JEKSBwdGhy ZWFkOjpzdGF0aWNfY2FuY2VsX3NlbGY7Ci0jZW5kaWYKIAkgIFNldFRocmVhZENvbnRleHQgKHdp bjMyX29ial9pZCwgJmNvbnRleHQpOwogCX0KICAgICAgIGN5Z2hlYXAtPnVubG9ja190bHMgKHRs X2VudHJ5KTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vd2luY2FwLmggYi93aW5zdXAvY3ln d2luL3dpbmNhcC5oCmluZGV4IDgxODM1OWY5NC4uZTA2YjgyZjFmIDEwMDY0NAotLS0gYS93aW5z dXAvY3lnd2luL3dpbmNhcC5oCisrKyBiL3dpbnN1cC9jeWd3aW4vd2luY2FwLmgKQEAgLTczLDkg KzczLDcgQEAgcHVibGljOgogICB7CiAgICAgcmV0dXJuICgod2luY2FwcyAqKSB0aGlzLT5jYXBz KS0+ZGVmX2d1YXJkX3BhZ2VzICogcGFnZV9zaXplICgpOwogICB9Ci0jaWZkZWYgX194ODZfNjRf XwogICBpbnRwdHJfdCBJTVBMRU1FTlQgKG1tYXBfc3RvcmFnZV9oaWdoKQotI2VuZGlmCiAgIGJv b2wgIElNUExFTUVOVCAoaXNfc2VydmVyKQogICBib29sCUlNUExFTUVOVCAobmVlZHNfcXVlcnlf aW5mb3JtYXRpb24pCiAgIGJvb2wJSU1QTEVNRU5UIChoYXNfcHJlY2lzZV9zeXN0ZW1fdGltZSkK ZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vd2luc3VwLmggYi93aW5zdXAvY3lnd2luL3dpbnN1 cC5oCmluZGV4IDg3YWE1ZWY4ZC4uNDE0N2RjZWJmIDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2lu L3dpbnN1cC5oCisrKyBiL3dpbnN1cC9jeWd3aW4vd2luc3VwLmgKQEAgLTE1NiwxMSArMTU2LDYg QEAgZXh0ZXJuICJDIiBQVk9JRCBkbGxfZGxsY3J0MCAoSE1PRFVMRSwgcGVyX3Byb2Nlc3MgKik7 CiAKIGV4dGVybiAiQyIgdm9pZCBfcGVpMzg2X3J1bnRpbWVfcmVsb2NhdG9yIChwZXJfcHJvY2Vz cyAqKTsKIAotI2lmZGVmIF9faTM4Nl9fCi0vKiBkeW5hbWljYWxseSBsb2FkZWQgZGxsIGluaXRp YWxpemF0aW9uIGZvciBub24tY3lnd2luIGFwcHMgKi8KLWV4dGVybiAiQyIgaW50IGRsbF9ub25j eWd3aW5fZGxsY3J0MCAoSE1PRFVMRSwgcGVyX3Byb2Nlc3MgKik7Ci0jZW5kaWYgLyogX19pMzg2 X18gKi8KLQogdm9pZCBkb19leGl0IChpbnQpIF9fYXR0cmlidXRlX18gKChub3JldHVybikpOwog CiAvKiBsaWJzdGRjKysgbWFsbG9jIG9wZXJhdG9yIHdyYXBwZXIgc3VwcG9ydC4gICovCkBAIC0y NTksMTIgKzI1NCw3IEBAIGV4dGVybiBpbmxpbmUgYm9vbCBmbHVzaF9maWxlX2J1ZmZlcnMgKEhB TkRMRSBoKQogI2RlZmluZSBOT19SIH4oU19JUlVTUiB8IFNfSVJHUlAgfCBTX0lST1RIKQogI2Rl ZmluZSBOT19YIH4oU19JWFVTUiB8IFNfSVhHUlAgfCBTX0lYT1RIKQogCi0KLSNpZmRlZiBfX3g4 Nl82NF9fCiBleHRlcm4gIkMiIGNoYXIgX19kYXRhX3N0YXJ0X18sIF9fZGF0YV9lbmRfXywgX19i c3Nfc3RhcnRfXywgX19ic3NfZW5kX187Ci0jZWxzZQotZXh0ZXJuICJDIiBjaGFyIF9kYXRhX3N0 YXJ0X18sIF9kYXRhX2VuZF9fLCBfYnNzX3N0YXJ0X18sIF9ic3NfZW5kX187Ci0jZW5kaWYKIGV4 dGVybiAiQyIgdm9pZCAoKl9fQ1RPUl9MSVNUX18pICh2b2lkKTsKIGV4dGVybiAiQyIgdm9pZCAo Kl9fRFRPUl9MSVNUX18pICh2b2lkKTsKIAotLSAKMi4zNi4xCgo= --------------FS9iKONrJ1t7NVSYeuMoBcEE--