From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 920C6A04FD; Tue, 14 Jan 2020 10:27:39 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5FC8D1C223; Tue, 14 Jan 2020 10:27:39 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id D82E91C21F for ; Tue, 14 Jan 2020 10:27:37 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00E9KQGh002168; Tue, 14 Jan 2020 01:27:36 -0800 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=E2BpIIgxX+nQE3432XZSwvrevUPaLSXLQEtlM4LkLFs=; b=KVahxEXExegpvHorRxxVNknLVk1+Slfn1qTNasmrAqIku4qLXDJR5+5n3tAQpVfxSasA E23Xg0Om0CB4uLa3AaG1YueqTyrXr9AnwxDtFL5CO5wtUavXFd0+MzMhCNTzkZiOR4Tm XxvanLUzk5yQY9il9Y4v6KCgYKgoyoTLHB14nnOliB6RWNzZS6C8d8qnYvGvdG17Xdol f2zA0O+QKplsgRh5kK+ztZqGuPZ5XufM7f5wmiqPfq12OZFvv4BnUv6TkUzHUwE1xpeh s0EeEGw8d7QqPRnzlhgeI7GmCABPm5+lIZGf4bHqym6/9AlFxSD5ye3QM66FA4tIXPFa Tg== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 2xfckusfrc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 14 Jan 2020 01:27:36 -0800 Received: from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 14 Jan 2020 01:27:34 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Tue, 14 Jan 2020 01:27:34 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mZKm3N8/DqO/15jUO8QOe0X9+5nMFHEhUM29Bwf/G/cmWBZUWvOR41fzY9N2K11nMkWR2SxtPoOSXGLreatFQe0ZONkCgvdMo9sySyrm1TAX/p207VNijeRv6aT10Z61JZn9I3YhhMiAXrPLHZznccQL0hNKJXGnbekyV4g/lnlY4AFjbD+T1087nPySYwgPPG93fNfRFiU/kdLtnN/Eq2Yz/+cs/7DShyBN2K1u7T6YHPe08FdOZPGebZdBKpfMZDIO8rIjAgMoIpTjc2VRL2J6KlRPYGQ9eyTlrzvfURjDneed4K5v++leq+hnpcCPVHbX1homvyg9/HDNL3WhAA== 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=E2BpIIgxX+nQE3432XZSwvrevUPaLSXLQEtlM4LkLFs=; b=DdE4AzHLRLraatDIDjfZigzBDKGqcfIi5i0JUeOc5OkmGAbn6U8ItJzPaduTDGLJKesNQ3OoZLCMtJKh5RqhiRkrWBiH473ju3tEzPi+68ISOhR8d0vQD5xnQJSaIVn3QBJO1K8axDNo/T3zgKOUsGI0ooPvq0ej2UIkKg4zBBhJL+8pIaS2ltaooMTbtRA9Btv1vUeHpEOqUmrsBj9rwhNBVx+vdV1wxczhwTOn+/ZjRjQH7Oq2OSgao9xCc/FQghG/FxzPV6o8/K7Otqj7S8pXOr+dYyRWLdc3IeyLM0it/B9f3pNPENayHuvp9l1PE9mENE9Tyx+8ael+Qlcg1A== 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=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E2BpIIgxX+nQE3432XZSwvrevUPaLSXLQEtlM4LkLFs=; b=MhIZl5GJXF5vCZNZInyxn5YDzbQHeF49iFCmEjTOcZw9701PlilvyfozB67KnusoB72WilbuNVX+Jbe+k2lgxm6owRjeZveLZc+5UkseWarEAPpTpfp/vRodkcbvhQJpTC1L+PT/oQFeSSYgxwZSc8b56t5XB9RGpWbtUJrCbUc= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (20.179.20.218) by MN2PR18MB3182.namprd18.prod.outlook.com (10.255.236.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.8; Tue, 14 Jan 2020 09:27:33 +0000 Received: from MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::5db5:d179:8a01:4636]) by MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::5db5:d179:8a01:4636%7]) with mapi id 15.20.2623.017; Tue, 14 Jan 2020 09:27:33 +0000 From: Anoob Joseph To: Ori Kam , "Medvedkin, Vladimir" , "Ananyev, Konstantin" , Akhil Goyal , "Adrien Mazarguil" , "Doherty, Declan" , "Yigit, Ferruh" , "Jerin Jacob Kollanukkaran" , Thomas Monjalon CC: Ankur Dwivedi , Hemant Agrawal , Matan Azrad , "Nicolau, Radu" , Shahaf Shuler , "Narayana Prasad Raju Athreya" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [EXT] Re: [PATCH] ethdev: allow multiple security sessions to use one rte flow Thread-Index: AQHVtapoLPi3V0XJiUWYYEQnQa1cL6fA3TYQgAbi7ICAGTS9AIABHogAgAf3RgA= Date: Tue, 14 Jan 2020 09:27:32 +0000 Message-ID: References: <1575801683-27269-1-git-send-email-anoobj@marvell.com> <1fc05516-3686-4267-a760-edbe0b92bc87@intel.com> <0a7d957d-e1f6-835b-15d8-4bccc491b4f9@intel.com> <8d5062b2-d7a7-9788-5788-01720dbad2f5@intel.com> <23ee9ff1-93ac-3381-d10d-867681c25932@intel.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [14.140.231.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c703ecd7-c881-4227-77fd-08d798d3fc0d x-ms-traffictypediagnostic: MN2PR18MB3182: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 028256169F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(396003)(39860400002)(346002)(366004)(376002)(189003)(199004)(26005)(8936002)(86362001)(7696005)(15650500001)(53546011)(6506007)(110136005)(186003)(316002)(2906002)(71200400001)(52536014)(54906003)(81156014)(81166006)(5660300002)(55236004)(9686003)(478600001)(8676002)(30864003)(66446008)(33656002)(4326008)(66556008)(66476007)(55016002)(66946007)(7416002)(64756008)(76116006)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB3182; H:MN2PR18MB2877.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: 4KqgpcBQXBeI2dp9RfNcD/ynN46yoG/89gmeWCEJbgaf9hkwSn33uoZZ+Ktb05myW1tr0aep89EDmPiPZj2AksaVxJWu0ykCIciMCdJFbQR9aQyGesvbgKlNrY+T6YY17NS8qSkbp+UtZa9qPAuoMElv+FX/0H0XaMIlWt7x6ApVfUinDSUAUHcolxmG3XWGaEIj33zg41lY9n66EAzPa8siqJwcJFaKLkRWoFe11mtZ8F5VFr0Og8w3gaLt80EM5JCDOvjF/tS/jIgH5gjDSsuTUFy2UMWukJ/hKqHHeGPaUhy6/vHFVMRAshIBKkXhpzkulDSZYBQTGedi+56OTOrzn2+iEIvqeTbW/B2EjEFwVjTXca+Gaw0F7kPWFetqcJ4E6N93V/68N9gOdBs7iGbmDI15YdHmFLuXJx5Nymt7/T4C/GuPSSh0+tjs5iTTgzQGYU9+RHFA5OJMcqR4ytnTtpUReestIKslCIblDxNubA8a16S/lIHRNMmjVGRD Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: c703ecd7-c881-4227-77fd-08d798d3fc0d X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jan 2020 09:27:32.7288 (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: g7c29Mq9TKL63l9dYGm/XkNYZljVHecE5kof4Fly8p+R6w0slf705See5VSPc6s9dSnXkWwhmabSKOU5ealDWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3182 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572 definitions=2020-01-14_02:2020-01-13, 2020-01-14 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH] ethdev: allow multiple security sessions to use one rte flow 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" SGkgT3JpLA0KDQpQbGVhc2Ugc2VlIGlubGluZS4NCg0KVGhhbmtzLA0KQW5vb2INCg0KPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBPcmkgS2FtIDxvcmlrYUBtZWxsYW5veC5j b20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDksIDIwMjAgMTowNiBQTQ0KPiBUbzogTWVk dmVka2luLCBWbGFkaW1pciA8dmxhZGltaXIubWVkdmVka2luQGludGVsLmNvbT47IEFuYW55ZXYs DQo+IEtvbnN0YW50aW4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBBbm9vYiBKb3Nl cGgNCj4gPGFub29iakBtYXJ2ZWxsLmNvbT47IEFraGlsIEdveWFsIDxha2hpbC5nb3lhbEBueHAu Y29tPjsgQWRyaWVuDQo+IE1hemFyZ3VpbCA8YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb20+OyBE b2hlcnR5LCBEZWNsYW4NCj4gPGRlY2xhbi5kb2hlcnR5QGludGVsLmNvbT47IFlpZ2l0LCBGZXJy dWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBKZXJpbg0KPiBKYWNvYiBLb2xsYW51a2thcmFu IDxqZXJpbmpAbWFydmVsbC5jb20+OyBUaG9tYXMgTW9uamFsb24NCj4gPHRob21hc0Btb25qYWxv bi5uZXQ+DQo+IENjOiBBbmt1ciBEd2l2ZWRpIDxhZHdpdmVkaUBtYXJ2ZWxsLmNvbT47IEhlbWFu dCBBZ3Jhd2FsDQo+IDxoZW1hbnQuYWdyYXdhbEBueHAuY29tPjsgTWF0YW4gQXpyYWQgPG1hdGFu QG1lbGxhbm94LmNvbT47DQo+IE5pY29sYXUsIFJhZHUgPHJhZHUubmljb2xhdUBpbnRlbC5jb20+ OyBTaGFoYWYgU2h1bGVyDQo+IDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IE5hcmF5YW5hIFByYXNh ZCBSYWp1IEF0aHJleWENCj4gPHBhdGhyZXlhQG1hcnZlbGwuY29tPjsgZGV2QGRwZGsub3JnDQo+ IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZdIFtFWFRdIFJlOiBbUEFUQ0hdIGV0aGRldjogYWxsb3cg bXVsdGlwbGUgc2VjdXJpdHkNCj4gc2Vzc2lvbnMgdG8gdXNlIG9uZSBydGUgZmxvdw0KPiANCj4g SGkNCj4gc29ycnkgZm9yIGp1bXBpbmcgaW4gbGF0ZS4NCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZGV2IDxkZXYtYm91bmNlc0BkcGRrLm9yZz4gT24g QmVoYWxmIE9mIE1lZHZlZGtpbiwgVmxhZGltaXINCj4gPiBTZW50OiBXZWRuZXNkYXksIEphbnVh cnkgOCwgMjAyMCA0OjMwIFBNDQo+ID4gVG86IEFuYW55ZXYsIEtvbnN0YW50aW4gPGtvbnN0YW50 aW4uYW5hbnlldkBpbnRlbC5jb20+OyBBbm9vYiBKb3NlcGgNCj4gPiA8YW5vb2JqQG1hcnZlbGwu Y29tPjsgQWtoaWwgR295YWwgPGFraGlsLmdveWFsQG54cC5jb20+OyBBZHJpZW4NCj4gPiBNYXph cmd1aWwgPGFkcmllbi5tYXphcmd1aWxANndpbmQuY29tPjsgRG9oZXJ0eSwgRGVjbGFuDQo+ID4g PGRlY2xhbi5kb2hlcnR5QGludGVsLmNvbT47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBp bnRlbC5jb20+OyBKZXJpbg0KPiA+IEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxs LmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA+IDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiA+IENj OiBBbmt1ciBEd2l2ZWRpIDxhZHdpdmVkaUBtYXJ2ZWxsLmNvbT47IEhlbWFudCBBZ3Jhd2FsDQo+ ID4gPGhlbWFudC5hZ3Jhd2FsQG54cC5jb20+OyBNYXRhbiBBenJhZCA8bWF0YW5AbWVsbGFub3gu Y29tPjsNCj4gPiBOaWNvbGF1LCBSYWR1IDxyYWR1Lm5pY29sYXVAaW50ZWwuY29tPjsgU2hhaGFm IFNodWxlcg0KPiA+IDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IE5hcmF5YW5hIFByYXNhZCBSYWp1 IEF0aHJleWENCj4gPiA8cGF0aHJleWFAbWFydmVsbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiBT dWJqZWN0OiBSZTogW2RwZGstZGV2XSBbRVhUXSBSZTogW1BBVENIXSBldGhkZXY6IGFsbG93IG11 bHRpcGxlIHNlY3VyaXR5DQo+ID4gc2Vzc2lvbnMgdG8gdXNlIG9uZSBydGUgZmxvdw0KPiA+DQo+ ID4gSGkgQW5vb2IsDQo+ID4NCj4gPiBPbiAyMy8xMi8yMDE5IDEzOjM0LCBBbmFueWV2LCBLb25z dGFudGluIHdyb3RlOg0KPiA+ID4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBUaGUgcnRlX3NlY3VyaXR5 IEFQSSB3aGljaCBlbmFibGVzIGlubGluZQ0KPiBwcm90b2NvbC9jcnlwdG8NCj4gPiA+Pj4+Pj4+ Pj4+Pj4+PiBmZWF0dXJlIG1hbmRhdGVzIHRoYXQgZm9yIGV2ZXJ5IHNlY3VyaXR5IHNlc3Npb24g YW4NCj4gPiBydGVfZmxvdw0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGlzDQo+ID4gPj4+Pj4gY3JlYXRl ZC4NCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBUaGlzIHdvdWxkIGludGVybmFsbHkgdHJhbnNsYXRlIHRv IGEgcnVsZSBpbiB0aGUgaGFyZHdhcmUNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiB3aGljaCB3b3VsZCBk byBwYWNrZXQgY2xhc3NpZmljYXRpb24uDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+ Pj4+Pj4+PiBJbiBydGVfc2VjdXJ0eSwgb25lIFNBIHdvdWxkIGJlIG9uZSBzZWN1cml0eSBzZXNz aW9uLg0KPiBBbmQNCj4gPiBpZg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGFuIHJ0ZV9mbG93IG5lZWQg dG8gYmUgY3JlYXRlZCBmb3IgZXZlcnkgc2Vzc2lvbiwgdGhlDQo+ID4gbnVtYmVyDQo+ID4gPj4+ Pj4+Pj4+Pj4+Pj4gb2YgU0FzIHN1cHBvcnRlZCBieSBhbiBpbmxpbmUgaW1wbGVtZW50YXRpb24g d291bGQgYmUNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBsaW1pdGVkIGJ5IHRoZSBudW1iZXIgb2YgcnRl X2Zsb3dzIHRoZSBQTUQgd291bGQgYmUNCj4gPiBhYmxlIHRvDQo+ID4gPj4+IHN1cHBvcnQuDQo+ ID4gPj4+Pj4+Pj4+Pj4+Pj4gSWYgdGhlIGZpZWxkcyBTUEkgJiBJUCBhZGRyZXNzZXMgYXJlIGFs bG93ZWQgdG8gYmUgYQ0KPiByYW5nZSwNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiB0aGVuIHRoaXMgbGlt aXRhdGlvbiBjYW4gYmUgb3ZlcmNvbWUuIE11bHRpcGxlIGZsb3dzIHdpbGwNCj4gPiBiZQ0KPiA+ ID4+Pj4+Pj4+Pj4+Pj4+IGFibGUgdG8gdXNlIG9uZSBydWxlIGZvciBTRUNVUklUWSBwcm9jZXNz aW5nLiBJbiB0aGlzDQo+IGNhc2UsDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gdGhlIHNlY3VyaXR5IHNl c3Npb24gcHJvdmlkZWQgYXMgY29uZiB3b3VsZCBiZSBOVUxMLg0KPiANCj4gV2h5IGlzIHRoYXQ/ DQo+IElmIHRoZSBydGUgZmxvdyBjYW4gaGF2ZSBhIHJhbmdlIHRoZW4gdGhpcyBtZWFucyB0aGF0 IHdlIG5lZWQgb25lDQo+IHNlY3VyaXR5X3Nlc3Npb24gZm9yIHRoZSBlbnRpcmUgcmFuZ2UsDQo+ IEFtIEkgbWlzc2luZyBzb21ldGhpbmc/IEFzIGl0IGlzIHN0YXRlZCBpbiB0aGUgcnRlX2Zvdy5o ICBzZWN1cml0eV9zZXNzaW9uIGNhbg0KPiBiZSB1c2VkIGZvciBtdWx0aXBsZSBmbG93cy4NCg0K W0Fub29iXSBPbmUgU0Egd291bGQgbWVhbiBvbmUgc2VjdXJpdHlfc2Vzc2lvbi4gU28gaWYgd2Ug aGF2ZSBvbmUgc2VjdXJpdHlfc2Vzc2lvbiBmb3IgdGhlIGVudGlyZSByYW5nZSwgdGhlbiBpdCB3 aWxsIGJlIGxpa2UgaGF2aW5nIHNpbmdsZSBTQSBmb3IgYSByYW5nZSBvZiBJUCAmIFNQSS4gRG8g eW91IHRoaW5rIHdlIHNob3VsZCBhbGxvdyB0aGF0Pw0KDQpBbHNvLCB0aGUgaW50ZW50IG9mIHRo ZSBwYXRjaCBpcyB0byBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mIHJ0ZV9mbG93IHJ1bGVzIHJlcXVp cmVkIGZvciBpbmxpbmUgaXBzZWMgcHJvY2Vzc2luZy4gU2luY2UgdGhlIHNlY3VyaXR5IHNlc3Np b24gaXMgcGVyIFNBLCBhbmQgaWYgd2UgbmVlZCBtdWx0aXBsZSBTUElzIHRvIHVzZSBzYW1lIHJ0 ZV9mbG93IHJ1bGUsIHRoZW4gdGhlIHNlY3VyaXR5X3Nlc3Npb24gZmllbGQgaW4gdGhlIHJ0ZV9m bG93IHJ1bGUgbmVlZCB0byBiZSBOVUxMLiBIYXZpbmcgYSBub24temVybyBzZWN1cml0eV9zZXNz aW9uIHdoZW4gU1BJIGlzIGEgcmFuZ2Ugd291bGQgYmUgaW5jb3JyZWN0Lg0KIA0KPiANCj4gPiA+ Pj4+Pj4+Pj4+Pj4+IFdvbmRlciB3aGF0IHdpbGwgYmUgdGhlIHVzYWdlIG1vZGVsIGZvciBpdD8N Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IEFGQUlLLCAgUkZDIDQzMDEgY2xlYXJseSBzdGF0ZXMgdGhhdCBl aXRoZXIgU1BJIHZhbHVlIGFsb25lDQo+ID4gPj4+Pj4+Pj4+Pj4+PiBvciBpbiBjb25qdW5jdGlv biB3aXRoIGRzdCAoYW5kIHNyYykgSVAgc2hvdWxkIGNsZWFybHkNCj4gPiA+Pj4+Pj4+Pj4+Pj4+ IGlkZW50aWZ5IFNBIGZvciBpbmJvdW5kIFNBRA0KPiA+ID4+Pj4+Pj4+Pj4+IGxvb2t1cC4NCj4g PiA+Pj4+Pj4+Pj4+Pj4+IEFtIEkgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cyBoZXJlPw0KPiA+ ID4+Pj4+Pj4+Pj4+PiBbQW5vb2JdIEV4aXN0aW5nIFNFQ1VSSVRZIGFjdGlvbiB0eXBlIHJlcXVp cmVzIGFwcGxpY2F0aW9uDQo+IHRvDQo+ID4gPj4+Pj4+Pj4+Pj4+IGNyZWF0ZSBhbiAncnRlX2Zs b3cnIHBlciBTQSwgd2hpY2ggaXMgbm90IHJlYWxseSByZXF1aXJlZCBpZg0KPiA+ID4+Pj4+Pj4+ Pj4+PiBoL3cgY2FuIHVzZSBTUEkgdG8gdW5pcXVlbHkNCj4gPiA+Pj4+Pj4+Pj4+PiBpZGVudGlm eSB0aGUgc2VjdXJpdHkgc2Vzc2lvbi9TQS4NCj4gPiA+Pj4+Pj4+Pj4+Pj4gRXhpc3RpbmcgcnRl X2Zsb3cgdXNhZ2U6IElQIChkc3Qsc3JjKSArIEVTUCArIFNQSSAtPiBzZWN1cml0eQ0KPiA+ID4+ Pj4+Pj4+Pj4+PiBwcm9jZXNzaW5nIGVuYWJsZWQgb24gb25lIHNlY3VyaXR5IHNlc3Npb24gKGll IG9uIFNBKQ0KPiA+ID4+Pj4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+Pj4+PiBUaGUgYWJvdmUgcnVs ZSB3b3VsZCB1bmlxdWVseSBpZGVudGlmeSBwYWNrZXRzIGZvciBhbiBTQS4NCj4gPiBCdXQNCj4g PiA+Pj4+Pj4+Pj4+Pj4gd2l0aCB0aGUgYWJvdmUgdXNhZ2UsIHdlIHdvdWxkIHF1aWNrbHkgZXho YXVzdCBlbnRyaWVzDQo+ID4gPj4+Pj4+Pj4+Pj4+IGF2YWlsYWJsZSBpbiBoL3cgbG9va3VwIHRh YmxlcyAod2hpY2ggYXJlIGxpbWl0ZWQgb24gb3VyDQo+ID4gPj4+Pj4+Pj4+Pj4+IGhhcmR3YXJl KS4gQnV0IGlmIGgvdyBjYW4gdXNlIFNQSSBmaWVsZCB0byBpbmRleA0KPiA+ID4+Pj4+Pj4+Pj4+ IGludG8gYSB0YWJsZSAoZm9yIGV4YW1wbGUpLCB0aGVuIHRoZSBhYm92ZSByZXF1aXJlbWVudCBv Zg0KPiA+IG9uZQ0KPiA+ID4+Pj4+Pj4+Pj4+IHJ0ZV9mbG93IHBlciBTQSBpcyBub3QgcmVxdWly ZWQuDQo+ID4gPj4+Pj4+Pj4+Pj4+IFByb3Bvc2VkIHJ0ZV9mbG93IHVzYWdlOiBJUCAoYW55KSAr IEVTUCArIFNQSSAoYW55KSAtPg0KPiA+ID4+Pj4+Pj4+Pj4+PiBzZWN1cml0eSBwcm9jZXNzaW5n IGVuYWJsZWQgb24gYWxsIEVTUCBwYWNrZXRzDQo+ID4gPj4+Pj4+Pj4+IFNvIHRoaXMgbWVhbnMg dGhhdCBTQSB3aWxsIGJlIGluZGV4ZWQgb25seSBieSBzcGk/IFdoYXQgYWJvdXQNCj4gPiA+Pj4+ Pj4+Pj4gU0EncyB3aGljaCBhcmUgaW5kZXhlZCBieSBTUEkrRElQK1NJUD8NCj4gPiA+Pj4+Pj4+ Pj4+Pj4gTm93IGgvdyBjb3VsZCB1c2UgU1BJIHRvIGluZGV4IGludG8gYSBwcmUtcG9wdWxhdGVk IHRhYmxlDQo+ID4gdG8NCj4gPiA+Pj4+Pj4+Pj4+Pj4gZ2V0IHNlY3VyaXR5IHNlc3Npb24uIFBs ZWFzZSBkbyBub3RlIHRoYXQsIFNQSSBpcyBub3QgaWdub3JlZA0KPiA+ID4+Pj4+Pj4+Pj4+PiBk dXJpbmcgdGhlIGFjdHVhbA0KPiA+ID4+Pj4+Pj4+Pj4+IGxvb2t1cC4gSnVzdCB0aGF0IGl0IGlz IG5vdCB1c2VkIHdoaWxlIGNyZWF0aW5nICdydGVfZmxvdycuDQo+ID4gPj4+Pj4+Pj4+Pj4NCj4g PiA+Pj4+Pj4+Pj4+PiBBbmQgdGhpcyB0YWJsZSB3aWxsIGJlIHByZXBvcHVsYXRlZCBieSB1c2Vy IGFuZCBwb2ludGVyIHRvIGl0DQo+ID4gPj4+Pj4+Pj4+Pj4gd2lsbCBiZSBzb21laG93IHBhc3Nl ZCB2aWEgcnRlX2Zsb3cgQVBJPw0KPiA+ID4+Pj4+Pj4+Pj4+IElmIHllcywgdGhlbiB3aGF0IHdv dWxkIGJlIHRoZSBtZWNoYW5pc20/DQo+ID4gPj4+Pj4+Pj4+PiBbQW5vb2JdIEknbSBub3Qgc3Vy ZSB3aGF0IGV4YWN0bHkgeW91IG1lYW50IGJ5IHVzZXIuIEJ1dA0KPiBtYXkNCj4gPiBiZQ0KPiA+ ID4+Pj4+Pj4+Pj4gSSdsbCBleHBsYWluDQo+ID4gPj4+Pj4+Pj4+IGhvdyBpdCdzIGRvbmUgaW4g T0NURU9OVFgyIFBNRC4NCj4gPiA+Pj4+Pj4+Pj4+IFRoZSBhcHBsaWNhdGlvbiB3b3VsZCBjcmVh dGUgc2VjdXJpdHlfc2Vzc2lvbiBmb3IgZXZlcnkgU0EuDQo+IFNQSQ0KPiA+ID4+Pj4+Pj4+Pj4g ZXRjIHdvdWxkIGJlDQo+ID4gPj4+Pj4+Pj4+IGF2YWlsYWJsZSB0byBQTUQgKGluIGNvbmYpIHdo ZW4gdGhlIHNlc3Npb24gaXMgY3JlYXRlZC4gTm93DQo+IHRoZQ0KPiA+ID4+Pj4+Pj4+PiBQTUQg d291bGQgcG9wdWxhdGUgU0EgcmVsYXRlZCBwYXJhbXMgaW4gYSBzcGVjaWZpYyBsb2NhdGlvbg0K PiB0aGF0DQo+ID4gPj4+Pj4+Pj4+IGgvdyB3b3VsZCBhY2Nlc3MuIFRoaXMgbWVtb3J5IGlzIGFs bG9jYXRlZCBkdXJpbmcgZGV2aWNlDQo+ID4gPj4+Pj4+Pj4+IGNvbmZpZ3VyZSBhbmQgaC93IHdv dWxkIGhhdmUgdGhlIHBvaW50ZXIgYWZ0ZXIgdGhlDQo+IGluaXRpYWxpemF0aW9uDQo+ID4gaXMN Cj4gPiA+Pj4gZG9uZS4NCj4gPiA+Pj4+Pj4+Pj4gSWYgbWVtb3J5IGlzIGFsbG9jYXRlZCBkdXJp bmcgZGV2aWNlIGNvbmZpZ3VyZSB3aGF0IGlzIHVwcGVyDQo+ID4gPj4+Pj4+Pj4+IGxpbWl0IGZv ciBudW1iZXIgb2Ygc2Vzc2lvbnM/IFdoYXQgaWYgYXBwIG5lZWRzIG1vcmU/DQo+ID4gPj4+Pj4+ Pj4+PiBQTUQgdXNlcyBTUEkgYXMgaW5kZXggdG8gd3JpdGUgaW50byBzcGVjaWZpYyBsb2NhdGlv bnMoZHVyaW5nDQo+ID4gPj4+Pj4+Pj4+PiBzZXNzaW9uIGNyZWF0ZSkNCj4gPiA+Pj4+Pj4+Pj4g YW5kIGgvdyB3b3VsZCB1c2UgaXQgd2hlbiBpdCBzZWVzIGFuIEVTUCBwYWNrZXQgZWxpZ2libGUg Zm9yDQo+ID4gPj4+Pj4+Pj4+IFNFQ1VSSVRZIChpbiByZWNlaXZlIHBhdGgsIHBlciBwYWNrZXQp LiBBcyBsb25nIGFzIHNlc3Npb24NCj4gPiA+Pj4+Pj4+Pj4gY3JlYXRpb24gY291bGQgcG9wdWxh dGUgYXQgbWVtb3J5IGxvY2F0aW9ucyB0aGF0IGgvdyB3b3VsZA0KPiA+IGxvb2sNCj4gPiA+Pj4+ Pj4+Pj4gYXQsIHRoaXMgc2NoZW1lIHdvdWxkDQo+ID4gPj4+Pj4+PiB3b3JrLg0KPiA+ID4+Pj4+ Pj4+IFtBbm9vYl0gWWVzLiBCdXQgd2UgbmVlZCB0byBhbGxvdyBhcHBsaWNhdGlvbiB0byBjb250 cm9sIHRoZQ0KPiBoL3cNCj4gPiA+Pj4+Pj4+PiBpcHNlYw0KPiA+ID4+Pj4+Pj4gcHJvY2Vzc2lu ZyBhcyB3ZWxsLiBMZXQncyBzYXksIGFwcGxpY2F0aW9uIHdhbnRzIHRvIGhhbmRsZSBhDQo+ID4g Pj4+Pj4+PiBzcGVjaWZpYyBTUEkgcmFuZ2UgaW4gbG9va2FzaWRlIG1vZGUgKG1heSBiZSBiZWNh dXNlIG9mDQo+ID4gdW5zdXBwb3J0ZWQNCj4gPiA+Pj4+Pj4+IGNhcGFiaWxpdGllcz8pLCBpbiB0 aGF0IGNhc2UgaGF2aW5nIHJ0ZV9mbG93IHdpbGwgaGVscCBpbiBmaW5lDQo+ID4gPj4+Pj4+PiB0 dW5pbmcgaG93IHRoZQ0KPiA+ID4+Pj4+IGgvdyBwYWNrZXQgc3RlZXJpbmcgaGFwcGVucy4NCj4g PiA+Pj4+Pj4+IEFsc28sIHJ0ZV9mbG93IGVuYWJsZXMgSC93IHBhcnNpbmcgb24gaW5jb21pbmcg cGFja2V0cy4gVGhpcyBpbmZvDQo+ID4gPj4+Pj4+PiBpcyB1c2VmdWwgZXZlbiBhZnRlciBJUHNl YyBwcm9jZXNzaW5nIGlzIGNvbXBsZXRlLiBPciBpZg0KPiA+ID4+Pj4+Pj4gYXBwbGljYXRpb24g d2FudHMgdG8gZ2l2ZSBoaWdoZXIgcHJpb3JpdHkgdG8gYSByYW5nZSBvZiBTUElzLA0KPiA+ID4+ Pj4+Pj4gcnRlX2Zsb3cgd291bGQgYWxsb3cgZG9pbmcNCj4gPiA+Pj4+PiBzby4NCj4gPiA+Pj4+ Pj4+Pj4gV2hhdCBhbGdvcml0aG0gb2YgaW5kZXhpbmcgYnkgU1BJIGlzIHRoZXJlPyBDb3VsZCBJ IHVzZSBhbnkNCj4gPiA+Pj4+Pj4+Pj4gYXJiaXRyYXJ5IFNQST8gSWYgc29tZSBraW5kIG9mIGhh c2hpbmcgaXMgdXNlZCwgd2hhdCBhYm91dA0KPiA+IGNvbGxpc2lvbnM/DQo+ID4gPj4+Pj4+Pj4g W0Fub29iXSBUaGF0IGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4gSW4gb3VyIFBNRCwgd2UN Cj4gbWFwDQo+ID4gaXQNCj4gPiA+Pj4+Pj4+PiBvbmUNCj4gPiA+Pj4+PiB0byBvbmUuDQo+ID4g Pj4+Pj4+PiBBcyBpbiwgU1BJIGlzIHVzZWQgYXMgaW5kZXggaW4gdGhlIHRhYmxlLg0KPiA+ID4+ Pj4+Pj4gU28sIGFzIGZhciBhcyB5b3UgYXJlIG1hcHBpbmcgb25lIHRvIG9uZSBhbmQgdXNpbmcg U1BJIGFzIGFuDQo+IGluZGV4LA0KPiA+ID4+Pj4+Pj4gYSBsb3Qgb2YgbWVtb3J5IGlzIHdhc3Rl ZCBpbiB0aGUgdGFibGUgZm9yIHVudXNlZCBTUEkncy4gIEFsc28sIHlvdQ0KPiA+ID4+Pj4+Pj4g YXJlIG5vdCBhYmxlIHRvIGhhdmUgYSB0YWJsZSB3aXRoIDJeMzIgc2Vzc2lvbnMuIEl0IGlzIGxp a2VseSB0aGF0DQo+ID4gPj4+Pj4+PiBzb21lIG51bWJlciBvZiBTUEkncyBsZWFzdCBzaWduaWZp Y2FudCBiaXRzIGFyZSB1c2VkIGFzIGFuIGluZGV4Lg0KPiA+ID4+Pj4+Pj4gQW5kIGl0IHJhaXNl cyBhIHF1ZXN0aW9uIC0gd2hhdCBpZiBhcHBsaWNhdGlvbiBuZWVkcyB0d28gc2Vzc2lvbnMNCj4g PiA+Pj4+Pj4+IHdpdGggZGlmZmVyZW50DQo+ID4gPj4+Pj4gU1BJJ3Mgd2hpY2ggaGF2ZSB0aGUg c2FtZSBsc2Incz8NCj4gPiA+Pj4+Pj4gW0Fub29iXSBydGVfc2VjdXJpdHlfc2Vzc2lvbl9jcmVh dGUoKSB3b3VsZCBmYWlsLiBXaHkgZG8geW91IHNheQ0KPiA+IHdlDQo+ID4gPj4+Pj4gY2Fubm90 IHN1cHBvcnQgMl4zMiBzZXNzaW9ucz8gSWYgaXQncyBtZW1vcnkgbGltaXRhdGlvbiwgdGhlIHNh bWUNCj4gPiA+Pj4+PiBtZW1vcnkgbGltaXRhdGlvbiB3b3VsZCBhcHBseSBldmVuIGlmIHlvdSBo YXZlIGR5bmFtaWMgYWxsb2NhdGlvbg0KPiBvZg0KPiA+ID4+Pj4+IG1lbW9yeSBmb3Igc2Vzc2lv bnMuIFNvIGF0IHNvbWUgcG9pbnQgc2Vzc2lvbiBjcmVhdGlvbiB3b3VsZCBzdGFydA0KPiA+ID4+ Pj4+IGZhaWxpbmcuIEluIG91ciBQTUQsIHdlIGFsbG93IHVzZXIgdG8gc3BlY2lmeSB0aGUgcmFu Z2UgaXQgcmVxdWlyZXMNCj4gdXNpbmcNCj4gPiA+Pj4gZGV2YXJncy4NCj4gPiA+Pj4+Pj4gQWxz bywgY29sbGlzaW9uIG9mIExTQnMgY2FuIGJlIGF2b2lkZWQgYnkgaW50cm9kdWNpbmcgYSAiTUFS SyIgcnVsZQ0KPiA+ID4+Pj4+PiBpbg0KPiA+ID4+Pj4+IGFkZGl0aW9uIHRvICJTRUNVUklUWSIg Zm9yIHRoZSBydGVfZmxvdyBjcmVhdGVkIGZvciBpbmxpbmUgaXBzZWMuDQo+ID4gPj4+Pj4gQ3Vy cmVudGx5IHRoYXQgbW9kZWwgaXMgbm90IHN1cHBvcnRlZCAoaW4gdGhlIGxpYnJhcnkpLCBidXQg dGhhdCBpcw0KPiA+ID4+Pj4+IG9uZSBzb2x1dGlvbiB0byB0aGUgY29sbGlzaW9ucyB0aGF0IGNh biBiZSBwdXJzdWVkIGxhdGVyLg0KPiA+ID4+Pj4+Pj4gTW9yZW92ZXIsIHdoYXQgYWJvdXQNCj4g PiA+Pj4+Pj4+IHR3byBzZXNzaW9ucyB3aXRoIHNhbWUgU1BJIGJ1dCBkaWZmZXJlbnQgZHN0IGFu ZCBzcmMgaXANCj4gYWRkcmVzc2VzPw0KPiA+ID4+Pj4+PiBbQW5vb2JdIEN1cnJlbnRseSBvdXIg UE1EIG9ubHkgc3VwcG9ydCBVQ0FTVCBJUFNFQy4gU28gYW5vdGhlcg0KPiA+ID4+Pj4+PiBzZXNz aW9uDQo+ID4gPj4+Pj4gd2l0aCBzYW1lIFNQSSB3b3VsZCByZXN1bHQgaW4gc2Vzc2lvbiBjcmVh dGlvbiBmYWlsdXJlLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gQWhhLCBJIHNlZSwgdGhhbmtzIGZv ciB0aGUgZXhwbGFuYXRpb24uIFNvIG15IHN1Z2dlc3Rpb24gaGVyZSB3b3VsZA0KPiA+IGJlOg0K PiA+ID4+Pj4+DQo+ID4gPj4+Pj4gLSBBcHBsaWNhdGlvbiBkZWZpbmVzIHRoYXQgc29tZSBzdWJz ZXQgb2YgU0EncyB3b3VsZCBiZSBpbmxpbmUNCj4gPiA+Pj4+PiBwcm90b2NvbCBwcm9jZXNzZWQu IEFuZCB0aGlzIFNBJ3Mgd2lsbCBiZSBpbmRleGVkIGJ5IFNQSSBvbmx5Lg0KPiA+ID4+Pj4+DQo+ ID4gPj4+Pj4gLSBBcHAgZGVmaW5lcyBzcGVjaWFsIHJhbmdlIGZvciBTUEkgdmFsdWVzIG9mIHRo aXMgU0EncyAoc2l6ZSBvZiB0aGlzDQo+ID4gPj4+Pj4gcmFuZ2UgaXMgZGVmaW5lZCB1c2luZyBk ZXZhcmdzKSBhbmQgZmlyc3QgU1BJIHZhbHVlIChmcm9tDQo+ID4gY29uZmlndXJhdGlvbj8pLg0K PiA+ID4+Pj4+DQo+ID4gPj4+Pj4gLSBBcHAgaW5zdGFsbHMgcnRlX2Zsb3cgb25seSBmb3IgdGhp cyByYW5nZSAoZnJvbSBmaXJzdCBTUEkgdG8gZmlyc3QNCj4gPiA+Pj4+PiBTUEkNCj4gPiA+Pj4+ PiArIHJhbmdlIHNpemUpLCBub3QgZm9yIGFsbCBTUEkgdmFsdWVzLg0KPiA+ID4+Pj4gW0Fub29i XSBUaGlzIGlzIGV4YWN0bHkgd2hhdCB0aGlzIHBhdGNoIHByb3Bvc2VzLiBBbGxvd2luZyB0aGUg U1BJIGFuZA0KPiA+IHRoZQ0KPiA+ID4+PiBJUCBhZGRyZXNzZXMgdG8gYmUgcmFuZ2UgYW5kIGhh dmUgc2VjdXJpdHlfc2Vzc2lvbiBwcm92aWRlZCBhcyBOVUxMLg0KPiA+IFdoYXQNCj4gPiA+Pj4g eW91IGhhdmUgZGVzY3JpYmVkIHdvdWxkIGJlIGFjaGlldmFibGUgb25seSBpZiB3ZSBjYW4gYWxs b3cgdGhpcw0KPiA+ID4+PiBtb2RpZmljYXRpb24gaW4gdGhlIGxpYi4NCj4gPiA+Pj4+IFNvIGNh biBJIGFzc3VtZSB5b3UgYXJlIGluIGFncmVlbWVudCB3aXRoIHRoaXMgcGF0Y2g/DQo+ID4gPj4+ IE5vdCBleGFjdGx5LiBJIG1lYW50IGl0IGlzIGJldHRlciB0byBtYWtlIG1vcmUgc3BlY2lmaWVk IGZsb3cgbGlrZToNCj4gPiA+Pj4NCj4gPiA+Pj4gLi4uDQo+ID4gPj4+DQo+ID4gPj4+IHN0cnVj dCBydGVfZmxvd19pdGVtX2VzcCBlc3Bfc3BlYyA9IHsNCj4gPiA+Pj4NCj4gPiA+Pj4gICAgICAg ICAgIC5oZHIgPSB7DQo+ID4gPj4+ICAgICAgICAgICAgICAgICAgIC5zcGkgPSBydGVfY3B1X3Rv X2JlXzMyKGZpcnN0X3NwaSksDQo+ID4gPj4+ICAgICAgICAgICB9LA0KPiA+ID4+Pg0KPiA+ID4+ PiB9Ow0KPiA+ID4+Pg0KPiA+ID4+PiBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9lc3AgZXNwX21hc2sg PSB7DQo+ID4gPj4+DQo+ID4gPj4+ICAgICAgICAgICAuaGRyID0gew0KPiA+ID4+PiAgICAgICAg ICAgICAgICAgICAuc3BpID0gcnRlX2NwdV90b19iZV8zMihuYl9pcHNlY19pbl9zYSAtIDEpLA0K PiA+ID4+PiAgICAgICAgICAgfSwNCj4gPiA+Pj4NCj4gPiA+Pj4gfTsNCj4gPiA+Pj4NCj4gPiA+ Pj4gcGF0dGVyblswXS50eXBlID0gUlRFX0ZMT1dfSVRFTV9UWVBFX0VTUDsNCj4gPiA+Pj4NCj4g PiA+Pj4gcGF0dGVyblswXS5zcGVjID0gJiBlc3Bfc3BlYzsNCj4gPiA+Pj4NCj4gPiA+Pj4gcGF0 dGVyblswXS5tYXNrID0gJmVzcF9tYXNrOw0KPiA+ID4+Pg0KPiA+ID4+PiAuLi4NCj4gPiA+Pj4N Cj4gPiA+Pj4gU28gdGhpcyBtZWFucyBpbmxpbmUgcHJvdG8gZGV2aWNlIHdvdWxkIHByb2Nlc3Mg b25seSBzcGVjaWFsIHN1YnNldCBvZg0KPiA+IFNQSSdzLg0KPiA+ID4+PiBBbGwgb3RoZXIgd2ls bCBiZSBwcm9jZXNzZWQgYXMgdXN1YWwuIFN1cmUsIHlvdSBjYW4gYXNzaWduIGFsbA0KPiA+ID4+ PiAyXjMyIFNQSSByYW5nZSBhbmQgaXQgd29yayBhcyB5b3UgaW50ZW5kZWQgZWFybGllci4gSSB0 aGluayB3ZSBuZWVkIHRvDQo+ID4gaGF2ZQ0KPiA+ID4+PiBmaW5lciBncmFpbmVkIGNvbnRyb2wg aGVyZS4NCj4gPiA+Pj4NCj4gPiA+PiBbQW5vb2JdIEFsbG93aW5nIGEgcmFuZ2UgZm9yIFNQSSBp cyB3aGF0IHlvdSBoYXZlIGFsc28gZGVzY3JpYmVkLiBXaGF0DQo+ID4geW91IGRlc2NyaWJlZCBp cyBvbmUgd2F5IHRvIGRlZmluZSBhIHJhbmdlLiBUaGF0IHdpbGwgY29tZSBhcw0KPiA+ID4+IHBh cnQgb2YgdGhlIGltcGxlbWVudGF0aW9uLCBpZSwgYSBjaGFuZ2UgaW4gdGhlIGV4YW1wbGUgYXBw bGljYXRpb24uIFRoaXMNCj4gPiBwYXRjaCBpbnRlbmRzIHRvIGFsbG93IHVzaW5nIGEgcmFuZ2Ug Zm9yIFNQSSB0aGFuIGEgZml4ZWQNCj4gPiA+PiB2YWx1ZS4gSSBiZWxpZXZlIHlvdSBhcmUgYWxz byBpbiBhZ3JlZW1lbnQgdGhlcmUuDQo+ID4gPiBJIGFsc28gZG9uJ3QgaGF2ZSBvYmplY3Rpb25z IGZvciB0aGF0IHBhdGNoLg0KPiA+ID4gVGhlIG9ubHkgb2JzZXJhdmlvbiBmcm9tIHJlYWRpbmcg eW91ciByZXBsaWVzIHRvIHRoYXQgYXQgaXBzZWMtc2VjZ3cNCj4gPiBwYXRjaGVzOg0KPiA+ID4g RXh0cmEgQVBJIHRvIHJldHJpZXZlIHNpemUgb2YgdGhhdCBIVyB0YWJsZSBzZWVtcyB0byBiZSBu ZWVkZWQuDQo+ID4gPiBUaG91Z2ggSSBzdXBwb3NlIGl0IGNvdWxkIGJlIGEgc3ViamVjdCBvZiBz ZXBhcmF0ZSBwYXRjaC9kaXNjdXNzaW9uLg0KPiA+ID4NCj4gPiA+IEFja2VkLWJ5OiBLb25zdGFu dGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+ID4NCj4gPiBJIGFs c28gZG9uJ3QgaGF2ZSBvYmplY3Rpb25zLg0KPiA+DQo+ID4gQWNrZWQtYnk6IFZsYWRpbWlyIE1l ZHZlZGtpbiA8dmxhZGltaXIubWVkdmVka2luQGludGVsLmNvbT4NCj4gPg0KPiA+ID4NCj4gPiA+ Pj4+PiAtIE90aGVyIFNQSSB2YWx1ZXMgd291bGQgYmUgcHJvY2Vzc2VkIG5vbiBpbmxpbmUuDQo+ ID4gPj4+Pj4NCj4gPiA+Pj4+PiBJbiB0aGlzIGNhc2Ugd2Ugd291bGQgYmUgYWJsZSB0byBoYXZl IFNBIGFkZHJlc3NlZCBieSBsb25nZXIgdHVwbGUNCj4gPiAoaS5lLg0KPiA+ID4+Pj4+IFNQSStE SVArU0lQKSBvdXRzaWRlIG9mIGJlZm9yZSBtZW50aW9uZWQgcmFuZ2UsIGFzIHdlbGwgYXMgU0Eg d2l0aA0KPiA+ID4+Pj4+IHVuc3VwcG9ydGVkIGNhcGFiaWxpdGllcyBieSBpbmxpbmUgcHJvdG9j b2wgZGV2aWNlLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+IFRoZSB1c2FnZSBvZiBvbmUg J3J0ZV9mbG93JyBmb3IgbXVsdGlwbGUgU0FzIGlzIG5vdA0KPiA+IG1hbmRhdG9yeS4NCj4gPiA+ Pj4+Pj4+Pj4+Pj4gSXQgaXMgb25seSByZXF1aXJlZCB3aGVuIGFwcGxpY2F0aW9uIHJlcXVpcmVz IGxhcmdlIG51bWJlcg0KPiBvZg0KPiA+ID4+PiBTQXMuDQo+ID4gPj4+Pj4+Pj4+Pj4+IFRoZSBw cm9wb3NlZA0KPiA+ID4+Pj4+Pj4+Pj4+IGNoYW5nZSBpcyB0byBhbGxvdyBtb3JlIGVmZmljaWVu dCB1c2FnZSBvZiBoL3cgcmVzb3VyY2VzDQo+ID4gd2hlcmUNCj4gPiA+Pj4+Pj4+Pj4+PiBpdCdz IHBlcm1pdHRlZCBieSB0aGUgUE1ELg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IEFwcGxpY2F0aW9uIHNo b3VsZCBkbyBhbiBydGVfZmxvd192YWxpZGF0ZSgpIHRvIG1ha2UNCj4gc3VyZQ0KPiA+ID4+Pj4+ Pj4+Pj4+Pj4+IHRoZSBmbG93IGlzIHN1cHBvcnRlZCBvbiB0aGUgUE1ELg0KPiA+ID4+Pj4+Pj4+ Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQW5vb2IgSm9zZXBoIDxh bm9vYmpAbWFydmVsbC5jb20+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4gPj4+Pj4+Pj4+ Pj4+Pj4gICAgICAgbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaCB8IDYgKysrKysrDQo+ID4g Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQ0KPiA+ ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9saWJy dGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBiL2xpYi9saWJydGVfZXRo ZGV2L3J0ZV9mbG93LmggaW5kZXggNDUyZDM1OS4uMjFmYTdlZA0KPiA+ID4+PiAxMDA2NDQNCj4g PiA+Pj4+Pj4+Pj4+Pj4+PiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4g Pj4+Pj4+Pj4+Pj4+Pj4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ID4+ Pj4+Pj4+Pj4+Pj4+IEBAIC0yMjM5LDYgKzIyMzksMTIgQEAgc3RydWN0IHJ0ZV9mbG93X2FjdGlv bl9tZXRlcg0KPiB7DQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICogZGlyZWN0aW9uLg0KPiA+ ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAqDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICogTXVs dGlwbGUgZmxvd3MgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBzYW1lDQo+ID4gPj4+Pj4+ Pj4+Pj4+Pj4gc2VjdXJpdHkNCj4gPiA+Pj4+PiBzZXNzaW9uLg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ ICsgKg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKiBUaGUgTlVMTCB2YWx1ZSBpcyBhbGxvd2VkIGZv ciBzZWN1cml0eSBzZXNzaW9uLiBJZg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgc2VjdXJpdHkgc2Vz c2lvbiBpcyBOVUxMLA0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKiB0aGVuIFNQSSBmaWVsZCBpbiBF U1AgZmxvdyBpdGVtIGFuZCBJUCBhZGRyZXNzZXMgaW4NCj4gZmxvdw0KPiA+ID4+Pj4+Pj4+Pj4+ Pj4+ICsgaXRlbXMgJ0lQdjQnIGFuZA0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKiAnSVB2Nicgd2ls bCBiZSBhbGxvd2VkIHRvIGJlIGEgcmFuZ2UuIFRoZSBydWxlIHRodXMNCj4gPiA+Pj4+Pj4+Pj4+ Pj4+PiArIGNyZWF0ZWQgY2FuIGVuYWJsZQ0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKiBTRUNVUklU WSBwcm9jZXNzaW5nIG9uIG11bHRpcGxlIGZsb3dzLg0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKg0K PiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAqLw0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgIHN0 cnVjdCBydGVfZmxvd19hY3Rpb25fc2VjdXJpdHkgew0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAg IHZvaWQgKnNlY3VyaXR5X3Nlc3Npb247IC8qKjwgUG9pbnRlciB0byBzZWN1cml0eQ0KPiA+ID4+ Pj4+Pj4+Pj4+Pj4+IHNlc3Npb24NCj4gPiA+Pj4+Pj4+IHN0cnVjdHVyZS4NCj4gPiA+Pj4+Pj4+ Pj4+Pj4+PiAqLw0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IC0tDQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gMi43 LjQNCj4gPiA+Pj4+Pj4+Pj4gLS0NCj4gPiA+Pj4+Pj4+Pj4gUmVnYXJkcywNCj4gPiA+Pj4+Pj4+ Pj4gVmxhZGltaXINCj4gPiA+Pj4+Pj4+IC0tDQo+ID4gPj4+Pj4+PiBSZWdhcmRzLA0KPiA+ID4+ Pj4+Pj4gVmxhZGltaXINCj4gPiA+Pj4+PiAtLQ0KPiA+ID4+Pj4+IFJlZ2FyZHMsDQo+ID4gPj4+ Pj4gVmxhZGltaXINCj4gPiA+Pj4gLS0NCj4gPiA+Pj4gUmVnYXJkcywNCj4gPiA+Pj4gVmxhZGlt aXINCj4gPg0KPiA+IC0tDQo+ID4gUmVnYXJkcywNCj4gPiBWbGFkaW1pcg0KDQo=