From owner-freebsd-net@FreeBSD.ORG Mon Aug 11 09:48:23 2014 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6423048A; Mon, 11 Aug 2014 09:48:23 +0000 (UTC) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1lp0145.outbound.protection.outlook.com [207.46.163.145]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7B2822AD7; Mon, 11 Aug 2014 09:48:21 +0000 (UTC) Received: from BY1PR0301MB0902.namprd03.prod.outlook.com (25.160.195.141) by BY1PR0301MB0903.namprd03.prod.outlook.com (25.160.195.142) with Microsoft SMTP Server (TLS) id 15.0.1005.10; Mon, 11 Aug 2014 09:48:12 +0000 Received: from BY1PR0301MB0902.namprd03.prod.outlook.com ([25.160.195.141]) by BY1PR0301MB0902.namprd03.prod.outlook.com ([25.160.195.141]) with mapi id 15.00.1005.008; Mon, 11 Aug 2014 09:48:12 +0000 From: Wei Hu To: Adrian Chadd Subject: RE: vRSS support on FreeBSD Thread-Topic: vRSS support on FreeBSD Thread-Index: AQHPs0Bb+mxjwe28tEGUfZYiw4SKJJvLJUyg Date: Mon, 11 Aug 2014 09:48:12 +0000 Message-ID: References: <184b69414bd246eeacc0d4234a730f2f@BY1PR0301MB0902.namprd03.prod.outlook.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [167.220.232.169] x-microsoft-antispam: BCL:0;PCL:0;RULEID:;UriScan:; x-forefront-prvs: 03008837BD x-forefront-antispam-report: SFV:NSPM; SFS:(6009001)(51914003)(66654002)(57704003)(24454002)(13464003)(377454003)(51704005)(189002)(199002)(101416001)(85306004)(110136001)(77096002)(99396002)(86362001)(46102001)(76576001)(107046002)(105586002)(95666004)(106116001)(106356001)(33646002)(21056001)(74316001)(80022001)(99286002)(555904002)(83072002)(85852003)(87936001)(2656002)(79102001)(92566001)(76482001)(77982001)(66066001)(76176999)(86612001)(83322001)(20776003)(50986999)(54356999)(19580405001)(81342001)(81542001)(74502001)(31966008)(19580395003)(21314002)(24736002)(108616003); DIR:OUT; SFP:; SCL:1; SRVR:BY1PR0301MB0903; H:BY1PR0301MB0902.namprd03.prod.outlook.com; FPR:; MLV:sfv; PTR:InfoNoRecords; MX:1; LANG:en; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: microsoft.onmicrosoft.com Cc: "freebsd-net@freebsd.org" , "d@delphij.net" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Aug 2014 09:48:23 -0000 Q0MgZnJlZWJzZC1uZXRAIGZvciB3aWRlciBkaXNjdXNzaW9uLg0KDQpIaSBBZHJpYW4sDQoNCk1h bnkgdGhhbmtzIGZvciB0aGUgZXhwbGFuYXRpb24uICBJIGNoZWNrZWQgdGhlIGlmX2lnYi5jICBh bmQgZm91bmQgdGhlIGZsb3dpZCBmaWVsZCB3YXMgc2V0IGluIHRoZSBSWCBzaWRlIGluIGlnYl9y eGVvZigpOg0KDQpJZ2Jfcnhlb2YoKQ0Kew0KIC4uLg0KI2lmZGVmICBSU1MNCiAgICAgICAgICAg ICAgICAgICAgICAgIC8qIFhYWCBzZXQgZmxvd3R5cGUgb25jZSB0aGlzIHdvcmtzIHJpZ2h0ICov DQogICAgICAgICAgICAgICAgICAgICAgICByeHItPmZtcC0+bV9wa3RoZHIuZmxvd2lkID0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZTMydG9oKGN1ci0+d2IubG93ZXIuaGlfZHdvcmQu cnNzKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJ4ci0+Zm1wLT5tX2ZsYWdzIHw9IE1fRkxP V0lEOw0KIC4uLg0KfQ0KDQpJIGhhdmUgdHdvIHF1ZXN0aW9ucyByZWdhcmRpbmcgdGhpcy4gDQoN CjEuIElzIHRoZSBSU1MgaGFzaCB2YWx1ZSBzdG9yZWQgaW4gY3VyLT53Yi5sb3dlci5oaV9kd29y ZC5yc3Mgc2V0IGJ5IHRoZSBOSUMgaGFyZHdhcmU/DQoyLiBTbyB0aGUgaGFzaCB2YWx1ZSBhbmQg bV9mbGFncyBhcmUgc3RvcmVkIGluIHRoZSBtYnVmIHJlbGF0ZWQgdG8gdGhlIHJlY2VpdmVkIHBh Y2tldCBvbiB0aGUgcnggc2lkZShsZ2Jfcnhlb2YoKSkuIEJ1dCB3ZSBjaGVjayB0aGUgaGFzaCB2 YWx1ZSBhbmQgbV9mbGFncyBpbiBtYnVmIHJlbGF0ZWQgdG8gdGhlIHNlbmQgcGFja2V0IG9uIHRo ZSB0eCBzaWRlIChpbiBpZ2JfbXFfc3RhcnQoKSkuIERvZXMgdGhlIGtlcm5lbCByZS11c2UgdGhl IHNhbWUgbWJ1ZiBmb3IgdHg/IElmIHNvLCBob3cgZG9lcyBpdCBrbm93IGZvciB0aGUgc2FtZSBu ZXR3b3JrIHN0cmVhbSBpdCBzaG91bGQgdXNlIHRoZSBzYW1lIG1idWYgZ290IGZyb20gdGhlIHJ4 IGZvciBwYWNrZXQgc2VuZGluZz8gSWYgbm90LCBob3cgZG9lcyB0aGUga2VybmVsIHByZXNlcnZl IHRoZSBzYW1lIGhhc2ggdmFsdWUgYWNyb3NzIHRoZSByeCBtYnVmIGFuZCB0eCBtYnVmIGZvciBz YW1lIG5ldHdvcmsgc3RyZWFtPyBUaGlzIHNlZW1zIHF1aXRlIG1hZ2ljYWwgdG8gbWUuDQoNCkZv ciB0aGUgSHlwZXItViBjYXNlLCB0aGUgaG9zdCBjb250cm9scyB3aGljaCB2Q1BVIGl0IHdhbnRz IHRvIGludGVycnVwdC4gQW5kIHRoZSBydWxlIGNhbiBjaGFuZ2UgZHluYW1pY2FsbHkgYmFzZWQg b24gdGhlIGxvYWQuIEZvciBhIG5vbi1idXN5IFZNLCBob3N0IHdpbGwgc2VuZCBtb3N0IHBhY2tl dHMgdG8gc2FtZSB2Q1BVIGZvciBwb3dlciBzYXZpbmcgcHVycG9zZS4gRm9yIGEgYnVzeSBWTSwg aG9zdCB3aWxsIGRpc3RyaWJ1dGUgdGhlIHBhY2tldHMgZXZlbmx5IGFjcm9zcyBhbGwgdkNQVXMu IFRoaXMgbWVhbnMgaG9zdCBjb3VsZCBjaGFuZ2UgdGhlIFJTUyBidWNrZXQgbWFwcGluZyBkeW5h bWljYWxseS4gSHlwZXItViBkb2VzIHRoaXMgYnkgc2VuZGluZyBhIG1hcHBpbmcgdGFibGUgdG8g Vk0gd2hlbmV2ZXIgdGhlIGl0IG5lZWRzIHVwZGF0ZS4gVGhpcyBhbHNvIG1lYW5zIHdlIGNhbm5v dCB1c2UgRnJlZUJTRCdzIG93biBidWNrZXQgbWFwcGluZyB3aGljaCBJIGJlbGlldmUgaXMgZml4 ZWQuIEFsc28gSHlwZXItViB1c2UgaXRzIG93biBoYXNoIGtleS4gU28gZG8geW91IHRoaW5rIGl0 IGlzIHBvc3NpYmxlIHdlIHN0aWxsIHVzZSB0aGUgZXhpc2l0aW5nIFJTUyBpbmZyYXN0cnVjdHVy ZSBidWlsdCBpbiBGcmVlQlNEIGluIHRoaXMgcHVycG9zZT8NCg0KVGhhbmtzIHNvIG11Y2gsDQpX ZWkNCg0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBhZHJpYW4uY2hhZGRA Z21haWwuY29tIFttYWlsdG86YWRyaWFuLmNoYWRkQGdtYWlsLmNvbV0gT24gQmVoYWxmIE9mIEFk cmlhbiBDaGFkZA0KU2VudDogU2F0dXJkYXksIEF1Z3VzdCA5LCAyMDE0IDM6MzkgQU0NClRvOiBX ZWkgSHUNCkNjOiBkQGRlbHBoaWoubmV0DQpTdWJqZWN0OiBSZTogdlJTUyBzdXBwb3J0IG9uIEZy ZWVCU0QNCg0KSGkhDQoNCk9uIDggQXVndXN0IDIwMTQgMDQ6NDMsIFdlaSBIdSA8d2VoQG1pY3Jv c29mdC5jb20+IHdyb3RlOg0KPiBIaSBBZHJpYW4sDQo+DQo+IE15IG5hbWUgaXMgV2VpIEh1LiBJ IHdvcmsgZm9yIE1pY3Jvc29mdCBPU1RDIChPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcikg aW4gU2hhbmdoYWksIENoaW5hLg0KPg0KPiBNaWNyb3NvZnQgaXMgaW52ZXN0aW5nIG9uIEZyZWVC U0QgcnVubmluZyBvbiBpdHMgSHlwZXItViB2aXJ0dWFsaXphdGlvbiBlbnZpcm9ubWVudC4gQXMg dGhlIHJlc3VsdCwgSSBhbSB0cnlpbmcgdG8gYnJpbmcgdGhlIHBlcmZvcm1hbmNlIG9mIEZyZWVC U0Qgb24gSHlwZXItViBpbiBwYXIgd2l0aCBvdGhlciBndWVzdCBvcGVyYXRpbmcgc3lzdGVtcyAo c3VjaCBhcyBMaW51eCBhbmQgV2luZG93cykuIE9uZSBvZiB0aGUga2V5IG5ldHdvcmsgZmVhdHVy ZXMgSSBhbSB0cnlpbmcgdG8gYWRkIGlzIHZSU1MgKFZpcnR1YWwgUmVjZWl2ZSBTaWRlIFNjYWxp bmcpIGludG8gb3VyIGV4aXN0aW5nIG5ldHZzYyBkcml2ZXIgb24gRnJlZUJTRC4NCg0KQ29vbCEN Cg0KPiBDdXJyZW50bHkgd2UgYWxyZWFkeSBoYXZlIE5JQyBkcml2ZXIgY2FsbGVkIG5ldHZzYyAo dW5kZXIgc3lzL2Rldi9oeXBlcnYvbmV0dnNjKSB3aGljaCBkcml2ZXMgYSBzeW50aGV0aWMgdmly dHVhbCBOSUMgZGV2aWNlIHByb3ZpZGVkIGJ5IEh5cGVyLVYuIFRoZSBkcml2ZXIgb25seSBzdXBw b3J0cyBvbmUgSC9XIG5ldHdvcmsgcXVldWUgYXMgb2YgRnJlZUJTRCAxMC4gSSBhbSByZXNwb25z aWJsZSBvZiBhZGRpbmcgYm90aCBtdWx0aXF1ZXVlIGFuZCBSU1Mgc3VwcG9ydCBpbnRvIHRoaXMg ZHJpdmVyLiBYaW4gTGkgdG9sZCBtZSB0aGF0IHlvdSBoYXZlIGRvbmUgd29ya3Mgb24gUlNTLiBJ IHdvbmRlciBpZiB5b3UgY2FuIGhlbHAgbWUgd2l0aCBzb21lIHF1ZXN0aW9ucyBJIGFtIGhhdmlu ZyBjdXJyZW50bHkgd2l0aCByZWdhcmQgdG8gdGhlc2UgdHdvIGZlYXR1cmVzLg0KDQpJIGNhbiB0 cnkhDQoNCj4gMS4gVHggbXVsdGlxdWV1ZSBzdXBwb3J0LiBJIGFtIGxvb2tpbmcgYXQgYW4gZXhp c3RpbmcgZHJpdmVyIGlmX2lnYi5jIGZvciBzb21lIGNsdWVzLiBJdCBsb29rcyB0byBtZSBJIGp1 c3QgbmVlZCB0byBzZXQgYSBwcm9wZXIgbXVsdGlxdWV1ZSBhd2FyZSBmdW5jdGlvbiB0byBpZnAt PmlmX3RyYW5zaXQuIEluc2lkZSB0aGlzIGZ1bmN0aW9uIEkgY2FuIHNlbGVjdCB3aGljaCB0eCBx dWV1ZSBJIG5lZWQgdG8gc2VuZCB0aGUgcGFja2V0LiBJcyB0aGlzIGFsbCBJIG5lZWQgdG8gZG8g Zm9yIHRoZSB0eCBxdWV1ZT8gSG93IGRvIEkgbWFrZSBzdXJlIHRoaXMgcHJvY2VkdXJlIGFsc28g aGFwcGVucyBvbiB0aGUgQ1BVIHdoYXQgdGhpcyB0eCBxdWV1ZSBiaW5kcyB0bz8gSSB3YW50IHRv IGRpc3RyaWJ1dGUgdGhlIHNlbmQgd29ya2xvYWQgb24gYWxsIGF2YWlsYWJsZSBDUFVzLiBEb2Vz IHRoZSBrZXJuZWwgYXV0b21hdGljYWxseSBzZWxlY3QgYSBwcm9wZXIgQ1BVIHRvIGNhbGwgaWZw LT5pZl90cmFuc2l0PyBPciBJIGhhdmUgdG8gZG8gdGhlIGRpc3RyaWJ1dGlvbiBieSBkcml2ZXIg aXRzZWxmIGluc2lkZSBpZnAtPmlmX3RyYW5zaXQgcm91dGluZT8NCg0KU28gdGhlIG5ldHdvcmsg c3RhY2sgZG9lc24ndCBlbmZvcmNlIGFmZmluaXR5IC0gaXQncyBqdXN0IGRvaW5nIHBhcmFsbGVs aXNtLiBUaGUgUlNTIHN0dWZmIGknbSB3b3JraW5nIHdpdGggaXMgdHJ5aW5nIHRvIGVuZm9yY2Ug YWZmaW5pdHkuDQoNClRoZSBpZl90cmFuc21pdCgpIG1ldGhvZCBmb3IgYSBnaXZlbiBtYnVmIGNh biBiZSBjYWxsZWQgb24gYW55IENQVSBhbmQgdGhleSBjYW4gYmUgY2FsbGVkIGZyb20gbXVsdGlw bGUgQ1BVcyBhdCB0aGUgc2FtZSB0aW1lLg0KDQpFYWNoIGRyaXZlciBoYXMgYSBkaWZmZXJlbnQg d2F5IG9mIG1hcHBpbmcgYW4gbWJ1ZiB0byBhIGdpdmVuIGRlc3RpbmF0aW9uIFRYIHF1ZXVlLiBU aGUgbmFpdmUgd2F5IGlzIGp1c3QgdG8gcXVldWUgdGhlIG1idWYgaW50byB0aGUgVFggcXVldWUg b2YgdGhlIGN1cnJlbnQgQ1BVLiBUaGUgIm5pY2VyIiB3YXkgaXMgdG8gaGFzaCB0aGUgbV9wa3Ro ZHIuZmxvd2lkIHZhbHVlIHRvIGNob29zZSBhIFRYIHF1ZXVlLiBUaGUgUlNTIHdheSBpcyB0byBz ZWUgaWYgbV9wa3RoZHIuZmxvd2lkIGlzIGFuIFJTUyBoYXNoIGFuZCBpZiBzbywgY2hvb3NlIHRo ZSBkZXN0aW5hdGlvbiBUWCBxdWV1ZSBiYXNlZCBvbiB0aGUgUlNTIGJ1Y2tldCBmb3IgdGhlIGdp dmVuIGhhc2guDQoNCkl0J2xsIGJlIHVwIHRvIHRoZSBoaWdoZXIgbGF5ZXJzIChpZSwgbmV0d29y ayBzdGFjayBhbmQgdXNlcmxhbmQpIHRvIGRpc3RyaWJ1dGUgdHJhbnNtaXQgd29yayB0byBhbGwg Q1BVcy4NCg0KU28geWVzLCB5b3UgaGF2ZSB0byBkbyB0aGUgZGlzdHJpYnV0aW9uIGluc2lkZSB0 aGUgZHJpdmVyIHlvdXJzZWxmIGZvciBub3cuIFlvdSBzYXcgd2hhdCBJIGRpZCBmb3IgaXhnYmUv aWdiIGZvciBSU1MgdHJhbnNtaXQuDQoNCj4gMi4gUnggbXVsdGlxdWV1ZSBzdXBwb3J0LiBUaGUg cmVjZWl2ZWQgcGFja2V0IGNvdWxkIGVuZCB1cCBvbiBkaWZmZXJlbnQgcnggcXVldWVzLiBFYWNo IHJ4IHF1ZXVlIGlzIGJpbmQgdG8gYSBDUFUuIFNvIGRlcGVuZGluZyBvbiB0aGUgd2hpY2ggcXVl dWUgdGhlIHBhY2tldCBhcnJpdmVzLCBpdCB3aWxsIGJlIHByb2Nlc3NlZCBvbiBhIGRpZmZlcmVu dCBDUFUuIE15IHF1ZXN0aW9uIGlzOiBkbyBJIG5lZWQgdG8gc2V0IGFueXRoaW5nIGluIHRoZSBy ZWNlaXZlIHBhY2tldCB0byBpbmZvcm0gdGhlIHVwcGVyIGxheWVyIHdoaWNoIHF1ZXVlIHRoZSBw YWNrZXQgd2FzIHJlY2VpdmVkPyBJZiBpdCBpcyBSU1MgZW5hYmxlZCwgZG8gSSBuZWVkIHRvIGlu Zm9ybWF0aW9uIHRoZSB1cHBlciBsYXllciBJUCBmaWVsZHMgd2VyZSBoYXNoZWQgKElQLCBUQ1As IGV0YykgdG8gc2VsZWN0IHRoZSBxdWV1ZSBzbyB0aGUgdXBwZXIgbGF5ZXIga25vd3Mgd2hpY2gg cXVldWUgdGhlIHJlc3BvbnNlIHNob3VsZCBiZSBzZW5kIHRvPw0KDQpUaGlzIGlzIHdoZXJlIGZs b3dpZCBjb21lcyBpbnRvIGl0Lg0KDQpJbml0aWFsbHksIGZsb3dpZCB3YXMganVzdCBhbiBvcGFx dWUgdG9rZW4gcHJvdmlkZWQgYnkgdGhlIE5JQyBkcml2ZXIgdG8gcmVwcmVzZW50IHdoaWNoIHF1 ZXVlIHRoZSBnaXZlbiBwYWNrZXQgY2FtZSBpbiBvbi4gSXQgd2FzIHRoZW4gcHJvcGFnYXRlZCB0 aHJvdWdob3V0IHRoZSBuZXR3b3JrIHN0YWNrIHNvIHRyYW5zbWl0IHdvdWxkIGFsc28gb2NjdXIg dXNpbmcgdGhlIHNhbWUgZmxvd2lkLiBUaGlzIHdhcyBkb25lIHB1cmVseSB0byBrZWVwIHBhY2tl dHMgaW4gYSBmbG93IGluLW9yZGVyIG9uIHRoZSBzYW1lIHF1ZXVlIHJhdGhlciB0aGFuIGhhdmlu ZyB0aGVtIGdvIG91dCB0byBkaWZmZXJlbnQgQ1BVcyBiYXNlZCBvbiB3aGljaCBDUFUgdGhlIHNj aGVkdWxlciBkZWNpZGVkIHRvIHJ1biB0aGluZ3Mgb24uDQoNClRoZSBSU1Mgd29yayBtdXRhdGVz IHRoYXQgYSBsaXR0bGUgc28gdGhlIGZsb3dpZCBfY2FuXyBiZSBvbmUgb2YgdGhlIFJTUyBoYXNo dHlwZXMuIElmIGl0IGlzLCB0aGVuIHRoZSBkcml2ZXIgc2hvdWxkIHRhZyB0aGUgbWJ1ZiB3aXRo IHRoZSBSU1MgaGFzaCB2YWx1ZSBpbiBmbG93aWQgYW5kIHNldCB0aGUgbWJ1ZiBoYXNoIHR5cGUg dG8gdGhlIHJlbGV2YW50IFJTUyBoYXNoIHR5cGUuDQoNClNvIHdoYXQgeW91IG5lZWQgdG8gZG8g aXM6DQoNCiogY3JlYXRlIG9uZSByeCBxdWV1ZSBwZXIgUlNTIGJ1Y2tldDsNCiogZ2V0IHRoZSBS U1MgYnVja2V0IC0+IENQVSBtYXBwaW5nIGZyb20gaW5fcnNzLmM7DQoqIENQVSBwaW4gdGhpbmdz IGFwcHJvcHJpYXRlbHk7DQoqIG1ha2Ugc3VyZSB0aGUgdHJhZmZmaWMgZm9yIGEgZ2l2ZW4gUlNT IGhhc2ggLT4gUlNTIGJ1Y2tldCBlbmRzIHVwIGluIHRoZSByaWdodCBSWCBxdWV1ZTsNCiogbWFr ZSBzdXJlIG1idWYgaGFzaCBmbG93aWQgc2V0LCB0aGUgaGFzaCB0eXBlIHNldCwgYW5kIHRoZSBN X0ZMT1dJRCBmbGFnIHNldC4NCg0KPiAzLiBSU1MgaGFzaC4gSSBmb3VuZCB0aGUgZmlsZSBzeXMv bmV0aW5ldC9pbl9yc3MuYyBjb250YWlucyBSU1Mgc3VwcG9ydCBhbHJlYWR5IGluIEZyZWVCU0Qg aGVhZC4gQnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gdXNlIGl0LiBJIGNoZWNrZWQgdGhlIHNhbWUg ZHJpdmVyIGlmX2lnYi5jLiBJdCBoYXMgZm9sbG93aW5nIGNvZGU6DQoNCj4gc3RhdGljIGludA0K PiBpZ2JfbXFfc3RhcnQoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBtYnVmICptKSB7DQo+ICAg Li4uDQo+ICNpZmRlZiAgUlNTDQo+ICAgICAgICAgdWludDMyX3QgICAgICAgICAgICAgICAgYnVj a2V0X2lkOw0KPiAjZW5kaWYNCj4NCj4gICAgICAgICAvKiBXaGljaCBxdWV1ZSB0byB1c2UgKi8N Cj4gICAgICAgICAvKg0KPiAgICAgICAgICAqIFdoZW4gZG9pbmcgUlNTLCBtYXAgaXQgdG8gdGhl IHNhbWUgb3V0Ym91bmQgcXVldWUNCj4gICAgICAgICAgKiBhcyB0aGUgaW5jb21pbmcgZmxvdyB3 b3VsZCBiZSBtYXBwZWQgdG8uDQo+ICAgICAgICAgICoNCj4gICAgICAgICAgKiBJZiBldmVyeXRo aW5nIGlzIHNldHVwIGNvcnJlY3RseSwgaXQgc2hvdWxkIGJlIHRoZQ0KPiAgICAgICAgICAqIHNh bWUgYnVja2V0IHRoYXQgdGhlIGN1cnJlbnQgQ1BVIHdlJ3JlIG9uIGlzLg0KPiAgICAgICAgICAq Lw0KPiAgICAgICAgIGlmICgobS0+bV9mbGFncyAmIE1fRkxPV0lEKSAhPSAwKSB7ICNpZmRlZiAg UlNTDQo+ICAgICAgICAgICAgICAgICBpZiAocnNzX2hhc2gyYnVja2V0KG0tPm1fcGt0aGRyLmZs b3dpZCwNCj4gICAgICAgICAgICAgICAgICAgICBNX0hBU0hUWVBFX0dFVChtKSwgJmJ1Y2tldF9p ZCkgPT0gMCkgew0KPiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBYWFggVE9ETzogc3BpdCBv dXQgc29tZXRoaW5nIGlmIGJ1Y2tldF9pZCA+IA0KPiBudW1fcXVldWUgcz8gKi8NCj4gICAgICAg ICAgICAgICAgICAgICAgICAgaSA9IGJ1Y2tldF9pZCAlIGFkYXB0ZXItPm51bV9xdWV1ZXM7DQo+ ICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KPiAjZW5kaWYNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgaSA9IG0tPm1fcGt0aGRyLmZsb3dpZCAlIGFkYXB0ZXItPm51bV9xdWV1ZXM7IA0KPiAu Li4NCj4gfQ0KPg0KPiBXaGF0IGV4YWN0bHkgaXMgdGhlIG1fcGt0aGRyLmZsb3dpZCBmaWVsZD8g RG9lcyBpdCBhbHJlYWR5IGNvbnRhaW4gdGhlIElQIGFuZCBUQ1AgaGFzaCBvZiB0aGUgc2VuZGlu ZyBwYWNrZXQ/IFdoZW4gd2FzIGl0IHNldCBhbmQgTV9IQVNIVFlQRV9HRVQobSkgcmV0dXJuaW5n IHByb3BlciBoYXNoIHR5cGU/DQoNClRoaXMgaXMgZm9yIHRyYW5zbWl0LiBUaGlzIGlzIGRvbmUg dG8gZW5zdXJlIHRoYXQgd2hlbiB0cmFuc21pdHRpbmcsIHRyYWZmaWMgZ29pbmcgdG8gYSBnaXZl biBSU1MgYnVja2V0IGVuZHMgdXAgaW4gdGhlIHJpZ2h0IGRlc3RpbmF0aW9uIFJTUyBidWNrZXQg LyBUWCBxdWV1ZS4gSWYgaXQncyBhbGwgc2V0dXAgY29ycmVjdGx5IGFuZCB1c2VybGFuZCBrbm93 cyBob3cgdG8gQ1BVIHBpbiB0aGluZ3MsIGl0J2xsIGJlIHNjaGVkdWxlZCB0byB0aGUgc2FtZSBD UFUgdGhlIHVzZXJsYW5kDQp0aHJlYWQocykgYXJlIHJ1bm5pbmcgb24uIElmIGl0J3Mgbm90IChl ZyBhIG5vbi1SU1MtYXdhcmUgcHJvZ3JhbSkgdGhlbiBpdCdsbCBzY2hlZHVsZSB0aGUgdHJhbnNt aXQgdG8gZ28gb3V0IG9uIHRoZSBjb3JyZWN0LCBub24tQ1BVLWxvY2FsIGRlc3RpbmF0aW9uIFRY IHF1ZXVlIHNvIHBhY2tldHMgYXJlIGtlcHQgaW4tb3JkZXIuDQoNCkkgaG9wZSB0aGF0IGhlbHBz IQ0KDQpJZiB5b3UnZCBsaWtlIHRvIGFzayBtb3JlIHF1ZXN0aW9ucyBwbGVhc2UgQ0Mgb25lIG9m IHRoZSBtYWlsaW5nIGxpc3RzIGxpa2UgZnJlZWJzZC1uZXRALiBJJ2QgbGlrZSBvdGhlcnMgdG8g c2VlIHRoZSBhbnN3ZXJzIGFuZCBwYXJ0aWNpcGF0ZSBpbiB0aGUgZGlzY3Vzc2lvbi4gOikNCg0K DQoNCi1hDQo=