From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20306 invoked by alias); 8 Apr 2008 05:42:32 -0000 Received: (qmail 20297 invoked by uid 22791); 8 Apr 2008 05:42:29 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 08 Apr 2008 05:41:54 +0000 Received: from zps37.corp.google.com (zps37.corp.google.com [172.25.146.37]) by smtp-out.google.com with ESMTP id m385fifx019165 for ; Tue, 8 Apr 2008 06:41:45 +0100 Received: from wr-out-0506.google.com (wrac37.prod.google.com [10.54.54.37]) by zps37.corp.google.com with ESMTP id m385fh05012915 for ; Mon, 7 Apr 2008 22:41:43 -0700 Received: by wr-out-0506.google.com with SMTP id c37so28007672wra.25 for ; Mon, 07 Apr 2008 22:41:43 -0700 (PDT) Received: by 10.115.60.1 with SMTP id n1mr7031168wak.37.1207633302674; Mon, 07 Apr 2008 22:41:42 -0700 (PDT) Received: by 10.115.107.18 with HTTP; Mon, 7 Apr 2008 22:41:42 -0700 (PDT) Message-ID: Date: Tue, 08 Apr 2008 09:29:00 -0000 From: "Doug Evans" To: "GDB Patches" Subject: [RFA] patch for DW_AT_comp_dir/DW_AT_name vs .debug_line inconsistencies MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_21416_17341095.1207633302667" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-04/txt/msg00144.txt.bz2 ------=_Part_21416_17341095.1207633302667 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 404 I have an occasion to revisit this: http://sourceware.org/ml/gdb-patches/2007-11/msg00314.html Or in a different form: http://sourceware.org/ml/gdb-patches/2008-01/msg00103.html When we last left our story, watching for a single path mismatch of the main source file only seemed ok. That's what this patch does. It's just a minor revision of http://sourceware.org/ml/gdb-patches/2008-01/msg00103.html ------=_Part_21416_17341095.1207633302667 Content-Type: text/plain; name=gdb-080407-dwarf-decode-lines-3.patch.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fes1mukf0 Content-Disposition: attachment; filename=gdb-080407-dwarf-decode-lines-3.patch.txt Content-length: 33900 MjAwOC0wMS0wNiAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCUhh bmRsZSAuZGVidWdfbGluZSBpbmNvbnNpc3RlbmN5IHdpdGggRFdfQVRfY29t cF9kaXIvRFdfQVRfbmFtZS4KCSogZHdhcmYycmVhZC5jIChkd2FyZjJfc3Rh cnRfc3ViZmlsZSk6IERlbGV0ZS4KCShkd2FyZl9idWlsZF9zdWJmaWxlX25h bWVzLGR3YXJmX2ZyZWVfc3ViZmlsZV9uYW1lcyk6IE5ldyBmbnMuCgkoZHdh cmZfZGVjb2RlX2xpbmVzKTogTmV3IGFyZyBjdV9maWxlX25hbWUsIGFsbCBj YWxsZXJzIHVwZGF0ZWQuCglCdWlsZCB0YWJsZSBvZiBzdWJmaWxlIG5hbWVz IGF0IHRoZSBzdGFydCwgYW5kIHRoZW4gcGFzcyB0aGUgY29tcHV0ZWQKCW5h bWUgdG8gc3RhcnRfc3ViZmlsZS4KCgkqIGdkYi5kd2FyZjIvaGFzaGxpbmUx LmV4cDogTmV3IHRlc3RjYXNlLgoJKiBnZGIuZHdhcmYyL2hhc2hsaW5lMi5l eHA6IE5ldyB0ZXN0Y2FzZS4KCSogZ2RiLmR3YXJmMi9oYXNobGluZTIuZXhw OiBOZXcgdGVzdGNhc2UuCgpJbmRleDogZHdhcmYycmVhZC5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZHdh cmYycmVhZC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI1NApkaWZmIC11 IC1wIC11IC1wIC1yMS4yNTQgZHdhcmYycmVhZC5jCi0tLSBkd2FyZjJyZWFk LmMJMjYgTWFyIDIwMDggMTQ6NTM6MjggLTAwMDAJMS4yNTQKKysrIGR3YXJm MnJlYWQuYwk4IEFwciAyMDA4IDA0OjQyOjMwIC0wMDAwCkBAIC04NDUsMTAg Kzg0NSwxMyBAQCBzdGF0aWMgc3RydWN0IGxpbmVfaGVhZGVyICooZHdhcmZf ZGVjb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVk IGludCBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJm ZCAqYWJmZCwgc3RydWN0IGR3YXJmMl9jdSAqY3UpKTsKIAotc3RhdGljIHZv aWQgZHdhcmZfZGVjb2RlX2xpbmVzIChzdHJ1Y3QgbGluZV9oZWFkZXIgKiwg Y2hhciAqLCBiZmQgKiwKLQkJCQlzdHJ1Y3QgZHdhcmYyX2N1ICosIHN0cnVj dCBwYXJ0aWFsX3N5bXRhYiAqKTsKK3N0YXRpYyBjaGFyICoqZHdhcmZfYnVp bGRfc3ViZmlsZV9uYW1lcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwKKwkJ CQkJIGNoYXIgKmN1X2ZpbGVfbmFtZSwgY2hhciAqY29tcF9kaXIpOworCitz dGF0aWMgdm9pZCBkd2FyZl9mcmVlX3N1YmZpbGVfbmFtZXMgKHZvaWQgKm5h bWVzKTsKIAotc3RhdGljIHZvaWQgZHdhcmYyX3N0YXJ0X3N1YmZpbGUgKGNo YXIgKiwgY2hhciAqLCBjaGFyICopOworc3RhdGljIHZvaWQgZHdhcmZfZGVj b2RlX2xpbmVzIChzdHJ1Y3QgbGluZV9oZWFkZXIgKiwgY2hhciAqLCBjaGFy ICosIGJmZCAqLAorCQkJCXN0cnVjdCBkd2FyZjJfY3UgKiwgc3RydWN0IHBh cnRpYWxfc3ltdGFiICopOwogCiBzdGF0aWMgc3RydWN0IHN5bWJvbCAqbmV3 X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCB0eXBlICosCiAJ CQkJICBzdHJ1Y3QgZHdhcmYyX2N1ICopOwpAQCAtMTM5MCw3ICsxMzkzLDcg QEAgZHdhcmYyX2J1aWxkX2luY2x1ZGVfcHN5bXRhYnMgKHN0cnVjdCBkdwog ICBpZiAobGggPT0gTlVMTCkKICAgICByZXR1cm47ICAvKiBObyBsaW5ldGFi bGUsIHNvIG5vIGluY2x1ZGVzLiAgKi8KIAotICBkd2FyZl9kZWNvZGVfbGlu ZXMgKGxoLCBOVUxMLCBhYmZkLCBjdSwgcHN0KTsKKyAgZHdhcmZfZGVjb2Rl X2xpbmVzIChsaCwgTlVMTCwgTlVMTCwgYWJmZCwgY3UsIHBzdCk7CiAKICAg ZnJlZV9saW5lX2hlYWRlciAobGgpOwogfQpAQCAtMjg2Miw3ICsyODY1LDcg QEAgcmVhZF9maWxlX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcwog ICAgICAgICB7CiAgICAgICAgICAgY3UtPmxpbmVfaGVhZGVyID0gbGluZV9o ZWFkZXI7CiAgICAgICAgICAgbWFrZV9jbGVhbnVwIChmcmVlX2N1X2xpbmVf aGVhZGVyLCBjdSk7Ci0gICAgICAgICAgZHdhcmZfZGVjb2RlX2xpbmVzIChs aW5lX2hlYWRlciwgY29tcF9kaXIsIGFiZmQsIGN1LCBOVUxMKTsKKyAgICAg ICAgICBkd2FyZl9kZWNvZGVfbGluZXMgKGxpbmVfaGVhZGVyLCBuYW1lLCBj b21wX2RpciwgYWJmZCwgY3UsIE5VTEwpOwogICAgICAgICB9CiAgICAgfQog CkBAIC02ODA2LDE0ICs2ODA5LDIzOSBAQCBjaGVja19jdV9mdW5jdGlvbnMg KENPUkVfQUREUiBhZGRyZXNzLCBzCiAgIHJldHVybiBmbi0+bG93cGM7CiB9 CiAKKy8qIFN1YnJvdXRpbmUgb2YgZHdhcmZfZGVjb2RlX2xpbmVzIHRvIHNp bXBsaWZ5IGl0LgorICAgR2l2ZW4gbGluZV9oZWFkZXIgTEgsIGNvbXB1dGUg dGhlIHRhYmxlIG9mIGFzc29jaWF0ZWQgcGF0aCBuYW1lcyBvZiBmaWxlcwor ICAgdG8gcGFzcyB0byBzdGFydF9zdWJmaWxlLiAgVGhlIHJlc3VsdGluZyB0 YWJsZSBpcyBpbmRleGVkIHVzaW5nIHRoZSBzYW1lCisgICBmaWxlIG51bWJl ciBmb3IgbGgtPmZpbGVfbmFtZXMuICBTcGFjZSBmb3IgdGhlIHJlc3VsdGlu ZyB0YWJsZSBhbmQgc3RyaW5ncworICAgYXJlIGFsbG9jYXRlZCBzZXBhcmF0 ZWx5LCBhbmQgY2FuIGJlIGZyZWVkIHdpdGggZHdhcmZfZnJlZV9zdWJmaWxl X25hbWVzLgorICAgQ1VfRklMRV9OQU1FIGlzIHRoZSBEV19BVF9uYW1lIGVu dHJ5IG9mIHRoZSBDVS4KKyAgIENPTVBfRElSIGlzIHRoZSBEV19BVF9jb21w X2RpciBlbnRyeSBvZiB0aGUgQ1UuCisKKyAgIEJhY2tncm91bmQ6CisKKyAg IEVhY2ggRFdfVEFHX2NvbXBpbGVfdW5pdCBESUUgaGFzIGEgcGFpciBvZiBh dHRyaWJ1dGVzIERXX0FUX25hbWUgYW5kCisgICBEV19BVF9jb21wX2Rpci4g IEFsc28gd2l0aGluIHRoaXMgRElFIGlzIGEgRFdfQVRfc3RtdF9saXN0IGF0 dHJpYnV0ZSB0aGF0CisgICBpcyB1c2VkIHRvIGZldGNoIGxpbmUgbnVtYmVy IGluZm9ybWF0aW9uLiAgU2VlIHRoZSBEd2FyZjIgb3IgRHdhcmYzCisgICBT dGFuZGFyZHMgZm9yIGNvbXBsZXRlIGRldGFpbHMuICBGb3Igb3VyIHB1cnBv c2VzIGhlcmUgd2UgYXJlIG9ubHkKKyAgIGludGVyZXN0ZWQgaW4gZmlsZSBu YW1lcyBhbmQgdGhlaXIgcGF0aHMuICBDb25zdHJ1Y3RpbmcgYSBjb21wbGV0 ZSBwYXRoCisgICBuYW1lIGZvciBhIGZpbGUgdXNlcyB1cCB0byB0aHJlZSBw aWVjZXMgb2YgaW5mb3JtYXRpb246IHRoZSBmaWxlIG5hbWUgYXMKKyAgIHNw ZWNpZmllZCBpbiAuZGVidWdfbGluZSwgdGhlIGZpbGUncyBkaXJlY3Rvcnkg YXMgc3BlY2lmaWVkIGluIC5kZWJ1Z19saW5lLAorICAgYW5kIHRoZSBjb21w aWxhdGlvbiBkaXJlY3RvcnkuICBUaGUgbGF0dGVyIGlzIHVzZWQgd2hlbiBk aXJlY3RvcnkgbmFtZQorICAgKyBmaWxlIG5hbWUgeWllbGQgYSByZWxhdGl2 ZSBwYXRoIG5hbWUuCisKKyAgIENvbnN0cnVjdGluZyB0aGUgZnVsbCBwYXRo IG5hbWUgb2YgYSBmaWxlIGlzIHN0cmFpZ2h0Zm9yd2FyZC4gIFdlIGFzc3Vt ZQorICAgdGhlIGNvbXBpbGF0aW9uIGRpcmVjdG9yeSBhbmQgZmlsZSBuYW1l IGFyZSBzcGVjaWZpZWQuICBUaGUgZmlsZSdzCisgICBkaXJlY3RvcnkgbWF5 IG9yIG1heSBub3QgYmUgc3BlY2lmaWVkLiAgVHlwaWNhbGx5IHRoZSBmaWxl IG5hbWUsIGFzCisgICBlbmNvZGVkIGluIHRoZSAuZGVidWdfbGluZSBlbnRy eSwgaXMganVzdCB0aGUgZmlsZSBuYW1lIHdpdGggbm8gcGF0aAorICAgaW5m b3JtYXRpb24sIGJ1dCB3ZSBkb24ndCBhc3N1bWUgdGhhdCBoZXJlLgorCisg ICBbaW4gYysrIHBhcmxhbmNlXQorICAgc3RyaW5nCisgICBidWlsZF9mdWxs X3BhdGggKHN0cmluZyBjb21wX2Rpciwgc3RyaW5nIGZpbGVfZGlyLCBzdHJp bmcgZmlsZV9uYW1lKQorICAgeworICAgICBzdHJpbmcgZnVsbF9wYXRoID0g ZmlsZV9uYW1lOworICAgICBpZiAoISBhYnNvbHV0ZV9wYXRoX3AgKGZ1bGxf cGF0aCkpCisgICAgICAgeworICAgICAgICAgaWYgKGZpbGVfZGlyLmxlbmd0 aCAoKSAhPSAwKQorICAgICAgICAgICBmdWxsX3BhdGggPSBmaWxlX2RpciAr ICIvIiArIGZ1bGxfcGF0aDsKKyAgICAgICAgIGlmICghIGFic29sdXRlX3Bh dGhfcCAoZnVsbF9wYXRoKSkKKyAgICAgICAgICAgZnVsbF9wYXRoID0gY29t cF9kaXIgKyAiLyIgKyBmdWxsX3BhdGg7CisgICAgICAgfQorICAgICByZXR1 cm4gZnVsbF9wYXRoOworICAgfQorCisgICBzdGFydF9zdWJmaWxlIHRha2Vz IGNhcmUgb2YgcHJlcGVuZGluZyBjb21wX2RpciB3aGVuIG5lY2Vzc2FyeSBz byB3ZSBvbmx5CisgICBoYXZlIHRvIHRha2UgY2FyZSBvZiBwcmVwZW5kaW5n IGZpbGVfZGlyLgorCisgICBDb25zdHJ1Y3RpbmcgcGF0aCBuYW1lcyBjb3Jy ZWN0bHkgaXMgaW1wb3J0YW50IGJlY2F1c2UgR0RCIChlZmZlY3RpdmVseSkK KyAgIHVzZXMgc3RyY21wIHRvIGRlY2lkZSB3aGVuIGZpbGUgcGF0aHMgYXJl IGVxdWl2YWxlbnQuCisKKyAgIFVzaW5nIHRoZSBgbGlzdCcgZXhhbXBsZSBm cm9tIHRoZSBHREIgdGVzdHN1aXRlLCB3aGljaCByZXNpZGVzIGluCisgICAv c3JjZGlyIGFuZCBjb21waWxpbmcgaXQgd2l0aCBJcml4Ni4yIGNjIGluIC9j b21wZGlyIHVzaW5nIGEgZmlsZW5hbWUKKyAgIG9mIC9zcmNkaXIvbGlzdDAu YyB5aWVsZHMgdGhlIGZvbGxvd2luZyBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24g Zm9yIGxpc3QwLmM6CisKKyAgIERXX0FUX25hbWU6ICAgICAgICAgIC9zcmNk aXIvbGlzdDAuYworICAgRFdfQVRfY29tcF9kaXI6ICAgICAgL2NvbXBkaXIK KyAgIGZpbGVzLmZpbGVzWzBdLm5hbWU6IGxpc3QwLmgKKyAgIGZpbGVzLmZp bGVzWzBdLmRpcjogIC9zcmNkaXIKKyAgIGZpbGVzLmZpbGVzWzFdLm5hbWU6 IGxpc3QwLmMKKyAgIGZpbGVzLmZpbGVzWzFdLmRpcjogIC9zcmNkaXIKKwor ICAgVGhlIGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uIGZvciBsaXN0MC5jIGhh cyB0byBlbmQgdXAgaW4gYSBzaW5nbGUKKyAgIHN1YmZpbGUsIHNvIHRoYXQg YGJyZWFrIC9zcmNkaXIvbGlzdDAuYzoxJyB3b3JrcyBhcyBleHBlY3RlZC4K KyAgIHN0YXJ0X3N1YmZpbGUgd2lsbCBlbnN1cmUgdGhhdCB0aGlzIGhhcHBl bnMgcHJvdmlkZWQgdGhhdCB3ZSBwYXNzIHRoZQorICAgY29uY2F0ZW5hdGlv biBvZiBmaWxlcy5maWxlc1sxXS5kaXIgYW5kIGZpbGVzLmZpbGVzWzFdLm5h bWUgYXMgdGhlCisgICBzdWJmaWxlJ3MgbmFtZS4KKworICAgVXAgdW50aWwg bm93IGV2ZXJ5dGhpbmcgaGFzIGJlZW4gc3RyYWlnaHRmb3J3YXJkLgorICAg SGVyZSdzIHRoZSBwYXJ0IHRoYXQgcmVxdWlyZXMgZXh0cmEgZWZmb3J0Ogor CisgICBGb3IgdGhlIGNhc2Ugb2YgdGhlIG1haW4gc291cmNlIGZpbGUncyBs aW5lIG51bWJlciBpbmZvcm1hdGlvbiwKKyAgIHdoYXQgaWYgYnVpbGRfZnVs bF9wYXRoIChEV19BVF9jb21wX2RpciwgIiIsIERXX0FUX25hbWUpCisgICAh PSBidWlsZF9mdWxsX3BhdGggKERXX0FUX2NvbXBfZGlyLCBmaWxlX2Rpciwg ZmlsZV9uYW1lKSA/CisgICBTdWNoIGEgY2FzZSBpcyBhZG1pdHRlZGx5IGJ1 Z2d5IHRvIGJlZ2luIHdpdGguICBJdCBjb3VsZCBiZSBhIGNvbXBpbGVyIGJ1 ZworICAgb3IgaXQgY291bGQgYmUgYSBkaXN0cmlidXRlZCBidWlsZCBzeXN0 ZW0gcGxheWluZyBnYW1lcyB3aXRoIHRoZSBkZWJ1ZworICAgaW5mby4gIEJ1 dCBpdCBpcyBzb21ldGhpbmcgd2UgY2FuIGhhbmRsZSB3aXRoIGxpdHRsZSBy aXNrLgorCisgICBBbiBleGFtcGxlIGlzOgorICAgRFdfQVRfY29tcF9kaXIg PSAvdGVzdC9zcmMvb2JqCisgICBEV19BVF9uYW1lICAgICA9IC90ZXN0L3Ny Yy9tYWluLmNjCisgICBmaWxlX2RpciAgICAgICA9IC4uCisgICBmaWxlX25h bWUgICAgICA9IG1haW4uY2MKKworICAgc3RhcnRfc3ltdGFiIHdpbGwgZmly c3QgY2FsbCBzdGFydF9zdWJmaWxlIHRvIGNyZWF0ZSBhIHBzeW10YWIgZm9y CisgICAvdGVzdC9zcmMvbWFpbi5jYy4gIExhdGVyIC5kZWJ1Z19saW5lIGlu Zm8gd2lsbCBiZSByZWFkIGFuZCB0aGUgbGluZSBudW1iZXIKKyAgIGluZm8g Zm9yIG1haW4uY2Mgd2lsbCBiZSBmb3IgZmlsZSAvdGVzdC9zcmMvb2JqLy4u L21haW4uY2MuICBzdGFydF9zdWJmaWxlCisgICB3aWxsIGRlY2lkZSB0aGlz IGlzIGEgZGlmZmVyZW50IGZpbGUgdGhhbiAvdGVzdC9zcmMvbWFpbi5jYyBh bmQgR0RCIHdpbGwKKyAgIGxvc2UgdHJhY2sgb2YgdGhlIGxpbmUgbnVtYmVy IGluZm9ybWF0aW9uIGZvciB0aGlzIGZpbGUuICBUaGlzIHdpbGwgY2F1c2UK KyAgICJicmVhayBtYWluLmNjOjEwIiB0byBnZXQgdGhlIGVycm9yICJObyBs aW5lIDEwIGluIG1haW4uY2MuIgorCisgICBPbmUgcG90ZW50aWFsIHNvbHV0 aW9uIHRvIHRoaXMgcHJvYmxlbSBpcyB0byBoYXZlIHN0YXJ0X3N1YmZpbGUg Y2Fub25pY2FsaXplCisgICBwYXRoIG5hbWVzIGJlZm9yZSBjb21wYXJpbmcg dGhlbS4gIEkuZS4sIGNvbnZlcnQgL3Rlc3Qvc3JjL29iai8uLi9tYWluLmNj CisgICB0byAvdGVzdC9zcmMvbWFpbi5jYyBhbmQgdGhlbiBkbyB0aGUgY29t cGFyaXNvbi4gIEhvd2V2ZXIgdGhpcyBkb2Vzbid0CisgICBuZWNlc3Nhcmls eSB3b3JrLCBmb3IgZXhhbXBsZSwgaWYgb2JqIGlzIGEgc3ltbGluay4KKwor ICAgVGhlIHNvbHV0aW9uIGNob3NlbiBoZXJlIGlzIHRvIGhhbmRsZSB0aGUg Y2FzZSBvZiBwYXRoIG1pc21hdGNoIGZvciB0aGUKKyAgIG1haW4gc291cmNl IGZpbGUgb25seS4gIElmIHdlIGRvbid0IGZpbmQgYW4gZXhhY3QgbWF0Y2gg d2l0aCBEV19BVF9uYW1lLAorICAgd2UgbWF0Y2ggYmFzZW5hbWVzLCBhbmQg aWYgd2UgZmluZCBleGFjdGx5IG9uZSBmaWxlIHdpdGggdGhlIHNhbWUgYmFz ZW5hbWUsCisgICB3ZSBwYXNzIERXX0FUX25hbWUgdG8gc3RhcnRfc3ViZmls ZSBlbnN1cmluZyBhIG1hdGNoLiAgVGhpcyBsZXQncyB1cyBoYW5kbGUKKyAg IHRoZSByZXBvcnRlZCBjYXNlcyBvZiBwYXRoIG1pc21hdGNoIHdpdGggbGl0 dGxlIHJpc2sgb2YgYnJlYWtpbmcgdGhpbmdzLgorKi8KKworc3RhdGljIGNo YXIgKioKK2R3YXJmX2J1aWxkX3N1YmZpbGVfbmFtZXMgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsCisJCQkgICBjaGFyICpjdV9maWxlX25hbWUsIGNoYXIg KmNvbXBfZGlyKQoreworICAvKiBUaGlzIGlzIHRoZSByZXN1bHQuICAqLwor ICBjaGFyICoqbmFtZXMgPSAoY2hhciAqKikgeHphbGxvYyAoKGxoLT5udW1f ZmlsZV9uYW1lcyArIDEpICogc2l6ZW9mIChjaGFyKikpOworICAvKiBJZiA+ PTAsIHRoZSBpbmRleCBvZiB0aGUgZmlsZSB0aGF0IG1hdGNoZXMgYmFzZW5h bWUgKGN1X2ZpbGVfbmFtZSkuICAqLworICBpbnQgYmFzZV9tYXRjaGVzID0g LTE7CisgIGNvbnN0IGNoYXIgKmN1X2ZpbGVfYmFzZW5hbWUgPSBsYmFzZW5h bWUgKGN1X2ZpbGVfbmFtZSk7CisgIGNoYXIgKmN1X2ZpbGVfZnVsbG5hbWU7 CisgIC8qIFNldCB0byAxIGlmIGFuIGV4YWN0IG1hdGNoIGlzIGZvdW5kLiAg Ki8KKyAgaW50IGV4YWN0X21hdGNoX2ZvdW5kID0gMDsKKyAgLyogRm9yIG5v bi1leGFjdCBtYXRjaGVzLCB0aGUgbnVtYmVyIG9mIGJhc2VuYW1lIG1hdGNo ZXMuICAqLworICBpbnQgbnJfYmFzZW5hbWVfbWF0Y2hlcyA9IDA7CisgIGlu dCBpOworCisgIGN1X2ZpbGVfZnVsbG5hbWUgPSBjdV9maWxlX25hbWU7Cisg IGlmICghIElTX0FCU09MVVRFX1BBVEggKGN1X2ZpbGVfZnVsbG5hbWUpKQor ICAgIGN1X2ZpbGVfZnVsbG5hbWUgPSBjb25jYXQgKGNvbXBfZGlyLCBTTEFT SF9TVFJJTkcsIGN1X2ZpbGVfZnVsbG5hbWUsIE5VTEwpOworCisgIC8qIEJ1 aWxkIHRoZSByZXN1bHQuCisgICAgIFJlY29yZCBpZiB3ZSBmaW5kIGFuIGV4 YWN0IG1hdGNoLCBhbmQgY291bnQgdGhlIG51bWJlciBvZiBiYXNlbmFtZQor ICAgICBtYXRjaGVzLiAgKi8KKworICBmb3IgKGkgPSAwOyBpIDwgbGgtPm51 bV9maWxlX25hbWVzOyArK2kpCisgICAgeworICAgICAgc3RydWN0IGZpbGVf ZW50cnkgKmZlID0gJmxoLT5maWxlX25hbWVzW2ldOworICAgICAgY2hhciAq Zm5hbWUgPSBmZS0+bmFtZTsKKyAgICAgIGNvbnN0IGNoYXIgKmJuYW1lID0g bGJhc2VuYW1lIChmbmFtZSk7CisgICAgICAvKiBUaGUgZGlyZWN0b3J5IGVu dHJ5IGZyb20gLmRlYnVnX2xpbmUgb3IgTlVMTCBpZiBub3Qgc3BlY2lmaWVk LiAgKi8KKyAgICAgIGNoYXIgKmRpcjsKKyAgICAgIC8qIGZuYW1lIHdpdGgg ZGlyIHByZXBlbmRlZCBpZiBuZWNlc3NhcnkuICAqLworICAgICAgY2hhciAq Zm5hbWVfd2l0aF9kaXI7CisgICAgICAvKiBmbmFtZV93aXRoX2RpciB3aXRo IGNvbXBfZGlyIHByZXBlbmRlZCBpZiBuZWNlc3NhcnkuICAqLworICAgICAg Y2hhciAqZnVsbG5hbWU7CisKKyAgICAgIC8qIEEgZGlyZWN0b3J5IGluZGV4 IG9mIDAgbWVhbnMgdXNlIGNvbXBfZGlyLgorCSBPdGhlcndpc2UgaXQgaXMg YW4gb3JpZ2luLTEgYmFzZWQgaW5kZXggaW50byBJTkNMVURFX0RJUlMuCisJ IHN0YXJ0X3N1YmZpbGUgd2lsbCBwcmVwZW5kIGNvbXBfZGlyIHNvIHdlIGRv bid0IG5lZWQgdG8gZG8gdGhhdAorCSBoZXJlIChhbmQgaWYgYm90aCBmaWxl IGFuZCBjb21wX2RpciBhcmUgcmVsYXRpdmUgcGF0aHMgd2UKKwkgbXVzdG4n dCEpLiAgKi8KKyAgICAgIGRpciA9IE5VTEw7CisgICAgICBpZiAoZmUtPmRp cl9pbmRleCkKKwlkaXIgPSBsaC0+aW5jbHVkZV9kaXJzW2ZlLT5kaXJfaW5k ZXggLSAxXTsKKworICAgICAgaWYgKCEgSVNfQUJTT0xVVEVfUEFUSCAoZm5h bWUpICYmIGRpciAhPSBOVUxMKQorCWZuYW1lX3dpdGhfZGlyID0gY29uY2F0 IChkaXIsIFNMQVNIX1NUUklORywgZm5hbWUsIE5VTEwpOworICAgICAgZWxz ZQorCWZuYW1lX3dpdGhfZGlyID0geHN0cmR1cCAoZm5hbWUpOworCisgICAg ICBpZiAoISBJU19BQlNPTFVURV9QQVRIIChmbmFtZV93aXRoX2RpcikpCisJ ZnVsbG5hbWUgPSBjb25jYXQgKGNvbXBfZGlyLCBTTEFTSF9TVFJJTkcsIGZu YW1lX3dpdGhfZGlyLCBOVUxMKTsKKyAgICAgIGVsc2UKKwlmdWxsbmFtZSA9 IHhzdHJkdXAgKGZuYW1lX3dpdGhfZGlyKTsKKworICAgICAgaWYgKEZJTEVO QU1FX0NNUCAoZnVsbG5hbWUsIGN1X2ZpbGVfZnVsbG5hbWUpID09IDApCisJ eworCSAgLyogV2UgZm91bmQgYW4gZXhhY3QgbWF0Y2guCisJICAgICBJZiB0 aGVyZSBhcmUgbXVsdGlwbGUgZXhhY3QgbWF0Y2hlcywgc28gYmUgaXQsIG5v dCBtdWNoIGVsc2UKKwkgICAgIHdlIGNhbiBkby4gICovCisJICBleGFjdF9t YXRjaF9mb3VuZCA9IDE7CisJICAvKiBXZSBkb24ndCByZWNvcmQgdGhlIGZ1 bGwgcGF0aCBuYW1lIG9uIHB1cnBvc2UsIGFuZCBpbnN0ZWFkCisJICAgICBs ZXQgc3RhcnRfc3ViZmlsZSBwcmVwZW5kIGNvbXBfZGlyIGZvciBjb25zaXN0 ZW5jeS4gICovCisJICBuYW1lc1tpXSA9IHhzdHJkdXAgKGN1X2ZpbGVfbmFt ZSk7CisJICB4ZnJlZSAoZm5hbWVfd2l0aF9kaXIpOworCX0KKyAgICAgIGVs c2UgaWYgKHN0cmNtcCAoYm5hbWUsIGN1X2ZpbGVfYmFzZW5hbWUpID09IDAp CisJeworCSAgLyogVGhpcyBpcyB0aGUgdHJpY2t5IGNhc2UuICBSZWNvcmQg Zm5hbWVfd2l0aF9kaXIgZm9yIGxhdGVyIHVzZSBpbgorCSAgICAgdGhlIHNl Y29uZCBwYXNzLiAgVGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB3ZSB3YW50IHRv IHJldHVybiBpZiB3ZQorCSAgICAgZG8gZmluZCBhbiBleGFjdCBtYXRjaCBp biBhbm90aGVyIGZpbGUuICAqLworCSAgKytucl9iYXNlbmFtZV9tYXRjaGVz OworCSAgYmFzZV9tYXRjaGVzID0gaTsKKwkgIC8qIFJlY29yZCB0aGUgdmFs dWUgd2UnZCB1c2UgaWYgdGhlIGJhc2VuYW1lIGRpZG4ndCBtYXRjaC4KKwkg ICAgIFdlJ2xsIGxhdGVyIGZpeCB0aGlzIGlmIHRoaXMgaXMgdGhlIG9uZSBi YXNlbmFtZSBtYXRjaCBhbmQKKwkgICAgIHRoZXJlIHdlcmUgbm8gZXhhY3Qg bWF0Y2hlcy4gICovCisJICBuYW1lc1tpXSA9IGZuYW1lX3dpdGhfZGlyOwor CX0KKyAgICAgIGVsc2UgLyogY2FuJ3QgbWF0Y2ggc28gdXNlIGFzIGlzICov CisJeworCSAgbmFtZXNbaV0gPSBmbmFtZV93aXRoX2RpcjsKKwl9CisKKyAg ICAgIHhmcmVlIChmdWxsbmFtZSk7CisgICAgfQorCisgIC8qIElmIHdlIGRp ZG4ndCBmaW5kIGFuIGV4YWN0IG1hdGNoLCBidXQgdGhlcmUgaXMgZXhhY3Rs eSBvbmUgbm9uLWV4YWN0CisgICAgIG1hdGNoLCB1c2UgdGhhdC4gIEFueXRo aW5nIGVsc2UgZ2V0cyBpbnRvIGhldXJpc3RpY3MgYW5kIHRoZSByaXNrIG9m CisgICAgIGd1ZXNzaW5nIHdyb25nLiAgKi8KKworICBpZiAoISBleGFjdF9t YXRjaF9mb3VuZAorICAgICAgJiYgbnJfYmFzZW5hbWVfbWF0Y2hlcyA9PSAx KQorICAgIHsKKyAgICAgIGdkYl9hc3NlcnQgKGJhc2VfbWF0Y2hlcyA+PSAw KTsKKworICAgICAgeGZyZWUgKG5hbWVzW2Jhc2VfbWF0Y2hlc10pOworICAg ICAgbmFtZXNbYmFzZV9tYXRjaGVzXSA9IHhzdHJkdXAgKGN1X2ZpbGVfbmFt ZSk7CisgICAgfQorCisgIC8qIFRoZXJlJ3Mgbm8gcmVhbCBuZWVkIHRvIGRv IHRoaXMsIHRoZSBhcnJheSBpcyBhbGxvY2F0ZWQgd2l0aCB4emFsbG9jLgor ICAgICBUaGlzIGlzIGhlcmUgZm9yIGRvY3VtZW50YXRpb24uICAqLworICBu YW1lc1tsaC0+bnVtX2ZpbGVfbmFtZXNdID0gTlVMTDsKKworICBpZiAoY3Vf ZmlsZV9mdWxsbmFtZSAhPSBjdV9maWxlX25hbWUpCisgICAgeGZyZWUgKGN1 X2ZpbGVfZnVsbG5hbWUpOworCisgIHJldHVybiBuYW1lczsKK30KKworLyog VXRpbGl0eSB0byBmcmVlIHRoZSByZXN1bHQgb2YgZHdhcmZfYnVpbGRfc3Vi ZmlsZV9uYW1lcy4KKyAgIFZOQU1FUyBpcyBhIHZvaWQqIGJlY2F1c2UgdGhp cyBmdW5jdGlvbiBpcyBhbiBhcmd1bWVudCB0byBtYWtlX2NsZWFudXAuICAq LworCitzdGF0aWMgdm9pZAorZHdhcmZfZnJlZV9zdWJmaWxlX25hbWVzICh2 b2lkICp2bmFtZXMpCit7CisgIGludCBpOworICBjaGFyICoqbmFtZXMgPSAo Y2hhciAqKikgdm5hbWVzOworCisgIGZvciAoaSA9IDA7IG5hbWVzW2ldICE9 IE5VTEw7ICsraSkKKyAgICB4ZnJlZSAobmFtZXNbaV0pOworICB4ZnJlZSAo bmFtZXMpOworfQorCiAvKiBEZWNvZGUgdGhlIExpbmUgTnVtYmVyIFByb2dy YW0gKExOUCkgZm9yIHRoZSBnaXZlbiBsaW5lX2hlYWRlcgogICAgc3RydWN0 dXJlIGFuZCBDVS4gIFRoZSBhY3R1YWwgaW5mb3JtYXRpb24gZXh0cmFjdGVk IGFuZCB0aGUgdHlwZQogICAgb2Ygc3RydWN0dXJlcyBjcmVhdGVkIGZyb20g dGhlIExOUCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiBQU1QuCiAKICAgIDEu IElmIFBTVCBpcyBOVUxMLCB0aGVuIHRoaXMgcHJvY2VkdXJlIHVzZXMgdGhl IGRhdGEgZnJvbSB0aGUgcHJvZ3JhbQogICAgICAgdG8gY3JlYXRlIGFsbCBu ZWNlc3Nhcnkgc3ltYm9sIHRhYmxlcywgYW5kIHRoZWlyIGxpbmV0YWJsZXMu Ci0gICAgICBUaGUgY29tcGlsYXRpb24gZGlyZWN0b3J5IG9mIHRoZSBmaWxl IGlzIHBhc3NlZCBpbiBDT01QX0RJUiwKLSAgICAgIGFuZCBtdXN0IG5vdCBi ZSBOVUxMLgorICAgICAgVGhlIG5hbWUgb2YgdGhlIGZpbGUgKERXX0FUX25h bWUpIGlzIHBhc3NlZCBpbiBDVV9GSUxFX05BTUUsCisgICAgICBhbmQgbXVz dCBub3QgYmUgTlVMTC4gIEl0IGlzIHVzZWQgdG8gaGVscCByZXNvbHZlIGFt YmlndWl0aWVzIGluCisgICAgICB0aGUgLmRlY29kZV9saW5lIGluZm8uCisg ICAgICBUaGUgY29tcGlsYXRpb24gZGlyZWN0b3J5IG9mIHRoZSBmaWxlIChE V19BVF9jb21wX2RpcikgaXMgcGFzc2VkCisgICAgICBpbiBDT01QX0RJUiwg YW5kIG11c3Qgbm90IGJlIE5VTEwuCiAgICAKICAgIDIuIElmIFBTVCBpcyBu b3QgTlVMTCwgdGhpcyBwcm9jZWR1cmUgcmVhZHMgdGhlIHByb2dyYW0gdG8g ZGV0ZXJtaW5lCiAgICAgICB0aGUgbGlzdCBvZiBmaWxlcyBpbmNsdWRlZCBi eSB0aGUgdW5pdCByZXByZXNlbnRlZCBieSBQU1QsIGFuZApAQCAtNjgyMiwx MSArNzA1MCwxNiBAQCBjaGVja19jdV9mdW5jdGlvbnMgKENPUkVfQUREUiBh ZGRyZXNzLCBzCiAgICAgICBpcyBub3QgdXNlZCB0byBjb21wdXRlIHRoZSBm dWxsIG5hbWUgb2YgdGhlIHN5bXRhYiwgYW5kIHRoZXJlZm9yZQogICAgICAg b21pdHRpbmcgaXQgd2hlbiBidWlsZGluZyB0aGUgcGFydGlhbCBzeW10YWIg ZG9lcyBub3QgaW50cm9kdWNlCiAgICAgICB0aGUgcG90ZW50aWFsIGZvciBp bmNvbnNpc3RlbmN5IC0gYSBwYXJ0aWFsIHN5bXRhYiBhbmQgaXRzIGFzc29j aWF0ZWQKLSAgICAgIHN5bWJ0YWIgaGF2aW5nIGEgZGlmZmVyZW50IGZ1bGxu YW1lIC0pLiAgKi8KKyAgICAgIHN5bWJ0YWIgaGF2aW5nIGEgZGlmZmVyZW50 IGZ1bGxuYW1lKS4gIENVX0ZJTEVfTkFNRSBpcyBub3QgdXNlZCBpbiB0aGlz CisgICAgICBjYXNlIGVpdGhlci4KKworICAgTk9URTogbGgtPmluY2x1ZGVf ZGlycyBhbmQgbGgtPmZpbGVfbmFtZXMgYXJlIDAtYmFzZWQsIGJ1dCB0aGUK KyAgIGRpcmVjdG9yeSBhbmQgZmlsZSBuYW1lIG51bWJlcnMgaW4gdGhlIHN0 YXRlbWVudCBwcm9ncmFtIGFyZSAxLWJhc2VkLiAgKi8KIAogc3RhdGljIHZv aWQKLWR3YXJmX2RlY29kZV9saW5lcyAoc3RydWN0IGxpbmVfaGVhZGVyICps aCwgY2hhciAqY29tcF9kaXIsIGJmZCAqYWJmZCwKLQkJICAgIHN0cnVjdCBk d2FyZjJfY3UgKmN1LCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCkKK2R3 YXJmX2RlY29kZV9saW5lcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgY2hh ciAqY3VfZmlsZV9uYW1lLCBjaGFyICpjb21wX2RpciwKKwkJICAgIGJmZCAq YWJmZCwgc3RydWN0IGR3YXJmMl9jdSAqY3UsCisJCSAgICBzdHJ1Y3QgcGFy dGlhbF9zeW10YWIgKnBzdCkKIHsKICAgZ2RiX2J5dGUgKmxpbmVfcHRyLCAq ZXh0ZW5kZWRfZW5kOwogICBnZGJfYnl0ZSAqbGluZV9lbmQ7CkBAIC02ODM2 LDYgKzcwNjksMTQgQEAgZHdhcmZfZGVjb2RlX2xpbmVzIChzdHJ1Y3QgbGlu ZV9oZWFkZXIgKgogICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5v YmpmaWxlOwogICBjb25zdCBpbnQgZGVjb2RlX2Zvcl9wc3RfcCA9IChwc3Qg IT0gTlVMTCk7CiAgIHN0cnVjdCBzdWJmaWxlICpsYXN0X3N1YmZpbGUgPSBO VUxMLCAqZmlyc3Rfc3ViZmlsZSA9IGN1cnJlbnRfc3ViZmlsZTsKKyAgY2hh ciAqKnN1YmZpbGVfbmFtZXMgPSBOVUxMOworCisgIC8qIEJ1aWxkIHRhYmxl IG9mIG5hbWVzIHRvIHBhc3MgdG8gc3RhcnRfc3ViZmlsZS4gICovCisgIGlm ICghIGRlY29kZV9mb3JfcHN0X3ApCisgICAgeworICAgICAgc3ViZmlsZV9u YW1lcyA9IGR3YXJmX2J1aWxkX3N1YmZpbGVfbmFtZXMgKGxoLCBjdV9maWxl X25hbWUsIGNvbXBfZGlyKTsKKyAgICAgIG1ha2VfY2xlYW51cCAoZHdhcmZf ZnJlZV9zdWJmaWxlX25hbWVzLCBzdWJmaWxlX25hbWVzKTsKKyAgICB9CiAK ICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+c2VjdGlvbl9vZmZz ZXRzLCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CiAKQEAgLTY4NTcsMTYg KzcwOTgsOSBAQCBkd2FyZl9kZWNvZGVfbGluZXMgKHN0cnVjdCBsaW5lX2hl YWRlciAqCiAgICAgICBpZiAoIWRlY29kZV9mb3JfcHN0X3AgJiYgbGgtPm51 bV9maWxlX25hbWVzID49IGZpbGUpCiAJewogICAgICAgICAgIC8qIFN0YXJ0 IGEgc3ViZmlsZSBmb3IgdGhlIGN1cnJlbnQgZmlsZSBvZiB0aGUgc3RhdGUg bWFjaGluZS4gICovCi0JICAvKiBsaC0+aW5jbHVkZV9kaXJzIGFuZCBsaC0+ ZmlsZV9uYW1lcyBhcmUgMC1iYXNlZCwgYnV0IHRoZQotCSAgICAgZGlyZWN0 b3J5IGFuZCBmaWxlIG5hbWUgbnVtYmVycyBpbiB0aGUgc3RhdGVtZW50IHBy b2dyYW0KLQkgICAgIGFyZSAxLWJhc2VkLiAgKi8KLSAgICAgICAgICBzdHJ1 Y3QgZmlsZV9lbnRyeSAqZmUgPSAmbGgtPmZpbGVfbmFtZXNbZmlsZSAtIDFd OwotICAgICAgICAgIGNoYXIgKmRpciA9IE5VTEw7Ci0KLSAgICAgICAgICBp ZiAoZmUtPmRpcl9pbmRleCkKLSAgICAgICAgICAgIGRpciA9IGxoLT5pbmNs dWRlX2RpcnNbZmUtPmRpcl9pbmRleCAtIDFdOwotCi0JICBkd2FyZjJfc3Rh cnRfc3ViZmlsZSAoZmUtPm5hbWUsIGRpciwgY29tcF9kaXIpOworCSAgLyog RmlsZSBudW1iZXJzIGluIHRoZSBzdGF0ZW1lbnQgcHJvZ3JhbSBhcmUgMS1i YXNlZC4gICovCisJICBjaGFyICpmbmFtZSA9IHN1YmZpbGVfbmFtZXNbZmls ZSAtIDFdOworCSAgc3RhcnRfc3ViZmlsZSAoZm5hbWUsIGNvbXBfZGlyKTsK IAl9CiAKICAgICAgIC8qIERlY29kZSB0aGUgdGFibGUuICAqLwpAQCAtNjk5 NCwyNyArNzIyOCwxNyBAQCBkd2FyZl9kZWNvZGVfbGluZXMgKHN0cnVjdCBs aW5lX2hlYWRlciAqCiAJICAgICAgYnJlYWs7CiAJICAgIGNhc2UgRFdfTE5T X3NldF9maWxlOgogICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg LyogVGhlIGFycmF5cyBsaC0+aW5jbHVkZV9kaXJzIGFuZCBsaC0+ZmlsZV9u YW1lcyBhcmUKLSAgICAgICAgICAgICAgICAgICAwLWJhc2VkLCBidXQgdGhl IGRpcmVjdG9yeSBhbmQgZmlsZSBuYW1lIG51bWJlcnMgaW4KLSAgICAgICAg ICAgICAgICAgICB0aGUgc3RhdGVtZW50IHByb2dyYW0gYXJlIDEtYmFzZWQu ICAqLwotICAgICAgICAgICAgICAgIHN0cnVjdCBmaWxlX2VudHJ5ICpmZTsK LSAgICAgICAgICAgICAgICBjaGFyICpkaXIgPSBOVUxMOwotCiAgICAgICAg ICAgICAgICAgZmlsZSA9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBs aW5lX3B0ciwgJmJ5dGVzX3JlYWQpOwogICAgICAgICAgICAgICAgIGxpbmVf cHRyICs9IGJ5dGVzX3JlYWQ7CiAgICAgICAgICAgICAgICAgaWYgKGxoLT5u dW1fZmlsZV9uYW1lcyA8IGZpbGUpCiAgICAgICAgICAgICAgICAgICBkd2Fy ZjJfZGVidWdfbGluZV9taXNzaW5nX2ZpbGVfY29tcGxhaW50ICgpOwotICAg ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgICAgICAgZmUgPSAmbGgtPmZpbGVfbmFtZXNbZmlsZSAtIDFd OwotICAgICAgICAgICAgICAgICAgICBpZiAoZmUtPmRpcl9pbmRleCkKLSAg ICAgICAgICAgICAgICAgICAgICBkaXIgPSBsaC0+aW5jbHVkZV9kaXJzW2Zl LT5kaXJfaW5kZXggLSAxXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFk ZWNvZGVfZm9yX3BzdF9wKQotICAgICAgICAgICAgICAgICAgICAgIHsKLSAg ICAgICAgICAgICAgICAgICAgICAgIGxhc3Rfc3ViZmlsZSA9IGN1cnJlbnRf c3ViZmlsZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGR3YXJmMl9zdGFy dF9zdWJmaWxlIChmZS0+bmFtZSwgZGlyLCBjb21wX2Rpcik7Ci0gICAgICAg ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgIGVsc2UgaWYgKCFkZWNvZGVfZm9yX3BzdF9wKQorCQkgIHsK KwkJICAgIC8qIEZpbGUgbnVtYmVycyBpbiB0aGUgc3RhdGVtZW50IHByb2dy YW0gYXJlIDEtYmFzZWQuICAqLworCQkgICAgY2hhciAqZm5hbWUgPSBzdWJm aWxlX25hbWVzW2ZpbGUgLSAxXTsKKwkJICAgIGxhc3Rfc3ViZmlsZSA9IGN1 cnJlbnRfc3ViZmlsZTsKKwkJICAgIHN0YXJ0X3N1YmZpbGUgKGZuYW1lLCBj b21wX2Rpcik7CisJCSAgfQogICAgICAgICAgICAgICB9CiAJICAgICAgYnJl YWs7CiAJICAgIGNhc2UgRFdfTE5TX3NldF9jb2x1bW46CkBAIC03MDk3LDE1 ICs3MzIxLDEyIEBAIGR3YXJmX2RlY29kZV9saW5lcyAoc3RydWN0IGxpbmVf aGVhZGVyICoKIAkgbGluZSBudW1iZXJzKS4gICovCiAKICAgICAgIGludCBp OwotICAgICAgc3RydWN0IGZpbGVfZW50cnkgKmZlOwogCiAgICAgICBmb3Ig KGkgPSAwOyBpIDwgbGgtPm51bV9maWxlX25hbWVzOyBpKyspCiAJewotCSAg Y2hhciAqZGlyID0gTlVMTDsKLQkgIGZlID0gJmxoLT5maWxlX25hbWVzW2ld OwotCSAgaWYgKGZlLT5kaXJfaW5kZXgpCi0JICAgIGRpciA9IGxoLT5pbmNs dWRlX2RpcnNbZmUtPmRpcl9pbmRleCAtIDFdOwotCSAgZHdhcmYyX3N0YXJ0 X3N1YmZpbGUgKGZlLT5uYW1lLCBkaXIsIGNvbXBfZGlyKTsKKwkgIHN0cnVj dCBmaWxlX2VudHJ5ICpmZSA9ICZsaC0+ZmlsZV9uYW1lc1tpXTsKKworCSAg c3RhcnRfc3ViZmlsZSAoc3ViZmlsZV9uYW1lc1tpXSwgY29tcF9kaXIpOwog CiAJICAvKiBTa2lwIHRoZSBtYWluIGZpbGU7IHdlIGRvbid0IG5lZWQgaXQs IGFuZCBpdCBtdXN0IGJlCiAJICAgICBhbGxvY2F0ZWQgbGFzdCwgc28gdGhh dCBpdCB3aWxsIHNob3cgdXAgYmVmb3JlIHRoZQpAQCAtNzEyMSw1NiArNzM0 Miw2IEBAIGR3YXJmX2RlY29kZV9saW5lcyAoc3RydWN0IGxpbmVfaGVhZGVy ICoKICAgICB9CiB9CiAKLS8qIFN0YXJ0IGEgc3ViZmlsZSBmb3IgRFdBUkYu ICBGSUxFTkFNRSBpcyB0aGUgbmFtZSBvZiB0aGUgZmlsZSBhbmQKLSAgIERJ Uk5BTUUgdGhlIG5hbWUgb2YgdGhlIHNvdXJjZSBkaXJlY3Rvcnkgd2hpY2gg Y29udGFpbnMgRklMRU5BTUUKLSAgIG9yIE5VTEwgaWYgbm90IGtub3duLiAg Q09NUF9ESVIgaXMgdGhlIGNvbXBpbGF0aW9uIGRpcmVjdG9yeSBmb3IgdGhl Ci0gICBsaW5ldGFibGUncyBjb21waWxhdGlvbiB1bml0IG9yIE5VTEwgaWYg bm90IGtub3duLgotICAgVGhpcyByb3V0aW5lIHRyaWVzIHRvIGtlZXAgbGlu ZSBudW1iZXJzIGZyb20gaWRlbnRpY2FsIGFic29sdXRlIGFuZAotICAgcmVs YXRpdmUgZmlsZSBuYW1lcyBpbiBhIGNvbW1vbiBzdWJmaWxlLgotCi0gICBV c2luZyB0aGUgYGxpc3QnIGV4YW1wbGUgZnJvbSB0aGUgR0RCIHRlc3RzdWl0 ZSwgd2hpY2ggcmVzaWRlcyBpbgotICAgL3NyY2RpciBhbmQgY29tcGlsaW5n IGl0IHdpdGggSXJpeDYuMiBjYyBpbiAvY29tcGRpciB1c2luZyBhIGZpbGVu YW1lCi0gICBvZiAvc3JjZGlyL2xpc3QwLmMgeWllbGRzIHRoZSBmb2xsb3dp bmcgZGVidWdnaW5nIGluZm9ybWF0aW9uIGZvciBsaXN0MC5jOgotCi0gICBE V19BVF9uYW1lOiAgICAgICAgICAvc3JjZGlyL2xpc3QwLmMKLSAgIERXX0FU X2NvbXBfZGlyOiAgICAgICAgICAgICAgL2NvbXBkaXIKLSAgIGZpbGVzLmZp bGVzWzBdLm5hbWU6IGxpc3QwLmgKLSAgIGZpbGVzLmZpbGVzWzBdLmRpcjog IC9zcmNkaXIKLSAgIGZpbGVzLmZpbGVzWzFdLm5hbWU6IGxpc3QwLmMKLSAg IGZpbGVzLmZpbGVzWzFdLmRpcjogIC9zcmNkaXIKLQotICAgVGhlIGxpbmUg bnVtYmVyIGluZm9ybWF0aW9uIGZvciBsaXN0MC5jIGhhcyB0byBlbmQgdXAg aW4gYSBzaW5nbGUKLSAgIHN1YmZpbGUsIHNvIHRoYXQgYGJyZWFrIC9zcmNk aXIvbGlzdDAuYzoxJyB3b3JrcyBhcyBleHBlY3RlZC4KLSAgIHN0YXJ0X3N1 YmZpbGUgd2lsbCBlbnN1cmUgdGhhdCB0aGlzIGhhcHBlbnMgcHJvdmlkZWQg dGhhdCB3ZSBwYXNzIHRoZQotICAgY29uY2F0ZW5hdGlvbiBvZiBmaWxlcy5m aWxlc1sxXS5kaXIgYW5kIGZpbGVzLmZpbGVzWzFdLm5hbWUgYXMgdGhlCi0g ICBzdWJmaWxlJ3MgbmFtZS4gICovCi0KLXN0YXRpYyB2b2lkCi1kd2FyZjJf c3RhcnRfc3ViZmlsZSAoY2hhciAqZmlsZW5hbWUsIGNoYXIgKmRpcm5hbWUs IGNoYXIgKmNvbXBfZGlyKQotewotICBjaGFyICpmdWxsbmFtZTsKLQotICAv KiBXaGlsZSByZWFkaW5nIHRoZSBESUVzLCB3ZSBjYWxsIHN0YXJ0X3N5bXRh YihEV19BVF9uYW1lLCBEV19BVF9jb21wX2RpcikuCi0gICAgIGBzdGFydF9z eW10YWInIHdpbGwgYWx3YXlzIHBhc3MgdGhlIGNvbnRlbnRzIG9mIERXX0FU X2NvbXBfZGlyIGFzCi0gICAgIHNlY29uZCBhcmd1bWVudCB0byBzdGFydF9z dWJmaWxlLiAgVG8gYmUgY29uc2lzdGVudCwgd2UgZG8gdGhlCi0gICAgIHNh bWUgaGVyZS4gIEluIG9yZGVyIG5vdCB0byBsb3NlIHRoZSBsaW5lIGluZm9y bWF0aW9uIGRpcmVjdG9yeSwKLSAgICAgd2UgY29uY2F0ZW5hdGUgaXQgdG8g dGhlIGZpbGVuYW1lIHdoZW4gaXQgbWFrZXMgc2Vuc2UuCi0gICAgIE5vdGUg dGhhdCB0aGUgRHdhcmYzIHN0YW5kYXJkIHNheXMgKHNwZWFraW5nIG9mIGZp bGVuYW1lcyBpbiBsaW5lCi0gICAgIGluZm9ybWF0aW9uKTogYGBUaGUgZGly ZWN0b3J5IGluZGV4IGlzIGlnbm9yZWQgZm9yIGZpbGUgbmFtZXMKLSAgICAg dGhhdCByZXByZXNlbnQgZnVsbCBwYXRoIG5hbWVzJycuICBUaHVzIGlnbm9y aW5nIGRpcm5hbWUgaW4gdGhlCi0gICAgIGBlbHNlJyBicmFuY2ggYmVsb3cg aXNuJ3QgYW4gaXNzdWUuICAqLwotCi0gIGlmICghSVNfQUJTT0xVVEVfUEFU SCAoZmlsZW5hbWUpICYmIGRpcm5hbWUgIT0gTlVMTCkKLSAgICBmdWxsbmFt ZSA9IGNvbmNhdCAoZGlybmFtZSwgU0xBU0hfU1RSSU5HLCBmaWxlbmFtZSwg KGNoYXIgKilOVUxMKTsKLSAgZWxzZQotICAgIGZ1bGxuYW1lID0gZmlsZW5h bWU7Ci0KLSAgc3RhcnRfc3ViZmlsZSAoZnVsbG5hbWUsIGNvbXBfZGlyKTsK LQotICBpZiAoZnVsbG5hbWUgIT0gZmlsZW5hbWUpCi0gICAgeGZyZWUgKGZ1 bGxuYW1lKTsKLX0KLQogc3RhdGljIHZvaWQKIHZhcl9kZWNvZGVfbG9jYXRp b24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5 bSwKIAkJICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKSW5kZXg6IHRlc3Rz dWl0ZS9nZGIuZHdhcmYyL2hhc2hsaW5lMS5leHAKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogdGVzdHN1aXRlL2dkYi5kd2FyZjIvaGFzaGxp bmUxLmV4cApkaWZmIC1OIHRlc3RzdWl0ZS9nZGIuZHdhcmYyL2hhc2hsaW5l MS5leHAKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAw CisrKyB0ZXN0c3VpdGUvZ2RiLmR3YXJmMi9oYXNobGluZTEuZXhwCTggQXBy IDIwMDggMDQ6NDI6MzQgLTAwMDAKQEAgLTAsMCArMSw1NyBAQAorIyBDb3B5 cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwor IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg Z2RiIHRlc3RzdWl0ZS4KKworIyBUZXN0IGxvYWRpbmcgb2YgbGluZSBudW1i ZXIgaW5mb3JtYXRpb24gd2l0aCBhYnNvbHV0ZSBwYXRoIGluICNsaW5lLCBi dWcgMjM2MC4KKworaWYgJHRyYWNlbGV2ZWwgdGhlbiB7CisgICAgc3RyYWNl ICR0cmFjZWxldmVsCit9CisKK3NldCBwcm1zX2lkIDIzNjAKK3NldCBidWdf aWQgMAorCisjIHNyY2ZpbGUgaXMgaW4gb2JqZGlyIGJlY2F1c2Ugd2UgbmVl ZCB0byBtYWNoaW5lIGdlbmVyYXRlIGl0IGluIG9yZGVyCisjIHRvIGdldCB0 aGUgY29ycmVjdCBwYXRoIGluIHRoZSAjbGluZSBkaXJlY3RpdmUuCisKK3Nl dCB0ZXN0ZmlsZSAiaGFzaGxpbmUxIgorc2V0IHNyY2ZpbGUgIiR7dGVzdGZp bGV9LmMiCitzZXQgYmluZmlsZSAiJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfSIKKworc2V0IGZkIFtvcGVuICR7b2JqZGlyfS8ke3N1YmRpcn0v JHtzcmNmaWxlfSB3XQorcHV0cyAkZmQgIiNsaW5lIDIgXCJbcHdkXS8ke3N1 YmRpcn0vJHtzcmNmaWxlfVwiIgorcHV0cyAkZmQgImludCBtYWluICgpIHsg cmV0dXJuIDA7IH0gLyogc2V0IGJyZWFrcG9pbnQgaGVyZSAqLyIKK2Nsb3Nl ICRmZAorCisjIFRoZSBjaG9pY2Ugb2YgcGF0aCBuYW1lIGZvciB0aGUgc291 cmNlIGZpbGUgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIHRyaWdnZXIKKyMg dGhlIGJ1Zy4gIFVzaW5nICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxl fSBoZXJlIHdvbid0IHRyaWdnZXIgdGhlIGJ1Zy4KK2lmIHsgW2dkYl9jb21w aWxlICIuLyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhl Y3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKKyAgICB1bnRlc3RlZCBoYXNo bGluZTEuZXhwCisgICAgcmV0dXJuIC0xCit9CisKK2dkYl9leGl0CitnZGJf c3RhcnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgor Z2RiX2xvYWQgJHtiaW5maWxlfQorCitzZXQgYnBfbG9jYXRpb24gW2dkYl9n ZXRfbGluZV9udW1iZXIgInNldCBicmVha3BvaW50IGhlcmUiICR7b2JqZGly fS8ke3N1YmRpcn0vJHtzcmNmaWxlfV0KKworIyBUcnkgdG8gc2V0IGEgYnJl YWtwb2ludCBvbiB0aGUgc3BlY2lmaWVkIGZpbGUgbG9jYXRpb24uCisKK2dk Yl90ZXN0ICJicmVhayAkc3JjZmlsZTokYnBfbG9jYXRpb24iIFwKKyAgICAi QnJlYWtwb2ludC4qYXQuKiBmaWxlIC4qJHNyY2ZpbGUsIGxpbmUuKiIgXAor ICAgICJzZXQgYnJlYWtwb2ludCIKSW5kZXg6IHRlc3RzdWl0ZS9nZGIuZHdh cmYyL2hhc2hsaW5lMi5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogdGVzdHN1aXRlL2dkYi5kd2FyZjIvaGFzaGxpbmUyLmV4cApkaWZm IC1OIHRlc3RzdWl0ZS9nZGIuZHdhcmYyL2hhc2hsaW5lMi5leHAKLS0tIC9k ZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyB0ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9oYXNobGluZTIuZXhwCTggQXByIDIwMDggMDQ6NDI6 MzUgLTAwMDAKQEAgLTAsMCArMSw1NiBAQAorIyBDb3B5cmlnaHQgMjAwOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgZ2RiIHRlc3RzdWl0 ZS4KKworIyBUZXN0IGxvYWRpbmcgb2YgbGluZSBudW1iZXIgaW5mb3JtYXRp b24gd2l0aCBhbiBhYnNvbHV0ZSBwYXRoIHdpdGggZXh0cmEKKyMgLydzIGlu ICNsaW5lLCBidWcgMjM2MC4KKworaWYgJHRyYWNlbGV2ZWwgdGhlbiB7Cisg ICAgc3RyYWNlICR0cmFjZWxldmVsCit9CisKK3NldCBwcm1zX2lkIDIzNjAK K3NldCBidWdfaWQgMAorCisjIHNyY2ZpbGUgaXMgaW4gb2JqZGlyIGJlY2F1 c2Ugd2UgbmVlZCB0byBtYWNoaW5lIGdlbmVyYXRlIGl0IGluIG9yZGVyCisj IHRvIGdldCB0aGUgY29ycmVjdCBwYXRoIGluIHRoZSAjbGluZSBkaXJlY3Rp dmUuCisKK3NldCB0ZXN0ZmlsZSAiaGFzaGxpbmUyIgorc2V0IHNyY2ZpbGUg IiR7dGVzdGZpbGV9LmMiCitzZXQgYmluZmlsZSAiJHtvYmpkaXJ9LyR7c3Vi ZGlyfS8ke3Rlc3RmaWxlfSIKKworc2V0IGZkIFtvcGVuICR7b2JqZGlyfS8k e3N1YmRpcn0vJHtzcmNmaWxlfSB3XQorcHV0cyAkZmQgIiNsaW5lIDIgXCIv Ly9bcHdkXS8ke3N1YmRpcn0vJHtzcmNmaWxlfVwiIgorcHV0cyAkZmQgImlu dCBtYWluICgpIHsgcmV0dXJuIDA7IH0gLyogc2V0IGJyZWFrcG9pbnQgaGVy ZSAqLyIKK2Nsb3NlICRmZAorCitpZiB7IFtnZGJfY29tcGlsZSAiJHtvYmpk aXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0 YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKKyAgICB1bnRlc3RlZCBoYXNobGlu ZTEuZXhwCisgICAgcmV0dXJuIC0xCit9CisKK2dkYl9leGl0CitnZGJfc3Rh cnQKK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorZ2Ri X2xvYWQgJHtiaW5maWxlfQorCitzZXQgYnBfbG9jYXRpb24gW2dkYl9nZXRf bGluZV9udW1iZXIgInNldCBicmVha3BvaW50IGhlcmUiICR7b2JqZGlyfS8k e3N1YmRpcn0vJHtzcmNmaWxlfV0KKworIyBUcnkgdG8gc2V0IGEgYnJlYWtw b2ludCBvbiB0aGUgc3BlY2lmaWVkIGZpbGUgbG9jYXRpb24uCisKK2dkYl90 ZXN0ICJicmVhayAkc3JjZmlsZTokYnBfbG9jYXRpb24iIFwKKyAgICAiQnJl YWtwb2ludC4qYXQuKiBmaWxlIC4qJHNyY2ZpbGUsIGxpbmUuKiIgXAorICAg ICJzZXQgYnJlYWtwb2ludCIKSW5kZXg6IHRlc3RzdWl0ZS9nZGIuZHdhcmYy L2hhc2hsaW5lMy5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls ZTogdGVzdHN1aXRlL2dkYi5kd2FyZjIvaGFzaGxpbmUzLmV4cApkaWZmIC1O IHRlc3RzdWl0ZS9nZGIuZHdhcmYyL2hhc2hsaW5lMy5leHAKLS0tIC9kZXYv bnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyB0ZXN0c3VpdGUv Z2RiLmR3YXJmMi9oYXNobGluZTMuZXhwCTggQXByIDIwMDggMDQ6NDI6MzUg LTAwMDAKQEAgLTAsMCArMSw1NSBAQAorIyBDb3B5cmlnaHQgMjAwOCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgZ2RiIHRlc3RzdWl0ZS4K KworIyBUZXN0IGxvYWRpbmcgb2YgbGluZSBudW1iZXIgaW5mb3JtYXRpb24g d2l0aCByZWxhdGl2ZSBwYXRoIGluICNsaW5lLCBidWcgMjM2MC4KKworaWYg JHRyYWNlbGV2ZWwgdGhlbiB7CisgICAgc3RyYWNlICR0cmFjZWxldmVsCit9 CisKK3NldCBwcm1zX2lkIDIzNjAKK3NldCBidWdfaWQgMAorCisjIHNyY2Zp bGUgaXMgaW4gb2JqZGlyIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWNoaW5lIGdl bmVyYXRlIGl0IGluIG9yZGVyCisjIHRvIGdldCB0aGUgY29ycmVjdCBwYXRo IGluIHRoZSAjbGluZSBkaXJlY3RpdmUuCisKK3NldCB0ZXN0ZmlsZSAiaGFz aGxpbmUzIgorc2V0IHNyY2ZpbGUgIiR7dGVzdGZpbGV9LmMiCitzZXQgYmlu ZmlsZSAiJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfSIKKworc2V0 IGZkIFtvcGVuICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSB3XQor cHV0cyAkZmQgIiNsaW5lIDIgXCIuLyR7c3ViZGlyfS8ke3NyY2ZpbGV9XCIi CitwdXRzICRmZCAiaW50IG1haW4gKCkgeyByZXR1cm4gMDsgfSAvKiBzZXQg YnJlYWtwb2ludCBoZXJlICovIgorY2xvc2UgJGZkCisKK2lmIHsgW2dkYl9j b21waWxlICIke29iamRpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2Jp bmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0geworICAgIHVu dGVzdGVkIGhhc2hsaW5lMS5leHAKKyAgICByZXR1cm4gLTEKK30KKworZ2Ri X2V4aXQKK2dkYl9zdGFydAorZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rp ci8kc3ViZGlyCitnZGJfbG9hZCAke2JpbmZpbGV9CisKK3NldCBicF9sb2Nh dGlvbiBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrcG9pbnQgaGVy ZSIgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9XQorCisjIFRyeSB0 byBzZXQgYSBicmVha3BvaW50IG9uIHRoZSBzcGVjaWZpZWQgZmlsZSBsb2Nh dGlvbi4KKworZ2RiX3Rlc3QgImJyZWFrICRzcmNmaWxlOiRicF9sb2NhdGlv biIgXAorICAgICJCcmVha3BvaW50LiphdC4qIGZpbGUgLiokc3JjZmlsZSwg bGluZS4qIiBcCisgICAgInNldCBicmVha3BvaW50Igo= ------=_Part_21416_17341095.1207633302667--