From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0C1DCA0C49 for ; Wed, 16 Jun 2021 09:15:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EAE7A410DC; Wed, 16 Jun 2021 09:15:10 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80049.outbound.protection.outlook.com [40.107.8.49]) by mails.dpdk.org (Postfix) with ESMTP id E6B4040140; Wed, 16 Jun 2021 09:15:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aPFeJUIPKUFLI1INpnKkTcpRkS7m5cOiZalKQORT2Zo=; b=Gzi+4MGB1zajZvmjnEkmKq1o8OBfOde89VbuqpFe/s53I6pQvpbFHoMG6dygsPCtli1lBikA+hVCl4lV/JNRWZNlW9LnmgmYrEVUCFBx0tox3Yi1IJEODupRkPQUg+JR1QeHrPuhnGDYkm96qxh7CqLEU6r4gibygH59ApHXPq4= Received: from AM6PR0202CA0070.eurprd02.prod.outlook.com (2603:10a6:20b:3a::47) by DB7PR08MB3259.eurprd08.prod.outlook.com (2603:10a6:5:1f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20; Wed, 16 Jun 2021 07:15:06 +0000 Received: from VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:3a:cafe::86) by AM6PR0202CA0070.outlook.office365.com (2603:10a6:20b:3a::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21 via Frontend Transport; Wed, 16 Jun 2021 07:15:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT063.mail.protection.outlook.com (10.152.18.236) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21 via Frontend Transport; Wed, 16 Jun 2021 07:15:05 +0000 Received: ("Tessian outbound cdfb4109116c:v93"); Wed, 16 Jun 2021 07:15:05 +0000 X-CR-MTA-TID: 64aa7808 Received: from c22e469a703c.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 9F016510-9FED-466C-8D9E-A529B0A8F915.1; Wed, 16 Jun 2021 07:14:55 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c22e469a703c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 16 Jun 2021 07:14:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g1zJhHTUDRT6uQzs2d8ZAM2PDVlyhlgVnuWG3ihNcdh5A4qqlnlI5xuLn1hD0pw330wwZtDzbI4wVJ9VvRWhcZz9vIxdK0dwYsgptaAl5i2inpWKso1XWOUfhYrydH/WbzM1+P7jRr8TC82kONKerypBBAv/IX18Lg1clbGQ+jzKSU3ielNhX8FjuNHyf5hzYjmXprl+EoGVfDBNKBcQDhA809j39Hr1IhSxI78GyaXmO47I/zw2augeR93JfcSfagCLig9sHcFfjnxpBUlS5RjpdkDtalU/cYZLDxNLCwZ3hDv+tek+k6zpPHji9KTm8QuZhWaSkf7zHxTUTISR4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aPFeJUIPKUFLI1INpnKkTcpRkS7m5cOiZalKQORT2Zo=; b=l22rsS7ANaBzR+9HXh5iECeE/xr4k+JxPeZQu1TcHvHpKu/QwYlZp5uzAeYp01NkO0Xqo0WDnxdHtl+YiZbEwL1IS780VNBuglQOhY3CbK/p4+Bi144cOxYao86ywTLCJ9JujJ/not/CDYpQn7qfu80D6UBlD8Vdyg7y78eRWbJXYRpZJLhYLvK48diIoqU6kzvPapII4xqOmizdkpO0E9GEqsB905O+/PpmI5sDYe+as5F9aBG9VYEpdMmNL85GAJ7wRo1XWPq5KO+ANC+PatKOxVRudIGsl6zkdkE820KcuY/o6vGoU7dOzeE5UjhxPhFjZU2WnOUTBQBIjmgLEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aPFeJUIPKUFLI1INpnKkTcpRkS7m5cOiZalKQORT2Zo=; b=Gzi+4MGB1zajZvmjnEkmKq1o8OBfOde89VbuqpFe/s53I6pQvpbFHoMG6dygsPCtli1lBikA+hVCl4lV/JNRWZNlW9LnmgmYrEVUCFBx0tox3Yi1IJEODupRkPQUg+JR1QeHrPuhnGDYkm96qxh7CqLEU6r4gibygH59ApHXPq4= Received: from AM9PR08MB6915.eurprd08.prod.outlook.com (2603:10a6:20b:30f::18) by AM8PR08MB5747.eurprd08.prod.outlook.com (2603:10a6:20b:1c7::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.22; Wed, 16 Jun 2021 07:14:54 +0000 Received: from AM9PR08MB6915.eurprd08.prod.outlook.com ([fe80::1ce:b726:b029:c2ce]) by AM9PR08MB6915.eurprd08.prod.outlook.com ([fe80::1ce:b726:b029:c2ce%9]) with mapi id 15.20.4242.018; Wed, 16 Jun 2021 07:14:52 +0000 From: Feifei Wang To: Honnappa Nagarahalli , "thomas@monjalon.net" , Takeshi Yoshimura CC: "stable@dpdk.org" , "dev@dpdk.org" , "olivier.matz@6wind.com" , "chaozhu@linux.vnet.ibm.com" , "konstantin.ananyev@intel.com" , "jerinj@marvell.com" , nd , nd Thread-Topic: [dpdk-dev] [dpdk-stable] [PATCH] rte_ring: fix racy dequeue/enqueue in ppc64 Thread-Index: AQHXIPcDjgDe6tXDrkGVDxP+73lJeqqYmYGAgH4fxDA= Date: Wed, 16 Jun 2021 07:14:51 +0000 Message-ID: References: <20180712024414.4756-1-t.yoshimura8869@gmail.com> <20180717033410.GA3344@jerin> <7532216.RsKJNViV3k@thomas> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: E0C95772E05B464BA84D795F8EED2355.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.113] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 97b7530b-525d-420a-e880-08d9309677a1 x-ms-traffictypediagnostic: AM8PR08MB5747:|DB7PR08MB3259: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 5n8fpx7LdtLPwz36sHwH1777s+Ti26R57e0JlehdFcm4RimRx861pUrKPMlonRFD5fBg0rfSHYnDpWfg++mcDCjkmmBh1fha9rvheYFCYTMZ0zblPTE2pwAG/K34xDoYUvbCZOS0Ayfp+hJguYbqNVOr2QEv83YaHlvTzztl5vVcFmzvLBPIhFM3rI3l0OAFxwS6tyVoLuNmStS+K7gnJoZIYRXMtXqvRzrfXaCS+SulEPjPWPbxNCjAZMQveeEQxB3tZRim18KcBLldc6rrPBz7Tcuf7Ca/j2UB4asd0Pu3WhNgjXrfmeFbSGCm2jesMWRqZgdaFeBztjxo5dySNYn+WUHR95II6JZpve1YEVNjAEZVpkOWmXMfKO9g9KprDB7MM81bw8BcI5rPN58uttoH1hTjFl6SubqnFrpTHTfaWVFbr/acv9BtaqAJiUxTJrV0x7C6trUKPYPHWgbhTkKfqHsWiDX/kr592lu+a0DJeQvoOv0DBhWexVTq8HPJlyLx5kFKsWZ7JOhxXCDMkH2L228GhTmOJKI8cGyvTzn1MudVBPQhXd8l1CF+wAhTskdrKnxW7KRMWf2XHpV6S10H8DArmFd89RA2i+9RjwOA6Oy43RPPu7rKqI8M6/QcPq3jNRlvzJmB7YHLY8xIFoSI8m2mPj/Wo1ciHHqrKsrzLT7sM5YG+POjOiN/nenfzr+lro5uykFMcU+DFxbmHL1+RHP5zSY/2yxA1+Xr6mLQuOGtm1opmAMfv51i+Z6F X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6915.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(136003)(396003)(366004)(39860400002)(346002)(4326008)(55016002)(66946007)(5660300002)(26005)(2906002)(316002)(33656002)(71200400001)(54906003)(66446008)(186003)(38100700002)(86362001)(52536014)(66556008)(6506007)(224303003)(83380400001)(478600001)(966005)(110136005)(66476007)(76116006)(8936002)(7696005)(9686003)(64756008)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MFhWVWVIVW1tNkFZcU5jaE91NDkrK2lTTHp1ZlBuUDBLTlRtZW1jaHBjZXJv?= =?utf-8?B?SllnR0xrUnZpVElVdzZjZHlJTzZvUXpxV0kzeXNSL2pUWURrdG5KWkl3OHNy?= =?utf-8?B?MVRCcmYzYjczOU8vWXo1cms0MlVwcG9DSlJGb1Jid1ZIK2J1cmEvMm1ldVJO?= =?utf-8?B?NzVLRk40ZXRHMjI4a25ld21SUHV2TEFWRHpQSDBBc1MvWWhSeUtzb3hLdnhV?= =?utf-8?B?WmRXdTBCTDV2K0lhVWw3U0paN08wK3NiRnNwR3RYV1VobUtoM1hYUGNPQmtk?= =?utf-8?B?UGZQaTkwTHhZcXIyUjJpb2ZPU1Jna0FZM3Nqb2NwQWQxa1lMendMR216S1Zi?= =?utf-8?B?V09hWm9vaFdaS2NlNFpmTUZHVGFzUG1ad0NZZVhjWk9ya2VucjB1MXhTSGJo?= =?utf-8?B?d092TUtLallwY2Rsb1AxTlBHYXpBZVRzTGVjWXlCam9KQ0VSak5JcmZFRU9q?= =?utf-8?B?TWFlcTlPaGRVVEJ5cUczb3lXVlJ1a0xwOEJOWGFuRTZUdjl6WTdKclJQS0sr?= =?utf-8?B?dzNOY0xFMUlvYWxDd1ltMjF3dXRDRUZVNFd5aytJRzg2Vm15UDE2SUw5SlJ1?= =?utf-8?B?Ny9uQnlsdVRVSjU0NmZGVkhPOXRTOWk0ekhUNWJvaFplaGZ5R2kvN3p5VGVw?= =?utf-8?B?QS9COVg1NUpWZlJ0NFdmRUNQS0pXY0x1QVVnNkVtY2RpVUF3YTRjMVZmUW51?= =?utf-8?B?eHp5UTlPbjdoVHB4VVNHOTFBeGZxSGdKRjNoWjNHOXJVUFJiWDByeVhDc2tZ?= =?utf-8?B?bUJRcnB0TWdtSStIRDIzZ21uOVZQK0NldUlJcUdyZjRReFNjbFRYQmVaOVlS?= =?utf-8?B?TDB1WkxKamJvWkhGWFFjaWZaTUVmYjlsY3JJU1FncjNkTU1uYTJuTWhBS1V6?= =?utf-8?B?bDdkU1UycnVuWGRtQlNyV2diOUhOK3k0RkYrbTg4eG5nZ1JvNEhzVTRsd3dx?= =?utf-8?B?TnNOUmxPL2tCaG1ZR1ZvRnVjUC8vWFJOTDUzNThJeGQxT1AxQUVDZVI5VjdQ?= =?utf-8?B?VXBHaGh6VGZ2WUNrNElWakhybS9WWXNvSW9jTmlhSGRJRGFncXdqRDRtZGhj?= =?utf-8?B?ODExZlZNZTFIL2dSWWUxTmNQdzZ6ckJxRmFsYWdyYk1DOU04cDh4TkJNenFm?= =?utf-8?B?RGpldWxhT0JwRFhrUHFjOUs1dTBSNmZkU2QzNkxKK3FZN1dHSVg2ZzhURTda?= =?utf-8?B?ajMvUW9PVFUwSnlpdjlNZEZRRGRkV3Ntd0dpc2NacVJZNW1NVk5sYlc4QlpJ?= =?utf-8?B?Y0VjWURDdW9QMVVpeVNnUFRVV3VzVGliUXVLcTYyb1dpOFdBVnhWSmdVTjBB?= =?utf-8?B?UWM5dVBrTjNMbEZUL2JxZnoyOG1WUVIrNmdlM2NkV1RrZGdub1M1SXE2bVFS?= =?utf-8?B?aTZmaVVtSGE2WUNlWnJ5akdpZTVEUVN1d2Y1Qnl5aFFMazVJZEx2VXk4QW0r?= =?utf-8?B?RXBkSXlPTzBxZVJRWkR3anBSMzJGTFJnQzNmUk1xVi92N2lWdzUwUUxHRHY2?= =?utf-8?B?UXQwNnQ2WUp5VlpzQWVEUE1Bb0I1VUVqb3JuTlFmcG5GdVpPUENoUVYvNjd6?= =?utf-8?B?bEgwZVNzSWQ1VGRKT2xFblVQUTZxRVBGeE9FRy9iaXJIZ3RaUjUwVzNEYmp5?= =?utf-8?B?OVIyQ3JIU0IxMW4rMExac1d4WVpINktpSFhna2xOeDVCTFBPeEpVN3FQZkFr?= =?utf-8?B?TmgwM21vOGNRQXlwc3hTeWNoL3ljczRXazZkeGhndUozTWhmT3ZtdTJVRy9E?= =?utf-8?Q?6DvkpXDZ+qjKrzWTtE=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5747 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 154d0175-9822-4837-4d5f-08d930966f90 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FKuhcecZwTS+/6hlbWDzq0l/cjEqmLT6bAfWGURKQ+5zO/0lqypd5MxKRAhH3WFNFnzunEQ3DW02BjTp+c0PBQmIVgxVZlBlkhv+a77J/HUH9DfpjOOixpn+yU1uYn0XIvD9pXp1uvuRoxCwQVAdTkZHEmsRgMIR1YTkCVd6Har4h3dtodtg0pRQK6HfhAxX/YFWYxM+l/u8cIswV5VVY/1+tZB+3t0abP1kOsBIc78tZjGGwUoyqOK5xxlnyApl37tPOCU2dXC1lbcR8V2Gs6xBiG/zH4qLuLPBwDm/atuT7tniO1DDXFVv/+b5ibOBsmIyUUTNGVnGNgttaXOeMHSZgb/dUo/Rt5CB8vw4VHIrsIBh7xYcO8YBX6GLevggMCnzqc44usBiM7pckidBzKtS+LMWzG5LWgNmtzZCliluD0SRpDR1DiaiY/yVnT8bsP4hwOIbgOXN0e+gsSo88ImF2nD46GJQw5yAqTCXEZ9h/UGUHkBrjCJ0ZsFaWAgaRyN2s4jiwR7dk3X25IYZaFu+kJy0QtoquC782/e6nNHmml8rPGUO/+bL7BruS+Y+C5a/+0F7HHqnjyciBWMy60FDmrmEu+2NwrYwpf/iEAaBwhS0TdAZtrPqRnCgcZ8ffczumxvWnoO3T5VU7l55F66Aa6JhtNPO2l/l22MjikLSgr2vOh7n8rBeW9r5zxCP/LN63u5q66LX6CNsI0NGqtQTxtwaT79dj1pw6R9ILRhgNEUd3zkEaGtQYrLc7Axw+IC4dkIgtJVcN4l+0/pn7IVCoBN0Z5tMSlGANEClm+1u5qpAY5u2UQgL5GPZCA22 X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(346002)(376002)(39840400004)(396003)(136003)(36840700001)(46966006)(316002)(86362001)(7696005)(6506007)(5660300002)(52536014)(186003)(110136005)(54906003)(70206006)(70586007)(33656002)(47076005)(26005)(224303003)(336012)(55016002)(4326008)(82310400003)(478600001)(966005)(450100002)(83380400001)(36860700001)(8936002)(356005)(2906002)(9686003)(81166007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2021 07:15:05.6704 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 97b7530b-525d-420a-e880-08d9309677a1 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3259 Subject: [dpdk-stable] =?utf-8?b?5Zue5aSNOiBbZHBkay1kZXZdICBbUEFUQ0hdIHJ0?= =?utf-8?q?e=5Fring=3A_fix_racy_dequeue/enqueue_in_ppc64?= X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" SGksIGV2ZXJ5b25lDQoNClRoaXMgcGF0Y2ggY2FuIGJlIGNsb3NlZCB3aXRoIHRoZSBmb2xsb3dp bmcgcmVhc29ucy4NCg0KPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+IOWPkeS7tuS6ujogZGV2 IDxkZXYtYm91bmNlc0BkcGRrLm9yZz4g5Luj6KGoIEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQo+IOWP kemAgeaXtumXtDogMjAyMeW5tDPmnIgyOOaXpSA5OjAwDQo+IOaUtuS7tuS6ujogdGhvbWFzQG1v bmphbG9uLm5ldDsgVGFrZXNoaSBZb3NoaW11cmENCj4gPHQueW9zaGltdXJhODg2OUBnbWFpbC5j b20+DQo+IOaKhOmAgTogc3RhYmxlQGRwZGsub3JnOyBkZXZAZHBkay5vcmc7IG9saXZpZXIubWF0 ekA2d2luZC5jb207DQo+IGNoYW96aHVAbGludXgudm5ldC5pYm0uY29tOyBrb25zdGFudGluLmFu YW55ZXZAaW50ZWwuY29tOyBKZXJpbiBKYWNvYg0KPiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29y a3MuY29tPjsgbmQgPG5kQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4g5Li76aKYOiBSZTog W2RwZGstZGV2XSBbZHBkay1zdGFibGVdIFtQQVRDSF0gcnRlX3Jpbmc6IGZpeCByYWN5DQo+IGRl cXVldWUvZW5xdWV1ZSBpbiBwcGM2NA0KPiANCj4gPHNuaXA+DQo+IA0KPiA+IFN1YmplY3Q6IFJl OiBbZHBkay1zdGFibGVdIFtkcGRrLWRldl0gW1BBVENIXSBydGVfcmluZzogZml4IHJhY3kNCj4g PiBkZXF1ZXVlL2VucXVldWUgaW4gcHBjNjQNCj4gPg0KPiA+IE5vIHJlcGx5IGFmdGVyIG1vcmUg dGhhbiAyIHllYXJzLg0KPiA+IFVuZm9ydHVuYXRlbHkgaXQgaXMgcHJvYmFibHkgb3V0ZGF0ZWQg bm93Lg0KPiA+IENsYXNzaWZpZWQgYXMgIkNoYW5nZXMgUmVxdWVzdGVkIi4NCj4gTG9va2luZyBh dCB0aGUgY29kZSwgSSB0aGluayB0aGlzIHBhdGNoIGluIGZhY3QgZml4ZXMgYSBidWcuIEFwcHJl Y2lhdGUgcmViYXNpbmcNCj4gdGhpcyBwYXRjaC4NCj4gDQo+IFRoZSBwcm9ibGVtIGlzIGFscmVh ZHkgZml4ZWQgaW4gJ19fcnRlX3JpbmdfbW92ZV9jb25zX2hlYWQnIGJ1dCBuZWVkcyB0bw0KPiBi ZSBmaXhlZCBpbiAnX19ydGVfcmluZ19tb3ZlX3Byb2RfaGVhZCcuDQo+IFRoaXMgcHJvYmxlbSBp cyBmaXhlZCBmb3IgQzExIHZlcnNpb24gZHVlIHRvIGFjcXVpcmUgbG9hZCBvZiBjb25zLnRhaWwg YW5kDQo+IHByb2QudGFpbC4NCg0KRmlyc3QsIGZvciBjb25zdW1lciBpbiBkZXF1ZXVlOg0KdGhl IHJlYXNvbiBmb3IgdGhhdCBhZGRpbmcgYSBybWIgaW4gbW92ZV9jb25zX2hlYWQgb2Yg4oCcZ2Vu ZXJpY+KAnSBpcyBiYXNlZCBvbiB0aGlzIHBhdGNoOg0KaHR0cDovL3BhdGNoZXMuZHBkay5vcmcv cHJvamVjdC9kcGRrL3BhdGNoLzE1NTI0MDk5MzMtNDU2ODQtMi1naXQtc2VuZC1lbWFpbC1nYXZp bi5odUBhcm0uY29tLw0KDQpTbG90ICAgICAgICAgICAgICAgICAgICAgICAgQ29uc3VtZXIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBy b2R1Y2VyDQoxICAgICAgICAgICAgICAgICAgICAgZGVxdWV1ZSBlbGVtZW50cw0KMiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlIHByb2RfdGFpbA0KMyAgICAg ICAgICAgICAgICAgICBsb2FkIG5ldyBwcm9kX3RhaWwNCjQgICAgICAgICAgICAgICAgICAgY2hl Y2sgcm9vbSBpcyBlbm91Z2gobiA8IGVudHJpZXMpDQoNCkRlcXVldWUgZWxlbWVudHMgbWF5YmUg YmVmb3JlIGxvYWQgdXBkYXRlZCBwcm9kX3RhaWwsIHNvIGNvbnN1bWVyIGNhbiBsb2FkIGluY29y cmVjdCBlbGVtZW50cyB2YWx1ZS4NCkZvciBkZXF1ZXVlIG11bHRpcGxlIGNvbnN1bWVycyBjYXNl LCDigJhydGVfYXRvbWljMzJfY21wc2V04oCZIHdpdGggYWNxdWlyZSBhbmQgcmVsZWFzZSBvcmRl ciBjYW4gcHJldmVudA0KZGVxdWV1ZSBiZWZvcmUgbG9hZCBwcm9kX3RhaWwsIG5vIGV4dHJhIHJt YiBpcyBuZWVkZWQuDQoNClNlY29uZCwgZm9yIHNpbmdsZSBwcm9kdWNlciBpbiBlbnF1ZXVlOg0K DQpTbG90ICAgICAgICAgICAgICAgICAgICAgICAgUHJvZHVjZXIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uc3VtZXINCjEgICAg ICAgICAgICAgICAgICAgICBlbnF1ZXVlIGVsZW1lbnRzKG5vdCBjb21taXRlZCkNCjIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZSBjb25zdW1lcl90YWlsDQoz ICAgICAgICAgICAgICAgICAgIGxvYWQgbmV3IGNvbnN1bWVyX3RhaWwNCjQgICAgICAgICAgICAg ICAgICAgY2hlY2sgcm9vbSBpcyBlbm91Z2gobiA8IGVudHJpZXMpDQo1ICAgICAgICAgICAgICAg ICAgIGVucXVldWVkIGVsZW1lbnRzIGlzIGNvbW1pdHRlZA0KDQpUaG91Z2ggZW5xdWV1ZSBlbGVt ZW50cyBtYXliZSByZW9yZGVyIGJlZm9yZSBsb2FkIGNvbnN1bWVyX3RhaWwsIHRoZXNlIGVsZW1l bnRzIHdpbGwgbm90IGJlIGNvbW1pdHRlZCB1bnRpbA0K4oCYY2hlY2vigJkgaGFzIGZpbmlzaGVk LiBTbyBmcm9tIGxvYWQgdG8gd3JpdGUgY29udHJvbCBkZXBlbmRlbmN5IGlzIHJlbGlhYmxlIGFu ZCBybWIgaXMgbm90IG5lZWRlZCBoZXJlLg0KWzFdIGh0dHBzOi8vd3d3LmNsLmNhbS5hYy51ay9+ cGVzMjAvcHBjLXN1cHBsZW1lbnRhbC90ZXN0Ny5wZGYgKHBhZ2U6MTUpDQoNCkFzIGEgcmVzdWx0 LCBpdCBpcyB1bm5lY2Vzc2FyeSB0byBhZGQgYSBybWIgZm9yIGVucXVldWUgc2luZ2xlIHByb2R1 Y2VyIGR1ZSB0byBjb250cm9sIGRlcGVuZGVuY3kuIEFuZCB0aGlzIHBhdGNoIGNhbg0KYmUgY2xv c2VkLg0KDQpCZXN0IFJlZ2FyZHMNCkZlaWZlaQ0KPiANCj4gPg0KPiA+DQo+ID4gMTcvMDcvMjAx OCAwNTozNCwgSmVyaW4gSmFjb2I6DQo+ID4gPiBGcm9tOiBUYWtlc2hpIFlvc2hpbXVyYSA8dC55 b3NoaW11cmE4ODY5QGdtYWlsLmNvbT4NCj4gPiA+DQo+ID4gPiBDYzogb2xpdmllci5tYXR6QDZ3 aW5kLmNvbQ0KPiA+ID4gQ2M6IGNoYW96aHVAbGludXgudm5ldC5pYm0uY29tDQo+ID4gPiBDYzog a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbQ0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiBB ZGRpbmcgcnRlX3NtcF9ybWIoKSBjYXVzZSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIG9uIG5vbiB4 ODYNCj4gPiBwbGF0Zm9ybXMuDQo+ID4gPiA+ID4gSGF2aW5nIHNhaWQgdGhhdCwgbG9hZC1sb2Fk IGJhcnJpZXIgY2FuIGJlIGV4cHJlc3NlZCB2ZXJ5ICB3ZWxsDQo+ID4gPiA+ID4gd2l0aCBDMTEg bWVtb3J5IG1vZGVsLiBJIGd1ZXNzIHBwYzY0IHN1cHBvcnRzIEMxMSBtZW1vcnkgbW9kZWwuDQo+ ID4gPiA+ID4gSWYgc28sIENvdWxkIHlvdSB0cnkgQ09ORklHX1JURV9SSU5HX1VTRV9DMTFfTUVN X01PREVMPXkNCj4gZm9yDQo+ID4gPiA+ID4gcHBjNjQgYW5kIGNoZWNrIG9yaWdpbmFsIGlzc3Vl Pw0KPiA+ID4gPg0KPiA+ID4gPiBZZXMsIHRoZSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIGhhcHBl bnMgb24gbm9uLXg4NiB3aXRoIHNpbmdsZQ0KPiA+ID4gPiBwcm9kdWNlci9jb25zdW1lci4NCj4g PiA+ID4gVGhlIGF2ZXJhZ2UgbGF0ZW5jeSBvZiBhbiBlbnF1ZXVlIHdhcyBpbmNyZWFzZWQgZnJv bSAyMSBuc2VjIHRvIDI0DQo+ID4gPiA+IG5zZWMgaW4gbXkgc2ltcGxlIGV4cGVyaW1lbnQuIEJ1 dCwgSSB0aGluayBpdCBpcyB3b3J0aCBpdC4NCj4gPiA+DQo+ID4gPiBUaGF0IHZhcmllcyB0byBt YWNoaW5lIHRvIG1hY2hpbmUuIFdoYXQgaXMgdGhlIGJ1cnN0IHNpemUgZXRjLg0KPiA+ID4NCj4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gSSBhbHNvIHRlc3RlZCBDMTEgcnRlX3JpbmcsIGhvd2V2 ZXIsIGl0IGNhdXNlZCB0aGUgc2FtZSByYWNlDQo+ID4gPiA+IGNvbmRpdGlvbiBpbg0KPiA+IHBw YzY0Lg0KPiA+ID4gPiBJIHRyaWVkIHRvIGZpeCB0aGUgQzExIHByb2JsZW0gYXMgd2VsbCwgYnV0 IEkgYWxzbyBmb3VuZCB0aGUgQzExDQo+ID4gPiA+IHJ0ZV9yaW5nIGhhZCBvdGhlciBwb3RlbnRp YWwgaW5jb3JyZWN0IGNob2ljZXMgb2YgbWVtb3J5IG9yZGVycywNCj4gPiA+ID4gd2hpY2ggY2F1 c2VkIGFub3RoZXIgcmFjZSBjb25kaXRpb24gaW4gcHBjNjQuDQo+ID4gPg0KPiA+ID4gRG9lcyBp dCBoYXBwZW5zIG9uIGFsbCBwcGM2NCBtYWNoaW5lcz8gT3Igb24gYSBzcGVjaWZpYyBtYWNoaW5l Pw0KPiA+ID4gSXMgZm9sbG93aW5nIHRlc3RzIGFyZSBwYXNzaW5nIG9uIHlvdXIgc3lzdGVtIHdp dGhvdXQgdGhlIHBhdGNoPw0KPiA+ID4gdGVzdC90ZXN0L3Rlc3RfcmluZ19wZXJmLmMNCj4gPiA+ IHRlc3QvdGVzdC90ZXN0X3JpbmcuYw0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gRm9yIGV4YW1w bGUsDQo+ID4gPiA+IF9fQVRPTUlDX0FDUVVJUkUgaXMgcGFzc2VkIHRvIF9fYXRvbWljX2NvbXBh cmVfZXhjaGFuZ2VfbigpLA0KPiBidXQgSQ0KPiA+ID4gPiBhbSBub3Qgc3VyZSB3aHkgdGhlIGxv YWQtYWNxdWlyZSBpcyB1c2VkIGZvciB0aGUgY29tcGFyZSBleGNoYW5nZS4NCj4gPiA+DQo+ID4g PiBJdCBjb3JyZWN0IGFzIHBlciBDMTEgYWNxdWlyZSBhbmQgcmVsZWFzZSBzZW1hbnRpY3MuDQo+ ID4gPg0KPiA+ID4gPiBBbHNvIGluIHVwZGF0ZV90YWlsLCB0aGUgcGF1c2UgY2FuIGJlIGNhbGxl ZCBiZWZvcmUgdGhlIGRhdGEgY29weQ0KPiA+ID4gPiBiZWNhdXNlIG9mIGh0LT50YWlsIGxvYWQg d2l0aG91dCBhdG9taWNfbG9hZF9uLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgbWVtb3J5IG9yZGVy IGlzIHNpbXBseSBkaWZmaWN1bHQsIHNvIGl0IG1pZ2h0IHRha2UgYSBiaXQNCj4gPiA+ID4gbG9u Z2VyIHRpbWUgdG8gY2hlY2sgaWYgdGhlIGNvZGUgaXMgY29ycmVjdC4gSSB0aGluayBJIGNhbiBm aXggdGhlDQo+ID4gPiA+IEMxMSBydGVfcmluZyBhcyBhbm90aGVyIHBhdGNoLg0KPiA+ID4gPg0K PiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiBTUERLIGJsb2JmcyBlbmNvdW50ZXJlZCBhIGNyYXNoIGFy b3VuZCBydGVfcmluZyBkZXF1ZXVlcyBpbiBwcGM2NC4NCj4gPiA+ID4gPj4gSXQgdXNlcyBhIHNp bmdsZSBjb25zdW1lciBhbmQgbXVsdGlwbGUgcHJvZHVjZXJzIGZvciBhIHJ0ZV9yaW5nLg0KPiA+ ID4gPiA+PiBUaGUgcHJvYmxlbSB3YXMgYSBsb2FkLWxvYWQgcmVvcmRlciBpbg0KPiBydGVfcmlu Z19zY19kZXF1ZXVlX2J1bGsoKS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFkZGluZyBydGVfc21w X3JtYigpIGNhdXNlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gb24gbm9uIHg4Ng0KPiA+IHBsYXRm b3Jtcy4NCj4gPiA+ID4gPiBIYXZpbmcgc2FpZCB0aGF0LCBsb2FkLWxvYWQgYmFycmllciBjYW4g YmUgZXhwcmVzc2VkIHZlcnkgIHdlbGwNCj4gPiA+ID4gPiB3aXRoIEMxMSBtZW1vcnkgbW9kZWwu IEkgZ3Vlc3MgcHBjNjQgc3VwcG9ydHMgQzExIG1lbW9yeSBtb2RlbC4NCj4gPiA+ID4gPiBJZiBz bywgQ291bGQgeW91IHRyeSBDT05GSUdfUlRFX1JJTkdfVVNFX0MxMV9NRU1fTU9ERUw9eQ0KPiBm b3INCj4gPiA+ID4gPiBwcGM2NCBhbmQgY2hlY2sgb3JpZ2luYWwgaXNzdWU/DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gVGhlIHJlb3JkZXJlZCBsb2FkcyBoYXBwZW5lZCBvbiBy LT5wcm9kLnRhaWwgaW4NCj4gPiA+DQo+ID4gPiBUaGVyZSBpcyBydGVfc21wX3JtYigpIGp1c3Qg YmVmb3JlIHJlYWRpbmcgci0+cHJvZC50YWlsIGluDQo+ID4gPiAgICAgICAgIF5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiA+ID4gX3J0ZV9yaW5nX21v dmVfY29uc19oZWFkKCkuIFdvdWxkIHRoYXQgbm90IHN1ZmZpY2UgdGhlIHJlcXVpcmVtZW50Pw0K PiA+ID4NCj4gPiA+IENhbiB5b3UgY2hlY2sgYWRkaW5nIGNvbXBpbGVyIGJhcnJpZXIgYW5kIHNl ZSBpcyBjb21waWxlciBpcw0KPiA+ID4gcmVvcmRlcmluZyB0aGUgc3R1ZmY/DQo+ID4gPg0KPiA+ ID4gRFBESydzIHJpbmcgaW1wbGVtZW50YXRpb24gaXMgYmFzZWQgZnJlZWJzZCdzIHJpbmcgaW1w bGVtZW50YXRpb24sIEkNCj4gPiA+IGRvbid0IHNlZSBuZWVkIGZvciBzdWNoIGJhcnJpZXINCj4g PiA+DQo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vZnJlZWJzZC9mcmVlYnNkL2Jsb2IvbWFzdGVy L3N5cy9zeXMvYnVmX3JpbmcuaA0KPiA+ID4NCj4gPiA+IElmIGl0IGlzIHNvbWV0aGluZyBzcGVj aWZpYyB0byBwcGM2NCBvciBhIHNwZWNpZmljIHBwYzY0IG1hY2hpbmUsIHdlDQo+ID4gPiBjb3Vs ZCBhZGQgYSBjb21waWxlIG9wdGlvbiBhcyBpdCBpcyBhcmNoIHNwZWNpZmljIHRvIGF2b2lkDQo+ ID4gPiBwZXJmb3JtYW5jZSBpbXBhY3Qgb24gb3RoZXIgYXJjaGl0ZWN0dXJlcy4NCj4gPiA+DQo+ ID4gPiA+ID4+IF9fcnRlX3JpbmdfbW92ZV9jb25zX2hlYWQoKSAocnRlX3JpbmdfZ2VuZXJpYy5o KSBhbmQgcmluZ1tpZHhdDQo+ID4gPiA+ID4+IGluDQo+ID4gPiA+ID4+IERFUVVFVUVfUFRSUygp IChydGVfcmluZy5oKS4gVGhleSBoYXZlIGEgbG9hZC1sb2FkIGNvbnRyb2wNCj4gPiA+ID4gPj4g ZGVwZW5kZW5jeSwgYnV0IHRoZSBjb2RlIGRvZXMgbm90IHNhdGlzZnkgaXQuIE5vdGUgdGhhdCB0 aGV5DQo+ID4gPiA+ID4+IGFyZSBub3QgcmVvcmRlcmVkIGlmIF9fcnRlX3JpbmdfbW92ZV9jb25z X2hlYWQoKSB3aXRoIGlzX3NjICE9DQo+ID4gPiA+ID4+IDEgYmVjYXVzZSBjbXBzZXQgaW52b2tl cyBhIHJlYWQgYmFycmllci4NCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gVGhlIHBhaXJlZCBzdG9y ZXMgb24gdGhlc2UgbG9hZHMgYXJlIGluIEVOUVVFVUVfUFRSUygpIGFuZA0KPiA+ID4gPiA+PiB1 cGRhdGVfdGFpbCgpLiBTaW1wbGlmaWVkIGNvZGUgYXJvdW5kIHRoZSByZW9yZGVyIGlzIHRoZSBm b2xsb3dpbmcuDQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IENvbnN1bWVyICAgICAgICAgICAgIFBy b2R1Y2VyDQo+ID4gPiA+ID4+IGxvYWQgaWR4W3JpbmddDQo+ID4gPiA+ID4+ICAgICAgICAgICAg ICAgICAgICAgIHN0b3JlIGlkeFtyaW5nXQ0KPiA+ID4gPiA+PiAgICAgICAgICAgICAgICAgICAg ICBzdG9yZSByLT5wcm9kLnRhaWwgbG9hZCByLT5wcm9kLnRhaWwNCj4gPiA+ID4gPj4NCj4gPiA+ ID4gPj4gSW4gdGhpcyBjYXNlLCB0aGUgY29uc3VtZXIgbG9hZHMgb2xkIGlkeFtyaW5nXSBhbmQg Y29uZmlybXMgdGhlDQo+ID4gPiA+ID4+IGxvYWQgaXMgdmFsaWQgd2l0aCB0aGUgbmV3IHItPnBy b2QudGFpbC4NCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gSSBhZGRlZCBhIHJlYWQgYmFycmllciBp biB0aGUgY2FzZSB3aGVyZSBfX0lTX1NDIGlzIHBhc3NlZCB0bw0KPiA+ID4gPiA+PiBfX3J0ZV9y aW5nX21vdmVfY29uc19oZWFkKCkuIEkgYWxzbyBmaXhlZA0KPiA+ID4gPiA+PiBfX3J0ZV9yaW5n X21vdmVfcHJvZF9oZWFkKCkgdG8gYXZvaWQgc2ltaWxhciBwcm9ibGVtcyB3aXRoIGENCj4gPiA+ ID4gPj4gc2luZ2xlDQo+ID4gcHJvZHVjZXIuDQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IENjOiBz dGFibGVAZHBkay5vcmcNCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gU2lnbmVkLW9mZi1ieTogVGFr ZXNoaSBZb3NoaW11cmEgPHR5b3NAanAuaWJtLmNvbT4NCj4gPiA+ID4gPj4gLS0tDQo+ID4gPiA+ ID4+ICBsaWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZ2VuZXJpYy5oIHwgMTAgKysrKysrLS0tLQ0K PiA+ID4gPiA+PiAgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkNCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfcmluZy9y dGVfcmluZ19nZW5lcmljLmgNCj4gPiA+ID4gPj4gYi9saWIvbGlicnRlX3JpbmcvcnRlX3Jpbmdf Z2VuZXJpYy5oDQo+ID4gPiA+ID4+IGluZGV4IGVhN2RiZTViOS4uNDc3MzI2MTgwIDEwMDY0NA0K PiA+ID4gPiA+PiAtLS0gYS9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZ2VuZXJpYy5oDQo+ID4g PiA+ID4+ICsrKyBiL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19nZW5lcmljLmgNCj4gPiA+ID4g Pj4gQEAgLTkwLDkgKzkwLDEwIEBAIF9fcnRlX3JpbmdfbW92ZV9wcm9kX2hlYWQoc3RydWN0IHJ0 ZV9yaW5nDQo+ID4gPiA+ID4+ICpyLA0KPiA+IHVuc2lnbmVkIGludCBpc19zcCwNCj4gPiA+ID4g Pj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gPiA+ID4+DQo+ID4gPiA+ ID4+ICAgICAgICAgICAgICAgICAqbmV3X2hlYWQgPSAqb2xkX2hlYWQgKyBuOw0KPiA+ID4gPiA+ PiAtICAgICAgICAgICAgICAgaWYgKGlzX3NwKQ0KPiA+ID4gPiA+PiArICAgICAgICAgICAgICAg aWYgKGlzX3NwKSB7DQo+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9zbXBf cm1iKCk7DQo+ID4gPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIHItPnByb2QuaGVhZCA9 ICpuZXdfaGVhZCwgc3VjY2VzcyA9IDE7DQo+ID4gPiA+ID4+IC0gICAgICAgICAgICAgICBlbHNl DQo+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICB9IGVsc2UNCj4gPiA+ID4gPj4gICAgICAgICAg ICAgICAgICAgICAgICAgc3VjY2VzcyA9IHJ0ZV9hdG9taWMzMl9jbXBzZXQoJnItPnByb2QuaGVh ZCwNCj4gPiA+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpv bGRfaGVhZCwgKm5ld19oZWFkKTsNCj4gPiA+ID4gPj4gICAgICAgICB9IHdoaWxlICh1bmxpa2Vs eShzdWNjZXNzID09IDApKTsgQEAgLTE1OCw5ICsxNTksMTAgQEANCj4gPiA+ID4gPj4gX19ydGVf cmluZ19tb3ZlX2NvbnNfaGVhZChzdHJ1Y3QgcnRlX3JpbmcgKnIsIHVuc2lnbmVkIGludCBpc19z YywNCj4gPiA+ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gPiA+ ID4+DQo+ID4gPiA+ID4+ICAgICAgICAgICAgICAgICAqbmV3X2hlYWQgPSAqb2xkX2hlYWQgKyBu Ow0KPiA+ID4gPiA+PiAtICAgICAgICAgICAgICAgaWYgKGlzX3NjKQ0KPiA+ID4gPiA+PiArICAg ICAgICAgICAgICAgaWYgKGlzX3NjKSB7DQo+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICAgICAg ICAgIHJ0ZV9zbXBfcm1iKCk7DQo+ID4gPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIHIt PmNvbnMuaGVhZCA9ICpuZXdfaGVhZCwgc3VjY2VzcyA9IDE7DQo+ID4gPiA+ID4+IC0gICAgICAg ICAgICAgICBlbHNlDQo+ID4gPiA+ID4+ICsgICAgICAgICAgICAgICB9IGVsc2UNCj4gPiA+ID4g Pj4gICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IHJ0ZV9hdG9taWMzMl9jbXBzZXQo JnItPmNvbnMuaGVhZCwNCj4gKm9sZF9oZWFkLA0KPiA+ID4gPiA+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKm5ld19oZWFkKTsNCj4gPiA+ID4gPj4gICAgICAgICB9 IHdoaWxlICh1bmxpa2VseShzdWNjZXNzID09IDApKTsNCj4gPiA+ID4gPj4gLS0NCj4gPiA+ID4g Pj4gMi4xNy4xDQo+ID4NCj4gPg0KDQo=