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.94.2) (envelope-from ) id 1vCGNc-00BM7R-1O for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Oct 2025 11:54:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vCGNa-00FgdQ-Su for pgsql-hackers@arkaria.postgresql.org; Fri, 24 Oct 2025 11:54:45 +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.94.2) (envelope-from ) id 1vCGNa-00FgdH-4f for pgsql-hackers@lists.postgresql.org; Fri, 24 Oct 2025 11:54:45 +0000 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vCGNV-003WyD-0G for pgsql-hackers@lists.postgresql.org; Fri, 24 Oct 2025 11:54:43 +0000 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-63bea08a326so2933217a12.3 for ; Fri, 24 Oct 2025 04:54:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1761306879; x=1761911679; darn=lists.postgresql.org; h=in-reply-to:references:cc:from:to:subject:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=6tfePxWD/3DgNfObIGB5jUhI12sTZiMlhSSLw8UAXQc=; b=Qv6uQUj+fG3RO5pHFgQAth3nrGGB1Ldnl0pXKWMQGX6tJNdWE9W1ZcblAGwZytQiTR oFfqx8V/HgClezhJTGv6RpW+Q6ZOkZpDvqIJ7FM94ChPPsTUViYoqUaBgV/L3hzEATYD 630jsVZuuOM/4MSxcVn0rOzq3UCYOBBUxZ08ojKaGpFUQ4CkcEGnI3uVkdfhB9OF9g08 7eAqNxZpfVUvQJiwAOvPOcNsFvm2HJDXUPpQBb9gCICDn8WDL5ysDJqhCZJC2GoCXVBG iTSAYQAIYfnTvZ1kLd0H651wImVxiTXcetqdpz7NYOLL2AV8BG7HYSp5mLrjgRwvNIrj sHUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761306879; x=1761911679; h=in-reply-to:references:cc:from:to:subject:message-id:date :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6tfePxWD/3DgNfObIGB5jUhI12sTZiMlhSSLw8UAXQc=; b=b//wOxSVUUck2196O69YoSAvXit3LpTpF79TZuwjCUa/WIJkWMDKRFTdm9+nafpgTl hUw5U5cUpbyd1XSi0CA6cSW7sfQwbyYtkp1GX1Ug4K9c0sPrPKlI2q9q3TTTy7yjSkzi r5YPJ+g9A26I5g8OI7AAYANoatdNQCz51p6X6vG9PZCK1KohgCAHNfd8yXDyi9rkCPkS dg6HzEW5CmMNR3wAWfKspVGH4t2PwFoh/Q01A/viJpamM808wBwhDR74OG4ZkTCY60NP YkjyU+EA6TRlQiXntEmLkwDvGmghEJt8ho0tqil9vgmZwthZK4065QcYwvT6T5a0jbyA LisA== X-Gm-Message-State: AOJu0YzhBNo4/MCt5MlVEXJu42jxRZm2mqqGHz1ZHVEsRSSKSqoCKgNI 7NSnc8VZZ3FbLjYB+hsonn6fNiQbIduZhWl2OWnsa6hyBr304ME508xygICnKNkBPAY= X-Gm-Gg: ASbGncv6YUBghFBD22A/hzSPLDXeE1ZIR1r7r5IlrhCiltZZQjPnlrv4Pfy3SyetH4K ntGDQ7n+L5s2Jti0gmxChg9JsYdNbSWEMKbg2A6NKKGjoLJHzxDAEEMBNp6TCYQnQ0+V3wLApou 0xnphCvLOqG1nQb6jGC3bXINIs2dt7w/vxthbvt/wdunMsF78EJY8BEbkzYmXUCBKn2Hfs1biZJ XggpAs65VDsVXWvO7fZIUaStxqda1y4nkvVZ3d+9FM3a51jMzXEhFsOZSThnh+7iLq/xH88eR1P VH2Xer2AoCWk/4ZLALcsQ6mrBgfSVAO0UsaWVIY7tHGjaSRSplCzrtM4LVVeAjU2veQ33aAmkWT R2OBwSkIQlO2xzNltek2IUGSi/e7rj/FYhYbvq82OVWM6+GbIcz2vKXUvD+PTOiqofsunQKopee mr2EINRJhZsTO9IU3bGyBEKqTfNCiCl+3GFmNubg== X-Google-Smtp-Source: AGHT+IHGNa8Q1vnGeTmPL+PBIm+u//aiVpoH4okhn7LswA4JCJTmkvQ7IKplFV8Bkqc1OeIPw6XD9g== X-Received: by 2002:a05:6402:5247:b0:63c:4d42:9928 with SMTP id 4fb4d7f45d1cf-63c4d429ba7mr21167553a12.7.1761306878905; Fri, 24 Oct 2025 04:54:38 -0700 (PDT) Received: from localhost (037153217001.static.ipv4.heldenvannu.net. [37.153.217.1]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63e3f3348cfsm4239249a12.35.2025.10.24.04.54.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Oct 2025 04:54:38 -0700 (PDT) Content-Type: multipart/mixed; boundary=b16b519fe4c00a24420a2854f579e11589e9bc201b6162bbc7448885035b Mime-Version: 1.0 Date: Fri, 24 Oct 2025 13:54:37 +0200 Message-Id: Subject: Re: Add GoAway protocol message for graceful but fast server shutdown/switchover To: "Kirill Reshke" , "Jelte Fennema-Nio" From: "Jelte Fennema-Nio" Cc: "PostgreSQL Hackers" , "Dave Cramer" , "Jacob Champion" , "Heikki Linnakangas" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --b16b519fe4c00a24420a2854f579e11589e9bc201b6162bbc7448885035b Content-Type: multipart/alternative; boundary=437a7565b4123490be714bed07ca7614490090934c42b66ac3af25dc2a6f --437a7565b4123490be714bed07ca7614490090934c42b66ac3af25dc2a6f Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Fri Oct 24, 2025 at 7:04 AM CEST, Kirill Reshke wrote: > On Thu, 23 Oct 2025 at 18:05, Jelte Fennema-Nio wrote: > Im +1 on this idea. This is something I wanted back in 2020, when > implementing the 'online restart' feature for odyssey[0], but never > bothered to create a thread. Yeah, to be clear: A big goal of this is definitely to be used by poolers/proxies/middleware. Those systems will often be more frequently restarted than the actual database servers, so being able to do that quickly without disrupting active connections is much more important there than with plain PostgreSQL servers. > About patches: Thanks for the review. Attached is a new patchset. I think I addressed all of your comments (I almost fully rewrote the docs). I also fixed two other issues that I found:=20 - updating docs for 3.3 in more places - handling the GoAway message in more code paths on the client side --437a7565b4123490be714bed07ca7614490090934c42b66ac3af25dc2a6f-- --b16b519fe4c00a24420a2854f579e11589e9bc201b6162bbc7448885035b Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=nocfbot.v2-0003-Add-pytest-based-tests-for-GoAway-message.patch Content-Type: text/x-patch; charset=utf-8; name=nocfbot.v2-0003-Add-pytest-based-tests-for-GoAway-message.patch RnJvbSA1ZTAzN2I5Y2Y2NDRlMjNmZDllOTgwNmEwYjcyNjkwZGRiODY3Zjc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUaHUsIDIzIE9jdCAyMDI1IDE0OjMxOjUyICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 MiAzLzNdIEFkZCBweXRlc3QgYmFzZWQgdGVzdHMgZm9yIEdvQXdheSBtZXNzYWdlCgpJIHVzZWQg dGhpcyBwYXRjaHNldCBhcyBhIHRyaWFsIGZvciB0aGUgbmV3IHB5dGVzdCBzdWl0ZSB0aGF0IEph Y29iIGlzCnRyeWluZyB0byBpbnRyb2R1Y2UuIEZlZWwgZnJlZSB0byBsb29rIGF0IGl0LCBidXQg SSdkIHNheSBkb24ndCByZXZpZXcKdGhpcyB0ZXN0IGluIGRldGFpbCB1bnRpbCB3ZSBoYXZlIHRo ZSBweXRlc3QgY2hhbmdlcyBtZXJnZWQgb3IgYXQgbGVhc3QKaW4gYSBtb3JlIGFncmVlZCB1cG9u IHN0YXRlLiBUaGlzIHBhdGNoIGlzIGJ1aWx0IG9uIHRvcCBvZiB0aGF0IHYzCnBhdGNoc2V0LiBU aGlzIHRlc3QgaXMgbm90IGFwcGxpZWQgYnkgY2Zib3QuCgpUZXN0aW5nIHRoaXMgYW55IG90aGVy IHdheSBpcyBhY3R1YWxseSBxdWl0ZSBkaWZmaWN1bHQgd2l0aCB0aGUKaW5mcmFzdHJ1Y3R1cmUg d2UgY3VycmVudGx5IGhhdmUgKG9mIGNvdXJzZSBJIGNvdWxkIGNoYW5nZSB0aGF0LCBidXQgSSdk Cm11Y2ggcmF0aGVyIHNwZW5kIHRoYXQgZW5lcmd5L3RpbWUgb24gbWFraW5nIHRoZSBweXRlc3Qg dGVzdCBzdWl0ZSBhCnRoaW5nKToKLSBwZ3JlZ3Jlc3MgYW5kIHBlcmwgdGVzdHMgZG9uJ3Qgd29y ayBiZWNhdXNlIHdlIG5lZWQgdG8gY2FsbCBhIG5ldwogIGxpYnBxIGZ1bmN0aW9uIHRoYXQgaXMg bm90IGV4cG9zZWQgaW4gcHNxbCAoSSBndWVzcyBJIGNvdWxkIGV4cG9zZSBpdAogIHdpdGggc29t ZSBcZ29hd2F5cmVjZWl2ZWQgY29tbWFuZCwgYnV0IGl0IGRvZXNuJ3Qgc2VlbSB2ZXJ5IHVzZWZ1 bCkuCi0gbGlicHFfcGlwZWxpbmUgY2Fubm90IHRlc3QgdGhpcyBiZWNhdXNlIGl0IHdvdWxkIG5l ZWQgdG8gcmVzdGFydAogIHRoZSBQb3N0Z3JlcyBzZXJ2ZXIgYW5kIGFsbCBpdCBoYXMKLS0tCiBz cmMvdGVzdC9weXRlc3QvbGlicHEucHkgICAgICAgICB8IDE4ICsrKysrKysrKysrKwogc3JjL3Rl c3QvcHl0ZXN0L21lc29uLmJ1aWxkICAgICAgfCAgMSArCiBzcmMvdGVzdC9weXRlc3QvcHlwZy9m aXh0dXJlcy5weSB8IDMzICsrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcHl0ZXN0L3B5 cGcvc2VydmVyLnB5ICAgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBm aWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5 dGVzdC9saWJwcS5weSBiL3NyYy90ZXN0L3B5dGVzdC9saWJwcS5weQppbmRleCBiODUxYTExN2I2 Ni4uNTUzNmI2MDVjMTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3B5dGVzdC9saWJwcS5weQorKysg Yi9zcmMvdGVzdC9weXRlc3QvbGlicHEucHkKQEAgLTEzMyw2ICsxMzMsMTIgQEAgZGVmIGxvYWRf bGlicHFfaGFuZGxlKGxpYmRpcik6CiAgICAgbGliLlBRZnR5cGUucmVzdHlwZSA9IGN0eXBlcy5j X3VpbnQKICAgICBsaWIuUFFmdHlwZS5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcCwgY3R5cGVzLmNf aW50XQogCisgICAgbGliLlBRZ29Bd2F5UmVjZWl2ZWQucmVzdHlwZSA9IGN0eXBlcy5jX2ludAor ICAgIGxpYi5QUWdvQXdheVJlY2VpdmVkLmFyZ3R5cGVzID0gW19QR2Nvbm5fcF0KKworICAgIGxp Yi5QUWNvbnN1bWVJbnB1dC5yZXN0eXBlID0gY3R5cGVzLmNfaW50CisgICAgbGliLlBRY29uc3Vt ZUlucHV0LmFyZ3R5cGVzID0gW19QR2Nvbm5fcF0KKwogICAgIHJldHVybiBsaWIKIAogCkBAIC0z NDAsNiArMzQ2LDE4IEBAIGNsYXNzIFBHY29ubihjb250ZXh0bGliLkFic3RyYWN0Q29udGV4dE1h bmFnZXIpOgogICAgICAgICAgICAgZXJyb3JfbXNnID0gcmVzLmVycm9yX21lc3NhZ2UoKSBvciBm IlVuZXhwZWN0ZWQgc3RhdHVzOiB7c3RhdHVzfSIKICAgICAgICAgICAgIHJhaXNlIExpYnBxRXJy b3IoZiJRdWVyeSBmYWlsZWQ6IHtlcnJvcl9tc2d9XG5RdWVyeToge3F1ZXJ5fSIpCiAKKyAgICBk ZWYgY29uc3VtZV9pbnB1dChzZWxmKSAtPiBib29sOgorICAgICAgICAiIiIKKyAgICAgICAgQ29u c3VtZXMgYW55IGF2YWlsYWJsZSBpbnB1dCBmcm9tIHRoZSBzZXJ2ZXIuIFJldHVybnMgVHJ1ZSBv biBzdWNjZXNzLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5fbGliLlBR Y29uc3VtZUlucHV0KHNlbGYuX2hhbmRsZSkpCisKKyAgICBkZWYgZ29hd2F5X3JlY2VpdmVkKHNl bGYpIC0+IGJvb2w6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIFRydWUgaWYgYSBHb0F3 YXkgbWVzc2FnZSB3YXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLgorICAgICAgICAiIiIKKyAg ICAgICAgcmV0dXJuIGJvb2woc2VsZi5fbGliLlBRZ29Bd2F5UmVjZWl2ZWQoc2VsZi5faGFuZGxl KSkKKwogCiBkZWYgY29ubnN0cihvcHRzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgogICAgICIi IgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcHl0 ZXN0L21lc29uLmJ1aWxkCmluZGV4IGY1MzE5M2U4Njg2Li4zYzg1MTgyNDNkOSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcHl0ZXN0L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9tZXNv bi5idWlsZApAQCAtMTIsNiArMTIsNyBAQCB0ZXN0cyArPSB7CiAgICAgJ3Rlc3RzJzogWwogICAg ICAgJ3B5dC90ZXN0X3NvbWV0aGluZy5weScsCiAgICAgICAncHl0L3Rlc3RfbGlicHEucHknLAor ICAgICAgJ3B5dC90ZXN0X2dvYXdheS5weScsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3B5dGVzdC9weXBnL2ZpeHR1cmVzLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcv Zml4dHVyZXMucHkKaW5kZXggY2YyMmM4ZWM0MzYuLmJhNDZmMDQ4YmViIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9weXRlc3QvcHlwZy9maXh0dXJlcy5weQorKysgYi9zcmMvdGVzdC9weXRlc3QvcHlw Zy9maXh0dXJlcy5weQpAQCAtMzAsNiArMzAsMzAgQEAgZGVmIHJlbWFpbmluZ190aW1lb3V0KCk6 CiAgICAgcmV0dXJuIGxhbWJkYTogbWF4KGRlYWRsaW5lIC0gdGltZS5tb25vdG9uaWMoKSwgMCkK IAogCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB3YWl0X3VudGlsKHJlbWFpbmluZ190aW1lb3V0KToK KyAgICBkZWYgd2FpdF91bnRpbChlcnJvcl9tZXNzYWdlPSJEaWQgbm90IGNvbXBsZXRlIGluIHRp bWUiLCB0aW1lb3V0PU5vbmUsIGludGVydmFsPTEpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9v cCB1bnRpbCB0aGUgdGltZW91dCBpcyByZWFjaGVkLiBJZiB0aGUgdGltZW91dCBpcyByZWFjaGVk LCByYWlzZSBhbgorICAgICAgICBleGNlcHRpb24gd2l0aCB0aGUgZ2l2ZW4gZXJyb3IgbWVzc2Fn ZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHRpbWVvdXQgaXMgTm9uZToKKyAgICAgICAgICAg IHRpbWVvdXQgPSByZW1haW5pbmdfdGltZW91dCgpCisKKyAgICAgICAgZW5kID0gdGltZS50aW1l KCkgKyB0aW1lb3V0CisgICAgICAgIHByaW50X3Byb2dyZXNzID0gdGltZW91dCAvIDEwID4gNAor ICAgICAgICBsYXN0X3ByaW50ZWRfcHJvZ3Jlc3MgPSAwCisgICAgICAgIHdoaWxlIHRpbWUudGlt ZSgpIDwgZW5kOgorICAgICAgICAgICAgaWYgcHJpbnRfcHJvZ3Jlc3MgYW5kIHRpbWUudGltZSgp IC0gbGFzdF9wcmludGVkX3Byb2dyZXNzID4gNDoKKyAgICAgICAgICAgICAgICBsYXN0X3ByaW50 ZWRfcHJvZ3Jlc3MgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgICAgIHByaW50KGYie2Vycm9y X21lc3NhZ2V9IC0gd2lsbCByZXRyeSIpCisgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAg dGltZS5zbGVlcChpbnRlcnZhbCkKKyAgICAgICAgcmFpc2UgVGltZW91dEVycm9yKGVycm9yX21l c3NhZ2UpCisKKyAgICByZXR1cm4gd2FpdF91bnRpbAorCisKIEBweXRlc3QuZml4dHVyZShzY29w ZT0ic2Vzc2lvbiIpCiBkZWYgbGlicHFfaGFuZGxlKGxpYmRpcik6CiAgICAgIiIiCkBAIC0xNDks NiArMTczLDE1IEBAIGRlZiBwZ19zZXJ2ZXJfbW9kdWxlKHBnX3NlcnZlcl9nbG9iYWwpOgogICAg ICAgICB5aWVsZCBzCiAKIAorQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9ImZ1 bmN0aW9uIikKK2RlZiBlbnN1cmVfc2VydmVyX3J1bm5pbmcocGdfc2VydmVyX2dsb2JhbCk6Cisg ICAgIiIiCisgICAgQXV0b3VzZSBmaXh0dXJlIHRoYXQgZW5zdXJlcyB0aGUgc2VydmVyIGlzIHJ1 bm5pbmcgYmVmb3JlIGVhY2ggdGVzdC4KKyAgICBJZiBhIHRlc3Qgc2h1dHMgZG93biB0aGUgc2Vy dmVyLCB0aGlzIHdpbGwgcmVzdGFydCBpdCBmb3IgdGhlIG5leHQgdGVzdC4KKyAgICAiIiIKKyAg ICBwZ19zZXJ2ZXJfZ2xvYmFsLmVuc3VyZV9ydW5uaW5nKCkKKworCiBAcHl0ZXN0LmZpeHR1cmUK IGRlZiBwZyhwZ19zZXJ2ZXJfbW9kdWxlLCByZW1haW5pbmdfdGltZW91dCk6CiAgICAgIiIiCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvcHlwZy9zZXJ2ZXIucHkgYi9zcmMvdGVzdC9weXRl c3QvcHlwZy9zZXJ2ZXIucHkKaW5kZXggZDY2NzVjZGU5M2QuLmYwOTY1MWMwODllIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9weXRlc3QvcHlwZy9zZXJ2ZXIucHkKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0 L3B5cGcvc2VydmVyLnB5CkBAIC0zMzIsNiArMzMyLDU2IEBAIGNsYXNzIFBvc3RncmVzU2VydmVy OgogICAgICAgICAgICAgIyBTZXJ2ZXIgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHN0b3BwZWQKICAg ICAgICAgICAgIHBhc3MKIAorICAgIGRlZiBlbnN1cmVfcnVubmluZyhzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBQb3N0Z3JlU1FMIHNlcnZlciBpcyBydW5uaW5n IGFuZCBhY2NlcHRpbmcgY29ubmVjdGlvbnMuCisKKyAgICAgICAgSWYgdGhlIHNlcnZlciBpcyBu b3QgcnVubmluZywgaXQgd2lsbCBiZSByZXN0YXJ0ZWQuIFRoaXMgbWV0aG9kIHdhaXRzCisgICAg ICAgIGZvciBhbnkgaW4tcHJvZ3Jlc3Mgc2h1dGRvd24gdG8gY29tcGxldGUgYmVmb3JlIGF0dGVt cHRpbmcgdG8gcmVzdGFydC4KKyAgICAgICAgIiIiCisgICAgICAgIHBpZF9maWxlID0gb3MucGF0 aC5qb2luKHNlbGYuZGF0YWRpciwgInBvc3RtYXN0ZXIucGlkIikKKworICAgICAgICAjIFdhaXQg Zm9yIGFueSBpbi1wcm9ncmVzcyBzaHV0ZG93biB0byBjb21wbGV0ZQorICAgICAgICBzb2NrZXRf cGF0dGVybiA9IG9zLnBhdGguam9pbihzZWxmLnNvY2tkaXIsIGYiLnMuUEdTUUwue3NlbGYucG9y dH0qIikKKyAgICAgICAgZm9yIF8gaW4gcmFuZ2UoMTAwKTogICMgV2FpdCB1cCB0byAxMCBzZWNv bmRzCisgICAgICAgICAgICAjIFNlcnZlciBpcyBmdWxseSBkb3duIHdoZW4gYm90aCBQSUQgZmls ZSBhbmQgc29ja2V0cyBhcmUgZ29uZQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3Rz KHBpZF9maWxlKSBhbmQgbGVuKGdsb2IuZ2xvYihzb2NrZXRfcGF0dGVybikpID09IDA6CisgICAg ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICMgU2VydmVyIGlzIHJ1bm5pbmcgaWYgUElE IGV4aXN0cyBhbmQgd2UgY2FuIGNvbm5lY3QKKyAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3Rz KHBpZF9maWxlKToKKyAgICAgICAgICAgICAgICAjIFVzZSBwZ19pc3JlYWR5IHRvIGNoZWNrIGlm IHNlcnZlciBpcyBhY2NlcHRpbmcgY29ubmVjdGlvbnMKKyAgICAgICAgICAgICAgICB0cnk6Cisg ICAgICAgICAgICAgICAgICAgIHBnX2lzcmVhZHkgPSBvcy5wYXRoLmpvaW4oc2VsZi5fYmluZGly LCAicGdfaXNyZWFkeSIpCisgICAgICAgICAgICAgICAgICAgIHJ1bigKKyAgICAgICAgICAgICAg ICAgICAgICAgIHBnX2lzcmVhZHksCisgICAgICAgICAgICAgICAgICAgICAgICAiLWgiLAorICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zb2NrZGlyLAorICAgICAgICAgICAgICAgICAgICAg ICAgIi1wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucG9ydCwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLkRFVk5VTEwsCisgICAgICAgICAgICAgICAg ICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLAorICAgICAgICAgICAgICAgICAgICAg ICAgdGltZW91dD0xLAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAg ICMgU2VydmVyIGlzIHVwIGFuZCByZWFkeQorICAgICAgICAgICAgICAgICAgICBicmVhaworICAg ICAgICAgICAgICAgIGV4Y2VwdCAoc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IsIHN1YnBy b2Nlc3MuVGltZW91dEV4cGlyZWQpOgorICAgICAgICAgICAgICAgICAgICAjIFNlcnZlciBpcyBu b3QgcmVhZHkgeWV0LCBrZWVwIHdhaXRpbmcKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAg ICAgICAgICAgdGltZS5zbGVlcCgwLjEpCisKKyAgICAgICAgIyBOb3cgY2hlY2sgaWYgc2VydmVy IG5lZWRzIHRvIGJlIHN0YXJ0ZWQKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHBpZF9m aWxlKToKKyAgICAgICAgICAgICMgUmVzdGFydCB0aGUgc2VydmVyIGFuZCB3YWl0IGZvciBpdCB0 byBiZSByZWFkeQorICAgICAgICAgICAgcnVuKAorICAgICAgICAgICAgICAgIHNlbGYuX3BnX2N0 bCwKKyAgICAgICAgICAgICAgICAiLUQiLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWRpciwK KyAgICAgICAgICAgICAgICAiLWwiLAorICAgICAgICAgICAgICAgIHNlbGYuX2xvZywKKyAgICAg ICAgICAgICAgICAiLXciLAorICAgICAgICAgICAgICAgICJzdGFydCIsCisgICAgICAgICAgICAp CisKICAgICBkZWYgY2xlYW51cChzZWxmKToKICAgICAgICAgIiIiUnVuIGFsbCByZWdpc3RlcmVk IGNsZWFudXAgY2FsbGJhY2tzLiIiIgogICAgICAgICBzZWxmLl9jbGVhbnVwX3N0YWNrLmNsb3Nl KCkKLS0gCjIuNTEuMQoK --b16b519fe4c00a24420a2854f579e11589e9bc201b6162bbc7448885035b Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0001-Bump-protocol-version-to-3.3.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0001-Bump-protocol-version-to-3.3.patch RnJvbSA1ODdkZjZiMWE4MTgzM2IxNGNmOGMyZDY1OWIyMWNkNTRhM2M1NWY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDE5IE9jdCAyMDI1IDAwOjMwOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 MiAxLzNdIEJ1bXAgcHJvdG9jb2wgdmVyc2lvbiB0byAzLjMKClRoaXMgY29tbWl0IGluY3JlbWVu dHMgdGhlIFBvc3RncmVTUUwgZnJvbnRlbmQvYmFja2VuZCBwcm90b2NvbCB2ZXJzaW9uCmZyb20g My4yIHRvIDMuMyBhbmQgZG9lcyB0aGUgcmVxdWlyZWQgYm9pbGVycGxhdGUgY2hhbmdlcy4gVGhl IG5leHQKY29tbWl0IHdpbGwgaW50cm9kdWNlIGFuIGFjdHVhbCBwcm90b2NvbCBjaGFuZ2UuCi0t LQogZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysr KysrLS0tLQogZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgICAgICAgICAgICAgICAgICAgIHwg MjIgKysrKysrKysrKysrLS0tLS0tLQogc3JjL2luY2x1ZGUvbGlicHEvcHFjb21tLmggICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyAg ICAgICAgICAgICB8ICA2ICsrKysrCiAuLi4vbW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9w aXBlbGluZS5jICAgfCAyMiArKysrKysrKysrKysrKysrLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDQ4 IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKaW5kZXggNWJmNTlhMTk4NTUu LjBmNDNlZTZiMDM5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtMjIwMCwxMCArMjIwMCwxMiBAQCBwb3N0Z3Jlc3Fs Oi8vJTJGdmFyJTJGbGliJTJGcG9zdGdyZXNxbC9kYm5hbWUKIAogICAgICAgIDxwYXJhPgogICAg ICAgICBUaGUgY3VycmVudCBzdXBwb3J0ZWQgdmFsdWVzIGFyZQotICAgICAgICA8bGl0ZXJhbD4z LjA8L2xpdGVyYWw+LCA8bGl0ZXJhbD4zLjI8L2xpdGVyYWw+LAorICAgICAgICA8bGl0ZXJhbD4z LjA8L2xpdGVyYWw+LAorICAgICAgICA8bGl0ZXJhbD4zLjI8L2xpdGVyYWw+LAorICAgICAgICA8 bGl0ZXJhbD4zLjM8L2xpdGVyYWw+CiAgICAgICAgIGFuZCA8bGl0ZXJhbD5sYXRlc3Q8L2xpdGVy YWw+LiBUaGUgPGxpdGVyYWw+bGF0ZXN0PC9saXRlcmFsPiB2YWx1ZSBpcwogICAgICAgICBlcXVp dmFsZW50IHRvIHRoZSBsYXRlc3QgcHJvdG9jb2wgdmVyc2lvbiBzdXBwb3J0ZWQgYnkgdGhlIGxp YnBxCi0gICAgICAgIHZlcnNpb24gYmVpbmcgdXNlZCwgd2hpY2ggaXMgY3VycmVudGx5IDxsaXRl cmFsPjMuMjwvbGl0ZXJhbD4uCisgICAgICAgIHZlcnNpb24gYmVpbmcgdXNlZCwgd2hpY2ggaXMg Y3VycmVudGx5IDxsaXRlcmFsPjMuMzwvbGl0ZXJhbD4uCiAgICAgICAgPC9wYXJhPgogICAgICAg PC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0yMjI2LDEwICsyMjI4LDEyIEBA IHBvc3RncmVzcWw6Ly8lMkZ2YXIlMkZsaWIlMkZwb3N0Z3Jlc3FsL2RibmFtZQogCiAgICAgICAg PHBhcmE+CiAgICAgICAgIFRoZSBjdXJyZW50IHN1cHBvcnRlZCB2YWx1ZXMgYXJlCi0gICAgICAg IDxsaXRlcmFsPjMuMDwvbGl0ZXJhbD4sIDxsaXRlcmFsPjMuMjwvbGl0ZXJhbD4sCisgICAgICAg IDxsaXRlcmFsPjMuMDwvbGl0ZXJhbD4sCisgICAgICAgIDxsaXRlcmFsPjMuMjwvbGl0ZXJhbD4s CisgICAgICAgIDxsaXRlcmFsPjMuMzwvbGl0ZXJhbD4KICAgICAgICAgYW5kIDxsaXRlcmFsPmxh dGVzdDwvbGl0ZXJhbD4uIFRoZSA8bGl0ZXJhbD5sYXRlc3Q8L2xpdGVyYWw+IHZhbHVlIGlzCiAg ICAgICAgIGVxdWl2YWxlbnQgdG8gdGhlIGxhdGVzdCBwcm90b2NvbCB2ZXJzaW9uIHN1cHBvcnRl ZCBieSB0aGUgbGlicHEKLSAgICAgICAgdmVyc2lvbiBiZWluZyB1c2VkLCB3aGljaCBpcyBjdXJy ZW50bHkgPGxpdGVyYWw+My4yPC9saXRlcmFsPi4KKyAgICAgICAgdmVyc2lvbiBiZWluZyB1c2Vk LCB3aGljaCBpcyBjdXJyZW50bHkgPGxpdGVyYWw+My4zPC9saXRlcmFsPi4KICAgICAgICA8L3Bh cmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwK aW5kZXggOWQ3NTUyMzI4NzMuLjc2NjViZDdkY2I4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbApAQCAtMTgsOCAr MTgsOCBAQAogIDwvcGFyYT4KIAogIDxwYXJhPgotICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB2 ZXJzaW9uIDMuMiBvZiB0aGUgcHJvdG9jb2wsIGludHJvZHVjZWQgaW4KLSAgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiB2ZXJzaW9uIDE4LiBUaGUgc2VydmVyIGFuZCB0aGUg bGlicHEKKyAgVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdmVyc2lvbiAzLjMgb2YgdGhlIHByb3Rv Y29sLCBpbnRyb2R1Y2VkIGluCisgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFt ZT4gdmVyc2lvbiAxOS4gVGhlIHNlcnZlciBhbmQgdGhlIGxpYnBxCiAgIGNsaWVudCBsaWJyYXJ5 IGFyZSBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoIHByb3RvY29sIHZlcnNpb24gMy4wLAogICBp bXBsZW1lbnRlZCBpbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IDcuNCBh bmQgbGF0ZXIuCiAgPC9wYXJhPgpAQCAtMTkyLDcgKzE5Miw3IEBACiAgICA8dGl0bGU+UHJvdG9j b2wgVmVyc2lvbnM8L3RpdGxlPgogCiAgICA8cGFyYT4KLSAgICBUaGUgY3VycmVudCwgbGF0ZXN0 IHZlcnNpb24gb2YgdGhlIHByb3RvY29sIGlzIHZlcnNpb24gMy4yLiBIb3dldmVyLCBmb3IKKyAg ICBUaGUgY3VycmVudCwgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHByb3RvY29sIGlzIHZlcnNpb24g My4zLiBIb3dldmVyLCBmb3IKICAgICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBz ZXJ2ZXIgdmVyc2lvbnMgYW5kIG1pZGRsZXdhcmUgdGhhdCBkb24ndAogICAgIHN1cHBvcnQgdGhl IHZlcnNpb24gbmVnb3RpYXRpb24geWV0LCBsaWJwcSBzdGlsbCB1c2VzIHByb3RvY29sIHZlcnNp b24gMy4wCiAgICAgYnkgZGVmYXVsdC4KQEAgLTIwNiw3ICsyMDYsNyBAQAogICAgIHRoaXMgd291 bGQgb2NjdXIgaWYgdGhlIGNsaWVudCByZXF1ZXN0ZWQgcHJvdG9jb2wgdmVyc2lvbiA0LjAsIHdo aWNoIGRvZXMKICAgICBub3QgZXhpc3QgYXMgb2YgdGhpcyB3cml0aW5nKS4gIElmIHRoZSBtaW5v ciB2ZXJzaW9uIHJlcXVlc3RlZCBieSB0aGUKICAgICBjbGllbnQgaXMgbm90IHN1cHBvcnRlZCBi eSB0aGUgc2VydmVyIChlLmcuLCB0aGUgY2xpZW50IHJlcXVlc3RzIHZlcnNpb24KLSAgICAzLjIs IGJ1dCB0aGUgc2VydmVyIHN1cHBvcnRzIG9ubHkgMy4wKSwgdGhlIHNlcnZlciBtYXkgZWl0aGVy IHJlamVjdCB0aGUKKyAgICAzLjMsIGJ1dCB0aGUgc2VydmVyIHN1cHBvcnRzIG9ubHkgMy4wKSwg dGhlIHNlcnZlciBtYXkgZWl0aGVyIHJlamVjdCB0aGUKICAgICBjb25uZWN0aW9uIG9yIG1heSBy ZXNwb25kIHdpdGggYSBOZWdvdGlhdGVQcm90b2NvbFZlcnNpb24gbWVzc2FnZQogICAgIGNvbnRh aW5pbmcgdGhlIGhpZ2hlc3QgbWlub3IgcHJvdG9jb2wgdmVyc2lvbiB3aGljaCBpdCBzdXBwb3J0 cy4gIFRoZQogICAgIGNsaWVudCBtYXkgdGhlbiBjaG9vc2UgZWl0aGVyIHRvIGNvbnRpbnVlIHdp dGggdGhlIGNvbm5lY3Rpb24gdXNpbmcgdGhlCkBAIC0yMzgsMTAgKzIzOCwxNiBAQAogICAgICA8 L3RoZWFkPgogCiAgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAgICA8ZW50cnk+My4zPC9l bnRyeT4KKyAgICAgIDxlbnRyeT5Qb3N0Z3JlU1FMIDE5IGFuZCBsYXRlcjwvZW50cnk+CisgICAg ICA8ZW50cnk+Q3VycmVudCBsYXRlc3QgdmVyc2lvbi4KKyAgICAgIDwvZW50cnk+CisgICAgICA8 L3Jvdz4KICAgICAgIDxyb3c+CiAgICAgICA8ZW50cnk+My4yPC9lbnRyeT4KICAgICAgIDxlbnRy eT5Qb3N0Z3JlU1FMIDE4IGFuZCBsYXRlcjwvZW50cnk+Ci0gICAgICA8ZW50cnk+Q3VycmVudCBs YXRlc3QgdmVyc2lvbi4gVGhlIHNlY3JldCBrZXkgdXNlZCBpbiBxdWVyeQorICAgICAgPGVudHJ5 PlRoZSBzZWNyZXQga2V5IHVzZWQgaW4gcXVlcnkKICAgICAgICAgY2FuY2VsbGF0aW9uIHdhcyBl bmxhcmdlZCBmcm9tIDQgYnl0ZXMgdG8gYSB2YXJpYWJsZSBsZW5ndGggZmllbGQuIFRoZQogICAg ICAgICBCYWNrZW5kS2V5RGF0YSBtZXNzYWdlIHdhcyBjaGFuZ2VkIHRvIGFjY29tbW9kYXRlIHRo YXQsIGFuZCB0aGUgQ2FuY2VsUmVxdWVzdAogICAgICAgICBtZXNzYWdlIHdhcyByZWRlZmluZWQg dG8gaGF2ZSBhIHZhcmlhYmxlIGxlbmd0aCBwYXlsb2FkLgpAQCAtNjA3Niw5ICs2MDgyLDkgQEAg cHNxbCAiZGJuYW1lPXBvc3RncmVzIHJlcGxpY2F0aW9uPWRhdGFiYXNlIiAtYyAiSURFTlRJRllf U1lTVEVNOyIKICAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGUgcHJvdG9jb2wgdmVyc2lvbiBu dW1iZXIuICBUaGUgbW9zdCBzaWduaWZpY2FudCAxNiBiaXRzIGFyZQogICAgICAgICAgdGhlIG1h am9yIHZlcnNpb24gbnVtYmVyLiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgMTYgYml0cyBhcmUgdGhl IG1pbm9yCi0gICAgICAgICB2ZXJzaW9uIG51bWJlci4gQXMgYW4gZXhhbXBsZSBwcm90b2NvbCB2 ZXJzaW9uIDMuMiBpcyByZXByZXNlbnRlZCBhcwotICAgICAgICAgPGxpdGVyYWw+MTk2NjEwPC9s aXRlcmFsPiBpbiBkZWNpbWFsIG9yIG1vcmUgY2xlYXJseSBhcwotICAgICAgICAgPGxpdGVyYWw+ MHgwMDAzMDAwMjwvbGl0ZXJhbD4gaW4gaGV4YWRlY2ltYWwuCisgICAgICAgICB2ZXJzaW9uIG51 bWJlci4gQXMgYW4gZXhhbXBsZSBwcm90b2NvbCB2ZXJzaW9uIDMuMyBpcyByZXByZXNlbnRlZCBh cworICAgICAgICAgPGxpdGVyYWw+MTk2NjExPC9saXRlcmFsPiBpbiBkZWNpbWFsIG9yIG1vcmUg Y2xlYXJseSBhcworICAgICAgICAgPGxpdGVyYWw+MHgwMDAzMDAwMzwvbGl0ZXJhbD4gaW4gaGV4 YWRlY2ltYWwuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92 YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9saWJwcS9wcWNvbW0uaCBiL3Ny Yy9pbmNsdWRlL2xpYnBxL3BxY29tbS5oCmluZGV4IGYwNGNhMTM1NjUzLi4yNDIzMzk0YjM0OCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvcHFjb21tLmgKKysrIGIvc3JjL2luY2x1ZGUv bGlicHEvcHFjb21tLmgKQEAgLTk0LDcgKzk0LDcgQEAgaXNfdW5peHNvY2tfcGF0aChjb25zdCBj aGFyICpwYXRoKQogICovCiAKICNkZWZpbmUgUEdfUFJPVE9DT0xfRUFSTElFU1QJUEdfUFJPVE9D T0woMywwKQotI2RlZmluZSBQR19QUk9UT0NPTF9MQVRFU1QJCVBHX1BST1RPQ09MKDMsMikKKyNk ZWZpbmUgUEdfUFJPVE9DT0xfTEFURVNUCQlQR19QUk9UT0NPTCgzLDMpCiAKIHR5cGVkZWYgdWlu dDMyIFByb3RvY29sVmVyc2lvbjsgLyogRkUvQkUgcHJvdG9jb2wgdmVyc2lvbiBudW1iZXIgKi8K IApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCmluZGV4IGEzZDEyOTMxZmZmLi42MmQzNWUwYzc4 OSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAtODMwMSw2ICs4MzAxLDEyIEBAIHBx UGFyc2VQcm90b2NvbFZlcnNpb24oY29uc3QgY2hhciAqdmFsdWUsIFByb3RvY29sVmVyc2lvbiAq cmVzdWx0LCBQR2Nvbm4gKmNvbm4sCiAJCXJldHVybiB0cnVlOwogCX0KIAorCWlmIChzdHJjbXAo dmFsdWUsICIzLjMiKSA9PSAwKQorCXsKKwkJKnJlc3VsdCA9IFBHX1BST1RPQ09MKDMsIDMpOwor CQlyZXR1cm4gdHJ1ZTsKKwl9CisKIAlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiaW52 YWxpZCAlcyB2YWx1ZTogXCIlc1wiIiwKIAkJCQkJCQljb250ZXh0LCB2YWx1ZSk7CiAJcmV0dXJu IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJw cV9waXBlbGluZS5jIGIvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9waXBl bGluZS5jCmluZGV4IGIzYWY3MGZhMDliLi4wYjExM2IyNzFlYSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS9saWJwcV9waXBlbGluZS5jCisrKyBiL3NyYy90ZXN0 L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYwpAQCAtMTQwNSw3ICsxNDA1 LDIzIEBAIHRlc3RfcHJvdG9jb2xfdmVyc2lvbihQR2Nvbm4gKmNvbm4pCiAJUFFmaW5pc2goY29u bik7CiAKIAkvKgotCSAqIFRlc3QgbWF4X3Byb3RvY29sX3ZlcnNpb249bGF0ZXN0LiAnbGF0ZXN0 JyBjdXJyZW50bHkgbWVhbnMgJzMuMicuCisJICogVGVzdCBtYXhfcHJvdG9jb2xfdmVyc2lvbj0z LjMKKwkgKi8KKwl2YWxzW21heF9wcm90b2NvbF92ZXJzaW9uX2luZGV4XSA9ICIzLjMiOworCWNv bm4gPSBQUWNvbm5lY3RkYlBhcmFtcyhrZXl3b3JkcywgdmFscywgZmFsc2UpOworCisJaWYgKFBR c3RhdHVzKGNvbm4pICE9IENPTk5FQ1RJT05fT0spCisJCXBnX2ZhdGFsKCJDb25uZWN0aW9uIHRv IGRhdGFiYXNlIGZhaWxlZDogJXMiLAorCQkJCSBQUWVycm9yTWVzc2FnZShjb25uKSk7CisKKwlw cm90b2NvbF92ZXJzaW9uID0gUFFmdWxsUHJvdG9jb2xWZXJzaW9uKGNvbm4pOworCWlmIChwcm90 b2NvbF92ZXJzaW9uICE9IDMwMDAzKQorCQlwZ19mYXRhbCgiZXhwZWN0ZWQgMzAwMDMsIGdvdCAl ZCIsIHByb3RvY29sX3ZlcnNpb24pOworCisJUFFmaW5pc2goY29ubik7CisKKwkvKgorCSAqIFRl c3QgbWF4X3Byb3RvY29sX3ZlcnNpb249bGF0ZXN0LiAnbGF0ZXN0JyBjdXJyZW50bHkgbWVhbnMg JzMuMycuCiAJICovCiAJdmFsc1ttYXhfcHJvdG9jb2xfdmVyc2lvbl9pbmRleF0gPSAibGF0ZXN0 IjsKIAljb25uID0gUFFjb25uZWN0ZGJQYXJhbXMoa2V5d29yZHMsIHZhbHMsIGZhbHNlKTsKQEAg LTE0MTUsOCArMTQzMSw4IEBAIHRlc3RfcHJvdG9jb2xfdmVyc2lvbihQR2Nvbm4gKmNvbm4pCiAJ CQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKIAogCXByb3RvY29sX3ZlcnNpb24gPSBQUWZ1bGxQ cm90b2NvbFZlcnNpb24oY29ubik7Ci0JaWYgKHByb3RvY29sX3ZlcnNpb24gIT0gMzAwMDIpCi0J CXBnX2ZhdGFsKCJleHBlY3RlZCAzMDAwMiwgZ290ICVkIiwgcHJvdG9jb2xfdmVyc2lvbik7CisJ aWYgKHByb3RvY29sX3ZlcnNpb24gIT0gMzAwMDMpCisJCXBnX2ZhdGFsKCJleHBlY3RlZCAzMDAw MywgZ290ICVkIiwgcHJvdG9jb2xfdmVyc2lvbik7CiAKIAlQUWZpbmlzaChjb25uKTsKIAotLSAK Mi41MS4xCgo= --b16b519fe4c00a24420a2854f579e11589e9bc201b6162bbc7448885035b Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0002-Add-GoAway-protocol-message-for-graceful-but-fast.patch Content-Type: text/x-patch; charset=utf-8; name=v2-0002-Add-GoAway-protocol-message-for-graceful-but-fast.patch RnJvbSBmZDQ4NmQ4YTgzMTEyNTA0MTE0ZGJhZWI0ZGE0MDEwNmFmMzM2MWI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDE5IE9jdCAyMDI1IDAwOjM2OjMwICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 MiAyLzNdIEFkZCBHb0F3YXkgcHJvdG9jb2wgbWVzc2FnZSBmb3IgZ3JhY2VmdWwgYnV0IGZhc3QK IHNlcnZlciBzaHV0ZG93bi9zd2l0Y2hvdmVyCgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGEgbmV3 IEdvQXdheSBiYWNrZW5kLXRvLWZyb250ZW5kIHByb3RvY29sCm1lc3NhZ2UgKGJ5dGUgJ2cnKSB0 aGF0IHRoZSBzZXJ2ZXIgY2FuIHNlbmQgdG8gdGhlIGNsaWVudCB0byBwb2xpdGVseQpyZXF1ZXN0 IHRoYXQgY2xpZW50IHRvIGRpc2Nvbm5lY3QvcmVjb25uZWN0IHdoZW4gY29udmVuaWVudC4gVGhp cyBtZXNzYWdlIGlzCmFkdmlzb3J5IG9ubHkgLSB0aGUgY29ubmVjdGlvbiByZW1haW5zIGZ1bGx5 IGZ1bmN0aW9uYWwgYW5kIGNsaWVudHMgbWF5CmNvbnRpbnVlIGV4ZWN1dGluZyBxdWVyaWVzIGFu ZCBzdGFydGluZyBuZXcgdHJhbnNhY3Rpb25zLiAiV2hlbgpjb252ZW5pZW50IiBpcyBvYnZpb3Vz bHkgbm90IHZlcnkgd2VsbCBkZWZpbmVkLCBidXQgdGhlIHByaW1hcnkgdGFyZ2V0CmNsaWVudHMg YXJlIGNsaWVudHMgdGhhdCBtYWludGFpbiBhIGNvbm5lY3Rpb24gcG9vbC4gU3VjaCBjbGllbnRz IHNob3VsZApkaXNjb25uZWN0L3JlY29ubmVjdCBhIGNvbm5lY3Rpb24gaW4gdGhlIHBvb2wgd2hl biB0aGVyZSdzIG5vIHVzZXIgb2YKdGhhdCBjb25uZWN0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8g aG93IHN1Y2ggY2xpZW50cyBvZnRlbiBjdXJyZW50bHkKcmVtb3ZlIGEgY29ubmVjdGlvbiBmcm9t IHRoZSBwb29sIGFmdGVyIHRoZSBjb25uZWN0aW9uIGhpdHMgYSBtYXhpbXVtCmxpZmV0aW1lIG9m IGUuZy4gMSBob3VyLgoKVGhpcyBuZXcgbWVzc2FnZSBpcyB1c2VkIGJ5IFBvc3RncmVzIGR1cmlu ZyB0aGUgYWxyZWFkeSBleGlzdGluZyAic21hcnQiCnNodXRkb3duIHByb2NlZHVyZSAoaS5lLiB3 aGVuIHBvc3RtYXN0ZXIgcmVjZWl2ZXMgU0lHVEVSTSkuIFdoZW4KUG9zdGdyZXMgaXMgaW4gInNt YXJ0IiBzaHV0ZG93biBtb2RlIGV4aXN0aW5nIGNsaWVudHMgY2FuIGNvbnRpbnVlIHRvCnJ1biBx dWVyaWVzIGFzIHVzdWFsIGJ1dCBuZXcgY29ubmVjdGlvbiBhdHRlbXB0cyBhcmUgcmVqZWN0ZWQu IFRoaXMgbW9kZQppcyBwcmltYXJpbHkgdXNlZnVsIHdoZW4gdHJpZ2dlcmluZyBhIHN3aXRjaG92 ZXIgb2YgYSByZWFkIHJlcGxpY2EuIEEKbG9hZCBiYWxhbmNlciBjYW4gcm91dGUgbmV3IGNvbm5l Y3Rpb25zIG9ubHkgdG8gdGhlIG5ldyByZWFkIHJlcGxpY2EsCndoaWxlIHRoZSBvbGQgbG9hZCBi YWxhbmNlciBrZWVwcyBzZXJ2aW5nIHRoZSBleGlzdGluZyBjb25uZWN0aW9ucyB1bnRpbAp0aGV5 IGRpc2Nvbm5lY3QuIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhpcyBkcmFpbmluZyBvZiBjb25uZWN0 aW9ucyBjb3VsZApvZnRlbiB0YWtlIGEgbG9uZyB0aW1lLiBFdmVuIHdoZW4gY2xpZW50cyBvbmx5 IHJ1biB2ZXJ5IHNob3J0CnF1ZXJpZXMvdHJhbnNhY3Rpb25zIGJlY2F1c2UgdGhlIHNlc3Npb24g Y2FuIGJlIGtlcHQgb3BlbiBtdWNoIGxvbmdlcgoobWFueSBjb25uZWN0aW9uIHBvb2xzIHVzZSAx IGhvdXIgbWF4IGxpZmV0aW1lIG9mIGEgY29ubmVjdGlvbiBieSBkZWZhdWx0KS4KV2l0aCB0aGUg aW50cm9kdWN0aW9uIG9mIHRoZSBHb0F3YXkgbWVzc2FnZSBQb3N0Z3JlcyBub3cgc2VuZHMgdGhp cwptZXNzYWdlIHRvIGFsbCBjb25uZWN0ZWQgY2xpZW50cyB3aGVuIGl0IGVudGVycyBzbWFydCBz aHV0ZG93biBtb2RlLgpJZiB0aGVzZSBjbGllbnRzIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UgYnkg cmVjb25uZWN0aW5nL2Rpc2Nvbm5lY3RpbmcKZWFybGllciB0aGFuIHRoZWlyIG1heGltdW0gY29u bmVjdGlvbiBsaWZldGltZSB0aGUgZHJhaW5pbmcgY2FuIGNvbXBsZXRlCm11Y2ggcXVpY2tlci4g U2ltaWxhciBiZW5lZml0cyB0byBzd2l0Y2hvdmVyIGR1cmF0aW9uIGNhbiBiZSBhY2hpZXZlZApm b3Igb3RoZXIgYXBwbGljYXRpb25zIG9yIHByb3hpZXMgaW1wbGVtZW50aW5nIHRoZSBQb3N0Z3Jl cyBwcm90b2NvbCwKbGlrZSB3aGVuIHN3aXRjaGluZyBvdmVyIGEgY2x1c3RlciBvZiBQZ0JvdW5j ZXIgbWFjaGluZXMgdG8gYSBuZXdlcgp2ZXJzaW9uLgoKQXBwbGljYXRpb25zL2NsaWVudHMgdGhh dCB1c2UgbGlicHEgY2FuIHBlcmlvZGljYWxseSBjaGVjayB0aGUgcmVzdWx0IG9mClBRZ29Bd2F5 UmVjZWl2ZWQoKSBhdCBhbiBpbmFjdGl2ZSB0aW1lIHRvIHNlZSB3aGV0aGVyIHRoZXkgYXJlIGFz a2VkIHRvCnJlY29ubmVjdC4KLS0tCiBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAg ICAgfCA0MSArKysrKysrKysrKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwg ICAgICAgICAgIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgIHwgMjQgKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9z dG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgfCAgMyArKwogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jl cy5jICAgICAgICAgIHwgMzYgKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2xpYnBxL3By b3RvY29sLmggICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5o ICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaCAgICAgICAgICB8ICAxICsK IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0ICAgICB8ICAxICsKIHNyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyAgICB8ICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LWV4ZWMuYyAgICAgICB8IDI3ICsrKysrKysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LXByb3RvY29sMy5jICB8IDE3ICsrKysrKystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1m ZS5oICAgICAgfCAgNSArKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oICAgICB8 ICAxICsKIDE0IGZpbGVzIGNoYW5nZWQsIDIxNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xp YnBxLnNnbWwKaW5kZXggMGY0M2VlNmIwMzkuLjU2M2UyNWQ5ZjI3IDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvbGlicHEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtMjk5 Niw2ICsyOTk2LDQ3IEBAIGludCBQUXNlcnZlclZlcnNpb24oY29uc3QgUEdjb25uICpjb25uKTsK ICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50 cnkgaWQ9ImxpYnBxLVBRZ29Bd2F5UmVjZWl2ZWQiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFn b0F3YXlSZWNlaXZlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWdvQXdheVJlY2Vp dmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAg PHBhcmE+CisgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBzZXJ2ZXIgaGFzIHNlbnQgYSA8bGl0 ZXJhbD5Hb0F3YXk8L2xpdGVyYWw+IG1lc3NhZ2UsCisgICAgICAgcmVxdWVzdGluZyB0aGUgY2xp ZW50IHRvIGRpc2Nvbm5lY3Qgd2hlbiBjb252ZW5pZW50LgorCis8c3lub3BzaXM+CitpbnQgUFFn b0F3YXlSZWNlaXZlZChjb25zdCBQR2Nvbm4gKmNvbm4pOworPC9zeW5vcHNpcz4KKyAgICAgIDwv cGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgVGhlIDxsaXRlcmFsPkdvQXdheTwvbGl0ZXJh bD4gbWVzc2FnZSBpcyBzZW50IGJ5IHRoZSBzZXJ2ZXIgZHVyaW5nIGEKKyAgICAgICBzbWFydCBz aHV0ZG93biB0byBwb2xpdGVseSByZXF1ZXN0IHRoYXQgY2xpZW50cyBkaXNjb25uZWN0LiBUaGlz IGlzCisgICAgICAgYWR2aXNvcnkgb25seSAtIHRoZSBjb25uZWN0aW9uIHJlbWFpbnMgZnVsbHkg ZnVuY3Rpb25hbCBhbmQgcXVlcmllcworICAgICAgIGNhbiBjb250aW51ZSB0byBiZSBleGVjdXRl ZC4gQXBwbGljYXRpb25zIGNhbiBjaG9vc2UgdG8gaG9ub3IgdGhlIHJxdWVzdAorICAgICAgIGJ5 IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBwZXJpb2RpY2FsbHkgYW5kIGRpc2Nvbm5lY3QgZ3JhY2Vm dWxseSB3aGVuCisgICAgICAgcG9zc2libGUsIHN1Y2ggYXMgYWZ0ZXIgY29tcGxldGluZyB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbi4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAg ICAgVGhpcyBtZXNzYWdlIGlzIG9ubHkgc2VudCB0byBjbGllbnRzIHVzaW5nIHByb3RvY29sIHZl cnNpb24gMy4zIG9yCisgICAgICAgbGF0ZXIuIFRoZSBmdW5jdGlvbiByZXR1cm5zIDEgaWYgdGhl IDxsaXRlcmFsPkdvQXdheTwvbGl0ZXJhbD4gbWVzc2FnZQorICAgICAgIHdhcyByZWNlaXZlZCwg MCBvdGhlcndpc2UuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIDxmdW5j dGlvbj5QUWdvQXdheVJlY2VpdmVkPC9mdW5jdGlvbj4gZG9lcyBub3QgYWN0dWFsbHkgcmVhZCBk YXRhIGZyb20gdGhlCisgICAgICAgc2VydmVyOyBpdCBqdXN0IHJldHVybnMgbWVzc2FnZXMgcHJl dmlvdXNseSBhYnNvcmJlZCBieSBhbm90aGVyCisgICAgICAgPGFwcGxpY2F0aW9uPmxpYnBxPC9h cHBsaWNhdGlvbj4gZnVuY3Rpb24uIFNvIG5vcm1hbGx5IHlvdSB3b3VsZCBmaXJzdAorICAgICAg IGNhbGwgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFjb25zdW1lSW5wdXQiLz4sIHRoZW4gY2hlY2sK KyAgICAgICA8ZnVuY3Rpb24+UFFnb0F3YXlSZWNlaXZlZDwvZnVuY3Rpb24+LiAgWW91IGNhbiB1 c2UKKyAgICAgICA8ZnVuY3Rpb24+c2VsZWN0KCk8L2Z1bmN0aW9uPiB0byB3YWl0IGZvciBkYXRh IHRvIGFycml2ZSBmcm9tIHRoZQorICAgICAgIHNlcnZlciwgdGhlcmVieSB1c2luZyBubyA8YWNy b255bT5DUFU8L2Fjcm9ueW0+IHBvd2VyIHVubGVzcyB0aGVyZSBpcworICAgICAgIHNvbWV0aGlu ZyB0byBkby4gIChTZWUgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzb2NrZXQiLz4gdG8gb2J0YWlu IHRoZSBmaWxlCisgICAgICAgZGVzY3JpcHRvciBudW1iZXIgdG8gdXNlIHdpdGggPGZ1bmN0aW9u PnNlbGVjdCgpPC9mdW5jdGlvbj4uKQorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgor ICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFlcnJv ck1lc3NhZ2UiPgogICAgICA8dGVybT4KICAgICAgIDxmdW5jdGlvbj5QUWVycm9yTWVzc2FnZTwv ZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWVycm9yTWVzc2FnZTwvcHJpbWFyeT48L2lu ZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3Byb3RvY29sLnNnbWwKaW5kZXggNzY2NWJkN2RjYjguLjQ4NGUyOTcwZTk4IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcHJv dG9jb2wuc2dtbApAQCAtMjQyLDYgKzI0Miw3IEBACiAgICAgICA8ZW50cnk+My4zPC9lbnRyeT4K ICAgICAgIDxlbnRyeT5Qb3N0Z3JlU1FMIDE5IGFuZCBsYXRlcjwvZW50cnk+CiAgICAgICA8ZW50 cnk+Q3VycmVudCBsYXRlc3QgdmVyc2lvbi4KKyAgICAgICAgVGhlIEdvQXdheSBtZXNzYWdlIHdh cyBpbnRyb2R1Y2VkLgogICAgICAgPC9lbnRyeT4KICAgICAgIDwvcm93PgogICAgICAgPHJvdz4K QEAgLTU5Niw2ICs1OTcsMTcgQEAKICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgog ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+ R29Bd2F5PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBU aGUgc2VydmVyIHJlcXVlc3RzIHRoZSBzZXJ2ZXIgcG9saXRlbHkgdG8gY2xvc2UgdGhlIGNvbm5l Y3Rpb24gYXQgaXRzCisgICAgICAgIGVhcmxpZXN0IGNvbnZlbmllbnQgbW9tZW50LiBTZWUgPHhy ZWYgbGlua2VuZD0icHJvdG9jb2wtYXN5bmMiLz4gZm9yCisgICAgICAgIG1vcmUgZGV0YWlscy4K KyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4K ICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvcGFyYT4KIApAQCAtMTM0NCw3ICsxMzU2LDcgQEAg U0VMQ1QgMS8wOzwhLS0gdGhpcyB0eXBvIGlzIGludGVudGlvbmFsIC0tPgogICAgPC9wYXJhPgog CiAgICA8cGFyYT4KLSAgICBJdCBpcyBwb3NzaWJsZSBmb3IgTm90aWNlUmVzcG9uc2UgYW5kIFBh cmFtZXRlclN0YXR1cyBtZXNzYWdlcyB0byBiZQorICAgIEl0IGlzIHBvc3NpYmxlIGZvciBOb3Rp Y2VSZXNwb25zZSwgUGFyYW1ldGVyU3RhdHVzIGFuZCBHb0F3YXkgbWVzc2FnZXMgdG8gYmUKICAg ICBpbnRlcnNwZXJzZWQgYmV0d2VlbiBDb3B5RGF0YSBtZXNzYWdlczsgZnJvbnRlbmRzIG11c3Qg aGFuZGxlIHRoZXNlIGNhc2VzLAogICAgIGFuZCBzaG91bGQgYmUgcHJlcGFyZWQgZm9yIG90aGVy IGFzeW5jaHJvbm91cyBtZXNzYWdlIHR5cGVzIGFzIHdlbGwgKHNlZQogICAgIDx4cmVmIGxpbmtl bmQ9InByb3RvY29sLWFzeW5jIi8+KS4gIE90aGVyd2lzZSwgYW55IG1lc3NhZ2UgdHlwZSBvdGhl ciB0aGFuCkBAIC0xNDU1LDYgKzE0NjcsMjUgQEAgU0VMQ1QgMS8wOzwhLS0gdGhpcyB0eXBvIGlz IGludGVudGlvbmFsIC0tPgogICAgIHBhcmFtZXRlcnMgdGhhdCBpdCBkb2VzIG5vdCB1bmRlcnN0 YW5kIG9yIGNhcmUgYWJvdXQuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIEEgR29Bd2F5 IG1lc3NhZ2UgaXMgc2VudCBieSB0aGUgc2VydmVyIHRvIHBvbGl0ZWx5IHJlcXVlc3QgdGhlIGNs aWVudCB0bworICAgIGRpc2Nvbm5lY3Qgd2hlbiBjb252ZW5pZW50IGFuZCByZWNvbm5lY3Qgd2hl biB0aGUgY2xpZW50IG5lZWRzIGEgY29ubmVjdGlvbgorICAgIGFnYWluLiBUaGlzIGlzIGFkdmlz b3J5IG9ubHkgLSB0aGUgY29ubmVjdGlvbiByZW1haW5zIGZ1bGx5IGZ1bmN0aW9uYWwgYW5kCisg ICAgcXVlcmllcyBjYW4gY29udGludWUgdG8gYmUgZXhlY3V0ZWQuICJXaGVuIGNvbnZlbmllbnQi IGlzIHZlcnkgdmFndWVseQorICAgIGRlZmluZWQgb24gcHVycG9zZSBiZWNhdXNlIGl0IGRlcGVu ZHMgb24gdGhlIGNsaWVudCBhbmQgYXBwbGljYXRpb24gd2hldGhlcgorICAgIHN1Y2ggYSBtb21l bnQgZXZlbiBleGlzdHMuIFNvIGNsaWVudHMgYXJlIGFsbG93ZWQgdG8gY29tcGxldGVseSBpZ25v cmUgdGhpcworICAgIG1lc3NhZ2UgYW5kIGRpc2Nvbm5lY3Qgd2hlbmV2ZXIgdGhleSBvdGhlcndp c2Ugd291bGQgaGF2ZS4gQW4gaW1wb3J0YW50CisgICAgdHlwZSBvZiBjbGllbnQgdGhhdCBjYW4g YWN0dWFsbHkgaG9ub3IgdGhlIHJlcXVlc3QgdG8gZGlzY29ubmVjdCBlYXJseSBpcyBhCisgICAg Y2xpZW50IHRoYXQgbWFpbnRhaW5zIGEgY29ubmVjdGlvbiBwb29sLiBTdWNoIGEgY2xpZW50IGNh biBob25vciB0aGUKKyAgICByZXF1ZXN0IGJ5IGRpc2Nvbm5lY3RpbmcgYSBjb25uZWN0aW9uIHRo YXQgaGFzIHJlY2VpdmVkIGEgR29Bd2F5IG1lc3NhZ2UKKyAgICB3aGVuIGl0J3Mgbm90IGluIHVz ZSBieSBhIHVzZXIgb2YgdGhlIHBvb2wuIEl0IGlzIGFsbG93ZWQgZm9yIGEgc2VydmVyIHRvCisg ICAgc2VuZCBtdWx0aXBsZSBHb0F3YXkgbWVzc2FnZXMgb24gdGhlIHNhbWUgY29ubmVjdGlvbiwg YnV0IGFueSBzdWJzZXF1ZW50CisgICAgR29Bd2F5IG1lc3NhZ2VzIGFmdGVyIHRoZSBmaXJzdCBH b0F3YXkgaGF2ZSBubyBlZmZlY3Qgb24gdGhlIGNsaWVudCdzCisgICAgYmVoYXZpb3IuIFRoZSBH b0F3YXkgbWVzc2FnZSBpcyBjdXJyZW50bHkgc2VudCBieSBQb3N0Z3JlcyBkdXJpbmcgdGhlCisg ICAgInNtYXJ0IiBzaHV0ZG93biBwcm9jZWR1cmUgKGkuZS4gd2hlbiBwb3N0bWFzdGVyIHJlY2Vp dmVzCisgICAgPHN5c3RlbWl0ZW0+U0lHVEVSTTwvc3lzdGVtaXRlbT4pLgorICAgPC9wYXJhPgor CiAgICA8cGFyYT4KICAgICBJZiBhIGZyb250ZW5kIGlzc3VlcyBhIDxjb21tYW5kPkxJU1RFTjwv Y29tbWFuZD4gY29tbWFuZCwgdGhlbiB0aGUKICAgICBiYWNrZW5kIHdpbGwgc2VuZCBhIE5vdGlm aWNhdGlvblJlc3BvbnNlIG1lc3NhZ2UgKG5vdCB0byBiZQpAQCAtNTI0Niw2ICs1Mjc3LDMxIEBA IHBzcWwgImRibmFtZT1wb3N0Z3JlcyByZXBsaWNhdGlvbj1kYXRhYmFzZSIgLWMgIklERU5USUZZ X1NZU1RFTTsiCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtR29Bd2F5Ij4KKyAgICA8dGVy bT5Hb0F3YXkgKEIpPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHZhcmlhYmxlbGlzdD4K KyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTEoJ2cnKTwvdGVybT4KKyAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWRlbnRpZmllcyB0aGUg bWVzc2FnZSBhcyBhIHBvbGl0ZSByZXF1ZXN0IGZvciB0aGUgY2xpZW50IHRvIGRpc2Nvbm5lY3Qu CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzIoNCk8L3Rlcm0+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIExlbmd0aCBvZiBt ZXNzYWdlIGNvbnRlbnRzIGluIGJ5dGVzLCBpbmNsdWRpbmcgc2VsZi4KKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92YXJp YWJsZWxpc3Q+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFy bGlzdGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtR1NTRU5DUmVxdWVzdCI+CiAg ICAgPHRlcm0+R1NTRU5DUmVxdWVzdCAoRik8L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCBlMWQ2NDNiMDEzZC4uNzlmMTE2YTVhNWUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0yMTI2LDcgKzIxMjYsMzEgQEAgcHJv Y2Vzc19wbV9zaHV0ZG93bl9yZXF1ZXN0KHZvaWQpCiAJCQkgKiBsYXRlciBzdGF0ZSwgZG8gbm90 IGNoYW5nZSBpdC4KIAkJCSAqLwogCQkJaWYgKHBtU3RhdGUgPT0gUE1fUlVOIHx8IHBtU3RhdGUg PT0gUE1fSE9UX1NUQU5EQlkpCisJCQl7CisJCQkJZGxpc3RfaXRlcglpdGVyOworCiAJCQkJY29u bnNBbGxvd2VkID0gZmFsc2U7CisKKwkJCQkvKgorCQkJCSAqIFNpZ25hbCBhbGwgYmFja2VuZHMg dG8gc2VuZCBhIEdvQXdheSBtZXNzYWdlIHRvIHRoZWlyCisJCQkJICogY2xpZW50cywgdG8gcG9s aXRlbHkgcmVxdWVzdCB0aGF0IHRoZXkgZGlzY29ubmVjdC4KKwkJCQkgKi8KKwkJCQlkbGlzdF9m b3JlYWNoKGl0ZXIsICZBY3RpdmVDaGlsZExpc3QpCisJCQkJeworCQkJCQlQTUNoaWxkICAgICpi cCA9IGRsaXN0X2NvbnRhaW5lcihQTUNoaWxkLCBlbGVtLCBpdGVyLmN1cik7CisKKwkJCQkJLyoK KwkJCQkJICogT25seSBzaWduYWwgcmVndWxhciBiYWNrZW5kcyBhbmQgd2Fsc2VuZGVycy4gU2tp cAorCQkJCQkgKiBhdXhpbGlhcnkgcHJvY2Vzc2VzIGFuZCBkZWFkLWVuZCBiYWNrZW5kcy4KKwkJ CQkJICovCisJCQkJCWlmIChicC0+YmtlbmRfdHlwZSA9PSBCX0JBQ0tFTkQgfHwKKwkJCQkJCWJw LT5ia2VuZF90eXBlID09IEJfV0FMX1NFTkRFUikKKwkJCQkJeworCQkJCQkJU2VuZFByb2NTaWdu YWwoYnAtPnBpZCwgUFJPQ1NJR19TTUFSVF9TSFVURE9XTiwKKwkJCQkJCQkJCSAgIElOVkFMSURf UFJPQ19OVU1CRVIpOworCQkJCQl9CisJCQkJfQorCQkJfQogCQkJZWxzZSBpZiAocG1TdGF0ZSA9 PSBQTV9TVEFSVFVQIHx8IHBtU3RhdGUgPT0gUE1fUkVDT1ZFUlkpCiAJCQl7CiAJCQkJLyogVGhl cmUgc2hvdWxkIGJlIG5vIGNsaWVudHMsIHNvIHByb2NlZWQgdG8gc3RvcCBjaGlsZHJlbiAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCmluZGV4IDA4NzgyMTMxMWNjLi42MDExYzMw ZDUyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCisr KyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwpAQCAtNjkxLDYgKzY5MSw5 IEBAIHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKFNJR05BTF9BUkdTKQogCWlmIChDaGVja1By b2NTaWduYWwoUFJPQ1NJR19MT0dfTUVNT1JZX0NPTlRFWFQpKQogCQlIYW5kbGVMb2dNZW1vcnlD b250ZXh0SW50ZXJydXB0KCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfU01BUlRf U0hVVERPV04pKQorCQlIYW5kbGVTbWFydFNodXRkb3duSW50ZXJydXB0KCk7CisKIAlpZiAoQ2hl Y2tQcm9jU2lnbmFsKFBST0NTSUdfUEFSQUxMRUxfQVBQTFlfTUVTU0FHRSkpCiAJCUhhbmRsZVBh cmFsbGVsQXBwbHlNZXNzYWdlSW50ZXJydXB0KCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCA3ZGQ3 NWE0OTBhYS4uN2E1OWU2NWYyZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTQyLDggKzQyLDEwIEBA CiAjaW5jbHVkZSAiY29tbW9uL3BnX3BybmcuaCIKICNpbmNsdWRlICJqaXQvaml0LmgiCiAjaW5j bHVkZSAibGlicHEvbGlicHEuaCIKKyNpbmNsdWRlICJsaWJwcS9wcWNvbW0uaCIKICNpbmNsdWRl ICJsaWJwcS9wcWZvcm1hdC5oIgogI2luY2x1ZGUgImxpYnBxL3Bxc2lnbmFsLmgiCisjaW5jbHVk ZSAibGlicHEvcHJvdG9jb2wuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgogI2luY2x1ZGUg Im1iL3N0cmluZ2luZm9fbWIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKQEAgLTkxLDYgKzkz LDE0IEBAIGNvbnN0IGNoYXIgKmRlYnVnX3F1ZXJ5X3N0cmluZzsgLyogY2xpZW50LXN1cHBsaWVk IHF1ZXJ5IHN0cmluZyAqLwogLyogTm90ZTogd2hlcmVUb1NlbmRPdXRwdXQgaXMgaW5pdGlhbGl6 ZWQgZm9yIHRoZSBib290c3RyYXAvc3RhbmRhbG9uZSBjYXNlICovCiBDb21tYW5kRGVzdCB3aGVy ZVRvU2VuZE91dHB1dCA9IERlc3REZWJ1ZzsKIAorLyoKKyAqIFRyYWNrIHdoZXRoZXIgd2UndmUg YmVlbiBub3RpZmllZCBvZiBzbWFydCBzaHV0ZG93biBhbmQgc2VudCBHb0F3YXkuCisgKiBTbWFy dFNodXRkb3duUGVuZGluZyBpcyBzZXQgYnkgdGhlIFBST0NTSUdfU01BUlRfU0hVVERPV04gc2ln bmFsIGhhbmRsZXIuCisgKiBHb0F3YXlTZW50IHRyYWNrcyB3aGV0aGVyIHdlJ3ZlIGFscmVhZHkg c2VudCB0aGUgR29Bd2F5IG1lc3NhZ2UuCisgKi8KK3N0YXRpYyB2b2xhdGlsZSBzaWdfYXRvbWlj X3QgU21hcnRTaHV0ZG93blBlbmRpbmcgPSBmYWxzZTsKK3N0YXRpYyBib29sIEdvQXdheVNlbnQg PSBmYWxzZTsKKwogLyogZmxhZyBmb3IgbG9nZ2luZyBlbmQgb2Ygc2Vzc2lvbiAqLwogYm9vbAkJ TG9nX2Rpc2Nvbm5lY3Rpb25zID0gZmFsc2U7CiAKQEAgLTUwOCw2ICs1MTgsMjAgQEAgUHJvY2Vz c0NsaWVudFJlYWRJbnRlcnJ1cHQoYm9vbCBibG9ja2VkKQogCQkvKiBDaGVjayBmb3IgZ2VuZXJh bCBpbnRlcnJ1cHRzIHRoYXQgYXJyaXZlZCBiZWZvcmUvd2hpbGUgcmVhZGluZyAqLwogCQlDSEVD S19GT1JfSU5URVJSVVBUUygpOwogCisJCS8qIFNlbmQgR29Bd2F5IG1lc3NhZ2UgaWYgc21hcnQg c2h1dGRvd24gaXMgcGVuZGluZyAqLworCQlpZiAoU21hcnRTaHV0ZG93blBlbmRpbmcgJiYgIUdv QXdheVNlbnQgJiYKKwkJCXdoZXJlVG9TZW5kT3V0cHV0ID09IERlc3RSZW1vdGUgJiYKKwkJCU15 UHJvY1BvcnQgJiYgTXlQcm9jUG9ydC0+cHJvdG8gPj0gUEdfUFJPVE9DT0woMywgMykpCisJCXsK KwkJCVN0cmluZ0luZm9EYXRhIGJ1ZjsKKworCQkJcHFfYmVnaW5tZXNzYWdlKCZidWYsIFBxTXNn X0dvQXdheSk7CisJCQlwcV9lbmRtZXNzYWdlKCZidWYpOworCQkJcHFfZmx1c2goKTsKKworCQkJ R29Bd2F5U2VudCA9IHRydWU7CisJCX0KKwogCQkvKiBQcm9jZXNzIHNpbnZhbCBjYXRjaHVwIGlu dGVycnVwdHMsIGlmIGFueSAqLwogCQlpZiAoY2F0Y2h1cEludGVycnVwdFBlbmRpbmcpCiAJCQlQ cm9jZXNzQ2F0Y2h1cEludGVycnVwdCgpOwpAQCAtMzA4Nyw2ICszMTExLDE4IEBAIEZsb2F0RXhj ZXB0aW9uSGFuZGxlcihTSUdOQUxfQVJHUykKIAkJCQkJICAgImludmFsaWQgb3BlcmF0aW9uLCBz dWNoIGFzIGRpdmlzaW9uIGJ5IHplcm8uIikpKTsKIH0KIAorLyoKKyAqIFRlbGwgdGhlIG5leHQg Q0hFQ0tfRk9SX0lOVEVSUlVQVFMoKSBvciBtYWluIGxvb3AgaXRlcmF0aW9uIHRvIHNlbmQgYQor ICogR29Bd2F5IG1lc3NhZ2UgdG8gdGhlIGNsaWVudC4gIFJ1bnMgaW4gYSBTSUdVU1IxIGhhbmRs ZXIuCisgKi8KK3ZvaWQKK0hhbmRsZVNtYXJ0U2h1dGRvd25JbnRlcnJ1cHQodm9pZCkKK3sKKwlT bWFydFNodXRkb3duUGVuZGluZyA9IHRydWU7CisJSW50ZXJydXB0UGVuZGluZyA9IHRydWU7CisJ LyogbGF0Y2ggd2lsbCBiZSBzZXQgYnkgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIgKi8KK30K KwogLyoKICAqIFRlbGwgdGhlIG5leHQgQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKSB0byBjaGVjayBm b3IgYSBwYXJ0aWN1bGFyIHR5cGUgb2YKICAqIHJlY292ZXJ5IGNvbmZsaWN0LiAgUnVucyBpbiBh IFNJR1VTUjEgaGFuZGxlci4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL3Byb3RvY29s LmggYi9zcmMvaW5jbHVkZS9saWJwcS9wcm90b2NvbC5oCmluZGV4IDdiZjkwMDUzYmNiLi4yNGZi YzlmMjYxMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvcHJvdG9jb2wuaAorKysgYi9z cmMvaW5jbHVkZS9saWJwcS9wcm90b2NvbC5oCkBAIC01Myw2ICs1Myw3IEBACiAjZGVmaW5lIFBx TXNnX0Z1bmN0aW9uQ2FsbFJlc3BvbnNlCSdWJwogI2RlZmluZSBQcU1zZ19Db3B5Qm90aFJlc3Bv bnNlCQknVycKICNkZWZpbmUgUHFNc2dfUmVhZHlGb3JRdWVyeQkJCSdaJworI2RlZmluZSBQcU1z Z19Hb0F3YXkJCQkJJ2cnCiAjZGVmaW5lIFBxTXNnX05vRGF0YQkJCQknbicKICNkZWZpbmUgUHFN c2dfUG9ydGFsU3VzcGVuZGVkCQkncycKICNkZWZpbmUgUHFNc2dfUGFyYW1ldGVyRGVzY3JpcHRp b24JJ3QnCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCBiL3Ny Yy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCmluZGV4IGFmZWViMWNhMDE5Li5iNjI5MzQx YTRhZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKKysrIGIv c3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKQEAgLTM2LDYgKzM2LDcgQEAgdHlwZWRl ZiBlbnVtCiAJUFJPQ1NJR19CQVJSSUVSLAkJCS8qIGdsb2JhbCBiYXJyaWVyIGludGVycnVwdCAg Ki8KIAlQUk9DU0lHX0xPR19NRU1PUllfQ09OVEVYVCwgLyogYXNrIGJhY2tlbmQgdG8gbG9nIHRo ZSBtZW1vcnkgY29udGV4dHMgKi8KIAlQUk9DU0lHX1BBUkFMTEVMX0FQUExZX01FU1NBR0UsIC8q IE1lc3NhZ2UgZnJvbSBwYXJhbGxlbCBhcHBseSB3b3JrZXJzICovCisJUFJPQ1NJR19TTUFSVF9T SFVURE9XTiwJCS8qIG5vdGlmeSBiYWNrZW5kIG9mIHNtYXJ0IHNodXRkb3duICovCiAKIAkvKiBS ZWNvdmVyeSBjb25mbGljdCByZWFzb25zICovCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9G SVJTVCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaCBiL3NyYy9pbmNs dWRlL3Rjb3AvdGNvcHByb3QuaAppbmRleCBjMWJjZmRlYzY3My4uYjdmZDIyYzQzYmIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29w L3Rjb3Bwcm90LmgKQEAgLTc0LDYgKzc0LDcgQEAgZXh0ZXJuIHZvaWQgZGllKFNJR05BTF9BUkdT KTsKIHBnX25vcmV0dXJuIGV4dGVybiB2b2lkIHF1aWNrZGllKFNJR05BTF9BUkdTKTsKIGV4dGVy biB2b2lkIFN0YXRlbWVudENhbmNlbEhhbmRsZXIoU0lHTkFMX0FSR1MpOwogcGdfbm9yZXR1cm4g ZXh0ZXJuIHZvaWQgRmxvYXRFeGNlcHRpb25IYW5kbGVyKFNJR05BTF9BUkdTKTsKK2V4dGVybiB2 b2lkIEhhbmRsZVNtYXJ0U2h1dGRvd25JbnRlcnJ1cHQodm9pZCk7CiBleHRlcm4gdm9pZCBIYW5k bGVSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFByb2NTaWduYWxSZWFzb24gcmVhc29uKTsKIGV4 dGVybiB2b2lkIFByb2Nlc3NDbGllbnRSZWFkSW50ZXJydXB0KGJvb2wgYmxvY2tlZCk7CiBleHRl cm4gdm9pZCBQcm9jZXNzQ2xpZW50V3JpdGVJbnRlcnJ1cHQoYm9vbCBibG9ja2VkKTsKZGlmZiAt LWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0IGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZXhwb3J0cy50eHQKaW5kZXggZGJiYWU2NDJkNzYuLjMzODVlNjVjMzg5IDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dAorKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9leHBvcnRzLnR4dApAQCAtMjEwLDMgKzIxMCw0IEBAIFBRZ2V0QXV0aERhdGFIb29r ICAgICAgICAgMjA3CiBQUWRlZmF1bHRBdXRoRGF0YUhvb2sgICAgIDIwOAogUFFmdWxsUHJvdG9j b2xWZXJzaW9uICAgICAyMDkKIGFwcGVuZFBRRXhwQnVmZmVyVkEgICAgICAgMjEwCitQUWdvQXdh eVJlY2VpdmVkICAgICAgICAgIDIxMQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCmluZGV4IDYy ZDM1ZTBjNzg5Li5mOWVlNTJmMGMwYSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtY29ubmVjdC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAt Njk4LDYgKzY5OCw3IEBAIHBxRHJvcFNlcnZlckRhdGEoUEdjb25uICpjb25uKQogCWNvbm4tPnBh c3N3b3JkX25lZWRlZCA9IGZhbHNlOwogCWNvbm4tPmdzc2FwaV91c2VkID0gZmFsc2U7CiAJY29u bi0+d3JpdGVfZmFpbGVkID0gZmFsc2U7CisJY29ubi0+Z29hd2F5X3JlY2VpdmVkID0gZmFsc2U7 CiAJZnJlZShjb25uLT53cml0ZV9lcnJfbXNnKTsKIAljb25uLT53cml0ZV9lcnJfbXNnID0gTlVM TDsKIAljb25uLT5vYXV0aF93YW50X3JldHJ5ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMK aW5kZXggMGIxZTM3ZWMzMGIuLjE2YmYxMDI4MGU1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1leGVjLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCkBA IC0yNjk2LDYgKzI2OTYsMzMgQEAgUFFub3RpZmllcyhQR2Nvbm4gKmNvbm4pCiAJcmV0dXJuIGV2 ZW50OwogfQogCisvKgorICogUFFnb0F3YXlSZWNlaXZlZAorICoJICByZXR1cm5zIDEgaWYgYSBH b0F3YXkgbWVzc2FnZSBoYXMgYmVlbiByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIKKyAqCSAgcmV0 dXJucyAwIGlmIG5vdAorICoKKyAqIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJl YWQgYW55IG5ldyBkYXRhIGZyb20gdGhlIHNvY2tldDsKKyAqIGNhbGxlciBzaG91bGQgY2FsbCBQ UWNvbnN1bWVJbnB1dCgpIGZpcnN0IGlmIHRoZXkgd2FudCB0byBlbnN1cmUKKyAqIGFsbCBhdmFp bGFibGUgZGF0YSBoYXMgYmVlbiByZWFkLgorICovCitpbnQKK1BRZ29Bd2F5UmVjZWl2ZWQoUEdj b25uICpjb25uKQoreworCWlmICghY29ubikKKwkJcmV0dXJuIDA7CisKKwlpZiAoY29ubi0+Z29h d2F5X3JlY2VpdmVkKQorCQlyZXR1cm4gMTsKKworCS8qCisJICogUGFyc2UgYW55IGF2YWlsYWJs ZSBkYXRhIHRvIHNlZSBpZiBhIEdvQXdheSBtZXNzYWdlIGhhcyBhcnJpdmVkLgorCSAqLworCXBx UGFyc2VJbnB1dDMoY29ubik7CisKKwlyZXR1cm4gY29ubi0+Z29hd2F5X3JlY2VpdmVkID8gMSA6 IDA7Cit9CisKKwogLyoKICAqIFBRcHV0Q29weURhdGEgLSBzZW5kIHNvbWUgZGF0YSB0byB0aGUg YmFja2VuZCBkdXJpbmcgQ09QWSBJTiBvciBDT1BZIEJPVEgKICAqCmRpZmYgLS1naXQgYS9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2Zl LXByb3RvY29sMy5jCmluZGV4IGRhN2E4ZGI2OGM4Li5mNjBmZTE4ODgwNiAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtcHJvdG9jb2wzLmMKQEAgLTEzMiw4ICsxMzIsOCBAQCBwcVBhcnNlSW5wdXQzKFBH Y29ubiAqY29ubikKIAkJfQogCiAJCS8qCi0JCSAqIE5PVElGWSBhbmQgTk9USUNFIG1lc3NhZ2Vz IGNhbiBoYXBwZW4gaW4gYW55IHN0YXRlOyBhbHdheXMgcHJvY2VzcwotCQkgKiB0aGVtIHJpZ2h0 IGF3YXkuCisJCSAqIE5PVElGWSBhbmQgTk9USUNFIGFuZCBHb0F3YXkgbWVzc2FnZXMgY2FuIGhh cHBlbiBpbiBhbnkgc3RhdGU7CisJCSAqIGFsd2F5cyBwcm9jZXNzIHRoZW0gcmlnaHQgYXdheS4K IAkJICoKIAkJICogTW9zdCBvdGhlciBtZXNzYWdlcyBzaG91bGQgb25seSBiZSBwcm9jZXNzZWQg d2hpbGUgaW4gQlVTWSBzdGF0ZS4KIAkJICogKEluIHBhcnRpY3VsYXIsIGluIFJFQURZIHN0YXRl IHdlIGhvbGQgb2ZmIGZ1cnRoZXIgcGFyc2luZyB1bnRpbApAQCAtMTU3LDYgKzE1NywxMCBAQCBw cVBhcnNlSW5wdXQzKFBHY29ubiAqY29ubikKIAkJCWlmIChwcUdldEVycm9yTm90aWNlMyhjb25u LCBmYWxzZSkpCiAJCQkJcmV0dXJuOwogCQl9CisJCWVsc2UgaWYgKGlkID09IFBxTXNnX0dvQXdh eSkKKwkJeworCQkJY29ubi0+Z29hd2F5X3JlY2VpdmVkID0gdHJ1ZTsKKwkJfQogCQllbHNlIGlm IChjb25uLT5hc3luY1N0YXR1cyAhPSBQR0FTWU5DX0JVU1kpCiAJCXsKIAkJCS8qIElmIG5vdCBJ RExFIHN0YXRlLCBqdXN0IHdhaXQgLi4uICovCkBAIC0zMDMsNiArMzA3LDkgQEAgcHFQYXJzZUlu cHV0MyhQR2Nvbm4gKmNvbm4pCiAJCQkJCWlmIChnZXRQYXJhbWV0ZXJTdGF0dXMoY29ubikpCiAJ CQkJCQlyZXR1cm47CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgUHFNc2dfR29Bd2F5OgorCQkJCQlj b25uLT5nb2F3YXlfcmVjZWl2ZWQgPSB0cnVlOworCQkJCQlicmVhazsKIAkJCQljYXNlIFBxTXNn X0JhY2tlbmRLZXlEYXRhOgogCiAJCQkJCS8qCkBAIC0xODQxLDYgKzE4NDgsOSBAQCBnZXRDb3B5 RGF0YU1lc3NhZ2UoUEdjb25uICpjb25uKQogCQkJCWlmIChnZXRQYXJhbWV0ZXJTdGF0dXMoY29u bikpCiAJCQkJCXJldHVybiAwOwogCQkJCWJyZWFrOworCQkJY2FzZSBQcU1zZ19Hb0F3YXk6CisJ CQkJY29ubi0+Z29hd2F5X3JlY2VpdmVkID0gdHJ1ZTsKKwkJCQlicmVhazsKIAkJCWNhc2UgUHFN c2dfQ29weURhdGE6CiAJCQkJcmV0dXJuIG1zZ0xlbmd0aDsKIAkJCWNhc2UgUHFNc2dfQ29weURv bmU6CkBAIC0yMzM0LDYgKzIzNDQsOSBAQCBwcUZ1bmN0aW9uQ2FsbDMoUEdjb25uICpjb25uLCBP aWQgZm5pZCwKIAkJCQlpZiAoZ2V0UGFyYW1ldGVyU3RhdHVzKGNvbm4pKQogCQkJCQljb250aW51 ZTsKIAkJCQlicmVhazsKKwkJCWNhc2UgUHFNc2dfR29Bd2F5OgorCQkJCWNvbm4tPmdvYXdheV9y ZWNlaXZlZCA9IHRydWU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIFRoZSBiYWNr ZW5kIHZpb2xhdGVzIHRoZSBwcm90b2NvbC4gKi8KIAkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJv cihjb25uLCAicHJvdG9jb2wgZXJyb3I6IGlkPTB4JXgiLCBpZCk7CmRpZmYgLS1naXQgYS9zcmMv aW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEt ZmUuaAppbmRleCAwODUyNTg0ZWRhZS4uMWYzYmQ2NzFhNGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEt ZmUuaApAQCAtNjMsNiArNjMsMTAgQEAgZXh0ZXJuICJDIgogLyogSW5kaWNhdGVzIHByZXNlbmNl IG9mIHRoZSBQUUFVVEhEQVRBX1BST01QVF9PQVVUSF9ERVZJQ0UgYXV0aGRhdGEgaG9vayAqLwog I2RlZmluZSBMSUJQUV9IQVNfUFJPTVBUX09BVVRIX0RFVklDRSAxCiAKKy8qIEZlYXR1cmVzIGFk ZGVkIGluIFBvc3RncmVTUUwgdjE5OiAqLworLyogSW5kaWNhdGVzIHByZXNlbmNlIG9mIFBRZ29B d2F5UmVjZWl2ZWQgKi8KKyNkZWZpbmUgTElCUFFfSEFTX0dPQVdBWSAxCisKIC8qCiAgKiBPcHRp b24gZmxhZ3MgZm9yIFBRY29weVJlc3VsdAogICovCkBAIC00MTEsNiArNDE1LDcgQEAgZXh0ZXJu IGNvbnN0IGNoYXIgKlBRcGFyYW1ldGVyU3RhdHVzKGNvbnN0IFBHY29ubiAqY29ubiwKIGV4dGVy biBpbnQJUFFwcm90b2NvbFZlcnNpb24oY29uc3QgUEdjb25uICpjb25uKTsKIGV4dGVybiBpbnQJ UFFmdWxsUHJvdG9jb2xWZXJzaW9uKGNvbnN0IFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CVBR c2VydmVyVmVyc2lvbihjb25zdCBQR2Nvbm4gKmNvbm4pOworZXh0ZXJuIGludAlQUWdvQXdheVJl Y2VpdmVkKFBHY29ubiAqY29ubik7CiBleHRlcm4gY2hhciAqUFFlcnJvck1lc3NhZ2UoY29uc3Qg UEdjb25uICpjb25uKTsKIGV4dGVybiBpbnQJUFFzb2NrZXQoY29uc3QgUEdjb25uICpjb25uKTsK IGV4dGVybiBpbnQJUFFiYWNrZW5kUElEKGNvbnN0IFBHY29ubiAqY29ubik7CmRpZmYgLS1naXQg YS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2xpYnBxLWludC5oCmluZGV4IDAyYzExNGYxNDA1Li43ZGM2ZTg1OGExNiAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvbGlicHEtaW50LmgKQEAgLTUxMSw2ICs1MTEsNyBAQCBzdHJ1Y3QgcGdfY29ubgogCWJvb2wJ CXNpZ3BpcGVfZmxhZzsJLyogY2FuIHdlIG1hc2sgU0lHUElQRSB2aWEgTVNHX05PU0lHTkFMPyAq LwogCWJvb2wJCXdyaXRlX2ZhaWxlZDsJLyogaGF2ZSB3ZSBoYWQgYSB3cml0ZSBmYWlsdXJlIG9u IHNvY2s/ICovCiAJY2hhcgkgICAqd3JpdGVfZXJyX21zZzsJLyogd3JpdGUgZXJyb3IgbWVzc2Fn ZSwgb3IgTlVMTCBpZiBPT00gKi8KKwlib29sCQlnb2F3YXlfcmVjZWl2ZWQ7CS8qIHRydWUgaWYg c2VydmVyIHNlbnQgR29Bd2F5IG1lc3NhZ2UgKi8KIAogCWJvb2wJCWF1dGhfcmVxdWlyZWQ7CS8q IHJlcXVpcmUgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIGZyb20KIAkJCQkJCQkJICogdGhl IHNlcnZlcj8gKi8KLS0gCjIuNTEuMQoK --b16b519fe4c00a24420a2854f579e11589e9bc201b6162bbc7448885035b--