From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3260C352AA for ; Wed, 2 Oct 2019 10:15:03 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 1DF6C21783 for ; Wed, 2 Oct 2019 10:15:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="lknnEkJ5"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="sjbZhK+6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1DF6C21783 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=marvell.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6BF451BEA7; Wed, 2 Oct 2019 12:15:01 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id B0BBD8F96 for ; Wed, 2 Oct 2019 12:14:59 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x92A5Pmu029310; Wed, 2 Oct 2019 03:14:56 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=6U2TikH5uO7igm/26SkQwfnW386kxdTmUDYUp/CF8ig=; b=lknnEkJ5Oz77YWSRxtXNMkpJOAbTZ2NgBOQvI018p7DchK7fczjBBF8RXs6/uhZ7Svka ulzZ0n+EFP2Ab6LT/IItIediME9kReCIearsaIv4rXke5XZIdH3DsPRAmXaEVAZxQPXg 6hGxOVZxIDyPnSc7AnqruCr0/mufIqtIOXB3jI6JTCu+VMVUSLU1Z0ICi6rjfXOjKWR7 whDbAoNAGaWp/T/HJj75ADcjIQUPaxJvc0fYazHH9guugVUtc12FtST0Puly64S0pkSg sMM/TmvMUVF8klfaYjFtwvEwlfKjhIqUo0Hx2zcfq+zI8bxPXaoyXlCUjBU8J4aXZKtC sg== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 2va71mpn1s-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 02 Oct 2019 03:14:55 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 2 Oct 2019 03:14:54 -0700 Received: from NAM05-BY2-obe.outbound.protection.outlook.com (104.47.50.54) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 2 Oct 2019 03:14:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HI5avAqlq/PSweZg3EY219SW90aaDWZzk0rOE7hdgJr+7EhRDgcj2o8LIz+RiUfOJJP6DNYw3ZZ988ioORvy1yBIWaLZXJzyVpleR6RWiaAMS4/GL7e/+I9xxp1lP9a0GWYVlwEElhOQjQsdIi1S7Kl1TeXkTE2dtzf0PqhCiuY69ejVz8JnvgYdsqQ0ot0pUL04fKzTVZLu0YwlWLfpFAIuI/g8gUprlMd69X38fvunFs/O9s9VV3R/7t8gjvNyXec7C6TGrIWNIslAU84hNp+BezQ6TzPSDr0TPUp1WqXTe+IKDIdfqUUZXggYOk/MkW7HjP6FgOUEbN9mts4Obg== 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=6U2TikH5uO7igm/26SkQwfnW386kxdTmUDYUp/CF8ig=; b=kYarSsG2kStVELB/J/Aj1bhdNfBsIrfWifljORQibzpEVdwqQrX06ObqOoZe5RfmkTA6S0+ntKoCi5fe3gg96X//x/c3fcXiKcHO9TDhZ/s9vAuFl/+TaqJYw8mg0vsEpPlXa9y6x+XunPcHKRZi5V5fQcCJl8mTBcCHSNQZirYJhvNtJ/wGu1L0X81oHi3Jbd7XWO6QfqSinfzc9NlwNiiUwA6IFh7+vYpY6AnOggykY8QTUI5CdQ11RJFvLc2qrZSh2WVyTU+VcMM8iB2lbVUH4CmBNkaEmSuhWZej8rZafZ+va+U92hXZke/VVgpO2zIVCtH2EupwfuefZ8cZ8w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6U2TikH5uO7igm/26SkQwfnW386kxdTmUDYUp/CF8ig=; b=sjbZhK+62cMNmS/trttuSGX5+cSLETZIF+AqHdArGDhPqcoQzvMtcMSDjI+t/DONd8Pm5LJqFrzY7ALsfUEI00Z7dvtNLSEGq1dt8k7aE9hY8SngPMdyGWWbpNJ9Blmb/dxF7XHnE/sQx/ocnqE6eKfnaXRkUehHFA3LVN3NKr4= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (20.179.20.218) by MN2PR18MB3101.namprd18.prod.outlook.com (10.255.239.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.17; Wed, 2 Oct 2019 10:14:53 +0000 Received: from MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::6d15:3367:4c9:5385]) by MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::6d15:3367:4c9:5385%7]) with mapi id 15.20.2305.023; Wed, 2 Oct 2019 10:14:53 +0000 From: Anoob Joseph To: "Ananyev, Konstantin" , "Smoczynski, MarcinX" , "akhil.goyal@nxp.com" CC: "dev@dpdk.org" , Jerin Jacob Kollanukkaran , Narayana Prasad Raju Athreya , Archana Muniganti Thread-Topic: [dpdk-dev] [PATCH v3 0/3] add fallback session Thread-Index: AQHVcgRo85zyvQn15EqlYfBjRx4gCqc9gzWQgABnUACAAOcWgIAFcQcAgAAK3fA= Date: Wed, 2 Oct 2019 10:14:52 +0000 Message-ID: References: <20190904141642.14820-1-marcinx.smoczynski@intel.com> <20190923114415.17932-1-marcinx.smoczynski@intel.com> <2601191342CEEE43887BDE71AB977258019196B087@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB977258019196D5B4@irsmsx105.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB977258019196D5B4@irsmsx105.ger.corp.intel.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [122.175.98.131] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 331391fb-3553-43f3-b583-08d747215e04 x-ms-traffictypediagnostic: MN2PR18MB3101: x-ms-exchange-purlcount: 4 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:42; x-forefront-prvs: 0178184651 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(366004)(136003)(376002)(346002)(39860400002)(13464003)(199004)(189003)(6246003)(2906002)(9686003)(86362001)(6116002)(55016002)(6306002)(2501003)(3846002)(71200400001)(305945005)(8676002)(71190400001)(81166006)(25786009)(81156014)(4326008)(107886003)(99286004)(11346002)(8936002)(7696005)(66066001)(54906003)(256004)(966005)(110136005)(74316002)(14454004)(316002)(478600001)(30864003)(486006)(6436002)(14444005)(476003)(19627235002)(33656002)(5660300002)(76176011)(229853002)(446003)(66946007)(66476007)(64756008)(66556008)(66446008)(7736002)(76116006)(53546011)(102836004)(6506007)(186003)(26005)(52536014); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB3101; H:MN2PR18MB2877.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: diFSRa1XFMI4WR5WNsih2RN5+yyR9zCIk0gakd1hPXym+LMaFwxMxGqmfBPfgBs97xYT34jSi0M0WsbzADUx1HJemzX8dvElwRJhyeVgBiUh6SNybjDb7SCpplzudcmPmhIZbxJNF8rGGA9nwQvz++1CXJRr4hkeIypNRD+1PmBDecRwQgcuFBb99LPr71wum3Tzj4E52SLkwRdWn5A/lhuyJ5UQ9tbtV4ZiDiMnFIFcbDVfaKfjaM0vo5FoGm+URaEp3mO3QUEUZ0vZXVSrWAUE/e11FdIn+neBlbE729LpahFRXfVCQG7LTmoLFheeSsjjOgpXxiBTZVG/mFSCt9DPP/x0NY9TN9ZElG1bnbEDWyzL97hFVM4qhAY6F+BCy9f2CdxMu63Vi9R2BdWmjED+tQ4KC5lGi3qPjIm9vkrKFB/5qkh1oVlUFEpQKy45WwDwoyA4O34Dzmbpz/9oMw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 331391fb-3553-43f3-b583-08d747215e04 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Oct 2019 10:14:53.0185 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Fc4o0cOWFoWm6v3/1yuV5GCrCNGvoGGb2fW3Ky5u9nkxkEGZsKR0dR+XG6t8i07RDUCNVusVOdFHrRKMUq+xXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3101 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-02_06:2019-10-01,2019-10-02 signatures=0 Subject: Re: [dpdk-dev] [PATCH v3 0/3] add fallback session X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" SGkgS29uc3RhbnRpbiwNCg0KUGxlYXNlIHNlZSBpbmxpbmUuDQoNClRoYW5rcywNCkFub29iDQoN Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5hbnlldiwgS29uc3RhbnRp biA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4NCj4gU2VudDogTW9uZGF5LCBTZXB0ZW1i ZXIgMzAsIDIwMTkgNzowMSBQTQ0KPiBUbzogQW5vb2IgSm9zZXBoIDxhbm9vYmpAbWFydmVsbC5j b20+OyBTbW9jenluc2tpLCBNYXJjaW5YDQo+IDxtYXJjaW54LnNtb2N6eW5za2lAaW50ZWwuY29t PjsgYWtoaWwuZ295YWxAbnhwLmNvbQ0KPiBDYzogZGV2QGRwZGsub3JnOyBKZXJpbiBKYWNvYiBL b2xsYW51a2thcmFuIDxqZXJpbmpAbWFydmVsbC5jb20+OyBOYXJheWFuYQ0KPiBQcmFzYWQgUmFq dSBBdGhyZXlhIDxwYXRocmV5YUBtYXJ2ZWxsLmNvbT47IEFyY2hhbmEgTXVuaWdhbnRpDQo+IDxt YXJjaGFuYUBtYXJ2ZWxsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW1BBVENIIHYz IDAvM10gYWRkIGZhbGxiYWNrIHNlc3Npb24NCj4gDQo+IA0KPiBIaSBBbm9vYiwNCj4gDQo+ID4g PiA+IEkndmUgZmV3IG1vcmUgb2JzZXJ2YXRpb25zIHJlZ2FyZGluZyB0aGUgcHJvcG9zZWQgZmVh dHVyZS4NCj4gPiA+ID4NCj4gPiA+ID4gMS4gRnJvbSB3aGF0IEkgdW5kZXJzdG9vZCwgaWYgYW4g RVNQIHBhY2tldCBlbmRzIHVwIG9uIGFuDQo+ID4gPiA+IHVucHJvdGVjdGVkIGludGVyZmFjZSBh bmQgZG9lc24ndCBoYXZlICdQS1RfUlhfU0VDX09GRkxPQUQnIGJpdA0KPiA+ID4gPiBzZXQsIHRo ZW4gdGhlIHBhY2tldA0KPiA+ID4gd291bGQgYmUgbG9va2VkIHVwIHRvIHNlZSB0aGUgYXNzb2Np YXRlZCBTQSBhbmQgdGhlbiBmYWxsYmFjaw0KPiA+ID4gc2Vzc2lvbiBpcyBmaWd1cmVkIG91dCBh bmQgdGhlbiBmdXJ0aGVyIHByb2Nlc3NpbmcgaXMgZG9uZS4NCj4gPiA+ID4NCj4gPiA+ID4gQ2Fu IHlvdSBjb25maXJtIGlmIEkgdW5kZXJzdG9vZCB0aGUgc2VxdWVuY2UgY29ycmVjdGx5PyBJZiB5 ZXMsDQo+ID4gPiA+IHRoZW4gYXJlbid0IHdlIGRvaW5nIGFuIGV4dHJhIGxvb2t1cCBpbiB0aGUg cy93PyBUaGUgcGFja2V0IG1heSBiZQ0KPiA+ID4gPiBsb29rZWQgYnkgdGhlIGgvdyB1c2luZyBy dGVfZmxvdyBhbmQgdGhhdCBpbmZvcm1hdGlvbiBjb3VsZCBiZQ0KPiA+ID4gPiB1c2VkIHRvIGRl dGVybWluZSB0aGUNCj4gPiA+IFNBLiBBbHNvLCBpZiB0aGUgRVNQIHBhY2tldCBpcyBleHBlY3Rl ZCB0byBiZSBmb3J3YXJkZWQsIHRoZW4gdGhlDQo+ID4gPiBhYm92ZSBsb2dpYyB3aWxsIGFkZCBh biB1bm5lY2Vzc2FyeSBsb29rdXAgZXZlbiBhZnRlciB5b3VyIGgvdyBoYXMNCj4gPiA+IGRldGVj dGVkIHRoYXQgdGhlIHBhY2tldCBuZWVkIG5vdCBiZSBzZWN1cml0eSBwcm9jZXNzZWQuDQo+ID4g Pg0KPiA+ID4gTm90IHN1cmUgSSB1bmRlcnN0b29kIHlvdXIgd2hvbGUgc3RhdGVtZW50IGFib3Zl Lg0KPiA+ID4gQUZBSUssIHJpZ2h0IG5vdyAod2l0aCBkcGRrIG1hc3RlcikgZm9yIHVucHJvdGVj dGVkIGlmYWNlIGl0IHdvcmtzIGxpa2UgdGhhdDoNCj4gPiA+DQo+ID4gPiAxLiAgc2xpdCBpbmNv bWluZyB0cmFmZmljIGludG8gMyBncm91cHM6IEVTUCBwYWNrZXRzLCBJUHY0IHBhY2tldHMsIElQ djYNCj4gcGFja2V0cy4NCj4gPiA+IEZvciBFU1AgcGFja2V0czoNCj4gPiA+IDIuIHBlcmZvcm0g U0FEIGxvb2t1cA0KPiA+ID4gICAgIGEuIGlmIGl0IGZhaWxzIChub24gU0EgZm91bmQgZm9yIHRo YXQgU1BJKSwgdGhlbiBkcm9wIHRoZSBwYWNrZXQuDQo+ID4gPiAgICAgYi4gb3RoZXJ3aXNlIChT QSBmb3VuZCkgcHJvY2VzcyB0aGUgcGFja2V0IHVzaW5nIGZvdW5kIFNBDQo+ID4gPg0KPiA+ID4g V2hhdCBmYWxsLWJhY2sgcGF0Y2ggYWRkczoNCj4gPiA+IEJlZm9yZSBzdGVwIDIuYiBjaGVjazoN Cj4gPiA+IGRvZXMgdGhhdCBTQSBoYXMgaXRzIHByaW1hcnkgc2Vzc2lvbiAgd2l0aCB0eXBlIElO TElORS1DUllQVE8gYW5kDQo+ID4gPiBkb2VzIEhXIGZhaWwgdG8gZG8gSVBzZWMgcmVhbHRlZCBw cm9jZXNzaW5nIGZvciBpdCAoYnkgc29tZSByZWFzb24pPw0KPiA+ID4gSWYgeWVzLCB0aGVuIG1h cmsgdGhpcyBwYWNrZXQgdG8gYmUgcHJvY2Vzc2VkIGJ5IGZhbGwtYmFjayBzZXNzaW9uLg0KPiA+ ID4gaWYgKE1CVUZfTk9fU0VDX09GRkxPQUQocGt0KSAmJiBzYS0+ZmFsbGJhY2tfc2Vzc2lvbnMg PiAwKSB7DQo+ID4gPiAgICAgICAgICAgICAgICAgdWludHB0cl90IGludHNhID0gKHVpbnRwdHJf dClzYTsNCj4gPiA+ICAgICAgICAgICAgICAgICBpbnRzYSB8PSBJUFNFQ19TQV9PRkZMT0FEX0ZB TExCQUNLX0ZMQUc7DQo+ID4gPiAgICAgICAgICAgICAgICAgcmVzdWx0X3NhID0gKHZvaWQgKilp bnRzYTsgIH0NCj4gPiA+DQo+ID4gPiBTbyBmcm9tIG15IHBlcnNwZWN0aXZlLCBubyBhZGRpdGlv bmFsIGxvb2t1cCB3aGVyZSBpbnRyb2R1Y2VkLg0KPiA+DQo+ID4gW0Fub29iXSBGb3IgaW5saW5l IHByb2Nlc3NpbmcsIGgvdyBkb2VzIGEgbG9va3VwIGFuZCBmaWd1cmVzIG91dCB0aGUgc2VjdXJp dHkNCj4gcHJvY2Vzc2luZyB0byBiZSBkb25lIG9uIHRoZSBwYWNrZXQuDQo+ID4gInJ0ZV9zZWN1 cml0eV9nZXRfdXNlcmRhdGEoKSIgYWxsb3dzIHMvdyB0byBmdXJ0aGVyIHNlZ3JlZ2F0ZSB0aGF0 DQo+ID4gaW5mby4gSW4gdGhpcyBhcHByb2FjaCwgSSBiZWxpZXZlIHdlIGRvbid0IGNvbnNpZGVy IGhvdyBzdWNoIGluZm8gZnJvbSBoL3cgY2FuDQo+IGJlIHVzZWQuDQo+IA0KPiBSaWdodCBub3cg aXQgaXMgbm90IHRoZSBjYXNlIHdpdGggaXBzZWMtc2VjZ3c6DQoNCltBbm9vYl0gQXJlIHlvdSBz YXlpbmcgdGhlcmUgaXMgbm8gaC93IGxvb2t1cCBpbnZvbHZlZCB3aGVuIGRvaW5nIGlubGluZSBj cnlwdG8gcHJvY2Vzc2luZz8gVGhlbiBJJ20gY29uZnVzZWQuIE15IHVuZGVyc3RhbmRpbmcgaXMg dGhhdCBydGVfZmxvdyB3aXRoIEFDVElPTiB0eXBlIGFzIFNFQ1VSSVRZIGlzIGJlaW5nIHVzZWQg dG8gc2V0dXAgaC93IGxvb2t1cHMuDQoNCj4gZm9yIGVhY2ggaW5ib3VuZCBFU1AgcGFja2V0IGl0 ICphbHdheXMqIGRvZXMgYSBsb29rdXAgaW4gU1cgYmFzZWQgU0FEQiwgYW5kIGlmDQo+IGxvb2t1 cCBmYWlscyAtIGRyb3BzIHRoZSBwYWNrZXQgKHNlZSAyLmEgYWJvdmUpLg0KPiBTbywgSSBzdGls bCBub3Qgc2VlIGFueSBhZGRpdGlvbmFsIGxvb2t1cHMgaW50cm9kdWNlZCB3aXRoIHRoZSBwYXRj aC4NCg0KW0Fub29iXSBJbiBjYXNlIG9mIGlubGluZSBjcnlwdG8sIHlvdSBjb3VsZCBkbyB0aGF0 LiBObyBkaXNhZ3JlZW1lbnQuIEJ1dCB0aGF0IGRvZXNuJ3QgbWVhbiB0aGF0IGlzIHRoZSBvbmx5 IHdheS4gSWYgUE1EcyBjYW4gcmV0cmlldmUgaW5mbyBhYm91dCBoL3cgbG9va3VwcyBhbmQgcGFz cyBpdCBvbiB0byB0aGUgdXBwZXIgbGF5ZXJzLCBpc24ndCB0aGF0IHRoZSBiZXR0ZXIgYXBwcm9h Y2g/IA0KIA0KPiANCj4gPg0KPiA+ID4gQWxzbyBBRkFJSywgcmlnaHQgbm93IHRoZXJlIGlzIG5v IHBvc3NpYmlsaXR5IHRvIGNvbmZpZ3VyZQ0KPiA+ID4gaXBzZWMtc2VjZ3cgdG8gQllQQVNTIHNv bWUgRVNQIHRyYWZmaWMuDQo+ID4gPiBTaG91bGQgd2UgZG8gaXQgKHRvIGNvbmZvcm0gdG8gaXBz ZWMgUkZDKSAtIHRoYXQncyBwcm9iYWJseSBzdWJqZWN0DQo+ID4gPiBvZiBhbm90aGVyIGRpc2N1 c3Npb24uDQo+ID4NCj4gPiBbQW5vb2JdIFRoZSBhcHByb2FjaCAoY2hvaWNlIG9mIGZsYWdzKSBm b3JjZXMgYSBzb2Z0d2FyZS1iYXNlZCBTQQ0KPiA+IGxvb2t1cCBmb3IgcGFja2V0cyB0aGF0IG5l ZWQgdG8gYmUgYnlwYXNzZWQgaW5zdGVhZCBvZiBsZXZlcmFnaW5nIHBvc3NpYmxlDQo+IGhhcmR3 YXJlIFNBIGxvb2t1cC4gSSBkb24ndCB0aGluayB3aGF0IGlwc2VjLXNlY2d3IGRvZXMgbWF0dGVy cyBoZXJlLg0KPiANCj4gSSBkbyBub3QgYWdyZWUgd2l0aCB0aGF0IHN0YXRlbWVudC4NCj4gRmly c3Qgb2YgYWxsIC0gY3VycmVudCBwYXRjaCBkb2Vzbid0IGludHJvZHVjZSBhbnkgYWRkaXRpb25h bCBTVyBsb29rdXBzLCBzZWUNCj4gYWJvdmUuDQo+IFNlY29uZCwgaWYgc29tZW9uZSB3b3VsZCBs aWtlIHRvIGFkZCBCWVBBU1MgZm9yIEVTUCBwYWNrZXRzIGludG8gaXBzZWMtc2VjZ3csIEkNCj4g dGhpbmsgaGUgd291bGQgaGF2ZSB0byBpbnNlcnQgbmV3IGNvZGUgdGhhdCBkbyBkZS1tdXggKmJl Zm9yZSogYW55IEVTUA0KPiByZWxhdGVkIHByb2Nlc3Npbmcgc3RhcnRzLg0KPiBNb3N0IG9idmlv dXMgdmFyaWFudDogYXQgcHJlcGFyZV9vbmVfcGFja2V0KCkgd2hlbiB3ZSBzcGxpdCBvdXIgaW5j b21pbmcNCj4gdHJhZmZpYyB0byBJUHNlYyBhbmQgbm9uLUlQc2VjIG9uZXMuDQo+IFNlY29uZCB2 YXJpYW50IC0gYXQgZWFybHkgc3RhZ2Ugb2Ygc2luZ2xlX2luYm91bmRfbG9va3VwKCksIHN0cmFp Z2h0IGFmdGVyIGFjdHVhbA0KPiBTQUQgbG9va3VwIGZhaWx1cmUuDQo+IEluIGJvdGggY2FzZXMs IEkgZG9uJ3Qgc2VlIGhvdyBzZXNzaW9uIHNlbGVjdGlvbiAocHJpbWFyeSBvciBmYWlsbGJhY2sp IHdvdWxkDQo+IGFmZmVjdCB1cyBoZXJlLCBhY3R1YWwgZGVjaXNpb24gZG8gd2Ugd2FudCB0byBQ Uk9DRVNTIG9yIEJZUEFTUyBwYXJ0aWN1bGFyIEVTUA0KPiBwYWNrZXQgbmVlZHMgdG8gdGFrZSBw bGFjZSBiZWZvcmUgdGhhdC4NCj4gU28gSSBzdGlsbCBiZWxpZXZlIHdlIGFyZSBvayBoZXJlLg0K DQpbQW5vb2JdIEkgZG9uJ3QgdGhpbmsgeW91IHVuZGVyc3Rvb2Qgd2hhdCBJJ20gdHJ5aW5nIHRv IGhpZ2hsaWdodCBoZXJlLiBZb3UgY291bGQgaGF2ZSBhIHNpdHVhdGlvbiB3aGVuIGgvdyBjYW4g ZGV0ZWN0IHRoYXQgdGhlIHBhY2tldCBoYXMgdG8gYmUgIlBST1RFQ1QiZWQgdXNpbmcgYW4gImlu bGluZSBjcnlwdG8iIHNlc3Npb24uIEJ1dCB0aGVuIGl0IG1pZ2h0IGRldGVjdCB0aGF0IGl0IGNh bm5vdCBwcm9jZWVkIHdpdGggaW5saW5lIHByb2Nlc3NpbmcgYmVjYXVzZSBvZiBzb21lIGlzc3Vl IChmcmFnbWVudGF0aW9uLCBoL3cgcXVldWUgb3ZlcmZsb3cgZXRjKS4gTm93IHRoZSBoL3cgaGFz IGFscmVhZHkgZmlndXJlZCBvdXQgdGhlIGFjdGlvbiB0byBiZSBkb25lIHRvIHRoZSBwYWNrZXQu IElmIFBNRHMgYWxsb3cgdGhpcyB0byBiZSBjb21tdW5pY2F0ZWQgdG8gdGhlIGFwcGxpY2F0aW9u LCB0aGUgYXBwbGljYXRpb24gd29uJ3QgYmUgcmVxdWlyZWQgdG8gZG8gdGhlIGxvb2t1cC4NCg0K SW4gaW5saW5lIGNyeXB0bywgYXBwbGljYXRpb24gY2FuIGlnbm9yZSB0aGUgaC93IGxvb2t1cCBk YXRhIGFuZCBkbyBhIHMvdyBsb29rdXAgd2l0aCB0aGUgcHJvdG9jb2wgaGVhZGVycyBhcyB0aGV5 IGFyZSBub3Qgc3RyaXBwZWQgb2ZmLiBJdCB3YXMgZG9uZSB0aGlzIHdheSwgYmVjYXVzZSBBUEkg YW5kIHRoZSBhc3NvY2lhdGVkIG1lYW5zIHRvIGdldCB0aGlzIGluZm8gZnJvbSBQTUQgd2FzIG5v dCBpbnRyb2R1Y2VkIHdoZW4gaW5saW5lIGNyeXB0byBhbmQgY29ycmVzcG9uZGluZyBzdXBwb3J0 IGluIEludGVsJ3MgUE1EIHdhcyBhZGRlZC4gQnV0IGlubGluZSBwcm90b2NvbCBjYW5ub3QgZG8g dGhlIGxvb2t1cCBpbiB0aGUgYXBwbGljYXRpb24gYW5kIHNvIHRoZSBjb25jZXB0IG9mIHVzZXJk YXRhIGV0YyB3YXMgaW50cm9kdWNlZC4gVGhlIHNhbWUgY2FuIGJlIGFwcGxpZWQgdG8gaW5saW5l IGNyeXB0byBhbHNvLiBBZHZhbnRhZ2U/IEl0IGNvdWxkIHJlbW92ZSB0aGUgZXh0cmEgbG9va3Vw IGRvbmUgaW4gcy93Lg0KDQpUbyBzdW1tYXJpemUsIHdlIGNhbm5vdCBhc3N1bWUgdGhhdCBldmVy eSBpbmxpbmUgY3J5cHRvIHBhY2tldCBuZWVkIHRvIGxvb2tlZCB1cCBpbiB0aGUgYXBwbGljYXRp b24gdG8gZmlndXJlIG91dCB0aGUgcHJvY2Vzc2luZyBkb25lIG9uIHRoZSBwYWNrZXQuIFRoZXJl IGNhbiBiZSBhcHBsaWNhdGlvbnMgd2hpY2ggcmVsaWVzIG9uIGgvdyBsb29rdXAgZGF0YSB0byBm aWd1cmUgb3V0IHRoZSBwcm9jZXNzaW5nIGRvbmUuIA0KDQpFeGFtcGxlOiBVc2luZyBydGVfZmxv dywgSSBjYW4gY3JlYXRlIGEgcnVsZSBmb3IgRVNQIHBhY2tldHMgdG8gYmUgTUFSS2VkLiBUaGVy ZSBpcyBubyBzZWN1cml0eSBzZXNzaW9uIGNyZWF0ZWQgZm9yIHRoZSBmbG93IGFuZCB0aGUgYXBw bGljYXRpb24gaW50ZW5kcyB0byBmb3J3YXJkIHRoaXMgZmxvdyBwYWNrZXRzIHRvIGEgZGlmZmVy ZW50IHBvcnQuIFdpdGggeW91ciBhcHByb2FjaCwgZXZlbiB0aGVzZSBwYWNrZXRzIHdvdWxkIGJl IGxvb2tlZCB1cC4gVGhlIHBhY2tldCB3aWxsIGhhdmUgaW5mbyBmcm9tIHRoZSBoL3cgbG9va3Vw IHdoaWNoIGRvZXNuJ3QgZ2V0IHVzZWQsIGJlY2F1c2UgdGhlIGFwcHJvYWNoIGZhaWxzIHRvIGlu dHJvZHVjZSB0aGUgcmVxdWlyZWQgY29uY2VwdHMuIA0KDQpEb2VzIHRoZSBhYm92ZSBzb3VuZCBs aWtlIEJZUEFTUz8gWWVzLg0KRG9lcyBpcHNlYy1zZWNndyBkbyBpdCB0aGlzIHdheT8gTm8uDQpE b2VzIHRoaXMgYXBwcm9hY2ggcHJldmVudCBhbiBhcHBsaWNhdGlvbiBmcm9tIGludHJvZHVjaW5n IHN1Y2ggYSBCWVBBU1M/IFllcy4NCg0KPiANCj4gPg0KPiA+IEZvciBleGFtcGxlLCBFU04gd2Fz IG5vdCBzdXBwb3J0ZWQgYnkgaXBzZWMtc2VjZ3cgKGJlZm9yZSBsaWJyYXJ5IG1vZGUNCj4gPiB3 YXMgaW50cm9kdWNlZCksIGJ1dCBldmVyeSBzaW5nbGUgbGlicmFyeSBjaGFuZ2UgYW5kIGFwcGxp Y2F0aW9uDQo+ID4gY2hhbmdlIHdhcyBhZGRlZCBrZWVwaW5nIGluIG1pbmQgdGhhdCBFU04gaXMg YSB2YWxpZCBmZWF0dXJlIGZvciBpcHNlYy4gU28gaXQgaXMNCj4gb25lIHRoaW5nIHRvIHNheSBp cHNlYy1zZWNndyBkb2Vzbid0IHN1cHBvcnQgRVNQIGJ5cGFzcyBhbmQgc2F5aW5nIHRoZSBzb2x1 dGlvbg0KPiBkb2Vzbid0IGNvbnNpZGVyIGEgcG9zc2liaWxpdHkgb2YgRVNQIGJ5cGFzcy4NCj4g Pg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gMi4gVGhlIHNvbHV0aW9uIHByb3Bvc2VkIGhlcmUg c2VlbXMgbGlrZSBhZGRpbmcgdGhlIGhhbmRsaW5nIGluDQo+ID4gPiA+IGlwc2VjLXNlY2d3IGlu c3RlYWQgb2YgaXBzZWMgbGlicmFyeS4gSW4gb3RoZXIgd29yZHMsIHRoaXMgZmVhdHVyZQ0KPiA+ ID4gPiBpcyBub3QgZ2V0dGluZw0KPiA+ID4gYWRkZWQgaW4gaXBzZWMgbGlicmFyeSwgd2hpY2gg d2FzIHN1cHBvc2VkIHRvIHNpbXBsaWZ5IHRoZSB3aG9sZQ0KPiA+ID4gaXBzZWMgdXNhZ2UgaW4g RFBESywgYnV0IGZhaWxzIHRvIGhhbmRsZSB0aGUgY2FzZSBvZiBmcmFnbWVudGF0aW9uLg0KPiA+ ID4NCj4gPiA+IFdoYXQgd2UgaGF2ZSByaWdodCBub3cgd2l0aCBpcHNlYyBsaWJyYXJ5IGlzIFNB IChsb3cpIGxldmVsIEFQSS4NCj4gPiA+IEl0IGNhbiBoYW5kbGUgbXVsdGktc2VnbWVudCBwYWNr ZXRzIHByb3Blcmx5LCBidXQgZXhwZWN0cyBzb21lb25lDQo+ID4gPiBlbHNlIHRvIGRvIG90aGVy IHN0ZXBzIChmcmFnbWVudGF0aW9uL3JlYXNzZW1ibHkpLg0KPiA+ID4gaXBzZWMtc2VjZ3cgZGVt b25zdHJhdGVzIGhvdyBsaWJydGVfaXBfZnJhZyBhbmQgbGlicnRlX2lwc2VjIGNhbiBiZQ0KPiA+ ID4gdXNlZCB0b2dldGhlciB0byBkZWFsIHdpdGggZnJhZ21lbnRlZCBJUHNlYyB0cmFmZmljIGlu IGEgcHJvcGVyIG1hbm5lci4NCj4gPiA+IFByb2JhYmx5IGluIGZ1dHVyZSB3ZSdsbCBjb25zaWRl ciBhZGRpbmcgc29tZSBoaWdoLWxldmVsIEFQSSB0aGF0DQo+ID4gPiB3aWxsIGJlIGFibGUgdG8g ZG8gd2hvbGUgcHJvY2Vzc2luZyB1bmRlciBob29kIChTUEQvU0FEIGxvb2t1cCwNCj4gPiA+IGZy YWdtZW50L3JlYXNzZW1ibHksIGFjdHVhbCBJUHNlYyBwYWNrZXQgcHJvY2Vzc2luZywgbWF0Y2hp bmcNCj4gPiA+IGluYm91bmQgc2VsZWN0b3JzLCBldGMuKSwgYnV0IHJpZ2h0IG5vdyBpdCBpcyBu b3QgdGhlIGNhc2UuDQo+ID4gPg0KPiA+ID4gPiBBbHNvLCBzaW5jZSB0aGUgZmFsbGJhY2sgZmVh dHVyZSBpcyBlbnRpcmVseSBkb25lIGluIHRoZQ0KPiA+ID4gPiBhcHBsaWNhdGlvbiwgaXQgYmVn cyB0aGUNCj4gPiA+IHF1ZXN0aW9uIHdoeSB0aGUgc2FtZSBmZWF0dXJlIGlzIG9taXR0ZWQgZm9y IGxlZ2FjeSB1c2UgY2FzZS4NCj4gPiA+DQo+ID4gPiBCZWNhdXNlIGxlZ2FjeSBtb2RlIGRvZXNu J3Qgc3VwcG9ydCBtdWx0aS1zZWcgcGFja2V0cyBhdCBmaXJzdCBwbGFjZS4NCj4gPiA+IEFsc28g aXQgaXMgYW4gZXh0cmEgb3ZlcmhlYWQgdG8gc3VwcG9ydCAyIGNvZGUtcGF0aHMgKGxlZ2FjeSBh bmQNCj4gPiA+IGxpYnJhcnkpIGZvciB0aGUgc2FtZSBhcHAsIHNvIHdlJ2QgbGlrZSBpbiBmdXR1 cmUgdG8gZGVwcmVjYXRlIGFuZA0KPiA+ID4gbGF0ZXIgcmVtb3ZlIGxlZ2FjeSBjb2RlLSBwYXRo Lg0KPiA+ID4gQXMgYSBmaXJzdCBzdGVwIHdlIHByb3Bvc2UgdG8gbWFrZSBsaWJyYXJ5IGNvZGUt cGF0aCBhIGRlZmF1bHQgb25lOg0KPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQu Y29tL3YyL3VybD91PWh0dHAtM0FfX3BhdGNoZXMuZHBkay5vcmcNCj4gPiA+DQo+IF9jb3Zlcl81 ODI0N18mZD1Ed0lGQWcmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9alBmQjhyd3d2aVJTeHlM DQo+IFdzMg0KPiA+ID4gbjZCLVdZTG4xdjlTeVRNclQ1RVFxaDJUVSZtPWIzRTQyOWZ1bzhQLUs1 WGZIOHdHLQ0KPiA3aHdyMWQ4b000dUpHRXJBa2JmDQo+ID4gPiBEdkEmcz12ejdpb1V6Sk91em9K ZG1WN1FPMFFMUEtZbjF5dEZzal8wZVlhdGJTQ3JnJmU9DQo+ID4NCj4gPiBbQW5vb2JdIEV2ZW4g aWYgd2UgbmVlZCB0aGUgYXBwbGljYXRpb24gdG8gZG8gdGhlIHJlYXNzZW1ibHksIGl0IHdvdWxk DQo+ID4gbG9vayBzaW1wbGUgaWYgYXBwbGljYXRpb24gdXNlcyB0aGUgc2FtZSAicnRlX2lwc2Vj X3Nlc3Npb24iIHRvIHByb2Nlc3MgdGhlDQo+IGZhbGxiYWNrIHBhY2tldC4NCj4gDQo+IEkgdGhp bmsgdGhlcmUgaXMgc29tZSBzb3J0IG9mIG1pc3VuZGVyc3RhbmRpbmcgaGVyZS4NCj4gV2l0aCBj dXJyZW50IGxpYnJ0ZV9pcHNlYyBkZXNpZ246DQo+IHJ0ZV9pcHNlY19zYSAtIG9wYXF1ZSBTVyBy ZXByZXNlbnRhdGlvbiBvZiB0aGUgU0EgKEhXIG5ldXRyYWwpDQo+IHJ0ZV9pcHNlY19zZXNzaW9u IGFzc29jaWF0ZXMgU0EgKHJ0ZV9pcHNlY19zYSl3aXRoIHBhcnRpY3VsYXIgSFcgZGV2aWNlDQo+ IChzZXNzaW9uKS4NCj4gU2FtZSBTQSBjYW4gYmUgcmVmZXJyZWQgYnkgbXVsdGlwbGUgc2Vzc2lv bnMuDQo+IA0KPiBGcm9tIHJ0ZV9pcHNlYy5oOg0KPiAvKioNCj4gICogcnRlX2lwc2VjX3Nlc3Np b24gaXMgYW4gYWdncmVnYXRlIHN0cnVjdHVyZSB0aGF0IGRlZmluZXMgcGFydGljdWxhcg0KPiAg KiBJUHNlYyBTZWN1cml0eSBBc3NvY2lhdGlvbiBJUHNlYyAoU0EpIG9uIGdpdmVuIHNlY3VyaXR5 L2NyeXB0byBkZXZpY2U6DQo+ICAqIC0gcG9pbnRlciB0byB0aGUgU0Egb2JqZWN0DQo+ICAqIC0g c2VjdXJpdHkgc2Vzc2lvbiBhY3Rpb24gdHlwZQ0KPiAgKiAtIHBvaW50ZXIgdG8gc2VjdXJpdHkv Y3J5cHRvIHNlc3Npb24sIHBsdXMgb3RoZXIgcmVsYXRlZCBkYXRhDQo+ICAqIC0gc2Vzc2lvbi9k ZXZpY2Ugc3BlY2lmaWMgZnVuY3Rpb25zIHRvIHByZXBhcmUvcHJvY2VzcyBJUHNlYyBwYWNrZXRz Lg0KPiAgKi8NCj4gDQo+ID4gSW4gdGhhdCBjYXNlLCB0aGUgcHJvY2Vzc2luZyByZXF1aXJlZCB0 byBoYW5kbGUgdGhlIG90aGVyIHBhY2tldCB3aWxsDQo+ID4gYmUgaGlkZGVuIGZyb20gdGhlIGFw cGxpY2F0aW9uLiBIZXJlIGFwcGxpY2F0aW9uIGhhcyB0byBtYWtlIHN1cmUgaXQgY2hvb3Nlcw0K PiB0aGUgY29ycmVjdCBzZXNzaW9uLCB3aGljaCBJIGJlbGlldmUgc2hvdWxkIGJlIG1vdmVkIHRv IGlwc2VjIGxpYnJhcnkuDQo+IA0KPiBGcm9tIG15IHNpZGUgaXQgaXMgYSBnb29kIHRoaW5nIHRv IGxldCBhcHBsaWNhdGlvbiBkZWZpbmUgaXRzIG93biB1c2FnZSBtb2RlbC4NCj4gSS5FLiBsaWJy dGVfaXBzZWMgc3VwcG9ydHMgbXVsdGlwbGUtc2Vzc2lvbnMgcGVyIFNBLCB1cHBlci1sYXllciAo YXBwKSBkZWNpZGVzIGhvdw0KPiBpdCB3aWxsIHVzZSB0aGF0IGZlYXR1cmUuDQo+IFRob3VnaCBp ZiB5b3Ugc3Ryb25nbHkgZmVlbCB0aGF0IHNvbWUgaGlnaGVyLWxldmVsIEFQSSBpcyBuZWVkZWQg aGVyZSwgYW5kIGhhdmUNCj4gc29tZSBnb29kIGlkZWFzIGFib3V0IGl0ICAtIHBsZWFzZSBnbyBh aGVhZCBhbmQgc3VibWl0IFJGQyBmb3IgaXQuDQoNCltBbm9vYl0gSWYgeW91IGFyZSBva2F5IHdp dGggYXBwbGljYXRpb24gZGVmaW5pbmcgaG93IGl0IGltcGxlbWVudHMgaXBzZWMsIHRoZW4gcHJv YmFibHkgdGhlcmUgaXMgbm8gdXNlIGNhc2UgZm9yIGxpYiBpcHNlYz8NCg0KPiANCj4gPg0KPiA+ ID4NCj4gPiA+ID4NCj4gPiA+ID4gMy4gSXQgc2VlbXMgbGlrZSBvcmRlcmluZyB3b24ndCBiZSBt YWludGFpbmVkIG9uY2UgdGhpcyBwcm9jZXNzaW5nDQo+ID4gPiA+IGlzIGRvbmUuIEFnYWluLCB0 aGlzIGlzIHRoZSBzZXF1ZW5jZSBJIHVuZGVyc3Rvb2QuIFBsZWFzZSBjb3JyZWN0DQo+ID4gPiA+ IG1lIGlmIEkgbWlzc2VkDQo+ID4gPiBzb21ldGhpbmcsDQo+ID4gPiA+ICAgICAgICBhLiBBcHBs aWNhdGlvbiByZWNlaXZlcyBhIGJ1bmNoIG9mIHBhY2tldHMgKGxldCdzIHNheSA2DQo+ID4gPiA+ IHBhY2tldHMpLCBpbiB3aGljaCBmZXcgYXJlIGZyYWdtZW50ZWQgKFAzICYgUDQpIGFuZCB0aGUg cmVzdCBjYW4NCj4gPiA+ID4gYmUgaW5saW5lDQo+ID4gPiBwcm9jZXNzZWQuDQo+ID4gPiA+ICAg ICAgICBiLiBBcHBsaWNhdGlvbiByZWNlaXZlcyBQMS0+UDItPlAzLT5QNC0+UDUtPlA2IChpbiB0 aGlzLA0KPiA+ID4gPiBQMSwgUDIsIFA1LCBQNiBhcmUNCj4gPiA+IGlubGluZSBwcm9jZXNzZWQg c3VjY2Vzc2Z1bGx5KSBhbmQgUDQgJiBQNSBhcmUgdGhlIGZyYWdtZW50cw0KPiA+ID4gPiAgICAg ICAgYy4gQXBwbGljYXRpb24gZ3JvdXBzIHBhY2tldHMuIFAxLT5QMi0+UDUtPlA2IGJlY29tZXMg b25lDQo+ID4gPiA+Z3JvdXAgYW5kIFAzLQ0KPiA+ID4gPlA0IGJlY29tZXMgYW5vdGhlciBhbmQg Z29lcyBmb3IgZmFsbGJhY2sgcHJvY2Vzc2luZy4NCj4gPiA+ID4gTm93IGhvdyBpcyBvcmRlcmlu ZyBtYWludGFpbmVkPyBJIGNvdWxkbid0IGZpZ3VyZSBvdXQgaG93IHRoYXQgaXMNCj4gPiA+ID5k b25lIGluIHRoaXMNCj4gPiA+IGNhc2UuDQo+ID4gPg0KPiA+ID4gWW91IHJpZ2h0LCBmYWxsYmFj ayBzZXNzaW9uIGNhbiBpbnRyb2R1Y2UgcGFja2V0IHJlb3JkZXJpbmcuDQo+ID4gPiBBdCBsZWFz dCB0aWxsIHdlJ2xsIGhhdmUgYWJpbGl0eSB0byBwcm9jZXNzIHBhY2tldHMgaW4gc3luYyBtb2Rl IHRvby4NCj4gPiA+IFNlZSBvdXIgcHJlc2VudGF0aW9uIGF0IGRwZGsgdXNlcnNwYWNlIChzbGlk ZXMgMTcsIDE4KToNCj4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91 cmw/dT1odHRwcy0zQV9fc3RhdGljLnNjaGVkLmNvDQo+ID4gPiBtX2hvc3RlZC01RmZpbGVzX2Rw ZGtib3JkZWF1eDIwMTlfOGZfRFBESy0NCj4gMkRJUFNFQ3U5LnBkZiZkPUR3SUZBZyZjPW4NCj4g PiA+IEtqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWpQZkI4cnd3dmlSU3h5TFdzMm42Qi0NCj4gV1lM bjF2OVN5VE1yVDVFUXFoMlRVJg0KPiA+ID4gbT1iM0U0MjlmdW84UC1LNVhmSDh3Ry0NCj4gN2h3 cjFkOG9NNHVKR0VyQWtiZkR2QSZzPU1MUm5uWWN5a2puc3FYckhHVXVSDQo+ID4gPiBZSGM1dUR4 YUFvZDBZbDdmMDZFUXIxTSZlPSBSaWdodCBub3cgdGhlIG9ubHkgd2F5IHRvIGRlYWwgd2l0aCBp dCAtDQo+ID4gPiBoYXZlIHJlcGxheSB3aW5kb3cgYmlnIGVub3VnaCB0byBzdXN0YWluIHJlb3Jk ZXJpbmcgYW5kIGFzeW5jDQo+ID4gPiBwcm9jZXNzaW5nIGxhdGVuY3kuDQo+ID4gPiBUaGF0J3Mg YWN0dWFsbHkgYW5vdGhlciByZWFzb24gd2h5IHdlIGFkZCB0aGlzIGZlYXR1cmUgaW50bw0KPiA+ ID4gaXBzZWMtc2VjZ3cgc2FtcGxlDQo+ID4gPiBhcHA6DQo+ID4gPiBzbyBwZW9wbGUgY2FuIGV2 YWx1YXRlIGl0IG9uIHRoZWlyIHBsYXRmb3JtcywgZGV0ZXJtaW5lIHdoYXQgcmVwbGF5DQo+ID4g PiB3aW5kb3cgc2l6ZSB3b3VsZCBiZSBuZWVkZWQsIHdoYXQgaXNzdWVzL3Nsb3dkb3ducyBpdCBt aWdodCBjYXVzZSwgZXRjLg0KPiA+DQo+ID4gW0Fub29iXSBUaGlzIGlzIHNvbWV0aGluZyBJIGhh ZCBub3RpY2VkIHdoaWxlIGdvaW5nIHRocm91Z2ggdGhlIGNvZGUgZmxvdy4NCj4gVGhlIG9yZGVy aW5nIGluZm8gaXMgbG9zdCBiZWNhdXNlIG9mIHRoZSBhcHByb2FjaC4NCj4gDQo+IE9uY2UgYWdh aW4sIGl0IGlzIGEga25vd24gbGltaXRhdGlvbiBhbmQgd2UgYXJlIG5vdCB0cnlpbmcgdG8gaGlk ZSBpdCBmcm9tIHlvdSA6KQ0KDQpbQW5vb2JdIE5ldmVyIHNhaWQgaXQgd2FzIGhpZGRlbi4gSW5p dGlhbGx5IEkgaGFkIG9rYXllZCB0aGUgYXBwcm9hY2ggZXZlbiB0aG91Z2ggaXQgd2Fzbid0IGEg c29sdXRpb24gc3VpdGFibGUgZm9yIGlubGluZSBwcm90b2NvbC4gQnV0IGFzIG1vcmUgY2FzZXMg d2VyZSBjb25zaWRlcmVkLCBmZXcgc2hvcnRjb21pbmdzIHdlcmUgb2JzZXJ2ZWQsIGFuZCBJIHdh cyBza2VwdGljYWwgYWJvdXQgaG93IGFueSBvZiB0aGF0IHdvdWxkIGJlIHNvbHZlZCBpbiB0aGUg bG9uZyBydW4uDQoNCk15IHN1Z2dlc3Rpb24sIGlmIHRoZXNlIGxpbWl0YXRpb25zIGFuZCB0aGUg cGxhbnMgdG8gYWRkcmVzcyBpdCB3ZXJlIG1lbnRpb25lZCBpbiB0aGUgY292ZXIgbGV0dGVyLCB3 ZSBjb3VsZCd2ZSBzYXZlZCBmZXcgY3ljbGVzIGhlcmUuIEJ1dCBteSByZXBseSB3b3VsZCBzdGls bCBiZSB0aGUgc2FtZSDwn5iKDQoNCj4gSXQNCj4gd2FzIG91dGxpbmVkIGhlcmU6DQo+IGh0dHBz Oi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0NCj4gM0FfX3N0YXRp Yy5zY2hlZC5jb21faG9zdGVkLTVGZmlsZXNfZHBka2JvcmRlYXV4MjAxOV84Zl9EUERLLQ0KPiAy RElQU0VDdTkucGRmJmQ9RHdJRkFnJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWpQZkI4cnd3 dmlSU3h5TA0KPiBXczJuNkItV1lMbjF2OVN5VE1yVDVFUXFoMlRVJm09YjNFNDI5ZnVvOFAtSzVY Zkg4d0ctDQo+IDdod3IxZDhvTTR1SkdFckFrYmZEdkEmcz1NTFJublljeWtqbnNxWHJIR1V1UllI YzV1RHhhQW9kMFlsN2YwNkUNCj4gUXIxTSZlPQ0KPiBBbmQgaW4gdGhlIGxhdGVzdCBwYXRjaCB2 ZXJzaW9uIE1hcmNpbiBjbGVhcmx5IHN0YXRlZCBpdCBpbnNpZGUgdGhlIEFHIHNlc3Npb246DQo+ IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwLQ0KPiAzQV9f cGF0Y2hlcy5kcGRrLm9yZ19wYXRjaF82MDAzOV8mZD1Ed0lGQWcmYz1uS2pXZWMyYjZSMG1PeVBh ejd4dGYNCj4gUSZyPWpQZkI4cnd3dmlSU3h5TFdzMm42Qi1XWUxuMXY5U3lUTXJUNUVRcWgyVFUm bT1iM0U0MjlmdW84UC0NCj4gSzVYZkg4d0ctDQo+IDdod3IxZDhvTTR1SkdFckFrYmZEdkEmcz16 cm45MVZqZl9aRWxBbERmN0llWkdtR2V2Y0E2Uk13cFBUTFVDR2xnWg0KPiBjWSZlPQ0KPiBJZiB5 b3UgdGhpbmsgZXZlbiBmdXJ0aGVyIGNsYXJpZmljYXRpb24gd2l0aGluIHRoZSBkb2MgaXMgbmVl ZGVkLCBwbGVhc2UgbGV0IHVzDQo+IGtub3cuDQo+IA0KPiBBYm91dCB0aGUgYWN0dWFsIHBhY2tl dCByZS1vcmlkZXJpbmc6DQo+ICBBRkFJSywgZm9yIHNvbWUgdXNlLWNhc2VzIGl0IG1pZ2h0IGJl IGFjY2VwdGFibGUsIGZvciBvdGhlcnMgbm90Lg0KPiBUaG91Z2ggaXQgaXMgYW4gb3B0aW9uYWwg ZmVhdHVyZSwgdGhhdCB3b3VsZG4ndCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQsIHNvIHVzZXIgY2Fu DQo+IGFsd2F5cyBjaG9vc2UgaXMgaXQgZG9lcyBoZSBuZWVkcy93YW50cyB0aGlzIGZlYXR1cmUg b3Igbm90Lg0KPiBJZi93aGVuIHdlJ2xsIGhhdmUgQ1BVX0NSWVBUTyBwcm9jZXNzaW5nIG1vZGU6 DQoNCltBbm9vYl0gU2hvdWxkbid0IHdlIGdldCB0aGF0IGFjY2VwdGVkIGZpcnN0IHRoZW4/DQoN CkFsc28sIHRoZSBvcmRlcmluZyBpcyBsb3N0IGJlY2F1c2UgYXBwbGljYXRpb24gaXMgbm90IGNv bnNpZGVyaW5nIHRoYXQuIFdoeSBjYW4ndCB3ZSB1c2UgcmUtb3JkZXJpbmcgbGlicmFyeT8gT3Ig YW4gZXZlbnQtZGV2Pw0KIA0KPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIv dXJsP3U9aHR0cC0NCj4gM0FfX3BhdGNoZXMuZHBkay5vcmdfY292ZXJfNTg4NjJfJmQ9RHdJRkFn JmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmDQo+IFEmcj1qUGZCOHJ3d3ZpUlN4eUxXczJuNkItV1lM bjF2OVN5VE1yVDVFUXFoMlRVJm09YjNFNDI5ZnVvOFAtDQo+IEs1WGZIOHdHLQ0KPiA3aHdyMWQ4 b000dUpHRXJBa2JmRHZBJnM9azF6ZWZfMXVxRUxYYmxLTjNfcWpYMDRXWE5GR0FVRUZJSUpydktQ cjYNCj4gZUEmZT0NCj4gd2UnbGwgYWRkIGFiaWxpdHkgZm9yIHRoZSB1c2VyIHRvIGF2b2lkIHRo aXMgcmVvcmRlcmluZyBwcm9ibGVtDQo+IA0KPiA+IEFzIHdlIGRpZyBkZWVwZXIsIHRoZSBmZWF0 dXJlIGxvb2tzIGhhcmRseSBjb21wbGV0ZS4gVGhlIGNvbmNlcm5pbmcNCj4gPiBwYXJ0IGlzIHRo ZSBhcHByb2FjaCBkb2Vzbid0IHNlZW0gY29uZHVjaXZlIHRvIGZpeGluZyBhbnkgb2YgdGhlc2Ug aXNzdWVzIGluIHRoZQ0KPiBmdXR1cmUuDQo+IA0KPiBBZ2FpbiwgZG9uJ3QgYWdyZWUgd2l0aCB0 aGF0IHN0YXRlbWVudC4NCj4gRnJvbSBteSBwZXJzcGVjdGl2ZTogd2hpbGUgY3VycmVudCBpbXBs ZW1lbnRhdGlvbiBoYXMgaXRzIGxpbWl0YXRpb25zIChwYWNrZXQNCj4gcmVvcmRlcmluZywgaW5s aW5lLXByb3RvL2xrc2QtcHJvdG8pLCBpdCBpcyB0b3RhbGx5IGZ1bmN0aW9uYWwgYW5kIHByb3Zp ZGVzIHVzZXJzDQo+IHdpdGggYSByZWZlcmVuY2UgaG93IHRvIGRlYWwgd2l0aCBzdWNoIGtpbmQg b2YgcHJvYmxlbXMuDQoNCltBbm9vYl0gV2VsbCwgdGhhdCBpcyBleGFjdGx5IG15IHByb2JsZW0u IEl0IGdpdmVzIGEgc2tld2VkIHJlZmVyZW5jZSBvbiBob3cgdG8gZGVhbCB3aXRoIHRoZSBwcm9i bGVtLCB3aXRob3V0IGNvbnNpZGVyaW5nIG90aGVyIHBvc3NpYmlsaXRpZXMuIElmIGV2ZXJ5IGFw cGxpY2F0aW9uIHN0YXJ0cyBhZG9wdGluZyB0aGlzIG1ldGhvZCBhbmQgc3RhcnRzIGRvaW5nIGxv b2t1cCBmb3IgZXZlcnkgRVNQIHBhY2tldCwgaC93IGJhc2VkIGxvb2t1cHMgKGFuZCB0aGUgYXNz b2NpYXRlZCBoL3cpIHdvdWxkIGJlIHJlbmRlcmVkIHVzZWxlc3MuIEkgcmVhbGx5IHRoaW5rIHRo aXMgc2VyaWVzLCB3aGljaCBoYXBwZW5zIHRvIGJlIHRoZSBmaXJzdCBzdGVwIGluIHNvbHZpbmcg YSBjb21wbGV4IHByb2JsZW0sIHdpbGwgYmUgdmVyeSB1c2VmdWwgaWYgYWxsIHRoZXNlIGlzc3Vl cyBhcmUgYWRkcmVzc2VkIHByb3Blcmx5Lg0KDQpJZiB5b3UgY2FuIGludHJvZHVjZSB0aGUgaW5s aW5lK2xvb2thc2lkZSB2aWEgbGlicnRlX2lwc2VjLCBpdHMgcGVyaGFwcyBvayBmb3IgdGhlIHBh dGNoIHRvIGhhdmUgc29tZSBsaW1pdGF0aW9ucyhsaWtlIGxhY2sgb2Ygb3JkZXJpbmcsIGFzc3Vt cHRpb25zIG9uIEVTUCBldGMpLiBIb3dldmVyLCBpZiB0aGUgcGF0Y2ggaXMgaW50cm9kdWNlZCBk aXJlY3RseSBpbnRvIGlwc2VjLXNlY2d3LCBpdCBuZWVkcyB0byBiZSBtb3JlIGNvbXByZWhlbnNp dmUgYW5kIHJvYnVzdC4gSSBhbHNvIGV4cGVjdCBwZXJmb3JtYW5jZSBpbXBhY3QgZHVlIHRvIHRo ZXNlIGNoYW5nZXMgYW5kIHNvIEkgcHJlZmVyIGlmIHRoZSBpbmxpbmUrbG9va2FzaWRlIGNhbiBi ZSBtYWRlIHNlcGFyYXRlIGRhdGFwYXRoIHJhdGhlciB0aGFuIG92ZXJsb2FkaW5nIHRoZSBleGlz dGluZyBvbmUuDQoNCj4gDQo+ID4NCj4gPiBBbHNvLCBpZiB0aGUgbmV3IGlwc2VjIHJlbGF0ZWQg ZmVhdHVyZXMgYXJlIGludHJvZHVjZWQgdmlhIGlwc2VjLXNlY2d3DQo+ID4gdGhhbiB2aWEgcnRl X2lwc2VjLCB0aGVuIGl0IHJhaXNlcyBkb3VidHMgb3ZlciB0aGUgdXRpbGl0eSBvZiBydGVfaXBz ZWMgbGlicmFyeS4NCj4gDQo+IA0KDQo=