From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/15103 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: musl mathematical functions Date: Wed, 8 Jan 2020 15:28:54 +0000 Message-ID: <5cf6c0cf-6988-daac-8b74-43bb0e2c625f@arm.com> References: Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="180309"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 Cc: nd , "jens.gustedt@inria.fr" , "Vincent.Lefevre@ens-lyon.fr" , "musl@lists.openwall.com" To: paul zimmermann Original-X-From: musl-return-15119-gllmg-musl=m.gmane.org@lists.openwall.com Wed Jan 08 16:34:07 2020 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1ipDKr-000Jbf-Jl for gllmg-musl@m.gmane.org; Wed, 08 Jan 2020 16:33:29 +0100 Original-Received: (qmail 21996 invoked by uid 550); 8 Jan 2020 15:33:26 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 20207 invoked from network); 8 Jan 2020 15:29:15 -0000 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=QBxoZIOf6FD8k2bPuQSA61uliHhUU4CuuM21mIk/NO0=; b=wMhj8RrWzBUO0GJw+IbOA5ZoHBp6JAOnH+AJhHicAj4MI/aFFOZ60pjXNAxGT6djMK3p48mh8jMBg/cgrb/wIcWnM79n1dkB/smK/PMRZ1hFFL03SkBp8W1J8i0Ufr+QCJ207pGyZ50HikKmlhAZlo4vM7kmdCloSyJjHuRv0K4= Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; lists.openwall.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;lists.openwall.com; dmarc=bestguesspass 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; X-CheckRecipientChecked: true X-CR-MTA-CID: 5baf3d974b94b32f X-CR-MTA-TID: 64aa7808 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=npjanvd5KkMW89zynSquMmSWxtB6uK7snnr0hALMJAdTWPO3ttY21QQ9YjQBJbDSn0YOkOnZU/qDQocpySDpDxDADpCzthVXvURjrJG5iukZv6mK9UNrevC4I5p9KIa2tKwmzDyn8WJhGnJj0rml0xamxXtJdFyTc3hofPx/j7sqBhuzw6HN98jXOhC/fix+eFM3TVQBkpJanaM9rRagD40Ylhf5gQuBQGmia2Q9I2I2lX+gJ19SY3yYVv5txoXg4z+ymTXB7PmiFndqcXpj2Hq2EwMKS5A1Wv8OwsDI9x48yoMML3cEqTIjxpK25y/8okvo7uBDgL333C0jgsTPCw== 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=QBxoZIOf6FD8k2bPuQSA61uliHhUU4CuuM21mIk/NO0=; b=jWSoztu8Pzi5S86CoLKuHBRHDrN25/qiGNKphk3knhe+5dRuP2n1cZP05L9qUk1Z6IR00POlfyATUVGSO9FaY1MICteoNgHfSFtTuc/vuVj42pCR+RxVqhGaGdmqmunPmf8uUovZZNK+JMZX7/GFMjUTTlCmC0aD/qhR1G7dTEjuoq8mUQqR9DHuPWSVqsIsBW0gAAp5/OOQepd5C5Lavr8mrr5eNoC8pX2L3rjugS+7uaDbRqrZq6+Ve1QnD3jrkRho7GeGTa7j62D0dRKOi24teCkztaiesUg+dunaCAo7oAyhZ44rLKV0iq/sunAmH+/y1qtLJkWIsyd0eCiEaQ== 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=QBxoZIOf6FD8k2bPuQSA61uliHhUU4CuuM21mIk/NO0=; b=wMhj8RrWzBUO0GJw+IbOA5ZoHBp6JAOnH+AJhHicAj4MI/aFFOZ60pjXNAxGT6djMK3p48mh8jMBg/cgrb/wIcWnM79n1dkB/smK/PMRZ1hFFL03SkBp8W1J8i0Ufr+QCJ207pGyZ50HikKmlhAZlo4vM7kmdCloSyJjHuRv0K4= Thread-Topic: musl mathematical functions Thread-Index: AQHVxieg5o3AZI5d3UWouuHlhctYy6fg5FoA In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US x-originating-ip: [217.140.106.55] x-clientproxiedby: LO2P265CA0306.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a5::30) To DB7PR08MB3292.eurprd08.prod.outlook.com (2603:10a6:5:1f::30) Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 6716f0db-537d-4548-54d1-08d7944f7d61 X-MS-TrafficTypeDiagnostic: DB7PR08MB3770:|AM6PR08MB2952: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: True x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; x-forefront-prvs: 02760F0D1C X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4636009)(396003)(376002)(346002)(39860400002)(366004)(136003)(189003)(199004)(66446008)(64756008)(5660300002)(8936002)(316002)(31686004)(26005)(36756003)(81166006)(81156014)(44832011)(8676002)(478600001)(6916009)(2906002)(6486002)(16526019)(2616005)(186003)(86362001)(52116002)(956004)(7116003)(53546011)(31696002)(66556008)(54906003)(4326008)(66476007)(66946007)(3480700007)(16576012)(71200400001)(966005);DIR:OUT;SFP:1101;SCL:1;SRVR:DB7PR08MB3770;H:DB7PR08MB3292.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-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: PPLQ0f+zEHs3pJtMhklMnSeQQYuCvwACaA/IX+7WrhIUuLcIoi9fs18RBveCa8rch0Z02rDs48OrZg4y5+ARpXO7VL3AttdeQTB5lzrYF9DCHx7WBRAS60/pmRK4v7Hhke5RsxpfqiLGBJTNpAjVSKUdXiBuRQcxnCglIhVredbJD+ex+Xtz2enF9BMzGIVmt/O7enW2xau30aSxKoNKfQGR2PCfh7/EuYK75v0hyqx4269OzAzUB3EcNr7HGI0O8oe3uCAtmzC6k15vkPl8YwK9nh1LaZ1R2/0gLzp+bSEVl2eWnp9Q6JUzzMn4VCg4lJc0we9S3WTrWvN6PFZgUHSMFUejXY0SaxQTmkazioQUO974MkEBjPyRU+jgDe1Dai8/5H9gOUpKYt5fMV3vrZjZQ2C0333fGFXgp4o2t1InzgPl8NVpx/ggt/KQMT2cLYzrOKq84jrURHKBJYZ3JC8ueMHxhjFxKELdXTi1Lydun2EgOGxxCZwWJex+YZVCKjTNyr01BrmbFQjE3Oa4DA== x-ms-exchange-transport-forked: True Content-ID: <47D7BBC69C1A6948A6A78CDCC6679DF3@eurprd08.prod.outlook.com> X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3770 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123;IPV:CAL;SCL:-1;CTRY:IE;EFV:NLI;SFV:NSPM;SFS:(10009020)(4636009)(376002)(39860400002)(136003)(396003)(346002)(199004)(189003)(31696002)(36756003)(70586007)(86362001)(54906003)(956004)(16576012)(81166006)(316002)(81156014)(8936002)(36906005)(26826003)(2616005)(966005)(6486002)(70206006)(8676002)(356004)(478600001)(186003)(53546011)(16526019)(6862004)(4326008)(26005)(31686004)(2906002)(7116003)(3480700007)(5660300002)(336012);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR08MB2952;H:64aa7808-outbound-1.mta.getcheckrecipient.com;FPR:;SPF:Pass;LANG:en;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;A:1;MX:1; X-MS-Office365-Filtering-Correlation-Id-Prvs: b98712a4-427c-4a75-151d-08d7944f787a X-Forefront-PRVS: 02760F0D1C X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F43kz1dNKCPGUO1Uy76LdIBjlkeIq9gkD802ehWDQmEkFEW/EfwknDUSj8CCxClFIUSMjYfezRahhl3ehnH/uaS8WbmRHJVL7v/zSTO0Pgc2CtUt/X9iV3fOMGQ8hJKTGgUG5ATujFaP+TTsUVLtRBPAO3COKb/DnmQPDsfJtgBFul3VoSO/djdbAXGx8qlXvUt4BD/MW/u3EkHumrmVBIQw1ECwIE1Ez6uKOIdU3jih5URsGoOrBMa98wh8Ojfg3fWEAcejs9WHXn75pH/O1UwdTuAQqGgUMbE8Olp9Hqb9FH/3wXz/F3iGs74npxUiSMT0UCH+VEbwZlnKry18dOL/AN5oD4x0V8YY6Hm2eTYi6bCuwAr95ho+tdbg8zU6zF+kw6Kru3h0zFilQXdvE76cjWOwYLlrhDyIcIJLYr3wXzmQ5IBg0kup2MlbX7ww5HK5Gi/GxPH8m4CaZLQ2kG2TvR2C4ka6d/7nTyr/QL3bQwW+v3HqyBgpj1cdmfM9jwEy2EmKJZjl4G9tEePcqw== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jan 2020 15:29:02.1951 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6716f0db-537d-4548-54d1-08d7944f7d61 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-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB2952 Xref: news.gmane.org gmane.linux.lib.musl.general:15103 Archived-At: T24gMDgvMDEvMjAyMCAxMzoyOSwgcGF1bCB6aW1tZXJtYW5uIHdyb3RlOg0KPiAgICAgICAgRGVh ciBTemFib2xjcywNCj4gDQo+IG15IGNvbGxlYWd1ZSBKZW5zIEd1c3RlZHQgdG9sZCBtZSB0aGF0 IHlvdSBsZWFkIHRoZSBkZXZlbG9wbWVudCBvZiBtYXRoZW1hdGljYWwNCj4gZnVuY3Rpb25zIGlu IG11c2wuDQo+IA0KPiBJIGp1c3QgdHJpZWQgb3VyIG1wY2hlY2sgdG9vbCAoaHR0cHM6Ly9nZm9y Z2UuaW5yaWEuZnIvcHJvamVjdHMvbXBjaGVjaykgd2hpY2gNCj4gY2hlY2tzIHRoZSBhY2N1cmFj eSBvZiBtYXRoZW1hdGljYWwgZnVuY3Rpb25zLCBieSBjb21wYXJpbmcgdGhlbSB0byBNUEZSICh3 aGljaA0KPiBpcyBzdXBwb3NlZCB0byBnaXZlIGNvcnJlY3Qgcm91bmRpbmcpLg0KDQp0aGFua3Mh DQoNCkNDaW5nIHRoZSBtdXNsIGxpc3QgYXMgaXQgc2hvdWxkIGJlIGRpc2N1c3NlZCB0aGVyZS4N Cg0KPiANCj4gRm9yIHRoZSBHTlUgbGliYyBoZXJlIGlzIHdoYXQgSSBnZXQgZm9yIGV4YW1wbGUg Zm9yIGRvdWJsZSBwcmVjaXNpb24NCj4gKHdpdGggMTAwMDAgcmFuZG9tIGlucHV0cyBwZXIgZnVu Y3Rpb24pOg0KPiANCj4gemltbWVybWFAdG9tYXRlOn4vc3ZuL21wY2hlY2skIC4vbXBjaGVjay1k b3VibGUgLS1zZWVkPTU4ODQ5Mw0KPiBHQ0M6IDkuMi4xIDIwMjAwMTA0DQo+IEdOVSBsaWJjIHZl cnNpb246IDIuMjkNCj4gR05VIGxpYmMgcmVsZWFzZTogc3RhYmxlDQo+IE1QRlIgMy4xLjYNCj4g Li4uDQo+IE1heC4gZXJyb3JzIDogMy41OSAobmVhcmVzdCksIDUuODAgKGRpcmVjdGVkKSBbc2Vl ZD01ODg0OTNdDQo+IEluY29ycmVjdCByb3VuZGluZ3M6IDQ4MzA4NCAoYmFzaWMgMCkNCj4gV3Jv bmcgc2lkZSBvZiBkaXJlY3RlZCByb3VuZGluZzogMjQ1MDI5DQo+IFdyb25nIG1vbm90b25pY2l0 eTogMzE3MDENCj4gV3JvbmcgZXJybm86IDk5MiAoc3VwcHJlc3NlZCA5OTIpDQo+IFdyb25nIGlu ZXhhY3Q6IDExIChzdXBwcmVzc2VkIDExKQ0KPiBXcm9uZyB1bmRlcmZsb3c6IDQyIChzdXBwcmVz c2VkIDQyKQ0KPiANCj4gVGhpcyBtZWFucyAoYW1vbmcgb3RoZXIgdGhpbmdzKSB0aGF0IHRoZSBt YXhpbWFsIGVycm9yIGZvdW5kIG9uIHRob3NlIHJhbmRvbQ0KPiBpbnB1dHMgaXMgMy41OSB1bHBz IGZvciByb3VuZGluZyB0byBuZWFyZXN0LCBhbmQgNS44MCB1bHBzIGZvciBkaXJlY3RlZA0KPiBy b3VuZGluZy4NCj4gDQo+IFdpdGggbXVzbCAocmV2aXNpb24gNzBkODA2MCkgSSBnZXQ6DQo+IA0K PiB6aW1tZXJtYUB0b21hdGU6fi9zdm4vbXBjaGVjayQgLi9tcGNoZWNrLWRvdWJsZSAtLXNlZWQ9 NTg4NDkzDQo+IEdDQzogOS4yLjEgMjAyMDAxMDQNCj4gTVBGUiAzLjEuNg0KPiAuLi4NCj4gTWF4 LiBlcnJvcnMgOiA1LjMwIChuZWFyZXN0KSwgMS40NGUxOSAoZGlyZWN0ZWQpIFtzZWVkPTU4ODQ5 M10NCj4gSW5jb3JyZWN0IHJvdW5kaW5nczogNDA3NDIyIChiYXNpYyAwKQ0KPiBXcm9uZyBzaWRl IG9mIGRpcmVjdGVkIHJvdW5kaW5nOiAxMzA0OTYNCj4gV3JvbmcgZXJybm86IDEzMTQxMSAoc3Vw cHJlc3NlZCAxMDkwMSkNCj4gV3JvbmcgaW5leGFjdDogMTI1IChzdXBwcmVzc2VkIDEyNSkNCj4g V3Jvbmcgb3ZlcmZsb3c6IDE2IChzdXBwcmVzc2VkIDApDQo+IFdyb25nIHVuZGVyZmxvdzogMTc4 IChzdXBwcmVzc2VkIDEwOCkNCj4gDQo+IFdlIGdldCBhIHNsaWdodGx5IGxhcmdlciBtYXhpbWFs IGVycm9yIGZvciByb3VuZGluZyB0byBuZWFyZXN0ICg1LjMwIGluc3RlYWQNCj4gb2YgMy41OSBm b3IgdGhlIEdOVSBsaWJjKSBidXQgYSBodWdlIG1heGltYWwgZXJyb3IgZm9yIGRpcmVjdGVkIHJv dW5kaW5nLg0KPiANCj4gVGhlIDEuNDRlMTkgZXJyb3IgaXMgb2J0YWluZWQgZm9yIHRoZSAic2lu IiBmdW5jdGlvbiwgd2l0aCBpbnB1dA0KPiB4PTQuMjcyNTY2MDA4ODgyMTE4OWUyIGFuZCByb3Vu ZGluZyB1cHdhcmRzLg0KDQp5ZXMsIHRoaXMgaXMgYSBrbm93biBpc3N1ZSAodGhlIG1hdGggdGVz dHMgaSB1c2Ugd2l0aA0KbXVzbCBmaW5kcyB0aGlzLCBidXQgaXQncyBzdXBwcmVzc2VkIGZvciBu b3cNCmh0dHBzOi8vcmVwby5vci5jei93L2xpYmMtdGVzdC5naXQNCmh0dHBzOi8vZ2l0aHViLmNv bS9BUk0tc29mdHdhcmUvb3B0aW1pemVkLXJvdXRpbmVzDQopDQoNCnRoZXNlIGlzc3VlcyBjb21l IGZyb20gZmRsaWJtIHZpYSBmcmVlYnNkIHdoaWNoDQpkb2VzIG5vdCBzdXBwb3J0IG5vbi1uZWFy ZXN0IHJvdW5kaW5nIGluIHRoZSB0cmlnDQphcmcgcmVkdWN0aW9uIGNvZGUgKGFuZCBwb3NzaWJs eSBpbiBvdGhlciBwbGFjZXMpLg0KaHR0cDovL2dpdC5tdXNsLWxpYmMub3JnL2NnaXQvbXVzbC90 cmVlL3NyYy9tYXRoL19fcmVtX3BpbzIuYyNuMTIwDQoobm90ZSB0aGUgY29tbWVudDogYXNzdW1l IHJvdW5kLXRvLW5lYXJlc3QpDQoNCmkgaGF2ZW4ndCBmaXhlZCB0aGlzIGJlY2F1c2UgaSBkb24n dCBoYXZlIGEgZ29vZA0Kc29sdXRpb246IHRoZSBrZXkgYnJva2VuIHBhcnQgaXMgc29tZXRoaW5n IGxpa2UNCg0KICB5ID0gcm91bmQoeC9wKQ0KICB6IC09IHkqcA0KICAvKiBpLmUuIHogPSB4IG1v ZCBwLCBhbmQgeiBpbiBbLXAvMixwLzJdICovDQogIHJldHVybiBwb2x5KHopDQoNCnRoZSBwcm9i bGVtIGlzIHRoYXQgdGhlIGZhc3QgYW5kIHBvcnRhYmxlIHdheSB0bw0KZG8gcm91bmQgcmVsaWVz IG9uIHRoZSBjdXJyZW50IHJvdW5kaW5nIG1vZGUgYW5kDQp6IGNhbiBlbmQgdXAgaW4gdGhlIHJh bmdlIFstcCxwXSB3aXRoIGRpcmVjdGVkDQpyb3VuZGluZywgYnV0IHRoZSBwb2x5IGFwcHJveCBv bmx5IHdvcmtzIG9uDQpbLXAvMixwLzJdLg0KDQpzb21lIHRhcmdldHMgaGF2ZSBzaW5nbGUgaW5z dHJ1Y3Rpb24gcm91bmQgdGhhdCdzDQppbmRlcGVuZGVudCBvZiB0aGUgcm91bmRpbmcgbW9kZSwg YnV0IG1vc3QgdGFyZ2V0cw0KZG9uJ3QuDQoNCmNoYW5naW5nIGZlbnYgaXMgc2xvd2VyIHRoYW4g anVzdCBjYWxsaW5nIHJvdW5kIG9yDQpyaW50LCBhbmQgZG9pbmcgYW4gZXh0ZXJuYWwgY2FsbCBp cyBhbHJlYWR5IHRvbw0KZXhwZW5zaXZlLg0KDQpvbmUgY2FuIGRvIHRyaWNrcyBzdWNoIHRoYXQg cm91bmRpbmcgbW9kZSBoYXMNCmxlc3MgZWZmZWN0IG9uIGFyZyByZWR1Y3Rpb24sIGUuZy4gYWRk DQoNCiAgaWYgKHogPiBwLzIgfHwgeiA8IC1wLzIpIC8qIGRvIHNvbWV0aGluZyAqLw0KDQpvciBp ZiBicmFuY2hlcyBhcmUgdG9vIGV4cGVuc2l2ZSwgaW5zdGVhZCBvZg0KDQogIFNoaWZ0ID0gMHgx LjhwNTINCiAgeSA9IHgvcCArIFNoaWZ0IC0gU2hpZnQNCg0KaW1wbGVtZW50IHJvdW5kIGFzIGUu Zy4NCg0KIFNoaWZ0ID0gMHgxODAwMDAwMDAwLjhwMA0KIHQgPSB4L3AgKyBTaGlmdA0KIHRiaXRz ID0gcmVwcmVzZW50YXRpb25fYXNfdWludDY0KHQpDQogeSA9IChkb3VibGUpKGludDMyX3QpKHRi aXRzID4+IDE2KQ0KDQp0aGVuIHogaXMgaW4gWy1wLzIgLSBwLzJeLTE2LCBwLzIgKyBwLzJeMTZd DQppbiBhbGwgcm91bmRpbmcgbW9kZXMgYW5kIHRoZSBwb2x5bm9taWFsIGNhbg0KYmUgbWFkZSB0 byB3b3JrIG9uIHRoYXQgaW50ZXJ2YWwuDQoNCnRoZSBkb3duc2lkZSBpcyB0aGF0IHRoZXNlIHRy aWNrcyBtYWtlIHRoZQ0KY29kZSBzbG93ZXIgYW5kIG1vcmUgaW1wb3J0YW50bHkgYWxsIHN1Y2gN CnRyaWNrcyBicmVhayBzeW1tZXRyeTogeCBhbmQgLXggY2FuIGhhdmUNCmRpZmZlcmVudCBhcmcg cmVkdWN0aW9uIHJlc3VsdC4NCg0Kbm93IGkgbGVhbiB0b3dhcmRzIGZpeGluZyBpdCBpbiBhIHdh eSB0aGF0J3MNCmxlYXN0IGV4cGVuc2l2ZSBpbiB0aGUgbmVhcmVzdC1yb3VuZGluZyBjYXNlDQoo YXQgbGVhc3QgZm9yIHx4fCA8IDEwMCwgYmV5b25kIHRoYXQgcGVyZm9ybWFuY2UNCmRvZXMgbm90 IG1hdHRlciBtdWNoKSBhbmQgb25seSBjYXJlIGFib3V0DQpzeW1tZXRyeSBpbiBuZWFyZXN0IHJv dW5kaW5nIG1vZGUsIHRoaXMgc2hvdWxkDQpiZSBkb2FibGUgYnkgYWRkaW5nIGEgZmV3IGlmcyBp biB0aGUgY3JpdGljYWwNCnBhdGggdGhhdCBuZXZlciB0cmlnZ2VyIHdpdGggbmVhcmVzdCByb3Vu ZGluZy4NCg0KYnV0IG90aGVyIGlkZWFzIGFyZSB3ZWxjb21lLg0KDQp0aGFua3MuDQoNCj4gDQo+ IEluZGVlZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvZ3JhbToNCj4gDQo+ICNpbmNsdWRlIDxzdGRp by5oPg0KPiAjaW5jbHVkZSA8c3RkbGliLmg+DQo+ICNpbmNsdWRlIDxtYXRoLmg+DQo+ICNpbmNs dWRlIDxmZW52Lmg+DQo+IA0KPiBpbnQNCj4gbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkN Cj4gew0KPiAgIGRvdWJsZSB4ID0gYXRvZiAoYXJndlsxXSksIHk7DQo+ICAgZmVzZXRyb3VuZCAo RkVfVVBXQVJEKTsNCj4gICB5ID0gc2luICh4KTsNCj4gICBwcmludGYgKCJzaW4oJS4xNmUpID0g JS4xNmVcbiIsIHgsIHkpOw0KPiB9DQo+IA0KPiBJIGdldCB3aXRoIHRoZSBHTlUgbGliYzoNCj4g DQo+ICQgLi9hLm91dCA0LjI3MjU2NjAwODg4MjExODllMg0KPiBzaW4oNC4yNzI1NjYwMDg4ODIx MTkwZSswMikgPSAxLjE3NjY1MTI5NjIwMDAwMDRlLTE0DQo+IA0KPiBhbmQgd2l0aCBtdXNsOg0K PiANCj4gJCAuL2Eub3V0IDQuMjcyNTY2MDA4ODgyMTE4OWUyDQo+IHNpbig0LjI3MjU2NjAwODg4 MjExOTBlKzAyKSA9IC0yLjI1NjM2NDUzOTY1NDQ5ODRlLTExDQo+IA0KPiB3aGljaCBpcyBpbmRl ZWQgdmVyeSBmYXIgZnJvbSB0aGUgY29ycmVjdGx5IHJvdW5kZWQgcmVzdWx0Lg0KPiANCj4gQmVz dCByZWdhcmRzLA0KPiBQYXVsIFppbW1lcm1hbm4NCj4gDQo+IA0KPiANCg0K