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 EE10DA00C4; Fri, 1 Jul 2022 21:30:57 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A0A9E40A80; Fri, 1 Jul 2022 21:30:57 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2051.outbound.protection.outlook.com [40.107.22.51]) by mails.dpdk.org (Postfix) with ESMTP id AA8B540A7D for ; Fri, 1 Jul 2022 21:30:56 +0200 (CEST) ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=YzKKsh4MAu38218bQm24C7496SABxNQRy3ixnetqLvx+dACgh7x3yGCKiZfSg8dzRtonAfsZvk1vQlcHffsfdj7giypawj9LHEIJppNvRNEXK7BgJihgcptuS4rsMLrTMZPtMcwmJiE2TrkQllGxB6ohEi9iatNOkikSxmu4Jfohh0jz+5lRA8FjWjLTQUvz+LC+k27tFComFxjV71469SAP8XosKmWnXxmrMqH5UuTuUGMz8u1B1jWhuLLlHBP5+/eXU2+xoYecSuX52me/RbK7nh+OQ+TIZ6lCRTVvMjXslBo5pbBzm7fTe5W+ustEmCROmqnqL3vpcBoUpxa7CQ== ARC-Message-Signature: i=2; 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=KgtVhVPmrKhwDVtaRdbk2Op4a/hco3wxNdk3+zJFKWc=; b=DZPnDsxH4VIk/2Ffag7W29jjth3WO4Ela+KfTR/ZLlxoUyZf1zUXK1DrrulI6OEOSCeNiI07UptSUXPjUSwQ7p10f6S8FJmIP7CP446U8YihC8EcnNHXQVeXjBcIsfWdPA3p9u+NfcczwqSKzpVq8IDgrUwb7jFsWDDtsKrJQTcM1dNUvcpOHR3RX/60Up9yXdPcZFB4eWhwvHPfjDev/Anxx84T9ad2i/HrxkeeVS9IFIL8VBYpyTMDdI7vmLHHWSv+D0cJ2Duh9ZVk6nNGjrZmm4BSSGSobylvqoQWwYGCRYgaA6UBA57Gp6augRFPOIZj60gV9TsZ/aKnjrI50A== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=dpdk.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) 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=KgtVhVPmrKhwDVtaRdbk2Op4a/hco3wxNdk3+zJFKWc=; b=aPu+pxg9zeI1w3a+qJEAm5zFabV5JiQZrgl4YRjQ5X8SWV8IhOLtDrgGR1C/hlRJhvYXCfTNodIktk9y7V7UjtQGuFuxUYFU/6tfEnxwhretBlbsJXtvd+dmZdAoxhQkgFFo76+iveL4laQNKNgoDFwrhEfM1pHdSUV/uqjIaVw= Received: from AS9PR06CA0247.eurprd06.prod.outlook.com (2603:10a6:20b:45f::14) by GVXPR08MB7726.eurprd08.prod.outlook.com (2603:10a6:150:6c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Fri, 1 Jul 2022 19:30:54 +0000 Received: from AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45f:cafe::57) by AS9PR06CA0247.outlook.office365.com (2603:10a6:20b:45f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14 via Frontend Transport; Fri, 1 Jul 2022 19:30:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT039.mail.protection.outlook.com (10.152.17.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14 via Frontend Transport; Fri, 1 Jul 2022 19:30:54 +0000 Received: ("Tessian outbound 3c5325c30453:v121"); Fri, 01 Jul 2022 19:30:53 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: a555b386459d0726 X-CR-MTA-TID: 64aa7808 Received: from 0d064b6e45a7.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F191428D-F0AE-4BC5-B15B-8D8139FBC3EA.1; Fri, 01 Jul 2022 19:30:41 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0d064b6e45a7.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 01 Jul 2022 19:30:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K1OhwoSC5FhHbhYlc58oQ8z99CXmeWneFsbUW/G3YR69+kzF3t80zJam+nDHrDy9XszuTxb37peZHAqbsFfgs6Y/oufH19b+W+NHNLo9oje+bDILIk7uErThAEd9/FICOn3dxroJQZpnwwehiVbuJ5ggoYpqFSKqPRsCFBKdp4ts7qwylVCGNUHCW4PErXhK+ol1H/GXxO3QGSxuFYwewruVNJNeRKB41EQY4PLnX6+5rN+GrmrCo7KC4WARYWprXULkA87b/rpUDADFgBuhCa7NCf2EIxszfyNm29o42TkhkieN+fAYfvy9M1vvtnjR9cAVdljQChpE1RUt+ulSFQ== 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=KgtVhVPmrKhwDVtaRdbk2Op4a/hco3wxNdk3+zJFKWc=; b=DdO966wrVaOhYE6G5mUCtzOckKeMSE5ye2TV4Qy4xgfoWSF8HX8IlnyusnAN/ER+n7m1UK4ajS6oHvmBMjiZ1RDeCIslmeFfkIlFlxBCX+U42M7dcuHNBkGPnLT7GmphvZiZesDeTNx2Mrl+oFjUHf+lbEXhDu+tOeuho7fn1GonBqOVnxbNT7DdmM0RrivkMeGzaS92VECnNMdBxjSEFGRQylbM0L5DhhAGet77jwA5Cla0R2GhiNk4pzwelYFzcaJaoMP0REQZw84TOhOsdi+I1WIIawWZpJNc/cH5l6pMNfCVw7Y7wcpYAwb3zNFGiOuepVfTpC+i+0hq2XKzpQ== 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=KgtVhVPmrKhwDVtaRdbk2Op4a/hco3wxNdk3+zJFKWc=; b=aPu+pxg9zeI1w3a+qJEAm5zFabV5JiQZrgl4YRjQ5X8SWV8IhOLtDrgGR1C/hlRJhvYXCfTNodIktk9y7V7UjtQGuFuxUYFU/6tfEnxwhretBlbsJXtvd+dmZdAoxhQkgFFo76+iveL4laQNKNgoDFwrhEfM1pHdSUV/uqjIaVw= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by AS8PR08MB6325.eurprd08.prod.outlook.com (2603:10a6:20b:332::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Fri, 1 Jul 2022 19:30:40 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::1c7f:6a8d:b518:f972]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::1c7f:6a8d:b518:f972%4]) with mapi id 15.20.5395.014; Fri, 1 Jul 2022 19:30:40 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Konstantin Ananyev , Feifei Wang CC: nd , "dev@dpdk.org" , Ruifeng Wang , "honnappanagarahalli@gmail.com" , nd Subject: RE: [PATCH v1 0/5] Direct re-arming of buffers on receive side Thread-Topic: [PATCH v1 0/5] Direct re-arming of buffers on receive side Thread-Index: AQHYaOu4EddlA+nThkio6GVpTNxEK60tSI6AgAEaNPCABeakgIAFaLvAgATATQCAAI/5AIAoK1bAgAEkOkCAAdLbQA== Date: Fri, 1 Jul 2022 19:30:40 +0000 Message-ID: References: <20220420081650.2043183-1-feifei.wang2@arm.com> <20220516061012.618787-1-feifei.wang2@arm.com> <5320c9dd-8f53-155e-7900-ff02bfa11b4d@yandex.ru> <48994ee9-74b4-7fcc-f61b-c8f45686a031@yandex.ru> <98CBD80474FA8B44BF855DF32C47DC35D870EA@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87199@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D87199@smartserver.smartshare.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 67797769B5EAD74790598FD8B3CDF557.0 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: 1dc06f48-b444-4289-2620-08da5b9836f7 x-ms-traffictypediagnostic: AS8PR08MB6325:EE_|AM5EUR03FT039:EE_|GVXPR08MB7726:EE_ x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: t65+HodAVy2VcnnrI2hKK+JUUFw++kaWLm/mXKGwYb8u1NPyGvvuEHkRiN7bthQA+0m6fZjfxzWoktbT8DJqIOvEc3b9NSijWyZtwLvAteuNM8rvBl9ee+Hx+LHjdnbsTuEUytcNzE/Setra7gr4mWyvDjryFi6wX89NKo5FuT3rwYqmciAYM93Lk9HAAXDd+xqLlfLjCg/BM0YEoxtuXHqhmvwp9Rqy8HogJzusxuu9afkIk5pw8ByCM5ZiXpbQ6ilcOkMw5WoZ8RSfIQ/lQLpre7RS9GGCTCchN2R0uOyT2yaSflym2rX1kPw4VzboVDOAO0prWpWUWblND7+pHOVCMIksKp9VQt12H2rbxJI/pviTxYiCuXDLEC+aguseRzivJNxir9Uo4vS/zbbA+YKhQzd/HrGHiWFyzlGf1Brp7XUenwiXSzdMlolHMrOkZAbzVs9lTgqRdIxf6ZwW7yoXCj6rdtAZmTgSdIGHsKlQ8ix984OZj3l1vCIgMF4Odx6HNXmolUJXGr7qYvScGwaVG+prbNPNHnWSltwsY66X76Ox4sOg+FC7TZUS0Mslrzah84evN1MhOMMOJfKqrNZ2lp5J1ED6IM7pCEyG2y7eEGV8rjWi6wwUuyZxoNdSTPh+02AFuGroV1vkIWhpcX1i4Vi5dh2CUJ3ujLtXme1+Y7c0k0VNqm6G/GWdw9bddVSxGSFOaEMo919Cm2KrgBvL9vBAIdryO9NxoD824Jw2IhpypTXNrdQ5mDhvl/LtLciYU0GG0XQlcKectInm45xkSgrUDH1bfnagxirp02FBL+hFFoFN7ysJMjHHAkVN96Ke0pmKt/r8eMHwQOwf68x+Ktro33mVvPC4ZCuezG4= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(39860400002)(136003)(396003)(346002)(186003)(41300700001)(26005)(7696005)(6506007)(9686003)(2906002)(33656002)(38100700002)(86362001)(38070700005)(55016003)(83380400001)(122000001)(316002)(76116006)(30864003)(4326008)(71200400001)(66446008)(64756008)(66476007)(8676002)(66946007)(66556008)(5660300002)(52536014)(478600001)(54906003)(6636002)(110136005)(966005)(8936002); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6325 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: cdf8967f-5c8d-42ad-d4d2-08da5b982ea1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: J2f3KDDOQAwRp13FH93By8syNjdHVfWQSuDdVTD8a0+DYy95Cr0cReKGQ5iOhfntoGKRzp/xFw+XLQgevsDfWmOwdcetEZ8Z/IGLYWHYh7JXCTw7rPzRVwbFsj0KW2XjWpzQKk2nR8V7Ta20l18WJRykMtrAqz9OpwwF1znNJbrrIHIZcOa7UtCRfAYLjUZ+XlDr0bqKA2NmGoOf4g0nh85UPIJNhHOzmLIpQzdn/55oQbyHycn88pGDgVOIRQwLs9My0PU03KXmufWm2oNaONeaJY/gD+TbDFUlF0Ob6yjUlcBYr7MWKRV0l7Eyk5nNUsoEWZoexxCXZgXQ6szv1XWh8lCaWwwXQZ5P9TOVA6I/6hc6pEj0F2oGmeIUQFkaTkzpYOotxI8Ps+tVCsr3cSyKh7sOYbOEZgbmhqZhXAAHb3ID4Dek/OsOGRra4bO5dY2YNXWMrufWw7rZRoANLi4MGDMsFT5goT6ZfR7Eixrt6DnLt3BlAeQYgYSdpjNYUCUIwYVrYBXR6zSbwU/wrEzvpKSrIMVzXsZsdHII5MlcW6m+w/e/1QcW13ArV8UQGzfS+1r3zOFAcK5A77uoN8s+LuoVn6STTyw9RREXOPvvF2C+08+n594w9ZLhR/bNo89Sc3paIIi6BA9J8hsN4sGlxbCvP8IFwMNbCru/RLvo46/qXtJbGIf3xsNGBCZF/NnHxBNx2WtgIBLLVQXw2GUYRmM07enNO8c+oMOHsoZZU+xWEvVNDaisrEDdrNRd9TYZPRs4Z2levriyAZlVxSn/uWlrpTRcdQSkEZZ0E28+M6b9MsKpo42OO7CJ/uUW/eP7r/9EBLM7ku8HAkDfXA3tBsj8pfhKWS2o8j5eQT0= 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:(13230016)(4636009)(39860400002)(376002)(396003)(136003)(346002)(46966006)(40470700004)(36840700001)(82740400003)(40480700001)(30864003)(356005)(55016003)(33656002)(5660300002)(9686003)(6636002)(86362001)(70586007)(54906003)(7696005)(6506007)(41300700001)(82310400005)(110136005)(316002)(26005)(4326008)(70206006)(81166007)(8676002)(966005)(478600001)(186003)(36860700001)(2906002)(52536014)(336012)(47076005)(83380400001)(40460700003)(8936002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2022 19:30:54.0888 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1dc06f48-b444-4289-2620-08da5b9836f7 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: AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB7726 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 PHNuaXA+DQoNCj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+Pj4+IDE2LzA1LzIwMjIgMDc6MTAsIEZl aWZlaSBXYW5nINC/0LjRiNC10YI6DQo+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4+Pj4+Pj4gQ3Vy cmVudGx5LCB0aGUgdHJhbnNtaXQgc2lkZSBmcmVlcyB0aGUgYnVmZmVycyBpbnRvIHRoZQ0KPiA+ IGxjb3JlDQo+ID4gPiA+ID4+Pj4+Pj4gY2FjaGUgYW5kIHRoZSByZWNlaXZlIHNpZGUgYWxsb2Nh dGVzIGJ1ZmZlcnMgZnJvbSB0aGUNCj4gPiA+ID4gPj4+Pj4+PiBsY29yZQ0KPiA+ID4gPiBjYWNo ZS4NCj4gPiA+ID4gPj4+Pj4+PiBUaGUgdHJhbnNtaXQgc2lkZSB0eXBpY2FsbHkgZnJlZXMgMzIg YnVmZmVycyByZXN1bHRpbmcgaW4NCj4gPiA+ID4gPj4+Pj4+PiAzMio4PTI1NkIgb2Ygc3RvcmVz IHRvIGxjb3JlIGNhY2hlLiBUaGUgcmVjZWl2ZSBzaWRlDQo+ID4gYWxsb2NhdGVzDQo+ID4gPiA+ IDMyDQo+ID4gPiA+ID4+Pj4+Pj4gYnVmZmVycyBhbmQgc3RvcmVzIHRoZW0gaW4gdGhlIHJlY2Vp dmUgc2lkZSBzb2Z0d2FyZSByaW5nLA0KPiA+ID4gPiA+Pj4+Pj4+IHJlc3VsdGluZyBpbiAzMio4 PTI1NkIgb2Ygc3RvcmVzIGFuZCAyNTZCIG9mIGxvYWQgZnJvbSB0aGUNCj4gPiA+ID4gbGNvcmUg Y2FjaGUuDQo+ID4gPiA+ID4+Pj4+Pj4NCj4gPiA+ID4gPj4+Pj4+PiBUaGlzIHBhdGNoIHByb3Bv c2VzIGEgbWVjaGFuaXNtIHRvIGF2b2lkIGZyZWVpbmcNCj4gPiB0by9hbGxvY2F0aW5nDQo+ID4g PiA+ID4+Pj4+Pj4gZnJvbSB0aGUgbGNvcmUgY2FjaGUuIGkuZS4gdGhlIHJlY2VpdmUgc2lkZSB3 aWxsIGZyZWUgdGhlDQo+ID4gPiA+IGJ1ZmZlcnMNCj4gPiA+ID4gPj4+Pj4+PiBmcm9tIHRyYW5z bWl0IHNpZGUgZGlyZWN0bHkgaW50byBpdCdzIHNvZnR3YXJlIHJpbmcuIFRoaXMNCj4gPiB3aWxs DQo+ID4gPiA+ID4+Pj4+Pj4gYXZvaWQgdGhlIDI1NkIgb2YgbG9hZHMgYW5kIHN0b3JlcyBpbnRy b2R1Y2VkIGJ5IHRoZSBsY29yZQ0KPiA+ID4gPiBjYWNoZS4NCj4gPiA+ID4gPj4+Pj4+PiBJdCBh bHNvIGZyZWVzIHVwIHRoZSBjYWNoZSBsaW5lcyB1c2VkIGJ5IHRoZSBsY29yZSBjYWNoZS4NCj4g PiA+ID4gPj4+Pj4+Pg0KPiA+ID4gPiA+Pj4+Pj4+IEhvd2V2ZXIsIHRoaXMgc29sdXRpb24gcG9z ZXMgc2V2ZXJhbCBjb25zdHJhaW50czoNCj4gPiA+ID4gPj4+Pj4+Pg0KPiA+ID4gPiA+Pj4+Pj4+ IDEpVGhlIHJlY2VpdmUgcXVldWUgbmVlZHMgdG8ga25vdyB3aGljaCB0cmFuc21pdCBxdWV1ZSBp dA0KPiA+ID4gPiBzaG91bGQNCj4gPiA+ID4gPj4+Pj4+PiB0YWtlIHRoZSBidWZmZXJzIGZyb20u IFRoZSBhcHBsaWNhdGlvbiBsb2dpYyBkZWNpZGVzIHdoaWNoDQo+ID4gPiA+ID4+Pj4+Pj4gdHJh bnNtaXQgcG9ydCB0byB1c2UgdG8gc2VuZCBvdXQgdGhlIHBhY2tldHMuIEluIG1hbnkgdXNlDQo+ ID4gPiA+ID4+Pj4+Pj4gY2FzZXMgdGhlIE5JQyBtaWdodCBoYXZlIGEgc2luZ2xlIHBvcnQgKFsx XSwgWzJdLCBbM10pLCBpbg0KPiA+ID4gPiA+Pj4+Pj4+IHdoaWNoIGNhc2UNCj4gPiA+ID4gYQ0K PiA+ID4gPiA+Pj4+Pj4+IGdpdmVuIHRyYW5zbWl0IHF1ZXVlIGlzIGFsd2F5cyBtYXBwZWQgdG8g YSBzaW5nbGUgcmVjZWl2ZQ0KPiA+ID4gPiA+Pj4+Pj4+IHF1ZXVlDQo+ID4gPiA+ID4+Pj4+Pj4g KDE6MSBSeCBxdWV1ZTogVHggcXVldWUpLiBUaGlzIGlzIGVhc3kgdG8gY29uZmlndXJlLg0KPiA+ ID4gPiA+Pj4+Pj4+DQo+ID4gPiA+ID4+Pj4+Pj4gSWYgdGhlIE5JQyBoYXMgMiBwb3J0cyAodGhl cmUgYXJlIHNldmVyYWwgcmVmZXJlbmNlcyksDQo+ID4gPiA+ID4+Pj4+Pj4gdGhlbg0KPiA+IHdl DQo+ID4gPiA+ID4+Pj4+Pj4gd2lsbCBoYXZlDQo+ID4gPiA+ID4+Pj4+Pj4gMToyIChSWCBxdWV1 ZTogVFggcXVldWUpIG1hcHBpbmcgd2hpY2ggaXMgc3RpbGwgZWFzeSB0bw0KPiA+ID4gPiBjb25m aWd1cmUuDQo+ID4gPiA+ID4+Pj4+Pj4gSG93ZXZlciwgaWYgdGhpcyBpcyBnZW5lcmFsaXplZCB0 byAnTicgcG9ydHMsIHRoZQ0KPiA+ID4gPiA+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24gY2FuIGJlIGxv bmcuIE1vcmUgb3ZlciB0aGUgUE1EIHdvdWxkIGhhdmUgdG8NCj4gPiA+ID4gPj4+Pj4+PiBzY2Fu IGEgbGlzdCBvZiB0cmFuc21pdCBxdWV1ZXMgdG8gcHVsbCB0aGUgYnVmZmVycyBmcm9tLg0KPiA+ ID4gPiA+Pj4+Pg0KPiA+ID4gPiA+Pj4+Pj4gSnVzdCB0byByZS1pdGVyYXRlIHNvbWUgZ2VuZXJp YyBjb25jZXJucyBhYm91dCB0aGlzDQo+ID4gcHJvcG9zYWw6DQo+ID4gPiA+ID4+Pj4+PiAgICAg LSBXZSBlZmZlY3RpdmVseSBsaW5rIFJYIGFuZCBUWCBxdWV1ZXMgLSB3aGVuIHRoaXMNCj4gPiBm ZWF0dXJlDQo+ID4gPiA+IGlzIGVuYWJsZWQsDQo+ID4gPiA+ID4+Pj4+PiAgICAgICB1c2VyIGNh bid0IHN0b3AgVFggcXVldWUgd2l0aG91dCBzdG9wcGluZyBsaW5rZWQgUlgNCj4gPiBxdWV1ZQ0K PiA+ID4gPiBmaXJzdC4NCj4gPiA+ID4gPj4+Pj4+ICAgICAgIFJpZ2h0IG5vdyB1c2VyIGlzIGZy ZWUgdG8gc3RhcnQvc3RvcCBhbnkgcXVldWVzIGF0DQo+ID4gPiA+ID4+Pj4+PiBoaXMNCj4gPiA+ ID4gd2lsbC4NCj4gPiA+ID4gPj4+Pj4+ICAgICAgIElmIHRoYXQgZmVhdHVyZSB3aWxsIGFsbG93 IHRvIGxpbmsgcXVldWVzIGZyb20NCj4gPiBkaWZmZXJlbnQNCj4gPiA+ID4gcG9ydHMsDQo+ID4g PiA+ID4+Pj4+PiAgICAgICB0aGVuIGV2ZW4gcG9ydHMgd2lsbCBiZWNvbWUgZGVwZW5kZW50IGFu ZCB1c2VyIHdpbGwNCj4gPiBoYXZlDQo+ID4gPiA+IHRvIHBheSBleHRyYQ0KPiA+ID4gPiA+Pj4+ Pj4gICAgICAgY2FyZSB3aGVuIG1hbmFnaW5nIHN1Y2ggcG9ydHMuDQo+ID4gPiA+ID4+Pj4+DQo+ ID4gPiA+ID4+Pj4+IFtGZWlmZWldIFdoZW4gZGlyZWN0IHJlYXJtIGVuYWJsZWQsIHRoZXJlIGFy ZSB0d28gcGF0aCBmb3INCj4gPiA+ID4gPj4+Pj4gdGhyZWFkDQo+ID4gPiA+IHRvDQo+ID4gPiA+ ID4+Pj4+IGNob29zZS4gSWYgdGhlcmUgYXJlIGVub3VnaCBUeCBmcmVlZCBidWZmZXJzLCBSeCBj YW4gcHV0DQo+ID4gYnVmZmVycw0KPiA+ID4gPiA+Pj4+PiBmcm9tIFR4Lg0KPiA+ID4gPiA+Pj4+ PiBPdGhlcndpc2UsIFJ4IHdpbGwgcHV0IGJ1ZmZlcnMgZnJvbSBtZW1wb29sIGFzIHVzdWFsLiBU aHVzLA0KPiA+ID4gPiA+Pj4+PiB1c2Vycw0KPiA+ID4gPiBkbw0KPiA+ID4gPiA+Pj4+PiBub3Qg bmVlZCB0byBwYXkgbXVjaCBhdHRlbnRpb24gbWFuYWdpbmcgcG9ydHMuDQo+ID4gPiA+ID4+Pj4N Cj4gPiA+ID4gPj4+PiBXaGF0IEkgYW0gdGFsa2luZyBhYm91dDogcmlnaHQgbm93IGRpZmZlcmVu dCBwb3J0IG9yDQo+ID4gPiA+ID4+Pj4gZGlmZmVyZW50DQo+ID4gPiA+IHF1ZXVlcw0KPiA+ID4g PiA+Pj4+IG9mIHRoZSBzYW1lIHBvcnQgY2FuIGJlIHRyZWF0ZWQgYXMgaW5kZXBlbmRlbnQgZW50 aXRpZXM6DQo+ID4gPiA+ID4+Pj4gaW4gZ2VuZXJhbCB1c2VyIGlzIGZyZWUgdG8gc3RhcnQvc3Rv cCAoYW5kIGV2ZW4gcmVjb25maWd1cmUNCj4gPiA+ID4gPj4+PiBpbg0KPiA+ID4gPiBzb21lDQo+ ID4gPiA+ID4+Pj4gY2FzZXMpIG9uZSBlbnRpdHkgd2l0aG91dCBuZWVkIHRvIHN0b3Agb3RoZXIg ZW50aXR5Lg0KPiA+ID4gPiA+Pj4+IEkuRSB1c2VyIGNhbiBzdG9wIGFuZCByZS1jb25maWd1cmUg VFggcXVldWUgd2hpbGUga2VlcA0KPiA+IHJlY2VpdmluZw0KPiA+ID4gPiA+Pj4+IHBhY2tldHMg ZnJvbSBSWCBxdWV1ZS4NCj4gPiA+ID4gPj4+PiBXaXRoIGRpcmVjdCByZS1hcm0gZW5hYmxlZCwg SSB0aGluayBpdCB3b3VsZG4ndCBiZSBwb3NzaWJsZQ0KPiA+IGFueQ0KPiA+ID4gPiBtb3JlOg0K PiA+ID4gPiA+Pj4+IGJlZm9yZSBzdG9wcGluZy9yZWNvbmZpZ3VyaW5nIFRYIHF1ZXVlIHVzZXIg d291bGQgaGF2ZSBtYWtlDQo+ID4gc3VyZQ0KPiA+ID4gPiB0aGF0DQo+ID4gPiA+ID4+Pj4gY29y cmVzcG9uZGluZyBSWCBxdWV1ZSB3b3VsZG4ndCBiZSB1c2VkIGJ5IGRhdGFwYXRoLg0KPiA+ID4g PiA+Pj4gSSBhbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgcHJvYmxlbSBiZXR0ZXIuIEZvciB0 aGUgVFggcXVldWUNCj4gPiB0bw0KPiA+ID4gPiBiZSBzdG9wcGVkLA0KPiA+ID4gPiA+PiB0aGUg dXNlciBtdXN0IGhhdmUgYmxvY2tlZCB0aGUgZGF0YSBwbGFuZSBmcm9tIGFjY2Vzc2luZyB0aGUg VFgNCj4gPiA+ID4gcXVldWUuDQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IFN1cmVseSBpdCBpcyB1 c2VyIHJlc3BvbnNpYmlsaXR5IHRub3QgdG8gY2FsbCB0eF9idXJzdCgpIGZvcg0KPiA+ID4gPiBz dG9wcGVkL3JlbGVhc2VkIHF1ZXVlLg0KPiA+ID4gPiA+PiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdo aWxlIFRYIGZvciB0aGF0IHF1ZXVlIGlzIHN0b3BwZWQsIFJYIGZvcg0KPiA+ID4gPiByZWxhdGVk IHF1ZXVlIHN0aWxsDQo+ID4gPiA+ID4+IGNhbiBjb250aW51ZS4NCj4gPiA+ID4gPj4gU28gcnhf YnVyc3QoKSB3aWxsIHRyeSB0byByZWFkL21vZGlmeSBUWCBxdWV1ZSBkYXRhLCB0aGF0IG1pZ2h0 DQo+ID4gYmUNCj4gPiA+ID4gYWxyZWFkeSBmcmVlZCwNCj4gPiA+ID4gPj4gb3Igc2ltdWx0YW5l b3VzbHkgbW9kaWZpZWQgYnkgY29udHJvbCBwYXRoLg0KPiA+ID4gPiA+IFVuZGVyc3Rvb2QsIGFn cmVlIG9uIHRoZSBpc3N1ZQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IEFnYWlu LCBpdCBhbGwgY2FuIGJlIG1pdGlnYXRlZCBieSBjYXJlZnVsbHkgcmUtZGVzaWduaW5nIGFuZA0K PiA+ID4gPiBtb2RpZnlpbmcgY29udHJvbCBhbmQNCj4gPiA+ID4gPj4gZGF0YS1wYXRoIGluc2lk ZSB1c2VyIGFwcCAtIGJ5IGRvaW5nIGV4dHJhIGNoZWNrcyBhbmQNCj4gPiA+ID4gc3luY2hyb25p emF0aW9ucywgZXRjLg0KPiA+ID4gPiA+PiBCdXQgZnJvbSBwcmFjdGljYWwgcG9pbnQgLSBJIHBy ZXN1bWUgbW9zdCBvZiB1c2VycyBzaW1wbHkgd291bGQNCj4gPiA+ID4gYXZvaWQgdXNpbmcgdGhp cw0KPiA+ID4gPiA+PiBmZWF0dXJlIGR1ZSBhbGwgcG90ZW50aWFsIHByb2JsZW1zIGl0IG1pZ2h0 IGNhdXNlLg0KPiA+ID4gPiA+IFRoYXQgaXMgc3ViamVjdGl2ZSwgaXQgYWxsIGRlcGVuZHMgb24g dGhlIHBlcmZvcm1hbmNlDQo+ID4gaW1wcm92ZW1lbnRzDQo+ID4gPiA+IHVzZXJzIHNlZSBpbiB0 aGVpciBhcHBsaWNhdGlvbi4NCj4gPiA+ID4gPiBJTU8sIHRoZSBwZXJmb3JtYW5jZSBpbXByb3Zl bWVudCBzZWVuIHdpdGggdGhpcyBwYXRjaCBpcyB3b3J0aA0KPiA+IGZldw0KPiA+ID4gPiBjaGFu Z2VzLg0KPiA+ID4gPg0KPiA+ID4gPiBZZXMsIGl0IGlzIHN1YmplY3RpdmUgdGlsbCBzb21lIGV4 dGVudCwgdGhvdWdoIG15IGZlZWxpbmcgdGhhdCBpdA0KPiA+ID4gPiBtaWdodCBlbmQtdXAgYmVp bmcgc29ydCBvZiBzeW50aGV0aWMgaW1wcm92ZW1lbnQgdXNlZCBvbmx5IGJ5IHNvbWUNCj4gPiA+ ID4gc2hvdy1jYXNlIGJlbmNobWFya3MuDQo+ID4gPg0KPiA+ID4gSSBiZWxpZXZlIHRoYXQgb25l IHNwZWNpZmljIGltcG9ydGFudCB1c2UgY2FzZSBoYXMgYWxyZWFkeSBiZWVuDQo+ID4gbWVudGlv bmVkLCBzbyBJDQo+ID4gPiBkb24ndCB0aGluayB0aGlzIGlzIGEgYmVuY2htYXJrIG9ubHkgZmVh dHVyZS4NCj4gPiArMQ0KPiA+DQo+ID4gPg0KPiA+ID4gPiAgRnJvbSBteSBwZXJzcGVjdGl2ZSwg aXQgd291bGQgYmUgbXVjaCBtb3JlIHBsYXVzaWJsZSwgaWYgd2UgY2FuDQo+ID4gPiA+IGludHJv ZHVjZSBzb21lIHNvcnQgb2YgZ2VuZXJpYyBpbXByb3ZlbWVudCwgdGhhdCBkb2Vzbid0IGltcG9z ZQ0KPiA+ID4gPiBhbGwgdGhlc2UgZXh0cmEgY29uc3RyYWludHMgYW5kIGltcGxpY2F0aW9ucy4N Cj4gPiA+ID4gTGlrZSBvbmUsIGRpc2N1c3NlZCBiZWxvdyBpbiB0aGF0IHRocmVhZCB3aXRoIFpD IG1lbXBvb2wgYXBwcm9hY2guDQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4gQ29uc2lkZXJpbmcgdGhp cyBmZWF0dXJlIGZyb20gYSBoaWdoIGxldmVsIHBlcnNwZWN0aXZlLCBJIGFncmVlIHdpdGgNCj4g PiBLb25zdGFudGluJ3MNCj4gPiA+IGNvbmNlcm5zLCBzbyBJJ2xsIGFsc28gc3VwcG9ydCBoaXMg dmlld3MuDQo+ID4gV2UgZGlkIGhhY2sgdGhlIFpDIG1lbXBvb2wgYXBwcm9hY2ggWzFdLCBsZXZl bCBvZiBpbXByb3ZlbWVudCBpcw0KPiA+IHByZXR0eSBzbWFsbCBjb21wYXJlZCB3aXRoIHRoaXMg cGF0Y2guDQo+ID4NCj4gPiBbMV0gaHR0cDovL3BhdGNoZXMuZHBkay5vcmcvcHJvamVjdC9kcGRr L3BhdGNoLzIwMjIwNjEzMDU1MTM2LjE5NDk3ODQtDQo+ID4gMS1mZWlmZWkud2FuZzJAYXJtLmNv bS8NCj4gPg0KPiA+ID4NCj4gPiA+IElmIHRoaXMgcGF0Y2ggaXMgc3VwcG9zZWQgdG8gYmUgYSBn ZW5lcmljIGZlYXR1cmUsIHBsZWFzZSBhZGQNCj4gPiA+IHN1cHBvcnQNCj4gPiBmb3IgaXQgaW4g YWxsDQo+ID4gPiBOSUMgUE1Ecywgbm90IGp1c3Qgb25lLiAoUmVnYXJkbGVzcyBpZiB0aGUgZmVh dHVyZSBpcyBkZWZpbmVkIGFzIDE6MQ0KPiA+IG1hcHBpbmcgb3INCj4gPiA+IE46TSBtYXBwaW5n LikgSXQgaXMgcHVyZWx5IHNvZnR3YXJlLCBzbyBpdCBzaG91bGQgYmUgYXZhaWxhYmxlIGZvcg0K PiA+IGFsbCBQTURzLCBub3QNCj4gPiA+IGp1c3QgeW91ciBmYXZvcml0ZSBoYXJkd2FyZSEgQ29u c2lkZXIgdGhlICJmYXN0IG1idWYgZnJlZSIgZmVhdHVyZSwNCj4gPiB3aGljaCBpcw0KPiA+ID4g cHVyZSBzb2Z0d2FyZTsgd2h5IGlzIHRoYXQgZmVhdHVyZSBub3QgaW1wbGVtZW50ZWQgaW4gYWxs IFBNRHM/DQo+ID4gQWdyZWUsIGl0IGlzIGdvb2QgdG8gaGF2ZSBpdCBzdXBwb3J0ZWQgaW4gYWxs IHRoZSBkcml2ZXJzLiBXZSBkbyBub3QNCj4gPiBoYXZlIGEgZmF2b3JpdGUgaGFyZHdhcmUsIGp1 c3QgcGlja2VkIGEgUE1EIHdoaWNoIHdlIGFyZSBtb3JlIGZhbWlsaWFyDQo+ID4gd2l0aC4gV2Ug ZG8gcGxhbiB0byBpbXBsZW1lbnQgaW4gb3RoZXIgcHJvbWluZW50IFBNRHMuDQo+ID4NCj4gPiA+ DQo+ID4gPiBBIHNlY29uZGFyeSBwb2ludCBJJ20gbWFraW5nIGhlcmUgaXMgdGhhdCB0aGlzIHNw ZWNpZmljIGZlYXR1cmUgd2lsbA0KPiA+IGxlYWQgdG8gYW4NCj4gPiA+IGVub3Jtb3VzIGFtb3Vu dCBvZiBjb3B5LXBhc3RlIGNvZGUsIGluc3RlYWQgb2YgYSBnZW5lcmljIGxpYnJhcnkNCj4gPiBm dW5jdGlvbg0KPiA+ID4gZWFzaWx5IGF2YWlsYWJsZSBmb3IgYWxsIFBNRHMuDQo+ID4gQXJlIHlv dSB0YWxraW5nIGFib3V0IHRoZSBpNDBlIGRyaXZlciBjb2RlIGluIHNwZWNpZmljPyBJZiB5ZXMs IGFncmVlDQo+ID4gd2Ugc2hvdWxkIGF2b2lkIGNvcHktcGFzdGUgYW5kIHdlIHdpbGwgbG9vayB0 byByZWR1Y2UgdGhhdC4NCj4gDQo+IFllcywgSSBhbSB0YWxraW5nIGFib3V0IHRoZSBjb2RlIHRo YXQgbmVlZHMgdG8gYmUgY29waWVkIGludG8gYWxsIHByb21pbmVudA0KPiBQTURzLiBQZXJoYXBz IHlvdSBjYW4gbW92ZSB0aGUgbWFqb3JpdHkgb2YgaXQgaW50byBhIGNvbW1vbiBkaXJlY3Rvcnks IGlmIG5vdA0KPiBpbiBhIGdlbmVyaWMgbGlicmFyeSwgc28gdGhlIG1vZGlmaWNhdGlvbiBwZXIg UE1EIGJlY29tZXMgc21hbGxlci4gKEkgc2VlIHRoZQ0KPiBzYW1lIGNvcHktcGFzdGUgaXNzdWUg d2l0aCB0aGUgImZhc3QgbWJ1ZiBmcmVlIiBmZWF0dXJlLCBpZiB0byBiZSBzdXBwb3J0ZWQgYnkN Cj4gb3RoZXIgdGhhbiB0aGUgaTQwZSBQTUQuKQ0KVGhlIGN1cnJlbnQgYWJzdHJhY3Rpb24gZG9l cyBub3QgYWxsb3cgZm9yIGNvbW1vbiBjb2RlIGF0IHRoaXMgKGxvd2VyKSBsZXZlbCBhY3Jvc3Mg YWxsIHRoZSBQTURzLiBJZiB3ZSBsb29rIGF0ICJmYXN0IGZyZWUiLCBpdCBpcyBhY2Nlc3Npbmcg dGhlIGRldmljZSBwcml2YXRlIHN0cnVjdHVyZSBmb3IgdGhlIGxpc3Qgb2YgYnVmZmVycyB0byBm cmVlLiBJZiBpdCBuZWVkcyB0byBiZSBjb21tb24gY29kZSwgdGhpcyBuZWVkcyB0byBiZSBsaWZ0 ZWQgdXAgYWxvbmcgd2l0aCBvdGhlciBkZXBlbmRlbnQgY29uZmlndXJhdGlvbiB0aHJlc2hvbGRz IGV0Yy4NCg0KPiANCj4gUGxlYXNlIG5vdGUgdGhhdCBJIGRvIG5vdCBleHBlY3QgeW91IHRvIGlt cGxlbWVudCB0aGlzIGZlYXR1cmUgaW4gb3RoZXIgUE1Ecw0KPiB0aGFuIHlvdSBuZWVkLiBJIHdh cyB0cnlpbmcgdG8gbWFrZSB0aGUgcG9pbnQgdGhhdCBpbXBsZW1lbnRpbmcgYSBzb2Z0d2FyZQ0K PiBmZWF0dXJlIGluIGEgUE1EIHJlcXVpcmVzIGNvcHktcGFzdGluZyB0byBvdGhlciBQTURzLCB3 aGljaCBjYW4gcmVxdWlyZSBhIGJpZw0KPiBlZmZvcnQ7IHdoaWxlIGltcGxlbWVudGluZyBpdCBp biBhIGxpYnJhcnkgYW5kIGNhbGxpbmcgdGhlIGxpYnJhcnkgZnJvbSB0aGUgUE1Ecw0KPiByZXF1 aXJlIGEgc21hbGxlciBlZmZvcnQgcGVyIFBNRC4gSSBpbnRlbnRpb25hbGx5IHBocmFzZWQgaXQg c29tZXdoYXQNCj4gcHJvdm9raW5nbHksIGFuZCB3YXMgbHVja3kgbm90IHRvIG9mZmVuZCBhbnlv bmUuIDotKQ0KPiANCj4gPg0KPiA+DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+Pg0KPiA+ID4g PiA+Pj4gTGlrZSBGZWlmZWkgc2F5cywgdGhlIFJYIHNpZGUgaGFzIHRoZSBub3JtYWwgcGFja2V0 IGFsbG9jYXRpb24NCj4gPiA+ID4gPj4+IHBhdGgNCj4gPiA+ID4gc3RpbGwgYXZhaWxhYmxlLg0K PiA+ID4gPiA+Pj4gQWxzbyB0aGlzIHNvdW5kcyBsaWtlIGEgY29ybmVyIGNhc2UgdG8gbWUsIHdl IGNhbiBoYW5kbGUgdGhpcw0KPiA+ID4gPiB0aHJvdWdoIGNoZWNrcyBpbg0KPiA+ID4gPiA+PiB0 aGUgcXVldWVfc3RvcCBBUEkuDQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IERlcGVuZHMuDQo+ID4g PiA+ID4+IGlmIGl0IHdvdWxkIGJlIGFsbG93ZWQgdG8gbGluayBxdWV1ZXMgb25seSBmcm9tIHRo ZSBzYW1lIHBvcnQsDQo+ID4gdGhlbg0KPiA+ID4gPiB5ZXMsIGV4dHJhDQo+ID4gPiA+ID4+IGNo ZWNrcyBmb3IgcXVldWUtc3RvcCBtaWdodCBiZSBlbm91Z2guDQo+ID4gPiA+ID4+IEFzIHJpZ2h0 IG5vdyBEUERLIGRvZXNuJ3QgYWxsb3cgdXNlciB0byBjaGFuZ2UgbnVtYmVyIG9mIHF1ZXVlcw0K PiA+ID4gPiB3aXRob3V0DQo+ID4gPiA+ID4+IGRldl9zdG9wKCkgZmlyc3QuDQo+ID4gPiA+ID4+ IFRob3VnaCBpZiBpdCB3b3VsZCBiZSBhbGxvd2VkIHRvIGxpbmsgcXVldWVzIGZyb20gZGlmZmVy ZW50DQo+ID4gcG9ydHMsDQo+ID4gPiA+IHRoZW4gc2l0dWF0aW9uDQo+ID4gPiA+ID4+IHdpbGwg YmUgbXVjaCB3b3JzZS4NCj4gPiA+ID4gPj4gUmlnaHQgbm93IHBvcnRzIGFyZSB0b3RhbGx5IGlu ZGVwZW5kZW50IGVudGl0aWVzIChleGNlcHQgc29tZQ0KPiA+ID4gPiBzcGVjaWFsIGNhc2VzIGxp a2UNCj4gPiA+ID4gPj4gbGluay1ib25kaW5nLCBldGMuKS4NCj4gPiA+ID4gPj4gQXMgb25lIHBv cnQgY2FuIGtlZXAgZG9pbmcgUlgvVFgsIHNlY29uZCBvbmUgY2FuIGJlIHN0b3BwZWQsDQo+ID4g PiA+ID4+IHJlLQ0KPiA+ID4gPiBjb25mZ3VyZWQsDQo+ID4gPiA+ID4+IGV2ZW4gZGV0YWNoZWQs IGFuZCBuZXdseSBhdHRhY2hlZCBkZXZpY2UgbWlnaHQgcmUtdXNlIHNhbWUgcG9ydA0KPiA+ID4g PiBudW1iZXIuDQo+ID4gPiA+ID4gSSBzZWUgdGhpcyBhcyBhIHNpbWlsYXIgcmVzdHJpY3Rpb24g dG8gdGhlIG9uZSBkaXNjdXNzZWQgYWJvdmUuDQo+ID4gPiA+DQo+ID4gPiA+IFllcywgdGhleSBh cmUgc2ltaWxhciBpbiBwcmluY2lwYWwsIHRob3VnaCBJIHRoaW5rIHRoYXQgdGhlIGNhc2UNCj4g PiB3aXRoDQo+ID4gPiA+IHF1ZXVlcyBmcm9tIGRpZmZlcmVudCBwb3J0IHdvdWxkIG1ha2UgdGhp bmdzIG11Y2ggbW9yZSBjb21wbGV4Lg0KPiA+ID4gPg0KPiA+ID4gPiAgPiBEbyB5b3Ugc2VlIGFu eSBpc3N1ZXMgaWYgd2UgZW5mb3JjZSB0aGlzIHdpdGggY2hlY2tzPw0KPiA+ID4gPg0KPiA+ID4g PiBIYXJkIHRvIHRlbGwgc3RyYWlnaHR3YXksIGEgbG90IHdpbGwgZGVwZW5kIGhvdyBzbWFydCBz dWNoDQo+ID4gPiA+IGltcGxlbWVudGF0aW9uIHdvdWxkIGJlLg0KPiA+ID4gPiBVc3VhbGx5IERQ REsgdGVuZHMgbm90IHRvIGF2b2lkIGhlYXZ5IHN5bmNocm9uaXphdGlvbnMgd2l0aGluIGl0cw0K PiA+ID4gPiBkYXRhLXBhdGggZnVuY3Rpb25zLg0KPiA+ID4NCj4gPiA+IENlcnRhaW5seSEgSW1w bGVtZW50aW5nIG1vcmUgYW5kIG1vcmUgb2Ygc3VjaCBmZWF0dXJlcyBpbiB0aGUgUE1Ecw0KPiA+ IHdpbGwgbGVhZA0KPiA+ID4gdG8gbG9uZ2VyIGFuZCBsb25nZXIgZGF0YSBwbGFuZSBjb2RlIHBh dGhzIGluIHRoZSBQTURzLiBJdCBpcyB0aGUNCj4gPiAic2FsYW1pDQo+ID4gPiBtZXRob2QiLCB3 aGVyZSBlYWNoIHNtYWxsIHBpZWNlIG1ha2VzIG5vIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UsIGJ1 dA0KPiA+IHRoZXkgYWxsDQo+ID4gPiBhZGQgdXAsIGFuZCBldmVudHVhbGx5IHRoZSBzdW0gb2Yg dGhlbSBkb2VzIGltcGFjdCB0aGUgcGVyZm9ybWFuY2UNCj4gPiA+IG9mDQo+ID4gdGhlDQo+ID4g PiBnZW5lcmFsIHVzZSBjYXNlIG5lZ2F0aXZlbHkuDQo+ID4gSXQgd291bGQgYmUgZ29vZCB0byBo YXZlIGEgdGVzdCBydW5uaW5nIGluIFVOSCB0aGF0IHNob3dzIHRoZQ0KPiA+IHBlcmZvcm1hbmNl IHRyZW5kLg0KPiArMQ0KPiANCj4gPg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPj4NCj4gPiA+ ID4gPj4NCj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+Pj4+Pg0KPiA+ID4gPiA+Pj4+Pj4gLSB2ZXJ5 IGxpbWl0ZWQgdXNhZ2Ugc2NlbmFyaW8gLSBpdCB3aWxsIGhhdmUgYSBwb3NpdGl2ZQ0KPiA+IGVm ZmVjdA0KPiA+ID4gPiBvbmx5DQo+ID4gPiA+ID4+Pj4+PiAgICAgIHdoZW4gd2UgaGF2ZSBhIGZp eGVkIGZvcndhcmRpbmcgbWFwcGluZzogYWxsIChvcg0KPiA+ID4gPiA+Pj4+Pj4gbmVhcmx5DQo+ ID4gPiA+IGFsbCkgcGFja2V0cw0KPiA+ID4gPiA+Pj4+Pj4gICAgICBmcm9tIHRoZSBSWCBxdWV1 ZSBhcmUgZm9yd2FyZGVkIGludG8gdGhlIHNhbWUgVFggcXVldWUuDQo+ID4gPiA+ID4+Pj4+DQo+ ID4gPiA+ID4+Pj4+IFtGZWlmZWldIEFsdGhvdWdoIHRoZSB1c2FnZSBzY2VuYXJpbyBpcyBsaW1p dGVkLCB0aGlzIHVzYWdlDQo+ID4gPiA+IHNjZW5hcmlvDQo+ID4gPiA+ID4+Pj4+IGhhcyBhIHdp ZGUgcmFuZ2Ugb2YgYXBwbGljYXRpb25zLCBzdWNoIGFzIE5JQyB3aXRoIG9uZSBwb3J0Lg0KPiA+ ID4gPiA+Pj4+DQo+ID4gPiA+ID4+Pj4geWVzLCB0aGVyZSBhcmUgTklDcyB3aXRoIG9uZSBwb3J0 LCBidXQgbm8gZ3VhcmFudGVlIHRoZXJlDQo+ID4gPiA+ID4+Pj4gd291bGRuJ3QNCj4gPiA+ID4g YmUNCj4gPiA+ID4gPj4+PiBzZXZlcmFsIHN1Y2ggTklDcyB3aXRoaW4gdGhlIHN5c3RlbS4NCj4g PiA+ID4gPj4+IFdoYXQgSSBzZWUgaW4gbXkgaW50ZXJhY3Rpb25zIGlzLCBhIHNpbmdsZSBOSUMv RFBVIGlzIHVuZGVyDQo+ID4gPiA+IHV0aWxpemVkIGZvciBhIDINCj4gPiA+ID4gPj4gc29ja2V0 IHN5c3RlbS4gU29tZSBhcmUgYWRkaW5nIG1vcmUgc29ja2V0cyB0byB0aGUgc3lzdGVtIHRvDQo+ ID4gYmV0dGVyDQo+ID4gPiA+IHV0aWxpemUgdGhlDQo+ID4gPiA+ID4+IERQVS4gVGhlIE5JQyBi YW5kd2lkdGggY29udGludWVzIHRvIGdyb3cgc2lnbmlmaWNhbnRseS4gSSBkbw0KPiA+ID4gPiA+ PiBub3QNCj4gPiA+ID4gdGhpbmsgdGhlcmUgd2lsbA0KPiA+ID4gPiA+PiBiZSBhIG11bHRpLURQ VSBwZXIgc2VydmVyIHNjZW5hcmlvLg0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ PiBJbnRlcmVzdGluZy4uLiBmcm9tIG15IGV4cGVyaWVuY2UgaXQgaXMgdmlzYS12ZXJzYToNCj4g PiA+ID4gPj4gaW4gbWFueSBjYXNlcyAyMDBHYi9zIGlzIG5vdCB0aGF0IG11Y2ggdGhlc2UgZGF5 cyB0byBzYXR1cmF0ZQ0KPiA+ID4gPiA+PiBtb2Rlcm4NCj4gPiA+ID4gMiBzb2NrZXQNCj4gPiA+ ID4gPj4geDg2IHNlcnZlci4NCj4gPiA+ID4gPj4gVGhvdWdoIEkgc3VwcG9zZSBhIGxvdCBkZXBl bmRzIG9uIHBhcnRpY3VsYXIgSFcgYW5kIGFjdHVhbA0KPiA+IHdvcmtsb2FkLg0KPiA+ID4gPiA+ Pg0KPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+Pj4+PiBGdXJ0cmhlcm1vcmUs IEkgdGhpbmsgdGhpcyBpcyBhIHRyYWRlb2ZmIGJldHdlZW4gcGVyZm9ybWFuY2UNCj4gPiBhbmQN Cj4gPiA+ID4gPj4+Pj4gZmxleGliaWxpdHkuDQo+ID4gPiA+ID4+Pj4+IE91ciBnb2FsIGlzIHRv IGFjaGlldmUgYmVzdCBwZXJmb3JtYW5jZSwgdGhpcyBtZWFucyB3ZSBuZWVkDQo+ID4gdG8NCj4g PiA+ID4gZ2l2ZQ0KPiA+ID4gPiA+Pj4+PiB1cCBzb21lIGZsZXhpYmlsaXR5IGRlY2lzaXZlbHku IEZvciBleGFtcGxlIG9mICdGQVNUX0ZSRUUNCj4gPiBNb2RlJywNCj4gPiA+ID4gaXQNCj4gPiA+ ID4gPj4+Pj4gZGVsZXRlcyBtb3N0IG9mIHRoZSBidWZmZXIgY2hlY2sgKHJlZmNudCA+IDEsIGV4 dGVybmFsDQo+ID4gYnVmZmVyLA0KPiA+ID4gPiBjaGFpbg0KPiA+ID4gPiA+Pj4+PiBidWZmZXIp LCBjaG9vc2VzIGEgc2hvcmVzdCBwYXRoLCBhbmQgdGhlbiBhY2hpZXZlDQo+ID4gPiA+ID4+Pj4+ IHNpZ25pZmljYW50IHBlcmZvcm1hbmNlDQo+ID4gPiA+ID4+Pj4gaW1wcm92ZW1lbnQuDQo+ID4g PiA+ID4+Pj4+PiBXb25kZXIgZGlkIHlvdSBoYWQgYSBjaGFuY2UgdG8gY29uc2lkZXIgbWVtcG9v bC1jYWNoZSBaQw0KPiA+IEFQSSwNCj4gPiA+ID4gPj4+Pj4+IHNpbWlsYXIgdG8gb25lIHdlIGhh dmUgZm9yIHRoZSByaW5nPw0KPiA+ID4gPiA+Pj4+Pj4gSXQgd291bGQgYWxsb3cgdXMgb24gVFgg ZnJlZSBwYXRoIHRvIGF2b2lkIGNvcHlpbmcgbWJ1ZnMgdG8NCj4gPiA+ID4gPj4+Pj4+IHRlbXBv cmFyeSBhcnJheSBvbiB0aGUgc3RhY2suDQo+ID4gPiA+ID4+Pj4+PiBJbnN0ZWFkIHdlIGNhbiBw dXQgdGhlbSBzdHJhaWdodCBmcm9tIFRYIFNXIHJpbmcgdG8gdGhlDQo+ID4gbWVtcG9vbA0KPiA+ ID4gPiBjYWNoZS4NCj4gPiA+ID4gPj4+Pj4+IFRoYXQgc2hvdWxkIHNhdmUgZXh0cmEgc3RvcmUv bG9hZCBmb3IgbWJ1ZiBhbmQgbWlnaHQgaGVscA0KPiA+ID4gPiA+Pj4+Pj4gdG8gYWNoaWV2ZSBz b21lIHBlcmZvcm1hbmNlIGdhaW4gd2l0aG91dCBieS1wYXNzaW5nIG1lbXBvb2wuDQo+ID4gPiA+ ID4+Pj4+PiBJdCBwcm9iYWJseSB3b3VsZG4ndCBiZSBhcyBmYXN0IGFzIHdoYXQgeW91IHByb3Bv c2luZywgYnV0DQo+ID4gPiA+ID4+Pj4+PiBtaWdodA0KPiA+ID4gPiBiZQ0KPiA+ID4gPiA+Pj4+ Pj4gZmFzdCBlbm91Z2ggdG8gY29uc2lkZXIgYXMgYWx0ZXJuYXRpdmUuDQo+ID4gPiA+ID4+Pj4+ PiBBZ2FpbiwgaXQgd291bGQgYmUgYSBnZW5lcmljIG9uZSwgc28gd2UgY2FuIGF2b2lkIGFsbCB0 aGVzZQ0KPiA+ID4gPiA+Pj4+Pj4gaW1wbGljYXRpb25zIGFuZCBsaW1pdGF0aW9ucy4NCj4gPiA+ ID4gPj4+Pj4NCj4gPiA+ID4gPj4+Pj4gW0ZlaWZlaV0gSSB0aGluayB0aGlzIGlzIGEgZ29vZCB0 cnkuIEhvd2V2ZXIsIHRoZSBtb3N0DQo+ID4gaW1wb3J0YW50DQo+ID4gPiA+ID4+Pj4+IHRoaW5n IGlzIHRoYXQgaWYgd2UgY2FuIGJ5cGFzcyB0aGUgbWVtcG9vbCBkZWNpc2l2ZWx5IHRvDQo+ID4g cHVyc3VlDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+Pj4+PiBzaWduaWZpY2FudCBwZXJmb3JtYW5j ZSBnYWlucy4NCj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+Pj4+IEkgdW5kZXJzdGFuZCB0aGUgaW50 ZW50aW9uLCBhbmQgSSBwZXJzb25hbGx5IHRoaW5rIHRoaXMgaXMNCj4gPiB3cm9uZw0KPiA+ID4g PiBhbmQNCj4gPiA+ID4gPj4+PiBkYW5nZXJvdXMgYXR0aXR1ZGUuDQo+ID4gPiA+ID4+Pj4gV2Ug aGF2ZSBtZW1wb29sIGFic3RyYWN0aW9uIGluIHBsYWNlIGZvciB2ZXJ5IGdvb2QgcmVhc29uLg0K PiA+ID4gPiA+Pj4+IFNvIHdlIG5lZWQgdG8gdHJ5IHRvIGltcHJvdmUgbWVtcG9vbCBwZXJmb3Jt YW5jZSAoYW5kIEFQSSBpZg0KPiA+ID4gPiA+Pj4+IG5lY2Vzc2FyeSkgYXQgZmlyc3QgcGxhY2Us IG5vdCB0byBhdm9pZCBpdCBhbmQgYnJlYWsgb3VyIG93bg0KPiA+ID4gPiA+Pj4+IHJ1bGVzDQo+ ID4gPiA+IGFuZA0KPiA+ID4gPiA+PiByZWNvbW1lbmRhdGlvbnMuDQo+ID4gPiA+ID4+PiBUaGUg YWJzdHJhY3Rpb24gY2FuIGJlIHRob3VnaHQgb2YgYXQgYSBoaWdoZXIgbGV2ZWwuIGkuZS4gdGhl DQo+ID4gPiA+IGRyaXZlciBtYW5hZ2VzIHRoZQ0KPiA+ID4gPiA+PiBidWZmZXIgYWxsb2NhdGlv bi9mcmVlIGFuZCBpcyBoaWRkZW4gZnJvbSB0aGUgYXBwbGljYXRpb24uIFRoZQ0KPiA+ID4gPiBh cHBsaWNhdGlvbiBkb2VzDQo+ID4gPiA+ID4+IG5vdCBuZWVkIHRvIGJlIGF3YXJlIG9mIGhvdyB0 aGVzZSBjaGFuZ2VzIGFyZSBpbXBsZW1lbnRlZC4NCj4gPiA+ID4gPj4+DQo+ID4gPiA+ID4+Pj4N Cj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+Pj4+PiBGb3IgWkMsIHRoZXJlIG1heWJlIGEgcHJvYmxl bSBmb3IgaXQgaW4gaTQwZS4gVGhlIHJlYXNvbiBmb3INCj4gPiA+ID4gPj4+Pj4gdGhhdCBwdXQg VHggYnVmZmVycyBpbnRvIHRlbXBvcmFyeSBpcyB0aGF0IGk0MGVfdHhfZW50cnkNCj4gPiA+ID4g Pj4+Pj4gaW5jbHVkZXMNCj4gPiA+ID4gYnVmZmVyDQo+ID4gPiA+ID4+Pj4+IHBvaW50ZXIgYW5k IGluZGV4Lg0KPiA+ID4gPiA+Pj4+PiBUaHVzIHdlIGNhbm5vdCBwdXQgVHggU1dfcmluZyBlbnRy eSBpbnRvIG1lbXBvb2wgZGlyZWN0bHksDQo+ID4gPiA+ID4+Pj4+IHdlDQo+ID4gPiA+IG5lZWQN Cj4gPiA+ID4gPj4+Pj4gdG8gZmlyc3RsdCBleHRyYWN0IG1idWYgcG9pbnRlci4gRmluYWxseSwg dGhvdWdoIHdlIHVzZSBaQywNCj4gPiB3ZQ0KPiA+ID4gPiBzdGlsbA0KPiA+ID4gPiA+Pj4+PiBj YW4ndCBhdm9pZCB1c2luZyBhIHRlbXBvcmFyeSBzdGFjayB0byBleHRyYWN0IFR4IGJ1ZmZlcg0K PiA+ID4gPiBwb2ludGVycy4NCj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+Pj4+IFdoZW4gdGFsa2lu ZyBhYm91dCBaQyBBUEkgZm9yIG1lbXBvb2wgY2FjaGUgSSBtZWFudCBzb21ldGhpbmcNCj4gPiA+ ID4gbGlrZToNCj4gPiA+ID4gPj4+PiB2b2lkICoqIG1lbXBvb2xfY2FjaGVfcHV0X3pjX3N0YXJ0 KHN0cnVjdCBydGVfbWVtcG9vbF9jYWNoZQ0KPiA+ICptYywNCj4gPiA+ID4gPj4+PiB1aW50MzJf dCAqbmJfZWxlbSwgdWludDMyX3QgZmxhZ3MpOyB2b2lkDQo+ID4gPiA+ID4+Pj4gbWVtcG9vbF9j YWNoZV9wdXRfemNfZmluaXNoKHN0cnVjdA0KPiA+ID4gPiA+Pj4+IHJ0ZV9tZW1wb29sX2NhY2hl ICptYywgdWludDMyX3QgbmJfZWxlbSk7IGkuZS4gX3N0YXJ0XyB3aWxsDQo+ID4gPiA+ID4+Pj4g cmV0dXJuIHVzZXIgYSBwb2ludGVyIGluc2lkZSBtcC1jYWNoZSB3aGVyZSB0byBwdXQgZnJlZSBl bGVtcw0KPiA+IGFuZA0KPiA+ID4gPiA+Pj4+IG1heA0KPiA+ID4gPiBudW1iZXINCj4gPiA+ID4g Pj4+PiBvZiBzbG90cyB0aGF0IGNhbiBiZSBzYWZlbHkgZmlsbGVkLg0KPiA+ID4gPiA+Pj4+IF9m aW5pc2hfIHdpbGwgdXBkYXRlIG1jLT5sZW4uDQo+ID4gPiA+ID4+Pj4gQXMgYW4gZXhhbXBsZToN Cj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+Pj4+IC8qIGV4cGVjdCB0byBmcmVlIE4gbWJ1ZnMgKi8N Cj4gPiA+ID4gPj4+PiB1aW50MzJfdCBuID0gTjsNCj4gPiA+ID4gPj4+PiB2b2lkICoqcCA9IG1l bXBvb2xfY2FjaGVfcHV0X3pjX3N0YXJ0KG1jLCAmbiwgLi4uKTsNCj4gPiA+ID4gPj4+Pg0KPiA+ ID4gPiA+Pj4+IC8qIGZyZWUgdXAgdG8gbiBlbGVtcyAqLw0KPiA+ID4gPiA+Pj4+IGZvciAoaSA9 IDA7IGkgIT0gbjsgaSsrKSB7DQo+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPj4+PiAgICAgIC8qIGdl dCBuZXh0IGZyZWUgbWJ1ZiBmcm9tIHNvbWV3aGVyZSAqLw0KPiA+ID4gPiA+Pj4+ICAgICAgbWIg PSBleHRyYWN0X2FuZF9wcmVmcmVlX21idWYoLi4uKTsNCj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+ Pj4+ICAgICAgLyogbm8gbW9yZSBmcmVlIG1idWZzIGZvciBub3cgKi8NCj4gPiA+ID4gPj4+PiAg ICAgIGlmIChtYiA9PSBOVUxMKQ0KPiA+ID4gPiA+Pj4+ICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ ID4+Pj4NCj4gPiA+ID4gPj4+PiAgICAgIHBbaV0gPSBtYjsNCj4gPiA+ID4gPj4+PiB9DQo+ID4g PiA+ID4+Pj4NCj4gPiA+ID4gPj4+PiAvKiBmaW5hbGl6ZSBaQyBwdXQsIHdpdGggX2lfIGZyZWVk IGVsZW1zICovDQo+ID4gPiA+ID4+Pj4gbWVtcG9vbF9jYWNoZV9wdXRfemNfZmluaXNoKG1jLCBp KTsNCj4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+Pj4+IFRoYXQgd2F5LCBJIHRoaW5rIHdlIGNhbiBv dmVyY29tZSB0aGUgaXNzdWUgd2l0aA0KPiA+ID4gPiA+Pj4+IGk0MGVfdHhfZW50cnkgeW91IG1l bnRpb25lZCBhYm92ZS4gUGx1cyBpdCBtaWdodCBiZSB1c2VmdWwgaW4NCj4gPiA+ID4gPj4+PiBv dGhlciBzaW1pbGFyDQo+ID4gcGxhY2VzLg0KPiA+ID4gPiA+Pj4+DQo+ID4gPiA+ID4+Pj4gQW5v dGhlciBhbHRlcm5hdGl2ZSBpcyBvYnZpb3VzbHkgdG8gc3BsaXQgaTQwZV90eF9lbnRyeSBpbnRv DQo+ID4gdHdvDQo+ID4gPiA+ID4+Pj4gc3RydWN0cyAob25lIGZvciBtYnVmLCBzZWNvbmQgZm9y IGl0cyBtZXRhZGF0YSkgYW5kIGhhdmUgYQ0KPiA+ID4gPiBzZXBhcmF0ZQ0KPiA+ID4gPiA+Pj4+ IGFycmF5IGZvciBlYWNoIG9mIHRoZW0uDQo+ID4gPiA+ID4+Pj4gVGhvdWdoIHdpdGggdGhhdCBh cHByb2FjaCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBubyBwZXJmIGRyb3BzDQo+ID4gd2lsbA0KPiA+ ID4gPiBiZQ0KPiA+ID4gPiA+Pj4+IGludHJvZHVjZWQsIHBsdXMgcHJvYmFibHkgbW9yZSBjb2Rl IGNoYW5nZXMgd2lsbCBiZSByZXF1aXJlZC4NCj4gPiA+ID4gPj4+IENvbW1pdCAnNTE3MWI0ZWU2 YjYiIGFscmVhZHkgZG9lcyB0aGlzIChpbiBhIGRpZmZlcmVudCB3YXkpLA0KPiA+IGJ1dA0KPiA+ ID4gPiBqdXN0IGZvcg0KPiA+ID4gPiA+PiBBVlg1MTIuIFVuZm9ydHVuYXRlbHksIGl0IGRvZXMg bm90IHJlY29yZCBhbnkgcGVyZm9ybWFuY2UNCj4gPiA+ID4gaW1wcm92ZW1lbnRzLiBXZQ0KPiA+ ID4gPiA+PiBjb3VsZCBwb3J0IHRoaXMgdG8gQXJtIE5FT04gYW5kIGxvb2sgYXQgdGhlIHBlcmZv cm1hbmNlLg0KPiA+ID4gPiA+DQo+ID4gPiA+DQoNCg==