From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com [IPv6:2607:f8b0:4864:20::d36]) by sourceware.org (Postfix) with ESMTPS id EB36E3938C2B for ; Wed, 29 Jul 2020 21:05:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EB36E3938C2B Received: by mail-io1-xd36.google.com with SMTP id z6so26095759iow.6 for ; Wed, 29 Jul 2020 14:05:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=fWaxUw12nhuWnrUdGortTpw+jyUcDf9cUekhaHrwaz0=; b=fkqV4ZHdUDaOJC6Z2nMYbPIRf3ugHNzlAZi3u/y42ojTds80GcrrRPOj/dz1xE1u2I TlVj3Ax75wRUdbjCrlxNTtNsxpPWQmp5QngLkeQicM8TMU41Bvnd135XSBJFU1xVe/wY vDJc8RxtF0Eoe9Zwls44Ar6pTwR/nRGQ12a/AeaO4FA1S1XPb/oK9TYY9iFUQlmSQ3uR l+aWYlK4nHhU5XKskJrdhcTkBnw6zfthAagk/nsCQth7W4m5EIsj5Pov7m/pjKnxEQrO V2AAoqaDE7FJOyYJdx4p2paR7uWrHNW+hd7VzkyrD5HihAsrXIRNcNPmATpq4JnHuDY9 NX8Q== X-Gm-Message-State: AOAM533Vf5uFTdRz8lISwG5mJUUnsY7vECDrbr/XyzgJFpZH3C0uh+PJ 8YmIcqLRdCsD6RVOi9EiQQZD2D7eD+tLtKum/28x2g== X-Google-Smtp-Source: ABdhPJxVFeKHc+3EIbFAfjtiTmEbVBzW7zxV4WK19+wbFbEQQ2P+NpdKN/bfvUWXZxVblZmJXL+AVE702k/KGXBZv5U= X-Received: by 2002:a5d:928a:: with SMTP id s10mr20770710iom.166.1596056715162; Wed, 29 Jul 2020 14:05:15 -0700 (PDT) MIME-Version: 1.0 References: <5e77197d-dbb3-5718-bfe8-e263c4006a06@simark.ca> In-Reply-To: From: Caroline Tice Date: Wed, 29 Jul 2020 14:05:03 -0700 Message-ID: Subject: Re: [PATCH, v3] Add code for processing version 5 DWP files (for use with DWARF v5) To: Simon Marchi Cc: Caroline Tice via Gdb-patches , Tom Tromey , Eric Christopher Content-Type: multipart/mixed; boundary="0000000000008d29aa05ab9ae90f" X-Spam-Status: No, score=-19.6 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2020 21:05:17 -0000 --0000000000008d29aa05ab9ae90f Content-Type: text/plain; charset="UTF-8" The changes to include/dwarf2.h were accepted by binutils and have gone in, so I've removed those changes from this patch. Is this ok to commit? -- Caroline cmtice@google.com On Tue, Jul 28, 2020 at 12:22 PM Caroline Tice wrote: > > > > > > > On Wed, Jul 22, 2020 at 6:04 AM Simon Marchi wrote: >> >> On 2020-07-21 12:06 a.m., Caroline Tice wrote: >> > The DWARF v5 Spec describes a (slightly) new format for V5 .dwp files. >> > This patch updates GDB to allow it to read/process .dwp files in the >> > new DWARF v5 format, while continuing to be able to read/process .dwp >> > files in the older V1 & V2 formats. >> >> Can you please describe in the commit message what those differences are? >> > > Done. > >> >> > The one thing I felt a little odd about in this patch: I couldn't >> > re-use the enum dwarf_sect >> > definitions, because in version 5 several of the sections have the >> > same name as in the previous versions, but have a different ordering, >> > with different numbers attached. So I had to create a new enum, >> > dwarf_sect_v5 for this purpose. >> >> That part would need to be cross-posted to the binutils mailing list. binutils >> does use the DW_SECT_* enumerators, presumably to read dwp files too, so they >> would likely use those new DWARF 5 enumerators eventually. >> > > I will create/submit a patch to the binutils mailing list. > >> >> > Is this patch ok to commit? >> >> It would be useful to precise somewhere, perhaps in the comment on `struct dwp_sections`. >> that versions 1 and 2 are pre-standard versions, and that version 5 was introduced in >> DWARF5. And that versions 3 and 4 don't exist. > > > Done. > >> >> >> I don't have time to do an in-depth review right now, but one question that came to mind >> is: is an advantage of having virtual_v2_or_v5_dwo_sections over having separate >> virtual_v2_dwo_sections and virtual_v5_dwo_sections? > > > Not particularly; I was just trying to avoid code duplication. > >> >> Now when using v2 or v5, there are >> fields you don't use (because they are either v2-specific or v5-specific), so I imagine >> it's just more error prone. Does it avoid a lot of code duplication? > > > A small amount, but not a lot. > >> >> >> Simon > > > Below is my updated patch (mostly just updated comments & commit message) --0000000000008d29aa05ab9ae90f Content-Type: application/x-patch; name="v3-0001-Add-code-for-processing-version-5-DWP-files-for-u.patch" Content-Disposition: attachment; filename="v3-0001-Add-code-for-processing-version-5-DWP-files-for-u.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7uxitl0 RnJvbSBkNDhkZWMwMGI4YTA3ZTZmZmIxZWZkMWIxZjgwYmJjNTZkMmQzNWQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDYXJvbGluZSBUaWNlIDxjbXRpY2VAZ29vZ2xlLmNvbT4KRGF0 ZTogTW9uLCAyMCBKdWwgMjAyMCAxNjo0NDo0OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggdjNdIEFk ZCBjb2RlIGZvciBwcm9jZXNzaW5nIHZlcnNpb24gNSBEV1AgZmlsZXMgKGZvciB1c2Ugd2l0aAog RFdBUkYgdjUpLgoKVGhlIERXQVJGIHY1IFNwZWMgZGVzY3JpYmVzIGEgKHNsaWdodGx5KSBuZXcg Zm9ybWF0IGZvciBWNSAuZHdwIGZpbGVzLgpUaGlzIHBhdGNoIHVwZGF0ZXMgR0RCIHRvIGFsbG93 IGl0IHRvIHJlYWQvcHJvY2VzcyAuZHdwIGZpbGVzIGluIHRoZQpuZXcgRFdBUkYgdjUgZm9ybWF0 LCB3aGlsZSBjb250aW51aW5nIHRvIGJlIGFibGUgdG8gcmVhZC9wcm9jZXNzIC5kd3AgZmlsZXMK aW4gdGhlIG9sZGVyIFYxICYgVjIgZm9ybWF0cyAob2xkZXIsIHByZS1zdGFuZGFyZCBmb3JtYXRz KS4KClRoZSB0d28gbWFqb3IgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgVjIgYW5kIHRoZSBWNSBm b3JtYXQgYXJlOgogICAgLSBUaGUgaW5jbHVzaW9uIG9mIERXQVJGLXY1LXNwZWNpZmljIHNlY3Rp b25zOgogICAgICAgICAgLmRlYnVnX2xvY2xpc3RzLmR3bwoJICAuZGVidWdfcm5nbGlzdHMuZHdv CiAgICAtIFRoZSAuZHdwIHNlY3Rpb24gaWRlbnRpZmllciBlbmNvZGluZ3MgaGF2ZSBjaGFuZ2Vk LiAgVGhlIHRhYmxlIGJlbG93CiAgICAgIHNob3dzIHRoZSBvbGQgJiBuZXcgZW5jb2RpbmdzLiAg Tm90aWNlIHRoZSByZS1wdXJwb3Npbmcgb2YgNSwgNyAmIDgKICAgICAgaW4gcGFydGljdWxhci4K ClZhbCAgRFc0IHNlY3Rpb24gICAgICAgRFc0IHNlY3Rpb24gaWQgIERXNSBzZWN0aW9uICAgICAg ICAgRFc1IHNlY3Rpb24gaWQKLS0tIC0tLS0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLS0tLS0tLSAg LS0tLS0tLS0tLS0tLS0tLS0gICAtLS0tLS0tLS0tLS0tLQogMSAgLmRlYnVnX2luZm8uZHdvICAg IERXX1NFQ1RfSU5GTyAgICAuZGVidWdfaW5mby5kd28gICAgIERXX1NFQ1RfSU5GTwogMiAgLmRl YnVnX3R5cGVzLmR3byAgIERXX1NFQ1RfVFlQRVMgICAgICAgICAtLSAgICAgICAgICAgICAgcmVz ZXJ2ZWQKIDMgIC5kZWJ1Z19hYmJyZXYuZHdvICBEV19TRUNUX0FCQlJFViAgLmRlYnVnX2FiYnJl di5kd28gICBEV19TRUNUX0FCQlJFVgogNCAgLmRlYnVnX2xpbmUuZHdvICAgIERXX1NFQ1RfTElO RSAgICAuZGVidWdfbGluZS5kd28gICAgIERXX1NFQ1RfTElORQogNSAgLmRlYnVnX2xvYy5kd28g ICAgIERXX1NFQ1RfTE9DICAgICAuZGVidWdfbG9jbGlzdHMuZHdvIERXX1NFQ1RfTE9DTElTVFMK IDYgIC5kZWJ1Z19zdHJfb2Zmc2V0cy5kd28gICAgICAgICAgICAgLmRlYnVnX3N0cl9vZmZzZXRz LmR3bwogICAgICAgICAgICAgICAgICAgICAgIERXX1NFQ1RfU1RSX09GRlNFVFMgICAgICAgICAg ICAgICAgIERXX1NFQ1RfU1RSX09GRlNFVFMKIDcgIC5kZWJ1Z19tYWNpbmZvLmR3byBEV19TRUNU X01BQ0lORk8gLmRlYnVnX21hY3JvLmR3byAgICBEV19TRUNUX01BQ1JPCiA4ICAuZGVidWdfbWFj cm8uZHdvICAgRFdfU0VDVF9NQUNSTyAgIC5kZWJ1Z19ybmdsaXN0cy5kd28gRFdfU0VDVF9STkdM SVNUUwotLS0KIGdkYi9kd2FyZjIvcmVhZC5jIHwgNDg0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MzIgaW5zZXJ0aW9ucygr KSwgNTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9yZWFkLmMgYi9nZGIv ZHdhcmYyL3JlYWQuYwppbmRleCA0ZTcwZGNjZWNiLi4wYTA2OTk3NzYxIDEwMDY0NAotLS0gYS9n ZGIvZHdhcmYyL3JlYWQuYworKysgYi9nZGIvZHdhcmYyL3JlYWQuYwpAQCAtNzI4LDcgKzcyOCw3 IEBAIHN0cnVjdCBkd29fZmlsZQogICBnZGJfYmZkX3JlZl9wdHIgZGJmZDsKIAogICAvKiBUaGUg c2VjdGlvbnMgdGhhdCBtYWtlIHVwIHRoaXMgRFdPIGZpbGUuCi0gICAgIFJlbWVtYmVyIHRoYXQg Zm9yIHZpcnR1YWwgRFdPIGZpbGVzIGluIERXUCBWMiwgdGhlc2UgYXJlIHZpcnR1YWwKKyAgICAg UmVtZW1iZXIgdGhhdCBmb3IgdmlydHVhbCBEV08gZmlsZXMgaW4gRFdQIFYyIG9yIERXUCBWNSwg dGhlc2UgYXJlIHZpcnR1YWwKICAgICAgc2VjdGlvbnMgKGZvciBsYWNrIG9mIGEgYmV0dGVyIG5h bWUpLiAgKi8KICAgc3RydWN0IGR3b19zZWN0aW9ucyBzZWN0aW9ucyB7fTsKIApAQCAtNzQ3LDI1 ICs3NDcsMjcgQEAgc3RydWN0IGR3b19maWxlCiAKIHN0cnVjdCBkd3Bfc2VjdGlvbnMKIHsKLSAg LyogVGhlc2UgYXJlIHVzZWQgYnkgYm90aCBEV1AgdmVyc2lvbiAxIGFuZCAyLiAgKi8KKyAgLyog VGhlc2UgYXJlIHVzZWQgYnkgYWxsIERXUCB2ZXJzaW9ucyAoMSwgMiBhbmQgNSkuICAqLwogICBz dHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBzdHI7CiAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9p bmZvIGN1X2luZGV4OwogICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyB0dV9pbmRleDsKIAot ICAvKiBUaGVzZSBhcmUgb25seSB1c2VkIGJ5IERXUCB2ZXJzaW9uIDIgZmlsZXMuCisgIC8qIFRo ZXNlIGFyZSBvbmx5IHVzZWQgYnkgRFdQIHZlcnNpb24gMiBhbmQgdmVyc2lvbiA1IGZpbGVzLgog ICAgICBJbiBEV1AgdmVyc2lvbiAxIHRoZSAuZGVidWdfaW5mby5kd28sIC5kZWJ1Z190eXBlcy5k d28sIGFuZCBvdGhlcgogICAgICBzZWN0aW9ucyBhcmUgcmVmZXJlbmNlZCBieSBzZWN0aW9uIG51 bWJlciwgYW5kIGFyZSBub3QgcmVjb3JkZWQgaGVyZS4KLSAgICAgSW4gRFdQIHZlcnNpb24gMiB0 aGVyZSBpcyBhdCBtb3N0IG9uZSBjb3B5IG9mIGFsbCB0aGVzZSBzZWN0aW9ucywgZWFjaAotICAg ICBzZWN0aW9uIGJlaW5nIChlZmZlY3RpdmVseSkgY29tcHJpc2VkIG9mIHRoZSBjb25jYXRlbmF0 aW9uIG9mIGFsbCBvZiB0aGUKLSAgICAgaW5kaXZpZHVhbCBzZWN0aW9ucyB0aGF0IGV4aXN0IGlu IHRoZSB2ZXJzaW9uIDEgZm9ybWF0LgorICAgICBJbiBEV1AgdmVyc2lvbiAyIG9yIDUgdGhlcmUg aXMgYXQgbW9zdCBvbmUgY29weSBvZiBhbGwgdGhlc2Ugc2VjdGlvbnMsCisgICAgIGVhY2ggc2Vj dGlvbiBiZWluZyAoZWZmZWN0aXZlbHkpIGNvbXByaXNlZCBvZiB0aGUgY29uY2F0ZW5hdGlvbiBv ZiBhbGwgb2YKKyAgICAgdGhlIGluZGl2aWR1YWwgc2VjdGlvbnMgdGhhdCBleGlzdCBpbiB0aGUg dmVyc2lvbiAxIGZvcm1hdC4KICAgICAgVG8ga2VlcCB0aGUgY29kZSBzaW1wbGUgd2UgdHJlYXQg ZWFjaCBvZiB0aGVzZSBjb25jYXRlbmF0ZWQgcGllY2VzIGFzIGEKICAgICAgc2VjdGlvbiBpdHNl bGYgKGEgdmlydHVhbCBzZWN0aW9uPykuICAqLwogICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5m byBhYmJyZXY7CiAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvIGluZm87CiAgIHN0cnVjdCBk d2FyZjJfc2VjdGlvbl9pbmZvIGxpbmU7CiAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvIGxv YzsKKyAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gbG9jbGlzdHM7CiAgIHN0cnVjdCBkd2Fy ZjJfc2VjdGlvbl9pbmZvIG1hY2luZm87CiAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvIG1h Y3JvOworICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBybmdsaXN0czsKICAgc3RydWN0IGR3 YXJmMl9zZWN0aW9uX2luZm8gc3RyX29mZnNldHM7CiAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9p bmZvIHR5cGVzOwogfTsKQEAgLTc4NiwxMiArNzg4LDEyIEBAIHN0cnVjdCB2aXJ0dWFsX3YxX2R3 b19zZWN0aW9ucwogICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyBpbmZvX29yX3R5cGVzOwog fTsKIAotLyogU2ltaWxhciB0byB2aXJ0dWFsX3YxX2R3b19zZWN0aW9ucywgYnV0IGZvciBEV1Ag dmVyc2lvbiAyLgorLyogU2ltaWxhciB0byB2aXJ0dWFsX3YxX2R3b19zZWN0aW9ucywgYnV0IGZv ciBEV1AgdmVyc2lvbiAyIG9yIDUuCiAgICBJbiB2ZXJzaW9uIDIsIHRoZSBzZWN0aW9ucyBvZiB0 aGUgRFdPIGZpbGVzIGFyZSBjb25jYXRlbmF0ZWQgdG9nZXRoZXIKICAgIGFuZCBzdG9yZWQgaW4g b25lIHNlY3Rpb24gb2YgdGhhdCBuYW1lLiAgVGh1cyBlYWNoIEVMRiBzZWN0aW9uIGNvbnRhaW5z CiAgICBzZXZlcmFsICJ2aXJ0dWFsIiBzZWN0aW9ucy4gICovCiAKLXN0cnVjdCB2aXJ0dWFsX3Yy X2R3b19zZWN0aW9ucworc3RydWN0IHZpcnR1YWxfdjJfb3JfdjVfZHdvX3NlY3Rpb25zCiB7CiAg IGJmZF9zaXplX3R5cGUgYWJicmV2X29mZnNldDsKICAgYmZkX3NpemVfdHlwZSBhYmJyZXZfc2l6 ZTsKQEAgLTgwMiwxMiArODA0LDE4IEBAIHN0cnVjdCB2aXJ0dWFsX3YyX2R3b19zZWN0aW9ucwog ICBiZmRfc2l6ZV90eXBlIGxvY19vZmZzZXQ7CiAgIGJmZF9zaXplX3R5cGUgbG9jX3NpemU7CiAK KyAgYmZkX3NpemVfdHlwZSBsb2NsaXN0c19vZmZzZXQ7CisgIGJmZF9zaXplX3R5cGUgbG9jbGlz dHNfc2l6ZTsKKwogICBiZmRfc2l6ZV90eXBlIG1hY2luZm9fb2Zmc2V0OwogICBiZmRfc2l6ZV90 eXBlIG1hY2luZm9fc2l6ZTsKIAogICBiZmRfc2l6ZV90eXBlIG1hY3JvX29mZnNldDsKICAgYmZk X3NpemVfdHlwZSBtYWNyb19zaXplOwogCisgIGJmZF9zaXplX3R5cGUgcm5nbGlzdHNfb2Zmc2V0 OworICBiZmRfc2l6ZV90eXBlIHJuZ2xpc3RzX3NpemU7CisKICAgYmZkX3NpemVfdHlwZSBzdHJf b2Zmc2V0c19vZmZzZXQ7CiAgIGJmZF9zaXplX3R5cGUgc3RyX29mZnNldHNfc2l6ZTsKIApAQCAt ODQ1LDYgKzg1MywyMiBAQCBzdHJ1Y3QgZHdwX2hhc2hfdGFibGUKICAgICAgIGNvbnN0IGdkYl9i eXRlICpvZmZzZXRzOwogICAgICAgY29uc3QgZ2RiX2J5dGUgKnNpemVzOwogICAgIH0gdjI7Cisg ICAgc3RydWN0CisgICAgeworICAgICAgLyogVGhpcyBpcyBpbmRleGVkIGJ5IGNvbHVtbiBudW1i ZXIgYW5kIGdpdmVzIHRoZSBpZCBvZiB0aGUgc2VjdGlvbgorCSBpbiB0aGF0IGNvbHVtbi4gICov CisjZGVmaW5lIE1BWF9OUl9WNV9EV09fU0VDVElPTlMgXAorICAoMSAvKiAuZGVidWdfaW5mbyAq LyBcCisgICArIDEgLyogLmRlYnVnX2FiYnJldiAqLyBcCisgICArIDEgLyogLmRlYnVnX2xpbmUg Ki8gXAorICAgKyAxIC8qIC5kZWJ1Z19sb2NsaXN0cyAqLyBcCisgICArIDEgLyogLmRlYnVnX3N0 cl9vZmZzZXRzICovIFwKKyAgICsgMSAvKiAuZGVidWdfbWFjcm8gKi8gXAorICAgKyAxIC8qIC5k ZWJ1Z19ybmdsaXN0cyAqLykKKyAgICAgIGludCBzZWN0aW9uX2lkc1tNQVhfTlJfVjVfRFdPX1NF Q1RJT05TXTsKKyAgICAgIGNvbnN0IGdkYl9ieXRlICpvZmZzZXRzOworICAgICAgY29uc3QgZ2Ri X2J5dGUgKnNpemVzOworICAgIH0gdjU7CiAgIH0gc2VjdGlvbl9wb29sOwogfTsKIApAQCAtNjM5 Niw3ICs2NDIwLDggQEAgY3JlYXRlX2RlYnVnX3R5cGVfaGFzaF90YWJsZSAoZHdhcmYyX3Blcl9v YmpmaWxlICpwZXJfb2JqZmlsZSwKICAgICAgIC8qIFNraXAgZHVtbXkgdHlwZSB1bml0cy4gICov CiAgICAgICBpZiAocHRyID49IGluZm9fcHRyICsgbGVuZ3RoCiAJICB8fCBwZWVrX2FiYnJldl9j b2RlIChhYmZkLCBwdHIpID09IDAKLQkgIHx8IGhlYWRlci51bml0X3R5cGUgIT0gRFdfVVRfdHlw ZSkKKwkgIHx8IChoZWFkZXIudW5pdF90eXBlICE9IERXX1VUX3R5cGUKKwkgICAgICAmJiBoZWFk ZXIudW5pdF90eXBlICE9IERXX1VUX3NwbGl0X3R5cGUpKQogCXsKIAkgIGluZm9fcHRyICs9IGxl bmd0aDsKIAkgIGNvbnRpbnVlOwpAQCAtMTE1MDUsNiArMTE1MzAsMTEgQEAgY3JlYXRlX2N1c19o YXNoX3RhYmxlIChkd2FyZjJfcGVyX29iamZpbGUgKnBlcl9vYmpmaWxlLAogCiAvKiBEV1AgZmls ZSAuZGVidWdfe2N1LHR1fV9pbmRleCBzZWN0aW9uIGZvcm1hdDoKICAgIFtyZWY6IGh0dHA6Ly9n Y2MuZ251Lm9yZy93aWtpL0RlYnVnRmlzc2lvbkRXUF0KKyAgIFtyZWY6IGh0dHA6Ly9kd2FyZnN0 ZC5vcmcvZG9jL0RXQVJGNS5wZGYsIHNlY3QgNy4zLjUgIkRXQVJGIFBhY2thZ2UgRmlsZXMiXQor CisgICBEV1AgVmVyc2lvbnMgMSAmIDIgYXJlIG9sZGVyLCBwcmUtc3RhbmRhcmQgZm9ybWF0IHZl cnNpb25zLiAgVGhlIGZpcnN0CisgICBvZmZpY2lhbGx5IHN0YW5kYXJkIERXUCBmb3JtYXQgd2Fz IHB1Ymxpc2hlZCB3aXRoIERXQVJGIHY1IGFuZCBpcyBjYWxsZWQKKyAgIFZlcnNpb24gNS4gIFRo ZXJlIGFyZSBubyB2ZXJzaW9ucyAzIG9yIDQuCiAKICAgIERXUCBWZXJzaW9uIDE6CiAKQEAgLTEx NTQ5LDkgKzExNTc5LDkgQEAgY3JlYXRlX2N1c19oYXNoX3RhYmxlIChkd2FyZjJfcGVyX29iamZp bGUgKnBlcl9vYmpmaWxlLAogCiAgICAtLS0KIAotICAgRFdQIFZlcnNpb24gMjoKKyAgIERXUCBW ZXJzaW9ucyAyIGFuZCA1OgogCi0gICBEV1AgVmVyc2lvbiAyIGNvbWJpbmVzIGFsbCB0aGUgLmRl YnVnX2luZm8sIGV0Yy4gc2VjdGlvbnMgaW50byBvbmUsCisgICBEV1AgVmVyc2lvbnMgMiBhbmQg NSBjb21iaW5lIGFsbCB0aGUgLmRlYnVnX2luZm8sIGV0Yy4gc2VjdGlvbnMgaW50byBvbmUsCiAg ICBhbmQgdGhlIGVudHJpZXMgaW4gdGhlIGluZGV4IHRhYmxlcyBhcmUgbm93IG9mZnNldHMgaW50 byB0aGVzZSBzZWN0aW9ucy4KICAgIENVIG9mZnNldHMgYmVnaW4gYXQgMC4gIFRVIG9mZnNldHMg YmVnaW4gYXQgdGhlIHNpemUgb2YgdGhlIC5kZWJ1Z19pbmZvCiAgICBzZWN0aW9uLgpAQCAtMTE1 NjAsOCArMTE1OTAsOCBAQCBjcmVhdGVfY3VzX2hhc2hfdGFibGUgKGR3YXJmMl9wZXJfb2JqZmls ZSAqcGVyX29iamZpbGUsCiAgICAgSGVhZGVyCiAgICAgSGFzaCBUYWJsZSBvZiBTaWduYXR1cmVz ICAgZHdwX2hhc2hfdGFibGUuaGFzaF90YWJsZQogICAgIFBhcmFsbGVsIFRhYmxlIG9mIEluZGlj ZXMgIGR3cF9oYXNoX3RhYmxlLnVuaXRfdGFibGUKLSAgICBUYWJsZSBvZiBTZWN0aW9uIE9mZnNl dHMgICBkd3BfaGFzaF90YWJsZS52Mi57c2VjdGlvbl9pZHMsb2Zmc2V0c30KLSAgICBUYWJsZSBv ZiBTZWN0aW9uIFNpemVzICAgICBkd3BfaGFzaF90YWJsZS52Mi5zaXplcworICAgIFRhYmxlIG9m IFNlY3Rpb24gT2Zmc2V0cyAgIGR3cF9oYXNoX3RhYmxlLnt2Mnx2NX0ue3NlY3Rpb25faWRzLG9m ZnNldHN9CisgICAgVGFibGUgb2YgU2VjdGlvbiBTaXplcyAgICAgZHdwX2hhc2hfdGFibGUue3Yy fHY1fS5zaXplcwogCiAgICBUaGUgaW5kZXggc2VjdGlvbiBoZWFkZXIgY29uc2lzdHMgb2Y6CiAK QEAgLTExNTg0LDcgKzExNjE0LDcgQEAgY3JlYXRlX2N1c19oYXNoX3RhYmxlIChkd2FyZjJfcGVy X29iamZpbGUgKnBlcl9vYmpmaWxlLAogICAgRWFjaCByb3cgaW4gdGhlIGFycmF5IGlzIGluZGV4 ZWQgc3RhcnRpbmcgZnJvbSAwLiAgVGhlIGZpcnN0IHJvdyBwcm92aWRlcwogICAgYSBrZXkgdG8g dGhlIHJlbWFpbmluZyByb3dzOiBlYWNoIGNvbHVtbiBpbiB0aGlzIHJvdyBwcm92aWRlcyBhbiBp ZGVudGlmaWVyCiAgICBmb3IgYSBkZWJ1ZyBzZWN0aW9uLCBhbmQgdGhlIG9mZnNldHMgaW4gdGhl IHNhbWUgY29sdW1uIG9mIHN1YnNlcXVlbnQgcm93cwotICAgcmVmZXIgdG8gdGhhdCBzZWN0aW9u LiAgVGhlIHNlY3Rpb24gaWRlbnRpZmllcnMgYXJlOgorICAgcmVmZXIgdG8gdGhhdCBzZWN0aW9u LiAgVGhlIHNlY3Rpb24gaWRlbnRpZmllcnMgZm9yIFZlcnNpb24gMiBhcmU6CiAKICAgICBEV19T RUNUX0lORk8gICAgICAgICAxICAuZGVidWdfaW5mby5kd28KICAgICBEV19TRUNUX1RZUEVTICAg ICAgICAyICAuZGVidWdfdHlwZXMuZHdvCkBAIC0xMTU5NSw2ICsxMTYyNSwxNyBAQCBjcmVhdGVf Y3VzX2hhc2hfdGFibGUgKGR3YXJmMl9wZXJfb2JqZmlsZSAqcGVyX29iamZpbGUsCiAgICAgRFdf U0VDVF9NQUNJTkZPICAgICAgNyAgLmRlYnVnX21hY2luZm8uZHdvCiAgICAgRFdfU0VDVF9NQUNS TyAgICAgICAgOCAgLmRlYnVnX21hY3JvLmR3bwogCisgICBUaGUgc2VjdGlvbiBpZGVudGlmaWVy cyBmb3IgVmVyc2lvbiA1IGFyZToKKworICAgIERXX1NFQ1RfSU5GT19WNSAgICAgICAgIDEgIC5k ZWJ1Z19pbmZvLmR3bworICAgIERXX1NFQ1RfUkVTRVJWRURfVjUgICAgIDIgIC0tCisgICAgRFdf U0VDVF9BQkJSRVZfVjUgICAgICAgMyAgLmRlYnVnX2FiYnJldi5kd28KKyAgICBEV19TRUNUX0xJ TkVfVjUgICAgICAgICA0ICAuZGVidWdfbGluZS5kd28KKyAgICBEV19TRUNUX0xPQ0xJU1RTX1Y1 ICAgICA1ICAuZGVidWdfbG9jbGlzdHMuZHdvCisgICAgRFdfU0VDVF9TVFJfT0ZGU0VUU19WNSAg NiAgLmRlYnVnX3N0cl9vZmZzZXRzLmR3bworICAgIERXX1NFQ1RfTUFDUk9fVjUgICAgICAgIDcg IC5kZWJ1Z19tYWNyby5kd28KKyAgICBEV19TRUNUX1JOR0xJU1RTX1Y1ICAgICA4ICAuZGVidWdf cm5nbGlzdHMuZHdvCisKICAgIFRoZSBvZmZzZXRzIHByb3ZpZGVkIGJ5IHRoZSBDVSBhbmQgVFUg aW5kZXggc2VjdGlvbnMgYXJlIHRoZSBiYXNlIG9mZnNldHMKICAgIGZvciB0aGUgY29udHJpYnV0 aW9ucyBtYWRlIGJ5IGVhY2ggQ1Ugb3IgVFUgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc2VjdGlvbgog ICAgaW4gdGhlIHBhY2thZ2UgZmlsZS4gIEVhY2ggQ1UgYW5kIFRVIGhlYWRlciBjb250YWlucyBh biBhYmJyZXZfb2Zmc2V0CkBAIC0xMTY2Myw5ICsxMTcwNCwxMiBAQCBjcmVhdGVfZHdwX2hhc2hf dGFibGUgKGR3YXJmMl9wZXJfb2JqZmlsZSAqcGVyX29iamZpbGUsCiAgIGluZGV4X3B0ciA9IGlu ZGV4LT5idWZmZXI7CiAgIGluZGV4X2VuZCA9IGluZGV4X3B0ciArIGluZGV4LT5zaXplOwogCisg IC8qIEZvciBWZXJzaW9uIDUsIHRoZSB2ZXJzaW9uIGlzIHJlYWxseSAyIGJ5dGVzIG9mIGRhdGEg JiAyIGJ5dGVzIG9mIHBhZGRpbmcuCisgICAgIEZvciBub3cgaXQncyBzYWZlIHRvIGp1c3QgcmVh ZCA0IGJ5dGVzIChwYXJ0aWN1bGFybHkgYXMgaXQncyBkaWZmaWN1bHQgdG8KKyAgICAgdGVsbCBp ZiB5b3UncmUgZGVhbGluZyB3aXRoIFZlcnNpb24gNSBiZWZvcmUgeW91J3ZlIHJlYWQgdGhlIHZl cnNpb24pLiAgICovCiAgIHZlcnNpb24gPSByZWFkXzRfYnl0ZXMgKGRiZmQsIGluZGV4X3B0cik7 CiAgIGluZGV4X3B0ciArPSA0OwotICBpZiAodmVyc2lvbiA9PSAyKQorICBpZiAoKHZlcnNpb24g PT0gMikgfHwgKHZlcnNpb24gPT0gNSkpCiAgICAgbnJfY29sdW1ucyA9IHJlYWRfNF9ieXRlcyAo ZGJmZCwgaW5kZXhfcHRyKTsKICAgZWxzZQogICAgIG5yX2NvbHVtbnMgPSAwOwpAQCAtMTE2NzUs NyArMTE3MTksNyBAQCBjcmVhdGVfZHdwX2hhc2hfdGFibGUgKGR3YXJmMl9wZXJfb2JqZmlsZSAq cGVyX29iamZpbGUsCiAgIG5yX3Nsb3RzID0gcmVhZF80X2J5dGVzIChkYmZkLCBpbmRleF9wdHIp OwogICBpbmRleF9wdHIgKz0gNDsKIAotICBpZiAodmVyc2lvbiAhPSAxICYmIHZlcnNpb24gIT0g MikKKyAgaWYgKHZlcnNpb24gIT0gMSAmJiB2ZXJzaW9uICE9IDIgJiYgdmVyc2lvbiAhPSA1KQog ICAgIHsKICAgICAgIGVycm9yIChfKCJEd2FyZiBFcnJvcjogdW5zdXBwb3J0ZWQgRFdQIGZpbGUg dmVyc2lvbiAoJXMpIgogCSAgICAgICAiIFtpbiBtb2R1bGUgJXNdIiksCkBAIC0xMTY5OCwxMSAr MTE3NDIsMTMgQEAgY3JlYXRlX2R3cF9oYXNoX3RhYmxlIChkd2FyZjJfcGVyX29iamZpbGUgKnBl cl9vYmpmaWxlLAogCiAgIC8qIEV4aXQgZWFybHkgaWYgdGhlIHRhYmxlIGlzIGVtcHR5LiAgKi8K ICAgaWYgKG5yX3Nsb3RzID09IDAgfHwgbnJfdW5pdHMgPT0gMAotICAgICAgfHwgKHZlcnNpb24g PT0gMiAmJiBucl9jb2x1bW5zID09IDApKQorICAgICAgfHwgKHZlcnNpb24gPT0gMiAmJiBucl9j b2x1bW5zID09IDApCisgICAgICB8fCAodmVyc2lvbiA9PSA1ICYmIG5yX2NvbHVtbnMgPT0gMCkp CiAgICAgewogICAgICAgLyogQWxsIG11c3QgYmUgemVyby4gICovCiAgICAgICBpZiAobnJfc2xv dHMgIT0gMCB8fCBucl91bml0cyAhPSAwCi0JICB8fCAodmVyc2lvbiA9PSAyICYmIG5yX2NvbHVt bnMgIT0gMCkpCisJICB8fCAodmVyc2lvbiA9PSAyICYmIG5yX2NvbHVtbnMgIT0gMCkKKwkgIHx8 ICh2ZXJzaW9uID09IDUgJiYgbnJfY29sdW1ucyAhPSAwKSkKIAl7CiAJICBjb21wbGFpbnQgKF8o IkVtcHR5IERXUCBidXQgbnJfc2xvdHMsbnJfdW5pdHMsbnJfY29sdW1ucyBub3QiCiAJCSAgICAg ICAiIGFsbCB6ZXJvIFtpbiBtb2R1bGVzICVzXSIpLApAQCAtMTE3MTgsNyArMTE3NjQsNyBAQCBj cmVhdGVfZHdwX2hhc2hfdGFibGUgKGR3YXJmMl9wZXJfb2JqZmlsZSAqcGVyX29iamZpbGUsCiAg ICAgICAvKiBJdCdzIGhhcmRlciB0byBkZWNpZGUgd2hldGhlciB0aGUgc2VjdGlvbiBpcyB0b28g c21hbGwgaW4gdjEuCiAJIFYxIGlzIGRlcHJlY2F0ZWQgYW55d2F5IHNvIHdlIHB1bnQuICAqLwog ICAgIH0KLSAgZWxzZQorICBlbHNlIGlmICh2ZXJzaW9uID09IDIpCiAgICAgewogICAgICAgY29u c3QgZ2RiX2J5dGUgKmlkc19wdHIgPSBodGFiLT51bml0X3RhYmxlICsgc2l6ZW9mICh1aW50MzJf dCkgKiBucl9zbG90czsKICAgICAgIGludCAqaWRzID0gaHRhYi0+c2VjdGlvbl9wb29sLnYyLnNl Y3Rpb25faWRzOwpAQCAtMTE3ODksNiArMTE4MzUsNzUgQEAgY3JlYXRlX2R3cF9oYXNoX3RhYmxl IChkd2FyZjJfcGVyX29iamZpbGUgKnBlcl9vYmpmaWxlLAogCQkgZHdwX2ZpbGUtPm5hbWUpOwog CX0KICAgICB9CisgIGVsc2UgLy8gdmVyc2lvbiA9PSA1CisgICAgeworICAgICAgY29uc3QgZ2Ri X2J5dGUgKmlkc19wdHIgPSBodGFiLT51bml0X3RhYmxlICsgc2l6ZW9mICh1aW50MzJfdCkgKiBu cl9zbG90czsKKyAgICAgIGludCAqaWRzID0gaHRhYi0+c2VjdGlvbl9wb29sLnY1LnNlY3Rpb25f aWRzOworICAgICAgc2l6ZV90IHNpemVvZl9pZHMgPSBzaXplb2YgKGh0YWItPnNlY3Rpb25fcG9v bC52NS5zZWN0aW9uX2lkcyk7CisgICAgICAvKiBSZXZlcnNlIG1hcCBmb3IgZXJyb3IgY2hlY2tp bmcuICAqLworICAgICAgaW50IGlkc19zZWVuW0RXX1NFQ1RfTUFYX1Y1ICsgMV07CisgICAgICBp bnQgaTsKKworICAgICAgaWYgKG5yX2NvbHVtbnMgPCAyKQorCXsKKwkgIGVycm9yIChfKCJEd2Fy ZiBFcnJvcjogYmFkIERXUCBoYXNoIHRhYmxlLCB0b28gZmV3IGNvbHVtbnMiCisJCSAgICIgaW4g c2VjdGlvbiB0YWJsZSBbaW4gbW9kdWxlICVzXSIpLAorCQkgZHdwX2ZpbGUtPm5hbWUpOworCX0K KyAgICAgIGlmIChucl9jb2x1bW5zID4gTUFYX05SX1Y1X0RXT19TRUNUSU9OUykKKwl7CisJICBl cnJvciAoXygiRHdhcmYgRXJyb3I6IGJhZCBEV1AgaGFzaCB0YWJsZSwgdG9vIG1hbnkgY29sdW1u cyIKKwkJICAgIiBpbiBzZWN0aW9uIHRhYmxlIFtpbiBtb2R1bGUgJXNdIiksCisJCSBkd3BfZmls ZS0+bmFtZSk7CisJfQorICAgICAgbWVtc2V0IChpZHMsIDI1NSwgc2l6ZW9mX2lkcyk7CisgICAg ICBtZW1zZXQgKGlkc19zZWVuLCAyNTUsIHNpemVvZiAoaWRzX3NlZW4pKTsKKyAgICAgIGZvciAo aSA9IDA7IGkgPCBucl9jb2x1bW5zOyArK2kpCisJeworCSAgaW50IGlkID0gcmVhZF80X2J5dGVz IChkYmZkLCBpZHNfcHRyICsgaSAqIHNpemVvZiAodWludDMyX3QpKTsKKworCSAgaWYgKGlkIDwg RFdfU0VDVF9NSU4gfHwgaWQgPiBEV19TRUNUX01BWF9WNSkKKwkgICAgeworCSAgICAgIGVycm9y IChfKCJEd2FyZiBFcnJvcjogYmFkIERXUCBoYXNoIHRhYmxlLCBiYWQgc2VjdGlvbiBpZCAlZCIK KwkJICAgICAgICIgaW4gc2VjdGlvbiB0YWJsZSBbaW4gbW9kdWxlICVzXSIpLAorCQkgICAgIGlk LCBkd3BfZmlsZS0+bmFtZSk7CisJICAgIH0KKwkgIGlmIChpZHNfc2VlbltpZF0gIT0gLTEpCisJ ICAgIHsKKwkgICAgICBlcnJvciAoXygiRHdhcmYgRXJyb3I6IGJhZCBEV1AgaGFzaCB0YWJsZSwg ZHVwbGljYXRlIHNlY3Rpb24iCisJCSAgICAgICAiIGlkICVkIGluIHNlY3Rpb24gdGFibGUgW2lu IG1vZHVsZSAlc10iKSwKKwkJICAgICBpZCwgZHdwX2ZpbGUtPm5hbWUpOworCSAgICB9CisJICBp ZHNfc2VlbltpZF0gPSBpOworCSAgaWRzW2ldID0gaWQ7CisJfQorICAgICAgLyogTXVzdCBoYXZl IHNlZW4gYW4gaW5mbyBzZWN0aW9uLiAgKi8KKyAgICAgIGlmIChpZHNfc2VlbltEV19TRUNUX0lO Rk9fVjVdID09IC0xKQorCXsKKwkgIGVycm9yIChfKCJEd2FyZiBFcnJvcjogYmFkIERXUCBoYXNo IHRhYmxlLCBtaXNzaW5nL2R1cGxpY2F0ZSIKKwkJICAgIiBEV08gaW5mby90eXBlcyBzZWN0aW9u IFtpbiBtb2R1bGUgJXNdIiksCisJCSBkd3BfZmlsZS0+bmFtZSk7CisJfQorICAgICAgLyogTXVz dCBoYXZlIGFuIGFiYnJldiBzZWN0aW9uLiAgKi8KKyAgICAgIGlmIChpZHNfc2VlbltEV19TRUNU X0FCQlJFVl9WNV0gPT0gLTEpCisJeworCSAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBiYWQgRFdQ IGhhc2ggdGFibGUsIG1pc3NpbmcgRFdPIGFiYnJldiIKKwkJICAgIiBzZWN0aW9uIFtpbiBtb2R1 bGUgJXNdIiksCisJCSBkd3BfZmlsZS0+bmFtZSk7CisJfQorICAgICAgaHRhYi0+c2VjdGlvbl9w b29sLnY1Lm9mZnNldHMgPSBpZHNfcHRyICsgc2l6ZW9mICh1aW50MzJfdCkgKiBucl9jb2x1bW5z OworICAgICAgaHRhYi0+c2VjdGlvbl9wb29sLnY1LnNpemVzID0KKwlodGFiLT5zZWN0aW9uX3Bv b2wudjUub2Zmc2V0cyArIChzaXplb2YgKHVpbnQzMl90KQorCQkJCQkgKiBucl91bml0cyAqIG5y X2NvbHVtbnMpOworICAgICAgaWYgKChodGFiLT5zZWN0aW9uX3Bvb2wudjUuc2l6ZXMgKyAoc2l6 ZW9mICh1aW50MzJfdCkKKwkJCQkJICAqIG5yX3VuaXRzICogbnJfY29sdW1ucykpCisJICA+IGlu ZGV4X2VuZCkKKwl7CisJICBlcnJvciAoXygiRHdhcmYgRXJyb3I6IERXUCBpbmRleCBzZWN0aW9u IGlzIGNvcnJ1cHQgKHRvbyBzbWFsbCkiCisJCSAgICIgW2luIG1vZHVsZSAlc10iKSwKKwkJIGR3 cF9maWxlLT5uYW1lKTsKKwl9CisgICAgfQogCiAgIHJldHVybiBodGFiOwogfQpAQCAtMTIwMjgs MTUgKzEyMTQzLDE1IEBAIGNyZWF0ZV9kd29fdW5pdF9pbl9kd3BfdjEgKGR3YXJmMl9wZXJfb2Jq ZmlsZSAqcGVyX29iamZpbGUsCiAgIHJldHVybiBkd29fdW5pdDsKIH0KIAotLyogU3Vicm91dGlu ZSBvZiBjcmVhdGVfZHdvX3VuaXRfaW5fZHdwX3YyIHRvIHNpbXBsaWZ5IGl0LgotICAgR2l2ZW4g YSBwb2ludGVyIHRvIHRoZSBjb250YWluaW5nIHNlY3Rpb24gU0VDVElPTiwgYW5kIE9GRlNFVCxT SVpFIG9mIHRoZQotICAgcGllY2Ugd2l0aGluIHRoYXQgc2VjdGlvbiB1c2VkIGJ5IGEgVFUvQ1Us IHJldHVybiBhIHZpcnR1YWwgc2VjdGlvbgotICAgb2YganVzdCB0aGF0IHBpZWNlLiAgKi8KKy8q IFN1YnJvdXRpbmUgb2YgY3JlYXRlX2R3b191bml0X2luX2R3cF92MiBhbmQgY3JlYXRlX2R3b191 bml0X2luX2R3cF92NSB0bworICAgc2ltcGxpZnkgdGhlbS4gIEdpdmVuIGEgcG9pbnRlciB0byB0 aGUgY29udGFpbmluZyBzZWN0aW9uIFNFQ1RJT04sIGFuZAorICAgT0ZGU0VULFNJWkUgb2YgdGhl IHBpZWNlIHdpdGhpbiB0aGF0IHNlY3Rpb24gdXNlZCBieSBhIFRVL0NVLCByZXR1cm4gYQorICAg dmlydHVhbCBzZWN0aW9uIG9mIGp1c3QgdGhhdCBwaWVjZS4gICovCiAKIHN0YXRpYyBzdHJ1Y3Qg ZHdhcmYyX3NlY3Rpb25faW5mbwotY3JlYXRlX2R3cF92Ml9zZWN0aW9uIChkd2FyZjJfcGVyX29i amZpbGUgKnBlcl9vYmpmaWxlLAotCQkgICAgICAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8g KnNlY3Rpb24sCi0JCSAgICAgICBiZmRfc2l6ZV90eXBlIG9mZnNldCwgYmZkX3NpemVfdHlwZSBz aXplKQorY3JlYXRlX2R3cF92Ml9vcl92NV9zZWN0aW9uIChkd2FyZjJfcGVyX29iamZpbGUgKnBl cl9vYmpmaWxlLAorCQkJICAgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqc2VjdGlvbiwK KwkJCSAgICAgYmZkX3NpemVfdHlwZSBvZmZzZXQsIGJmZF9zaXplX3R5cGUgc2l6ZSkKIHsKICAg c3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gcmVzdWx0OwogICBhc2VjdGlvbiAqc2VjdHA7CkBA IC0xMjA1OSw3ICsxMjE3NCw3IEBAIGNyZWF0ZV9kd3BfdjJfc2VjdGlvbiAoZHdhcmYyX3Blcl9v YmpmaWxlICpwZXJfb2JqZmlsZSwKICAgaWYgKHNlY3RwID09IE5VTEwKICAgICAgIHx8IG9mZnNl dCArIHNpemUgPiBiZmRfc2VjdGlvbl9zaXplIChzZWN0cCkpCiAgICAgewotICAgICAgZXJyb3Ig KF8oIkR3YXJmIEVycm9yOiBCYWQgRFdQIFYyIHNlY3Rpb24gaW5mbywgZG9lc24ndCBmaXQiCisg ICAgICBlcnJvciAoXygiRHdhcmYgRXJyb3I6IEJhZCBEV1AgVjIgb3IgVjUgc2VjdGlvbiBpbmZv LCBkb2Vzbid0IGZpdCIKIAkgICAgICAgIiBpbiBzZWN0aW9uICVzIFtpbiBtb2R1bGUgJXNdIiks CiAJICAgICBzZWN0cCA/IGJmZF9zZWN0aW9uX25hbWUgKHNlY3RwKSA6ICI8dW5rbm93bj4iLAog CSAgICAgb2JqZmlsZV9uYW1lIChwZXJfb2JqZmlsZS0+b2JqZmlsZSkpOwpAQCAtMTIwODgsNyAr MTIyMDMsNyBAQCBjcmVhdGVfZHdvX3VuaXRfaW5fZHdwX3YyIChkd2FyZjJfcGVyX29iamZpbGUg KnBlcl9vYmpmaWxlLAogICBjb25zdCBjaGFyICpraW5kID0gaXNfZGVidWdfdHlwZXMgPyAiVFUi IDogIkNVIjsKICAgc3RydWN0IGR3b19maWxlICpkd29fZmlsZTsKICAgc3RydWN0IGR3b191bml0 ICpkd29fdW5pdDsKLSAgc3RydWN0IHZpcnR1YWxfdjJfZHdvX3NlY3Rpb25zIHNlY3Rpb25zOwor ICBzdHJ1Y3QgdmlydHVhbF92Ml9vcl92NV9kd29fc2VjdGlvbnMgc2VjdGlvbnM7CiAgIHZvaWQg Kipkd29fZmlsZV9zbG90OwogICBpbnQgaTsKIApAQCAtMTIxODQsMjUgKzEyMjk5LDI5IEBAIGNy ZWF0ZV9kd29fdW5pdF9pbl9kd3BfdjIgKGR3YXJmMl9wZXJfb2JqZmlsZSAqcGVyX29iamZpbGUs CiAgICAgICBkd29fZmlsZS0+ZHdvX25hbWUgPSBwZXJfb2JqZmlsZS0+b2JqZmlsZS0+aW50ZXJu ICh2aXJ0dWFsX2R3b19uYW1lKTsKICAgICAgIGR3b19maWxlLT5jb21wX2RpciA9IGNvbXBfZGly OwogICAgICAgZHdvX2ZpbGUtPnNlY3Rpb25zLmFiYnJldiA9Ci0JY3JlYXRlX2R3cF92Ml9zZWN0 aW9uIChwZXJfb2JqZmlsZSwgJmR3cF9maWxlLT5zZWN0aW9ucy5hYmJyZXYsCi0JCQkgICAgICAg c2VjdGlvbnMuYWJicmV2X29mZnNldCwgc2VjdGlvbnMuYWJicmV2X3NpemUpOworCWNyZWF0ZV9k d3BfdjJfb3JfdjVfc2VjdGlvbiAocGVyX29iamZpbGUsICZkd3BfZmlsZS0+c2VjdGlvbnMuYWJi cmV2LAorCQkJCSAgICAgc2VjdGlvbnMuYWJicmV2X29mZnNldCwKKwkJCQkgICAgIHNlY3Rpb25z LmFiYnJldl9zaXplKTsKICAgICAgIGR3b19maWxlLT5zZWN0aW9ucy5saW5lID0KLQljcmVhdGVf ZHdwX3YyX3NlY3Rpb24gKHBlcl9vYmpmaWxlLCAmZHdwX2ZpbGUtPnNlY3Rpb25zLmxpbmUsCi0J CQkgICAgICAgc2VjdGlvbnMubGluZV9vZmZzZXQsIHNlY3Rpb25zLmxpbmVfc2l6ZSk7CisJY3Jl YXRlX2R3cF92Ml9vcl92NV9zZWN0aW9uIChwZXJfb2JqZmlsZSwgJmR3cF9maWxlLT5zZWN0aW9u cy5saW5lLAorCQkJCSAgICAgc2VjdGlvbnMubGluZV9vZmZzZXQsCisJCQkJICAgICBzZWN0aW9u cy5saW5lX3NpemUpOwogICAgICAgZHdvX2ZpbGUtPnNlY3Rpb25zLmxvYyA9Ci0JY3JlYXRlX2R3 cF92Ml9zZWN0aW9uIChwZXJfb2JqZmlsZSwgJmR3cF9maWxlLT5zZWN0aW9ucy5sb2MsCi0JCQkg ICAgICAgc2VjdGlvbnMubG9jX29mZnNldCwgc2VjdGlvbnMubG9jX3NpemUpOworCWNyZWF0ZV9k d3BfdjJfb3JfdjVfc2VjdGlvbiAocGVyX29iamZpbGUsICZkd3BfZmlsZS0+c2VjdGlvbnMubG9j LAorCQkJCSAgICAgc2VjdGlvbnMubG9jX29mZnNldCwgc2VjdGlvbnMubG9jX3NpemUpOwogICAg ICAgZHdvX2ZpbGUtPnNlY3Rpb25zLm1hY2luZm8gPQotCWNyZWF0ZV9kd3BfdjJfc2VjdGlvbiAo cGVyX29iamZpbGUsICZkd3BfZmlsZS0+c2VjdGlvbnMubWFjaW5mbywKLQkJCSAgICAgICBzZWN0 aW9ucy5tYWNpbmZvX29mZnNldCwgc2VjdGlvbnMubWFjaW5mb19zaXplKTsKKwljcmVhdGVfZHdw X3YyX29yX3Y1X3NlY3Rpb24gKHBlcl9vYmpmaWxlLCAmZHdwX2ZpbGUtPnNlY3Rpb25zLm1hY2lu Zm8sCisJCQkJICAgICBzZWN0aW9ucy5tYWNpbmZvX29mZnNldCwKKwkJCQkgICAgIHNlY3Rpb25z Lm1hY2luZm9fc2l6ZSk7CiAgICAgICBkd29fZmlsZS0+c2VjdGlvbnMubWFjcm8gPQotCWNyZWF0 ZV9kd3BfdjJfc2VjdGlvbiAocGVyX29iamZpbGUsICZkd3BfZmlsZS0+c2VjdGlvbnMubWFjcm8s Ci0JCQkgICAgICAgc2VjdGlvbnMubWFjcm9fb2Zmc2V0LCBzZWN0aW9ucy5tYWNyb19zaXplKTsK KwljcmVhdGVfZHdwX3YyX29yX3Y1X3NlY3Rpb24gKHBlcl9vYmpmaWxlLCAmZHdwX2ZpbGUtPnNl Y3Rpb25zLm1hY3JvLAorCQkJCSAgICAgc2VjdGlvbnMubWFjcm9fb2Zmc2V0LAorCQkJCSAgICAg c2VjdGlvbnMubWFjcm9fc2l6ZSk7CiAgICAgICBkd29fZmlsZS0+c2VjdGlvbnMuc3RyX29mZnNl dHMgPQotCWNyZWF0ZV9kd3BfdjJfc2VjdGlvbiAocGVyX29iamZpbGUsCi0JCQkgICAgICAgJmR3 cF9maWxlLT5zZWN0aW9ucy5zdHJfb2Zmc2V0cywKLQkJCSAgICAgICBzZWN0aW9ucy5zdHJfb2Zm c2V0c19vZmZzZXQsCi0JCQkgICAgICAgc2VjdGlvbnMuc3RyX29mZnNldHNfc2l6ZSk7CisJY3Jl YXRlX2R3cF92Ml9vcl92NV9zZWN0aW9uIChwZXJfb2JqZmlsZSwKKwkJCQkgICAgICZkd3BfZmls ZS0+c2VjdGlvbnMuc3RyX29mZnNldHMsCisJCQkJICAgICBzZWN0aW9ucy5zdHJfb2Zmc2V0c19v ZmZzZXQsCisJCQkJICAgICBzZWN0aW9ucy5zdHJfb2Zmc2V0c19zaXplKTsKICAgICAgIC8qIFRo ZSAic3RyIiBzZWN0aW9uIGlzIGdsb2JhbCB0byB0aGUgZW50aXJlIERXUCBmaWxlLiAgKi8KICAg ICAgIGR3b19maWxlLT5zZWN0aW9ucy5zdHIgPSBkd3BfZmlsZS0+c2VjdGlvbnMuc3RyOwogICAg ICAgLyogVGhlIGluZm8gb3IgdHlwZXMgc2VjdGlvbiBpcyBhc3NpZ25lZCBiZWxvdyB0byBkd29f dW5pdCwKQEAgLTEyMjI5LDEyICsxMjM0OCwxOTggQEAgY3JlYXRlX2R3b191bml0X2luX2R3cF92 MiAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmlsZSwKICAgZHdvX3VuaXQtPnNpZ25hdHVy ZSA9IHNpZ25hdHVyZTsKICAgZHdvX3VuaXQtPnNlY3Rpb24gPQogICAgIFhPQk5FVyAoJnBlcl9v YmpmaWxlLT5wZXJfYmZkLT5vYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyk7Ci0g ICpkd29fdW5pdC0+c2VjdGlvbiA9IGNyZWF0ZV9kd3BfdjJfc2VjdGlvbiAocGVyX29iamZpbGUs Ci0JCQkJCSAgICAgIGlzX2RlYnVnX3R5cGVzCi0JCQkJCSAgICAgID8gJmR3cF9maWxlLT5zZWN0 aW9ucy50eXBlcwotCQkJCQkgICAgICA6ICZkd3BfZmlsZS0+c2VjdGlvbnMuaW5mbywKLQkJCQkJ ICAgICAgc2VjdGlvbnMuaW5mb19vcl90eXBlc19vZmZzZXQsCi0JCQkJCSAgICAgIHNlY3Rpb25z LmluZm9fb3JfdHlwZXNfc2l6ZSk7CisgICpkd29fdW5pdC0+c2VjdGlvbiA9IGNyZWF0ZV9kd3Bf djJfb3JfdjVfc2VjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJfb2JqZmlsZSwK KwkJCSAgaXNfZGVidWdfdHlwZXMKKwkJCSAgPyAmZHdwX2ZpbGUtPnNlY3Rpb25zLnR5cGVzCisJ CQkgIDogJmR3cF9maWxlLT5zZWN0aW9ucy5pbmZvLAorCQkJICBzZWN0aW9ucy5pbmZvX29yX3R5 cGVzX29mZnNldCwKKwkJCSAgc2VjdGlvbnMuaW5mb19vcl90eXBlc19zaXplKTsKKyAgLyogZHdv X3VuaXQtPntvZmZzZXQsbGVuZ3RoLHR5cGVfb2Zmc2V0X2luX3R1fSBhcmUgc2V0IGxhdGVyLiAg Ki8KKworICByZXR1cm4gZHdvX3VuaXQ7Cit9CisKKy8qIENyZWF0ZSBhIGR3b191bml0IG9iamVj dCBmb3IgdGhlIERXTyB1bml0IHdpdGggc2lnbmF0dXJlIFNJR05BVFVSRS4KKyAgIFVOSVRfSU5E RVggaXMgdGhlIGluZGV4IG9mIHRoZSBEV08gdW5pdCBpbiB0aGUgRFdQIGhhc2ggdGFibGUuCisg ICBDT01QX0RJUiBpcyB0aGUgRFdfQVRfY29tcF9kaXIgYXR0cmlidXRlIG9mIHRoZSByZWZlcmVu Y2luZyBDVS4KKyAgIFRoaXMgaXMgZm9yIERXUCB2ZXJzaW9uIDUgZmlsZXMuICAqLworCitzdGF0 aWMgc3RydWN0IGR3b191bml0ICoKK2NyZWF0ZV9kd29fdW5pdF9pbl9kd3BfdjUgKHN0cnVjdCBk d2FyZjJfcGVyX29iamZpbGUgKmR3YXJmMl9wZXJfb2JqZmlsZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkd3BfZmlsZSAqZHdwX2ZpbGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCB1bml0X2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqY29tcF9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVTE9OR0VT VCBzaWduYXR1cmUsIGludCBpc19kZWJ1Z190eXBlcykKK3sKKyAgc3RydWN0IG9iamZpbGUgKm9i amZpbGUgPSBkd2FyZjJfcGVyX29iamZpbGUtPm9iamZpbGU7CisgIGNvbnN0IHN0cnVjdCBkd3Bf aGFzaF90YWJsZSAqZHdwX2h0YWIgPQorICAgIGlzX2RlYnVnX3R5cGVzID8gZHdwX2ZpbGUtPnR1 cyA6IGR3cF9maWxlLT5jdXM7CisgIGJmZCAqZGJmZCA9IGR3cF9maWxlLT5kYmZkLmdldCAoKTsK KyAgY29uc3QgY2hhciAqa2luZCA9IGlzX2RlYnVnX3R5cGVzID8gIlRVIiA6ICJDVSI7CisgIHN0 cnVjdCBkd29fZmlsZSAqZHdvX2ZpbGU7CisgIHN0cnVjdCBkd29fdW5pdCAqZHdvX3VuaXQ7Cisg IHN0cnVjdCB2aXJ0dWFsX3YyX29yX3Y1X2R3b19zZWN0aW9ucyBzZWN0aW9uczsKKyAgdm9pZCAq KmR3b19maWxlX3Nsb3Q7CisgIGludCBpOworCisgIGdkYl9hc3NlcnQgKGR3cF9maWxlLT52ZXJz aW9uID09IDUpOworCisgIGlmIChkd2FyZl9yZWFkX2RlYnVnKQorICAgIHsKKyAgICAgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIlJlYWRpbmcgJXMgJXMvJXMgaW4gRFdQIFY1IGZp bGU6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kLAorICAgICAgICAgICAg ICAgICAgICAgICAgICBwdWxvbmdlc3QgKHVuaXRfaW5kZXgpLCBoZXhfc3RyaW5nIChzaWduYXR1 cmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkd3BfZmlsZS0+bmFtZSk7CisgICAgfQor CisgIC8qIEZldGNoIHRoZSBzZWN0aW9uIG9mZnNldHMgb2YgdGhpcyBEV08gdW5pdC4gICovCisK KyAgbWVtc2V0ICgmc2VjdGlvbnMsIDAsIHNpemVvZiAoc2VjdGlvbnMpKTsKKworICBmb3IgKGkg PSAwOyBpIDwgZHdwX2h0YWItPm5yX2NvbHVtbnM7ICsraSkKKyAgICB7CisgICAgICB1aW50MzJf dCBvZmZzZXQgPSByZWFkXzRfYnl0ZXMgKGRiZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGR3cF9odGFiLT5zZWN0aW9uX3Bvb2wudjUub2Zmc2V0cworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICgoKHVuaXRfaW5kZXggLSAxKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBkd3BfaHRhYi0+bnJfY29sdW1u cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHNpemVvZiAodWludDMyX3QpKSk7 CisgICAgICB1aW50MzJfdCBzaXplID0gcmVhZF80X2J5dGVzIChkYmZkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZHdwX2h0YWItPnNlY3Rpb25fcG9vbC52NS5zaXplcwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoKCh1bml0X2luZGV4IC0gMSkg KiBkd3BfaHRhYi0+bnJfY29sdW1ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsgaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc2l6 ZW9mICh1aW50MzJfdCkpKTsKKworICAgICAgc3dpdGNoIChkd3BfaHRhYi0+c2VjdGlvbl9wb29s LnY1LnNlY3Rpb25faWRzW2ldKQorICAgICAgICB7CisgICAgICAgICAgY2FzZSBEV19TRUNUX0FC QlJFVl9WNToKKyAgICAgICAgICAgIHNlY3Rpb25zLmFiYnJldl9vZmZzZXQgPSBvZmZzZXQ7Cisg ICAgICAgICAgICBzZWN0aW9ucy5hYmJyZXZfc2l6ZSA9IHNpemU7CisgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICBjYXNlIERXX1NFQ1RfSU5GT19WNToKKyAgICAgICAgICAgIHNlY3Rpb25z LmluZm9fb3JfdHlwZXNfb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICAgICAgc2VjdGlvbnMuaW5m b19vcl90eXBlc19zaXplID0gc2l6ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNh c2UgRFdfU0VDVF9MSU5FX1Y1OgorICAgICAgICAgICAgc2VjdGlvbnMubGluZV9vZmZzZXQgPSBv ZmZzZXQ7CisgICAgICAgICAgICBzZWN0aW9ucy5saW5lX3NpemUgPSBzaXplOworICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgY2FzZSBEV19TRUNUX0xPQ0xJU1RTX1Y1OgorICAgICAgICAg ICAgc2VjdGlvbnMubG9jbGlzdHNfb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICAgICAgc2VjdGlv bnMubG9jbGlzdHNfc2l6ZSA9IHNpemU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBj YXNlIERXX1NFQ1RfTUFDUk9fVjU6CisgICAgICAgICAgICBzZWN0aW9ucy5tYWNyb19vZmZzZXQg PSBvZmZzZXQ7CisgICAgICAgICAgICBzZWN0aW9ucy5tYWNyb19zaXplID0gc2l6ZTsKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgRFdfU0VDVF9STkdMSVNUU19WNToKKyAgICAg ICAgICAgIHNlY3Rpb25zLnJuZ2xpc3RzX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAgICAgIHNl Y3Rpb25zLnJuZ2xpc3RzX3NpemUgPSBzaXplOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgY2FzZSBEV19TRUNUX1NUUl9PRkZTRVRTX1Y1OgorICAgICAgICAgICAgc2VjdGlvbnMuc3Ry X29mZnNldHNfb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICAgICAgc2VjdGlvbnMuc3RyX29mZnNl dHNfc2l6ZSA9IHNpemU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIERXX1NF Q1RfUkVTRVJWRURfVjU6CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICB9CisgICAgfQorCisgIC8qIEl0J3MgZWFzaWVyIGZvciB0aGUgcmVzdCBvZiB0aGUg Y29kZSBpZiB3ZSBmYWtlIGEgc3RydWN0IGR3b19maWxlIGFuZAorICAgICBoYXZlIGR3b191bml0 ICJsaXZlIiBpbiB0aGF0LiAgQXQgbGVhc3QgZm9yIG5vdy4KKworICAgICBUaGUgRFdQIGZpbGUg Y2FuIGJlIG1hZGUgdXAgb2YgYSByYW5kb20gY29sbGVjdGlvbiBvZiBDVXMgYW5kIFRVcy4KKyAg ICAgSG93ZXZlciwgZm9yIGVhY2ggQ1UgKyBzZXQgb2YgVFVzIHRoYXQgY2FtZSBmcm9tIHRoZSBz YW1lIG9yaWdpbmFsIERXTworICAgICBmaWxlLCB3ZSBjYW4gY29tYmluZSB0aGVtIGJhY2sgaW50 byBhIHZpcnR1YWwgRFdPIGZpbGUgdG8gc2F2ZSBzcGFjZQorICAgICAoZmV3ZXIgc3RydWN0IGR3 b19maWxlIG9iamVjdHMgdG8gYWxsb2NhdGUpLiAgUmVtZW1iZXIgdGhhdCBmb3IgcmVhbGx5Cisg ICAgIGxhcmdlIGFwcHMgdGhlcmUgY2FuIGJlIG9uIHRoZSBvcmRlciBvZiA4SyBDVXMgYW5kIDIw MEsgVFVzLCBvciBtb3JlLiAgKi8KKworICBzdGQ6OnN0cmluZyB2aXJ0dWFsX2R3b19uYW1lID0K KyAgICBzdHJpbmdfcHJpbnRmICgidmlydHVhbC1kd28vJWxkLSVsZC0lbGQtJWxkLSVsZC0lbGQi LAorICAgICAgICAgICAgICAgICAobG9uZykgKHNlY3Rpb25zLmFiYnJldl9zaXplID8gc2VjdGlv bnMuYWJicmV2X29mZnNldCA6IDApLAorICAgICAgICAgICAgICAgICAobG9uZykgKHNlY3Rpb25z LmxpbmVfc2l6ZSA/IHNlY3Rpb25zLmxpbmVfb2Zmc2V0IDogMCksCisgICAgICAgICAgICAgICAg IChsb25nKSAoc2VjdGlvbnMubG9jbGlzdHNfc2l6ZSA/IHNlY3Rpb25zLmxvY2xpc3RzX29mZnNl dCA6IDApLAorICAgICAgICAgICAgICAgICAobG9uZykgKHNlY3Rpb25zLnN0cl9vZmZzZXRzX3Np emUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNlY3Rpb25zLnN0cl9vZmZzZXRzX29m ZnNldCA6IDApLAorICAgICAgICAgICAgICAgICAobG9uZykgKHNlY3Rpb25zLm1hY3JvX3NpemUg PyBzZWN0aW9ucy5tYWNyb19vZmZzZXQgOiAwKSwKKyAgICAgICAgICAgICAgICAgKGxvbmcpIChz ZWN0aW9ucy5ybmdsaXN0c19zaXplID8gc2VjdGlvbnMucm5nbGlzdHNfb2Zmc2V0OiAwKSk7Cisg IC8qIENhbiB3ZSB1c2UgYW4gZXhpc3RpbmcgdmlydHVhbCBEV08gZmlsZT8gICovCisgIGR3b19m aWxlX3Nsb3QgPSBsb29rdXBfZHdvX2ZpbGVfc2xvdCAoZHdhcmYyX3Blcl9vYmpmaWxlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxfZHdvX25hbWUuY19z dHIgKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcF9kaXIp OworICAvKiBDcmVhdGUgb25lIGlmIG5lY2Vzc2FyeS4gICovCisgIGlmICgqZHdvX2ZpbGVfc2xv dCA9PSBOVUxMKQorICAgIHsKKyAgICAgIGlmIChkd2FyZl9yZWFkX2RlYnVnKQorICAgICAgICB7 CisgICAgICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiQ3JlYXRpbmcgdmly dHVhbCBEV086ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbF9k d29fbmFtZS5jX3N0ciAoKSk7CisgICAgICAgIH0KKyAgICAgIGR3b19maWxlID0gbmV3IHN0cnVj dCBkd29fZmlsZTsKKyAgICAgIGR3b19maWxlLT5kd29fbmFtZSA9IG9ic3RhY2tfc3RyZHVwICgm b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZpcnR1YWxfZHdvX25hbWUpOworICAgICAgZHdvX2ZpbGUtPmNvbXBfZGly ID0gY29tcF9kaXI7CisgICAgICBkd29fZmlsZS0+c2VjdGlvbnMuYWJicmV2ID0KKyAgICAgICAg Y3JlYXRlX2R3cF92Ml9vcl92NV9zZWN0aW9uIChkd2FyZjJfcGVyX29iamZpbGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmR3cF9maWxlLT5zZWN0aW9ucy5hYmJyZXYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnMuYWJicmV2X29m ZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9ucy5hYmJy ZXZfc2l6ZSk7CisgICAgICBkd29fZmlsZS0+c2VjdGlvbnMubGluZSA9CisgICAgICAgIGNyZWF0 ZV9kd3BfdjJfb3JfdjVfc2VjdGlvbiAoZHdhcmYyX3Blcl9vYmpmaWxlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZkd3BfZmlsZS0+c2VjdGlvbnMubGluZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9ucy5saW5lX29mZnNldCwgc2Vj dGlvbnMubGluZV9zaXplKTsKKyAgICAgIGR3b19maWxlLT5zZWN0aW9ucy5tYWNybyA9CisgICAg ICAgIGNyZWF0ZV9kd3BfdjJfb3JfdjVfc2VjdGlvbiAoZHdhcmYyX3Blcl9vYmpmaWxlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkd3BfZmlsZS0+c2VjdGlvbnMubWFj cm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnMubWFjcm9f b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zLm1h Y3JvX3NpemUpOworICAgICAgZHdvX2ZpbGUtPnNlY3Rpb25zLmxvY2xpc3RzID0KKyAgICAgICAg Y3JlYXRlX2R3cF92Ml9vcl92NV9zZWN0aW9uIChkd2FyZjJfcGVyX29iamZpbGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmR3cF9maWxlLT5zZWN0aW9ucy5sb2NsaXN0 cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9ucy5sb2NsaXN0 c19vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnMu bG9jbGlzdHNfc2l6ZSk7CisgICAgICBkd29fZmlsZS0+c2VjdGlvbnMucm5nbGlzdHMgPQorICAg ICAgICBjcmVhdGVfZHdwX3YyX29yX3Y1X3NlY3Rpb24gKGR3YXJmMl9wZXJfb2JqZmlsZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZHdwX2ZpbGUtPnNlY3Rpb25zLnJu Z2xpc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zLnJu Z2xpc3RzX29mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0 aW9ucy5ybmdsaXN0c19zaXplKTsKKyAgICAgIGR3b19maWxlLT5zZWN0aW9ucy5zdHJfb2Zmc2V0 cyA9CisgICAgICAgIGNyZWF0ZV9kd3BfdjJfb3JfdjVfc2VjdGlvbiAoZHdhcmYyX3Blcl9vYmpm aWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkd3BfZmlsZS0+c2Vj dGlvbnMuc3RyX29mZnNldHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VjdGlvbnMuc3RyX29mZnNldHNfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlY3Rpb25zLnN0cl9vZmZzZXRzX3NpemUpOworICAgICAgLyogVGhlICJzdHIi IHNlY3Rpb24gaXMgZ2xvYmFsIHRvIHRoZSBlbnRpcmUgRFdQIGZpbGUuICAqLworICAgICAgZHdv X2ZpbGUtPnNlY3Rpb25zLnN0ciA9IGR3cF9maWxlLT5zZWN0aW9ucy5zdHI7CisgICAgICAvKiBU aGUgaW5mbyBvciB0eXBlcyBzZWN0aW9uIGlzIGFzc2lnbmVkIGJlbG93IHRvIGR3b191bml0LAor ICAgICAgICAgdGhlcmUncyBubyBuZWVkIHRvIHJlY29yZCBpdCBpbiBkd29fZmlsZS4KKyAgICAg ICAgIEFsc28sIHdlIGNhbid0IHNpbXBseSByZWNvcmQgdHlwZSBzZWN0aW9ucyBpbiBkd29fZmls ZSBiZWNhdXNlCisgICAgICAgICB3ZSByZWNvcmQgYSBwb2ludGVyIGludG8gdGhlIHZlY3RvciBp biBkd29fdW5pdC4gIEFzIHdlIGNvbGxlY3QgbW9yZQorICAgICAgICAgdHlwZXMgd2UnbGwgZ3Jv dyB0aGUgdmVjdG9yIGFuZCBldmVudHVhbGx5IGhhdmUgdG8gcmVhbGxvY2F0ZSBzcGFjZQorICAg ICAgICAgZm9yIGl0LCBpbnZhbGlkYXRpbmcgYWxsIGNvcGllcyBvZiBwb2ludGVycyBpbnRvIHRo ZSBwcmV2aW91cworICAgICAgICAgY29udGVudHMuICAqLworICAgICAgKmR3b19maWxlX3Nsb3Qg PSBkd29fZmlsZTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBpZiAoZHdhcmZfcmVhZF9k ZWJ1ZykKKyAgICAgICAgeworICAgICAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxv ZywgIlVzaW5nIGV4aXN0aW5nIHZpcnR1YWwgRFdPOiAlc1xuIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZpcnR1YWxfZHdvX25hbWUuY19zdHIgKCkpOworICAgICAgICB9CisgICAg ICBkd29fZmlsZSA9IChzdHJ1Y3QgZHdvX2ZpbGUgKikgKmR3b19maWxlX3Nsb3Q7CisgICAgfQor CisgIGR3b191bml0ID0gT0JTVEFDS19aQUxMT0MgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ss IHN0cnVjdCBkd29fdW5pdCk7CisgIGR3b191bml0LT5kd29fZmlsZSA9IGR3b19maWxlOworICBk d29fdW5pdC0+c2lnbmF0dXJlID0gc2lnbmF0dXJlOworICBkd29fdW5pdC0+c2VjdGlvbiA9Cisg ICAgWE9CTkVXICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rp b25faW5mbyk7CisgICpkd29fdW5pdC0+c2VjdGlvbiA9IGNyZWF0ZV9kd3BfdjJfb3JfdjVfc2Vj dGlvbiAoZHdhcmYyX3Blcl9vYmpmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZkd3BfZmlsZS0+c2VjdGlvbnMuaW5mbywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9ucy5pbmZvX29yX3R5cGVzX29m ZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0 aW9ucy5pbmZvX29yX3R5cGVzX3NpemUpOwogICAvKiBkd29fdW5pdC0+e29mZnNldCxsZW5ndGgs dHlwZV9vZmZzZXRfaW5fdHV9IGFyZSBzZXQgbGF0ZXIuICAqLwogCiAgIHJldHVybiBkd29fdW5p dDsKQEAgLTEyMjg3LDEyICsxMjU5MiwxOCBAQCBsb29rdXBfZHdvX3VuaXRfaW5fZHdwIChkd2Fy ZjJfcGVyX29iamZpbGUgKnBlcl9vYmpmaWxlLAogCQkJCQkJIHVuaXRfaW5kZXgsIGNvbXBfZGly LAogCQkJCQkJIHNpZ25hdHVyZSwgaXNfZGVidWdfdHlwZXMpOwogCSAgICB9Ci0JICBlbHNlCisJ ICBlbHNlIGlmIChkd3BfZmlsZS0+dmVyc2lvbiA9PSAyKQogCSAgICB7CiAJICAgICAgKnNsb3Qg PSBjcmVhdGVfZHdvX3VuaXRfaW5fZHdwX3YyIChwZXJfb2JqZmlsZSwgZHdwX2ZpbGUsCiAJCQkJ CQkgdW5pdF9pbmRleCwgY29tcF9kaXIsCiAJCQkJCQkgc2lnbmF0dXJlLCBpc19kZWJ1Z190eXBl cyk7CiAJICAgIH0KKwkgIGVsc2UgLy8gdmVyc2lvbiA9PSA1CisJICAgIHsKKwkgICAgICAqc2xv dCA9IGNyZWF0ZV9kd29fdW5pdF9pbl9kd3BfdjUgKHBlcl9vYmpmaWxlLCBkd3BfZmlsZSwKKwkJ CQkJCSB1bml0X2luZGV4LCBjb21wX2RpciwKKwkJCQkJCSBzaWduYXR1cmUsIGlzX2RlYnVnX3R5 cGVzKTsKKwkgICAgfQogCSAgcmV0dXJuIChzdHJ1Y3QgZHdvX3VuaXQgKikgKnNsb3Q7CiAJfQog ICAgICAgaWYgKHNpZ25hdHVyZV9pbl90YWJsZSA9PSAwKQpAQCAtMTI1MTIsOCArMTI4MjMsMTcg QEAgb3Blbl9hbmRfaW5pdF9kd29fZmlsZSAoZHdhcmYyX2N1ICpjdSwgY29uc3QgY2hhciAqZHdv X25hbWUsCiAgIGNyZWF0ZV9jdXNfaGFzaF90YWJsZSAocGVyX29iamZpbGUsIGN1LCAqZHdvX2Zp bGUsIGR3b19maWxlLT5zZWN0aW9ucy5pbmZvLAogCQkJIGR3b19maWxlLT5jdXMpOwogCi0gIGNy ZWF0ZV9kZWJ1Z190eXBlc19oYXNoX3RhYmxlIChwZXJfb2JqZmlsZSwgZHdvX2ZpbGUuZ2V0ICgp LAotCQkJCSBkd29fZmlsZS0+c2VjdGlvbnMudHlwZXMsIGR3b19maWxlLT50dXMpOworICBpZiAo ZHdvX2ZpbGUtPnNlY3Rpb25zLnR5cGVzLnNpemUoKSA+IDApCisgICAgeworICAgICAgY3JlYXRl X2RlYnVnX3R5cGVzX2hhc2hfdGFibGUgKHBlcl9vYmpmaWxlLCBkd29fZmlsZS5nZXQgKCksCisJ CQkJICAgICBkd29fZmlsZS0+c2VjdGlvbnMudHlwZXMsIGR3b19maWxlLT50dXMpOworICAgIH0K KyAgZWxzZQorICAgIHsKKyAgICAgIGNyZWF0ZV9kZWJ1Z190eXBlX2hhc2hfdGFibGUgKHBlcl9v YmpmaWxlLCBkd29fZmlsZS5nZXQgKCksCisJCQkJICAgICZkd29fZmlsZS0+c2VjdGlvbnMuaW5m bywgZHdvX2ZpbGUtPnR1cywKKwkJCQkgICAgcmN1aF9raW5kOjpUWVBFKTsKKyAgICB9CiAKICAg aWYgKGR3YXJmX3JlYWRfZGVidWcpCiAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9n LCAiRFdPIGZpbGUgZm91bmQ6ICVzXG4iLCBkd29fbmFtZSk7CkBAIC0xMjU1OSw3ICsxMjg3OSw3 IEBAIGR3YXJmMl9sb2NhdGVfY29tbW9uX2R3cF9zZWN0aW9ucyAoYmZkICphYmZkLCBhc2VjdGlv biAqc2VjdHAsCiAvKiBUaGlzIGZ1bmN0aW9uIGlzIG1hcHBlZCBhY3Jvc3MgdGhlIHNlY3Rpb25z IGFuZCByZW1lbWJlcnMgdGhlIG9mZnNldCBhbmQKICAgIHNpemUgb2YgZWFjaCBvZiB0aGUgRFdQ IHZlcnNpb24gMiBkZWJ1Z2dpbmcgc2VjdGlvbnMgdGhhdCB3ZSBhcmUgaW50ZXJlc3RlZAogICAg aW4uICBUaGlzIGlzIHNwbGl0IGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBiZWNhdXNlIHdlIGRv bid0IGtub3cgaWYgd2UKLSAgIGhhdmUgdmVyc2lvbiAxIG9yIDIgdW50aWwgd2UgcGFyc2UgdGhl IGN1X2luZGV4L3R1X2luZGV4IHNlY3Rpb25zLiAgKi8KKyAgIGhhdmUgdmVyc2lvbiAxIG9yIDIg b3IgNSB1bnRpbCB3ZSBwYXJzZSB0aGUgY3VfaW5kZXgvdHVfaW5kZXggc2VjdGlvbnMuICAqLwog CiBzdGF0aWMgdm9pZAogZHdhcmYyX2xvY2F0ZV92Ml9kd3Bfc2VjdGlvbnMgKGJmZCAqYWJmZCwg YXNlY3Rpb24gKnNlY3RwLCB2b2lkICpkd3BfZmlsZV9wdHIpCkBAIC0xMjYxNiw2ICsxMjkzNiw2 MSBAQCBkd2FyZjJfbG9jYXRlX3YyX2R3cF9zZWN0aW9ucyAoYmZkICphYmZkLCBhc2VjdGlvbiAq c2VjdHAsIHZvaWQgKmR3cF9maWxlX3B0cikKICAgICB9CiB9CiAKKy8qIFRoaXMgZnVuY3Rpb24g aXMgbWFwcGVkIGFjcm9zcyB0aGUgc2VjdGlvbnMgYW5kIHJlbWVtYmVycyB0aGUgb2Zmc2V0IGFu ZAorICAgc2l6ZSBvZiBlYWNoIG9mIHRoZSBEV1AgdmVyc2lvbiA1IGRlYnVnZ2luZyBzZWN0aW9u cyB0aGF0IHdlIGFyZSBpbnRlcmVzdGVkCisgICBpbi4gIFRoaXMgaXMgc3BsaXQgaW50byBhIHNl cGFyYXRlIGZ1bmN0aW9uIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBpZiB3ZQorICAgaGF2ZSB2ZXJz aW9uIDEgb3IgMiBvciA1IHVudGlsIHdlIHBhcnNlIHRoZSBjdV9pbmRleC90dV9pbmRleCBzZWN0 aW9ucy4gICovCisKK3N0YXRpYyB2b2lkCitkd2FyZjJfbG9jYXRlX3Y1X2R3cF9zZWN0aW9ucyAo YmZkICphYmZkLCBhc2VjdGlvbiAqc2VjdHAsIHZvaWQgKmR3cF9maWxlX3B0cikKK3sKKyAgc3Ry dWN0IGR3cF9maWxlICpkd3BfZmlsZSA9IChzdHJ1Y3QgZHdwX2ZpbGUgKikgZHdwX2ZpbGVfcHRy OworICBjb25zdCBzdHJ1Y3QgZHdvcF9zZWN0aW9uX25hbWVzICpuYW1lcyA9ICZkd29wX3NlY3Rp b25fbmFtZXM7CisgIHVuc2lnbmVkIGludCBlbGZfc2VjdGlvbl9uciA9IGVsZl9zZWN0aW9uX2Rh dGEgKHNlY3RwKS0+dGhpc19pZHg7CisKKyAgLyogUmVjb3JkIHRoZSBFTEYgc2VjdGlvbiBudW1i ZXIgZm9yIGxhdGVyIGxvb2t1cDogdGhpcyBpcyB3aGF0IHRoZQorICAgICAuZGVidWdfY3VfaW5k ZXgsLmRlYnVnX3R1X2luZGV4IHRhYmxlcyB1c2UgaW4gRFdQIFYxLiAgKi8KKyAgZ2RiX2Fzc2Vy dCAoZWxmX3NlY3Rpb25fbnIgPCBkd3BfZmlsZS0+bnVtX3NlY3Rpb25zKTsKKyAgZHdwX2ZpbGUt PmVsZl9zZWN0aW9uc1tlbGZfc2VjdGlvbl9ucl0gPSBzZWN0cDsKKworICAvKiBMb29rIGZvciBz cGVjaWZpYyBzZWN0aW9ucyB0aGF0IHdlIG5lZWQuICAqLworICBpZiAoc2VjdGlvbl9pc19wIChz ZWN0cC0+bmFtZSwgJm5hbWVzLT5hYmJyZXZfZHdvKSkKKyAgICB7CisgICAgICBkd3BfZmlsZS0+ c2VjdGlvbnMuYWJicmV2LnMuc2VjdGlvbiA9IHNlY3RwOworICAgICAgZHdwX2ZpbGUtPnNlY3Rp b25zLmFiYnJldi5zaXplID0gYmZkX3NlY3Rpb25fc2l6ZSAoc2VjdHApOworICAgIH0KKyAgZWxz ZSBpZiAoc2VjdGlvbl9pc19wIChzZWN0cC0+bmFtZSwgJm5hbWVzLT5pbmZvX2R3bykpCisgICAg eworICAgICAgZHdwX2ZpbGUtPnNlY3Rpb25zLmluZm8ucy5zZWN0aW9uID0gc2VjdHA7CisgICAg ICBkd3BfZmlsZS0+c2VjdGlvbnMuaW5mby5zaXplID0gYmZkX3NlY3Rpb25fc2l6ZSAoc2VjdHAp OworICAgIH0KKyAgZWxzZSBpZiAoc2VjdGlvbl9pc19wIChzZWN0cC0+bmFtZSwgJm5hbWVzLT5s aW5lX2R3bykpCisgICB7CisgICAgIGR3cF9maWxlLT5zZWN0aW9ucy5saW5lLnMuc2VjdGlvbiA9 IHNlY3RwOworICAgICBkd3BfZmlsZS0+c2VjdGlvbnMubGluZS5zaXplID0gYmZkX3NlY3Rpb25f c2l6ZSAoc2VjdHApOworICAgIH0KKyAgZWxzZSBpZiAoc2VjdGlvbl9pc19wIChzZWN0cC0+bmFt ZSwgJm5hbWVzLT5sb2NsaXN0c19kd28pKQorICAgIHsKKyAgICAgIGR3cF9maWxlLT5zZWN0aW9u cy5sb2NsaXN0cy5zLnNlY3Rpb24gPSBzZWN0cDsKKyAgICAgIGR3cF9maWxlLT5zZWN0aW9ucy5s b2NsaXN0cy5zaXplID0gYmZkX3NlY3Rpb25fc2l6ZSAoc2VjdHApOworICAgIH0KKyAgZWxzZSBp ZiAoc2VjdGlvbl9pc19wIChzZWN0cC0+bmFtZSwgJm5hbWVzLT5tYWNyb19kd28pKQorICAgIHsK KyAgICAgIGR3cF9maWxlLT5zZWN0aW9ucy5tYWNyby5zLnNlY3Rpb24gPSBzZWN0cDsKKyAgICAg IGR3cF9maWxlLT5zZWN0aW9ucy5tYWNyby5zaXplID0gYmZkX3NlY3Rpb25fc2l6ZSAoc2VjdHAp OworICAgIH0KKyAgZWxzZSBpZiAoc2VjdGlvbl9pc19wIChzZWN0cC0+bmFtZSwgJm5hbWVzLT5y bmdsaXN0c19kd28pKQorICAgIHsKKyAgICAgIGR3cF9maWxlLT5zZWN0aW9ucy5ybmdsaXN0cy5z LnNlY3Rpb24gPSBzZWN0cDsKKyAgICAgIGR3cF9maWxlLT5zZWN0aW9ucy5ybmdsaXN0cy5zaXpl ID0gYmZkX3NlY3Rpb25fc2l6ZSAoc2VjdHApOworICAgIH0KKyAgZWxzZSBpZiAoc2VjdGlvbl9p c19wIChzZWN0cC0+bmFtZSwgJm5hbWVzLT5zdHJfb2Zmc2V0c19kd28pKQorICAgIHsKKyAgICAg IGR3cF9maWxlLT5zZWN0aW9ucy5zdHJfb2Zmc2V0cy5zLnNlY3Rpb24gPSBzZWN0cDsKKyAgICAg IGR3cF9maWxlLT5zZWN0aW9ucy5zdHJfb2Zmc2V0cy5zaXplID0gYmZkX3NlY3Rpb25fc2l6ZSAo c2VjdHApOworICAgIH0KK30KKwogLyogSGFzaCBmdW5jdGlvbiBmb3IgZHdwX2ZpbGUgbG9hZGVk IENVcy9UVXMuICAqLwogCiBzdGF0aWMgaGFzaHZhbF90CkBAIC0xMjc3MCw2ICsxMzE0NSwxMSBA QCBvcGVuX2FuZF9pbml0X2R3cF9maWxlIChkd2FyZjJfcGVyX29iamZpbGUgKnBlcl9vYmpmaWxl KQogICAgIGJmZF9tYXBfb3Zlcl9zZWN0aW9ucyAoZHdwX2ZpbGUtPmRiZmQuZ2V0ICgpLAogCQkJ ICAgZHdhcmYyX2xvY2F0ZV92Ml9kd3Bfc2VjdGlvbnMsCiAJCQkgICBkd3BfZmlsZS5nZXQgKCkp OworICBlbHNlIGlmIChkd3BfZmlsZS0+dmVyc2lvbiA9PSA1KQorICAgIGJmZF9tYXBfb3Zlcl9z ZWN0aW9ucyAoZHdwX2ZpbGUtPmRiZmQuZ2V0ICgpLAorCQkJICAgZHdhcmYyX2xvY2F0ZV92NV9k d3Bfc2VjdGlvbnMsCisJCQkgICBkd3BfZmlsZS5nZXQgKCkpOworCiAKICAgZHdwX2ZpbGUtPmxv YWRlZF9jdXMgPSBhbGxvY2F0ZV9kd3BfbG9hZGVkX2N1dHVzX3RhYmxlICgpOwogICBkd3BfZmls ZS0+bG9hZGVkX3R1cyA9IGFsbG9jYXRlX2R3cF9sb2FkZWRfY3V0dXNfdGFibGUgKCk7Ci0tIAoy LjI4LjAucmMwLjE0Mi5nM2M3NTUxODBjZS1nb29nCgo= --0000000000008d29aa05ab9ae90f--