From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5167 invoked by alias); 2 Jul 2002 15:39:21 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 5141 invoked from network); 2 Jul 2002 15:39:11 -0000 Received: from unknown (HELO ns.logos-m.ru) (195.7.187.66) by sources.redhat.com with SMTP; 2 Jul 2002 15:39:11 -0000 Received: from gibe.logos-m.ru (gibe.logos-m.ru [195.7.187.101]) by ns.logos-m.ru (8.12.1/8.12.1) with ESMTP id g62FtmQe002799; Tue, 2 Jul 2002 19:55:48 +0400 (MSD) Date: Tue, 02 Jul 2002 08:39:00 -0000 From: egor duda Reply-To: egor duda Organization: deo X-Priority: 3 (Normal) Message-ID: <903891375.20020702193614@logos-m.ru> To: binutils@sources.redhat.com CC: Charles Wilson , cygwin-apps@sources.redhat.com Subject: Re: --enable-auto-import extension In-Reply-To: <3D20C981.8020407@ece.gatech.edu> References: <1212929671.20020628141818@logos-m.ru> <3D1D08A1.9070505@ece.gatech.edu> <180259441557.20020701104656@logos-m.ru> <3D20C981.8020407@ece.gatech.edu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------11810A2503C44A528" X-SW-Source: 2002-07/txt/msg00035.txt.bz2 ------------11810A2503C44A528 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-length: 1471 Hi! Tuesday, 02 July, 2002 Charles Wilson cwilson@ece.gatech.edu wrote: >> What i was talking about is 64-bit versions of windows where addresses >> (and so base symbol values and addends are 64-bit). Or if we want to >> add some other types of relocations. Adding type field will make it >> possible to add extensions to this feature. CW> Yeah. What he said. Well, after thinking twice about it i concluded that such flexibility may be not that good after all. Sure, it allows adding extensions, but make it hard to check at link-time if runtime support for those extensions is present. So i think we can stay with simple format of pseudo relocations for now. >> Of course. Luckily, all we have to check is that it doesn't change >> binaries for existing code, CW> Hard to do, really -- DLLs get a timestamp in their header, so even CW> under ideal conditions you can't do a simple diff on two DLLs...I CW> suppose you could make sure that two DLLs differ ONLY in "unimportant" CW> ways, like timestamp. Someone suggested that one can do 'cmp -i 150 old.dll new.dll', or whatever offset timestamp is located at. Ok, i've finalized patch and test. I suppose i have a copyright assignment with FSF for this changes to get incorporated into official sources. As far as i understand, i have to get an assignment form from binutils maintainer, right? Egor. mailto:deo@logos-m.ru ICQ 5165414 FidoNet 2:5020/496.19 ------------11810A2503C44A528 Content-Type: application/octet-stream; name="include.ChangeLog" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="include.ChangeLog" Content-length: 179 MjAwMi0wNy0wMSAgRWdvciBEdWRhICA8ZGVvQGxvZ29zLW0ucnU+CgoJKiBi ZmRsaW5rLmggKHN0cnVjdCBiZmRfbGlua19pbmZvKTogQWRkIG5ldyBib29s ZWFuCglmaWVsZCBwZWkzODZfcnVudGltZV9wc2V1ZG9fcmVsb2MuCg== ------------11810A2503C44A528 Content-Type: application/octet-stream; name="include.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="include.diff" Content-length: 997 SW5kZXg6IGJmZGxpbmsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvY3ZzL3ViZXJiYXVtL2luY2x1ZGUvYmZkbGluay5oLHYKcmV0cmll dmluZyByZXZpc2lvbiAxLjIwCmRpZmYgLXUgLXAgLTIgLXIxLjIwIGJmZGxp bmsuaAotLS0gYmZkbGluay5oCTEgSnVsIDIwMDIgMDg6MDQ6NDcgLTAwMDAJ MS4yMAorKysgYmZkbGluay5oCTIgSnVsIDIwMDIgMDc6NDc6MDkgLTAwMDAK QEAgLTMzMCw0ICszMzAsOSBAQCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbwogICBp bnQgcGVpMzg2X2F1dG9faW1wb3J0OwogCisgIC8qIE5vbi16ZXJvIGlmIHJ1 bnRpbWUgcmVsb2NzIGZvciBEQVRBIGl0ZW1zIHdpdGggbm9uLXplcm8gYWRk ZW5kcworICAgICBpbiBwZWkzODYgRExMcyBzaG91bGQgYmUgZ2VuZXJhdGVk LiAgU2V0IHRvIDEgaWYgdGhpcyBmZWF0dXJlCisgICAgIGlzIGV4cGxpY2l0 bHkgcmVxdWVzdGVkIGJ5IHRoZSB1c2VyLCAtMSBpZiBlbmFibGVkIGJ5IGRl ZmF1bHQuICAqLworICBpbnQgcGVpMzg2X3J1bnRpbWVfcHNldWRvX3JlbG9j OworCiAgIC8qIFRydWUgaWYgbm9uLVBMVCByZWxvY3Mgc2hvdWxkIGJlIG1l cmdlZCBpbnRvIG9uZSByZWxvYyBzZWN0aW9uCiAgICAgIGFuZCBzb3J0ZWQg c28gdGhhdCByZWxvY3MgYWdhaW5zdCB0aGUgc2FtZSBzeW1ib2wgY29tZSB0 b2dldGhlci4gICovCg== ------------11810A2503C44A528 Content-Type: application/octet-stream; name="ld.ChangeLog" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ld.ChangeLog" Content-length: 1159 MjAwMi0wNy0wMSAgRWdvciBEdWRhICA8ZGVvQGxvZ29zLW0ucnU+CgoJKiBs ZG1haW4uYyAobWFpbik6IE1ha2UgcnVudGltZSByZWxvY3MgZGlzYWJsZWQg YnkgZGVmYXVsdC4gUmVtb3ZlCglhc3NpZ25tZW50IHdoaWNoIGhhcyBubyBl ZmZlY3QuCgkqIHBlLWRsbC5oIChwZV9jcmVhdGVfaW1wb3J0X2ZpeHVwKTog Q2hhbmdlIHByb3RvdHlwZS4KCSogcGUtZGxsLmMgKG1ha2VfcnVudGltZV9w c2V1ZG9fcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocGVfY3JlYXRlX3J1bnRp bWVfcmVsb2NhdG9yX3JlZmVyZW5jZSk6IERpdHRvLgoJKHBlX2NyZWF0ZV9p bXBvcnRfZml4dXApOiBIYW5kbGUgcmVsb2NhdGlvbnMgd2l0aCBub24temVy byBhZGRlbmRzLgoJKiBlbXVsdGVtcGwvcGUuZW06IEFkZCBvcHRpb25zIC0t ZW5hYmxlLXJ1bnRpbWUtcHNldWRvLXJlbG9jIGFuZAoJLS1kaXNhYmxlLXJ1 bnRpbWUtcHNldWRvLXJlbG9jLgoJKG1ha2VfaW1wb3J0X2ZpeHVwKTogSGFu ZGxlIHJlbG9jYXRpb25zIHdpdGggbm9uLXplcm8gYWRkZW5kcy4gQ3JlYXRl CglhbiBleHRlcm5hbCByZWZlcmVuY2UgdG8gX3BlaTM4Nl9ydW50aW1lX3Jl bG9jYXRvciBzeW1ib2wgaWYgYXQgbGVhc3QKCW9uZSBwc2V1ZG8gcmVsb2Mg d2FzIGNyZWF0ZWQuCgkqIHNjcmlwdHRlbXBsL3BlLnNjOiBIYW5kbGUgLnJk YXRhX3J1bnRpbWVfcHNldWRvX3JlbG9jIHNlY3Rpb25zLgoJQWRkIHN5bWJv bHMgZm9yIGFwcGxpY2F0aW9uIHRvIGFjY2VzcyB0aGVtLgoJKiBsZC50ZXhp bmZvOiBEb2N1bWVudCAtLWVuYWJsZS1ydW50aW1lLXBzZXVkby1yZWxvYyBh bmQKCS0tZGlzYWJsZS1ydW50aW1lLXBzZXVkby1yZWxvYyBvcHRpb25zLgo= ------------11810A2503C44A528 Content-Type: application/octet-stream; name="ld.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ld.diff" Content-length: 16519 SW5kZXg6IGxkLnRleGluZm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2N2cy91YmVyYmF1bS9sZC9sZC50ZXhpbmZvLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjcwCmRpZmYgLXUgLXAgLTIgLXIxLjcwIGxkLnRleGlu Zm8KLS0tIGxkLnRleGluZm8JMjAgSnVuIDIwMDIgMTQ6NDQ6MTAgLTAwMDAJ MS43MAorKysgbGQudGV4aW5mbwkyIEp1bCAyMDAyIDExOjM3OjMxIC0wMDAw CkBAIC0xNzk0LDUgKzE3OTQsOSBAQCBUaGVyZSBhcmUgc2V2ZXJhbCB3YXlz IHRvIGFkZHJlc3MgdGhpcyBkCiBkYXRhIHR5cGUgb2YgdGhlIGV4cG9ydGVk IHZhcmlhYmxlOgogCi1PbmUgc29sdXRpb24gaXMgdG8gZm9yY2Ugb25lIG9m IHRoZSAnY29uc3RhbnRzJyB0byBiZSBhIHZhcmlhYmxlIC0tIAorT25lIHdh eSBpcyB0byB1c2UgLS1lbmFibGUtcnVudGltZS1wc2V1ZG8tcmVsb2Mgc3dp dGNoLiBUaGlzIGxlYXZlcyB0aGUgdGFzaworb2YgYWRqdXN0aW5nIHJlZmVy ZW5jZXMgaW4geW91ciBjbGllbnQgY29kZSBmb3IgcnVudGltZSBlbnZpcm9u bWVudCwgc28KK3RoaXMgbWV0aG9kIHdvcmtzIG9ubHkgd2hlbiBydW50aW1l IGVudmlyb250bWVudCBzdXBwb3J0cyB0aGlzIGZlYXR1cmUuCisKK1NlY29u ZCBzb2x1dGlvbiBpcyB0byBmb3JjZSBvbmUgb2YgdGhlICdjb25zdGFudHMn IHRvIGJlIGEgdmFyaWFibGUgLS0gCiB0aGF0IGlzLCB1bmtub3duIGFuZCB1 bi1vcHRpbWl6YWJsZSBhdCBjb21waWxlIHRpbWUuICBGb3IgYXJyYXlzLCAK IHRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllczogYSkgbWFrZSB0aGUgaW5k ZXhlZSAodGhlIGFycmF5J3MgYWRkcmVzcykgCkBAIC0xODMwLDUgKzE4MzQs NSBAQCBleHRlcm5fbGwgLS0+CiBAZW5kIGV4YW1wbGUKIAotQSBzZWNvbmQg bWV0aG9kIG9mIGRlYWxpbmcgd2l0aCB0aGlzIGRpZmZpY3VsdHkgaXMgdG8g YWJhbmRvbgorQSB0aGlyZCBtZXRob2Qgb2YgZGVhbGluZyB3aXRoIHRoaXMg ZGlmZmljdWx0eSBpcyB0byBhYmFuZG9uCiAnYXV0by1pbXBvcnQnIGZvciB0 aGUgb2ZmZW5kaW5nIHN5bWJvbCBhbmQgbWFyayBpdCB3aXRoIAogQGNvZGV7 X19kZWNsc3BlYyhkbGxpbXBvcnQpfS4gIEhvd2V2ZXIsIGluIHByYWN0aWNl IHRoYXQKQEAgLTE4ODEsNSArMTg4NSw1IEBAIHZvaWQgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpQHsKIEBlbmQgZXhhbXBsZQogCi1BIHRoaXJkIHdh eSB0byBhdm9pZCB0aGlzIHByb2JsZW0gaXMgdG8gcmUtY29kZSB5b3VyIAor QSBmb3V0aCB3YXkgdG8gYXZvaWQgdGhpcyBwcm9ibGVtIGlzIHRvIHJlLWNv ZGUgeW91ciAKIGxpYnJhcnkgdG8gdXNlIGEgZnVuY3Rpb25hbCBpbnRlcmZh Y2UgcmF0aGVyIHRoYW4gYSBkYXRhIGludGVyZmFjZQogZm9yIHRoZSBvZmZl bmRpbmcgdmFyaWFibGVzIChlLmcuIHNldF9mb28oKSBhbmQgZ2V0X2Zvbygp IGFjY2Vzc29yCkBAIC0xODkwLDQgKzE4OTQsMTUgQEAgZnVuY3Rpb25zKS4K IERvIG5vdCBhdHRlbXB0IHRvIGRvIHNvcGhpc3RpY2FsdGVkIGxpbmtpbmcg b2YgQGNvZGV7X3N5bWJvbH0gdG8gCiBAY29kZXtfX2ltcF9fc3ltYm9sfSBm b3IgREFUQSBpbXBvcnRzIGZyb20gRExMcy4KKworQGtpbmRleCAtLWVuYWJs ZS1ydW50aW1lLXBzZXVkby1yZWxvYworQGl0ZW0gLS1lbmFibGUtcnVudGlt ZS1wc2V1ZG8tcmVsb2MKK0lmIHlvdXIgY29kZSBjb250YWlucyBleHByZXNz aW9ucyBkZXNjcmliZWQgaW4gLS1lbmFibGUtYXV0by1pbXBvcnQgc2VjdGlv biwKK3RoYXQgaXMsIERBVEEgaW1wb3J0cyBmcm9tIERMTCB3aXRoIG5vbi16 ZXJvIG9mZnNldCwgdGhpcyBzd2l0Y2ggd2lsbCBjcmVhdGUKK2EgdmVjdG9y IG9mICdydW50aW1lIHBzZXVkbyByZWxvY2F0aW9ucycgd2hpY2ggY2FuIGJl IHVzZWQgYnkgcnVudGltZQorZW52aXJvbm1lbnQgdG8gYWRqdXN0IHJlZmVy ZW5jZXMgdG8gc3VjaCBkYXRhIGluIHlvdXIgY2xpZW50IGNvZGUuIAorCitA a2luZGV4IC0tZGlzYWJsZS1ydW50aW1lLXBzZXVkby1yZWxvYworQGl0ZW0g LS1kaXNhYmxlLXJ1bnRpbWUtcHNldWRvLXJlbG9jCitEbyBub3QgY3JlYXRl IHBzZXVkbyByZWxvY2F0aW9ucyBmb3Igbm9uLXplcm8gb2Zmc2V0IERBVEEg aW1wb3J0cyBmcm9tIERMTHMuCiAKIEBraW5kZXggLS1lbmFibGUtZXh0cmEt cGUtZGVidWcKSW5kZXg6IGxkbWFpbi5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9jdnMvdWJlcmJhdW0vbGQvbGRtYWluLmMsdgpyZXRy aWV2aW5nIHJldmlzaW9uIDEuNDkKZGlmZiAtdSAtcCAtMiAtcjEuNDkgbGRt YWluLmMKLS0tIGxkbWFpbi5jCTEgSnVsIDIwMDIgMDg6MDc6MjkgLTAwMDAJ MS40OQorKysgbGRtYWluLmMJMiBKdWwgMjAwMiAxMTozNzozMiAtMDAwMApA QCAtMjYxLDYgKzI2MSw2IEBAIG1haW4gKGFyZ2MsIGFyZ3YpCiAgIGxpbmtf aW5mby5mbGFncyA9IChiZmRfdm1hKSAwOwogICBsaW5rX2luZm8uZmxhZ3Nf MSA9IChiZmRfdm1hKSAwOwotICBsaW5rX2luZm8ucGVpMzg2X2F1dG9faW1w b3J0ID0gZmFsc2U7CiAgIGxpbmtfaW5mby5wZWkzODZfYXV0b19pbXBvcnQg PSAtMTsKKyAgbGlua19pbmZvLnBlaTM4Nl9ydW50aW1lX3BzZXVkb19yZWxv YyA9IGZhbHNlOwogICBsaW5rX2luZm8uY29tYnJlbG9jID0gdHJ1ZTsKICAg bGlua19pbmZvLnNwYXJlX2R5bmFtaWNfdGFncyA9IDU7CkluZGV4OiBwZS1k bGwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Vi ZXJiYXVtL2xkL3BlLWRsbC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQx CmRpZmYgLXUgLXAgLTIgLXIxLjQxIHBlLWRsbC5jCi0tLSBwZS1kbGwuYwky NSBNYXkgMjAwMiAyMDozOToyNSAtMDAwMAkxLjQxCisrKyBwZS1kbGwuYwky IEp1bCAyMDAyIDExOjM3OjMyIC0wMDAwCkBAIC0xNDIsNCArMTQyLDUgQEAg c3RhdGljIHN0cnVjdCBzZWMgKmVkYXRhX3MsICpyZWxvY19zOwogc3RhdGlj IHVuc2lnbmVkIGNoYXIgKmVkYXRhX2QsICpyZWxvY19kOwogc3RhdGljIHNp emVfdCBlZGF0YV9zeiwgcmVsb2Nfc3o7CitzdGF0aWMgaW50IHJ1bnRpbWVf cHNldWRvX3JlbG9jc19jcmVhdGVkID0gMDsKIAogdHlwZWRlZiBzdHJ1Y3QK QEAgLTMwMiw0ICszMDMsOCBAQCBzdGF0aWMgY2hhciAqbWFrZV9pbXBvcnRf Zml4dXBfbWFyayBQQVJBCiBzdGF0aWMgYmZkICptYWtlX2ltcG9ydF9maXh1 cF9lbnRyeQogICBQQVJBTVMgKChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg KiwgY29uc3QgY2hhciAqLCBiZmQgKikpOworc3RhdGljIGJmZCAqbWFrZV9y dW50aW1lX3BzZXVkb19yZWxvYworICBQQVJBTVMgKChjb25zdCBjaGFyICos IGNvbnN0IGNoYXIgKiwgaW50LCBiZmQgKikpOworc3RhdGljIGJmZCAqcGVf Y3JlYXRlX3J1bnRpbWVfcmVsb2NhdG9yX3JlZmVyZW5jZQorICBQQVJBTVMg KChiZmQgKnBhcmVudCkpOwogc3RhdGljIHVuc2lnbmVkIGludCBwZV9nZXQx NiBQQVJBTVMgKChiZmQgKiwgaW50KSk7CiBzdGF0aWMgdW5zaWduZWQgaW50 IHBlX2dldDMyIFBBUkFNUyAoKGJmZCAqLCBpbnQpKTsKQEAgLTIwNjgsNyAr MjA3MywxMDMgQEAgbWFrZV9pbXBvcnRfZml4dXBfZW50cnkgKG5hbWUsIGZp eHVwX25hbQogfQogCisvKgkuc2VjdGlvbgkucmRhdGFfcnVudGltZV9wc2V1 ZG9fcmVsb2MKKyAJLmxvbmcJCWFkZGVuZAorIAkucnZhCQlfX2Z1Tk5fU1lN IChwb2ludGVyIHRvIHJlZmVyZW5jZSAoYWRkcmVzcykgaW4gdGV4dCkgICov CisKK3N0YXRpYyBiZmQgKgorbWFrZV9ydW50aW1lX3BzZXVkb19yZWxvYyAo bmFtZSwgZml4dXBfbmFtZSwgYWRkZW5kLCBwYXJlbnQpCisgICAgIGNvbnN0 IGNoYXIgKm5hbWUgQVRUUklCVVRFX1VOVVNFRDsKKyAgICAgY29uc3QgY2hh ciAqZml4dXBfbmFtZTsKKyAgICAgaW50IGFkZGVuZDsKKyAgICAgYmZkICpw YXJlbnQ7Cit7CisgIGFzZWN0aW9uICpydF9yZWw7CisgIHVuc2lnbmVkIGNo YXIgKnJ0X3JlbF9kOworICBjaGFyICpvbmFtZTsKKyAgYmZkICphYmZkOwor CisgIG9uYW1lID0gKGNoYXIgKikgeG1hbGxvYyAoMjApOworICBzcHJpbnRm IChvbmFtZSwgInJ0ciUwNmQubyIsIHRtcF9zZXEpOworICB0bXBfc2VxKys7 CisKKyAgYWJmZCA9IGJmZF9jcmVhdGUgKG9uYW1lLCBwYXJlbnQpOworICBi ZmRfZmluZF90YXJnZXQgKHBlX2RldGFpbHMtPm9iamVjdF90YXJnZXQsIGFi ZmQpOworICBiZmRfbWFrZV93cml0YWJsZSAoYWJmZCk7CisKKyAgYmZkX3Nl dF9mb3JtYXQgKGFiZmQsIGJmZF9vYmplY3QpOworICBiZmRfc2V0X2FyY2hf bWFjaCAoYWJmZCwgcGVfZGV0YWlscy0+YmZkX2FyY2gsIDApOworCisgIHN5 bXB0ciA9IDA7CisgIHN5bXRhYiA9IChhc3ltYm9sICoqKSB4bWFsbG9jICgy ICogc2l6ZW9mIChhc3ltYm9sICopKTsKKyAgcnRfcmVsID0gcXVpY2tfc2Vj dGlvbiAoYWJmZCwgIi5yZGF0YV9ydW50aW1lX3BzZXVkb19yZWxvYyIsIFNF Q19IQVNfQ09OVEVOVFMsIDIpOworCisgIHF1aWNrX3N5bWJvbCAoYWJmZCwg IiIsIGZpeHVwX25hbWUsICIiLCBVTkRTRUMsIEJTRl9HTE9CQUwsIDApOwor CisgIGJmZF9zZXRfc2VjdGlvbl9zaXplIChhYmZkLCBydF9yZWwsIDgpOwor ICBydF9yZWxfZCA9ICh1bnNpZ25lZCBjaGFyICopIHhtYWxsb2MgKDgpOwor ICBydF9yZWwtPmNvbnRlbnRzID0gcnRfcmVsX2Q7CisgIG1lbXNldCAocnRf cmVsX2QsIDAsIDgpOworICBiZmRfcHV0XzMyIChhYmZkLCBhZGRlbmQsIHJ0 X3JlbF9kKTsKKworICBxdWlja19yZWxvYyAoYWJmZCwgNCwgQkZEX1JFTE9D X1JWQSwgMSk7CisgIHNhdmVfcmVsb2NzIChydF9yZWwpOworCisgIGJmZF9z ZXRfc3ltdGFiIChhYmZkLCBzeW10YWIsIHN5bXB0cik7CisKKyAgYmZkX3Nl dF9zZWN0aW9uX2NvbnRlbnRzIChhYmZkLCBydF9yZWwsIHJ0X3JlbF9kLCAw LCA4KTsKKworICBiZmRfbWFrZV9yZWFkYWJsZSAoYWJmZCk7CisgIHJldHVy biBhYmZkOworfQorCisvKgkuc2VjdGlvbgkucmRhdGEKKyAJLnJ2YQkJX19w ZWkzODZfcnVudGltZV9yZWxvY2F0b3IgKi8KKworc3RhdGljIGJmZCAqCitw ZV9jcmVhdGVfcnVudGltZV9yZWxvY2F0b3JfcmVmZXJlbmNlIChwYXJlbnQp CisgICAgIGJmZCAqcGFyZW50OworeworICBhc2VjdGlvbiAqZXh0ZXJuX3J0 X3JlbDsKKyAgdW5zaWduZWQgY2hhciAqZXh0ZXJuX3J0X3JlbF9kOworICBj aGFyICpvbmFtZTsKKyAgYmZkICphYmZkOworCisgIG9uYW1lID0gKGNoYXIg KikgeG1hbGxvYyAoMjApOworICBzcHJpbnRmIChvbmFtZSwgImVydHIlMDZk Lm8iLCB0bXBfc2VxKTsKKyAgdG1wX3NlcSsrOworCisgIGFiZmQgPSBiZmRf Y3JlYXRlIChvbmFtZSwgcGFyZW50KTsKKyAgYmZkX2ZpbmRfdGFyZ2V0IChw ZV9kZXRhaWxzLT5vYmplY3RfdGFyZ2V0LCBhYmZkKTsKKyAgYmZkX21ha2Vf d3JpdGFibGUgKGFiZmQpOworCisgIGJmZF9zZXRfZm9ybWF0IChhYmZkLCBi ZmRfb2JqZWN0KTsKKyAgYmZkX3NldF9hcmNoX21hY2ggKGFiZmQsIHBlX2Rl dGFpbHMtPmJmZF9hcmNoLCAwKTsKKworICBzeW1wdHIgPSAwOworICBzeW10 YWIgPSAoYXN5bWJvbCAqKikgeG1hbGxvYyAoMiAqIHNpemVvZiAoYXN5bWJv bCAqKSk7CisgIGV4dGVybl9ydF9yZWwgPSBxdWlja19zZWN0aW9uIChhYmZk LCAiLnJkYXRhIiwgU0VDX0hBU19DT05URU5UUywgMik7CisKKyAgcXVpY2tf c3ltYm9sIChhYmZkLCAiIiwgIl9fcGVpMzg2X3J1bnRpbWVfcmVsb2NhdG9y IiwgIiIsIFVORFNFQywgQlNGX05PX0ZMQUdTLCAwKTsKKworICBiZmRfc2V0 X3NlY3Rpb25fc2l6ZSAoYWJmZCwgZXh0ZXJuX3J0X3JlbCwgNCk7CisgIGV4 dGVybl9ydF9yZWxfZCA9ICh1bnNpZ25lZCBjaGFyICopIHhtYWxsb2MgKDQp OworICBleHRlcm5fcnRfcmVsLT5jb250ZW50cyA9IGV4dGVybl9ydF9yZWxf ZDsKKworICBxdWlja19yZWxvYyAoYWJmZCwgMCwgQkZEX1JFTE9DX1JWQSwg MSk7CisgIHNhdmVfcmVsb2NzIChleHRlcm5fcnRfcmVsKTsKKworICBiZmRf c2V0X3N5bXRhYiAoYWJmZCwgc3ltdGFiLCBzeW1wdHIpOworCisgIGJmZF9z ZXRfc2VjdGlvbl9jb250ZW50cyAoYWJmZCwgZXh0ZXJuX3J0X3JlbCwgZXh0 ZXJuX3J0X3JlbF9kLCAwLCA0KTsKKworICBiZmRfbWFrZV9yZWFkYWJsZSAo YWJmZCk7CisgIHJldHVybiBhYmZkOworfQorCiB2b2lkCi1wZV9jcmVhdGVf aW1wb3J0X2ZpeHVwIChyZWwpCitwZV9jcmVhdGVfaW1wb3J0X2ZpeHVwIChy ZWwsIHMsIGFkZGVuZCkKICAgICAgYXJlbGVudCAqcmVsOworICAgICBhc2Vj dGlvbiAqczsKKyAgICAgaW50IGFkZGVuZDsKIHsKICAgY2hhciBidWZbMzAw XTsKQEAgLTIwNzcsNCArMjE3OCw1IEBAIHBlX2NyZWF0ZV9pbXBvcnRfZml4 dXAgKHJlbCkKICAgY29uc3QgY2hhciAqbmFtZSA9IHN5bS0+bmFtZTsKICAg Y2hhciAqZml4dXBfbmFtZSA9IG1ha2VfaW1wb3J0X2ZpeHVwX21hcmsgKHJl bCk7CisgIGJmZCAqYjsKIAogICBzcHJpbnRmIChidWYsIFUgKCJfbm1fdGhu a18lcyIpLCBuYW1lKTsKQEAgLTIwOTEsMTIgKzIxOTMsMzYgQEAgcGVfY3Jl YXRlX2ltcG9ydF9maXh1cCAocmVsKQogICAgIH0KIAotICB7Ci0gICAgZXh0 ZXJuIGNoYXIgKiBwZV9kYXRhX2ltcG9ydF9kbGw7Ci0gICAgY2hhciAqIGRs bF9zeW1uYW1lID0gcGVfZGF0YV9pbXBvcnRfZGxsID8gcGVfZGF0YV9pbXBv cnRfZGxsIDogInVua25vd24iOworICBpZiAoYWRkZW5kID09IDAgfHwgbGlu a19pbmZvLnBlaTM4Nl9ydW50aW1lX3BzZXVkb19yZWxvYykKKyAgICB7Cisg ICAgICBleHRlcm4gY2hhciAqIHBlX2RhdGFfaW1wb3J0X2RsbDsKKyAgICAg IGNoYXIgKiBkbGxfc3ltbmFtZSA9IHBlX2RhdGFfaW1wb3J0X2RsbCA/IHBl X2RhdGFfaW1wb3J0X2RsbCA6ICJ1bmtub3duIjsKIAotICAgIGJmZCAqYiA9 IG1ha2VfaW1wb3J0X2ZpeHVwX2VudHJ5IChuYW1lLCBmaXh1cF9uYW1lLCBk bGxfc3ltbmFtZSwKLQkJCQkgICAgICBvdXRwdXRfYmZkKTsKLSAgICBhZGRf YmZkX3RvX2xpbmsgKGIsIGItPmZpbGVuYW1lLCAmbGlua19pbmZvKTsKLSAg fQorICAgICAgYiA9IG1ha2VfaW1wb3J0X2ZpeHVwX2VudHJ5IChuYW1lLCBm aXh1cF9uYW1lLCBkbGxfc3ltbmFtZSwgb3V0cHV0X2JmZCk7CisgICAgICBh ZGRfYmZkX3RvX2xpbmsgKGIsIGItPmZpbGVuYW1lLCAmbGlua19pbmZvKTsK KyAgICB9CisKKyAgaWYgKGFkZGVuZCAhPSAwKQorICAgIHsKKyAgICAgIGlm IChsaW5rX2luZm8ucGVpMzg2X3J1bnRpbWVfcHNldWRvX3JlbG9jKQorCXsK KwkgIGlmIChwZV9kbGxfZXh0cmFfcGVfZGVidWcpCisJICAgIHByaW50ZiAo ImNyZWF0aW5nIHJ1bnRpbWUgcHNldWRvLXJlbG9jIGVudHJ5IGZvciAlcyAo YWRkZW5kPSVkKVxuIiwKKwkJICAgZml4dXBfbmFtZSwgYWRkZW5kKTsKKwkg IGIgPSBtYWtlX3J1bnRpbWVfcHNldWRvX3JlbG9jIChuYW1lLCBmaXh1cF9u YW1lLCBhZGRlbmQsIG91dHB1dF9iZmQpOworCSAgYWRkX2JmZF90b19saW5r IChiLCBiLT5maWxlbmFtZSwgJmxpbmtfaW5mbyk7CisJICBpZiAocnVudGlt ZV9wc2V1ZG9fcmVsb2NzX2NyZWF0ZWQgPT0gMCkKKwkgICAgeworCSAgICAg IGIgPSBwZV9jcmVhdGVfcnVudGltZV9yZWxvY2F0b3JfcmVmZXJlbmNlIChv dXRwdXRfYmZkKTsKKwkgICAgICBhZGRfYmZkX3RvX2xpbmsgKGIsIGItPmZp bGVuYW1lLCAmbGlua19pbmZvKTsKKwkgICAgfQorCSAgcnVudGltZV9wc2V1 ZG9fcmVsb2NzX2NyZWF0ZWQrKzsKKwl9IAorICAgICAgZWxzZQorCXsKKwkg IGVpbmZvIChfKCIlQzogdmFyaWFibGUgJyVUJyBjYW4ndCBiZSBhdXRvLWlt cG9ydGVkLiBQbGVhc2UgcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbGQn cyAtLWVuYWJsZS1hdXRvLWltcG9ydCBmb3IgZGV0YWlscy5cbiIpLAorCQkg cy0+b3duZXIsIHMsIHJlbC0+YWRkcmVzcywgc3ltLT5uYW1lKTsKKwkgIGVp bmZvICgiJVgiKTsKKwl9CisgICAgfQogfQogCkluZGV4OiBwZS1kbGwuaAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3ViZXJiYXVt L2xkL3BlLWRsbC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjgKZGlmZiAt dSAtcCAtMiAtcjEuOCBwZS1kbGwuaAotLS0gcGUtZGxsLmgJOCBKdW4gMjAw MiAwNzozOTo0NSAtMDAwMAkxLjgKKysrIHBlLWRsbC5oCTIgSnVsIDIwMDIg MTE6Mzc6MzIgLTAwMDAKQEAgLTUxLDQgKzUxLDQgQEAgZXh0ZXJuIHZvaWQg cGVfd2Fsa19yZWxvY3Nfb2Zfc3ltYm9sIFBBUgogCQkJCQkgICAgICBpbnQg KCpjYikgKGFyZWxlbnQgKiwgYXNlY3Rpb24gKikpKTsKIAotZXh0ZXJuIHZv aWQgcGVfY3JlYXRlX2ltcG9ydF9maXh1cCBQQVJBTVMgKChhcmVsZW50ICog cmVsKSk7CitleHRlcm4gdm9pZCBwZV9jcmVhdGVfaW1wb3J0X2ZpeHVwIFBB UkFNUyAoKGFyZWxlbnQgKiByZWwsIGFzZWN0aW9uICogcywgaW50IGFkZGVu ZCkpOwogI2VuZGlmIC8qIFBFX0RMTF9IICovCkluZGV4OiBlbXVsdGVtcGwv cGUuZW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy91 YmVyYmF1bS9sZC9lbXVsdGVtcGwvcGUuZW0sdgpyZXRyaWV2aW5nIHJldmlz aW9uIDEuNjUKZGlmZiAtdSAtcCAtMiAtcjEuNjUgcGUuZW0KLS0tIGVtdWx0 ZW1wbC9wZS5lbQkxIEp1bCAyMDAyIDA4OjA3OjMxIC0wMDAwCTEuNjUKKysr IGVtdWx0ZW1wbC9wZS5lbQkyIEp1bCAyMDAyIDExOjM3OjM3IC0wMDAwCkBA IC0xNzUsNCArMTc1LDUgQEAgZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2JlZm9y ZV9wYXJzZSgpCiAgIGNvbmZpZy5oYXNfc2hhcmVkID0gMTsKICAgbGlua19p bmZvLnBlaTM4Nl9hdXRvX2ltcG9ydCA9IC0xOworICBsaW5rX2luZm8ucGVp Mzg2X3J1bnRpbWVfcHNldWRvX3JlbG9jID0gZmFsc2U7CiAKICNpZiAoUEVf REVGX1NVQlNZU1RFTSA9PSA5KSB8fCAoUEVfREVGX1NVQlNZU1RFTSA9PSAy KQpAQCAtMjIzLDQgKzIyNCw4IEBAIGdsZF8ke0VNVUxBVElPTl9OQU1FfV9i ZWZvcmVfcGFyc2UoKQogI2RlZmluZSBPUFRJT05fRU5BQkxFX0VYVFJBX1BF X0RFQlVHCShPUFRJT05fRExMX0RJU0FCTEVfQVVUT19JTVBPUlQgKyAxKQog I2RlZmluZSBPUFRJT05fRVhDTFVERV9MSUJTCQkoT1BUSU9OX0VOQUJMRV9F WFRSQV9QRV9ERUJVRyArIDEpCisjZGVmaW5lIE9QVElPTl9ETExfRU5BQkxF X1JVTlRJTUVfUFNFVURPX1JFTE9DCVwKKwkJCQkoT1BUSU9OX0VYQ0xVREVf TElCUyArIDEpCisjZGVmaW5lIE9QVElPTl9ETExfRElTQUJMRV9SVU5USU1F X1BTRVVET19SRUxPQwlcCisJCQkJKE9QVElPTl9ETExfRU5BQkxFX1JVTlRJ TUVfUFNFVURPX1JFTE9DICsgMSkKIAogc3RhdGljIHN0cnVjdCBvcHRpb24g bG9uZ29wdHNbXSA9IHsKQEAgLTI2NCw0ICsyNjksNiBAQCBzdGF0aWMgc3Ry dWN0IG9wdGlvbiBsb25nb3B0c1tdID0gewogICB7ImRpc2FibGUtYXV0by1p bXBvcnQiLCBub19hcmd1bWVudCwgTlVMTCwgT1BUSU9OX0RMTF9ESVNBQkxF X0FVVE9fSU1QT1JUfSwKICAgeyJlbmFibGUtZXh0cmEtcGUtZGVidWciLCBu b19hcmd1bWVudCwgTlVMTCwgT1BUSU9OX0VOQUJMRV9FWFRSQV9QRV9ERUJV R30sCisgIHsiZW5hYmxlLXJ1bnRpbWUtcHNldWRvLXJlbG9jIiwgbm9fYXJn dW1lbnQsIE5VTEwsIE9QVElPTl9ETExfRU5BQkxFX1JVTlRJTUVfUFNFVURP X1JFTE9DfSwKKyAgeyJkaXNhYmxlLXJ1bnRpbWUtcHNldWRvLXJlbG9jIiwg bm9fYXJndW1lbnQsIE5VTEwsIE9QVElPTl9ETExfRElTQUJMRV9SVU5USU1F X1BTRVVET19SRUxPQ30sCiAjZW5kaWYKICAge05VTEwsIG5vX2FyZ3VtZW50 LCBOVUxMLCAwfQpAQCAtMzUzLDQgKzM2MCw4IEBAIGdsZF8ke0VNVUxBVElP Tl9OQU1FfV9saXN0X29wdGlvbnMgKGZpbGUKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9faW1wX3N5bSBmb3IgREFUQSByZWZl cmVuY2VzXG4iKSk7CiAgIGZwcmludGYgKGZpbGUsIF8oIiAgLS1kaXNhYmxl LWF1dG8taW1wb3J0ICAgICAgICAgICAgICBEbyBub3QgYXV0by1pbXBvcnQg REFUQSBpdGVtcyBmcm9tIERMTHNcbiIpKTsKKyAgZnByaW50ZiAoZmlsZSwg XygiICAtLWVuYWJsZS1ydW50aW1lLXBzZXVkby1yZWxvYyAgICAgIFdvcmsg YXJvdW5kIGF1dG8taW1wb3J0IGxpbWl0YXRpb25zIGJ5XG5cCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpbmcgcHNldWRv LXJlbG9jYXRpb25zIHJlc29sdmVkIGF0IHJ1bnRpbWUuXG4iKSk7CisgIGZw cmludGYgKGZpbGUsIF8oIiAgLS1kaXNhYmxlLXJ1bnRpbWUtcHNldWRvLXJl bG9jICAgICBEbyBub3QgYWRkIHJ1bnRpbWUgcHNldWRvLXJlbG9jYXRpb25z IGZvclxuXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXV0by1pbXBvcnRlZCBEQVRBLlxuIikpOwogICBmcHJpbnRmIChmaWxl LCBfKCIgIC0tZW5hYmxlLWV4dHJhLXBlLWRlYnVnICAgICAgICAgICAgRW5h YmxlIHZlcmJvc2UgZGVidWcgb3V0cHV0IHdoZW4gYnVpbGRpbmdcblwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGxpbmtp bmcgdG8gRExMcyAoZXNwLiBhdXRvLWltcG9ydClcbiIpKTsKQEAgLTYzNCw0 ICs2NDUsMTAgQEAgZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3Mo YXJnYywgYQogICAgICAgbGlua19pbmZvLnBlaTM4Nl9hdXRvX2ltcG9ydCA9 IDA7CiAgICAgICBicmVhazsKKyAgICBjYXNlIE9QVElPTl9ETExfRU5BQkxF X1JVTlRJTUVfUFNFVURPX1JFTE9DOgorICAgICAgbGlua19pbmZvLnBlaTM4 Nl9ydW50aW1lX3BzZXVkb19yZWxvYyA9IDE7CisgICAgICBicmVhazsKKyAg ICBjYXNlIE9QVElPTl9ETExfRElTQUJMRV9SVU5USU1FX1BTRVVET19SRUxP QzoKKyAgICAgIGxpbmtfaW5mby5wZWkzODZfcnVudGltZV9wc2V1ZG9fcmVs b2MgPSAwOworICAgICAgYnJlYWs7CiAgICAgY2FzZSBPUFRJT05fRU5BQkxF X0VYVFJBX1BFX0RFQlVHOgogICAgICAgcGVfZGxsX2V4dHJhX3BlX2RlYnVn ID0gMTsKQEAgLTg4MSwxMiArODk4LDUgQEAgbWFrZV9pbXBvcnRfZml4dXAg KHJlbCwgcykKICAgICAgIH0KIAotICAgIGlmIChhZGRlbmQgPT0gMCkKLSAg ICAgIHBlX2NyZWF0ZV9pbXBvcnRfZml4dXAgKHJlbCk7Ci0gICAgZWxzZQot ICAgICAgewotICAgICAgICBlaW5mbyAoXygiJUM6IHZhcmlhYmxlICclVCcg Y2FuJ3QgYmUgYXV0by1pbXBvcnRlZC4gUGxlYXNlIHJlYWQgdGhlIGRvY3Vt ZW50YXRpb24gZm9yIGxkJ3MgLS1lbmFibGUtYXV0by1pbXBvcnQgZm9yIGRl dGFpbHMuXG4iKSwKLSAgICAgICAgICAgICAgIHMtPm93bmVyLCBzLCByZWwt PmFkZHJlc3MsIHN5bS0+bmFtZSk7Ci0gICAgICAgIGVpbmZvICgiJVgiKTsK LSAgICAgIH0KKyAgICBwZV9jcmVhdGVfaW1wb3J0X2ZpeHVwIChyZWwsIHMs IGFkZGVuZCk7CiAgIH0KIApJbmRleDogc2NyaXB0dGVtcGwvcGUuc2MKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy91YmVyYmF1bS9s ZC9zY3JpcHR0ZW1wbC9wZS5zYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41 CmRpZmYgLXUgLXAgLTIgLXIxLjUgcGUuc2MKLS0tIHNjcmlwdHRlbXBsL3Bl LnNjCTE2IEphbiAyMDAyIDAxOjQ4OjQzIC0wMDAwCTEuNQorKysgc2NyaXB0 dGVtcGwvcGUuc2MJMiBKdWwgMjAwMiAxMTozNzozNyAtMDAwMApAQCAtODYs NCArODYsNyBAQCBTRUNUSU9OUwogICAgICR7Ul9SREFUQX0KICAgICAqKC5l aF9mcmFtZSkKKyAgICBfX19SVU5USU1FX1BTRVVET19SRUxPQ19MSVNUX18g PSAuOyBfX1JVTlRJTUVfUFNFVURPX1JFTE9DX0xJU1RfXyA9IC4gOworICAg ICooLnJkYXRhX3J1bnRpbWVfcHNldWRvX3JlbG9jKQorICAgIF9fX1JVTlRJ TUVfUFNFVURPX1JFTE9DX0xJU1RfRU5EX18gPSAuOyBfX1JVTlRJTUVfUFNF VURPX1JFTE9DX0xJU1RfRU5EX18gPSAuIDsKICAgfQogCg== ------------11810A2503C44A528 Content-Type: application/octet-stream; name="crtest.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="crtest.c" Content-length: 2034 I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1 ZGUgImNydGVzdC5oIgoKI2lmIGRlZmluZWQoX19DWUdXSU5fXykKIyAgZGVm aW5lIEhBVkVfRk9SSwojZW5kaWYKCiNpZiAhZGVmaW5lZChSVU5USU1FX1BT RVVET19SRUxPQ19TVVBQT1JUKQojaW5jbHVkZSA8d2luZG93cy5oPgp0eXBl ZGVmIHN0cnVjdAogIHsKICAgIERXT1JEIGFkZGVuZDsKICAgIERXT1JEIHRh cmdldDsKICB9CnJ1bnRpbWVfcHNldWRvX3JlbG9jOwoKZXh0ZXJuIHJ1bnRp bWVfcHNldWRvX3JlbG9jIF9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9f OwpleHRlcm4gcnVudGltZV9wc2V1ZG9fcmVsb2MgX19SVU5USU1FX1BTRVVE T19SRUxPQ19MSVNUX0VORF9fOwpleHRlcm4gdm9pZCogX2RhdGFfc3RhcnRf XzsKZXh0ZXJuIHZvaWQqIF9pbWFnZV9iYXNlX187Cgp2b2lkCl9wZWkzODZf cnVudGltZV9yZWxvY2F0b3IgKHJ1bnRpbWVfcHNldWRvX3JlbG9jKiBzdGFy dCwgcnVudGltZV9wc2V1ZG9fcmVsb2MqIGVuZCkKewogIERXT1JEIHJlbG9j X3RhcmdldDsKICBydW50aW1lX3BzZXVkb19yZWxvYyogcjsKICBmb3IgKHIg PSBzdGFydDsgciA8IGVuZDsgcisrKQogICAgewogICAgICBwcmludGYgKCJw dHI9JXgsIGFkZGVuZD0lZFxuIiwgKGxvbmcpci0+dGFyZ2V0LCByLT5hZGRl bmQpOwogICAgICByZWxvY190YXJnZXQgPSAoRFdPUkQpICZfaW1hZ2VfYmFz ZV9fICsgci0+dGFyZ2V0OwogICAgICBwcmludGYgKCJyZWxvYyB0YXJnZXQ9 JXhcbiIsIHJlbG9jX3RhcmdldCk7CiAgICAgICooKERXT1JEKikgcmVsb2Nf dGFyZ2V0KSArPSByLT5hZGRlbmQ7CiAgICB9Cn0KI2VuZGlmCgp2b2lkCnBy aW50X2RhdGEgKCkKewogIHByaW50ZiAoImRhdGE9JWQgJWQgJWNcbiIsIGZv b1swXS54LCBmb29bMV0ueVsyXSwgZm9vWzFdLnpbMV0pOwp9CgppbnQKbWFp biAoKQp7CiAgaW50IHBpZDsKI2lmICFkZWZpbmVkKFJVTlRJTUVfUFNFVURP X1JFTE9DX1NVUFBPUlQpCiAgX3BlaTM4Nl9ydW50aW1lX3JlbG9jYXRvciAo Jl9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9fLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZfX1JVTlRJTUVfUFNFVURPX1JFTE9DX0xJU1Rf RU5EX18pOwojZW5kaWYKI2lmIGRlZmluZWQoUlVOVElNRV9QU0VVRE9fUkVM T0NfU1VQUE9SVCkgJiYgZGVmaW5lZChIQVZFX0ZPUkspCiAgc3dpdGNoIChw aWQgPSBmb3JrICgpKQogICAgewogICAgY2FzZSAtMToKICAgICAgcGVycm9y ICgiZm9yayIpOwogICAgICBicmVhazsKICAgIGNhc2UgMDoKICAgICAgcHJp bnRmICgiY2hpbGQ6ICIpOwogICAgICBwcmludF9kYXRhICgpOwogICAgICBi cmVhazsKICAgIGRlZmF1bHQ6CiAgICAgIHdhaXQgKE5VTEwpOwogICAgICBw cmludGYgKCJwYXJlbnQ6ICIpOwogICAgICBwcmludF9kYXRhICgpOwogICAg ICBicmVhazsKICAgIH0KI2Vsc2UKICBwcmludF9kYXRhICgpOwojZW5kaWYK ICByZXR1cm4gMDsKfQo= ------------11810A2503C44A528 Content-Type: application/octet-stream; name="crtest.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="crtest.h" Content-length: 127 dHlwZWRlZiBzdHJ1Y3QKICB7CiAgICBpbnQgeDsKICAgIGludCB5WzNdOwog ICAgY2hhciB6WzNdOwogIH0KZm9vX3Q7CgpleHRlcm4gZm9vX3QgZm9vWzJd Owo= ------------11810A2503C44A528 Content-Type: application/octet-stream; name="crtest_dll.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="crtest_dll.c" Content-length: 175 I2luY2x1ZGUgImNydGVzdC5oIgoKZm9vX3QgZm9vWzJdID0geyB7MSwgezEx LCAxMiwgMTN9LCB7J2EnLCAnYicsICdjJ319LAogICAgICAgICAgICAgICAg IHsyLCB7MjEsIDIyLCAyM30sIHsnZCcsICdlJywgJ2YnfX19Owo= ------------11810A2503C44A528 Content-Type: application/octet-stream; name=Makefile Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=Makefile Content-length: 1176 IyBtaW5ndwojIENDPWdjYyAtbW5vLWN5Z3dpbgojIENGTEFHUz0tZzMgLUkg LiAtRE5PX1JVTlRJTUVfUFNFVURPX1JFTE9DX1NVUFBPUlQKCiMgY3lnd2lu IHcvbyBydW50aW1lIHBzZXVkbyByZWxvYyBzdXBwb3J0CkNDPWdjYwpDRkxB R1M9LWczIC1JIC4gLUROT19SVU5USU1FX1BTRVVET19SRUxPQ19TVVBQT1JU CgojIGN5Z3dpbiB3aXRoIHJ1bnRpbWUgcHNldWRvIHJlbG9jIHN1cHBvcnQK IyBDQz1nY2MKIyBDRkxBR1M9LWczIC1JIC4gLURSVU5USU1FX1BTRVVET19S RUxPQ19TVVBQT1JUCgpETExfTERGTEFHUz0tV2wsLS1leHBvcnQtYWxsLXN5 bWJvbHMgLVdsLC0tb3V0LWltcGxpYj1saWJjcnRlc3QuZGxsLmEKRVhFX0xE RkxBR1M9LVdsLC0tZW5hYmxlLWF1dG8taW1wb3J0IC1XbCwtLWVuYWJsZS1y dW50aW1lLXBzZXVkby1yZWxvYwojIERFQlVHX0xERkxBR1M9LVdsLC0tZW5h YmxlLWV4dHJhLXBlLWRlYnVnIC1XbCwtLXZlcmJvc2UKCmFsbDogY3J0ZXN0 LmV4ZSBjcnRlc3QuZGxsCgpjcnRlc3RfZGxsLm86IGNydGVzdF9kbGwuYwoJ JChDQykgJChDRkxBR1MpIC1jICQ8CgpjcnRlc3QubzogY3J0ZXN0LmMKCSQo Q0MpICQoQ0ZMQUdTKSAtYyAkPAoKY3J0ZXN0LmRsbCBsaWJjcnRlc3QuZGxs LmE6IGNydGVzdF9kbGwubwoJJChDQykgLXNoYXJlZCAtbyBjcnRlc3QuZGxs ICQoRExMX0xERkxBR1MpICQ8CgpjcnRlc3QuZXhlOiBjcnRlc3QubyBsaWJj cnRlc3QuZGxsLmEKCSQoQ0MpICQoRVhFX0xERkxBR1MpICQoREVCVUdfTERG TEFHUykgLW8gY3J0ZXN0LmV4ZSBjcnRlc3QubyAtTC4gLWxjcnRlc3QKCi5Q SE9OWTogY2xlYW4KCmNsZWFuOgoJcm0gLWYgKi5vICouYSBjcnRlc3QuZXhl IGNydGVzdC5kbGwK ------------11810A2503C44A528--