From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2070d.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eaa::70d]) by sourceware.org (Postfix) with ESMTPS id 6E5B43836674 for ; Thu, 26 May 2022 19:17:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6E5B43836674 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=oCzESCnCHmQa1d7mvZv2cipz4jMNHkACs+S/VH0sYe/9i6Z8zCudx1zz4tUnFQqOxv0iuEJlfC+BFE9TZskUj2e55z809UBYC3wBAD8LBiAZJLX4DQVdPMQZ6iO1VFA0uqSG6OpFPOwYqfQ89dXlYNo+9wpw93l9wh0GoY0XI1hUGvn1A39RFAaBM8HCaFaGHowx+VKHFV/Sbnykui3kGcJcueTM+4p/gPNOEnOkLQtX2WMi9FuJUojnWUoob4MoRraIWQ1rK0IPmCUF0x8fBAMn4Jym2/rt6mZcoN9SgRjmM21UtJOESaXsEPJBUW5VDqL29lkY9CPr3+okeo9pZg== 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=dbl5OqkvTmhdfB9LxICwDij6tgCghJLlNw3eVSXBXsc=; b=Kq9MdYyUaxrbCKb5P1F52dviGcxNXdesAxnYT6MiRDK2BOYphtzs0aTbuu7azMaOMO9FIdRylKptD8hqBWwQQbtGB9d8esLJ4PpUzS64bJdb0PMEXLZdcStSWx6QAnnlvculqxFIilJrcwtnJ+EnW0LCeyocjOjnwDtGbfalrItTsXvMYDEr0zIavv2g3I3nqvA3BkGmsUbve2cdNwIwlLChDd3qvdy7YJD1SsJg647zzqce21wHbTu7BtzYYDrjxKVV0qmjMvzg9cpW2psWkvysCxGB6U95uj4Wauxu0Q8/XhPodDgaor9nrBtNDi/H42ituGVrFwlhKYIFwv1+Xg== 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=dbl5OqkvTmhdfB9LxICwDij6tgCghJLlNw3eVSXBXsc=; b=am/tLsNBCwYMD2wJ3qI7tLAoT2UM3GOWQfLFB4hpGXvJlwnEMXPVGcRCFlHOMq6kuyNrq6sUu9QjA9JOL8TM7M3KSFX3bVNodF3TDb5EN3PO4/AKkxWGo2w2h9yterO1PiCJhDQSWmKKvHJ3S4qS1lby94xlJsXqJ30wmIP/krM= 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:08 +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:08 +0000 Content-Type: multipart/mixed; boundary="------------L0hbInc0L3bMzn4HdR7AVZfO" Message-ID: <639b8ca8-e077-1181-d1ed-cda520cd81dd@cornell.edu> Date: Thu, 26 May 2022 15:17:07 -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 2/7] Cygwin: simplify some function names X-ClientProxiedBy: BLAPR03CA0070.namprd03.prod.outlook.com (2603:10b6:208:329::15) 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: b9a66ccb-1c09-44c6-b015-08da3f4c53de 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: +RyFHwL55+d2JdTMpLONX+ar/m45JCNpG3NW1t/6BTif/QYDsHpIPxFNFb0sRMwg/B1cxPBtTf33bYV+3CXstdLd3zbF3Gc44PoNUyexxzpsi7NXPeHDfiLaUxNFdGgpcJgPqTHzY9tNN/nPYeLpDe9YMuSdl+Grxz4cwgNMlX1458Ta851YnD32bFkLTuHxmTEP2PhdggfqKrjTM2ciQ8g80JaaOEHOycccm7Qk0KxoEMV7QM7QliFRfjzxNDopF0ZO6FI0ky8wS+v/5p/X11JBwSLONY0JLXLERt68peFj25Oj19mVxkQX/T+iwZouhq897Pu8qLDJO8YMFzaQwEDKmEyHVtLGcdsQJRWAuvCqxqDyyMMIUhldMSqTL80otJrpNr+P1NEr2P1pHHFcpUdL9NudoVQ5TDnjFS8QWYcibJx4lchdIjKFyL+oIuuAw3I1/Rm170G+wlU9W2R1XO7KoRZRamoi64cMbY/LRKt1msw3K+Yr23dEX7asd9Rpxpbj0bDxOwonz7czu214xIugkI1uHlAPP2S8WVBnIEzLAzMIxh0myB4UfB9+HqEpEzFizgGHbrAyQ2C50ZcJXlikt0PvOPEigvVojBjJBw1keGJrbhQ3ptUan6lOLnZuXTPu6da33DVVrxRpV2vEgDDC8qgA5aUFYj4atVdSz17UGgsYVlBZoYumdFXOROld5BSLTX75jp3g21m8xaCnyZ8k/0YVG+7JDvIyxHRcJ8Q= 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?ZVAvenVTUWcwRkJKbnNxRnd2cVRMcnpuTHdqVWNmRzU2Vy9nNGVpNjk5cVY4?= =?utf-8?B?djVSSmFxbFViY01ML3BsWThZY0tJOGI2TVZPemRVVGJ1bCtPeHo4bHJCSjVB?= =?utf-8?B?MXdnWHhEbytZV3BROEZtZGlhQSsxeUtCVlE5ZTY5aUVXaTl6eXFNZ0duTncv?= =?utf-8?B?VU15SXdCR3Q5RmpSS2xnZFBvQnhCR0Rkbjh5eWpOK2VqTW1VM0RJUk9uNVdW?= =?utf-8?B?U1pCMXNPRjc1NG0wUkNObWhUTUM5bmttTS9xeXVrM2lwdmVjV1NGUnZsc3c5?= =?utf-8?B?TFc1NnhyVjBWOXV3cTJKdUt6M2hGSWhsd29HVnMzcTVDV2wxNVhCZE5Wb2g3?= =?utf-8?B?NEJPQldMYzBIL29EUWlGUjBnNTdEQjMzcmVGRWJuUTBTa0xRakZHZlhoY1o4?= =?utf-8?B?MmFQVUZyTVFISENIM1h4Q1prYXhTRkhUWWRYZGZSdmIvNzdncVZ3b2RjT0R2?= =?utf-8?B?ZTRuVVFVcXlYdTljU2hYN3d1TWhzME5CdERTWFIrMlZDM0NRN3dlWnNkZzZn?= =?utf-8?B?V2dKendyZGlNOGsxV01HbmNqaUVCRG16Qk94UTNTam1CeW5lUENlUVhwN293?= =?utf-8?B?Nk0rUDBmQnBBTk5sanpXUnBTUk83UDlxV1ZEU005WVZuL2hOWGVLTUJ6Q3RJ?= =?utf-8?B?ZU9yT3RUZVp2Tkx5Wmc4czdGekpQU2NlVzdkMHVFa1B6MnFINUZnZHBYb0dF?= =?utf-8?B?dWdYeTlucndaNGtaRmtFZjZ5ZGtVUFVIT1J4QWZreSttZk1IdlhFV0tsU3Fo?= =?utf-8?B?dW5NS1gxU2lEN3BQMDlOcjBYR3dOV3U4czYxR0lxc3Y1SFl6aVI5elA3NHZr?= =?utf-8?B?RU1Xenp6VytCbWU0T3IwSVFEamErZnl5Q3N6dW4yeVB3VlArZ3FrMkljM2My?= =?utf-8?B?dDNZMVY3cVdielVOUlNldS9rdkFwWGV6bWV1elJPZ0pzUXNqcDZYZ1FvUVd2?= =?utf-8?B?NkJsaitZLzI0ejVEdm1tdFFFbUc2MUl4OFNBa1JFTVNzVnVabEE0MWc2eFUz?= =?utf-8?B?RUswbXYzY1BZRFF3NTFxRmJrQTh3ckd5TmlBSDBpWm0rb0xURml4T2kwWmVQ?= =?utf-8?B?R2JMSmY0MVBjcWJYQjVMMnlFRVVlUmhFb2VNK0V4eXRUQ09lelEvQ3pIaWtu?= =?utf-8?B?ZXJiK1FsdzBqTXZoNGY1U0JENEJ6bFFDd3V4RkIxaSszOERyaDA1NEVKVTlF?= =?utf-8?B?THBjTWtkWW5FemtOMFNpOURMYUtWeTl6NmZPWlJ3bE5hSDcvOWNORHJXTi9x?= =?utf-8?B?MTd1TDYreTBxcklXQTlwSFA1U2tMVFJ5aEd5UFFWNUlhcy9sL0tWRlNmTG1S?= =?utf-8?B?ZVRlZ2R3RE5tNjVLeGZMaXBLSDlBeEo3akFwdkwzQ25GYmdEaEdSWkNmME90?= =?utf-8?B?V3FLVXVPY09yODc0U3hJMmdyWStuTlkyQzRiN1JlUUxBdkROaG5Majk1dFVZ?= =?utf-8?B?QUgwYmFVUEQyYjI4aUN3WUw3STlWRlh6c3Zpazd3eW1ObFhKTlZhc2xwajlO?= =?utf-8?B?Vkh2MFZsR2ZFQjhQekMyVjc2eVB3SmY2OVE4b2crZFRjaVAva280Nk5yTU9J?= =?utf-8?B?c25Ob0d6bE8yRnpMTGxmNzdPbzlrYXAwSkhaNHZKMU1tejlZWmNuR2hLSWIv?= =?utf-8?B?dlRoM05Idlk3SUdIalZUTnhNK2kvZ3phVWpzMmRHWlZTcHJobVFtUi9xM1RM?= =?utf-8?B?YmVrMzhnc215ZnJyaXRTUVJPcG51b2dWckxUVFlUWU1LZ0RBc0pEZnF0elFs?= =?utf-8?B?ZVJVa0pzUDJTSEM4WDBvTXBEVm4rUHcvTlpGbXlVNm5iUnUyUEhYaGNjNTJF?= =?utf-8?B?b2s2bkpzMXpXK1JIZ21rbmVzUWlzMVZkN2J2cmY0VVhYUFFINjN6ZUdiTU13?= =?utf-8?B?Y2NwS1RTNVJmRlNSTk0vcjdjZjNWVFFHMzQ0ZU9XTWh1cGhzVVoyREhzSDZ2?= =?utf-8?B?MU54QjhQRVVJbTEzNm8vMnRxWS9HcnJFdXI1REdNSHVmcVRTS3J2c0IwRElk?= =?utf-8?B?NzZsb3A5cjFUN2ZTdnBya0wzRmdHUmptL2dMSUsrc0dQQnBxaTJRNWtDeUxK?= =?utf-8?B?aEZ3OWtOY0pqaitZVHJWMWNuTEsvVzR3My9scWswS3lHMWpQTCtsVTkxQitW?= =?utf-8?B?aXpQT0phMTh6NE1oblVzQWU0NHFnNWMwcXFKNnJHSm9rUzBxeXl1RVJ6dWdl?= =?utf-8?B?TzBTWlh6R2EzNUdUeFpNQWNvTTVLUHdYcDVzMnNmY2NKQUVOUjNrZGR6ektM?= =?utf-8?B?UEEwY1RuRzNjYUZBUDUvbkxPdi96WGk3MVBPWG1sNWh5enhZbEVoU3pvdWRr?= =?utf-8?B?UCt3SkNneWkrZlUya3FPT0tHaVFycFRsWlI1ai8xZVRibHhjNW43OXRpWVVC?= =?utf-8?Q?H5TGHg0dan2rF0NrKdB3jyYIzDMczTIRIRYtQ6wp8VIV8?= X-MS-Exchange-AntiSpam-MessageData-1: PEEFY8lc68p6gw== X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: b9a66ccb-1c09-44c6-b015-08da3f4c53de 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:08.5388 (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: 4OsLKBa3+B7GCladMYK5/nA1orgFZarYyF3IwCGt/7gx86JjMHPSrOqJfP3L8lUS5xpFZrpuJEsvROiJaKttqQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR04MB6461 X-Spam-Status: No, score=-8.4 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:21 -0000 --------------L0hbInc0L3bMzn4HdR7AVZfO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Patch attached. --------------L0hbInc0L3bMzn4HdR7AVZfO Content-Type: text/plain; charset=UTF-8; name="0002-Cygwin-simplify-some-function-names.patch" Content-Disposition: attachment; filename="0002-Cygwin-simplify-some-function-names.patch" Content-Transfer-Encoding: base64 RnJvbSAyZThiMDY5MTgyZTNiYTYzOWJlYWM0Mzc5NDIwMWU0MDk3MjNiNWQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4KRGF0ZTog U3VuLCAyMiBNYXkgMjAyMiAxNToxODo0OCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMi83XSBDeWd3 aW46IHNpbXBsaWZ5IHNvbWUgZnVuY3Rpb24gbmFtZXMKClJlbW92ZSAiMzIiIG9yICI2NCIgZnJv bSBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgbmFtZXM6IGFjbDMyLAphY2xjaGVjazMyLCBhY2xmcm9t bW9kZTMyLCBhY2xmcm9tcGJpdHMzMiwgYWNsZnJvbXRleHQzMiwgYWNsc29ydDMyLAphY2x0b21v ZGUzMiwgYWNsdG9wYml0czMyLCBhY2x0b3RleHQzMiwgZmFjbDMyLCBmY2hvd24zMiwgZmNudGw2 NCwKZnN0YXQ2NCwgX2ZzdGF0NjQsIF9mc3RhdDY0X3IsIGZ0cnVuY2F0ZTY0LCBnZXRnaWQzMiwg Z2V0Z3JlbnQzMiwKZ2V0Z3JnaWQzMiwgZ2V0Z3JuYW0zMiwgZ2V0Z3JvdXBzMzIsIGdldHB3dWlk MzIsIGdldHB3dWlkX3IzMiwKZ2V0dWlkMzIsIGdldHVpZDMyLCBpbml0Z3JvdXBzMzIsIGxzZWVr NjQsIGxzdGF0NjQsIG1rbm9kMzIsIG1tYXA2NCwKc2V0ZWdpZDMyLCBzZXRldWlkMzIsIHNldGdp ZDMyLCBzZXRncm91cHMzMiwgc2V0cmVnaWQzMiwgc2V0cmV1aWQzMiwKc2V0dWlkMzIsIHN0YXQ2 NCwgX3N0YXQ2NF9yLCB0cnVuY2F0ZTY0LgoKUmVtb3ZlIHByb3RvdHlwZXMgYW5kIG1hY3JvIGRl ZmluaXRpb25zIG9mIHRoZXNlIG5hbWVzLgoKUmVtb3ZlICIjaWZuZGVmIF9fSU5TSURFX0NZR1dJ Tl9fIiBmcm9tIHNvbWUgaGVhZGVycyBzbyB0aGF0IHRoZSBuZXcKbmFtZXMgd2lsbCBiZSBhdmFp bGFibGUgd2hlbiBjb21waWxpbmcgQ3lnd2luLgoKUmVtb3ZlIGFsaWFzZXMgdGhhdCBhcmUgbm8g bG9uZ2VyIG5lZWRlZC4KCkluY2x1ZGUgPHVuaXN0ZC5oPiBpbiBmaGFuZGxlcl9jbGlwYm9hcmQu Y2MgZm9yIHRoZSBkZWNsYXJhdGlvbnMgb2YKZ2V0ZXVpZCBhbmQgZ2V0ZWdpZC4KLS0tCiBuZXds aWIvbGliYy9pbmNsdWRlL3B3ZC5oICAgICAgICAgICAgICB8ICAgMiArLQogbmV3bGliL2xpYmMv aW5jbHVkZS9zeXMvc3RhdC5oICAgICAgICAgfCAgIDIgKy0KIG5ld2xpYi9saWJjL2luY2x1ZGUv c3lzL3VuaXN0ZC5oICAgICAgIHwgIDE2ICstLS0KIG5ld2xpYi9saWJjL3Bvc2l4L3Bvc2l4X3Nw YXduLmMgICAgICAgIHwgIDExIC0tLQogd2luc3VwL2N5Z3dpbi9jeWdoZWFwLmggICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHdpbnN1cC9jeWd3aW4vY3lnbWFsbG9jLmggICAgICAgICAgICAgIHwg ICAyIC0KIHdpbnN1cC9jeWd3aW4vY3lnc2VydmVyX2lwYy5oICAgICAgICAgIHwgICA0ICstCiB3 aW5zdXAvY3lnd2luL2ZjbnRsLmNjICAgICAgICAgICAgICAgICB8ICAgNSArLQogd2luc3VwL2N5 Z3dpbi9maGFuZGxlci5jYyAgICAgICAgICAgICAgfCAgIDQgKy0KIHdpbnN1cC9jeWd3aW4vZmhh bmRsZXJfY2xpcGJvYXJkLmNjICAgIHwgICA1ICstCiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX2Rp c2tfZmlsZS5jYyAgICB8ICAgMiArLQogd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9wcm9jZXNzLmNj ICAgICAgfCAgIDIgKy0KIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcmF3LmNjICAgICAgICAgIHwg ICA0ICstCiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3NvY2tldF9sb2NhbC5jYyB8ICAgOCArLQog d2luc3VwL2N5Z3dpbi9maGFuZGxlcl90dHkuY2MgICAgICAgICAgfCAgIDIgKy0KIHdpbnN1cC9j eWd3aW4vZ2xvYi5jYyAgICAgICAgICAgICAgICAgIHwgICA3ICstCiB3aW5zdXAvY3lnd2luL2dy cC5jYyAgICAgICAgICAgICAgICAgICB8ICAyOCArKy0tLS0KIHdpbnN1cC9jeWd3aW4vaW5jbHVk ZS9jeWd3aW4vYWNsLmggICAgIHwgICAyIC0KIHdpbnN1cC9jeWd3aW4vaW5jbHVkZS9jeWd3aW4v Z3JwLmggICAgIHwgICA3IC0tCiB3aW5zdXAvY3lnd2luL2luY2x1ZGUvY3lnd2luL3N0YXQuaCAg ICB8ICAxMCAtLQogd2luc3VwL2N5Z3dpbi9pbmNsdWRlL3N5cy9tbWFuLmggICAgICAgfCAgIDIg LQogd2luc3VwL2N5Z3dpbi9pcGMuY2MgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHdpbnN1 cC9jeWd3aW4vbGliYy9mdHMuYyAgICAgICAgICAgICAgIHwgICA5IC0tCiB3aW5zdXAvY3lnd2lu L2xpYmMvbWluaXJlcy5jICAgICAgICAgICB8ICAgNCArLQogd2luc3VwL2N5Z3dpbi9saWJjL3Jj bWQuY2MgICAgICAgICAgICAgfCAgMTMgKystCiB3aW5zdXAvY3lnd2luL2xpYmMvcmV4ZWMuY2Mg ICAgICAgICAgICB8ICAgNCArLQogd2luc3VwL2N5Z3dpbi9ta3RlbXAuY2MgICAgICAgICAgICAg ICAgfCAgIDQgKy0KIHdpbnN1cC9jeWd3aW4vbW1hcC5jYyAgICAgICAgICAgICAgICAgIHwgICA4 ICstCiB3aW5zdXAvY3lnd2luL3Bhc3N3ZC5jYyAgICAgICAgICAgICAgICB8ICAgOCArLQogd2lu c3VwL2N5Z3dpbi9wYXRoLmNjICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHdpbnN1cC9jeWd3 aW4vcG9zaXhfaXBjLmNjICAgICAgICAgICAgIHwgIDEwICstCiB3aW5zdXAvY3lnd2luL3NlY19h Y2wuY2MgICAgICAgICAgICAgICB8ICA0MSArKystLS0tLS0KIHdpbnN1cC9jeWd3aW4vc2VjdXJp dHkuY2MgICAgICAgICAgICAgIHwgICA0ICstCiB3aW5zdXAvY3lnd2luL3NlY3VyaXR5LmggICAg ICAgICAgICAgICB8ICAgMiAtCiB3aW5zdXAvY3lnd2luL3N5c2NhbGxzLmNjICAgICAgICAgICAg ICB8IDEyMSArKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiB3aW5zdXAvY3lnd2luL3VpbmZvLmNj ICAgICAgICAgICAgICAgICB8ICAxNiArLS0tCiB3aW5zdXAvY3lnd2luL3dpbnN1cC5oICAgICAg ICAgICAgICAgICB8ICAgNyAtLQogMzcgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMoKyks IDI2MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXdsaWIvbGliYy9pbmNsdWRlL3B3ZC5o IGIvbmV3bGliL2xpYmMvaW5jbHVkZS9wd2QuaAppbmRleCBiYWFlODg0MTAuLjQ1ZDE1OTRlYSAx MDA2NDQKLS0tIGEvbmV3bGliL2xpYmMvaW5jbHVkZS9wd2QuaAorKysgYi9uZXdsaWIvbGliYy9p bmNsdWRlL3B3ZC5oCkBAIC01NSwxMCArNTUsMTAgQEAgc3RydWN0IHBhc3N3ZCB7CiAJY2hhcgkq cHdfc2hlbGw7CQkvKiBkZWZhdWx0IHNoZWxsICovCiB9OwogCi0jaWZuZGVmIF9fSU5TSURFX0NZ R1dJTl9fCiBzdHJ1Y3QgcGFzc3dkCSpnZXRwd3VpZCAodWlkX3QpOwogc3RydWN0IHBhc3N3ZAkq Z2V0cHduYW0gKGNvbnN0IGNoYXIgKik7CiAKKyNpZm5kZWYgX19JTlNJREVfQ1lHV0lOX18KICNp ZiBfX01JU0NfVklTSUJMRSB8fCBfX1BPU0lYX1ZJU0lCTEUKIGludCAJCSBnZXRwd25hbV9yIChj b25zdCBjaGFyICosIHN0cnVjdCBwYXNzd2QgKiwKIAkJCWNoYXIgKiwgc2l6ZV90ICwgc3RydWN0 IHBhc3N3ZCAqKik7CmRpZmYgLS1naXQgYS9uZXdsaWIvbGliYy9pbmNsdWRlL3N5cy9zdGF0Lmgg Yi9uZXdsaWIvbGliYy9pbmNsdWRlL3N5cy9zdGF0LmgKaW5kZXggNjUyNTI3MmRkLi45OGY1YWRk YjQgMTAwNjQ0Ci0tLSBhL25ld2xpYi9saWJjL2luY2x1ZGUvc3lzL3N0YXQuaAorKysgYi9uZXds aWIvbGliYy9pbmNsdWRlL3N5cy9zdGF0LmgKQEAgLTE0Miw3ICsxNDIsNyBAQCBpbnQJbWtmaWZv IChjb25zdCBjaGFyICpfX3BhdGgsIG1vZGVfdCBfX21vZGUgKTsKIGludAlzdGF0IChjb25zdCBj aGFyICpfX3Jlc3RyaWN0IF9fcGF0aCwgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3QgX19zYnVmICk7 CiBtb2RlX3QJdW1hc2sgKG1vZGVfdCBfX21hc2sgKTsKIAotI2lmIGRlZmluZWQgKF9fU1BVX18p IHx8IGRlZmluZWQoX19ydGVtc19fKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pICYmICFkZWZpbmVk KF9fSU5TSURFX0NZR1dJTl9fKQorI2lmIGRlZmluZWQgKF9fU1BVX18pIHx8IGRlZmluZWQoX19y dGVtc19fKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pCiBpbnQJbHN0YXQgKGNvbnN0IGNoYXIgKl9f cmVzdHJpY3QgX19wYXRoLCBzdHJ1Y3Qgc3RhdCAqX19yZXN0cmljdCBfX2J1ZiApOwogaW50CW1r bm9kIChjb25zdCBjaGFyICpfX3BhdGgsIG1vZGVfdCBfX21vZGUsIGRldl90IF9fZGV2ICk7CiAj ZW5kaWYKZGlmZiAtLWdpdCBhL25ld2xpYi9saWJjL2luY2x1ZGUvc3lzL3VuaXN0ZC5oIGIvbmV3 bGliL2xpYmMvaW5jbHVkZS9zeXMvdW5pc3RkLmgKaW5kZXggM2NjMzEzMDgwLi4yMTZkNzc5ZDgg MTAwNjQ0Ci0tLSBhL25ld2xpYi9saWJjL2luY2x1ZGUvc3lzL3VuaXN0ZC5oCisrKyBiL25ld2xp Yi9saWJjL2luY2x1ZGUvc3lzL3VuaXN0ZC5oCkBAIC0yMSw5ICsyMSw3IEBAIGludAlhY2Nlc3Mg KGNvbnN0IGNoYXIgKl9fcGF0aCwgaW50IF9fYW1vZGUpOwogdW5zaWduZWQgIGFsYXJtICh1bnNp Z25lZCBfX3NlY3MpOwogaW50ICAgICBjaGRpciAoY29uc3QgY2hhciAqX19wYXRoKTsKIGludCAg ICAgY2htb2QgKGNvbnN0IGNoYXIgKl9fcGF0aCwgbW9kZV90IF9fbW9kZSk7Ci0jaWYgIWRlZmlu ZWQoX19JTlNJREVfQ1lHV0lOX18pCiBpbnQgICAgIGNob3duIChjb25zdCBjaGFyICpfX3BhdGgs IHVpZF90IF9fb3duZXIsIGdpZF90IF9fZ3JvdXApOwotI2VuZGlmCiAjaWYgX19CU0RfVklTSUJM RSB8fCAoX19YU0lfVklTSUJMRSA+PSA0ICYmIF9fUE9TSVhfVklTSUJMRSA8IDIwMDExMikKIGlu dCAgICAgY2hyb290IChjb25zdCBjaGFyICpfX3BhdGgpOwogI2VuZGlmCkBAIC03OSwxMSArNzcs OSBAQCBpbnQgICAgIGZjaGRpciAoaW50IF9fZmlsZGVzKTsKICNpZiBfX1BPU0lYX1ZJU0lCTEUg Pj0gMTk5MzA5CiBpbnQgICAgIGZjaG1vZCAoaW50IF9fZmlsZGVzLCBtb2RlX3QgX19tb2RlKTsK ICNlbmRpZgotI2lmICFkZWZpbmVkKF9fSU5TSURFX0NZR1dJTl9fKQogI2lmIF9fQlNEX1ZJU0lC TEUgfHwgX19YU0lfVklTSUJMRSA+PSA0IHx8IF9fUE9TSVhfVklTSUJMRSA+PSAyMDA4MDkKIGlu dCAgICAgZmNob3duIChpbnQgX19maWxkZXMsIHVpZF90IF9fb3duZXIsIGdpZF90IF9fZ3JvdXAp OwogI2VuZGlmCi0jZW5kaWYKICNpZiBfX0FURklMRV9WSVNJQkxFCiBpbnQJZmNob3duYXQgKGlu dCBfX2RpcmZkLCBjb25zdCBjaGFyICpfX3BhdGgsIHVpZF90IF9fb3duZXIsIGdpZF90IF9fZ3Jv dXAsIGludCBfX2ZsYWdzKTsKICNlbmRpZgpAQCAtMTA2LDExICsxMDIsOSBAQCBpbnQJZ2V0ZG9t YWlubmFtZSAgKGNoYXIgKl9fbmFtZSwgc2l6ZV90IF9fbGVuKTsKICNpZiBfX0JTRF9WSVNJQkxF CiBpbnQgICAgIGdldGVudHJvcHkgKHZvaWQgKiwgc2l6ZV90KTsKICNlbmRpZgotI2lmICFkZWZp bmVkKF9fSU5TSURFX0NZR1dJTl9fKQogZ2lkX3QgICBnZXRlZ2lkICh2b2lkKTsKIHVpZF90ICAg Z2V0ZXVpZCAodm9pZCk7CiBnaWRfdCAgIGdldGdpZCAodm9pZCk7Ci0jZW5kaWYKIGludCAgICAg Z2V0Z3JvdXBzIChpbnQgX19naWRzZXRzaXplLCBnaWRfdCBfX2dyb3VwbGlzdFtdKTsKICNpZiBf X0JTRF9WSVNJQkxFIHx8IF9fWFNJX1ZJU0lCTEUgPj0gNAogbG9uZyAgICBnZXRob3N0aWQgKHZv aWQpOwpAQCAtMTM1LDkgKzEyOSw3IEBAIHBpZF90ICAgZ2V0cHBpZCAodm9pZCk7CiAjaWYgX19Q T1NJWF9WSVNJQkxFID49IDIwMDgwOSB8fCBfX1hTSV9WSVNJQkxFID49IDQKIHBpZF90ICAgZ2V0 c2lkIChwaWRfdCk7CiAjZW5kaWYKLSNpZiAhZGVmaW5lZChfX0lOU0lERV9DWUdXSU5fXykKIHVp ZF90ICAgZ2V0dWlkICh2b2lkKTsKLSNlbmRpZgogI2lmIF9fQlNEX1ZJU0lCTEUgfHwgKF9fWFNJ X1ZJU0lCTEUgJiYgX19YU0lfVklTSUJMRSA8IDUwMCkKIGNoYXIgKglnZXR1c2Vyc2hlbGwgKHZv aWQpOwogI2VuZGlmCkBAIC0xNTEsMTEgKzE0Myw5IEBAIGludCAgICAgaXNhdHR5IChpbnQgX19m aWxkZXMpOwogI2lmIF9fQlNEX1ZJU0lCTEUKIGludCAgICAgICAgaXNzZXR1Z2lkICh2b2lkKTsK ICNlbmRpZgotI2lmICFkZWZpbmVkKF9fSU5TSURFX0NZR1dJTl9fKQogI2lmIF9fQlNEX1ZJU0lC TEUgfHwgX19YU0lfVklTSUJMRSA+PSA0IHx8IF9fUE9TSVhfVklTSUJMRSA+PSAyMDA4MDkKIGlu dCAgICAgbGNob3duIChjb25zdCBjaGFyICpfX3BhdGgsIHVpZF90IF9fb3duZXIsIGdpZF90IF9f Z3JvdXApOwogI2VuZGlmCi0jZW5kaWYKIGludCAgICAgbGluayAoY29uc3QgY2hhciAqX19wYXRo MSwgY29uc3QgY2hhciAqX19wYXRoMik7CiAjaWYgX19BVEZJTEVfVklTSUJMRQogaW50ICAgICBs aW5rYXQgKGludCBfX2RpcmZkMSwgY29uc3QgY2hhciAqX19wYXRoMSwgaW50IF9fZGlyZmQyLCBj b25zdCBjaGFyICpfX3BhdGgyLCBpbnQgX19mbGFncyk7CkBAIC0xOTgsMTMgKzE4OCwxMSBAQCBp bnQJcnVzZXJvayAoY29uc3QgY2hhciAqcmhvc3QsIGludCBzdXBlcnVzZXIsIGNvbnN0IGNoYXIg KnJ1c2VyLCBjb25zdCBjaGFyICpsdQogI2lmIF9fQlNEX1ZJU0lCTEUgfHwgKF9fWFNJX1ZJU0lC TEUgPj0gNCAmJiBfX1BPU0lYX1ZJU0lCTEUgPCAyMDAxMTIpCiB2b2lkICogIHNicmsgKHB0cmRp ZmZfdCBfX2luY3IpOwogI2VuZGlmCi0jaWYgIWRlZmluZWQoX19JTlNJREVfQ1lHV0lOX18pCiAj aWYgX19CU0RfVklTSUJMRSB8fCBfX1BPU0lYX1ZJU0lCTEUgPj0gMjAwMTEyCiBpbnQgICAgIHNl dGVnaWQgKGdpZF90IF9fZ2lkKTsKIGludCAgICAgc2V0ZXVpZCAodWlkX3QgX191aWQpOwogI2Vu ZGlmCiBpbnQgICAgIHNldGdpZCAoZ2lkX3QgX19naWQpOwotI2VuZGlmCiAjaWYgX19CU0RfVklT SUJMRQogaW50CXNldGdyb3VwcyAoaW50IG5ncm91cHMsIGNvbnN0IGdpZF90ICpncm91cGxpc3Qp OwogI2VuZGlmCkBAIC0yMTUsMTQgKzIwMywxMiBAQCBpbnQgICAgIHNldHBnaWQgKHBpZF90IF9f cGlkLCBwaWRfdCBfX3BnaWQpOwogI2lmIF9fU1ZJRF9WSVNJQkxFIHx8IF9fWFNJX1ZJU0lCTEUg Pj0gNTAwCiBpbnQgICAgIHNldHBncnAgKHZvaWQpOwogI2VuZGlmCi0jaWYgKF9fQlNEX1ZJU0lC TEUgfHwgX19YU0lfVklTSUJMRSA+PSA0KSAmJiAhZGVmaW5lZChfX0lOU0lERV9DWUdXSU5fXykK KyNpZiBfX0JTRF9WSVNJQkxFIHx8IF9fWFNJX1ZJU0lCTEUgPj0gNAogaW50CXNldHJlZ2lkIChn aWRfdCBfX3JnaWQsIGdpZF90IF9fZWdpZCk7CiBpbnQJc2V0cmV1aWQgKHVpZF90IF9fcnVpZCwg dWlkX3QgX19ldWlkKTsKICNlbmRpZgogcGlkX3QgICBzZXRzaWQgKHZvaWQpOwotI2lmICFkZWZp bmVkKF9fSU5TSURFX0NZR1dJTl9fKQogaW50ICAgICBzZXR1aWQgKHVpZF90IF9fdWlkKTsKLSNl bmRpZgogI2lmIF9fQlNEX1ZJU0lCTEUgfHwgKF9fWFNJX1ZJU0lCTEUgJiYgX19YU0lfVklTSUJM RSA8IDUwMCkKIHZvaWQJc2V0dXNlcnNoZWxsICh2b2lkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv bmV3bGliL2xpYmMvcG9zaXgvcG9zaXhfc3Bhd24uYyBiL25ld2xpYi9saWJjL3Bvc2l4L3Bvc2l4 X3NwYXduLmMKaW5kZXggZmU5MTJhOGI3Li44NWJmYTY0NzcgMTAwNjQ0Ci0tLSBhL25ld2xpYi9s aWJjL3Bvc2l4L3Bvc2l4X3NwYXduLmMKKysrIGIvbmV3bGliL2xpYmMvcG9zaXgvcG9zaXhfc3Bh d24uYwpAQCAtMTQ2LDE3ICsxNDYsNiBAQCB0eXBlZGVmIHN0cnVjdCBfX3Bvc2l4X3NwYXduX2Zp bGVfYWN0aW9uc19lbnRyeSB7CiAgKiBTcGF3biByb3V0aW5lcwogICovCiAKLSNpZiBkZWZpbmVk IChfX0NZR1dJTl9fKSAmJiBkZWZpbmVkIChfX2kzODZfXykKLWV4dGVybiBpbnQgZ2V0Z2lkMzIg KHZvaWQpOwotZXh0ZXJuIGludCBnZXR1aWQzMiAodm9pZCk7Ci1leHRlcm4gaW50IHNldGVnaWQz MiAoZ2lkX3QgZWdpZCk7Ci1leHRlcm4gaW50IHNldGV1aWQzMiAodWlkX3QgZXVpZCk7Ci0jZGVm aW5lIHNldGVnaWQgc2V0ZWdpZDMyCi0jZGVmaW5lIHNldGV1aWQgc2V0ZXVpZDMyCi0jZGVmaW5l IGdldGdpZCBnZXRnaWQzMgotI2RlZmluZSBnZXR1aWQgZ2V0dWlkMzIKLSNlbmRpZgotCiBzdGF0 aWMgaW50CiBwcm9jZXNzX3NwYXduYXR0cihjb25zdCBwb3NpeF9zcGF3bmF0dHJfdCBzYSkKIHsK ZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vY3lnaGVhcC5oIGIvd2luc3VwL2N5Z3dpbi9jeWdo ZWFwLmgKaW5kZXggYTQ3ZDk4MTllLi4wYmNhODk5NWIgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3 aW4vY3lnaGVhcC5oCisrKyBiL3dpbnN1cC9jeWd3aW4vY3lnaGVhcC5oCkBAIC0xMDIsNyArMTAy LDcgQEAgcHVibGljOgogICB1c2VyX2dyb3VwcyBncm91cHM7ICAgLyogUHJpbWFyeSBhbmQgc3Vw cCBTSURzICovCiAKICAgSEFORExFIGV4dGVybmFsX3Rva2VuOwkgLyogdG9rZW4gZnJvbSBzZXRf aW1wZXJzb25hdGlvbl90b2tlbiBjYWxsICovCi0gIEhBTkRMRSBpbnRlcm5hbF90b2tlbjsJIC8q IHBhc3N3b3JkLWxlc3MgdG9rZW4gZmV0Y2hlZCBpbiBzZXRldWlkMzIgKi8KKyAgSEFORExFIGlu dGVybmFsX3Rva2VuOwkgLyogcGFzc3dvcmQtbGVzcyB0b2tlbiBmZXRjaGVkIGluIHNldGV1aWQg Ki8KICAgSEFORExFIGN1cnJfcHJpbWFyeV90b2tlbjsJIC8qIEp1c3QgYSBjb3B5IG9mIGV4dGVy bmFsIG9yIGludGVybmFsIHRva2VuICovCiAgIEhBTkRMRSBjdXJyX2ltcF90b2tlbjsJIC8qIGlt cGVyc29uYXRpb24gdG9rZW4gZGVyaXZlZCBmcm9tIHByaW1hcnkKIAkJCQkgICAgdG9rZW4gKi8K ZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vY3lnbWFsbG9jLmggYi93aW5zdXAvY3lnd2luL2N5 Z21hbGxvYy5oCmluZGV4IDM2ZjU2Mjk0Zi4uYTYwMzNjMTY2IDEwMDY0NAotLS0gYS93aW5zdXAv Y3lnd2luL2N5Z21hbGxvYy5oCisrKyBiL3dpbnN1cC9jeWd3aW4vY3lnbWFsbG9jLmgKQEAgLTI5 LDggKzI5LDYgQEAgdm9pZCBkbG1hbGxvY19zdGF0cyAoKTsKICNpZiBkZWZpbmVkIChETE1BTExP Q19WRVJTSU9OKQkvKiBCdWlsZGluZyBtYWxsb2MuY2MgKi8KIAogZXh0ZXJuICJDIiB2b2lkIF9f c2V0X0VOT01FTSAoKTsKLXZvaWQgKm1tYXA2NCAodm9pZCAqLCBzaXplX3QsIGludCwgaW50LCBp bnQsIG9mZl90KTsKLSMgZGVmaW5lIG1tYXAgbW1hcDY0CiAjIGRlZmluZSBNQUxMT0NfRkFJTFVS RV9BQ1RJT04JX19zZXRfRU5PTUVNICgpCiAjIGRlZmluZSBVU0VfRExfUFJFRklYIDEKIApkaWZm IC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9jeWdzZXJ2ZXJfaXBjLmggYi93aW5zdXAvY3lnd2luL2N5 Z3NlcnZlcl9pcGMuaAppbmRleCAwNTAyOWFmZjcuLjI5MzhlMWE3MyAxMDA2NDQKLS0tIGEvd2lu c3VwL2N5Z3dpbi9jeWdzZXJ2ZXJfaXBjLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9jeWdzZXJ2ZXJf aXBjLmgKQEAgLTM2LDggKzM2LDggQEAgaXBjX3NldF9wcm9jX2luZm8gKHByb2MgJmJsaywgYm9v bCBpbl9mb3JrID0gZmFsc2UpCiB7CiAgIGJsay5jeWdwaWQgPSBnZXRwaWQgKCk7CiAgIGJsay53 aW5waWQgPSBHZXRDdXJyZW50UHJvY2Vzc0lkICgpOwotICBibGsudWlkID0gZ2V0ZXVpZDMyICgp OwotICBibGsuZ2lkID0gZ2V0ZWdpZDMyICgpOworICBibGsudWlkID0gZ2V0ZXVpZCAoKTsKKyAg YmxrLmdpZCA9IGdldGVnaWQgKCk7CiAgIGJsay5naWRjbnQgPSAwOwogICBibGsuZ2lkbGlzdCA9 IE5VTEw7CiAgIGJsay5pc19hZG1pbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dp bi9mY250bC5jYyBiL3dpbnN1cC9jeWd3aW4vZmNudGwuY2MKaW5kZXggNDM3ZmNmMTI4Li4yYmM1 MmVkYjAgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vZmNudGwuY2MKKysrIGIvd2luc3VwL2N5 Z3dpbi9mY250bC5jYwpAQCAtMTcsNyArMTcsNyBAQCBkZXRhaWxzLiAqLwogI2luY2x1ZGUgImN5 Z3Rscy5oIgogCiBleHRlcm4gIkMiIGludAotZmNudGw2NCAoaW50IGZkLCBpbnQgY21kLCAuLi4p CitmY250bCAoaW50IGZkLCBpbnQgY21kLCAuLi4pCiB7CiAgIGludCByZXMgPSAtMTsKICAgaW50 cHRyX3QgYXJnID0gMDsKQEAgLTc5LDUgKzc5LDQgQEAgZmNudGw2NCAoaW50IGZkLCBpbnQgY21k LCAuLi4pCiAgIHJldHVybiByZXM7CiB9CiAKLUVYUE9SVF9BTElBUyAoZmNudGw2NCwgZmNudGwp Ci1FWFBPUlRfQUxJQVMgKGZjbnRsNjQsIF9mY250bCkKK0VYUE9SVF9BTElBUyAoZmNudGwsIF9m Y250bCkKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuY2MgYi93aW5zdXAvY3ln d2luL2ZoYW5kbGVyLmNjCmluZGV4IGZjN2JmMGEwZS4uNGZjZTAxMjBhIDEwMDY0NAotLS0gYS93 aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuY2MK QEAgLTEyNzIsOCArMTI3Miw4IEBAIGZoYW5kbGVyX2Jhc2U6OmZzdGF0IChzdHJ1Y3Qgc3RhdCAq YnVmKQogICAgICAgYnJlYWs7CiAgICAgfQogCi0gIGJ1Zi0+c3RfdWlkID0gZ2V0ZXVpZDMyICgp OwotICBidWYtPnN0X2dpZCA9IGdldGVnaWQzMiAoKTsKKyAgYnVmLT5zdF91aWQgPSBnZXRldWlk ICgpOworICBidWYtPnN0X2dpZCA9IGdldGVnaWQgKCk7CiAgIGJ1Zi0+c3RfbmxpbmsgPSAxOwog ICBidWYtPnN0X2Jsa3NpemUgPSBQUkVGRVJSRURfSU9fQkxLU0laRTsKIApkaWZmIC0tZ2l0IGEv d2luc3VwL2N5Z3dpbi9maGFuZGxlcl9jbGlwYm9hcmQuY2MgYi93aW5zdXAvY3lnd2luL2ZoYW5k bGVyX2NsaXBib2FyZC5jYwppbmRleCAxNDgyMDcwMWMuLmUyODE0ZDFjNyAxMDA2NDQKLS0tIGEv d2luc3VwL2N5Z3dpbi9maGFuZGxlcl9jbGlwYm9hcmQuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9m aGFuZGxlcl9jbGlwYm9hcmQuY2MKQEAgLTE4LDYgKzE4LDcgQEAgZGV0YWlscy4gKi8KICNpbmNs dWRlICJjeWdoZWFwLmgiCiAjaW5jbHVkZSAiY2hpbGRfaW5mby5oIgogI2luY2x1ZGUgPHN5cy9j bGlwYm9hcmQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAogLyoKICAqIFJvYmVydCBDb2xsaW5z OgpAQCAtMTU5LDggKzE2MCw4IEBAIGludCBfX3JlZzIKIGZoYW5kbGVyX2Rldl9jbGlwYm9hcmQ6 OmZzdGF0IChzdHJ1Y3Qgc3RhdCAqYnVmKQogewogICBidWYtPnN0X21vZGUgPSBTX0lGQ0hSIHwg U1REX1JCSVRTIHwgU1REX1dCSVRTIHwgU19JV0dSUCB8IFNfSVdPVEg7Ci0gIGJ1Zi0+c3RfdWlk ID0gZ2V0ZXVpZDMyICgpOwotICBidWYtPnN0X2dpZCA9IGdldGVnaWQzMiAoKTsKKyAgYnVmLT5z dF91aWQgPSBnZXRldWlkICgpOworICBidWYtPnN0X2dpZCA9IGdldGVnaWQgKCk7CiAgIGJ1Zi0+ c3RfbmxpbmsgPSAxOwogICBidWYtPnN0X2Jsa3NpemUgPSBQUkVGRVJSRURfSU9fQkxLU0laRTsK IApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9kaXNrX2ZpbGUuY2MgYi93aW5z dXAvY3lnd2luL2ZoYW5kbGVyX2Rpc2tfZmlsZS5jYwppbmRleCAzY2VjMWVkODQuLjM4YmRiMzY1 YiAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9kaXNrX2ZpbGUuY2MKKysrIGIv d2luc3VwL2N5Z3dpbi9maGFuZGxlcl9kaXNrX2ZpbGUuY2MKQEAgLTEwMTMsNyArMTAxMyw3IEBA IGNhbnRfYWNjZXNzX2FjbDoKICAgICAgIHN3aXRjaCAoY21kKQogCXsKIAkgIGNhc2UgU0VUQUNM OgotCSAgICBpZiAoIWFjbHNvcnQzMiAobmVudHJpZXMsIDAsIGFjbGJ1ZnApKQorCSAgICBpZiAo IWFjbHNvcnQgKG5lbnRyaWVzLCAwLCBhY2xidWZwKSkKIAkgICAgICB7CiAJCWJvb2wgcncgPSBm YWxzZTsKIAkJcmVzID0gc2V0YWNsIChnZXRfaGFuZGxlICgpLCBwYywgbmVudHJpZXMsIGFjbGJ1 ZnAsIHJ3KTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcHJvY2Vzcy5jYyBi L3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcHJvY2Vzcy5jYwppbmRleCBlMmRkMTI4NmYuLjQ4MmRk MTc2ZiAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9wcm9jZXNzLmNjCisrKyBi L3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcHJvY2Vzcy5jYwpAQCAtMTA0OSw3ICsxMDQ5LDcgQEAg cGViX3RlYl9yaW5zZV9yZXBlYXQ6CiAJCSAgaWYgKG1vdW50X3RhYmxlLT5jb252X3RvX3Bvc2l4 X3BhdGggKGRvc25hbWUsCiAJCQkJCQkgICAgICAgcG9zaXhfbW9kbmFtZSwgMCkpCiAJCSAgICBz eXNfd2NzdG9tYnMgKHBvc2l4X21vZG5hbWUsIE5UX01BWF9QQVRILCBkb3NuYW1lKTsKLQkJICBz dGF0NjQgKHBvc2l4X21vZG5hbWUsICZzdCk7CisJCSAgc3RhdCAocG9zaXhfbW9kbmFtZSwgJnN0 KTsKIAkJfQogCSAgICAgIGVsc2UgaWYgKCF0aHJlYWRzLmZpbGxfaWZfbWF0Y2ggKGN1ci5hYmFz ZSwgbWIuVHlwZSwKIAkJCQkJICAgICAgIHBvc2l4X21vZG5hbWUpCmRpZmYgLS1naXQgYS93aW5z dXAvY3lnd2luL2ZoYW5kbGVyX3Jhdy5jYyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcmF3LmNj CmluZGV4IDhkMzMxNDQ2NS4uNTM2ZDc1MmI1IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2Zo YW5kbGVyX3Jhdy5jYworKysgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3Jhdy5jYwpAQCAtNDcs OCArNDcsOCBAQCBmaGFuZGxlcl9kZXZfcmF3Ojpmc3RhdCAoc3RydWN0IHN0YXQgKmJ1ZikKIAog ICAgICAgaWYgKGdldF9tYWpvciAoKSA9PSBERVZfU0RfSElHSFBBUlRfRU5EICYmIGdldF9taW5v ciAoKSA9PSA5OTk5KQogCWJ1Zi0+c3RfaW5vID0gZ2V0X2lubyAoKTsKLSAgICAgIGJ1Zi0+c3Rf dWlkID0gZ2V0ZXVpZDMyICgpOwotICAgICAgYnVmLT5zdF9naWQgPSBnZXRlZ2lkMzIgKCk7Cisg ICAgICBidWYtPnN0X3VpZCA9IGdldGV1aWQgKCk7CisgICAgICBidWYtPnN0X2dpZCA9IGdldGVn aWQgKCk7CiAgICAgICBidWYtPnN0X25saW5rID0gMTsKICAgICAgIGJ1Zi0+c3RfYmxrc2l6ZSA9 IFBSRUZFUlJFRF9JT19CTEtTSVpFOwogICAgICAgdGltZV9hc190aW1lc3RydWNfdCAoJmJ1Zi0+ c3RfY3RpbSk7CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3NvY2tldF9sb2Nh bC5jYyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfc29ja2V0X2xvY2FsLmNjCmluZGV4IGJkNDA4 MTYyMi4uYzc4NzA3MzNhIDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3NvY2tl dF9sb2NhbC5jYworKysgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3NvY2tldF9sb2NhbC5jYwpA QCAtMzk1LDggKzM5NSw4IEBAIHZvaWQKIGZoYW5kbGVyX3NvY2tldF9sb2NhbDo6YWZfbG9jYWxf c2V0X3NvY2twYWlyX2NyZWQgKCkKIHsKICAgc2VjX3BpZCA9IHNlY19wZWVyX3BpZCA9IGdldHBp ZCAoKTsKLSAgc2VjX3VpZCA9IHNlY19wZWVyX3VpZCA9IGdldGV1aWQzMiAoKTsKLSAgc2VjX2dp ZCA9IHNlY19wZWVyX2dpZCA9IGdldGVnaWQzMiAoKTsKKyAgc2VjX3VpZCA9IHNlY19wZWVyX3Vp ZCA9IGdldGV1aWQgKCk7CisgIHNlY19naWQgPSBzZWNfcGVlcl9naWQgPSBnZXRlZ2lkICgpOwog fQogCiB2b2lkCkBAIC01OTIsOCArNTkyLDggQEAgdm9pZAogZmhhbmRsZXJfc29ja2V0X2xvY2Fs OjphZl9sb2NhbF9zZXRfY3JlZCAoKQogewogICBzZWNfcGlkID0gZ2V0cGlkICgpOwotICBzZWNf dWlkID0gZ2V0ZXVpZDMyICgpOwotICBzZWNfZ2lkID0gZ2V0ZWdpZDMyICgpOworICBzZWNfdWlk ID0gZ2V0ZXVpZCAoKTsKKyAgc2VjX2dpZCA9IGdldGVnaWQgKCk7CiAgIHNlY19wZWVyX3BpZCA9 IChwaWRfdCkgMDsKICAgc2VjX3BlZXJfdWlkID0gKHVpZF90KSAtMTsKICAgc2VjX3BlZXJfZ2lk ID0gKGdpZF90KSAtMTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfdHR5LmNj IGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl90dHkuY2MKaW5kZXggODI1ZDgwNjY2Li5iODQyN2Rj OGMgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfdHR5LmNjCisrKyBiL3dpbnN1 cC9jeWd3aW4vZmhhbmRsZXJfdHR5LmNjCkBAIC0xODE4LDcgKzE4MTgsNyBAQCBmaGFuZGxlcl9w dHlfc2xhdmU6OmZhY2wgKGludCBjbWQsIGludCBuZW50cmllcywgYWNsZW50X3QgKmFjbGJ1ZnAp CiAgIHN3aXRjaCAoY21kKQogICAgIHsKICAgICAgIGNhc2UgU0VUQUNMOgotCWlmICghYWNsc29y dDMyIChuZW50cmllcywgMCwgYWNsYnVmcCkpCisJaWYgKCFhY2xzb3J0IChuZW50cmllcywgMCwg YWNsYnVmcCkpCiAJICBzZXRfZXJybm8gKEVOT1RTVVApOwogCWJyZWFrOwogICAgICAgY2FzZSBH RVRBQ0w6CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2dsb2IuY2MgYi93aW5zdXAvY3lnd2lu L2dsb2IuY2MKaW5kZXggYjE0Y2Y2ZGFiLi4wZDlmOWM4ODUgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9j eWd3aW4vZ2xvYi5jYworKysgYi93aW5zdXAvY3lnd2luL2dsb2IuY2MKQEAgLTEwMSw5ICsxMDEs NiBAQCBfX0ZCU0RJRCgiJEZyZWVCU0Q6IHNyYy9saWIvbGliYy9nZW4vZ2xvYi5jLHYgMS4yOCAy MDEwLzA1LzEyIDE3OjQ0OjAwIGdvcmRvbiBFeAogI2luY2x1ZGUgImN5Z2hlYXAuaCIKICNpbmNs dWRlICJjeWd3aW4vdmVyc2lvbi5oIgogCi0jZGVmaW5lIGdldHB3dWlkKHVpZCkJZ2V0cHd1aWQz MiAodWlkKQotI2RlZmluZSBnZXR1aWQoKQlnZXR1aWQzMiAoKQotCiAjZGVmaW5lIENDSEFSKGMp CShpZ25vcmVfY2FzZV93aXRoX2dsb2IgPyB0b3dsb3dlciAoQ0hBUiAoYykpIDogQ0hBUiAoYykp CiAjZGVmaW5lIENjaGFyKGMpCShpZ25vcmVfY2FzZV93aXRoX2dsb2IgPyB0b3dsb3dlciAoYykg OiAoYykpCiAjZW5kaWYKQEAgLTg2OCw3ICs4NjUsNyBAQCBnX2xzdGF0KENoYXIgKmZuLCBzdHJ1 Y3Qgc3RhdCAqc2IsIGdsb2JfdCAqcGdsb2IpCiAJfQogCWlmIChwZ2xvYi0+Z2xfZmxhZ3MgJiBH TE9CX0FMVERJUkZVTkMpCiAJCXJldHVybiBDWUdXSU5fZ2xfc3RhdCAoZ2xfbHN0YXQpOwotCXJl dHVybihsc3RhdDY0KGJ1Ziwgc2IpKTsKKwlyZXR1cm4obHN0YXQoYnVmLCBzYikpOwogfQogCiBz dGF0aWMgaW50CkBAIC04ODIsNyArODc5LDcgQEAgZ19zdGF0KENoYXIgKmZuLCBzdHJ1Y3Qgc3Rh dCAqc2IsIGdsb2JfdCAqcGdsb2IpCiAJfQogCWlmIChwZ2xvYi0+Z2xfZmxhZ3MgJiBHTE9CX0FM VERJUkZVTkMpCiAJCXJldHVybiBDWUdXSU5fZ2xfc3RhdCAoZ2xfc3RhdCk7Ci0JcmV0dXJuKHN0 YXQ2NChidWYsIHNiKSk7CisJcmV0dXJuKHN0YXQoYnVmLCBzYikpOwogfQogCiBzdGF0aWMgY29u c3QgQ2hhciAqCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2dycC5jYyBiL3dpbnN1cC9jeWd3 aW4vZ3JwLmNjCmluZGV4IDg5M2U0Y2MwZi4uYjA2YWQzNzkxIDEwMDY0NAotLS0gYS93aW5zdXAv Y3lnd2luL2dycC5jYworKysgYi93aW5zdXAvY3lnd2luL2dycC5jYwpAQCAtMzAwLDE1ICszMDAs MTMgQEAgZ2V0Z3JfY3AgKHN0cnVjdCBncm91cCAqdGVtcGdyKQogfQogCiBleHRlcm4gIkMiIHN0 cnVjdCBncm91cCAqCi1nZXRncmdpZDMyIChnaWRfdCBnaWQpCitnZXRncmdpZCAoZ2lkX3QgZ2lk KQogewogICBzdHJ1Y3QgZ3JvdXAgKnRlbXBnciA9IGludGVybmFsX2dldGdyZ2lkIChnaWQpOwog ICBwdGhyZWFkX3Rlc3RjYW5jZWwgKCk7CiAgIHJldHVybiBnZXRncl9jcCAodGVtcGdyKTsKIH0K IAotRVhQT1JUX0FMSUFTIChnZXRncmdpZDMyLCBnZXRncmdpZCkKLQogZXh0ZXJuICJDIiBpbnQK IGdldGdybmFtX3IgKGNvbnN0IGNoYXIgKm5hbSwgc3RydWN0IGdyb3VwICpncnAsIGNoYXIgKmJ1 ZmZlciwKIAkgICAgc2l6ZV90IGJ1ZnNpemUsIHN0cnVjdCBncm91cCAqKnJlc3VsdCkKQEAgLTM0 MCwxNSArMzM4LDEzIEBAIGdldGdybmFtX3IgKGNvbnN0IGNoYXIgKm5hbSwgc3RydWN0IGdyb3Vw ICpncnAsIGNoYXIgKmJ1ZmZlciwKIH0KIAogZXh0ZXJuICJDIiBzdHJ1Y3QgZ3JvdXAgKgotZ2V0 Z3JuYW0zMiAoY29uc3QgY2hhciAqbmFtZSkKK2dldGdybmFtIChjb25zdCBjaGFyICpuYW1lKQog ewogICBzdHJ1Y3QgZ3JvdXAgKnRlbXBnciA9IGludGVybmFsX2dldGdybmFtIChuYW1lKTsKICAg cHRocmVhZF90ZXN0Y2FuY2VsICgpOwogICByZXR1cm4gZ2V0Z3JfY3AgKHRlbXBncik7CiB9CiAK LUVYUE9SVF9BTElBUyAoZ2V0Z3JuYW0zMiwgZ2V0Z3JuYW0pCi0KIC8qIGdldGdyZW50IGZ1bmN0 aW9ucyBhcmUgbm90IHJlZW50cmFudC4gKi8KIHN0YXRpYyBncl9lbnQgZ3JlbnQ7CiAKQEAgLTQ1 OSwxMyArNDU1LDExIEBAIHNldGdyZW50ICgpCiB9CiAKIGV4dGVybiAiQyIgc3RydWN0IGdyb3Vw ICoKLWdldGdyZW50MzIgKHZvaWQpCitnZXRncmVudCAodm9pZCkKIHsKICAgcmV0dXJuIGdyZW50 LmdldGdyZW50ICgpOwogfQogCi1FWFBPUlRfQUxJQVMgKGdldGdyZW50MzIsIGdldGdyZW50KQot CiBleHRlcm4gIkMiIHZvaWQKIGVuZGdyZW50ICh2b2lkKQogewpAQCAtNjQ2LDE1ICs2NDAsMTMg QEAgb3V0OgogfQogCiBleHRlcm4gIkMiIGludAotZ2V0Z3JvdXBzMzIgKGludCBnaWRzZXRzaXpl LCBnaWRfdCAqZ3JvdXBsaXN0KQorZ2V0Z3JvdXBzIChpbnQgZ2lkc2V0c2l6ZSwgZ2lkX3QgKmdy b3VwbGlzdCkKIHsKICAgY3lnX2xkYXAgY2xkYXA7CiAKICAgcmV0dXJuIGludGVybmFsX2dldGdy b3VwcyAoZ2lkc2V0c2l6ZSwgZ3JvdXBsaXN0LCAmY2xkYXApOwogfQogCi1FWFBPUlRfQUxJQVMg KGdldGdyb3VwczMyLCBnZXRncm91cHMpCi0KIC8qIENvcmUgZnVuY3Rpb25hbGl0eSBvZiBpbml0 Z3JvdXBzIGFuZCBnZXRncm91cGxpc3QuICovCiBzdGF0aWMgdm9pZAogZ2V0X2dyb3VwcyAoY29u c3QgY2hhciAqdXNlciwgZ2lkX3QgZ2lkLCBjeWdzaWRsaXN0ICZnc2lkcykKQEAgLTY3Myw3ICs2 NjUsNyBAQCBnZXRfZ3JvdXBzIChjb25zdCBjaGFyICp1c2VyLCBnaWRfdCBnaWQsIGN5Z3NpZGxp c3QgJmdzaWRzKQogfQogCiBleHRlcm4gIkMiIGludAotaW5pdGdyb3VwczMyIChjb25zdCBjaGFy ICp1c2VyLCBnaWRfdCBnaWQpCitpbml0Z3JvdXBzIChjb25zdCBjaGFyICp1c2VyLCBnaWRfdCBn aWQpCiB7CiAgIGFzc2VydCAodXNlciAhPSBOVUxMKTsKICAgY3lnc2lkbGlzdCB0bXBfZ3NpZHMg KGN5Z3NpZGxpc3RfYXV0bywgMTIpOwpAQCAtNjg3LDggKzY3OSw2IEBAIGluaXRncm91cHMzMiAo Y29uc3QgY2hhciAqdXNlciwgZ2lkX3QgZ2lkKQogICByZXR1cm4gMDsKIH0KIAotRVhQT1JUX0FM SUFTIChpbml0Z3JvdXBzMzIsIGluaXRncm91cHMpCi0KIGV4dGVybiAiQyIgaW50CiBnZXRncm91 cGxpc3QgKGNvbnN0IGNoYXIgKnVzZXIsIGdpZF90IGdpZCwgZ2lkX3QgKmdyb3VwcywgaW50ICpu Z3JvdXBzKQogewpAQCAtNzI1LDExICs3MTUsMTEgQEAgZ2V0Z3JvdXBsaXN0IChjb25zdCBjaGFy ICp1c2VyLCBnaWRfdCBnaWQsIGdpZF90ICpncm91cHMsIGludCAqbmdyb3VwcykKICAgcmV0dXJu IHJldDsKIH0KIAotLyogc2V0Z3JvdXBzMzI6IHN0YW5kYXJkcz8gKi8KKy8qIHNldGdyb3Vwczog c3RhbmRhcmRzPyAqLwogZXh0ZXJuICJDIiBpbnQKLXNldGdyb3VwczMyIChpbnQgbmdyb3Vwcywg Y29uc3QgZ2lkX3QgKmdyb3VwbGlzdCkKK3NldGdyb3VwcyAoaW50IG5ncm91cHMsIGNvbnN0IGdp ZF90ICpncm91cGxpc3QpCiB7Ci0gIHN5c2NhbGxfcHJpbnRmICgic2V0Z3JvdXBzMzIgKCVkKSIs IG5ncm91cHMpOworICBzeXNjYWxsX3ByaW50ZiAoInNldGdyb3VwcyAoJWQpIiwgbmdyb3Vwcyk7 CiAgIGlmIChuZ3JvdXBzIDwgMCB8fCAobmdyb3VwcyA+IDAgJiYgIWdyb3VwbGlzdCkpCiAgICAg ewogICAgICAgc2V0X2Vycm5vIChFSU5WQUwpOwpAQCAtNzU2LDUgKzc0NiwzIEBAIHNldGdyb3Vw czMyIChpbnQgbmdyb3VwcywgY29uc3QgZ2lkX3QgKmdyb3VwbGlzdCkKICAgY3lnaGVhcC0+dXNl ci5ncm91cHMudXBkYXRlX3N1cHAgKGdzaWRzKTsKICAgcmV0dXJuIDA7CiB9Ci0KLUVYUE9SVF9B TElBUyAoc2V0Z3JvdXBzMzIsIHNldGdyb3VwcykKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4v aW5jbHVkZS9jeWd3aW4vYWNsLmggYi93aW5zdXAvY3lnd2luL2luY2x1ZGUvY3lnd2luL2FjbC5o CmluZGV4IDdiODAzMTM0YS4uMGU2MWJlZDY5IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2lu Y2x1ZGUvY3lnd2luL2FjbC5oCisrKyBiL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9jeWd3aW4vYWNs LmgKQEAgLTcwLDcgKzcwLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgYWNsIHsKICAgICBtb2RlX3QgICAg ICAgYV9wZXJtOyAgICAvKiBwZXJtaXNzaW9ucyAqLwogfSBhY2xlbnRfdDsKIAotI2lmbmRlZiBf X0lOU0lERV9DWUdXSU5fXwogZXh0ZXJuIGludAkgYWNsIChjb25zdCBjaGFyICpfX3BhdGgsIGlu dCBfX2NtZCwgaW50IF9fbmVudHJpZXMsCiAJCSAgICAgIGFjbGVudF90ICpfX2FjbGJ1ZnApOwog ZXh0ZXJuIGludAkgZmFjbCAoaW50IF9fZmQsIGludCBfX2NtZCwgaW50IF9fbmVudHJpZXMsCkBA IC04Nyw3ICs4Niw2IEBAIGV4dGVybiBpbnQJIGFjbGZyb21wYml0cyAoYWNsZW50X3QgKl9fYWNs YnVmcCwgaW50IF9fbmVudHJpZXMsCiAJCQkgICAgICAgbW9kZV90ICpfX3BiaXRzcCk7CiBleHRl cm4gY2hhcgkqYWNsdG90ZXh0IChhY2xlbnRfdCAqX19hY2xidWZwLCBpbnQgX19hY2xjbnQpOwog ZXh0ZXJuIGFjbGVudF90ICphY2xmcm9tdGV4dCAoY2hhciAqX19hY2x0ZXh0cCwgaW50ICpfX2Fj bGNudCk7Ci0jZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS93aW5z dXAvY3lnd2luL2luY2x1ZGUvY3lnd2luL2dycC5oIGIvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL2N5 Z3dpbi9ncnAuaAppbmRleCBlYTI1M2U5MzYuLmE0MGQ0ZDY2YSAxMDA2NDQKLS0tIGEvd2luc3Vw L2N5Z3dpbi9pbmNsdWRlL2N5Z3dpbi9ncnAuaAorKysgYi93aW5zdXAvY3lnd2luL2luY2x1ZGUv Y3lnd2luL2dycC5oCkBAIC0xNiwxMyArMTYsNiBAQCBkZXRhaWxzLiAqLwogZXh0ZXJuICJDIiB7 CiAjZW5kaWYKIAotI2lmZGVmIF9fSU5TSURFX0NZR1dJTl9fCi1zdHJ1Y3QgZ3JvdXAgKiBnZXRn cmdpZDMyIChnaWRfdCBnaWQpOwotc3RydWN0IGdyb3VwICogZ2V0Z3JuYW0zMiAoY29uc3QgY2hh ciAqbmFtZSk7Ci1naWRfdCBnZXRnaWQzMiAoKTsKLWdpZF90IGdldGVnaWQzMiAoKTsKLSNlbmRp ZgotCiBleHRlcm4gaW50IGdldGdyb3VwbGlzdCAoY29uc3QgY2hhciAqLCBnaWRfdCwgZ2lkX3Qg KiwgaW50ICopOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3 aW4vaW5jbHVkZS9jeWd3aW4vc3RhdC5oIGIvd2luc3VwL2N5Z3dpbi9pbmNsdWRlL2N5Z3dpbi9z dGF0LmgKaW5kZXggYjg5MGY2MWExLi43ZjFiNjE2ODEgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3 aW4vaW5jbHVkZS9jeWd3aW4vc3RhdC5oCisrKyBiL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9jeWd3 aW4vc3RhdC5oCkBAIC0zMiwxNiArMzIsNiBAQCBzdHJ1Y3Qgc3RhdAogICB0aW1lc3RydWNfdCAg IHN0X2JpcnRodGltOwogfTsKIAotI2lmIGRlZmluZWQgKF9fSU5TSURFX0NZR1dJTl9fKSB8fCBk ZWZpbmVkIChfTElCQykKLQotZXh0ZXJuIGludCBmc3RhdDY0IChpbnQgZmQsIHN0cnVjdCBzdGF0 ICpidWYpOwotZXh0ZXJuIGludCBzdGF0NjQgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgZmlsZV9u YW1lLAotCQkgICBzdHJ1Y3Qgc3RhdCAqX19yZXN0cmljdCBidWYpOwotZXh0ZXJuIGludCBsc3Rh dDY0IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IGZpbGVfbmFtZSwKLQkJICAgIHN0cnVjdCBzdGF0 ICpfX3Jlc3RyaWN0IGJ1Zik7Ci0KLSNlbmRpZgotCiAjZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0u dHZfc2VjCiAjZGVmaW5lIHN0X210aW1lIHN0X210aW0udHZfc2VjCiAjZGVmaW5lIHN0X2N0aW1l IHN0X2N0aW0udHZfc2VjCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2luY2x1ZGUvc3lzL21t YW4uaCBiL3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9zeXMvbW1hbi5oCmluZGV4IDM1ZmE5ZTlkMi4u NGJkZDZjYWVhIDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2luY2x1ZGUvc3lzL21tYW4uaAor KysgYi93aW5zdXAvY3lnd2luL2luY2x1ZGUvc3lzL21tYW4uaApAQCAtNzQsOSArNzQsNyBAQCBl eHRlcm4gIkMiIHsKICNkZWZpbmUgTUFEVl9VTk1FUkdFQUJMRSAxMQogI2VuZGlmCiAKLSNpZm5k ZWYgX19JTlNJREVfQ1lHV0lOX18KIGV4dGVybiB2b2lkICptbWFwICh2b2lkICpfX2FkZHIsIHNp emVfdCBfX2xlbiwgaW50IF9fcHJvdCwgaW50IF9fZmxhZ3MsIGludCBfX2ZkLCBvZmZfdCBfX29m Zik7Ci0jZW5kaWYKIGV4dGVybiBpbnQgbXVubWFwICh2b2lkICpfX2FkZHIsIHNpemVfdCBfX2xl bik7CiBleHRlcm4gaW50IG1wcm90ZWN0ICh2b2lkICpfX2FkZHIsIHNpemVfdCBfX2xlbiwgaW50 IF9fcHJvdCk7CiBleHRlcm4gaW50IG1zeW5jICh2b2lkICpfX2FkZHIsIHNpemVfdCBfX2xlbiwg aW50IF9fZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9pcGMuY2MgYi93aW5zdXAv Y3lnd2luL2lwYy5jYwppbmRleCA1NzFhYzg3MDEuLmU2NzBjZGIyYyAxMDA2NDQKLS0tIGEvd2lu c3VwL2N5Z3dpbi9pcGMuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9pcGMuY2MKQEAgLTE4LDcgKzE4 LDcgQEAgZnRvayAoY29uc3QgY2hhciAqcGF0aCwgaW50IGlkKQogewogICBzdHJ1Y3Qgc3RhdCBz dGF0YnVmOwogICBrZXlfdCB0bXA7Ci0gIGlmIChzdGF0NjQgKHBhdGgsICZzdGF0YnVmKSkKKyAg aWYgKHN0YXQgKHBhdGgsICZzdGF0YnVmKSkKICAgICB7CiAgICAgICAvKiBzdGF0IHNldCB0aGUg YXBwcm9wcmlhdGUgZXJybm8gZm9yIHVzICovCiAgICAgICByZXR1cm4gKGtleV90KSAtMTsKZGlm ZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vbGliYy9mdHMuYyBiL3dpbnN1cC9jeWd3aW4vbGliYy9m dHMuYwppbmRleCAwMDNmODUxNDYuLjE4MjZkMjIxMyAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dp bi9saWJjL2Z0cy5jCisrKyBiL3dpbnN1cC9jeWd3aW4vbGliYy9mdHMuYwpAQCAtNTgsMTcgKzU4 LDggQEAgX19GQlNESUQoIiRGcmVlQlNEOiBzcmMvbGliL2xpYmMvZ2VuL2Z0cy5jLHYgMS4zOSAy MDEzLzAyLzExIDAyOjAwOjE2IHN2bmV4cCBFeHAKICNkZWZpbmUgX29wZW4gb3BlbgogI2RlZmlu ZSBfY2xvc2UgY2xvc2UKICNkZWZpbmUgX2RpcmZkIGRpcmZkCi0jaWZkZWYgX194ODZfNjRfXwog I2RlZmluZSBfZnN0YXQgZnN0YXQKICNlbHNlCi1leHRlcm4gaW50IHN0YXQ2NCAoY29uc3QgY2hh ciAqcGF0aCwgc3RydWN0IHN0YXQgKmJ1Zik7Ci1leHRlcm4gaW50IGZzdGF0NjQgKGludCBmZCwg c3RydWN0IHN0YXQgKmJ1Zik7Ci1leHRlcm4gaW50IGxzdGF0NjQgKGNvbnN0IGNoYXIgKnBhdGgs IHN0cnVjdCBzdGF0ICpidWYpOwotI2RlZmluZSBzdGF0KGEsYikgc3RhdDY0KChhKSwoYikpCi0j ZGVmaW5lIF9mc3RhdChhLGIpIGZzdGF0NjQoKGEpLChiKSkKLSNkZWZpbmUgbHN0YXQoYSxiKSBs c3RhdDY0KChhKSwoYikpCi0jZW5kaWYKLSNlbHNlCiAjaW5jbHVkZSAidW4tbmFtZXNwYWNlLmgi CiAKICNpbmNsdWRlICJnZW4tcHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9s aWJjL21pbmlyZXMuYyBiL3dpbnN1cC9jeWd3aW4vbGliYy9taW5pcmVzLmMKaW5kZXggYjU0MGY2 YTFiLi41YjQzYjNlNjggMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vbGliYy9taW5pcmVzLmMK KysrIGIvd2luc3VwL2N5Z3dpbi9saWJjL21pbmlyZXMuYwpAQCAtMjM3LDEyICsyMzcsMTIgQEAg c3RhdGljIGludCBvcGVuX3NvY2soc3RydWN0IHNvY2thZGRyX2luICpDbGlBZGRyLCBpbnQgZGVi dWcpCiAgICAgcmV0dXJuIC0xOwogICB9CiAgIC8qIFNldCBub24tYmxvY2tpbmcgKi8KLSAgaWYg KGZjbnRsNjQoZmQsIEZfU0VURkwsIE9fTk9OQkxPQ0spIDwgMCkgIHsKKyAgaWYgKGZjbnRsKGZk LCBGX1NFVEZMLCBPX05PTkJMT0NLKSA8IDApICB7CiAgICAgRFBSSU5URihkZWJ1ZywgImZjbnRs OiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICByZXR1cm4gLTE7CiAgIH0KICAgLyogU2V0 IGNsb3NlIG9uIGV4ZWMgZmxhZyAqLwotICBpZiAoZmNudGw2NChmZCwgRl9TRVRGRCwgMSkgPT0g LTEpIHsKKyAgaWYgKGZjbnRsKGZkLCBGX1NFVEZELCAxKSA9PSAtMSkgewogICAgIERQUklOVEYo ZGVidWcsICJmY250bDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7CiAgICAgcmV0dXJuIC0xOwog ICB9CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2xpYmMvcmNtZC5jYyBiL3dpbnN1cC9jeWd3 aW4vbGliYy9yY21kLmNjCmluZGV4IDZkMDg3ZDc3Ny4uZTYwNmU3M2NmIDEwMDY0NAotLS0gYS93 aW5zdXAvY3lnd2luL2xpYmMvcmNtZC5jYworKysgYi93aW5zdXAvY3lnd2luL2xpYmMvcmNtZC5j YwpAQCAtMTAzLDcgKzEwMyw2IEBAIGV4dGVybiAiQyIgewogICBpbnQgY3lnd2luX3JyZXN2cG9y dF9hZihpbnQgKmFscG9ydCwgaW50IGZhbWlseSk7CiAgIGludCBjeWd3aW5fc2VsZWN0IChpbnQs IGZkX3NldCAqLCBmZF9zZXQgKiwgZmRfc2V0ICosIHN0cnVjdCB0aW1ldmFsICopOwogICBpbnQg Y3lnd2luX3NvY2tldCAoaW50LCBpbnQsIGludCk7Ci0gIGludCBzZXRldWlkMzIgKHVpZF90KTsK IH0KICNlbmRpZgogCkBAIC0yMDAsNyArMTk5LDcgQEAgY3lnd2luX3JjbWRfYWYoY2hhciAqKmFo b3N0LCBpbl9wb3J0X3QgcnBvcnQsIGNvbnN0IGNoYXIgKmxvY3VzZXIsCiAJCQkgICAgTlVMTCk7 CiAJCQlyZXR1cm4gKC0xKTsKIAkJfQotCQlmY250bDY0KHMsIEZfU0VUT1dOLCBwaWQpOworCQlm Y250bChzLCBGX1NFVE9XTiwgcGlkKTsKIAkJaWYgKGN5Z3dpbl9jb25uZWN0KHMsIGFpLT5haV9h ZGRyLCBhaS0+YWlfYWRkcmxlbikgPj0gMCkKIAkJCWJyZWFrOwogCQkodm9pZCljbG9zZShzKTsK QEAgLTQ1OCwxMCArNDU3LDEwIEBAIGFnYWluOgogCQkgKiByZWFkaW5nIGFuIE5GUyBtb3VudGVk IGZpbGUgc3lzdGVtLCBjYW4ndCByZWFkIGZpbGVzIHRoYXQKIAkJICogYXJlIHByb3RlY3RlZCBy ZWFkL3dyaXRlIG93bmVyIG9ubHkuCiAJCSAqLwotCQl1aWQgPSBnZXRldWlkMzIoKTsKLQkJKHZv aWQpc2V0ZXVpZDMyKHB3ZC0+cHdfdWlkKTsKKwkJdWlkID0gZ2V0ZXVpZCgpOworCQkodm9pZClz ZXRldWlkKHB3ZC0+cHdfdWlkKTsKIAkJaG9zdGYgPSBmb3BlbihwYnVmLCAicnQiKTsKLQkJKHZv aWQpc2V0ZXVpZDMyKHVpZCk7CisJCSh2b2lkKXNldGV1aWQodWlkKTsKIAogCQlpZiAoaG9zdGYg PT0gTlVMTCkKIAkJCXJldHVybiAoLTEpOwpAQCAtNDcwLDExICs0NjksMTEgQEAgYWdhaW46CiAJ CSAqIHVzZXIgb3Igcm9vdCBvciBpZiB3cml0ZWFibGUgYnkgYW55b25lIGJ1dCB0aGUgb3duZXIs IHF1aXQuCiAJCSAqLwogCQljcCA9IE5VTEw7Ci0JCWlmIChsc3RhdDY0KHBidWYsICZzYnVmKSA8 IDApCisJCWlmIChsc3RhdChwYnVmLCAmc2J1ZikgPCAwKQogCQkJY3AgPSAiLnJob3N0cyBsc3Rh dCBmYWlsZWQiOwogCQllbHNlIGlmICghU19JU1JFRyhzYnVmLnN0X21vZGUpKQogCQkJY3AgPSAi LnJob3N0cyBub3QgcmVndWxhciBmaWxlIjsKLQkJZWxzZSBpZiAoZnN0YXQ2NChmaWxlbm8oaG9z dGYpLCAmc2J1ZikgPCAwKQorCQllbHNlIGlmIChmc3RhdChmaWxlbm8oaG9zdGYpLCAmc2J1Zikg PCAwKQogCQkJY3AgPSAiLnJob3N0cyBmc3RhdCBmYWlsZWQiOwogCQllbHNlIGlmIChzYnVmLnN0 X3VpZCAmJiBzYnVmLnN0X3VpZCAhPSBwd2QtPnB3X3VpZCkKIAkJCWNwID0gImJhZCAucmhvc3Rz IG93bmVyIjsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vbGliYy9yZXhlYy5jYyBiL3dpbnN1 cC9jeWd3aW4vbGliYy9yZXhlYy5jYwppbmRleCA3ZjI1MTIzYTAuLjdlMzM3ZjFlMiAxMDA2NDQK LS0tIGEvd2luc3VwL2N5Z3dpbi9saWJjL3JleGVjLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vbGli Yy9yZXhlYy5jYwpAQCAtMjE1LDcgKzIxNSw3IEBAIG5leHQ6CiAJCQlicmVhazsKIAkJY2FzZSBQ QVNTV0Q6CiAJCQlpZiAoKCphbmFtZSA9PSAwIHx8IHN0cmNtcCgqYW5hbWUsICJhbm9ueW1vdXMi KSkgJiYKLQkJCSAgICBmc3RhdDY0KGZpbGVubyhjZmlsZSksICZzdGIpID49IDAgJiYKKwkJCSAg ICBmc3RhdChmaWxlbm8oY2ZpbGUpLCAmc3RiKSA+PSAwICYmCiAJCQkgICAgKHN0Yi5zdF9tb2Rl ICYgMDc3KSAhPSAwKSB7CiAJd2FybngoIkVycm9yOiAubmV0cmMgZmlsZSBpcyByZWFkYWJsZSBi eSBvdGhlcnMuIik7CiAJd2FybngoIlJlbW92ZSBwYXNzd29yZCBvciBtYWtlIGZpbGUgdW5yZWFk YWJsZSBieSBvdGhlcnMuIik7CkBAIC0yMjcsNyArMjI3LDcgQEAgbmV4dDoKIAkJCX0KIAkJCWJy ZWFrOwogCQljYXNlIEFDQ09VTlQ6Ci0JCQlpZiAoZnN0YXQ2NChmaWxlbm8oY2ZpbGUpLCAmc3Ri KSA+PSAwCisJCQlpZiAoZnN0YXQoZmlsZW5vKGNmaWxlKSwgJnN0YikgPj0gMAogCQkJICAgICYm IChzdGIuc3RfbW9kZSAmIDA3NykgIT0gMCkgewogCXdhcm54KCJFcnJvcjogLm5ldHJjIGZpbGUg aXMgcmVhZGFibGUgYnkgb3RoZXJzLiIpOwogCXdhcm54KCJSZW1vdmUgYWNjb3VudCBvciBtYWtl IGZpbGUgdW5yZWFkYWJsZSBieSBvdGhlcnMuIik7CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2lu L21rdGVtcC5jYyBiL3dpbnN1cC9jeWd3aW4vbWt0ZW1wLmNjCmluZGV4IDRkYzE1N2RhNC4uNzEw ZTQzMmI0IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL21rdGVtcC5jYworKysgYi93aW5zdXAv Y3lnd2luL21rdGVtcC5jYwpAQCAtMTAwLDcgKzEwMCw3IEBAIF9nZXR0ZW1wKGNoYXIgKnBhdGgs IGludCAqZG9vcGVuLCBpbnQgZG9ta2Rpciwgc2l6ZV90IHN1ZmZpeGxlbiwgaW50IGZsYWdzKQog CSAgaWYgKCp0cnYgPT0gJy8nKQogCSAgICB7CiAJICAgICAgKnRydiA9ICdcMCc7Ci0JICAgICAg aW50IHJ2YWwgPSBzdGF0NjQgKHBhdGgsICZzYnVmKTsKKwkgICAgICBpbnQgcnZhbCA9IHN0YXQg KHBhdGgsICZzYnVmKTsKIAkgICAgICAqdHJ2ID0gJy8nOwogCSAgICAgIGlmIChydmFsICE9IDAp CiAJCXJldHVybiAwOwpAQCAtMTMxLDcgKzEzMSw3IEBAIF9nZXR0ZW1wKGNoYXIgKnBhdGgsIGlu dCAqZG9vcGVuLCBpbnQgZG9ta2Rpciwgc2l6ZV90IHN1ZmZpeGxlbiwgaW50IGZsYWdzKQogCSAg aWYgKGVycm5vICE9IEVFWElTVCkKIAkgICAgcmV0dXJuIDA7CiAJICB9Ci0gICAgICBlbHNlIGlm IChsc3RhdDY0IChwYXRoLCAmc2J1ZikpCisgICAgICBlbHNlIGlmIChsc3RhdCAocGF0aCwgJnNi dWYpKQogCXJldHVybiBlcnJubyA9PSBFTk9FTlQ7CiAKICAgICAgIC8qIElmIHdlIGhhdmUgYSBj b2xsaXNpb24sIGN5Y2xlIHRocm91Z2ggdGhlIHNwYWNlIG9mIGZpbGVuYW1lcyAqLwpkaWZmIC0t Z2l0IGEvd2luc3VwL2N5Z3dpbi9tbWFwLmNjIGIvd2luc3VwL2N5Z3dpbi9tbWFwLmNjCmluZGV4 IGQ4ZjVjZjA0Ni4uNWFhNmQwYzA5IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL21tYXAuY2MK KysrIGIvd2luc3VwL2N5Z3dpbi9tbWFwLmNjCkBAIC0yMzgsNyArMjM4LDcgQEAgTWFwVmlldyAo SEFORExFIGgsIHZvaWQgKmFkZHIsIHNpemVfdCBsZW4sIERXT1JEIG9wZW5mbGFncywKICAgICAg SWYgaXQgZmFpbGVkLCBhbmQgYWRkciB3YXMgbm90IE5VTEwgYW5kIGZsYWdzIGlzIG5vdCBNQVBf RklYRUQsCiAgICAgIHRyeSBhZ2FpbiB3aXRoIE5VTEwgYWRkcmVzcy4KIAotICAgICBOb3RlOiBS ZXRyeWluZyB0aGUgbWFwcGluZyBtaWdodCBiZSB1bm5lY2Vzc2FyeSwgbm93IHRoYXQgbW1hcDY0 IGNoZWNrcworICAgICBOb3RlOiBSZXRyeWluZyB0aGUgbWFwcGluZyBtaWdodCBiZSB1bm5lY2Vz c2FyeSwgbm93IHRoYXQgbW1hcCBjaGVja3MKIAkgICBmb3IgYSB2YWxpZCBtZW1vcnkgYXJlYSBm aXJzdC4gKi8KICAgU0laRV9UIGNvbW1pdHNpemUgPSBhdHRhY2hlZCAocHJvdCkgPyAwIDogbGVu OwogICBzdGF0dXMgPSBOdE1hcFZpZXdPZlNlY3Rpb24gKGgsIE50Q3VycmVudFByb2Nlc3MgKCks ICZiYXNlLCAwLCBjb21taXRzaXplLApAQCAtODMyLDcgKzgzMiw3IEBAIG1tYXBfd29ya2VyICht bWFwX2xpc3QgKm1hcF9saXN0LCBmaGFuZGxlcl9iYXNlICpmaCwgY2FkZHJfdCBiYXNlLCBzaXpl X3QgbGVuLAogfQogCiBleHRlcm4gIkMiIHZvaWQgKgotbW1hcDY0ICh2b2lkICphZGRyLCBzaXpl X3QgbGVuLCBpbnQgcHJvdCwgaW50IGZsYWdzLCBpbnQgZmQsIG9mZl90IG9mZikKK21tYXAgKHZv aWQgKmFkZHIsIHNpemVfdCBsZW4sIGludCBwcm90LCBpbnQgZmxhZ3MsIGludCBmZCwgb2ZmX3Qg b2ZmKQogewogICBzeXNjYWxsX3ByaW50ZiAoImFkZHIgJXAsIGxlbiAlbHUsIHByb3QgJXksIGZs YWdzICV5LCBmZCAlZCwgb2ZmICVZIiwKIAkJICBhZGRyLCBsZW4sIHByb3QsIGZsYWdzLCBmZCwg b2ZmKTsKQEAgLTExNDUsOCArMTE0NSw2IEBAIG91dDoKICAgcmV0dXJuIHJldDsKIH0KIAotRVhQ T1JUX0FMSUFTIChtbWFwNjQsIG1tYXApCi0KIC8qIG11bm1hcCAoKSByZW1vdmVzIGFsbCBtbWFw cGVkIHBhZ2VzIGJldHdlZW4gYWRkciBhbmQgYWRkcitsZW4uICovCiAKIGV4dGVybiAiQyIgaW50 CkBAIC0xMjgwLDcgKzEyNzgsNyBAQCBtcHJvdGVjdCAodm9pZCAqYWRkciwgc2l6ZV90IGxlbiwg aW50IHByb3QpCiAKICAgc3lzY2FsbF9wcmludGYgKCJtcHJvdGVjdCAoYWRkcjogJXAsIGxlbiAl bHUsIHByb3QgJXkpIiwgYWRkciwgbGVuLCBwcm90KTsKIAotICAvKiBTZWUgY29tbWVudCBpbiBt bWFwNjQgZm9yIGEgZGVzY3JpcHRpb24uICovCisgIC8qIFNlZSBjb21tZW50IGluIG1tYXAgZm9y IGEgZGVzY3JpcHRpb24uICovCiAgIGNvbnN0IHNpemVfdCBwYWdlc2l6ZSA9IHdpbmNhcC5hbGxv Y2F0aW9uX2dyYW51bGFyaXR5ICgpOwogICBpZiAoKHVpbnRwdHJfdCkgYWRkciAlIHBhZ2VzaXpl KQogICAgIHsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vcGFzc3dkLmNjIGIvd2luc3VwL2N5 Z3dpbi9wYXNzd2QuY2MKaW5kZXggMWU0YzViYWI1Li5kMTcwODk1M2QgMTAwNjQ0Ci0tLSBhL3dp bnN1cC9jeWd3aW4vcGFzc3dkLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vcGFzc3dkLmNjCkBAIC0y MTgsMTcgKzIxOCwxNSBAQCBnZXRwd19jcCAoc3RydWN0IHBhc3N3ZCAqdGVtcHB3KQogfQogCiBl eHRlcm4gIkMiIHN0cnVjdCBwYXNzd2QgKgotZ2V0cHd1aWQzMiAodWlkX3QgdWlkKQorZ2V0cHd1 aWQgKHVpZF90IHVpZCkKIHsKICAgc3RydWN0IHBhc3N3ZCAqdGVtcHB3ID0gaW50ZXJuYWxfZ2V0 cHd1aWQgKHVpZCk7CiAgIHB0aHJlYWRfdGVzdGNhbmNlbCAoKTsKICAgcmV0dXJuIGdldHB3X2Nw ICh0ZW1wcHcpOwogfQogCi1FWFBPUlRfQUxJQVMgKGdldHB3dWlkMzIsIGdldHB3dWlkKQotCiBl eHRlcm4gIkMiIGludAotZ2V0cHd1aWRfcjMyICh1aWRfdCB1aWQsIHN0cnVjdCBwYXNzd2QgKnB3 ZCwgY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmc2l6ZSwgc3RydWN0IHBhc3N3ZCAqKnJlc3VsdCkK K2dldHB3dWlkX3IgKHVpZF90IHVpZCwgc3RydWN0IHBhc3N3ZCAqcHdkLCBjaGFyICpidWZmZXIs IHNpemVfdCBidWZzaXplLCBzdHJ1Y3QgcGFzc3dkICoqcmVzdWx0KQogewogICAqcmVzdWx0ID0g TlVMTDsKIApAQCAtMjYwLDggKzI1OCw2IEBAIGdldHB3dWlkX3IzMiAodWlkX3QgdWlkLCBzdHJ1 Y3QgcGFzc3dkICpwd2QsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZnNpemUsIHN0cnVjCiAgIHJl dHVybiAwOwogfQogCi1FWFBPUlRfQUxJQVMgKGdldHB3dWlkX3IzMiwgZ2V0cHd1aWRfcikKLQog ZXh0ZXJuICJDIiBzdHJ1Y3QgcGFzc3dkICoKIGdldHB3bmFtIChjb25zdCBjaGFyICpuYW1lKQog ewpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9wYXRoLmNjIGIvd2luc3VwL2N5Z3dpbi9wYXRo LmNjCmluZGV4IDBjY2RmOTgzMi4uNWU2ZDBlYTg3IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2lu L3BhdGguY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9wYXRoLmNjCkBAIC0zNzIwLDggKzM3MjAsOCBA QCBnZXRfY3VycmVudF9kaXJfbmFtZSAodm9pZCkKICAgc3RydWN0IHN0YXQgcHdkYnVmLCBjd2Ri dWY7CiAKICAgaWYgKHB3ZCAmJiBzdHJjbXAgKHB3ZCwgY3dkKSAhPSAwCi0gICAgICAmJiBzdGF0 NjQgKHB3ZCwgJnB3ZGJ1ZikgPT0gMAotICAgICAgJiYgc3RhdDY0IChjd2QsICZjd2RidWYpID09 IDAKKyAgICAgICYmIHN0YXQgKHB3ZCwgJnB3ZGJ1ZikgPT0gMAorICAgICAgJiYgc3RhdCAoY3dk LCAmY3dkYnVmKSA9PSAwCiAgICAgICAmJiBwd2RidWYuc3RfZGV2ID09IGN3ZGJ1Zi5zdF9kZXYK ICAgICAgICYmIHB3ZGJ1Zi5zdF9pbm8gPT0gY3dkYnVmLnN0X2lubykKICAgICB7CmRpZmYgLS1n aXQgYS93aW5zdXAvY3lnd2luL3Bvc2l4X2lwYy5jYyBiL3dpbnN1cC9jeWd3aW4vcG9zaXhfaXBj LmNjCmluZGV4IDE5MzJhYzhkYi4uNjhkNjZlNDEwIDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2lu L3Bvc2l4X2lwYy5jYworKysgYi93aW5zdXAvY3lnd2luL3Bvc2l4X2lwYy5jYwpAQCAtMTE3LDE0 ICsxMTcsMTQgQEAgcHVibGljOgogICAgIGZsLmxfd2hlbmNlID0gU0VFS19TRVQ7CiAgICAgZmwu bF9zdGFydCA9IDA7CiAgICAgZmwubF9sZW4gPSBzaXplOwotICAgIHJldHVybiBmY250bDY0IChm ZCwgRl9TRVRMS1csICZmbCk7CisgICAgcmV0dXJuIGZjbnRsIChmZCwgRl9TRVRMS1csICZmbCk7 CiAgIH0KICAgaW50IHVubG9jayAoaW50IGZkKQogICB7CiAgICAgaWYgKCFmbC5sX2xlbikKICAg ICAgIHJldHVybiAwOwogICAgIGZsLmxfdHlwZSA9IEZfVU5MQ0s7Ci0gICAgcmV0dXJuIGZjbnRs NjQgKGZkLCBGX1NFVExLVywgJmZsKTsKKyAgICByZXR1cm4gZmNudGwgKGZkLCBGX1NFVExLVywg JmZsKTsKICAgfQogfTsKIApAQCAtNDI0LDcgKzQyNCw3IEBAIHNlbV9vcGVuIChjb25zdCBjaGFy ICpuYW1lLCBpbnQgb2ZsYWcsIC4uLikKICAgICAgIC8qIE1ha2UgY2VydGFpbiBpbml0aWFsaXph dGlvbiBpcyBjb21wbGV0ZSAqLwogICAgICAgZm9yIChpID0gMDsgaSA8IE1BWF9UUklFUzsgaSsr KQogCXsKLQkgIGlmIChzdGF0NjQgKHNlbW5hbWUsICZzdGF0YnVmZikgPT0gLTEpCisJICBpZiAo c3RhdCAoc2VtbmFtZSwgJnN0YXRidWZmKSA9PSAtMSkKIAkgICAgewogCSAgICAgIGlmIChlcnJu byA9PSBFTk9FTlQgJiYgKG9mbGFnICYgT19DUkVBVCkpCiAJCXsKQEAgLTQ3Niw3ICs0NzYsNyBA QCBzZW1fb3BlbiAoY29uc3QgY2hhciAqbmFtZSwgaW50IG9mbGFnLCAuLi4pCiAgIHJldHVybiBT RU1fRkFJTEVEOwogfQogCi1leHRlcm4gIkMiIG9mZl90IGxzZWVrNjQgKGludCwgb2ZmX3QsIGlu dCk7CitleHRlcm4gIkMiIG9mZl90IGxzZWVrIChpbnQsIG9mZl90LCBpbnQpOwogCiBpbnQKIF9z ZW1fY2xvc2UgKHNlbV90ICpzZW0sIGJvb2wgZG9fY2xvc2UpCkBAIC00ODgsNyArNDg4LDcgQEAg X3NlbV9jbG9zZSAoc2VtX3QgKnNlbSwgYm9vbCBkb19jbG9zZSkKICAgaWYgKHNlbWFwaG9yZTo6 Z2V0aW50ZXJuYWwgKHNlbSwgJmZkLCAmc2YuaGFzaCwgJnNmLmx1aWQsICZzZi52YWx1ZSkgPT0g LTEpCiAgICAgcmV0dXJuIC0xOwogICBpZiAoIWZpbGUubG9jayAoZmQsIHNpemVvZiBzZikKLSAg ICAgICYmIGxzZWVrNjQgKGZkLCAwTEwsIFNFRUtfU0VUKSAhPSAob2ZmX3QpIC0xCisgICAgICAm JiBsc2VlayAoZmQsIDBMTCwgU0VFS19TRVQpICE9IChvZmZfdCkgLTEKICAgICAgICYmIHdyaXRl IChmZCwgJnNmLCBzaXplb2Ygc2YpID09IHNpemVvZiBzZikKICAgICByZXQgPSBkb19jbG9zZSA/ IHNlbWFwaG9yZTo6Y2xvc2UgKHNlbSkgOiAwOwogCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2lu L3NlY19hY2wuY2MgYi93aW5zdXAvY3lnd2luL3NlY19hY2wuY2MKaW5kZXggYTY1ZDRhMmIwLi4w M2RiYjgwNTAgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vc2VjX2FjbC5jYworKysgYi93aW5z dXAvY3lnd2luL3NlY19hY2wuY2MKQEAgLTExODYsNyArMTE4Niw3IEBAIG91dDoKICAgICAgIG1l bWNweSAoYWNsYnVmcCwgbGFjbCwgcG9zICogc2l6ZW9mIChhY2xlbnRfdCkpOwogICAgICAgZm9y IChpZHggPSAwOyBpZHggPCBwb3M7ICsraWR4KQogCWFjbGJ1ZnBbaWR4XS5hX3Blcm0gJj0gU19J UldYTzsKLSAgICAgIGFjbHNvcnQzMiAocG9zLCAwLCBhY2xidWZwKTsKKyAgICAgIGFjbHNvcnQg KHBvcywgMCwgYWNsYnVmcCk7CiAgICAgfQogICBpZiAoc3RkX2FjbCkKICAgICAqc3RkX2FjbCA9 IHN0YW5kYXJkX0FDRXNfb25seTsKQEAgLTEyMDcsNyArMTIwNyw3IEBAIGdldGFjbCAoSEFORExF IGhhbmRsZSwgcGF0aF9jb252ICZwYywgaW50IG5lbnRyaWVzLCBhY2xlbnRfdCAqYWNsYnVmcCkK IH0KIAogZXh0ZXJuICJDIiBpbnQKLWFjbDMyIChjb25zdCBjaGFyICpwYXRoLCBpbnQgY21kLCBp bnQgbmVudHJpZXMsIGFjbGVudF90ICphY2xidWZwKQorYWNsIChjb25zdCBjaGFyICpwYXRoLCBp bnQgY21kLCBpbnQgbmVudHJpZXMsIGFjbGVudF90ICphY2xidWZwKQogewogICBpbnQgcmVzID0g LTE7CiAKQEAgLTEyMjksNyArMTIyOSw3IEBAIGFjbDMyIChjb25zdCBjaGFyICpwYXRoLCBpbnQg Y21kLCBpbnQgbmVudHJpZXMsIGFjbGVudF90ICphY2xidWZwKQogfQogCiBleHRlcm4gIkMiIGlu dAotZmFjbDMyIChpbnQgZmQsIGludCBjbWQsIGludCBuZW50cmllcywgYWNsZW50X3QgKmFjbGJ1 ZnApCitmYWNsIChpbnQgZmQsIGludCBjbWQsIGludCBuZW50cmllcywgYWNsZW50X3QgKmFjbGJ1 ZnApCiB7CiAgIGN5Z2hlYXBfZmRnZXQgY2ZkIChmZCk7CiAgIGlmIChjZmQgPCAwKQpAQCAtMTQw MSw3ICsxNDAxLDcgQEAgX19hY2xjaGVjayAoYWNsZW50X3QgKmFjbGJ1ZnAsIGludCBuZW50cmll cywgaW50ICp3aGljaCwgYm9vbCBwb3NpeCkKIH0KIAogZXh0ZXJuICJDIiBpbnQKLWFjbGNoZWNr MzIgKGFjbGVudF90ICphY2xidWZwLCBpbnQgbmVudHJpZXMsIGludCAqd2hpY2gpCithY2xjaGVj ayAoYWNsZW50X3QgKmFjbGJ1ZnAsIGludCBuZW50cmllcywgaW50ICp3aGljaCkKIHsKICAgcmV0 dXJuIF9fYWNsY2hlY2sgKGFjbGJ1ZnAsIG5lbnRyaWVzLCB3aGljaCwgZmFsc2UpOwogfQpAQCAt MTQ2NiwxMCArMTQ2NiwxMCBAQCBfX2FjbHNvcnQgKGludCBuZW50cmllcywgYWNsZW50X3QgKmFj bGJ1ZnApCiB9CiAKIGV4dGVybiAiQyIgaW50Ci1hY2xzb3J0MzIgKGludCBuZW50cmllcywgaW50 IGNhbGNsYXNzLCBhY2xlbnRfdCAqYWNsYnVmcCkKK2FjbHNvcnQgKGludCBuZW50cmllcywgaW50 IGNhbGNsYXNzLCBhY2xlbnRfdCAqYWNsYnVmcCkKIHsKICAgaWYgKCFhY2xidWZwIHx8IG5lbnRy aWVzIDwgTUlOX0FDTF9FTlRSSUVTCi0gICAgICB8fCBhY2xjaGVjazMyIChhY2xidWZwLCBuZW50 cmllcywgTlVMTCkpCisgICAgICB8fCBhY2xjaGVjayAoYWNsYnVmcCwgbmVudHJpZXMsIE5VTEwp KQogICAgIHsKICAgICAgIHNldF9lcnJubyAoRUlOVkFMKTsKICAgICAgIHJldHVybiAtMTsKQEAg LTE0ODEsNyArMTQ4MSw3IEBAIGFjbHNvcnQzMiAoaW50IG5lbnRyaWVzLCBpbnQgY2FsY2xhc3Ms IGFjbGVudF90ICphY2xidWZwKQogfQogCiBleHRlcm4gIkMiIGludAotYWNsdG9tb2RlMzIgKGFj bGVudF90ICphY2xidWZwLCBpbnQgbmVudHJpZXMsIG1vZGVfdCAqbW9kZXApCithY2x0b21vZGUg KGFjbGVudF90ICphY2xidWZwLCBpbnQgbmVudHJpZXMsIG1vZGVfdCAqbW9kZXApCiB7CiAgIGlu dCBwb3M7CiAKQEAgLTE1MjAsNyArMTUyMCw3IEBAIGFjbHRvbW9kZTMyIChhY2xlbnRfdCAqYWNs YnVmcCwgaW50IG5lbnRyaWVzLCBtb2RlX3QgKm1vZGVwKQogfQogCiBleHRlcm4gIkMiIGludAot YWNsZnJvbW1vZGUzMiAoYWNsZW50X3QgKmFjbGJ1ZnAsIGludCBuZW50cmllcywgbW9kZV90ICpt b2RlcCkKK2FjbGZyb21tb2RlIChhY2xlbnRfdCAqYWNsYnVmcCwgaW50IG5lbnRyaWVzLCBtb2Rl X3QgKm1vZGVwKQogewogICBpbnQgcG9zOwogCkBAIC0xNTU3LDE1ICsxNTU3LDE1IEBAIGFjbGZy b21tb2RlMzIgKGFjbGVudF90ICphY2xidWZwLCBpbnQgbmVudHJpZXMsIG1vZGVfdCAqbW9kZXAp CiB9CiAKIGV4dGVybiAiQyIgaW50Ci1hY2x0b3BiaXRzMzIgKGFjbGVudF90ICphY2xidWZwLCBp bnQgbmVudHJpZXMsIG1vZGVfdCAqcGJpdHNwKQorYWNsdG9wYml0cyAoYWNsZW50X3QgKmFjbGJ1 ZnAsIGludCBuZW50cmllcywgbW9kZV90ICpwYml0c3ApCiB7Ci0gIHJldHVybiBhY2x0b21vZGUz MiAoYWNsYnVmcCwgbmVudHJpZXMsIHBiaXRzcCk7CisgIHJldHVybiBhY2x0b21vZGUgKGFjbGJ1 ZnAsIG5lbnRyaWVzLCBwYml0c3ApOwogfQogCiBleHRlcm4gIkMiIGludAotYWNsZnJvbXBiaXRz MzIgKGFjbGVudF90ICphY2xidWZwLCBpbnQgbmVudHJpZXMsIG1vZGVfdCAqcGJpdHNwKQorYWNs ZnJvbXBiaXRzIChhY2xlbnRfdCAqYWNsYnVmcCwgaW50IG5lbnRyaWVzLCBtb2RlX3QgKnBiaXRz cCkKIHsKLSAgcmV0dXJuIGFjbGZyb21tb2RlMzIgKGFjbGJ1ZnAsIG5lbnRyaWVzLCBwYml0c3Ap OworICByZXR1cm4gYWNsZnJvbW1vZGUgKGFjbGJ1ZnAsIG5lbnRyaWVzLCBwYml0c3ApOwogfQog CiBzdGF0aWMgY2hhciAqCkBAIC0xNjM1LDcgKzE2MzUsNyBAQCBfX2FjbHRvdGV4dCAoYWNsZW50 X3QgKmFjbGJ1ZnAsIGludCBhY2xjbnQsIGNvbnN0IGNoYXIgKnByZWZpeCwgY2hhciBzZXBhcmF0 b3IsCiAJICAgICBpbnQgb3B0aW9ucykKIHsKICAgaWYgKCFhY2xidWZwIHx8IGFjbGNudCA8IDAg fHwgYWNsY250ID4gTUFYX0FDTF9FTlRSSUVTCi0gICAgICB8fCAoYWNsY250ID4gMCAmJiBhY2xz b3J0MzIgKGFjbGNudCwgMCwgYWNsYnVmcCkpKQorICAgICAgfHwgKGFjbGNudCA+IDAgJiYgYWNs c29ydCAoYWNsY250LCAwLCBhY2xidWZwKSkpCiAgICAgewogICAgICAgc2V0X2Vycm5vIChFSU5W QUwpOwogICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xNzc2LDcgKzE3NzYsNyBAQCBfX2FjbHRvdGV4 dCAoYWNsZW50X3QgKmFjbGJ1ZnAsIGludCBhY2xjbnQsIGNvbnN0IGNoYXIgKnByZWZpeCwgY2hh ciBzZXBhcmF0b3IsCiB9CiAKIGV4dGVybiAiQyIgY2hhciAqCi1hY2x0b3RleHQzMiAoYWNsZW50 X3QgKmFjbGJ1ZnAsIGludCBhY2xjbnQpCithY2x0b3RleHQgKGFjbGVudF90ICphY2xidWZwLCBp bnQgYWNsY250KQogewogICByZXR1cm4gX19hY2x0b3RleHQgKGFjbGJ1ZnAsIGFjbGNudCwgTlVM TCwgJywnLCAwKTsKIH0KQEAgLTE5NjAsMTggKzE5NjAsNyBAQCBfX2FjbGZyb210ZXh0IChjb25z dCBjaGFyICphY2x0ZXh0cCwgaW50ICphY2xjbnQsIGJvb2wgcG9zaXgpCiB9CiAKIGV4dGVybiAi QyIgYWNsZW50X3QgKgotYWNsZnJvbXRleHQzMiAoY2hhciAqYWNsdGV4dHAsIGludCAqYWNsY250 KQorYWNsZnJvbXRleHQgKGNoYXIgKmFjbHRleHRwLCBpbnQgKmFjbGNudCkKIHsKICAgcmV0dXJu IChhY2xlbnRfdCAqKSBfX2FjbGZyb210ZXh0IChhY2x0ZXh0cCwgYWNsY250LCBmYWxzZSk7CiB9 Ci0KLUVYUE9SVF9BTElBUyAoYWNsMzIsIGFjbCkKLUVYUE9SVF9BTElBUyAoZmFjbDMyLCBmYWNs KQotRVhQT1JUX0FMSUFTIChhY2xjaGVjazMyLCBhY2xjaGVjaykKLUVYUE9SVF9BTElBUyAoYWNs c29ydDMyLCBhY2xzb3J0KQotRVhQT1JUX0FMSUFTIChhY2x0b21vZGUzMiwgYWNsdG9tb2RlKQot RVhQT1JUX0FMSUFTIChhY2xmcm9tbW9kZTMyLCBhY2xmcm9tbW9kZSkKLUVYUE9SVF9BTElBUyAo YWNsdG9wYml0czMyLCBhY2x0b3BiaXRzKQotRVhQT1JUX0FMSUFTIChhY2xmcm9tcGJpdHMzMiwg YWNsZnJvbXBiaXRzKQotRVhQT1JUX0FMSUFTIChhY2x0b3RleHQzMiwgYWNsdG90ZXh0KQotRVhQ T1JUX0FMSUFTIChhY2xmcm9tdGV4dDMyLCBhY2xmcm9tdGV4dCkKZGlmZiAtLWdpdCBhL3dpbnN1 cC9jeWd3aW4vc2VjdXJpdHkuY2MgYi93aW5zdXAvY3lnd2luL3NlY3VyaXR5LmNjCmluZGV4IGQ0 ODUyNjYxOS4uMDRlNzc3ODUyIDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL3NlY3VyaXR5LmNj CisrKyBiL3dpbnN1cC9jeWd3aW4vc2VjdXJpdHkuY2MKQEAgLTM2NCw4ICszNjQsOCBAQCBzZXRf c2VjdXJpdHlfYXR0cmlidXRlIChwYXRoX2NvbnYgJnBjLCBpbnQgYXR0cmlidXRlLCBQU0VDVVJJ VFlfQVRUUklCVVRFUyBwc2EsCiAgIHBzYS0+bHBTZWN1cml0eURlc2NyaXB0b3IgPSBzZC5tYWxs b2MgKFNFQ1VSSVRZX0RFU0NSSVBUT1JfTUlOX0xFTkdUSCk7CiAgIFJ0bENyZWF0ZVNlY3VyaXR5 RGVzY3JpcHRvciAoKFBTRUNVUklUWV9ERVNDUklQVE9SKSBwc2EtPmxwU2VjdXJpdHlEZXNjcmlw dG9yLAogCQkJCVNFQ1VSSVRZX0RFU0NSSVBUT1JfUkVWSVNJT04pOwotICBwc2EtPmxwU2VjdXJp dHlEZXNjcmlwdG9yID0gc2V0X3Bvc2l4X2FjY2VzcyAoYXR0cmlidXRlLCBnZXRldWlkMzIgKCks Ci0JCQkJCQlnZXRlZ2lkMzIgKCksIE5VTEwsIDAsCisgIHBzYS0+bHBTZWN1cml0eURlc2NyaXB0 b3IgPSBzZXRfcG9zaXhfYWNjZXNzIChhdHRyaWJ1dGUsIGdldGV1aWQgKCksCisJCQkJCQlnZXRl Z2lkICgpLCBOVUxMLCAwLAogCQkJCQkJc2QsIGZhbHNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvd2lu c3VwL2N5Z3dpbi9zZWN1cml0eS5oIGIvd2luc3VwL2N5Z3dpbi9zZWN1cml0eS5oCmluZGV4IGY1 YWMxYTkyMi4uZmYyNTQ4MDI3IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL3NlY3VyaXR5LmgK KysrIGIvd2luc3VwL2N5Z3dpbi9zZWN1cml0eS5oCkBAIC00MzgsOCArNDM4LDYgQEAgYm9vbCBh dXRoel9nZXRfdXNlcl9hdHRyaWJ1dGUgKG1vZGVfdCAqYXR0cmlidXRlLCBQU0VDVVJJVFlfREVT Q1JJUFRPUiBwc2QsCiAKIC8qIHNlY19hY2wuY2MgKi8KIHN0cnVjdCBhY2w7Ci1leHRlcm4gIkMi IGludCBhY2xzb3J0MzIgKGludCwgaW50LCBzdHJ1Y3QgYWNsICopOwotZXh0ZXJuICJDIiBpbnQg YWNsMzIgKGNvbnN0IGNoYXIgKiwgaW50LCBpbnQsIHN0cnVjdCBhY2wgKik7CiBpbnQgc2VhcmNo YWNlIChzdHJ1Y3QgYWNsICosIGludCwgaW50LCB1aWRfdCBpZCA9IElMTEVHQUxfVUlEKTsKIFBT RUNVUklUWV9ERVNDUklQVE9SIHNldF9wb3NpeF9hY2Nlc3MgKG1vZGVfdCwgdWlkX3QsIGdpZF90 LCBzdHJ1Y3QgYWNsICosIGludCwKIAkJCQkgICAgICAgc2VjdXJpdHlfZGVzY3JpcHRvciAmLCBi b29sKTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vc3lzY2FsbHMuY2MgYi93aW5zdXAvY3ln d2luL3N5c2NhbGxzLmNjCmluZGV4IGJkNDkxMDY5MC4uYjg4ZWRkOTk4IDEwMDY0NAotLS0gYS93 aW5zdXAvY3lnd2luL3N5c2NhbGxzLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vc3lzY2FsbHMuY2MK QEAgLTE1OTksNyArMTU5OSw3IEBAIEVYUE9SVF9BTElBUyAob3BlbiwgX29wZW4gKQogRVhQT1JU X0FMSUFTIChvcGVuLCBfb3BlbjY0ICkKIAogZXh0ZXJuICJDIiBvZmZfdAotbHNlZWs2NCAoaW50 IGZkLCBvZmZfdCBwb3MsIGludCBkaXIpCitsc2VlayAoaW50IGZkLCBvZmZfdCBwb3MsIGludCBk aXIpCiB7CiAgIG9mZl90IHJlczsKIApAQCAtMTYyNCw5ICsxNjI0LDggQEAgbHNlZWs2NCAoaW50 IGZkLCBvZmZfdCBwb3MsIGludCBkaXIpCiAgIHJldHVybiByZXM7CiB9CiAKLUVYUE9SVF9BTElB UyAobHNlZWs2NCwgX2xzZWVrNjQpCi1FWFBPUlRfQUxJQVMgKGxzZWVrNjQsIGxzZWVrKQotRVhQ T1JUX0FMSUFTIChsc2VlazY0LCBfbHNlZWspCitFWFBPUlRfQUxJQVMgKGxzZWVrLCBfbHNlZWs2 NCkKK0VYUE9SVF9BTElBUyAobHNlZWssIF9sc2VlaykKIAogZXh0ZXJuICJDIiBpbnQKIGNsb3Nl IChpbnQgZmQpCkBAIC0xNzI2LDIzICsxNzI1LDE5IEBAIGNob3duX3dvcmtlciAoY29uc3QgY2hh ciAqbmFtZSwgdW5zaWduZWQgZm1vZGUsIHVpZF90IHVpZCwgZ2lkX3QgZ2lkKQogfQogCiBleHRl cm4gIkMiIGludAotY2hvd24zMiAoY29uc3QgY2hhciAqIG5hbWUsIHVpZF90IHVpZCwgZ2lkX3Qg Z2lkKQorY2hvd24gKGNvbnN0IGNoYXIgKiBuYW1lLCB1aWRfdCB1aWQsIGdpZF90IGdpZCkKIHsK ICAgcmV0dXJuIGNob3duX3dvcmtlciAobmFtZSwgUENfU1lNX0ZPTExPVywgdWlkLCBnaWQpOwog fQogCi1FWFBPUlRfQUxJQVMgKGNob3duMzIsIGNob3duKQotCiBleHRlcm4gIkMiIGludAotbGNo b3duMzIgKGNvbnN0IGNoYXIgKiBuYW1lLCB1aWRfdCB1aWQsIGdpZF90IGdpZCkKK2xjaG93biAo Y29uc3QgY2hhciAqIG5hbWUsIHVpZF90IHVpZCwgZ2lkX3QgZ2lkKQogewogICByZXR1cm4gY2hv d25fd29ya2VyIChuYW1lLCBQQ19TWU1fTk9GT0xMT1csIHVpZCwgZ2lkKTsKIH0KIAotRVhQT1JU X0FMSUFTIChsY2hvd24zMiwgbGNob3duKQotCiBleHRlcm4gIkMiIGludAotZmNob3duMzIgKGlu dCBmZCwgdWlkX3QgdWlkLCBnaWRfdCBnaWQpCitmY2hvd24gKGludCBmZCwgdWlkX3QgdWlkLCBn aWRfdCBnaWQpCiB7CiAgIGN5Z2hlYXBfZmRnZXQgY2ZkIChmZCk7CiAgIGlmIChjZmQgPCAwKQpA QCAtMTc2Miw4ICsxNzU3LDYgQEAgZmNob3duMzIgKGludCBmZCwgdWlkX3QgdWlkLCBnaWRfdCBn aWQpCiAgIHJldHVybiByZXM7CiB9CiAKLUVYUE9SVF9BTElBUyAoZmNob3duMzIsIGZjaG93bikK LQogLyogdW1hc2s6IFBPU0lYIDUuMy4zLjEgKi8KIGV4dGVybiAiQyIgbW9kZV90CiB1bWFzayAo bW9kZV90IG1hc2spCkBAIC0xODU5LDcgKzE4NTIsNyBAQCBmaGFuZGxlcl9iYXNlOjpzdGF0X2Zp eHVwIChzdHJ1Y3Qgc3RhdCAqYnVmKQogCXsKIAkgIGlmICghZGV2X3N0X2luaXRlZCkKIAkgICAg ewotCSAgICAgIHN0YXQ2NCAoIi9kZXYiLCAmZGV2X3N0KTsKKwkgICAgICBzdGF0ICgiL2RldiIs ICZkZXZfc3QpOwogCSAgICAgIGRldl9zdF9pbml0ZWQgPSB0cnVlOwogCSAgICB9CiAJICBidWYt PnN0X2RldiA9IGRldl9zdC5zdF9kZXY7CkBAIC0xODgyLDcgKzE4NzUsNyBAQCBmaGFuZGxlcl9i YXNlOjpzdGF0X2ZpeHVwIChzdHJ1Y3Qgc3RhdCAqYnVmKQogfQogCiBleHRlcm4gIkMiIGludAot ZnN0YXQ2NCAoaW50IGZkLCBzdHJ1Y3Qgc3RhdCAqYnVmKQorZnN0YXQgKGludCBmZCwgc3RydWN0 IHN0YXQgKmJ1ZikKIHsKICAgaW50IHJlczsKIApAQCAtMTkwMiwxNyArMTg5NSwxNiBAQCBmc3Rh dDY0IChpbnQgZmQsIHN0cnVjdCBzdGF0ICpidWYpCiB9CiAKIGV4dGVybiAiQyIgaW50Ci1fZnN0 YXQ2NF9yIChzdHJ1Y3QgX3JlZW50ICpwdHIsIGludCBmZCwgc3RydWN0IHN0YXQgKmJ1ZikKK19m c3RhdF9yIChzdHJ1Y3QgX3JlZW50ICpwdHIsIGludCBmZCwgc3RydWN0IHN0YXQgKmJ1ZikKIHsK ICAgaW50IHJldDsKIAotICBpZiAoKHJldCA9IGZzdGF0NjQgKGZkLCBidWYpKSA9PSAtMSkKKyAg aWYgKChyZXQgPSBmc3RhdCAoZmQsIGJ1ZikpID09IC0xKQogICAgIHB0ci0+X2Vycm5vID0gZ2V0 X2Vycm5vICgpOwogICByZXR1cm4gcmV0OwogfQogCi1FWFBPUlRfQUxJQVMgKGZzdGF0NjQsIGZz dGF0KQotRVhQT1JUX0FMSUFTIChfZnN0YXQ2NF9yLCBfZnN0YXRfcikKK0VYUE9SVF9BTElBUyAo X2ZzdGF0X3IsIF9mc3RhdDY0X3IpCiAKIC8qIGZzeW5jOiBQOTYgNi42LjEuMSAqLwogZXh0ZXJu ICJDIiBpbnQKQEAgLTIwNDMsNyArMjAzNSw3IEBAIHN0YXRfd29ya2VyIChwYXRoX2NvbnYgJnBj LCBzdHJ1Y3Qgc3RhdCAqYnVmKQogfQogCiBleHRlcm4gIkMiIGludAotc3RhdDY0IChjb25zdCBj aGFyICpfX3Jlc3RyaWN0IG5hbWUsIHN0cnVjdCBzdGF0ICpfX3Jlc3RyaWN0IGJ1ZikKK3N0YXQg KGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgbmFtZSwgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3QgYnVm KQogewogICBzeXNjYWxsX3ByaW50ZiAoImVudGVyaW5nIik7CiAgIHBhdGhfY29udiBwYyAobmFt ZSwgUENfU1lNX0ZPTExPVyB8IFBDX1BPU0lYIHwgUENfS0VFUF9IQU5ETEUKQEAgLTIwNTMsMjIg KzIwNDUsMjEgQEAgc3RhdDY0IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IG5hbWUsIHN0cnVjdCBz dGF0ICpfX3Jlc3RyaWN0IGJ1ZikKIH0KIAogZXh0ZXJuICJDIiBpbnQKLV9zdGF0NjRfciAoc3Ry dWN0IF9yZWVudCAqX19yZXN0cmljdCBwdHIsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgbmFtZSwK K19zdGF0X3IgKHN0cnVjdCBfcmVlbnQgKl9fcmVzdHJpY3QgcHRyLCBjb25zdCBjaGFyICpfX3Jl c3RyaWN0IG5hbWUsCiAJICAgc3RydWN0IHN0YXQgKmJ1ZikKIHsKICAgaW50IHJldDsKIAotICBp ZiAoKHJldCA9IHN0YXQ2NCAobmFtZSwgYnVmKSkgPT0gLTEpCisgIGlmICgocmV0ID0gc3RhdCAo bmFtZSwgYnVmKSkgPT0gLTEpCiAgICAgcHRyLT5fZXJybm8gPSBnZXRfZXJybm8gKCk7CiAgIHJl dHVybiByZXQ7CiB9CiAKLUVYUE9SVF9BTElBUyAoc3RhdDY0LCBzdGF0KQotRVhQT1JUX0FMSUFT IChfc3RhdDY0X3IsIF9zdGF0X3IpCitFWFBPUlRfQUxJQVMgKF9zdGF0X3IsIF9zdGF0NjRfcikK IAogLyogbHN0YXQ6IFByb3ZpZGVkIGJ5IFNWUjQgYW5kIDQuMytCU0QsIFBPU0lYPyAqLwogZXh0 ZXJuICJDIiBpbnQKLWxzdGF0NjQgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgbmFtZSwgc3RydWN0 IHN0YXQgKl9fcmVzdHJpY3QgYnVmKQorbHN0YXQgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgbmFt ZSwgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3QgYnVmKQogewogICBzeXNjYWxsX3ByaW50ZiAoImVu dGVyaW5nIik7CiAgIHBhdGhfY29udiBwYyAobmFtZSwgUENfU1lNX05PRk9MTE9XIHwgUENfUE9T SVggfCBQQ19LRUVQX0hBTkRMRSwKQEAgLTIwNzYsOCArMjA2Nyw2IEBAIGxzdGF0NjQgKGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QgbmFtZSwgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3QgYnVmKQogICBy ZXR1cm4gc3RhdF93b3JrZXIgKHBjLCBidWYpOwogfQogCi1FWFBPUlRfQUxJQVMgKGxzdGF0NjQs IGxzdGF0KQotCiBleHRlcm4gIkMiIGludAogYWNjZXNzIChjb25zdCBjaGFyICpmbiwgaW50IGZs YWdzKQogewpAQCAtMzA1NSw3ICszMDQ0LDcgQEAgcG9zaXhfZmFsbG9jYXRlIChpbnQgZmQsIG9m Zl90IG9mZnNldCwgb2ZmX3QgbGVuKQogfQogCiBleHRlcm4gIkMiIGludAotZnRydW5jYXRlNjQg KGludCBmZCwgb2ZmX3QgbGVuZ3RoKQorZnRydW5jYXRlIChpbnQgZmQsIG9mZl90IGxlbmd0aCkK IHsKICAgaW50IHJlcyA9IC0xOwogICBjeWdoZWFwX2ZkZ2V0IGNmZCAoZmQpOwpAQCAtMzA3NCwx MSArMzA2Myw5IEBAIGZ0cnVuY2F0ZTY0IChpbnQgZmQsIG9mZl90IGxlbmd0aCkKICAgcmV0dXJu IHJlczsKIH0KIAotRVhQT1JUX0FMSUFTIChmdHJ1bmNhdGU2NCwgZnRydW5jYXRlKQotCiAvKiB0 cnVuY2F0ZTogUHJvdmlkZWQgYnkgU1ZSNCBhbmQgNC4zK0JTRC4gIE5vdCBwYXJ0IG9mIFBPU0lY LjEgb3IgWFBHMyAqLwogZXh0ZXJuICJDIiBpbnQKLXRydW5jYXRlNjQgKGNvbnN0IGNoYXIgKnBh dGhuYW1lLCBvZmZfdCBsZW5ndGgpCit0cnVuY2F0ZSAoY29uc3QgY2hhciAqcGF0aG5hbWUsIG9m Zl90IGxlbmd0aCkKIHsKICAgaW50IGZkOwogICBpbnQgcmVzID0gLTE7CkBAIC0zMDg3LDcgKzMw NzQsNyBAQCB0cnVuY2F0ZTY0IChjb25zdCBjaGFyICpwYXRobmFtZSwgb2ZmX3QgbGVuZ3RoKQog CiAgIGlmIChmZCAhPSAtMSkKICAgICB7Ci0gICAgICByZXMgPSBmdHJ1bmNhdGU2NCAoZmQsIGxl bmd0aCk7CisgICAgICByZXMgPSBmdHJ1bmNhdGUgKGZkLCBsZW5ndGgpOwogICAgICAgY2xvc2Ug KGZkKTsKICAgICB9CiAgIHN5c2NhbGxfcHJpbnRmICgiJVIgPSB0cnVuY2F0ZSglcywgJUQpIiwg cmVzLCBwYXRobmFtZSwgbGVuZ3RoKTsKQEAgLTMwOTUsOCArMzA4Miw2IEBAIHRydW5jYXRlNjQg KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBvZmZfdCBsZW5ndGgpCiAgIHJldHVybiByZXM7CiB9CiAK LUVYUE9SVF9BTElBUyAodHJ1bmNhdGU2NCwgdHJ1bmNhdGUpCi0KIGV4dGVybiAiQyIgbG9uZwog X2dldF9vc2ZoYW5kbGUgKGludCBmZCkKIHsKQEAgLTMyOTMsNyArMzI3OCw3IEBAIG1rbm9kX3dv cmtlciAocGF0aF9jb252ICZwYywgbW9kZV90IG1vZGUsIF9tYWpvcl90IG1ham9yLCBfbWlub3Jf dCBtaW5vcikKIH0KIAogZXh0ZXJuICJDIiBpbnQKLW1rbm9kMzIgKGNvbnN0IGNoYXIgKnBhdGgs IG1vZGVfdCBtb2RlLCBkZXZfdCBkZXYpCitta25vZCAoY29uc3QgY2hhciAqcGF0aCwgbW9kZV90 IG1vZGUsIGRldl90IGRldikKIHsKICAgX190cnkKICAgICB7CkBAIC0zMzU0LDE3ICszMzM5LDE1 IEBAIG1rbm9kMzIgKGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlLCBkZXZfdCBkZXYpCiAg IHJldHVybiAtMTsKIH0KIAotRVhQT1JUX0FMSUFTIChta25vZDMyLCBta25vZCkKLQogZXh0ZXJu ICJDIiBpbnQKIG1rZmlmbyAoY29uc3QgY2hhciAqcGF0aCwgbW9kZV90IG1vZGUpCiB7Ci0gIHJl dHVybiBta25vZDMyIChwYXRoLCAobW9kZSAmIH5TX0lGTVQpIHwgU19JRklGTywgMCk7CisgIHJl dHVybiBta25vZCAocGF0aCwgKG1vZGUgJiB+U19JRk1UKSB8IFNfSUZJRk8sIDApOwogfQogCiAv KiBzZXRldWlkOiBzdGFuZGFyZHM/ICovCiBleHRlcm4gIkMiIGludAotc2V0ZXVpZDMyICh1aWRf dCB1aWQpCitzZXRldWlkICh1aWRfdCB1aWQpCiB7CiAgIGRlYnVnX3ByaW50ZiAoInVpZDogJXUg bXlzZWxmLT51aWQ6ICV1IG15c2VsZi0+Z2lkOiAldSIsCiAJCXVpZCwgbXlzZWxmLT51aWQsIG15 c2VsZi0+Z2lkKTsKQEAgLTM1NjgsMTMgKzM1NTEsMTEgQEAgc2V0ZXVpZDMyICh1aWRfdCB1aWQp CiAgIHJldHVybiAwOwogfQogCi1FWFBPUlRfQUxJQVMgKHNldGV1aWQzMiwgc2V0ZXVpZCkKLQog Lyogc2V0dWlkOiBQT1NJWCA0LjIuMi4xICovCiBleHRlcm4gIkMiIGludAotc2V0dWlkMzIgKHVp ZF90IHVpZCkKK3NldHVpZCAodWlkX3QgdWlkKQogewotICBpbnQgcmV0ID0gc2V0ZXVpZDMyICh1 aWQpOworICBpbnQgcmV0ID0gc2V0ZXVpZCAodWlkKTsKICAgaWYgKCFyZXQpCiAgICAgewogICAg ICAgY3lnaGVhcC0+dXNlci5yZWFsX3VpZCA9IG15c2VsZi0+dWlkOwpAQCAtMzU4NSwyMCArMzU2 NiwxOCBAQCBzZXR1aWQzMiAodWlkX3QgdWlkKQogICByZXR1cm4gcmV0OwogfQogCi1FWFBPUlRf QUxJQVMgKHNldHVpZDMyLCBzZXR1aWQpCi0KIGV4dGVybiAiQyIgaW50Ci1zZXRyZXVpZDMyICh1 aWRfdCBydWlkLCB1aWRfdCBldWlkKQorc2V0cmV1aWQgKHVpZF90IHJ1aWQsIHVpZF90IGV1aWQp CiB7CiAgIGludCByZXQgPSAwOwogICBib29sIHRyaWVkID0gZmFsc2U7CiAgIHVpZF90IG9sZF9l dWlkID0gbXlzZWxmLT51aWQ7CiAKICAgaWYgKHJ1aWQgIT0gSUxMRUdBTF9VSUQgJiYgY3lnaGVh cC0+dXNlci5yZWFsX3VpZCAhPSBydWlkICYmIGV1aWQgIT0gcnVpZCkKLSAgICB0cmllZCA9ICEo cmV0ID0gc2V0ZXVpZDMyIChydWlkKSk7CisgICAgdHJpZWQgPSAhKHJldCA9IHNldGV1aWQgKHJ1 aWQpKTsKICAgaWYgKCFyZXQgJiYgZXVpZCAhPSBJTExFR0FMX1VJRCkKLSAgICByZXQgPSBzZXRl dWlkMzIgKGV1aWQpOwotICBpZiAodHJpZWQgJiYgKHJldCB8fCBldWlkID09IElMTEVHQUxfVUlE KSAmJiBzZXRldWlkMzIgKG9sZF9ldWlkKSkKKyAgICByZXQgPSBzZXRldWlkIChldWlkKTsKKyAg aWYgKHRyaWVkICYmIChyZXQgfHwgZXVpZCA9PSBJTExFR0FMX1VJRCkgJiYgc2V0ZXVpZCAob2xk X2V1aWQpKQogICAgIHN5c3RlbV9wcmludGYgKCJDYW5ub3QgcmVzdG9yZSBvcmlnaW5hbCBldWlk ICV1Iiwgb2xkX2V1aWQpOwogICBpZiAoIXJldCAmJiBydWlkICE9IElMTEVHQUxfVUlEKQogICAg IGN5Z2hlYXAtPnVzZXIucmVhbF91aWQgPSBydWlkOwpAQCAtMzYwNiwxMSArMzU4NSw5IEBAIHNl dHJldWlkMzIgKHVpZF90IHJ1aWQsIHVpZF90IGV1aWQpCiAgIHJldHVybiByZXQ7CiB9CiAKLUVY UE9SVF9BTElBUyAoc2V0cmV1aWQzMiwgc2V0cmV1aWQpCi0KIC8qIHNldGVnaWQ6IGZyb20gU3lz dGVtIFYuICAqLwogZXh0ZXJuICJDIiBpbnQKLXNldGVnaWQzMiAoZ2lkX3QgZ2lkKQorc2V0ZWdp ZCAoZ2lkX3QgZ2lkKQogewogICBkZWJ1Z19wcmludGYgKCJuZXcgZWdpZDogJXUgY3VycmVudDog JXUiLCBnaWQsIG15c2VsZi0+Z2lkKTsKIApAQCAtMzY1OCwzMiArMzYzNSwyOCBAQCBzZXRlZ2lk MzIgKGdpZF90IGdpZCkKICAgcmV0dXJuIDA7CiB9CiAKLUVYUE9SVF9BTElBUyAoc2V0ZWdpZDMy LCBzZXRlZ2lkKQotCiAvKiBzZXRnaWQ6IFBPU0lYIDQuMi4yLjEgKi8KIGV4dGVybiAiQyIgaW50 Ci1zZXRnaWQzMiAoZ2lkX3QgZ2lkKQorc2V0Z2lkIChnaWRfdCBnaWQpCiB7Ci0gIGludCByZXQg PSBzZXRlZ2lkMzIgKGdpZCk7CisgIGludCByZXQgPSBzZXRlZ2lkIChnaWQpOwogICBpZiAoIXJl dCkKICAgICBjeWdoZWFwLT51c2VyLnJlYWxfZ2lkID0gbXlzZWxmLT5naWQ7CiAgIHJldHVybiBy ZXQ7CiB9CiAKLUVYUE9SVF9BTElBUyAoc2V0Z2lkMzIsIHNldGdpZCkKLQogZXh0ZXJuICJDIiBp bnQKLXNldHJlZ2lkMzIgKGdpZF90IHJnaWQsIGdpZF90IGVnaWQpCitzZXRyZWdpZCAoZ2lkX3Qg cmdpZCwgZ2lkX3QgZWdpZCkKIHsKICAgaW50IHJldCA9IDA7CiAgIGJvb2wgdHJpZWQgPSBmYWxz ZTsKICAgZ2lkX3Qgb2xkX2VnaWQgPSBteXNlbGYtPmdpZDsKIAogICBpZiAocmdpZCAhPSBJTExF R0FMX0dJRCAmJiBjeWdoZWFwLT51c2VyLnJlYWxfZ2lkICE9IHJnaWQgJiYgZWdpZCAhPSByZ2lk KQotICAgIHRyaWVkID0gIShyZXQgPSBzZXRlZ2lkMzIgKHJnaWQpKTsKKyAgICB0cmllZCA9ICEo cmV0ID0gc2V0ZWdpZCAocmdpZCkpOwogICBpZiAoIXJldCAmJiBlZ2lkICE9IElMTEVHQUxfR0lE KQotICAgIHJldCA9IHNldGVnaWQzMiAoZWdpZCk7Ci0gIGlmICh0cmllZCAmJiAocmV0IHx8IGVn aWQgPT0gSUxMRUdBTF9HSUQpICYmIHNldGVnaWQzMiAob2xkX2VnaWQpKQorICAgIHJldCA9IHNl dGVnaWQgKGVnaWQpOworICBpZiAodHJpZWQgJiYgKHJldCB8fCBlZ2lkID09IElMTEVHQUxfR0lE KSAmJiBzZXRlZ2lkIChvbGRfZWdpZCkpCiAgICAgc3lzdGVtX3ByaW50ZiAoIkNhbm5vdCByZXN0 b3JlIG9yaWdpbmFsIGVnaWQgJXUiLCBvbGRfZWdpZCk7CiAgIGlmICghcmV0ICYmIHJnaWQgIT0g SUxMRUdBTF9HSUQpCiAgICAgY3lnaGVhcC0+dXNlci5yZWFsX2dpZCA9IHJnaWQ7CkBAIC0zNjkx LDggKzM2NjQsNiBAQCBzZXRyZWdpZDMyIChnaWRfdCByZ2lkLCBnaWRfdCBlZ2lkKQogICByZXR1 cm4gcmV0OwogfQogCi1FWFBPUlRfQUxJQVMgKHNldHJlZ2lkMzIsIHNldHJlZ2lkKQotCiAvKiBj aHJvb3Q6IHByaXZpbGVnZWQgVW5peCBzeXN0ZW0gY2FsbC4gICovCiAvKiBGSVhNRTogTm90IHBy aXZpbGVnZWQgaGVyZS4gSG93IHNob3VsZCB0aGlzIGJlIGRvbmU/ICovCiBleHRlcm4gIkMiIGlu dApAQCAtMzg5NiwxMyArMzg2NywxMyBAQCBsb2NrZWRfYXBwZW5kIChpbnQgZmQsIGNvbnN0IHZv aWQgKiBidWYsIHNpemVfdCBzaXplKQogICBpbnQgY291bnQgPSAwOwogCiAgIGRvCi0gICAgaWYg KChsb2NrX2J1ZmZlci5sX3N0YXJ0ID0gbHNlZWs2NCAoZmQsIDAsIFNFRUtfRU5EKSkgIT0gKG9m Zl90KSAtMQotCSYmIGZjbnRsNjQgKGZkLCBGX1NFVExLVywgJmxvY2tfYnVmZmVyKSAhPSAtMSkK KyAgICBpZiAoKGxvY2tfYnVmZmVyLmxfc3RhcnQgPSBsc2VlayAoZmQsIDAsIFNFRUtfRU5EKSkg IT0gKG9mZl90KSAtMQorCSYmIGZjbnRsIChmZCwgRl9TRVRMS1csICZsb2NrX2J1ZmZlcikgIT0g LTEpCiAgICAgICB7Ci0JaWYgKGxzZWVrNjQgKGZkLCAwLCBTRUVLX0VORCkgIT0gKG9mZl90KSAt MSkKKwlpZiAobHNlZWsgKGZkLCAwLCBTRUVLX0VORCkgIT0gKG9mZl90KSAtMSkKIAkgIHdyaXRl IChmZCwgYnVmLCBzaXplKTsKIAlsb2NrX2J1ZmZlci5sX3R5cGUgPSBGX1VOTENLOwotCWZjbnRs NjQgKGZkLCBGX1NFVExLLCAmbG9ja19idWZmZXIpOworCWZjbnRsIChmZCwgRl9TRVRMSywgJmxv Y2tfYnVmZmVyKTsKIAlicmVhazsKICAgICAgIH0KICAgd2hpbGUgKGNvdW50KysgPCAxMDAwCkBA IC00Mzk0LDIyICs0MzY1LDIyIEBAIHBvcGVuIChjb25zdCBjaGFyICpjb21tYW5kLCBjb25zdCBj aGFyICppbl90eXBlKQogICAgICAgICAgZW5kIG9mIHRoZSBwaXBlLiAgT3RoZXJ3aXNlIGRvbid0 IHBhc3Mgb3VyIGVuZCBvZiB0aGUgcGlwZSB0byB0aGUKIAkgY2hpbGQgcHJvY2Vzcy4gKi8KICAg ICAgIGlmIChwaXBlX2ZsYWdzICYgT19DTE9FWEVDKQotCWZjbnRsNjQgKF9fc3RkW3N0ZGNoaWxk XSwgRl9TRVRGRCwgMCk7CisJZmNudGwgKF9fc3RkW3N0ZGNoaWxkXSwgRl9TRVRGRCwgMCk7CiAg ICAgICBlbHNlCi0JZmNudGw2NCAobXlmZCwgRl9TRVRGRCwgRkRfQ0xPRVhFQyk7CisJZmNudGwg KG15ZmQsIEZfU0VURkQsIEZEX0NMT0VYRUMpOwogCiAgICAgICAvKiBBbHNvIGRvbid0IHBhc3Mg dGhlIGZpbGUgaGFuZGxlIGN1cnJlbnRseSBhc3NvY2lhdGVkIHdpdGggc3RkaW4vc3Rkb3V0CiAJ IHRvIHRoZSBjaGlsZC4gIFRoaXMgZnVuY3Rpb24gbWF5IGFjdHVhbGx5IGZhaWwgaWYgdGhlIHN0 ZGNoaWxkIGZkCiAJIGlzIGNsb3NlZC4gIEJ1dCB0aGF0J3Mgb2suICovCi0gICAgICBpbnQgc3Rk Y2hpbGRfc3RhdGUgPSBmY250bDY0IChzdGRjaGlsZCwgRl9HRVRGRCwgMCk7Ci0gICAgICBmY250 bDY0IChzdGRjaGlsZCwgRl9TRVRGRCwgc3RkY2hpbGRfc3RhdGUgfCBGRF9DTE9FWEVDKTsKKyAg ICAgIGludCBzdGRjaGlsZF9zdGF0ZSA9IGZjbnRsIChzdGRjaGlsZCwgRl9HRVRGRCwgMCk7Cisg ICAgICBmY250bCAoc3RkY2hpbGQsIEZfU0VURkQsIHN0ZGNoaWxkX3N0YXRlIHwgRkRfQ0xPRVhF Qyk7CiAKICAgICAgIC8qIFN0YXJ0IGEgc2hlbGwgcHJvY2VzcyB0byBydW4gdGhlIGdpdmVuIGNv bW1hbmQgd2l0aG91dCBmb3JraW5nLiAqLwogICAgICAgcGlkX3QgcGlkID0gY2hfc3Bhd24ud29y a2VyICgiL2Jpbi9zaCIsIGFyZ3YsIGN1cl9lbnZpcm9uICgpLCBfUF9OT1dBSVQsCiAJCQkJICAg X19zdGRbMF0sIF9fc3RkWzFdKTsKIAogICAgICAgLyogUmVpbnN0YXRlIHRoZSBjbG9zZS1vbi1l eGVjIHN0YXRlICovCi0gICAgICBmY250bDY0IChzdGRjaGlsZCwgRl9TRVRGRCwgc3RkY2hpbGRf c3RhdGUpOworICAgICAgZmNudGwgKHN0ZGNoaWxkLCBGX1NFVEZELCBzdGRjaGlsZF9zdGF0ZSk7 CiAKICAgICAgIC8qIElmIHBpZCA+PSAwIHRoZW4gc3Bhd25fZ3V0cyBzdWNjZWVkZWQuICAqLwog ICAgICAgaWYgKHBpZCA+PSAwKQpAQCAtNDcxMSw3ICs0NjgyLDcgQEAgZnN0YXRhdCAoaW50IGRp cmZkLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IHBhdGhuYW1lLCBzdHJ1Y3Qgc3RhdCAqX19yZXN0 cmljdCBzdCwKIAkgICAgICBjd2RzdHVmZjo6Y3dkX2xvY2sucmVsZWFzZSAoKTsKIAkgICAgfQog CSAgZWxzZQotCSAgICByZXR1cm4gZnN0YXQ2NCAoZGlyZmQsIHN0KTsKKwkgICAgcmV0dXJuIGZz dGF0IChkaXJmZCwgc3QpOwogCX0KICAgICAgIHBhdGhfY29udiBwYyAocGF0aCwgKChmbGFncyAm IEFUX1NZTUxJTktfTk9GT0xMT1cpCiAJCQkgICA/IFBDX1NZTV9OT0ZPTExPVyA6IFBDX1NZTV9G T0xMT1cpCkBAIC00ODY5LDcgKzQ4NDAsNyBAQCBta25vZGF0IChpbnQgZGlyZmQsIGNvbnN0IGNo YXIgKnBhdGhuYW1lLCBtb2RlX3QgbW9kZSwgZGV2X3QgZGV2KQogICAgICAgY2hhciAqcGF0aCA9 IHRwLmNfZ2V0ICgpOwogICAgICAgaWYgKGdlbl9mdWxsX3BhdGhfYXQgKHBhdGgsIGRpcmZkLCBw YXRobmFtZSkpCiAJX19sZWF2ZTsKLSAgICAgIHJldHVybiBta25vZDMyIChwYXRoLCBtb2RlLCBk ZXYpOworICAgICAgcmV0dXJuIG1rbm9kIChwYXRoLCBtb2RlLCBkZXYpOwogICAgIH0KICAgX19l eGNlcHQgKEVGQVVMVCkge30KICAgX19lbmR0cnkKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4v dWluZm8uY2MgYi93aW5zdXAvY3lnd2luL3VpbmZvLmNjCmluZGV4IGY1ZDUwOTNkMy4uY2U5OTdj MGY4IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL3VpbmZvLmNjCisrKyBiL3dpbnN1cC9jeWd3 aW4vdWluZm8uY2MKQEAgLTI3OSwzNyArMjc5LDI5IEBAIGdldGxvZ2luICh2b2lkKQogfQogCiBl eHRlcm4gIkMiIHVpZF90Ci1nZXR1aWQzMiAodm9pZCkKK2dldHVpZCAodm9pZCkKIHsKICAgcmV0 dXJuIGN5Z2hlYXAtPnVzZXIucmVhbF91aWQ7CiB9CiAKLUVYUE9SVF9BTElBUyAoZ2V0dWlkMzIs IGdldHVpZCkKLQogZXh0ZXJuICJDIiBnaWRfdAotZ2V0Z2lkMzIgKHZvaWQpCitnZXRnaWQgKHZv aWQpCiB7CiAgIHJldHVybiBjeWdoZWFwLT51c2VyLnJlYWxfZ2lkOwogfQogCi1FWFBPUlRfQUxJ QVMgKGdldGdpZDMyLCBnZXRnaWQpCi0KIGV4dGVybiAiQyIgdWlkX3QKLWdldGV1aWQzMiAodm9p ZCkKK2dldGV1aWQgKHZvaWQpCiB7CiAgIHJldHVybiBteXNlbGYtPnVpZDsKIH0KIAotRVhQT1JU X0FMSUFTIChnZXRldWlkMzIsIGdldGV1aWQpCi0KIGV4dGVybiAiQyIgZ2lkX3QKLWdldGVnaWQz MiAodm9pZCkKK2dldGVnaWQgKHZvaWQpCiB7CiAgIHJldHVybiBteXNlbGYtPmdpZDsKIH0KIAot RVhQT1JUX0FMSUFTIChnZXRlZ2lkMzIsIGdldGVnaWQpCi0KIC8qIE5vdCBxdWl0ZSByaWdodCAt IGN1c2VyaWQgY2FuIGNoYW5nZSwgZ2V0bG9naW4gY2FuJ3QgKi8KIGV4dGVybiAiQyIgY2hhciAq CiBjdXNlcmlkIChjaGFyICpzcmMpCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL3dpbnN1cC5o IGIvd2luc3VwL2N5Z3dpbi93aW5zdXAuaAppbmRleCAxZjI2NWVjMjguLjZkODE3ZjQ5ZiAxMDA2 NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi93aW5zdXAuaAorKysgYi93aW5zdXAvY3lnd2luL3dpbnN1 cC5oCkBAIC00MSwxNyArNDEsMTAgQEAgZGV0YWlscy4gKi8KICNpZmRlZiBfX2NwbHVzcGx1cwog ZXh0ZXJuICJDIiB7CiAjZW5kaWYKLXVpZF90IGdldHVpZDMyICgpOwotdWlkX3QgZ2V0ZXVpZDMy ICgpOwotaW50IHNldGV1aWQzMiAodWlkX3QpOwotZ2lkX3QgZ2V0ZWdpZDMyICh2b2lkKTsKLXN0 cnVjdCBwYXNzd2QgKmdldHB3dWlkMzIgKHVpZF90KTsKLXN0cnVjdCBwYXNzd2QgKmdldHB3bmFt IChjb25zdCBjaGFyICopOwogc3RydWN0IF9fc0ZJTEU2NCAqZm9wZW42NCAoY29uc3QgY2hhciAq LCBjb25zdCBjaGFyICopOwogc3RydWN0IGhvc3RlbnQgKmN5Z3dpbl9nZXRob3N0YnluYW1lIChj b25zdCBjaGFyICpuYW1lKTsKIC8qIERvbid0IGVuZm9yY2UgZGVmaW5pdGlvbiBvZiBpbl9hZGRy X3QuICovCiB1aW50MzJfdCBjeWd3aW5faW5ldF9hZGRyIChjb25zdCBjaGFyICpjcCk7Ci1pbnQg ZmNudGw2NCAoaW50IGZkLCBpbnQgY21kLCAuLi4pOwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj ZW5kaWYKLS0gCjIuMzYuMQoK --------------L0hbInc0L3bMzn4HdR7AVZfO--