From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70055.outbound.protection.outlook.com [40.107.7.55]) by dpdk.org (Postfix) with ESMTP id 0E02E4F94; Fri, 5 Oct 2018 22:17:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IE/XcBbMBiH6cg+wz+1GPvADEIFty5oAqRFlevO6cl8=; b=QK4zxtEUmdKsKC6HhJCq7e5R9LFco/Yc9bSwqZMaV2BkIJfIrlgMIKvbLKSggxkSbFT0ImWMqqceE4bCMq36IQaunTsMsaP5co4HqT+C8sQWs9OBHA+nZhP5r9oj06Fs74uOf3nwiL+krqn6+xeHzKET5JbtHpcomTb3NmqEbVQ= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB1546.eurprd08.prod.outlook.com (10.167.190.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.23; Fri, 5 Oct 2018 20:17:44 +0000 Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20]) by HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20%11]) with mapi id 15.20.1207.024; Fri, 5 Oct 2018 20:17:44 +0000 From: Ola Liljedahl To: Honnappa Nagarahalli , Jerin Jacob CC: "Ananyev, Konstantin" , "Gavin Hu (Arm Technology China)" , "dev@dpdk.org" , Steve Capper , nd , "stable@dpdk.org" Thread-Topic: [PATCH v3 1/3] ring: read tail using atomic load Thread-Index: AQHUTl7o9KT3/H6K10G5NrmKOHANTqUHJ0+AgAjF7gCAAH79gIAAUg2AgAAF3wCAAAI9gIAAGFMAgAAgVICAADHKgIAAAE+AgAAkl4A= Date: Fri, 5 Oct 2018 20:17:44 +0000 Message-ID: <1555626C-F2B8-44EB-98A3-79B1F7002587@arm.com> References: <20180807031943.5331-1-gavin.hu@arm.com> <1537172244-64874-1-git-send-email-gavin.hu@arm.com> <20180929104857.GA30457@jerin> <2601191342CEEE43887BDE71AB9772580102FE261A@IRSMSX106.ger.corp.intel.com> <621E373E-048D-4808-8CE8-84373EA98D2F@arm.com> <2601191342CEEE43887BDE71AB9772580102FE2951@IRSMSX106.ger.corp.intel.com> <20181005170725.GA18671@jerin> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.10.0.180812 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; x-originating-ip: [158.174.8.16] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB1546; 6:THS2KhtfMtPiwjZ02OuN0FsXVLiZ+8H5NrBSWx3Vl6MAJuF39kaJOR5H3fH/P8cWl5OI/ZzlrZv/12WpMu2WFH2eOzcqpjUmFDR9Y80BZHY5QiD4OPwrqj3FLgrDnRtzKu19R7RbQgp6T2y4snsz5tPAMjuDNDLAocyT2ibJyXZROfYcNzp7vjqu1+H6PKTrIdFej90Z0Rg1VMx14MSZthofXnsNdUF8TfMuGyANI7fuRng4GnjXvnbR9JxpPcky6k06IiOiMV34FDOUNYyjVv8ns0ncrMu7+jQA5jPnDkDFG5c3t2lFDMe8IAvGqmWM+ShI0lYq7fxbbm7/rmJ9W7K3LKLc3ZlDsvZOHU0fT6ZYm2fzq/Vd7IT6KNEv5oajjkogN/sR9NkU2Z/yssG/xfB7kA8x4h01K0/pUgs8g26F9eiVDr7FmKu+Lx5pCaFasfnmR5b/8loWBg7dffI2Lg==; 5:9ZzNkHxhPthCKkUl4CNIJRN1TYZ/CDibv2kU+NJ4kFVxEJQamWzrZBcotiNJMpx3uUzJJe6oOhmqvvSf4tdX62sjubm2SvNhRA0e+4JZMbYABojuIrrloRrtpesVNnGET8lYiUk795AF7kQM3SYRt5nuNoQ1zYCRbGhl7O93nxg=; 7:YP3+AdRe70/bp9Obd6iPahZ31SWVcFUtWWAxMJrx7i2tPeyg3qo2rJR2TaFzAiCf5ftA/wn12XWe3GV4BMCq6FqP2etMIXXq0KobElPn1axTp835Q4V9UsZlhqmLIy0KEWJyrom4yDEafs1PH6ICAHpPGE1wOxcYzI3qD/svr6ycq1ErB8fUaw14Bov+K4IU4qEo2SbSWYkQWpHB+8ElJoBCYwdbt3ZuYYse26YgkDzcH0Z+fQgG196f6B/LgXLK x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 57593d25-b567-46de-5f88-08d62aff9c27 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0801MB1546; x-ms-traffictypediagnostic: HE1PR0801MB1546: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(100405760836317)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3231355)(944501410)(52105095)(3002001)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(201708071742011)(7699051); SRVR:HE1PR0801MB1546; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB1546; x-forefront-prvs: 0816F1D86E x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(376002)(366004)(346002)(396003)(189003)(199004)(13464003)(6116002)(83716004)(486006)(71190400001)(71200400001)(93886005)(102836004)(5250100002)(97736004)(3846002)(4744004)(14454004)(25786009)(966005)(11346002)(72206003)(106356001)(4326008)(2616005)(478600001)(105586002)(6246003)(476003)(345774005)(6506007)(316002)(446003)(76176011)(36756003)(82746002)(53546011)(58126008)(54906003)(6512007)(110136005)(33656002)(66066001)(575784001)(5660300001)(99286004)(86362001)(6306002)(81166006)(81156014)(256004)(26005)(14444005)(8936002)(8676002)(2906002)(186003)(6436002)(6486002)(53936002)(305945005)(7736002)(68736007)(229853002)(2900100001)(10126625002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1546; H:HE1PR0801MB2076.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: N9zCPhflOes9xpXgOAN/hKbNsX6Y9pvOOeXudnrjcgQFrGBruivgGryaiLBRS370Sx/eqPB+9g/eTf1ClmpxU2qmjV7RH7Pl3ALIu7ROBGanNtt3zdWaoojCHa9EKUP5C3GKR+3ZM/SXAuFwhE3zLBxvHT/jq2txuGuusyr0TRpqP9caNCmWclw0O0HaCHorKuIP6QciNnR2mN/QkCjhl3Lt3gF+6VaTb0NN58tR1czwPilfmxznfe1oPLrKqpIO8E5acqgKL00GOsXo+QbYP4yMY/6PNDHmVd+WbyykaESJWtA+BwWk0NF2WpMuVsJ2cUXIpMehnI4ZquSFamtcq3CZ+RJJevBJVC3jImiPisU= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57593d25-b567-46de-5f88-08d62aff9c27 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2018 20:17:44.2675 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1546 Subject: Re: [dpdk-stable] [PATCH v3 1/3] ring: read tail using atomic load 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: , X-List-Received-Date: Fri, 05 Oct 2018 20:17:53 -0000 SSBkb3VidCBpdCBpcyBwb3NzaWJsZSB0byBiZW5jaG1hcmsgd2l0aCBzdWNoIGEgcHJlY2lzaW9u IHNvIHRvIHNlZSB0aGUgcG90ZW50aWFsIGRpZmZlcmVuY2Ugb2Ygb25lIEFERCBpbnN0cnVjdGlv bi4NCkp1c3QgY2hhbmdlcyBpbiBmdW5jdGlvbiBhbGlnbm1lbnQgY2FuIGFmZmVjdCBwZXJmb3Jt YW5jZSBieSBwZXJjZW50cy4gQW5kIHRoZSBuYXR1cmFsIHZhcmlhdGlvbiB3aGVuIG5vdCB1c2lu ZyBhIDEwMCUgZGV0ZXJtaW5pc3RpYyBzeXN0ZW0gaXMgZ29pbmcgdG8gYmUgYSBsb3QgbGFyZ2Vy IHRoYW4gb25lIGN5Y2xlIHBlciByaW5nIGJ1ZmZlciBvcGVyYXRpb24uDQoNClNvbWUgb2YgdGhl IG90aGVyIHBhdGNoZXMgYXJlIGFsc28gZm9yIGNvcnJlY3RuZXNzIChlLmcuIGxvYWQtYWNxdWly ZSBvZiB0YWlsKSBzbyB3aGlsZSBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudHMgbWF5IGJlIGludGVy ZXN0aW5nLCB3ZSBjYW4ndCBza2lwIGEgYnVnIGZpeCBqdXN0IGJlY2F1c2UgaXQgcHJvdmVzIHRv IGRlY3JlYXNlIHBlcmZvcm1hbmNlLg0KDQotLSBPbGENCg0K77u/T24gMDUvMTAvMjAxOCwgMjI6 MDYsICJIb25uYXBwYSBOYWdhcmFoYWxsaSIgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+ IHdyb3RlOg0KDQogICAgSGkgSmVyaW4sDQogICAgCVRoYW5rIHlvdSBmb3IgZ2VuZXJhdGluZyB0 aGUgZGlzYXNzZW1ibHksIHRoYXQgaXMgcmVhbGx5IGhlbHBmdWwuIEkgYWdyZWUgd2l0aCB5b3Ug dGhhdCB3ZSBoYXZlIHRoZSBvcHRpb24gb2YgbW92aW5nIHBhcnRzIDIgYW5kIDMgZm9yd2FyZC4g SSB3aWxsIGxldCBHYXZpbiB0YWtlIGEgZGVjaXNpb24uDQogICAgDQogICAgSSBzdWdnZXN0IHRo YXQgd2UgcnVuIGJlbmNobWFya3Mgb24gdGhpcyBwYXRjaCBhbG9uZSBhbmQgaW4gY29tYmluYXRp b24gd2l0aCBvdGhlciBwYXRjaGVzIGluIHRoZSBzZXJpZXMuIFdlIGhhdmUgZmV3IEFybSBtYWNo aW5lcyBhbmQgd2Ugd2lsbCBydW4gb24gYWxsIG9mIHRoZW0gYWxvbmcgd2l0aCB4ODYuIFdlIHRh a2UgYSBkZWNpc2lvbiBiYXNlZCBvbiB0aGF0Lg0KICAgIA0KICAgIFdvdWxkIHRoYXQgYmUgYSB3 YXkgdG8gbW92ZSBmb3J3YXJkPyBJIHRoaW5rIHRoaXMgc2hvdWxkIGFkZHJlc3MgYm90aCB5b3Vy IGFuZCBPbGEncyBjb25jZXJucy4NCiAgICANCiAgICBJIGFtIG9wZW4gZm9yIG90aGVyIHN1Z2dl c3Rpb25zIGFzIHdlbGwuDQogICAgDQogICAgVGhhbmsgeW91LA0KICAgIEhvbm5hcHBhDQogICAg DQogICAgPiANCiAgICA+IFNvIHlvdSBkb24ndCB3YW50IHRvIHdyaXRlIHRoZSBwcm9wZXIgQzEx IGNvZGUgYmVjYXVzZSB0aGUgY29tcGlsZXINCiAgICA+IGdlbmVyYXRlcyBvbmUgZXh0cmEgaW5z dHJ1Y3Rpb24gdGhhdCB3YXk/DQogICAgPiBZb3UgZG9uJ3QgZXZlbiBrbm93IGlmIHRoYXQgb25l IGV4dHJhIGluc3RydWN0aW9uIGhhcyBhbnkgbWVhc3VyYWJsZQ0KICAgID4gaW1wYWN0IG9uIHBl cmZvcm1hbmNlLiBFLmcuIGl0IGNvdWxkIGJlIGlzc3VlZCB0aGUgY3ljbGUgYmVmb3JlIHRvZ2V0 aGVyDQogICAgPiB3aXRoIG90aGVyIGluc3RydWN0aW9ucy4NCiAgICA+IA0KICAgID4gV2UgY2Fu IGNvbXBsYWluIHRvIHRoZSBjb21waWxlciB3cml0ZXJzIHRoYXQgdGhlIGNvZGUgZ2VuZXJhdGlv biBmb3INCiAgICA+IF9fYXRvbWljX2xvYWRfbigsIF9fQVRPTUlDX1JFTEFYRUQpIGlzIG5vdCBv cHRpbWFsIChhdCBsZWFzdCBvbg0KICAgID4gQVJNL0E2NCkuIEkgdGhpbmsgdGhlIHByb2JsZW0g aXMgdGhhdCB0aGUgX19hdG9taWMgYnVpbHRpbnMgb25seSBhY2NlcHQgYQ0KICAgID4gYmFzZSBh ZGRyZXNzIHdpdGhvdXQgYW55IG9mZnNldCBhbmQgdGhpcyBpcyBwb3NzaWJseSBiZWNhdXNlIGUu Zy4gbG9hZC9zdG9yZQ0KICAgID4gZXhjbHVzaXZlIChMRFgvU1RYKSBhbmQgbG9hZC1hY3F1aXJl IChMREFSKSBhbmQgc3RvcmUtcmVsZWFzZSAoU1RMUikgb25seQ0KICAgID4gYWNjZXB0IGEgYmFz ZSByZWdpc3RlciB3aXRoIG5vIG9mZnNldC4gU28gYW55IG9mZnNldCBoYXMgdG8gYmUgYWRkZWQg YmVmb3JlDQogICAgPiB0aGUgYWN0dWFsICJhdG9taWMiIGluc3RydWN0aW9uLCBMRFIgaW4gdGhp cyBjYXNlLg0KICAgID4gDQogICAgPiANCiAgICA+IC0tIE9sYQ0KICAgID4gDQogICAgPiANCiAg ICA+IE9uIDA1LzEwLzIwMTgsIDE5OjA3LCAiSmVyaW4gSmFjb2IiIDxqZXJpbi5qYWNvYkBjYXZp dW1uZXR3b3Jrcy5jb20+DQogICAgPiB3cm90ZToNCiAgICA+IA0KICAgID4gICAgIC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQogICAgPiAgICAgPiBEYXRlOiBGcmksIDUgT2N0IDIwMTggMTU6 MTE6NDQgKzAwMDANCiAgICA+ICAgICA+IEZyb206IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25u YXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPg0KICAgID4gICAgID4gVG86ICJBbmFueWV2LCBLb25z dGFudGluIiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4sIE9sYQ0KICAgID4gTGlsamVk YWhsDQogICAgPiAgICAgPiAgPE9sYS5MaWxqZWRhaGxAYXJtLmNvbT4sICJHYXZpbiBIdSAoQXJt IFRlY2hub2xvZ3kgQ2hpbmEpIg0KICAgID4gICAgID4gIDxHYXZpbi5IdUBhcm0uY29tPiwgSmVy aW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4NCiAgICA+ICAgICA+IEND OiAiZGV2QGRwZGsub3JnIiA8ZGV2QGRwZGsub3JnPiwgU3RldmUgQ2FwcGVyDQogICAgPiA8U3Rl dmUuQ2FwcGVyQGFybS5jb20+LCBuZA0KICAgID4gICAgID4gIDxuZEBhcm0uY29tPiwgInN0YWJs ZUBkcGRrLm9yZyIgPHN0YWJsZUBkcGRrLm9yZz4NCiAgICA+ICAgICA+IFN1YmplY3Q6IFJFOiBb UEFUQ0ggdjMgMS8zXSByaW5nOiByZWFkIHRhaWwgdXNpbmcgYXRvbWljIGxvYWQNCiAgICA+ICAg ICA+DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+IEhpIEplcmluLA0KICAgID4gICAgID4gPiA+ ICAgICAgICAgPg0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiBUaGFua3MgZm9yIHlvdXIgcmV2 aWV3LCBpbmxpbmUgY29tbWVudHMgZnJvbSBvdXIgaW50ZXJuYWwNCiAgICA+ICAgICA+ID4gZGlz Y3Vzc2lvbnMuDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+DQogICAgPiAgICAgPiA+ID4gICAg ICAgICA+IEJSLiBHYXZpbg0KICAgID4gICAgID4gPiA+ICAgICAgICAgPg0KICAgID4gICAgID4g PiA+ICAgICAgICAgPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQogICAgPiAgICAgPiA+ ID4gICAgICAgICA+ID4gRnJvbTogSmVyaW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdv cmtzLmNvbT4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiBTZW50OiBTYXR1cmRheSwgU2Vw dGVtYmVyIDI5LCAyMDE4IDY6NDkgUE0NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiBUbzog R2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8R2F2aW4uSHVAYXJtLmNvbT4NCiAgICA+ ICAgICA+ID4gPiAgICAgICAgID4gPiBDYzogZGV2QGRwZGsub3JnOyBIb25uYXBwYSBOYWdhcmFo YWxsaQ0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBh cm0uY29tPjsgU3RldmUgQ2FwcGVyDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPFN0ZXZl LkNhcHBlckBhcm0uY29tPjsgT2xhIExpbGplZGFobA0KICAgID4gPE9sYS5MaWxqZWRhaGxAYXJt LmNvbT47DQogICAgPiAgICAgPiA+IG5kDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPG5k QGFybS5jb20+OyBzdGFibGVAZHBkay5vcmcNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiBT dWJqZWN0OiBSZTogW1BBVENIIHYzIDEvM10gcmluZzogcmVhZCB0YWlsIHVzaW5nIGF0b21pYyBs b2FkDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAg ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiA+ID4gRGF0ZTogTW9uLCAxNyBTZXAgMjAxOCAxNjoxNzoyMiArMDgwMA0KICAgID4gICAgID4g PiA+ICAgICAgICAgPiA+ID4gRnJvbTogR2F2aW4gSHUgPGdhdmluLmh1QGFybS5jb20+DQogICAg PiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBUbzogZGV2QGRwZGsub3JnDQogICAgPiAgICAgPiA+ ID4gICAgICAgICA+ID4gPiBDQzogZ2F2aW4uaHVAYXJtLmNvbSwgSG9ubmFwcGEuTmFnYXJhaGFs bGlAYXJtLmNvbSwNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IHN0ZXZlLmNhcHBlckBh cm0uY29tLCAgT2xhLkxpbGplZGFobEBhcm0uY29tLA0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiA+ID4gamVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tLCBuZEBhcm0uY29tLA0KICAgID4g ICAgID4gPiBzdGFibGVAZHBkay5vcmcNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IFN1 YmplY3Q6IFtQQVRDSCB2MyAxLzNdIHJpbmc6IHJlYWQgdGFpbCB1c2luZyBhdG9taWMgbG9hZA0K ICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gWC1NYWlsZXI6IGdpdC1zZW5kLWVtYWlsIDIu Ny40DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPg0KICAgID4gICAgID4gPiA+ICAgICAg ICAgPiA+ID4gRXh0ZXJuYWwgRW1haWwNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+DQog ICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBJbiB1cGRhdGVfdGFpbCwgcmVhZCBodC0+dGFp bCB1c2luZw0KICAgID4gX19hdG9taWNfbG9hZC5BbHRob3VnaCB0aGUNCiAgICA+ICAgICA+ID4g PiAgICAgICAgID4gPiA+IGNvbXBpbGVyIGN1cnJlbnRseSBzZWVtcyB0byBiZSBkb2luZyB0aGUg cmlnaHQgdGhpbmcgZXZlbg0KICAgID4gd2l0aG91dA0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiA+ID4gX2F0b21pY19sb2FkLCB3ZSBkb24ndCB3YW50IHRvIGdpdmUgdGhlIGNvbXBpbGVyDQog ICAgPiBmcmVlZG9tIHRvDQogICAgPiAgICAgPiA+IG9wdGltaXNlDQogICAgPiAgICAgPiA+ID4g ICAgICAgICA+ID4gPiB3aGF0IHNob3VsZCBiZSBhbiBhdG9taWMgbG9hZCwgaXQgc2hvdWxkIG5v dCBiZSBhcmJpdGFyaWx5DQogICAgPiBtb3ZlZA0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ ID4gYXJvdW5kLg0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4g PiAgICAgICAgID4gPiA+IEZpeGVzOiAzOTM2OGViZmM2ICgicmluZzogaW50cm9kdWNlIEMxMSBt ZW1vcnkgbW9kZWwNCiAgICA+IGJhcnJpZXINCiAgICA+ICAgICA+ID4gb3B0aW9uIikNCiAgICA+ ICAgICA+ID4gPiAgICAgICAgID4gPiA+IENjOiBzdGFibGVAZHBkay5vcmcNCiAgICA+ICAgICA+ ID4gPiAgICAgICAgID4gPiA+DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBHYXZpbiBIdSA8Z2F2aW4uaHVAYXJtLmNvbT4NCiAgICA+ICAgICA+ID4gPiAgICAg ICAgID4gPiA+IFJldmlld2VkLWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KICAgID4gICAgID4g PiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4NCiAgICA+ICAgICA+ID4gPiAgICAgICAg ID4gPiA+IFJldmlld2VkLWJ5OiBTdGV2ZSBDYXBwZXIgPHN0ZXZlLmNhcHBlckBhcm0uY29tPg0K ICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gUmV2aWV3ZWQtYnk6IE9sYSBMaWxqZWRhaGwg PE9sYS5MaWxqZWRhaGxAYXJtLmNvbT4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+IC0t LQ0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gIGxpYi9saWJydGVfcmluZy9ydGVfcmlu Z19jMTFfbWVtLmggfCAzICsrLQ0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCiAgICA+ICAgICA+ID4g PiAgICAgICAgID4gPiA+DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+IFRoZSByZWFkIG9mIGh0 LT50YWlsIG5lZWRzIHRvIGJlIGF0b21pYywgYSBub24tYXRvbWljIHJlYWQNCiAgICA+IHdvdWxk IG5vdA0KICAgID4gICAgID4gPiBiZSBjb3JyZWN0Lg0KICAgID4gICAgID4gPiA+DQogICAgPiAg ICAgPiA+ID4gICAgICAgICBUaGF0J3MgYSAzMmJpdCB2YWx1ZSBsb2FkLg0KICAgID4gICAgID4g PiA+ICAgICAgICAgQUZBSUsgb24gYWxsIENQVXMgdGhhdCB3ZSBzdXBwb3J0IGl0IGlzIGFuIGF0 b21pYyBvcGVyYXRpb24uDQogICAgPiAgICAgPiA+ID4gICAgIFtPbGFdIEJ1dCB0aGF0IHRoZSBv cmRpbmFyeSBDIGxvYWQgaXMgdHJhbnNsYXRlZCB0byBhbiBhdG9taWMgbG9hZA0KICAgID4gZm9y IHRoZQ0KICAgID4gICAgID4gPiB0YXJnZXQgYXJjaGl0ZWN0dXJlIGlzIGluY2lkZW50YWwuDQog ICAgPiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4gPiAgICAgSWYgdGhlIGRlc2lnbiByZXF1aXJl cyBhbiBhdG9taWMgbG9hZCAod2hpY2ggaXMgdGhlIGNhc2UgaGVyZSksIHdlDQogICAgPiAgICAg PiA+ID4gc2hvdWxkIHVzZSBhbiBhdG9taWMgbG9hZCBvbiB0aGUgbGFuZ3VhZ2UgbGV2ZWwuIFRo ZW4gd2UgY2FuIGJlDQogICAgPiBzdXJlIGl0IHdpbGwNCiAgICA+ICAgICA+ID4gYWx3YXlzIGJl IHRyYW5zbGF0ZWQgdG8gYW4gYXRvbWljIGxvYWQgZm9yIHRoZSB0YXJnZXQgaW4gcXVlc3Rpb24g b3INCiAgICA+ICAgICA+ID4gY29tcGlsYXRpb24gd2lsbCBmYWlsLiBXZSBkb24ndCBoYXZlIHRv IGRlcGVuZCBvbiBhc3N1bXB0aW9ucy4NCiAgICA+ICAgICA+ID4NCiAgICA+ICAgICA+ID4gV2Ug YWxsIGtub3cgdGhhdCAzMmJpdCBsb2FkL3N0b3JlIG9uIGNwdSB3ZSBzdXBwb3J0IC0gYXJlIGF0 b21pYy4NCiAgICA+ICAgICA+ID4gSWYgaXQgd291bGRuJ3QgYmUgdGhlIGNhc2UgLSBEUERLIHdv dWxkIGJlIGJyb2tlbiBpbiBkb3plbiBwbGFjZXMuDQogICAgPiAgICAgPiA+IFNvIHdoYXQgdGhl IHBvaW50IHRvIHByZXRlbmQgdGhhdCAiaXQgbWlnaHQgYmUgbm90IGF0b21pYyIgaWYgd2UgZG8N CiAgICA+IGtub3cgZm9yDQogICAgPiAgICAgPiA+IHN1cmUgdGhhdCBpdCBpcz8NCiAgICA+ICAg ICA+ID4gSSBkbyB1bmRlcnN0YW5kIHRoYXQgeW91IHdhbnQgdG8gdXNlIGF0b21pY19sb2FkKHJl bGF4ZWQpIGhlcmUgZm9yDQogICAgPiAgICAgPiA+IGNvbnNpc3RlbmN5LCBhbmQgdG8gY29uZm9y bSB3aXRoIEMxMSBtZW0tbW9kZWwgYW5kIEkgZG9uJ3Qgc2VlIGFueQ0KICAgID4gaGFybSBpbg0K ICAgID4gICAgID4gPiB0aGF0Lg0KICAgID4gICAgID4gV2UgY2FuIGNvbnRpbnVlIHRvIGRpc2N1 c3MgdGhlIHRvcGljLCBpdCBpcyBhIGdvb2QgZGlzY3Vzc2lvbi4gQnV0LCBhcyBmYXINCiAgICA+ IHRoaXMgcGF0Y2ggaXMgY29uY2VybmVkLCBjYW4gSSBjb25zaWRlciB0aGlzIGFzIHVzIGhhdmlu ZyBhIGNvbnNlbnN1cz8gVGhlDQogICAgPiBmaWxlIHJ0ZV9yaW5nX2MxMV9tZW0uaCBpcyBzcGVj aWZpY2FsbHkgZm9yIEMxMSBtZW1vcnkgbW9kZWwgYW5kIEkgYWxzbyBkbw0KICAgID4gbm90IHNl ZSBhbnkgaGFybSBpbiBoYXZpbmcgY29kZSB0aGF0IGNvbXBsZXRlbHkgY29uZm9ybXMgdG8gQzEx IG1lbW9yeQ0KICAgID4gbW9kZWwuDQogICAgPiANCiAgICA+ICAgICBIYXZlIHlvdSBndXlzIGNo ZWNrZWQgdGhlIG91dHB1dCBhc3NlbWJseSB3aXRoIGFuZCB3aXRob3V0IGF0b21pYw0KICAgID4g bG9hZD8NCiAgICA+ICAgICBUaGVyZSBpcyBhbiBleHRyYSAiYWRkIiBpbnN0cnVjdGlvbiB3aXRo IGF0IGxlYXN0IHRoZSBjb2RlIEkgaGF2ZSBjaGVja2VkLg0KICAgID4gICAgIEkgdGhpbmssIGNv bXBpbGVyIGlzIG5vdCBzbWFydCBlbm91Z2ggdG8gdW5kZXJzdGFuZCBpdCBpcyBhIGRlYWQgY29k ZSBmb3INCiAgICA+ICAgICBhcm02NC4NCiAgICA+IA0KICAgID4gICAgIOKenCBbfl0gJCBhYXJj aDY0LWxpbnV4LWdudS1nY2MgLXYNCiAgICA+ICAgICBVc2luZyBidWlsdC1pbiBzcGVjcy4NCiAg ICA+ICAgICBDT0xMRUNUX0dDQz1hYXJjaDY0LWxpbnV4LWdudS1nY2MNCiAgICA+ICAgICBDT0xM RUNUX0xUT19XUkFQUEVSPS91c3IvbGliL2djYy9hYXJjaDY0LWxpbnV4LWdudS84LjIuMC9sdG8t DQogICAgPiB3cmFwcGVyDQogICAgPiAgICAgVGFyZ2V0OiBhYXJjaDY0LWxpbnV4LWdudQ0KICAg ID4gICAgIENvbmZpZ3VyZWQgd2l0aDogL2J1aWxkL2FhcmNoNjQtbGludXgtZ251LWdjYy9zcmMv Z2NjLTguMi4wL2NvbmZpZ3VyZQ0KICAgID4gICAgIC0tcHJlZml4PS91c3IgLS1wcm9ncmFtLXBy ZWZpeD1hYXJjaDY0LWxpbnV4LWdudS0NCiAgICA+ICAgICAtLXdpdGgtbG9jYWwtcHJlZml4PS91 c3IvYWFyY2g2NC1saW51eC1nbnUNCiAgICA+ICAgICAtLXdpdGgtc3lzcm9vdD0vdXNyL2FhcmNo NjQtbGludXgtZ251DQogICAgPiAgICAgLS13aXRoLWJ1aWxkLXN5c3Jvb3Q9L3Vzci9hYXJjaDY0 LWxpbnV4LWdudSAtLWxpYmRpcj0vdXNyL2xpYg0KICAgID4gICAgIC0tbGliZXhlY2Rpcj0vdXNy L2xpYiAtLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudQ0KICAgID4gICAgIC0taG9zdD14ODZfNjQt cGMtbGludXgtZ251IC0tYnVpbGQ9eDg2XzY0LXBjLWxpbnV4LWdudSAtLWRpc2FibGUtbmxzDQog ICAgPiAgICAgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJs ZS10aHJlYWRzPXBvc2l4DQogICAgPiAgICAgLS13aXRoLXN5c3RlbS16bGliIC0td2l0aC1pc2wg LS1lbmFibGUtX19jeGFfYXRleGl0DQogICAgPiAgICAgLS1kaXNhYmxlLWxpYnVud2luZC1leGNl cHRpb25zIC0tZW5hYmxlLWNsb2NhbGU9Z251DQogICAgPiAgICAgLS1kaXNhYmxlLWxpYnN0ZGN4 eC1wY2ggLS1kaXNhYmxlLWxpYnNzcCAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdA0KICAgID4g ICAgIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCAtLWVuYWJsZS1sdG8gLS1lbmFibGUtcGx1Z2lu DQogICAgPiAgICAgLS1lbmFibGUtaW5zdGFsbC1saWJpYmVydHkgLS13aXRoLWxpbmtlci1oYXNo LXN0eWxlPWdudQ0KICAgID4gICAgIC0tZW5hYmxlLWdudS1pbmRpcmVjdC1mdW5jdGlvbiAtLWRp c2FibGUtbXVsdGlsaWIgLS1kaXNhYmxlLXdlcnJvcg0KICAgID4gICAgIC0tZW5hYmxlLWNoZWNr aW5nPXJlbGVhc2UNCiAgICA+ICAgICBUaHJlYWQgbW9kZWw6IHBvc2l4DQogICAgPiAgICAgZ2Nj IHZlcnNpb24gOC4yLjAgKEdDQykNCiAgICA+IA0KICAgID4gDQogICAgPiAgICAgIyBidWlsZCBz ZXR1cA0KICAgID4gICAgIG1ha2UgLWogOCBjb25maWcgVD1hcm02NC1hcm12OGEtbGludXhhcHAt Z2NjICBDUk9TUz1hYXJjaDY0LWxpbnV4LWdudS0NCiAgICA+ICAgICBtYWtlIC1qIDggdGVzdC1i dWlsZCBDUk9TUz1hYXJjaDY0LWxpbnV4LWdudS0NCiAgICA+IA0KICAgID4gICAgICMgZ2VuZXJh dGUgYXNtDQogICAgPiAgICAgYWFyY2g2NC1saW51eC1nbnUtZ2RiIC1iYXRjaCAtZXggJ2ZpbGUg YnVpbGQvYXBwL3Rlc3QgJyAtZXggJ2Rpc2Fzc2VtYmxlIC9ycw0KICAgID4gYnVja2V0X2VucXVl dWVfc2luZ2xlJw0KICAgID4gDQogICAgPiAgICAgSSBoYXZlIHVwbG9hZGVkIGdlbmVyYXRlZCBm aWxlIGZvciB5b3VyIGNvbnZlbmllbmNlDQogICAgPiAgICAgd2l0aF9hdG9taWNfbG9hZC50eHQo aW5jbHVkZXMgcGF0Y2ggMSwyLDMpDQogICAgPiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CiAgICA+ICAgICBodHRwczovL3Bhc3RlYmluLmNvbS9TUTZ3MXlSdQ0KICAgID4gDQogICAgPiAg ICAgd2l0aG91dF9hdG9taWNfbG9hZC50eHQoaW5jbHVkZXMgcGF0Y2ggMiwzKQ0KICAgID4gICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgPiAgICAgaHR0cHM6Ly9wYXN0ZWJpbi5jb20v QnB2bkQwQ0ENCiAgICA+IA0KICAgID4gDQogICAgPiAgICAgd2l0aG91dF9hdG9taWMNCiAgICA+ ICAgICAtLS0tLS0tLS0tLS0tDQogICAgPiAgICAgMjMgICAgICAgICAgICAgIGlmICghc2luZ2xl KQ0KICAgID4gICAgICAgIDB4MDAwMDAwMDAwMDY4ZDI5MCA8KzI0MD46ICAgODUgMDAgMDAgMzUg ICAgIGNibnogICAgdzUsIDB4NjhkMmEwDQogICAgPiA8YnVja2V0X2VucXVldWVfc2luZ2xlKzI1 Nj4NCiAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGQyOTQgPCsyNDQ+OiAgIDgyIDA0IDQwIGI5 ICAgICBsZHIgICAgIHcyLCBbeDQsICM0XQ0KICAgID4gICAgICAgIDB4MDAwMDAwMDAwMDY4ZDI5 OCA8KzI0OD46ICAgNWYgMDAgMDEgNmIgICAgIGNtcCAgICAgdzIsIHcxDQogICAgPiAgICAgICAg MHgwMDAwMDAwMDAwNjhkMjljIDwrMjUyPjogICAyMSAwMSAwMCA1NCAgICAgYi5uZSAgICAweDY4 ZDJjMA0KICAgID4gPGJ1Y2tldF9lbnF1ZXVlX3NpbmdsZSsyODg+ICAvLyBiLmFueQ0KICAgID4g DQogICAgPiAgICAgMjQgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHVubGlrZWx5KGh0LT50 YWlsICE9IG9sZF92YWwpKQ0KICAgID4gICAgIDI1ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcnRlX3BhdXNlKCk7DQogICAgPiANCiAgICA+IA0KICAgID4gICAgIHdpdGhfYXRvbWljDQog ICAgPiAgICAgLS0tLS0tLS0tLS0NCiAgICA+ICAgICAyMyAgICAgICAgICAgICAgaWYgKCFzaW5n bGUpDQogICAgPiAgICAgICAgMHgwMDAwMDAwMDAwNjhjZWIwIDwrMjQwPjogICAwMCAxMCAwNCA5 MSAgICAgYWRkICAgICB4MCwgeDAsICMweDEwNA0KICAgID4gICAgICAgIDB4MDAwMDAwMDAwMDY4 Y2ViNCA8KzI0ND46ICAgODQgMDAgMDAgMzUgICAgIGNibnogICAgdzQsIDB4NjhjZWM0DQogICAg PiA8YnVja2V0X2VucXVldWVfc2luZ2xlKzI2MD4NCiAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2 OGNlYjggPCsyNDg+OiAgIDAyIDAwIDQwIGI5ICAgICBsZHIgICAgIHcyLCBbeDBdDQogICAgPiAg ICAgICAgMHgwMDAwMDAwMDAwNjhjZWJjIDwrMjUyPjogICAzZiAwMCAwMiA2YiAgICAgY21wICAg ICB3MSwgdzINCiAgICA+ICAgICAgICAweDAwMDAwMDAwMDA2OGNlYzAgPCsyNTY+OiAgIDAxIDA5 IDAwIDU0ICAgICBiLm5lICAgIDB4NjhjZmUwDQogICAgPiA8YnVja2V0X2VucXVldWVfc2luZ2xl KzU0ND4gIC8vIGIuYW55DQogICAgPiANCiAgICA+ICAgICAyNCAgICAgICAgICAgICAgICAgICAg ICB3aGlsZSAodW5saWtlbHkob2xkX3ZhbCAhPSBfX2F0b21pY19sb2FkX24oJmh0LT50YWlsLA0K ICAgID4gX19BVE9NSUNfUkVMQVhFRCkpKQ0KICAgID4gDQogICAgPiANCiAgICA+ICAgICBJIGRv bid0IHdhbnQgdG8gYmxvY2sgdGhpcyBzZXJpZXMgb2YgcGF0Y2hlcyBkdWUgdGhpcyBwYXRjaC4g Q2FuIHdlIG1ha2UNCiAgICA+ICAgICByZSBzcGluIG9uZSBzZXJpZXMgd2l0aCAyIGFuZCAzIHBh dGNoZXMuIEFuZCBXYWl0IGZvciBwYXRjaCAxIHRvIGNvbmNsdWRlPw0KICAgID4gDQogICAgPiAg ICAgVGhvdWdodHM/DQogICAgPiANCiAgICA+IA0KICAgID4gDQogICAgPiANCiAgICA+ICAgICA+ DQogICAgPiAgICAgPiA+IEJ1dCBhcmd1bWVudCB0aGF0IHdlIHNob3VsZG4ndCBhc3N1bWUgMzJi aXQgbG9hZC9zdG9yZSBvcHMgYXMNCiAgICA+IGF0b21pYw0KICAgID4gICAgID4gPiBzb3VuZHMg YSBiaXQgZmxha3kgdG8gbWUuDQogICAgPiAgICAgPiA+IEtvbnN0YW50aW4NCiAgICA+ICAgICA+ ID4NCiAgICA+ICAgICA+ID4NCiAgICA+ICAgICA+ID4gPg0KICAgID4gICAgID4gPiA+DQogICAg PiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gQnV0IHRoZXJlIGFyZSBubyBt ZW1vcnkgb3JkZXJpbmcgcmVxdWlyZW1lbnRzICh3aXRoDQogICAgPiAgICAgPiA+ID4gICAgICAg ICA+IHJlZ2FyZHMgdG8gb3RoZXIgbG9hZHMgYW5kL29yIHN0b3JlcyBieSB0aGlzIHRocmVhZCkg c28NCiAgICA+IHJlbGF4ZWQNCiAgICA+ICAgICA+ID4gbWVtb3J5IG9yZGVyIGlzIHN1ZmZpY2ll bnQuDQogICAgPiAgICAgPiA+ID4gICAgICAgICA+IEFub3RoZXIgYXNwZWN0IG9mIHVzaW5nIF9f YXRvbWljX2xvYWRfbigpIGlzIHRoYXQgdGhlDQogICAgPiAgICAgPiA+ID4gY29tcGlsZXIgY2Fu bm90ICJvcHRpbWlzZSIgdGhpcyBsb2FkIChlLmcuIGNvbWJpbmUsIGhvaXN0IGV0YyksIGl0IGhh cw0KICAgID4gdG8gYmUNCiAgICA+ICAgICA+ID4gZG9uZSBhcw0KICAgID4gICAgID4gPiA+ICAg ICAgICAgPiBzcGVjaWZpZWQgaW4gdGhlIHNvdXJjZSBjb2RlIHdoaWNoIGlzIGFsc28gd2hhdCB3 ZSBuZWVkIGhlcmUuDQogICAgPiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgIEkg dGhpbmsgSmVyaW4gcG9pbnRzIHRoYXQgcnRlX3BhdXNlKCkgYWN0cyBoZXJlIGFzIGNvbXBpbGVy DQogICAgPiBiYXJyaWVyIHRvbywNCiAgICA+ICAgICA+ID4gPiAgICAgICAgIHNvIG5vIG5lZWQg dG8gd29ycnkgdGhhdCBjb21waWxlciB3b3VsZCBvcHRpbWl6ZSBvdXQgdGhlIGxvb3AuDQogICAg PiAgICAgPiA+ID4gICAgIFtPbGFdIFNvcnJ5IG1pc3NlZCB0aGF0LiBCdXQgdGhlIGJhcnJpZXIg YmVoYXZpb3VyIG9mIHJ0ZV9wYXVzZSgpDQogICAgPiAgICAgPiA+ID4gaXMgbm90IHBhcnQgb2Yg QzExLCBpcyBpdCBlc3NlbnRpYWxseSBhIGhhbmQtbWFkZSBmZWF0dXJlIHRvIHN1cHBvcnQNCiAg ICA+ICAgICA+ID4gPiB0aGUgbGVnYWN5IG11bHRpdGhyZWFkZWQgbWVtb3J5IG1vZGVsICh3aGlj aCB1c2VzIGV4cGxpY2l0IEhXDQogICAgPiBhbmQNCiAgICA+ICAgICA+ID4gY29tcGlsZXIgYmFy cmllcnMpLiBJJ2QgcHJlZmVyIGNvZGUgdXNpbmcgdGhlIEMxMSBtZW1vcnkgbW9kZWwgbm90IHRv DQogICAgPiAgICAgPiA+IGRlcGVuZCBvbiBzdWNoIGxlZ2FjeSBmZWF0dXJlcy4NCiAgICA+ICAg ICA+ID4gPg0KICAgID4gICAgID4gPiA+DQogICAgPiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4g PiAgICAgICAgIEtvbnN0YW50aW4NCiAgICA+ICAgICA+ID4gPg0KICAgID4gICAgID4gPiA+ICAg ICAgICAgPg0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiBPbmUgcG9pbnQgd29ydGggbWVudGlv bmluZyB0aG91Z2ggaXMgdGhhdCB0aGlzIGNoYW5nZSBpcyBmb3INCiAgICA+ICAgICA+ID4gPiB0 aGUgcnRlX3JpbmdfYzExX21lbS5oIGZpbGUsIG5vdCB0aGUgbGVnYWN5IHJpbmcuIEl0IG1heSBi ZSB3b3J0aA0KICAgID4gcGVyc2lzdGluZw0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiB3aXRo IGdldHRpbmcgdGhlIEMxMSBjb2RlIHJpZ2h0IHdoZW4gcGVvcGxlIGFyZSBsZXNzIGV4Y2l0ZWQN CiAgICA+IGFib3V0DQogICAgPiAgICAgPiA+IHNlbmRpbmcgYSByZWxlYXNlIG91dD8NCiAgICA+ ICAgICA+ID4gPiAgICAgICAgID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gV2UgY2FuIGV4 cGxhaW4gdGhhdCBmb3IgQzExIHdlIHdvdWxkIHByZWZlciB0byBkbyBsb2FkcyBhbmQNCiAgICA+ IHN0b3Jlcw0KICAgID4gICAgID4gPiBhcyBwZXIgdGhlIEMxMSBtZW1vcnkgbW9kZWwuIEluIHRo ZSBjYXNlIG9mIHJ0ZV9yaW5nLCB0aGUgY29kZSBpcw0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiBzZXBhcmF0ZWQgY2xlYW5seSBpbnRvIEMxMSBzcGVjaWZpYyBmaWxlcyBhbnl3YXkuDQogICAg PiAgICAgPiA+ID4gICAgICAgICA+DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+IEkgdGhpbmsg cmVhZGluZyBodC0+dGFpbCB1c2luZyBfX2F0b21pY19sb2FkX24oKSBpcyB0aGUgbW9zdA0KICAg ID4gICAgID4gPiBhcHByb3ByaWF0ZSB3YXkuIFdlIHNob3cgdGhhdCBodC0+dGFpbCBpcyB1c2Vk IGZvciBzeW5jaHJvbml6YXRpb24sDQogICAgPiB3ZQ0KICAgID4gICAgID4gPiA+ICAgICAgICAg PiBhY2tub3dsZWRnZSB0aGF0IGh0LT50YWlsIG1heSBiZSB3cml0dGVuIGJ5IG90aGVyIHRocmVh ZHMNCiAgICA+ICAgICA+ID4gPiB3aXRob3V0IGFueSBvdGhlciBraW5kIG9mIHN5bmNocm9uaXph dGlvbiAoZS5nLiBubyBsb2NrIGludm9sdmVkKQ0KICAgID4gYW5kIHdlDQogICAgPiAgICAgPiA+ IHJlcXVpcmUNCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gYW4gYXRvbWljIGxvYWQgKGFueSB3 cml0ZSB0byBodC0+dGFpbCBtdXN0IGFsc28gYmUgYXRvbWljKS4NCiAgICA+ICAgICA+ID4gPiAg ICAgICAgID4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gVXNpbmcgdm9sYXRpbGUgYW5kIGV4 cGxpY2l0IGNvbXBpbGVyIChvciBwcm9jZXNzb3IpIG1lbW9yeQ0KICAgID4gYmFycmllcnMNCiAg ICA+ICAgICA+ID4gKGZlbmNlcykgaXMgdGhlIGxlZ2FjeSBwcmUtQzExIHdheSBvZiBhY2NvbXBs aXNoaW5nIHRoZXNlIHRoaW5ncy4NCiAgICA+ICAgICA+ID4gPiBUaGVyZSdzDQogICAgPiAgICAg PiA+ID4gICAgICAgICA+IGEgcmVhc29uIHdoeSBDMTEvQysrMTEgbW92ZWQgYXdheSBmcm9tIHRo ZSBvbGQgd2F5cy4NCiAgICA+ICAgICA+ID4gPiAgICAgICAgID4gPiA+DQogICAgPiAgICAgPiA+ ID4gICAgICAgICA+ID4gPiAgICAgICAgIF9fYXRvbWljX3N0b3JlX24oJmh0LT50YWlsLCBuZXdf dmFsLA0KICAgID4gX19BVE9NSUNfUkVMRUFTRSk7DQogICAgPiAgICAgPiA+ID4gICAgICAgICA+ ID4gPiAtLQ0KICAgID4gICAgID4gPiA+ICAgICAgICAgPiA+ID4gMi43LjQNCiAgICA+ICAgICA+ ID4gPiAgICAgICAgID4gPiA+DQogICAgPiAgICAgPiA+ID4NCiAgICA+ICAgICA+ID4gPg0KICAg ID4gICAgID4gPiA+DQogICAgPiAgICAgPg0KICAgID4gDQogICAgDQogICAgDQoNCg==