From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 33942 invoked by alias); 21 Feb 2020 01:58:13 -0000 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 Received: (qmail 33879 invoked by uid 89); 21 Feb 2020 01:58:04 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_BADIPHTTP,KAM_SHORT,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=distributing, Download, sim X-HELO: us-smtp-delivery-1.mimecast.com Received: from us-smtp-1.mimecast.com (HELO us-smtp-delivery-1.mimecast.com) (207.211.31.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 21 Feb 2020 01:57:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1582250274; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=ZkXqVHRht3q0GrDX4ij0f1s5Vi4UuCcS9LuAR/Ir3rs=; b=iZlw/h1g8cHJg/YAdDD5deLvGO8GFCDfLJ5VsoqH3h6qAZbEKnY7oLskdlBV3QQmY+nXOy 0ykCX89ANMyEyPO4q7lyQaUJPqLkkgHm4kj59ar9oaEh4xNdkHzoagyCn2lC6uNpuzU/NJ WTpxOoToIWsSQMdyjQRMMXTl7Lx6iCU= Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-215-KJDoBer1MDCW2kg-D09RWg-1; Thu, 20 Feb 2020 20:57:52 -0500 Received: by mail-vs1-f72.google.com with SMTP id x71so59684vsx.13 for ; Thu, 20 Feb 2020 17:57:52 -0800 (PST) MIME-Version: 1.0 From: Aaron Merey Date: Fri, 21 Feb 2020 01:58:00 -0000 Message-ID: Subject: [PATCH v4] Add debuginfod support to GDB To: gdb-patches@sourceware.org Cc: Simon Marchi , Tom Tromey X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="0000000000006335a3059f0c59c3" X-SW-Source: 2020-02/txt/msg00843.txt.bz2 --0000000000006335a3059f0c59c3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 601 Hello, In this iteration of the patch I've modified the debuginfod progress function so that it does not preserve the value of quit_flag when the user enters ctrl+c. Progress updates now print the completion percentage of the download. Additional help text is also printed before and after a query which provides context for what file is being searched for and whether the download was successful. On IRC we discussed changing the behavior of ctrl+c during a download depending on whether an inferior is running. This change will come in a future patch at some point before the next release. Aaron --0000000000006335a3059f0c59c3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-debuginfod-support-to-GDB.patch" Content-Disposition: attachment; filename="0001-Add-debuginfod-support-to-GDB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k6viwqsj0 Content-length: 43347 RnJvbSA2ZWU1NzdiNDBlZDZjNjc5NmRjYmMwZGJkODhlZTQzODc0YjYwZDM1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBYXJvbiBNZXJleSA8 YW1lcmV5QHJlZGhhdC5jb20+CkRhdGU6IFRodSwgMjAgRmViIDIwMjAgMjA6 MzI6MTQgLTA1MDAKU3ViamVjdDogW1BBVENIXSBBZGQgZGVidWdpbmZvZCBz dXBwb3J0IHRvIEdEQgoKZGVidWdpbmZvZCBpcyBhIGxpZ2h0d2VpZ2h0IHdl YiBzZXJ2aWNlIHRoYXQgaW5kZXhlcyBFTEYvRFdBUkYgZGVidWdnaW5nCnJl c291cmNlcyBieSBidWlsZC1pZCBhbmQgc2VydmVzIHRoZW0gb3ZlciBIVFRQ LgoKVGhpcyBwYXRjaCBlbmFibGVzIEdEQiB0byBxdWVyeSBkZWJ1Z2luZm9k IHNlcnZlcnMgZm9yIHNlcGFyYXRlIGRlYnVnCmZpbGVzIGFuZCBzb3VyY2Ug Y29kZSB3aGVuIGl0IGlzIG90aGVyd2lzZSBub3QgYWJsZSB0byBmaW5kIHRo ZW0uCgpHREIgY2FuIGJlIGJ1aWx0IHdpdGggZGVidWdpbmZvZCB1c2luZyB0 aGUgLS13aXRoLWRlYnVnaW5mb2QgY29uZmlndXJlCm9wdGlvbi4KClRoaXMg cmVxdWlyZXMgdGhhdCBsaWJkZWJ1Z2luZm9kIGJlIGluc3RhbGxlZCBhbmQg Zm91bmQgYXQgY29uZmlndXJlIHRpbWUuCgpkZWJ1Z2luZm9kIGlzIHBhY2th Z2VkIHdpdGggZWxmdXRpbHMsIHN0YXJ0aW5nIHdpdGggdmVyc2lvbiAwLjE3 OC4KCkZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBodHRwczovL3NvdXJjZXdh cmUub3JnL2VsZnV0aWxzLy4KClRlc3RlZCBvbiB4ODZfNjQgRmVkb3JhIDMx LgoKZ2RiL0NoYW5nZUxvZzoKMjAyMC0wMi0yMCAgQWFyb24gTWVyZXkgIDxh bWVyZXlAcmVkaGF0LmNvbT4KCiAgICAgICAgKiBNYWtlZmlsZS5pbjogSGFu ZGxlIG9wdGlvbmFsIGRlYnVnaW5mb2Qgc3VwcG9ydC4KICAgICAgICAqIE5F V1M6IFVwZGF0ZS4KICAgICAgICAqIFJFQURNRTogQWRkIC0td2l0aC1kZWJ1 Z2luZm9kIHN1bW1hcnkuCiAgICAgICAgKiBjb25maWcuaW46IFJlZ2VuZXJh dGUuCiAgICAgICAgKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCiAgICAgICAg KiBjb25maWd1cmUuYWM6IEhhbmRsZSBvcHRpb25hbCBkZWJ1Z2luZm9kIHN1 cHBvcnQuCiAgICAgICAgKiBkZWJ1Z2luZm9kLXN1cHBvcnQuYzogZGVidWdp bmZvZCBoZWxwZXIgZnVuY3Rpb25zLgogICAgICAgICogZGVidWdpbmZvZC1z dXBwb3J0Lmg6IERpdHRvLgogICAgICAgICogZG9jL2dkYi50ZXhpbmZvOiBB ZGQgLS13aXRoLWRlYnVnaW5mb2QgdG8gY29uZmlndXJlIG9wdGlvbnMKICAg ICAgICBzdW1tYXJ5LgogICAgICAgICogZHdhcmYyL3JlYWQuYyAoZHdhcmYy X2dldF9kd3pfZmlsZSk6IFF1ZXJ5IGRlYnVnaW5mb2Qgc2VydmVycwogICAg ICAgIHdoZW4gYSBkd3ogZmlsZSBjYW5ub3QgYmUgZm91bmQuCiAgICAgICAg KiBlbGZyZWFkLmMgKGVsZl9zeW1maWxlX3JlYWQpOiBRdWVyeSBkZWJ1Z2lu Zm9kIHNlcnZlcnMgd2hlbiBhCiAgICAgICAgZGVidWdpbmZvIGZpbGUgY2Fu bm90IGJlIGZvdW5kLgogICAgICAgICogc291cmNlLmMgKG9wZW5fc291cmNl X2ZpbGUpOiBRdWVyeSBkZWJ1Z2luZm9kIHNlcnZlcnMgd2hlbiBhCiAgICAg ICAgc291cmNlIGZpbGUgY2Fubm90IGJlIGZvdW5kLgogICAgICAgICogdG9w LmMgKHByaW50X2dkYl9jb25maWd1cmF0aW9uKTogSW5jbHVkZQogICAgICAg IC0te3dpdGgsd2l0aG91dH0tZGVidWdpbmZvZCBpbiB0aGUgb3V0cHV0LgoK Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CjIwMjAtMDItMjAgIEFhcm9uIE1l cmV5ICA8YW1lcmV5QHJlZGhhdC5jb20+CgogICAgICAgICogZ2RiLmRlYnVn aW5mb2Q6IE5ldyBkaXJlY3RvcnkgZm9yIGRlYnVnaW5mb2QgdGVzdHMuCiAg ICAgICAgKiBnZGIuZGVidWdpbmZvZC9tYWluLmM6IE5ldyB0ZXN0IGZpbGUu CiAgICAgICAgKiBnZGIuZGVidWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJv bHMuZXhwOiBOZXcgdGVzdHMuCi0tLQogZ2RiL01ha2VmaWxlLmluICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBnZGIvTkVXUyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKysK IGdkYi9SRUFETUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgOSArCiBnZGIvY29uZmlnLmluICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDMgKwogZ2RiL2NvbmZpZ3VyZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDk1ICsrKysrKystCiBnZGIvY29u ZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzQg KystCiBnZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMgICAgICAgICAgICAgICAg ICAgICAgfCAxMzQgKysrKysrKysrKysKIGdkYi9kZWJ1Z2luZm9kLXN1cHBv cnQuaCAgICAgICAgICAgICAgICAgICAgICB8ICA1OSArKysrKwogZ2RiL2Rv Yy9nZGIudGV4aW5mbyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4 ICsKIGdkYi9kd2FyZjIvcmVhZC5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyMiArKwogZ2RiL2VsZnJlYWQuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDMwICsrLQogZ2RiL3NvdXJjZS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrKwogLi4uL2dk Yi5kZWJ1Z2luZm9kL2ZldGNoX3NyY19hbmRfc3ltYm9scy5leHAgIHwgMjE0 ICsrKysrKysrKysrKysrKysrKwogZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVidWdp bmZvZC9tYWluLmMgICAgICAgICAgIHwgIDI1ICsrCiBnZGIvdG9wLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogMTUg ZmlsZXMgY2hhbmdlZCwgNjg4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL2RlYnVnaW5mb2Qtc3VwcG9y dC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL2RlYnVnaW5mb2Qtc3VwcG9y dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVi dWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVidWdpbmZvZC9tYWluLmMK CmRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUu aW4KaW5kZXggODg3MDcyOGM2Ni4uMTgzMTkwZDU4ZSAxMDA2NDQKLS0tIGEv Z2RiL01ha2VmaWxlLmluCisrKyBiL2dkYi9NYWtlZmlsZS5pbgpAQCAtNTkx LDcgKzU5MSw4IEBAIElOVEVSTkFMX0NGTEFHU19CQVNFID0gXAogCSQoR0RC X0NGTEFHUykgJChPUENPREVTX0NGTEFHUykgJChSRUFETElORV9DRkxBR1Mp ICQoWkxJQklOQykgXAogCSQoQkZEX0NGTEFHUykgJChJTkNMVURFX0NGTEFH UykgJChMSUJERUNOVU1CRVJfQ0ZMQUdTKSBcCiAJJChJTlRMX0NGTEFHUykg JChJTkNHTlUpICQoSU5DU1VQUE9SVCkgJChFTkFCTEVfQ0ZMQUdTKSBcCi0J JChJTlRFUk5BTF9DUFBGTEFHUykgJChTUkNISUdIX0NGTEFHUykgJChUT1Bf Q0ZMQUdTKSAkKFBUSFJFQURfQ0ZMQUdTKQorCSQoSU5URVJOQUxfQ1BQRkxB R1MpICQoU1JDSElHSF9DRkxBR1MpICQoVE9QX0NGTEFHUykgJChQVEhSRUFE X0NGTEFHUykgXAorCUBERUJVR0lORk9EX0NGTEFHU0AKIElOVEVSTkFMX1dB Uk5fQ0ZMQUdTID0gJChJTlRFUk5BTF9DRkxBR1NfQkFTRSkgJChHREJfV0FS Tl9DRkxBR1MpCiBJTlRFUk5BTF9DRkxBR1MgPSAkKElOVEVSTkFMX1dBUk5f Q0ZMQUdTKSAkKEdEQl9XRVJST1JfQ0ZMQUdTKQogCkBAIC02MTYsNyArNjE3 LDggQEAgQ0xJQlMgPSAkKFNJTSkgJChSRUFETElORSkgJChPUENPREVTKSAk KEJGRCkgJChMSUJDVEYpICQoWkxJQikgXAogCUBMSUJTQCBAR1VJTEVfTElC U0AgQFBZVEhPTl9MSUJTQCBcCiAJJChMSUJFWFBBVCkgJChMSUJMWk1BKSAk KExJQkJBQkVMVFJBQ0UpICQoTElCSVBUKSBcCiAJJChXSU4zMkxJQlMpICQo TElCR05VKSAkKExJQklDT05WKSBcCi0JJChMSUJNUEZSKSAkKFNSQ0hJR0hf TElCUykgJChMSUJYWEhBU0gpICQoUFRIUkVBRF9MSUJTKQorCSQoTElCTVBG UikgJChTUkNISUdIX0xJQlMpICQoTElCWFhIQVNIKSAkKFBUSFJFQURfTElC UykgXAorCUBERUJVR0lORk9EX0xJQlNACiBDREVQUyA9ICQoTkFUX0NERVBT KSAkKFNJTSkgJChCRkQpICQoUkVBRExJTkVfREVQUykgJChMSUJDVEYpIFwK IAkkKE9QQ09ERVMpICQoSU5UTF9ERVBTKSAkKExJQklCRVJUWSkgJChDT05G SUdfREVQUykgJChMSUJHTlUpIFwKIAkkKExJQlNVUFBPUlQpCkBAIC05OTAs NiArOTkyLDcgQEAgQ09NTU9OX1NGSUxFUyA9IFwKIAlkYnhyZWFkLmMgXAog CWRjYWNoZS5jIFwKIAlkZWJ1Zy5jIFwKKwlkZWJ1Z2luZm9kLXN1cHBvcnQu YyBcCiAJZGljdGlvbmFyeS5jIFwKIAlkaXNhc20uYyBcCiAJZGlzYXNtLXNl bGZ0ZXN0cy5jIFwKZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MK aW5kZXggOTFhZGQxOGQ2Zi4uZTM0NjFkMDgwZiAxMDA2NDQKLS0tIGEvZ2Ri L05FV1MKKysrIGIvZ2RiL05FV1MKQEAgLTMsNiArMywyMCBAQAogCiAqKiog Q2hhbmdlcyBzaW5jZSBHREIgOQogCisqIEdEQiBub3cgc3VwcG9ydHMgZGVi dWdpbmZvZCwgYW4gSFRUUCBzZXJ2ZXIgZm9yIGRpc3RyaWJ1dGluZyBFTEYv RFdBUkYKKyAgZGVidWdnaW5nIGluZm9ybWF0aW9uIGFzIHdlbGwgYXMgc291 cmNlIGNvZGUuCisKKyAgV2hlbiBidWlsdCB3aXRoIGRlYnVnaW5mb2QsIEdE QiBjYW4gYXV0b21hdGljYWxseSBxdWVyeSBkZWJ1Z2luZm9kCisgIHNlcnZl cnMgZm9yIHRoZSBzZXBhcmF0ZSBkZWJ1ZyBmaWxlcyBhbmQgc291cmNlIGNv ZGUgb2YgdGhlIGV4ZWN1dGFibGUKKyAgYmVpbmcgZGVidWdnZWQuCisKKyAg VG8gYnVpbGQgR0RCIHdpdGggZGVidWdpbmZvZCwgcGFzcyAtLXdpdGgtZGVi dWdpbmZvZCB0byBjb25maWd1cmUgKHRoaXMKKyAgcmVxdWlyZXMgbGliZGVi dWdpbmZvZCwgdGhlIGRlYnVnaW5mb2QgY2xpZW50IGxpYnJhcnkpLgorCisg IGRlYnVnaW5mb2QgaXMgZGlzdHJpYnV0ZWQgd2l0aCBlbGZ1dGlscywgc3Rh cnRpbmcgd2l0aCB2ZXJzaW9uIDAuMTc4LgorCisgIFlvdSBjYW4gZ2V0IHRo ZSBsYXRlc3QgdmVyc2lvbiBmcm9tIGh0dHBzOi8vc291cmNld2FyZS5vcmcv ZWxmdXRpbHMuCisKICogTmV3IGZlYXR1cmVzIGluIHRoZSBHREIgcmVtb3Rl IHN0dWIsIEdEQnNlcnZlcgogCiAgICoqIEdEQnNlcnZlciBpcyBub3cgc3Vw cG9ydGVkIG9uIFJJU0MtViBHTlUvTGludXguCmRpZmYgLS1naXQgYS9nZGIv UkVBRE1FIGIvZ2RiL1JFQURNRQppbmRleCAzODk1NzU4ZWNlLi4wZWMxNjA1 Y2U1IDEwMDY0NAotLS0gYS9nZGIvUkVBRE1FCisrKyBiL2dkYi9SRUFETUUK QEAgLTQzMiw2ICs0MzIsMTUgQEAgbW9yZSBvYnNjdXJlIEdEQiBgY29uZmln dXJlJyBvcHRpb25zIGFyZSBub3QgbGlzdGVkIGhlcmUuCiAgICAgIFVzZSB0 aGUgY3Vyc2VzIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgdGVybWNhcCBsaWJy YXJ5LCBmb3IKICAgICAgdGV4dC1tb2RlIHRlcm1pbmFsIG9wZXJhdGlvbnMu CiAKK2AtLXdpdGgtZGVidWdpbmZvZCcKKyAgICAgQnVpbGQgR0RCIHdpdGgg bGliZGVidWdpbmZvZCwgdGhlIGRlYnVnaW5mb2QgY2xpZW50IGxpYnJhcnku ICBVc2VkCisgICAgIHRvIGF1dG9tYXRpY2FsbHkgZmV0Y2ggc291cmNlIGZp bGVzIGFuZCBzZXBhcmF0ZSBkZWJ1ZyBmaWxlcyBmcm9tCisgICAgIGRlYnVn aW5mb2Qgc2VydmVycyB1c2luZyB0aGUgYXNzb2NpYXRlZCBleGVjdXRhYmxl J3MgYnVpbGQgSUQuCisgICAgIEVuYWJsZWQgYnkgZGVmYXVsdCBpZiBsaWJk ZWJ1Z2luZm9kIGlzIGluc3RhbGxlZCBhbmQgZm91bmQgYXQKKyAgICAgY29u ZmlndXJlIHRpbWUuICBkZWJ1Z2luZm9kIGlzIHBhY2thZ2VkIHdpdGggZWxm dXRpbHMsIHN0YXJ0aW5nCisgICAgIHdpdGggdmVyc2lvbiAwLjE3OC4gIFlv dSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBmcm9tCisgICAgICdodHRw czovL3NvdXJjZXdhcmUub3JnL2VsZnV0aWxzLycuCisKIGAtLXdpdGgtbGli dW53aW5kLWlhNjQnCiAgICAgIFVzZSB0aGUgbGlidW53aW5kIGxpYnJhcnkg Zm9yIHVud2luZGluZyBmdW5jdGlvbiBjYWxsIHN0YWNrIG9uIGlhNjQKICAg ICAgdGFyZ2V0IHBsYXRmb3Jtcy4KZGlmZiAtLWdpdCBhL2dkYi9jb25maWcu aW4gYi9nZGIvY29uZmlnLmluCmluZGV4IDljNWMxY2U4MzQuLjdhMzRiODVl NTcgMTAwNjQ0Ci0tLSBhL2dkYi9jb25maWcuaW4KKysrIGIvZ2RiL2NvbmZp Zy5pbgpAQCAtMjI3LDYgKzIyNyw5IEBACiAvKiBEZWZpbmUgaWYgeW91IGhh dmUgdGhlIGJhYmVsdHJhY2UgbGlicmFyeS4gKi8KICN1bmRlZiBIQVZFX0xJ QkJBQkVMVFJBQ0UKIAorLyogRGVmaW5lIHRvIDEgaWYgZGVidWdpbmZvZCBp cyBlbmFibGVkLiAqLworI3VuZGVmIEhBVkVfTElCREVCVUdJTkZPRAorCiAv KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGV4cGF0IGxpYnJhcnkuICovCiAj dW5kZWYgSEFWRV9MSUJFWFBBVAogCmRpZmYgLS1naXQgYS9nZGIvY29uZmln dXJlIGIvZ2RiL2NvbmZpZ3VyZQppbmRleCBlNmI1YTUxMGY2Li5jNTBhY2Jm NGNmIDEwMDc1NQotLS0gYS9nZGIvY29uZmlndXJlCisrKyBiL2dkYi9jb25m aWd1cmUKQEAgLTcxOSw3ICs3MTksNiBAQCBHVUlMRV9MSUJTCiBHVUlMRV9D UFBGTEFHUwogR1VJTERfVEFSR0VUX0ZMQUcKIEdVSUxECi1wa2dfY29uZmln X3Byb2dfcGF0aAogSEFWRV9QWVRIT05fRkFMU0UKIEhBVkVfUFlUSE9OX1RS VUUKIFBZVEhPTl9MSUJTCkBAIC03NTgsNiArNzU3LDkgQEAgUkVQT1JUX0JV R1NfVEVYSQogUkVQT1JUX0JVR1NfVE8KIFBLR1ZFUlNJT04KIENPREVTSUdO X0NFUlQKK0RFQlVHSU5GT0RfQ0ZMQUdTCitERUJVR0lORk9EX0xJQlMKK3Br Z19jb25maWdfcHJvZ19wYXRoCiBIQVZFX05BVElWRV9HQ09SRV9UQVJHRVQK IFRBUkdFVF9PQlMKIHN1YmRpcnMKQEAgLTg2OSw2ICs4NzEsNyBAQCBlbmFi bGVfNjRfYml0X2JmZAogZW5hYmxlX2dkYm1pCiBlbmFibGVfdHVpCiBlbmFi bGVfZ2RidGsKK3dpdGhfZGVidWdpbmZvZAogd2l0aF9saWJ1bndpbmRfaWE2 NAogd2l0aF9jdXJzZXMKIGVuYWJsZV9wcm9maWxpbmcKQEAgLTE2MDIsNiAr MTYwNSw4IEBAIE9wdGlvbmFsIFBhY2thZ2VzOgogICAgICAgICAgICAgICAg ICAgICAgICAgICBbLS13aXRoLWF1dG8tbG9hZC1kaXJdCiAgIC0td2l0aG91 dC1hdXRvLWxvYWQtc2FmZS1wYXRoCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRvIG5vdCByZXN0cmljdCBhdXRvLWxvYWRlZCBmaWxlcyBsb2NhdGlv bnMKKyAgLS13aXRoLWRlYnVnaW5mb2QgICAgICAgRW5hYmxlIGRlYnVnaW5m byBsb29rdXBzIHdpdGggZGVidWdpbmZvZAorICAgICAgICAgICAgICAgICAg ICAgICAgICAoYXV0by95ZXMvbm8pCiAgIC0td2l0aC1saWJ1bndpbmQtaWE2 NCAgIHVzZSBsaWJ1bndpbmQgZnJhbWUgdW53aW5kaW5nIGZvciBpYTY0IHRh cmdldHMKICAgLS13aXRoLWN1cnNlcyAgICAgICAgICAgdXNlIHRoZSBjdXJz ZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwCiAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnJhcnkKQEAgLTY4MzYsOCArNjg0MSw5NCBA QCAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBnZGJ0ayBpc24ndCBzdXBw b3J0ZWQgb24gJGhvc3Q7IGRpc2FibGluZyIgPiYyO30KICAgICBlbmFibGVf Z2RidGs9bm8gOzsKIGVzYWMKIAotIyBMaWJ1bndpbmQgc3VwcG9ydCBmb3Ig aWE2NC4KKyMgSGFuZGxlIG9wdGlvbmFsIGRlYnVnaW5mb2Qgc3VwcG9ydAor CisjIENoZWNrIHdoZXRoZXIgLS13aXRoLWRlYnVnaW5mb2Qgd2FzIGdpdmVu LgoraWYgdGVzdCAiJHt3aXRoX2RlYnVnaW5mb2Qrc2V0fSIgPSBzZXQ7IHRo ZW4gOgorICB3aXRodmFsPSR3aXRoX2RlYnVnaW5mb2Q7CitlbHNlCisgIHdp dGhfZGVidWdpbmZvZD1hdXRvCitmaQogCit7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdG8gdXNl IGRlYnVnaW5mb2QiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciB0byB1c2UgZGVidWdpbmZvZC4uLiAiID4mNjsgfQoreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR3aXRoX2Rl YnVnaW5mb2QiID4mNQorJGFzX2VjaG8gIiR3aXRoX2RlYnVnaW5mb2QiID4m NjsgfQorCitpZiB0ZXN0ICJ4JHdpdGhfZGVidWdpbmZvZCIgIT0geG5vOyB0 aGVuCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGtnLWNvbmZp ZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitz ZXQgZHVtbXkgcGtnLWNvbmZpZzsgYWNfd29yZD0kMgoreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9CitpZiAke2FjX2N2X3BhdGhfcGtnX2NvbmZpZ19wcm9n X3BhdGgrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorZWxzZQorICBjYXNlICRwa2dfY29uZmlnX3Byb2dfcGF0aCBp bgorICBbXFwvXSogfCA/OltcXC9dKikKKyAgYWNfY3ZfcGF0aF9wa2dfY29u ZmlnX3Byb2dfcGF0aD0iJHBrZ19jb25maWdfcHJvZ19wYXRoIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKyAgOzsK KyAgKikKKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lG UworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworICBpZiBhc19mbl9leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcGF0aF9wa2dfY29uZmln X3Byb2dfcGF0aD0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAg ICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVh ayAyCisgIGZpCitkb25lCisgIGRvbmUKK0lGUz0kYXNfc2F2ZV9JRlMKKwor ICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9wa2dfY29uZmlnX3Byb2dfcGF0aCIg JiYgYWNfY3ZfcGF0aF9wa2dfY29uZmlnX3Byb2dfcGF0aD0ibWlzc2luZyIK KyAgOzsKK2VzYWMKK2ZpCitwa2dfY29uZmlnX3Byb2dfcGF0aD0kYWNfY3Zf cGF0aF9wa2dfY29uZmlnX3Byb2dfcGF0aAoraWYgdGVzdCAtbiAiJHBrZ19j b25maWdfcHJvZ19wYXRoIjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHBrZ19jb25maWdfcHJv Z19wYXRoIiA+JjUKKyRhc19lY2hvICIkcGtnX2NvbmZpZ19wcm9nX3BhdGgi ID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+ JjY7IH0KK2ZpCisKKworICBpZiB0ZXN0ICIke3BrZ19jb25maWdfcHJvZ19w YXRofSIgIT0gIm1pc3NpbmciOyB0aGVuCisgICAgJHtwa2dfY29uZmlnX3By b2dfcGF0aH0gLS1leGlzdHMgLS1hdGxlYXN0LXZlcnNpb249MC4xNzggbGli ZGVidWdpbmZvZAorICAgIGlmIHRlc3QgJD8gPSAwOyB0aGVuCisgICAgICBE RUJVR0lORk9EX0xJQlM9YCR7cGtnX2NvbmZpZ19wcm9nX3BhdGh9IC0tbGli cyBsaWJkZWJ1Z2luZm9kYAorCisgICAgICBERUJVR0lORk9EX0NGTEFHUz1g JHtwa2dfY29uZmlnX3Byb2dfcGF0aH0gLS1jZmxhZ3MgbGliZGVidWdpbmZv ZGAKKworCiskYXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQkRFQlVHSU5GT0Qg MSIgPj5jb25mZGVmcy5oCisKKyAgICBlbHNlCisgICAgICBpZiB0ZXN0ICJ4 JHdpdGhfZGVidWdpbmZvZCIgPSB4eWVzOyB0aGVuCisJYXNfZm5fZXJyb3Ig JD8gIlwiLS13aXRoLWRlYnVnaW5mb2Qgd2FzIGdpdmVuLCBidXQgbGliZGVi dWdpbmZvZCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlLlwiIiAiJExJTkVOTyIg NQorICAgICAgZWxzZQorCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogV0FSTklORzogbGliZGVidWdpbmZvZCBpcyBtaXNzaW5n IG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJs ZS4iID4mNQorJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogbGliZGVidWdp bmZvZCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1h eSBiZSB1bmF2YWlsYWJsZS4iID4mMjt9CisgICAgICBmaQorICAgIGZpCisg IGVsc2UKKyAgICBpZiB0ZXN0ICJ4JHdpdGhfZGVidWdpbmZvZCIgPSB4eWVz OyB0aGVuCisgICAgICBhc19mbl9lcnJvciAkPyAiLS13aXRoLWRlYnVnaW5m b2Qgd2FzIGdpdmVuLCBidXQgcGtnLWNvbmZpZyBtaXNzaW5nIG9yIHVudXNh YmxlOyBjYW5ub3QgZmluZCBsaWJkZWJ1Z2luZm9kIiAiJExJTkVOTyIgNQor ICAgIGVsc2UKKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogV0FSTklORzogcGtnLWNvbmZpZyBtaXNzaW5nIG9yIHVu dXNhYmxlOyBkZWJ1Z2luZm9kIHN1cHBvcnQgZGlzYWJsZWQuIiA+JjUKKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHBrZy1jb25maWcgbWlzc2luZyBv ciB1bnVzYWJsZTsgZGVidWdpbmZvZCBzdXBwb3J0IGRpc2FibGVkLiIgPiYy O30KKyAgICBmaQorICBmaQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IGRlYnVnaW5mb2Qgc3Vw cG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFi bGUuIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGRlYnVnaW5m b2Qgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5h dmFpbGFibGUuIiA+JjI7fQorZmkKKworIyBMaWJ1bndpbmQgc3VwcG9ydCBm b3IgaWE2NC4KIAogIyBDaGVjayB3aGV0aGVyIC0td2l0aC1saWJ1bndpbmQt aWE2NCB3YXMgZ2l2ZW4uCiBpZiB0ZXN0ICIke3dpdGhfbGlidW53aW5kX2lh NjQrc2V0fSIgPSBzZXQ7IHRoZW4gOgpkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZp Z3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKaW5kZXggYTUxYzVlZGE2Yi4u OTgwYmMzMDQ3YSAxMDA2NDQKLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYworKysg Yi9nZGIvY29uZmlndXJlLmFjCkBAIC0zMjIsOCArMzIyLDQwIEBAIGNhc2Ug JGhvc3Rfb3MgaW4KICAgICBlbmFibGVfZ2RidGs9bm8gOzsKIGVzYWMKIAot IyBMaWJ1bndpbmQgc3VwcG9ydCBmb3IgaWE2NC4KKyMgSGFuZGxlIG9wdGlv bmFsIGRlYnVnaW5mb2Qgc3VwcG9ydAorQUNfQVJHX1dJVEgoW2RlYnVnaW5m b2RdLAorICBBQ19IRUxQX1NUUklORyhbLS13aXRoLWRlYnVnaW5mb2RdLCBb RW5hYmxlIGRlYnVnaW5mbyBsb29rdXBzIHdpdGggZGVidWdpbmZvZCAoYXV0 by95ZXMvbm8pXSksCisgIFtdLCBbd2l0aF9kZWJ1Z2luZm9kPWF1dG9dKQor QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIHVzZSBkZWJ1Z2luZm9kXSkK K0FDX01TR19SRVNVTFQoWyR3aXRoX2RlYnVnaW5mb2RdKQorCitpZiB0ZXN0 ICJ4JHdpdGhfZGVidWdpbmZvZCIgIT0geG5vOyB0aGVuCisgIEFDX1BBVEhf UFJPRyhwa2dfY29uZmlnX3Byb2dfcGF0aCwgcGtnLWNvbmZpZywgbWlzc2lu ZykKKyAgaWYgdGVzdCAiJHtwa2dfY29uZmlnX3Byb2dfcGF0aH0iICE9ICJt aXNzaW5nIjsgdGhlbgorICAgICR7cGtnX2NvbmZpZ19wcm9nX3BhdGh9IC0t ZXhpc3RzIC0tYXRsZWFzdC12ZXJzaW9uPTAuMTc4IGxpYmRlYnVnaW5mb2QK KyAgICBpZiB0ZXN0ICQ/ID0gMDsgdGhlbgorICAgICAgQUNfU1VCU1QoW0RF QlVHSU5GT0RfTElCU10sIFtgJHtwa2dfY29uZmlnX3Byb2dfcGF0aH0gLS1s aWJzIGxpYmRlYnVnaW5mb2RgXSkKKyAgICAgIEFDX1NVQlNUKFtERUJVR0lO Rk9EX0NGTEFHU10sIFtgJHtwa2dfY29uZmlnX3Byb2dfcGF0aH0gLS1jZmxh Z3MgbGliZGVidWdpbmZvZGBdKQorICAgICAgQUNfREVGSU5FKFtIQVZFX0xJ QkRFQlVHSU5GT0RdLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiBkZWJ1Z2luZm9k IGlzIGVuYWJsZWQuXSkKKyAgICBlbHNlCisgICAgICBpZiB0ZXN0ICJ4JHdp dGhfZGVidWdpbmZvZCIgPSB4eWVzOyB0aGVuCisJQUNfTVNHX0VSUk9SKFsi LS13aXRoLWRlYnVnaW5mb2Qgd2FzIGdpdmVuLCBidXQgbGliZGVidWdpbmZv ZCBpcyBtaXNzaW5nIG9yIHVudXNhYmxlLiJdKQorICAgICAgZWxzZQorCUFD X01TR19XQVJOKFtsaWJkZWJ1Z2luZm9kIGlzIG1pc3Npbmcgb3IgdW51c2Fi bGU7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLl0pCisgICAg ICBmaQorICAgIGZpCisgIGVsc2UKKyAgICBpZiB0ZXN0ICJ4JHdpdGhfZGVi dWdpbmZvZCIgPSB4eWVzOyB0aGVuCisgICAgICBBQ19NU0dfRVJST1IoWy0t d2l0aC1kZWJ1Z2luZm9kIHdhcyBnaXZlbiwgYnV0IHBrZy1jb25maWcgbWlz c2luZyBvciB1bnVzYWJsZTsgY2Fubm90IGZpbmQgbGliZGVidWdpbmZvZF0p CisgICAgZWxzZQorICAgICAgQUNfTVNHX1dBUk4oW3BrZy1jb25maWcgbWlz c2luZyBvciB1bnVzYWJsZTsgZGVidWdpbmZvZCBzdXBwb3J0IGRpc2FibGVk Ll0pCisgICAgZmkKKyAgZmkKK2Vsc2UKKyAgQUNfTVNHX1dBUk4oW2RlYnVn aW5mb2Qgc3VwcG9ydCBkaXNhYmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUg dW5hdmFpbGFibGUuXSkKK2ZpCiAKKyMgTGlidW53aW5kIHN1cHBvcnQgZm9y IGlhNjQuCiBBQ19BUkdfV0lUSChsaWJ1bndpbmQtaWE2NCwKIEFTX0hFTFBf U1RSSU5HKFstLXdpdGgtbGlidW53aW5kLWlhNjRdLAogCSAgICAgICBbdXNl IGxpYnVud2luZCBmcmFtZSB1bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0c10p LCwKZGlmZiAtLWdpdCBhL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuYyBiL2dk Yi9kZWJ1Z2luZm9kLXN1cHBvcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi42YWRkYmYyYzNmCi0tLSAvZGV2L251bGwKKysr IGIvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9ydC5jCkBAIC0wLDAgKzEsMTM0IEBA CisvKiBkZWJ1Z2luZm9kIHV0aWxpdGllcyBmb3IgR0RCLgorICAgQ29weXJp Z2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor CisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisKKyAgIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1 ZGUgImRlZnMuaCIKKyNpbmNsdWRlICJnZGJzdXBwb3J0L3Njb3BlZF9mZC5o IgorI2luY2x1ZGUgImRlYnVnaW5mb2Qtc3VwcG9ydC5oIgorCisjaWZuZGVm IEhBVkVfTElCREVCVUdJTkZPRAorc2NvcGVkX2ZkCitkZWJ1Z2luZm9kX3Nv dXJjZV9xdWVyeSAoY29uc3QgdW5zaWduZWQgY2hhciAqYnVpbGRfaWQgX19h dHRyaWJ1dGVfXygodW51c2VkKSksCisJCQkgaW50IGJ1aWxkX2lkX2xlbiBf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwKKwkJCSBjb25zdCBjaGFyICpzcmNw YXRoIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLAorCQkJIGdkYjo6dW5pcXVl X3htYWxsb2NfcHRyPGNoYXI+ICpmaWxlbmFtZSBfX2F0dHJpYnV0ZV9fKCh1 bnVzZWQpKSkKK3sKKyAgcmV0dXJuIHNjb3BlZF9mZCAoLUVOT1NZUyk7Cit9 CisKK3Njb3BlZF9mZAorZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGNv bnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkIF9fYXR0cmlidXRlX18oKHVu dXNlZCkpLAorCQkJICAgIGludCBidWlsZF9pZF9sZW4gX19hdHRyaWJ1dGVf XygodW51c2VkKSksCisJCQkgICAgZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8 Y2hhcj4gKmZpbGVuYW1lIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQorewor ICByZXR1cm4gc2NvcGVkX2ZkICgtRU5PU1lTKTsKK30KKyNlbHNlCisjaW5j bHVkZSA8ZWxmdXRpbHMvZGVidWdpbmZvZC5oPgorCitzdGF0aWMgaW50Citw cm9ncmVzc2ZuIChkZWJ1Z2luZm9kX2NsaWVudCAqYywgbG9uZyBjdXIsIGxv bmcgdG90YWwpCit7CisgIGlmIChjaGVja19xdWl0X2ZsYWcgKCkpCisgICAg eworICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKCJDYW5jZWxsaW5nIGRvd25s b2FkLi4uXG4iKTsKKyAgICAgIHJldHVybiAxOworICAgIH0KKworICBwcmlu dGZfdW5maWx0ZXJlZCAoIkRvd25sb2FkaW5nLi4uICUuMGYlJSAoJWxkLyVs ZCklcyIsCisJCSAgICAgKGN1ciAqIDEwMC4wZikgLyB0b3RhbCwKKwkJICAg ICBjdXIsIHRvdGFsLAorCQkgICAgIChjdXIgPT0gdG90YWwpID8gIlxuIiA6 ICJcciIpOworICByZXR1cm4gMDsKK30KKworc3RhdGljIGRlYnVnaW5mb2Rf Y2xpZW50ICoKK2RlYnVnaW5mb2RfaW5pdCAoKQoreworICBkZWJ1Z2luZm9k X2NsaWVudCAqYyA9IGRlYnVnaW5mb2RfYmVnaW4gKCk7CisKKyAgaWYgKGMg IT0gbnVsbHB0cikKKyAgICBkZWJ1Z2luZm9kX3NldF9wcm9ncmVzc2ZuIChj LCBwcm9ncmVzc2ZuKTsKKworICByZXR1cm4gYzsKK30KKworLyogU2VlIGRl YnVnaW5mb2Qtc3VwcG9ydC5oICAqLworCitzY29wZWRfZmQKK2RlYnVnaW5m b2Rfc291cmNlX3F1ZXJ5IChjb25zdCB1bnNpZ25lZCBjaGFyICpidWlsZF9p ZCwKKwkJCSBpbnQgYnVpbGRfaWRfbGVuLAorCQkJIGNvbnN0IGNoYXIgKnNy Y3BhdGgsCisJCQkgIGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPGNoYXI+ICpk ZXN0bmFtZSkKK3sKKyAgZGVidWdpbmZvZF9jbGllbnQgKmMgPSBkZWJ1Z2lu Zm9kX2luaXQgKCk7CisKKyAgaWYgKGMgPT0gbnVsbHB0cikKKyAgICByZXR1 cm4gc2NvcGVkX2ZkICgtRU5PTUVNKTsKKworICBjaGFyICpkbmFtZSA9IG51 bGxwdHI7CisKKyAgcHJpbnRmX3VuZmlsdGVyZWQgKCJBdHRlbXB0aW5nIHRv IGRvd25sb2FkIHNvdXJjZSBmaWxlICVzXG4iLCBzcmNwYXRoKTsKKyAgc2Nv cGVkX2ZkIGZkIChkZWJ1Z2luZm9kX2ZpbmRfc291cmNlIChjLAorCQkJCQli dWlsZF9pZCwKKwkJCQkJYnVpbGRfaWRfbGVuLAorCQkJCQlzcmNwYXRoLAor CQkJCQkmZG5hbWUpKTsKKworICBpZiAoZmQuZ2V0ICgpIDwgMCkKKyAgICBw cmludGZfdW5maWx0ZXJlZCAoIkRvd25sb2FkIHVuc3VjY2Vzc2Z1bC4gQ29u dGludWluZyB3aXRob3V0IHNvdXJjZSBmaWxlICVzLlxuIiwKKwkJICAgICAg IHNyY3BhdGgpOworICBlbHNlCisgICAgcHJpbnRmX3VuZmlsdGVyZWQgKCJE b3dubG9hZCBzdWNjZXNzZnVsLlxuIik7CisKKyAgZGVzdG5hbWUtPnJlc2V0 IChkbmFtZSk7CisgIGRlYnVnaW5mb2RfZW5kIChjKTsKKworICByZXR1cm4g ZmQ7Cit9CisKKy8qIFNlZSBkZWJ1Z2luZm9kLXN1cHBvcnQuaCAgKi8KKwor c2NvcGVkX2ZkCitkZWJ1Z2luZm9kX2RlYnVnaW5mb19xdWVyeSAoY29uc3Qg dW5zaWduZWQgY2hhciAqYnVpbGRfaWQsCisJCQkgICAgaW50IGJ1aWxkX2lk X2xlbiwKKwkJCSAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwKKwkJCSAgICBn ZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiAqZGVzdG5hbWUpCit7Cisg IGRlYnVnaW5mb2RfY2xpZW50ICpjID0gZGVidWdpbmZvZF9pbml0ICgpOwor CisgIGlmIChjID09IG51bGxwdHIpCisgICAgcmV0dXJuIHNjb3BlZF9mZCAo LUVOT01FTSk7CisKKyAgY2hhciAqZG5hbWUgPSBudWxscHRyOworCisgIHBy aW50Zl91bmZpbHRlcmVkICgiQXR0ZW1wdGluZyB0byBkb3dubG9hZCBkZWJ1 ZyBpbmZvIGZvciAlc1xuIiwgZmlsZW5hbWUpOworICBzY29wZWRfZmQgZmQg KGRlYnVnaW5mb2RfZmluZF9kZWJ1Z2luZm8gKGMsIGJ1aWxkX2lkLCBidWls ZF9pZF9sZW4sICZkbmFtZSkpOworCisgIGlmIChmZC5nZXQgKCkgPCAwKQor ICAgIHByaW50Zl91bmZpbHRlcmVkICgiRG93bmxvYWQgdW5zdWNjZXNzZnVs LiBDb250aW51aW5nIHdpdGhvdXQgZGVidWcgaW5mbyBmb3IgJXMuXG4iLAor CQkgICAgICAgZmlsZW5hbWUpOworICBlbHNlCisgICAgcHJpbnRmX3VuZmls dGVyZWQgKCJEb3dubG9hZCBzdWNjZXNzZnVsLlxuIik7CisKKyAgZGVzdG5h bWUtPnJlc2V0IChkbmFtZSk7CisgIGRlYnVnaW5mb2RfZW5kIChjKTsKKwor ICByZXR1cm4gZmQ7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2dkYi9kZWJ1 Z2luZm9kLXN1cHBvcnQuaCBiL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yZTUwMGE5 OWYzCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9y dC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qIGRlYnVnaW5mb2QgdXRpbGl0aWVz IGZvciBHREIuCisgICBDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor ICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2lmbmRl ZiBERUJVR0lORk9EX1NVUFBPUlRfSAorI2RlZmluZSBERUJVR0lORk9EX1NV UFBPUlRfSAorCisvKiBRdWVyeSBkZWJ1Z2luZm9kIHNlcnZlcnMgZm9yIGEg c291cmNlIGZpbGUgYXNzb2NpYXRlZCB3aXRoIGFuCisgICBleGVjdXRhYmxl IHdpdGggQlVJTERfSUQuIEJVSUxEX0lEIGNhbiBiZSBnaXZlbiBhcyBhIGJp bmFyeSBibG9iIG9yCisgICBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcuIElm IGdpdmVuIGFzIGEgYmluYXJ5IGJsb2IsIEJVSUxEX0lEX0xFTgorICAgc2hv dWxkIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMuIElmIGdpdmVuIGFzIGEgbnVs bC10ZXJtaW5hdGVkIHN0cmluZywKKyAgIEJVSUxEX0lEX0xFTiBzaG91bGQg YmUgMC4KKworICAgU1JDX1BBVEggc2hvdWxkIGJlIHRoZSBzb3VyY2UgZmls ZSdzIGFic29sdXRlIHBhdGggdGhhdCBpbmNsdWRlcyB0aGUKKyAgIGNvbXBp bGF0aW9uIGRpcmVjdG9yeSBvZiB0aGUgQ1UgYXNzb2NpYXRlZCB3aXRoIHRo ZSBzb3VyY2UgZmlsZS4KKyAgIEZvciBleGFtcGxlIGlmIGEgQ1UncyBjb21w aWxhdGlvbiBkaXJlY3RvcnkgaXMgYC9teS9idWlsZGAgYW5kIHRoZQorICAg c291cmNlIGZpbGUgcGF0aCBpcyBgL215L3NvdXJjZS9mb28uY2AsIHRoZW4g U1JDX1BBVEggc2hvdWxkIGJlCisgICBgL215L2J1aWxkLy4uL3NvdXJjZS9m b28uY2AuCisKKyAgIElmIHRoZSBmaWxlIGlzIHN1Y2Nlc3NmdWxseSByZXRy aWV2ZWQsIGl0cyBwYXRoIG9uIHRoZSBsb2NhbCBtYWNoaW5lCisgICBpcyBz dG9yZWQgaW4gRklMRU5BTUUuIElmIEdEQiBpcyBub3QgYnVpbHQgd2l0aCBk ZWJ1Z2luZm9kLCB0aGlzCisgICBmdW5jdGlvbiByZXR1cm5zIC1FTk9TWVMu ICAqLworCitleHRlcm4gc2NvcGVkX2ZkCitkZWJ1Z2luZm9kX3NvdXJjZV9x dWVyeSAoY29uc3QgdW5zaWduZWQgY2hhciAqYnVpbGRfaWQsCisJCQkgaW50 IGJ1aWxkX2lkX2xlbiwKKwkJCSAgY29uc3QgY2hhciAqc3JjX3BhdGgsCisJ CQkgIGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPGNoYXI+ICpkZXN0bmFtZSk7 CisKKy8qIFF1ZXJ5IGRlYnVnaW5mb2Qgc2VydmVycyBmb3IgYSBkZWJ1Z2lu Zm8gZmlsZSB3aXRoIEJVSUxEX0lELgorICAgQlVJTERfSUQgY2FuIGJlIGdp dmVuIGFzIGEgYmluYXJ5IGJsb2Igb3IgYSBudWxsLXRlcm1pbmF0ZWQgc3Ry aW5nLgorICAgSWYgZ2l2ZW4gYXMgYSBiaW5hcnkgYmxvYiwgQlVJTERfSURf TEVOIHNob3VsZCBiZSB0aGUgbnVtYmVyIG9mIGJ5dGVzLgorICAgSWYgZ2l2 ZW4gYXMgYSBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nLCBCVUlMRF9JRF9MRU4g c2hvdWxkIGJlIDAuCisKKyAgIElmIHRoZSBmaWxlIGlzIHN1Y2Nlc3NmdWxs eSByZXRyaWV2ZWQsIGl0cyBwYXRoIG9uIHRoZSBsb2NhbCBtYWNoaW5lCisg ICBpcyBzdG9yZWQgaW4gRklMRU5BTUUuIElmIEdEQiBpcyBub3QgYnVpbHQg d2l0aCBkZWJ1Z2luZm9kLCB0aGlzCisgICBmdW5jdGlvbiByZXR1cm5zIC1F Tk9TWVMuICAqLworCitleHRlcm4gc2NvcGVkX2ZkCitkZWJ1Z2luZm9kX2Rl YnVnaW5mb19xdWVyeSAoY29uc3QgdW5zaWduZWQgY2hhciAqYnVpbGRfaWQs CisJCQkgICAgaW50IGJ1aWxkX2lkX2xlbiwKKwkJCSAgICBjb25zdCBjaGFy ICpmaWxlbmFtZSwKKwkJCSAgICBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxj aGFyPiAqZGVzdG5hbWUpOworCisjZW5kaWYgLyogREVCVUdJTkZPRF9TVVBQ T1JUX0ggKi8KZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9n ZGIvZG9jL2dkYi50ZXhpbmZvCmluZGV4IGEyODY2YTI4MzMuLjlkMjkyMmJl MzQgMTAwNjQ0Ci0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIvZ2Ri L2RvYy9nZGIudGV4aW5mbwpAQCAtMzc3OTQsNiArMzc3OTQsMTQgQEAgc3Vw cG9ydGVkKS4KIFVzZSB0aGUgY3Vyc2VzIGxpYnJhcnkgaW5zdGVhZCBvZiB0 aGUgdGVybWNhcCBsaWJyYXJ5LCBmb3IgdGV4dC1tb2RlCiB0ZXJtaW5hbCBv cGVyYXRpb25zLgogCitAaXRlbSAtLXdpdGgtZGVidWdpbmZvZAorQnVpbGQg QHZhbHVle0dEQk59IHdpdGggbGliZGVidWdpbmZvZCwgdGhlIGRlYnVnaW5m b2QgY2xpZW50IGxpYnJhcnkuCitVc2VkIHRvIGF1dG9tYXRpY2FsbHkgZmV0 Y2ggc291cmNlIGZpbGVzIGFuZCBzZXBhcmF0ZSBkZWJ1ZyBmaWxlcyBmcm9t CitkZWJ1Z2luZm9kIHNlcnZlcnMgdXNpbmcgdGhlIGFzc29jaWF0ZWQgZXhl Y3V0YWJsZSdzIGJ1aWxkIElELiBFbmFibGVkCitieSBkZWZhdWx0IGlmIGxp YmRlYnVnaW5mb2QgaXMgaW5zdGFsbGVkIGFuZCBmb3VuZCBhdCBjb25maWd1 cmUgdGltZS4KK2RlYnVnaW5mb2QgaXMgcGFja2FnZWQgd2l0aCBlbGZ1dGls cywgc3RhcnRpbmcgd2l0aCB2ZXJzaW9uIDAuMTc4LiBZb3UKK2NhbiBnZXQg dGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gYGh0dHBzOi8vc291cmNld2FyZS5v cmcvZWxmdXRpbHMvJy4KKwogQGl0ZW0gLS13aXRoLWxpYnVud2luZC1pYTY0 CiBVc2UgdGhlIGxpYnVud2luZCBsaWJyYXJ5IGZvciB1bndpbmRpbmcgZnVu Y3Rpb24gY2FsbCBzdGFjayBvbiBpYTY0CiB0YXJnZXQgcGxhdGZvcm1zLiAg U2VlIGh0dHA6Ly93d3cubm9uZ251Lm9yZy9saWJ1bndpbmQvaW5kZXguaHRt bCBmb3IKZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjIvcmVhZC5jIGIvZ2RiL2R3 YXJmMi9yZWFkLmMKaW5kZXggNGQ3NjdhNTlhZi4uYTdiY2E3NTY2MSAxMDA2 NDQKLS0tIGEvZ2RiL2R3YXJmMi9yZWFkLmMKKysrIGIvZ2RiL2R3YXJmMi9y ZWFkLmMKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRlICJydXN0LWxhbmcu aCIKICNpbmNsdWRlICJnZGJzdXBwb3J0L3BhdGhzdHVmZi5oIgogI2luY2x1 ZGUgImNvdW50LW9uZS1iaXRzLmgiCisjaW5jbHVkZSAiZGVidWdpbmZvZC1z dXBwb3J0LmgiCiAKIC8qIFdoZW4gPT0gMSwgcHJpbnQgYmFzaWMgaGlnaCBs ZXZlbCB0cmFjaW5nIG1lc3NhZ2VzLgogICAgV2hlbiA+IDEsIGJlIG1vcmUg dmVyYm9zZS4KQEAgLTIxNTMsNiArMjE1NCwyNyBAQCBkd2FyZjJfZ2V0X2R3 el9maWxlIChzdHJ1Y3QgZHdhcmYyX3Blcl9vYmpmaWxlICpkd2FyZjJfcGVy X29iamZpbGUpCiAgIGlmIChkd3pfYmZkID09IE5VTEwpCiAgICAgZHd6X2Jm ZCA9IGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoYnVpbGRpZF9sZW4sIGJ1aWxk aWQpOwogCisgIGlmIChkd3pfYmZkID09IG51bGxwdHIpCisgICAgeworICAg ICAgZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gYWx0X2ZpbGVuYW1l OworICAgICAgY29uc3QgY2hhciAqb3JpZ25hbWUgPSBkd2FyZjJfcGVyX29i amZpbGUtPm9iamZpbGUtPm9yaWdpbmFsX25hbWU7CisKKyAgICAgIHNjb3Bl ZF9mZCBmZCAoZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGJ1aWxkaWQs CisJCQkJCQlidWlsZGlkX2xlbiwKKwkJCQkJCW9yaWduYW1lLAorCQkJCQkJ JmFsdF9maWxlbmFtZSkpOworCisgICAgICBpZiAoZmQuZ2V0ICgpID49IDAp CisJeworCSAgLyogRmlsZSBzdWNjZXNzZnVsbHkgcmV0cmlldmVkIGZyb20g c2VydmVyLiAgKi8KKwkgIGR3el9iZmQgPSBnZGJfYmZkX29wZW4gKGFsdF9m aWxlbmFtZS5nZXQgKCksIGdudXRhcmdldCwgLTEpOworCisJIGlmIChkd3pf YmZkICE9IG51bGxwdHIKKwkgICAgICYmICFidWlsZF9pZF92ZXJpZnkgKGR3 el9iZmQuZ2V0ICgpLCBidWlsZGlkX2xlbiwgYnVpbGRpZCkpCisJICAgZHd6 X2JmZC5yZXNldCAobnVsbHB0cik7CisJfQorICAgIH0KKwogICBpZiAoZHd6 X2JmZCA9PSBOVUxMKQogICAgIGVycm9yIChfKCJjb3VsZCBub3QgZmluZCAn LmdudV9kZWJ1Z2FsdGxpbmsnIGZpbGUgZm9yICVzIiksCiAJICAgb2JqZmls ZV9uYW1lIChkd2FyZjJfcGVyX29iamZpbGUtPm9iamZpbGUpKTsKZGlmZiAt LWdpdCBhL2dkYi9lbGZyZWFkLmMgYi9nZGIvZWxmcmVhZC5jCmluZGV4IDQ1 M2JjYTUyN2UuLmY4NmM5NTQ4YmUgMTAwNjQ0Ci0tLSBhL2dkYi9lbGZyZWFk LmMKKysrIGIvZ2RiL2VsZnJlYWQuYwpAQCAtNDksNiArNDksOCBAQAogI2lu Y2x1ZGUgIm1kZWJ1Z3JlYWQuaCIKICNpbmNsdWRlICJjdGZyZWFkLmgiCiAj aW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGJfc3RyaW5nX3ZpZXcuaCIKKyNpbmNs dWRlICJnZGJzdXBwb3J0L3Njb3BlZF9mZC5oIgorI2luY2x1ZGUgImRlYnVn aW5mb2Qtc3VwcG9ydC5oIgogCiAvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucy4g ICovCiBleHRlcm4gY29uc3Qgc3RydWN0IHN5bV9mbnMgZWxmX3N5bV9mbnNf Z2RiX2luZGV4OwpAQCAtMTMxNiw4ICsxMzE4LDM0IEBAIGVsZl9zeW1maWxl X3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzeW1maWxlX2FkZF9m bGFncyBzeW1maWxlX2ZsYWdzKQogCSAgc3ltYm9sX2ZpbGVfYWRkX3NlcGFy YXRlIChkZWJ1Z19iZmQuZ2V0ICgpLCBkZWJ1Z2ZpbGUuY19zdHIgKCksCiAJ CQkJICAgIHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOwogCX0KLQllbHNlCisg ICAgICBlbHNlCisJewogCSAgaGFzX2R3YXJmMiA9IGZhbHNlOworCSAgY29u c3Qgc3RydWN0IGJmZF9idWlsZF9pZCAqYnVpbGRfaWQgPSBidWlsZF9pZF9i ZmRfZ2V0IChvYmpmaWxlLT5vYmZkKTsKKworCSAgaWYgKGJ1aWxkX2lkICE9 IG51bGxwdHIpCisJICAgIHsKKwkgICAgICBnZGI6OnVuaXF1ZV94bWFsbG9j X3B0cjxjaGFyPiBzeW1maWxlX3BhdGg7CisJICAgICAgc2NvcGVkX2ZkIGZk IChkZWJ1Z2luZm9kX2RlYnVnaW5mb19xdWVyeSAoYnVpbGRfaWQtPmRhdGEs CisJCQkJCQkJYnVpbGRfaWQtPnNpemUsCisJCQkJCQkJb2JqZmlsZS0+b3Jp Z2luYWxfbmFtZSwKKwkJCQkJCQkmc3ltZmlsZV9wYXRoKSk7CisKKwkgICAg ICBpZiAoZmQuZ2V0ICgpID49IDApCisJCXsKKwkJICAvKiBGaWxlIHN1Y2Nl c3NmdWxseSByZXRyaWV2ZWQgZnJvbSBzZXJ2ZXIuICAqLworCQkgIGdkYl9i ZmRfcmVmX3B0ciBkZWJ1Z19iZmQgKHN5bWZpbGVfYmZkX29wZW4gKHN5bWZp bGVfcGF0aC5nZXQgKCkpKTsKKworCQkgIGlmIChkZWJ1Z19iZmQgIT0gbnVs bHB0cgorCQkgICAgICAmJiBidWlsZF9pZF92ZXJpZnkgKGRlYnVnX2JmZC5n ZXQgKCksIGJ1aWxkX2lkLT5zaXplLCBidWlsZF9pZC0+ZGF0YSkpCisJCSAg ICB7CisJCSAgICAgIHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoZGVidWdf YmZkLmdldCAoKSwgc3ltZmlsZV9wYXRoLmdldCAoKSwKKwkJCQkJCXN5bWZp bGVfZmxhZ3MsIG9iamZpbGUpOworCQkgICAgICAgaGFzX2R3YXJmMiA9IHRy dWU7CisJCSAgICB9CisJCX0KKwkgICAgfQorCX0KICAgICB9CiAKICAgLyog UmVhZCB0aGUgQ1RGIHNlY3Rpb24gb25seSBpZiB0aGVyZSBpcyBubyBEV0FS RiBpbmZvLiAgKi8KZGlmZiAtLWdpdCBhL2dkYi9zb3VyY2UuYyBiL2dkYi9z b3VyY2UuYwppbmRleCA0Zjg4OWU0Yjk1Li4wNTFjYWY1YzU3IDEwMDY0NAot LS0gYS9nZGIvc291cmNlLmMKKysrIGIvZ2RiL3NvdXJjZS5jCkBAIC00OCw2 ICs0OCw4IEBACiAjaW5jbHVkZSAic291cmNlLWNhY2hlLmgiCiAjaW5jbHVk ZSAiY2xpL2NsaS1zdHlsZS5oIgogI2luY2x1ZGUgIm9ic2VydmFibGUuaCIK KyNpbmNsdWRlICJidWlsZC1pZC5oIgorI2luY2x1ZGUgImRlYnVnaW5mb2Qt c3VwcG9ydC5oIgogCiAjZGVmaW5lIE9QRU5fTU9ERSAoT19SRE9OTFkgfCBP X0JJTkFSWSkKICNkZWZpbmUgRkRPUEVOX01PREUgRk9QRU5fUkIKQEAgLTEx NDgsNiArMTE1MCwzNCBAQCBvcGVuX3NvdXJjZV9maWxlIChzdHJ1Y3Qgc3lt dGFiICpzKQogICBzLT5mdWxsbmFtZSA9IE5VTEw7CiAgIHNjb3BlZF9mZCBm ZCA9IGZpbmRfYW5kX29wZW5fc291cmNlIChzLT5maWxlbmFtZSwgU1lNVEFC X0RJUk5BTUUgKHMpLAogCQkJCSAgICAgICAmZnVsbG5hbWUpOworCisgIGlm IChmZC5nZXQgKCkgPCAwKQorICAgIHsKKyAgICAgIGlmIChTWU1UQUJfQ09N UFVOSVQgKHMpICE9IG51bGxwdHIpCisJeworCSAgY29uc3Qgb2JqZmlsZSAq b2ZwID0gQ09NUFVOSVRfT0JKRklMRSAoU1lNVEFCX0NPTVBVTklUIChzKSk7 CisKKwkgIHN0ZDo6c3RyaW5nIHNyY3BhdGg7CisJICBpZiAoSVNfQUJTT0xV VEVfUEFUSCAocy0+ZmlsZW5hbWUpKQorCSAgICBzcmNwYXRoID0gcy0+Zmls ZW5hbWU7CisJICBlbHNlCisJICAgIHsKKwkgICAgICBzcmNwYXRoID0gU1lN VEFCX0RJUk5BTUUgKHMpOworCSAgICAgIHNyY3BhdGggKz0gU0xBU0hfU1RS SU5HOworCSAgICAgIHNyY3BhdGggKz0gcy0+ZmlsZW5hbWU7CisJICAgIH0K KworCSAgY29uc3Qgc3RydWN0IGJmZF9idWlsZF9pZCAqYnVpbGRfaWQgPSBi dWlsZF9pZF9iZmRfZ2V0IChvZnAtPm9iZmQpOworCisJICAvKiBRdWVyeSBk ZWJ1Z2luZm9kIGZvciB0aGUgc291cmNlIGZpbGUuICAqLworCSAgaWYgKGJ1 aWxkX2lkICE9IG51bGxwdHIpCisJICAgIGZkID0gZGVidWdpbmZvZF9zb3Vy Y2VfcXVlcnkgKGJ1aWxkX2lkLT5kYXRhLAorCQkJCQkgIGJ1aWxkX2lkLT5z aXplLAorCQkJCQkgIHNyY3BhdGguY19zdHIgKCksCisJCQkJCSAgJmZ1bGxu YW1lKTsKKwl9CisgICAgfQorCiAgIHMtPmZ1bGxuYW1lID0gZnVsbG5hbWUu cmVsZWFzZSAoKTsKICAgcmV0dXJuIGZkOwogfQpkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZGVidWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJv bHMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVidWdpbmZvZC9mZXRjaF9z cmNfYW5kX3N5bWJvbHMuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjBiZjE4ZjJkMTIKLS0tIC9kZXYvbnVsbAorKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5kZWJ1Z2luZm9kL2ZldGNoX3NyY19hbmRfc3lt Ym9scy5leHAKQEAgLTAsMCArMSwyMTQgQEAKKyMgQ29weXJpZ2h0IDIwMjAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisKKyMgVGVzdCBkZWJ1Z2luZm9kIGZ1bmN0aW9uYWxpdHkKKworc3Rh bmRhcmRfdGVzdGZpbGUgbWFpbi5jCisKK2xvYWRfbGliIGR3YXJmLmV4cAor CitpZiB7IFt3aGljaCBkZWJ1Z2luZm9kXSA9PSAwIH0geworICAgIHVudGVz dGVkICJjYW5ub3QgZmluZCBkZWJ1Z2luZm9kIgorICAgIHJldHVybiAtMQor fQorCitpZiB7IFt3aGljaCBjdXJsXSA9PSAwIH0geworICAgIHVudGVzdGVk ICJjYW5ub3QgZmluZCBjdXJsIgorICAgIHJldHVybiAtMQorfQorCisjIFNr aXAgdGVzdGluZyBpZiBnZGIgd2FzIG5vdCBjb25maWd1cmVkIHdpdGggZGVi dWdpbmZvZAoraWYgeyBbc3RyaW5nIGZpcnN0ICJ3aXRoLWRlYnVnaW5mb2Qi IFtleGVjICRHREIgLS1jb25maWd1cmF0aW9uXV0gPT0gLTEgfSB7CisgICAg dW50ZXN0ZWQgImdkYiBub3QgY29uZmlndXJlZCB3aXRoIGRlYnVnaW5mb2Qi CisgICAgcmV0dXJuIC0xCit9CisKK3NldCBjYWNoZSBbc3RhbmRhcmRfb3V0 cHV0X2ZpbGUgIi5jbGllbnRfY2FjaGUiXQorc2V0IGRiIFtzdGFuZGFyZF9v dXRwdXRfZmlsZSAiLmRlYnVnaW5mb2QuZGIiXQorCisjIERlbGV0ZSBhbnkg cHJlZXhpc3RpbmcgdGVzdCBmaWxlcworZmlsZSBkZWxldGUgLWZvcmNlICRj YWNoZQorZmlsZSBkZWxldGUgLWZvcmNlICRkYgorCitzZXQgc291cmNldG1w IFtzdGFuZGFyZF9vdXRwdXRfZmlsZSB0bXAtJHtzcmNmaWxlfV0KK3NldCBv dXRwdXRkaXIgW3N0YW5kYXJkX291dHB1dF9maWxlIHt9XQorCisjIE1ha2Ug YSBjb3B5IHNvdXJjZSBmaWxlIHRoYXQgd2UgY2FuIG1vdmUgYXJvdW5kCitp ZiB7IFtjYXRjaCB7ZmlsZSBjb3B5IC1mb3JjZSAke3NyY2Rpcn0vJHtzdWJk aXJ9LyR7c3JjZmlsZX0gXAorCSAgICAgW3N0YW5kYXJkX291dHB1dF9maWxl ICR7c291cmNldG1wfV19XSAhPSAwIH0geworICAgIGVycm9yICJjcmVhdGUg dGVtcG9yYXJ5IGZpbGUiCisgICAgcmV0dXJuIC0xCit9CisKK2lmIHsgW2dk Yl9jb21waWxlICIkc291cmNldG1wIiAiJGJpbmZpbGUiIGV4ZWN1dGFibGUg e2RlYnVnfV0gIT0gIiIgfSB7CisgICAgZmFpbCAiY29tcGlsZSIKKyAgICBy ZXR1cm4gLTEKK30KKworc2V0ZW52IERFQlVHSU5GT0RfVVJMUyAiIgorc2V0 ZW52IERFQlVHSU5GT0RfVElNRU9VVCAzMAorc2V0ZW52IERFQlVHSU5GT0Rf Q0FDSEVfUEFUSCAkY2FjaGUKKworIyBUZXN0IHRoYXQgZ2RiIGNhbm5vdCBm aW5kIHNvdXJjZSB3aXRob3V0IGRlYnVnaW5mb2QKK2NsZWFuX3Jlc3RhcnQg JGJpbmZpbGUKK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHN1YnN0aXR1dGUt cGF0aCAkb3V0cHV0ZGlyIC9kZXYvbnVsbCIKK2dkYl90ZXN0ICJsaXN0IiAi LipObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5LioiCisKKyMgU3RyaXAgc3lt Ym9scyBpbnRvIHNlcGFyYXRlIGZpbGUgYW5kIG1vdmUgaXQgc28gZ2RiIGNh bm5vdCBmaW5kIGl0IHdpdGhvdXQgZGVidWdpbmZvZAoraWYgeyBbZ2RiX2du dV9zdHJpcF9kZWJ1ZyAkYmluZmlsZSAiIl0gIT0gMCB9IHsKKyAgICBmYWls ICJzdHJpcCBkZWJ1Z2luZm8iCisgICAgcmV0dXJuIC0xCit9CisKK3NldCBk ZWJ1Z2RpciBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgImRlYnVnIl0KK3NldCBk ZWJ1Z2luZm8gW3N0YW5kYXJkX291dHB1dF9maWxlICJmZXRjaF9zcmNfYW5k X3N5bWJvbHMuZGVidWciXQorCitmaWxlIG1rZGlyICRkZWJ1Z2RpcgorZmls ZSByZW5hbWUgLWZvcmNlICRkZWJ1Z2luZm8gJGRlYnVnZGlyCisKKyMgVGVz dCB0aGF0IGdkYiBjYW5ub3QgZmluZCBzeW1ib2xzIHdpdGhvdXQgZGVidWdp bmZvZAorY2xlYW5fcmVzdGFydCAkYmluZmlsZQorZ2RiX3Rlc3QgImZpbGUi ICIuKk5vIHN5bWJvbCBmaWxlLioiCisKKyMgV3JpdGUgc29tZSBhc3NlbWJs eSB0aGF0IGp1c3QgaGFzIGEgLmdudV9kZWJ1Z2FsdGxpbmsgc2VjdGlvbi4K KyMgQ29waWVkIGZyb20gdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHd6YnVpbGRp ZC5leHAuCitwcm9jIHdyaXRlX2p1c3RfZGVidWdhbHRsaW5rIHtmaWxlbmFt ZSBkd3puYW1lIGJ1aWxkaWR9IHsKKyAgICBzZXQgYXNtX2ZpbGUgW3N0YW5k YXJkX291dHB1dF9maWxlICRmaWxlbmFtZV0KKworICAgIER3YXJmOjphc3Nl bWJsZSAkYXNtX2ZpbGUgeworCXVwdmFyIGR3em5hbWUgZHd6bmFtZQorCXVw dmFyIGJ1aWxkaWQgYnVpbGRpZAorCisJZ251X2RlYnVnYWx0bGluayAkZHd6 bmFtZSAkYnVpbGRpZAorCisJIyBPbmx5IHRoZSBEV0FSRiByZWFkZXIgY2hl Y2tzIC5nbnVfZGVidWdhbHRsaW5rLCBzbyBtYWtlIHN1cmUKKwkjIHRoZXJl IGlzIGEgYml0IG9mIERXQVJGIGluIGhlcmUuCisJY3Uge30geworCSAgICBj b21waWxlX3VuaXQge3tsYW5ndWFnZSBARFdfTEFOR19DfX0geworCSAgICB9 CisJfQorICAgIH0KK30KKworIyBXcml0ZSBzb21lIERXQVJGIHRoYXQgYWxz byBzZXRzIHRoZSBidWlsZGlkLgorIyBDb3BpZWQgZnJvbSB0ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kd3pidWlsZGlkLmV4cC4KK3Byb2Mgd3JpdGVfZHdhcmZf ZmlsZSB7ZmlsZW5hbWUgYnVpbGRpZCB7dmFsdWUgOTl9fSB7CisgICAgc2V0 IGFzbV9maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkZmlsZW5hbWVdCisK KyAgICBEd2FyZjo6YXNzZW1ibGUgJGFzbV9maWxlIHsKKwlkZWNsYXJlX2xh YmVscyBpbnRfbGFiZWwgaW50X2xhYmVsMgorCisJdXB2YXIgYnVpbGRpZCBi dWlsZGlkCisJdXB2YXIgdmFsdWUgdmFsdWUKKworCWJ1aWxkX2lkICRidWls ZGlkCisKKwljdSB7fSB7CisJICAgIGNvbXBpbGVfdW5pdCB7e2xhbmd1YWdl IEBEV19MQU5HX0N9fSB7CisJICAgICAgICBpbnRfbGFiZWwyOiBiYXNlX3R5 cGUgeworCQkgICAge25hbWUgaW50fQorCQkgICAge2J5dGVfc2l6ZSA0IHNk YXRhfQorCQkgICAge2VuY29kaW5nIEBEV19BVEVfc2lnbmVkfQorCQl9CisK KwkJY29uc3RhbnQgeworCQkgICAge25hbWUgdGhlX2ludH0KKwkJICAgIHt0 eXBlIDokaW50X2xhYmVsMn0KKwkJICAgIHtjb25zdF92YWx1ZSAkdmFsdWUg ZGF0YTF9CisJCX0KKwkgICAgfQorCX0KKyAgICB9Cit9CisKK3NldCBidWls ZGlkICIwMTIzNDU2Nzg5MGFiY2RlZjAxMjM0NTYiCisKK3dyaXRlX2p1c3Rf ZGVidWdhbHRsaW5rICR7YmluZmlsZX1faGFzX2FsdGxpbmsuUyAke2JpbmZp bGV9X2R3ei5vICRidWlsZGlkCit3cml0ZV9kd2FyZl9maWxlICR7YmluZmls ZX1fZHd6LlMgJGJ1aWxkaWQKKworaWYge1tnZGJfY29tcGlsZSAke2JpbmZp bGV9X2hhc19hbHRsaW5rLlMgJHtiaW5maWxlfV9hbHQubyBvYmplY3Qgbm9k ZWJ1Z10gIT0gIiJ9IHsKKyAgICBmYWlsICJjb21waWxlIG1haW4gd2l0aCBh bHRsaW5rIgorICAgIHJldHVybiAtMQorfQorCitpZiB7W2dkYl9jb21waWxl ICR7YmluZmlsZX1fZHd6LlMgJHtiaW5maWxlfV9kd3oubyBvYmplY3Qgbm9k ZWJ1Z10gIT0gIiJ9IHsKKyAgICBmYWlsICJjb21waWxlIGFsdGxpbmsiCisg ICAgcmV0dXJuIC0xCit9CisKK2ZpbGUgcmVuYW1lIC1mb3JjZSAke2JpbmZp bGV9X2R3ei5vICRkZWJ1Z2RpcgorCisjIFRlc3QgdGhhdCBnZGIgY2Fubm90 IGZpbmQgZHd6IHdpdGhvdXQgZGVidWdpbmZvZC4KK2NsZWFuX3Jlc3RhcnQK K2dkYl90ZXN0ICJmaWxlICR7YmluZmlsZX1fYWx0Lm8iICIuKmNvdWxkIG5v dCBmaW5kICcuZ251X2RlYnVnYWx0bGluaycuKiIKKworIyBGaW5kIGFuIHVu dXNlZCBwb3J0CitzZXQgcG9ydCA3OTk5CitzZXQgZm91bmQgMAord2hpbGUg eyAhICRmb3VuZCB9IHsKKyAgaW5jciBwb3J0CisgIGlmIHsgJHBvcnQgPT0g NjU1MzYgfSB7CisgICAgZmFpbCAibm8gYXZhaWxhYmxlIHBvcnRzIgorICAg IHJldHVybiAtMQorICB9CisKKyAgc3Bhd24gZGVidWdpbmZvZCAtdnZ2diAt ZCAkZGIgLXAgJHBvcnQgLUYgJGRlYnVnZGlyCisgIGV4cGVjdCB7CisgICAg InN0YXJ0ZWQgaHR0cCBzZXJ2ZXIgb24gSVB2NCBJUHY2IHBvcnQ9JHBvcnQi IHsgc2V0IGZvdW5kIDEgfQorICAgICJmYWlsZWQgdG8gYmluZCB0byBwb3J0 IiB7IGtpbGxfd2FpdF9zcGF3bmVkX3Byb2Nlc3MgJHNwYXduX2lkIH0KKyAg ICB0aW1lb3V0IHsKKyAgICAgIGZhaWwgImZpbmQgcG9ydCB0aW1lb3V0Igor ICAgICAgcmV0dXJuIC0xCisgICAgfQorICB9Cit9CisKK3NldCBtZXRyaWNz IFtsaXN0ICJyZWFkeSAxIiBcCisJICAgICAidGhyZWFkX3dvcmtfdG90YWx7 cm9sZT1cInRyYXZlcnNlXCJ9IDEiIFwKKwkgICAgICJ0aHJlYWRfd29ya19w ZW5kaW5ne3JvbGU9XCJzY2FuXCJ9IDAiIFwKKwkgICAgICJ0aHJlYWRfYnVz eXtyb2xlPVwic2NhblwifSAwIl0KKworIyBDaGVjayBzZXJ2ZXIgbWV0cmlj cyB0byBjb25maXJtIGluaXQgaGFzIGNvbXBsZXRlZC4KK2ZvcmVhY2ggbSAk bWV0cmljcyB7CisgIHNldCB0aW1lbGltIDIwCisgIHdoaWxlIHsgJHRpbWVs aW0gIT0gMCB9IHsKKyAgICBzbGVlcCAwLjUKKyAgICBjYXRjaCB7ZXhlYyBj dXJsIC1zIGh0dHA6Ly8xMjcuMC4wLjE6JHBvcnQvbWV0cmljc30gZ290CisK KyAgICBpZiB7IFtyZWdleHAgJG0gJGdvdF0gfSB7CisgICAgICBicmVhawor ICAgIH0KKworICAgIGluY3IgdGltZWxpbSAtMQorICB9CisKKyAgaWYgeyAk dGltZWxpbSA9PSAwIH0geworICAgIGZhaWwgInNlcnZlciBpbml0IHRpbWVv dXQiCisgICAgcmV0dXJuIC0xCisgIH0KK30KKworIyBQb2ludCB0aGUgY2xp ZW50IHRvIHRoZSBzZXJ2ZXIKK3NldGVudiBERUJVR0lORk9EX1VSTFMgaHR0 cDovLzEyNy4wLjAuMTokcG9ydAorCisjIGdkYiBzaG91bGQgbm93IGZpbmQg dGhlIHN5bWJvbCBhbmQgc291cmNlIGZpbGVzCitjbGVhbl9yZXN0YXJ0ICRi aW5maWxlCitnZGJfdGVzdF9ub19vdXRwdXQgInNldCBzdWJzdGl0dXRlLXBh dGggJG91dHB1dGRpciAvZGV2L251bGwiCitnZGJfdGVzdCAiYnIgbWFpbiIg IkJyZWFrcG9pbnQgMSBhdC4qZmlsZS4qIgorZ2RiX3Rlc3QgImwiICIuKlRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZS4qIgorCisj IGdkYiBzaG91bGQgbm93IGZpbmQgdGhlIGRlYnVnYWx0bGluayBmaWxlCitj bGVhbl9yZXN0YXJ0CitnZGJfdGVzdCAiZmlsZSAke2JpbmZpbGV9X2FsdC5v IiAiLipSZWFkaW5nIHN5bWJvbHMgZnJvbSAke2JpbmZpbGV9X2FsdC5vXC5c LlwuKiIKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5m b2QvbWFpbi5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVidWdpbmZvZC9tYWlu LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNzNh YmFmNThiMQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmRlYnVnaW5mb2QvbWFpbi5jCkBAIC0wLDAgKzEsMjUgQEAKKy8qIFRoaXMg dGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisK KyAgIENvcHlyaWdodCAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisvKiBEdW1t eSBtYWluIGZ1bmN0aW9uLiAgKi8KKworaW50CittYWluKCkKK3sKKyAgYXNt ICgibWFpbl9sYWJlbDogLmdsb2JsIG1haW5fbGFiZWwiKTsKKyAgcmV0dXJu IDA7Cit9CmRpZmYgLS1naXQgYS9nZGIvdG9wLmMgYi9nZGIvdG9wLmMKaW5k ZXggZjcwMmFmOWFjZC4uMWE5OGFlMTk4YyAxMDA2NDQKLS0tIGEvZ2RiL3Rv cC5jCisrKyBiL2dkYi90b3AuYwpAQCAtMTUyOCw2ICsxNTI4LDE2IEBAIFRo aXMgR0RCIHdhcyBjb25maWd1cmVkIGFzIGZvbGxvd3M6XG5cCiAiKSk7CiAj ZW5kaWYKIAorI2lmIEhBVkVfTElCREVCVUdJTkZPRAorICBmcHJpbnRmX2Zp bHRlcmVkIChzdHJlYW0sIF8oIlwKKyAgICAgICAgICAgICAtLXdpdGgtZGVi dWdpbmZvZFxuXAorIikpOworI2Vsc2UKKyAgIGZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgXygiXAorICAgICAgICAgICAgIC0td2l0aG91dC1kZWJ1Z2lu Zm9kXG5cCisiKSk7CisjZW5kaWYKKwogI2lmIEhBVkVfR1VJTEUKICAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCJcCiAgICAgICAgICAgICAgLS13 aXRoLWd1aWxlXG5cCi0tIAoyLjI0LjEKCg== --0000000000006335a3059f0c59c3--