From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 84142 invoked by alias); 17 Jan 2018 11:43:30 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 84114 invoked by uid 89); 17 Jan 2018 11:43:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=sk:avx512b, xi, Warn X-HELO: mail-oi0-f67.google.com Received: from mail-oi0-f67.google.com (HELO mail-oi0-f67.google.com) (209.85.218.67) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 17 Jan 2018 11:43:25 +0000 Received: by mail-oi0-f67.google.com with SMTP id t16so12868543oif.10 for ; Wed, 17 Jan 2018 03:43:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=msovJJ4oDTa9+XeZaHLslwihzPEsL3dNe7vgAJ1cSNA=; b=bJKqvIsTGZmTv85SwT/IMo9NRT+55uJ+UC8IzdjkSv/IM4ZnENjdD94h8ZvHe+9207 pwbODQ8pV4LSH3/BU22GoBKfOZFtylNrLxm2lxyzKH9Go+LR37BJYa3uYOnLercvKfEC SUwgr1XDGxsp41ta3kCQ2tqwjzT+/+SN1wNr5jz0bFv1x4al5jpbygb2zEpq9aIQU0Q3 sKHADRca0yO+N+/jk4OU59mIGY2+EtrZzDL6Gi3EDFJEo3pAsCDOw4IeCf20ecswwe81 5DONom7PzcpwQSwkz3G+VGUL4PzagXXmJRLaDHBCRtxm9UwiF6Z5M0yNz1sLhkjE4dKM Papw== X-Gm-Message-State: AKwxytf/gmgbzfH9wf4NrfT/c9yU6bG5yL6Y5+QSC+iMBITQKOKaA+xK El7EaEp3b1KnEftK2aklc17wiA2cVwmVDY+Vamc= X-Google-Smtp-Source: ACJfBotgakwH+/SRWHftbjFfp6uFps0KG1PNMurE5WuRzoMj+f3XIGwCSmQT8MZo/1MBwab3437XZ6UBArDg/0AZF34= X-Received: by 10.202.253.7 with SMTP id b7mr849217oii.250.1516189403136; Wed, 17 Jan 2018 03:43:23 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.151.42 with HTTP; Wed, 17 Jan 2018 03:43:22 -0800 (PST) In-Reply-To: References: <20180114142954.GA24647@gmail.com> <20180115094206.GU2063@tucnak> From: "H.J. Lu" Date: Wed, 17 Jan 2018 11:44:00 -0000 Message-ID: Subject: Re: [PATCH] C/C++: Add -Waddress-of-packed-member To: Jakub Jelinek Cc: GCC Patches Content-Type: multipart/mixed; boundary="001a113cf502c97a060562f75a6c" X-IsSubscribed: yes X-SW-Source: 2018-01/txt/msg01536.txt.bz2 --001a113cf502c97a060562f75a6c Content-Type: text/plain; charset="UTF-8" Content-length: 1683 On Mon, Jan 15, 2018 at 7:02 AM, H.J. Lu wrote: > On Mon, Jan 15, 2018 at 1:42 AM, Jakub Jelinek wrote: >> On Sun, Jan 14, 2018 at 06:29:54AM -0800, H.J. Lu wrote: >>> + if (TREE_CODE (field) == FIELD_DECL && DECL_PACKED (field)) >>> + { >>> + tree field_type = TREE_TYPE (field); >>> + unsigned int type_align = TYPE_ALIGN (field_type); >>> + tree context = DECL_CONTEXT (field); >>> + unsigned int record_align = TYPE_ALIGN (context); >>> + if ((record_align % type_align) != 0) >>> + return context; >>> + type_align /= BITS_PER_UNIT; >>> + unsigned HOST_WIDE_INT field_off >>> + = (tree_to_uhwi (DECL_FIELD_OFFSET (field)) >>> + + (tree_to_uhwi (DECL_FIELD_BIT_OFFSET (field)) >>> + / BITS_PER_UNIT)); >> >> This has the same bug I've just created PR83844 for, you can't assume >> DECL_FIELD_OFFSET is INTEGER_CST that fits into UHWI, and also we have >> byte_position wrapper that should be used to compute the offset from >> DECL_FIELD_*OFFSET. > > Here is the updated patch to use byte_position wrapper. OK for trunk? > Here is the updated patch not to warn: struct pair_t { char c; __int128_t i; } __attribute__((packed)); typedef struct unaligned_int128_t_ { __int128_t value; } __attribute__((packed)) unaligned_int128_t; struct pair_t p = {0, 1}; unaligned_int128_t *addr = (unaligned_int128_t *)(&p.i); int main() { addr->value = ~(__int128_t)0; return (p.i != 1) ? 0 : 1; } by properly checking the expected alignment against the field alignment. -- H.J. --001a113cf502c97a060562f75a6c Content-Type: text/x-patch; charset="US-ASCII"; name="0001-C-C-Add-Waddress-of-packed-member.patch" Content-Disposition: attachment; filename="0001-C-C-Add-Waddress-of-packed-member.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jcizy8bu1 Content-length: 44148 RnJvbSA1NGI2OGYxMWMxODk3MWQxMzcxZDViYjViZGU3YjBjMWQzZTZlZTdi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTIgSmFuIDIwMTggMjE6 MTI6MDUgLTA4MDAKU3ViamVjdDogW1BBVENIXSBDL0MrKzogQWRkIC1XYWRk cmVzcy1vZi1wYWNrZWQtbWVtYmVyCgpXaGVuIGFkZHJlc3Mgb2YgcGFja2Vk IG1lbWJlciBvZiBzdHJ1Y3Qgb3IgdW5pb24gaXMgdGFrZW4sIGl0IG1heSBy ZXN1bHQKaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUuICBUaGlzIHBh dGNoIGFkZHMgLVdhZGRyZXNzLW9mLXBhY2tlZC1tZW1iZXIKdG8gd2FybiBp dDoKCiQgY2F0IHguaQpzdHJ1Y3QgcGFpcl90CnsKICBjaGFyIGM7CiAgaW50 IGk7Cn0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwoKZXh0ZXJuIHN0cnVj dCBwYWlyX3QgcDsKaW50ICphZGRyID0gJnAuaTsKJCBnY2MgLU8yIC1TIHgu aQp4Lmk6ODoxMzogd2FybmluZzogaW5pdGlhbGl6YXRpb24gb2YgJ2ludCAq JyBmcm9tIGFkZHJlc3Mgb2YgcGFja2VkIG1lbWJlciBvZiAnc3RydWN0IHBh aXJfdCcgbWF5IHJlc3VsdCBpbiBhbiB1bmFsaWduZWQgcG9pbnRlciB2YWx1 ZSBbLVdhZGRyZXNzLW9mLXBhY2tlZC1tZW1iZXJdCiBpbnQgKmFkZHIgPSAm cC5pOwogICAgICAgICAgICAgXgokCgpUaGlzIHdhcm5pbmcgaXMgZW5hYmxl ZCBieSBkZWZhdWx0LgoKZ2NjL2MvCgoJUFIgYy81MTYyOAoJKiBkb2MvaW52 b2tlLnRleGk6IERvY3VtZW50IC1Xbm8tYWRkcmVzcy1vZi1wYWNrZWQtbWVt YmVyLgoKZ2NjL2MtZmFtaWx5LwoKCVBSIGMvNTE2MjgKCSogYy1jb21tb24u aCAod2Fybl9mb3JfYWRkcmVzc19vZl9wYWNrZWRfbWVtYmVyKTogTmV3LgoJ KiBjLXdhcm4uYyAod2Fybl9mb3JfYWRkcmVzc19vZl9wYWNrZWRfbWVtYmVy KTogTmV3IGZ1bmN0aW9uLgoJKiBjLm9wdDogQWRkIC1Xbm8tYWRkcmVzcy1v Zi1wYWNrZWQtbWVtYmVyLgoKZ2NjL2MvCgoJUFIgYy81MTYyOAoJKiBjLXR5 cGVjay5jIChjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogQ2FsbAoJd2Fybl9m b3JfYWRkcmVzc19vZl9wYWNrZWRfbWVtYmVyLiAgSXNzdWUgYW4gd2Fybmlu ZyBpZiBhZGRyZXNzCglvZiBwYWNrZWQgbWVtYmVyIGlzIHRha2VuLgoKZ2Nj L2NwLwoKCVBSIGMvNTE2MjgKCSogY2FsbC5jIChjb252ZXJ0X2Zvcl9hcmdf cGFzc2luZyk6IENhbGwKCXdhcm5fZm9yX2FkZHJlc3Nfb2ZfcGFja2VkX21l bWJlci4gIElzc3VlIGFuIHdhcm5pbmcgaWYgYWRkcmVzcwoJb2YgcGFja2Vk IG1lbWJlciBpcyB0YWtlbi4KCSogdHlwZWNrLmMgKGNvbnZlcnRfZm9yX2Fz c2lnbm1lbnQpOiBMaWtld2lzZS4KCmdjYy90ZXN0c3VpdGUvCgoJUFIgYy81 MTYyOAoJKiBjLWMrKy1jb21tb24vcHI1MTYyOC0xLmM6IE5ldyB0ZXN0cy4K CSogYy1jKystY29tbW9uL3ByNTE2MjgtMTAuYzogTGlrZXdpc2UuCgkqIGMt YysrLWNvbW1vbi9wcjUxNjI4LTIuYzogTGlrZXdpc2UuCgkqIGMtYysrLWNv bW1vbi9wcjUxNjI4LTMuYzogTGlrZXdpc2UuCgkqIGMtYysrLWNvbW1vbi9w cjUxNjI4LTQuYzogTGlrZXdpc2UuCgkqIGMtYysrLWNvbW1vbi9wcjUxNjI4 LTUuYzogTGlrZXdpc2UuCgkqIGMtYysrLWNvbW1vbi9wcjUxNjI4LTYuYzog TGlrZXdpc2UuCgkqIGMtYysrLWNvbW1vbi9wcjUxNjI4LTcuYzogTGlrZXdp c2UuCgkqIGMtYysrLWNvbW1vbi9wcjUxNjI4LTguYzogTGlrZXdpc2UuCgkq IGMtYysrLWNvbW1vbi9wcjUxNjI4LTkuYzogTGlrZXdpc2UuCgkqIGdjYy5k Zy9wcjUxNjI4LTEwLmM6IExpa2V3aXNlLgoJKiBnY2MuZGcvcHI1MTYyOC0x MS5jOiBMaWtld2lzZS4KCSogYy1jKystY29tbW9uL3Vic2FuL2FsaWduLTEw LmM6IEFkZCAtV25vLWFkZHJlc3Mtb2YtcGFja2VkLW1lbWJlci4KCSogYy1j KystY29tbW9uL3Vic2FuL2FsaWduLTIuYzogTGlrZXdpc2UuCgkqIGMtYysr LWNvbW1vbi91YnNhbi9hbGlnbi00LmM6IExpa2V3aXNlLgoJKiBjLWMrKy1j b21tb24vdWJzYW4vYWxpZ24tNi5jOiBMaWtld2lzZS4KCSogYy1jKystY29t bW9uL3Vic2FuL2FsaWduLTcuYzogTGlrZXdpc2UuCgkqIGMtYysrLWNvbW1v bi91YnNhbi9hbGlnbi04LmM6IExpa2V3aXNlLgoJKiBnKysuZGcvdWJzYW4v YWxpZ24tMi5DOiBMaWtld2lzZS4KCSogZ2NjLnRhcmdldC9pMzg2L2F2eDUx MmJ3LXZtb3ZkcXUxNi0yLmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2kz ODYvYXZ4NTEyZi12bW92ZHF1MzItMi5jOiBMaWtld2lzZS4KCSogZ2NjLnRh cmdldC9pMzg2L2F2eDUxMmYtdm1vdmRxdTY0LTIuYzogTGlrZXdpc2UuCgkq IGdjYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bW92ZHF1MTYtMi5jOiBMaWtl d2lzZS4KCSogZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZtb3ZkcXUzMi0y LmM6IExpa2V3aXNlLgoJKiBnY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtdm1v dmRxdTY0LTIuYzogTGlrZXdpc2UuCi0tLQogZ2NjL2MtZmFtaWx5L2MtY29t bW9uLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBnY2Mv Yy1mYW1pbHkvYy13YXJuLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysKIGdjYy9jLWZhbWlseS9j Lm9wdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysK IGdjYy9jL2MtdHlwZWNrLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgNDAgKysrKysrKysrKysrKysrLQogZ2NjL2NwL2NhbGwuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysr CiBnY2MvY3AvdHlwZWNrLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDQxICsrKysrKysrKysrKysrKysKIGdjYy9kb2MvaW52b2tl LnRleGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysr Ky0KIGdjYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2MjgtMS5jICAg ICAgICAgICAgIHwgMjkgKysrKysrKysrKysKIGdjYy90ZXN0c3VpdGUvYy1j KystY29tbW9uL3ByNTE2MjgtMTAuYyAgICAgICAgICAgIHwgMjQgKysrKysr KysrKwogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYyOC0yLmMg ICAgICAgICAgICAgfCAyOSArKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9j LWMrKy1jb21tb24vcHI1MTYyOC0zLmMgICAgICAgICAgICAgfCAzNSArKysr KysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYy OC00LmMgICAgICAgICAgICAgfCAzNSArKysrKysrKysrKysrKwogZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYyOC01LmMgICAgICAgICAgICAg fCAzNSArKysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21t b24vcHI1MTYyOC02LmMgICAgICAgICAgICAgfCAzNSArKysrKysrKysrKysr KwogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYyOC03LmMgICAg ICAgICAgICAgfCAyOSArKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9jLWMr Ky1jb21tb24vcHI1MTYyOC04LmMgICAgICAgICAgICAgfCAzNiArKysrKysr KysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYyOC05 LmMgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKysrKwogZ2NjL3Rlc3Rz dWl0ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24tMTAuYyAgICAgICAgfCAg MiArLQogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24t Mi5jICAgICAgICAgfCAgMiArLQogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21t b24vdWJzYW4vYWxpZ24tNC5jICAgICAgICAgfCAgMiArLQogZ2NjL3Rlc3Rz dWl0ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24tNi5jICAgICAgICAgfCAg MiArLQogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24t Ny5jICAgICAgICAgfCAgMiArLQogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21t b24vdWJzYW4vYWxpZ24tOC5jICAgICAgICAgfCAgMiArLQogZ2NjL3Rlc3Rz dWl0ZS9nKysuZGcvdWJzYW4vYWxpZ24tMi5DICAgICAgICAgICAgICAgfCAg MiArLQogZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI1MTYyOC0xMC5jICAgICAg ICAgICAgICAgICAgfCAyMyArKysrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnL3ByNTE2MjgtMTEuYyAgICAgICAgICAgICAgICAgIHwgMjYgKysrKysr KysrKwogLi4uL2djYy50YXJnZXQvaTM4Ni9hdng1MTJidy12bW92ZHF1MTYt Mi5jICAgICAgICAgfCAgMiArLQogLi4uL2djYy50YXJnZXQvaTM4Ni9hdng1 MTJmLXZtb3ZkcXUzMi0yLmMgICAgICAgICAgfCAgMiArLQogLi4uL2djYy50 YXJnZXQvaTM4Ni9hdng1MTJmLXZtb3ZkcXU2NC0yLmMgICAgICAgICAgfCAg MiArLQogLi4uL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bW92ZHF1MTYt Mi5jICAgICAgICAgfCAgMiArLQogLi4uL2djYy50YXJnZXQvaTM4Ni9hdng1 MTJ2bC12bW92ZHF1MzItMi5jICAgICAgICAgfCAgMiArLQogLi4uL2djYy50 YXJnZXQvaTM4Ni9hdng1MTJ2bC12bW92ZHF1NjQtMi5jICAgICAgICAgfCAg MiArLQogMzIgZmlsZXMgY2hhbmdlZCwgNTQzIGluc2VydGlvbnMoKyksIDE2 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvYy1jKystY29tbW9uL3ByNTE2MjgtMS5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYyOC0xMC5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24v cHI1MTYyOC0yLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2MtYysrLWNvbW1vbi9wcjUxNjI4LTMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2MjgtNC5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1 MTYyOC01LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2Mt YysrLWNvbW1vbi9wcjUxNjI4LTYuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2MjgtNy5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYy OC04LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2MtYysr LWNvbW1vbi9wcjUxNjI4LTkuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL3ByNTE2MjgtMTAuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNTE2MjgtMTEuYwoKZGlmZiAt LWdpdCBhL2djYy9jLWZhbWlseS9jLWNvbW1vbi5oIGIvZ2NjL2MtZmFtaWx5 L2MtY29tbW9uLmgKaW5kZXggZDA5MDg4MWU5NWQuLmVmMzFlNGQwYWEyIDEw MDY0NAotLS0gYS9nY2MvYy1mYW1pbHkvYy1jb21tb24uaAorKysgYi9nY2Mv Yy1mYW1pbHkvYy1jb21tb24uaApAQCAtMTM4NCw2ICsxMzg0LDcgQEAgZXh0 ZXJuIHZvaWQgY19kb19zd2l0Y2hfd2FybmluZ3MgKHNwbGF5X3RyZWUsIGxv Y2F0aW9uX3QsIHRyZWUsIHRyZWUsIGJvb2wsCiAJCQkJICBib29sKTsKIGV4 dGVybiB2b2lkIHdhcm5fZm9yX29taXR0ZWRfY29uZG9wIChsb2NhdGlvbl90 LCB0cmVlKTsKIGV4dGVybiB2b2lkIHdhcm5fZm9yX3Jlc3RyaWN0ICh1bnNp Z25lZCwgdHJlZSAqLCB1bnNpZ25lZCk7CitleHRlcm4gdHJlZSB3YXJuX2Zv cl9hZGRyZXNzX29mX3BhY2tlZF9tZW1iZXIgKHRyZWUgdHlwZSwgdHJlZSBy aHMpOwogCiAvKiBQbGFjZXMgd2hlcmUgYW4gbHZhbHVlLCBvciBtb2RpZmlh YmxlIGx2YWx1ZSwgbWF5IGJlIHJlcXVpcmVkLgogICAgVXNlZCB0byBzZWxl Y3QgZGlhZ25vc3RpYyBtZXNzYWdlcyBpbiBsdmFsdWVfZXJyb3IgYW5kCmRp ZmYgLS1naXQgYS9nY2MvYy1mYW1pbHkvYy13YXJuLmMgYi9nY2MvYy1mYW1p bHkvYy13YXJuLmMKaW5kZXggN2Q4N2M0NTVlYzAuLmM3NTVkZjEzY2ExIDEw MDY0NAotLS0gYS9nY2MvYy1mYW1pbHkvYy13YXJuLmMKKysrIGIvZ2NjL2Mt ZmFtaWx5L2Mtd2Fybi5jCkBAIC0yNTc2LDMgKzI1NzYsNTkgQEAgd2Fybl9m b3JfbXVsdGlzdGF0ZW1lbnRfbWFjcm9zIChsb2NhdGlvbl90IGJvZHlfbG9j LCBsb2NhdGlvbl90IG5leHRfbG9jLAogICAgIGluZm9ybSAoZ3VhcmRfbG9j LCAic29tZSBwYXJ0cyBvZiBtYWNybyBleHBhbnNpb24gYXJlIG5vdCBndWFy ZGVkIGJ5ICIKIAkgICAgInRoaXMgJXFzIGNsYXVzZSIsIGd1YXJkX3RpbmZv X3RvX3N0cmluZyAoa2V5d29yZCkpOwogfQorCisvKiBSZXR1cm4gc3RydWN0 IG9yIHVuaW9uIHR5cGUgaWYgdGhlIHJpZ2h0IGhhbmQgdHlwZSwgUkhTLCBp cyB0aGUKKyAgIGFkZHJlc3Mgb2YgcGFja2VkIG1lbWJlciBvZiBzdHJ1Y3Qg b3IgdW5pb24gd2hlbiBhc3NpZ25pbmcgdG8gVFlQRS4KKyAgIE90aGVyd2lz ZSwgcmV0dXJuIE5VTExfVFJFRS4gICovCisKK3RyZWUKK3dhcm5fZm9yX2Fk ZHJlc3Nfb2ZfcGFja2VkX21lbWJlciAodHJlZSB0eXBlLCB0cmVlIHJocykK K3sKKyAgaWYgKCF3YXJuX2FkZHJlc3Nfb2ZfcGFja2VkX21lbWJlciB8fCAh UE9JTlRFUl9UWVBFX1AgKHR5cGUpKQorICAgIHJldHVybiBOVUxMX1RSRUU7 CisKKyAgaWYgKFRSRUVfQ09ERSAocmhzKSA9PSBOT1BfRVhQUikKKyAgICBy aHMgPSBUUkVFX09QRVJBTkQgKHJocywgMCk7CisKKyAgdHJlZSBiYXNlOwor ICB0cmVlIGZpZWxkID0gTlVMTF9UUkVFOworICB0cmVlIHJoc190eXBlOwor CisgIHN3aXRjaCAoVFJFRV9DT0RFIChyaHMpKQorICAgIHsKKyAgICBjYXNl IEFERFJfRVhQUjoKKyAgICAgIGJhc2UgPSBUUkVFX09QRVJBTkQgKHJocywg MCk7CisgICAgICB3aGlsZSAoVFJFRV9DT0RFIChiYXNlKSA9PSBBUlJBWV9S RUYpCisJYmFzZSA9IFRSRUVfT1BFUkFORCAoYmFzZSwgMCk7CisgICAgICBp ZiAoVFJFRV9DT0RFIChiYXNlKSAhPSBDT01QT05FTlRfUkVGKQorCXJldHVy biBOVUxMX1RSRUU7CisgICAgICBmaWVsZCA9IFRSRUVfT1BFUkFORCAoYmFz ZSwgMSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIENPTVBPTkVOVF9SRUY6 CisgICAgICByaHNfdHlwZSA9IFRSRUVfVFlQRSAocmhzKTsKKyAgICAgIGlm IChUUkVFX0NPREUgKHJoc190eXBlKSAhPSBBUlJBWV9UWVBFCisJICB8fCAo VFlQRV9NQUlOX1ZBUklBTlQgKFRSRUVfVFlQRSAodHlwZSkpCisJICAgICAg IT0gVFlQRV9NQUlOX1ZBUklBTlQgKFRSRUVfVFlQRSAocmhzX3R5cGUpKSkp CisJcmV0dXJuIE5VTExfVFJFRTsKKyAgICAgIGZpZWxkID0gVFJFRV9PUEVS QU5EIChyaHMsIDEpOworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg ICAgIHJldHVybiBOVUxMX1RSRUU7CisgICAgfQorCisgIGlmIChUUkVFX0NP REUgKGZpZWxkKSA9PSBGSUVMRF9ERUNMICYmIERFQ0xfUEFDS0VEIChmaWVs ZCkpCisgICAgeworICAgICAgLyogQ2hlY2sgdGhlIGV4cGVjdGVkIGFsaWdu bWVudCBhZ2FpbnN0IHRoZSBmaWVsZCBhbGlnbm1lbnQuICAqLworICAgICAg dW5zaWduZWQgaW50IHR5cGVfYWxpZ24gPSBUWVBFX0FMSUdOIChUUkVFX1RZ UEUgKHR5cGUpKTsKKyAgICAgIHRyZWUgY29udGV4dCA9IERFQ0xfQ09OVEVY VCAoZmllbGQpOworICAgICAgdW5zaWduZWQgaW50IHJlY29yZF9hbGlnbiA9 IFRZUEVfQUxJR04gKGNvbnRleHQpOworICAgICAgaWYgKChyZWNvcmRfYWxp Z24gJSB0eXBlX2FsaWduKSAhPSAwKQorCXJldHVybiBjb250ZXh0OworICAg ICAgdHJlZSBmaWVsZF9vZmYgPSBieXRlX3Bvc2l0aW9uIChmaWVsZCk7Cisg ICAgICBpZiAoIW11bHRpcGxlX29mX3AgKFRSRUVfVFlQRSAoZmllbGRfb2Zm KSwgZmllbGRfb2ZmLAorCQkJICBzaXplX2ludCAodHlwZV9hbGlnbiAvIEJJ VFNfUEVSX1VOSVQpKSkKKwlyZXR1cm4gY29udGV4dDsKKyAgICB9CisKKyAg cmV0dXJuIE5VTExfVFJFRTsKK30KZGlmZiAtLWdpdCBhL2djYy9jLWZhbWls eS9jLm9wdCBiL2djYy9jLWZhbWlseS9jLm9wdAppbmRleCAxNmE1MTVhZmQ1 NS4uNjg2ZDUyYTIwNTUgMTAwNjQ0Ci0tLSBhL2djYy9jLWZhbWlseS9jLm9w dAorKysgYi9nY2MvYy1mYW1pbHkvYy5vcHQKQEAgLTU5OSw2ICs1OTksMTAg QEAgV2luY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzCiBDIE9iakMgVmFyKHdh cm5faW5jb21wYXRpYmxlX3BvaW50ZXJfdHlwZXMpIEluaXQoMSkgV2Fybmlu ZwogV2FybiB3aGVuIHRoZXJlIGlzIGEgY29udmVyc2lvbiBiZXR3ZWVuIHBv aW50ZXJzIHRoYXQgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMuCiAKK1dhZGRy ZXNzLW9mLXBhY2tlZC1tZW1iZXIKK0MgT2JqQyBDKysgT2JqQysrIFZhcih3 YXJuX2FkZHJlc3Nfb2ZfcGFja2VkX21lbWJlcikgSW5pdCgxKSBXYXJuaW5n CitXYXJuIHdoZW4gdGhlIGFkZHJlc3Mgb2YgcGFja2VkIG1lbWJlciBvZiBz dHJ1Y3Qgb3IgdW5pb24gaXMgdGFrZW4uCisKIFdpbml0LXNlbGYKIEMgT2Jq QyBDKysgT2JqQysrIFZhcih3YXJuX2luaXRfc2VsZikgV2FybmluZyBMYW5n RW5hYmxlZEJ5KEMrKyBPYmpDKyssV2FsbCkKIFdhcm4gYWJvdXQgdmFyaWFi bGVzIHdoaWNoIGFyZSBpbml0aWFsaXplZCB0byB0aGVtc2VsdmVzLgpkaWZm IC0tZ2l0IGEvZ2NjL2MvYy10eXBlY2suYyBiL2djYy9jL2MtdHlwZWNrLmMK aW5kZXggZTIyYmM3NDBiY2EuLjhlMzFkNmNjNWZkIDEwMDY0NAotLS0gYS9n Y2MvYy9jLXR5cGVjay5jCisrKyBiL2djYy9jL2MtdHlwZWNrLmMKQEAgLTY0 OTUsNyArNjQ5NSw0NSBAQCBjb252ZXJ0X2Zvcl9hc3NpZ25tZW50IChsb2Nh dGlvbl90IGxvY2F0aW9uLCBsb2NhdGlvbl90IGV4cHJfbG9jLCB0cmVlIHR5 cGUsCiAgICAgfQogCiAgIGlmIChUWVBFX01BSU5fVkFSSUFOVCAodHlwZSkg PT0gVFlQRV9NQUlOX1ZBUklBTlQgKHJoc3R5cGUpKQotICAgIHJldHVybiBy aHM7CisgICAgeworICAgICAgdHJlZSBjb250ZXh0ID0gd2Fybl9mb3JfYWRk cmVzc19vZl9wYWNrZWRfbWVtYmVyICh0eXBlLCBvcmlnX3Jocyk7CisgICAg ICBpZiAoY29udGV4dCkKKwlzd2l0Y2ggKGVycnR5cGUpCisJICB7CisJICBj YXNlIGljX2FyZ3Bhc3M6CisJICAgIHdhcm5pbmdfYXQgKGV4cHJfbG9jLCBP UFRfV2FkZHJlc3Nfb2ZfcGFja2VkX21lbWJlciwKKwkJCSJwYXNzaW5nIGFy Z3VtZW50ICVkICVxVCBvZiAlcUUgZnJvbSBhZGRyZXNzICIKKwkJCSJvZiBw YWNrZWQgbWVtYmVyIG9mICVxVCBtYXkgcmVzdWx0IGluIGFuICIKKwkJCSJ1 bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIsCisJCQlwYXJtbnVtLCB0eXBlLCBy bmFtZSwgY29udGV4dCk7CisJICAgIGJyZWFrOworCSAgY2FzZSBpY19hc3Np Z246CisJICAgIHdhcm5pbmdfYXQgKGxvY2F0aW9uLCBPUFRfV2FkZHJlc3Nf b2ZfcGFja2VkX21lbWJlciwKKwkJCSJhc3NpZ25tZW50IHRvICVxVCBmcm9t IGFkZHJlc3Mgb2YgcGFja2VkICIKKwkJCSJtZW1iZXIgb2YgJXFUIG1heSBy ZXN1bHQgaW4gYW4gdW5hbGlnbmVkICIKKwkJCSJwb2ludGVyIHZhbHVlIiwK KwkJCXR5cGUsIGNvbnRleHQpOworCSAgICBicmVhazsKKwkgIGNhc2UgaWNf aW5pdDoKKwkgICAgd2FybmluZ19hdCAobG9jYXRpb24sIE9QVF9XYWRkcmVz c19vZl9wYWNrZWRfbWVtYmVyLAorCQkJImluaXRpYWxpemF0aW9uIG9mICVx VCBmcm9tIGFkZHJlc3Mgb2YgcGFja2VkICIKKwkJCSJtZW1iZXIgb2YgJXFU IG1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkICIKKwkJCSJwb2ludGVyIHZh bHVlIiwKKwkJCXR5cGUsIGNvbnRleHQpOworCSAgICBicmVhazsKKwkgIGNh c2UgaWNfcmV0dXJuOgorCSAgICB3YXJuaW5nX2F0IChsb2NhdGlvbiwgT1BU X1dhZGRyZXNzX29mX3BhY2tlZF9tZW1iZXIsCisJCQkicmV0dXJuaW5nIGFk ZHJlc3Mgb2YgcGFja2VkIG1lbWJlciBvZiAlcVQgIgorCQkJImZyb20gYSBm dW5jdGlvbiB3aXRoIHJldHVybiB0eXBlICVxVCBtYXkgIgorCQkJInJlc3Vs dCBpbiBhbiB1bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIsCisJCQljb250ZXh0 LCB0eXBlKTsKKwkgICAgYnJlYWs7CisJICBkZWZhdWx0OgorCSAgICBnY2Nf dW5yZWFjaGFibGUgKCk7CisJICB9CisKKyAgICAgIHJldHVybiByaHM7Cisg ICAgfQogCiAgIGlmIChjb2RlciA9PSBWT0lEX1RZUEUpCiAgICAgewpkaWZm IC0tZ2l0IGEvZ2NjL2NwL2NhbGwuYyBiL2djYy9jcC9jYWxsLmMKaW5kZXgg ZjU1NDI4NTBjZWEuLjg2NzJhYjBkNThjIDEwMDY0NAotLS0gYS9nY2MvY3Av Y2FsbC5jCisrKyBiL2djYy9jcC9jYWxsLmMKQEAgLTc0MTYsNiArNzQxNiwx NCBAQCBjb252ZXJ0X2Zvcl9hcmdfcGFzc2luZyAodHJlZSB0eXBlLCB0cmVl IHZhbCwgdHN1YnN0X2ZsYWdzX3QgY29tcGxhaW4pCiAJfQogICAgICAgbWF5 YmVfd2Fybl9wYXJtX2FiaSAodHlwZSwgRVhQUl9MT0NfT1JfTE9DICh2YWws IGlucHV0X2xvY2F0aW9uKSk7CiAgICAgfQorCisgIHRyZWUgY29udGV4dCA9 IHdhcm5fZm9yX2FkZHJlc3Nfb2ZfcGFja2VkX21lbWJlciAodHlwZSwgdmFs KTsKKyAgaWYgKGNvbnRleHQpCisgICAgd2FybmluZyAoT1BUX1dhZGRyZXNz X29mX3BhY2tlZF9tZW1iZXIsCisJICAgICAicGFzc2luZyBhcmd1bWVudCBv ZiB0eXBlICVxVCBmcm9tIGFkZHJlc3Mgb2YgbWVtYmVyIG9mICIKKwkgICAg ICJwYWNrZWQgJXFUIG1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50 ZXIgdmFsdWUiLAorCSAgICAgdHlwZSwgY29udGV4dCk7CisKICAgcmV0dXJu IHZhbDsKIH0KIApkaWZmIC0tZ2l0IGEvZ2NjL2NwL3R5cGVjay5jIGIvZ2Nj L2NwL3R5cGVjay5jCmluZGV4IGQwYWRiNzk4Mjc4Li43OGVkMGQ2MWY4YiAx MDA2NDQKLS0tIGEvZ2NjL2NwL3R5cGVjay5jCisrKyBiL2djYy9jcC90eXBl Y2suYwpAQCAtODg4Nyw2ICs4ODg3LDQ3IEBAIGNvbnZlcnRfZm9yX2Fzc2ln bm1lbnQgKHRyZWUgdHlwZSwgdHJlZSByaHMsCiAgICAgICBUUkVFX05PX1dB Uk5JTkcgKHJocykgPSAxOwogICAgIH0KIAorICB0cmVlIGNvbnRleHQgPSB3 YXJuX2Zvcl9hZGRyZXNzX29mX3BhY2tlZF9tZW1iZXIgKHR5cGUsIHJocyk7 CisgIGlmIChjb250ZXh0KQorICAgIHN3aXRjaCAoZXJydHlwZSkKKyAgICAg IHsKKyAgICAgIGNhc2UgSUNSX0FSR1BBU1M6CisgICAgICBjYXNlIElDUl9E RUZBVUxUX0FSR1VNRU5UOgorCXdhcm5pbmcgKE9QVF9XYWRkcmVzc19vZl9w YWNrZWRfbWVtYmVyLAorCQkgInBhc3NpbmcgYXJndW1lbnQgJWQgJXFUIG9m ICVxRCBmcm9tIGFkZHJlc3Mgb2YgIgorCQkgInBhY2tlZCBtZW1iZXIgb2Yg JXFUIG1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkICIKKwkJICJwb2ludGVy IHZhbHVlIiwKKwkJIHBhcm1udW0sIHR5cGUsIGZuZGVjbCwgY29udGV4dCk7 CisJYnJlYWs7CisgICAgICBjYXNlIElDUl9DT05WRVJUSU5HOgorCXdhcm5p bmcgKE9QVF9XYWRkcmVzc19vZl9wYWNrZWRfbWVtYmVyLAorCQkgImNvbnZl cnRpbmcgdG8gJXFUIGZyb20gYWRkcmVzcyBvZiBwYWNrZWQgbWVtYmVyIG9m ICIKKwkJICIlcVQgbWF5IHJlc3VsdCBpbiBhbiB1bmFsaWduZWQgcG9pbnRl ciB2YWx1ZSIsCisJCSB0eXBlLCBjb250ZXh0KTsKKwlicmVhazsKKyAgICAg IGNhc2UgSUNSX0FTU0lHTjoKKwl3YXJuaW5nIChPUFRfV2FkZHJlc3Nfb2Zf cGFja2VkX21lbWJlciwKKwkJICJhc3NpZ25tZW50IHRvICVxVCBmcm9tIGFk ZHJlc3Mgb2YgcGFja2VkIG1lbWJlciBvZiAiCisJCSAiJXFUIG1heSByZXN1 bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiLAorCQkgdHlwZSwg Y29udGV4dCk7CisJYnJlYWs7CisgICAgICBjYXNlIElDUl9JTklUOgorCXdh cm5pbmcgKE9QVF9XYWRkcmVzc19vZl9wYWNrZWRfbWVtYmVyLAorCQkgImlu aXRpYWxpemF0aW9uIG9mICVxVCBmcm9tIGFkZHJlc3Mgb2YgcGFja2VkIG1l bWJlciAiCisJCSAib2YgJXFUIG1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVk IHBvaW50ZXIgdmFsdWUiLAorCQkgdHlwZSwgY29udGV4dCk7CisJYnJlYWs7 CisgICAgICBjYXNlIElDUl9SRVRVUk46CisJd2FybmluZyAoT1BUX1dhZGRy ZXNzX29mX3BhY2tlZF9tZW1iZXIsCisJCSAicmV0dXJuaW5nIGFkZHJlc3Mg b2YgcGFja2VkIG1lbWJlciBvZiAlcVQgZnJvbSBhICIKKwkJICJmdW5jdGlv biB3aXRoIHJldHVybiB0eXBlICVxVCBtYXkgcmVzdWx0IGluIGFuICIKKwkJ ICJ1bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIsCisJCSBjb250ZXh0LCB0eXBl KTsKKwlicmVhazsKKyAgICAgIGRlZmF1bHQ6CisJZ2NjX3VucmVhY2hhYmxl ICgpOworICAgICAgfQorCiAgIHJldHVybiBwZXJmb3JtX2ltcGxpY2l0X2Nv bnZlcnNpb25fZmxhZ3MgKHN0cmlwX3RvcF9xdWFscyAodHlwZSksIHJocywK IAkJCQkJICAgIGNvbXBsYWluLCBmbGFncyk7CiB9CmRpZmYgLS1naXQgYS9n Y2MvZG9jL2ludm9rZS50ZXhpIGIvZ2NjL2RvYy9pbnZva2UudGV4aQppbmRl eCA5OGI3M2RiMTdhZi4uYjgzZDExM2I3NmQgMTAwNjQ0Ci0tLSBhL2djYy9k b2MvaW52b2tlLnRleGkKKysrIGIvZ2NjL2RvYy9pbnZva2UudGV4aQpAQCAt MjU5LDggKzI1OSw4IEBAIE9iamVjdGl2ZS1DIGFuZCBPYmplY3RpdmUtQysr IERpYWxlY3RzfS4KIEB4cmVme1dhcm5pbmcgT3B0aW9ucywsT3B0aW9ucyB0 byBSZXF1ZXN0IG9yIFN1cHByZXNzIFdhcm5pbmdzfS4KIEBnY2NvcHRsaXN0 ey1mc3ludGF4LW9ubHkgIC1mbWF4LWVycm9ycz1AdmFye259ICAtV3BlZGFu dGljIEBnb2wKIC1wZWRhbnRpYy1lcnJvcnMgQGdvbAotLXcgIC1XZXh0cmEg IC1XYWxsICAtV2FkZHJlc3MgIC1XYWdncmVnYXRlLXJldHVybiAgQGdvbAot LVdhbGxvYy16ZXJvICAtV2FsbG9jLXNpemUtbGFyZ2VyLXRoYW49QHZhcntu fQorLXcgIC1XZXh0cmEgIC1XYWxsICAtV2FkZHJlc3MgLVdhZGRyZXNzLW9m LXBhY2tlZC1tZW1iZXIgQGdvbAorLVdhZ2dyZWdhdGUtcmV0dXJuIC1XYWxs b2MtemVybyAtV2FsbG9jLXNpemUtbGFyZ2VyLXRoYW49QHZhcntufSBAZ29s CiAtV2FsbG9jYSAgLVdhbGxvY2EtbGFyZ2VyLXRoYW49QHZhcntufSBAZ29s CiAtV25vLWFnZ3Jlc3NpdmUtbG9vcC1vcHRpbWl6YXRpb25zICAtV2FycmF5 LWJvdW5kcyAgLVdhcnJheS1ib3VuZHM9QHZhcntufSBAZ29sCiAtV25vLWF0 dHJpYnV0ZXMgIC1XYm9vbC1jb21wYXJlICAtV2Jvb2wtb3BlcmF0aW9uIEBn b2wKQEAgLTYzNzksNiArNjM3OSwxMyBAQCBiZWhhdmlvciBhbmQgYXJlIG5v dCBwb3J0YWJsZSBpbiBDLCBzbyB0aGV5IHVzdWFsbHkgaW5kaWNhdGUgdGhh dCB0aGUKIHByb2dyYW1tZXIgaW50ZW5kZWQgdG8gdXNlIEBjb2Rle3N0cmNt cH0uICBUaGlzIHdhcm5pbmcgaXMgZW5hYmxlZCBieQogQG9wdGlvbnstV2Fs bH0uCiAKK0BpdGVtIC1XYWRkcmVzcy1vZi1wYWNrZWQtbWVtYmVyCitAb3Bp bmRleCBXYWRkcmVzcy1vZi1wYWNrZWQtbWVtYmVyCitAb3BpbmRleCBXbm8t YWRkcmVzcy1vZi1wYWNrZWQtbWVtYmVyCitXYXJuIHdoZW4gdGhlIGFkZHJl c3Mgb2YgcGFja2VkIG1lbWJlciBvZiBzdHJ1Y3Qgb3IgdW5pb24gaXMgdGFr ZW4sCit3aGljaCB1c3VhbGx5IHJlc3VsdHMgaW4gYW4gdW5hbGlnbmVkIHBv aW50ZXIgdmFsdWUuICBUaGlzIGlzCitlbmFibGVkIGJ5IGRlZmF1bHQuCisK IEBpdGVtIC1XbG9naWNhbC1vcAogQG9waW5kZXggV2xvZ2ljYWwtb3AKIEBv cGluZGV4IFduby1sb2dpY2FsLW9wCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2MtYysrLWNvbW1vbi9wcjUxNjI4LTEuYyBiL2djYy90ZXN0c3VpdGUv Yy1jKystY29tbW9uL3ByNTE2MjgtMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi41MzI0ZjljYzk2NAotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2MjgtMS5j CkBAIC0wLDAgKzEsMjkgQEAKKy8qIFBSIGMvNTE2MjguICAqLworLyogeyBk Zy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8iIH0gKi8K Kworc3RydWN0IHBhaXJfdAoreworICBpbnQgeDsKKyAgaW50IGk7Cit9IF9f YXR0cmlidXRlX18oKHBhY2tlZCwgYWxpZ25lZCAoNCkpKTsKKworZXh0ZXJu IHN0cnVjdCBwYWlyX3QgcDsKK2V4dGVybiBpbnQgKng7CitleHRlcm4gdm9p ZCBiYXIgKGludCAqKTsKKworaW50ICphZGRyID0gJnAuaTsKKworaW50ICoK K2ZvbyAodm9pZCkKK3sKKyAgc3RydWN0IHBhaXJfdCBhcnJbMl0gPSB7IHsg MSwgMTAgfSwgeyAyLCAyMCB9IH07CisgIGludCAqcDAsICpwMTsKKyAgcDAg PSAmYXJyWzBdLmk7CisgIGJhciAocDApOworICBwMSA9ICZhcnJbMV0uaTsK KyAgYmFyIChwMSk7CisgIGJhciAoJnAuaSk7CisgIHggPSAmcC5pOworICBy ZXR1cm4gJnAuaTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1j KystY29tbW9uL3ByNTE2MjgtMTAuYyBiL2djYy90ZXN0c3VpdGUvYy1jKyst Y29tbW9uL3ByNTE2MjgtMTAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMDg1ZmUxNjA4YzQKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjUxNjI4LTEwLmMKQEAg LTAsMCArMSwyNCBAQAorLyogUFIgYy81MTYyOC4gICovCisvKiB7IGRnLWRv IHJ1biB7IHRhcmdldCBpbnQxMjggfSB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1PMiIgfSAqLworCitzdHJ1Y3QgcGFpcl90Cit7CisgIGNoYXIgYzsKKyAg X19pbnQxMjhfdCBpOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisK K3R5cGVkZWYgc3RydWN0IHVuYWxpZ25lZF9pbnQxMjhfdF8KK3sKKyAgX19p bnQxMjhfdCB2YWx1ZTsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgdW5h bGlnbmVkX2ludDEyOF90OworCitzdHJ1Y3QgcGFpcl90IHAgPSB7MCwgMX07 Cit1bmFsaWduZWRfaW50MTI4X3QgKmFkZHIgPSAodW5hbGlnbmVkX2ludDEy OF90ICopICZwLmk7CisKK2ludCAKK21haW4oKSAKK3sKKyAgYWRkci0+dmFs dWUgPSB+KF9faW50MTI4X3QpMDsKKyAgcmV0dXJuIChwLmkgIT0gMSkgPyAw IDogMTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29t bW9uL3ByNTE2MjgtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24v cHI1MTYyOC0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmFiZmI4NGRkZDA1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYyOC0yLmMKQEAgLTAsMCArMSwy OSBAQAorLyogUFIgYy81MTYyOC4gICovCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLworLyogeyBkZy1vcHRpb25zICItTyIgfSAqLworCitzdHJ1Y3QgcGFp cl90Cit7CisgIGludCB4OworICBpbnQgaTsKK30gX19hdHRyaWJ1dGVfXygo cGFja2VkLCBhbGlnbmVkICg4KSkpOworCitleHRlcm4gc3RydWN0IHBhaXJf dCBwOworZXh0ZXJuIGludCAqeDsKK2V4dGVybiB2b2lkIGJhciAoaW50ICop OworCitpbnQgKmFkZHIgPSAmcC5pOworCitpbnQgKgorZm9vICh2b2lkKQor eworICBzdHJ1Y3QgcGFpcl90IGFyclsyXSA9IHsgeyAxLCAxMCB9LCB7IDIs IDIwIH0gfTsKKyAgaW50ICpwMCwgKnAxOworICBwMCA9ICZhcnJbMF0uaTsK KyAgYmFyIChwMCk7CisgIHAxID0gJmFyclsxXS5pOworICBiYXIgKHAxKTsK KyAgYmFyICgmcC5pKTsKKyAgeCA9ICZwLmk7CisgIHJldHVybiAmcC5pOwor fQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1 MTYyOC0zLmMgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjUxNjI4 LTMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MGVhOTRjODQ1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2MtYysrLWNvbW1vbi9wcjUxNjI4LTMuYwpAQCAtMCwwICsxLDM1IEBACisv KiBQUiBjLzUxNjI4LiAgKi8KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisv KiB7IGRnLW9wdGlvbnMgIi1PIiB9ICovCisKK3N0cnVjdCBwYWlyX3QKK3sK KyAgaW50IHg7CisgIGludCBpOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQs IGFsaWduZWQgKDIpKSk7CisKK2V4dGVybiBzdHJ1Y3QgcGFpcl90IHA7Citl eHRlcm4gaW50ICp4OworZXh0ZXJuIHZvaWQgYmFyIChpbnQgKik7CisKK2lu dCAqYWRkciA9ICZwLmk7CisvKiB7IGRnLXdhcm5pbmcgIm1heSByZXN1bHQg aW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiICIiIHsgdGFyZ2V0ICot Ki0qIH0gLi0xIH0gKi8KKworaW50ICoKK2ZvbyAodm9pZCkKK3sKKyAgc3Ry dWN0IHBhaXJfdCBhcnJbMl0gPSB7IHsgMSwgMTAgfSwgeyAyLCAyMCB9IH07 CisgIGludCAqcDAsICpwMTsKKyAgcDAgPSAmYXJyWzBdLmk7CisvKiB7IGRn LXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIg dmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KKyAgYmFyIChw MCk7CisgIHAxID0gJmFyclsxXS5pOworLyogeyBkZy13YXJuaW5nICJtYXkg cmVzdWx0IGluIGFuIHVuYWxpZ25lZCBwb2ludGVyIHZhbHVlIiAiIiB7IHRh cmdldCAqLSotKiB9IC4tMSB9ICovCisgIGJhciAocDEpOworICBiYXIgKCZw LmkpOworLyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0IGluIGFuIHVuYWxp Z25lZCBwb2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9 ICovCisgIHggPSAmcC5pOworLyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0 IGluIGFuIHVuYWxpZ25lZCBwb2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAq LSotKiB9IC4tMSB9ICovCisgIHJldHVybiAmcC5pOworLyogeyBkZy13YXJu aW5nICJtYXkgcmVzdWx0IGluIGFuIHVuYWxpZ25lZCBwb2ludGVyIHZhbHVl IiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovCit9CmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjUxNjI4LTQuYyBiL2dj Yy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2MjgtNC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNGMxZmI3MmQ2ZAot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9u L3ByNTE2MjgtNC5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIFBSIGMvNTE2Mjgu ICAqLworLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9u cyAiLU8iIH0gKi8KKworc3RydWN0IHBhaXJfdAoreworICBpbnQgeDsKKyAg aW50IGk7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitleHRlcm4g c3RydWN0IHBhaXJfdCBwOworZXh0ZXJuIGludCAqeDsKK2V4dGVybiB2b2lk IGJhciAoaW50ICopOworCitpbnQgKmFkZHIgPSAmcC5pOworLyogeyBkZy13 YXJuaW5nICJtYXkgcmVzdWx0IGluIGFuIHVuYWxpZ25lZCBwb2ludGVyIHZh bHVlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovCisKK2ludCAqCitm b28gKHZvaWQpCit7CisgIHN0cnVjdCBwYWlyX3QgYXJyWzJdID0geyB7IDEs IDEwIH0sIHsgMiwgMjAgfSB9OworICBpbnQgKnAwLCAqcDE7CisgIHAwID0g JmFyclswXS5pOworLyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0IGluIGFu IHVuYWxpZ25lZCBwb2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAqLSotKiB9 IC4tMSB9ICovCisgIGJhciAocDApOworICBwMSA9ICZhcnJbMV0uaTsKKy8q IHsgZGctd2FybmluZyAibWF5IHJlc3VsdCBpbiBhbiB1bmFsaWduZWQgcG9p bnRlciB2YWx1ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLworICBi YXIgKHAxKTsKKyAgYmFyICgmcC5pKTsKKy8qIHsgZGctd2FybmluZyAibWF5 IHJlc3VsdCBpbiBhbiB1bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIgIiIgeyB0 YXJnZXQgKi0qLSogfSAuLTEgfSAqLworICB4ID0gJnAuaTsKKy8qIHsgZGct d2FybmluZyAibWF5IHJlc3VsdCBpbiBhbiB1bmFsaWduZWQgcG9pbnRlciB2 YWx1ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLworICByZXR1cm4g JnAuaTsKKy8qIHsgZGctd2FybmluZyAibWF5IHJlc3VsdCBpbiBhbiB1bmFs aWduZWQgcG9pbnRlciB2YWx1ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEg fSAqLworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21t b24vcHI1MTYyOC01LmMgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9w cjUxNjI4LTUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uOWQ3YzMwOWEwZWYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2MtYysrLWNvbW1vbi9wcjUxNjI4LTUuYwpAQCAtMCwwICsxLDM1 IEBACisvKiBQUiBjLzUxNjI4LiAgKi8KKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PIiB9ICovCisKK3N0cnVjdCBwYWly X3QKK3sKKyAgY2hhciB4OworICBpbnQgaTsKK30gX19hdHRyaWJ1dGVfXygo cGFja2VkKSk7CisKK2V4dGVybiBzdHJ1Y3QgcGFpcl90IHA7CitleHRlcm4g aW50ICp4OworZXh0ZXJuIHZvaWQgYmFyIChpbnQgKik7CisKK2ludCAqYWRk ciA9ICZwLmk7CisvKiB7IGRnLXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4g dW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0g Li0xIH0gKi8KKworaW50ICoKK2ZvbyAodm9pZCkKK3sKKyAgc3RydWN0IHBh aXJfdCBhcnJbMl0gPSB7IHsgMSwgMTAgfSwgeyAyLCAyMCB9IH07CisgIGlu dCAqcDAsICpwMTsKKyAgcDAgPSAmYXJyWzBdLmk7CisvKiB7IGRnLXdhcm5p bmcgIm1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUi ICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KKyAgYmFyIChwMCk7Cisg IHAxID0gJmFyclsxXS5pOworLyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0 IGluIGFuIHVuYWxpZ25lZCBwb2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAq LSotKiB9IC4tMSB9ICovCisgIGJhciAocDEpOworICBiYXIgKCZwLmkpOwor LyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0IGluIGFuIHVuYWxpZ25lZCBw b2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovCisg IHggPSAmcC5pOworLyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0IGluIGFu IHVuYWxpZ25lZCBwb2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAqLSotKiB9 IC4tMSB9ICovCisgIHJldHVybiAmcC5pOworLyogeyBkZy13YXJuaW5nICJt YXkgcmVzdWx0IGluIGFuIHVuYWxpZ25lZCBwb2ludGVyIHZhbHVlIiAiIiB7 IHRhcmdldCAqLSotKiB9IC4tMSB9ICovCit9CmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjUxNjI4LTYuYyBiL2djYy90ZXN0 c3VpdGUvYy1jKystY29tbW9uL3ByNTE2MjgtNi5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MmFhMDdhNGNmMwotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2 MjgtNi5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIFBSIGMvNTE2MjguICAqLwor LyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8i IH0gKi8KKworc3RydWN0IHBhaXJfdAoreworICBjaGFyIHg7CisgIGludCBp OworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQsIGFsaWduZWQgKDQpKSk7CisK K2V4dGVybiBzdHJ1Y3QgcGFpcl90IHA7CitleHRlcm4gaW50ICp4OworZXh0 ZXJuIHZvaWQgYmFyIChpbnQgKik7CisKK2ludCAqYWRkciA9ICZwLmk7Cisv KiB7IGRnLXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBv aW50ZXIgdmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KKwor aW50ICoKK2ZvbyAodm9pZCkKK3sKKyAgc3RydWN0IHBhaXJfdCBhcnJbMl0g PSB7IHsgMSwgMTAgfSwgeyAyLCAyMCB9IH07CisgIGludCAqcDAsICpwMTsK KyAgcDAgPSAmYXJyWzBdLmk7CisvKiB7IGRnLXdhcm5pbmcgIm1heSByZXN1 bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiICIiIHsgdGFyZ2V0 ICotKi0qIH0gLi0xIH0gKi8KKyAgYmFyIChwMCk7CisgIHAxID0gJmFyclsx XS5pOworLyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0IGluIGFuIHVuYWxp Z25lZCBwb2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9 ICovCisgIGJhciAocDEpOworICBiYXIgKCZwLmkpOworLyogeyBkZy13YXJu aW5nICJtYXkgcmVzdWx0IGluIGFuIHVuYWxpZ25lZCBwb2ludGVyIHZhbHVl IiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovCisgIHggPSAmcC5pOwor LyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0IGluIGFuIHVuYWxpZ25lZCBw b2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovCisg IHJldHVybiAmcC5pOworLyogeyBkZy13YXJuaW5nICJtYXkgcmVzdWx0IGlu IGFuIHVuYWxpZ25lZCBwb2ludGVyIHZhbHVlIiAiIiB7IHRhcmdldCAqLSot KiB9IC4tMSB9ICovCit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2Mt YysrLWNvbW1vbi9wcjUxNjI4LTcuYyBiL2djYy90ZXN0c3VpdGUvYy1jKyst Y29tbW9uL3ByNTE2MjgtNy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5hZTRhNjgxZjk2NgotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2MjgtNy5jCkBAIC0w LDAgKzEsMjkgQEAKKy8qIFBSIGMvNTE2MjguICAqLworLyogeyBkZy1kbyBj b21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8iIH0gKi8KKworc3Ry dWN0IHBhaXJfdAoreworICBpbnQgeDsKKyAgaW50IGlbNF07Cit9IF9fYXR0 cmlidXRlX18oKHBhY2tlZCwgYWxpZ25lZCAoNCkpKTsKKworZXh0ZXJuIHN0 cnVjdCBwYWlyX3QgcDsKK2V4dGVybiBpbnQgKng7CitleHRlcm4gdm9pZCBi YXIgKGludCAqKTsKKworaW50ICphZGRyID0gcC5pOworCitpbnQgKgorZm9v IChzdHJ1Y3QgcGFpcl90ICpwKQoreworICBpbnQgKnAwLCAqcDE7CisgIHAw ID0gcC0+aTsKKyAgYmFyIChwMCk7CisgIHAxID0gJnAtPmlbMV07CisgIGJh ciAocDEpOworICBiYXIgKHAtPmkpOworICBiYXIgKCZwLT5pWzJdKTsKKyAg eCA9IHAtPmk7CisgIHJldHVybiAmcC0+aVszXTsKK30KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2MjgtOC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYyOC04LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjMmRhZTA5NmFlCi0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24v cHI1MTYyOC04LmMKQEAgLTAsMCArMSwzNiBAQAorLyogUFIgYy81MTYyOC4g ICovCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25z ICItTyIgfSAqLworCitzdHJ1Y3QgcGFpcl90Cit7CisgIGNoYXIgeDsKKyAg aW50IGlbNF07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQg KDQpKSk7CisKK2V4dGVybiBzdHJ1Y3QgcGFpcl90IHA7CitleHRlcm4gaW50 ICp4OworZXh0ZXJuIHZvaWQgYmFyIChpbnQgKik7CisKK2ludCAqYWRkciA9 IHAuaTsKKy8qIHsgZGctd2FybmluZyAibWF5IHJlc3VsdCBpbiBhbiB1bmFs aWduZWQgcG9pbnRlciB2YWx1ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEg fSAqLworCitpbnQgKgorZm9vIChzdHJ1Y3QgcGFpcl90ICpwKQoreworICBp bnQgKnAwLCAqcDE7CisgIHAwID0gcC0+aTsKKy8qIHsgZGctd2FybmluZyAi bWF5IHJlc3VsdCBpbiBhbiB1bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIgIiIg eyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLworICBiYXIgKHAwKTsKKyAgcDEg PSAmcC0+aVsxXTsKKy8qIHsgZGctd2FybmluZyAibWF5IHJlc3VsdCBpbiBh biB1bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIgIiIgeyB0YXJnZXQgKi0qLSog fSAuLTEgfSAqLworICBiYXIgKHAxKTsKKyAgYmFyIChwLT5pKTsKKy8qIHsg ZGctd2FybmluZyAibWF5IHJlc3VsdCBpbiBhbiB1bmFsaWduZWQgcG9pbnRl ciB2YWx1ZSIgIiIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLworICBiYXIg KCZwLT5pWzJdKTsKKy8qIHsgZGctd2FybmluZyAibWF5IHJlc3VsdCBpbiBh biB1bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIgIiIgeyB0YXJnZXQgKi0qLSog fSAuLTEgfSAqLworICB4ID0gcC0+aTsKKy8qIHsgZGctd2FybmluZyAibWF5 IHJlc3VsdCBpbiBhbiB1bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIgIiIgeyB0 YXJnZXQgKi0qLSogfSAuLTEgfSAqLworICByZXR1cm4gJnAtPmlbM107Cisv KiB7IGRnLXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBv aW50ZXIgdmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KK30K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNTE2 MjgtOS5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI1MTYyOC05 LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA0 NzBhYTNiOTNkCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9j LWMrKy1jb21tb24vcHI1MTYyOC05LmMKQEAgLTAsMCArMSwzNiBAQAorLyog UFIgYy81MTYyOC4gICovCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyog eyBkZy1vcHRpb25zICItTyIgfSAqLworCitzdHJ1Y3QgcGFpcl90Cit7Cisg IGludCB4OworICBpbnQgaVs0XTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tl ZCkpOworCitleHRlcm4gc3RydWN0IHBhaXJfdCBwOworZXh0ZXJuIGludCAq eDsKK2V4dGVybiB2b2lkIGJhciAoaW50ICopOworCitpbnQgKmFkZHIgPSBw Lmk7CisvKiB7IGRnLXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4gdW5hbGln bmVkIHBvaW50ZXIgdmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0g Ki8KKworaW50ICoKK2ZvbyAoc3RydWN0IHBhaXJfdCAqcCkKK3sKKyAgaW50 ICpwMCwgKnAxOworICBwMCA9IHAtPmk7CisvKiB7IGRnLXdhcm5pbmcgIm1h eSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiICIiIHsg dGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KKyAgYmFyIChwMCk7CisgIHAxID0g JnAtPmlbMV07CisvKiB7IGRnLXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4g dW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0g Li0xIH0gKi8KKyAgYmFyIChwMSk7CisgIGJhciAocC0+aSk7CisvKiB7IGRn LXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIg dmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KKyAgYmFyICgm cC0+aVsyXSk7CisvKiB7IGRnLXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4g dW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0g Li0xIH0gKi8KKyAgeCA9IHAtPmk7CisvKiB7IGRnLXdhcm5pbmcgIm1heSBy ZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiICIiIHsgdGFy Z2V0ICotKi0qIH0gLi0xIH0gKi8KKyAgcmV0dXJuICZwLT5pWzNdOworLyog eyBkZy13YXJuaW5nICJtYXkgcmVzdWx0IGluIGFuIHVuYWxpZ25lZCBwb2lu dGVyIHZhbHVlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9ICovCit9CmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi91YnNhbi9h bGlnbi0xMC5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vdWJzYW4v YWxpZ24tMTAuYwppbmRleCA1NmFlOWViZmUzMC4uNjIxMDUzMzE3M2MgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3Vic2FuL2Fs aWduLTEwLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vdWJz YW4vYWxpZ24tMTAuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIExpbWl0IHRoaXMg dG8ga25vd24gbm9uLXN0cmljdCBhbGlnbm1lbnQgdGFyZ2V0cy4gICovCiAv KiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IGk/ODYtKi1saW51eCogeDg2XzY0 LSotbGludXgqIH0gfSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PIC1mc2Fu aXRpemU9YWxpZ25tZW50IC1mc2FuaXRpemUtcmVjb3Zlcj1hbGlnbm1lbnQi IH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8gLWZzYW5pdGl6ZT1hbGlnbm1l bnQgLWZzYW5pdGl6ZS1yZWNvdmVyPWFsaWdubWVudCAtV25vLWFkZHJlc3Mt b2YtcGFja2VkLW1lbWJlciIgfSAqLwogCiBzdHJ1Y3QgUiB7IGludCBhOyB9 IHI7CiBzdHJ1Y3QgUyB7IHN0cnVjdCBSIGE7IGNoYXIgYjsgbG9uZyBsb25n IGM7IHNob3J0IGRbMTBdOyB9OwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24tMi5jIGIvZ2NjL3Rlc3RzdWl0 ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24tMi5jCmluZGV4IDA3MWRlOGMy MDJhLi4zMzZiMWMzYzkwNyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9j LWMrKy1jb21tb24vdWJzYW4vYWxpZ24tMi5jCisrKyBiL2djYy90ZXN0c3Vp dGUvYy1jKystY29tbW9uL3Vic2FuL2FsaWduLTIuYwpAQCAtMSw2ICsxLDYg QEAKIC8qIExpbWl0IHRoaXMgdG8ga25vd24gbm9uLXN0cmljdCBhbGlnbm1l bnQgdGFyZ2V0cy4gICovCiAvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IGk/ ODYtKi1saW51eCogeDg2XzY0LSotbGludXgqIH0gfSB9ICovCi0vKiB7IGRn LW9wdGlvbnMgIi1mc2FuaXRpemU9YWxpZ25tZW50IiB9ICovCisvKiB7IGRn LW9wdGlvbnMgIi1mc2FuaXRpemU9YWxpZ25tZW50IC1Xbm8tYWRkcmVzcy1v Zi1wYWNrZWQtbWVtYmVyIiB9ICovCiAKIHN0cnVjdCBTIHsgaW50IGE7IGNo YXIgYjsgbG9uZyBsb25nIGM7IHNob3J0IGRbMTBdOyB9Owogc3RydWN0IFQg eyBjaGFyIGE7IGxvbmcgbG9uZyBiOyB9OwpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24tNC5jIGIvZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24tNC5jCmluZGV4IDMy NTI1OTVkMzMwLi5kNWZlZWVlMjljNiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24tNC5jCisrKyBiL2djYy90 ZXN0c3VpdGUvYy1jKystY29tbW9uL3Vic2FuL2FsaWduLTQuYwpAQCAtMSw2 ICsxLDYgQEAKIC8qIExpbWl0IHRoaXMgdG8ga25vd24gbm9uLXN0cmljdCBh bGlnbm1lbnQgdGFyZ2V0cy4gICovCiAvKiB7IGRnLWRvIHJ1biB7IHRhcmdl dCB7IGk/ODYtKi1saW51eCogeDg2XzY0LSotbGludXgqIH0gfSB9ICovCi0v KiB7IGRnLW9wdGlvbnMgIi1mc2FuaXRpemU9bnVsbCxhbGlnbm1lbnQiIH0g Ki8KKy8qIHsgZGctb3B0aW9ucyAiLWZzYW5pdGl6ZT1udWxsLGFsaWdubWVu dCAtV25vLWFkZHJlc3Mtb2YtcGFja2VkLW1lbWJlciIgfSAqLwogCiAjaW5j bHVkZSAiYWxpZ24tMi5jIgogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2MtYysrLWNvbW1vbi91YnNhbi9hbGlnbi02LmMgYi9nY2MvdGVzdHN1aXRl L2MtYysrLWNvbW1vbi91YnNhbi9hbGlnbi02LmMKaW5kZXggMzM2NDc0NmZi MjcuLjAzMDJiN2I4ODk0IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2Mt YysrLWNvbW1vbi91YnNhbi9hbGlnbi02LmMKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxpZ24tNi5jCkBAIC0xLDYgKzEsNiBA QAogLyogTGltaXQgdGhpcyB0byBrbm93biBub24tc3RyaWN0IGFsaWdubWVu dCB0YXJnZXRzLiAgKi8KIC8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsgaT84 Ni0qLWxpbnV4KiB4ODZfNjQtKi1saW51eCogfSB9IH0gKi8KLS8qIHsgZGct b3B0aW9ucyAiLU8gLWZzYW5pdGl6ZT1hbGlnbm1lbnQgLWZzYW5pdGl6ZS1y ZWNvdmVyPWFsaWdubWVudCIgfSAqLworLyogeyBkZy1vcHRpb25zICItTyAt ZnNhbml0aXplPWFsaWdubWVudCAtZnNhbml0aXplLXJlY292ZXI9YWxpZ25t ZW50IC1Xbm8tYWRkcmVzcy1vZi1wYWNrZWQtbWVtYmVyIiB9ICovCiAKIHN0 cnVjdCBTIHsgaW50IGE7IGNoYXIgYjsgbG9uZyBsb25nIGM7IHNob3J0IGRb MTBdOyB9Owogc3RydWN0IFQgeyBjaGFyIGE7IGxvbmcgbG9uZyBiOyB9Owpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vdWJzYW4v YWxpZ24tNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vdWJzYW4v YWxpZ24tNy5jCmluZGV4IGVjNGU4N2Y1NmQ1Li5kZDFlOGM5MWNlZiAxMDA2 NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vdWJzYW4vYWxp Z24tNy5jCisrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3Vic2Fu L2FsaWduLTcuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIExpbWl0IHRoaXMgdG8g a25vd24gbm9uLXN0cmljdCBhbGlnbm1lbnQgdGFyZ2V0cy4gICovCiAvKiB7 IGRnLWRvIHJ1biB7IHRhcmdldCB7IGk/ODYtKi1saW51eCogeDg2XzY0LSot bGludXgqIH0gfSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PIC1mc2FuaXRp emU9YWxpZ25tZW50IC1mbm8tc2FuaXRpemUtcmVjb3Zlcj1hbGlnbm1lbnQg LWZkdW1wLXRyZWUtc2Fub3B0LWRldGFpbHMiIH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLU8gLWZzYW5pdGl6ZT1hbGlnbm1lbnQgLWZuby1zYW5pdGl6ZS1y ZWNvdmVyPWFsaWdubWVudCAtV25vLWFkZHJlc3Mtb2YtcGFja2VkLW1lbWJl ciAtZmR1bXAtdHJlZS1zYW5vcHQtZGV0YWlscyIgfSAqLwogLyogeyBkZy1z a2lwLWlmICIiIHsgKi0qLSogfSB7ICItZmx0byAtZm5vLWZhdC1sdG8tb2Jq ZWN0cyIgfSB9ICovCiAvKiB7IGRnLXNob3VsZGZhaWwgInVic2FuIiB9ICov CiAKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3Vi c2FuL2FsaWduLTguYyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3Vi c2FuL2FsaWduLTguYwppbmRleCA2MWMxY2ViNjY4Mi4uNWZlMGUwZmU5MzEg MTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3Vic2Fu L2FsaWduLTguYworKysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi91 YnNhbi9hbGlnbi04LmMKQEAgLTEsNiArMSw2IEBACiAvKiBMaW1pdCB0aGlz IHRvIGtub3duIG5vbi1zdHJpY3QgYWxpZ25tZW50IHRhcmdldHMuICAqLwog LyogeyBkZy1kbyBydW4geyB0YXJnZXQgeyBpPzg2LSotbGludXgqIHg4Nl82 NC0qLWxpbnV4KiB9IH0gfSAqLwotLyogeyBkZy1vcHRpb25zICItTyAtZnNh bml0aXplPWFsaWdubWVudCAtZnNhbml0aXplLXVuZGVmaW5lZC10cmFwLW9u LWVycm9yIC1mZHVtcC10cmVlLXNhbm9wdC1kZXRhaWxzIiB9ICovCisvKiB7 IGRnLW9wdGlvbnMgIi1PIC1mc2FuaXRpemU9YWxpZ25tZW50IC1mc2FuaXRp emUtdW5kZWZpbmVkLXRyYXAtb24tZXJyb3IgLVduby1hZGRyZXNzLW9mLXBh Y2tlZC1tZW1iZXIgLWZkdW1wLXRyZWUtc2Fub3B0LWRldGFpbHMiIH0gKi8K IC8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0geyAiLWZsdG8gLWZuby1m YXQtbHRvLW9iamVjdHMiIH0gfSAqLwogLyogeyBkZy1zaG91bGRmYWlsICJ1 YnNhbiIgfSAqLwogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5k Zy91YnNhbi9hbGlnbi0yLkMgYi9nY2MvdGVzdHN1aXRlL2crKy5kZy91YnNh bi9hbGlnbi0yLkMKaW5kZXggM2U0ZjU0ODVkMDIuLmM5N2VkZTg4MzkyIDEw MDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2crKy5kZy91YnNhbi9hbGlnbi0y LkMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvdWJzYW4vYWxpZ24tMi5D CkBAIC0xLDYgKzEsNiBAQAogLy8gTGltaXQgdGhpcyB0byBrbm93biBub24t c3RyaWN0IGFsaWdubWVudCB0YXJnZXRzLgogLy8geyBkZy1kbyBydW4geyB0 YXJnZXQgeyBpPzg2LSotbGludXgqIHg4Nl82NC0qLWxpbnV4KiB9IH0gfQot Ly8geyBkZy1vcHRpb25zICItZnNhbml0aXplPWFsaWdubWVudCAtV2FsbCAt V25vLXVudXNlZC12YXJpYWJsZSAtc3RkPWMrKzExIiB9CisvLyB7IGRnLW9w dGlvbnMgIi1mc2FuaXRpemU9YWxpZ25tZW50IC1XYWxsIC1Xbm8tdW51c2Vk LXZhcmlhYmxlIC1Xbm8tYWRkcmVzcy1vZi1wYWNrZWQtbWVtYmVyIC1zdGQ9 YysrMTEiIH0KIAogdHlwZWRlZiBjb25zdCBsb25nIGludCBMOwogc3RydWN0 IFMgeyBsb25nIGludCBsOyBjaGFyIGJ1ZlsxICsgc2l6ZW9mIChpbnQpICsg c2l6ZW9mIChMKV07IH0gczsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLmRnL3ByNTE2MjgtMTAuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3By NTE2MjgtMTAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMDNhMDRlZmY3NWMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2djYy5kZy9wcjUxNjI4LTEwLmMKQEAgLTAsMCArMSwyMyBAQAor LyogUFIgYy81MTYyOC4gICovCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwor LyogeyBkZy1vcHRpb25zICItTyIgfSAqLworCit2b2lkIGZvbyAoaW50ICop OworCitpbnQgKgorYmFyIChpbnQgbiwgaW50IGssIHZvaWQgKnB0cikKK3sK KyAgc3RydWN0IEEKKyAgeworICAgIGludCBjW2tdOworICAgIGludCB4W25d OworICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQgKDQpKSk7 CisgIHN0cnVjdCBBICpwID0gKHN0cnVjdCBBICopIHB0cjsKKworICBpbnQg KnAwLCAqcDE7CisgIHAwID0gcC0+eDsKKyAgZm9vIChwMCk7CisgIHAxID0g JnAtPnhbMV07CisgIGZvbyAocDEpOworICByZXR1cm4gJnAtPnhbMV07Cit9 CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjUxNjI4LTEx LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjUxNjI4LTExLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdmZjAzZTg1Y2Vh Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI1 MTYyOC0xMS5jCkBAIC0wLDAgKzEsMjYgQEAKKy8qIFBSIGMvNTE2MjguICAq LworLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi LU8iIH0gKi8KKwordm9pZCBmb28gKGludCAqKTsKKworaW50ICoKK2JhciAo aW50IG4sIGludCBrLCB2b2lkICpwdHIpCit7CisgIHN0cnVjdCBBCisgIHsK KyAgICBjaGFyIGNba107CisgICAgaW50IHhbbl07CisgIH0gX19hdHRyaWJ1 dGVfXyAoKHBhY2tlZCkpOworICBzdHJ1Y3QgQSAqcCA9IChzdHJ1Y3QgQSAq KSBwdHI7CisKKyAgaW50ICpwMCwgKnAxOworICBwMCA9IHAtPng7CisvKiB7 IGRnLXdhcm5pbmcgIm1heSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50 ZXIgdmFsdWUiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KKyAgZm9v IChwMCk7CisgIHAxID0gJnAtPnhbMV07CisvKiB7IGRnLXdhcm5pbmcgIm1h eSByZXN1bHQgaW4gYW4gdW5hbGlnbmVkIHBvaW50ZXIgdmFsdWUiICIiIHsg dGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KKyAgZm9vIChwMSk7CisgIHJldHVy biAmcC0+eFsxXTsKKy8qIHsgZGctd2FybmluZyAibWF5IHJlc3VsdCBpbiBh biB1bmFsaWduZWQgcG9pbnRlciB2YWx1ZSIgIiIgeyB0YXJnZXQgKi0qLSog fSAuLTEgfSAqLworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvYXZ4NTEyYnctdm1vdmRxdTE2LTIuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmJ3LXZtb3ZkcXUxNi0yLmMK aW5kZXggYTYxNjA5YzQwZDIuLmM2ZTNlYmRjNTA3IDEwMDY0NAotLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJidy12bW92ZHF1 MTYtMi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2 eDUxMmJ3LXZtb3ZkcXUxNi0yLmMKQEAgLTEsNSArMSw1IEBACiAvKiB7IGRn LWRvIHJ1biB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWF2eDUxMmJ3 IiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWF2eDUxMmJ3IC1Xbm8t YWRkcmVzcy1vZi1wYWNrZWQtbWVtYmVyIiB9ICovCiAvKiB7IGRnLXJlcXVp cmUtZWZmZWN0aXZlLXRhcmdldCBhdng1MTJidyB9ICovCiAKICNkZWZpbmUg QVZYNTEyQlcKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L2F2eDUxMmYtdm1vdmRxdTMyLTIuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L2F2eDUxMmYtdm1vdmRxdTMyLTIuYwppbmRleCBm MmVkYzNkZmY3Yi4uOTVhNjU3ZmM1ZmYgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYtdm1vdmRxdTMyLTIuYwor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZt b3ZkcXUzMi0yLmMKQEAgLTEsNSArMSw1IEBACiAvKiB7IGRnLWRvIHJ1biB9 ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWF2eDUxMmYiIH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiLU8yIC1tYXZ4NTEyZiAtV25vLWFkZHJlc3Mtb2Yt cGFja2VkLW1lbWJlciIgfSAqLwogLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2 ZS10YXJnZXQgYXZ4NTEyZiB9ICovCiAKICNkZWZpbmUgQVZYNTEyRgpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEy Zi12bW92ZHF1NjQtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvYXZ4NTEyZi12bW92ZHF1NjQtMi5jCmluZGV4IDE0MTc2OTY1YWNlLi45 NTRiMDkxZDk3NiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvYXZ4NTEyZi12bW92ZHF1NjQtMi5jCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYtdm1vdmRxdTY0LTIuYwpA QCAtMSw1ICsxLDUgQEAKIC8qIHsgZGctZG8gcnVuIH0gKi8KLS8qIHsgZGct b3B0aW9ucyAiLU8yIC1tYXZ4NTEyZiIgfSAqLworLyogeyBkZy1vcHRpb25z ICItTzIgLW1hdng1MTJmIC1Xbm8tYWRkcmVzcy1vZi1wYWNrZWQtbWVtYmVy IiB9ICovCiAvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhdng1 MTJmIH0gKi8KIAogI2RlZmluZSBBVlg1MTJGCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bW92ZHF1MTYt Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwt dm1vdmRxdTE2LTIuYwppbmRleCA0NWFlODNkNDU1Mi4uODE0NjVmOGQ5YTAg MTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2 eDUxMnZsLXZtb3ZkcXUxNi0yLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvYXZ4NTEydmwtdm1vdmRxdTE2LTIuYwpAQCAtMSw1ICsx LDUgQEAKIC8qIHsgZGctZG8gcnVuIH0gKi8KLS8qIHsgZGctb3B0aW9ucyAi LU8yIC1tYXZ4NTEyYncgLW1hdng1MTJ2bCIgfSAqLworLyogeyBkZy1vcHRp b25zICItTzIgLW1hdng1MTJidyAtbWF2eDUxMnZsIC1Xbm8tYWRkcmVzcy1v Zi1wYWNrZWQtbWVtYmVyIiB9ICovCiAvKiB7IGRnLXJlcXVpcmUtZWZmZWN0 aXZlLXRhcmdldCBhdng1MTJ2bCB9ICovCiAvKiB7IGRnLXJlcXVpcmUtZWZm ZWN0aXZlLXRhcmdldCBhdng1MTJidyB9ICovCiAKZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZtb3ZkcXUz Mi0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2 bC12bW92ZHF1MzItMi5jCmluZGV4IDRiOTI4ZDBjZDQyLi4xOTM5MDY2NGJk MCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv YXZ4NTEydmwtdm1vdmRxdTMyLTIuYworKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bW92ZHF1MzItMi5jCkBAIC0xLDUg KzEsNSBAQAogLyogeyBkZy1kbyBydW4gfSAqLwotLyogeyBkZy1vcHRpb25z ICItTzIgLW1hdng1MTJ2bCIgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIg LW1hdng1MTJ2bCAtV25vLWFkZHJlc3Mtb2YtcGFja2VkLW1lbWJlciIgfSAq LwogLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXZ4NTEydmwg fSAqLwogCiAjZGVmaW5lIEFWWDUxMlZMCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bW92ZHF1NjQtMi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtdm1v dmRxdTY0LTIuYwppbmRleCAxODYzZWQzNjE2Zi4uYWVhMGMxMmE1ZmYgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUx MnZsLXZtb3ZkcXU2NC0yLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvYXZ4NTEydmwtdm1vdmRxdTY0LTIuYwpAQCAtMSw1ICsxLDUg QEAKIC8qIHsgZGctZG8gcnVuIH0gKi8KLS8qIHsgZGctb3B0aW9ucyAiLU8y IC1tYXZ4NTEydmwiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tYXZ4 NTEydmwgLVduby1hZGRyZXNzLW9mLXBhY2tlZC1tZW1iZXIiIH0gKi8KIC8q IHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGF2eDUxMnZsIH0gKi8K IAogI2RlZmluZSBBVlg1MTJWTAotLSAKMi4xNC4zCgo= --001a113cf502c97a060562f75a6c--