From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8169 invoked by alias); 15 Mar 2016 11:10:06 -0000 Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Received: (qmail 8132 invoked by uid 89); 15 Mar 2016 11:10:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.8 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,LIKELY_SPAM_BODY,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=sk:wwwfac, sk:www.fac, adapted, 499 X-HELO: exchange.televic.com Received: from ip2.televic.com (HELO exchange.televic.com) (81.82.194.222) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 15 Mar 2016 11:09:54 +0000 Received: from ip2.televic.com (Unknown_Domain [10.0.0.179]) by exchange.televic.com (Symantec Messaging Gateway) with SMTP id 95.A1.04234.3FDE7E65; Tue, 15 Mar 2016 12:11:47 +0100 (CET) Received: from SRV-MAIL02.TELEVIC.COM (10.0.0.179) by SRV-MAIL02.TELEVIC.com (10.0.0.179) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Tue, 15 Mar 2016 12:09:51 +0100 Received: from SRV-MAIL02.TELEVIC.COM ([192.168.240.102]) by SRV-MAIL02.TELEVIC.com ([192.168.240.102]) with mapi id 15.00.1104.000; Tue, 15 Mar 2016 12:09:51 +0100 From: =?utf-8?B?TGFtYnJlY2h0IErDvHJnZW4=?= To: Grant Edwards , "ecos-discuss@ecos.sourceware.org" Date: Tue, 15 Mar 2016 11:10:00 -0000 Message-ID: <56E7ED7F.6020205@televic.com> References: <56CACBE1.6040103@televic.com> <56CC139C.4080601@televic.com> In-Reply-To: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-IsSubscribed: yes Subject: Re: [ECOS] Re: Does FreeBSD stack support multiple IP addresses? X-SW-Source: 2016-03/txt/msg00006.txt.bz2 T24gMDIvMjMvMjAxNiAwNDo1OSBQTSwgR3JhbnQgRWR3YXJkcyB3cm90ZToN Cj4gT24gMjAxNi0wMi0yMywgTGFtYnJlY2h0IErDvHJnZW4gPEouTGFtYnJl Y2h0QFRFTEVWSUMuY29tPiB3cm90ZToNCj4+IE9uIDAyLzIyLzIwMTYgMDQ6 MDUgUE0sIEdyYW50IEVkd2FyZHMgd3JvdGU6DQo+Pj4gV2hlbiBJIHRyaWVk IGl0LCB0aGUgU0lPQ0FJRkFERFIgaW9jdGwoKSBsZXQgbWUgc2V0IGJvdGgg YWRkcmVzcyBhbmQNCj4+PiBuZXRtYXNrIGluIGEgc2luZ2xlIGNhbGwuICBU aGUgImNhc2UgU0lPQ0FJRkFERFIiIGNvZGUgZmFsbHMgdGhyb3VnaA0KPj4+ IGludG8gU0lPQ1NJRk5FVE1BU0sgY29kZS4gIFRoYXQgZGlkbid0IHdvcmsg Zm9yIHlvdT8NCj4+IEluZGVlZCwgSSByZW1lbWJlciBub3cgdGhhdCBJIHNh dyB0aGF0IGluIHRoZSBjb2RlLCBidXQgdGhlbiB5b3UgaGF2ZQ0KPj4gdGhl IG5ldG1hc2sgYWNjb3JkaW5nIHRvIHRoZSBjbGFzcyBBL0IvQyBydWxlcywg YW5kIHRoYXQgaXMgbm90IHdoYXQgd2UNCj4+IHdhbnQuDQo+Pg0KPj4+PiAt IEl0IGlzIG9ubHkgcG9zc2libGUgdG8gYXNzaWduIGEgY2xhc3MgQS9CL0Mg bmV0bWFzay4gQ0lEUiBuZXRtYXNrcyBhcmUNCj4+Pj4gICAgIG5vdCBwb3Nz aWJsZS4NCj4+PiBJIHRoaW5rIHRoYXQncyBhbHdheXMgYmVlbiB0aGUgY2Fz ZSBmb3IgdGhpcyB2ZXJzaW9uIG9mIHRoZSBzdGFjaywNCj4+PiBoYXNuJ3Qg aXQ/DQo+PiBJbmRlZWQuDQo+IEkganVzdCByZS1yYW4gbXkgdGVzdHMgYW5k IHZlcmlmaWVkIGFnYWluIHRoYXQgSSdtIGFibGUgdG8gc2V0IHRoZSBJUA0K PiBhbmQgbmV0bWFzayBpbiBhIHNpbmdsZSBjYWxsIHRvIGlvY3RsKFNJT0NB SUZBRERSKS4gIEluIG15IHRlc3RzLCBJDQo+IHRyaWVkOg0KPg0KPiAgIEFk ZHJlc3MgICAgICAgICBOZXRtYXNrDQo+IC0tLS0tLS0tLS0tICAgICAgLS0t LS0tLS0tLS0tLS0NCj4gICAxMS4wLjAuMTA0ICAgICAgMjU1LjAuMC4wDQo+ ICAgMTEuMC4wLjEwNCAgICAgIDI1NS4yNTUuMC4wDQo+ICAgMTEuMC4wLjEw NCAgICAgIDI1NS4yNTUuMjU1LjANCj4gICAxMS4wLjAuMTA0ICAgICAgMjU1 LjI0MC4wLjANCkkgZG9uJ3QgdW5kZXJzdGFuZCBob3cgeW91IGNhbiBkbyB0 aG9zZSAzIGFib3ZlLiBUaGUgbmV0bWFzayBpcyANCmNhbGN1bGF0ZWQsIGFu ZCAxMS4wLjAuMTA0IGlzIGNsYXNzIEEsIHNvIHRoZSBuZXRtYXNrIGlzIDI1 NS4wLjAuMCANCihJTl9DTEFTU0FfTkVUKS4NCkl0IGlzIG9ubHkgcG9zc2li bGUgdG8gY2hhbmdlIHRoZSBuZXRtYXNrIGJ5IHVzaW5nIHRoZSBzdWJuZXRt YXNrLCBidXQgDQp0aGF0IGlzIEFORGVkIHdpdGggdGhlIG5ldG1hc2ssIHNv IHlvdSBjYW4gb25seSBwdXQgYml0cyB0byAwLCBub3QgdG8gMSENClNlZSBu ZXQvYnNkX3RjcGlwL2N1cnJlbnQvc3JjL3N5cy9uZXRpbmV0L2luLmMsIGlu X2lmaW5pdChpZnAsIGlhLCBzaW4sIA0Kc2NydWIpOg0KICAgICBpZiAoSU5f Q0xBU1NBKGkpKQ0KICAgICAgICAgaWEtPmlhX25ldG1hc2sgPSBJTl9DTEFT U0FfTkVUOw0KICAgICBlbHNlIGlmIChJTl9DTEFTU0IoaSkpDQogICAgICAg ICBpYS0+aWFfbmV0bWFzayA9IElOX0NMQVNTQl9ORVQ7DQogICAgIGVsc2UN CiAgICAgICAgIGlhLT5pYV9uZXRtYXNrID0gSU5fQ0xBU1NDX05FVDsNCiAg ICAgLyoNCiAgICAgICogVGhlIHN1Ym5ldCBtYXNrIHVzdWFsbHkgaW5jbHVk ZXMgYXQgbGVhc3QgdGhlIHN0YW5kYXJkIG5ldHdvcmsgcGFydCwNCiAgICAg ICogYnV0IG1heSBtYXkgYmUgc21hbGxlciBpbiB0aGUgY2FzZSBvZiBzdXBl cm5ldHRpbmcuDQogICAgICAqIElmIGl0IGlzIHNldCwgd2UgYmVsaWV2ZSBp dC4NCiAgICAgICovDQogICAgIGlmIChpYS0+aWFfc3VibmV0bWFzayA9PSAw KSB7DQogICAgICAgICBpYS0+aWFfc3VibmV0bWFzayA9IGlhLT5pYV9uZXRt YXNrOw0KICAgICAgICAgaWEtPmlhX3NvY2ttYXNrLnNpbl9hZGRyLnNfYWRk ciA9IGh0b25sKGlhLT5pYV9zdWJuZXRtYXNrKTsNCiAgICAgfSBlbHNlDQog ICAgICAgICBpYS0+aWFfbmV0bWFzayAmPSBpYS0+aWFfc3VibmV0bWFzazsN Cg0KDQpPSywgbm93IEkgc2VlIGl0OiB5b3UgdXNlDQogICBTSU9DQUlGQURE Ug0Kd2UgdXNlDQogICBTSU9DU0lGQUREUg0KKGZyb20gaHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2Vjb3MtZGlzY3Vzcy8yMDA1LTA4L21zZzAwMDE1Lmh0 bWwpDQoNCldoZXJlIGRpZCB5b3UgbGVhcm4gdG8gdXNlIFNJT0NBSUZBRERS Pw0KQ291bGQgeW91IHNlbmQgbWUgeW91ciBhcHBsaWNhdGlvbiBjb2RlPyAo dGhlbiBJIGNhbiBhbHNvIHRyeSBpdCkNCk91ciBjb2RlIGlzIGJlbG93Lg0K DQpCZWNhdXNlLCB3aGVuIEkgcmVhZCBTSU9DQUlGQUREUiBpdCBzdGlsbCBj YWxscyBpbl9pZmluaXQgKGJ1dCB3aXRoIGlmcmEgDQppbnN0ZWFkIG9mIGlm ciAoc2luKSBhbmQgMCBpbnN0ZWFkIG9mIDEgKHNjcnViLCBidXQgaW5faWZz Y3J1YigpIGlzIA0KY2FsbGVkIHNlcGFyYXRlbHkpIGFyZ3VtZW50cy4uLg0K U28gSSBzdGlsbCBkb24ndCB1bmRlcnN0YW5kIGl0Lg0KWW91IF9kb18gdXNl IG5ldC9ic2RfdGNwaXAgcmlnaHQ/DQpPciB5b3UgZG9uJ3QgdXNlIConQUZf SU5FVCcqPyAodGhlbiBpdCBkb2VzIG5vdCBjYWxsIGluX2lmaW5pdCgpKQ0K TWF5YmUgaW4gb3VyIGFwcGxpY2F0aW9uLCB3ZSB1c2UgU0lPQ1NJRkFERFIg d3Jvbmc/DQoNCj4gICAxMS4wLjAuMTA0ICAgICAgMjQwLjAuMC4wDQo+ICAg MTkyLjE2OC4yMjIuMTA0IDI0MC4wLjAuMA0KPiAgIDE5Mi4xNjguMjIyLjEw NCAyNTUuMC4wLjANCj4gICAxOTIuMTY4LjIyMi4xMDQgMjU1LjI0MC4wLjAN Cj4gICAxOTIuMTY4LjIyMi4xMDQgMjU1LjI1NS4wLjANCj4gICAxOTIuMTY4 LjIyMi4xMDQgMjU1LjI1NS4yNDAuMA0KPiAgIDE5Mi4xNjguMjIyLjEwNCAy NTUuMjU1LjI1NS4wDQo+ICAgMTkyLjE2OC4yMjIuMTA0IDI1NS4yNTUuMjU1 LjI0MA0KPg0KPiBJbiBhbGwgY2FzZXMsIHN1YnNlcXVlbnQgY2FsbHMgdG8g c2hvd19uZXR3b3JrX3RhYmxlcygpIHNob3dlZCB0aGUgSVANCj4gYWRkcmVz cyBhbmQgbmV0bWFzayBJIHJlcXVlc3RlZCBpbiB0aGUgaW9jdGwoKSBjYWxs IGFuZCB0aGUgY29ycmVjdA0KPiBjb3JyZXNwb25kaW5nIGJyb2FkY2FzdCBh ZGRyZXNzLg0KPg0KPiBJJ20gdXNpbmcgYW4gZUNvcyBzbmFwc2hvdCBmcm9t IDIwMTQuDQpJIHVwZGF0ZSByZWd1cmFyZWx5LCBJIGFsc28gYXBwbGllZCB0 aGUgcGF0Y2ggb2YgQmVybmQgZm9yIHJhdyBzb2NrZXRzIA0KYW5kIG90aGVy IGZpeGVzLg0KQnV0IHRoYXQgZmlsZSBic2RfdGNwaXAvY3VycmVudC9zcmMv c3lzL25ldGluZXQvaW4uYyBsYXN0IGNoYW5nZSBpbiBDVlMgDQppcyBmcm9t IDIwMDkuDQo+DQo+Pj4+ICAgICBJIGZpeGVkIGN1cnJlbnQvc3JjL3N5cy9u ZXRpbmV0L2luLmMgZm9yIGl0LCBidXQgSSBhbHNvIGFkYXB0ZWQNCj4+Pj4g ICAgIHRoZSBpb2N0bCB0byBjb21iaW5lIHNldHRpbmcgSVAgYWRkcmVzcyBh bmQgbmV0bWFzayBpbiAxIGNhbGwNCj4+Pj4gICAgIChzbyBJIGNhbm5vdCBj b21taXQgaXQgYmFjaykuIExldCBtZSBrbm93IGlmIHlvdSB3YW50IG15IGZp eC4NCj4gVGhlIGN1cnJlbnQgU0lPQ0FJRkFERFIgY29kZSB3b3JrcyBmaW5l IGZvciBtZS4NCj4NCj4+IEkgY2hhbmdlZCBhIGJpdCB0aGUgdXNlIG9mIHRo ZSBtZW1iZXJzIG9mIHRoZSAiaW5ldCItc29tZXRoaW5nDQo+PiBzdHJ1Y3Qg KGluIHRoZSBpb2N0bCBjYWxsKSB0byBhbHNvIHVzZSB0aGUgbmV0bWFzayBz dHJ1Y3QgbWVtYmVyDQo+PiB0aGF0IGlzIGFscmVhZHkgaW4gaXQuIEJlY2F1 c2Ugbm9ybWFsbHksIHdoZW4geW91IGNhbGwgaW9jdGwNCj4+IFNJT0NTSUZO RVRNQVNLIHNlcGFyYXRlbHksIHlvdSBzcGVjaWZ5IHRoZSBuZXRtYXNrIGlu IHRoZSBzYW1lDQo+PiBzdHJ1Y3QgbWVtYmVyIHdoZXJlIHlvdSBwdXQgdGhl IElQIGFkZHJlc3MgZm9yIHRoZSBTSU9DQUlGQUREUiBjYWxsLg0KPiBCdXQg dGhlIFNJT0NBSUZBRERSIGNhbGwgYXMgYSBfc2VwYXJhdGVfIHBsYWNlIHdo ZXJlIHlvdSBwdXQgdGhlDQo+IGRlc2lyZWQgbmV0bWFzaywgYW5kIEFGSUFD VCwgdGhhdCB3b3Jrcy4NCldoZXJlPyBpbi5jOjppbl9pZmluaXQoKSBhcyBJ IHNheSBhYm92ZSAoZnJvbSB0aGUgc2Vjb25kIA0Kc3dpdGNoLWNhc2UoU0lP Q0FJRkFERFIpPw0KPg0KPj4gKEkgZGlkIGEgZmFzdCBzZWFyY2ggaW4gdGhl IGxpbnV4IGNvZGUsIGJ1dCBJIGFtIG5vdCB1c2VkIHRvIHRoYXQsDQo+PiBz byBJIGRpZCBub3QgZmluZCB0aGUgIkxpbnV4IHdheSIpDQo+Pg0KPj4+IEkn bSBjb25mdXNlZDogYmFzZWQgb24gbXkgZXhwZXJpbWVudHMgYW5kIGV4YW1p bmF0aW9uIG9mIHRoZSBzb3VyY2UNCj4+PiBjb2RlLCBpdCBhbHJlYWR5IHdv cmtzIHRoYXQgd2F5Lg0KPj4+DQo+PiBXZWxsLCBpdCBpcyBib3RoLiAgSW5k ZWVkLCBhcyB5b3Ugc2F5IGFib3ZlLCAiY29kZSBmYWxscyB0aHJvdWdoDQo+ PiBpbnRvIFNJT0NTSUZORVRNQVNLIGNvZGUiLA0KPj4gYnV0IHRoZW4gaXQg c2V0cyAidGhlIG5ldG1hc2sgYWNjb3JkaW5nIHRvIHRoZSBjbGFzcyBBL0Iv QyBydWxlcyIsDQo+PiBzbyB0aGUgbmV0bWFzayBpcyBfY2FsY3VsYXRlZF8s IG5vdCBzdHJpY3RseSBfc2V0Xy4gIEkgYW0gY29tcGxldGVseQ0KPj4gc3Vy ZSBhYm91dCB0aGlzLCBJIHJlYWQgdGhhdCB3aG9sZSBjb2RlIHBhcnQuICAo QW5kIG15IGNvbGxlZ3VlcyBkaWQNCj4+IHRoZSBleHBlcmltZW50YXRpb24g dG8gc2V0IGEgMjU1LjI0OC4wLjAgbmV0bWFzayByZXN1bHRpbmcgaW4gYQ0K Pj4gMjU1LjI1NS4wLjAgbWFzayBmb3IgMTcyLjI0LjAuMCB3aGljaCBpcyBj bGFzcyBCKQ0KPiBJIGRvbid0IGtub3cgd2hhdCB0byB0ZWxsIHlvdSBvdGhl ciB0aGFuICJpdCB3b3JrcyBmaW5lIGZvcg0KPiBtZSIuIFVubGVzcyB0aGUg b3V0cHV0IGZyb20gc2hvd19uZXR3b3JrX3RhYmxlcygpIGlzIHdyb25nLi4u DQo+DQpObywgSSBkb24ndCB0aGluayBzby4NCldoZW4gSSBjaGFuZ2VkIG91 ciBTSU9DU0lGQUREUiBjb2RlLCBJIGFsc28gc2F3IHRoZSBvdXRwdXQgb2Yg DQpzaG93X25ldHdvcmtfdGFibGVzKCkgY2hhbmdpbmcuDQoNCg0KSGVyZSBz b21lIGNvZGUgaG93IHdlIGRpZCB0aGUgaW9jdGwncyAoYmVmb3JlIEkgY2hh bmdlZCBpdCkuDQoNCiAgIHNldF9pcF9hZGRyZXNzKEVUSF9JTlRFUkZBQ0Us IElQX0FERFJFU1MpOw0KICAgc2V0X25ldG1hc2tfYWRkcmVzcyhFVEhfSU5U RVJGQUNFLCBORVRNQVNLX0FERFJFU1MpOw0KICAgc2V0X2Jyb2FkY2FzdF9h ZGRyZXNzKEVUSF9JTlRFUkZBQ0UsIEJST0FEQ0FTVF9BRERSRVNTKTsNCg0K DQpUTFZfQk9PTCBzZXRfaXBfYWRkcmVzcyhjb25zdCBjaGFyICppbnRlcmZh Y2UsIGNvbnN0IGNoYXIgKmlwX2FkZHJlc3MpDQp7DQogICBpbnQgdGVzdF9z b2NrOw0KICAgc3RydWN0IHNvY2thZGRyX2luKiBhZGRyPU5VTEw7DQogICBz dHJ1Y3QgaWZyZXEgaWZyOw0KDQogICB0ZXN0X3NvY2sgPSBzb2NrZXQoIEFG X0lORVQsIFNPQ0tfREdSQU0sIDAgKTsNCiAgIC8vVGhpcyBjYW4gYWxzbyBi ZSBhbm90aGVyIHR5cGUgb2Ygc29ja2V0LCBzZWUgDQpodHRwOi8vZWNvcy5z b3VyY2V3YXJlLm9yZy9tbC9lY29zLWRpc2N1c3MvMjAwNy0xMC9tc2cwMDAx Mi5odG1sDQogICBpZiggdGVzdF9zb2NrID09IC0xICkNCiAgIHsNCiAgICAg ZGVidWdfcHJpbnRmKCJDYW5ub3Qgb2J0YWluIElQIHNvY2tcbiIpOw0KICAg ICByZXR1cm4gVExWX0ZBTFNFOw0KICAgfQ0KDQogICBtZW1zZXQoJmlmciww LHNpemVvZiggc3RydWN0IGlmcmVxICkgKTsNCiAgIHN0cm5jcHkoaWZyLmlm cl9uYW1lLGludGVyZmFjZSxJRk5BTVNJWik7DQogICAvL0RlbGV0ZSBvbGQg SVAgYWRkcmVzcywgZWxzZSB0aGVyZSB3aWxsIGJlIDIgSVAgYWRkcmVzc2Vz IQ0KICAgaWYoIGlvY3RsKCB0ZXN0X3NvY2ssIFNJT0NHSUZBRERSLCAmaWZy ICkgPT0gLTEgKQ0KICAgew0KICAgICBkZWJ1Z19wcmludGYoIkNhbm5vdCBv YnRhaW4gSVAgYWRkcmVzcyBvZiAlczogDQolc1xuIixpbnRlcmZhY2Usc3Ry ZXJyb3IoZXJybm8pKTsNCiAgIH0NCiAgIGVsc2UNCiAgIHsNCiAgICAgaWYo IGlvY3RsKCB0ZXN0X3NvY2ssIFNJT0NESUZBRERSLCAmaWZyICkgIT0gMCAp DQogICAgIHsNCiAgICAgICBkZWJ1Z19wcmludGYoIkNhbm5vdCBzdXBwcmVz cyBvbGQgSVAgZm9yICVzOiANCiVzXG4iLGludGVyZmFjZSxzdHJlcnJvcihl cnJubykpOw0KICAgICB9DQogICB9DQoNCiAgIG1lbXNldCggJmlmciwgMCwg c2l6ZW9mKCBzdHJ1Y3QgaWZyZXEgKSApOw0KICAgYWRkcj0gKHN0cnVjdCBz b2NrYWRkcl9pbiAqKSYoaWZyLmlmcl9hZGRyKTsNCiAgIG1lbXNldChhZGRy LCAwLCBzaXplb2YoIHN0cnVjdCBzb2NrYWRkcl9pbikgKTsNCiAgIGFkZHIt PnNpbl9sZW49c2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbik7DQogICBhZGRy LT5zaW5fZmFtaWx5PUFGX0lORVQ7DQogICBhZGRyLT5zaW5fYWRkci5zX2Fk ZHI9aW5ldF9hZGRyKGlwX2FkZHJlc3MpOw0KICAgc3RybmNweShpZnIuaWZy X25hbWUsaW50ZXJmYWNlLElGTkFNU0laKTsNCg0KICAgaWYoIGlvY3RsKCB0 ZXN0X3NvY2ssIFNJT0NTSUZBRERSLCAmaWZyICkgIT0gMCApDQogICB7DQog ICAgIGRlYnVnX3ByaW50ZigiQ2Fubm90IHNldCBJUCBhZGRyZXNzIG9mICVz IHRvICVzOiANCiVzXG4iLGludGVyZmFjZSxpcF9hZGRyZXNzLHN0cmVycm9y KGVycm5vKSk7DQogICAgIGNsb3NlKHRlc3Rfc29jayk7DQogICAgIHJldHVy biBUTFZfRkFMU0U7Ow0KICAgfQ0KICAgZWxzZQ0KICAgew0KICAgICBjbG9z ZSh0ZXN0X3NvY2spOw0KICAgICByZXR1cm4gVExWX1RSVUU7DQogICB9DQp9 DQoNClRMVl9CT09MIHNldF9uZXRtYXNrX2FkZHJlc3MoY29uc3QgY2hhciog aW50ZXJmYWNlLGNvbnN0IGNoYXIgKiBhZGRyZXNzKQ0Kew0KICBpbnQgdGVz dF9zb2NrPTA7DQogIHN0cnVjdCBzb2NrYWRkcl9pbiogYWRkcj1OVUxMOw0K ICBzdHJ1Y3Qgc29ja2FkZHIgKiBhZGRycD1OVUxMOw0KICBzdHJ1Y3QgaWZy ZXEgaWZyOw0KDQogIG1lbXNldCggJmlmciwgMCwgc2l6ZW9mKCBzdHJ1Y3Qg aWZyZXEgKSApOw0KICBhZGRycCA9IChzdHJ1Y3Qgc29ja2FkZHIgKikmKGlm ci5pZnJfYWRkcik7DQogIGFkZHI9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilh ZGRycDsNCiAgbWVtc2V0KGFkZHIsIDAsIHNpemVvZiggc3RydWN0IHNvY2th ZGRyKSApOw0KICBhZGRyLT5zaW5fbGVuPXNpemVvZihzdHJ1Y3Qgc29ja2Fk ZHJfaW4pOw0KICBhZGRyLT5zaW5fZmFtaWx5PUFGX0lORVQ7DQogIGFkZHIt PnNpbl9hZGRyLnNfYWRkcj1pbmV0X2FkZHIoYWRkcmVzcyk7DQoNCiAgdGVz dF9zb2NrID0gc29ja2V0KCBBRl9JTkVULCBTT0NLX0RHUkFNLCAwICk7DQog IGlmKCB0ZXN0X3NvY2sgPT0gLTEgKQ0KICB7DQogICBkaWFnX3ByaW50Zigi Q2Fubm90IG9idGFpbiBpcCBzb2NrZXQ6JXMiLHN0cmVycm9yKGVycm5vKSk7 DQogICByZXR1cm4gVExWX0ZBTFNFOw0KICB9DQoNCiAgc3RybmNweSggaWZy Lmlmcl9uYW1lLGludGVyZmFjZSxJRk5BTVNJWik7DQogIGlmKCBpb2N0bCgg dGVzdF9zb2NrLCBTSU9DU0lGTkVUTUFTSywgJmlmciApID09IC0xICkNCiAg ew0KICAgZGlhZ19wcmludGYoIkltcG9zc2libGUgdG8gc2V0IG5ldG1hc2sg b2YgaW50ZXJmYWNlICclcycgdG8gJyVzJzogDQonJXMnIixpbnRlcmZhY2Us YWRkcmVzcyxzdHJlcnJvcihlcnJubykpOw0KICAgY2xvc2UodGVzdF9zb2Nr KTsNCiAgIHJldHVybiBUTFZfRkFMU0U7DQogIH0NCmNsb3NlKHRlc3Rfc29j ayk7DQogIHJldHVybiBUTFZfVFJVRTsNCn0NCg0KVExWX0JPT0wgc2V0X2Jy b2FkY2FzdF9hZGRyZXNzKGNvbnN0IGNoYXIqIGludGVyZmFjZSxjb25zdCBj aGFyICogYWRkcmVzcykNCnsNCiAgaW50IHRlc3Rfc29jaz0wOw0KICBzdHJ1 Y3Qgc29ja2FkZHJfaW4qIGFkZHI9TlVMTDsNCiAgc3RydWN0IHNvY2thZGRy ICogYWRkcnA9TlVMTDsNCiAgc3RydWN0IGlmcmVxIGlmcjsNCg0KICBtZW1z ZXQoICZpZnIsIDAsIHNpemVvZiggc3RydWN0IGlmcmVxICkgKTsNCiAgYWRk cnAgPSAoc3RydWN0IHNvY2thZGRyICopJihpZnIuaWZyX2FkZHIpOw0KICBh ZGRyPSAoc3RydWN0IHNvY2thZGRyX2luICopYWRkcnA7DQogIG1lbXNldChh ZGRyLCAwLCBzaXplb2YoIHN0cnVjdCBzb2NrYWRkcikgKTsNCiAgYWRkci0+ c2luX2xlbj1zaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsNCiAgYWRkci0+ c2luX2ZhbWlseT1BRl9JTkVUOw0KICBhZGRyLT5zaW5fYWRkci5zX2FkZHI9 aW5ldF9hZGRyKGFkZHJlc3MpOw0KDQogIHRlc3Rfc29jayA9IHNvY2tldCgg QUZfSU5FVCwgU09DS19ER1JBTSwgMCApOw0KICBpZiggdGVzdF9zb2NrID09 IC0xICkNCiAgew0KICAgZGlhZ19wcmludGYoIkNhbm5vdCBvYnRhaW4gaXAg c29ja2V0OiVzIixzdHJlcnJvcihlcnJubykpOw0KICAgcmV0dXJuIFRMVl9G QUxTRTsNCiAgfQ0KDQogIHN0cm5jcHkoIGlmci5pZnJfbmFtZSxpbnRlcmZh Y2UsSUZOQU1TSVopOw0KICBpZiggaW9jdGwoIHRlc3Rfc29jaywgU0lPQ1NJ RkJSREFERFIsICZpZnIgKSA9PSAtMSApDQogIHsNCiAgIGRpYWdfcHJpbnRm KCJJbXBvc3NpYmxlIHRvIHNldCBicm9hZGNhc3Qgb2YgaW50ZXJmYWNlICcl cycgdG8gJyVzJzogDQonJXMnIixpbnRlcmZhY2UsYWRkcmVzcyxzdHJlcnJv cihlcnJubykpOw0KICAgY2xvc2UodGVzdF9zb2NrKTsNCiAgIHJldHVybiBU TFZfRkFMU0U7DQogIH0NCmNsb3NlKHRlc3Rfc29jayk7DQogIHJldHVybiBU TFZfVFJVRTsNCn0NCg0KDQpLaW5kIHJlZ2FyZHMsDQpKw7xyZ2VuDQoNCi0t IA0KSsO8cmdlbiBMYW1icmVjaHQNClImRCBBc3NvY2lhdGUNCk1vYmlsZTog KzMyIDQ5OSA2NDQgNTMxDQpUd2l0dGVyOiBKR1JMYW1icmVjaHQNClRlbDog KzMyICgwKTUxIDMwMzA0NSAgICBGYXg6ICszMiAoMCk1MSAzMTA2NzANCmh0 dHA6Ly93d3cudGVsZXZpYy1yYWlsLmNvbQ0KaHR0cHM6Ly93d3cuZmFjZWJv b2suY29tL1RlbGV2aWNSYWlsDQpUZWxldmljIFJhaWwgTlYgLSBMZW8gQmVr YWVydGxhYW4gMSAtIDg4NzAgSXplZ2VtIC0gQmVsZ2l1bQ0KQ29tcGFueSBu dW1iZXIgMDgyNS41MzkuNTgxIC0gUlBSIEtvcnRyaWprDQoNClRoaXMgZWxl Y3Ryb25pYyB0cmFuc21pc3Npb24gaXMgaW50ZW5kZWQgZXhjbHVzaXZlbHkg Zm9yIHRoZSBwZXJzb24gb3IgZW50aXR5DQp0byB3aG9tIGl0IGlzIGFkZHJl c3NlZCBhbmQgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIGFuZC9vciBwcml2 aWxlZ2VkDQptYXRlcmlhbC4gQW55IGRpc2Nsb3N1cmUsIGNvcHlpbmcsIGRp c3RyaWJ1dGlvbiBvciBvdGhlciBhY3Rpb24gYmFzZWQgdXBvbiB0aGUNCmlu Zm9ybWF0aW9uIGJ5IHBlcnNvbnMgb3IgZW50aXRpZXMgb3RoZXIgdGhhbiB0 aGUgaW50ZW5kZWQgcmVjaXBpZW50IGlzDQpwcm9oaWJpdGVkLiBBbGwgZS1t YWlsIGNvcnJlc3BvbmRlbmNlIGZyb20gVGVsZXZpYyBSYWlsIE5WIGlzIG9u bHkgaW50ZW5kZWQgZm9yDQppbmZvcm1hdGlvbiBwdXJwb3NlcyBhbmQgY2Fu IG5vdCByZXN1bHQgaW4gY29udHJhY3R1YWwgb2JsaWdhdGlvbnMuIENvbW1p dG1lbnRzDQp1bmRlciBUZWxldmljIFJhaWwgTlYgY2FuIG9ubHkgb2NjdXIg dGhyb3VnaCByZWd1bGFyIGV4Y2hhbmdlIG9mIGxldHRlcnMsDQpzaWduZWQg YnkgYXV0aG9yaXplZCBwZXJzb25zIGluIGFjY29yZGFuY2Ugd2l0aCBwdWJs aWNhdGlvbiBpbiB0aGUgQmVsZ2lhbg0KT2ZmaWNpYWwgR2F6ZXR0ZS4NCg==