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 9E73CA04DB for ; Fri, 16 Oct 2020 07:43:48 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 649EF1DB63; Fri, 16 Oct 2020 07:43:47 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70070.outbound.protection.outlook.com [40.107.7.70]) by dpdk.org (Postfix) with ESMTP id 2C2BB1D5E3; Fri, 16 Oct 2020 07:43:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=R/svsSNBWRlMASUAh/s+LbNTvpz9AIYTjRypkEL5qUE=; b=ozJC3B/ky/yfgZYQj04FbSIiV7aGw6boNxhurmc0koG2cmiX5uG0yMsEuxAvG0FumAZoxbTietK3uePVl7odlbRsLnIWApnfMmJFaRb0H/Xd0Hyo5Rq/P9htO630LfT5GVBFwv0tLsjIzBaQLab3D//GGRA632CZDE1NIpltoCM= Received: from AM5PR0301CA0026.eurprd03.prod.outlook.com (2603:10a6:206:14::39) by AM6PR08MB3079.eurprd08.prod.outlook.com (2603:10a6:209:45::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 05:43:39 +0000 Received: from VE1EUR03FT058.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:14:cafe::d3) by AM5PR0301CA0026.outlook.office365.com (2603:10a6:206:14::39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Fri, 16 Oct 2020 05:43:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT058.mail.protection.outlook.com (10.152.19.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Fri, 16 Oct 2020 05:43:36 +0000 Received: ("Tessian outbound c189680f801b:v64"); Fri, 16 Oct 2020 05:43:36 +0000 X-CR-MTA-TID: 64aa7808 Received: from 5ca5e2f88729.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EDA159F2-B2C8-41DE-8240-AEE2E48C296A.1; Fri, 16 Oct 2020 05:43:31 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5ca5e2f88729.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 16 Oct 2020 05:43:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jELgPSCUH3lHNt0CeCgcgf/Fr6655RlYNPdRYtNqT+xty91blf4d+j2mRCi8t7UA2Q3Bh1jMN8NfJOiIQieUPLzhqe7j1xlATMuReOT5m8ZngNKT4hHVvctS86SmCyr+xU5MZ5MpnAHyHzrL+O44gtE/hbmGJmmCtb2jD7OFEfAQweWz9nCadFNUL4iNTZ8YXZ5OHRABe22xwq/eLvgsGKlik+FeIJCGgirxyXVkli+lsOwODD9JdV+8sqDcUorJFqzc485vyKfegQ+96SrTqMzWyrZL2ECcG9zQJ+i+UWUCuOQ7+gXXvGktUQqEN/+wxboUleAU8ighlbMnfRnmfw== 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=R/svsSNBWRlMASUAh/s+LbNTvpz9AIYTjRypkEL5qUE=; b=aoo1gYS9wx5kSvLax0ubRt/5LUJ6NtTUpyHHdM19SePguhpnbBSkQaJEWJSBVXmk1M1WNZ6ozeY2NzsUOBWxIymAd/J6bYD0LHb4vkgfq3DEdM9/Y9mnmZJSluSBvTNcechkjxt1kTm2fV4AYZkf4zb6GWqiu6HTgVmA5o4opgah3fegVIWOEjTMKqQ+i+EBJPDRQTIrfHCTjXfQLYOLl+fZ5YtIdAe1btx539j96w3vWsIZQhpB2r77r6m5NiHLgcz9y8TIho/EEJkY4VlWAptCkiEOIIL3PdEZvKSUYck/Yiky2gTB86S56PAojVQWaP2wjmLqjQqIwOHpF3XWRA== 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=R/svsSNBWRlMASUAh/s+LbNTvpz9AIYTjRypkEL5qUE=; b=ozJC3B/ky/yfgZYQj04FbSIiV7aGw6boNxhurmc0koG2cmiX5uG0yMsEuxAvG0FumAZoxbTietK3uePVl7odlbRsLnIWApnfMmJFaRb0H/Xd0Hyo5Rq/P9htO630LfT5GVBFwv0tLsjIzBaQLab3D//GGRA632CZDE1NIpltoCM= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DB7PR08MB3082.eurprd08.prod.outlook.com (2603:10a6:5:1d::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.23; Fri, 16 Oct 2020 05:43:28 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d%4]) with mapi id 15.20.3477.020; Fri, 16 Oct 2020 05:43:28 +0000 From: Honnappa Nagarahalli To: Lukasz Wojciechowski , David Hunt , Bruce Richardson CC: "dev@dpdk.org" , "stable@dpdk.org" , nd , Honnappa Nagarahalli , nd Thread-Topic: [dpdk-dev] [PATCH v4 2/8] test/distributor: synchronize lcores statistics Thread-Index: AQHWo39FwMPR3IZuj0a0+jLy15bN0A== Date: Fri, 16 Oct 2020 05:43:28 +0000 Message-ID: References: <20200923132541.21417-1-l.wojciechow@partner.samsung.com> <20200925224209.12173-1-l.wojciechow@partner.samsung.com> <20200925224209.12173-3-l.wojciechow@partner.samsung.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: DC59060122B75C44B1504507CED46FE5.0 x-checkrecipientchecked: true Authentication-Results-Original: partner.samsung.com; dkim=none (message not signed) header.d=none;partner.samsung.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [217.140.110.7] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8feb4ef2-e6e7-4d88-f955-08d871966d93 x-ms-traffictypediagnostic: DB7PR08MB3082:|AM6PR08MB3079: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:6790;OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 8ywmsgfEiSKLn9l4RNgV5iN7IRlrSs4RQMBoRKX9m+Am3e6x+DnnrdRe2TZJBqONiWMcSYcsKM64Z+uv5Y6tBZSZ9mzdj3fTWtJ2JQp65A7BS9JNOBds/fGzBKOPCAnl5RDJTT+poPC9Et4RgKo7PZfbcmQcdb9mp0fsC2cDQUryhzOoJhF+XOHM0t2uUKI50sLo2w+S84KRw6YsUw/MSN0Jat+CYezaIY2ziQrTxEPwsUBN6YP6fnnKfAeaiZrjZw4iEPIbFp3Od9X5wNg16Z0MvNGaxsDKGUWrvA2ABlwlV99MF822GZ9akstdBoTcuPWKQpF+XHQEjHQ2LqVdqEqF3aNZ7fEpn8LNmwXLwEzEs0VRzovD7wKsxegUwzN1IMYyMKOfUv8dnWE+MFxmgw== 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:(4636009)(376002)(39860400002)(366004)(346002)(136003)(396003)(76116006)(64756008)(7696005)(66556008)(66476007)(83380400001)(66446008)(66946007)(71200400001)(2906002)(86362001)(9686003)(6506007)(8676002)(4326008)(8936002)(55016002)(966005)(54906003)(478600001)(110136005)(316002)(186003)(5660300002)(52536014)(33656002)(26005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: NrOBg0ZA4yXPVmLZJ0dcRTXaNaXDo2FcE0R29idd7kY0QlxH1iFVV8cJ1jIGISr54nFCbKffJx6YPX9S5wOJ4DA/5pVpFo6tE40BNGGhZooQoD5093mczR583A+Mln5HVh3N6hmHMtLGpLy6ytD6p+alQyMkLXpuPcjghz6NU/2c1Bsvhy54SvIePoZwSBwI0R1IUc3Hb7b39n16S0/m+Btw7C3PZmVmeAiudgu8YY9RjqceIz0Vblc+uIUL0cJIzd1llLZkJF1Wl8QTt+iCOEIVrsTv9PoFCKdUnXsHBIiqxcZNZ21NV8abPDUUPI8mgMSXwnFRSAE1mrtVtdNiBWlODjAp8O32g10eGiBPfjgWdEsjxfFcaiFDvORVMQ2xRCS0oHc1qWdXJq2awd1F+71TJ4ZNSAxx+xlDBeovg6JhAAK6AS9qGX12QUuk2VJMPJuhpSD69x7KgO/6uuQQo5Tm0rkiPVC1MP/EHFOb6Oh8kgud1Miei4gsXnRz5NHh5UoGMN8u8h0xLLYk8DhxttvoUD8ALNrW71VBSzd9Zru4JkCjJqSa/Mra+md/x8MbWnkgiC5Zw2LbbxQL9WSCHkaFQZM/xm/URwDu4TLHTrEU1iz9eA15yYRjCW73i63IHzcxulUSJj2yMmWd0Rckiw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3082 Original-Authentication-Results: partner.samsung.com; dkim=none (message not signed) header.d=none;partner.samsung.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 1e8bf77d-7ff2-420b-11f6-08d871966890 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rIm5vxbr2OZSX3GKb8lnJtSDmro0U+ilWYBDLeS0405u0zYljteiYX8NKRTvovNcvj8TYcQmmKL31XuhnEi/99+2zbXLC2IFHP6iympw2lQbTcW4yHaULx7QGoHzZgJX7KXOGn6AlQXcrjJHMw6R/+XlAGShvBRzSBlzbfI2yAspAdDGUV7trM1w78LWOuqAc1sUB7R50OIal8rtnt4FIxl6u34YdkENf7sKBcDbUPIie4/wcD5yrxMYPckgLFYgknKGJWLoWIexfQ2hY8v6BWarSpvZ0GZicMuxD/l6xMcQV7K8uhOnHSY6zwv9p2VSlEekKcyvi+P+S0Y6d8k2Dcd9KafWp7y1Mf0BHzd96paA/CNcjJQVzD8pnxGyCVz0tQqjOdiXOl3uUItjmNfFXuqqx1mWYkN+YRp9swVIlVfgzIGLkQC6tFjk1tkRohnUDQ1dJpDZBaBQEsZ88FZyLwAQLQhEotcVq4xzHUf8vHc= 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:ErrorRetry; CAT:NONE; SFS:(4636009)(376002)(136003)(346002)(39860400002)(396003)(46966005)(110136005)(33656002)(966005)(55016002)(478600001)(36906005)(6506007)(5660300002)(86362001)(316002)(336012)(54906003)(7696005)(82310400003)(186003)(26005)(8936002)(4326008)(82740400003)(450100002)(8676002)(52536014)(81166007)(9686003)(70206006)(2906002)(356005)(83380400001)(47076004)(70586007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 05:43:36.8463 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8feb4ef2-e6e7-4d88-f955-08d871966d93 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: VE1EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3079 Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH v4 2/8] test/distributor: synchronize lcores statistics X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" PHNuaXA+DQoNCj4gDQo+IEhpIEhvbm5hcHBhLA0KPiANCj4gTWFueSB0aGFua3MgZm9yIHRoZSBy ZXZpZXchDQo+IA0KPiBJJ2xsIHdyaXRlIG15IGFuc3dlcnMgaGVyZSBub3QgaW5saW5lIGFzIGl0 IHdvdWxkIGJlIGVhc2llciB0byByZWFkIHRoZW0gaW4gb25lDQo+IHBsYWNlLCBJIHRoaW5rLg0K PiBTbyBmaXJzdCBvZiBhbGwgSSBhZ3JlZSB3aXRoIHlvdSBpbiAyIHRoaW5nczoNCj4gMSkgYWxs IHVzZXMgb2Ygc3RhdGlzdGljcyBtdXN0IGJlIGF0b21pYyBhbmQgbGFjayBvZiB0aGF0IGNhdXNl ZCBtb3N0IG9mIHRoZQ0KPiBwcm9ibGVtcw0KPiAyKSBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gcmVw bGFjZSBiYXJyaWVyIGFuZCBtZW1zZXQgaW4NCj4gY2xlYXJfcGFja2V0X2NvdW50KCkgd2l0aCBh dG9taWMgc3RvcmVzIGFzIHlvdSBzdWdnZXN0ZWQNCj4gDQo+IFNvIEkgd2lsbCBhcHBseSBib3Ro IG9mIGFib3ZlLg0KPiANCj4gSG93ZXZlciBJIHdhc24ndCBub3QgZnVsbHkgY29udmluY2VkIG9u IGNoYW5naW5nIGFjcXVpcmUvcmVsZWFzZSB0byByZWxheGVkLg0KPiBJdCB3b29kIGJlIHBlcmZl Y3RseSBvayBpZiBpdCB3b3VsZCBsb29rIGxpa2UgaW4gdGhpcyBIZXJiIFN1dHRlcidzIGV4YW1w bGU6DQo+IGh0dHBzOi8veW91dHUuYmUvS2VMQmQyW10gIEVKTE9VP3Q9NDE3MA0KPiBCdXQgaW4g aGlzIGNhc2UgdGhlIGNvdW50ZXJzIGFyZSBjbGVhcmVkIGJlZm9yZSB3b3JrZXIgdGhyZWFkcyBz dGFydCBhbmQgYXJlDQo+IHByaW50b3V0IGFmdGVyIHRoZXkgYXJlIGNvbXBsZXRlZC4NCj4gDQo+ IEluIGNhc2Ugb2YgdGhlIGRwZGsgZGlzdHJpYnV0b3IgdGVzdHMgYm90aCB3b3JrZXIgYW5kIG1h aW4gY29yZXMgYXJlIHJ1bm5pbmcNCj4gYXQgdGhlIHNhbWUgdGltZS4gSW4gdGhlIHNhbml0eV90 ZXN0LCB0aGUgc3RhdGlzdGljcyBhcmUgY2xlYXJlZCBhbmQgdmVyaWZpZWQNCj4gZmV3IHRpbWVz IGZvciBkaWZmZXJlbnQgaGFzaGVzIG9mIHBhY2thZ2VzLiBUaGUgd29ya2VyIGNvcmVzIGFyZSBu b3QNCj4gc3RvcHBlZCBhdCB0aGlzIHRpbWUgYW5kIHRoZXkgY29udGludWUgdGhlaXIgbG9vcHMg aW4gaGFuZGxlIHByb2NlZHVyZS4NCj4gVmVyaWZpY2F0aW9uIG1hZGUgaW4gbWFpbiBjb3JlIGlz IGFuIGV4Y2hhbmdlIG9mIGRhdGEgYXMgdGhlIGN1cnJlbnQgc3RhdGlzdGljcw0KPiBpbmRpY2F0 ZSBob3cgdGhlIHRlc3Qgd2lsbCByZXN1bHQuDQpBZ3JlZS4gVGhlIGtleSBwb2ludCB3ZSBoYXZl IHRvIG5vdGUgaXMgdGhhdCB0aGUgZGF0YSB0aGF0IGlzIGV4Y2hhbmdlZCBiZXR3ZWVuIHRoZSB0 d28gdGhyZWFkcyBpcyBhbHJlYWR5IGF0b21pYyAoaGFuZGxlZF9wYWNrZXRzIGlzIGF0b21pYyku DQoNCj4gDQo+IFNvIGFzIEkgd2Fzbid0IGNvbnZpbmNlZCwgSSBydW4gc29tZSB0ZXN0cyB3aXRo IGJvdGggYm90aCByZWxheGVkIGFuZA0KPiBhY3F1aXJlL3JlbGVhc2UgbW9kZXMgYW5kIHRoZXkg Ym90aCBmYWlsIDooIFRoZSBmYWlsdXJlcyBjYXVzZWQgYnkgc3RhdGlzdGljcw0KPiBlcnJvcnMg dG8gbnVtYmVyIG9mIHRlc3RzIHJhdGlvIGZvcg0KPiAyMDAwMDAgdGVzdHMgd2FzOg0KPiBmb3Ig cmVsYXhlZDogMCwwMDA3OTA1NjINCj4gZm9yIGFjcS9yZWw6IDAsMDAwMDkxMzIxDQo+IA0KPiAN Cj4gVGhhdCdzIHdoeSBJJ20gZ29pbmcgdG8gbW9kaWZ5IHRlc3RzIGluIHN1Y2ggd2F5LCB0aGF0 IHRoZXkgd291bGQ6DQo+IDEpIGNsZWFyIHN0YXRpc3RpY3MNCj4gMikgbGF1bmNoIHdvcmtlciB0 aHJlYWRzDQo+IDMpIHJ1biB0ZXN0DQo+IDQpIHdhaXQgZm9yIHdvcmtlcnMgcHJvY2VkdXJlcyB0 byBjb21wbGV0ZQ0KPiA1KSBjaGVjayBzdGF0cywgdmVyaWZ5IHJlc3VsdHMgYW5kIHByaW50IHRo ZW0gb3V0DQo+IA0KPiBUaGlzIHdheSB3b3JrZXIgbWFpbiBjb3JlIHdpbGwgdXNlIChjbGVhciBv ciB2ZXJpZnkpIHN0YXRzIG9ubHkgd2hlbiB0aGVyZSBhcmUNCj4gbm8gd29ya2VyIHRocmVhZHMu IFRoaXMgd291bGQgbWFrZSB0aGluZ3Mgc2ltcGxlciBhbmQgYWxsb3dpbmcgdG8gZm9jdXMgb24N Cj4gdGVzdGluZyB0aGUgZGlzdHJpYnV0b3Igbm90IHRlc3RzLiBBbmQgb2YgY291cnNlIHJlbGF4 ZWQgbW9kZSB3b3VsZCBiZQ0KPiBlbm91Z2ghDQpBZ3JlZSwgdGhpcyB3b3VsZCBiZSB0aGUgb25s eSB3YXkgdG8gZW5zdXJlIHRoYXQgdGhlIG1haW4gdGhyZWFkIHNlZXMgdGhlIGNvcnJlY3Qgc3Rh dGlzdGljcyAoanVzdCBsaWtlIGluIHRoZSB2aWRlbykNCg0KPiANCj4gDQo+IEJlc3QgcmVnYXJk cw0KPiBMdWthc3oNCj4gDQo+IA0KPiBXIGRuaXUgMjkuMDkuMjAyMCBvwqAwNzo0OSwgSG9ubmFw cGEgTmFnYXJhaGFsbGkgcGlzemU6DQo+ID4gPHNuaXA+DQo+ID4NCj4gPj4gU3RhdGlzdGljcyBv ZiBoYW5kbGVkIHBhY2tldHMgYXJlIGNsZWFyZWQgYW5kIHJlYWQgb24gbWFpbiBsY29yZSwNCj4g Pj4gd2hpbGUgdGhleSBhcmUgaW5jcmVhc2VkIGluIHdvcmtlcnMgaGFuZGxlcnMgb24gZGlmZmVy ZW50IGxjb3Jlcy4NCj4gPj4NCj4gPj4gV2l0aG91dCBzeW5jaHJvbml6YXRpb24gb2NjYXNpb25h bGx5IHNob3dlZCBpbnZhbGlkIHZhbHVlcy4NCj4gPj4gVGhpcyBwYXRjaCB1c2VzIGF0b21pYyBh Y3F1aXJlL3JlbGVhc2UgbWVjaGFuaXNtcyB0byBzeW5jaHJvbml6ZS4NCj4gPiBJbiBnZW5lcmFs LCBsb2FkLWFjcXVpcmUgYW5kIHN0b3JlLXJlbGVhc2UgbWVtb3J5IG9yZGVyaW5ncyBhcmUgcmVx dWlyZWQNCj4gd2hpbGUgc3luY2hyb25pemluZyBkYXRhICh0aGF0IGNhbm5vdCBiZSB1cGRhdGVk IGF0b21pY2FsbHkpIGJldHdlZW4NCj4gdGhyZWFkcy4gSW4gdGhlIHNpdHVhdGlvbiwgbWFraW5n IGNvdW50ZXJzIGF0b21pYyBpcyBlbm91Z2guDQo+ID4NCj4gPj4gRml4ZXM6IGMzZWFiZmYxMjRl NiAoImRpc3RyaWJ1dG9yOiBhZGQgdW5pdCB0ZXN0cyIpDQo+ID4+IENjOiBicnVjZS5yaWNoYXJk c29uQGludGVsLmNvbQ0KPiA+PiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4+DQo+ID4+IFNpZ25l ZC1vZmYtYnk6IEx1a2FzeiBXb2pjaWVjaG93c2tpDQo+ID4+IDxsLndvamNpZWNob3dAcGFydG5l ci5zYW1zdW5nLmNvbT4NCj4gPj4gQWNrZWQtYnk6IERhdmlkIEh1bnQgPGRhdmlkLmh1bnRAaW50 ZWwuY29tPg0KPiA+PiAtLS0NCj4gPj4gICBhcHAvdGVzdC90ZXN0X2Rpc3RyaWJ1dG9yLmMgfCAz OSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQ0KPiAtLQ0KPiA+PiAgIDEgZmls ZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkNCj4gPj4NCj4gPj4g ZGlmZiAtLWdpdCBhL2FwcC90ZXN0L3Rlc3RfZGlzdHJpYnV0b3IuYw0KPiA+PiBiL2FwcC90ZXN0 L3Rlc3RfZGlzdHJpYnV0b3IuYyBpbmRleA0KPiA+PiAzNWIyNTQ2M2EuLjBlNDllMzcxNCAxMDA2 NDQNCj4gPj4gLS0tIGEvYXBwL3Rlc3QvdGVzdF9kaXN0cmlidXRvci5jDQo+ID4+ICsrKyBiL2Fw cC90ZXN0L3Rlc3RfZGlzdHJpYnV0b3IuYw0KPiA+PiBAQCAtNDMsNyArNDMsOCBAQCB0b3RhbF9w YWNrZXRfY291bnQodm9pZCkgIHsNCj4gPj4gICAJdW5zaWduZWQgaSwgY291bnQgPSAwOw0KPiA+ PiAgIAlmb3IgKGkgPSAwOyBpIDwgd29ya2VyX2lkeDsgaSsrKQ0KPiA+PiAtCQljb3VudCArPSB3 b3JrZXJfc3RhdHNbaV0uaGFuZGxlZF9wYWNrZXRzOw0KPiA+PiArCQljb3VudCArPQ0KPiA+PiBf X2F0b21pY19sb2FkX24oJndvcmtlcl9zdGF0c1tpXS5oYW5kbGVkX3BhY2tldHMsDQo+ID4+ICsJ CQkJX19BVE9NSUNfQUNRVUlSRSk7DQo+ID4gUkVMQVhFRCBtZW1vcnkgb3JkZXIgaXMgc3VmZmlj aWVudC4gRm9yIGV4OiB0aGUgd29ya2VyIHRocmVhZHMgYXJlIG5vdA0KPiAncmVsZWFzaW5nJyBh bnkgZGF0YSB0aGF0IGlzIG5vdCBhdG9taWNhbGx5IHVwZGF0ZWQgdG8gdGhlIG1haW4gdGhyZWFk Lg0KPiA+DQo+ID4+ICAgCXJldHVybiBjb3VudDsNCj4gPj4gICB9DQo+ID4+DQo+ID4+IEBAIC01 Miw2ICs1Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiA+PiAgIGNsZWFyX3BhY2tldF9jb3Vu dCh2b2lkKQ0KPiA+PiAgIHsNCj4gPj4gICAJbWVtc2V0KCZ3b3JrZXJfc3RhdHMsIDAsIHNpemVv Zih3b3JrZXJfc3RhdHMpKTsNCj4gPj4gKwlydGVfYXRvbWljX3RocmVhZF9mZW5jZShfX0FUT01J Q19SRUxFQVNFKTsNCj4gPiBJZGVhbGx5LCB0aGUgY291bnRlcnMgc2hvdWxkIGJlIHNldCB0byAw IGF0b21pY2FsbHkgcmF0aGVyIHRoYW4gdXNpbmcgYQ0KPiBtZW1zZXQuDQo+ID4NCj4gPj4gICB9 DQo+ID4+DQo+ID4+ICAgLyogdGhpcyBpcyB0aGUgYmFzaWMgd29ya2VyIGZ1bmN0aW9uIGZvciBz YW5pdHkgdGVzdCBAQCAtNzIsMTMNCj4gPj4gKzc0LDEzIEBAIGhhbmRsZV93b3JrKHZvaWQgKmFy ZykNCj4gPj4gICAJbnVtID0gcnRlX2Rpc3RyaWJ1dG9yX2dldF9wa3QoZGIsIGlkLCBidWYsIGJ1 ZiwgbnVtKTsNCj4gPj4gICAJd2hpbGUgKCFxdWl0KSB7DQo+ID4+ICAgCQlfX2F0b21pY19mZXRj aF9hZGQoJndvcmtlcl9zdGF0c1tpZF0uaGFuZGxlZF9wYWNrZXRzLA0KPiA+PiBudW0sDQo+ID4+ IC0JCQkJX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4+ICsJCQkJX19BVE9NSUNfQUNRX1JFTCk7DQo+ ID4gVXNpbmcgdGhlIF9fQVRPTUlDX0FDUV9SRUwgb3JkZXIgZG9lcyBub3QgbWVhbiBhbnl0aGlu ZyB0byB0aGUgbWFpbg0KPiB0aHJlYWQuIFRoZSBtYWluIHRocmVhZCBtaWdodCBzdGlsbCBzZWUg dGhlIHVwZGF0ZXMgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcyBpbg0KPiBkaWZmZXJlbnQgb3JkZXIu DQo+ID4NCj4gPj4gICAJCWNvdW50ICs9IG51bTsNCj4gPj4gICAJCW51bSA9IHJ0ZV9kaXN0cmli dXRvcl9nZXRfcGt0KGRiLCBpZCwNCj4gPj4gICAJCQkJYnVmLCBidWYsIG51bSk7DQo+ID4+ICAg CX0NCj4gPj4gICAJX19hdG9taWNfZmV0Y2hfYWRkKCZ3b3JrZXJfc3RhdHNbaWRdLmhhbmRsZWRf cGFja2V0cywgbnVtLA0KPiA+PiAtCQkJX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4+ICsJCQlfX0FU T01JQ19BQ1FfUkVMKTsNCj4gPiBTYW1lIGhlcmUsIGRvIG5vdCBzZWUgd2h5IHRoaXMgY2hhbmdl IGlzIHJlcXVpcmVkLg0KPiA+DQo+ID4+ICAgCWNvdW50ICs9IG51bTsNCj4gPj4gICAJcnRlX2Rp c3RyaWJ1dG9yX3JldHVybl9wa3QoZGIsIGlkLCBidWYsIG51bSk7DQo+ID4+ICAgCXJldHVybiAw Ow0KPiA+PiBAQCAtMTM0LDcgKzEzNiw4IEBAIHNhbml0eV90ZXN0KHN0cnVjdCB3b3JrZXJfcGFy YW1zICp3cCwgc3RydWN0DQo+ID4+IHJ0ZV9tZW1wb29sICpwKQ0KPiA+Pg0KPiA+PiAgIAlmb3Ig KGkgPSAwOyBpIDwgcnRlX2xjb3JlX2NvdW50KCkgLSAxOyBpKyspDQo+ID4+ICAgCQlwcmludGYo IldvcmtlciAldSBoYW5kbGVkICV1IHBhY2tldHNcbiIsIGksDQo+ID4+IC0JCQkJd29ya2VyX3N0 YXRzW2ldLmhhbmRsZWRfcGFja2V0cyk7DQo+ID4+ICsJCQlfX2F0b21pY19sb2FkX24oJndvcmtl cl9zdGF0c1tpXS5oYW5kbGVkX3BhY2tldHMsDQo+ID4+ICsJCQkJCV9fQVRPTUlDX0FDUVVJUkUp KTsNCj4gPiBfX0FUT01JQ19SRUxBWEVEIGlzIGVub3VnaC4NCj4gPg0KPiA+PiAgIAlwcmludGYo IlNhbml0eSB0ZXN0IHdpdGggYWxsIHplcm8gaGFzaGVzIGRvbmUuXG4iKTsNCj4gPj4NCj4gPj4g ICAJLyogcGljayB0d28gZmxvd3MgYW5kIGNoZWNrIHRoZXkgZ28gY29ycmVjdGx5ICovIEBAIC0x NTksNyArMTYyLDkNCj4gPj4gQEAgc2FuaXR5X3Rlc3Qoc3RydWN0IHdvcmtlcl9wYXJhbXMgKndw LCBzdHJ1Y3QgcnRlX21lbXBvb2wgKnApDQo+ID4+DQo+ID4+ICAgCQlmb3IgKGkgPSAwOyBpIDwg cnRlX2xjb3JlX2NvdW50KCkgLSAxOyBpKyspDQo+ID4+ICAgCQkJcHJpbnRmKCJXb3JrZXIgJXUg aGFuZGxlZCAldSBwYWNrZXRzXG4iLCBpLA0KPiA+PiAtCQkJCQl3b3JrZXJfc3RhdHNbaV0uaGFu ZGxlZF9wYWNrZXRzKTsNCj4gPj4gKwkJCQlfX2F0b21pY19sb2FkX24oDQo+ID4+ICsJCQkJCSZ3 b3JrZXJfc3RhdHNbaV0uaGFuZGxlZF9wYWNrZXRzLA0KPiA+PiArCQkJCQlfX0FUT01JQ19BQ1FV SVJFKSk7DQo+ID4gX19BVE9NSUNfUkVMQVhFRCBpcyBlbm91Z2gNCj4gPg0KPiA+PiAgIAkJcHJp bnRmKCJTYW5pdHkgdGVzdCB3aXRoIHR3byBoYXNoIHZhbHVlcyBkb25lXG4iKTsNCj4gPj4gICAJ fQ0KPiA+Pg0KPiA+PiBAQCAtMTg1LDcgKzE5MCw4IEBAIHNhbml0eV90ZXN0KHN0cnVjdCB3b3Jr ZXJfcGFyYW1zICp3cCwgc3RydWN0DQo+ID4+IHJ0ZV9tZW1wb29sICpwKQ0KPiA+Pg0KPiA+PiAg IAlmb3IgKGkgPSAwOyBpIDwgcnRlX2xjb3JlX2NvdW50KCkgLSAxOyBpKyspDQo+ID4+ICAgCQlw cmludGYoIldvcmtlciAldSBoYW5kbGVkICV1IHBhY2tldHNcbiIsIGksDQo+ID4+IC0JCQkJd29y a2VyX3N0YXRzW2ldLmhhbmRsZWRfcGFja2V0cyk7DQo+ID4+ICsJCQlfX2F0b21pY19sb2FkX24o Jndvcmtlcl9zdGF0c1tpXS5oYW5kbGVkX3BhY2tldHMsDQo+ID4+ICsJCQkJCV9fQVRPTUlDX0FD UVVJUkUpKTsNCj4gPiBfX0FUT01JQ19SRUxBWEVEIGlzIGVub3VnaA0KPiA+DQo+ID4+ICAgCXBy aW50ZigiU2FuaXR5IHRlc3Qgd2l0aCBub24temVybyBoYXNoZXMgZG9uZVxuIik7DQo+ID4+DQo+ ID4+ICAgCXJ0ZV9tZW1wb29sX3B1dF9idWxrKHAsICh2b2lkICopYnVmcywgQlVSU1QpOyBAQCAt MjgwLDE1DQo+ID4+ICsyODYsMTcgQEAgaGFuZGxlX3dvcmtfd2l0aF9mcmVlX21idWZzKHZvaWQg KmFyZykNCj4gPj4gICAJCWJ1ZltpXSA9IE5VTEw7DQo+ID4+ICAgCW51bSA9IHJ0ZV9kaXN0cmli dXRvcl9nZXRfcGt0KGQsIGlkLCBidWYsIGJ1ZiwgbnVtKTsNCj4gPj4gICAJd2hpbGUgKCFxdWl0 KSB7DQo+ID4+IC0JCXdvcmtlcl9zdGF0c1tpZF0uaGFuZGxlZF9wYWNrZXRzICs9IG51bTsNCj4g Pj4gICAJCWNvdW50ICs9IG51bTsNCj4gPj4gKwkJX19hdG9taWNfZmV0Y2hfYWRkKCZ3b3JrZXJf c3RhdHNbaWRdLmhhbmRsZWRfcGFja2V0cywNCj4gPj4gbnVtLA0KPiA+PiArCQkJCV9fQVRPTUlD X0FDUV9SRUwpOw0KPiA+IElNTywgdGhlIHByb2JsZW0gd291bGQgYmUgdGhlIG5vbi1hdG9taWMg dXBkYXRlIG9mIHRoZSBzdGF0aXN0aWNzLiBTbywNCj4gPiBfX0FUT01JQ19SRUxBWEVEIGlzIGVu b3VnaA0KPiA+DQo+ID4+ICAgCQlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspDQo+ID4+ICAgCQkJ cnRlX3BrdG1idWZfZnJlZShidWZbaV0pOw0KPiA+PiAgIAkJbnVtID0gcnRlX2Rpc3RyaWJ1dG9y X2dldF9wa3QoZCwNCj4gPj4gICAJCQkJaWQsIGJ1ZiwgYnVmLCBudW0pOw0KPiA+PiAgIAl9DQo+ ID4+IC0Jd29ya2VyX3N0YXRzW2lkXS5oYW5kbGVkX3BhY2tldHMgKz0gbnVtOw0KPiA+PiAgIAlj b3VudCArPSBudW07DQo+ID4+ICsJX19hdG9taWNfZmV0Y2hfYWRkKCZ3b3JrZXJfc3RhdHNbaWRd LmhhbmRsZWRfcGFja2V0cywgbnVtLA0KPiA+PiArCQkJX19BVE9NSUNfQUNRX1JFTCk7DQo+ID4g U2FtZSBoZXJlLCB0aGUgcHJvYmxlbSBpcyBub24tYXRvbWljIHVwZGF0ZSBvZiB0aGUgc3RhdGlz dGljcywNCj4gX19BVE9NSUNfUkVMQVhFRCBpcyBlbm91Z2guDQo+ID4gU2ltaWxhcmx5LCBmb3Ig Y2hhbmdlcyBiZWxvdywgX19BVE9NSUNfUkVMQVhFRCBpcyBlbm91Z2guDQo+ID4NCj4gPj4gICAJ cnRlX2Rpc3RyaWJ1dG9yX3JldHVybl9wa3QoZCwgaWQsIGJ1ZiwgbnVtKTsNCj4gPj4gICAJcmV0 dXJuIDA7DQo+ID4+ICAgfQ0KPiA+PiBAQCAtMzYzLDggKzM3MSw5IEBAIGhhbmRsZV93b3JrX2Zv cl9zaHV0ZG93bl90ZXN0KHZvaWQgKmFyZykNCj4gPj4gICAJLyogd2FpdCBmb3IgcXVpdCBzaW5n bGUgZ2xvYmFsbHksIG9yIGZvciB3b3JrZXIgemVybywgd2FpdA0KPiA+PiAgIAkgKiBmb3IgemVy b19xdWl0ICovDQo+ID4+ICAgCXdoaWxlICghcXVpdCAmJiAhKGlkID09IHplcm9faWQgJiYgemVy b19xdWl0KSkgew0KPiA+PiAtCQl3b3JrZXJfc3RhdHNbaWRdLmhhbmRsZWRfcGFja2V0cyArPSBu dW07DQo+ID4+ICAgCQljb3VudCArPSBudW07DQo+ID4+ICsJCV9fYXRvbWljX2ZldGNoX2FkZCgm d29ya2VyX3N0YXRzW2lkXS5oYW5kbGVkX3BhY2tldHMsDQo+ID4+IG51bSwNCj4gPj4gKwkJCQlf X0FUT01JQ19BQ1FfUkVMKTsNCj4gPj4gICAJCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykNCj4g Pj4gICAJCQlydGVfcGt0bWJ1Zl9mcmVlKGJ1ZltpXSk7DQo+ID4+ICAgCQludW0gPSBydGVfZGlz dHJpYnV0b3JfZ2V0X3BrdChkLA0KPiA+PiBAQCAtMzc5LDEwICszODgsMTEgQEAgaGFuZGxlX3dv cmtfZm9yX3NodXRkb3duX3Rlc3Qodm9pZCAqYXJnKQ0KPiA+Pg0KPiA+PiAgIAkJdG90YWwgKz0g bnVtOw0KPiA+PiAgIAl9DQo+ID4+IC0Jd29ya2VyX3N0YXRzW2lkXS5oYW5kbGVkX3BhY2tldHMg Kz0gbnVtOw0KPiA+PiAgIAljb3VudCArPSBudW07DQo+ID4+ICAgCXJldHVybmVkID0gcnRlX2Rp c3RyaWJ1dG9yX3JldHVybl9wa3QoZCwgaWQsIGJ1ZiwgbnVtKTsNCj4gPj4NCj4gPj4gKwlfX2F0 b21pY19mZXRjaF9hZGQoJndvcmtlcl9zdGF0c1tpZF0uaGFuZGxlZF9wYWNrZXRzLCBudW0sDQo+ ID4+ICsJCQlfX0FUT01JQ19BQ1FfUkVMKTsNCj4gPj4gICAJaWYgKGlkID09IHplcm9faWQpIHsN Cj4gPj4gICAJCS8qIGZvciB3b3JrZXIgemVybywgYWxsb3cgaXQgdG8gcmVzdGFydCB0byBwaWNr IHVwIGxhc3QgcGFja2V0DQo+ID4+ICAgCQkgKiB3aGVuIGFsbCB3b3JrZXJzIGFyZSBzaHV0dGlu ZyBkb3duLg0KPiA+PiBAQCAtMzk0LDEwICs0MDQsMTEgQEAgaGFuZGxlX3dvcmtfZm9yX3NodXRk b3duX3Rlc3Qodm9pZCAqYXJnKQ0KPiA+PiAgIAkJCQlpZCwgYnVmLCBidWYsIG51bSk7DQo+ID4+ DQo+ID4+ICAgCQl3aGlsZSAoIXF1aXQpIHsNCj4gPj4gLQkJCXdvcmtlcl9zdGF0c1tpZF0uaGFu ZGxlZF9wYWNrZXRzICs9IG51bTsNCj4gPj4gICAJCQljb3VudCArPSBudW07DQo+ID4+ICAgCQkJ cnRlX3BrdG1idWZfZnJlZShwa3QpOw0KPiA+PiAgIAkJCW51bSA9IHJ0ZV9kaXN0cmlidXRvcl9n ZXRfcGt0KGQsIGlkLCBidWYsIGJ1ZiwgbnVtKTsNCj4gPj4gKw0KPiA+PiAJX19hdG9taWNfZmV0 Y2hfYWRkKCZ3b3JrZXJfc3RhdHNbaWRdLmhhbmRsZWRfcGFja2V0cywNCj4gPj4gKwkJCQkJbnVt LCBfX0FUT01JQ19BQ1FfUkVMKTsNCj4gPj4gICAJCX0NCj4gPj4gICAJCXJldHVybmVkID0gcnRl X2Rpc3RyaWJ1dG9yX3JldHVybl9wa3QoZCwNCj4gPj4gICAJCQkJaWQsIGJ1ZiwgbnVtKTsNCj4g Pj4gQEAgLTQ2MSw3ICs0NzIsOCBAQCBzYW5pdHlfdGVzdF93aXRoX3dvcmtlcl9zaHV0ZG93bihz dHJ1Y3QNCj4gPj4gd29ya2VyX3BhcmFtcyAqd3AsDQo+ID4+DQo+ID4+ICAgCWZvciAoaSA9IDA7 IGkgPCBydGVfbGNvcmVfY291bnQoKSAtIDE7IGkrKykNCj4gPj4gICAJCXByaW50ZigiV29ya2Vy ICV1IGhhbmRsZWQgJXUgcGFja2V0c1xuIiwgaSwNCj4gPj4gLQkJCQl3b3JrZXJfc3RhdHNbaV0u aGFuZGxlZF9wYWNrZXRzKTsNCj4gPj4gKwkJCV9fYXRvbWljX2xvYWRfbigmd29ya2VyX3N0YXRz W2ldLmhhbmRsZWRfcGFja2V0cywNCj4gPj4gKwkJCQkJX19BVE9NSUNfQUNRVUlSRSkpOw0KPiA+ Pg0KPiA+PiAgIAlpZiAodG90YWxfcGFja2V0X2NvdW50KCkgIT0gQlVSU1QgKiAyKSB7DQo+ID4+ ICAgCQlwcmludGYoIkxpbmUgJWQ6IEVycm9yLCBub3QgYWxsIHBhY2tldHMgZmx1c2hlZC4gIg0K PiA+PiBAQCAtNTE0LDcgKzUyNiw4IEBAIHRlc3RfZmx1c2hfd2l0aF93b3JrZXJfc2h1dGRvd24o c3RydWN0DQo+ID4+IHdvcmtlcl9wYXJhbXMgKndwLA0KPiA+PiAgIAl6ZXJvX3F1aXQgPSAwOw0K PiA+PiAgIAlmb3IgKGkgPSAwOyBpIDwgcnRlX2xjb3JlX2NvdW50KCkgLSAxOyBpKyspDQo+ID4+ ICAgCQlwcmludGYoIldvcmtlciAldSBoYW5kbGVkICV1IHBhY2tldHNcbiIsIGksDQo+ID4+IC0J CQkJd29ya2VyX3N0YXRzW2ldLmhhbmRsZWRfcGFja2V0cyk7DQo+ID4+ICsJCQlfX2F0b21pY19s b2FkX24oJndvcmtlcl9zdGF0c1tpXS5oYW5kbGVkX3BhY2tldHMsDQo+ID4+ICsJCQkJCV9fQVRP TUlDX0FDUVVJUkUpKTsNCj4gPj4NCj4gPj4gICAJaWYgKHRvdGFsX3BhY2tldF9jb3VudCgpICE9 IEJVUlNUKSB7DQo+ID4+ICAgCQlwcmludGYoIkxpbmUgJWQ6IEVycm9yLCBub3QgYWxsIHBhY2tl dHMgZmx1c2hlZC4gIg0KPiA+PiAtLQ0KPiA+PiAyLjE3LjENCj4gDQo+IC0tDQo+IEx1a2FzeiBX b2pjaWVjaG93c2tpDQo+IFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlcg0KPiANCj4gU2Ftc3Vu ZyBSJkQgSW5zdGl0dXRlIFBvbGFuZA0KPiBTYW1zdW5nIEVsZWN0cm9uaWNzDQo+IE9mZmljZSAr NDggMjIgMzc3IDg4IDI1DQo+IGwud29qY2llY2hvd0BwYXJ0bmVyLnNhbXN1bmcuY29tDQoNCg==