From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 56107 invoked by alias); 26 May 2017 08:55:56 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 56092 invoked by uid 89); 26 May 2017 08:55:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.1 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy= X-HELO: mail2-relais-roc.national.inria.fr Received: from mail2-relais-roc.national.inria.fr (HELO mail2-relais-roc.national.inria.fr) (192.134.164.83) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 26 May 2017 08:55:53 +0000 Received: from afontenayssb-151-1-46-247.w82-121.abo.wanadoo.fr (HELO stedding) ([82.121.95.247]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 26 May 2017 10:55:53 +0200 Date: Fri, 26 May 2017 08:57:00 -0000 From: Marc Glisse To: gcc-patches@gcc.gnu.org Subject: [i386] __builtin_ia32_stmxcsr could be pure Message-ID: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-1335808165-1495788953=:10588" X-SW-Source: 2017-05/txt/msg02010.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1335808165-1495788953=:10588 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Content-length: 894 Hello, glibc marks fegetround as a pure function. On x86, people tend to use _MM_GET_ROUNDING_MODE instead, which could benefit from the same. I think it is safe, but a second opinion would be welcome. I could have handled just this builtin, but it seemed better to provide def_builtin_pure (like "const" already has) since there should be other builtins that can be marked this way (maybe the gathers?). Bootstrap+testsuite on x86_64-pc-linux-gnu with default languages. 2017-05-29 Marc Glisse gcc/ * config/i386/i386.c (struct builtin_isa): New field pure_p. Reorder for compactness. (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p. (def_builtin_pure, def_builtin_pure2): New functions. (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure. gcc/testsuite/ * gcc.target/i386/getround.c: New file. -- Marc Glisse --8323329-1335808165-1495788953=:10588 Content-Type: TEXT/x-diff; name=pure.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: inline; filename=pure.patch Content-length: 10277 SW5kZXg6IGdjYy9jb25maWcvaTM4Ni9pMzg2LmMNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCi0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5jCShyZXZpc2lv biAyNDg0NDkpDQorKysgZ2NjL2NvbmZpZy9pMzg2L2kzODYuYwkod29ya2lu ZyBjb3B5KQ0KQEAgLTMxOTUyLDI1ICszMTk1MiwyNiBAQCBlbnVtIGl4ODZf YnVpbHRpbnMNCiAgIElYODZfQlVJTFRJTl9fQkRFU0NfTUFYX0xBU1QgPSBJ WDg2X0JVSUxUSU5fX0JERVNDX01BWF9GSVJTVA0KIH07DQogDQogLyogVGFi bGUgZm9yIHRoZSBpeDg2IGJ1aWx0aW4gZGVjbHMuICAqLw0KIHN0YXRpYyBH VFkoKCkpIHRyZWUgaXg4Nl9idWlsdGluc1soaW50KSBJWDg2X0JVSUxUSU5f TUFYXTsNCiANCiAvKiBUYWJsZSBvZiBhbGwgb2YgdGhlIGJ1aWx0aW4gZnVu Y3Rpb25zIHRoYXQgYXJlIHBvc3NpYmxlIHdpdGggZGlmZmVyZW50IElTQSdz DQogICAgYnV0IGFyZSB3YWl0aW5nIHRvIGJlIGJ1aWx0IHVudGlsIGEgZnVu Y3Rpb24gaXMgZGVjbGFyZWQgdG8gdXNlIHRoYXQNCiAgICBJU0EuICAqLw0K IHN0cnVjdCBidWlsdGluX2lzYSB7DQotICBjb25zdCBjaGFyICpuYW1lOwkJ LyogZnVuY3Rpb24gbmFtZSAqLw0KLSAgZW51bSBpeDg2X2J1aWx0aW5fZnVu Y190eXBlIHRjb2RlOyAvKiB0eXBlIHRvIHVzZSBpbiB0aGUgZGVjbGFyYXRp b24gKi8NCiAgIEhPU1RfV0lERV9JTlQgaXNhOwkJLyogaXNhX2ZsYWdzIHRo aXMgYnVpbHRpbiBpcyBkZWZpbmVkIGZvciAqLw0KICAgSE9TVF9XSURFX0lO VCBpc2EyOwkJLyogYWRkaXRpb25hbCBpc2FfZmxhZ3MgdGhpcyBidWlsdGlu IGlzIGRlZmluZWQgZm9yICovDQotICBib29sIGNvbnN0X3A7CQkJLyogdHJ1 ZSBpZiB0aGUgZGVjbGFyYXRpb24gaXMgY29uc3RhbnQgKi8NCisgIGNvbnN0 IGNoYXIgKm5hbWU7CQkvKiBmdW5jdGlvbiBuYW1lICovDQorICBlbnVtIGl4 ODZfYnVpbHRpbl9mdW5jX3R5cGUgdGNvZGU7IC8qIHR5cGUgdG8gdXNlIGlu IHRoZSBkZWNsYXJhdGlvbiAqLw0KKyAgdW5zaWduZWQgY2hhciBjb25zdF9w OjE7CS8qIHRydWUgaWYgdGhlIGRlY2xhcmF0aW9uIGlzIGNvbnN0YW50ICov DQorICB1bnNpZ25lZCBjaGFyIHB1cmVfcDoxOwkvKiB0cnVlIGlmIHRoZSBk ZWNsYXJhdGlvbiBoYXMgcHVyZSBhdHRyaWJ1dGUgKi8NCiAgIGJvb2wgbGVh Zl9wOwkJCS8qIHRydWUgaWYgdGhlIGRlY2xhcmF0aW9uIGhhcyBsZWFmIGF0 dHJpYnV0ZSAqLw0KICAgYm9vbCBub3Rocm93X3A7CQkvKiB0cnVlIGlmIHRo ZSBkZWNsYXJhdGlvbiBoYXMgbm90aHJvdyBhdHRyaWJ1dGUgKi8NCiAgIGJv b2wgc2V0X2FuZF9ub3RfYnVpbHRfcDsNCiB9Ow0KIA0KIHN0YXRpYyBzdHJ1 Y3QgYnVpbHRpbl9pc2EgaXg4Nl9idWlsdGluc19pc2FbKGludCkgSVg4Nl9C VUlMVElOX01BWF07DQogDQogLyogQml0cyB0aGF0IGNhbiBzdGlsbCBlbmFi bGUgYW55IGluY2x1c2lvbiBvZiBhIGJ1aWx0aW4uICAqLw0KIHN0YXRpYyBI T1NUX1dJREVfSU5UIGRlZmVycmVkX2lzYV92YWx1ZXMgPSAwOw0KIHN0YXRp YyBIT1NUX1dJREVfSU5UIGRlZmVycmVkX2lzYV92YWx1ZXMyID0gMDsNCkBA IC0zMjAyNywyMCArMzIwMjgsMjEgQEAgZGVmX2J1aWx0aW4gKEhPU1RfV0lE RV9JTlQgbWFzaywgY29uc3QgYw0KIAl7DQogCSAgLyogSnVzdCBhIE1BU0sg d2hlcmUgc2V0X2FuZF9ub3RfYnVpbHRfcCA9PSB0cnVlIGNhbiBwb3RlbnRp YWxseQ0KIAkgICAgIGluY2x1ZGUgYSBidWlsdGluLiAgKi8NCiAJICBkZWZl cnJlZF9pc2FfdmFsdWVzIHw9IG1hc2s7DQogCSAgaXg4Nl9idWlsdGluc1so aW50KSBjb2RlXSA9IE5VTExfVFJFRTsNCiAJICBpeDg2X2J1aWx0aW5zX2lz YVsoaW50KSBjb2RlXS50Y29kZSA9IHRjb2RlOw0KIAkgIGl4ODZfYnVpbHRp bnNfaXNhWyhpbnQpIGNvZGVdLm5hbWUgPSBuYW1lOw0KIAkgIGl4ODZfYnVp bHRpbnNfaXNhWyhpbnQpIGNvZGVdLmxlYWZfcCA9IGZhbHNlOw0KIAkgIGl4 ODZfYnVpbHRpbnNfaXNhWyhpbnQpIGNvZGVdLm5vdGhyb3dfcCA9IGZhbHNl Ow0KIAkgIGl4ODZfYnVpbHRpbnNfaXNhWyhpbnQpIGNvZGVdLmNvbnN0X3Ag PSBmYWxzZTsNCisJICBpeDg2X2J1aWx0aW5zX2lzYVsoaW50KSBjb2RlXS5w dXJlX3AgPSBmYWxzZTsNCiAJICBpeDg2X2J1aWx0aW5zX2lzYVsoaW50KSBj b2RlXS5zZXRfYW5kX25vdF9idWlsdF9wID0gdHJ1ZTsNCiAJfQ0KICAgICB9 DQogDQogICByZXR1cm4gZGVjbDsNCiB9DQogDQogLyogTGlrZSBkZWZfYnVp bHRpbiwgYnV0IGFsc28gbWFya3MgdGhlIGZ1bmN0aW9uIGRlY2wgImNvbnN0 Ii4gICovDQogDQogc3RhdGljIGlubGluZSB0cmVlDQpAQCAtMzIwNDksMjAg KzMyMDUxLDM1IEBAIGRlZl9idWlsdGluX2NvbnN0IChIT1NUX1dJREVfSU5U IG1hc2ssIGMNCiB7DQogICB0cmVlIGRlY2wgPSBkZWZfYnVpbHRpbiAobWFz aywgbmFtZSwgdGNvZGUsIGNvZGUpOw0KICAgaWYgKGRlY2wpDQogICAgIFRS RUVfUkVBRE9OTFkgKGRlY2wpID0gMTsNCiAgIGVsc2UNCiAgICAgaXg4Nl9i dWlsdGluc19pc2FbKGludCkgY29kZV0uY29uc3RfcCA9IHRydWU7DQogDQog ICByZXR1cm4gZGVjbDsNCiB9DQogDQorLyogTGlrZSBkZWZfYnVpbHRpbiwg YnV0IGFsc28gbWFya3MgdGhlIGZ1bmN0aW9uIGRlY2wgInB1cmUiLiAgKi8N CisNCitzdGF0aWMgaW5saW5lIHRyZWUNCitkZWZfYnVpbHRpbl9wdXJlIChI T1NUX1dJREVfSU5UIG1hc2ssIGNvbnN0IGNoYXIgKm5hbWUsDQorCQkgIGVu dW0gaXg4Nl9idWlsdGluX2Z1bmNfdHlwZSB0Y29kZSwgZW51bSBpeDg2X2J1 aWx0aW5zIGNvZGUpDQorew0KKyAgdHJlZSBkZWNsID0gZGVmX2J1aWx0aW4g KG1hc2ssIG5hbWUsIHRjb2RlLCBjb2RlKTsNCisgIGlmIChkZWNsKQ0KKyAg ICBERUNMX1BVUkVfUCAoZGVjbCkgPSAxOw0KKyAgZWxzZQ0KKyAgICBpeDg2 X2J1aWx0aW5zX2lzYVsoaW50KSBjb2RlXS5wdXJlX3AgPSB0cnVlOw0KKw0K KyAgcmV0dXJuIGRlY2w7DQorfQ0KKw0KIC8qIExpa2UgZGVmX2J1aWx0aW4s IGJ1dCBmb3IgYWRkaXRpb25hbCBpc2EyIGZsYWdzLiAgKi8NCiANCiBzdGF0 aWMgaW5saW5lIHRyZWUNCiBkZWZfYnVpbHRpbjIgKEhPU1RfV0lERV9JTlQg bWFzaywgY29uc3QgY2hhciAqbmFtZSwNCiAJICAgICAgZW51bSBpeDg2X2J1 aWx0aW5fZnVuY190eXBlIHRjb2RlLA0KIAkgICAgICBlbnVtIGl4ODZfYnVp bHRpbnMgY29kZSkNCiB7DQogICB0cmVlIGRlY2wgPSBOVUxMX1RSRUU7DQog DQogICBpeDg2X2J1aWx0aW5zX2lzYVsoaW50KSBjb2RlXS5pc2EyID0gbWFz azsNCkBAIC0zMjA4MywyMCArMzIxMDAsMjEgQEAgZGVmX2J1aWx0aW4yIChI T1NUX1dJREVfSU5UIG1hc2ssIGNvbnN0DQogICAgIHsNCiAgICAgICAvKiBK dXN0IGEgTUFTSyB3aGVyZSBzZXRfYW5kX25vdF9idWlsdF9wID09IHRydWUg Y2FuIHBvdGVudGlhbGx5DQogCSBpbmNsdWRlIGEgYnVpbHRpbi4gICovDQog ICAgICAgZGVmZXJyZWRfaXNhX3ZhbHVlczIgfD0gbWFzazsNCiAgICAgICBp eDg2X2J1aWx0aW5zWyhpbnQpIGNvZGVdID0gTlVMTF9UUkVFOw0KICAgICAg IGl4ODZfYnVpbHRpbnNfaXNhWyhpbnQpIGNvZGVdLnRjb2RlID0gdGNvZGU7 DQogICAgICAgaXg4Nl9idWlsdGluc19pc2FbKGludCkgY29kZV0ubmFtZSA9 IG5hbWU7DQogICAgICAgaXg4Nl9idWlsdGluc19pc2FbKGludCkgY29kZV0u bGVhZl9wID0gZmFsc2U7DQogICAgICAgaXg4Nl9idWlsdGluc19pc2FbKGlu dCkgY29kZV0ubm90aHJvd19wID0gZmFsc2U7DQogICAgICAgaXg4Nl9idWls dGluc19pc2FbKGludCkgY29kZV0uY29uc3RfcCA9IGZhbHNlOw0KKyAgICAg IGl4ODZfYnVpbHRpbnNfaXNhWyhpbnQpIGNvZGVdLnB1cmVfcCA9IGZhbHNl Ow0KICAgICAgIGl4ODZfYnVpbHRpbnNfaXNhWyhpbnQpIGNvZGVdLnNldF9h bmRfbm90X2J1aWx0X3AgPSB0cnVlOw0KICAgICB9DQogDQogICByZXR1cm4g ZGVjbDsNCiB9DQogDQogLyogTGlrZSBkZWZfYnVpbHRpbiwgYnV0IGFsc28g bWFya3MgdGhlIGZ1bmN0aW9uIGRlY2wgImNvbnN0Ii4gICovDQogDQogc3Rh dGljIGlubGluZSB0cmVlDQogZGVmX2J1aWx0aW5fY29uc3QyIChIT1NUX1dJ REVfSU5UIG1hc2ssIGNvbnN0IGNoYXIgKm5hbWUsDQpAQCAtMzIxMDQsMjAg KzMyMTIyLDM1IEBAIGRlZl9idWlsdGluX2NvbnN0MiAoSE9TVF9XSURFX0lO VCBtYXNrLA0KIHsNCiAgIHRyZWUgZGVjbCA9IGRlZl9idWlsdGluMiAobWFz aywgbmFtZSwgdGNvZGUsIGNvZGUpOw0KICAgaWYgKGRlY2wpDQogICAgIFRS RUVfUkVBRE9OTFkgKGRlY2wpID0gMTsNCiAgIGVsc2UNCiAgICAgaXg4Nl9i dWlsdGluc19pc2FbKGludCkgY29kZV0uY29uc3RfcCA9IHRydWU7DQogDQog ICByZXR1cm4gZGVjbDsNCiB9DQogDQorLyogTGlrZSBkZWZfYnVpbHRpbiwg YnV0IGFsc28gbWFya3MgdGhlIGZ1bmN0aW9uIGRlY2wgInB1cmUiLiAgKi8N CisNCitzdGF0aWMgaW5saW5lIHRyZWUNCitkZWZfYnVpbHRpbl9wdXJlMiAo SE9TVF9XSURFX0lOVCBtYXNrLCBjb25zdCBjaGFyICpuYW1lLA0KKwkJICAg ZW51bSBpeDg2X2J1aWx0aW5fZnVuY190eXBlIHRjb2RlLCBlbnVtIGl4ODZf YnVpbHRpbnMgY29kZSkNCit7DQorICB0cmVlIGRlY2wgPSBkZWZfYnVpbHRp bjIgKG1hc2ssIG5hbWUsIHRjb2RlLCBjb2RlKTsNCisgIGlmIChkZWNsKQ0K KyAgICBERUNMX1BVUkVfUCAoZGVjbCkgPSAxOw0KKyAgZWxzZQ0KKyAgICBp eDg2X2J1aWx0aW5zX2lzYVsoaW50KSBjb2RlXS5wdXJlX3AgPSB0cnVlOw0K Kw0KKyAgcmV0dXJuIGRlY2w7DQorfQ0KKw0KIC8qIEFkZCBhbnkgbmV3IGJ1 aWx0aW4gZnVuY3Rpb25zIGZvciBhIGdpdmVuIElTQSB0aGF0IG1heSBub3Qg aGF2ZSBiZWVuDQogICAgZGVjbGFyZWQuICBUaGlzIHNhdmVzIGEgYml0IG9m IHNwYWNlIGNvbXBhcmVkIHRvIGFkZGluZyBhbGwgb2YgdGhlDQogICAgZGVj bGFyYXRpb25zIHRvIHRoZSB0cmVlLCBldmVuIGlmIHdlIGRpZG4ndCB1c2Ug dGhlbS4gICovDQogDQogc3RhdGljIHZvaWQNCiBpeDg2X2FkZF9uZXdfYnVp bHRpbnMgKEhPU1RfV0lERV9JTlQgaXNhLCBIT1NUX1dJREVfSU5UIGlzYTIp DQogew0KICAgaWYgKChpc2EgJiBkZWZlcnJlZF9pc2FfdmFsdWVzKSA9PSAw DQogICAgICAgJiYgKGlzYTIgJiBkZWZlcnJlZF9pc2FfdmFsdWVzMikgPT0g MCkNCiAgICAgcmV0dXJuOw0KQEAgLTMyMTQyLDIwICszMjE3NSwyMiBAQCBp eDg2X2FkZF9uZXdfYnVpbHRpbnMgKEhPU1RfV0lERV9JTlQgaXNhDQogCSAg aXg4Nl9idWlsdGluc19pc2FbaV0uc2V0X2FuZF9ub3RfYnVpbHRfcCA9IGZh bHNlOw0KIA0KIAkgIHR5cGUgPSBpeDg2X2dldF9idWlsdGluX2Z1bmNfdHlw ZSAoaXg4Nl9idWlsdGluc19pc2FbaV0udGNvZGUpOw0KIAkgIGRlY2wgPSBh ZGRfYnVpbHRpbl9mdW5jdGlvbl9leHRfc2NvcGUgKGl4ODZfYnVpbHRpbnNf aXNhW2ldLm5hbWUsDQogCQkJCQkJIHR5cGUsIGksIEJVSUxUX0lOX01ELCBO VUxMLA0KIAkJCQkJCSBOVUxMX1RSRUUpOw0KIA0KIAkgIGl4ODZfYnVpbHRp bnNbaV0gPSBkZWNsOw0KIAkgIGlmIChpeDg2X2J1aWx0aW5zX2lzYVtpXS5j b25zdF9wKQ0KIAkgICAgVFJFRV9SRUFET05MWSAoZGVjbCkgPSAxOw0KKwkg IGlmIChpeDg2X2J1aWx0aW5zX2lzYVtpXS5wdXJlX3ApDQorCSAgICBERUNM X1BVUkVfUCAoZGVjbCkgPSAxOw0KIAkgIGlmIChpeDg2X2J1aWx0aW5zX2lz YVtpXS5sZWFmX3ApDQogCSAgICBERUNMX0FUVFJJQlVURVMgKGRlY2wpID0g YnVpbGRfdHJlZV9saXN0IChnZXRfaWRlbnRpZmllciAoImxlYWYiKSwNCiAJ CQkJCQkgICAgICBOVUxMX1RSRUUpOw0KIAkgIGlmIChpeDg2X2J1aWx0aW5z X2lzYVtpXS5ub3Rocm93X3ApDQogCSAgICBUUkVFX05PVEhST1cgKGRlY2wp ID0gMTsNCiAJfQ0KICAgICB9DQogDQogICBjdXJyZW50X3RhcmdldF9wcmFn bWEgPSBzYXZlZF9jdXJyZW50X3RhcmdldF9wcmFnbWE7DQogfQ0KQEAgLTMy NDk1LDIyICszMjUzMCwyMiBAQCBpeDg2X2luaXRfbW14X3NzZV9idWlsdGlu cyAodm9pZCkNCiAJZnR5cGUgPSBJTlRfRlRZUEVfVjRTRl9WNFNGOw0KICAg ICAgIGRlZl9idWlsdGluX2NvbnN0IChkLT5tYXNrLCBkLT5uYW1lLCBmdHlw ZSwgZC0+Y29kZSk7DQogICAgIH0NCiAgIEJERVNDX1ZFUklGWVMgKElYODZf QlVJTFRJTl9fQkRFU0NfQ09NSV9MQVNULA0KIAkJIElYODZfQlVJTFRJTl9f QkRFU0NfQ09NSV9GSVJTVCwNCiAJCSBBUlJBWV9TSVpFIChiZGVzY19jb21p KSAtIDEpOw0KIA0KICAgLyogU1NFICovDQogICBkZWZfYnVpbHRpbiAoT1BU SU9OX01BU0tfSVNBX1NTRSwgIl9fYnVpbHRpbl9pYTMyX2xkbXhjc3IiLA0K IAkgICAgICAgVk9JRF9GVFlQRV9VTlNJR05FRCwgSVg4Nl9CVUlMVElOX0xE TVhDU1IpOw0KLSAgZGVmX2J1aWx0aW4gKE9QVElPTl9NQVNLX0lTQV9TU0Us ICJfX2J1aWx0aW5faWEzMl9zdG14Y3NyIiwNCi0JICAgICAgIFVOU0lHTkVE X0ZUWVBFX1ZPSUQsIElYODZfQlVJTFRJTl9TVE1YQ1NSKTsNCisgIGRlZl9i dWlsdGluX3B1cmUgKE9QVElPTl9NQVNLX0lTQV9TU0UsICJfX2J1aWx0aW5f aWEzMl9zdG14Y3NyIiwNCisJCSAgICBVTlNJR05FRF9GVFlQRV9WT0lELCBJ WDg2X0JVSUxUSU5fU1RNWENTUik7DQogDQogICAvKiBTU0Ugb3IgM0ROb3ch QSAqLw0KICAgZGVmX2J1aWx0aW4gKE9QVElPTl9NQVNLX0lTQV9TU0UgfCBP UFRJT05fTUFTS19JU0FfM0ROT1dfQSwNCiAJICAgICAgICJfX2J1aWx0aW5f aWEzMl9tYXNrbW92cSIsIFZPSURfRlRZUEVfVjhRSV9WOFFJX1BDSEFSLA0K IAkgICAgICAgSVg4Nl9CVUlMVElOX01BU0tNT1ZRKTsNCiANCiAgIC8qIFNT RTIgKi8NCiAgIGRlZl9idWlsdGluIChPUFRJT05fTUFTS19JU0FfU1NFMiwg Il9fYnVpbHRpbl9pYTMyX21hc2ttb3ZkcXUiLA0KIAkgICAgICAgVk9JRF9G VFlQRV9WMTZRSV9WMTZRSV9QQ0hBUiwgSVg4Nl9CVUlMVElOX01BU0tNT1ZE UVUpOw0KIA0KSW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2dldHJvdW5kLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9nZXRyb3VuZC5jCShub25leGlz dGVudCkNCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9nZXRy b3VuZC5jCSh3b3JraW5nIGNvcHkpDQpAQCAtMCwwICsxLDE0IEBADQorLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1PIC1t c3NlIiB9ICovDQorDQorI2luY2x1ZGUgPHhtbWludHJpbi5oPg0KKw0KK3Vu c2lnbmVkIHNhdmU7DQorDQordm9pZCBmKHVuc2lnbmVkIG1vZGUpew0KKyAg dW5zaWduZWQgdG1wID0gX01NX0dFVF9ST1VORElOR19NT0RFKCk7DQorICBf TU1fU0VUX1JPVU5ESU5HX01PREUobW9kZSk7DQorICBzYXZlID0gdG1wOw0K K30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg InN0bXhjc3IiIDEgfSB9ICovDQo= --8323329-1335808165-1495788953=:10588--