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 B436FA0547; Tue, 20 Apr 2021 10:42:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 47EAB41629; Tue, 20 Apr 2021 10:42:33 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2070.outbound.protection.outlook.com [40.107.20.70]) by mails.dpdk.org (Postfix) with ESMTP id 5BB32415D0; Tue, 20 Apr 2021 10:42:32 +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=FDfkAlka7FXUzcAosj8x5qxiKalkMr2J4RQ8sdiVo14=; b=eMk3yKSLL7yKlhChigRk2QgtYMap+mVuCRC+f5Tw2jkgvUeV5EvYOX7qoi8OhQOz+py1HzYlabWKoHZyQxZ77c8TuCp3nuHZn0IivuH0vpvB8JfPHuDfBB8JJMSeGBBbG9csjsiEYkWzm87uZLWYqJN3j08v5U6qjHVFSyZqWEw= Received: from DB9PR06CA0029.eurprd06.prod.outlook.com (2603:10a6:10:1db::34) by DBBPR08MB4490.eurprd08.prod.outlook.com (2603:10a6:10:c5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.18; Tue, 20 Apr 2021 08:42:30 +0000 Received: from DB5EUR03FT037.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:1db:cafe::63) by DB9PR06CA0029.outlook.office365.com (2603:10a6:10:1db::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.18 via Frontend Transport; Tue, 20 Apr 2021 08:42:30 +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 DB5EUR03FT037.mail.protection.outlook.com (10.152.20.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Tue, 20 Apr 2021 08:42:30 +0000 Received: ("Tessian outbound 9bcb3c8d6cb1:v90"); Tue, 20 Apr 2021 08:42:30 +0000 X-CR-MTA-TID: 64aa7808 Received: from 48e7e8bfb775.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 46A98DD5-C8EB-4114-93C5-526583E60ABC.1; Tue, 20 Apr 2021 08:42:20 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 48e7e8bfb775.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 20 Apr 2021 08:42:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VBZ3pQ77Klnpu0Mu0fDIYoXANnc6kGsorUHCNhBAOOgvFhPenk6oXCuch4i5EzjkbkcIuk2EhIPfmpaYDkeLP72qVBQmK5SBN4nHTNnpAjjDoya2WwKmNew4MYZWGYn6PE3nJSB3KFFy9kczEPMiHG13Lbqg7iifFU3O6gh9mxhv4dWOP1TbUU2slqUU3WErCNg8O/cSXo0qviR9sHNfWJ0YRdl0NkxdcL3DcOSQESh8fT82d4mvLZRrWJrNp37biY8WAr0we8e5FuGekXlOS4qH1So0NrztFsHdObaDFQvcLnyGkmNAXnKqFM0P/0YSd/fvPlJi353ub9YdSQWepw== 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=FDfkAlka7FXUzcAosj8x5qxiKalkMr2J4RQ8sdiVo14=; b=HUGk3pMdkVpL60XZYjPsY4RXLBRHEW7VRLzq//znsTaTA+8qULOis3reEzX3ARbCSF05D8tOgwHQZ5xICSRZ8CEB5SAYu4Be/Kx+ZOyx6DOmDeI2H5cSl5XlZx5LQ9BnHVFSZfneuYCoVY4xPTDOm6cgIxsZXWSmBoaAHEfVL991G5PIofNV9ruupfEYIESlIagICzFe0h1q78ZonEoHFICNTZ+7RPp7tDyqOJJUOLGZaZ7tQ1UOXzeC43xjSN+DSkDxmcZ8V5UOcczph+LfK6pp29JZWdsWNbpsb2RKu4QYUFgh8cWK06WHdHH56HpljW+HktqW/y7mhP89G9PkrQ== 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=FDfkAlka7FXUzcAosj8x5qxiKalkMr2J4RQ8sdiVo14=; b=eMk3yKSLL7yKlhChigRk2QgtYMap+mVuCRC+f5Tw2jkgvUeV5EvYOX7qoi8OhQOz+py1HzYlabWKoHZyQxZ77c8TuCp3nuHZn0IivuH0vpvB8JfPHuDfBB8JJMSeGBBbG9csjsiEYkWzm87uZLWYqJN3j08v5U6qjHVFSyZqWEw= Received: from DBBPR08MB4411.eurprd08.prod.outlook.com (2603:10a6:10:cb::17) by DB6PR0801MB2104.eurprd08.prod.outlook.com (2603:10a6:4:76::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Tue, 20 Apr 2021 08:42:16 +0000 Received: from DBBPR08MB4411.eurprd08.prod.outlook.com ([fe80::a127:d91b:c644:74dc]) by DBBPR08MB4411.eurprd08.prod.outlook.com ([fe80::a127:d91b:c644:74dc%7]) with mapi id 15.20.4042.016; Tue, 20 Apr 2021 08:42:16 +0000 From: Feifei Wang To: Slava Ovsiienko , Matan Azrad , Shahaf Shuler CC: "dev@dpdk.org" , nd , "stable@dpdk.org" , Ruifeng Wang , nd Thread-Topic: [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache Thread-Index: AQHXG8b7HnA5AJfI/UGBdB2hbGP3xaqws80AgAEoGSCACoZUgIAAtmJQgAAa2oCAAAmfAIAAAbAg Date: Tue, 20 Apr 2021 08:42:15 +0000 Message-ID: References: <20210318071840.359957-1-feifei.wang2@arm.com> <20210318071840.359957-4-feifei.wang2@arm.com> 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: 8BEF4EDBF8F75F46B56033321830BAA3.0 x-checkrecipientchecked: true Authentication-Results-Original: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.112] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 5a0c20e2-64fc-4d7e-84ea-08d903d83c4e x-ms-traffictypediagnostic: DB6PR0801MB2104:|DBBPR08MB4490: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: sYoAKVNxQrUGTNeXKqgC7Iowtz2QZVIotNIqm0QTl88No2njsdRzo7n668gjRyV1kRLyYf051zL9LcMWQT9fQeEYDt9oFIntoP7HzWqEbv/hUvjDoodkKH5p3KLedYLMdoZFAsTDgRQbPU37GDIMhCdKAz9QgSDhcaUmkY2FREb/5Y9/VUdtFc33rYtHGlMN6ZW/9d0i9oyittMrE1rAHp9wClBmu/t9mRrHKpGSQcf0x84cuNl+z9sAphbw/abP2O+GEZQIS9/3xxOjo7gEUYit8A++3GbZwEqx8d2Y6OTE/UJ2HUg9rU6g6LVyjKjFG24d/WLOohQdCEMpppZs9jVb/JnYfMSg0NXV6tjSspxAM1M9ZYQmCZBNxSgStVI461k9MArc9LLAB2iGGjGxAR+kGQY4weNwLtOWYxxDU7mYgkqLcHkI8HZhKdpyeDHeBfqF2UmU4i6jmIOt+6qdRo2DOvvV/t1Ysm/CfJLO6H4QY6wCmEsrJjwoLsAtSRA7I68fR72J44GvR7tR6frPPpIlJ1UgA/HJDsdKGww9rsvFG8etjW0nFn/5G+3+2Yy/dUlzs4BtBAeRVa/lceBFpVAWBwnDf/CZg3PYrE7Z01Y= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBBPR08MB4411.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(376002)(136003)(366004)(39860400002)(316002)(55016002)(83380400001)(110136005)(478600001)(4326008)(71200400001)(2906002)(86362001)(38100700002)(26005)(8936002)(76116006)(30864003)(186003)(66556008)(52536014)(6506007)(224303003)(122000001)(5660300002)(54906003)(33656002)(66446008)(53546011)(64756008)(66946007)(9686003)(66476007)(7696005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?ellZYWljcUFpUmhTZnVINEU4UkNQUVBzMzRoWlVIQ25mODVNK2JCQy9FaGxW?= =?utf-8?B?bDN2KzF5LzMrNm1OTno3aWJWUFpYQWE0VWR3b2xXZTZaMkl5ZWk4SWJvUnc3?= =?utf-8?B?VDhvRjI5TkwwVDVmb3RsNHBXbGg0ejhoTmRQOE43d3Y1aDBQSjRkQ0o3UmNR?= =?utf-8?B?VHlnNHN0NlhoTHNMMG1TR0o1S045VHpJZGtianNtUVFTVEgvZzUvYUlja0Y4?= =?utf-8?B?OXBGb0MxSUhSS3QrSHdncytNUkRZdGVtVCtCNHp3OHBSTCsyMERzZDlHelZU?= =?utf-8?B?M3J5Z2loUWg5TzFlVFBGS1BrQjU5L0FtMnd5T2hZR0FaYjhKbnViNHFnVjBo?= =?utf-8?B?U3lnakllSUNpL3d5Y1JqTDYxamVCUnlhTWpWSnFKdVdzVUY0emEwZXlNUk54?= =?utf-8?B?aTYxLzFnL3hHbkpQYkhESW1uZWZERVgyVFZWLzR3c05LS000TTdTOFhOWUR3?= =?utf-8?B?WjFVNVhYVmlYY2ZGT28ySVpseFlZc1dpRGZyblZxSFR1OUM2R3Z6ZHFNcWlu?= =?utf-8?B?b29hYzg5WVg0RmJVc0t2V2o3dDlySzF4L3U2OUhKQm8xdHEySjh4OStqemxP?= =?utf-8?B?ZHo0Q2FsQm5sWEswYVBQS1p4MnhadHJNZ3E1YUlYV2UvTVdZZkwvY1pCYnRp?= =?utf-8?B?NU1LOWxUcGpkaC9wbUwwZ3NVUUdHdEUzbGJhdjZLTDdwSHBlZEJkclBjWG1T?= =?utf-8?B?Yi9NOERncGw3YjU4VkFTZ3FkaStLbTU3bVY3U3NOL290UVhwU2dwcGtzYkU2?= =?utf-8?B?WDluQWVoZVJib2xNaHRnditJZ29TMWxzYlEvVUs3MlZzTlVINklST2xDMkVp?= =?utf-8?B?bkZvRjFTUElUSkYrcTY1R0U0NDZzRVJIVXdITzdXOVlkVE5ING42SmViT2tF?= =?utf-8?B?QjVBZUxISnBycWlSRFMyZU5sY2dNSUV6M2RLaVRIYVJBN0JOeUNXQkdGZzl2?= =?utf-8?B?ZGx4ZC81UHd4L3VtY2J6UXpvSklMYU0ySTNoM3RYbHhUdjdDb1Z2dUdkVkl5?= =?utf-8?B?SlgzS0RkVFZYN3hwOC92a1FFeFpaK3llT3NFK0wvRTlVL3Zlck9EYS9lK2Vn?= =?utf-8?B?UFVsVXNqR1N4V0VyNmN1WFh6bVhKQUxEbmt1UzUxd0dzcGI0WmZKajY5YURl?= =?utf-8?B?UFdJQkU1ZGNoQmIrd0IvcW5sWk1xNWpveHoxZ0x0c3U5RFNCVGZFS1FUZllI?= =?utf-8?B?ZzBmWjhGQkN4T1dMZ3lvV0xqeERLMU9zUzQzMENwZUF0T2NBSjJtOVBoa2xo?= =?utf-8?B?SUExNXhyZTVRL1Q5RTVEbHZxVG9mWVJVOGVVVHhodVVZZmNsc0krdnFrZkp5?= =?utf-8?B?S1llTGVwc0VOMDc5QmFRSGNpUnVScHlKSUpDL3NRSDB5OTZQUFJvbm1EUi9O?= =?utf-8?B?ZWYrQW1hUkROZGM4eTVINU43MW5KMVM2WjlJMmx1emlzR3VaanlLSWlFTVBX?= =?utf-8?B?THhNV1lqQXBhUzM3ZlkyUHp1WCtSRzB4ck16VnhqUHY1ZWlkcytFM1RNOG1w?= =?utf-8?B?dEthUSs2MzFKS0hiT2h4MEV6UXJQYkxrUGsrS0xLc0ZCemU5TVBvWG5nS3pY?= =?utf-8?B?Q2FEemg2RWRFQ3ZQS0JmSkRDV1FucGxUeC8zRlNEQktCUnBIbW1BNE5jYklO?= =?utf-8?B?TUtWdW10cmFTS3lhc1o3RFJRNUhvOGtxakpRcExrZERlYjExNnFhemFzQks1?= =?utf-8?B?MlpqOGNBbXhJU2ZQNG9hZFQxZ1R5WmdmWWU4RTBhSDU1czVJK3psWGNDQk0w?= =?utf-8?Q?PpGXzPhu29c/+4oxKlAeCm3o6pJuKJGgRawjgbv?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB2104 Original-Authentication-Results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT037.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 4ee7b86f-9c69-48f8-0be1-08d903d83379 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7cTajuJ2gYn/HaNPUYSX1gxQyc6suGgV0oSU+v1IPJXS6ygT+fSxGaaI28G91Wl5gSgeDVzYMc0rOmx8kgnSbZYQ/ZWXSDnAMyQ1o2T1fTYAZtGBnV1tm++q76gC7MpRdwD6hqSbSnaukdXA0E2XtVsfkckUgrHVNN1bEpBPzKVMSJoOJ/7caO9HQf63SqRT7L6CtXgCoq6uUXshb5JDs/36cJW/T2ipyi0WFJW0tbXYcltTPhe+lgh/HLN32BE+sWYK+qXs8s4+r6mtzKn8j2+E1yNLUzBizJ9JqqjQAPPSsIeOcSDrxTc/D8EaPKtTazXbiJpd/q+/LtILJ24+1HELDhd3of4bS9PxLL0o3z9wW2hUj2Ho09V4tdLMeTCCkvFuggnHtws37mUwLHMeRk4hocQ7kILmXfaGj2fTcsf6Jihe6lFTNvIDPkoP1NEEH8w8QRvwaLEzO1bCwarJvNEeo4b2ZxAEj4vRCB+kvmbDLz2oXTvGWOPrHV/vF2KwK+SSewkSdE4lKY5jcb5bndX2MmR8CnbkeDi8sR4qR5fCBgcA1lsC9BDOJ/mC4wBJ+vFGI1W2PPloJMiaAWTeIkE3E8g1zAU0nk40+SxQhoCwTcgd5rO1CfWw6Z8seyrmoGvo7+pLbgmakAe1zAHwRjmuSYORqd0AFHMzyaamNpA= 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)(39860400002)(376002)(346002)(396003)(136003)(36840700001)(46966006)(52536014)(26005)(36860700001)(478600001)(70586007)(33656002)(70206006)(30864003)(224303003)(186003)(8936002)(54906003)(5660300002)(110136005)(4326008)(9686003)(316002)(82310400003)(2906002)(47076005)(336012)(81166007)(7696005)(55016002)(83380400001)(53546011)(356005)(450100002)(6506007)(86362001)(82740400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2021 08:42:30.9123 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5a0c20e2-64fc-4d7e-84ea-08d903d83c4e 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: DB5EUR03FT037.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4490 Subject: [dpdk-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjEgMy80XSBuZXQvbWx4?= =?utf-8?q?5=3A_fix_rebuild_bug_for_Memory_Region_cache?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksIFNsYXZhDQoNCkkgdGhpbmsgdGhlIHNlY29uZCB3bWIgY2FuIGJlIHJlbW92ZWQuIA0KQXMg SSBrbm93LCB3bWIgaXMganVzdCBhIGJhcnJpZXIgdG8ga2VlcCB0aGUgb3JkZXIgYmV0d2VlbiB3 cml0ZSBhbmQgd3JpdGUuIA0KYW5kIGl0IGNhbm5vdCB0ZWxsIHRoZSBDUFUgd2hlbiBpdCBzaG91 bGQgY29tbWl0IHRoZSBjaGFuZ2VzLg0KDQpJdCBpcyB1c3VhbGx5IHVzZWQgYmVmb3JlIGd1YXJk IHZhcmlhYmxlIHRvIGtlZXAgdGhlIG9yZGVyIHRoYXQgdXBkYXRpbmcgZ3VhcmQgdmFyaWFibGUg YWZ0ZXINCnNvbWUgY2hhbmdlcywgd2hpY2ggeW91IHdhbnQgdG8gcmVsZWFzZSwgaGF2ZSBiZWVu IGRvbmUuDQoNCkZvciBleGFtcGxlLCBmb3IgdGhlIHdtYiAgYWZ0ZXIgZ2xvYmFsIGNhY2hlIHVw ZGF0ZS9iZWZvcmUgYWx0ZXJpbmcgZGV2X2dlbiwgaXQgY2FuIGVuc3VyZQ0KdGhlIG9yZGVyIHRo YXQgdXBkYXRpbmcgZ2xvYmFsIGNhY2hlIGJlZm9yZSBhbHRlcmluZyBkZXZfZ2VuOg0KMSlJZiBv dGhlciBhZ2VudCBsb2FkIHRoZSBjaGFuZ2VkICJkZXZfZ2VuIiwgaXQgY2FuIGtub3cgdGhlIGds b2JhbCBjYWNoZSBoYXMgYmVlbiB1cGRhdGVkLg0KMilJZiBvdGhlciBhZ2VudHMgbG9hZCB0aGUg dW5jaGFuZ2VkLCAiZGV2X2dlbiIsIGl0IG1lYW5zIHRoZSBnbG9iYWwgY2FjaGUgaGFzIG5vdCBi ZWVuIHVwZGF0ZWQsIA0KYW5kIHRoZSBsb2NhbCBjYWNoZSB3aWxsIG5vdCBiZSBmbHVzaGVkLiAN Cg0KQXMgYSByZXN1bHQsIHdlIHVzZSAgd21iIGFuZCBndWFyZCB2YXJpYWJsZSAiZGV2X2dlbiIg dG8gZW5zdXJlIHRoZSBnbG9iYWwgY2FjaGUgdXBkYXRpbmcgaXMgInZpc2libGUiLg0KVGhlICJ2 aXNpYmxlIiBtZWFucyB3aGVuIHVwZGF0aW5nIGd1YXJkIHZhcmlhYmxlICJkZXZfZ2VuIiBpcyBr bm93biBieSBvdGhlciBhZ2VudHMsIHRoZXkgYWxzbyBjYW4NCmNvbmZpcm0gZ2xvYmFsIGNhY2hl IGhhcyBiZWVuIHVwZGF0ZWQgaW4gIHRoZSBtZWFud2hpbGUuIFRodXMsIGp1c3Qgb25lIHdtYiBi ZWZvcmUgYWx0ZXJpbmcgIGRldl9nZW4NCmNhbiBlbnN1cmUgdGhpcy4NCg0KQmVzdCBSZWdhcmRz DQpGZWlmZWkgDQoNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IFNsYXZh IE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT4NCj4g5Y+R6YCB5pe26Ze0OiAyMDIx 5bm0NOaciDIw5pelIDE1OjU0DQo+IOaUtuS7tuS6ujogRmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5n MkBhcm0uY29tPjsgTWF0YW4gQXpyYWQNCj4gPG1hdGFuQG52aWRpYS5jb20+OyBTaGFoYWYgU2h1 bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+DQo+IOaKhOmAgTogZGV2QGRwZGsub3JnOyBuZCA8bmRA YXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZyBXYW5nDQo+IDxSdWlmZW5nLldhbmdA YXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBuZA0KPiA8bmRAYXJt LmNvbT4NCj4g5Li76aKYOiBSRTogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxk IGJ1ZyBmb3IgTWVtb3J5IFJlZ2lvbiBjYWNoZQ0KPiANCj4gSGksIEZlaWZlaQ0KPiANCj4gSW4g bXkgb3BpbmlvbiwgdGhlcmUgc2hvdWxkIGJlIDIgYmFycmllcnM6DQo+ICAtIGFmdGVyIGdsb2Jh bCBjYWNoZSB1cGRhdGUvYmVmb3JlIGFsdGVyaW5nIGRldl9nZW4sIHRvIGVuc3VyZSB0aGUgY29y cmVjdA0KPiBvcmRlcg0KPiAgLSBhZnRlciBhbHRlcmluZyBkZXZfZ2VuIHRvIG1ha2UgdGhpcyBj aGFuZ2UgdmlzaWJsZSBmb3Igb3RoZXIgYWdlbnRzIGFuZCB0bw0KPiB0cmlnZ2VyIGxvY2FsIGNh Y2hlIHVwZGF0ZQ0KPiANCj4gV2l0aCBiZXN0IHJlZ2FyZHMsDQo+IFNsYXZhDQo+IA0KPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogRmVpZmVpIFdhbmcgPEZlaWZlaS5X YW5nMkBhcm0uY29tPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIEFwcmlsIDIwLCAyMDIxIDEwOjMwDQo+ ID4gVG86IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE1hdGFuIEF6 cmFkDQo+ID4gPG1hdGFuQG52aWRpYS5jb20+OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG52aWRp YS5jb20+DQo+ID4gQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBzdGFibGVAZHBk ay5vcmc7IFJ1aWZlbmcgV2FuZw0KPiA+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IG5kIDxuZEBh cm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBuZA0KPiA+IDxuZEBhcm0uY29tPg0KPiA+IFN1Ympl Y3Q6IOWbnuWkjTogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3Ig TWVtb3J5DQo+ID4gUmVnaW9uIGNhY2hlDQo+ID4NCj4gPiBIaSwgU2xhdmENCj4gPg0KPiA+IEFu b3RoZXIgcXVlc3Rpb24gc3VkZGVubHkgb2NjdXJyZWQgdG8gbWUsIGluIG9yZGVyIHRvIGtlZXAg dGhlIG9yZGVyDQo+ID4gdGhhdCByZWJ1aWxkaW5nIGdsb2JhbCBjYWNoZSBiZWZvcmUgdXBkYXRp bmcg4oCdZGV2X2dlbuKAnCwgdGhlIHdtYiBzaG91bGQNCj4gPiBiZSBiZWZvcmUgdXBkYXRpbmcg ImRldl9nZW4iIHJhdGhlciB0aGFuIGFmdGVyIGl0Lg0KPiA+IE90aGVyd2lzZSwgaW4gdGhlIG91 dC1vZi1vcmRlciBwbGF0Zm9ybXMsIGN1cnJlbnQgb3JkZXIgY2Fubm90IGJlIGtlcHQuDQo+ID4N Cj4gPiBUaHVzLCB3ZSBzaG91bGQgY2hhbmdlIHRoZSBjb2RlIGFzOg0KPiA+IGEpIHJlYnVpbGQg Z2xvYmFsIGNhY2hlOw0KPiA+IGIpIHJ0ZV9zbXBfd21iKCk7DQo+ID4gYykgdXBkYXRpbmcgZGV2 X2dlbg0KPiA+DQo+ID4gQmVzdCBSZWdhcmRzDQo+ID4gRmVpZmVpDQo+ID4gPiAtLS0tLemCruS7 tuWOn+S7ti0tLS0tDQo+ID4gPiDlj5Hku7bkuro6IEZlaWZlaSBXYW5nDQo+ID4gPiDlj5HpgIHm l7bpl7Q6IDIwMjHlubQ05pyIMjDml6UgMTM6NTQNCj4gPiA+IOaUtuS7tuS6ujogU2xhdmEgT3Zz aWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPjsgTWF0YW4gQXpyYWQNCj4gPiA+IDxtYXRh bkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29tPg0KPiA+ID4g 5oqE6YCBOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsub3JnOyBS dWlmZW5nDQo+IFdhbmcNCj4gPiA+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IG5kIDxuZEBhcm0u Y29tPjsgbmQgPG5kQGFybS5jb20+DQo+ID4gPiDkuLvpopg6IOWbnuWkjTogW1BBVENIIHYxIDMv NF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5IFJlZ2lvbg0KPiA+ID4gY2Fj aGUNCj4gPiA+DQo+ID4gPiBIaSwgU2xhdmENCj4gPiA+DQo+ID4gPiBUaGFua3MgdmVyeSBtdWNo IGZvciB5b3VyIGV4cGxhbmF0aW9uLg0KPiA+ID4NCj4gPiA+IEkgY2FuIHVuZGVyc3RhbmQgdGhl IGFwcCBjYW4gd2FpdCBhbGwgbWJ1ZnMgYXJlIHJldHVybmVkIHRvIHRoZQ0KPiA+ID4gbWVtb3J5 IHBvb2wsIGFuZCB0aGVuIGl0IGNhbiBmcmVlIHRoaXMgbWJ1ZnMsIEkgYWdyZWUgd2l0aCB0aGlz Lg0KPiA+ID4NCj4gPiA+IEFzIGEgcmVzdWx0LCBJIHdpbGwgcmVtb3ZlIHRoZSBidWcgZml4IHBh dGNoIGZyb20gdGhpcyBzZXJpZXMgYW5kDQo+ID4gPiBqdXN0IHJlcGxhY2UgdGhlIHNtcCBiYXJy aWVyIHdpdGggQzExIHRocmVhZCBmZW5jZS4gVGhhbmtzIHZlcnkgbXVjaA0KPiA+ID4gZm9yIHlv dXIgcGF0aWVudCBleHBsYW5hdGlvbiBhZ2Fpbi4NCj4gPiA+DQo+ID4gPiBCZXN0IFJlZ2FyZHMN Cj4gPiA+IEZlaWZlaQ0KPiA+ID4NCj4gPiA+ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiA+ ID4gPiDlj5Hku7bkuro6IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT4N Cj4gPiA+ID4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0NOaciDIw5pelIDI6NTENCj4gPiA+ID4g5pS2 5Lu25Lq6OiBGZWlmZWkgV2FuZyA8RmVpZmVpLldhbmcyQGFybS5jb20+OyBNYXRhbiBBenJhZA0K PiA+ID4gPiA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlh LmNvbT4NCj4gPiA+ID4g5oqE6YCBOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3Rh YmxlQGRwZGsub3JnOyBSdWlmZW5nDQo+ID4gV2FuZw0KPiA+ID4gPiA8UnVpZmVuZy5XYW5nQGFy bS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4gPiA+ID4g5Li76aKYOiBSRTogW1BBVENIIHYxIDMv NF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5IFJlZ2lvbg0KPiA+ID4gPiBj YWNoZQ0KPiA+ID4gPg0KPiA+ID4gPiBIaSwgRmVpZmVpDQo+ID4gPiA+DQo+ID4gPiA+IFBsZWFz ZSwgc2VlIGJlbG93DQo+ID4gPiA+DQo+ID4gPiA+IC4uLi4NCj4gPiA+ID4NCj4gPiA+ID4gPiA+ IEhpLCBGZWlmZWkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTb3JyeSwgSSBkbyBub3QgZm9s bG93IHdoYXQgdGhpcyBwYXRjaCBmaXhlcy4gRG8gd2UgaGF2ZSBzb21lDQo+ID4gPiA+ID4gPiBp c3N1ZS9idWcgd2l0aCBNUiBjYWNoZSBpbiBwcmFjdGljZT8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGJ1ZyB3aGljaCBpcyBiYXNlZCBvbiBsb2dpY2FsIGRlZHVj dGlvbiwNCj4gPiA+ID4gPiBhbmQgaXQgZG9lc24ndCBhY3R1YWxseSBoYXBwZW4uDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBFYWNoIFR4IHF1ZXVlIGhhcyBpdHMgb3duIGRl ZGljYXRlZCAibG9jYWwiIGNhY2hlIGZvciBNUnMgdG8NCj4gPiA+ID4gPiA+IGNvbnZlcnQgYnVm ZmVyIGFkZHJlc3MgaW4gbWJ1ZnMgYmVpbmcgdHJhbnNtaXR0ZWQgdG8gTEtleXMNCj4gPiA+ID4g PiA+IChIVy1yZWxhdGVkIGVudGl0eQ0KPiA+ID4gPiA+ID4gaGFuZGxlKSBhbmQgdGhlICJnbG9i YWwiIGNhY2hlIGZvciBhbGwgTVIgcmVnaXN0ZXJlZCBvbiB0aGUgZGV2aWNlLg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IEFGQUlLLCBob3cgY29udmVyc2lvbiBoYXBwZW5zIGluIGRhdGFwYXRo Og0KPiA+ID4gPiA+ID4gLSBjaGVjayB0aGUgbG9jYWwgcXVldWUgY2FjaGUgZmx1c2ggcmVxdWVz dA0KPiA+ID4gPiA+ID4gLSBsb29rdXAgaW4gbG9jYWwgY2FjaGUNCj4gPiA+ID4gPiA+IC0gaWYg bm90IGZvdW5kOg0KPiA+ID4gPiA+ID4gLSBhY3F1aXJlIGxvY2sgZm9yIGdsb2JhbCBjYWNoZSBy ZWFkIGFjY2Vzcw0KPiA+ID4gPiA+ID4gLSBsb29rdXAgaW4gZ2xvYmFsIGNhY2hlDQo+ID4gPiA+ ID4gPiAtIHJlbGVhc2UgbG9jayBmb3IgZ2xvYmFsIGNhY2hlDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gSG93IGNhY2hlIHVwZGF0ZSBvbiBtZW1vcnkgZnJlZWluZy91bnJlZ2lzdGVyaW5nIGhh cHBlbnM6DQo+ID4gPiA+ID4gPiAtIGFjcXVpcmUgbG9jayBmb3IgZ2xvYmFsIGNhY2hlIHdyaXRl IGFjY2Vzcw0KPiA+ID4gPiA+ID4gLSBbYV0gcmVtb3ZlIHJlbGV2YW50IE1ScyBmcm9tIHRoZSBn bG9iYWwgY2FjaGUNCj4gPiA+ID4gPiA+IC0gW2JdIHNldCBsb2NhbCBjYWNoZXMgZmx1c2ggcmVx dWVzdA0KPiA+ID4gPiA+ID4gLSBmcmVlIGdsb2JhbCBjYWNoZSBsb2NrDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gSWYgSSB1bmRlcnN0YW5kIGNvcnJlY3RseSwgeW91ciBwYXRjaCBzd2FwcyBb YV0gYW5kIFtiXSwgYW5kDQo+ID4gPiA+ID4gPiBsb2NhbCBjYWNoZXMgZmx1c2ggaXMgcmVxdWVz dGVkIGVhcmxpZXIuIFdoYXQgcHJvYmxlbSBkb2VzIGl0IHNvbHZlPw0KPiA+ID4gPiA+ID4gSXQg aXMgbm90IHN1cHBvc2VkIHRoZXJlIGFyZSBpbiBkYXRhcGF0aCBzb21lIG1idWZzDQo+ID4gPiA+ ID4gPiByZWZlcmVuY2luZyB0byB0aGUgbWVtb3J5IGJlaW5nIGZyZWVkLiBBcHBsaWNhdGlvbiBt dXN0IGVuc3VyZQ0KPiA+ID4gPiA+ID4gdGhpcyBhbmQgbXVzdCBub3QgYWxsb2NhdGUgbmV3IG1i dWZzIGZyb20gdGhpcyBtZW1vcnkgcmVnaW9ucw0KPiBiZWluZyBmcmVlZC4NCj4gPiA+ID4gPiA+ IEhlbmNlLCB0aGUgbG9va3VwcyBmb3IgdGhlc2UgTVJzIGluIGNhY2hlcyBzaG91bGQgbm90IG9j Y3VyLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gRm9yIHlvdXIgZmlyc3QgcG9pbnQgdGhhdCwgYXBw bGljYXRpb24gY2FuIHRha2UgY2hhcmdlIG9mDQo+ID4gPiA+ID4gcHJldmVudGluZyBNUiBmcmVl ZCBtZW1vcnkgYmVpbmcgYWxsb2NhdGVkIHRvIGRhdGEgcGF0aC4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IERvZXMgaXQgbWVhbnMgdGhhdCBJZiB0aGVyZSBpcyBhbiBlbWVyZ2VuY3kgb2YgTVIgZnJh Z21lbnQsIHN1Y2gNCj4gPiA+ID4gPiBhcyBob3RwbHVnLCB0aGUgYXBwbGljYXRpb24gbXVzdCBp bmZvcm0gdGhlZGF0YSBwYXRoIGluIGFkdmFuY2UsDQo+ID4gPiA+ID4gYW5kIHRoaXMgbWVtb3J5 IHdpbGwgbm90IGJlIGFsbG9jYXRlZCwgYW5kIHRoZW4gdGhlIGNvbnRyb2wgcGF0aA0KPiA+ID4g PiA+IHdpbGwgZnJlZSB0aGlzIG1lbW9yeT8gSWYgYXBwbGljYXRpb24gIGNhbiBkbyBsaWtlIHRo aXMsIEkgYWdyZWUNCj4gPiA+ID4gPiB0aGF0IHRoaXMgYnVnDQo+ID4gPiBjYW5ub3QgaGFwcGVu Lg0KPiA+ID4gPg0KPiA+ID4gPiBBY3R1YWxseSwgIHRoaXMgaXMgdGhlIG9ubHkgY29ycmVjdCB3 YXkgZm9yIGFwcGxpY2F0aW9uIHRvIG9wZXJhdGUuDQo+ID4gPiA+IExldCdzIHN1cHBvc2Ugd2Ug aGF2ZSBzb21lIG1lbW9yeSBhcmVhIHRoYXQgYXBwbGljYXRpb24gd2FudHMgdG8NCj4gZnJlZS4N Cj4gPiA+ID4gQUxMIHJlZmVyZW5jZXMgdG8gdGhpcyBhcmVhIG11c3QgYmUgcmVtb3ZlZC4gSWYg d2UgaGF2ZSBzb21lIG1idWZzDQo+ID4gPiA+IGFsbG9jYXRlZCBmcm9tIHRoaXMgYXJlYSwgaXQg bWVhbnMgdGhhdCB3ZSBoYXZlIG1lbW9yeSBwb29sDQo+ID4gPiA+IGNyZWF0ZWQNCj4gPiB0aGVy ZS4NCj4gPiA+ID4NCj4gPiA+ID4gV2hhdCBhcHBsaWNhdGlvbiBzaG91bGQgZG86DQo+ID4gPiA+ IC0gbm90aWZ5IGFsbCBpdHMgY29tcG9uZW50cy9hZ2VudHMgdGhlIG1lbW9yeSBhcmVhIGlzIGdv aW5nIHRvIGJlDQo+ID4gPiA+IGZyZWVkDQo+ID4gPiA+IC0gYWxsIGNvbXBvbmVudHMvYWdlbnRz IGZyZWUgdGhlIG1idWZzIHRoZXkgbWlnaHQgb3duDQo+ID4gPiA+IC0gUE1EIG1pZ2h0IG5vdCBz dXBwb3J0IGZyZWVpbmcgZm9yIHNvbWUgbWJ1ZnMgKGZvciBleGFtcGxlIGJlaW5nDQo+ID4gPiA+ IHNlbnQgYW5kIGF3YWl0aW5nIGZvciBjb21wbGV0aW9uKSwgc28gYXBwIHNob3VsZCBqdXN0IHdh aXQNCj4gPiA+ID4gLSB3YWl0IHRpbGwgYWxsIG1idWZzIGFyZSByZXR1cm5lZCB0byB0aGUgbWVt b3J5IHBvb2wgKGJ5DQo+ID4gPiA+IG1vbml0b3JpbmcgYXZhaWxhYmxlIG9iaiA9PSBwb29sIHNp emUpDQo+ID4gPiA+DQo+ID4gPiA+IE90aGVyd2lzZSAtIGl0IGlzIGRhbmdlcm91cyB0byBmcmVl IHRoZSBtZW1vcnkuIFRoZXJlIGFyZSBqdXN0DQo+ID4gPiA+IHNvbWUgbWJ1ZnMgc3RpbGwgYWxs b2NhdGVkLCBpdCBpcyByZWdhcmRsZXNzIHRvIGJ1ZiBhZGRyZXNzIHRvIE1SDQo+ID4gPiA+IHRy YW5zbGF0aW9uLiBXZSBqdXN0IGNhbid0IGZyZWUgdGhlIG1lbW9yeSAtIHRoZSBtYXBwaW5nIHdp bGwgYmUNCj4gPiA+ID4gZGVzdHJveWVkIGFuZCBtaWdodCBjYXVzZSB0aGUgc2VnbWVudGF0aW9u IGZhdWx0IGJ5IFNXIG9yIHNvbWUgSFcNCj4gPiA+ID4gaXNzdWVzIG9uIERNQSBhY2Nlc3MgdG8g dW5tYXBwZWQgbWVtb3J5LiAgSXQgaXMgdmVyeSBnZW5lcmljDQo+ID4gPiA+IHNhZmV0eSBhcHBy b2FjaCAtIGRvIG5vdCBmcmVlIHRoZSBtZW1vcnkgdGhhdCBpcyBzdGlsbCBpbiB1c2UuDQo+ID4g PiA+IEhlbmNlLCBhdCB0aGUgbW9tZW50IG9mIGZyZWVpbmcgYW5kIHVucmVnaXN0ZXJpbmcgdGhl IE1SLCB0aGVyZQ0KPiA+ID4gPiBNVVNUIEJFIE5PIGFueQ0KPiA+ID4gbWJ1ZnMgaW4gZmxpZ2h0 IHJlZmVyZW5jaW5nIHRvIHRoZSBhZGRyZXNzZXMgYmVpbmcgZnJlZWQuDQo+ID4gPiA+IE5vIHRy YW5zbGF0aW9uIHRvIE1SIGJlaW5nIGludmFsaWRhdGVkIGNhbiBoYXBwZW4uDQo+ID4gPiA+DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZvciBvdGhlciBzaWRlLCB0aGUgY2FjaGUgZmx1c2ggaGFz IG5lZ2F0aXZlIGVmZmVjdCAtIHRoZQ0KPiA+ID4gPiA+ID4gbG9jYWwgY2FjaGUgaXMgZ2V0dGlu ZyBlbXB0eSBhbmQgY2FuJ3QgcHJvdmlkZSB0cmFuc2xhdGlvbiBmb3INCj4gPiA+ID4gPiA+IG90 aGVyIHZhbGlkIChub3QgYmVpbmcgcmVtb3ZlZCkgTVJzLCBhbmQgdGhlIHRyYW5zbGF0aW9uIGhh cw0KPiA+ID4gPiA+ID4gdG8gbG9vayB1cCBpbiB0aGUgZ2xvYmFsIGNhY2hlLCB0aGF0IGlzIGxv Y2tlZCBub3cgZm9yDQo+ID4gPiA+ID4gPiByZWJ1aWxkaW5nLCB0aGlzIGNhdXNlcyB0aGUgZGVs YXlzIGluIGRhdGFwYXRjaA0KPiA+ID4gPiA+IG9uIGFjcXVpcmluZyBnbG9iYWwgY2FjaGUgbG9j ay4NCj4gPiA+ID4gPiA+IFNvLCBJIHNlZSBzb21lIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBh Y3QuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJZiBhYm92ZSBhc3N1bXB0aW9uIGlzIHRydWUsIHdl IGNhbiBnbyB0byB5b3VyIHNlY29uZCBwb2ludC4gSQ0KPiA+ID4gPiA+IHRoaW5rIHRoaXMgaXMg YSBwcm9ibGVtIG9mIHRoZSB0cmFkZW9mZiBiZXR3ZWVuIGNhY2hlIGNvaGVyZW5jZQ0KPiA+ID4g PiA+IGFuZA0KPiA+ID4gPiBwZXJmb3JtYW5jZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgY2Fu IHVuZGVyc3RhbmQgeW91ciBtZWFuaW5nIHRoYXQgdGhvdWdoIGdsb2JhbCBjYWNoZSBoYXMgYmVl bg0KPiA+ID4gPiA+IGNoYW5nZWQsIHdlIHNob3VsZCBrZWVwIHRoZSB2YWxpZCBNUiBpbiBsb2Nh bCBjYWNoZSBhcyBsb25nIGFzDQo+ID4gPiA+ID4gcG9zc2libGUgdG8gZW5zdXJlIHRoZSBmYXN0 IHNlYXJjaGluZyBzcGVlZC4NCj4gPiA+ID4gPiBJbiB0aGUgbWVhbndoaWxlLCB0aGUgbG9jYWwg Y2FjaGUgY2FuIGJlIHJlYnVpbHQgbGF0ZXIgdG8gcmVkdWNlDQo+ID4gPiA+ID4gaXRzIHdhaXRp bmcgdGltZSBmb3IgYWNxdWlyaW5nIHRoZSBnbG9iYWwgY2FjaGUgbG9jay4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IEhvd2V2ZXIsICB0aGlzIG1lY2hhbmlzbSBqdXN0IGVuc3VyZXMgdGhlIHBlcmZv cm1hbmNlIHVuY2hhbmdlZA0KPiA+ID4gPiA+IGZvciB0aGUgZmlyc3QgZmV3IG1idWZzLg0KPiA+ ID4gPiA+IER1cmluZyB0aGUgbmV4dCBtYnVmcyBsa2V5IHNlYXJjaGluZyBhZnRlciAnZGV2X2dl bicgdXBkYXRlZCwgaXQNCj4gPiA+ID4gPiBpcyBzdGlsbCBuZWNlc3NhcnkgdG8gdXBkYXRlIHRo ZSBsb2NhbCBjYWNoZS4gQW5kIHRoZQ0KPiA+ID4gPiA+IHBlcmZvcm1hbmNlIGNhbiBmaXJzdGx5 IHJlZHVjZSBhbmQgdGhlbiByZXR1cm5zLiBUaHVzLCBubyBtYXR0ZXINCj4gPiA+ID4gPiB3aGV0 aGVyIHRoZXJlIGlzIHRoaXMgcGF0Y2ggb3Igbm90LCAgdGhlIHBlcmZvcm1hbmNlIHdpbGwgaml0 dGVyDQo+ID4gPiA+ID4gaW4gYSBjZXJ0YWluIHBlcmlvZCBvZg0KPiA+IHRpbWUuDQo+ID4gPiA+ DQo+ID4gPiA+IExvY2FsIGNhY2hlIHNob3VsZCBiZSB1cGRhdGVkIHRvIHJlbW92ZSBNUnMgbm8g bG9uZ2VyIHZhbGlkLiBCdXQNCj4gPiA+ID4gd2UganVzdCBmbHVzaCB0aGUgZW50aXJlIGNhY2hl Lg0KPiA+ID4gPiBMZXQncyBzdXBwb3NlIHdlIGhhdmUgdmFsaWQgTVIwLCBNUjEsIGFuZCBub3Qg dmFsaWQgTVJYIGluIGxvY2FsIGNhY2hlLg0KPiA+ID4gPiBBbmQgdGhlcmUgYXJlIHRyYWZmaWMg aW4gdGhlIGRhdGFwYXRoIGZvciBNUjAgYW5kIE1SMSwgYW5kIG5vDQo+ID4gPiA+IHRyYWZmaWMg Zm9yIE1SWCBhbnltb3JlLg0KPiA+ID4gPg0KPiA+ID4gPiAxKSBJZiB3ZSBkbyBhcyB5b3UgcHJv cG9zZToNCj4gPiA+ID4gYSkgdGFrZSBhIGxvY2sNCj4gPiA+ID4gYikgcmVxdWVzdCBmbHVzaCBs b2NhbCBjYWNoZSBmaXJzdCAtIGFsbCBNUjAsIE1SMSwgTVJYIHdpbGwgYmUNCj4gPiA+ID4gcmVt b3ZlZCBvbiB0cmFuc2xhdGlvbiBpbiBkYXRhcGF0aA0KPiA+ID4gPiBjKSB1cGRhdGUgZ2xvYmFs IGNhY2hlLA0KPiA+ID4gPiBkKSBmcmVlIGxvY2sNCj4gPiA+ID4gQWxsIHRoZSB0cmFmZmljIGZv ciB2YWxpZCBNUjAsIE1SMSBBTFdBWVMgd2lsbCBiZSBibG9ja2VkIG9uIGxvY2sNCj4gPiA+ID4g dGFrZW4gZm9yIGNhY2hlIHVwZGF0ZSBzaW5jZSBwb2ludCBiKSB0aWxsIHBvaW50IGQpLg0KPiA+ ID4gPg0KPiA+ID4gPiAyKSBJZiB3ZSBkbyBhcyBpdCBpcyBpbXBsZW1lbnRlZCBub3c6DQo+ID4g PiA+IGEpIHRha2UgYSBsb2NrDQo+ID4gPiA+IGIpIHVwZGF0ZSBnbG9iYWwgY2FjaGUNCj4gPiA+ ID4gYykgcmVxdWVzdCBmbHVzaCBsb2NhbCBjYWNoZQ0KPiA+ID4gPiBkKSBmcmVlIGxvY2sNCj4g PiA+ID4gVGhlIHRyYWZmaWMgTUlHSFQgYmUgbG9ja2VkIE9OTFkgZm9yIE1ScyBub24tZXhpc3Rp bmcgaW4gbG9jYWwNCj4gPiA+ID4gY2FjaGUgKG5vdCBoYXBwZW5zIGZvciBNUjAgYW5kIE1SMSwg bXVzdCBub3QgaGFwcGVuIGZvciBNUlgpLCAgYW5kDQo+ID4gPiA+IHByb2JhYmlsaXR5IHNob3Vs ZCBiZSBtaW5vci4gQW5kIGxvY2sgbWlnaHQgaGFwcGVuIHNpbmNlIGMpIHRpbGwNCj4gPiA+ID4g ZCkNCj4gPiA+ID4gLSBxdWl0ZSBzaG9ydCBwZXJpb2Qgb2YgdGltZQ0KPiA+ID4gPg0KPiA+ID4g PiBTdW1tYXJ5LCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIDEpIGFuZCAyKQ0KPiA+ID4gPg0KPiA+ ID4gPiBMb2NrIHByb2JhYmlsaXR5Og0KPiA+ID4gPiAtIDEpIGxvY2sgQUxXQVlTIGhhcHBlbiBm b3IgQU5ZIE1SIHRyYW5zbGF0aW9uIGFmdGVyIGIpLA0KPiA+ID4gPiAgIDIpIGxvY2sgTUlHSFQg aGFwcGVuLCBmb3IgY2FjaGUgbWlzcyBPTkxZLCBhZnRlciBjKQ0KPiA+ID4gPg0KPiA+ID4gPiBM b2NrIGR1cmF0aW9uOg0KPiA+ID4gPiAtIDEpIGxvY2sgc2luY2UgYikgdGlsbCBkKSwNCj4gPiA+ ID4gICAyKSBsb2NrIHNpbmNlIGMpIHRpbGwgZCksIHRoYXQgc2VlbXMgdG8gYmUgIG11Y2ggc2hv cnRlci4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEZpbmFsbHksIGluIGNvbmNsdXNp b24sIEkgdGVuZCB0byB0aGluayB0aGF0IHRoZSBib3R0b20gbGF5ZXINCj4gPiA+ID4gPiBjYW4g ZG8gbW9yZSB0aGluZ3MgdG8gZW5zdXJlIHRoZSBjb3JyZWN0IGV4ZWN1dGlvbiBvZiB0aGUNCj4g PiA+ID4gPiBwcm9ncmFtLCB3aGljaCBtYXkgaGF2ZSBhIG5lZ2F0aXZlIGltcGFjdCBvbiB0aGUg cGVyZm9ybWFuY2UgaW4NCj4gPiA+ID4gPiBhIHNob3J0IHRpbWUsIGJ1dCBpbiB0aGUgbG9uZyBy dW4sIHRoZSBwZXJmb3JtYW5jZSB3aWxsIGV2ZW50dWFsbHkNCj4gY29tZSBiYWNrLg0KPiA+ID4g PiA+IEZ1cnRoZXJtb3JlLCBtYXliZSB3ZSBzaG91bGQgcGF5IGF0dGVudGlvbiB0byB0aGUgcGVy Zm9ybWFuY2UgaW4NCj4gPiA+ID4gPiB0aGUgc3RhYmxlIHBlcmlvZCwgYW5kIHRyeSBvdXIgYmVz dCB0byBlbnN1cmUgdGhlIGNvcnJlY3RuZXNzIG9mDQo+ID4gPiA+ID4gdGhlIHByb2dyYW0gaW4g Y2FzZSBvZg0KPiA+ID4gPiBlbWVyZ2VuY2llcy4NCj4gPiA+ID4NCj4gPiA+ID4gSWYgd2UgaGF2 ZSBzb21lIG1idWZzIHN0aWxsIGFsbG9jYXRlZCBpbiBtZW1vcnkgYmVpbmcgZnJlZWQgLQ0KPiA+ ID4gPiB0aGVyZSBpcyBub3RoaW5nIHRvIHNheSBhYm91dCBjb3JyZWN0bmVzcywgaXQgaXMgdG90 YWxseQ0KPiA+ID4gPiBpbmNvcnJlY3QuIEluIG15IG9waW5pb24sIHdlIHNob3VsZCBub3QgdGhp bmsgaG93IHRvIG1pdGlnYXRlIHRoaXMNCj4gPiA+ID4gaW5jb3JyZWN0IGJlaGF2aW9yLCB3ZSBz aG91bGQgbm90IGVuY291cmFnZSBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzDQo+ID4gPiA+IHRvIGZv bGxvdyB0aGUgd3JvbmcNCj4gPiA+IGFwcHJvYWNoZXMuDQo+ID4gPiA+DQo+ID4gPiA+IFdpdGgg YmVzdCByZWdhcmRzLA0KPiA+ID4gPiBTbGF2YQ0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gQmVzdCBSZWdhcmRzDQo+ID4gPiA+ID4gRmVpZmVpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IFdpdGggYmVzdCByZWdhcmRzLA0KPiA+ID4gPiA+ID4gU2xhdmENCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+IEZyb206 IEZlaWZlaSBXYW5nIDxmZWlmZWkud2FuZzJAYXJtLmNvbT4NCj4gPiA+ID4gPiA+ID4gU2VudDog VGh1cnNkYXksIE1hcmNoIDE4LCAyMDIxIDk6MTkNCj4gPiA+ID4gPiA+ID4gVG86IE1hdGFuIEF6 cmFkIDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlcg0KPiA+ID4gPiA+ID4gPiA8c2hh aGFmc0BudmlkaWEuY29tPjsgU2xhdmEgT3ZzaWllbmtvDQo+ID4gPiA+ID4gPiA+IDx2aWFjaGVz bGF2b0BudmlkaWEuY29tPjsgWW9uZ3Nlb2sgS29oIDx5c2tvaEBtZWxsYW5veC5jb20+DQo+ID4g PiA+ID4gPiA+IENjOiBkZXZAZHBkay5vcmc7IG5kQGFybS5jb207IEZlaWZlaSBXYW5nDQo+ID4g PiA+IDxmZWlmZWkud2FuZzJAYXJtLmNvbT47DQo+ID4gPiA+ID4gPiA+IHN0YWJsZUBkcGRrLm9y ZzsgUnVpZmVuZyBXYW5nIDxydWlmZW5nLndhbmdAYXJtLmNvbT4NCj4gPiA+ID4gPiA+ID4gU3Vi amVjdDogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5 DQo+ID4gPiA+ID4gPiA+IFJlZ2lvbiBjYWNoZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiAnZGV2X2dlbicgaXMgYSB2YXJpYWJsZSB0byBpbmZvcm0gb3RoZXIgY29yZXMgdG8gZmx1c2gg dGhlaXINCj4gPiA+ID4gPiA+ID4gbG9jYWwgY2FjaGUgd2hlbiBnbG9iYWwgY2FjaGUgaXMgcmVi dWlsdC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSG93ZXZlciwgaWYgJ2Rldl9nZW4n IGlzIHVwZGF0ZWQgYWZ0ZXIgZ2xvYmFsIGNhY2hlIGlzDQo+ID4gPiA+ID4gPiA+IHJlYnVpbHQs IG90aGVyIGNvcmVzIG1heSBsb2FkIGEgd3JvbmcgbWVtb3J5IHJlZ2lvbiBsa2V5DQo+ID4gPiA+ ID4gPiA+IHZhbHVlIGZyb20gb2xkIGxvY2FsDQo+ID4gPiA+ID4gY2FjaGUuDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IFRpbWVzbG90ICAgICAgICBtYWluIGNvcmUgICAgICAgICAgICAg ICB3b3JrZXIgY29yZQ0KPiA+ID4gPiA+ID4gPiAgIDEgICAgICAgICByZWJ1aWxkIGdsb2JhbCBj YWNoZQ0KPiA+ID4gPiA+ID4gPiAgIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bG9hZCB1bmNoYW5nZWQgZGV2X2dlbg0KPiA+ID4gPiA+ID4gPiAgIDMgICAgICAgICAgICB1cGRh dGUgZGV2X2dlbg0KPiA+ID4gPiA+ID4gPiAgIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbG9vayB1cCBvbGQgbG9jYWwgY2FjaGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gRnJvbSB0aGUgZXhhbXBsZSBhYm92ZSwgd2UgY2FuIHNlZSB0aGF0IHRob3VnaCBnbG9iYWwg Y2FjaGUNCj4gPiA+ID4gPiA+ID4gaXMgcmVidWlsdCwgZHVlIHRvIHRoYXQgZGV2X2dlbiBpcyBu b3QgdXBkYXRlZCwgdGhlIHdvcmtlcg0KPiA+ID4gPiA+ID4gPiBjb3JlIG1heSBsb29rIHVwIG9s ZCBjYWNoZSB0YWJsZSBhbmQgcmVjZWl2ZSBhIHdyb25nIG1lbW9yeQ0KPiA+ID4gPiA+ID4gPiBy ZWdpb24NCj4gPiBsa2V5IHZhbHVlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUbyBm aXggdGhpcywgdXBkYXRpbmcgJ2Rldl9nZW4nIHNob3VsZCBiZSBtb3ZlZCBiZWZvcmUNCj4gPiA+ ID4gPiA+ID4gcmVidWlsZGluZyBnbG9iYWwgY2FjaGUgdG8gaW5mb3JtIHdvcmtlciBjb3JlcyB0 byBmbHVzaA0KPiA+ID4gPiA+ID4gPiB0aGVpciBsb2NhbCBjYWNoZSB3aGVuIGdsb2JhbCBjYWNo ZSBzdGFydCByZWJ1aWxkaW5nLiBBbmQNCj4gPiA+ID4gPiA+ID4gd21iIGNhbiBlbnN1cmUgdGhl IHNlcXVlbmNlIG9mIHRoaXMNCj4gPiA+ID4gPiA+IHByb2Nlc3MuDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+IEZpeGVzOiA5NzRmMWU3ZWYxNDYgKCJuZXQvbWx4NTogYWRkIG5ldyBtZW1v cnkgcmVnaW9uDQo+ID4gPiA+ID4gPiA+IHN1cHBvcnQiKQ0KPiA+ID4gPiA+ID4gPiBDYzogc3Rh YmxlQGRwZGsub3JnDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFN1Z2dlc3RlZC1ieTog UnVpZmVuZyBXYW5nIDxydWlmZW5nLndhbmdAYXJtLmNvbT4NCj4gPiA+ID4gPiA+ID4gU2lnbmVk LW9mZi1ieTogRmVpZmVpIFdhbmcgPGZlaWZlaS53YW5nMkBhcm0uY29tPg0KPiA+ID4gPiA+ID4g PiBSZXZpZXdlZC1ieTogUnVpZmVuZyBXYW5nIDxydWlmZW5nLndhbmdAYXJtLmNvbT4NCj4gPiA+ ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ICBkcml2ZXJzL25ldC9tbHg1L21seDVfbXIuYyB8 IDM3DQo+ID4gPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gPiA+ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAyMCBkZWxl dGlvbnMoLSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L21seDUvbWx4NV9tci5jDQo+ID4gPiA+ID4gPiA+IGIvZHJpdmVycy9uZXQvbWx4NS9t bHg1X21yLmMgaW5kZXgNCj4gPiA+ID4gPiA+ID4gZGE0ZTkxZmMyLi43Y2UxZDNlNjQgMTAwNjQ0 DQo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9tci5jDQo+ID4gPiA+ ID4gPiA+ICsrKyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9tci5jDQo+ID4gPiA+ID4gPiA+IEBA IC0xMDMsMjAgKzEwMywxOCBAQCBtbHg1X21yX21lbV9ldmVudF9mcmVlX2NiKHN0cnVjdA0KPiA+ ID4gPiA+ID4gPiBtbHg1X2Rldl9jdHhfc2hhcmVkICpzaCwNCj4gPiA+ID4gPiA+ID4gIAkJcmVi dWlsZCA9IDE7DQo+ID4gPiA+ID4gPiA+ICAJfQ0KPiA+ID4gPiA+ID4gPiAgCWlmIChyZWJ1aWxk KSB7DQo+ID4gPiA+ID4gPiA+IC0JCW1seDVfbXJfcmVidWlsZF9jYWNoZSgmc2gtPnNoYXJlX2Nh Y2hlKTsNCj4gPiA+ID4gPiA+ID4gKwkJKytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsNCj4gPiA+ ID4gPiA+ID4gKwkJREVCVUcoImJyb2FkY2FzdGluZyBsb2NhbCBjYWNoZSBmbHVzaCwgZ2VuPSVk IiwNCj4gPiA+ID4gPiA+ID4gKwkJCXNoLT5zaGFyZV9jYWNoZS5kZXZfZ2VuKTsNCj4gPiA+ID4g PiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAgCQkvKg0KPiA+ID4gPiA+ID4gPiAgCQkgKiBGbHVzaCBs b2NhbCBjYWNoZXMgYnkgcHJvcGFnYXRpbmcgaW52YWxpZGF0aW9uDQo+ID4gPiBhY3Jvc3MgY29y ZXMuDQo+ID4gPiA+ID4gPiA+IC0JCSAqIHJ0ZV9zbXBfd21iKCkgaXMgZW5vdWdoIHRvIHN5bmNo cm9uaXplIHRoaXMNCj4gPiA+IGV2ZW50LiBJZg0KPiA+ID4gPiA+ID4gPiBvbmUgb2YNCj4gPiA+ ID4gPiA+ID4gLQkJICogZnJlZWQgbWVtc2VncyBpcyBzZWVuIGJ5IG90aGVyIGNvcmUsIHRoYXQg bWVhbnMNCj4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiBtZW1zZWcNCj4gPiA+ID4gPiA+ID4gLQkJ ICogaGFzIGJlZW4gYWxsb2NhdGVkIGJ5IGFsbG9jYXRvciwgd2hpY2ggd2lsbCBjb21lDQo+ID4g PiBhZnRlciB0aGlzDQo+ID4gPiA+ID4gPiA+IC0JCSAqIGZyZWUgY2FsbC4gVGhlcmVmb3JlLCB0 aGlzIHN0b3JlIGluc3RydWN0aW9uDQo+ID4gPiAoaW5jcmVtZW50aW5nDQo+ID4gPiA+ID4gPiA+ IC0JCSAqIGdlbmVyYXRpb24gYmVsb3cpIHdpbGwgYmUgZ3VhcmFudGVlZCB0byBiZSBzZWVuDQo+ ID4gPiBieSBvdGhlcg0KPiA+ID4gPiA+ID4gPiBjb3JlDQo+ID4gPiA+ID4gPiA+IC0JCSAqIGJl Zm9yZSB0aGUgY29yZSBzZWVzIHRoZSBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5Lg0KPiA+ID4gPiA+ ID4gPiArCQkgKiBydGVfc21wX3dtYigpIGlzIHRvIGtlZXAgdGhlIG9yZGVyIHRoYXQgZGV2X2dl bg0KPiA+ID4gPiA+ID4gPiB1cGRhdGVkIGJlZm9yZQ0KPiA+ID4gPiA+ID4gPiArCQkgKiByZWJ1 aWxkaW5nIGdsb2JhbCBjYWNoZS4gVGhlcmVmb3JlLCBvdGhlciBjb3JlIGNhbg0KPiA+ID4gZmx1 c2gNCj4gPiA+ID4gPiA+ID4gdGhlaXINCj4gPiA+ID4gPiA+ID4gKwkJICogbG9jYWwgY2FjaGUg b24gdGltZS4NCj4gPiA+ID4gPiA+ID4gIAkJICovDQo+ID4gPiA+ID4gPiA+IC0JCSsrc2gtPnNo YXJlX2NhY2hlLmRldl9nZW47DQo+ID4gPiA+ID4gPiA+IC0JCURFQlVHKCJicm9hZGNhc3Rpbmcg bG9jYWwgY2FjaGUgZmx1c2gsIGdlbj0lZCIsDQo+ID4gPiA+ID4gPiA+IC0JCSAgICAgIHNoLT5z aGFyZV9jYWNoZS5kZXZfZ2VuKTsNCj4gPiA+ID4gPiA+ID4gIAkJcnRlX3NtcF93bWIoKTsNCj4g PiA+ID4gPiA+ID4gKwkJbWx4NV9tcl9yZWJ1aWxkX2NhY2hlKCZzaC0+c2hhcmVfY2FjaGUpOw0K PiA+ID4gPiA+ID4gPiAgCX0NCj4gPiA+ID4gPiA+ID4gIAlydGVfcndsb2NrX3dyaXRlX3VubG9j aygmc2gtPnNoYXJlX2NhY2hlLnJ3bG9jayk7DQo+ID4gPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4g PiA+IEBAIC00MDcsMjAgKzQwNSwxOSBAQCBtbHg1X2RtYV91bm1hcChzdHJ1Y3QgcnRlX3BjaV9k ZXZpY2UNCj4gPiA+ID4gPiAqcGRldiwNCj4gPiA+ID4gPiA+IHZvaWQNCj4gPiA+ID4gPiA+ID4g KmFkZHIsDQo+ID4gPiA+ID4gPiA+ICAJbWx4NV9tcl9mcmVlKG1yLCBzaC0+c2hhcmVfY2FjaGUu ZGVyZWdfbXJfY2IpOw0KPiA+ID4gPiA+ID4gPiAgCURFQlVHKCJwb3J0ICV1IHJlbW92ZSBNUigl cCkgZnJvbSBsaXN0IiwgZGV2LT5kYXRhLQ0KPiA+ID4gPnBvcnRfaWQsDQo+ID4gPiA+ID4gPiA+ ICAJICAgICAgKHZvaWQgKiltcik7DQo+ID4gPiA+ID4gPiA+IC0JbWx4NV9tcl9yZWJ1aWxkX2Nh Y2hlKCZzaC0+c2hhcmVfY2FjaGUpOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsJ KytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsNCj4gPiA+ID4gPiA+ID4gKwlERUJVRygiYnJvYWRj YXN0aW5nIGxvY2FsIGNhY2hlIGZsdXNoLCBnZW49JWQiLA0KPiA+ID4gPiA+ID4gPiArCQlzaC0+ c2hhcmVfY2FjaGUuZGV2X2dlbik7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gIAkv Kg0KPiA+ID4gPiA+ID4gPiAgCSAqIEZsdXNoIGxvY2FsIGNhY2hlcyBieSBwcm9wYWdhdGluZyBp bnZhbGlkYXRpb24gYWNyb3NzIGNvcmVzLg0KPiA+ID4gPiA+ID4gPiAtCSAqIHJ0ZV9zbXBfd21i KCkgaXMgZW5vdWdoIHRvIHN5bmNocm9uaXplIHRoaXMgZXZlbnQuIElmDQo+ID4gPiBvbmUgb2YN Cj4gPiA+ID4gPiA+ID4gLQkgKiBmcmVlZCBtZW1zZWdzIGlzIHNlZW4gYnkgb3RoZXIgY29yZSwg dGhhdCBtZWFucyB0aGUNCj4gPiA+IG1lbXNlZw0KPiA+ID4gPiA+ID4gPiAtCSAqIGhhcyBiZWVu IGFsbG9jYXRlZCBieSBhbGxvY2F0b3IsIHdoaWNoIHdpbGwgY29tZSBhZnRlciB0aGlzDQo+ID4g PiA+ID4gPiA+IC0JICogZnJlZSBjYWxsLiBUaGVyZWZvcmUsIHRoaXMgc3RvcmUgaW5zdHJ1Y3Rp b24gKGluY3JlbWVudGluZw0KPiA+ID4gPiA+ID4gPiAtCSAqIGdlbmVyYXRpb24gYmVsb3cpIHdp bGwgYmUgZ3VhcmFudGVlZCB0byBiZSBzZWVuIGJ5IG90aGVyDQo+ID4gPiBjb3JlDQo+ID4gPiA+ ID4gPiA+IC0JICogYmVmb3JlIHRoZSBjb3JlIHNlZXMgdGhlIG5ld2x5IGFsbG9jYXRlZCBtZW1v cnkuDQo+ID4gPiA+ID4gPiA+ICsJICogcnRlX3NtcF93bWIoKSBpcyB0byBrZWVwIHRoZSBvcmRl ciB0aGF0IGRldl9nZW4NCj4gPiA+IHVwZGF0ZWQNCj4gPiA+ID4gPiA+ID4gYmVmb3JlDQo+ID4g PiA+ID4gPiA+ICsJICogcmVidWlsZGluZyBnbG9iYWwgY2FjaGUuIFRoZXJlZm9yZSwgb3RoZXIg Y29yZSBjYW4NCj4gPiA+ID4gPiA+ID4gK2ZsdXNoDQo+ID4gPiB0aGVpcg0KPiA+ID4gPiA+ID4g PiArCSAqIGxvY2FsIGNhY2hlIG9uIHRpbWUuDQo+ID4gPiA+ID4gPiA+ICAJICovDQo+ID4gPiA+ ID4gPiA+IC0JKytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsNCj4gPiA+ID4gPiA+ID4gLQlERUJV RygiYnJvYWRjYXN0aW5nIGxvY2FsIGNhY2hlIGZsdXNoLCBnZW49JWQiLA0KPiA+ID4gPiA+ID4g PiAtCSAgICAgIHNoLT5zaGFyZV9jYWNoZS5kZXZfZ2VuKTsNCj4gPiA+ID4gPiA+ID4gIAlydGVf c21wX3dtYigpOw0KPiA+ID4gPiA+ID4gPiArCW1seDVfbXJfcmVidWlsZF9jYWNoZSgmc2gtPnNo YXJlX2NhY2hlKTsNCj4gPiA+ID4gPiA+ID4gIAlydGVfcndsb2NrX3JlYWRfdW5sb2NrKCZzaC0+ c2hhcmVfY2FjaGUucndsb2NrKTsNCj4gPiA+ID4gPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+ID4g PiA+ID4gIH0NCj4gPiA+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+ID4gMi4yNS4xDQoNCg==