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 1vx3dA-00Cyij-05 for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 13:48:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vx3c8-000yYJ-1V for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 13:47:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vx3c8-000yY2-0K for pgsql-hackers@lists.postgresql.org; Mon, 02 Mar 2026 13:47:12 +0000 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vx3c6-000000001Tx-1DJq for pgsql-hackers@postgresql.org; Mon, 02 Mar 2026 13:47:12 +0000 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4838c15e3cbso40229425e9.3 for ; Mon, 02 Mar 2026 05:47:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772459229; x=1773064029; darn=postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=VfOeAtHq/0JXI5nw8hqGUG6QbS1AlXrLmjQtDrWHf6g=; b=X64L/78KkpP/b5lPiQhx6oHBFH4Z2vGBDKKlVwrmqUvr6gTY4X09eNcxknZeP0LTdh OF9g0RpsupZOuC763rFDqsqLLFViuxO/3NKlV+yZPHE9YOL7teIaw3gS7BGoURzm5PRz THnf1yzVRXav5Lpaj3+4ncrjsb4EtcwZ+HLbDWQf0kU3jOFyXcCrYMYCG+qBsDjF4Dvk RkhbrEJnCD3xQBUKgZwMPsEOPRb1mxProZ4evPBeijcqIj4gCy1IUeCLY7/IN1Fgt3G+ dVjTW6VzpSiw+3wlGiOy4FvjIaK45s1mt6HJ2aM3FlNv+oVUC14A/X3hC6Px/MXbsi5U qP6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772459229; x=1773064029; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=VfOeAtHq/0JXI5nw8hqGUG6QbS1AlXrLmjQtDrWHf6g=; b=gDaN4zboKtQlu7NHqr/3V6SmpwSEsg9uM8cEHkJHIb1iGC0/BIelYWlnfkceraJFES JWTVqLeuLnbPBDt9YZL0iNk8awK9GEpAW5cYHxfilpmRh0hpwTo8x10p3Hs/SzHzL+/w IjS+KmVOMCUI0KlOBc3kjQRfYHoAlyYSkwBZoXxOYt1PSs03Dt7OesRk47d+xIwhQ3fG wkzp1RtjggF+67o1bqeOFg3GKBmO2vxdk0Uwfu/x+EhokIuO7n5NJLPxwS1tBn8gDyqj rKIP/uih16LYAhE03ntzSRxQAD7/3oHYz2faezMa8DrkvH7mSDPc2gx0m4k+nMc1ekFa /cZQ== X-Forwarded-Encrypted: i=1; AJvYcCU3ZzKvI0CCad+tuZIaRyYCBtjq/1MNwtha2xIrKVe+dGtzy6Ta0hDZ/g2dDccqpCUkexY7lZ9nm+YBl3Y9@postgresql.org X-Gm-Message-State: AOJu0YwaCJP0LDwiYF6lVjVR04w4cKU/HSFKg5E4LeeXCDtessWkrH+Z TG2VIFtanlL5ZcDVevE5Y5hUpQDMxDarG0ka0XLP52IMF11+8uWWYEut X-Gm-Gg: ATEYQzzDqOJh3mMPqf/1GT8HX2IGF48T1GMrYtOkiqp6VgHaHyW7yCfKSNtXuwL1jcy riyPUrNI6euxhrSOhFutgDVc3WiBKyyeLKpYZ6HsWIF6G7U5Gd88KjEiPi3svXvrEpfx281bAr5 vcyMS6xITGXP5zwU93WLWV9YPyuHacfGAEk5dMnUHSW9yhk8OU8zDO3/a8tQwv/pR7HPSZNx50B YCHLzaJP3i1PMwoUJ9dm1u1eG7f2fpuHkckXbq6aQoCG/Ag4V+e/kJm1JrZZv9B/uVlcXBYBgb6 VqTdWxMon4xjRynmwRA6eliUk5iKv+S316f7yd4rTH1kCwCtl4prnKDzThjQKE21QayVln0wMVs XC33L8V2KTheYX7KDNkagdfS1iywDYiddpcLUi5k+ax9vmB8kPORos+dljoClAKuk93BheS9zPi kkH/1aoFxnt/tJb/oYr8apvi199RJj68fmiaI= X-Received: by 2002:a05:600c:37cf:b0:477:6d96:b3c8 with SMTP id 5b1f17b1804b1-483c9c23b6amr220209095e9.23.1772459229013; Mon, 02 Mar 2026 05:47:09 -0800 (PST) Received: from [172.31.5.233] ([165.225.27.16]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483c3b3474dsm267630565e9.1.2026.03.02.05.47.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Mar 2026 05:47:08 -0800 (PST) Content-Type: multipart/mixed; boundary="------------iLY1WMY6G50k1XsWCEXMOoTy" Message-ID: <8e054492-3984-403e-a959-9b2a6a85f3eb@gmail.com> Date: Mon, 2 Mar 2026 14:47:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Use correct collation in pg_trgm From: David Geier To: Zsolt Parragi Cc: Alexander Korotkov , pgsql-hackers , Heikki Linnakangas , Kirill Reshke References: <1981b5f0-7d06-4911-a231-23bbb6bf504c@gmail.com> <6f983adb-fd5d-4e0e-8400-513fbea304e0@gmail.com> <7ae842f2-779c-466e-841d-d11e419a9428@gmail.com> <27121a4c-2186-47ad-84c4-136b99413df1@gmail.com> Content-Language: en-US In-Reply-To: <27121a4c-2186-47ad-84c4-136b99413df1@gmail.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------iLY1WMY6G50k1XsWCEXMOoTy Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit > I've rebased the patches on latest master. Attached is v6 of the patch which fixes a problem with the tests: pg_trgm_collation_1.out mistakenly contained \endif at the end of the file. -- David Geier --------------iLY1WMY6G50k1XsWCEXMOoTy Content-Type: text/x-patch; charset=UTF-8; name="v6-0002-Use-correct-collation-for-finding-word-boundaries.patch" Content-Disposition: attachment; filename*0="v6-0002-Use-correct-collation-for-finding-word-boundaries.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5MTZlNTAxNzRiZjJkZjdmYmUxMzg4MDNmYmJkOGY5YjQzNWRkMmQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogRnJpLCAyMyBKYW4gMjAyNiAxNTozOTowNiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggdjYgMi8yXSBVc2UgY29ycmVjdCBjb2xsYXRpb24gZm9yIGZpbmRpbmcgd29yZCBib3Vu ZGFyaWVzCgpwZ190cmdtIGZpbmRzIGFsbCB3b3JkcyBpbiB0aGUgaW5wdXQgc3RyaW5nIGFu ZCBjcmVhdGVzIHRyaWdyYW1zIGZvcgp0aGVtLiBXb3JkIGNoYXJhY3RlcnMgYXJlIGFscGhh LW51bWVyaWMgY2hhcmFjdGVycy4gV2hhdCBxdWFsaWZpZXMgYXMKYWxwaGEtbnVtZXJpYyBj aGFyYWN0ZXIgZGVwZW5kcyBvbiB0aGUgY29sbGF0aW9uLiBQcmV2aW91c2x5LCBwZ190cmdt CmFsd2F5cyB1c2VkIHRoZSBkZWZhdWx0IGNvbGxhdGlvbi4gTm93IHRoZSBzcGVjaWZpZWQg Y29sbGF0aW9uIGlzIHVzZWQKaW5zdGVhZC4KLS0tCiAuLi4vcGdfdHJnbS9leHBlY3RlZC9w Z190cmdtX2NvbGxhdGlvbi5vdXQgICAgfCAxMyArKysrKysrKysrKysKIGNvbnRyaWIvcGdf dHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsICAgICB8ICA1ICsrKysrCiBjb250cmli L3BnX3RyZ20vdHJnbS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIGNv bnRyaWIvcGdfdHJnbS90cmdtX29wLmMgICAgICAgICAgICAgICAgICAgICB8IDIwICsrKysr KysrKy0tLS0tLS0tLS0KIGNvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jICAgICAgICAg ICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jICAgICAg ICAgICAgICAgfCAgOCArKysrLS0tLQogc3JjL2luY2x1ZGUvdHNlYXJjaC90c19sb2NhbGUu aCAgICAgICAgICAgICAgIHwgIDMgKystCiA3IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlv bnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS9l eHBlY3RlZC9wZ190cmdtX2NvbGxhdGlvbi5vdXQgYi9jb250cmliL3BnX3RyZ20vZXhwZWN0 ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0CmluZGV4IDQ3MmNlODY3NjY1Li4wY2M1M2VkZDgy MSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0 aW9uLm91dAorKysgYi9jb250cmliL3BnX3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRp b24ub3V0CkBAIC00MSwzICs0MSwxNiBAQCBTRUxFQ1Qgc2ltaWxhcml0eSgnxLFzdGFuYnVs JyBDT0xMQVRFICJDIiwgJ0lTVEFOQlVMJyBDT0xMQVRFICJDIik7CiAgMC41NDU0NTQ1Ngog KDEgcm93KQogCistLSBUZXN0IHRoYXQgd29yZCBib3VuZGFyeSBpZGVudGlmaWNhdGlvbiB1 c2VzIHNwZWNpZmllZCBjb2xsYXRpb24KK1NFTEVDVCBzaG93X3RyZ20oJ2hlbGxvxLF0ZXN0 SXdvcmxkxLBjb2RlJyBDT0xMQVRFICJ0ci14LWljdSIpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3RyZ20gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsweDhmYzBhMiwweDkzZGZiZiwweDFiZjQzYywi ICBoIiwiIGhlIiwweDIyZDQ0ZiwweDQzOThmZixjb2QsImRlICIsZGljLGVsbCxlc3QsaGVs LGljbyxsZGksbGxvLG9kZSxvcmwsMHg3MWI4ZjUscmxkLHRlcyx3b3J9CisoMSByb3cpCisK K1NFTEVDVCBzaG93X3RyZ20oJ2hlbGxvxLF0ZXN0SXdvcmxkxLBjb2RlJyBDT0xMQVRFICJD Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNob3dfdHJnbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgeyIgIGMiLCIgIGgiLCIgIHQiLCIgY28iLCIgaGUiLCIgdGUiLGNvZCwi ZGUgIixlbGwsZXN0LGhlbCxpd28sImxkICIsbGxvLCJsbyAiLG9kZSxvcmwscmxkLHN0aSx0 ZXMsdGl3LHdvcn0KKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3Nx bC9wZ190cmdtX2NvbGxhdGlvbi5zcWwgYi9jb250cmliL3BnX3RyZ20vc3FsL3BnX3RyZ21f Y29sbGF0aW9uLnNxbAppbmRleCBhZmIzOTczYThiMy4uZTFhNWM3YzVmYTggMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCisrKyBiL2Nv bnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCkBAIC0yMiwzICsyMiw4 IEBAIFNFTEVDVCBzaG93X3RyZ20oJ0lTVEFOQlVMJyBDT0xMQVRFICJDIik7CiBTRUxFQ1Qg c2ltaWxhcml0eSgnxLFzdGFuYnVsJyBDT0xMQVRFICJ0ci14LWljdSIsICdJU1RBTkJVTCcg Q09MTEFURSAidHIteC1pY3UiKTsKIFNFTEVDVCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENP TExBVEUgIkMiLCAnSVNUQU5CVUwnIENPTExBVEUgIkMiKTsKIAorLS0gVGVzdCB0aGF0IHdv cmQgYm91bmRhcnkgaWRlbnRpZmljYXRpb24gdXNlcyBzcGVjaWZpZWQgY29sbGF0aW9uCisK K1NFTEVDVCBzaG93X3RyZ20oJ2hlbGxvxLF0ZXN0SXdvcmxkxLBjb2RlJyBDT0xMQVRFICJ0 ci14LWljdSIpOworU0VMRUNUIHNob3dfdHJnbSgnaGVsbG/EsXRlc3RJd29ybGTEsGNvZGUn IENPTExBVEUgIkMiKTsKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3RyZ20uaCBi L2NvbnRyaWIvcGdfdHJnbS90cmdtLmgKaW5kZXggYjY5MTFlOTE0NTguLjNjNGRiMTI5ZTIw IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJnbS5oCisrKyBiL2NvbnRyaWIvcGdf dHJnbS90cmdtLmgKQEAgLTQ3LDkgKzQ3LDkgQEAgdHlwZWRlZiBjaGFyIHRyZ21bM107CiB9 IHdoaWxlKDApCiBleHRlcm4gaW50CSgqQ01QVFJHTSkgKGNvbnN0IHZvaWQgKmEsIGNvbnN0 IHZvaWQgKmIpOwogCi0jZGVmaW5lIElTV09SRENIUihjLCBsZW4pCSh0X2lzYWxudW1fd2l0 aF9sZW4oYywgbGVuKSkKLSNkZWZpbmUgSVNQUklOVEFCTEVDSEFSKGEpCSggaXNhc2NpaSgg Kih1bnNpZ25lZCBjaGFyKikoYSkgKSAmJiAoaXNhbG51bSggKih1bnNpZ25lZCBjaGFyKiko YSkgKSB8fCAqKHVuc2lnbmVkIGNoYXIqKShhKT09JyAnKSApCi0jZGVmaW5lIElTUFJJTlRB QkxFVFJHTSh0KQkoIElTUFJJTlRBQkxFQ0hBUiggKChjaGFyKikodCkpICkgJiYgSVNQUklO VEFCTEVDSEFSKCAoKGNoYXIqKSh0KSkrMSApICYmIElTUFJJTlRBQkxFQ0hBUiggKChjaGFy KikodCkpKzIgKSApCisjZGVmaW5lIElTV09SRENIUihjLCBsZW4sIGNvbGxhdGlvbikJKHRf aXNhbG51bV93aXRoX2xlbl9jb2xsYXRpb24oYywgbGVuLCBjb2xsYXRpb24pKQorI2RlZmlu ZSBJU1BSSU5UQUJMRUNIQVIoYSkJCQkJKCBpc2FzY2lpKCAqKHVuc2lnbmVkIGNoYXIqKShh KSApICYmIChpc2FsbnVtKCAqKHVuc2lnbmVkIGNoYXIqKShhKSApIHx8ICoodW5zaWduZWQg Y2hhciopKGEpPT0nICcpICkKKyNkZWZpbmUgSVNQUklOVEFCTEVUUkdNKHQpCQkJCSggSVNQ UklOVEFCTEVDSEFSKCAoKGNoYXIqKSh0KSkgKSAmJiBJU1BSSU5UQUJMRUNIQVIoICgoY2hh ciopKHQpKSsxICkgJiYgSVNQUklOVEFCTEVDSEFSKCAoKGNoYXIqKSh0KSkrMiApICkKIAog I2RlZmluZSBJU0VTQ0FQRUNIQVIoeCkgKCooeCkgPT0gJ1xcJykJLyogV2lsZGNhcmQgZXNj YXBlIGNoYXJhY3RlciAqLwogI2RlZmluZSBJU1dJTERDQVJEQ0hBUih4KSAoKih4KSA9PSAn XycgfHwgKih4KSA9PSAnJScpCS8qIFdpbGRjYXJkCmRpZmYgLS1naXQgYS9jb250cmliL3Bn X3RyZ20vdHJnbV9vcC5jIGIvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYwppbmRleCA1ZjJk ZWZiNTdmMi4uY2EzMGNiN2MzNjMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdt X29wLmMKKysrIGIvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYwpAQCAtMjkyLDcgKzI5Miw3 IEBAIGNvbXBfdHJnbShjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogICogZW5kd29y ZCBwb2ludHMgdG8gdGhlIGNoYXJhY3RlciBhZnRlciB3b3JkCiAgKi8KIHN0YXRpYyBjaGFy ICoKLWZpbmRfd29yZChjaGFyICpzdHIsIGludCBsZW5zdHIsIGNoYXIgKiplbmR3b3JkKQor ZmluZF93b3JkKGNoYXIgKnN0ciwgaW50IGxlbnN0ciwgY2hhciAqKmVuZHdvcmQsIE9pZCBj b2xsYXRpb24pCiB7CiAJY2hhcgkgICAqYmVnaW53b3JkID0gc3RyOwogCWNvbnN0IGNoYXIg KmVuZHN0ciA9IHN0ciArIGxlbnN0cjsKQEAgLTMwMSw3ICszMDEsNyBAQCBmaW5kX3dvcmQo Y2hhciAqc3RyLCBpbnQgbGVuc3RyLCBjaGFyICoqZW5kd29yZCkKIAl7CiAJCWludAkJCWNs ZW4gPSBwZ19tYmxlbl9yYW5nZShiZWdpbndvcmQsIGVuZHN0cik7CiAKLQkJaWYgKElTV09S RENIUihiZWdpbndvcmQsIGNsZW4pKQorCQlpZiAoSVNXT1JEQ0hSKGJlZ2lud29yZCwgY2xl biwgY29sbGF0aW9uKSkKIAkJCWJyZWFrOwogCQliZWdpbndvcmQgKz0gY2xlbjsKIAl9CkBA IC0zMTQsNyArMzE0LDcgQEAgZmluZF93b3JkKGNoYXIgKnN0ciwgaW50IGxlbnN0ciwgY2hh ciAqKmVuZHdvcmQpCiAJewogCQlpbnQJCQljbGVuID0gcGdfbWJsZW5fcmFuZ2UoKmVuZHdv cmQsIGVuZHN0cik7CiAKLQkJaWYgKCFJU1dPUkRDSFIoKmVuZHdvcmQsIGNsZW4pKQorCQlp ZiAoIUlTV09SRENIUigqZW5kd29yZCwgY2xlbiwgY29sbGF0aW9uKSkKIAkJCWJyZWFrOwog CQkqZW5kd29yZCArPSBjbGVuOwogCX0KQEAgLTQ5MCw3ICs0OTAsNyBAQCBnZW5lcmF0ZV90 cmdtX29ubHkoZ3Jvd2FibGVfdHJnbV9hcnJheSAqZHN0LCBjaGFyICpzdHIsIGludCBzbGVu LCBPaWQgY29sbGF0aW9uLAogCX0KIAogCWV3b3JkID0gc3RyOwotCXdoaWxlICgoYndvcmQg PSBmaW5kX3dvcmQoZXdvcmQsIHNsZW4gLSAoZXdvcmQgLSBzdHIpLCAmZXdvcmQpKSAhPSBO VUxMKQorCXdoaWxlICgoYndvcmQgPSBmaW5kX3dvcmQoZXdvcmQsIHNsZW4gLSAoZXdvcmQg LSBzdHIpLCAmZXdvcmQsIGNvbGxhdGlvbikpICE9IE5VTEwpCiAJewogCQlpbnQJCQlvbGRs ZW47CiAKQEAgLTkwNyw3ICs5MDcsNyBAQCBjYWxjX3dvcmRfc2ltaWxhcml0eShjaGFyICpz dHIxLCBpbnQgc2xlbjEsIGNoYXIgKnN0cjIsIGludCBzbGVuMiwKICAqLwogc3RhdGljIGNv bnN0IGNoYXIgKgogZ2V0X3dpbGRjYXJkX3BhcnQoY29uc3QgY2hhciAqc3RyLCBpbnQgbGVu c3RyLAotCQkJCSAgY2hhciAqYnVmLCBpbnQgKmJ5dGVsZW4pCisJCQkJICBjaGFyICpidWYs IGludCAqYnl0ZWxlbiwgT2lkIGNvbGxhdGlvbikKIHsKIAljb25zdCBjaGFyICpiZWdpbndv cmQgPSBzdHI7CiAJY29uc3QgY2hhciAqZW5kd29yZDsKQEAgLTkzMCw3ICs5MzAsNyBAQCBn ZXRfd2lsZGNhcmRfcGFydChjb25zdCBjaGFyICpzdHIsIGludCBsZW5zdHIsCiAKIAkJaWYg KGluX2VzY2FwZSkKIAkJewotCQkJaWYgKElTV09SRENIUihiZWdpbndvcmQsIGNsZW4pKQor CQkJaWYgKElTV09SRENIUihiZWdpbndvcmQsIGNsZW4sIGNvbGxhdGlvbikpCiAJCQkJYnJl YWs7CiAJCQlpbl9lc2NhcGUgPSBmYWxzZTsKIAkJCWluX2xlYWRpbmdfd2lsZGNhcmRfbWV0 YSA9IGZhbHNlOwpAQCAtOTQxLDcgKzk0MSw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0 IGNoYXIgKnN0ciwgaW50IGxlbnN0ciwKIAkJCQlpbl9lc2NhcGUgPSB0cnVlOwogCQkJZWxz ZSBpZiAoSVNXSUxEQ0FSRENIQVIoYmVnaW53b3JkKSkKIAkJCQlpbl9sZWFkaW5nX3dpbGRj YXJkX21ldGEgPSB0cnVlOwotCQkJZWxzZSBpZiAoSVNXT1JEQ0hSKGJlZ2lud29yZCwgY2xl bikpCisJCQllbHNlIGlmIChJU1dPUkRDSFIoYmVnaW53b3JkLCBjbGVuLCBjb2xsYXRpb24p KQogCQkJCWJyZWFrOwogCQkJZWxzZQogCQkJCWluX2xlYWRpbmdfd2lsZGNhcmRfbWV0YSA9 IGZhbHNlOwpAQCAtOTc5LDcgKzk3OSw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0IGNo YXIgKnN0ciwgaW50IGxlbnN0ciwKIAkJY2xlbiA9IHBnX21ibGVuX3JhbmdlKGVuZHdvcmQs IGVuZHN0cik7CiAJCWlmIChpbl9lc2NhcGUpCiAJCXsKLQkJCWlmIChJU1dPUkRDSFIoZW5k d29yZCwgY2xlbikpCisJCQlpZiAoSVNXT1JEQ0hSKGVuZHdvcmQsIGNsZW4sIGNvbGxhdGlv bikpCiAJCQl7CiAJCQkJbWVtY3B5KHMsIGVuZHdvcmQsIGNsZW4pOwogCQkJCXMgKz0gY2xl bjsKQEAgLTEwMDYsNyArMTAwNiw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0IGNoYXIg KnN0ciwgaW50IGxlbnN0ciwKIAkJCQlpbl90cmFpbGluZ193aWxkY2FyZF9tZXRhID0gdHJ1 ZTsKIAkJCQlicmVhazsKIAkJCX0KLQkJCWVsc2UgaWYgKElTV09SRENIUihlbmR3b3JkLCBj bGVuKSkKKwkJCWVsc2UgaWYgKElTV09SRENIUihlbmR3b3JkLCBjbGVuLCBjb2xsYXRpb24p KQogCQkJewogCQkJCW1lbWNweShzLCBlbmR3b3JkLCBjbGVuKTsKIAkJCQlzICs9IGNsZW47 CkBAIC0xMDcwLDcgKzEwNzAsNyBAQCBnZW5lcmF0ZV93aWxkY2FyZF90cmdtKGNvbnN0IGNo YXIgKnN0ciwgaW50IHNsZW4sIE9pZCBjb2xsYXRpb24pCiAJICovCiAJZXdvcmQgPSBzdHI7 CiAJd2hpbGUgKChld29yZCA9IGdldF93aWxkY2FyZF9wYXJ0KGV3b3JkLCBzbGVuIC0gKGV3 b3JkIC0gc3RyKSwKLQkJCQkJCQkJCSAgYnVmLCAmYnl0ZWxlbikpICE9IE5VTEwpCisJCQkJ CQkJCQkgIGJ1ZiwgJmJ5dGVsZW4sIGNvbGxhdGlvbikpICE9IE5VTEwpCiAJewogCQljaGFy CSAgICp3b3JkOwogCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAu YyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jCmluZGV4IDJmMTkwZGYyZjY1Li41 N2Y3YjEyYzNkOSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ190cmdtL3RyZ21fcmVnZXhwLmMK KysrIGIvY29udHJpYi9wZ190cmdtL3RyZ21fcmVnZXhwLmMKQEAgLTgxMSw3ICs4MTEsNyBA QCBnZXRDb2xvckluZm8ocmVnZXhfdCAqcmVnZXgsIFRyZ21ORkEgKnRyZ21ORkEsIE9pZCBj b2xsYXRpb24pCiAKIAkJCWlmICghY2xlbikKIAkJCQljb250aW51ZTsJCS8qIG9rIHRvIGln bm9yZSBpdCBhbHRvZ2V0aGVyICovCi0JCQlpZiAoSVNXT1JEQ0hSKGMuYnl0ZXMsIGNsZW4p KQorCQkJaWYgKElTV09SRENIUihjLmJ5dGVzLCBjbGVuLCBjb2xsYXRpb24pKQogCQkJCWNv bG9ySW5mby0+d29yZENoYXJzW2NvbG9ySW5mby0+d29yZENoYXJzQ291bnQrK10gPSBjOwog CQkJZWxzZQogCQkJCWNvbG9ySW5mby0+Y29udGFpbnNOb25Xb3JkID0gdHJ1ZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdHNfbG9jYWxlLmMgYi9zcmMvYmFja2VuZC90 c2VhcmNoL3RzX2xvY2FsZS5jCmluZGV4IGRmMDJmZmIxMmZkLi42ZjMzMWUwNTRhMiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdHNlYXJjaC90c19sb2NhbGUuYworKysgYi9zcmMvYmFj a2VuZC90c2VhcmNoL3RzX2xvY2FsZS5jCkBAIC0yNiwyNyArMjYsMjcgQEAgc3RhdGljIHZv aWQgdHNlYXJjaF9yZWFkbGluZV9jYWxsYmFjayh2b2lkICphcmcpOwogI2RlZmluZSBHRU5F UkFURV9UX0lTQ0xBU1NfREVGKGNoYXJhY3Rlcl9jbGFzcykgXAogLyogbWJsZW4gc2hhbGwg YmUgdGhhdCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyICovIFwKIGludCBcCi10X2lzIyNjaGFy YWN0ZXJfY2xhc3MjI193aXRoX2xlbihjb25zdCBjaGFyICpwdHIsIGludCBtYmxlbikgXAor dF9pcyMjY2hhcmFjdGVyX2NsYXNzIyNfd2l0aF9sZW5fY29sbGF0aW9uKGNvbnN0IGNoYXIg KnB0ciwgaW50IG1ibGVuLCBPaWQgY29sbGF0aW9uKSBcCiB7IFwKIAlwZ193Y2hhcgl3c3Ry W1dDX0JVRl9MRU5dOyBcCiAJaW50CQkJd2xlbiBwZ19hdHRyaWJ1dGVfdW51c2VkKCk7IFwK IAl3bGVuID0gcGdfbWIyd2NoYXJfd2l0aF9sZW4ocHRyLCB3c3RyLCBtYmxlbik7IFwKIAlB c3NlcnQod2xlbiA8PSAxKTsgXAogCS8qIHBhc3Mgc2luZ2xlIGNoYXJhY3Rlciwgb3IgTlVM IGlmIGVtcHR5ICovIFwKLQlyZXR1cm4gcGdfaXN3IyNjaGFyYWN0ZXJfY2xhc3Mod3N0clsw XSwgcGdfZGF0YWJhc2VfbG9jYWxlKCkpOyBcCisJcmV0dXJuIHBnX2lzdyMjY2hhcmFjdGVy X2NsYXNzKHdzdHJbMF0sIHBnX25ld2xvY2FsZV9mcm9tX2NvbGxhdGlvbihjb2xsYXRpb24p KTsgXAogfSBcCiBcCiAvKiBwdHIgc2hhbGwgcG9pbnQgdG8gYSBOVUwtdGVybWluYXRlZCBz dHJpbmcgKi8gXAogaW50IFwKIHRfaXMjI2NoYXJhY3Rlcl9jbGFzcyMjX2NzdHIoY29uc3Qg Y2hhciAqcHRyKSBcCiB7IFwKLQlyZXR1cm4gdF9pcyMjY2hhcmFjdGVyX2NsYXNzIyNfd2l0 aF9sZW4ocHRyLCBwZ19tYmxlbl9jc3RyKHB0cikpOyBcCisJcmV0dXJuIHRfaXMjI2NoYXJh Y3Rlcl9jbGFzcyMjX3dpdGhfbGVuX2NvbGxhdGlvbihwdHIsIHBnX21ibGVuX2NzdHIocHRy KSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsgXAogfSBcCiAvKiBwdHIgc2hhbGwgcG9pbnQg dG8gYSBzdHJpbmcgd2l0aCBwcmUtdmFsaWRhdGVkIGVuY29kaW5nICovIFwKIGludCBcCiB0 X2lzIyNjaGFyYWN0ZXJfY2xhc3MjI191bmJvdW5kZWQoY29uc3QgY2hhciAqcHRyKSBcCiB7 IFwKLQlyZXR1cm4gdF9pcyMjY2hhcmFjdGVyX2NsYXNzIyNfd2l0aF9sZW4ocHRyLCBwZ19t Ymxlbl91bmJvdW5kZWQocHRyKSk7IFwKKwlyZXR1cm4gdF9pcyMjY2hhcmFjdGVyX2NsYXNz IyNfd2l0aF9sZW5fY29sbGF0aW9uKHB0ciwgcGdfbWJsZW5fdW5ib3VuZGVkKHB0ciksIERF RkFVTFRfQ09MTEFUSU9OX09JRCk7IFwKIH0gXAogLyogaGlzdG9yaWNhbCBuYW1lIGZvciBf dW5ib3VuZGVkICovIFwKIGludCBcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90c2VhcmNo L3RzX2xvY2FsZS5oIGIvc3JjL2luY2x1ZGUvdHNlYXJjaC90c19sb2NhbGUuaAppbmRleCA2 ZTJkNjdlZTRhNS4uN2FkNzA0MmQ1MjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3RzZWFy Y2gvdHNfbG9jYWxlLmgKKysrIGIvc3JjL2luY2x1ZGUvdHNlYXJjaC90c19sb2NhbGUuaApA QCAtMTgsNiArMTgsNyBAQAogCiAjaW5jbHVkZSAibGliL3N0cmluZ2luZm8uaCIKICNpbmNs dWRlICJtYi9wZ193Y2hhci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgi CiAjaW5jbHVkZSAidXRpbHMvcGdfbG9jYWxlLmgiCiAKIC8qIHdvcmtpbmcgc3RhdGUgZm9y IHRzZWFyY2hfcmVhZGxpbmUgKHNob3VsZCBiZSBhIGxvY2FsIHZhciBpbiBjYWxsZXIpICov CkBAIC01Niw3ICs1Nyw3IEBAIHRzX2NvcHljaGFyX2NzdHIodm9pZCAqZGVzdCwgY29uc3Qg dm9pZCAqc3JjKQogI2RlZmluZSBDT1BZQ0hBUiB0c19jb3B5Y2hhcl9jc3RyCiAKICNkZWZp bmUgR0VORVJBVEVfVF9JU0NMQVNTX0RFQ0woY2hhcmFjdGVyX2NsYXNzKSBcCi1leHRlcm4g aW50CXRfaXMjI2NoYXJhY3Rlcl9jbGFzcyMjX3dpdGhfbGVuKGNvbnN0IGNoYXIgKnB0ciwg aW50IGxlbik7IFwKK2V4dGVybiBpbnQJdF9pcyMjY2hhcmFjdGVyX2NsYXNzIyNfd2l0aF9s ZW5fY29sbGF0aW9uKGNvbnN0IGNoYXIgKnB0ciwgaW50IGxlbiwgT2lkIGNvbGxhdGlvbik7 IFwKIGV4dGVybiBpbnQJdF9pcyMjY2hhcmFjdGVyX2NsYXNzIyNfY3N0cihjb25zdCBjaGFy ICpwdHIpOyBcCiBleHRlcm4gaW50CXRfaXMjI2NoYXJhY3Rlcl9jbGFzcyMjX3VuYm91bmRl ZChjb25zdCBjaGFyICpwdHIpOyBcCiBcCi0tIAoyLjUxLjAKCg== --------------iLY1WMY6G50k1XsWCEXMOoTy Content-Type: text/x-patch; charset=UTF-8; name="v6-0001-Use-correct-collation-for-lowercasing.patch" Content-Disposition: attachment; filename="v6-0001-Use-correct-collation-for-lowercasing.patch" Content-Transfer-Encoding: base64 RnJvbSAzYmRlZjU5YTZmNGVjODliNzg1NWRiZmYxYjU2MGZiODc1M2EzMTMwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCAyMSBKYW4gMjAyNiAxNDo1NDoyOCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggdjYgMS8yXSBVc2UgY29ycmVjdCBjb2xsYXRpb24gZm9yIGxvd2VyY2FzaW5nCgpwZ190 cmdtIGNvbnZlcnRzIHRoZSBpbnB1dCB3b3JkcyB0byBsb3dlcmNhc2UgYmVmb3JlIGV4dHJh Y3RpbmcgdGhlCnRyaWdyYW1zLiBUaGUgbG93ZXJjYXNlIGNvbnZlcnNpb24gZGVwZW5kcyBv biB0aGUgY29sbGF0aW9uLiBQcmV2aW91c2x5LApwZ190cmdtIGFsd2F5cyB1c2VkIHRoZSBk ZWZhdWx0IGNvbGxhdGlvbi4gTm93LCB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbgppcyB1c2Vk IGluc3RlYWQuCi0tLQogY29udHJpYi9wZ190cmdtL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIC4uLi9wZ190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0aW9u Lm91dCAgICB8IDQzICsrKysrKysrKysrKysKIC4uLi9wZ190cmdtL2V4cGVjdGVkL3BnX3Ry Z21fY29sbGF0aW9uXzEub3V0ICB8ICA5ICsrKwogY29udHJpYi9wZ190cmdtL21lc29uLmJ1 aWxkICAgICAgICAgICAgICAgICAgIHwgIDEgKwogY29udHJpYi9wZ190cmdtL3NxbC9wZ190 cmdtX2NvbGxhdGlvbi5zcWwgICAgIHwgMjQgKysrKysrKysKIGNvbnRyaWIvcGdfdHJnbS90 cmdtLmggICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBjb250cmliL3BnX3RyZ20v dHJnbV9naW4uYyAgICAgICAgICAgICAgICAgICAgfCAgNyArKy0KIGNvbnRyaWIvcGdfdHJn bS90cmdtX2dpc3QuYyAgICAgICAgICAgICAgICAgICB8IDEwICsrLS0KIGNvbnRyaWIvcGdf dHJnbS90cmdtX29wLmMgICAgICAgICAgICAgICAgICAgICB8IDYwICsrKysrKysrKystLS0t LS0tLS0KIGNvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jICAgICAgICAgICAgICAgICB8 IDIwICsrKy0tLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCA0OCBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3RyZ20vZXhwZWN0 ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9w Z190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0aW9uXzEub3V0CiBjcmVhdGUgbW9kZSAx MDA2NDQgY29udHJpYi9wZ190cmdtL3NxbC9wZ190cmdtX2NvbGxhdGlvbi5zcWwKCmRpZmYg LS1naXQgYS9jb250cmliL3BnX3RyZ20vTWFrZWZpbGUgYi9jb250cmliL3BnX3RyZ20vTWFr ZWZpbGUKaW5kZXggYzE3NTY5OTNlYzcuLjI2YjMwMjhiNzVlIDEwMDY0NAotLS0gYS9jb250 cmliL3BnX3RyZ20vTWFrZWZpbGUKKysrIGIvY29udHJpYi9wZ190cmdtL01ha2VmaWxlCkBA IC0xNCw3ICsxNCw3IEBAIERBVEEgPSBwZ190cmdtLS0xLjUtLTEuNi5zcWwgcGdfdHJnbS0t MS40LS0xLjUuc3FsIHBnX3RyZ20tLTEuMy0tMS40LnNxbCBcCiAJcGdfdHJnbS0tMS4wLS0x LjEuc3FsCiBQR0ZJTEVERVNDID0gInBnX3RyZ20gLSB0cmlncmFtIG1hdGNoaW5nIgogCi1S RUdSRVNTID0gcGdfdHJnbSBwZ191dGY4X3RyZ20gcGdfd29yZF90cmdtIHBnX3N0cmljdF93 b3JkX3RyZ20KK1JFR1JFU1MgPSBwZ190cmdtIHBnX3V0ZjhfdHJnbSBwZ193b3JkX3RyZ20g cGdfc3RyaWN0X3dvcmRfdHJnbSBwZ190cmdtX2NvbGxhdGlvbgogCiBpZmRlZiBVU0VfUEdY UwogUEdfQ09ORklHID0gcGdfY29uZmlnCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20v ZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0IGIvY29udHJpYi9wZ190cmdtL2V4cGVj dGVkL3BnX3RyZ21fY29sbGF0aW9uLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNDcyY2U4Njc2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3Bn X3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb24ub3V0CkBAIC0wLDAgKzEsNDMgQEAK Ky8qCisgKiBUaGlzIHRlc3QgaXMgZm9yIElDVSBjb2xsYXRpb25zLgorICovCisvKiBza2lw IHRlc3QgaWYgbm90IFVURjggc2VydmVyIGVuY29kaW5nIG9yIG5vIElDVSBjb2xsYXRpb25z IGluc3RhbGxlZCAqLworU0VMRUNUIGdldGRhdGFiYXNlZW5jb2RpbmcoKSA8PiAnVVRGOCcg T1IKKyAgICAgICAoU0VMRUNUIGNvdW50KCopIEZST00gcGdfY29sbGF0aW9uIFdIRVJFIGNv bGxwcm92aWRlciA9ICdpJyBBTkQgY29sbG5hbWUgPD4gJ3VuaWNvZGUnKSA9IDAKKyAgICAg ICBBUyBza2lwX3Rlc3QgXGdzZXQKK1xpZiA6c2tpcF90ZXN0CitccXVpdAorXGVuZGlmCist LSBUZXN0IHRoYXQgbG93ZXJjYXNlIGNvbnZlcnNpb24gb2YgdHJpZ3JhbXMgdXNlcyBzcGVj aWZpZWQgY29sbGF0aW9uCitDUkVBVEUgVEFCTEUgdGVzdChjb2wgVEVYVCBDT0xMQVRFICJ0 ci14LWljdSIpOworSU5TRVJUIElOVE8gdGVzdCBWQUxVRVMgKCdJU1RBTkJVTCcpOworU0VM RUNUIHNob3dfdHJnbShjb2wpIEZST00gdGVzdDsKKyAgICAgICAgICAgICAgICAgICAgICAg c2hvd190cmdtICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsweGYzMWUxYSwweGZl NTgxZCwweDNlZmQzMCxhbmIsYnVsLG5idSxzdGEsdGFuLCJ1bCAifQorKDEgcm93KQorCitT RUxFQ1Qgc2hvd190cmdtKCdJU1RBTkJVTCcgQ09MTEFURSAidHIteC1pY3UiKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgc2hvd190cmdtICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHsweGYzMWUxYSwweGZlNTgxZCwweDNlZmQzMCxhbmIsYnVsLG5idSxzdGEsdGFuLCJ1 bCAifQorKDEgcm93KQorCitTRUxFQ1Qgc2hvd190cmdtKCdJU1RBTkJVTCcgQ09MTEFURSAi QyIpOworICAgICAgICAgICAgICAgICAgc2hvd190cmdtICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IiAgaSIs IiBpcyIsYW5iLGJ1bCxpc3QsbmJ1LHN0YSx0YW4sInVsICJ9CisoMSByb3cpCisKK1NFTEVD VCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENPTExBVEUgInRyLXgtaWN1IiwgJ0lTVEFOQlVM JyBDT0xMQVRFICJ0ci14LWljdSIpOworIHNpbWlsYXJpdHkgCistLS0tLS0tLS0tLS0KKyAg ICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENP TExBVEUgIkMiLCAnSVNUQU5CVUwnIENPTExBVEUgIkMiKTsKKyBzaW1pbGFyaXR5IAorLS0t LS0tLS0tLS0tCisgMC41NDU0NTQ1NgorKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmli L3BnX3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb25fMS5vdXQgYi9jb250cmliL3Bn X3RyZ20vZXhwZWN0ZWQvcGdfdHJnbV9jb2xsYXRpb25fMS5vdXQKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI1Yzk5YzRhYmYwCi0tLSAvZGV2L251bGwKKysr IGIvY29udHJpYi9wZ190cmdtL2V4cGVjdGVkL3BnX3RyZ21fY29sbGF0aW9uXzEub3V0CkBA IC0wLDAgKzEsOSBAQAorLyoKKyAqIFRoaXMgdGVzdCBpcyBmb3IgSUNVIGNvbGxhdGlvbnMu CisgKi8KKy8qIHNraXAgdGVzdCBpZiBub3QgVVRGOCBzZXJ2ZXIgZW5jb2Rpbmcgb3Igbm8g SUNVIGNvbGxhdGlvbnMgaW5zdGFsbGVkICovCitTRUxFQ1QgZ2V0ZGF0YWJhc2VlbmNvZGlu ZygpIDw+ICdVVEY4JyBPUgorICAgICAgIChTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jb2xs YXRpb24gV0hFUkUgY29sbHByb3ZpZGVyID0gJ2knIEFORCBjb2xsbmFtZSA8PiAndW5pY29k ZScpID0gMAorICAgICAgIEFTIHNraXBfdGVzdCBcZ3NldAorXGlmIDpza2lwX3Rlc3QKK1xx dWl0CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20vbWVzb24uYnVpbGQgYi9jb250cmli L3BnX3RyZ20vbWVzb24uYnVpbGQKaW5kZXggM2VjZjk1YmE4NjIuLjVlYWZhNzc0NDM1IDEw MDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vbWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9w Z190cmdtL21lc29uLmJ1aWxkCkBAIC00Miw2ICs0Miw3IEBAIHRlc3RzICs9IHsKICAgICAg ICdwZ191dGY4X3RyZ20nLAogICAgICAgJ3BnX3dvcmRfdHJnbScsCiAgICAgICAncGdfc3Ry aWN0X3dvcmRfdHJnbScsCisgICAgICAncGdfdHJnbV9jb2xsYXRpb24nLAogICAgIF0sCiAg IH0sCiB9CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3RyZ20vc3FsL3BnX3RyZ21fY29sbGF0 aW9uLnNxbCBiL2NvbnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24uc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hZmIzOTczYThiMwotLS0g L2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfdHJnbS9zcWwvcGdfdHJnbV9jb2xsYXRpb24u c3FsCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBUaGlzIHRlc3QgaXMgZm9yIElDVSBjb2xs YXRpb25zLgorICovCisKKy8qIHNraXAgdGVzdCBpZiBub3QgVVRGOCBzZXJ2ZXIgZW5jb2Rp bmcgb3Igbm8gSUNVIGNvbGxhdGlvbnMgaW5zdGFsbGVkICovCitTRUxFQ1QgZ2V0ZGF0YWJh c2VlbmNvZGluZygpIDw+ICdVVEY4JyBPUgorICAgICAgIChTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbHByb3ZpZGVyID0gJ2knIEFORCBjb2xsbmFtZSA8 PiAndW5pY29kZScpID0gMAorICAgICAgIEFTIHNraXBfdGVzdCBcZ3NldAorXGlmIDpza2lw X3Rlc3QKK1xxdWl0CitcZW5kaWYKKworLS0gVGVzdCB0aGF0IGxvd2VyY2FzZSBjb252ZXJz aW9uIG9mIHRyaWdyYW1zIHVzZXMgc3BlY2lmaWVkIGNvbGxhdGlvbgorCitDUkVBVEUgVEFC TEUgdGVzdChjb2wgVEVYVCBDT0xMQVRFICJ0ci14LWljdSIpOworSU5TRVJUIElOVE8gdGVz dCBWQUxVRVMgKCdJU1RBTkJVTCcpOworU0VMRUNUIHNob3dfdHJnbShjb2wpIEZST00gdGVz dDsKK1NFTEVDVCBzaG93X3RyZ20oJ0lTVEFOQlVMJyBDT0xMQVRFICJ0ci14LWljdSIpOwor CitTRUxFQ1Qgc2hvd190cmdtKCdJU1RBTkJVTCcgQ09MTEFURSAiQyIpOworCitTRUxFQ1Qg c2ltaWxhcml0eSgnxLFzdGFuYnVsJyBDT0xMQVRFICJ0ci14LWljdSIsICdJU1RBTkJVTCcg Q09MTEFURSAidHIteC1pY3UiKTsKK1NFTEVDVCBzaW1pbGFyaXR5KCfEsXN0YW5idWwnIENP TExBVEUgIkMiLCAnSVNUQU5CVUwnIENPTExBVEUgIkMiKTsKKwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9wZ190cmdtL3RyZ20uaCBiL2NvbnRyaWIvcGdfdHJnbS90cmdtLmgKaW5kZXggY2Ey M2FhZDRkZDkuLmI2OTExZTkxNDU4IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJn bS5oCisrKyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtLmgKQEAgLTExOSw4ICsxMTksOCBAQCBl eHRlcm4gZG91YmxlIHN0cmljdF93b3JkX3NpbWlsYXJpdHlfdGhyZXNob2xkOwogZXh0ZXJu IGRvdWJsZSBpbmRleF9zdHJhdGVneV9nZXRfbGltaXQoU3RyYXRlZ3lOdW1iZXIgc3RyYXRl Z3kpOwogZXh0ZXJuIHVpbnQzMiB0cmdtMmludCh0cmdtICpwdHIpOwogZXh0ZXJuIHZvaWQg Y29tcGFjdF90cmlncmFtKHRyZ20gKnRwdHIsIGNoYXIgKnN0ciwgaW50IGJ5dGVsZW4pOwot ZXh0ZXJuIFRSR00gKmdlbmVyYXRlX3RyZ20oY2hhciAqc3RyLCBpbnQgc2xlbik7Ci1leHRl cm4gVFJHTSAqZ2VuZXJhdGVfd2lsZGNhcmRfdHJnbShjb25zdCBjaGFyICpzdHIsIGludCBz bGVuKTsKK2V4dGVybiBUUkdNICpnZW5lcmF0ZV90cmdtKGNoYXIgKnN0ciwgaW50IHNsZW4s IE9pZCBjb2xsYXRpb24pOworZXh0ZXJuIFRSR00gKmdlbmVyYXRlX3dpbGRjYXJkX3RyZ20o Y29uc3QgY2hhciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNvbGxhdGlvbik7CiBleHRlcm4gZmxv YXQ0IGNudF9zbWwoVFJHTSAqdHJnMSwgVFJHTSAqdHJnMiwgYm9vbCBpbmV4YWN0KTsKIGV4 dGVybiBib29sIHRyZ21fY29udGFpbmVkX2J5KFRSR00gKnRyZzEsIFRSR00gKnRyZzIpOwog ZXh0ZXJuIGJvb2wgKnRyZ21fcHJlc2VuY2VfbWFwKFRSR00gKnF1ZXJ5LCBUUkdNICprZXkp OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3RyZ21fZ2luLmMgYi9jb250cmliL3Bn X3RyZ20vdHJnbV9naW4uYwppbmRleCA1NzY2YjNlOTk1NS4uMTRhODkyYzY1N2QgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX2dpbi5jCisrKyBiL2NvbnRyaWIvcGdfdHJn bS90cmdtX2dpbi5jCkBAIC00Miw3ICs0Miw3IEBAIGdpbl9leHRyYWN0X3ZhbHVlX3RyZ20o UEdfRlVOQ1RJT05fQVJHUykKIAogCSpuZW50cmllcyA9IDA7CiAKLQl0cmcgPSBnZW5lcmF0 ZV90cmdtKFZBUkRBVEFfQU5ZKHZhbCksIFZBUlNJWkVfQU5ZX0VYSERSKHZhbCkpOworCXRy ZyA9IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkodmFsKSwgVkFSU0laRV9BTllfRVhIRFIo dmFsKSwgUEdfR0VUX0NPTExBVElPTigpKTsKIAl0cmdsZW4gPSBBUlJORUxFTSh0cmcpOwog CiAJaWYgKHRyZ2xlbiA+IDApCkBAIC05Myw3ICs5Myw3IEBAIGdpbl9leHRyYWN0X3F1ZXJ5 X3RyZ20oUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSBXb3JkU2ltaWxhcml0eVN0cmF0ZWd5 TnVtYmVyOgogCQljYXNlIFN0cmljdFdvcmRTaW1pbGFyaXR5U3RyYXRlZ3lOdW1iZXI6CiAJ CWNhc2UgRXF1YWxTdHJhdGVneU51bWJlcjoKLQkJCXRyZyA9IGdlbmVyYXRlX3RyZ20oVkFS REFUQV9BTlkodmFsKSwgVkFSU0laRV9BTllfRVhIRFIodmFsKSk7CisJCQl0cmcgPSBnZW5l cmF0ZV90cmdtKFZBUkRBVEFfQU5ZKHZhbCksIFZBUlNJWkVfQU5ZX0VYSERSKHZhbCksIFBH X0dFVF9DT0xMQVRJT04oKSk7CiAJCQlicmVhazsKIAkJY2FzZSBJTGlrZVN0cmF0ZWd5TnVt YmVyOgogI2lmbmRlZiBJR05PUkVDQVNFCkBAIC0xMDcsNyArMTA3LDggQEAgZ2luX2V4dHJh Y3RfcXVlcnlfdHJnbShQR19GVU5DVElPTl9BUkdTKQogCQkJICogcG90ZW50aWFsbHktbWF0 Y2hpbmcgc3RyaW5nIG11c3QgaW5jbHVkZS4KIAkJCSAqLwogCQkJdHJnID0gZ2VuZXJhdGVf d2lsZGNhcmRfdHJnbShWQVJEQVRBX0FOWSh2YWwpLAotCQkJCQkJCQkJCSBWQVJTSVpFX0FO WV9FWEhEUih2YWwpKTsKKwkJCQkJCQkJCQkgVkFSU0laRV9BTllfRVhIRFIodmFsKSwKKwkJ CQkJCQkJCQkgUEdfR0VUX0NPTExBVElPTigpKTsKIAkJCWJyZWFrOwogCQljYXNlIFJlZ0V4 cElDYXNlU3RyYXRlZ3lOdW1iZXI6CiAjaWZuZGVmIElHTk9SRUNBU0UKZGlmZiAtLWdpdCBh L2NvbnRyaWIvcGdfdHJnbS90cmdtX2dpc3QuYyBiL2NvbnRyaWIvcGdfdHJnbS90cmdtX2dp c3QuYwppbmRleCAxMTgxMmIyOTg0ZS4uZDkxMDI0MDA0NDIgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvcGdfdHJnbS90cmdtX2dpc3QuYworKysgYi9jb250cmliL3BnX3RyZ20vdHJnbV9naXN0 LmMKQEAgLTEyMyw3ICsxMjMsNyBAQCBndHJnbV9jb21wcmVzcyhQR19GVU5DVElPTl9BUkdT KQogCQlUUkdNCSAgICpyZXM7CiAJCXRleHQJICAgKnZhbCA9IERhdHVtR2V0VGV4dFBQKGVu dHJ5LT5rZXkpOwogCi0JCXJlcyA9IGdlbmVyYXRlX3RyZ20oVkFSREFUQV9BTlkodmFsKSwg VkFSU0laRV9BTllfRVhIRFIodmFsKSk7CisJCXJlcyA9IGdlbmVyYXRlX3RyZ20oVkFSREFU QV9BTlkodmFsKSwgVkFSU0laRV9BTllfRVhIRFIodmFsKSwgUEdfR0VUX0NPTExBVElPTigp KTsKIAkJcmV0dmFsID0gcGFsbG9jX29iamVjdChHSVNURU5UUlkpOwogCQlnaXN0ZW50cnlp bml0KCpyZXR2YWwsIFBvaW50ZXJHZXREYXR1bShyZXMpLAogCQkJCQkgIGVudHJ5LT5yZWws IGVudHJ5LT5wYWdlLApAQCAtMjQyLDcgKzI0Miw4IEBAIGd0cmdtX2NvbnNpc3RlbnQoUEdf RlVOQ1RJT05fQVJHUykKIAkJCWNhc2UgU3RyaWN0V29yZFNpbWlsYXJpdHlTdHJhdGVneU51 bWJlcjoKIAkJCWNhc2UgRXF1YWxTdHJhdGVneU51bWJlcjoKIAkJCQlxdHJnID0gZ2VuZXJh dGVfdHJnbShWQVJEQVRBKHF1ZXJ5KSwKLQkJCQkJCQkJCSBxdWVyeXNpemUgLSBWQVJIRFJT Wik7CisJCQkJCQkJCQkgcXVlcnlzaXplIC0gVkFSSERSU1osCisJCQkJCQkJCQkgUEdfR0VU X0NPTExBVElPTigpKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgSUxpa2VTdHJhdGVneU51bWJl cjoKICNpZm5kZWYgSUdOT1JFQ0FTRQpAQCAtMjUxLDcgKzI1Miw4IEBAIGd0cmdtX2NvbnNp c3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQlwZ19mYWxsdGhyb3VnaDsKIAkJCWNhc2Ug TGlrZVN0cmF0ZWd5TnVtYmVyOgogCQkJCXF0cmcgPSBnZW5lcmF0ZV93aWxkY2FyZF90cmdt KFZBUkRBVEEocXVlcnkpLAotCQkJCQkJCQkJCQkgIHF1ZXJ5c2l6ZSAtIFZBUkhEUlNaKTsK KwkJCQkJCQkJCQkJICBxdWVyeXNpemUgLSBWQVJIRFJTWiwKKwkJCQkJCQkJCQkJICBQR19H RVRfQ09MTEFUSU9OKCkpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBSZWdFeHBJQ2FzZVN0cmF0 ZWd5TnVtYmVyOgogI2lmbmRlZiBJR05PUkVDQVNFCkBAIC00NzUsNyArNDc3LDcgQEAgZ3Ry Z21fZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAl7CiAJCWNoYXIJICAgKm5ld2NhY2hl OwogCi0JCXF0cmcgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEEocXVlcnkpLCBxdWVyeXNpemUg LSBWQVJIRFJTWik7CisJCXF0cmcgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEEocXVlcnkpLCBx dWVyeXNpemUgLSBWQVJIRFJTWiwgUEdfR0VUX0NPTExBVElPTigpKTsKIAogCQluZXdjYWNo ZSA9IE1lbW9yeUNvbnRleHRBbGxvYyhmY2luZm8tPmZsaW5mby0+Zm5fbWN4dCwKIAkJCQkJ CQkJCSAgTUFYQUxJR04ocXVlcnlzaXplKSArCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Ry Z20vdHJnbV9vcC5jIGIvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYwppbmRleCBlZTg5ZTU0 OGQxNi4uNWYyZGVmYjU3ZjIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX29w LmMKKysrIGIvY29udHJpYi9wZ190cmdtL3RyZ21fb3AuYwpAQCAtNDQ3LDcgKzQ0Nyw3IEBA IGRvbmU6CiAgKiBib3VuZHNfcDogd2hlcmUgdG8gcmV0dXJuIGJvdW5kcyBvZiB0cmlncmFt cyAoaWYgbmVlZGVkKS4KICAqLwogc3RhdGljIHZvaWQKLWdlbmVyYXRlX3RyZ21fb25seShn cm93YWJsZV90cmdtX2FycmF5ICpkc3QsIGNoYXIgKnN0ciwgaW50IHNsZW4sIFRyZ21Cb3Vu ZCAqKmJvdW5kc19wKQorZ2VuZXJhdGVfdHJnbV9vbmx5KGdyb3dhYmxlX3RyZ21fYXJyYXkg KmRzdCwgY2hhciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNvbGxhdGlvbiwgVHJnbUJvdW5kICoq Ym91bmRzX3ApCiB7CiAJc2l6ZV90CQlidWZsZW47CiAJY2hhcgkgICAqYnVmOwpAQCAtNDk5 LDcgKzQ5OSw3IEBAIGdlbmVyYXRlX3RyZ21fb25seShncm93YWJsZV90cmdtX2FycmF5ICpk c3QsIGNoYXIgKnN0ciwgaW50IHNsZW4sIFRyZ21Cb3VuZCAqKmJvCiAJCXsKIAkJCWNoYXIJ ICAgKmxvd2VyZWQ7CiAKLQkJCWxvd2VyZWQgPSBzdHJfdG9sb3dlcihid29yZCwgZXdvcmQg LSBid29yZCwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwkJCWxvd2VyZWQgPSBzdHJfdG9s b3dlcihid29yZCwgZXdvcmQgLSBid29yZCwgY29sbGF0aW9uKTsKIAkJCWJ5dGVsZW4gPSBz dHJsZW4obG93ZXJlZCk7CiAKIAkJCS8qIGdyb3cgdGhlIGJ1ZmZlciBpZiBuZWNlc3Nhcnkg Ki8KQEAgLTU1MywxMyArNTUzLDEzIEBAIGdlbmVyYXRlX3RyZ21fb25seShncm93YWJsZV90 cmdtX2FycmF5ICpkc3QsIGNoYXIgKnN0ciwgaW50IHNsZW4sIFRyZ21Cb3VuZCAqKmJvCiAg KiBSZXR1cm5zIHRoZSBzb3J0ZWQgYXJyYXkgb2YgdW5pcXVlIHRyaWdyYW1zLgogICovCiBU UkdNICoKLWdlbmVyYXRlX3RyZ20oY2hhciAqc3RyLCBpbnQgc2xlbikKK2dlbmVyYXRlX3Ry Z20oY2hhciAqc3RyLCBpbnQgc2xlbiwgT2lkIGNvbGxhdGlvbikKIHsKIAlUUkdNCSAgICp0 cmc7CiAJZ3Jvd2FibGVfdHJnbV9hcnJheSBhcnI7CiAJaW50CQkJbGVuOwogCi0JZ2VuZXJh dGVfdHJnbV9vbmx5KCZhcnIsIHN0ciwgc2xlbiwgTlVMTCk7CisJZ2VuZXJhdGVfdHJnbV9v bmx5KCZhcnIsIHN0ciwgc2xlbiwgY29sbGF0aW9uLCBOVUxMKTsKIAlsZW4gPSBhcnIubGVu Z3RoOwogCXRyZyA9IGFyci5kYXR1bTsKIAl0cmctPmZsYWcgPSBBUlJLRVk7CkBAIC04MTQs NyArODE0LDcgQEAgaXRlcmF0ZV93b3JkX3NpbWlsYXJpdHkoaW50ICp0cmcyaW5kZXhlcywK ICAqLwogc3RhdGljIGZsb2F0NAogY2FsY193b3JkX3NpbWlsYXJpdHkoY2hhciAqc3RyMSwg aW50IHNsZW4xLCBjaGFyICpzdHIyLCBpbnQgc2xlbjIsCi0JCQkJCSB1aW50OCBmbGFncykK KwkJCQkJIHVpbnQ4IGZsYWdzLCBPaWQgY29sbGF0aW9uKQogewogCWJvb2wJICAgKmZvdW5k OwogCXBvc190cmdtICAgKnB0cmc7CkBAIC04MzIsOSArODMyLDkgQEAgY2FsY193b3JkX3Np bWlsYXJpdHkoY2hhciAqc3RyMSwgaW50IHNsZW4xLCBjaGFyICpzdHIyLCBpbnQgc2xlbjIs CiAKIAkvKiBNYWtlIHBvc2l0aW9uYWwgdHJpZ3JhbXMgKi8KIAotCWdlbmVyYXRlX3RyZ21f b25seSgmdHJnMSwgc3RyMSwgc2xlbjEsIE5VTEwpOworCWdlbmVyYXRlX3RyZ21fb25seSgm dHJnMSwgc3RyMSwgc2xlbjEsIGNvbGxhdGlvbiwgTlVMTCk7CiAJbGVuMSA9IHRyZzEubGVu Z3RoOwotCWdlbmVyYXRlX3RyZ21fb25seSgmdHJnMiwgc3RyMiwgc2xlbjIsIChmbGFncyAm IFdPUkRfU0lNSUxBUklUWV9TVFJJQ1QpID8gJmJvdW5kcyA6IE5VTEwpOworCWdlbmVyYXRl X3RyZ21fb25seSgmdHJnMiwgc3RyMiwgc2xlbjIsIGNvbGxhdGlvbiwgKGZsYWdzICYgV09S RF9TSU1JTEFSSVRZX1NUUklDVCkgPyAmYm91bmRzIDogTlVMTCk7CiAJbGVuMiA9IHRyZzIu bGVuZ3RoOwogCiAJcHRyZyA9IG1ha2VfcG9zaXRpb25hbF90cmdtKEdFVEFSUih0cmcxLmRh dHVtKSwgbGVuMSwgR0VUQVJSKHRyZzIuZGF0dW0pLCBsZW4yKTsKQEAgLTEwNDMsNyArMTA0 Myw3IEBAIGdldF93aWxkY2FyZF9wYXJ0KGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbnN0ciwK ICAqICIgYSIsICJiY2QiIHdvdWxkIGJlIGV4dHJhY3RlZC4KICAqLwogVFJHTSAqCi1nZW5l cmF0ZV93aWxkY2FyZF90cmdtKGNvbnN0IGNoYXIgKnN0ciwgaW50IHNsZW4pCitnZW5lcmF0 ZV93aWxkY2FyZF90cmdtKGNvbnN0IGNoYXIgKnN0ciwgaW50IHNsZW4sIE9pZCBjb2xsYXRp b24pCiB7CiAJVFJHTQkgICAqdHJnOwogCWdyb3dhYmxlX3RyZ21fYXJyYXkgYXJyOwpAQCAt MTA3NSw3ICsxMDc1LDcgQEAgZ2VuZXJhdGVfd2lsZGNhcmRfdHJnbShjb25zdCBjaGFyICpz dHIsIGludCBzbGVuKQogCQljaGFyCSAgICp3b3JkOwogCiAjaWZkZWYgSUdOT1JFQ0FTRQot CQl3b3JkID0gc3RyX3RvbG93ZXIoYnVmLCBieXRlbGVuLCBERUZBVUxUX0NPTExBVElPTl9P SUQpOworCQl3b3JkID0gc3RyX3RvbG93ZXIoYnVmLCBieXRlbGVuLCBjb2xsYXRpb24pOwog CQlieXRlbGVuID0gc3RybGVuKHdvcmQpOwogI2Vsc2UKIAkJd29yZCA9IGJ1ZjsKQEAgLTEx MzQsNyArMTEzNCw3IEBAIHNob3dfdHJnbShQR19GVU5DVElPTl9BUkdTKQogCXRyZ20JICAg KnB0cjsKIAlpbnQJCQlpOwogCi0JdHJnID0gZ2VuZXJhdGVfdHJnbShWQVJEQVRBX0FOWShp biksIFZBUlNJWkVfQU5ZX0VYSERSKGluKSk7CisJdHJnID0gZ2VuZXJhdGVfdHJnbShWQVJE QVRBX0FOWShpbiksIFZBUlNJWkVfQU5ZX0VYSERSKGluKSwgUEdfR0VUX0NPTExBVElPTigp KTsKIAlkID0gcGFsbG9jX2FycmF5KERhdHVtLCAxICsgQVJSTkVMRU0odHJnKSk7CiAKIAlm b3IgKGkgPSAwLCBwdHIgPSBHRVRBUlIodHJnKTsgaSA8IEFSUk5FTEVNKHRyZyk7IGkrKywg cHRyKyspCkBAIC0xMzAxLDggKzEzMDEsOCBAQCBzaW1pbGFyaXR5KFBHX0ZVTkNUSU9OX0FS R1MpCiAJCQkgICAqdHJnMjsKIAlmbG9hdDQJCXJlczsKIAotCXRyZzEgPSBnZW5lcmF0ZV90 cmdtKFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVfQU5ZX0VYSERSKGluMSkpOwotCXRyZzIg PSBnZW5lcmF0ZV90cmdtKFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VYSERSKGlu MikpOworCXRyZzEgPSBnZW5lcmF0ZV90cmdtKFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVf QU5ZX0VYSERSKGluMSksIFBHX0dFVF9DT0xMQVRJT04oKSk7CisJdHJnMiA9IGdlbmVyYXRl X3RyZ20oVkFSREFUQV9BTlkoaW4yKSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSwgUEdfR0VU X0NPTExBVElPTigpKTsKIAogCXJlcyA9IGNudF9zbWwodHJnMSwgdHJnMiwgZmFsc2UpOwog CkBAIC0xMzIzLDcgKzEzMjMsNyBAQCB3b3JkX3NpbWlsYXJpdHkoUEdfRlVOQ1RJT05fQVJH UykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFyaXR5KFZBUkRBVEFfQU5ZKGluMSksIFZB UlNJWkVfQU5ZX0VYSERSKGluMSksCiAJCQkJCQkJICAgVkFSREFUQV9BTlkoaW4yKSwgVkFS U0laRV9BTllfRVhIRFIoaW4yKSwKLQkJCQkJCQkgICAwKTsKKwkJCQkJCQkgICAwLCBQR19H RVRfQ09MTEFUSU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwgMCk7CiAJUEdfRlJF RV9JRl9DT1BZKGluMiwgMSk7CkBAIC0xMzM5LDcgKzEzMzksNyBAQCBzdHJpY3Rfd29yZF9z aW1pbGFyaXR5KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXMgPSBjYWxjX3dvcmRfc2ltaWxh cml0eShWQVJEQVRBX0FOWShpbjEpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjEpLAogCQkJCQkJ CSAgIFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VYSERSKGluMiksCi0JCQkJCQkJ ICAgV09SRF9TSU1JTEFSSVRZX1NUUklDVCk7CisJCQkJCQkJICAgV09SRF9TSU1JTEFSSVRZ X1NUUklDVCwgUEdfR0VUX0NPTExBVElPTigpKTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEs IDApOwogCVBHX0ZSRUVfSUZfQ09QWShpbjIsIDEpOwpAQCAtMTM0OSw5ICsxMzQ5LDEwIEBA IHN0cmljdF93b3JkX3NpbWlsYXJpdHkoUEdfRlVOQ1RJT05fQVJHUykKIERhdHVtCiBzaW1p bGFyaXR5X2Rpc3QoUEdfRlVOQ1RJT05fQVJHUykKIHsKLQlmbG9hdDQJCXJlcyA9IERhdHVt R2V0RmxvYXQ0KERpcmVjdEZ1bmN0aW9uQ2FsbDIoc2ltaWxhcml0eSwKLQkJCQkJCQkJCQkJ CQkJIFBHX0dFVEFSR19EQVRVTSgwKSwKLQkJCQkJCQkJCQkJCQkJIFBHX0dFVEFSR19EQVRV TSgxKSkpOworCWZsb2F0NAkJcmVzID0gRGF0dW1HZXRGbG9hdDQoRGlyZWN0RnVuY3Rpb25D YWxsMkNvbGwoc2ltaWxhcml0eSwKKwkJCQkJCQkJCQkJCQkJCSBQR19HRVRfQ09MTEFUSU9O KCksCisJCQkJCQkJCQkJCQkJCQkgUEdfR0VUQVJHX0RBVFVNKDApLAorCQkJCQkJCQkJCQkJ CQkJIFBHX0dFVEFSR19EQVRVTSgxKSkpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNCgxLjAgLSBy ZXMpOwogfQpAQCAtMTM1OSw5ICsxMzYwLDEwIEBAIHNpbWlsYXJpdHlfZGlzdChQR19GVU5D VElPTl9BUkdTKQogRGF0dW0KIHNpbWlsYXJpdHlfb3AoUEdfRlVOQ1RJT05fQVJHUykKIHsK LQlmbG9hdDQJCXJlcyA9IERhdHVtR2V0RmxvYXQ0KERpcmVjdEZ1bmN0aW9uQ2FsbDIoc2lt aWxhcml0eSwKLQkJCQkJCQkJCQkJCQkJIFBHX0dFVEFSR19EQVRVTSgwKSwKLQkJCQkJCQkJ CQkJCQkJIFBHX0dFVEFSR19EQVRVTSgxKSkpOworCWZsb2F0NAkJcmVzID0gRGF0dW1HZXRG bG9hdDQoRGlyZWN0RnVuY3Rpb25DYWxsMkNvbGwoc2ltaWxhcml0eSwKKwkJCQkJCQkJCQkJ CQkJCSBQR19HRVRfQ09MTEFUSU9OKCksCisJCQkJCQkJCQkJCQkJCQkgUEdfR0VUQVJHX0RB VFVNKDApLAorCQkJCQkJCQkJCQkJCQkJIFBHX0dFVEFSR19EQVRVTSgxKSkpOwogCiAJUEdf UkVUVVJOX0JPT0wocmVzID49IHNpbWlsYXJpdHlfdGhyZXNob2xkKTsKIH0KQEAgLTEzNzUs NyArMTM3Nyw3IEBAIHdvcmRfc2ltaWxhcml0eV9vcChQR19GVU5DVElPTl9BUkdTKQogCiAJ cmVzID0gY2FsY193b3JkX3NpbWlsYXJpdHkoVkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9B TllfRVhIRFIoaW4xKSwKIAkJCQkJCQkgICBWQVJEQVRBX0FOWShpbjIpLCBWQVJTSVpFX0FO WV9FWEhEUihpbjIpLAotCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9DSEVDS19PTkxZKTsK KwkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfQ0hFQ0tfT05MWSwgUEdfR0VUX0NPTExBVElP TigpKTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEsIDApOwogCVBHX0ZSRUVfSUZfQ09QWShp bjIsIDEpOwpAQCAtMTM5MSw3ICsxMzkzLDcgQEAgd29yZF9zaW1pbGFyaXR5X2NvbW11dGF0 b3Jfb3AoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFyaXR5 KFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VYSERSKGluMiksCiAJCQkJCQkJICAg VkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9BTllfRVhIRFIoaW4xKSwKLQkJCQkJCQkgICBX T1JEX1NJTUlMQVJJVFlfQ0hFQ0tfT05MWSk7CisJCQkJCQkJICAgV09SRF9TSU1JTEFSSVRZ X0NIRUNLX09OTFksIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAKIAlQR19GUkVFX0lGX0NPUFko aW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFkoaW4yLCAxKTsKQEAgLTE0MDcsNyArMTQwOSw3 IEBAIHdvcmRfc2ltaWxhcml0eV9kaXN0X29wKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXMg PSBjYWxjX3dvcmRfc2ltaWxhcml0eShWQVJEQVRBX0FOWShpbjEpLCBWQVJTSVpFX0FOWV9F WEhEUihpbjEpLAogCQkJCQkJCSAgIFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VY SERSKGluMiksCi0JCQkJCQkJICAgMCk7CisJCQkJCQkJICAgMCwgUEdfR0VUX0NPTExBVElP TigpKTsKIAogCVBHX0ZSRUVfSUZfQ09QWShpbjEsIDApOwogCVBHX0ZSRUVfSUZfQ09QWShp bjIsIDEpOwpAQCAtMTQyMyw3ICsxNDI1LDcgQEAgd29yZF9zaW1pbGFyaXR5X2Rpc3RfY29t bXV0YXRvcl9vcChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzID0gY2FsY193b3JkX3NpbWls YXJpdHkoVkFSREFUQV9BTlkoaW4yKSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSwKIAkJCQkJ CQkgICBWQVJEQVRBX0FOWShpbjEpLCBWQVJTSVpFX0FOWV9FWEhEUihpbjEpLAotCQkJCQkJ CSAgIDApOworCQkJCQkJCSAgIDAsIFBHX0dFVF9DT0xMQVRJT04oKSk7CiAKIAlQR19GUkVF X0lGX0NPUFkoaW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFkoaW4yLCAxKTsKQEAgLTE0Mzks NyArMTQ0MSw4IEBAIHN0cmljdF93b3JkX3NpbWlsYXJpdHlfb3AoUEdfRlVOQ1RJT05fQVJH UykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFyaXR5KFZBUkRBVEFfQU5ZKGluMSksIFZB UlNJWkVfQU5ZX0VYSERSKGluMSksCiAJCQkJCQkJICAgVkFSREFUQV9BTlkoaW4yKSwgVkFS U0laRV9BTllfRVhIRFIoaW4yKSwKLQkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfQ0hFQ0tf T05MWSB8IFdPUkRfU0lNSUxBUklUWV9TVFJJQ1QpOworCQkJCQkJCSAgIFdPUkRfU0lNSUxB UklUWV9DSEVDS19PTkxZIHwgV09SRF9TSU1JTEFSSVRZX1NUUklDVCwKKwkJCQkJCQkgICBQ R19HRVRfQ09MTEFUSU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwgMCk7CiAJUEdf RlJFRV9JRl9DT1BZKGluMiwgMSk7CkBAIC0xNDU1LDcgKzE0NTgsOCBAQCBzdHJpY3Rfd29y ZF9zaW1pbGFyaXR5X2NvbW11dGF0b3Jfb3AoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlcyA9 IGNhbGNfd29yZF9zaW1pbGFyaXR5KFZBUkRBVEFfQU5ZKGluMiksIFZBUlNJWkVfQU5ZX0VY SERSKGluMiksCiAJCQkJCQkJICAgVkFSREFUQV9BTlkoaW4xKSwgVkFSU0laRV9BTllfRVhI RFIoaW4xKSwKLQkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlfQ0hFQ0tfT05MWSB8IFdPUkRf U0lNSUxBUklUWV9TVFJJQ1QpOworCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9DSEVDS19P TkxZIHwgV09SRF9TSU1JTEFSSVRZX1NUUklDVCwKKwkJCQkJCQkgICBQR19HRVRfQ09MTEFU SU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwgMCk7CiAJUEdfRlJFRV9JRl9DT1BZ KGluMiwgMSk7CkBAIC0xNDcxLDcgKzE0NzUsNyBAQCBzdHJpY3Rfd29yZF9zaW1pbGFyaXR5 X2Rpc3Rfb3AoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlcyA9IGNhbGNfd29yZF9zaW1pbGFy aXR5KFZBUkRBVEFfQU5ZKGluMSksIFZBUlNJWkVfQU5ZX0VYSERSKGluMSksCiAJCQkJCQkJ ICAgVkFSREFUQV9BTlkoaW4yKSwgVkFSU0laRV9BTllfRVhIRFIoaW4yKSwKLQkJCQkJCQkg ICBXT1JEX1NJTUlMQVJJVFlfU1RSSUNUKTsKKwkJCQkJCQkgICBXT1JEX1NJTUlMQVJJVFlf U1RSSUNULCBQR19HRVRfQ09MTEFUSU9OKCkpOwogCiAJUEdfRlJFRV9JRl9DT1BZKGluMSwg MCk7CiAJUEdfRlJFRV9JRl9DT1BZKGluMiwgMSk7CkBAIC0xNDg3LDcgKzE0OTEsNyBAQCBz dHJpY3Rfd29yZF9zaW1pbGFyaXR5X2Rpc3RfY29tbXV0YXRvcl9vcChQR19GVU5DVElPTl9B UkdTKQogCiAJcmVzID0gY2FsY193b3JkX3NpbWlsYXJpdHkoVkFSREFUQV9BTlkoaW4yKSwg VkFSU0laRV9BTllfRVhIRFIoaW4yKSwKIAkJCQkJCQkgICBWQVJEQVRBX0FOWShpbjEpLCBW QVJTSVpFX0FOWV9FWEhEUihpbjEpLAotCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9TVFJJ Q1QpOworCQkJCQkJCSAgIFdPUkRfU0lNSUxBUklUWV9TVFJJQ1QsIFBHX0dFVF9DT0xMQVRJ T04oKSk7CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4xLCAwKTsKIAlQR19GUkVFX0lGX0NPUFko aW4yLCAxKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdHJnbS90cmdtX3JlZ2V4cC5jIGIv Y29udHJpYi9wZ190cmdtL3RyZ21fcmVnZXhwLmMKaW5kZXggZWZlZTRjZjVmYjQuLjJmMTkw ZGYyZjY1IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYworKysg Yi9jb250cmliL3BnX3RyZ20vdHJnbV9yZWdleHAuYwpAQCAtNDc5LDExICs0NzksMTEgQEAg dHlwZWRlZiBzdHJ1Y3QKIAogLyogcHJvdG90eXBlcyBmb3IgcHJpdmF0ZSBmdW5jdGlvbnMg Ki8KIHN0YXRpYyBUUkdNICpjcmVhdGVUcmdtTkZBSW50ZXJuYWwocmVnZXhfdCAqcmVnZXgs IFRyZ21QYWNrZWRHcmFwaCAqKmdyYXBoLAotCQkJCQkJCQkgICBNZW1vcnlDb250ZXh0IHJj b250ZXh0KTsKKwkJCQkJCQkJICAgTWVtb3J5Q29udGV4dCByY29udGV4dCwgT2lkIGNvbGxh dGlvbik7CiBzdGF0aWMgdm9pZCBSRV9jb21waWxlKHJlZ2V4X3QgKnJlZ2V4LCB0ZXh0ICp0 ZXh0X3JlLAogCQkJCQkgICBpbnQgY2ZsYWdzLCBPaWQgY29sbGF0aW9uKTsKLXN0YXRpYyB2 b2lkIGdldENvbG9ySW5mbyhyZWdleF90ICpyZWdleCwgVHJnbU5GQSAqdHJnbU5GQSk7Ci1z dGF0aWMgaW50CWNvbnZlcnRQZ1djaGFyKHBnX3djaGFyIGMsIHRyZ21fbWJfY2hhciAqcmVz dWx0KTsKK3N0YXRpYyB2b2lkIGdldENvbG9ySW5mbyhyZWdleF90ICpyZWdleCwgVHJnbU5G QSAqdHJnbU5GQSwgT2lkIGNvbGxhdGlvbik7CitzdGF0aWMgaW50CWNvbnZlcnRQZ1djaGFy KHBnX3djaGFyIGMsIHRyZ21fbWJfY2hhciAqcmVzdWx0LCBPaWQgY29sbGF0aW9uKTsKIHN0 YXRpYyB2b2lkIHRyYW5zZm9ybUdyYXBoKFRyZ21ORkEgKnRyZ21ORkEpOwogc3RhdGljIHZv aWQgcHJvY2Vzc1N0YXRlKFRyZ21ORkEgKnRyZ21ORkEsIFRyZ21TdGF0ZSAqc3RhdGUpOwog c3RhdGljIHZvaWQgYWRkS2V5KFRyZ21ORkEgKnRyZ21ORkEsIFRyZ21TdGF0ZSAqc3RhdGUs IFRyZ21TdGF0ZUtleSAqa2V5KTsKQEAgLTU1MSw3ICs1NTEsNyBAQCBjcmVhdGVUcmdtTkZB KHRleHQgKnRleHRfcmUsIE9pZCBjb2xsYXRpb24sCiAJCQkgICBSRUdfQURWQU5DRUQgfCBS RUdfTk9TVUIsIGNvbGxhdGlvbik7CiAjZW5kaWYKIAotCXRyZyA9IGNyZWF0ZVRyZ21ORkFJ bnRlcm5hbCgmcmVnZXgsIGdyYXBoLCByY29udGV4dCk7CisJdHJnID0gY3JlYXRlVHJnbU5G QUludGVybmFsKCZyZWdleCwgZ3JhcGgsIHJjb250ZXh0LCBjb2xsYXRpb24pOwogCiAJLyog Q2xlYW4gdXAgYWxsIHRoZSBjcnVmdCB3ZSBjcmVhdGVkIChpbmNsdWRpbmcgcmVnZXgpICov CiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwpAQCAtNTY1LDcgKzU2NSw3 IEBAIGNyZWF0ZVRyZ21ORkEodGV4dCAqdGV4dF9yZSwgT2lkIGNvbGxhdGlvbiwKICAqLwog c3RhdGljIFRSR00gKgogY3JlYXRlVHJnbU5GQUludGVybmFsKHJlZ2V4X3QgKnJlZ2V4LCBU cmdtUGFja2VkR3JhcGggKipncmFwaCwKLQkJCQkJICBNZW1vcnlDb250ZXh0IHJjb250ZXh0 KQorCQkJCQkgIE1lbW9yeUNvbnRleHQgcmNvbnRleHQsIE9pZCBjb2xsYXRpb24pCiB7CiAJ VFJHTQkgICAqdHJnOwogCVRyZ21ORkEJCXRyZ21ORkE7CkBAIC01NzMsNyArNTczLDcgQEAg Y3JlYXRlVHJnbU5GQUludGVybmFsKHJlZ2V4X3QgKnJlZ2V4LCBUcmdtUGFja2VkR3JhcGgg KipncmFwaCwKIAl0cmdtTkZBLnJlZ2V4ID0gcmVnZXg7CiAKIAkvKiBDb2xsZWN0IGNvbG9y IGluZm9ybWF0aW9uIGZyb20gdGhlIHJlZ2V4ICovCi0JZ2V0Q29sb3JJbmZvKHJlZ2V4LCAm dHJnbU5GQSk7CisJZ2V0Q29sb3JJbmZvKHJlZ2V4LCAmdHJnbU5GQSwgY29sbGF0aW9uKTsK IAogI2lmZGVmIFRSR01fUkVHRVhQX0RFQlVHCiAJcHJpbnRTb3VyY2VORkEocmVnZXgsIHRy Z21ORkEuY29sb3JJbmZvLCB0cmdtTkZBLm5jb2xvcnMpOwpAQCAtNzYyLDcgKzc2Miw3IEBA IFJFX2NvbXBpbGUocmVnZXhfdCAqcmVnZXgsIHRleHQgKnRleHRfcmUsIGludCBjZmxhZ3Ms IE9pZCBjb2xsYXRpb24pCiAgKiBGaWxsIFRyZ21Db2xvckluZm8gc3RydWN0dXJlIGZvciBl YWNoIGNvbG9yIHVzaW5nIHJlZ2V4IGV4cG9ydCBmdW5jdGlvbnMuCiAgKi8KIHN0YXRpYyB2 b2lkCi1nZXRDb2xvckluZm8ocmVnZXhfdCAqcmVnZXgsIFRyZ21ORkEgKnRyZ21ORkEpCitn ZXRDb2xvckluZm8ocmVnZXhfdCAqcmVnZXgsIFRyZ21ORkEgKnRyZ21ORkEsIE9pZCBjb2xs YXRpb24pCiB7CiAJaW50CQkJY29sb3JzQ291bnQgPSBwZ19yZWdfZ2V0bnVtY29sb3JzKHJl Z2V4KTsKIAlpbnQJCQlpOwpAQCAtODA3LDcgKzgwNyw3IEBAIGdldENvbG9ySW5mbyhyZWdl eF90ICpyZWdleCwgVHJnbU5GQSAqdHJnbU5GQSkKIAkJZm9yIChqID0gMDsgaiA8IGNoYXJz Q291bnQ7IGorKykKIAkJewogCQkJdHJnbV9tYl9jaGFyIGM7Ci0JCQlpbnQJCQljbGVuID0g Y29udmVydFBnV2NoYXIoY2hhcnNbal0sICZjKTsKKwkJCWludAkJCWNsZW4gPSBjb252ZXJ0 UGdXY2hhcihjaGFyc1tqXSwgJmMsIGNvbGxhdGlvbik7CiAKIAkJCWlmICghY2xlbikKIAkJ CQljb250aW51ZTsJCS8qIG9rIHRvIGlnbm9yZSBpdCBhbHRvZ2V0aGVyICovCkBAIC04Mjcs NyArODI3LDcgQEAgZ2V0Q29sb3JJbmZvKHJlZ2V4X3QgKnJlZ2V4LCBUcmdtTkZBICp0cmdt TkZBKQogICogYnl0ZSBsZW5ndGguCiAgKi8KIHN0YXRpYyBpbnQKLWNvbnZlcnRQZ1djaGFy KHBnX3djaGFyIGMsIHRyZ21fbWJfY2hhciAqcmVzdWx0KQorY29udmVydFBnV2NoYXIocGdf d2NoYXIgYywgdHJnbV9tYl9jaGFyICpyZXN1bHQsIE9pZCBjb2xsYXRpb24pCiB7CiAJLyog InMiIGhhcyBlbm91Z2ggc3BhY2UgZm9yIGEgbXVsdGlieXRlIGNoYXJhY3RlciBhbmQgYSB0 cmFpbGluZyBOVUwgKi8KIAljaGFyCQlzW01BWF9NVUxUSUJZVEVfQ0hBUl9MRU4gKyAxXTsK QEAgLTg2MCw3ICs4NjAsNyBAQCBjb252ZXJ0UGdXY2hhcihwZ193Y2hhciBjLCB0cmdtX21i X2NoYXIgKnJlc3VsdCkKIAkgKi8KICNpZmRlZiBJR05PUkVDQVNFCiAJewotCQljaGFyCSAg ICpsb3dlckNhc2VkID0gc3RyX3RvbG93ZXIocywgY2xlbiwgREVGQVVMVF9DT0xMQVRJT05f T0lEKTsKKwkJY2hhcgkgICAqbG93ZXJDYXNlZCA9IHN0cl90b2xvd2VyKHMsIGNsZW4sIGNv bGxhdGlvbik7CiAKIAkJaWYgKHN0cmNtcChsb3dlckNhc2VkLCBzKSAhPSAwKQogCQl7Ci0t IAoyLjUxLjAKCg== --------------iLY1WMY6G50k1XsWCEXMOoTy--