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 139B4A0547; Thu, 24 Jun 2021 11:47:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C9DF340141; Thu, 24 Jun 2021 11:47:12 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 91C974003C for ; Thu, 24 Jun 2021 11:47:11 +0200 (CEST) IronPort-SDR: sNhhSsvfIK+cUNJqD388vMGwgSDfSJe6VcI4BTTKbCRIIhPVkpQAFFnUvCLGDSqaB8HsFqBI8W x1Hb26zWActQ== X-IronPort-AV: E=McAfee;i="6200,9189,10024"; a="207477799" X-IronPort-AV: E=Sophos;i="5.83,296,1616482800"; d="scan'208";a="207477799" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2021 02:47:10 -0700 IronPort-SDR: /3w7GN9YZPzVRJb9yLAtcJr9w50cHJ1dMx5A6lfAxgnnUwZlHxxSdAlyed2BTS3UyvegqOeAWH 2UQqr3r3GsYw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,296,1616482800"; d="scan'208";a="557275745" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga001.fm.intel.com with ESMTP; 24 Jun 2021 02:47:10 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Thu, 24 Jun 2021 02:47:09 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Thu, 24 Jun 2021 02:47:09 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Thu, 24 Jun 2021 02:47:09 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Thu, 24 Jun 2021 02:47:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bDdq4kLj3mexsAjA0JCI/yUuyRHjj2A7bPuljjFPIljQVbH0mfXk9W2WzpvnNdoLw5qr5L1aizlpA+cuIBIGxhvvS5NM5+HrFrKJr4X9xgdDXkqlzyvgnAoAa1kWFYIiNP/XCNdyeI7KZ/rAfWUjHUq7k31kcwhxQ94JnhwZiwPOyggz1hkhQl8B7u1YHGjRIrHhGGCdoZYhulcZe3HupWbEEoJR59kK4QKaYxVLqRv6DJlREbrTJ5wj4T2duDK6wC0I1hNrp/sXHqyjz1E4xhjSYz9wlY9cnm4QsTEpaOBHNyhNP9ScfeSISJ4+2ID9DKvnGIOIjtthFUsF0XMCMA== 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=xdtShgGBG5Ckqzo2Uyukoqi9HEpFvG2YPlLB3LEYPUY=; b=JTqnANn2ZS6lhP2FCluPKibcETfVpJvVhjKOfKN3CKLZqfDhp8kHKDqsQGosooZAo6lnfXjADO1ZcTl9TIE8j/mKFy0FgYsdyZjUj19/zQgJY1qRwsQ6mNSqJqVKHyr/zPF9PDYheXtgFpj7soZbLdTafjWOw/g/58kj9+rYz0+/t9HvV6HqzmUolOrOgcvDes7zYKAdoizJag03KOySUc0Oh3aXGd1grpp/gPyZ+g7MXmU4q4Gk1A0PsR530S0odLAj7QnejlR48Ghz64PCVTKTk3JA4CXj/jtBiTL63R3bPU/K7A0qtFBmRIh2WpPdsMpdwefzyE2CbofCGItj4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xdtShgGBG5Ckqzo2Uyukoqi9HEpFvG2YPlLB3LEYPUY=; b=p5MQqGsIX0A4mLmOceVn7P1d2Y+I4fnepIXhGro7qZ+bDVbXgI2+kQSunJ89V/UlLot3EGe3mVqMZj7JcAXtSlfQJRQTv8Vdi7kTuEdTrX0coDP/XAAOvmbaFsFtT+anLURZNHaZec4wDsnTv6Tck6N5teC9vgNL6XRS0RhwOpg= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB3897.namprd11.prod.outlook.com (2603:10b6:5:4::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.20; Thu, 24 Jun 2021 09:47:03 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4242.025; Thu, 24 Jun 2021 09:47:03 +0000 From: "Ananyev, Konstantin" To: "Burakov, Anatoly" , "dev@dpdk.org" , "Richardson, Bruce" CC: "Loftus, Ciara" , "Hunt, David" Thread-Topic: [PATCH v1 1/7] power_intrinsics: allow monitor checks inversion Thread-Index: AQHXVt3hXKEPl/Wz7069wuvKSGP/iKseiW0ggALxP4CAAAKX8IAAAj6AgAAOaaCAABZuAIAAE8aQgAAOCwCAAUFKYA== Date: Thu, 24 Jun 2021 09:47:03 +0000 Message-ID: References: <8007029ea9e5129ea43f0c11708169406a16727f.1622548381.git.anatoly.burakov@intel.com> <53ac7ee0-e4bc-099a-2ddd-0d74949eea9d@intel.com> <249f6957-0f10-926f-9f0e-5cb10fc4d2c3@intel.com> <22ddddf1-6523-8219-dcef-86205e662756@intel.com> <084a42d9-1422-f4a5-f57e-53b4667c1f44@intel.com> In-Reply-To: <084a42d9-1422-f4a5-f57e-53b4667c1f44@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.255.184.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 66d35074-58f5-47af-a82d-08d936f5058f x-ms-traffictypediagnostic: DM6PR11MB3897: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cqpFbV57wddUpJJinudlNREixYiwf6npd7g5d55UEobWc3XMPZbvqyr5++ntOZM0rdWIc1iQW83121Qi3tqqfpmw0REa5jSUKgP9F8iXz8lQptYOYbZY3o3fZSEm3i24qwihXGvBiHQHmSqMnH4qohHtkF/56j2NBUm/kkoqaL9Aa7eqLdIDP0a12nVukP/nSZg8UyjjQ0222QCuv8+YGz052/4xkw+/3dFXPdy14xI3kD2XYP/zpP6Xs/grCjZxc6X8vhY/YeMBHDy5yR8si1ikYR9F6iNZ7sbV7DELSw6w2CwpaD1rEoiPGcK9KlC57wtDq6/MuivFzIZaU5/sZNiFy+y78JPkLuvHftfptmY68wPosUQ4kc2oByXCgbWC7oaUA9uDaS8N5PhdzqfRB3MSone1DHDYNTu2Fb0N9lf+njFl7Q8dxrdgZ2ylbog+sIqDHI9CEwcpqsU2qaGCuvbiHxS39z7CpDQmpyP5qHXOYq0lewNb5QyfHSsynZQm2AmLbzGtjYm5mfzbHu8fAPxss4mld03g47pyj3YRlH2IISwrN/0bsgaY7PXRnI4Bq/2WdAgdC19Ssi1/ANbC8Vy9ndh3yihYF2KpQRBQ0If8IzZwc+MD4aL6fEKoCAOuOSLuRcYBK2BMQuZuwETmBA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(136003)(376002)(366004)(346002)(39860400002)(9686003)(76116006)(66556008)(6636002)(66446008)(64756008)(66476007)(66946007)(6506007)(55236004)(5660300002)(186003)(52536014)(26005)(110136005)(33656002)(86362001)(54906003)(2906002)(478600001)(107886003)(71200400001)(7696005)(316002)(4326008)(38100700002)(122000001)(83380400001)(8936002)(55016002)(8676002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VlhqRG9MWW1zbVZPTGZ5RU5lNmtWVitRY3Y2VFkyWWo0SXgza2NVeGZ1T2s0?= =?utf-8?B?TXIwMkpoQjJUalNGK2ZXV1NPUkZuS2NvTC96QWdGd2s2NU9HSDk1bWthL2RF?= =?utf-8?B?SU9OM0RocnVReTBoVWtoS2VCOFdTb1YxL04wOVp4LzlON0I1YTZQS2p3SFh1?= =?utf-8?B?UGRNUm0xSXJSbit3QVpDVFJuWjFETFRBeEdjQy9MdHZpY0Q0N29EM1BKeEhJ?= =?utf-8?B?N051dkhLdUc2ei90QjRKdGk1bUdmSnN1VzAwN1Uxa1A4UVNMcURWbEZFSUlR?= =?utf-8?B?U2cxam5UZnNWd1o2WUMwZlVDd282eUxHZy9TQWNaV01mc3J1cGFvVC9VRktG?= =?utf-8?B?dEhOUkhJOFhzbktGcjJnUUVyZjlmaU1KOWNuMkdxWG9kM3ZUTVVvbnpXSHBY?= =?utf-8?B?M0NxbVkvS3dLbWI1ckh0OFhmNmovbEVrSTQrM1RkYVYvYUpFa3dSNjZyWWs5?= =?utf-8?B?YStlRXFVdHdaQSswb2xuL1ZMVXNJVHlDV0UvdW5MaEw2anplRWh0V0NFZDJ1?= =?utf-8?B?RTlBMDNsVG9NK3JCMkhNQmpmK0IzMUV0MFlpWVluVmVBZlFlYXp3UzQyTVQr?= =?utf-8?B?L1dweVFHd3dRZU9ZeVMxK2RLaU4zRTV4VzcrYjZydjVvK2hRTkIrSGVLMERp?= =?utf-8?B?NWpqaWNabEFJTjVqUlIwQ1JWcjR5WGpYRUxCcEE3VDNaMVZaMWRNZ0tGdWFI?= =?utf-8?B?NjVsanRKaXJ0ZC85bEZaVjN6WWRhY1dhTitLbnRDaC9PMm9IYzBkb09LUmtP?= =?utf-8?B?a1lEUThQcHpvWHVEQzIwQ05USVZWdjVWSDhCaytIUG10VHdHNzVON2xDby9R?= =?utf-8?B?dlh0eVVDMEdpNElZTUM5ZjhKQ0FvWTRPVjZ2cTU4R1dTY3dMOWh3bjIwU2xw?= =?utf-8?B?RGdIRzJQMXhTN2lydU5tV1pKeVk1aE85czFYNjR0NWxhTFN0V3dNL1pKZ1Rv?= =?utf-8?B?ZVBDSStqa0ZoWjg0alB6Q1c5OCt0WmFHeGtGMEMvMkp1SnBCdUlreVFtNXgv?= =?utf-8?B?RXRkUmdRTnNxMGtpZXRPeS9GOWIxU1VJaE0renlJWDFUR0dCelNDVnBKcWd3?= =?utf-8?B?aWNscVp0UXhnMmppRkFZWjEwQUl2ZXdYdE9OcVIwZysrRGlWajI1NjN5aUx0?= =?utf-8?B?eklma01MbVdhbGJLeWNuUGRxYTdSY1I1K1AwNktPYWxxeHJaS2doV1kyWDZ1?= =?utf-8?B?cTg0Rjl2N2x2SnVIcnVROUp6NmFtTnk3M1RmNEw5SWxLcU0vR0NQSTZVYkor?= =?utf-8?B?NVRzbnIwNVM2bTFnaFkrWUN4ZjJRREpmTVNSNjR2OHF1QnJ5aG1vdG1VYzM0?= =?utf-8?B?bTV1R21GaTlxNkR4QkxyNmpLOGs1YWtudFJ5RFRhaXREVDQ4QUdCbm5wcUx0?= =?utf-8?B?c1NIeTZHQ2VHWDdzVDdYTkxYTGNYT0JRekxnYnFkdFFSNC9BbkgwR1J3R01y?= =?utf-8?B?ZUduSFJnTTdBY2NCbkcweUFBeko3d0hzYnFFZ1ArZ0xOYU5tYjF4WHRlaUdG?= =?utf-8?B?cktjaGJ6eGU4dVM0VkdYTmg3bms5ZDhsbGJWd25BQlRFamZCTStQWWJrT2xq?= =?utf-8?B?MXV4alphTk9wdU9vak5YN0dYM2I4M1kwMTNZaC93VE13azFYOHZoSmJlbDRL?= =?utf-8?B?Rnh2NmFsUTd1UnBIWWpyNjFJeXpTak1wd0lrVHV0bGowUUU2ZXoxM2hrblZJ?= =?utf-8?B?ME5aVHkwSlhTblZNMHBZZ2MrZTh4MDlXdm1PUUs3TGptNHU3aVpKK0F3SFdL?= =?utf-8?Q?BCi0wLlwxHUZKZr7rYBHmrJVGZWCjI17HrZGweX?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66d35074-58f5-47af-a82d-08d936f5058f X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2021 09:47:03.6334 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: S4UHNsxaeYpOPnVP2EpVPDLBTA0eM+VvWkRFKf4wM1JBqAYlZjitoxUm5TOImZnroLhHU8nFHJN5GcRlavA7/n2n0mYNcCRS38pVbYeRKbE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3897 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1 1/7] power_intrinsics: allow monitor checks inversion X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gUHJldmlvdXNseSwgdGhlIHNlbWFudGljcyBvZiBwb3dl ciBtb25pdG9yIHdlcmUgc3VjaCB0aGF0IHdlIHdlcmUNCj4gPj4+Pj4+Pj4gY2hlY2tpbmcgY3Vy cmVudCB2YWx1ZSBhZ2FpbnN0IHRoZSBleHBlY3RlZCB2YWx1ZSwgYW5kIGlmIHRoZXkgbWF0Y2hl ZCwNCj4gPj4+Pj4+Pj4gdGhlbiB0aGUgc2xlZXAgd2FzIGFib3J0ZWQuIFRoaXMgaXMgc29tZXdo YXQgaW5mbGV4aWJsZSwgYmVjYXVzZSBpdCBvbmx5DQo+ID4+Pj4+Pj4+IGFsbG93ZWQgdXMgdG8g Y2hlY2sgZm9yIGEgc3BlY2lmaWMgdmFsdWUuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFRoaXMg Y29tbWl0IGFkZHMgYW4gb3B0aW9uIHRvIHJldmVyc2UgdGhlIGNoZWNrLCBzbyB0aGF0IHdlIGNh biBoYXZlDQo+ID4+Pj4+Pj4+IG1vbml0b3Igc2xlZXAgYWJvcnRlZCBpZiB0aGUgZXhwZWN0ZWQg dmFsdWUgKmRvZXNuJ3QqIG1hdGNoIHdoYXQncyBpbg0KPiA+Pj4+Pj4+PiBtZW1vcnkuIFRoaXMg YWxsb3dzIHVzIHRvIGJvdGggaW1wbGVtZW50IGFsbCBjdXJyZW50bHkgaW1wbGVtZW50ZWQNCj4g Pj4+Pj4+Pj4gZHJpdmVyIGNvZGUsIGFzIHdlbGwgYXMgc3VwcG9ydCBtb3JlIHVzZSBjYXNlcyB3 aGljaCBkb24ndCBlYXNpbHkgbWFwIHRvDQo+ID4+Pj4+Pj4+IHByZXZpb3VzIHNlbWFudGljcyAo c3VjaCBhcyB3YWl0aW5nIG9uIHdyaXRlcyB0byBBRl9YRFAgY291bnRlciB2YWx1ZSkuDQo+ID4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFNpbmNlIHRoZSBvbGQgYmVoYXZpb3IgaXMgdGhlIGRlZmF1bHQs IG5vIG5lZWQgdG8gYWRqdXN0IGV4aXN0aW5nDQo+ID4+Pj4+Pj4+IGltcGxlbWVudGF0aW9ucy4N Cj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQW5hdG9seSBCdXJha292IDxh bmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4gICAg ICBsaWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcG93ZXJfaW50cmluc2ljcy5oIHwgNCArKysr DQo+ID4+Pj4+Pj4+ICAgICAgbGliL2VhbC94ODYvcnRlX3Bvd2VyX2ludHJpbnNpY3MuYyAgICAg ICAgICAgICB8IDUgKysrKy0NCj4gPj4+Pj4+Pj4gICAgICAyIGZpbGVzIGNoYW5nZWQsIDggaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBkaWZmIC0t Z2l0IGEvbGliL2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3Bvd2VyX2ludHJpbnNpY3MuaCBiL2xp Yi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9wb3dlcl9pbnRyaW5zaWNzLmgNCj4gPj4+Pj4+Pj4g aW5kZXggZGRkY2EzZDQxYy4uMTAwNmMyZWRmYyAxMDA2NDQNCj4gPj4+Pj4+Pj4gLS0tIGEvbGli L2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3Bvd2VyX2ludHJpbnNpY3MuaA0KPiA+Pj4+Pj4+PiAr KysgYi9saWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcG93ZXJfaW50cmluc2ljcy5oDQo+ID4+ Pj4+Pj4+IEBAIC0zMSw2ICszMSwxMCBAQCBzdHJ1Y3QgcnRlX3Bvd2VyX21vbml0b3JfY29uZCB7 DQo+ID4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgNCwgb3IgOC4gU3Vw cGx5aW5nIGFueSBvdGhlciB2YWx1ZSB3aWxsIHJlc3VsdCBpbg0KPiA+Pj4+Pj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKiAgIGFuIGVycm9yLg0KPiA+Pj4+Pj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8NCj4gPj4+Pj4+Pj4gKyAgICAgdWludDhfdCBpbnZlcnQ7ICAv Kio8IEludmVydCBjaGVjayBmb3IgZXhwZWN0ZWQgdmFsdWUgKGUuZy4gaW5zdGVhZCBvZg0KPiA+ Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAqICAgY2hlY2tpbmcgaWYgYHZhbGAgbWF0 Y2hlcyBzb21ldGhpbmcsIGNoZWNrIGlmDQo+ID4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICogICBgdmFsYCAqZG9lc24ndCogbWF0Y2ggYSBwYXJ0aWN1bGFyIHZhbHVlKQ0KPiA+Pj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAqLw0KPiA+Pj4+Pj4+PiAgICAgIH07DQo+ID4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+ICAgICAgLyoqDQo+ID4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIv ZWFsL3g4Ni9ydGVfcG93ZXJfaW50cmluc2ljcy5jIGIvbGliL2VhbC94ODYvcnRlX3Bvd2VyX2lu dHJpbnNpY3MuYw0KPiA+Pj4+Pj4+PiBpbmRleCAzOWVhOWZkZWNkLi41ZDk0NGU5YWE0IDEwMDY0 NA0KPiA+Pj4+Pj4+PiAtLS0gYS9saWIvZWFsL3g4Ni9ydGVfcG93ZXJfaW50cmluc2ljcy5jDQo+ ID4+Pj4+Pj4+ICsrKyBiL2xpYi9lYWwveDg2L3J0ZV9wb3dlcl9pbnRyaW5zaWNzLmMNCj4gPj4+ Pj4+Pj4gQEAgLTExNyw3ICsxMTcsMTAgQEAgcnRlX3Bvd2VyX21vbml0b3IoY29uc3Qgc3RydWN0 IHJ0ZV9wb3dlcl9tb25pdG9yX2NvbmQgKnBtYywNCj4gPj4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgY29uc3QgdWludDY0X3QgbWFza2VkID0gY3VyX3ZhbHVlICYgcG1jLT5tYXNrOw0KPiA+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAvKiBpZiB0aGUgbWFza2VkIHZhbHVl IGlzIGFscmVhZHkgbWF0Y2hpbmcsIGFib3J0ICovDQo+ID4+Pj4+Pj4+IC0gICAgICAgICAgICAg aWYgKG1hc2tlZCA9PSBwbWMtPnZhbCkNCj4gPj4+Pj4+Pj4gKyAgICAgICAgICAgICBpZiAoIXBt Yy0+aW52ZXJ0ICYmIG1hc2tlZCA9PSBwbWMtPnZhbCkNCj4gPj4+Pj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgIGdvdG8gZW5kOw0KPiA+Pj4+Pj4+PiArICAgICAgICAgICAgIC8qIHNhbWUsIGJ1 dCBmb3IgaW52ZXJzZSBjaGVjayAqLw0KPiA+Pj4+Pj4+PiArICAgICAgICAgICAgIGlmIChwbWMt PmludmVydCAmJiBtYXNrZWQgIT0gcG1jLT52YWwpDQo+ID4+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ290byBlbmQ7DQo+ID4+Pj4+Pj4+ICAgICAgICAgICB9DQo+ID4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBIbW0uLi4sIHN1Y2ggYXBwcm9hY2ggbG9va3MgdG9vICdw YXRjaHknLi4uDQo+ID4+Pj4+Pj4gQ2FuIHdlIGF0IGxlYXN0IHJlcGxhY2UgJ2ludmVyJyB3aXRo IHNvbWV0aGluZyBsaWtlOg0KPiA+Pj4+Pj4+IGVudW0gcnRlX3Bvd2VyX21vbml0b3JfY29uZF9v cCB7DQo+ID4+Pj4+Pj4gICAgICAgICAgICAgX0VRLCBORVEsLi4uDQo+ID4+Pj4+Pj4gfTsNCj4g Pj4+Pj4+PiBUaGVuIGF0IGxlYXN0IG5ldyBjb21wYXJpb25zIG9wcyBjYW4gYmUgYWRkZWQgaW4g ZnV0dXJlLg0KPiA+Pj4+Pj4+IEV2ZW4gYmV0dGVyIEkgdGhpbmsgd291bGQgYmUgdG8ganVzdCBs ZWF2ZSB0byBQTUQgdG8gcHJvdmlkZSBhIGNvbXBhcmlzb24gY2FsbGJhY2suDQo+ID4+Pj4+Pj4g V2lsbCBtYWtlIHRoaW5ncyByZWFsbHkgc2ltcGxlIGFuZCBnZW5lcmljOg0KPiA+Pj4+Pj4+IHN0 cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kIHsNCj4gPj4+Pj4+PiAgICAgICAgICB2b2xhdGls ZSB2b2lkICphZGRyOw0KPiA+Pj4+Pj4+ICAgICAgICAgIGludCAoKmNtcCkodWludDY0X3QgdmFs KTsNCj4gPj4+Pj4+PiAgICAgICAgICB1aW50OF90IHNpemU7DQo+ID4+Pj4+Pj4gfTsNCj4gPj4+ Pj4+PiBBbmQgdGhlbiBpbiBydGVfcG93ZXJfbW9uaXRvciguLi4pOg0KPiA+Pj4+Pj4+IC4uLi4N Cj4gPj4+Pj4+PiBjb25zdCB1aW50NjRfdCBjdXJfdmFsdWUgPSBfX2dldF91bXdhaXRfdmFsKHBt Yy0+YWRkciwgcG1jLT5zaXplKTsNCj4gPj4+Pj4+PiBpZiAocG1jLT5jbXAoY3VyX3ZhbHVlKSAh PSAwKQ0KPiA+Pj4+Pj4+ICAgICAgICAgICAgIGdvdG8gZW5kOw0KPiA+Pj4+Pj4+IC4uLi4NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgbGlrZSB0aGUgaWRlYSBvZiBhIGNhbGxiYWNr LCBidXQgdGhlc2UgYXJlIHN1cHBvc2VkIHRvIGJlDQo+ID4+Pj4+PiBpbnRyaW5zaWMtbGlrZSBm dW5jdGlvbnMsIHNvIHB1dHRpbmcgdG9vIG11Y2ggaW50byB0aGVtIGlzIGNvbnRyYXJ5IHRvDQo+ ID4+Pj4+PiB0aGVpciBnb2FsLCBhbmQgaXQncyBnb2luZyB0byBtYWtlIHRoZSBBUEkgaGFyZCB0 byB1c2UgaW4gc2ltcGxlciBjYXNlcw0KPiA+Pj4+Pj4gKGUuZy4gd2hlbiB3ZSdyZSBleHBsaWNp dGx5IGNhbGxpbmcgcnRlX3Bvd2VyX21vbml0b3IgYXMgb3Bwb3NlZCB0bw0KPiA+Pj4+Pj4gbGV0 dGluZyB0aGUgUlggY2FsbGJhY2sgZG8gaXQgZm9yIHVzKS4gRm9yIGV4YW1wbGUsIGV2ZW50L2Rs YiBjb2RlIGNhbGxzDQo+ID4+Pj4+PiBydGVfcG93ZXJfbW9uaXRvciBleHBsaWNpdGx5Lg0KPiA+ Pj4+Pg0KPiA+Pj4+PiBHb29kIHBvaW50LCBJIGRpZG4ndCBrbm93IHRoYXQuDQo+ID4+Pj4+IFdv dWxkIGJlIGludGVyZXN0aW5nIHRvIHNlZSBob3cgZG8gdGhleSB1c2UgaXQuDQo+ID4+Pj4NCj4g Pj4+PiBUbyBiZSBmYWlyLCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gcmV3cml0ZSB0aGVpciBj b2RlIHVzaW5nIGENCj4gPj4+PiBjYWxsYmFjay4gUGVyaGFwcyBhZGRpbmcgYSAodm9pZCAqKSBw YXJhbWV0ZXIgZm9yIGFueSBjdXN0b20gZGF0YQ0KPiA+Pj4+IHJlbGF0ZWQgdG8gdGhlIGNhbGxi YWNrIChiZWNhdXNlIEMgZG9lc24ndCBoYXZlIGNsb3N1cmVzLi4uKSwgYnV0DQo+ID4+Pj4gb3Ro ZXJ3aXNlIGl0IHNob3VsZCBiZSBkb2FibGUsIHNvIHRoZSBxdWVzdGlvbiBpc24ndCB0aGF0IGl0 J3MNCj4gPj4+PiBpbXBvc3NpYmxlIHRvIHJld3JpdGUgZXZlbnQvZGxiIGNvZGUgdG8gdXNlIGNh bGxiYWNrcywgaXQncyBtb3JlIG9mIGFuDQo+ID4+Pj4gaXNzdWUgd2l0aCBjb21wbGljYXRpbmcg dXNhZ2Ugb2YgYWxyZWFkeS1ub3QtcXVpdGUtc3RyYWlnaHRmb3J3YXJkIEFQSQ0KPiA+Pj4+IGV2 ZW4gbW9yZS4NCj4gPj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEl0J3MgZ29pbmcg dG8gYmUgZXNwZWNpYWxseSAiZnVuIiB0byBkbyB0aGVzZSBpbmRpcmVjdCBmdW5jdGlvbiBjYWxs cw0KPiA+Pj4+Pj4gZnJvbSBpbnNpZGUgdHJhbnNhY3Rpb25hbCByZWdpb24gb24gY2FsbCB0byBt dWx0aS1tb25pdG9yLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBCdXQgdGhlIGNhbGxiYWNrIGlzIG5vdCBz dXBwb3NlZCB0byBkbyBhbnkgbWVtb3J5IHJlYWRzL3dyaXRlcy4NCj4gPj4+Pj4gSnVzdCBtYXNr L2NvbXBhcmUgb2YgdGhlIHByb3ZpZGVkIHZhbHVlIHdpdGggc29tZSBjb25zdGFudC4NCj4gPj4+ Pg0KPiA+Pj4+IFllYWgsIGJ1dCB3aXRoIGNhbGxiYWNrcyB3ZSBjYW4ndCByZWFsbHkgY29udHJv bCB0aGF0LCBjYW4gd2U/IEkgbWVhbiBpDQo+ID4+Pj4gZ3Vlc3MgYSAqc2FuZSogaW1wbGVtZW50 YXRpb24gd291bGRuJ3QgZG8gdGhhdCwgYnV0IHN0aWxsLCBpdCdzDQo+ID4+Pj4gdGhlb3JldGlj YWxseSBwb3NzaWJsZSB0byBwZXJmb3JtIG1vcmUgY29tcGxleCBjaGVja3MgYW5kIGV2ZW4gdG91 Y2gNCj4gPj4+PiBzb21lIHVucmVsYXRlZCBkYXRhIGluIHRoZSBwcm9jZXNzLg0KPiA+Pj4NCj4g Pj4+IFllcCwgUE1EIGRldmVsb3BlciBjYW4gaWdub3JlIHJlY29tbWVuZGF0aW9ucyBhbmQgZG8g d2hhdGV2ZXINCj4gPj4+IGhlIHdhbnRzIGluIHRoZSBjYWxsLWJhY2suIFdlIGNhbid0IGNvbnRy b2wgaXQuDQo+ID4+PiBJZiBoZSB0b3VjaGVzIHNvbWUgbWVtb3J5IGluIGl0IC0gcHJvYmFibHkg dGhlcmUgd2lsbCBiZSBtb3JlIHNwdXJpb3VzIHdha2V1cHMgYW5kIGxlc3MgcG93ZXIgc2F2ZXMu DQo+ID4+PiBJbiBwcmluY2lwbGUgaXQgaXMgdGhlIHNhbWUgd2l0aCBhbGwgb3RoZXIgUE1EIGRl di1vcHMgLSB3ZSBoYXZlIHRvIHRydXN0IHRoYXQgdGhleSBhcmUNCj4gPj4+IGRvaW5nIHdoYXQg dGhleSBoYXZlIHRvLg0KPiA+Pg0KPiA+PiBJIGRpZCBhIHF1aWNrIHByb3RvdHlwZSBmb3IgdGhp cywgYW5kIGkgZG9uJ3QgdGhpbmsgaXQgaXMgZ29pbmcgdG8gd29yay4NCj4gPj4NCj4gPj4gQ2Fs bGJhY2tzIHdpdGgganVzdCAiY3VycmVudCB2YWx1ZSIgYXMgYXJndW1lbnQgd2lsbCBiZSBwcmV0 dHkgbGltaXRlZA0KPiA+PiBhbmQgd2lsbCBvbmx5IHJlYWxseSB3b3JrIGZvciBjYXNlcyB3aGVy ZSB3ZSBrbm93IHdoYXQgd2UgYXJlIGV4cGVjdGluZy4NCj4gPj4gSG93ZXZlciwgZm9yIGNhc2Vz IGxpa2UgZXZlbnQvZGxiIG9yIG5ldC9tbHg1LCB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMgKG9yDQo+ ID4+IGFwcGVhcnMgdG8gYmUpIGRlcGVuZGVudCB1cG9uIHNvbWUgaW50ZXJuYWwgZGV2aWNlIGRh dGEsIGFuZCBpcyBub3QNCj4gPj4gY29uc3RhbnQgbGlrZSBpbiBjYXNlIG9mIG5ldC9peGdiZSBm b3IgZXhhbXBsZS4NCj4gPj4NCj4gPj4gVGhpcyBjYW4gYmUgZml4ZWQgYnkgcGFzc2luZyBhbiBv cGFxdWUgcG9pbnRlciwgZWl0aGVyIGJ5IHN0b3JpbmcgaXQgaW4NCj4gPj4gdGhlIG1vbml0b3Ig Y29uZGl0aW9uLCBvciBieSBwYXNzaW5nIGl0IGRpcmVjdGx5IHRvIHJ0ZV9wb3dlcl9tb25pdG9y IGF0DQo+ID4+IGludm9jYXRpb24gdGltZS4NCj4gPj4NCj4gPj4gVGhlIGxhdHRlciBkb2Vzbid0 IHdvcmsgd2VsbCBiZWNhdXNlIHdoZW4gd2UgY2FsbCBydGVfcG93ZXJfbW9uaXRvciBmcm9tDQo+ ID4+IGluc2lkZSB0aGUgcnRlX3Bvd2VyIGxpYnJhcnksIHdlIGxhY2sgdGhlIGNvbnRleHQgbmVj ZXNzYXJ5IHRvIGdldCBzYWlkDQo+ID4+IG9wYXF1ZSBwb2ludGVyLg0KPiA+Pg0KPiA+PiBUaGUg Zm9ybWVyIGRvZXNuJ3Qgd29yayBlaXRoZXIsIGJlY2F1c2UgdGhlIG9ubHkgcGxhY2Ugd2hlcmUg d2UgY2FuIGdldA0KPiA+PiB0aGlzIGFyZ3VtZW50IGlzIGluc2lkZSBnZXRfbW9uaXRvcl9hZGRy LCBidXQgdGhlIG9wYXF1ZSBwb2ludGVyIG11c3QNCj4gPj4gcGVyc2lzdCBhZnRlciB3ZSBleGl0 IHRoYXQgZnVuY3Rpb24gaW4gb3JkZXIgdG8gYXZvaWQgdXNlLWFmdGVyLWZyZWUgLQ0KPiA+PiB3 aGljaCBtZWFucyB0aGF0IGl0IGVpdGhlciBoYXMgdG8gYmUgc3RhdGljYWxseSBhbGxvY2F0ZWQg KHdoaWNoIG1lYW5zDQo+ID4+IGl0J3Mgbm90IHRocmVhZC1zYWZlIGZvciBhIG5vbi10cml2aWFs IGNhc2UpLCBvciBkeW5hbWljYWxseSBhbGxvY2F0ZWQNCj4gPj4gKHdoaWNoIGEgYmlnIG5vLW5v IG9uIGEgaG90cGF0aCkuDQo+ID4NCj4gPiBJZiBJIGdldCB5b3UgcmlnaHQsIGV4cGVjdGVkX3Zh bHVlIChhbmQgcHJvYmFibHkgbWFzaykgY2FuIGJlIHZhcmlhYmxlIG9uZXMuDQo+ID4gU28gZm9y IGNhbGxiYWNrIGFwcHJvYWNoIHRvIHdvcmsgd2UgbmVlZCB0byBwYXNzIGFsbCB0aGlzIGFzIHBh cmFtZXRlcnMNCj4gPiB0byBQTUQgY29tcGFyaXNvbiBjYWxsYmFjazoNCj4gPiBpbnQgcG1jX2Nh bGxiYWNrKHVpbnQ2NF90IHJlYWxfdmFsLCB1aW50NjRfdCBleHBlY3RlZF92YWwsIHVpbnQ2NF90 IG1hc2spDQo+ID4gQ29ycmVjdD8NCj4gDQo+IElmIHdlIGhhdmUgYm90aCBleHBlY3RlZCB2YWx1 ZSwgbWFzaywgYW5kIGN1cnJlbnQgdmFsdWUsIHRoZW4gd2hhdCdzIHRoZQ0KPiBwb2ludCBvZiB0 aGUgY2FsbGJhY2s/IFRoZSBwb2ludCBvZiB0aGUgY2FsbGJhY2sgd291bGQgYmUgdG8gcGFzcyBq dXN0DQo+IHRoZSBjdXJyZW50IHZhbHVlLCBhbmQgbGV0IHRoZSBjYWxsYmFjayBkZWNpZGUgd2hh dCdzIHRoZSBleHBlY3RlZCB2YWx1ZQ0KPiBhbmQgaG93IHRvIGNvbXBhcmUgaXQuDQoNCkZvciBt ZSB0aGUgbWFpbiBwb2ludCBvZiBjYWxsYmFjayBpcyB0byBoaWRlIFBNRCBzcGVjaWZpYyBjb21w YXJpc29uIHNlbWFudGljcy4NCkJhc2ljYWxseSB0aGV5IHByb3ZpZGUgdXMgd2l0aCBzb21lIHZh bHVlcyBpbiBzdHJ1Y3QgcnRlX3Bvd2VyX21vbml0b3JfY29uZCwNCmFuZCB0aGVuIGl0IGlzIHVw IHRvIHRoZW0gaG93IHRvIGludGVycHJldCB0aGVtIGluIHRoZWlyIGNvbXBhcmlzb24gZnVuY3Rp b24uDQpBbGwgd2UnbGwgZG8gZm9yIHRoZW06IHdpbGwgcmVhZCB0aGUgdmFsdWUgYXQgYWRkcmVz cyBwcm92aWRlZC4gDQpJIHVuZGVyc3RhbmQgdGhhdCBpdCBsb29rcyBsaWtlIGFuIG92ZXJraWxs LCBhcyBtYWpvcml0eSBvZiB0aGVzZSBjb21wYXJpc29uIGZ1bmN0aW9ucw0Kd2lsbCBiZSBsaWtl Og0KaW50IGNtcF9jYWxsYmFjayh1aW50NjRfdCByZWFsX3ZhbCwgdWludDY0X3QgZXhwZWN0ZWRf dmFsLCB1aW50NjRfdCBtYXNrKQ0Kew0KCXJldHVybiAoKHJlYWxfdmFsICYgbWFzaykgPT0gZXhw ZWN0ZWRfdmFsKTsNCn0gIA0KVGhvdWdoIHFzb3J0KCkgYW5kIGJzZWFyY2goKSB3b3JrIGluIGEg c2ltaWxhciBtYW5uZXIsIGFuZCBldmVyeW9uZSBzZWVtcyBvayB3aXRoIGl0Lg0KDQo+IA0KPiBT bywgd2UgY2FuIGVpdGhlciBsZXQgY2FsbGJhY2sgaGFuZGxlIGV4cGVjdGVkIHZhbHVlcyBpdHNl bGYgYnkgaGF2aW5nDQo+IGFuIG9wYXF1ZSBjYWxsYmFjay1zcGVjaWZpYyBhcmd1bWVudCAod2hp Y2ggbWVhbnMgaXQgaGFzIHRvIHBlcnNpc3QNCj4gYmV0d2VlbiAuZ2V0X21vbml0b3JfYWRkcigp IGFuZCBydGVfcG93ZXJfbW9uaXRvcigpIGNhbGxzKSwgDQoNCkJ1dCB0aGF0J3Mgd2hhdCB3ZSBk b2luZyBhbHJlYWR5IC0gUE1EIGZpbGxzIHJ0ZV9wb3dlcl9tb25pdG9yX2NvbmQgdmFsdWVzDQpm b3IgdXMsIHdlIHN0b3JlIHRoZW0gc29tZXdoZXJlIGFuZCB0aGVuIHVzZSB0aGVtIHRvIGRlY2lk ZSBzaG91bGQgd2UgZ28gdG8gc2xlZXAgb3Igbm90Lg0KQWxsIGNhbGxiYWNrIGRvZXMgLSBtb3Zl cyBhY3R1YWwgdmFsdWVzIGludGVycHJldGF0aW9uIGJhY2sgdG8gUE1EOg0KUmlnaHQgbm93Og0K UE1EOiAgICAgIHByb3ZpZGUgUE1DIHZhbHVlcw0KUE9XRVI6IHN0b3JlIFBNQyB2YWx1ZXMgc29t ZXdoZXJlDQogICAgICAgICAgICAgICAgcmVhZCB0aGUgdmFsdWUgYXQgYWRkcmVzcyBwcm92aWRl ZCBpbiBQTUMNCiAgICAgICAgICAgICAgICBpbnRlcnByZXQgUE1DIHZhbHVlcyBhbmQgbmV3bHkg cmVhZCB2YWx1ZSBhbmQgbWFrZSB0aGUgZGVjaXNpb24NCg0KV2l0aCBjYWxsYmFjazogICANClBN RDogICAgICBwcm92aWRlIFBNQyB2YWx1ZXMNClBPV0VSOiBzdG9yZSBQTUMgdmFsdWVzIHNvbWV3 aGVyZQ0KICAgICAgICAgICAgICAgIHJlYWQgdGhlIHZhbHVlIGF0IGFkZHJlc3MgcHJvdmlkZWQg aW4gUE1DDQpQTUQ6ICAgICAgaW50ZXJwcmV0IFBNQyB2YWx1ZXMgYW5kIG5ld2x5IHJlYWQgdmFs dWUgYW5kIG1ha2UgdGhlIGRlY2lzaW9uDQoNCk9yIGRpZCB5b3UgbWVhbiBzb21ldGhpbmcgZGlm ZmVyZW50IGhlcmU/DQoNCj5vciB3ZSBkbyB0aGUNCj4gY29tcGFyaXNvbnMgaW5zaWRlIHJ0ZV9w b3dlcl9tb25pdG9yKCksIGFuZCBzdG9yZSB0aGUgZXhwZWN0ZWQvbWFzaw0KPiB2YWx1ZXMgaW4g dGhlIG1vbml0b3IgY29uZGl0aW9uLCBhbmQgKmRvbid0KiBoYXZlIGFueSBjYWxsYmFja3MgYXQg YWxsLg0KPiBBcmUgeW91IHN1Z2dlc3RpbmcgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGFib3ZlIHR3 byBvcHRpb25zPw0KDQpBcyBJIHNhaWQgaW4gbXkgZmlyc3QgbWFpbCAtIHdlIGNhbiBqdXN0IHJl cGxhY2UgJ2ludmVyc2UnIHdpdGggJ29wJy4NClRoYXQgYXQgbGVhc3Qgd2lsbCBtYWtlIHRoaXMg QVBJIGV4dGVuZGFibGUsIGlmIHNvbWVvbmUgd2lsbCBuZWVkDQpzb21ldGhpbmcgZGlmZmVyZW50 IGluIGZ1dHVyZS4gICAgDQoNCkFub3RoZXIgb3B0aW9uIGlzIA0KDQo+IA0KPiA+DQo+ID4+DQo+ ID4+IEFueSBvdGhlciBzdWdnZXN0aW9ucz8gOikNCj4gPj4NCj4gPj4+DQo+ID4+Pj4NCj4gPj4+ Pj4NCj4gPj4+Pj4+IEknbSBub3QNCj4gPj4+Pj4+IG9wcG9zZWQgdG8gaGF2aW5nIGEgY2FsbGJh Y2sgaGVyZSwgYnV0IG1heWJlIG90aGVycyBoYXZlIG1vcmUgdGhvdWdodHMNCj4gPj4+Pj4+IG9u IHRoaXM/DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gLS0NCj4gPj4+Pj4+IFRoYW5rcywNCj4gPj4+Pj4+ IEFuYXRvbHkNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gLS0NCj4gPj4+PiBUaGFua3MsDQo+ID4+ Pj4gQW5hdG9seQ0KPiA+Pg0KPiA+Pg0KPiA+PiAtLQ0KPiA+PiBUaGFua3MsDQo+ID4+IEFuYXRv bHkNCj4gDQo+IA0KPiAtLQ0KPiBUaGFua3MsDQo+IEFuYXRvbHkNCg==