Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wCeNk-002Bxs-1T for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Apr 2026 14:04:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wCeNi-00CEgD-2F for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Apr 2026 14:04:47 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wCeNi-00CEg5-0Q for pgsql-hackers@lists.postgresql.org; Tue, 14 Apr 2026 14:04:47 +0000 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wCeNg-00000000yxa-0G3l for pgsql-hackers@postgresql.org; Tue, 14 Apr 2026 14:04:46 +0000 Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-7dc35728a57so3064563a34.0 for ; Tue, 14 Apr 2026 07:04:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776175483; cv=none; d=google.com; s=arc-20240605; b=MDl/WMU294JI7KYTPX3UfXUw+Dz9Zd0w04wUdV9GiVwb709O7z0Hng1uFYAO2i1aCD 6u3B726cCUEUYFrOT8jrSNZmDHdGc9wfKLD3LIMysKRDwS9+xwy6mJwS0snvNVY41UO8 IsK/dNezWm7La1S/JY2Jwjo98QqKriafva5MAbiFdxrUOLrw3RMkKxGeTpfTeI2JfuYd Bn6QaORORSlFGLU7HTV792JetmhqRkIgQBIfBhD5pv5tg6F3Zxrccs//av/wR+MrJwX8 vniqCaj2CzRnC+dd2b4WL+iM9G2QKNscdBNp4ziBoxYXNPfIcdeathQyFTUjCc2IAkUv oXXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=WSKx6iVrLBO8+44gLN0zyPUF52DiSg9Zp558fTP7FNc=; fh=Tccc45CwlcCAjWMSlPu2uE3opNnkOZKIL99ph2vFnLI=; b=W3HkYjn/UbNOKGSTdgStTzyN5OLbIoZ9pB4HN4KAbM4MWWiO4/nopM+aa/suUhakWj 8ztZKDziI155foDJkpWDKeEo5ph5iDR60oAESlsMyfdEjUpa/Y2HRjw3gWUU4LFy+hIy n/4hacBETAfFeZtZemLo42TlfI0kwWP+apF24kd3pfetruZUqjFQZYZxbLwQ95BSug10 OJFH1cOYYB6WSxSxa7f5/7bFZ8myK6RuupfkPwd05dkis21r5Z5PoA5nGhUewUTh3AU2 k9tsUvy5TgZwTiLsKOWemkZC9Tl9V4iVr/tkKfG7iV22y4a6h77YI6ZdkFvitAUNhIci a2pQ==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tigerdata.com; s=google; t=1776175483; x=1776780283; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=WSKx6iVrLBO8+44gLN0zyPUF52DiSg9Zp558fTP7FNc=; b=IPQq+e69aHZV9M16SqsD9ywMMUVQvWreKDA5hIqB2Udb0uygzOoom6tKczbKcM8mwz meTATF4y0eavYrxWw58ys5IDXSqcVfjZIgXMbxwwwX+hLpYhGgDxSPfZft+I6TdOAMH/ dA/ZH46oBZnchjDRkiTPm5YW9FWZIVwTqXzgShDlGPUo1nrzwN0wSENpbw6ulzF+e5WA 5HW9HlTmuFb4noxmNxoQirRmAF3felIva1a49AC62ZgRz2cq7GGa7nDmwUxlFri/t7pb bs13kWqjxSc/wjJ77sZhWURALk48lZAaTLQdUOYVekNkuJ5uczilB/Cf2AC99jqbl8or 9jjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776175483; x=1776780283; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=WSKx6iVrLBO8+44gLN0zyPUF52DiSg9Zp558fTP7FNc=; b=jcudqcgDz2V7dyli6WxaUU6dnAwweAHg8VjsJLzxnKDDWMswVGKrgodrVMOqkOfnQa EhxlIqyBEBOtvOWiPEXMDel7WEB0ZPx8SE7ytyH1P8FmbW8uHwpxwi943epDwIWPLxjO BXxELX5g6vEQN6vrM8cqD0816u+3ikwV1TGBGM6N7aEW1fIEgTlk7KgU8FKRyvPvkJh5 SMlX8m/1QAeqoEWduSuMtBK35KYinF+hTOafmVji9Tpjud+kmqBR9NZCG0ryoDF78OV4 Jr75dQDyEjCJ15Xlj9pyEZ0dAlEpgMs+PmCTlBTrxfSeU+cAW1H9GLu2z8MXtU9NSenr +m4Q== X-Gm-Message-State: AOJu0YxuQoSXHH/DdubOkxCyvrr/vrStxUlQ2LhO5RxFBmoZyfBrGmET E7A3PSHFn1p3cduOTMy3jWLVG43F9Zxx67ukTBm+MuZpdCTQkMH1a/Lc8RdRpfyDvOLrcQ4tGbE 0u0Oya7egY9WsKCBK4tVXwoqyJITzYbFTFjJdNNIFJV3k0l4R5ad0Rzc= X-Gm-Gg: AeBDiev4vHckriDDWffmTm7osjdSCskZ0qSGhnIZOssw0DlfxSOvRJJj2pK7Bci4n/S qWOpJO98QGLtjrI2k8+LOLbuk4lXfsiCYn7Sy9b6ge8mX2oX20hdAFnH9kCvpR+nX3efAY86veP Qp3iUaTMgUnVJ2UNP4Tler8gmTY9hTSmnVCT3LV6KRXv6T/R+jDrGOGrawMxYkl1m/uFLHnqF/C XMehpZbbFqdJb5up4FuqoQbCi0ThC4Pqugwt1Wwe7NzTuYJ0FmYRO6222nvS/ji3HDLUeAUfctM IN6Kq2S4F1r96FQIqG1dLGXHZynx2OU+ILLM1lb7e5izmiKbEdOkGM2+BHOoeph5rl4= X-Received: by 2002:a05:6830:6504:b0:7d9:c772:4d78 with SMTP id 46e09a7af769-7dc27e9355fmr10566036a34.30.1776175477927; Tue, 14 Apr 2026 07:04:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Aleksander Alekseev Date: Tue, 14 Apr 2026 17:04:26 +0300 X-Gm-Features: AQROBzC-QadyUeMLgSkJzQQvsMdAeIp9bE8laI1mTZysAhmb5cfvUWH_mJk4zds Message-ID: Subject: Re: [PATCH] Refactor *_abbrev_convert() functions To: PostgreSQL Development Cc: John Naylor Content-Type: multipart/mixed; boundary="0000000000006bda24064f6c14b4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006bda24064f6c14b4 Content-Type: text/plain; charset="UTF-8" Hi, > 0002 had a wrong commit message due to a mistake during squashing. > Here is a corrected patch. Rebased. -- Best regards, Aleksander Alekseev --0000000000006bda24064f6c14b4 Content-Type: text/x-patch; charset="US-ASCII"; name="v5-0002-Avoid-unnecessary-type-casting-when-using-hash_an.patch" Content-Disposition: attachment; filename="v5-0002-Avoid-unnecessary-type-casting-when-using-hash_an.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnyp0coi1 RnJvbSA1NmVmMmY5YTMyZWZiYjNlMzU3MjFiYmJhMWVhNjg1ZjBiMTQzNWNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpZ2Vy ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMyBGZWIgMjAyNiAxNjo0NToxMCArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjUgMi8yXSBBdm9pZCB1bm5lY2Vzc2FyeSB0eXBlIGNhc3Rpbmcgd2hlbiB1c2luZyBo YXNoX2FueSgpCgpoYXNoX2FueSgpIGlzIG1lcmVseSBhIHdyYXBwZXIgZm9yIGhhc2hfYnl0ZXMo KS4gQ2FsbCBpdCBkaXJlY3RseSB3aGVuIHBvc3NpYmxlCmluIG9yZGVyIHRvIGF2b2lkIHVubmVj ZXNzYXJ5IHR5cGUgY2FzdGluZy4KCkFkZGl0aW9uYWxseSwgaW1wcm92ZSB0aGUgY29tbWVudCBm b3IgYWRkSHlwZXJMb2dMb2coKS5QcmV2aW91c2x5IHRoZSBjb21tZW50CnN1Z2dlc3RlZCB0byB1 c2UgaGFzaF9hbnkoKSB3aGljaCByZXR1cm4gdmFsdWUgaXMgRGF0dW0uIFNpbmNlIHRoZSBhcmd1 bWVudCBvZgphZGRIeXBlckxvZ0xvZygpIGlzIHVpbnQzMiwgcmVjb21tZW5kaW5nIGhhc2hfYnl0 ZXMoKSBpcyBtb3JlIGFwcHJvcHJpYXRlLgoKQXV0aG9yOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxh bGVrc2FuZGVyQHRpZ2VyZGF0YS5jb20+ClN1Z2dlc3RlZC1ieTogSm9obiBOYXlsb3IgPGpvaG5j bmF5bG9ybHNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogSm9obiBOYXlsb3IgPGpvaG5jbmF5bG9y bHNAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBSjdjNlRNUGhE UlFNbWtVSFB2OG9PSzk3QjFtUjhOUlM2MURnanBkYVpVUEF3YWVaUSU0MG1haWwuZ21haWwuY29t Ci0tLQogY29udHJpYi9sdHJlZS9sdHJlZV9vcC5jICAgICAgICAgICAgICAgICAgIHwgMiArLQog c3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlc2FtcGxlL2Jlcm5vdWxsaS5jIHwgNCArKy0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvdGFibGVzYW1wbGUvc3lzdGVtLmMgICAgfCA0ICsrLS0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL2FzeW5jLmMgICAgICAgICAgICAgICB8IDggKysrKy0tLS0KIHNyYy9iYWNr ZW5kL2xpYi9oeXBlcmxvZ2xvZy5jICAgICAgICAgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL25v ZGVzL2JpdG1hcHNldC5jICAgICAgICAgICAgICB8IDQgKystLQogc3JjL2JhY2tlbmQvdHNlYXJj aC90c190eXBhbmFseXplLmMgICAgICAgIHwgNCArKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQv Ynl0ZWEuYyAgICAgICAgICAgICAgfCA0ICsrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29u Yl9naW4uYyAgICAgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYl91dGls LmMgICAgICAgICB8IDQgKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyAgICAg ICAgICAgIHwgNCArKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9mdW5jY2FjaGUuYyAgICAg ICAgfCA4ICsrKystLS0tCiAxMiBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAyNSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2x0cmVlL2x0cmVlX29wLmMgYi9jb250 cmliL2x0cmVlL2x0cmVlX29wLmMKaW5kZXggYzFmYzc3ZmM4MDQuLmE5YTFiY2UwODYxIDEwMDY0 NAotLS0gYS9jb250cmliL2x0cmVlL2x0cmVlX29wLmMKKysrIGIvY29udHJpYi9sdHJlZS9sdHJl ZV9vcC5jCkBAIC0xNDQsNyArMTQ0LDcgQEAgaGFzaF9sdHJlZShQR19GVU5DVElPTl9BUkdTKQog CiAJd2hpbGUgKGFuID4gMCkKIAl7Ci0JCXVpbnQzMgkJbGV2ZWxIYXNoID0gRGF0dW1HZXRVSW50 MzIoaGFzaF9hbnkoKHVuc2lnbmVkIGNoYXIgKikgYWwtPm5hbWUsIGFsLT5sZW4pKTsKKwkJdWlu dDMyCQlsZXZlbEhhc2ggPSBoYXNoX2J5dGVzKCh1bnNpZ25lZCBjaGFyICopIGFsLT5uYW1lLCBh bC0+bGVuKTsKIAogCQkvKgogCQkgKiBDb21iaW5lIGhhc2ggdmFsdWVzIG9mIHN1Y2Nlc3NpdmUg ZWxlbWVudHMgYnkgbXVsdGlwbHlpbmcgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvdGFibGVzYW1wbGUvYmVybm91bGxpLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGVzYW1w bGUvYmVybm91bGxpLmMKaW5kZXggN2Q4NTYwNDY0YzguLmY3NjhkNDAxNDNlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGVzYW1wbGUvYmVybm91bGxpLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RhYmxlc2FtcGxlL2Jlcm5vdWxsaS5jCkBAIC0yMTQsOCArMjE0LDggQEAg YmVybm91bGxpX25leHRzYW1wbGV0dXBsZShTYW1wbGVTY2FuU3RhdGUgKm5vZGUsCiAKIAkJaGFz aGlucHV0WzFdID0gdHVwb2Zmc2V0OwogCi0JCWhhc2ggPSBEYXR1bUdldFVJbnQzMihoYXNoX2Fu eSgoY29uc3QgdW5zaWduZWQgY2hhciAqKSBoYXNoaW5wdXQsCi0JCQkJCQkJCQkgICAoaW50KSBz aXplb2YoaGFzaGlucHV0KSkpOworCQloYXNoID0gaGFzaF9ieXRlcygoY29uc3QgdW5zaWduZWQg Y2hhciAqKSBoYXNoaW5wdXQsCisJCQkJCQkgIChpbnQpIHNpemVvZihoYXNoaW5wdXQpKTsKIAkJ aWYgKGhhc2ggPCBzYW1wbGVyLT5jdXRvZmYpCiAJCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdGFibGVzYW1wbGUvc3lzdGVtLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdGFibGVzYW1wbGUvc3lzdGVtLmMKaW5kZXggYTJiOWJhOGVlYTkuLmRlMTNkZDhjYWI5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGVzYW1wbGUvc3lzdGVtLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlc2FtcGxlL3N5c3RlbS5jCkBAIC0yMDIsOCArMjAyLDgg QEAgc3lzdGVtX25leHRzYW1wbGVibG9jayhTYW1wbGVTY2FuU3RhdGUgKm5vZGUsIEJsb2NrTnVt YmVyIG5ibG9ja3MpCiAKIAkJaGFzaGlucHV0WzBdID0gbmV4dGJsb2NrOwogCi0JCWhhc2ggPSBE YXR1bUdldFVJbnQzMihoYXNoX2FueSgoY29uc3QgdW5zaWduZWQgY2hhciAqKSBoYXNoaW5wdXQs Ci0JCQkJCQkJCQkgICAoaW50KSBzaXplb2YoaGFzaGlucHV0KSkpOworCQloYXNoID0gaGFzaF9i eXRlcygoY29uc3QgdW5zaWduZWQgY2hhciAqKSBoYXNoaW5wdXQsCisJCQkJCQkgIChpbnQpIHNp emVvZihoYXNoaW5wdXQpKTsKIAkJaWYgKGhhc2ggPCBzYW1wbGVyLT5jdXRvZmYpCiAJCQlicmVh azsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYXN5bmMuYwppbmRleCA0Y2I0YjM1MGNlMy4uNDRhMGNiMDE1NWIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvYXN5bmMuYwpAQCAtNjc1LDggKzY3NSw4IEBAIGdsb2JhbENoYW5uZWxUYWJsZUhh c2goY29uc3Qgdm9pZCAqa2V5LCBzaXplX3Qgc2l6ZSwgdm9pZCAqYXJnKQogCWRzaGFzaF9oYXNo IGg7CiAKIAloID0gbXVybXVyaGFzaDMyKGstPmRib2lkKTsKLQloIF49IGhhc2hfYW55KChjb25z dCB1bnNpZ25lZCBjaGFyICopIGstPmNoYW5uZWwsCi0JCQkJICBzdHJubGVuKGstPmNoYW5uZWws IE5BTUVEQVRBTEVOKSk7CisJaCBePSBoYXNoX2J5dGVzKChjb25zdCB1bnNpZ25lZCBjaGFyICop IGstPmNoYW5uZWwsCisJCQkJICAgIHN0cm5sZW4oay0+Y2hhbm5lbCwgTkFNRURBVEFMRU4pKTsK IAogCXJldHVybiBoOwogfQpAQCAtMzI0OSw4ICszMjQ5LDggQEAgbm90aWZpY2F0aW9uX2hhc2go Y29uc3Qgdm9pZCAqa2V5LCBTaXplIGtleXNpemUpCiAKIAlBc3NlcnQoa2V5c2l6ZSA9PSBzaXpl b2YoTm90aWZpY2F0aW9uICopKTsKIAkvKiBXZSBkb24ndCBib3RoZXIgdG8gaW5jbHVkZSB0aGUg cGF5bG9hZCdzIHRyYWlsaW5nIG51bGwgaW4gdGhlIGhhc2ggKi8KLQlyZXR1cm4gRGF0dW1HZXRV SW50MzIoaGFzaF9hbnkoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgay0+ZGF0YSwKLQkJCQkJCQkJ ICAgay0+Y2hhbm5lbF9sZW4gKyBrLT5wYXlsb2FkX2xlbiArIDEpKTsKKwlyZXR1cm4gaGFzaF9i eXRlcygoY29uc3QgdW5zaWduZWQgY2hhciAqKSBrLT5kYXRhLAorCQkJCQkgIGstPmNoYW5uZWxf bGVuICsgay0+cGF5bG9hZF9sZW4gKyAxKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2xpYi9oeXBlcmxvZ2xvZy5jIGIvc3JjL2JhY2tlbmQvbGliL2h5cGVybG9nbG9nLmMKaW5k ZXggYzc0ZjExMjE3ZWYuLjJiODJmZjEyYjJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9saWIv aHlwZXJsb2dsb2cuYworKysgYi9zcmMvYmFja2VuZC9saWIvaHlwZXJsb2dsb2cuYwpAQCAtMTU4 LDcgKzE1OCw3IEBAIGZyZWVIeXBlckxvZ0xvZyhoeXBlckxvZ0xvZ1N0YXRlICpjU3RhdGUpCiAg KiBBZGRzIGVsZW1lbnQgdG8gdGhlIGVzdGltYXRvciwgZnJvbSBjYWxsZXItc3VwcGxpZWQgaGFz aC4KICAqCiAgKiBJdCBpcyBjcml0aWNhbCB0aGF0IHRoZSBoYXNoIHZhbHVlIHBhc3NlZCBiZSBh biBhY3R1YWwgaGFzaCB2YWx1ZSwgdHlwaWNhbGx5Ci0gKiBnZW5lcmF0ZWQgdXNpbmcgaGFzaF9h bnkoKS4gIFRoZSBhbGdvcml0aG0gcmVsaWVzIG9uIGEgc3BlY2lmaWMgYml0LXBhdHRlcm4KKyAq IGdlbmVyYXRlZCB1c2luZyBoYXNoX2J5dGVzKCkuICBUaGUgYWxnb3JpdGhtIHJlbGllcyBvbiBh IHNwZWNpZmljIGJpdC1wYXR0ZXJuCiAgKiBvYnNlcnZhYmxlIGluIGNvbmp1bmN0aW9uIHdpdGgg c3RvY2hhc3RpYyBhdmVyYWdpbmcuICBUaGVyZSBtdXN0IGJlIGEKICAqIHVuaWZvcm0gZGlzdHJp YnV0aW9uIG9mIGJpdHMgaW4gaGFzaCB2YWx1ZXMgZm9yIGVhY2ggZGlzdGluY3Qgb3JpZ2luYWwg dmFsdWUKICAqIG9ic2VydmVkLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvYml0bWFw c2V0LmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9iaXRtYXBzZXQuYwppbmRleCBmMDUzZDhjNGQ2NC4u N2FiZTkyZGMyODMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL2JpdG1hcHNldC5jCisr KyBiL3NyYy9iYWNrZW5kL25vZGVzL2JpdG1hcHNldC5jCkBAIC0xNDExLDggKzE0MTEsOCBAQCBi bXNfaGFzaF92YWx1ZShjb25zdCBCaXRtYXBzZXQgKmEpCiAKIAlpZiAoYSA9PSBOVUxMKQogCQly ZXR1cm4gMDsJCQkJLyogQWxsIGVtcHR5IHNldHMgaGFzaCB0byAwICovCi0JcmV0dXJuIERhdHVt R2V0VUludDMyKGhhc2hfYW55KChjb25zdCB1bnNpZ25lZCBjaGFyICopIGEtPndvcmRzLAotCQkJ CQkJCQkgICBhLT5ud29yZHMgKiBzaXplb2YoYml0bWFwd29yZCkpKTsKKwlyZXR1cm4gaGFzaF9i eXRlcygoY29uc3QgdW5zaWduZWQgY2hhciAqKSBhLT53b3JkcywKKwkJCQkJICBhLT5ud29yZHMg KiBzaXplb2YoYml0bWFwd29yZCkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dHNlYXJjaC90c190eXBhbmFseXplLmMgYi9zcmMvYmFja2VuZC90c2VhcmNoL3RzX3R5cGFuYWx5 emUuYwppbmRleCA0OGVlMDUwZTM3Zi4uNmNhOGVhZDM5ODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3RzZWFyY2gvdHNfdHlwYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvdHNf dHlwYW5hbHl6ZS5jCkBAIC00OTYsOCArNDk2LDggQEAgbGV4ZW1lX2hhc2goY29uc3Qgdm9pZCAq a2V5LCBTaXplIGtleXNpemUpCiB7CiAJY29uc3QgTGV4ZW1lSGFzaEtleSAqbCA9IChjb25zdCBM ZXhlbWVIYXNoS2V5ICopIGtleTsKIAotCXJldHVybiBEYXR1bUdldFVJbnQzMihoYXNoX2FueSgo Y29uc3QgdW5zaWduZWQgY2hhciAqKSBsLT5sZXhlbWUsCi0JCQkJCQkJCSAgIGwtPmxlbmd0aCkp OworCXJldHVybiBoYXNoX2J5dGVzKChjb25zdCB1bnNpZ25lZCBjaGFyICopIGwtPmxleGVtZSwK KwkJCQkJICBsLT5sZW5ndGgpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2J5dGVhLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwppbmRleCAyZTQx NmE4M2Y1My4uMDFhNzY4MDdiOTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9i eXRlYS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jCkBAIC0xMTA3LDggKzEx MDcsOCBAQCBieXRlYV9hYmJyZXZfY29udmVydChEYXR1bSBvcmlnaW5hbCwgU29ydFN1cHBvcnQg c3N1cCkKIAkgKiBpbiBvcmRlciB0byBjb21wZW5zYXRlIGZvciBjYXNlcyB3aGVyZSBkaWZmZXJl bmNlcyBhcmUgcGFzdAogCSAqIFBHX0NBQ0hFX0xJTkVfU0laRSBieXRlcywgc28gYXMgdG8gbGlt aXQgdGhlIG92ZXJoZWFkIG9mIGhhc2hpbmcuCiAJICovCi0JaGFzaCA9IERhdHVtR2V0VUludDMy KGhhc2hfYW55KCh1bnNpZ25lZCBjaGFyICopIGF1dGhvcml0YXRpdmVfZGF0YSwKLQkJCQkJCQkJ ICAgTWluKGxlbiwgUEdfQ0FDSEVfTElORV9TSVpFKSkpOworCWhhc2ggPSBoYXNoX2J5dGVzKCh1 bnNpZ25lZCBjaGFyICopIGF1dGhvcml0YXRpdmVfZGF0YSwKKwkJCQkJICBNaW4obGVuLCBQR19D QUNIRV9MSU5FX1NJWkUpKTsKIAogCWlmIChsZW4gPiBQR19DQUNIRV9MSU5FX1NJWkUpCiAJCWhh c2ggXj0gbXVybXVyaGFzaDMyKCh1aW50MzIpIGxlbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbmJfZ2luLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJfZ2lu LmMKaW5kZXggZDcyYTY0NDFjNWUuLmY1ZGJkNTU4OWQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbmJfZ2luLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25i X2dpbi5jCkBAIC0xMzMzLDcgKzEzMzMsNyBAQCBtYWtlX3RleHRfa2V5KGNoYXIgZmxhZywgY29u c3QgY2hhciAqc3RyLCBpbnQgbGVuKQogCXsKIAkJdWludDMyCQloYXNodmFsOwogCi0JCWhhc2h2 YWwgPSBEYXR1bUdldFVJbnQzMihoYXNoX2FueSgoY29uc3QgdW5zaWduZWQgY2hhciAqKSBzdHIs IGxlbikpOworCQloYXNodmFsID0gaGFzaF9ieXRlcygoY29uc3QgdW5zaWduZWQgY2hhciAqKSBz dHIsIGxlbik7CiAJCXNucHJpbnRmKGhhc2hidWYsIHNpemVvZihoYXNoYnVmKSwgIiUwOHgiLCBo YXNodmFsKTsKIAkJc3RyID0gaGFzaGJ1ZjsKIAkJbGVuID0gODsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9qc29uYl91dGlsLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNv bmJfdXRpbC5jCmluZGV4IDkxZmI5ZWEwOWJmLi45MWJmZjlmZGEzYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iX3V0aWwuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmJfdXRpbC5jCkBAIC0xNDUxLDggKzE0NTEsOCBAQCBKc29uYkhhc2hTY2FsYXJWYWx1 ZShjb25zdCBKc29uYlZhbHVlICpzY2FsYXJWYWwsIHVpbnQzMiAqaGFzaCkKIAkJCXRtcCA9IDB4 MDE7CiAJCQlicmVhazsKIAkJY2FzZSBqYnZTdHJpbmc6Ci0JCQl0bXAgPSBEYXR1bUdldFVJbnQz MihoYXNoX2FueSgoY29uc3QgdW5zaWduZWQgY2hhciAqKSBzY2FsYXJWYWwtPnZhbC5zdHJpbmcu dmFsLAotCQkJCQkJCQkJCSAgc2NhbGFyVmFsLT52YWwuc3RyaW5nLmxlbikpOworCQkJdG1wID0g aGFzaF9ieXRlcygoY29uc3QgdW5zaWduZWQgY2hhciAqKSBzY2FsYXJWYWwtPnZhbC5zdHJpbmcu dmFsLAorCQkJCQkJCSBzY2FsYXJWYWwtPnZhbC5zdHJpbmcubGVuKTsKIAkJCWJyZWFrOwogCQlj YXNlIGpidk51bWVyaWM6CiAJCQkvKiBNdXN0IGhhc2ggZXF1YWwgbnVtZXJpY3MgdG8gZXF1YWwg aGFzaCBjb2RlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKaW5kZXggOTgzMjczOWM4NDYuLjMx N2ExYmY3Yjg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKQEAgLTIxNTMsOCArMjE1Myw4IEBA IHZhcnN0cl9hYmJyZXZfY29udmVydChEYXR1bSBvcmlnaW5hbCwgU29ydFN1cHBvcnQgc3N1cCkK IAkgKiBpbiBvcmRlciB0byBjb21wZW5zYXRlIGZvciBjYXNlcyB3aGVyZSBkaWZmZXJlbmNlcyBh cmUgcGFzdAogCSAqIFBHX0NBQ0hFX0xJTkVfU0laRSBieXRlcywgc28gYXMgdG8gbGltaXQgdGhl IG92ZXJoZWFkIG9mIGhhc2hpbmcuCiAJICovCi0JaGFzaCA9IERhdHVtR2V0VUludDMyKGhhc2hf YW55KCh1bnNpZ25lZCBjaGFyICopIGF1dGhvcml0YXRpdmVfZGF0YSwKLQkJCQkJCQkJICAgTWlu KGxlbiwgUEdfQ0FDSEVfTElORV9TSVpFKSkpOworCWhhc2ggPSBoYXNoX2J5dGVzKCh1bnNpZ25l ZCBjaGFyICopIGF1dGhvcml0YXRpdmVfZGF0YSwKKwkJCQkJICBNaW4obGVuLCBQR19DQUNIRV9M SU5FX1NJWkUpKTsKIAogCWlmIChsZW4gPiBQR19DQUNIRV9MSU5FX1NJWkUpCiAJCWhhc2ggXj0g bXVybXVyaGFzaDMyKCh1aW50MzIpIGxlbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9mdW5jY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2Z1bmNjYWNoZS5j CmluZGV4IDcwMWMyOTRiODhkLi42OGJiZjBiOTcxYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvZnVuY2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvZnVu Y2NhY2hlLmMKQEAgLTg5LDEzICs4OSwxMyBAQCBjZnVuY19oYXNoKGNvbnN0IHZvaWQgKmtleSwg U2l6ZSBrZXlzaXplKQogCiAJQXNzZXJ0KGtleXNpemUgPT0gc2l6ZW9mKENhY2hlZEZ1bmN0aW9u SGFzaEtleSkpOwogCS8qIEhhc2ggYWxsIHRoZSBmaXhlZCBmaWVsZHMgZXhjZXB0IGNhbGxSZXN1 bHRUeXBlICovCi0JaCA9IERhdHVtR2V0VUludDMyKGhhc2hfYW55KChjb25zdCB1bnNpZ25lZCBj aGFyICopIGssCi0JCQkJCQkJCW9mZnNldG9mKENhY2hlZEZ1bmN0aW9uSGFzaEtleSwgY2FsbFJl c3VsdFR5cGUpKSk7CisJaCA9IGhhc2hfYnl0ZXMoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgaywK KwkJCQkgICBvZmZzZXRvZihDYWNoZWRGdW5jdGlvbkhhc2hLZXksIGNhbGxSZXN1bHRUeXBlKSk7 CiAJLyogSW5jb3Jwb3JhdGUgaW5wdXQgYXJndW1lbnQgdHlwZXMgKi8KIAlpZiAoay0+bmFyZ3Mg PiAwKQogCQloID0gaGFzaF9jb21iaW5lKGgsCi0JCQkJCQkgRGF0dW1HZXRVSW50MzIoaGFzaF9h bnkoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgay0+YXJndHlwZXMsCi0JCQkJCQkJCQkJCQkgay0+ bmFyZ3MgKiBzaXplb2YoT2lkKSkpKTsKKwkJCQkJCSBoYXNoX2J5dGVzKChjb25zdCB1bnNpZ25l ZCBjaGFyICopIGstPmFyZ3R5cGVzLAorCQkJCQkJCQkJay0+bmFyZ3MgKiBzaXplb2YoT2lkKSkp OwogCS8qIEluY29ycG9yYXRlIGNhbGxSZXN1bHRUeXBlIGlmIHByZXNlbnQgKi8KIAlpZiAoay0+ Y2FsbFJlc3VsdFR5cGUpCiAJCWggPSBoYXNoX2NvbWJpbmUoaCwgaGFzaFJvd1R5cGUoay0+Y2Fs bFJlc3VsdFR5cGUpKTsKLS0gCjIuNDMuMAoK --0000000000006bda24064f6c14b4 Content-Type: text/x-patch; charset="US-ASCII"; name="v5-0001-Simplify-abbreviated-key-hashing-using-murmurhash.patch" Content-Disposition: attachment; filename="v5-0001-Simplify-abbreviated-key-hashing-using-murmurhash.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnyp0cob0 RnJvbSAzOTViMjQ3ZWU3MGNjMjAwNDc4MGI2Y2VlNjMwODhmYmY4OWJiYzMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpZ2Vy ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMTMgSmFuIDIwMjYgMTQ6NTE6MjEgKzAzMDAKU3ViamVjdDog W1BBVENIIHY1IDEvMl0gU2ltcGxpZnkgYWJicmV2aWF0ZWQga2V5IGhhc2hpbmcgdXNpbmcgbXVy bXVyaGFzaDY0KCkKCk5vdyB3aGVuIGFsbCBEYXR1bXMgYXJlIDY0LWJpdCB2YWx1ZXMgd2UgY2Fu IHNpbXBsaWZ5IHRoZSBjb2RlIGJ5IHVzaW5nCm11cm11cmhhc2g2NCgpIGluICpfYWJicmV2X2Nv bnZlcnQoKSBmdW5jdGlvbnMuIEFsc28gcmVwbGFjZSBoYXNoX3VpbnQzMigpCndpdGggbXVybXVy aGFzaDMyKCkgaW4gYSBmZXcgb3RoZXIgcGxhY2VzIGZvciBjb25zaXN0ZW5jeS4KCkF1dGhvcjog QWxla3NhbmRlciBBbGVrc2VldiA8YWxla3NhbmRlckB0aWdlcmRhdGEuY29tPgpTdWdnZXN0ZWQt Ynk6IEpvaG4gTmF5bG9yIDxqb2huY25heWxvcmxzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEpv aG4gTmF5bG9yIDxqb2huY25heWxvcmxzQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQUo3YzZUTVBoRFJRTW1rVUhQdjhvT0s5N0IxbVI4TlJTNjFEZ2pwZGFaVVBB d2FlWlElNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMg ICAgfCA2ICsrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMgICB8IDkgKystLS0t LS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jIHwgNiArLS0tLS0KIHNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgfCA1ICstLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQv dXVpZC5jICAgIHwgNiArLS0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgfCA5 ICsrLS0tLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYXN5bmMuYwppbmRleCBkYjZhOWE2NTYxYi4uNGNiNGIzNTBjZTMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvYXN5bmMuYwpAQCAtNjc0LDkgKzY3NCw5IEBAIGdsb2JhbENoYW5uZWxUYWJsZUhh c2goY29uc3Qgdm9pZCAqa2V5LCBzaXplX3Qgc2l6ZSwgdm9pZCAqYXJnKQogCWNvbnN0IEdsb2Jh bENoYW5uZWxLZXkgKmsgPSAoY29uc3QgR2xvYmFsQ2hhbm5lbEtleSAqKSBrZXk7CiAJZHNoYXNo X2hhc2ggaDsKIAotCWggPSBEYXR1bUdldFVJbnQzMihoYXNoX3VpbnQzMihrLT5kYm9pZCkpOwot CWggXj0gRGF0dW1HZXRVSW50MzIoaGFzaF9hbnkoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgay0+ Y2hhbm5lbCwKLQkJCQkJCQkJIHN0cm5sZW4oay0+Y2hhbm5lbCwgTkFNRURBVEFMRU4pKSk7CisJ aCA9IG11cm11cmhhc2gzMihrLT5kYm9pZCk7CisJaCBePSBoYXNoX2FueSgoY29uc3QgdW5zaWdu ZWQgY2hhciAqKSBrLT5jaGFubmVsLAorCQkJCSAgc3RybmxlbihrLT5jaGFubmVsLCBOQU1FREFU QUxFTikpOwogCiAJcmV0dXJuIGg7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvYnl0ZWEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jCmluZGV4IGY2ZTMyNjZh YzMyLi4yZTQxNmE4M2Y1MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVh LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKQEAgLTExMTEsMTcgKzExMTEs MTIgQEAgYnl0ZWFfYWJicmV2X2NvbnZlcnQoRGF0dW0gb3JpZ2luYWwsIFNvcnRTdXBwb3J0IHNz dXApCiAJCQkJCQkJCSAgIE1pbihsZW4sIFBHX0NBQ0hFX0xJTkVfU0laRSkpKTsKIAogCWlmIChs ZW4gPiBQR19DQUNIRV9MSU5FX1NJWkUpCi0JCWhhc2ggXj0gRGF0dW1HZXRVSW50MzIoaGFzaF91 aW50MzIoKHVpbnQzMikgbGVuKSk7CisJCWhhc2ggXj0gbXVybXVyaGFzaDMyKCh1aW50MzIpIGxl bik7CiAKIAlhZGRIeXBlckxvZ0xvZygmYnNzLT5mdWxsX2NhcmQsIGhhc2gpOwogCiAJLyogSGFz aCBhYmJyZXZpYXRlZCBrZXkgKi8KLQl7Ci0JCXVpbnQzMgkJdG1wOwotCi0JCXRtcCA9IERhdHVt R2V0VUludDMyKHJlcykgXiAodWludDMyKSAoRGF0dW1HZXRVSW50NjQocmVzKSA+PiAzMik7Ci0J CWhhc2ggPSBEYXR1bUdldFVJbnQzMihoYXNoX3VpbnQzMih0bXApKTsKLQl9CisJaGFzaCA9ICh1 aW50MzIpIG11cm11cmhhc2g2NChEYXR1bUdldFVJbnQ2NChyZXMpKTsKIAogCWFkZEh5cGVyTG9n TG9nKCZic3MtPmFiYnJfY2FyZCwgaGFzaCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jCmluZGV4 IGM3ZTA4Mjg3NjRlLi4xNGM2MzllYWZjNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L25ldHdvcmsuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jCkBAIC03 MzksMTEgKzczOSw3IEBAIG5ldHdvcmtfYWJicmV2X2NvbnZlcnQoRGF0dW0gb3JpZ2luYWwsIFNv cnRTdXBwb3J0IHNzdXApCiAJLyogSGFzaCBhYmJyZXZpYXRlZCBrZXkgKi8KIAlpZiAodXNzLT5l c3RpbWF0aW5nKQogCXsKLQkJdWludDMyCQl0bXA7Ci0KLQkJdG1wID0gRGF0dW1HZXRVSW50MzIo cmVzKSBeICh1aW50MzIpIChEYXR1bUdldFVJbnQ2NChyZXMpID4+IDMyKTsKLQotCQlhZGRIeXBl ckxvZ0xvZygmdXNzLT5hYmJyX2NhcmQsIERhdHVtR2V0VUludDMyKGhhc2hfdWludDMyKHRtcCkp KTsKKwkJYWRkSHlwZXJMb2dMb2coJnVzcy0+YWJicl9jYXJkLCAodWludDMyKSBtdXJtdXJoYXNo NjQoRGF0dW1HZXRVSW50NjQocmVzKSkpOwogCX0KIAogCXJldHVybiByZXM7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwppbmRleCBjYjIzZGZlOWI5NS4uNzk3ZDgwYjk5ZGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMjM5OSwxMCArMjM5OSw3IEBAIG51bWVyaWNfYWJicmV2X2NvbnZlcnRf dmFyKGNvbnN0IE51bWVyaWNWYXIgKnZhciwgTnVtZXJpY1NvcnRTdXBwb3J0ICpuc3MpCiAKIAlp ZiAobnNzLT5lc3RpbWF0aW5nKQogCXsKLQkJdWludDMyCQl0bXAgPSAoKHVpbnQzMikgcmVzdWx0 Ci0JCQkJCQkgICBeICh1aW50MzIpICgodWludDY0KSByZXN1bHQgPj4gMzIpKTsKLQotCQlhZGRI eXBlckxvZ0xvZygmbnNzLT5hYmJyX2NhcmQsIERhdHVtR2V0VUludDMyKGhhc2hfdWludDMyKHRt cCkpKTsKKwkJYWRkSHlwZXJMb2dMb2coJm5zcy0+YWJicl9jYXJkLCAodWludDMyKSBtdXJtdXJo YXNoNjQocmVzdWx0KSk7CiAJfQogCiAJcmV0dXJuIE51bWVyaWNBYmJyZXZHZXREYXR1bShyZXN1 bHQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3V1aWQuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC91dWlkLmMKaW5kZXggNmVlMzc1MmFjNzguLjg4ODgwMmMzMDEyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdXVpZC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC91dWlkLmMKQEAgLTM5NiwxMSArMzk2LDcgQEAgdXVpZF9hYmJyZXZfY29udmVydChE YXR1bSBvcmlnaW5hbCwgU29ydFN1cHBvcnQgc3N1cCkKIAogCWlmICh1c3MtPmVzdGltYXRpbmcp CiAJewotCQl1aW50MzIJCXRtcDsKLQotCQl0bXAgPSBEYXR1bUdldFVJbnQzMihyZXMpIF4gKHVp bnQzMikgKERhdHVtR2V0VUludDY0KHJlcykgPj4gMzIpOwotCi0JCWFkZEh5cGVyTG9nTG9nKCZ1 c3MtPmFiYnJfY2FyZCwgRGF0dW1HZXRVSW50MzIoaGFzaF91aW50MzIodG1wKSkpOworCQlhZGRI eXBlckxvZ0xvZygmdXNzLT5hYmJyX2NhcmQsICh1aW50MzIpIG11cm11cmhhc2g2NChEYXR1bUdl dFVJbnQ2NChyZXMpKSk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC92YXJsZW5hLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IGMw ZmY1MWJkMmZjLi45ODMyNzM5Yzg0NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3ZhcmxlbmEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC0yMTU3 LDE3ICsyMTU3LDEyIEBAIHZhcnN0cl9hYmJyZXZfY29udmVydChEYXR1bSBvcmlnaW5hbCwgU29y dFN1cHBvcnQgc3N1cCkKIAkJCQkJCQkJICAgTWluKGxlbiwgUEdfQ0FDSEVfTElORV9TSVpFKSkp OwogCiAJaWYgKGxlbiA+IFBHX0NBQ0hFX0xJTkVfU0laRSkKLQkJaGFzaCBePSBEYXR1bUdldFVJ bnQzMihoYXNoX3VpbnQzMigodWludDMyKSBsZW4pKTsKKwkJaGFzaCBePSBtdXJtdXJoYXNoMzIo KHVpbnQzMikgbGVuKTsKIAogCWFkZEh5cGVyTG9nTG9nKCZzc3MtPmZ1bGxfY2FyZCwgaGFzaCk7 CiAKIAkvKiBIYXNoIGFiYnJldmlhdGVkIGtleSAqLwotCXsKLQkJdWludDMyCQl0bXA7Ci0KLQkJ dG1wID0gRGF0dW1HZXRVSW50MzIocmVzKSBeICh1aW50MzIpIChEYXR1bUdldFVJbnQ2NChyZXMp ID4+IDMyKTsKLQkJaGFzaCA9IERhdHVtR2V0VUludDMyKGhhc2hfdWludDMyKHRtcCkpOwotCX0K KwloYXNoID0gKHVpbnQzMikgbXVybXVyaGFzaDY0KERhdHVtR2V0VUludDY0KHJlcykpOwogCiAJ YWRkSHlwZXJMb2dMb2coJnNzcy0+YWJicl9jYXJkLCBoYXNoKTsKIAotLSAKMi40My4wCgo= --0000000000006bda24064f6c14b4--