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 1w3rVz-001c55-2k for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Mar 2026 08:17:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3rVy-009fIn-1A for pgsql-hackers@arkaria.postgresql.org; Sat, 21 Mar 2026 08:16:58 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3rVx-009fIZ-10 for pgsql-hackers@lists.postgresql.org; Sat, 21 Mar 2026 08:16:58 +0000 Received: from mail-vk1-xa29.google.com ([2607:f8b0:4864:20::a29]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w3rVl-00000000IQQ-2wDM for pgsql-hackers@lists.postgresql.org; Sat, 21 Mar 2026 08:16:56 +0000 Received: by mail-vk1-xa29.google.com with SMTP id 71dfb90a1353d-56ce1384618so923222e0c.1 for ; Sat, 21 Mar 2026 01:16:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774081004; cv=none; d=google.com; s=arc-20240605; b=lhQNoInexITxS6LiDptu1UY424yDfaGKCSW9kEbbd8/vtnQak/GYSV5lbGTzudHCCN iI+d6Tsq11U9GdBMeR6fWTiAlYv3kKeXPzoVCqEgLH4JrOpLuHhPk4XnzSfmq/FVUuJr xUD6N8h+9QvBNpmJsqOc3nWJkqR1BCt3hWgOO8gAxVerVO2Oka3mcVy6Ex7GOmYT9kEH qk/7e02cGBYDxfJCqWNaj+U57EeeSg+GeUF23zxSW9bRtVDFZnmJCtikYe9uwipIWH5J 5N5N5OKVqejQVmVYe6NvS4xKnJ6rtZM2fTeNY1lV3OYgzmgqQy5prng0trkOjIyIAkkW ON/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=iwJNCaYjQKDSyHmMZK3yF7HAcOnHzwpWVI/DgQYc0BU=; fh=kddgKXYCYOgEOdNGiYNj0iwVFrBm5fSnUV2sshP2FSY=; b=iird3OZh7uVUNbeyiFvcS+NhAUY/fHT6j64iZEE9sO/h6mOxNjJ9dEo7wNQzoEPzy6 QD3JPpx4VkHPgCu69AdRjXU4PFB9peDFquSBdrG0oB6zI63cQW2BkM9e2RGuGSJ9/v+W ot8SCoaupYgb7EkGqoZWKXpAJR49l3Gb7rk/d3Z2d5onbGLjl84V+Wx0+WPdrec70ZJQ CwdDLRRwQXfV8Nj+cp6WXf/HbflyyQScgLaLZeRrHWyFKY0XLkxX1sgo5cRNR2unk+yn fvPEVFXuqfcWss2oq+UWqZErikNFBnMZDdypAMrYbSJj0lCeg0yWm5YVaQp4hXTzvWIX Jv4g==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774081004; x=1774685804; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=iwJNCaYjQKDSyHmMZK3yF7HAcOnHzwpWVI/DgQYc0BU=; b=m6JqC8pop0yjp+ZEADLvHhdZeNWFBy8kfWZOVc1iOa167QKcnZZSRpqigLixIB5P57 ZKUcsyjg3vV2ZlTrcki4B6o+DXMD9YnRW9ilSQXun5tnDTcrmq/I08GEAx0bH6QlYy7S E4kvn7LqR3sgWnUrZmM7vp1SA4xeTRwmD3KX02Z3DHrsYfSJDoRLtYG5FzzKvBaHhbC6 +DnkaY4beMsN466WNm5HLXGwnmFOYFdrE3ksJMd5K6eJwHpjGqCCbG6zCOb+sPaViG9M WTW6BRwrNhbG43AXl/g0HkI4vbxlUvnQhSl76UF1+FIFCZGa5vXEcUiagRypL1TVUJ7W v7xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774081004; x=1774685804; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=iwJNCaYjQKDSyHmMZK3yF7HAcOnHzwpWVI/DgQYc0BU=; b=OHHrR4Nd6APEfQul+mO+YeBC1o5Aj3Fkwt1hUphpMafLCK7PrafhAg1brV5E5Trjm9 EUga6Qwzwe5Q0VD66+rTBb8nVbse+U06KldSgX/7j5HKvsCLjRz+fZDojL7FNIeieUvf gOLYyPthPc/p7P7dghJCxgejDxPL7Jj2kUDxRSSLbpXsBjGLD1GL91uCF9NusCcxFW9d Rncx943GzgN+n0W9Ii+ZRHCttclUAarAPmAStUsUj/f3i58MinuWsDw293nxHgHRsK28 iO9fSmg7UhmxrxQE7amw/6WSKwEzPw3mROS0v9tTVXz1Ddheu1yZsPEOgRgCtoW6GNGV jMfA== X-Forwarded-Encrypted: i=1; AJvYcCV40+ayZ6KJ+2so674Up7JdkpgMyNNYZrYCl+jWFHTAdUJiYbUQFH2A/+H93LzDsqOm4DuV5UGQJQWNVMEq@lists.postgresql.org X-Gm-Message-State: AOJu0YxIa3DXMBdUQYs4gY4leyW0BTY9Lp+mX24vtAt5kcg0/u1dLAGo nvOowpDO2pbXvyzK30xV6fhGK2xYlcoydFeGtbXoL++jVxNJt5glSkOIJqK+MFcgAJt0NfvyX3j Kr1zYzchumtrAIuXyVnkLSI4vbGQPgII= X-Gm-Gg: ATEYQzz/zbJqevOBUOwAdH/8aYcvOu1dGJtyDBqiNGeTbzpt7vWxMgR2yGoT8Zl6+0b aMgP3fez25ssZ2Vz0tvG6pUK8BIsVaB8Owx+yvmvktO2yq11XVYNqNVAWngBp067mYf6GL7TbLP hEl1vcRQwHndPIH8A08e2fK8WQ4NEm+iwwbwtpo0/XG15zV4eV8pJ1kaYgOOVNzcni5HqW4UfXL eyh8P35/TCoGZrYKbYYOiHkRkm0n6cCrYSi1Wrcv4mtMTdQGro67lyNJESMrhvQHqZlftwEkK4y GCjooNIe4GnrNj0FVD/ArX4JD5bPInzajK9gy0QVz3eZgBer+VZ0bB0ocYBFfm7fWnA7Y6jS6iO 7LAjF5a33CGkShS+qeOBA3aI2t5QlUsBNA8rqmN1+x0/bodvonqX3lSdg0oXxW10uotN6Jr7VuW B9y/QZk8pyQnOh7ifHzHPwxA+VY+kbRK2S X-Received: by 2002:a05:6102:441a:b0:602:98a4:3395 with SMTP id ada2fe7eead31-602aed35e55mr2952036137.30.1774081004225; Sat, 21 Mar 2026 01:16:44 -0700 (PDT) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Sat, 21 Mar 2026 16:16:07 +0800 X-Gm-Features: AaiRm51VTANAbxFCKYBG-qKwR6PWJ6icZAL1GkeYV-ArpPc5pzARA_iYVN5wwZ0 Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Corey Huinker Cc: Amul Sul , Kirill Reshke , Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000000f9331064d846ca4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000f9331064d846ca4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 20, 2026 at 4:15=E2=80=AFPM jian he wrote: > > Handling SafeTypeCastExpr->castexpr within eval_const_expressions_mutator= is > tricky. However, if it is a FuncExpr node, we can attempt to fold its arg= uments > (FuncExpr->args). > (Not doing anything for SafeTypeCastExpr->castexpr is easier). Just found out that eval_const_expressions_mutator should either return a Const or recurse to every node field. If not, the node field may have a COLLATE expression, and ExecInitExprRec cannot cope with T_CollateExpr. For example: SELECT CAST('1' collate "C" || 'h' AS text DEFAULT 'fallback' ON CONVERSION ERROR); ERROR: unrecognized node type: 32 Therefore in eval_const_expressions, we cannot skip constant folding SafeTypeCastExpr->castexpr. Since eval_const_expressions_mutator is not error-safe, an ErrorSaveContext pointer was added to eval_const_expressions_context. It's initialized to NULL, and it will be passed as ``makeNode(ErrorSaveContext)`` inside T_SafeTypeCastExpr. Previously in [0], I mentioned that SafeTypeCastExpr->castexpr can be FuncE= xpr, CollateExpr, CoerceToDomain, ArrayCoerceExpr, or CoerceViaIO or others. Constant folding in eval_const_expressions for these nodes are generally processed through the simplify_function -> evaluate_function -> evaluate_expr. evaluate_expr can process it in an error-safe manner because the escontext (ErrorSaveContext) within eval_const_expressions_context is properly popula= ted. SafeTypeCastExpr->castexpr can also be any Node type if the parse transform= ed source expression is the same type as the target type. See transformTypeCast->coerce_to_target_type_extended->coerce_type_extended: ``` if (targetTypeId =3D=3D inputTypeId || node =3D=3D NULL) { /* no conversion needed */ return node; } ``` However, if SafeTypeCastExpr->castexpr is the same as SafeTypeCastExpr->source then eval_const_expressions premature failure at "source" should be not a big problem for us. Since castexpr is evaluated safely in most cases during eval_const_expressi= ons, I am not too worried about a premature failure occurring with CAST ... DEFA= ULT." [0]: https://postgr.es/m/CACJufxHw9Y3fvh+rZj4ukLo=3Dv54Dpafzk7Xvee_wi9zFZ6p= Ofg@mail.gmail.com ---------------------------------------------------------------- SELECT CAST(1 as date DEFAULT NULL ON CONVERSION ERROR) as a; transformTypeCast->coerce_to_target_type->coerce_to_target_type_extended will make SafeTypeCastExpr->castexpr as NULL. To deparse the above, we need to save the transformed TypeCast->arg. Therefore, SafeTypeCastExpr->source is necessary. -- jian https://www.enterprisedb.com/ --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0019-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v23-0019-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi6g1 RnJvbSA0MTM0MzcyNmUxNTg1MTJmOGU1NmI1YTEyNjA2NGI2YWFjYWI3NDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTY6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxOS8yM10gaW50cm9kdWNlIGZsb2F0OCBzYWZlIGZ1bmN0aW9uCgp0aGlzIHBhdGNoIGludHJv ZHVjZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uOgpmbG9hdDhfcGxfc2FmZQpmbG9hdDhfbWlfc2Fm ZQpmbG9hdDhfbXVsX3NhZmUKZmxvYXQ4X2Rpdl9zYWZlCgpyZWZhY3RvcmluZyBleGlzdGluZyBm dW5jdGlvbiBpcyBiZSB0b28gaW52YXNpdmUuICB0aHVzIGFkZCB0aGVzZSBuZXcgZnVuY3Rpb25z LgpJdCdzIHZlcnkgc2ltaWxhciB0byBleGlzdGluZyBub24tc2FmZSB2ZXJzaW9uIGZ1bmN0aW9u cy4KCkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVp bmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdy LmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhR QG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3Fs Lm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaCB8IDc5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4IGlu c2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggYi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCmluZGV4IGQyZTk4OTk2MGE1 Li44NzIzYjRjMDBiMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCkBAIC0xMDksMTYgKzEwOSwyNCBAQCBmbG9hdDRf cGwoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogCXJldHVybiByZXN1bHQ7 CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9hdDhfcGxfc2FmZShjb25zdCBmbG9hdDgg dmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCit7CisJZmxv YXQ4CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwxICsgdmFsMjsKKwlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKKwl7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKGVzY29udGV4dCk7CisJCXJldHVybiAwLjA7CisJfQorCXJldHVybiBy ZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4CiBmbG9hdDhfcGwoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewotCWZsb2F0OAkJcmVzdWx0OwotCi0JcmVzdWx0 ID0gdmFsMSArIHZhbDI7Ci0JaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2 YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwotCi0J cmV0dXJuIHJlc3VsdDsKKwlyZXR1cm4gZmxvYXQ4X3BsX3NhZmUodmFsMSwgdmFsMiwgTlVMTCk7 OwogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0NApAQCAtMTMzLDE2ICsxNDEsMjQgQEAgZmxvYXQ0 X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAlyZXR1cm4gcmVzdWx0 OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxvYXQ4X21pX3NhZmUoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCWZs b2F0OAkJcmVzdWx0OworCisJcmVzdWx0ID0gdmFsMSAtIHZhbDI7CisJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCisJeworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4wOworCX0KKwlyZXR1cm4g cmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0OAogZmxvYXQ4X21pKGNvbnN0IGZsb2F0 OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKLQlmbG9hdDgJCXJlc3VsdDsKLQotCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwotCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKLQot CXJldHVybiByZXN1bHQ7CisJcmV0dXJuIGZsb2F0OF9taV9zYWZlKHZhbDEsIHZhbDIsIE5VTEwp OwogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0NApAQCAtMTYwLDE5ICsxNzYsMzMgQEAgZmxvYXQ0 X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiB9CiAKIHN0YXRpYyBp bmxpbmUgZmxvYXQ4Ci1mbG9hdDhfbXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDgg dmFsMikKK2Zsb2F0OF9tdWxfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZh bDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7CiAJZmxvYXQ4CQlyZXN1bHQ7CiAKIAlyZXN1 bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5m KHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CisJ eworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4wOworCX0K KwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiB2YWwyICE9 IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOworCXsKKwkJZmxvYXRfdW5kZXJm bG93X2Vycm9yKGVzY29udGV4dCk7CisJCXJldHVybiAwLjA7CisJfQogCiAJcmV0dXJuIHJlc3Vs dDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0OF9tdWwoY29uc3QgZmxvYXQ4IHZh bDEsIGNvbnN0IGZsb2F0OCB2YWwyKQoreworCXJldHVybiBmbG9hdDhfbXVsX3NhZmUodmFsMSwg dmFsMiwgTlVMTCk7Cit9CisKKwogc3RhdGljIGlubGluZSBmbG9hdDQKIGZsb2F0NF9kaXYoY29u c3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogewpAQCAtMTkwLDIxICsyMjAsMjgg QEAgZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiB9CiAK IHN0YXRpYyBpbmxpbmUgZmxvYXQ4Ci1mbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25z dCBmbG9hdDggdmFsMikKK2Zsb2F0OF9kaXZfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3Qg ZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7CiAJZmxvYXQ4CQlyZXN1bHQ7 CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjApICYmICFpc25hbih2YWwxKSkKLQkJZmxvYXRf emVyb19kaXZpZGVfZXJyb3IoTlVMTCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKGVzY29u dGV4dCk7CiAJcmVzdWx0ID0gdmFsMSAvIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3Vs dCkpICYmICFpc2luZih2YWwxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKGVzY29udGV4dCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAw LjApICYmIHZhbDEgIT0gMC4wICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vy cm9yKE5VTEwpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKIAogCXJldHVy biByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9hdDhfZGl2KGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKK3sKKwlyZXR1cm4gZmxvYXQ4X2Rpdl9zYWZl KHZhbDEsIHZhbDIsIE5VTEwpOworfQorCisKIC8qCiAgKiBSb3V0aW5lcyBmb3IgTmFOLWF3YXJl IGNvbXBhcmlzb25zCiAgKgotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi5u0 RnJvbSBiYmRmODMxZDEyM2ZlOGIzMjQzYTI2MWQyMWQzNGQzYjhjNWJjODNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTU6NTggKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcApvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgpBbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLCB0ZXh0dG94bWwuCgpB dXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogQW11bCBT dWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXku aHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xN PWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwu Y29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81 OTQxCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyB8IDY2ICsrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYyB8 IDEzICsrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLQog c3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCB8ICA2ICsrKwogc3JjL2luY2x1ZGUvdXRp bHMvdmFybGVuYS5oICAgICB8ICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygr KSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1l c3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggNTZiODdkODc4 ZTguLjA2MTA4OWYwNGM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFj ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTQ0Miw2ICs0NDIs MTYgQEAgT2lkCiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0 aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCQkJCSB1aW50MzIgZmxhZ3MsCiAJCQkJCQkgUmFu Z2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxsYmFja19hcmcpCit7CisJ cmV0dXJuIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUocmVsYXRpb24sIGxvY2ttb2RlLCBm bGFncywKKwkJCQkJCQkJCQljYWxsYmFjaywgY2FsbGJhY2tfYXJnLAorCQkJCQkJCQkJCU5VTEwp OworfQorCitPaWQKK1JhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFuZ2VWYXIg KnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMyIGZsYWdzLAorCQkJCQkJCSBSYW5n ZVZhckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQgKmNhbGxiYWNrX2FyZywKKwkJCQkJ CQkgTm9kZSAqZXNjb250ZXh0KQogewogCXVpbnQ2NAkJaW52YWxfY291bnQ7CiAJT2lkCQkJcmVs SWQ7CkBAIC00NTgsNyArNDY4LDcgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJh bmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJaWYgKHJlbGF0aW9uLT5jYXRh bG9nbmFtZSkKIAl7CiAJCWlmIChzdHJjbXAocmVsYXRpb24tPmNhdGFsb2duYW1lLCBnZXRfZGF0 YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJCWVy ZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5j ZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogXCIlcy4lcy4lc1wiIiwKIAkJCQkJCQlyZWxhdGlvbi0+ Y2F0YWxvZ25hbWUsIHJlbGF0aW9uLT5zY2hlbWFuYW1lLApAQCAtNTE1LDcgKzUyNSw3IEBAIFJh bmdlVmFyR2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RF IGxvY2ttb2RlLAogCQkJCQkgKiByZXR1cm4gSW52YWxpZE9pZC4KIAkJCQkJICovCiAJCQkJCWlm IChuYW1lc3BhY2VJZCAhPSBteVRlbXBOYW1lc3BhY2UpCi0JCQkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCiAJCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKIAkJCQkJCQkJIGVycm1zZygidGVtcG9y YXJ5IHRhYmxlcyBjYW5ub3Qgc3BlY2lmeSBhIHNjaGVtYSBuYW1lIikpKTsKIAkJCQl9CkBAIC01 OTUsMTYgKzYwNSwyMiBAQCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIg KnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJewogCQkJaW50CQkJZWxldmVsID0gKGZs YWdzICYgUlZSX1NLSVBfTE9DS0VEKSA/IERFQlVHMSA6IEVSUk9SOwogCi0JCQlpZiAocmVsYXRp b24tPnNjaGVtYW5hbWUpCisJCQlpZiAoZXNjb250ZXh0ID09IE5VTEwpCiAJCQkJZXJlcG9ydChl bGV2ZWwsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCi0JCQkJ CQkgZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlcy4lc1wiIiwK LQkJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSkpOworCQkJ CQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQlyZWxhdGlvbi0+ c2NoZW1hbmFtZSA/CisJCQkJCQllcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxh dGlvbiBcIiVzLiVzXCIiLAorCQkJCQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlv bi0+cmVsbmFtZSkgOgorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVs YXRpb24gXCIlc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+cmVsbmFtZSkpOwogCQkJZWxzZQot CQkJCWVyZXBvcnQoZWxldmVsLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJ TEFCTEUpLAotCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9u IFwiJXNcIiIsCi0JCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOworCQkJCWVyZXR1cm4oZXNj b250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlM QUJMRSksCisJCQkJCQlyZWxhdGlvbi0+c2NoZW1hbmFtZSA/CisJCQkJCQllcnJtc2coImNvdWxk IG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIiLAorCQkJCQkJCSAgIHJlbGF0 aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkgOgorCQkJCQkJZXJybXNnKCJjb3Vs ZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQkgICByZWxhdGlv bi0+cmVsbmFtZSkpOwogCiAJCQlyZXR1cm4gSW52YWxpZE9pZDsKIAkJfQpAQCAtNjI4LDE2ICs2 NDQsMjIgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlv biwgTE9DS01PREUgbG9ja21vZGUsCiAJewogCQlpbnQJCQllbGV2ZWwgPSBtaXNzaW5nX29rID8g REVCVUcxIDogRVJST1I7CiAKLQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQorCQlpZiAoZXNj b250ZXh0ID09IE5VTEwpCiAJCQllcmVwb3J0KGVsZXZlbCwKLQkJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfVEFCTEUpLAotCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIgZG9l cyBub3QgZXhpc3QiLAotCQkJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVs bmFtZSkpKTsKKwkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJ CXJlbGF0aW9uLT5zY2hlbWFuYW1lID8KKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIg ZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJICAgcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9u LT5yZWxuYW1lKSA6CisJCQkJCWVycm1zZygicmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0 IiwKKwkJCQkJCSAgIHJlbGF0aW9uLT5yZWxuYW1lKSk7CiAJCWVsc2UKLQkJCWVyZXBvcnQoZWxl dmVsLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCi0JCQkJCSBlcnJt c2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCi0JCQkJCQkJcmVsYXRpb24tPnJl bG5hbWUpKSk7CisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1l ID8KKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJ CQkJICAgcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSA6CisJCQkJCWVy cm1zZygicmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIHJlbGF0aW9u LT5yZWxuYW1lKSk7CiAJfQogCXJldHVybiByZWxJZDsKIH0KQEAgLTM2MjQsNiArMzY0NiwxMiBA QCBnZXRfbmFtZXNwYWNlX29pZChjb25zdCBjaGFyICpuc3BuYW1lLCBib29sIG1pc3Npbmdfb2sp CiAgKi8KIFJhbmdlVmFyICoKIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdChjb25zdCBMaXN0ICpu YW1lcykKK3sKKwlyZXR1cm4gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShuYW1lcywgTlVM TCk7Cit9CisKK1JhbmdlVmFyICoKK21ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUoY29uc3Qg TGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlSYW5nZVZhciAgICpyZWwgPSBtYWtl UmFuZ2VWYXIoTlVMTCwgTlVMTCwgLTEpOwogCkBAIC0zNjQyLDcgKzM2NzAsNyBAQCBtYWtlUmFu Z2VWYXJGcm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpCiAJCQlyZWwtPnJlbG5hbWUgPSBz dHJWYWwobHRoaXJkKG5hbWVzKSk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJCWVyZXBvcnQo RVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgTlVMTCwKIAkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAogCQkJCQkgZXJybXNnKCJpbXByb3BlciByZWxhdGlvbiBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCiAJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1l cykpKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwppbmRleCBlZTM0ZDFkODVmOC4uNjA0ZTE5YTFj YjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwpAQCAtMTkwMSwxMiArMTkwMSwxOSBAQCB0ZXh0 X3JlZ2NsYXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJdGV4dAkgICAqcmVsbmFtZSA9IFBHX0dFVEFS R19URVhUX1BQKDApOwogCU9pZAkJCXJlc3VsdDsKIAlSYW5nZVZhciAgICpydjsKKwlMaXN0CSAg ICpuYW1lbGlzdDsKIAotCXJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRleHRUb1F1YWxp ZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsKKwluYW1lbGlzdCA9IHRleHRUb1F1YWxpZmllZE5hbWVM aXN0U2FmZShyZWxuYW1lLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlydiA9IG1ha2VS YW5nZVZhckZyb21OYW1lTGlzdFNhZmUobmFtZWxpc3QsIGZjaW5mby0+Y29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKIAogCS8qIFdlIG1pZ2h0IG5vdCBldmVuIGhhdmUgcGVybWlzc2lvbnMgb24gdGhpcyByZWxh dGlvbjsgZG9uJ3QgbG9jayBpdC4gKi8KLQlyZXN1bHQgPSBSYW5nZVZhckdldFJlbGlkKHJ2LCBO b0xvY2ssIGZhbHNlKTsKLQorCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUo cnYsIE5vTG9jaywgMCwgTlVMTCwgTlVMTCwKKwkJCQkJCQkJCQkgIGZjaW5mby0+Y29udGV4dCk7 CiAJUEdfUkVUVVJOX09JRChyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwppbmRl eCA3YjFlZTYxYmRlNi4uNTZkYTNkN2I0NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwpAQCAt MjcxNyw2ICsyNzE3LDEyIEBAIG5hbWVfdGV4dChQR19GVU5DVElPTl9BUkdTKQogICovCiBMaXN0 ICoKIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCit7CisJcmV0dXJuIHRl eHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0dmFsLCBOVUxMKTsKK30KKworTGlzdCAqCit0 ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZhbCwgTm9kZSAqZXNjb250ZXh0 KQogewogCWNoYXIJICAgKnJhd25hbWU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwpAQCAtMjcy OCwxMiArMjczNCwxMiBAQCB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFsKQog CXJhd25hbWUgPSB0ZXh0X3RvX2NzdHJpbmcodGV4dHZhbCk7CiAKIAlpZiAoIVNwbGl0SWRlbnRp ZmllclN0cmluZyhyYXduYW1lLCAnLicsICZuYW1lbGlzdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZXNjb250ZXh0LCBOSUwsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX05B TUUpLAogCQkJCSBlcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgiKSkpOwogCiAJaWYgKG5hbWVs aXN0ID09IE5JTCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihlc2NvbnRleHQsIE5JTCwK IAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJCQkJIGVycm1zZygiaW52YWxp ZCBuYW1lIHN5bnRheCIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDFhMjU5NzM2 ODVjLi4xNTNhNDM5ZTM3NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3Bh Y2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xMDMsNiArMTAz LDExIEBAIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFy ICpyZWxhdGlvbiwKIAkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMyIGZsYWdzLAog CQkJCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywKIAkJCQkJCQkJCSB2 b2lkICpjYWxsYmFja19hcmcpOworZXh0ZXJuIE9pZCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRT YWZlKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKKwkJCQkJCQkJCQlMT0NLTU9ERSBsb2NrbW9k ZSwgdWludDMyIGZsYWdzLAorCQkJCQkJCQkJCVJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxs YmFjaywKKwkJCQkJCQkJCQl2b2lkICpjYWxsYmFja19hcmcsCisJCQkJCQkJCQkJTm9kZSAqZXNj b250ZXh0KTsKIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBS YW5nZVZhciAqbmV3UmVsYXRpb24pOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldEFuZENoZWNrQ3Jl YXRpb25OYW1lc3BhY2UoUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJCQkJIExPQ0tNT0RF IGxvY2ttb2RlLApAQCAtMTY4LDYgKzE3Myw3IEBAIGV4dGVybiBPaWQJTG9va3VwQ3JlYXRpb25O YW1lc3BhY2UoY29uc3QgY2hhciAqbnNwbmFtZSk7CiBleHRlcm4gdm9pZCBDaGVja1NldE5hbWVz cGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKTsKIGV4dGVybiBPaWQJUXVhbGlmaWVkTmFt ZUdldENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IExpc3QgKm5hbWVzLCBjaGFyICoqb2JqbmFtZV9w KTsKIGV4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNvbnN0IExpc3Qg Km5hbWVzKTsKK2V4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShj b25zdCBMaXN0ICpuYW1lcywgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBjaGFyICpOYW1lTGlz dFRvU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIGV4dGVybiBjaGFyICpOYW1lTGlzdFRvUXVv dGVkU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvdmFybGVuYS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oCmluZGV4IDRiMzI1 NzRhMDc1Li41YmM3OGFhMDJjMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVu YS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaApAQCAtMjcsNiArMjcsNyBAQCBl eHRlcm4gaW50CXZhcnN0cl9sZXZlbnNodGVpbl9sZXNzX2VxdWFsKGNvbnN0IGNoYXIgKnNvdXJj ZSwgaW50IHNsZW4sCiAJCQkJCQkJCQkJICBpbnQgaW5zX2MsIGludCBkZWxfYywgaW50IHN1Yl9j LAogCQkJCQkJCQkJCSAgaW50IG1heF9kLCBib29sIHRydXN0ZWQpOwogZXh0ZXJuIExpc3QgKnRl eHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpOworZXh0ZXJuIExpc3QgKnRleHRU b1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2NvbnRleHQpOwog ZXh0ZXJuIGJvb2wgU3BsaXRJZGVudGlmaWVyU3RyaW5nKGNoYXIgKnJhd3N0cmluZywgY2hhciBz ZXBhcmF0b3IsCiAJCQkJCQkJCSAgTGlzdCAqKm5hbWVsaXN0KTsKIGV4dGVybiBib29sIFNwbGl0 RGlyZWN0b3JpZXNTdHJpbmcoY2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRvciwKLS0gCjIu MzQuMQoK --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi6k2 RnJvbSBjNTI4YmZkMjk0NjA5ZjE0YzUxYzU3MDc5OTNlMTc5M2Y3ZTQ4NzQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTQ6MDcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCkF1dGhvcjogamlhbiBoZSA8amlhbi51 bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3 d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6 IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXggMWIxYThmMzAxZjIuLjM5YWU1OWU5NzcyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbmIuYwpAQCAtMTc4Niw3ICsxNzg2LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFy KEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25iVmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwg dHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVzc2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90 Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitj YW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlw ZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODA3 LDcgKzE4MDcsNyBAQCBjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29u c3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAoaSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7 IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1Is CisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJybXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkp KTsKIApAQCAtMTgyMiw3ICsxODIyLDEwIEBAIGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykK IAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2 KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fu bm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTE4MzEsNyArMTgzNCwxMCBAQCBqc29uYl9ib29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJ aWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi b29sZWFuIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwg ZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lG X0NPUFkoaW4sIDApOwogCkBAIC0xODQ2LDcgKzE4NTIsMTAgQEAganNvbmJfbnVtZXJpYyhQR19G VU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RT Y2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51 bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBm Y2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUg PT0gamJ2TnVsbCkKIAl7CkBAIC0xODU1LDcgKzE4NjQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19G VU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90 Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25i VmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZhbC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJv ZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNvcHkgdG8KQEAgLTE4NzYsNyArMTg4OCwxMCBAQCBq c29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFK c29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVl KHYudHlwZSwgInNtYWxsaW50Iik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQog CiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4ODUsNyArMTkwMCwxMCBAQCBqc29u Yl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmlj KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fu bm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAic21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOwor CQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxs MShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmlj KSk7CkBAIC0xOTAzLDcgKzE5MjEsMTAgQEAganNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQog CURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwg JnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsK KwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpA QCAtMTkxMiw3ICsxOTMzLDEwIEBAIGpzb25iX2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVn ZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZh bHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVy aWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTMwLDcgKzE5NTQsMTAgQEAganNvbmJf aW50OChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJF eHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5 cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2lu dCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYu dHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5MzksNyArMTk2NiwxMCBAQCBqc29uYl9pbnQ4KFBH X0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5u b3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29u YlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5NTcs NyArMTk4NywxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0 VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fu bm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25i VmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxM KCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5NjYsNyArMTk5OSwx MCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9 IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7 CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQp OworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25D YWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51 bWVyaWMpKTsKQEAgLTE5ODQsNyArMjAyMCwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05f QVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4t PnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNp c2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNp c2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYg KHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5OTMsNyArMjAzMiwxMCBAQCBqc29uYl9mbG9h dDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0J CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJ CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8t PmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0 RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVt KHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQuMQoK --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi6n3 RnJvbSAwNTNmN2ExZTIyYWJjMGRkOTk0NDU4OTBkNzhkMGY0OTMxNWQ3ZjYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MDU6NTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxMC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpBdXRob3I6IGpp YW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3Vs IDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1 aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1m djFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNv bQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0 MQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAx NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJp Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYwppbmRleCBkMjViOGFkNTA1ZC4u ZDY2ZmI4NjY2MmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDgg QEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFwcGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9k LCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBtb2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZv LT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1 cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0KIApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJp YwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21f bnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFwcGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwp OwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIpOworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5 cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtl X3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsK IApAQCAtMzAxOCw3ICszMDIwLDEwIEBAIG51bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ TnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19OVU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAot CXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVtMSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJp Y19tdWxfc2FmZShudW0xLCBudW0yLCBmY2luZm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5 KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhyZXMpOwogfQpAQCAtNDM5Miw5ICs0Mzk3LDE1IEBA IG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQog bnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1l cmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1l cmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShu dW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJF RChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9J TlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAtNDQ2Miw5ICs0NDczLDE1IEBAIG51bWVyaWNfaW50 OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4 KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQ R19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBHX1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2Fm ZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBudW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+ Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNv bnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQp OwogfQogCiAKQEAgLTQ0ODgsMTEgKzQ1MDUsMTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNf SVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQi KSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFs bGludCIpKSk7CiAJfQpAQCAtNDUwMSwxMiArNDUxOCwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVO Q1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9tX251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJp Y3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZB TFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikp KTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQR19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+ IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250 ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9P Rl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAt NDU3MSwxMCArNDU4OCwxNCBAQCBudW1lcmljX2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJ dG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJ CQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1 bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJpbmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRt cCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJ CQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJCQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRl eHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJeworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5f TlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9EQVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Niw3ICs0 Njg3LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1H ZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAg TnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEo ZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rp b25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAorCQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJ CQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29udGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7 CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsK IAotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi6q4 RnJvbSAzYTU5NThjNjE1ZDI5YzBiMGIzMDM2Y2JmNjI3ZWM0YTZmYWI4OWVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MDM6NTggKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwOS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnYmlnaW50Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGJpZ2ludCAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgICA3MTQgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ4MiAgICAgICAgfCBpbnQyCiBiaWdpbnQgICAgIHwgaW50ZWdlciAg ICAgICAgICB8ICAgICAgNDgwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ODQgICAg ICAgIHwgaW50NAogYmlnaW50ICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDY1MiB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9mICAgICAgICB8IGZsb2F0NAogYmlnaW50ICAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDQ4MiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk4dG9kICAgICAgICB8IGZsb2F0OAogYmlnaW50ICAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc4MSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfbnVtZXJpYyB8IG51 bWVyaWMKIGJpZ2ludCAgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTIgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2Nhc2ggICAgfCBtb25leQogYmlnaW50ICAgICB8IG9p ZCAgICAgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4 dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3Byb2MgICAgICAgICAgfCAgICAgMTI4 NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50 ICAgICB8IHJlZ3Byb2NlZHVyZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ29wZXIgICAgICAgICAg fCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9p ZAogYmlnaW50ICAgICB8IHJlZ29wZXJhdG9yICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NsYXNz ICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQg ICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbGxhdGlvbiAgICAgfCAgICAgMTI4NyB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8 IHJlZ3R5cGUgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbmZpZyAgICAgICAgfCAgICAg MTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmln aW50ICAgICB8IHJlZ2RpY3Rpb25hcnkgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3JvbGUgICAgICAg ICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8 IG9pZAogYmlnaW50ICAgICB8IHJlZ25hbWVzcGFjZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2Rh dGFiYXNlICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9v aWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAgNjM2OSB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfYnl0ZWEgICB8IGJ5dGVhCiBiaWdpbnQg ICAgIHwgYml0ICAgICAgICAgICAgICB8ICAgICAyMDc1IHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYml0ZnJvbWludDggIHwgYml0CigyMSByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBp OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKCkF1dGhv cjogamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11 bCBTdWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29y ZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FE a0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21h aWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRj aC81OTQxCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyB8IDYgKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50 OC5jCmluZGV4IDZjOGZiN2I3Mjc1Li5kYTM5MjE4OTc0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCkBA IC0xMjUxLDcgKzEyNTEsNyBAQCBpbnQ4NChQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcg PSBQR19HRVRBUkdfSU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMzJfTUlO KSB8fCB1bmxpa2VseShhcmcgPiBQR19JTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQll cmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9m IHJhbmdlIikpKTsKIApAQCAtMTI3Miw3ICsxMjcyLDcgQEAgaW50ODIoUEdfRlVOQ1RJT05fQVJH UykKIAlpbnQ2NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFy ZyA8IFBHX0lOVDE2X01JTikgfHwgdW5saWtlbHkoYXJnID4gUEdfSU5UMTZfTUFYKSkKLQkJZXJl cG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQko ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBpOHRv b2lkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsK IAogCWlmICh1bmxpa2VseShhcmcgPCAwKSB8fCB1bmxpa2VseShhcmcgPiBQR19VSU5UMzJfTUFY KSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkg MCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQkgZXJybXNnKCJPSUQgb3V0IG9mIHJhbmdlIikpKTsKIAotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi6s5 RnJvbSAyMTNiMmVkNWI2NTBhYzJlMTczOTg3ZDgyZDU1ZjQxNzgzZDkyNzUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTk6MjQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwOC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5 IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZp XzRoUUBtYWlsLmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdy ZXNxbC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAy ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXgg M2U0ZGVmNjhmZTQuLjY5ODg2MzkyNGVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsx OTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElPTl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VU QVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEgPCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01B WCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkg MCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5k ZXggZmY1NGQ1MGVhOWQuLjRjODk0YTQ5ZDVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNzksNyAr Mzc5LDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRB UkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2Vs eShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9P VVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAK LS0gCjIuMzQuMQoK --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi729 RnJvbSBjMTBhZDI4NzVjZDUzNzA5YmYyNmMyYmE2NGI5ODU4ZTFhZTAwMzhjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTQ6MTI6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAogYnl0ZWEgICAgICB8IHV1aWQgICAgICAgfCAgICAgOTg4MSB8IGUgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGJ5dGVhX3V1aWQgfCB1dWlkCig0IHJvd3MpCgpBdXRob3I6IGppYW4gaGUgPGpp YW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVs QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21h aWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQpDb21taXRm ZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvYnl0ZWEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jCmluZGV4 IDM5ZWQwNGRkYWU4Li5mNmUzMjY2YWMzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2J5dGVhLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKQEAgLTEyNTYs NyArMTI1Niw3IEBAIGJ5dGVhX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIENoZWNrIHRo YXQgdGhlIGJ5dGUgYXJyYXkgaXMgbm90IHRvbyBsb25nICovCiAJaWYgKGxlbiA+IHNpemVvZihy ZXN1bHQpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSk7CiAKQEAgLTEyODEsNyArMTI4 MSw3IEBAIGJ5dGVhX2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIENoZWNrIHRoYXQgdGhl IGJ5dGUgYXJyYXkgaXMgbm90IHRvbyBsb25nICovCiAJaWYgKGxlbiA+IHNpemVvZihyZXN1bHQp KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAw LAogCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJ ZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTMwNiw3ICsxMzA2LDcgQEAg Ynl0ZWFfaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYnl0ZSBh cnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3VsdCkpCi0JCWVy ZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJ ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQllcnJtc2co ImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSk7CiAKQEAgLTEzNTEsNyArMTM1MSw3IEBAIGJ5dGVhX3V1 aWQoUEdfRlVOQ1RJT05fQVJHUykKIAlwZ191dWlkX3QgICp1dWlkOwogCiAJaWYgKGxlbiAhPSBV VUlEX0xFTikKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFU SU9OKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IGxlbmd0aCBmb3IgdHlwZSAlcyIsICJ1 dWlkIiksCiAJCQkJIGVycmRldGFpbCgiRXhwZWN0ZWQgJWQgYnl0ZXMsIGdvdCAlZC4iLCBVVUlE X0xFTiwgbGVuKSkpOwotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v23-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi6u6 RnJvbSA2YWM0YjRmYmVmMWEwNzUyNDZhNDc0MTg1YmRkYzc4Y2ZhNmZiYTdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MzQ6NTEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpBdXRob3I6IGppYW4gaGUgPGpp YW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVs QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21h aWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQpDb21taXRm ZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA2 ZjA4Mzk3M2ZlNy4uYTYyZTU1ZWVjMTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0 LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVOQ1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1h eG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlpZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJ IGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwK IAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi6x7 RnJvbSBjYWJhYTg1NmEyZTM0ODgyZjA1NjQ2MWQzYTBlMWMzMTNhZTZmZWFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTM6MjkgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpBdXRob3I6IGpp YW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3Vs IDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1 aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1m djFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNv bQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0 MQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91 dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwgMTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5j bHVkZS91dGlscy94bWwuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwg MTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYwppbmRleCA1M2FlMDIwNTcwMi4uNDMxMTY0MzFlZGYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNDU0OCw3ICs0NTQ4LDcgQEAgRXhlY0V2YWxYbWxF eHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3Zh bHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBhcnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhw ci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJ CQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVzcGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVs bCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBk ZjMwNTA5ODEzMC4uNmYwODM5NzNmZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3 LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5DVElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBt YXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJCWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJ CSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJ CQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCmluZGV4IDc5ZjZjZjdiNGZhLi41MmY0ZjhmYzQ5 MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjYwLDcgKzY2MCw3IEBAIHRleHR0b3htbChQR19GVU5D VElPTl9BUkdTKQogewogCXRleHQJICAgKmRhdGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAot CVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShkYXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19S RVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwgeG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRl eHQpKTsKIH0KIAogCkBAIC0xMDI5LDE5ICsxMDI5LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAq eGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBl IHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQg KmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNw YWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAjaWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglk b2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hp dGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsK LQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdldERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVM TCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQorCQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAo eG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlOT19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxM OworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAorCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQllcnJtc2coInVuc3VwcG9ydGVkIFhNTCBmZWF0dXJlIiksCisJ CQllcnJkZXRhaWwoIlRoaXMgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyB0aGUgc2VydmVyIHRvIGJl IGJ1aWx0IHdpdGggbGlieG1sIHN1cHBvcnQuIikpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmgKaW5kZXgg MDIzZmRlYjQ1MzEuLmNhMjY2ZjQ0OGQ2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy94 bWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy94bWwuaApAQCAtNzMsNyArNzMsNyBAQCBleHRl cm4geG1sdHlwZSAqeG1sY29uY2F0KExpc3QgKmFyZ3MpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbGVs ZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAJCQkJCQkgICBjb25zdCBEYXR1bSAqbmFtZWRfYXJndmFs dWUsIGNvbnN0IGJvb2wgKm5hbWVkX2FyZ251bGwsCiAJCQkJCQkgICBjb25zdCBEYXR1bSAqYXJn dmFsdWUsIGNvbnN0IGJvb2wgKmFyZ251bGwpOwotZXh0ZXJuIHhtbHR5cGUgKnhtbHBhcnNlKHRl eHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0 ZXNwYWNlKTsKK2V4dGVybiB4bWx0eXBlICp4bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25U eXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFjZSwgTm9kZSAqZXNjb250 ZXh0KTsKIGV4dGVybiB4bWx0eXBlICp4bWxwaShjb25zdCBjaGFyICp0YXJnZXQsIHRleHQgKmFy ZywgYm9vbCBhcmdfaXNfbnVsbCwgYm9vbCAqcmVzdWx0X2lzX251bGwpOwogZXh0ZXJuIHhtbHR5 cGUgKnhtbHJvb3QoeG1sdHlwZSAqZGF0YSwgdGV4dCAqdmVyc2lvbiwgaW50IHN0YW5kYWxvbmUp OwogZXh0ZXJuIGJvb2wgeG1sX2lzX2RvY3VtZW50KHhtbHR5cGUgKmFyZyk7Ci0tIAoyLjM0LjEK Cg== --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi708 RnJvbSAyZTlhMzNjYzZiMzlkOTk0YTAwYWFmMjQzOWY4ZGNmMWQwOWEzOThhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6NDA6MjUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUKb3IgY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpBdXRob3I6IGppYW4g aGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxz dWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5r ZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQpD b21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0MQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJp dC5jCmluZGV4IDY1YWQxYmZlMThmLi5jNDZiNWJhZTcwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQu YwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5f VkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNFeHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RF X1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRDSCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBs ZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlwZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihh cmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUyLDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcpOwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1z ZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3IgdHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJ bGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcgQEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQgc3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlm IChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihyZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJl cG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQko ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRv aW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBp cyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFSQklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAq IEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250 ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9P Rl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmlnaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIu MzQuMQoK --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v23-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7510 RnJvbSA0NmU4Mzg5OTJiMDE5NDAyMzM5YjMzODQ5NWUzZjUwNTg4YWEwNDdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTQ6MTQ6MzEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAyMy8yM10gZXJyb3Igc2FmZSBmb3IgdXNlciBkZWZpbmVkIENSRUFURSBDQVNUCgpwZ19jYXN0 LmNhc3RlcnJvcnNhZmUgY29sdW1uIHRvIGluZGljYXRlIGNhc3RmdW5jIGlzIGVycm9yIHNhZmUg b3Igbm90LgpjaGFuZ2Ugc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCB0byBpbmRpY2F0 ZSB0aGF0IG1vc3Qgb2YgdGhlIHN5c3RlbSBjYXN0CmZ1bmN0aW9uIHN1cHBvcnQgc29mdCBlcnJv ciBldmFsdWF0aW9uLgoKVGhlIFNBRkUga2V5d29yZCBpcyBpbnRyb2R1Y2VkIGZvciBhbGxvdyB1 c2VyLWRlZmluZWQgQ1JFQVRFIENBU1QgY2FuIGFsc28gYmUKZXZhbHVhdGVkIGluIHNvZnQtZXJy b3IuCgpUaGUgbmV3IHN5bm9wc2lzIG9mIENSRUFURSBDQVNUIGlzOgpDUkVBVEUgQ0FTVCAoc291 cmNlX3R5cGUgQVMgdGFyZ2V0X3R5cGUpCiAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiBmdW5jdGlv bl9uYW1lIFsgKGFyZ3VtZW50X3R5cGUgWywgLi4uXSkgXQogICAgWyBBUyBBU1NJR05NRU5UIHwg QVMgSU1QTElDSVQgXQoKVGhlIGZvbGxvd2luZyBjYXN0IGluIGNpdGV4dCwgaHN0b3JlIGNvbnRy aWIgbW9kdWxlIHJlZmFjdG9yZWQgdG8gZXJyb3Igc2FmZToKQ0FTVCAoYnBjaGFyIEFTIGNpdGV4 dCkKQ0FTVCAoYm9vbGVhbiBBUyBjaXRleHQpCkNBU1QgKGluZXQgQVMgY2l0ZXh0KQpDQVNUICh0 ZXh0W10gQVMgaHN0b3JlKQpDQVNUIChoc3RvcmUgQVMganNvbikKQ0FTVCAoaHN0b3JlIEFTIGpz b25iKQoKQXV0aG9yOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcg RHVuc3RhbiA8YW5kcmV3QGR1bnNsYW5lLm5ldD4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIg PGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWls LmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcv cGF0Y2gvNTk0MQotLS0KIGNvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbCAgICAgICAgICAg IHwgICA2ICstCiBjb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0ICAgICAgICB8ICAy NCArLQogY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0ICAgICAgfCAgMjQgKy0K IGNvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsICAgICAgICAgICAgIHwgICA1ICstCiBjb250 cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0ICAgICAgICB8ICAzNyArKysKIGNvbnRyaWIv aHN0b3JlL2hzdG9yZS0tMS4yLS0xLjMuc3FsICAgICAgIHwgICAyICstCiBjb250cmliL2hzdG9y ZS9oc3RvcmUtLTEuNC5zcWwgICAgICAgICAgICB8ICAgNiArLQogY29udHJpYi9oc3RvcmUvaHN0 b3JlX2lvLmMgICAgICAgICAgICAgICAgfCAgIDggKy0KIGNvbnRyaWIvaHN0b3JlL3NxbC9oc3Rv cmUuc3FsICAgICAgICAgICAgIHwgIDExICsKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgIHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCAg ICAgICAgIHwgIDE0ICstCiBkb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMgICAgICAgICAgICAgfCAg IDQgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jICAgICAgIHwgIDE2ICst CiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICB8ICAgMSArCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgfCAgMzIgKy0tCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuZGF0ICAgICAgICAgICB8IDMzMiArKysrKysrKysrKy0tLS0tLS0tLS0t CiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaCAgICAgICAgICAgICB8ICAgNSArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dCB8ICAgOCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dCAgfCAgMjQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0 ZV9jYXN0LnNxbCAgICAgIHwgICA1ICsKIDI0IGZpbGVzIGNoYW5nZWQsIDM2OSBpbnNlcnRpb25z KCspLCAyMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvY2l0ZXh0 LS0xLjQuc3FsIGIvY29udHJpYi9jaXRleHQvY2l0ZXh0LS0xLjQuc3FsCmluZGV4IDdiMDYxOTg5 MzUyLi41Yzg3ODIwMzg4ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvY2l0ZXh0LS0xLjQu c3FsCisrKyBiL2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbApAQCAtODUsOSArODUsOSBA QCBDUkVBVEUgQ0FTVCAoY2l0ZXh0IEFTIHZhcmNoYXIpIFdJVEhPVVQgRlVOQ1RJT04gQVMgSU1Q TElDSVQ7CiBDUkVBVEUgQ0FTVCAoY2l0ZXh0IEFTIGJwY2hhcikgIFdJVEhPVVQgRlVOQ1RJT04g QVMgQVNTSUdOTUVOVDsKIENSRUFURSBDQVNUICh0ZXh0IEFTIGNpdGV4dCkgICAgV0lUSE9VVCBG VU5DVElPTiBBUyBBU1NJR05NRU5UOwogQ1JFQVRFIENBU1QgKHZhcmNoYXIgQVMgY2l0ZXh0KSBX SVRIT1VUIEZVTkNUSU9OIEFTIEFTU0lHTk1FTlQ7Ci1DUkVBVEUgQ0FTVCAoYnBjaGFyIEFTIGNp dGV4dCkgIFdJVEggRlVOQ1RJT04gY2l0ZXh0KGJwY2hhcikgIEFTIEFTU0lHTk1FTlQ7Ci1DUkVB VEUgQ0FTVCAoYm9vbGVhbiBBUyBjaXRleHQpIFdJVEggRlVOQ1RJT04gY2l0ZXh0KGJvb2xlYW4p IEFTIEFTU0lHTk1FTlQ7Ci1DUkVBVEUgQ0FTVCAoaW5ldCBBUyBjaXRleHQpICAgIFdJVEggRlVO Q1RJT04gY2l0ZXh0KGluZXQpICAgIEFTIEFTU0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAoYnBjaGFy IEFTIGNpdGV4dCkgIFdJVEggU0FGRSBGVU5DVElPTiBjaXRleHQoYnBjaGFyKSAgQVMgQVNTSUdO TUVOVDsKK0NSRUFURSBDQVNUIChib29sZWFuIEFTIGNpdGV4dCkgV0lUSCBTQUZFIEZVTkNUSU9O IGNpdGV4dChib29sZWFuKSBBUyBBU1NJR05NRU5UOworQ1JFQVRFIENBU1QgKGluZXQgQVMgY2l0 ZXh0KSAgICBXSVRIIFNBRkUgRlVOQ1RJT04gY2l0ZXh0KGluZXQpICAgIEFTIEFTU0lHTk1FTlQ7 CiAKIC0tCiAtLSBPcGVyYXRvciBGdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4 dC9leHBlY3RlZC9jaXRleHQub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91 dAppbmRleCBlY2ZhZjJhYTg1YS4uYmUzMjg3MTU0OTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0 ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0 ZXh0Lm91dApAQCAtMTAsMTEgKzEwLDEyIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5P VCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dzKQogCi1T RUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tIGVycm9yCi1FUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgY2hhcmFjdGVy IHRvIGNpdGV4dCB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAu Li4gT04gQ09OVkVSU0lPTiBFUlJPUgotTElORSAxOiBTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFy IEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0kuLi4KLSAgICAgICAgICAgICAgICAg ICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5v dCB5ZXQgc3VwcG9ydGVkLgorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJj CisoMSByb3cpCisKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25z CiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMg dDsKQEAgLTUyMyw2ICs1MjQsMTIgQEAgU0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0 OwogIHQKICgxIHJvdykKIAorU0VMRUNUIENBU1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93 KQorCiBTRUxFQ1QgJ3RydWUnOjpjaXRleHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0t LQpAQCAtNzg3LDYgKzc5NCwxMyBAQCBTRUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6 aW5ldCA9ICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxF Q1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEwMC4xMjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0 OworIHQgCistLS0KKyB0CisoMSByb3cpCisKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjpt YWNhZGRyOjpjaXRleHQgPSAnMDg6MDA6MmI6MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZm IC0tZ2l0IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29udHJpYi9j aXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CmluZGV4IDNlMTJjZDc5M2FkLi5lOWY4NDU0YzY2 MiAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CisrKyBi L2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dApAQCAtMTAsMTEgKzEwLDEyIEBA IFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0t LS0tLS0rLS0tLS0tLS0tCiAoMCByb3dzKQogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFT IGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCi1FUlJP UjogIGNhbm5vdCBjYXN0IHR5cGUgY2hhcmFjdGVyIHRvIGNpdGV4dCB3aGVuIERFRkFVTFQgZXhw cmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgotTElO RSAxOiBTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0kuLi4KLSAgICAgICAgICAgICAgICAgICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0 IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgorU0VMRUNUIENB U1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJjCisoMSByb3cpCisKIC0tIFRlc3QgdGhlIG9w ZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNU ICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKQEAgLTUyMyw2ICs1MjQsMTIgQEAgU0VM RUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0OwogIHQKICgxIHJvdykKIAorU0VMRUNUIENB U1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNp dGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93KQorCiBTRUxFQ1QgJ3RydWUnOjpjaXRleHQ6 OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0tLQpAQCAtNzg3LDYgKzc5NCwxMyBAQCBTRUxF Q1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5ldCA9ICcxOTIuMTY4LjEwMC4xMjgnOjpp bmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEwMC4x MjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cpCisK IFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNhZGRyOjpjaXRleHQgPSAnMDg6MDA6MmI6 MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvc3Fs L2NpdGV4dC5zcWwgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAppbmRleCBjODIwYjBi ZDRkOS4uNjJmODNkNzQ5ZjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQu c3FsCisrKyBiL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCkBAIC05LDcgKzksNyBAQCBT RUxFQ1QgYW1uYW1lLCBvcGNuYW1lCiBGUk9NIHBnX29wY2xhc3Mgb3BjIExFRlQgSk9JTiBwZ19h bSBhbSBPTiBhbS5vaWQgPSBvcGNtZXRob2QKIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5P VCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNp dGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1Qg Q0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CiAKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAK QEAgLTE2NSw2ICsxNjUsNyBAQCBTRUxFQ1QgbmFtZSBGUk9NIHNydCBXSEVSRSBuYW1lIFNJTUlM QVIgVE8gJyVBLionOwogCiAtLSBFeHBsaWNpdCBjYXN0cy4KIFNFTEVDVCB0cnVlOjpjaXRleHQg PSAndHJ1ZScgQVMgdDsKK1NFTEVDVCBDQVNUKHRydWUgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKIFNFTEVDVCAndHJ1ZSc6OmNpdGV4dDo6Ym9vbGVhbiA9IHRy dWUgQVMgdDsKIAogU0VMRUNUIDQ6OmNpdGV4dCA9ICc0JyBBUyB0OwpAQCAtMjI0LDYgKzIyNSw4 IEBAIFNFTEVDVCAnMTkyLjE2OC4xMDAuMTI4LzI1Jzo6Y2l0ZXh0OjpjaWRyID0gJzE5Mi4xNjgu MTAwLjEyOC8yNSc6OmNpZHIgQVMgdDsKIAogU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0 OjpjaXRleHQgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OwogU0VMRUNUICcxOTIuMTY4LjEw MC4xMjgnOjpjaXRleHQ6OmluZXQgPSAnMTkyLjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OworU0VM RUNUIENBU1QoaW5ldCAnMTkyLjE2OC4xMDAuMTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicgQVMg dDsKIAogU0VMRUNUICcwODowMDoyYjowMTowMjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODow MDoyYjowMTowMjowMycgQVMgdDsKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjpjaXRleHQ6 Om1hY2FkZHIgPSAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNhZGRyIEFTIHQ7CmRpZmYgLS1naXQg YS9jb250cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0IGIvY29udHJpYi9oc3RvcmUvZXhw ZWN0ZWQvaHN0b3JlLm91dAppbmRleCBhY2VhODgwNmJhNC4uMTkwODRmMzM3MWQgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5vdXQKKysrIGIvY29udHJpYi9oc3Rv cmUvZXhwZWN0ZWQvaHN0b3JlLm91dApAQCAtODQwLDEyICs4NDAsMjggQEAgc2VsZWN0ICd7fSc6 OnRleHRbXTo6aHN0b3JlOwogCiBzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXTo6 aHN0b3JlOwogRVJST1I6ICBhcnJheSBtdXN0IGhhdmUgZXZlbiBudW1iZXIgb2YgZWxlbWVudHMK K3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycsJ2InLCdoJywnYXNkJ10gQVMgaHN0b3JlCisgICAg ICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQor IAorKDEgcm93KQorCiBzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnLCdpJ106Omhz dG9yZTsKICAgICAgICAgICAgICBhcnJheSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICJhIj0+ImciLCAiYiI9PiJoIiwgImFzZCI9PiJpIgogKDEgcm93 KQogCitzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLG51bGwsJ2knXTo6aHN0b3JlOworRVJS T1I6ICBudWxsIHZhbHVlIG5vdCBhbGxvd2VkIGZvciBoc3RvcmUga2V5CitzZWxlY3QgQ0FTVChB UlJBWVsnYScsJ2cnLCdiJywnaCcsbnVsbCwnaSddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykK Kwogc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7 CiAgICAgICAgICAgICAgYXJyYXkgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KQEAgLTg1NCw2ICs4NzAsMTMgQEAgc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxb J2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiAKIHNlbGVjdCBBUlJBWVtbJ2EnLCdnJywn YiddLFsnaCcsJ2FzZCcsJ2knXV06OmhzdG9yZTsKIEVSUk9SOiAgYXJyYXkgbXVzdCBoYXZlIHR3 byBjb2x1bW5zCitzZWxlY3QgQ0FTVChBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2kn XV0gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgQVJSQVlbW1snYScsJ2cnXSxb J2InLCdoJ10sWydhc2QnLCdpJ11dXTo6aHN0b3JlOwogRVJST1I6ICB3cm9uZyBudW1iZXIgb2Yg YXJyYXkgc3Vic2NyaXB0cwogc2VsZWN0IGhzdG9yZSgne30nOjp0ZXh0W10pOwpAQCAtMTU1Miw2 ICsxNTc1LDEzIEBAIHNlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBj ID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9CiAgeyJiIjogInQiLCAiYyI6IG51 bGwsICJkIjogIjEyMzQ1IiwgImUiOiAiMDEyMzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0 NWUrNCIsICJhIGtleSI6ICIxIn0KICgxIHJvdykKIAorc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJh IGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+ IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24KKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBv biBjb252ZXJzaW9uIGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBqc29uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImIiOiAi dCIsICJjIjogbnVsbCwgImQiOiAiMTIzNDUiLCAiZSI6ICIwMTIzNDUiLCAiZiI6ICIxLjIzNCIs ICJnIjogIjIuMzQ1ZSs0IiwgImEga2V5IjogIjEifQorKDEgcm93KQorCiBzZWxlY3QgaHN0b3Jl X3RvX2pzb25fbG9vc2UoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1 LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSIn KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHN0b3JlX3Rv X2pzb25fbG9vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg LTE1NzAsNiArMTYwMCwxMyBAQCBzZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIg PT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPQogIHsiYiI6ICJ0Iiwg ImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJlIjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImci OiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9CiAoMSByb3cpCiAKK3NlbGVjdCBjYXN0KCBoc3Rv cmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIz NDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0JyBhcyBqc29uYgorICAgICAgICAgICAgZGVmYXVs dCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGpzb25iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJlIjogIjAxMjM0NSIsICJmIjog IjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9CisoMSByb3cpCisKIHNlbGVj dCBoc3RvcmVfdG9fanNvbmJfbG9vc2UoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwg ZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAx Ni0wMS0wMSInKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhz dG9yZV90b19qc29uYl9sb29zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS4yLS0xLjMuc3FsIGIvY29udHJp Yi9oc3RvcmUvaHN0b3JlLS0xLjItLTEuMy5zcWwKaW5kZXggMGE3MDU2MDE1YjcuLmNiYjFhMTM5 ZTY5IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbAorKysg Yi9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbApAQCAtOSw3ICs5LDcgQEAgQVMg J01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfdG9fanNvbmInCiBMQU5HVUFHRSBDIElNTVVUQUJM RSBTVFJJQ1Q7CiAKIENSRUFURSBDQVNUIChoc3RvcmUgQVMganNvbmIpCi0gIFdJVEggRlVOQ1RJ T04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7CisgIFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVf dG9fanNvbmIoaHN0b3JlKTsKIAogQ1JFQVRFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYl9sb29z ZShoc3RvcmUpCiBSRVRVUk5TIGpzb25iCmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3Rv cmUtLTEuNC5zcWwgYi9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwKaW5kZXggNDI5NGQx NGNlYjUuLjQ1MWMyZWQ4MTg3IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEu NC5zcWwKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjQuc3FsCkBAIC0yMzIsNyArMjMy LDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfZnJvbV9hcnJheScKIExBTkdVQUdF IEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAodGV4dFtd IEFTIGhzdG9yZSkKLSAgV0lUSCBGVU5DVElPTiBoc3RvcmUodGV4dFtdKTsKKyAgV0lUSCBTQUZF IEZVTkNUSU9OIGhzdG9yZSh0ZXh0W10pOwogCiBDUkVBVEUgRlVOQ1RJT04gaHN0b3JlX3RvX2pz b24oaHN0b3JlKQogUkVUVVJOUyBqc29uCkBAIC0yNDAsNyArMjQwLDcgQEAgQVMgJ01PRFVMRV9Q QVRITkFNRScsICdoc3RvcmVfdG9fanNvbicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQ QVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAoaHN0b3JlIEFTIGpzb24pCi0gIFdJVEggRlVO Q1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3JlKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9y ZV90b19qc29uKGhzdG9yZSk7CiAKIENSRUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbl9sb29z ZShoc3RvcmUpCiBSRVRVUk5TIGpzb24KQEAgLTI1Myw3ICsyNTMsNyBAQCBBUyAnTU9EVUxFX1BB VEhOQU1FJywgJ2hzdG9yZV90b19qc29uYicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQ QVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAoaHN0b3JlIEFTIGpzb25iKQotICBXSVRIIEZV TkNUSU9OIGhzdG9yZV90b19qc29uYihoc3RvcmUpOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0 b3JlX3RvX2pzb25iKGhzdG9yZSk7CiAKIENSRUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmJf bG9vc2UoaHN0b3JlKQogUkVUVVJOUyBqc29uYgpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUv aHN0b3JlX2lvLmMgYi9jb250cmliL2hzdG9yZS9oc3RvcmVfaW8uYwppbmRleCA5YjcyZWZiODY3 NC4uNTlhNDViNTJhOWUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jCisr KyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jCkBAIC03MzksMjAgKzczOSwyMCBAQCBoc3Rv cmVfZnJvbV9hcnJheShQR19GVU5DVElPTl9BUkdTKQogCiAJCWNhc2UgMToKIAkJCWlmICgoQVJS X0RJTVMoaW5fYXJyYXkpWzBdKSAlIDIpCi0JCQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJu KGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJB WV9TVUJTQ1JJUFRfRVJST1IpLAogCQkJCQkJIGVycm1zZygiYXJyYXkgbXVzdCBoYXZlIGV2ZW4g bnVtYmVyIG9mIGVsZW1lbnRzIikpKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMjoKIAkJCWlmICgo QVJSX0RJTVMoaW5fYXJyYXkpWzFdKSAhPSAyKQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVf QVJSQVlfU1VCU0NSSVBUX0VSUk9SKSwKIAkJCQkJCSBlcnJtc2coImFycmF5IG11c3QgaGF2ZSB0 d28gY29sdW1ucyIpKSk7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJP UiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkoZXJyY29k ZShFUlJDT0RFX0FSUkFZX1NVQlNDUklQVF9FUlJPUiksCiAJCQkJCSBlcnJtc2coIndyb25nIG51 bWJlciBvZiBhcnJheSBzdWJzY3JpcHRzIikpKTsKIAl9CkBAIC03NzMsNyArNzczLDcgQEAgaHN0 b3JlX2Zyb21fYXJyYXkoUEdfRlVOQ1RJT05fQVJHUykKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7 ICsraSkKIAl7CiAJCWlmIChpbl9udWxsc1tpICogMl0pCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09E RV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKIAkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBub3Qg YWxsb3dlZCBmb3IgaHN0b3JlIGtleSIpKSk7CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3Jl L3NxbC9oc3RvcmUuc3FsIGIvY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwKaW5kZXggOGFl OTVlOGE1MTAuLmE4MDNlMTFlYzg0IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9zcWwvaHN0 b3JlLnNxbAorKysgYi9jb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbApAQCAtMTkwLDkgKzE5 MCwxNiBAQCBzZWxlY3QgcGdfY29sdW1uX3NpemUoc2xpY2UoaHN0b3JlICdhYT0+MSwgYj0+Miwg Yz0+MycsIEFSUkFZWydjJywnYicsJ2FhJ10pKQogLS0gYXJyYXkgaW5wdXQKIHNlbGVjdCAne30n Ojp0ZXh0W106OmhzdG9yZTsKIHNlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddOjpo c3RvcmU7CitzZWxlY3QgQ0FTVChBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddIEFTIGhzdG9y ZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIHNlbGVjdCBBUlJB WVsnYScsJ2cnLCdiJywnaCcsJ2FzZCcsJ2knXTo6aHN0b3JlOworc2VsZWN0IEFSUkFZWydhJywn ZycsJ2InLCdoJyxudWxsLCdpJ106OmhzdG9yZTsKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycs J2InLCdoJyxudWxsLCdpJ10gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOwogc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdp J11dOjpoc3RvcmU7CiBzZWxlY3QgQVJSQVlbWydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11d Ojpoc3RvcmU7CitzZWxlY3QgQ0FTVChBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2kn XV0gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwog c2VsZWN0IEFSUkFZW1tbJ2EnLCdnJ10sWydiJywnaCddLFsnYXNkJywnaSddXV06OmhzdG9yZTsK IHNlbGVjdCBoc3RvcmUoJ3t9Jzo6dGV4dFtdKTsKIHNlbGVjdCBoc3RvcmUoQVJSQVlbJ2EnLCdn JywnYicsJ2gnLCdhc2QnXSk7CkBAIC0zNjEsMTAgKzM2OCwxNCBAQCBzZWxlY3QgY291bnQoKikg ZnJvbSB0ZXN0aHN0b3JlIHdoZXJlIGggPSAncG9zPT45OCwgbGluZT0+MzcxLCBub2RlPT5DQkEs IGluZGV4ZQogLS0ganNvbiBhbmQganNvbmIKIHNlbGVjdCBoc3RvcmVfdG9fanNvbignImEga2V5 IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4y MzQsIGc9PiAyLjM0NWUrNCcpOwogc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBi ID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4g Mi4zNDVlKzQnIGFzIGpzb24pOworc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBi ID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4g Mi4zNDVlKzQnIGFzIGpzb24KKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9u IGVycm9yKTsKIHNlbGVjdCBoc3RvcmVfdG9fanNvbl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4g dCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0 NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicpOwogCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iKCciYSBr ZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAx LjIzNCwgZz0+IDIuMzQ1ZSs0Jyk7CiBzZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEs IGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9 PiAyLjM0NWUrNCcgYXMganNvbmIpOworc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4x LCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBn PT4gMi4zNDVlKzQnIGFzIGpzb25iCisgICAgICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVy c2lvbiBlcnJvcik7CiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iX2xvb3NlKCciYSBrZXkiID0+MSwg YiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+ IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEtMDEiJyk7CiAKIGNyZWF0ZSB0YWJsZSB0ZXN0X2pzb25f YWdnIChmMSB0ZXh0LCBmMiBoc3RvcmUpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA2MWZmZTgwNGVlOC4u ZmVmMGU3MmZlNWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0xODc0LDYgKzE4NzQsMjEgQEAgU0NSQU0t U0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxl Pjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8bGl0ZXJhbD5iPC9saXRlcmFsPiBtZWFucyB0aGF0 IHRoZSB0eXBlcyBhcmUgYmluYXJ5LWNvZXJjaWJsZSwgdGh1cyBubyBjb252ZXJzaW9uIGlzIHJl cXVpcmVkLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+ CisgICAgICAgIFRoaXMgZmxhZyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgPHN0cnVjdGZpZWxkPmNh c3RmdW5jPC9zdHJ1Y3RmaWVsZD4gZnVuY3Rpb24KKyAgICAgICAgaXMgZXJyb3Itc2FmZS4gSXQg aXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVs ZD4KKyAgICAgICAgaXMgbm90IHplcm8uIFVzZXItZGVmaW5lZCBjYXN0cyBjYW4gc2V0IGl0Cisg ICAgICAgIHRvIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IHZpYSA8bGluayBsaW5rZW5kPSJzcWwt Y3JlYXRlY2FzdCI+Q1JFQVRFIENBU1Q8L2xpbms+LgorICAgICAgICBGb3IgZXJyb3Itc2FmZSB0 eXBlIGNhc3QsIHNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSIv Pi4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwv dGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dt bAppbmRleCBiYWQ3NWJjMWRjZS4uODg4ZDcxNDJlNDIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0 LnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5 bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2Vf dHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFi bGU+KQotICAgIFdJVEggRlVOQ1RJT04gPHJlcGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxh Y2VhYmxlPiBbICg8cmVwbGFjZWFibGU+YXJndW1lbnRfdHlwZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0pIF0KKyAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiA8cmVwbGFjZWFibGU+ZnVuY3Rpb25fbmFt ZTwvcmVwbGFjZWFibGU+IFsgKDxyZXBsYWNlYWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSkgXQogICAgIFsgQVMgQVNTSUdOTUVOVCB8IEFTIElNUExJQ0lUIF0KIAogQ1JF QVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBs YWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+KQpAQCAtMTk0LDYgKzE5NCwxOCBAQCBT RUxFQ1QgQ0FTVCAoIDIgQVMgbnVtZXJpYyApICsgNC4wOwogICAgICA8L2xpc3RpdGVtPgogICAg IDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVy YWw+U0FGRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoZSBmdW5jdGlvbiB1c2VkIHRvIHBlcmZvcm0gdGhlIGNhc3Qgc3VwcG9ydCBzb2Z0 LWVycm9yIGV2YWx1YXRpb24sCisgICAgICAgQ3VycmVudGx5LCBvbmx5IGZ1bmN0aW9ucyB3cml0 dGVuIGluIEMgb3IgdGhlIGludGVybmFsIGxhbmd1YWdlIGFyZSBzdXBwb3J0ZWQuCisgICAgICAg QW4gYWx0ZXJuYXRlIGV4cHJlc3Npb24gY2FuIGJlIHNwZWNpZmllZCB0byBiZSBldmFsdWF0ZWQg aWYgdGhlIGNhc3QKKyAgICAgICBlcnJvciBvY2N1cnMuICBTZWUgPGxpbmsgbGlua2VuZD0ic3Fs LXN5bnRheC10eXBlLWNhc3RzLXNhZmUiPnNhZmUgdHlwZSBjYXN0PC9saW5rPi4KKyAgICAgIDwv cGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJs aXN0ZW50cnk+CiAgICAgIDx0ZXJtPjxsaXRlcmFsPjxyZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1l PC9yZXBsYWNlYWJsZT5bKDxyZXBsYWNlYWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4g WywgLi4uXSldPC9saXRlcmFsPjwvdGVybT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5 bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCmluZGV4IGFhMGZjMWVmODFjLi42 ZWRjYjk1NjllOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9zeW50YXguc2dtbApAQCAtMjE0Miw5ICsyMTQyLDggQEAgQ0FTVCAoIDxyZXBs YWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3Jl cGxhY2VhYmxlPgogICAgIElmIHRoZSB0eXBlIGNhc3QgZmFpbHMsIGFuIGVycm9yIGlzIG5vdCBy YWlzZWQuICBJbnN0ZWFkLCBldmFsdWF0aW9uIGZhbGxzCiAgICAgYmFjayB0byB0aGUgZGVmYXVs dCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IHNwZWNpZmllZCBpbiB0aGUK ICAgICA8bGl0ZXJhbD5PTiBDT05WRVJTSU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UuCi0gICAg QXQgcHJlc2VudCwgdGhpcyBvbmx5IHN1cHBvcnQgYnVpbHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4 cmVmIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2FzdCIvPi4KICAgICBVc2VyLWRlZmluZWQgdHlwZSBj YXN0cyBjcmVhdGVkIHdpdGggPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBD QVNUPC9saW5rPgotICAgIGFyZSBub3Qgc3VwcG9ydGVkLgorICAgIGFyZSBzdXBwb3J0ZWQgdG9v LgogICA8L3BhcmE+CiAKICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggNTExOWMy YWNkYTIuLjllZmY5NDFlYWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nh c3QuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtNDgsNyArNDgsOCBA QAogT2JqZWN0QWRkcmVzcwogQ2FzdENyZWF0ZShPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0 dHlwZWlkLAogCQkgICBPaWQgZnVuY2lkLCBPaWQgaW5jYXN0aWQsIE9pZCBvdXRjYXN0aWQsCi0J CSAgIGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgRGVwZW5kZW5jeVR5cGUgYmVo YXZpb3IpCisJCSAgIGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgYm9vbCBjYXN0 ZXJyb3JzYWZlLAorCQkgICBEZXBlbmRlbmN5VHlwZSBiZWhhdmlvcikKIHsKIAlSZWxhdGlvbgly ZWxhdGlvbjsKIAlIZWFwVHVwbGUJdHVwbGU7CkBAIC04NCw2ICs4NSw3IEBAIENhc3RDcmVhdGUo T2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0 X2Nhc3RmdW5jIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1f cGdfY2FzdF9jYXN0Y29udGV4dCAtIDFdID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2 YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RtZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0 aG9kKTsKKwl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXRE YXR1bShjYXN0ZXJyb3JzYWZlKTsKIAogCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9u R2V0RGVzY3IocmVsYXRpb24pLCB2YWx1ZXMsIG51bGxzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5j dGlvbmNtZHMuYwppbmRleCAzYWZkNzYyZTlkYy4uMTA2ZTlmYzIxOTUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Z1bmN0aW9uY21kcy5jCkBAIC0xNjY4LDYgKzE2NjgsMjAgQEAgQ3JlYXRlQ2FzdChDcmVh dGVDYXN0U3RtdCAqc3RtdCkKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9E RUZJTklUSU9OKSwKIAkJCQkJIGVycm1zZygiY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4g YSBzZXQiKSkpOwogCisJCWlmIChzdG10LT5zYWZlKQorCQl7CisJCQlpZiAocHJvY3N0cnVjdC0+ cHJvbGFuZyAhPSBJTlRFUk5BTGxhbmd1YWdlSWQgJiYKKwkJCQlwcm9jc3RydWN0LT5wcm9sYW5n ICE9IENsYW5ndWFnZUlkKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCWVycm1zZygic2FmZSB0eXBlIGNhc3Qg ZnVuY3Rpb25zIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgQyBhbmQgaW50ZXJuYWwgbGFuZ3VhZ2Vz IikpOworCisJCQlpZiAoc291cmNldHlwdHlwZSAhPSBUWVBUWVBFX0JBU0UgfHwgdGFyZ2V0dHlw dHlwZSAhPSBUWVBUWVBFX0JBU0UpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJZXJybXNnKCJzYWZlIHR5cGUg Y2FzdCBpcyBhbGxvd2VkIGZvciBiYXNlIHR5cGUgb25seSBhcmUgb25seSIpKTsKKwkJfQorCiAJ CVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJfQogCWVsc2UKQEAgLTE3OTYsNyArMTgxMCw3IEBA IENyZWF0ZUNhc3QoQ3JlYXRlQ2FzdFN0bXQgKnN0bXQpCiAJfQogCiAJbXlzZWxmID0gQ2FzdENy ZWF0ZShzb3VyY2V0eXBlaWQsIHRhcmdldHR5cGVpZCwgZnVuY2lkLCBpbmNhc3RpZCwgb3V0Y2Fz dGlkLAotCQkJCQkJY2FzdGNvbnRleHQsIGNhc3RtZXRob2QsIERFUEVOREVOQ1lfTk9STUFMKTsK KwkJCQkJCWNhc3Rjb250ZXh0LCBjYXN0bWV0aG9kLCBzdG10LT5zYWZlLCBERVBFTkRFTkNZX05P Uk1BTCk7CiAJcmV0dXJuIG15c2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKaW5kZXgg M2RhYjZiYjVhNzkuLmIzNzEzYjg1MTNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy90eXBlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKQEAgLTE3 NjUsNiArMTc2NSw3IEBAIERlZmluZVJhbmdlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUmFu Z2VTdG10ICpzdG10KQogCS8qIENyZWF0ZSBjYXN0IGZyb20gdGhlIHJhbmdlIHR5cGUgdG8gaXRz IG11bHRpcmFuZ2UgdHlwZSAqLwogCUNhc3RDcmVhdGUodHlwb2lkLCBtdWx0aXJhbmdlT2lkLCBj YXN0RnVuY09pZCwgSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKIAkJCSAgIENPRVJDSU9OX0NPREVf RVhQTElDSVQsIENPRVJDSU9OX01FVEhPRF9GVU5DVElPTiwKKwkJCSAgIGZhbHNlLAogCQkJICAg REVQRU5ERU5DWV9JTlRFUk5BTCk7CiAKIAlwZnJlZShtdWx0aXJhbmdlQXJyYXlOYW1lKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CmluZGV4IDJhYzA0NTY1YWZjLi4zMTRhYjA5MWYwMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0z NTgsNyArMzU4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxkZWZlbHQ+CWRy b3Bfb3B0aW9uCiAldHlwZSA8Ym9vbGVhbj4Jb3B0X29yX3JlcGxhY2Ugb3B0X25vCiAJCQkJb3B0 X2dyYW50X2dyYW50X29wdGlvbgotCQkJCW9wdF9ub3dhaXQgb3B0X2lmX2V4aXN0cyBvcHRfd2l0 aF9kYXRhCisJCQkJb3B0X25vd2FpdCBvcHRfc2FmZSBvcHRfaWZfZXhpc3RzIG9wdF93aXRoX2Rh dGEKIAkJCQlvcHRfdHJhbnNhY3Rpb25fY2hhaW4KICV0eXBlIDxsaXN0PglncmFudF9yb2xlX29w dF9saXN0CiAldHlwZSA8ZGVmZWx0PglncmFudF9yb2xlX29wdApAQCAtODEzLDcgKzgxMyw3IEBA IHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJUkVTRVQgUkVTUEVDVF9QIFJFU1RBUlQgUkVTVFJJ Q1QgUkVUVVJOIFJFVFVSTklORyBSRVRVUk5TIFJFVk9LRSBSSUdIVCBST0xFIFJPTExCQUNLIFJP TExVUAogCVJPVVRJTkUgUk9VVElORVMgUk9XIFJPV1MgUlVMRQogCi0JU0FWRVBPSU5UIFNDQUxB UiBTQ0hFTUEgU0NIRU1BUyBTQ1JPTEwgU0VBUkNIIFNFQ09ORF9QIFNFQ1VSSVRZIFNFTEVDVAor CVNBRkUgU0FWRVBPSU5UIFNDQUxBUiBTQ0hFTUEgU0NIRU1BUyBTQ1JPTEwgU0VBUkNIIFNFQ09O RF9QIFNFQ1VSSVRZIFNFTEVDVAogCVNFUVVFTkNFIFNFUVVFTkNFUwogCVNFUklBTElaQUJMRSBT RVJWRVIgU0VTU0lPTiBTRVNTSU9OX1VTRVIgU0VUIFNFVFMgU0VUT0YgU0hBUkUgU0hPVwogCVNJ TUlMQVIgU0lNUExFIFNLSVAgU01BTExJTlQgU05BUFNIT1QgU09NRSBTUExJVCBTT1VSQ0UgU1FM X1AgU1RBQkxFIFNUQU5EQUxPTkVfUApAQCAtOTQxMSwxNCArOTQxMSwxNSBAQCBkb3N0bXRfb3B0 X2l0ZW06CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0ZUNhc3RTdG10OiBDUkVBVEUg Q0FTVCAnKCcgVHlwZW5hbWUgQVMgVHlwZW5hbWUgJyknCi0JCQkJCVdJVEggRlVOQ1RJT04gZnVu Y3Rpb25fd2l0aF9hcmd0eXBlcyBjYXN0X2NvbnRleHQKKwkJCQkJV0lUSCBvcHRfc2FmZSBGVU5D VElPTiBmdW5jdGlvbl93aXRoX2FyZ3R5cGVzIGNhc3RfY29udGV4dAogCQkJCXsKIAkJCQkJQ3Jl YXRlQ2FzdFN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVDYXN0U3RtdCk7CiAKIAkJCQkJbi0+c291 cmNldHlwZSA9ICQ0OwogCQkJCQluLT50YXJnZXR0eXBlID0gJDY7Ci0JCQkJCW4tPmZ1bmMgPSAk MTA7Ci0JCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250ZXh0KSAkMTE7CisJCQkJCW4tPnNh ZmUgPSAkOTsKKwkJCQkJbi0+ZnVuYyA9ICQxMTsKKwkJCQkJbi0+Y29udGV4dCA9IChDb2VyY2lv bkNvbnRleHQpICQxMjsKIAkJCQkJbi0+aW5vdXQgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KQEAgLTk0MjksNiArOTQzMCw3IEBAIENyZWF0ZUNhc3RTdG10OiBDUkVBVEUg Q0FTVCAnKCcgVHlwZW5hbWUgQVMgVHlwZW5hbWUgJyknCiAKIAkJCQkJbi0+c291cmNldHlwZSA9 ICQ0OwogCQkJCQluLT50YXJnZXR0eXBlID0gJDY7CisJCQkJCW4tPnNhZmUgPSBmYWxzZTsKIAkJ CQkJbi0+ZnVuYyA9IE5VTEw7CiAJCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250ZXh0KSAk MTA7CiAJCQkJCW4tPmlub3V0ID0gZmFsc2U7CkBAIC05NDQxLDYgKzk0NDMsNyBAQCBDcmVhdGVD YXN0U3RtdDogQ1JFQVRFIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJwogCiAJCQkJ CW4tPnNvdXJjZXR5cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2OworCQkJCQluLT5z YWZlID0gZmFsc2U7CiAJCQkJCW4tPmZ1bmMgPSBOVUxMOwogCQkJCQluLT5jb250ZXh0ID0gKENv ZXJjaW9uQ29udGV4dCkgJDEwOwogCQkJCQluLT5pbm91dCA9IHRydWU7CkBAIC05NDUzLDYgKzk0 NTYsOSBAQCBjYXN0X2NvbnRleHQ6ICBBUyBJTVBMSUNJVF9QCQkJCQl7ICQkID0gQ09FUkNJT05f SU1QTElDSVQ7IH0KIAkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBDT0VSQ0lPTl9FWFBMSUNJ VDsgfQogCQk7CiAKK29wdF9zYWZlOiBTQUZFCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJfCAvKkVN UFRZKi8JCQkJCXsgJCQgPSBmYWxzZTsgfQorCQk7CiAKIERyb3BDYXN0U3RtdDogRFJPUCBDQVNU IG9wdF9pZl9leGlzdHMgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJyBvcHRfZHJvcF9iZWhh dmlvcgogCQkJCXsKQEAgLTE4OTg3LDYgKzE4OTkzLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgog CQkJfCBST1VUSU5FUwogCQkJfCBST1dTCiAJCQl8IFJVTEUKKwkJCXwgU0FGRQogCQkJfCBTQVZF UE9JTlQKIAkJCXwgU0NBTEFSCiAJCQl8IFNDSEVNQQpAQCAtMTk2MzYsNiArMTk2NDMsNyBAQCBi YXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFJPVwogCQkJfCBST1dTCiAJCQl8IFJVTEUKKwkJCXwg U0FGRQogCQkJfCBTQVZFUE9JTlQKIAkJCXwgU0NBTEFSCiAJCQl8IFNDSEVNQQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKaW5kZXggMDZjZjFiNzcwZDIuLmJiYzNiYzRhOTdkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKQEAgLTg0LDggKzg0LDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVD YXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKIHN0YXRpYyB2b2lkIENvZXJj aW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhwciwKIAkJ CQkJCQkJICAgTm9kZSAqc291cmNlLCBPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSk7CiBz dGF0aWMgdm9pZCBDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChPaWQgaW5wdXRUeXBlLCBPaWQg dGFyZ2V0VHlwZSwKLQkJCQkJCQkJCSAgIGJvb2wgKmVycm9yc2FmZV9jb2VyY2lvbiwKLQkJCQkJ CQkJCSAgIGJvb2wgKnVzZXJkZWZpbmVkKTsKKwkJCQkJCQkJCSAgIGJvb2wgKmVycm9yc2FmZV9j b2VyY2lvbik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRl ICpwc3RhdGUsIENvbGxhdGVDbGF1c2UgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25P YmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCUpzb25PYmpl Y3RDb25zdHJ1Y3RvciAqY3Rvcik7CkBAIC0yOTQyLDcgKzI5NDEsNiBAQCBDb2VyY2lvbkVycm9y U2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4cHIsIE5vZGUgKnNvdXJj ZSwKIAkJCQkJICAgT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUpCiB7CiAJYm9vbAkJZXJy b3JzYWZlX2NvZXJjaW9uID0gdHJ1ZTsKLQlib29sCQl1c2VyZGVmaW5lZCA9IGZhbHNlOwogCiAJ LyoKIAkgKiBCaW5hcnkgY29lcmNpb24gY2FzdCBpcyBlcnJvci1zYWZlLCBDb2VyY2VWaWFJTyBj YW4gYWxzbyBiZSBldmFsdWF0ZWQKQEAgLTI5NTQsOCArMjk1Miw3IEBAIENvZXJjaW9uRXJyb3JT YWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhwciwgTm9kZSAqc291cmNl LAogCQlyZXR1cm47CiAKIAlDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChpbnB1dFR5cGUsIHRh cmdldFR5cGUsCi0JCQkJCQkJICAgJmVycm9yc2FmZV9jb2VyY2lvbiwKLQkJCQkJCQkgICAmdXNl cmRlZmluZWQpOworCQkJCQkJCSAgICZlcnJvcnNhZmVfY29lcmNpb24pOwogCiAJaWYgKCFlcnJv cnNhZmVfY29lcmNpb24pCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0yOTY1LDE1ICsyOTYyLDEzIEBA IENvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhw ciwgTm9kZSAqc291cmNlLAogCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSwKIAkJ CQkJICAgIkRFRkFVTFQiLAogCQkJCQkgICAiQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiIp LAotCQkJCXVzZXJkZWZpbmVkCi0JCQkJPyBlcnJoaW50KCJTYWZlIHR5cGUgY2FzdCBmb3IgdXNl ci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4iKQotCQkJCTogZXJyaGludCgi RXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZl LiIpLAorCQkJCWVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlv biBpcyBub3QgZXJyb3Igc2FmZS4iKSwKIAkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBl eHByTG9jYXRpb24oc291cmNlKSkpOwogfQogCiBzdGF0aWMgdm9pZAogQ29lcmNpb25FcnJvclNh ZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUsCi0JCQkJCQkgICBib29s ICplcnJvcnNhZmVfY29lcmNpb24sIGJvb2wgKnVzZXJkZWZpbmVkKQorCQkJCQkJICAgYm9vbCAq ZXJyb3JzYWZlX2NvZXJjaW9uKQogewogCUhlYXBUdXBsZQl0dXBsZTsKIApAQCAtMjk4NCw3ICsy OTc5LDYgQEAgQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRh cmdldFR5cGUsCiAJY2hlY2tfc3RhY2tfZGVwdGgoKTsKIAogCUFzc2VydChlcnJvcnNhZmVfY29l cmNpb24gIT0gTlVMTCk7Ci0JQXNzZXJ0KHVzZXJkZWZpbmVkICE9IE5VTEwpOwogCiAJaWYgKCEo KmVycm9yc2FmZV9jb2VyY2lvbikpCiAJCXJldHVybjsKQEAgLTI5OTQsMjQgKzI5ODgsMjEgQEAg Q29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUs CiAJewogCQlDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChnZXRCYXNlVHlwZShpbnB1dFR5cGUp LAogCQkJCQkJCQkgICBnZXRCYXNlVHlwZSh0YXJnZXRUeXBlKSwKLQkJCQkJCQkJICAgZXJyb3Jz YWZlX2NvZXJjaW9uLAotCQkJCQkJCQkgICB1c2VyZGVmaW5lZCk7CisJCQkJCQkJCSAgIGVycm9y c2FmZV9jb2VyY2lvbik7CiAJCXJldHVybjsKIAl9CiAJZWxzZSBpZiAoaW5wdXRfdHlwdHlwZSA9 PSBUWVBUWVBFX0RPTUFJTikKIAl7CiAJCUNvZXJjaW9uRXJyb3JTYWZlX0ludGVybmFsKGdldEJh c2VUeXBlKGlucHV0VHlwZSksCiAJCQkJCQkJCSAgIHRhcmdldFR5cGUsCi0JCQkJCQkJCSAgIGVy cm9yc2FmZV9jb2VyY2lvbiwKLQkJCQkJCQkJICAgdXNlcmRlZmluZWQpOworCQkJCQkJCQkgICBl cnJvcnNhZmVfY29lcmNpb24pOwogCQlyZXR1cm47CiAJfQogCWVsc2UgaWYgKHRhcmdldF90eXB0 eXBlID09IFRZUFRZUEVfRE9NQUlOKQogCXsKIAkJQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwo aW5wdXRUeXBlLAogCQkJCQkJCQkgICBnZXRCYXNlVHlwZSh0YXJnZXRUeXBlKSwKLQkJCQkJCQkJ ICAgZXJyb3JzYWZlX2NvZXJjaW9uLAotCQkJCQkJCQkgICB1c2VyZGVmaW5lZCk7CisJCQkJCQkJ CSAgIGVycm9yc2FmZV9jb2VyY2lvbik7CiAJCXJldHVybjsKIAl9CiAJZWxzZSBpZiAoKGlucHV0 X3R5cHR5cGUgIT0gVFlQVFlQRV9CQVNFICYmIGlucHV0X3R5cHR5cGUgIT0gVFlQVFlQRV9QU0VV RE8gJiYgaW5wdXRUeXBlID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQpAQCAtMzA0NSw4ICszMDM2 LDcgQEAgQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdl dFR5cGUsCiAJCQkvKiByZWN1cnNlIGludG8gYXJyYXkgZWxlbWVudCB0eXBlICovCiAJCQlDb2Vy Y2lvbkVycm9yU2FmZV9JbnRlcm5hbChpbnB1dF90eXBlbGVtLAogCQkJCQkJCQkJICAgdGFyZ2V0 X3R5cGVsZW0sCi0JCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24sCi0JCQkJCQkJCQkgICB1 c2VyZGVmaW5lZCk7CisJCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24pOwogCQkJcmV0dXJu OwogCQl9CiAJfQpAQCAtMzA3OCwxNSArMzA2OCwxMyBAQCBDb2VyY2lvbkVycm9yU2FmZV9JbnRl cm5hbChPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSwKIAkJewogCQkJRm9ybV9wZ19jYXN0 IGNhc3RGb3JtID0gKEZvcm1fcGdfY2FzdCkgR0VUU1RSVUNUKHR1cGxlKTsKIAotCQkJaWYgKGNh c3RGb3JtLT5jYXN0ZnVuYyA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCkKKwkJCWlmIChjYXN0Rm9y bS0+Y2FzdG1ldGhvZCAhPSBDT0VSQ0lPTl9NRVRIT0RfQklOQVJZICYmCisJCQkJIWNhc3RGb3Jt LT5jYXN0ZXJyb3JzYWZlKQogCQkJewogCQkJCSplcnJvcnNhZmVfY29lcmNpb24gPSBmYWxzZTsK LQkJCQkqdXNlcmRlZmluZWQgPSB0cnVlOwogCQkJfQogCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxl KTsKIAkJfQotCQllbHNlIGlmIChpbnB1dFR5cGUgPiBGaXJzdFVucGlubmVkT2JqZWN0SWQgJiYg dGFyZ2V0VHlwZSA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCkKLQkJCSplcnJvcnNhZmVfY29lcmNp b24gPSBmYWxzZTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y2FzdC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CmluZGV4IGE3YjZkODEy YzVhLi5hYmI2NWRkZDUxNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0 LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CkBAIC0xOSw2NSArMTks NjUgQEAKICMgaW50Mi0+aW50NC0+aW50OC0+bnVtZXJpYy0+ZmxvYXQ0LT5mbG9hdDgsIHdoaWxl IGNhc3RzIGluIHRoZQogIyByZXZlcnNlIGRpcmVjdGlvbiBhcmUgYXNzaWdubWVudC1vbmx5Lgog eyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ ICdpbnQyKGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICdpbnQ0KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdl dCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChpbnQ4KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgoaW50OCkn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMg PT4gJ251bWVyaWMoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdp bnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMg PT4gJ2Zsb2F0OChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ251 bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcs IGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChpbnQ0KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ0 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5j ID0+ICdmbG9hdDQoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0Jywg Y2FzdHRhcmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2lu dDgoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50Mics IGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9hdDQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGZs b2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLAot ICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4g J2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ4KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zs b2F0NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1l cmljJywKLSAgY2FzdGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ4KScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ4KScs IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4Jywg Y2FzdGZ1bmMgPT4gJ2ludDgobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIobnVtZXJpYyknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQobnVt ZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLAot ICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsCi0gIGNh c3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdtb25leScsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9 PiAnbnVtZXJpYyhtb25leSknLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdtb25leScs IGNhc3RmdW5jID0+ICdtb25leShudW1lcmljKScsCkBAIC04OSwxMyArODksMTMgQEAKIAogIyBB bGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBpbnQ0IGFuZCBib29sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woaW50 NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJ2ludDQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4geGlkOCBh bmQgeGlkCiB7IGNhc3Rzb3VyY2UgPT4gJ3hpZDgnLCBjYXN0dGFyZ2V0ID0+ICd4aWQnLCBjYXN0 ZnVuYyA9PiAneGlkKHhpZDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogCiAjIE9JRCBjYXRlZ29yeTogYWxsb3cgaW1wbGljaXQgY29udmVy c2lvbiBmcm9tIGFueSBpbnRlZ3JhbCB0eXBlIChpbmNsdWRpbmcKICMgaW50OCwgdG8gc3VwcG9y dCBPSUQgbGl0ZXJhbHMgPiAyRykgdG8gT0lELCBhcyB3ZWxsIGFzIGFzc2lnbm1lbnQgY29lcmNp b24KQEAgLTEwNiwxMyArMTA2LDEzIEBACiAjIGNhc3RzIGZyb20gdGV4dCBhbmQgdmFyY2hhciB0 byByZWdjbGFzcywgd2hpY2ggZXhpc3QgbWFpbmx5IHRvIHN1cHBvcnQKICMgbGVnYWN5IGZvcm1z IG9mIG5leHR2YWwoKSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMuCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDgnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywK QEAgLTEyMCwxMyArMTIwLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFy Z2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4g J3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRh cmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVu YyA9PiAnMCcsCkBAIC0xMzgsMTMgKzEzOCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9j ZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcs IGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAn aW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2Nl ZHVyZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvY2Vk dXJlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBj YXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTUyLDEzICsxNTIs MTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3Rm dW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVy JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFy Z2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn b3BlcicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3Bl cicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTcw LDEzICsxNzAsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0dGFyZ2V0 ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0 YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAn aW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ2lu dDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3Mn LCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xODQsMTMgKzE4NCwxMyBAQAogeyBjYXN0c291cmNlID0+ ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnaW50 NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNh c3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdl dCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdy ZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xOTgsMTMgKzE5OCwxMyBAQAogeyBj YXN0c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3Rm dW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4g JzAnLApAQCAtMjEyLDEzICsyMTIsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVndHlwZScsIGNh c3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdl dCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lk KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVndHlwZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMg PT4gJzAnLApAQCAtMjI2LDEzICsyMjYsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmln JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnZGlj dGlvbmFyeScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI0MCwzMSArMjQwLDMxIEBACiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVu YyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlv bmFyeScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2Fz dHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0 aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5j ID0+ICdyZWdjbGFzcycsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0 dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2Fz dHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5j ID0+ICcwJywKQEAgLTI3MiwxMyArMjcyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVz cGFjZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4Jywg Y2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdp bnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNw YWNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4g J2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3Bh Y2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjg2LDEzICsy ODYsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdv aWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFi YXNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQg PT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChv aWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIApAQCAtMzE2LDYzICszMTYsNjMgQEAKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0 YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRh cmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChicGNo YXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4g J3RleHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXIn LCBjYXN0ZnVuYyA9PiAnYnBjaGFyKGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRh cmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGNoYXIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICduYW1lJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KG5hbWUpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4g J2JwY2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNo YXInLCBjYXN0ZnVuYyA9PiAndmFyY2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNh c3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5j ID0+ICdjaGFyKHRleHQpJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3Rm dW5jID0+ICduYW1lKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hh cicsIGNhc3R0YXJnZXQgPT4gJ25hbWUnLCBjYXN0ZnVuYyA9PiAnbmFtZSh2YXJjaGFyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBB bGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBieXRlYSBhbmQgaW50ZWdlciB0eXBlcwog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9 PiAnYnl0ZWEoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdieXRl YScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0 YXJnZXQgPT4gJ2J5dGVhJywgY2FzdGZ1bmMgPT4gJ2J5dGVhKGludDgpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihieXRlYSkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ ICdpbnQ0KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4 JywgY2FzdGZ1bmMgPT4gJ2ludDgoYnl0ZWEpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn LCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBi ZXR3ZWVuIGJ5dGVhIGFuZCB1dWlkIHR5cGUKIHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0 dGFyZ2V0ID0+ICd1dWlkJywgY2FzdGZ1bmMgPT4gJ3V1aWQoYnl0ZWEpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd1dWlkJywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEodXVpZCkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAK ICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgImNoYXIiCiB7IGNh c3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2lu dDQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdjaGFyJywgY2Fz dGZ1bmMgPT4gJ2NoYXIoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcGdfbm9kZV90cmVlIGNhbiBiZSBjb2VyY2VkIHRvLCBi dXQgbm90IGZyb20sIHRleHQKIHsgY2FzdHNvdXJjZSA9PiAncGdfbm9kZV90cmVlJywgY2FzdHRh cmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTM5OCw3MyArMzk4LDczIEBACiAK ICMgRGF0ZXRpbWUgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNhc3R0YXJnZXQg PT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3Rh bXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAn dGltZXN0YW1wdHonLAotICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3Rh bXB0eihkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWUnLCBjYXN0dGFyZ2V0ID0+ ICdpbnRlcnZhbCcsIGNhc3RmdW5jID0+ICdpbnRlcnZhbCh0aW1lKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn dGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZSkn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0 ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZScsCi0gIGNhc3RmdW5j ID0+ICd0aW1lKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCi0gIGNhc3Rm dW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHoodGltZXN0YW1wKScs IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAnZGF0 ZScsCi0gIGNhc3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wdHop JywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICd0 aW1lJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXB0 eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4g J3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0YW1wdHopJywgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGlt ZXN0YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6 JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lc3Rh bXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rm dW5jID0+ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 ZXJ2YWwnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUoaW50ZXJ2YWwp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMg PT4gJ3RpbWUodGltZXR6KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIAogIyBHZW9tZXRyaWMgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAn cG9pbnQnLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KHBvaW50KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbHNlZycsIGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3Bv aW50KGxzZWcpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwYXRoJywgY2FzdHRhcmdldCA9PiAncG9seWdvbics IGNhc3RmdW5jID0+ICdwb2x5Z29uKHBhdGgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFy Z2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChib3gpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdi b3gnLCBjYXN0dGFyZ2V0ID0+ICdsc2VnJywgY2FzdGZ1bmMgPT4gJ2xzZWcoYm94KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNhc3RmdW5jID0+ICdwb2x5 Z29uKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScsIGNh c3RmdW5jID0+ICdjaXJjbGUoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJn ZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KHBvbHlnb24pJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAncGF0aCcsIGNhc3RmdW5jID0+ICdwYXRoJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2Jv eChwb2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ2NpcmNs ZScsCi0gIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNh c3RmdW5jID0+ICdwb2ludChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFy Z2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KGNpcmNsZSknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Np cmNsZScsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLAotICBjYXN0ZnVuYyA9PiAncG9seWdvbihj aXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 ZnVuYyA9PiAncG9seWdvbihjaXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJ30sCiAKICMgTUFDIGFkZHJlc3MgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnbWFj YWRkcicsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHI4JywgY2FzdGZ1bmMgPT4gJ21hY2FkZHI4JywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdtYWNhZGRyOCcsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHInLCBjYXN0ZnVu YyA9PiAnbWFjYWRkcicsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIAogIyBJTkVUIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBj YXN0dGFyZ2V0ID0+ICdpbmV0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFy Z2V0ID0+ICdjaWRyJywgY2FzdGZ1bmMgPT4gJ2NpZHInLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQml0U3RyaW5nIGNhdGVnb3J5CiB7 IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmJpdCcsIGNhc3RmdW5jID0+ ICcwJywKQEAgLTQ3NCwxMyArNDc0LDEzIEBACiAKICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgYmV0 d2VlbiBiaXQgYW5kIGludDQsIGludDgKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50OCxpbnQ0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50NCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50NCxpbnQ0KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYml0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KGJpdCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0 ZnVuYyA9PiAnaW50NChiaXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIFRF WFQKICMgV2UgbmVlZCBlbnRyaWVzIGhlcmUgb25seSBmb3IgYSBmZXcgc3BlY2lhbGl6ZWQgY2Fz ZXMgd2hlcmUgdGhlIGJlaGF2aW9yCkBAIC00OTEsNjggKzQ5MSw2OCBAQAogIyBiZWhhdmlvciB3 aWxsIGVuc3VlIHdoZW4gdGhlIGF1dG9tYXRpYyBjYXN0IGlzIGFwcGxpZWQgaW5zdGVhZCBvZiB0 aGUKICMgcGdfY2FzdCBlbnRyeSEKIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQg PT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcs IGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChib29s KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAneG1sJywgY2FzdGZ1bmMgPT4gJ3htbCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAog IyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQg YWxsIHRoZSBzYW1lIGNhc3RzIGFzIGZvciBURVhULgogeyBjYXN0c291cmNlID0+ICdjaWRyJywg Y2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0 KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdib29sJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNh c3RmdW5jID0+ICd0ZXh0KGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBm cm9tIEJQQ0hBUgogIyBXZSBzdXBwb3J0IGFsbCB0aGUgc2FtZSBjYXN0cyBhcyBmb3IgVEVYVC4K IHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5j ID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAnYnBj aGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0 dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAneG1sJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jw Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgTGVuZ3RoLWNv ZXJjaW9uIGZ1bmN0aW9ucwogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ ICdicGNoYXInLAogICBjYXN0ZnVuYyA9PiAnYnBjaGFyKGJwY2hhcixpbnQ0LGJvb2wpJywgY2Fz dGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcics IGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2YXJjaGFy LGludDQsYm9vbCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKHRp bWUsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWVz dGFtcCcsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0YW1wLGludDQpJywgY2FzdGNv bnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHon LCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0 eih0aW1lc3RhbXB0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLAogICBj YXN0ZnVuYyA9PiAnaW50ZXJ2YWwoaW50ZXJ2YWwsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScs Ci0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBjYXN0dGFyZ2V0ID0+ICd0 aW1ldHonLAotICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWV0eixpbnQ0KScsIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1l dHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdi aXQnLCBjYXN0ZnVuYyA9PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJi aXQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAndmFyYml0JywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ ICdudW1lcmljKG51bWVyaWMsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKG51bWVyaWMsaW50NCknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog CiAjIGpzb24gdG8vZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdqc29uJywgY2FzdHRhcmdl dCA9PiAnanNvbmInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NjIsMzYgKzU2MiwzNiBAQAogCiAj IGpzb25iIHRvIG51bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmIn LCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woanNvbmIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVt ZXJpYyhqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnaW50Mics IGNhc3RmdW5jID0+ICdpbnQyKGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdq c29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChqc29uYiknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4g J2Zsb2F0NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnZmxv YXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcmFuZ2UgdG8gbXVsdGlyYW5nZQog eyBjYXN0c291cmNlID0+ICdpbnQ0cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0bXVsdGlyYW5n ZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UpJywgY2FzdGNvbnRl eHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OHJhbmdlJywgY2Fz dHRhcmdldCA9PiAnaW50OG11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAnaW50OG11bHRpcmFu Z2UoaW50OHJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9PiAnbnVtbXVsdGlyYW5nZScsCiAgIGNh c3RmdW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywK LSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2RhdGVyYW5nZScsIGNhc3R0YXJnZXQgPT4g J2RhdGVtdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ2RhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0 c3JhbmdlJywgY2FzdHRhcmdldCA9PiAndHNtdWx0aXJhbmdlJywKLSAgY2FzdGZ1bmMgPT4gJ3Rz bXVsdGlyYW5nZSh0c3JhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RzbXVsdGlyYW5nZSh0c3JhbmdlKScsIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzdHptdWx0aXJhbmdlJywK ICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSknLCBjYXN0Y29udGV4dCA9 PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jYXN0LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaAppbmRleCBkODEzMTQ5NDZl ZS4uNmRlZGVkM2UwNGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCkBAIC00OSw2ICs0OSwxMCBAQCBD QVRBTE9HKHBnX2Nhc3QsMjYwNSxDYXN0UmVsYXRpb25JZCkKIAogCS8qIGNhc3QgbWV0aG9kICov CiAJY2hhcgkJY2FzdG1ldGhvZDsKKworCS8qIGNhc3QgZnVuY3Rpb24gZXJyb3Igc2FmZSAqLwor CWJvb2wJCWNhc3RlcnJvcnNhZmUgQktJX0RFRkFVTFQoZik7CisKIH0gRm9ybURhdGFfcGdfY2Fz dDsKIAogRU5EX0NBVEFMT0dfU1RSVUNUCkBAIC0xMDUsNiArMTA5LDcgQEAgZXh0ZXJuIE9iamVj dEFkZHJlc3MgQ2FzdENyZWF0ZShPaWQgc291cmNldHlwZWlkLAogCQkJCQkJCQlPaWQgb3V0Y2Fz dGlkLAogCQkJCQkJCQljaGFyIGNhc3Rjb250ZXh0LAogCQkJCQkJCQljaGFyIGNhc3RtZXRob2Qs CisJCQkJCQkJCWJvb2wgY2FzdGVycm9yc2FmZSwKIAkJCQkJCQkJRGVwZW5kZW5jeVR5cGUgYmVo YXZpb3IpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfQ0FTVF9IICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggYmEyN2UwYTcxNGIuLjllZDZlMjlhZjAzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC00MjQyLDYgKzQyNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVDYXN0U3RtdAogCU9i amVjdFdpdGhBcmdzICpmdW5jOwogCUNvZXJjaW9uQ29udGV4dCBjb250ZXh0OwogCWJvb2wJCWlu b3V0OworCWJvb2wJCXNhZmU7CiB9IENyZWF0ZUNhc3RTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggYjdkZWQ2ZTYwODguLjgxNmUyNzdiNjdhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCkBAIC00MDYsNiArNDA2LDcgQEAgUEdfS0VZV09SRCgicm91dGluZXMi LCBST1VUSU5FUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi cm93IiwgUk9XLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicm93 cyIsIFJPV1MsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJ1 bGUiLCBSVUxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJz YWZlIiwgU0FGRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi c2F2ZXBvaW50IiwgU0FWRVBPSU5ULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJzY2FsYXIiLCBTQ0FMQVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInNjaGVtYSIsIFNDSEVNQSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2Fz dC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAppbmRleCA2 OGU2OWQxYzU4NC4uYjNjN2Q2MmU1MjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3Jl YXRlX2Nhc3Qub3V0CkBAIC04MSw2ICs4MSwxMiBAQCBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRv IGNhc3QgZnJvbSBpbnRlZ2VyIHRvIGNhc3R0ZXN0dHlwZQogLS0gVHJ5IGl0IHdpdGggYSBmdW5j dGlvbiB0aGF0IHJlcXVpcmVzIGFuIGltcGxpY2l0IGNhc3QKIENSRUFURSBGVU5DVElPTiBiYXJf aW50NF90ZXh0KGludDQpIFJFVFVSTlMgdGV4dCBMQU5HVUFHRSBTUUwgQVMKICQkIFNFTEVDVCAo J2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKK0NSRUFURSBGVU5DVElPTiBiYXJfaW50NF90 ZXh0X3BscGcoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdFIHBscGdzcWwgQVMKKyQkIEJFR0lO IFJFVFVSTiAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyBFTkQgJCQ7CitDUkVBVEUgQ0FTVCAo aW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGlu dDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgorRVJST1I6ICBzYWZlIHR5cGUgY2FzdCBmdW5jdGlv bnMgYXJlIG9ubHkgc3VwcG9ydGVkIGZvciBDIGFuZCBpbnRlcm5hbCBsYW5ndWFnZXMKK0NSRUFU RSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBTQUZFIEZVTkNUSU9OIGJhcl9pbnQ0 X3RleHRfcGxwZyhpbnQ0KSBBUyBJTVBMSUNJVDsgLS0gZXJyb3IKK0VSUk9SOiAgc2FmZSB0eXBl IGNhc3QgZnVuY3Rpb25zIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgQyBhbmQgaW50ZXJuYWwgbGFu Z3VhZ2VzCiBDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggRlVOQ1RJT04g YmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJTVBMSUNJVDsKIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0 dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogIGNhc3R0ZXN0dHlwZSAKQEAgLTkyLDcgKzk4 LDcgQEAgU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnIKIEVSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBp bnRlZ2VyIHRvIGNhc3R0ZXN0dHlwZSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZp ZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgogTElORSAxOiBTRUxFQ1QgQ0FTVCgx MjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkUuLi4KICAgICAg ICAgICAgICAgICAgICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0IGZvciB1c2VyLWRlZmluZWQg dHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVm aW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZS4KIC0tIGNoZWNrIGRlcGVuZGVu Y2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3Np ZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJl ZmNsYXNzaWQsIHJlZm9iamlkLCByZWZvYmpzdWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggNmZmNGQ3ZWU5MDEuLjk5NDNhNDE5Njk1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTk1MCw4ICs5 NTAsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSAwIE9S IGNhc3R0YXJnZXQgPSAwIE9SIGNhc3Rjb250ZXh0IE5PVCBJTiAoJ2UnLCAnYScsICdpJykKICAg ICBPUiBjYXN0bWV0aG9kIE5PVCBJTiAoJ2YnLCAnYicgLCdpJyk7Ci0gb2lkIHwgY2FzdHNvdXJj ZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gQ2hlY2sgdGhhdCBjYXN0ZnVuYyBpcyBub256 ZXJvIG9ubHkgZm9yIGNhc3QgbWV0aG9kcyB0aGF0IG5lZWQgYSBmdW5jdGlvbiwKQEAgLTk2MCw4 ICs5NjAsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIChjYXN0bWV0aG9kID0g J2YnIEFORCBjYXN0ZnVuYyA9IDApCiAgICBPUiAoY2FzdG1ldGhvZCBJTiAoJ2InLCAnaScpIEFO RCBjYXN0ZnVuYyA8PiAwKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3Rm dW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2Fz dHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dz KQogCiAtLSBMb29rIGZvciBjYXN0cyB0by9mcm9tIHRoZSBzYW1lIHR5cGUgdGhhdCBhcmVuJ3Qg bGVuZ3RoIGNvZXJjaW9uIGZ1bmN0aW9ucy4KQEAgLTk3MCwxNSArOTcwLDE1IEBAIFdIRVJFIChj YXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9IDApCiBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0 IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSBjYXN0dGFyZ2V0IEFORCBjYXN0ZnVuYyA9IDA7Ci0gb2lk IHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2Fz dG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgogRlJPTSBw Z19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORCBwLnByb25h cmdzIDwgMiBBTkQgY2FzdHNvdXJjZSA9IGNhc3R0YXJnZXQ7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0 Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgY2FzdCBmdW5jdGlvbnMgdGhhdCBk b24ndCBoYXZlIHRoZSByaWdodCBzaWduYXR1cmUuICBUaGUKQEAgLTk5Niw4ICs5OTYsOCBAQCBX SEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgICAgICAgICAgT1IgKGMuY2FzdHNvdXJj ZSA9ICdjaGFyYWN0ZXInOjpyZWd0eXBlIEFORAogICAgICAgICAgICAgICAgICBwLnByb2FyZ3R5 cGVzWzBdID0gJ3RleHQnOjpyZWd0eXBlKSkKICAgICAgT1IgTk9UIGJpbmFyeV9jb2VyY2libGUo cC5wcm9yZXR0eXBlLCBjLmNhc3R0YXJnZXQpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Cisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0 IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4qCkBAIC0xMDA1LDggKzEwMDUsOCBAQCBGUk9NIHBn X2Nhc3QgYywgcGdfcHJvYyBwCiBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgKChw LnByb25hcmdzID4gMSBBTkQgcC5wcm9hcmd0eXBlc1sxXSAhPSAnaW50NCc6OnJlZ3R5cGUpIE9S CiAgICAgIChwLnByb25hcmdzID4gMiBBTkQgcC5wcm9hcmd0eXBlc1syXSAhPSAnYm9vbCc6OnJl Z3R5cGUpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2Fz dGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3Rl cnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBM b29rIGZvciBiaW5hcnkgY29tcGF0aWJsZSBjYXN0cyB0aGF0IGRvIG5vdCBoYXZlIHRoZSByZXZl cnNlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKaW5kZXggMGExNWE3OTVkODcuLjMw YTBmZjA3N2M5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02MCw2ICs2 MCwxMSBAQCBEUk9QIEZVTkNUSU9OIGludDRfY2FzdHRlc3R0eXBlKGludDQpIENBU0NBREU7CiBD UkVBVEUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0Ug U1FMIEFTCiAkJCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CiAKK0NSRUFU RSBGVU5DVElPTiBiYXJfaW50NF90ZXh0X3BscGcoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdF IHBscGdzcWwgQVMKKyQkIEJFR0lOIFJFVFVSTiAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyBF TkQgJCQ7CisKK0NSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBTQUZFIEZV TkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCitDUkVBVEUg Q0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90 ZXh0X3BscGcoaW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCiBDUkVBVEUgQ0FTVCAoaW50NCBB UyBjYXN0dGVzdHR5cGUpIFdJVEggRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJTVBM SUNJVDsKIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5v dwogU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0021-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v23-0021-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7c12 RnJvbSAyNTlmOWI5ZDY1ZmI3YTUzMjc3YmQyODk1Y2M1MzVmYzg2MjVjYjNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTk6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAyMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBnZW9tZXRyeSBkYXRhIHR5cGUKCnNlbGVj dCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBwcC5wcm9zcmMKZnJv bSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYwpqb2lu IHBnX3R5cGUgcHQgb24gcHQub2lkID0gY2FzdHNvdXJjZQpqb2luIHBnX3R5cGUgcHQxIG9uIHB0 MS5vaWQgPSBjYXN0dGFyZ2V0CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kICBwdC50eXBhcnJheSA8 PiAwCmFuZCBwdC50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQg cHQxLnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCAocHQudHlw Y2F0ZWdvcnkgID0gJ0cnIG9yIHB0MS50eXBjYXRlZ29yeSAgPSAnRycpCm9yZGVyIGJ5IGNhc3Rz b3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCAgICBwcm9zcmMKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KIHBvaW50ICAgICAgfCBib3ggICAgICAgIHwgcG9pbnRfYm94CiBsc2VnICAgICAgIHwgcG9p bnQgICAgICB8IGxzZWdfY2VudGVyCiBwYXRoICAgICAgIHwgcG9seWdvbiAgICB8IHBhdGhfcG9s eQogYm94ICAgICAgICB8IHBvaW50ICAgICAgfCBib3hfY2VudGVyCiBib3ggICAgICAgIHwgbHNl ZyAgICAgICB8IGJveF9kaWFnb25hbAogYm94ICAgICAgICB8IHBvbHlnb24gICAgfCBib3hfcG9s eQogYm94ICAgICAgICB8IGNpcmNsZSAgICAgfCBib3hfY2lyY2xlCiBwb2x5Z29uICAgIHwgcG9p bnQgICAgICB8IHBvbHlfY2VudGVyCiBwb2x5Z29uICAgIHwgcGF0aCAgICAgICB8IHBvbHlfcGF0 aAogcG9seWdvbiAgICB8IGJveCAgICAgICAgfCBwb2x5X2JveAogcG9seWdvbiAgICB8IGNpcmNs ZSAgICAgfCBwb2x5X2NpcmNsZQogY2lyY2xlICAgICB8IHBvaW50ICAgICAgfCBjaXJjbGVfY2Vu dGVyCiBjaXJjbGUgICAgIHwgYm94ICAgICAgICB8IGNpcmNsZV9ib3gKIGNpcmNsZSAgICAgfCBw b2x5Z29uICAgIHwKKDE0IHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IHBvaW50X2JveCwgYm94 X2RpYWdvbmFsLCBib3hfcG9seSwgcG9seV9wYXRoLCBwb2x5X2JveCwgY2lyY2xlX2NlbnRlci4K VGhpcyBwYXRjaCBtYWtlIHRoZXNlIGZ1bmN0aW9ucyBlcnJvciBzYWZlOiBsc2VnX2NlbnRlciwg cGF0aF9wb2x5LCBib3hfY2VudGVyLApib3hfY2lyY2xlLCBwb2x5X2NlbnRlciwgcG9seV9jaXJj bGUsIGNpcmNsZV9ib3guCgpGdW5jdGlvbiB0aGF0IGNhc3RpbmcgdHlwZSBjaXJjbGUgdG8gdHlw ZSBwb2x5Z29uIGNhbm5vdCBiZSBlcnJvciBzYWZlLCBiZWNhdXNlCml0J3MgYSBTUUwgbGFuZ3Vh Z2UgZnVuY3Rpb24uCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogQ29yZXkg SHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jl c3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYyB8 IDIwMyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2 MCBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvZ2VvX29wcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwpp bmRleCAzNTBlODZmNjM3Ny4uYTU5ZjFjYWJjNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9nZW9fb3BzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwpA QCAtNzcsNyArNzcsOCBAQCBlbnVtIHBhdGhfZGVsaW0KIAogLyogUm91dGluZXMgZm9yIHBvaW50 cyAqLwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2NvbnN0cnVjdChQb2ludCAqcmVzdWx0LCBm bG9hdDggeCwgZmxvYXQ4IHkpOwotc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2FkZF9wb2ludChQ b2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKK3N0YXRpYyBpbmxpbmUgdm9p ZCBwb2ludF9hZGRfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwK KwkJCQkJCQkJICAgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9z dWJfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMg aW5saW5lIHZvaWQgcG9pbnRfbXVsX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2Rpdl9wb2ludChQb2ludCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKQEAgLTEwOCw3ICsxMDksNyBAQCBzdGF0aWMg ZmxvYXQ4IGxzZWdfY2xvc2VwdF9sc2VnKFBvaW50ICpyZXN1bHQsIExTRUcgKm9uX2xzZWcsIExT RUcgKnRvX2xzZWcpOwogCiAvKiBSb3V0aW5lcyBmb3IgYm94ZXMgKi8KIHN0YXRpYyBpbmxpbmUg dm9pZCBib3hfY29uc3RydWN0KEJPWCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsK LXN0YXRpYyB2b2lkIGJveF9jbihQb2ludCAqY2VudGVyLCBCT1ggKmJveCk7CitzdGF0aWMgYm9v bCBib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0 aWMgYm9vbCBib3hfb3YoQk9YICpib3gxLCBCT1ggKmJveDIpOwogc3RhdGljIGZsb2F0OCBib3hf YXIoQk9YICpib3gpOwogc3RhdGljIGZsb2F0OCBib3hfaHQoQk9YICpib3gpOwpAQCAtMTI1LDcg KzEyNiw3IEBAIHN0YXRpYyBmbG9hdDggY2lyY2xlX2FyKENJUkNMRSAqY2lyY2xlKTsKIAogLyog Um91dGluZXMgZm9yIHBvbHlnb25zICovCiBzdGF0aWMgdm9pZCBtYWtlX2JvdW5kX2JveChQT0xZ R09OICpwb2x5KTsKLXN0YXRpYyB2b2lkIHBvbHlfdG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0LCBQ T0xZR09OICpwb2x5KTsKK3N0YXRpYyBib29sIHBvbHlfdG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0 LCBQT0xZR09OICpwb2x5LCBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGJvb2wgbHNlZ19pbnNp ZGVfcG9seShQb2ludCAqYSwgUG9pbnQgKmIsIFBPTFlHT04gKnBvbHksIGludCBzdGFydCk7CiBz dGF0aWMgYm9vbCBwb2x5X2NvbnRhaW5fcG9seShQT0xZR09OICpjb250YWluc19wb2x5LCBQT0xZ R09OICpjb250YWluZWRfcG9seSk7CiBzdGF0aWMgYm9vbCBwbGlzdF9zYW1lKGludCBucHRzLCBQ b2ludCAqcDEsIFBvaW50ICpwMik7CkBAIC04MzYsOCArODM3LDggQEAgYm94X2Rpc3RhbmNlKFBH X0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJCWEsCiAJCQkJYjsKIAotCWJveF9jbigmYSwgYm94MSk7 Ci0JYm94X2NuKCZiLCBib3gyKTsKKwkodm9pZCkgYm94X2NuKCZhLCBib3gxLCBOVUxMKTsKKwko dm9pZCkgYm94X2NuKCZiLCBib3gyLCBOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRf ZHQoJmEsICZiLCBOVUxMKSk7CiB9CkBAIC04NTEsNyArODUyLDggQEAgYm94X2NlbnRlcihQR19G VU5DVElPTl9BUkdTKQogCUJPWAkJICAgKmJveCA9IFBHX0dFVEFSR19CT1hfUCgwKTsKIAlQb2lu dAkgICAqcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlib3hfY24ocmVzdWx0LCBi b3gpOworCWlmICghYm94X2NuKHJlc3VsdCwgYm94LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19S RVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1BPSU5UX1AocmVzdWx0KTsKIH0KQEAgLTg2OCwx NCArODcwLDMxIEBAIGJveF9hcihCT1ggKmJveCkKIAogLyoJCWJveF9jbgktCQlzdG9yZXMgdGhl IGNlbnRlcnBvaW50IG9mIHRoZSBib3ggaW50byAqY2VudGVyLgogICovCi1zdGF0aWMgdm9pZAot Ym94X2NuKFBvaW50ICpjZW50ZXIsIEJPWCAqYm94KQorc3RhdGljIGJvb2wKK2JveF9jbihQb2lu dCAqY2VudGVyLCBCT1ggKmJveCwgTm9kZSAqZXNjb250ZXh0KQogewotCWNlbnRlci0+eCA9IGZs b2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4wKTsKLQljZW50 ZXItPnkgPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueSwgYm94LT5sb3cueSksIDIu MCk7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKKworCXggPSBmbG9hdDhfcGxfc2FmZShib3gt PmhpZ2gueCwgYm94LT5sb3cueCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwljZW50ZXItPnggPSBmbG9hdDhfZGl2 X3NhZmUoeCwgMi4wLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29u dGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhpZ2gu eSwgYm94LT5sb3cueSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2Nv bnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwljZW50ZXItPnkgPSBmbG9hdDhfZGl2X3NhZmUo eSwgMi4wLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkp CisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOwogfQogCi0KIC8qCQlib3hfd2QJLQkJ cmV0dXJucyB0aGUgd2lkdGggKGxlbmd0aCkgb2YgdGhlIGJveAogICoJCQkJCQkJCSAgKGhvcml6 b250YWwgbWFnbml0dWRlKS4KICAqLwpAQCAtMjMyOSwxMyArMjM0OCwzMSBAQCBsc2VnX2NlbnRl cihQR19GVU5DVElPTl9BUkdTKQogewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19Q KDApOwogCVBvaW50CSAgICpyZXN1bHQ7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCXJl c3VsdCA9IHBhbGxvY19vYmplY3QoUG9pbnQpOwogCi0JcmVzdWx0LT54ID0gZmxvYXQ4X2Rpdihm bG9hdDhfcGwobHNlZy0+cFswXS54LCBsc2VnLT5wWzFdLngpLCAyLjApOwotCXJlc3VsdC0+eSA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGxzZWctPnBbMF0ueSwgbHNlZy0+cFsxXS55KSwgMi4wKTsK Kwl4ID0gZmxvYXQ4X3BsX3NhZmUobHNlZy0+cFswXS54LCBsc2VnLT5wWzFdLngsIGZjaW5mby0+ Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJ Z290byBmYWlsOworCisJcmVzdWx0LT54ID0gZmxvYXQ4X2Rpdl9zYWZlKHgsIDIuMCwgZmNpbmZv LT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQor CQlnb3RvIGZhaWw7CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUobHNlZy0+cFswXS55LCBsc2VnLT5w WzFdLnksIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJcmVzdWx0LT55ID0gZmxvYXQ4X2Rpdl9zYWZl KHksIDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2lu Zm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQp OworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtMzI5MCw3ICszMzI3LDcg QEAgYm94X2ludGVycHRfbHNlZyhQb2ludCAqcmVzdWx0LCBCT1ggKmJveCwgTFNFRyAqbHNlZykK IAogCWlmIChyZXN1bHQgIT0gTlVMTCkKIAl7Ci0JCWJveF9jbigmcG9pbnQsIGJveCk7CisJCSh2 b2lkKSBib3hfY24oJnBvaW50LCBib3gsIE5VTEwpOwogCQlsc2VnX2Nsb3NlcHRfcG9pbnQocmVz dWx0LCBsc2VnLCAmcG9pbnQpOwogCX0KIApAQCAtNDEyMSwxMSArNDE1OCwyMCBAQCBjb25zdHJ1 Y3RfcG9pbnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCiBzdGF0aWMgaW5saW5lIHZvaWQKLXBvaW50 X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKQorcG9pbnRf YWRkX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsIE5vZGUgKmVz Y29udGV4dCkKIHsKLQlwb2ludF9jb25zdHJ1Y3QocmVzdWx0LAotCQkJCQlmbG9hdDhfcGwocHQx LT54LCBwdDItPngpLAotCQkJCQlmbG9hdDhfcGwocHQxLT55LCBwdDItPnkpKTsKKwlmbG9hdDgJ CXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9wbF9zYWZlKHB0MS0+eCwgcHQyLT54LCBl c2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVy bjsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShwdDEtPnksIHB0Mi0+eSwgZXNjb250ZXh0KTsKKwlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwlwb2ludF9j b25zdHJ1Y3QocmVzdWx0LCB4LCB5KTsKIH0KIAogRGF0dW0KQEAgLTQxMzcsNyArNDE4Myw3IEBA IHBvaW50X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQ b2ludCk7CiAKLQlwb2ludF9hZGRfcG9pbnQocmVzdWx0LCBwMSwgcDIpOworCXBvaW50X2FkZF9w b2ludChyZXN1bHQsIHAxLCBwMiwgTlVMTCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQp OwogfQpAQCAtNDI0OSw4ICs0Mjk1LDggQEAgYm94X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJ cmVzdWx0ID0gcGFsbG9jX29iamVjdChCT1gpOwogCi0JcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQt PmhpZ2gsICZib3gtPmhpZ2gsIHApOwotCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5sb3csICZi b3gtPmxvdywgcCk7CisJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gs IHAsIE5VTEwpOworCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCwg TlVMTCk7CiAKIAlQR19SRVRVUk5fQk9YX1AocmVzdWx0KTsKIH0KQEAgLTQ0MTMsNyArNDQ1OSw3 IEBAIHBhdGhfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50CQkJaTsKIAogCWZvciAoaSA9 IDA7IGkgPCBwYXRoLT5ucHRzOyBpKyspCi0JCXBvaW50X2FkZF9wb2ludCgmcGF0aC0+cFtpXSwg JnBhdGgtPnBbaV0sIHBvaW50KTsKKwkJcG9pbnRfYWRkX3BvaW50KCZwYXRoLT5wW2ldLCAmcGF0 aC0+cFtpXSwgcG9pbnQsIE5VTEwpOwogCiAJUEdfUkVUVVJOX1BBVEhfUChwYXRoKTsKIH0KQEAg LTQ0NzEsNyArNDUxNyw3IEBAIHBhdGhfcG9seShQR19GVU5DVElPTl9BUkdTKQogCiAJLyogVGhp cyBpcyBub3QgdmVyeSBjb25zaXN0ZW50IC0tLSBvdGhlciBzaW1pbGFyIGNhc2VzIHJldHVybiBO VUxMIC4uLiAqLwogCWlmICghcGF0aC0+Y2xvc2VkKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5ub3QgYmUg Y29udmVydGVkIHRvIHBvbHlnb24iKSkpOwogCkBAIC00NTIxLDcgKzQ1NjcsOSBAQCBwb2x5X2Nl bnRlcihQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7 CiAKLQlwb2x5X3RvX2NpcmNsZSgmY2lyY2xlLCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xl KCZjaXJjbGUsIHBvbHksIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisK IAkqcmVzdWx0ID0gY2lyY2xlLmNlbnRlcjsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7 CkBAIC00OTgzLDcgKzUwMzEsNyBAQCBjaXJjbGVfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAlyZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KENJUkNMRSk7CiAKLQlwb2ludF9hZGRfcG9pbnQoJnJl c3VsdC0+Y2VudGVyLCAmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlwb2ludF9hZGRfcG9pbnQo JnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xlLT5jZW50ZXIsIHBvaW50LCBOVUxMKTsKIAlyZXN1bHQt PnJhZGl1cyA9IGNpcmNsZS0+cmFkaXVzOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7 CkBAIC01MjA0LDE0ICs1MjUyLDMwIEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykKIAog CWJveCA9IHBhbGxvY19vYmplY3QoQk9YKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJjbGUt PnJhZGl1cywgc3FydCgyLjApKTsKKwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUtPnJh ZGl1cywgc3FydCgyLjApLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0gZmxv YXQ4X3BsKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4X21p KGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChjaXJj bGUtPmNlbnRlci55LCBkZWx0YSk7Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUtPmNl bnRlci55LCBkZWx0YSk7CisJYm94LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNl bnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxvYXQ4 X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJ Ym94LT5oaWdoLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwgZmNp bmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5j ZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9QKGJv eCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgpCkBA IC01MjIyLDE1ICs1Mjg2LDM3IEBAIGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlC T1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7CisJ ZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCWNpcmNsZSA9IHBhbGxvY19vYmplY3QoQ0lSQ0xF KTsKIAotCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gu eCwgYm94LT5sb3cueCksIDIuMCk7Ci0JY2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0OF9kaXYoZmxv YXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55KSwgMi4wKTsKKwl4ID0gZmxvYXQ4X3BsX3Nh ZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRf RVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCi0JY2lyY2xl LT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsICZib3gtPmhpZ2gsIE5VTEwpOwor CWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2luZm8tPmNvbnRl eHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8g ZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhpZ2gueSwgYm94LT5sb3cueSwgZmNp bmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2Rpdl9zYWZlKHks IDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8t PmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUtPnJhZGl1cyA9IHBvaW50X2R0KCZj aXJjbGUtPmNlbnRlciwgJmJveC0+aGlnaCwKKwkJCQkJCQkgIGZjaW5mby0+Y29udGV4dCk7CisK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7 CiAKIAlQR19SRVRVUk5fQ0lSQ0xFX1AoY2lyY2xlKTsKKworZmFpbDoKKwlQR19SRVRVUk5fTlVM TCgpOwogfQogCiAKQEAgLTUyODksMTUgKzUzNzUsMTYgQEAgY2lyY2xlX3BvbHkoUEdfRlVOQ1RJ T05fQVJHUykKIC8qCiAgKiBDb252ZXJ0IHBvbHlnb24gdG8gY2lyY2xlCiAgKgotICogVGhlIHJl c3VsdCBtdXN0IGJlIHByZWFsbG9jYXRlZC4KKyAqIFRoZSBwYXJhbWV0ZXIgInJlc3VsdCIgbXVz dCBiZSBwcmVhbGxvY2F0ZWQuCiAgKgogICogWFhYIFRoaXMgYWxnb3JpdGhtIHNob3VsZCB1c2Ug d2VpZ2h0ZWQgbWVhbnMgb2YgbGluZSBzZWdtZW50cwogICoJcmF0aGVyIHRoYW4gc3RyYWlnaHQg YXZlcmFnZSB2YWx1ZXMgb2YgcG9pbnRzIC0gdGdsIDk3LzAxLzIxLgogICovCi1zdGF0aWMgdm9p ZAotcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCitzdGF0aWMg Ym9vbAorcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5vZGUg KmVzY29udGV4dCkKIHsKIAlpbnQJCQlpOworCWZsb2F0OAkJeDsKIAogCUFzc2VydChwb2x5LT5u cHRzID4gMCk7CiAKQEAgLTUzMDYsMTQgKzUzOTMsNDMgQEAgcG9seV90b19jaXJjbGUoQ0lSQ0xF ICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAJcmVzdWx0LT5yYWRpdXMgPSAwOwogCiAJZm9yIChp ID0gMDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmNl bnRlciwgJnJlc3VsdC0+Y2VudGVyLCAmcG9seS0+cFtpXSk7Ci0JcmVzdWx0LT5jZW50ZXIueCA9 IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueCwgcG9seS0+bnB0cyk7Ci0JcmVzdWx0LT5jZW50 ZXIueSA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueSwgcG9seS0+bnB0cyk7CisJeworCQlw b2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJJnJlc3VsdC0+Y2VudGVyLAor CQkJCQkJJnBvbHktPnBbaV0sCisJCQkJCQllc2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+Y2Vu dGVyLnggPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueCwKKwkJCQkJCQkJCSAgIHBv bHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJlc3VsdC0+Y2VudGVyLnkgPSBm bG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueSwKKwkJCQkJCQkJCSAgIHBvbHktPm5wdHMs CisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29u dGV4dCkpCisJCXJldHVybiBmYWxzZTsKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBp KyspCi0JCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJ CQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7Ci0JcmVz dWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsKKwl7 CisJCXggPSBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBlc2NvbnRleHQp OworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNl OworCisJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsX3NhZmUocmVzdWx0LT5yYWRpdXMsIHgs IGVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCQly ZXR1cm4gZmFsc2U7CisJfQorCisJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2X3NhZmUocmVz dWx0LT5yYWRpdXMsIHBvbHktPm5wdHMsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9CiAK IERhdHVtCkBAIC01MzI0LDcgKzU0NDAsOCBAQCBwb2x5X2NpcmNsZShQR19GVU5DVElPTl9BUkdT KQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChDSVJDTEUpOwogCi0JcG9seV90b19jaXJjbGUo cmVzdWx0LCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlKHJlc3VsdCwgcG9seSwgZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChy ZXN1bHQpOwogfQotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0020-refactor-point_dt.patch" Content-Disposition: attachment; filename="v23-0020-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7e13 RnJvbSAxMWZiOTlhYWNjN2QwYzEyZWFhNjMwYWZkZGY1M2Y3NDQwMmY5YTc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTg6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAyMC8yM10gcmVmYWN0b3IgcG9pbnRfZHQKClJlZmFjdG9yIHBvaW50X2R0IHRvIGJlIGVycm9y LXNhZmUgZm9yIGFuIHVwY29taW5nIHBhdGNoIHVzZS4gIE5vdGUgZm9yIGZ1dHVyZQp3b3JrOiBs c2VnX2NlbnRlciwgcGF0aF9wb2x5LCBib3hfY2VudGVyLCBib3hfY2lyY2xlLCBwb2x5X2NlbnRl ciwgcG9seV9jaXJjbGUsCmFuZCBjaXJjbGVfYm94IHdpbGwgbmVlZCBlcnJvci1zYWZlCgpBdXRo b3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFt dWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBEdW5zdGFuIDxh bmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVp bmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2 MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29t CkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQx Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYyB8IDc5ICsrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDMz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3Bz LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4IGJmYjQ4NTliNGNiLi4z NTBlODZmNjM3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC04Miw3ICs4Miw3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9zdWJfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0 MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfbXVsX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2b2lkIHBv aW50X2Rpdl9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0 YXRpYyBpbmxpbmUgYm9vbCBwb2ludF9lcV9wb2ludChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsK LXN0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwor c3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9k ZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X3NsKFBvaW50ICpwdDEs IFBvaW50ICpwdDIpOwogc3RhdGljIGludAlwb2ludF9pbnNpZGUoUG9pbnQgKnAsIGludCBucHRz LCBQb2ludCAqcGxpc3QpOwogCkBAIC04MzksNyArODM5LDcgQEAgYm94X2Rpc3RhbmNlKFBHX0ZV TkNUSU9OX0FSR1MpCiAJYm94X2NuKCZhLCBib3gxKTsKIAlib3hfY24oJmIsIGJveDIpOwogCi0J UEdfUkVUVVJOX0ZMT0FUOChwb2ludF9kdCgmYSwgJmIpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KHBv aW50X2R0KCZhLCAmYiwgTlVMTCkpOwogfQogCiAKQEAgLTE4MDgsNyArMTgwOCw4IEBAIHBhdGhf bGVuZ3RoKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlpcHJldiA9IHBhdGgtPm5wdHMgLSAxOyAvKiBp bmNsdWRlIHRoZSBjbG9zdXJlIHNlZ21lbnQgKi8KIAkJfQogCi0JCXJlc3VsdCA9IGZsb2F0OF9w bChyZXN1bHQsIHBvaW50X2R0KCZwYXRoLT5wW2lwcmV2XSwgJnBhdGgtPnBbaV0pKTsKKwkJcmVz dWx0ID0gZmxvYXQ4X3BsKHJlc3VsdCwKKwkJCQkJCSAgIHBvaW50X2R0KCZwYXRoLT5wW2lwcmV2 XSwgJnBhdGgtPnBbaV0sIE5VTEwpKTsKIAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CkBAIC0xOTk1LDEzICsxOTk2LDI0IEBAIHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJUG9pbnQJICAgKnB0MSA9IFBHX0dFVEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIg PSBQR19HRVRBUkdfUE9JTlRfUCgxKTsKIAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQx LCBwdDIpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBOVUxMKSk7CiB9 CiAKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4Ci1wb2ludF9kdChQb2ludCAqcHQxLCBQb2ludCAqcHQy KQorcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0KQogewot CXJldHVybiBoeXBvdChmbG9hdDhfbWkocHQxLT54LCBwdDItPngpLCBmbG9hdDhfbWkocHQxLT55 LCBwdDItPnkpKTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9taV9z YWZlKHB0MS0+eCwgcHQyLT54LCBlc2NvbnRleHQpOworCWlmICh1bmxpa2VseShTT0ZUX0VSUk9S X09DQ1VSUkVEKGVzY29udGV4dCkpKQorCQlyZXR1cm4gMC4wOworCisJeSA9IGZsb2F0OF9taV9z YWZlKHB0MS0+eSwgcHQyLT55LCBlc2NvbnRleHQpOworCWlmICh1bmxpa2VseShTT0ZUX0VSUk9S X09DQ1VSUkVEKGVzY29udGV4dCkpKQorCQlyZXR1cm4gMC4wOworCisJcmV0dXJuIGh5cG90KHgs IHkpOwogfQogCiBEYXR1bQpAQCAtMjE3Myw3ICsyMTg1LDcgQEAgbHNlZ19sZW5ndGgoUEdfRlVO Q1RJT05fQVJHUykKIHsKIAlMU0VHCSAgICpsc2VnID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAot CVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmxzZWctPnBbMF0sICZsc2VnLT5wWzFdKSk7CisJ UEdfUkVUVVJOX0ZMT0FUOChwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0sIE5VTEwp KTsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCkBAIC0yMjU4LDggKzIyNzAsOCBAQCBsc2VnX2x0KFBHX0ZVTkNUSU9OX0FS R1MpCiAJTFNFRwkgICAqbDEgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCUxTRUcJICAgKmwyID0g UEdfR0VUQVJHX0xTRUdfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwx LT5wWzBdLCAmbDEtPnBbMV0pLAotCQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0p KSk7CisJUEdfUkVUVVJOX0JPT0woRlBsdChwb2ludF9kdCgmbDEtPnBbMF0sICZsMS0+cFsxXSwg TlVMTCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgTlVMTCkpKTsKIH0K IAogRGF0dW0KQEAgLTIyNjgsOCArMjI4MCw4IEBAIGxzZWdfbGUoUEdfRlVOQ1RJT05fQVJHUykK IAlMU0VHCSAgICpsMSA9IFBHX0dFVEFSR19MU0VHX1AoMCk7CiAJTFNFRwkgICAqbDIgPSBQR19H RVRBUkdfTFNFR19QKDEpOwogCi0JUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmbDEtPnBb MF0sICZsMS0+cFsxXSksCi0JCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSkpKTsK KwlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdLCBOVUxM KSwKKwkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdLCBOVUxMKSkpOwogfQogCiBE YXR1bQpAQCAtMjI3OCw4ICsyMjkwLDggQEAgbHNlZ19ndChQR19GVU5DVElPTl9BUkdTKQogCUxT RUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFS R19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwg JmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBH X1JFVFVSTl9CT09MKEZQZ3QocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIE5VTEwpLAor CQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0sIE5VTEwpKSk7CiB9CiAKIERhdHVt CkBAIC0yMjg4LDggKzIzMDAsOCBAQCBsc2VnX2dlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTFNFRwkg ICAqbDEgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCUxTRUcJICAgKmwyID0gUEdfR0VUQVJHX0xT RUdfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEt PnBbMV0pLAotCQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0pKSk7CisJUEdfUkVU VVJOX0JPT0woRlBnZShwb2ludF9kdCgmbDEtPnBbMF0sICZsMS0+cFsxXSwgTlVMTCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgTlVMTCkpKTsKIH0KIAogCkBAIC0yNzQz LDcgKzI3NTUsNyBAQCBsaW5lX2Nsb3NlcHRfcG9pbnQoUG9pbnQgKnJlc3VsdCwgTElORSAqbGlu ZSwgUG9pbnQgKnBvaW50KQogCWlmIChyZXN1bHQgIT0gTlVMTCkKIAkJKnJlc3VsdCA9IGNsb3Nl cHQ7CiAKLQlyZXR1cm4gcG9pbnRfZHQoJmNsb3NlcHQsIHBvaW50KTsKKwlyZXR1cm4gcG9pbnRf ZHQoJmNsb3NlcHQsIHBvaW50LCBOVUxMKTsKIH0KIAogRGF0dW0KQEAgLTI3ODQsNyArMjc5Niw3 IEBAIGxzZWdfY2xvc2VwdF9wb2ludChQb2ludCAqcmVzdWx0LCBMU0VHICpsc2VnLCBQb2ludCAq cHQpCiAJaWYgKHJlc3VsdCAhPSBOVUxMKQogCQkqcmVzdWx0ID0gY2xvc2VwdDsKIAotCXJldHVy biBwb2ludF9kdCgmY2xvc2VwdCwgcHQpOworCXJldHVybiBwb2ludF9kdCgmY2xvc2VwdCwgcHQs IE5VTEwpOwogfQogCiBEYXR1bQpAQCAtMzEwOCw5ICszMTIwLDkgQEAgb25fcGwoUEdfRlVOQ1RJ T05fQVJHUykKIHN0YXRpYyBib29sCiBsc2VnX2NvbnRhaW5fcG9pbnQoTFNFRyAqbHNlZywgUG9p bnQgKnB0KQogewotCXJldHVybiBGUGVxKHBvaW50X2R0KHB0LCAmbHNlZy0+cFswXSkgKwotCQkJ CXBvaW50X2R0KHB0LCAmbHNlZy0+cFsxXSksCi0JCQkJcG9pbnRfZHQoJmxzZWctPnBbMF0sICZs c2VnLT5wWzFdKSk7CisJcmV0dXJuIEZQZXEocG9pbnRfZHQocHQsICZsc2VnLT5wWzBdLCBOVUxM KSArCisJCQkJcG9pbnRfZHQocHQsICZsc2VnLT5wWzFdLCBOVUxMKSwKKwkJCQlwb2ludF9kdCgm bHNlZy0+cFswXSwgJmxzZWctPnBbMV0sIE5VTEwpKTsKIH0KIAogRGF0dW0KQEAgLTMxNzYsMTEg KzMxODgsMTIgQEAgb25fcHBhdGgoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoIXBhdGgtPmNsb3Nl ZCkKIAl7CiAJCW4gPSBwYXRoLT5ucHRzIC0gMTsKLQkJYSA9IHBvaW50X2R0KHB0LCAmcGF0aC0+ cFswXSk7CisJCWEgPSBwb2ludF9kdChwdCwgJnBhdGgtPnBbMF0sIE5VTEwpOwogCQlmb3IgKGkg PSAwOyBpIDwgbjsgaSsrKQogCQl7Ci0JCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAx XSk7Ci0JCQlpZiAoRlBlcShmbG9hdDhfcGwoYSwgYiksIHBvaW50X2R0KCZwYXRoLT5wW2ldLCAm cGF0aC0+cFtpICsgMV0pKSkKKwkJCWIgPSBwb2ludF9kdChwdCwgJnBhdGgtPnBbaSArIDFdLCBO VUxMKTsKKwkJCWlmIChGUGVxKGZsb2F0OF9wbChhLCBiKSwKKwkJCQkJIHBvaW50X2R0KCZwYXRo LT5wW2ldLCAmcGF0aC0+cFtpICsgMV0sIE5VTEwpKSkKIAkJCQlQR19SRVRVUk5fQk9PTCh0cnVl KTsKIAkJCWEgPSBiOwogCQl9CkBAIC00NzY2LDcgKzQ3NzksNyBAQCBjaXJjbGVfb3ZlcmxhcChQ R19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVf UCgwKTsKIAlDSVJDTEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQ R19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5j ZW50ZXIpLAorCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwg JmNpcmNsZTItPmNlbnRlciwgTlVMTCksCiAJCQkJCQlmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVz LCBjaXJjbGUyLT5yYWRpdXMpKSk7CiB9CiAKQEAgLTQ4MjgsNyArNDg0MSw3IEBAIGNpcmNsZV9j b250YWluZWQoUEdfRlVOQ1RJT05fQVJHUykKIAlDSVJDTEUJICAgKmNpcmNsZTEgPSBQR19HRVRB UkdfQ0lSQ0xFX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJHX0NJUkNMRV9Q KDEpOwogCi0JUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAm Y2lyY2xlMi0+Y2VudGVyKSwKKwlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUx LT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIsIE5VTEwpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNs ZTItPnJhZGl1cywgY2lyY2xlMS0+cmFkaXVzKSkpOwogfQogCkBAIC00ODQwLDcgKzQ4NTMsNyBA QCBjaXJjbGVfY29udGFpbihQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9 IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJDTEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdf Q0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5j ZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQo JmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciwgTlVMTCksCiAJCQkJCQlmbG9hdDhf bWkoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUyLT5yYWRpdXMpKSk7CiB9CiAKQEAgLTUwNjksNyAr NTA4Miw3IEBAIGNpcmNsZV9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAq Y2lyY2xlMiA9IFBHX0dFVEFSR19DSVJDTEVfUCgxKTsKIAlmbG9hdDgJCXJlc3VsdDsKIAotCXJl c3VsdCA9IGZsb2F0OF9taShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2Vu dGVyKSwKKwlyZXN1bHQgPSBmbG9hdDhfbWkocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNp cmNsZTItPmNlbnRlciwgTlVMTCksCiAJCQkJCSAgIGZsb2F0OF9wbChjaXJjbGUxLT5yYWRpdXMs IGNpcmNsZTItPnJhZGl1cykpOwogCWlmIChyZXN1bHQgPCAwLjApCiAJCXJlc3VsdCA9IDAuMDsK QEAgLTUwODUsNyArNTA5OCw3IEBAIGNpcmNsZV9jb250YWluX3B0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJUG9pbnQJICAgKnBvaW50ID0gUEdfR0VUQVJHX1BPSU5UX1AoMSk7CiAJZmxvYXQ4CQlkOwog Ci0JZCA9IHBvaW50X2R0KCZjaXJjbGUtPmNlbnRlciwgcG9pbnQpOworCWQgPSBwb2ludF9kdCgm Y2lyY2xlLT5jZW50ZXIsIHBvaW50LCBOVUxMKTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNs ZS0+cmFkaXVzKTsKIH0KIApAQCAtNTA5Nyw3ICs1MTEwLDcgQEAgcHRfY29udGFpbmVkX2NpcmNs ZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJUkNM RV9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBv aW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgTlVMTCk7CiAJUEdf UkVUVVJOX0JPT0woZCA8PSBjaXJjbGUtPnJhZGl1cyk7CiB9CiAKQEAgLTUxMTIsNyArNTEyNSw3 IEBAIGRpc3RfcGMoUEdfRlVOQ1RJT05fQVJHUykKIAlDSVJDTEUJICAgKmNpcmNsZSA9IFBHX0dF VEFSR19DSVJDTEVfUCgxKTsKIAlmbG9hdDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9t aShwb2ludF9kdChwb2ludCwgJmNpcmNsZS0+Y2VudGVyKSwKKwlyZXN1bHQgPSBmbG9hdDhfbWko cG9pbnRfZHQocG9pbnQsICZjaXJjbGUtPmNlbnRlciwgTlVMTCksCiAJCQkJCSAgIGNpcmNsZS0+ cmFkaXVzKTsKIAlpZiAocmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MTMwLDcg KzUxNDMsNyBAQCBkaXN0X2Nwb2ludChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50CSAgICpwb2lu dCA9IFBHX0dFVEFSR19QT0lOVF9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0g ZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLCBjaXJjbGUtPnJhZGl1 cyk7CisJcmVzdWx0ID0gZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIs IE5VTEwpLCBjaXJjbGUtPnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0g MC4wOwogCkBAIC01MjE1LDcgKzUyMjgsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJY2lyY2xlLT5jZW50ZXIueCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBi b3gtPmxvdy54KSwgMi4wKTsKIAljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhf cGwoYm94LT5oaWdoLnksIGJveC0+bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBw b2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0g cG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBOVUxMKTsKIAogCVBHX1JFVFVS Tl9DSVJDTEVfUChjaXJjbGUpOwogfQpAQCAtNTI5OSw3ICs1MzEyLDcgQEAgcG9seV90b19jaXJj bGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9s eS0+bnB0czsgaSsrKQogCQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbChyZXN1bHQtPnJhZGl1 cywKLQkJCQkJCQkJICAgcG9pbnRfZHQoJnBvbHktPnBbaV0sICZyZXN1bHQtPmNlbnRlcikpOwor CQkJCQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7 CiAJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRz KTsKIH0KIAotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v23-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7h14 RnJvbSA1ZmFlZjYyYjllMDdiYzU1NzFiMmU1MWEzZGRlNjczOWI1NjAzMjBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTU6NDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxOC8yM10gcmVmYWN0b3IKIGZsb2F0X292ZXJmbG93X2Vycm9yLGZsb2F0X3VuZGVyZmxvd19l cnJvcixmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcgoKbWFrZSB0aGVzZSBmdW5jdGlvbiBlcnJvci1z YWZlOiBmbG9hdF9vdmVyZmxvd19lcnJvciwgZmxvYXRfdW5kZXJmbG93X2Vycm9yLApmbG9hdF96 ZXJvX2RpdmlkZV9lcnJvci4KCkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0 ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogY29udHJpYi9idHJlZV9naXN0L2J0 cmVlX2Zsb2F0NC5jIHwgICAyICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg fCAgIDQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jICAgICB8IDEwNCArKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL2Zsb2F0LmggICAgICAg ICB8ICAzNCArKysrKy0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDcy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9h dDQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYwppbmRleCBjMDc2OTE4ZmQ0 OC4uZmE2YjM4NTJmOTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9h dDQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKQEAgLTEwMSw3ICsx MDEsNyBAQCBmbG9hdDRfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEgLSBiOwogCWlm ICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ0KGZhYnNmKHIpKTsKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lz dC9idHJlZV9mbG9hdDguYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDguYwppbmRl eCBkNzM4NmU4ODVhMi4uNzk3MTlmZGI3MjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lz dC9idHJlZV9mbG9hdDguYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK QEAgLTc5LDcgKzc5LDcgQEAgZ2J0X2Zsb2F0OF9kaXN0KGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZv aWQgKmIsIEZtZ3JJbmZvICpmbGluZm8pCiAKIAlyID0gYXJnMSAtIGFyZzI7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHIpKSAmJiAhaXNpbmYoYXJnMSkgJiYgIWlzaW5mKGFyZzIpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlyZXR1cm4g ZmFicyhyKTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIGZsb2F0OF9kaXN0KFBHX0ZVTkNUSU9O X0FSR1MpCiAKIAlyID0gYSAtIGI7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHIpKSAmJiAhaXNpbmYo YSkgJiYgIWlzaW5mKGIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgoZmFicyhyKSk7CiB9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCmluZGV4IDQ0MjNiNzI0ZjlmLi4zMGI0MjIwNWQ1YyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2Zsb2F0LmMKQEAgLTEwMCwyNSArMTAwLDI1IEBAIHN0YXRpYyB2b2lkIGluaXRfZGVncmVlX2Nv bnN0YW50cyh2b2lkKTsKICAqIFRoaXMgZG9lcyBtZWFuIHRoYXQgeW91IGRvbid0IGdldCBhIHVz ZWZ1bCBlcnJvciBsb2NhdGlvbiBpbmRpY2F0b3IuCiAgKi8KIHBnX25vaW5saW5lIHZvaWQKLWZs b2F0X292ZXJmbG93X2Vycm9yKHZvaWQpCitmbG9hdF9vdmVyZmxvd19lcnJvcihzdHJ1Y3QgTm9k ZSAqZXNjb250ZXh0KQogewotCWVyZXBvcnQoRVJST1IsCisJZXJyc2F2ZShlc2NvbnRleHQsCiAJ CQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCSBlcnJt c2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2 b2lkCi1mbG9hdF91bmRlcmZsb3dfZXJyb3Iodm9pZCkKK2Zsb2F0X3VuZGVyZmxvd19lcnJvcihz dHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewotCWVyZXBvcnQoRVJST1IsCisJZXJyc2F2ZShlc2Nv bnRleHQsCiAJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCSBlcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogdW5kZXJmbG93IikpKTsKIH0KIAogcGdf bm9pbmxpbmUgdm9pZAotZmxvYXRfemVyb19kaXZpZGVfZXJyb3Iodm9pZCkKK2Zsb2F0X3plcm9f ZGl2aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwK KwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVfRElWSVNJT05fQllfWkVS TyksCiAJCQkgZXJybXNnKCJkaXZpc2lvbiBieSB6ZXJvIikpKTsKIH0KQEAgLTE0NzcsOSArMTQ3 Nyw5IEBAIGRzcXJ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBzcXJ0KGFyZzEpOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYoYXJnMSkpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxp a2VseShyZXN1bHQgPT0gMC4wKSAmJiBhcmcxICE9IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vy cm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9B VDgocmVzdWx0KTsKIH0KQEAgLTE0OTYsOSArMTQ5Niw5IEBAIGRjYnJ0KFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAlyZXN1bHQgPSBjYnJ0KGFyZzEpOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQp KSAmJiAhaXNpbmYoYXJnMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiBhcmcx ICE9IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19l cnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE2MzQsMjQg KzE2MzQsMjQgQEAgZHBvdyhQR19GVU5DVElPTl9BUkdTKQogCQkJCWlmIChhYnN4ID09IDEuMCkK IAkJCQkJcmVzdWx0ID0gMS4wOwogCQkJCWVsc2UgaWYgKGFyZzIgPj0gMC4wID8gKGFic3ggPiAx LjApIDogKGFic3ggPCAxLjApKQotCQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCQlm bG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAkJCQllbHNlCi0JCQkJCWZsb2F0X3VuZGVyZmxv d19lcnJvcigpOworCQkJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQl9CiAJCX0K IAkJZWxzZSBpZiAoZXJybm8gPT0gRVJBTkdFKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlCiAJCXsKIAkJCWlmICh1bmxpa2VseShp c2luZihyZXN1bHQpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCQkJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFy ZzEgIT0gMC4wKQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3VuZGVy Zmxvd19lcnJvcihOVUxMKTsKIAkJfQogCX0KIApAQCAtMTY5MSwxNCArMTY5MSwxNCBAQCBkZXhw KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWlmICh1bmxpa2VseShlcnJubyA9PSBFUkFOR0UpKQogCQl7 CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxv d19lcnJvcigpOworCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNl IGlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAkJZWxzZSBpZiAodW5saWtlbHkocmVz dWx0ID09IDAuMCkpCi0JCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X3VuZGVy Zmxvd19lcnJvcihOVUxMKTsKIAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0x NzI5LDkgKzE3MjksOSBAQCBkbG9nMShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gbG9n KGFyZzEpOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYoYXJnMSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiBhcmcxICE9IDEuMCkKLQkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE3NjIsOSArMTc2Miw5IEBAIGRsb2cxMChQR19G VU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gbG9nMTAoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAw LjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRf dW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpA QCAtMTc5NSw3ICsxNzk1LDcgQEAgZGFjb3MoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9 IGFjb3MoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVS Tl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MjYsNyArMTgyNiw3IEBAIGRhc2luKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBhc2luKGFyZzEpOwogCWlmICh1bmxpa2VseShpc2luZihy ZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xODUyLDcgKzE4 NTIsNyBAQCBkYXRhbihQR19GVU5DVElPTl9BUkdTKQogCSAqLwogCXJlc3VsdCA9IGF0YW4oYXJn MSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJv cigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgo cmVzdWx0KTsKIH0KQEAgLTE4NzgsNyArMTg3OCw3IEBAIGRhdGFuMihQR19GVU5DVElPTl9BUkdT KQogCSAqLwogCXJlc3VsdCA9IGF0YW4yKGFyZzEsIGFyZzIpOwogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xOTE5LDcg KzE5MTksNyBAQCBkY29zKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9O VU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5wdXQgaXMgb3V0IG9m IHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJm bG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJO X0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTk3NCw3ICsxOTc0LDcgQEAgZHNpbihQR19GVU5DVElP Tl9BUkdTKQogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImlucHV0IGlzIG91dCBvZiByYW5nZSIpKSk7CiAJaWYgKHVubGlrZWx5 KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTIx NTQsNyArMjE1NCw3IEBAIGRhY29zZChQR19GVU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSA5MC4w ICsgYXNpbmRfcTEoLWFyZzEpOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlm bG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAog CVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTIxOTEsNyArMjE5MSw3IEBAIGRhc2lu ZChQR19GVU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSAtYXNpbmRfcTEoLWFyZzEpOwogCiAJaWYg KHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlm bG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsK IH0KQEAgLTIyMjMsNyArMjIyMyw3IEBAIGRhdGFuZChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IChhdGFuX2FyZzEgLyBhdGFuXzFfMCkgKiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTIyNTksNyAr MjI1OSw3IEBAIGRhdGFuMmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAoYXRhbjJfYXJn MV9hcmcyIC8gYXRhbl8xXzApICogNDUuMDsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQp KSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yMzgyLDcgKzIzODIsNyBA QCBkY29zZChQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IHNpZ24gKiBjb3NkX3ExKGFyZzEp OwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJv cigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgo cmVzdWx0KTsKIH0KQEAgLTI1MDQsNyArMjUwNCw3IEBAIGRzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJcmVzdWx0ID0gc2lnbiAqIHNpbmRfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vy cm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjY2Miw3ICsy NjYyLDcgQEAgZGNvc2goUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0ID0gZ2V0X2Zsb2F0OF9p bmZpbml0eSgpOwogCiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApKQotCQlmbG9hdF91bmRl cmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVU VVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjY4Miw3ICsyNjgyLDcgQEAgZHRhbmgoUEdfRlVO Q1RJT05fQVJHUykKIAlyZXN1bHQgPSB0YW5oKGFyZzEpOwogCiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTI3ODIsNyAr Mjc4Miw3IEBAIGRlcmYoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBlcmYoYXJnMSk7CiAK IAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1 bHQpOwogfQpAQCAtMjgwMiw3ICsyODAyLDcgQEAgZGVyZmMoUEdfRlVOQ1RJT05fQVJHUykKIAly ZXN1bHQgPSBlcmZjKGFyZzEpOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlm bG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAog CVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTI4MzEsNyArMjgzMSw3IEBAIGRnYW1t YShQR19GVU5DVElPTl9BUkdTKQogCQkvKiBQZXIgUE9TSVgsIGFuIGlucHV0IG9mIC1JbmYgY2F1 c2VzIGEgZG9tYWluIGVycm9yICovCiAJCWlmIChhcmcxIDwgMCkKIAkJewotCQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQkJcmVzdWx0 ID0gZ2V0X2Zsb2F0OF9uYW4oKTsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwogCQl9CiAJCWVs c2UKQEAgLTI4NTMsMTIgKzI4NTMsMTIgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWlm IChlcnJubyAhPSAwIHx8IGlzaW5mKHJlc3VsdCkgfHwgaXNuYW4ocmVzdWx0KSkKIAkJewogCQkJ aWYgKHJlc3VsdCAhPSAwLjApCi0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAkJCWVsc2UKLQkJCQlmbG9hdF91bmRlcmZsb3dfZXJy b3IoKTsKKwkJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCX0KIAkJZWxzZSBpZiAo cmVzdWx0ID09IDAuMCkKLQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAg LTI4OTYsNyArMjg5Niw3IEBAIGRsZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkgKiB0byByZXBv cnQgb3ZlcmZsb3csIGJ1dCBpdCBzaG91bGQgbmV2ZXIgdW5kZXJmbG93LgogCSAqLwogCWlmIChl cnJubyA9PSBFUkFOR0UgfHwgKGlzaW5mKHJlc3VsdCkgJiYgIWlzaW5mKGFyZzEpKSkKLQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQ R19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0zMDM2LDcgKzMwMzYsNyBAQCBmbG9hdDhf Y29tYmluZShQR19GVU5DVElPTl9BUkdTKQogCQl0bXAgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwog CQlTeHggPSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAgKiB0bXAgLyBOOwogCQlpZiAodW5s aWtlbHkoaXNpbmYoU3h4KSkgJiYgIWlzaW5mKFN4eDEpICYmICFpc2luZihTeHgyKSkKLQkJCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAl9 CiAKIAkvKgpAQCAtMzEwMyw3ICszMTAzLDcgQEAgZmxvYXQ4X2FjY3VtKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCWlmIChpc2luZihTeCkgfHwgaXNpbmYoU3h4KSkKIAkJewogCQkJaWYgKCFpc2luZih0 cmFuc3ZhbHVlc1sxXSkgJiYgIWlzaW5mKG5ld3ZhbCkpCi0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCQkJU3h4ID0gZ2V0X2Zs b2F0OF9uYW4oKTsKIAkJfQpAQCAtMzE4Niw3ICszMTg2LDcgQEAgZmxvYXQ0X2FjY3VtKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCWlmIChpc2luZihTeCkgfHwgaXNpbmYoU3h4KSkKIAkJewogCQkJaWYg KCFpc2luZih0cmFuc3ZhbHVlc1sxXSkgJiYgIWlzaW5mKG5ld3ZhbCkpCi0JCQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoKTsKKwkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCQkJU3h4 ID0gZ2V0X2Zsb2F0OF9uYW4oKTsKIAkJfQpAQCAtMzQ1Myw3ICszNDUzLDcgQEAgZmxvYXQ4X3Jl Z3JfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkoaXNpbmYoU3h5KSAmJgogCQkJCSAhaXNp bmYodHJhbnN2YWx1ZXNbMV0pICYmICFpc2luZihuZXd2YWxYKSAmJgogCQkJCSAhaXNpbmYodHJh bnN2YWx1ZXNbM10pICYmICFpc2luZihuZXd2YWxZKSkpCi0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCQkJaWYgKGlzaW5mKFN4 eCkpCiAJCQkJU3h4ID0gZ2V0X2Zsb2F0OF9uYW4oKTsKQEAgLTM2MjYsMTUgKzM2MjYsMTUgQEAg ZmxvYXQ4X3JlZ3JfY29tYmluZShQR19GVU5DVElPTl9BUkdTKQogCQl0bXAxID0gU3gxIC8gTjEg LSBTeDIgLyBOMjsKIAkJU3h4ID0gU3h4MSArIFN4eDIgKyBOMSAqIE4yICogdG1wMSAqIHRtcDEg LyBOOwogCQlpZiAodW5saWtlbHkoaXNpbmYoU3h4KSkgJiYgIWlzaW5mKFN4eDEpICYmICFpc2lu ZihTeHgyKSkKLQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAkJU3kgPSBmbG9hdDhfcGwoU3kxLCBTeTIpOwogCQl0bXAyID0gU3kxIC8g TjEgLSBTeTIgLyBOMjsKIAkJU3l5ID0gU3l5MSArIFN5eTIgKyBOMSAqIE4yICogdG1wMiAqIHRt cDIgLyBOOwogCQlpZiAodW5saWtlbHkoaXNpbmYoU3l5KSkgJiYgIWlzaW5mKFN5eTEpICYmICFp c2luZihTeXkyKSkKLQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAkJU3h5ID0gU3h5MSArIFN4eTIgKyBOMSAqIE4yICogdG1wMSAqIHRt cDIgLyBOOwogCQlpZiAodW5saWtlbHkoaXNpbmYoU3h5KSkgJiYgIWlzaW5mKFN4eTEpICYmICFp c2luZihTeHkyKSkKLQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAkJaWYgKGZsb2F0OF9lcShDeDEsIEN4MikpCiAJCQlDeCA9IEN4MTsK IAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL2Zsb2F0LmgKaW5kZXggYjM0MDY3OGNhOTIuLmQyZTk4OTk2MGE1IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Zs b2F0LmgKQEAgLTMwLDkgKzMwLDkgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCBleHRyYV9mbG9h dF9kaWdpdHM7CiAvKgogICogVXRpbGl0eSBmdW5jdGlvbnMgaW4gZmxvYXQuYwogICovCi1wZ19u b3JldHVybiBleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJvcih2b2lkKTsKLXBnX25vcmV0 dXJuIGV4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19lcnJvcih2b2lkKTsKLXBnX25vcmV0dXJu IGV4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKHZvaWQpOworZXh0ZXJuIHZvaWQg ZmxvYXRfb3ZlcmZsb3dfZXJyb3Ioc3RydWN0IE5vZGUgKmVzY29udGV4dCk7CitleHRlcm4gdm9p ZCBmbG9hdF91bmRlcmZsb3dfZXJyb3Ioc3RydWN0IE5vZGUgKmVzY29udGV4dCk7CitleHRlcm4g dm9pZCBmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKIGV4 dGVybiBpbnQJaXNfaW5maW5pdGUoZmxvYXQ4IHZhbCk7CiBleHRlcm4gZmxvYXQ4IGZsb2F0OGlu X2ludGVybmFsKGNoYXIgKm51bSwgY2hhciAqKmVuZHB0cl9wLAogCQkJCQkJCQljb25zdCBjaGFy ICp0eXBlX25hbWUsIGNvbnN0IGNoYXIgKm9yaWdfc3RyaW5nLApAQCAtMTA0LDcgKzEwNCw3IEBA IGZsb2F0NF9wbChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAKIAlyZXN1 bHQgPSB2YWwxICsgdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5m KHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTE2LDcg KzExNiw3IEBAIGZsb2F0OF9wbChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIp CiAKIAlyZXN1bHQgPSB2YWwxICsgdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkg JiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpA QCAtMTI4LDcgKzEyOCw3IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVz dWx0OwogfQpAQCAtMTQwLDcgKzE0MCw3IEBAIGZsb2F0OF9taShjb25zdCBmbG9hdDggdmFsMSwg Y29uc3QgZmxvYXQ4IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKIAlpZiAodW5saWtl bHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAly ZXR1cm4gcmVzdWx0OwogfQpAQCAtMTUyLDkgKzE1Miw5IEBAIGZsb2F0NF9tdWwoY29uc3QgZmxv YXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogCiAJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CiAJ aWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFs MikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYgdmFsMSAhPSAwLjBmICYmIHZh bDIgIT0gMC4wZikKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNjYsOSArMTY2LDkgQEAg ZmxvYXQ4X211bChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiAKIAlyZXN1 bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5m KHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYm IHZhbDEgIT0gMC4wICYmIHZhbDIgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KQEAg LTE3OSwxMiArMTc5LDEyIEBAIGZsb2F0NF9kaXYoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZs b2F0NCB2YWwyKQogCWZsb2F0NAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4w ZikgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMGYpICYmIHZhbDEgIT0gMC4wZiAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0 X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAly ZXR1cm4gcmVzdWx0OwogfQpAQCAtMTk1LDEyICsxOTUsMTIgQEAgZmxvYXQ4X2Rpdihjb25zdCBm bG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiAJZmxvYXQ4CQlyZXN1bHQ7CiAKIAlpZiAo dW5saWtlbHkodmFsMiA9PSAwLjApICYmICFpc25hbih2YWwxKSkKLQkJZmxvYXRfemVyb19kaXZp ZGVfZXJyb3IoKTsKKwkJZmxvYXRfemVyb19kaXZpZGVfZXJyb3IoTlVMTCk7CiAJcmVzdWx0ID0g dmFsMSAvIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwx KSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVM TCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIHZhbDEgIT0gMC4wICYmICFpc2lu Zih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19l cnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9Ci0tIAoyLjM0LjEKCg== --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Disposition: attachment; filename="v23-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7811 RnJvbSA1OTA3NWRmODdkNDllZjMyNThkYzgxZjExNmE2MGJkODY3ODkyZjMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjEgTWFyIDIwMjYgMTM6MTk6MjEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAyMi8yM10gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBleHByIE9OIENPTlZFUlNJT04K IEVSUk9SKQoKSW50cm9kdWNlIFNRTC1zdGFuZGFyZCBzYWZlIHR5cGUgY2FzdCBzeW50YXg6CiAg ICBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lPTiBFUlJPUikK VGhpcyBhbGxvdyB1c2VycyB0byBzcGVjaWZ5IGEgZGVmYXVsdCBmYWxsYmFjayBleHByZXNzaW9u IGlmIGEgdHlwZSBjb252ZXJzaW9uCmZhaWxzLCByYXRoZXIgdGhhbiByYWlzaW5nIGFuIGVycm9y LgoKV2l0aCB0aGlzIHBhdGNoc2V0LCBhbG1vc3QgYWxsIG9mIHRoZSBjYXN0IGZ1bmN0aW9ucyBp biBwZ19jYXN0LmNhc3RmdW5jIGFyZSBub3cKZXJyb3Itc2FmZS4gIENvZXJjZVZpYUlPIGFuZCBD b2VyY2VUb0RvbWFpbiB3ZXJlIGFscmVhZHkgZXJyb3Itc2FmZSBpbiB0aGUgSEVBRCwKc2VlIFsw XSwgdGhpcyBwYXRjaCBleHRlbmRzIGVycm9yLXNhZmUgYmVoYXZpb3IgdG8gQXJyYXlDb2VyY2VF eHByLgoKRXhhbXBsZToKICAgIC0tIFJldHVybnMgJzIwMTEtMDEtMDEnIGluc3RlYWQgb2YgdGhy b3dpbmcgYW4gaW52YWxpZCBpbnB1dCBzeW50YXggZXJyb3IuCiAgICBTRUxFQ1QgQ0FTVCgnMScg QVMgZGF0ZSBERUZBVUxUICcyMDExLTAxLTAxJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKCiMgQnVt cHMgY2F0dmVyc2lvbiByZXF1aXJlZAoKWzBdOiBodHRwczovL2dpdC5wb3N0Z3Jlc3FsLm9yZy9j Z2l0L3Bvc3RncmVzcWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2IwZDMwZWQzNTg4 ZGMzODRmNTYyNzRiCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogQ29yZXkg SHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVz aGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRh cmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFA bWFpbC5nbWFpbC5jb20KQ29tbWl0ZmVzdDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwu b3JnL3BhdGNoLzU5NDEKLS0tCiBjb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0ICAg ICAgICAgICAgfCAgIDUgKwogY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0ICAg ICAgICAgIHwgICA1ICsKIGNvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsICAgICAgICAgICAg ICAgICB8ICAgMiArCiAuLi4vcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQg ICAgfCAgMjQgKy0KIGNvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsICAg ICB8ICAgNSArCiBkb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCAgMzIgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwg IDY2ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAg MjkgKwogc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDU2 ICsKIHNyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNTMgKwog c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgIDgwICstCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMjMgKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYyAgICAgICAgICAgICB8IDE0NSArKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8IDM2MSArKysrKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgIDQgKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgICAzICstCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jICAgICAgICAgICAgICAgfCAgMTggKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDI1ICsKIHNyYy9iYWNrZW5k L3V0aWxzL2ZtZ3IvZm1nci5jICAgICAgICAgICAgICAgICB8ICAxMyArCiBzcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjRXhwci5oICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvZm1n ci5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDM4ICsKIHNyYy9pbmNsdWRlL29wdGltaXplci9v cHRpbWl6ZXIuaCAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2NvZXJjZS5oICAgICAgICAgICAgIHwgIDE2ICstCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5 cGUuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2Fz dC5vdXQgICAgICAgICAgICB8IDk3MSArKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0ICAgICB8ICAgNSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0ICAgICAgfCAgIDcgKwogc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9jYXN0LnNxbCAgICAgICAgICAgICAgICAgfCAzOTcgKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvY3JlYXRlX2Nhc3Quc3FsICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2VxdWl2Y2xhc3Muc3FsICAgICAgICAgICB8ICAgMyArCiBzcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDIgKwogNDAgZmlsZXMgY2hhbmdlZCwgMjM2 MiBpbnNlcnRpb25zKCspLCA4OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBl Y3RlZC9jaXRleHQub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dAppbmRl eCA4YzBiZjU0ZjBmMy4uZWNmYWYyYWE4NWEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2V4 cGVjdGVkL2NpdGV4dC5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91 dApAQCAtMTAsNiArMTAsMTEgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9UIGFtdmFs aWRhdGUob3BjLm9pZCk7CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKK1NFTEVDVCBD QVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFyYWN0ZXIgdG8gY2l0 ZXh0IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBD T05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0 ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSS4uLgorICAgICAgICAgICAgICAgICAgICBeCitI SU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBz dXBwb3J0ZWQuCiAtLSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0aW9ucwog LS0gVGVzdCA9IGFuZCA8Pi4KIFNFTEVDVCAnYSc6OmNpdGV4dCA9ICdhJzo6Y2l0ZXh0IEFTIHQ7 CmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQgYi9jb250 cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQKaW5kZXggYzVlNWYxODBmMmIuLjNlMTJj ZDc5M2FkIDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQK KysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CkBAIC0xMCw2ICsxMCwx MSBAQCBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsK IC0tLS0tLS0tKy0tLS0tLS0tLQogKDAgcm93cykKIAorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hh ciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgor RVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxU IGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IK K0xJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5cGUg Y2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KIC0tIFRl c3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+ LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsIGIvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5z cWwKaW5kZXggYWExY2Y5YWJkNWMuLmM4MjBiMGJkNGQ5IDEwMDY0NAotLS0gYS9jb250cmliL2Np dGV4dC9zcWwvY2l0ZXh0LnNxbAorKysgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbApA QCAtOSw2ICs5LDggQEAgU0VMRUNUIGFtbmFtZSwgb3BjbmFtZQogRlJPTSBwZ19vcGNsYXNzIG9w YyBMRUZUIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lkID0gb3BjbWV0aG9kCiBXSEVSRSBvcGMub2lk ID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIAorU0VMRUNUIENBU1QoJ2Fi Yyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAt LSBlcnJvcgorCiAtLSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0aW9ucwog CiAtLSBUZXN0ID0gYW5kIDw+LgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvZXhwZWN0ZWQvc2VsZWN0Lm91dCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVj dGVkL3NlbGVjdC5vdXQKaW5kZXggYTA2OTExOWM3OTAuLjg0ZjEwODEwZjcyIDEwMDY0NAotLS0g YS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0CisrKyBiL2Nv bnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQKQEAgLTczLDYgKzcz LDI1IEBAIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAyIEZFVENIIEZJUlNUIDMgUk9XIE9OTFk7 CiAtLS0tLQogKDAgcm93cykKIAorLS0gZXJyb3Igc2FmZSB0eXBlIGNhc3QKK1NFTEVDVCBDQVNU KCdhJyBBUyBpbnQgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0t LS0KKyAgICAyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxMicgQVMgbnVtZXJpYyBERUZBVUxU IDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgICAgMTIK KygxIHJvdykKKworU0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmljKDEwKSBERUZBVUxUIDIgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgICAgMTIKKygxIHJv dykKKwogLS0gRElTVElOQ1QgYW5kIE9SREVSIEJZIHBhdHRlcm5zCiAtLSBUcnkgc29tZSBxdWVy eSBwZXJtdXRhdGlvbnMgd2hpY2ggb25jZSBwcm9kdWNlZCBpZGVudGljYWwgcXVlcnkgSURzCiBT RUxFQ1QgRElTVElOQ1QgMSBBUyAiaW50IjsKQEAgLTIyMiw2ICsyNDEsOSBAQCBTRUxFQ1QgY2Fs bHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENP TExBVEUgIkMiOwogICAgICAyIHwgICAgMiB8IFNFTEVDVCAkMSBBUyAiaW50IiBPUkRFUiBCWSAx CiAgICAgIDEgfCAgICAyIHwgU0VMRUNUICQxIEFTIGkgVU5JT04gU0VMRUNUICQyIE9SREVSIEJZ IGkKICAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgJDEgfHwgJDIKKyAgICAgMSB8ICAgIDEgfCBTRUxF Q1QgQ0FTVCgkMSBBUyBpbnQgREVGQVVMVCAkMiBPTiBDT05WRVJTSU9OIEVSUk9SKQorICAgICAx IHwgICAgMSB8IFNFTEVDVCBDQVNUKCQxIEFTIG51bWVyaWMgREVGQVVMVCAkMiBPTiBDT05WRVJT SU9OIEVSUk9SKQorICAgICAxIHwgICAgMSB8IFNFTEVDVCBDQVNUKCQxIEFTIG51bWVyaWMoMTAp IERFRkFVTFQgJDIgT04gQ09OVkVSU0lPTiBFUlJPUikKICAgICAgMiB8ICAgIDIgfCBTRUxFQ1Qg RElTVElOQ1QgJDEgQVMgImludCIKICAgICAgMCB8ICAgIDAgfCBTRUxFQ1QgY2FsbHMsIHJvd3Ms IHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMi CiAgICAgIDEgfCAgICAxIHwgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5P VCBOVUxMIEFTIHQKQEAgLTIzMCw3ICsyNTIsNyBAQCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5 IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwogICAg ICAgIHwgICAgICB8ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgfCAgICAgIHwgICBTRUxF Q1QgZiBGUk9NIHQgT1JERVIgQlkgZgogICAgICAxIHwgICAgMSB8IHNlbGVjdCAkMTo6anNvbmIg PyAkMgotKDE3IHJvd3MpCisoMjAgcm93cykKIAogU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19y ZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7CiAgdCAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3Rh dF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMv c3FsL3NlbGVjdC5zcWwKaW5kZXggYTEwZDYxOGMwMzQuLjRiZTk3OTc3YmE2IDEwMDY0NAotLS0g YS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbAorKysgYi9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbApAQCAtMjUsNiArMjUsMTEgQEAgU0VM RUNUIDEgQVMgImludCIgTElNSVQgMyBPRkZTRVQgMzsKIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNF VCAxIEZFVENIIEZJUlNUIDIgUk9XIE9OTFk7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMiBG RVRDSCBGSVJTVCAzIFJPVyBPTkxZOwogCistLSBlcnJvciBzYWZlIHR5cGUgY2FzdAorU0VMRUNU IENBU1QoJ2EnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgnMTInIEFTIG51bWVyaWMgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoJzEyJyBBUyBudW1lcmljKDEwKSBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisKIC0tIERJU1RJTkNUIGFuZCBPUkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNvbWUgcXVl cnkgcGVybXV0YXRpb25zIHdoaWNoIG9uY2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5IElEcwog U0VMRUNUIERJU1RJTkNUIDEgQVMgImludCI7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lu dGF4LnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKaW5kZXggNjc0ODI5OTY4NjEuLmFh MGZjMWVmODFjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3N5bnRheC5zZ21sCkBAIC0yMDcxLDYgKzIwNzEsMTAgQEAgQ0FTVCAoIDxyZXBs YWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3Jl cGxhY2VhYmxlPgogICAgIFRoZSA8bGl0ZXJhbD5DQVNUPC9saXRlcmFsPiBzeW50YXggY29uZm9y bXMgdG8gU1FMOyB0aGUgc3ludGF4IHdpdGgKICAgICA8bGl0ZXJhbD46OjwvbGl0ZXJhbD4gaXMg aGlzdG9yaWNhbCA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CiAgICAgdXNh Z2UuCisgICAgVGhlIGRlZmF1bHQgYmVoYXZpb3Igd2hlbiBubyA8bGl0ZXJhbD5PTiBDT05WRVJT SU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UgaXMgc3BlY2lmaWVkIGlzIGVxdWl2YWxlbnQgdG86 Cis8c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxl PiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IEVSUk9SIE9OIENPTlZFUlNJT04g RVJST1IgKQorPC9zeW5vcHNpcz4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC0yMTI1LDYg KzIxMjksMzQgQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4g QVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgICA8eHJlZiBsaW5rZW5kPSJz cWwtY3JlYXRlY2FzdCIvPi4KICAgICA8L3BhcmE+CiAgICA8L25vdGU+CisKKyA8c2VjdDMgaWQ9 InNxbC1zeW50YXgtdHlwZS1jYXN0cy1zYWZlIj4KKyAgPHRpdGxlPlNhZmUgVHlwZSBDYXN0PC90 aXRsZT4KKyAgIDxwYXJhPgorICAgIEEgdHlwZSBjYXN0IG1heSBvY2Nhc2lvbmFsbHkgZmFpbC4g VG8gZ3VhcmQgYWdhaW5zdCBzdWNoIGZhaWx1cmVzLCB5b3UgY2FuCisgICAgcHJvdmlkZSBhbiA8 bGl0ZXJhbD5PTiBDT05WRVJTSU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UgdG8gaGFuZGxlIHBv dGVudGlhbCBlcnJvcnMuCisgICAgVGhlIHN5bnRheCBmb3Igc2FmZSB0eXBlIGNhc3QgaXM6Cis8 c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBB UyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IERFRkFVTFQgPHJlcGxhY2VhYmxlPmV4 cHJlc3Npb248L3JlcGxhY2VhYmxlPiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lub3BzaXM+ CisgICAgSWYgdGhlIHR5cGUgY2FzdCBmYWlscywgYW4gZXJyb3IgaXMgbm90IHJhaXNlZC4gIElu c3RlYWQsIGV2YWx1YXRpb24gZmFsbHMKKyAgICBiYWNrIHRvIHRoZSBkZWZhdWx0IDxyZXBsYWNl YWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gc3BlY2lmaWVkIGluIHRoZQorICAgIDxsaXRl cmFsPk9OIENPTlZFUlNJT04gRVJST1I8L2xpdGVyYWw+IGNsYXVzZS4KKyAgICBBdCBwcmVzZW50 LCB0aGlzIG9ubHkgc3VwcG9ydCBidWlsdC1pbiB0eXBlIGNhc3RzLCBzZWUgPHhyZWYgbGlua2Vu ZD0iY2F0YWxvZy1wZy1jYXN0Ii8+LgorICAgIFVzZXItZGVmaW5lZCB0eXBlIGNhc3RzIGNyZWF0 ZWQgd2l0aCA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JFQVRFIENBU1Q8L2xpbms+ CisgICAgYXJlIG5vdCBzdXBwb3J0ZWQuCisgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgIFNv bWUgZXhhbXBsZXM6Cis8c2NyZWVuPgorU0VMRUNUIENBU1QoVEVYVCAnZXJyb3InIEFTIGludGVn ZXIgREVGQVVMVCAzIE9OIENPTlZFUlNJT04gRVJST1IpOworPGxpbmVhbm5vdGF0aW9uPlJlc3Vs dDogPC9saW5lYW5ub3RhdGlvbj48Y29tcHV0ZXJvdXRwdXQ+MzwvY29tcHV0ZXJvdXRwdXQ+CitT RUxFQ1QgQ0FTVChURVhUICdlcnJvcicgQVMgbnVtZXJpYyBERUZBVUxUIDEuMSBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKzxsaW5lYW5ub3RhdGlvbj5SZXN1bHQ6IDwvbGluZWFubm90YXRpb24+PGNv bXB1dGVyb3V0cHV0PjEuMTwvY29tcHV0ZXJvdXRwdXQ+Cis8L3NjcmVlbj4KKyAgICA8L3BhcmE+ CisgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJzcWwtc3ludGF4LWNvbGxh dGUtZXhwcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggNzcyMjkxNDFiMzguLmMyNTEx Nzk0NTRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTk5LDYgKzk5LDkgQEAgc3RhdGlj IHZvaWQgRXhlY0J1aWxkQWdnVHJhbnNDYWxsKEV4cHJTdGF0ZSAqc3RhdGUsIEFnZ1N0YXRlICph Z2dzdGF0ZSwKIHN0YXRpYyB2b2lkIEV4ZWNJbml0SnNvbkV4cHIoSnNvbkV4cHIgKmpzZXhwciwg RXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQkgRGF0dW0gKnJlc3YsIGJvb2wgKnJlc251bGwsCiAJ CQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCk7CitzdGF0aWMgdm9pZCBFeGVjSW5pdFNhZmVU eXBlQ2FzdEV4cHIoU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciwgRXhwclN0YXRlICpzdGF0ZSwK KwkJCQkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKKwkJCQkJCQkJCSBFeHByRXZh bFN0ZXAgKnNjcmF0Y2gpOwogc3RhdGljIHZvaWQgRXhlY0luaXRKc29uQ29lcmNpb24oRXhwclN0 YXRlICpzdGF0ZSwgSnNvblJldHVybmluZyAqcmV0dXJuaW5nLAogCQkJCQkJCQkgRXJyb3JTYXZl Q29udGV4dCAqZXNjb250ZXh0LCBib29sIG9taXRfcXVvdGVzLAogCQkJCQkJCQkgYm9vbCBleGlz dHNfY29lcmNlLApAQCAtMTczNCw2ICsxNzM3LDcgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5v ZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAKIAkJCQllbGVtc3RhdGUtPmlubmVybW9zdF9jYXNldmFs ID0gcGFsbG9jX29iamVjdChEYXR1bSk7CiAJCQkJZWxlbXN0YXRlLT5pbm5lcm1vc3RfY2FzZW51 bGwgPSBwYWxsb2Nfb2JqZWN0KGJvb2wpOworCQkJCWVsZW1zdGF0ZS0+ZXNjb250ZXh0ID0gc3Rh dGUtPmVzY29udGV4dDsKIAogCQkJCUV4ZWNJbml0RXhwclJlYyhhY29lcmNlLT5lbGVtZXhwciwg ZWxlbXN0YXRlLAogCQkJCQkJCQkmZWxlbXN0YXRlLT5yZXN2YWx1ZSwgJmVsZW1zdGF0ZS0+cmVz bnVsbCk7CkBAIC0yMjA5LDYgKzIyMTMsMTUgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUs IEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBl Q2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciA9IGNhc3ROb2Rl KFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJRXhlY0luaXRTYWZlVHlwZUNhc3RFeHBy KHN0Y2V4cHIsIHN0YXRlLCByZXN2LCByZXNudWxsLCAmc2NyYXRjaCk7CisKKwkJCQlicmVhazsK KwkJCX0KKwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAq Y29hbGVzY2UgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC0yNzM2LDYgKzI3NDksNyBAQCBF eGVjSW5pdEZ1bmMoRXhwckV2YWxTdGVwICpzY3JhdGNoLCBFeHByICpub2RlLCBMaXN0ICphcmdz LCBPaWQgZnVuY2lkLAogCUZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvOwogCWludAkJCWFyZ25vOwog CUxpc3RDZWxsICAgKmxjOworCU5vZGUJICAgKmNvbnRleHQgPSBOVUxMOwogCiAJLyogQ2hlY2sg cGVybWlzc2lvbiB0byBjYWxsIGZ1bmN0aW9uICovCiAJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNo ZWNrKFByb2NlZHVyZVJlbGF0aW9uSWQsIGZ1bmNpZCwgR2V0VXNlcklkKCksIEFDTF9FWEVDVVRF KTsKQEAgLTI3NDMsNiArMjc1Nyw5IEBAIEV4ZWNJbml0RnVuYyhFeHByRXZhbFN0ZXAgKnNjcmF0 Y2gsIEV4cHIgKm5vZGUsIExpc3QgKmFyZ3MsIE9pZCBmdW5jaWQsCiAJCWFjbGNoZWNrX2Vycm9y KGFjbHJlc3VsdCwgT0JKRUNUX0ZVTkNUSU9OLCBnZXRfZnVuY19uYW1lKGZ1bmNpZCkpOwogCUlu dm9rZUZ1bmN0aW9uRXhlY3V0ZUhvb2soZnVuY2lkKTsKIAorCWlmIChJc0Eobm9kZSwgRnVuY0V4 cHIpICYmICgoRnVuY0V4cHIgKikgbm9kZSktPmVycm9yc2FmZSkKKwkJY29udGV4dCA9IChOb2Rl ICopIHN0YXRlLT5lc2NvbnRleHQ7CisKIAkvKgogCSAqIFNhZmV0eSBjaGVjayBvbiBuYXJncy4g IFVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzIHRoaXMgc2hvdWxkIG5ldmVyCiAJICogZmFpbCwg YXMgcGFyc2VyIHNob3VsZCBjaGVjayBzb29uZXIuICBCdXQgcG9zc2libHkgaXQgbWlnaHQgZmFp bCBpZgpAQCAtMjc2OSw3ICsyNzg2LDggQEAgRXhlY0luaXRGdW5jKEV4cHJFdmFsU3RlcCAqc2Ny YXRjaCwgRXhwciAqbm9kZSwgTGlzdCAqYXJncywgT2lkIGZ1bmNpZCwKIAogCS8qIEluaXRpYWxp emUgZnVuY3Rpb24gY2FsbCBwYXJhbWV0ZXIgc3RydWN0dXJlIHRvbyAqLwogCUluaXRGdW5jdGlv bkNhbGxJbmZvRGF0YSgqZmNpbmZvLCBmbGluZm8sCi0JCQkJCQkJIG5hcmdzLCBpbnB1dGNvbGxp ZCwgTlVMTCwgTlVMTCk7CisJCQkJCQkJIG5hcmdzLCBpbnB1dGNvbGxpZCwKKwkJCQkJCQkgY29u dGV4dCwgTlVMTCk7CiAKIAkvKiBLZWVwIGV4dHJhIGNvcGllcyBvZiB0aGlzIGluZm8gdG8gc2F2 ZSBhbiBpbmRpcmVjdGlvbiBhdCBydW50aW1lICovCiAJc2NyYXRjaC0+ZC5mdW5jLmZuX2FkZHIg PSBmbGluZm8tPmZuX2FkZHI7CkBAIC00NzcwLDYgKzQ3ODgsNTIgQEAgRXhlY0J1aWxkUGFyYW1T ZXRFcXVhbChUdXBsZURlc2MgZGVzYywKIAlyZXR1cm4gc3RhdGU7CiB9CiAKKy8qCisgKiBQdXNo IHN0ZXBzIHRvIGV2YWx1YXRlIGEgU2FmZVR5cGVDYXN0RXhwciBhbmQgaXRzIHZhcmlvdXMgc3Vi c2lkaWFyeQorICogZXhwcmVzc2lvbnMuCisgKi8KK3N0YXRpYyB2b2lkCitFeGVjSW5pdFNhZmVU eXBlQ2FzdEV4cHIoU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciwgRXhwclN0YXRlICpzdGF0ZSwK KwkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKKwkJCQkJCSBFeHByRXZhbFN0ZXAg KnNjcmF0Y2gpCit7CisJLyoKKwkgKiBDb2VyY2lvbiB0byB0aGUgdGFyZ2V0IHR5cGUgZmFpbGVk LiBGYWxsaW5nIGJhY2sgdG8gdGhlIERFRkFVTFQKKwkgKiBleHByZXNzaW9uIGZyb20gdGhlIE9O IENPTlZFUlNJT04gRVJST1IgY2xhdXNlIHRvIGZpbmlzaC4KKwkgKi8KKwlpZiAoc3RjZXhwci0+ Y2FzdGV4cHIgPT0gTlVMTCkKKwl7CisJCUV4ZWNJbml0RXhwclJlYyhzdGNleHByLT5kZWZleHBy LCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJcmV0dXJuOworCX0KKwllbHNlCisJeworCQlT YWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGUgPSBwYWxsb2MwX29iamVjdChTYWZlVHlwZUNhc3RT dGF0ZSk7CisJCUVycm9yU2F2ZUNvbnRleHQgKnNhdmVkX2VzY29udGV4dCA9IHN0YXRlLT5lc2Nv bnRleHQ7CisKKwkJc3Rjc3RhdGUtPnN0Y2V4cHIgPSBzdGNleHByOworCQlzdGNzdGF0ZS0+ZXNj b250ZXh0LnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJCXN0YXRlLT5lc2NvbnRleHQgPSAm c3Rjc3RhdGUtPmVzY29udGV4dDsKKworCQkvKiBldmFsdWF0ZSBhcmd1bWVudCBleHByZXNzaW9u IGludG8gc3RlcCdzIHJlc3VsdCBhcmVhICovCisJCUV4ZWNJbml0RXhwclJlYyhzdGNleHByLT5j YXN0ZXhwciwgc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlzY3JhdGNoLT5vcGNvZGUgPSBFRU9Q X1NBRkVUWVBFX0NBU1Q7CisJCXNjcmF0Y2gtPmQuc3RjZXhwci5zdGNzdGF0ZSA9IHN0Y3N0YXRl OworCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCBzY3JhdGNoKTsKKworCQkvKgorCQkgKiBFdmFs dWF0ZSB0aGUgREVGQVVMVCBleHByZXNzaW9uIGNhc3QuIHN0YXRlLT5lc2NvbnRleHQgbXVzdCBi ZQorCQkgKiBOVUxMLCBhcyB0aGlzIGV2YWx1YXRpb24gc2hvdWxkIG5vdCBiZSBlcnJvci1zYWZl LgorCQkgKi8KKwkJc3RhdGUtPmVzY29udGV4dCA9IE5VTEw7CisJCUV4ZWNJbml0RXhwclJlYyhz dGNzdGF0ZS0+c3RjZXhwci0+ZGVmZXhwciwgc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlzdGF0 ZS0+ZXNjb250ZXh0ID0gc2F2ZWRfZXNjb250ZXh0OworCisJCXN0Y3N0YXRlLT5qdW1wX2VuZCA9 IHN0YXRlLT5zdGVwc19sZW47CisJfQorfQorCiAvKgogICogUHVzaCBzdGVwcyB0byBldmFsdWF0 ZSBhIEpzb25FeHByIGFuZCBpdHMgdmFyaW91cyBzdWJzaWRpYXJ5IGV4cHJlc3Npb25zLgogICov CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA0MzExNjQzMWVkZi4uNzll YmUwMjU0ZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJw LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTcwLDYg KzU3MCw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICpl Y29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9YTUxFWFBSLAogCQkmJkNBU0Vf RUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCQkmJkNBU0VfRUVPUF9JU19KU09OLAorCQkmJkNBU0Vf RUVPUF9TQUZFVFlQRV9DQVNULAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9QQVRILAogCQkmJkNB U0VfRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJ T05fRklOSVNILApAQCAtMTkyOCw2ICsxOTI5LDI4IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0 ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05F WFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVFT1BfU0FGRVRZUEVfQ0FTVCkKKwkJeworCQkJU2Fm ZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQuc3RjZXhwci5zdGNzdGF0ZTsKKworCQkJ aWYgKCFTT0ZUX0VSUk9SX09DQ1VSUkVEKCZzdGNzdGF0ZS0+ZXNjb250ZXh0KSkKKwkJCQlFRU9f SlVNUChzdGNzdGF0ZS0+anVtcF9lbmQpOworCQkJZWxzZQorCQkJeworCQkJCSpvcC0+cmVzdmFs dWUgPSAoRGF0dW0pIDA7CisJCQkJKm9wLT5yZXNudWxsID0gdHJ1ZTsKKworCQkJCS8qCisJCQkJ ICogUmVzZXQgZm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNoaW5nIGVycm9ycyB3aGVuCisJ CQkJICogY29lcmNpbmcgYSBleHByZXNzaW9uLgorCQkJCSAqLworCQkJCXN0Y3N0YXRlLT5lc2Nv bnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmRl dGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQlFRU9fTkVYVCgpOworCQkJfQorCQl9CisKIAkJ RUVPX0NBU0UoRUVPUF9KU09ORVhQUl9QQVRIKQogCQl7CiAJCQkvKiB0b28gY29tcGxleCBmb3Ig YW4gaW5saW5lIGltcGxlbWVudGF0aW9uICovCkBAIC0zNjQ2LDYgKzM2NjksMTIgQEAgRXhlY0V2 YWxBcnJheUNvZXJjZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLCBFeHByQ29u dGV4dCAqZWNvbnRleHQpCiAJCQkJCQkJICBlY29udGV4dCwKIAkJCQkJCQkgIG9wLT5kLmFycmF5 Y29lcmNlLnJlc3VsdGVsZW10eXBlLAogCQkJCQkJCSAgb3AtPmQuYXJyYXljb2VyY2UuYW1zdGF0 ZSk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChvcC0+ZC5hcnJheWNvZXJjZS5lbGVtZXhw cnN0YXRlLT5lc2NvbnRleHQpKQorCXsKKwkJKm9wLT5yZXN2YWx1ZSA9IChEYXR1bSkgMDsKKwkJ Km9wLT5yZXNudWxsID0gdHJ1ZTsKKwl9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRf ZXhwci5jCmluZGV4IDY1MGYxZDQyYTkzLi4yMzNiZDJhZTI3YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0v bGx2bWppdF9leHByLmMKQEAgLTIyNTYsNiArMjI1Niw2MiBAQCBsbHZtX2NvbXBpbGVfZXhwcihF eHByU3RhdGUgKnN0YXRlKQogCQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgRUVPUF9TQUZFVFlQRV9DQVNUOgorCQkJCXsKKwkJCQkJ U2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQuc3RjZXhwci5zdGNzdGF0ZTsKKwkJ CQkJTExWTUJhc2ljQmxvY2tSZWYgYl9ub2Vycm9yOworCQkJCQlMTFZNQmFzaWNCbG9ja1JlZiBi X2Vycm9yOworCQkJCQlMTFZNVmFsdWVSZWYgdl9lcnJvcl9vY2N1cnJlZF9wOworCQkJCQlMTFZN VmFsdWVSZWYgdl9kZXRhaWxzX3dhbnRlZF9wOworCQkJCQlMTFZNVmFsdWVSZWYgdl9lcnJvcl9v Y2N1cnJlZDsKKworCQkJCQliX25vZXJyb3IgPSBsX2JiX2JlZm9yZV92KG9wYmxvY2tzW29wbm8g KyAxXSwKKwkJCQkJCQkJCQkJICAib3AuJWQubm9lcnJvciIsIG9wbm8pOworCQkJCQliX2Vycm9y ID0gbF9iYl9iZWZvcmVfdihvcGJsb2Nrc1tvcG5vICsgMV0sCisJCQkJCQkJCQkJCSJvcC4lZC5l cnJvciIsIG9wbm8pOworCisJCQkJCS8qIEdldCBwb2ludGVyIHRvIGVycm9yX29jY3VycmVkIGZp ZWxkICovCisJCQkJCXZfZXJyb3Jfb2NjdXJyZWRfcCA9IGxfcHRyX2NvbnN0KCZzdGNzdGF0ZS0+ ZXNjb250ZXh0LmVycm9yX29jY3VycmVkLAorCQkJCQkJCQkJCQkJCSBsX3B0cihUeXBlU3RvcmFn ZUJvb2wpKTsKKworCQkJCQkvKiBMb2FkIGVycm9yX29jY3VycmVkIGF0IHJ1bnRpbWUgKi8KKwkJ CQkJdl9lcnJvcl9vY2N1cnJlZCA9IGxfbG9hZChiLCBUeXBlU3RvcmFnZUJvb2wsIHZfZXJyb3Jf b2NjdXJyZWRfcCwgIiIpOworCisJCQkJCS8qIEJyYW5jaCBiYXNlZCBvbiBlcnJvcl9vY2N1cnJl ZDogbm8gZXJyb3IgLT4ganVtcF9lbmQgKi8KKwkJCQkJTExWTUJ1aWxkQ29uZEJyKGIsCisJCQkJ CQkJCQlMTFZNQnVpbGRJQ21wKGIsIExMVk1JbnRFUSwgdl9lcnJvcl9vY2N1cnJlZCwKKwkJCQkJ CQkJCQkJCSAgbF9zYm9vbF9jb25zdCgwKSwgIiIpLAorCQkJCQkJCQkJYl9ub2Vycm9yLAorCQkJ CQkJCQkJYl9lcnJvcik7CisKKwkJCQkJLyogTm8gZXJyb3I6IGp1bXAgdG8gZW5kICovCisJCQkJ CUxMVk1Qb3NpdGlvbkJ1aWxkZXJBdEVuZChiLCBiX25vZXJyb3IpOworCQkJCQlMTFZNQnVpbGRC cihiLCBvcGJsb2Nrc1tzdGNzdGF0ZS0+anVtcF9lbmRdKTsKKworCQkJCQkvKiBFcnJvciBvY2N1 cnJlZDogc2V0IG51bGwsIHJlc2V0IGZsYWdzLCBldmFsdWF0ZSBkZWZhdWx0ICovCisJCQkJCUxM Vk1Qb3NpdGlvbkJ1aWxkZXJBdEVuZChiLCBiX2Vycm9yKTsKKworCQkJCQkvKiBzZXQgcmVzbnVs bCB0byB0cnVlICovCisJCQkJCUxMVk1CdWlsZFN0b3JlKGIsIGxfc2Jvb2xfY29uc3QoMSksIHZf cmVzbnVsbHApOworCisJCQkJCS8qIHJlc2V0IHJlc3ZhbHVlICovCisJCQkJCUxMVk1CdWlsZFN0 b3JlKGIsIGxfZGF0dW1fY29uc3QoMCksIHZfcmVzdmFsdWVwKTsKKworCQkJCQkvKgorCQkJCQkg KiBSZXNldCBmb3IgbmV4dCB1c2Ugc3VjaCBhcyBmb3IgY2F0Y2hpbmcgZXJyb3JzIHdoZW4KKwkJ CQkJICogY29lcmNpbmcgYSBleHByZXNzaW9uLgorCQkJCQkgKi8KKwkJCQkJTExWTUJ1aWxkU3Rv cmUoYiwgbF9zYm9vbF9jb25zdCgwKSwgdl9lcnJvcl9vY2N1cnJlZF9wKTsKKworCQkJCQl2X2Rl dGFpbHNfd2FudGVkX3AgPSBsX3B0cl9jb25zdCgmc3Rjc3RhdGUtPmVzY29udGV4dC5kZXRhaWxz X3dhbnRlZCwKKwkJCQkJCQkJCQkJCQkgbF9wdHIoVHlwZVN0b3JhZ2VCb29sKSk7CisJCQkJCUxM Vk1CdWlsZFN0b3JlKGIsIGxfc2Jvb2xfY29uc3QoMCksIHZfZGV0YWlsc193YW50ZWRfcCk7CisK KwkJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKworCQkJCQlicmVhazsK KwkJCQl9CisKIAkJCWNhc2UgRUVPUF9KU09ORVhQUl9QQVRIOgogCQkJCXsKIAkJCQkJSnNvbkV4 cHJTdGF0ZSAqanNlc3RhdGUgPSBvcC0+ZC5qc29uZXhwci5qc2VzdGF0ZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1 bmNzLmMKaW5kZXggM2NkMzVjNWM0NTcuLjVhMTA5MWQwZDQ4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9ub2Rlcy9tYWtlZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3Mu YwpAQCAtNjA1LDYgKzYwNSw3IEBAIG1ha2VGdW5jRXhwcihPaWQgZnVuY2lkLCBPaWQgcmV0dHlw ZSwgTGlzdCAqYXJncywKIAlmdW5jZXhwci0+ZnVuY2NvbGxpZCA9IGZ1bmNjb2xsaWQ7CiAJZnVu Y2V4cHItPmlucHV0Y29sbGlkID0gaW5wdXRjb2xsaWQ7CiAJZnVuY2V4cHItPmFyZ3MgPSBhcmdz OworCWZ1bmNleHByLT5lcnJvcnNhZmUgPSBmYWxzZTsKIAlmdW5jZXhwci0+bG9jYXRpb24gPSAt MTsKIAogCXJldHVybiBmdW5jZXhwcjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggNmE4NTAzNDlj ZjcuLmI1ZTg5YjdmNjBjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjA2LDYgKzIwNiw5IEBA IGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9Sb3dDb21wYXJlRXhwcjoKIAkJ CXR5cGUgPSBCT09MT0lEOwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgor CQkJdHlwZSA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0dHlwZTsK KwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJdHlwZSA9ICgoY29uc3QgQ29h bGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZXR5cGU7CiAJCQlicmVhazsKQEAgLTQ1Myw2ICs0 NTYsOCBAQCBleHByVHlwbW9kKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkJcmV0dXJuIHR5cG1vZDsK IAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXJldHVybiAo KGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdHR5cG1vZDsKIAkJY2FzZSBU X0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQkvKgpAQCAtOTcwLDYgKzk3NSw5IEBAIGV4cHJDb2xs YXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIFJvd0NvbXBhcmVFeHByJ3MgcmVzdWx0IGlz IGJvb2xlYW4gLi4uICovCiAJCQljb2xsID0gSW52YWxpZE9pZDsJLyogLi4uIHNvIGl0IGhhcyBu byBjb2xsYXRpb24gKi8KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJ CWNvbGwgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZDsK KwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJY29sbCA9ICgoY29uc3QgQ29h bGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZDsKIAkJCWJyZWFrOwpAQCAtMTI0MCw2 ICsxMjQ4LDkgQEAgZXhwclNldENvbGxhdGlvbihOb2RlICpleHByLCBPaWQgY29sbGF0aW9uKQog CQkJLyogUm93Q29tcGFyZUV4cHIncyByZXN1bHQgaXMgYm9vbGVhbiAuLi4gKi8KIAkJCUFzc2Vy dCghT2lkSXNWYWxpZChjb2xsYXRpb24pKTsgLyogLi4uIHNvIG5ldmVyIHNldCBhIGNvbGxhdGlv biAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJKChTYWZlVHlw ZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQgPSBjb2xsYXRpb247CisJCQlicmVhazsK IAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCSgoQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2Fs ZXNjZWNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFrOwpAQCAtMTU1OCw2ICsxNTY5LDkgQEAg ZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkvKiBqdXN0IHVzZSBsZWZ0bW9zdCBh cmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBleHByTG9jYXRpb24oKE5vZGUgKikgKChj b25zdCBSb3dDb21wYXJlRXhwciAqKSBleHByKS0+bGFyZ3MpOwogCQkJYnJlYWs7CisJCWNhc2Ug VF9TYWZlVHlwZUNhc3RFeHByOgorCQkJbG9jID0gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICop IGV4cHIpLT5sb2NhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJ LyogQ09BTEVTQ0Uga2V5d29yZCBzaG91bGQgYWx3YXlzIGJlIHRoZSBmaXJzdCB0aGluZyAqLwog CQkJbG9jID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmxvY2F0aW9uOwpAQCAtMjMz Myw2ICsyMzQ3LDE4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAog CQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0 RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGNleHByID0gY2FzdE5vZGUoU2Fm ZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQlpZiAoV0FMSyhzdGNleHByLT5zb3VyY2UpKQor CQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdGNleHByLT5jYXN0ZXhwcikpCisJCQkJ CXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0Y2V4cHItPmRlZmV4cHIpKQorCQkJCQlyZXR1 cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJcmV0 dXJuIFdBTEsoKChDb2FsZXNjZUV4cHIgKikgbm9kZSktPmFyZ3MpOwogCQljYXNlIFRfTWluTWF4 RXhwcjoKQEAgLTMzNjgsNiArMzM5NCwxOSBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRvcl9pbXBs KE5vZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CiAJCQl9CiAJCQlicmVh azsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhw ciAqc3RjZXhwciA9IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCQkJCVNhZmVU eXBlQ2FzdEV4cHIgKm5ld25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBzdGNleHByLCBT YWZlVHlwZUNhc3RFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+c291cmNlLCBzdGNleHByLT5z b3VyY2UsIEV4cHIgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmNhc3RleHByLCBzdGNleHByLT5j YXN0ZXhwciwgRXhwciAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+ZGVmZXhwciwgc3RjZXhwci0+ ZGVmZXhwciwgRXhwciAqKTsKKworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOworCQkJfQor CQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VFeHBy ICpjb2FsZXNjZWV4cHIgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC00NTA0LDYgKzQ1NDMs MjAgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQly ZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyh0Yy0+dHlwZU5hbWUpKQogCQkJCQlyZXR1cm4gdHJ1 ZTsKKwkJCQlpZiAoV0FMSyh0Yy0+ZGVmZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQor CQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBl Q2FzdEV4cHIgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKwor CQkJCWlmIChXQUxLKHN0Y2V4cHItPnNvdXJjZSkpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlm IChXQUxLKHN0Y2V4cHItPmNhc3RleHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdB TEsoc3RjZXhwci0+ZGVmZXhwcikpCisJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7 CiAJCWNhc2UgVF9Db2xsYXRlQ2xhdXNlOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5j CmluZGV4IDlmYjI2NmQwODlkLi45NDBiZDE1NTc3NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGls L2NsYXVzZXMuYwpAQCAtNjksNiArNjksNyBAQCB0eXBlZGVmIHN0cnVjdAogCUxpc3QJICAgKmFj dGl2ZV9mbnM7CiAJTm9kZQkgICAqY2FzZV92YWw7CiAJYm9vbAkJZXN0aW1hdGU7CisJRXJyb3JT YXZlQ29udGV4dCAqZXNjb250ZXh0OwogfSBldmFsX2NvbnN0X2V4cHJlc3Npb25zX2NvbnRleHQ7 CiAKIHR5cGVkZWYgc3RydWN0CkBAIC0yNTA3LDYgKzI1MDgsNyBAQCBldmFsX2NvbnN0X2V4cHJl c3Npb25zKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogCWNvbnRleHQuYWN0aXZlX2Zu cyA9IE5JTDsJLyogbm90aGluZyBiZWluZyByZWN1cnNpdmVseSBzaW1wbGlmaWVkICovCiAJY29u dGV4dC5jYXNlX3ZhbCA9IE5VTEw7CS8qIG5vIENBU0UgYmVpbmcgZXhhbWluZWQgKi8KIAljb250 ZXh0LmVzdGltYXRlID0gZmFsc2U7CS8qIHNhZmUgdHJhbnNmb3JtYXRpb25zIG9ubHkgKi8KKwlj b250ZXh0LmVzY29udGV4dCA9IE5VTEw7CS8qIGZvciBlcnJvci1zYWZlIGV4cHJlc3Npb24gZXZh bHVhdGlvbiAqLwogCXJldHVybiBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3Iobm9kZSwg JmNvbnRleHQpOwogfQogCkBAIC0yNjQ2LDYgKzI2NDgsNyBAQCBlc3RpbWF0ZV9leHByZXNzaW9u X3ZhbHVlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogCWNvbnRleHQuYWN0aXZlX2Zu cyA9IE5JTDsJLyogbm90aGluZyBiZWluZyByZWN1cnNpdmVseSBzaW1wbGlmaWVkICovCiAJY29u dGV4dC5jYXNlX3ZhbCA9IE5VTEw7CS8qIG5vIENBU0UgYmVpbmcgZXhhbWluZWQgKi8KIAljb250 ZXh0LmVzdGltYXRlID0gdHJ1ZTsJLyogdW5zYWZlIHRyYW5zZm9ybWF0aW9ucyBPSyAqLworCWNv bnRleHQuZXNjb250ZXh0ID0gTlVMTDsJLyogZm9yIGVycm9yLXNhZmUgZXhwcmVzc2lvbiBldmFs dWF0aW9uICovCiAJcmV0dXJuIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihub2RlLCAm Y29udGV4dCk7CiB9CiAKQEAgLTI2NzEsMTEgKzI2NzQsMTIgQEAgZXN0aW1hdGVfZXhwcmVzc2lv bl92YWx1ZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKIAkoIWV4cHJlc3Npb25fdHJl ZV93YWxrZXIoKE5vZGUgKikgKG5vZGUpLCBjb250YWluX25vbl9jb25zdF93YWxrZXIsIE5VTEwp KQogCiAvKiBHZW5lcmljIG1hY3JvIGZvciBhcHBseWluZyBldmFsdWF0ZV9leHByICovCi0jZGVm aW5lIGVjZV9ldmFsdWF0ZV9leHByKG5vZGUpIFwKKyNkZWZpbmUgZWNlX2V2YWx1YXRlX2V4cHIo bm9kZSwgZXNjb250ZXh0KSBcCiAJKChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgKG5v ZGUpLCBcCiAJCQkJCQkJZXhwclR5cGUoKE5vZGUgKikgKG5vZGUpKSwgXAogCQkJCQkJCWV4cHJU eXBtb2QoKE5vZGUgKikgKG5vZGUpKSwgXAotCQkJCQkJCWV4cHJDb2xsYXRpb24oKE5vZGUgKikg KG5vZGUpKSkpCisJCQkJCQkJZXhwckNvbGxhdGlvbigoTm9kZSAqKSAobm9kZSkpLCBcCisJCQkJ CQkJZXNjb250ZXh0KSkKIAogLyoKICAqIFJlY3Vyc2l2ZSBndXRzIG9mIGV2YWxfY29uc3RfZXhw cmVzc2lvbnMvZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1ZQpAQCAtMjg2MSw2ICsyODY1LDcgQEAg ZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJbmV3ZXhwci0+ ZnVuY2NvbGxpZCA9IGV4cHItPmZ1bmNjb2xsaWQ7CiAJCQkJbmV3ZXhwci0+aW5wdXRjb2xsaWQg PSBleHByLT5pbnB1dGNvbGxpZDsKIAkJCQluZXdleHByLT5hcmdzID0gYXJnczsKKwkJCQluZXdl eHByLT5lcnJvcnNhZmUgPSBleHByLT5lcnJvcnNhZmU7CiAJCQkJbmV3ZXhwci0+bG9jYXRpb24g PSBleHByLT5sb2NhdGlvbjsKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhwcjsKIAkJCX0KQEAg LTMxMzYsNyArMzE0MSw3IEBAIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpu b2RlLAogCiAJCQkJaWYgKCFoYXNfbm9uY29uc3RfaW5wdXQgJiYKIAkJCQkJZWNlX2Z1bmN0aW9u X2lzX3NhZmUoZXhwci0+b3BmdW5jaWQsIGNvbnRleHQpKQotCQkJCQlyZXR1cm4gZWNlX2V2YWx1 YXRlX2V4cHIoZXhwcik7CisJCQkJCXJldHVybiBlY2VfZXZhbHVhdGVfZXhwcihleHByLCAoTm9k ZSAqKSBjb250ZXh0LT5lc2NvbnRleHQpOwogCiAJCQkJcmV0dXJuIChOb2RlICopIGV4cHI7CiAJ CQl9CkBAIC0zMTU2LDcgKzMxNjEsNyBAQCBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3Io Tm9kZSAqbm9kZSwKIAkJCQkgKi8KIAkJCQlpZiAoZWNlX2FsbF9hcmd1bWVudHNfY29uc3Qoc2Fv cCkgJiYKIAkJCQkJZWNlX2Z1bmN0aW9uX2lzX3NhZmUoc2FvcC0+b3BmdW5jaWQsIGNvbnRleHQp KQotCQkJCQlyZXR1cm4gZWNlX2V2YWx1YXRlX2V4cHIoc2FvcCk7CisJCQkJCXJldHVybiBlY2Vf ZXZhbHVhdGVfZXhwcihzYW9wLCAoTm9kZSAqKSBjb250ZXh0LT5lc2NvbnRleHQpOwogCQkJCXJl dHVybiAoTm9kZSAqKSBzYW9wOwogCQkJfQogCQljYXNlIFRfQm9vbEV4cHI6CkBAIC0zMjY3LDYg KzMyNzIsNDIgQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJ CQkJCQkJCQkJCQkgIGNvcHlPYmplY3QoanZlLT5mb3JtYXQpKTsKIAkJCX0KIAorCQljYXNlIFRf U2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGMgPSBjYXN0 Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpuZXdl eHByID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0RXhwcik7CisKKwkJCQlOb2RlCSAgICpjYXN0ZXhw ciA9IChOb2RlICopIHN0Yy0+Y2FzdGV4cHI7CisJCQkJTm9kZQkgICAqZGVmZXhwciA9IChOb2Rl ICopIHN0Yy0+ZGVmZXhwcjsKKworCQkJCS8qCisJCQkJICogTm8gbmVlZCB0byBmb2xkICJzb3Vy Y2UiIHRvIGEgY29uc3RhbnQuIFRoZSBleGVjdXRvciBkb2VzCisJCQkJICogbm90IHVzZSBpdCwg c2VlIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcikuIEFkZGl0aW9uYWxseSwKKwkJCQkgKiBjYXN0 ZXhwciBleHByZXNzaW9uIHRyZWUgbWF5IGFscmVhZHkgY29udGFpbiB0aGUgInNvdXJjZSIKKwkJ CQkgKiBub2RlLgorCQkJCSAqLworCQkJCWNvbnRleHQtPmVzY29udGV4dCA9IG1ha2VOb2RlKEVy cm9yU2F2ZUNvbnRleHQpOworCQkJCWNvbnRleHQtPmVzY29udGV4dC0+dHlwZSA9IFRfRXJyb3JT YXZlQ29udGV4dDsKKwkJCQljb250ZXh0LT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFs c2U7CisKKwkJCQljYXN0ZXhwciA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihjYXN0 ZXhwciwKKwkJCQkJCQkJCQkJCQkJICBjb250ZXh0KTsKKwkJCQlwZnJlZShjb250ZXh0LT5lc2Nv bnRleHQpOworCQkJCWNvbnRleHQtPmVzY29udGV4dCA9IE5VTEw7CisKKwkJCQlkZWZleHByID0g ZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKGRlZmV4cHIsCisJCQkJCQkJCQkJCQkJCSBj b250ZXh0KTsKKworCQkJCW5ld2V4cHItPnNvdXJjZSA9IChFeHByICopIHN0Yy0+c291cmNlOwor CQkJCW5ld2V4cHItPmNhc3RleHByID0gKEV4cHIgKikgY2FzdGV4cHI7CisJCQkJbmV3ZXhwci0+ ZGVmZXhwciA9IChFeHByICopIGRlZmV4cHI7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwZSA9IHN0 Yy0+cmVzdWx0dHlwZTsKKwkJCQluZXdleHByLT5yZXN1bHR0eXBtb2QgPSBzdGMtPnJlc3VsdHR5 cG1vZDsKKwkJCQluZXdleHByLT5yZXN1bHRjb2xsaWQgPSBzdGMtPnJlc3VsdGNvbGxpZDsKKwor CQkJCXJldHVybiAoTm9kZSAqKSBuZXdleHByOworCQkJfQorCiAJCWNhc2UgVF9TdWJQbGFuOgog CQljYXNlIFRfQWx0ZXJuYXRpdmVTdWJQbGFuOgogCkBAIC0zNDE5LDcgKzM0NjAsNyBAQCBldmFs X2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQlpZiAoYWMtPmFyZyAm JiBJc0EoYWMtPmFyZywgQ29uc3QpICYmCiAJCQkJCWFjLT5lbGVtZXhwciAmJiAhSXNBKGFjLT5l bGVtZXhwciwgQ29lcmNlVG9Eb21haW4pICYmCiAJCQkJCSFjb250YWluX211dGFibGVfZnVuY3Rp b25zKChOb2RlICopIGFjLT5lbGVtZXhwcikpCi0JCQkJCXJldHVybiBlY2VfZXZhbHVhdGVfZXhw cihhYyk7CisJCQkJCXJldHVybiBlY2VfZXZhbHVhdGVfZXhwcihhYywgKE5vZGUgKikgY29udGV4 dC0+ZXNjb250ZXh0KTsKIAogCQkJCXJldHVybiAoTm9kZSAqKSBhYzsKIAkJCX0KQEAgLTM2MTUs NyArMzY1Niw3IEBAIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2RlLAog CQkJCW5vZGUgPSBlY2VfZ2VuZXJpY19wcm9jZXNzaW5nKG5vZGUpOwogCQkJCS8qIElmIGFsbCBh cmd1bWVudHMgYXJlIENvbnN0cywgd2UgY2FuIGZvbGQgdG8gYSBjb25zdGFudCAqLwogCQkJCWlm IChlY2VfYWxsX2FyZ3VtZW50c19jb25zdChub2RlKSkKLQkJCQkJcmV0dXJuIGVjZV9ldmFsdWF0 ZV9leHByKG5vZGUpOworCQkJCQlyZXR1cm4gZWNlX2V2YWx1YXRlX2V4cHIobm9kZSwgKE5vZGUg KikgY29udGV4dC0+ZXNjb250ZXh0KTsKIAkJCQlyZXR1cm4gbm9kZTsKIAkJCX0KIAkJY2FzZSBU X0NvYWxlc2NlRXhwcjoKQEAgLTM2OTgsNyArMzczOSw4IEBAIGV2YWxfY29uc3RfZXhwcmVzc2lv bnNfbXV0YXRvcihOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gKE5vZGUgKikgZXZhbHVhdGVfZXhw cigoRXhwciAqKSBzdmYsCiAJCQkJCQkJCQkJCQkgIHN2Zi0+dHlwZSwKIAkJCQkJCQkJCQkJCSAg c3ZmLT50eXBtb2QsCi0JCQkJCQkJCQkJCQkgIEludmFsaWRPaWQpOworCQkJCQkJCQkJCQkJICBJ bnZhbGlkT2lkLAorCQkJCQkJCQkJCQkJICBOVUxMKTsKIAkJCQllbHNlCiAJCQkJCXJldHVybiBj b3B5T2JqZWN0KChOb2RlICopIHN2Zik7CiAJCQl9CkBAIC0zNzk1LDcgKzM4MzcsNyBAQCBldmFs X2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCQkJCQkJICBuZXdm c2VsZWN0LT5yZXN1bHR0eXBlLAogCQkJCQkJCQkJCQkgIG5ld2ZzZWxlY3QtPnJlc3VsdHR5cG1v ZCwKIAkJCQkJCQkJCQkJICBuZXdmc2VsZWN0LT5yZXN1bHRjb2xsaWQpKQotCQkJCQkJcmV0dXJu IGVjZV9ldmFsdWF0ZV9leHByKG5ld2ZzZWxlY3QpOworCQkJCQkJcmV0dXJuIGVjZV9ldmFsdWF0 ZV9leHByKG5ld2ZzZWxlY3QsIChOb2RlICopIGNvbnRleHQtPmVzY29udGV4dCk7CiAJCQkJfQog CQkJCXJldHVybiAoTm9kZSAqKSBuZXdmc2VsZWN0OwogCQkJfQpAQCAtNDEyNSw3ICs0MTY3LDcg QEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJbmV3Y3Jl LT5hcmcgPSAoRXhwciAqKSBhcmc7CiAKIAkJCQlpZiAoYXJnICE9IE5VTEwgJiYgSXNBKGFyZywg Q29uc3QpKQotCQkJCQlyZXR1cm4gZWNlX2V2YWx1YXRlX2V4cHIoKE5vZGUgKikgbmV3Y3JlKTsK KwkJCQkJcmV0dXJuIGVjZV9ldmFsdWF0ZV9leHByKChOb2RlICopIG5ld2NyZSwgKE5vZGUgKikg Y29udGV4dC0+ZXNjb250ZXh0KTsKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3Y3JlOwogCQkJfQog CQlkZWZhdWx0OgpAQCAtNDU0Niw2ICs0NTg4LDcgQEAgc2ltcGxpZnlfZnVuY3Rpb24oT2lkIGZ1 bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCQlmZXhwci5mdW5j Y29sbGlkID0gcmVzdWx0X2NvbGxpZDsKIAkJZmV4cHIuaW5wdXRjb2xsaWQgPSBpbnB1dF9jb2xs aWQ7CiAJCWZleHByLmFyZ3MgPSBhcmdzOworCQlmZXhwci5lcnJvcnNhZmUgPSBmYWxzZTsKIAkJ ZmV4cHIubG9jYXRpb24gPSAtMTsKIAogCQlyZXEudHlwZSA9IFRfU3VwcG9ydFJlcXVlc3RTaW1w bGlmeTsKQEAgLTUyMjYsMTAgKzUyNjksMTEgQEAgZXZhbHVhdGVfZnVuY3Rpb24oT2lkIGZ1bmNp ZCwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCW5ld2V4cHItPmZ1bmNj b2xsaWQgPSByZXN1bHRfY29sbGlkOwkvKiBkb2Vzbid0IG1hdHRlciAqLwogCW5ld2V4cHItPmlu cHV0Y29sbGlkID0gaW5wdXRfY29sbGlkOwogCW5ld2V4cHItPmFyZ3MgPSBhcmdzOworCW5ld2V4 cHItPmVycm9yc2FmZSA9IGNvbnRleHQtPmVzY29udGV4dCA/IHRydWUgOiBmYWxzZTsKIAluZXdl eHByLT5sb2NhdGlvbiA9IC0xOwogCiAJcmV0dXJuIGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgbmV3 ZXhwciwgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBtb2QsCi0JCQkJCQkgcmVzdWx0X2NvbGxpZCk7 CisJCQkJCQkgcmVzdWx0X2NvbGxpZCwgKE5vZGUgKikgY29udGV4dC0+ZXNjb250ZXh0KTsKIH0K IAogLyoKQEAgLTUzMzgsNiArNTM4Miw4IEBAIGlubGluZV9mdW5jdGlvbihPaWQgZnVuY2lkLCBP aWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAogCWZleHByLT5mdW5jY29sbGlkID0g cmVzdWx0X2NvbGxpZDsJLyogZG9lc24ndCBtYXR0ZXIgKi8KIAlmZXhwci0+aW5wdXRjb2xsaWQg PSBpbnB1dF9jb2xsaWQ7CiAJZmV4cHItPmFyZ3MgPSBhcmdzOworCS8qIENhbm5vdCBldmFsdWF0 ZSBTUUwgbGFuZ3VhZ2UgZnVuY3Rpb25zIGluIGFuIGVycm9yLXNhZmUgbWFubmVyLiAqLworCWZl eHByLT5lcnJvcnNhZmUgPSBmYWxzZTsKIAlmZXhwci0+bG9jYXRpb24gPSAtMTsKIAogCS8qIEZl dGNoIHRoZSBmdW5jdGlvbiBib2R5ICovCkBAIC01NjgzLDEwICs1NzI5LDEzIEBAIHNxbF9pbmxp bmVfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogICoKICAqIFdlIHVzZSB0aGUgZXhlY3V0b3In cyByb3V0aW5lIEV4ZWNFdmFsRXhwcigpIHRvIGF2b2lkIGR1cGxpY2F0aW9uIG9mCiAgKiBjb2Rl IGFuZCBlbnN1cmUgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyB0aGUgZXhlY3V0b3Igd291bGQg Z2V0LgorICoKKyAqIFdoZW4gZXNjb250ZXh0IGlzIG5vbi1OVUxMLCBzYWZlbHkgZXZhbHVhdGVz IHRoZSBjb25zdGFudCBleHByZXNzaW9uLgorICogUmV0dXJucyBOVUxMIG9uIGZhaWx1cmUgcmF0 aGVyIHRoYW4gdGhyb3dpbmcgYW4gZXJyb3IuCiAgKi8KIEV4cHIgKgogZXZhbHVhdGVfZXhwcihF eHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCi0JCQkgIE9p ZCByZXN1bHRfY29sbGF0aW9uKQorCQkJICBPaWQgcmVzdWx0X2NvbGxhdGlvbiwgTm9kZSAqZXNj b250ZXh0KQogewogCUVTdGF0ZQkgICAqZXN0YXRlOwogCUV4cHJTdGF0ZSAgKmV4cHJzdGF0ZTsK QEAgLTU3MTEsNyArNTc2MCw3IEBAIGV2YWx1YXRlX2V4cHIoRXhwciAqZXhwciwgT2lkIHJlc3Vs dF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCSAqIFByZXBhcmUgZXhwciBmb3IgZXhlY3V0 aW9uLiAgKE5vdGU6IHdlIGNhbid0IHVzZSBFeGVjUHJlcGFyZUV4cHIKIAkgKiBiZWNhdXNlIGl0 J2QgcmVzdWx0IGluIHJlY3Vyc2l2ZWx5IGludm9raW5nIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMu KQogCSAqLwotCWV4cHJzdGF0ZSA9IEV4ZWNJbml0RXhwcihleHByLCBOVUxMKTsKKwlleHByc3Rh dGUgPSBFeGVjSW5pdEV4cHJXaXRoQ29udGV4dChleHByLCBOVUxMLCBlc2NvbnRleHQpOwogCiAJ LyoKIAkgKiBBbmQgZXZhbHVhdGUgaXQuCkBAIC01NzMxLDYgKzU3ODAsMTMgQEAgZXZhbHVhdGVf ZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCiAJ LyogR2V0IGJhY2sgdG8gb3V0ZXIgbWVtb3J5IGNvbnRleHQgKi8KIAlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY29udGV4dCk7CiAKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChleHByc3RhdGUt PmVzY29udGV4dCkpCisJeworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCisJCXJldHVy biBOVUxMOworCX0KKwogCS8qCiAJICogTXVzdCBjb3B5IHJlc3VsdCBvdXQgb2Ygc3ViLWNvbnRl eHQgdXNlZCBieSBleHByZXNzaW9uIGV2YWwuCiAJICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDBmZWE3MjZj ZGQ1Li4yYWMwNDU2NWFmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xNTgsNiArMTU4LDggQEAgc3RhdGlj IHZvaWQgdXBkYXRlUmF3U3RtdEVuZChSYXdTdG10ICpycywgaW50IGVuZF9sb2NhdGlvbik7CiBz dGF0aWMgTm9kZSAqbWFrZUNvbHVtblJlZihjaGFyICpjb2xuYW1lLCBMaXN0ICppbmRpcmVjdGlv biwKIAkJCQkJCSAgIGludCBsb2NhdGlvbiwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwogc3Rh dGljIE5vZGUgKm1ha2VUeXBlQ2FzdChOb2RlICphcmcsIFR5cGVOYW1lICp0eXBlbmFtZSwgaW50 IGxvY2F0aW9uKTsKK3N0YXRpYyBOb2RlICptYWtlVHlwZUNhc3RXaXRoRGVmYXVsdChOb2RlICph cmcsIFR5cGVOYW1lICp0eXBlbmFtZSwKKwkJCQkJCQkJCSBOb2RlICpyYXdfZGVmYXVsdCwgaW50 IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlU3RyaW5nQ29uc3RDYXN0KGNoYXIgKnN0ciwg aW50IGxvY2F0aW9uLCBUeXBlTmFtZSAqdHlwZW5hbWUpOwogc3RhdGljIE5vZGUgKm1ha2VJbnRD b25zdChpbnQgdmFsLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VGbG9hdENvbnN0 KGNoYXIgKnN0ciwgaW50IGxvY2F0aW9uKTsKQEAgLTE2Njg3LDYgKzE2Njg5LDEyIEBAIGZ1bmNf ZXhwcl9jb21tb25fc3ViZXhwcjoKIAkJCQl9CiAJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBl bmFtZSAnKScKIAkJCQl7ICQkID0gbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOyB9CisJCQl8IENB U1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBFUlJPUl9QIE9OIENPTlZFUlNJT05fUCBFUlJPUl9Q ICcpJworCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0KKwkJCXwgQ0FTVCAn KCcgYV9leHByIEFTIFR5cGVuYW1lIE5VTExfUCBPTiBDT05WRVJTSU9OX1AgRVJST1JfUCAnKScK KwkJCQl7ICQkID0gbWFrZVR5cGVDYXN0V2l0aERlZmF1bHQoJDMsICQ1LCBtYWtlTnVsbEFDb25z dCgtMSksIEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgREVGQVVMVCBh X2V4cHIgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeyAkJCA9IG1ha2VUeXBlQ2Fz dFdpdGhEZWZhdWx0KCQzLCAkNSwgJDcsIEAxKTsgfQogCQkJfCBFWFRSQUNUICcoJyBleHRyYWN0 X2xpc3QgJyknCiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VGdW5jQ2FsbChTeXN0ZW1G dW5jTmFtZSgiZXh0cmFjdCIpLApAQCAtMTk4NDgsMTAgKzE5ODU2LDI1IEBAIG1ha2VUeXBlQ2Fz dChOb2RlICphcmcsIFR5cGVOYW1lICp0eXBlbmFtZSwgaW50IGxvY2F0aW9uKQogCiAJbi0+YXJn ID0gYXJnOwogCW4tPnR5cGVOYW1lID0gdHlwZW5hbWU7CisJbi0+ZGVmZXhwciA9IE5VTEw7CiAJ bi0+bG9jYXRpb24gPSBsb2NhdGlvbjsKIAlyZXR1cm4gKE5vZGUgKikgbjsKIH0KIAorc3RhdGlj IE5vZGUgKgorbWFrZVR5cGVDYXN0V2l0aERlZmF1bHQoTm9kZSAqYXJnLCBUeXBlTmFtZSAqdHlw ZW5hbWUsIE5vZGUgKmRlZmV4cHIsCisJCQkJCQlpbnQgbG9jYXRpb24pCit7CisJVHlwZUNhc3Qg ICAqbiA9IG1ha2VOb2RlKFR5cGVDYXN0KTsKKworCW4tPmFyZyA9IGFyZzsKKwluLT50eXBlTmFt ZSA9IHR5cGVuYW1lOworCW4tPmRlZmV4cHIgPSBkZWZleHByOworCW4tPmxvY2F0aW9uID0gbG9j YXRpb247CisKKwlyZXR1cm4gKE5vZGUgKikgbjsKK30KKwogc3RhdGljIE5vZGUgKgogbWFrZVN0 cmluZ0NvbnN0Q2FzdChjaGFyICpzdHIsIGludCBsb2NhdGlvbiwgVHlwZU5hbWUgKnR5cGVuYW1l KQogewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDYwNzZlOTM3M2MxLi4wN2M3MzUyMWRmMiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNDkxLDYgKzQ5MSwxMiBAQCBjaGVja19hZ2dsZXZl bHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCQll cnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjaGVjayBjb25z dHJhaW50cyIpOwogCiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgor CQkJaWYgKGlzQWdnKQorCQkJCWVyciA9IF8oImFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBh bGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJZWxzZQorCQkJCWVyciA9 IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBl eHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxU OgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCkBAIC05OTIsNiArOTk4LDkg QEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dGdW5j ICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygid2lu ZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY2hlY2sgY29uc3RyYWludHMiKTsKIAkJ CWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJ3aW5k b3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMi KTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBF WFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9jb2VyY2UuYwppbmRleCA5MTNjYTUzNjY2Zi4uY2RkNjIwNDRhNjAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY29lcmNlLmMKQEAgLTM3LDE0ICszNywxNiBAQCBzdGF0aWMgTm9kZSAqY29lcmNlX3R5 cGVfdHlwbW9kKE5vZGUgKm5vZGUsCiAJCQkJCQkJCU9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRh cmdldFR5cE1vZCwKIAkJCQkJCQkJQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZv cm0gY2Zvcm1hdCwKIAkJCQkJCQkJaW50IGxvY2F0aW9uLAotCQkJCQkJCQlib29sIGhpZGVJbnB1 dENvZXJjaW9uKTsKKwkJCQkJCQkJYm9vbCBoaWRlSW5wdXRDb2VyY2lvbiwKKwkJCQkJCQkJTm9k ZSAqZXNjb250ZXh0KTsKIHN0YXRpYyB2b2lkIGhpZGVfY29lcmNpb25fbm9kZShOb2RlICpub2Rl KTsKIHN0YXRpYyBOb2RlICpidWlsZF9jb2VyY2lvbl9leHByZXNzaW9uKE5vZGUgKm5vZGUsCiAJ CQkJCQkJCQkgICBDb2VyY2lvblBhdGhUeXBlIHBhdGh0eXBlLAogCQkJCQkJCQkJICAgT2lkIGZ1 bmNJZCwKIAkJCQkJCQkJCSAgIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cE1vZCwK IAkJCQkJCQkJCSAgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3Jt YXQsCi0JCQkJCQkJCQkgICBpbnQgbG9jYXRpb24pOworCQkJCQkJCQkJICAgaW50IGxvY2F0aW9u LAorCQkJCQkJCQkJICAgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBOb2RlICpjb2VyY2VfcmVj b3JkX3RvX2NvbXBsZXgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkJCQkJCQkJ ICBPaWQgdGFyZ2V0VHlwZUlkLAogCQkJCQkJCQkJICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQs CkBAIC04MSw2ICs4MywyOCBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCiAJCQkJCSAgQ29lcmNpb25Db250ZXh0IGNj b250ZXh0LAogCQkJCQkgIENvZXJjaW9uRm9ybSBjZm9ybWF0LAogCQkJCQkgIGludCBsb2NhdGlv bikKK3sKKwlyZXR1cm4gY29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgZXhw ciwgZXhwcnR5cGUsCisJCQkJCQkJCQkJICB0YXJnZXR0eXBlLCB0YXJnZXR0eXBtb2QsCisJCQkJ CQkJCQkJICBjY29udGV4dCwKKwkJCQkJCQkJCQkgIGNmb3JtYXQsCisJCQkJCQkJCQkJICBsb2Nh dGlvbiwKKwkJCQkJCQkJCQkgIE5VTEwpOworfQorCisvKgorICogZXNjb250ZXh0OiBJZiBub24t TlVMTCwgc2FmZWx5IGNvZXJjZXMgJ2V4cHInIHRvIHRoZSB0YXJnZXQgdHlwZQorICogd2l0aG91 dCByYWlzaW5nIGFuIGVycm9yLiBSZXR1cm5zIE5VTEwgaWYgdGhlIGNvZXJjaW9uIGZhaWxzLgor ICoKKyAqIFNlZSAnY29lcmNlX3RvX3RhcmdldF90eXBlJyBhYm92ZSBmb3IgZGV0YWlscyBvbiBv dGhlciBwYXJhbWV0ZXJzLgorICovCitOb2RlICoKK2NvZXJjZV90b190YXJnZXRfdHlwZV9leHRl bmRlZChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIE9pZCBleHBydHlwZSwKKwkJCQkJ CQkgICBPaWQgdGFyZ2V0dHlwZSwgaW50MzIgdGFyZ2V0dHlwbW9kLAorCQkJCQkJCSAgIENvZXJj aW9uQ29udGV4dCBjY29udGV4dCwKKwkJCQkJCQkgICBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKKwkJ CQkJCQkgICBpbnQgbG9jYXRpb24sCisJCQkJCQkJICAgTm9kZSAqZXNjb250ZXh0KQogewogCU5v ZGUJICAgKnJlc3VsdDsKIAlOb2RlCSAgICpvcmlnZXhwcjsKQEAgLTEwMiw5ICsxMjYsMTUgQEAg Y29lcmNlX3RvX3RhcmdldF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgT2lk IGV4cHJ0eXBlLAogCXdoaWxlIChleHByICYmIElzQShleHByLCBDb2xsYXRlRXhwcikpCiAJCWV4 cHIgPSAoTm9kZSAqKSAoKENvbGxhdGVFeHByICopIGV4cHIpLT5hcmc7CiAKLQlyZXN1bHQgPSBj b2VyY2VfdHlwZShwc3RhdGUsIGV4cHIsIGV4cHJ0eXBlLAotCQkJCQkJIHRhcmdldHR5cGUsIHRh cmdldHR5cG1vZCwKLQkJCQkJCSBjY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24pOworCXJlc3Vs dCA9IGNvZXJjZV90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgZXhwciwgZXhwcnR5cGUsCisJCQkJCQkJ CSAgdGFyZ2V0dHlwZSwgdGFyZ2V0dHlwbW9kLAorCQkJCQkJCQkgIGNjb250ZXh0LAorCQkJCQkJ CQkgIGNmb3JtYXQsCisJCQkJCQkJCSAgbG9jYXRpb24sCisJCQkJCQkJCSAgZXNjb250ZXh0KTsK KworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBOVUxMOwog CiAJLyoKIAkgKiBJZiB0aGUgdGFyZ2V0IGlzIGEgZml4ZWQtbGVuZ3RoIHR5cGUsIGl0IG1heSBu ZWVkIGEgbGVuZ3RoIGNvZXJjaW9uIGFzCkBAIC0xMTQsNyArMTQ0LDExIEBAIGNvZXJjZV90b190 YXJnZXRfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIE9pZCBleHBydHlwZSwK IAlyZXN1bHQgPSBjb2VyY2VfdHlwZV90eXBtb2QocmVzdWx0LAogCQkJCQkJCQl0YXJnZXR0eXBl LCB0YXJnZXR0eXBtb2QsCiAJCQkJCQkJCWNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbiwKLQkJ CQkJCQkJKHJlc3VsdCAhPSBleHByICYmICFJc0EocmVzdWx0LCBDb25zdCkpKTsKKwkJCQkJCQkJ KHJlc3VsdCAhPSBleHByICYmICFJc0EocmVzdWx0LCBDb25zdCkpLAorCQkJCQkJCQllc2NvbnRl eHQpOworCisJaWYgKHJlc3VsdCA9PSBOVUxMKQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KKwkJ ZWxvZyhFUlJPUiwgImZhaWxlZCB0byBjb2VyY2UgdHlwZSBtb2RpZmllciBhcyBleHBlY3RlZCIp OwogCiAJaWYgKGV4cHIgIT0gb3JpZ2V4cHIgJiYgdHlwZV9pc19jb2xsYXRhYmxlKHRhcmdldHR5 cGUpKQogCXsKQEAgLTE1OCw2ICsxOTIsMTggQEAgTm9kZSAqCiBjb2VyY2VfdHlwZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCQlPaWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRU eXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJCQlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQs IENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24pCit7CisJcmV0dXJuIGNvZXJjZV90 eXBlX2V4dGVuZGVkKHBzdGF0ZSwgbm9kZSwKKwkJCQkJCQkJaW5wdXRUeXBlSWQsIHRhcmdldFR5 cGVJZCwgdGFyZ2V0VHlwZU1vZCwKKwkJCQkJCQkJY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9u LAorCQkJCQkJCQlOVUxMKTsKK30KKworTm9kZSAqCitjb2VyY2VfdHlwZV9leHRlbmRlZChQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCisJCQkJCSBPaWQgaW5wdXRUeXBlSWQsIE9pZCB0 YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCisJCQkJCSBDb2VyY2lvbkNvbnRleHQg Y2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24sCisJCQkJCSBOb2Rl ICplc2NvbnRleHQpCiB7CiAJTm9kZQkgICAqcmVzdWx0OwogCUNvZXJjaW9uUGF0aFR5cGUgcGF0 aHR5cGU7CkBAIC0yNTYsNiArMzAyLDcgQEAgY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpub2RlLAogCQlpbnQzMgkJaW5wdXRUeXBlTW9kOwogCQlUeXBlCQliYXNlVHlwZTsK IAkJUGFyc2VDYWxsYmFja1N0YXRlIHBjYnN0YXRlOworCQljaGFyCSAgICpzdHJpbmcgPSBOVUxM OwogCiAJCS8qCiAJCSAqIElmIHRoZSB0YXJnZXQgdHlwZSBpcyBhIGRvbWFpbiwgd2Ugd2FudCB0 byBjYWxsIGl0cyBiYXNlIHR5cGUncwpAQCAtMzA5LDEzICszNTYsMjEgQEAgY29lcmNlX3R5cGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkgKiBhcyBDU1RSSU5HLgogCQkgKi8K IAkJaWYgKCFjb24tPmNvbnN0aXNudWxsKQotCQkJbmV3Y29uLT5jb25zdHZhbHVlID0gc3RyaW5n VHlwZURhdHVtKGJhc2VUeXBlLAotCQkJCQkJCQkJCQkJIERhdHVtR2V0Q1N0cmluZyhjb24tPmNv bnN0dmFsdWUpLAotCQkJCQkJCQkJCQkJIGlucHV0VHlwZU1vZCk7Ci0JCWVsc2UKLQkJCW5ld2Nv bi0+Y29uc3R2YWx1ZSA9IHN0cmluZ1R5cGVEYXR1bShiYXNlVHlwZSwKLQkJCQkJCQkJCQkJCSBO VUxMLAotCQkJCQkJCQkJCQkJIGlucHV0VHlwZU1vZCk7CisJCQlzdHJpbmcgPSBEYXR1bUdldENT dHJpbmcoY29uLT5jb25zdHZhbHVlKTsKKworCQlpZiAoIXN0cmluZ1R5cGVEYXR1bVNhZmUoYmFz ZVR5cGUsCisJCQkJCQkJCSBzdHJpbmcsCisJCQkJCQkJCSBpbnB1dFR5cGVNb2QsCisJCQkJCQkJ CSBlc2NvbnRleHQsCisJCQkJCQkJCSAmbmV3Y29uLT5jb25zdHZhbHVlKSkKKwkJeworCQkJLyog VU5LTk9XTiBDb25zdCBjYW5ub3QgY29lcmNlIHRvIHRhcmdldFR5cGUsIGV4aXQgbm93ICovCisJ CQljYW5jZWxfcGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSk7CisKKwkJCVJl bGVhc2VTeXNDYWNoZShiYXNlVHlwZSk7CisKKwkJCXJldHVybiBOVUxMOworCQl9CiAKIAkJLyoK IAkJICogSWYgaXQncyBhIHZhcmxlbmEgdmFsdWUsIGZvcmNlIGl0IHRvIGJlIGluIG5vbi1leHBh bmRlZApAQCAtMzY0LDcgKzQxOSw4IEBAIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Tm9kZSAqbm9kZSwKIAkJCQkJCQkJCSAgYmFzZVR5cGVJZCwgYmFzZVR5cGVNb2QsCiAJCQkJCQkJ CQkgIHRhcmdldFR5cGVJZCwKIAkJCQkJCQkJCSAgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9u LAotCQkJCQkJCQkJICBmYWxzZSk7CisJCQkJCQkJCQkgIGZhbHNlLAorCQkJCQkJCQkJICBlc2Nv bnRleHQpOwogCiAJCVJlbGVhc2VTeXNDYWNoZShiYXNlVHlwZSk7CiAKQEAgLTM5Nyw5ICs0NTMs MTEgQEAgY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkgKi8K IAkJQ29sbGF0ZUV4cHIgKmNvbGwgPSAoQ29sbGF0ZUV4cHIgKikgbm9kZTsKIAotCQlyZXN1bHQg PSBjb2VyY2VfdHlwZShwc3RhdGUsIChOb2RlICopIGNvbGwtPmFyZywKLQkJCQkJCQkgaW5wdXRU eXBlSWQsIHRhcmdldFR5cGVJZCwgdGFyZ2V0VHlwZU1vZCwKLQkJCQkJCQkgY2NvbnRleHQsIGNm b3JtYXQsIGxvY2F0aW9uKTsKKwkJcmVzdWx0ID0gY29lcmNlX3R5cGVfZXh0ZW5kZWQocHN0YXRl LCAoTm9kZSAqKSBjb2xsLT5hcmcsCisJCQkJCQkJCQkgIGlucHV0VHlwZUlkLCB0YXJnZXRUeXBl SWQsIHRhcmdldFR5cGVNb2QsCisJCQkJCQkJCQkgIGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlv biwKKwkJCQkJCQkJCSAgZXNjb250ZXh0KTsKKwogCQlpZiAodHlwZV9pc19jb2xsYXRhYmxlKHRh cmdldFR5cGVJZCkpCiAJCXsKIAkJCUNvbGxhdGVFeHByICpuZXdjb2xsID0gbWFrZU5vZGUoQ29s bGF0ZUV4cHIpOwpAQCAtNDMyLDcgKzQ5MCw4IEBAIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgTm9kZSAqbm9kZSwKIAkJCSAqLwogCQkJcmVzdWx0ID0gYnVpbGRfY29lcmNpb25fZXhw cmVzc2lvbihub2RlLCBwYXRodHlwZSwgZnVuY0lkLAogCQkJCQkJCQkJCQkgICBiYXNlVHlwZUlk LCBiYXNlVHlwZU1vZCwKLQkJCQkJCQkJCQkJICAgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9u KTsKKwkJCQkJCQkJCQkJICAgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uLAorCQkJCQkJCQkJ CQkgICBlc2NvbnRleHQpOwogCiAJCQkvKgogCQkJICogSWYgZG9tYWluLCBjb2VyY2UgdG8gdGhl IGRvbWFpbiB0eXBlIGFuZCByZWxhYmVsIHdpdGggZG9tYWluCkBAIC00NDIsNyArNTAxLDggQEAg Y29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkJCXJlc3VsdCA9 IGNvZXJjZV90b19kb21haW4ocmVzdWx0LCBiYXNlVHlwZUlkLCBiYXNlVHlwZU1vZCwKIAkJCQkJ CQkJCQkgIHRhcmdldFR5cGVJZCwKIAkJCQkJCQkJCQkgIGNjb250ZXh0LCBjZm9ybWF0LCBsb2Nh dGlvbiwKLQkJCQkJCQkJCQkgIHRydWUpOworCQkJCQkJCQkJCSAgdHJ1ZSwKKwkJCQkJCQkJCQkg IGVzY29udGV4dCk7CiAJCX0KIAkJZWxzZQogCQl7CkBAIC00NTgsNyArNTE4LDkgQEAgY29lcmNl X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkJcmVzdWx0ID0gY29lcmNl X3RvX2RvbWFpbihub2RlLCBiYXNlVHlwZUlkLCBiYXNlVHlwZU1vZCwKIAkJCQkJCQkJCSAgdGFy Z2V0VHlwZUlkLAogCQkJCQkJCQkJICBjY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24sCi0JCQkJ CQkJCQkgIGZhbHNlKTsKKwkJCQkJCQkJCSAgZmFsc2UsCisJCQkJCQkJCQkgIGVzY29udGV4dCk7 CisKIAkJCWlmIChyZXN1bHQgPT0gbm9kZSkKIAkJCXsKIAkJCQkvKgpAQCAtNjc1LDcgKzczNyw4 IEBAIGNhbl9jb2VyY2VfdHlwZShpbnQgbmFyZ3MsIGNvbnN0IE9pZCAqaW5wdXRfdHlwZWlkcywg Y29uc3QgT2lkICp0YXJnZXRfdHlwZWlkcywKIE5vZGUgKgogY29lcmNlX3RvX2RvbWFpbihOb2Rl ICphcmcsIE9pZCBiYXNlVHlwZUlkLCBpbnQzMiBiYXNlVHlwZU1vZCwgT2lkIHR5cGVJZCwKIAkJ CQkgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxv Y2F0aW9uLAotCQkJCSBib29sIGhpZGVJbnB1dENvZXJjaW9uKQorCQkJCSBib29sIGhpZGVJbnB1 dENvZXJjaW9uLAorCQkJCSBOb2RlICplc2NvbnRleHQpCiB7CiAJQ29lcmNlVG9Eb21haW4gKnJl c3VsdDsKIApAQCAtNzA1LDcgKzc2OCwxMCBAQCBjb2VyY2VfdG9fZG9tYWluKE5vZGUgKmFyZywg T2lkIGJhc2VUeXBlSWQsIGludDMyIGJhc2VUeXBlTW9kLCBPaWQgdHlwZUlkLAogCSAqLwogCWFy ZyA9IGNvZXJjZV90eXBlX3R5cG1vZChhcmcsIGJhc2VUeXBlSWQsIGJhc2VUeXBlTW9kLAogCQkJ CQkJCSBjY29udGV4dCwgQ09FUkNFX0lNUExJQ0lUX0NBU1QsIGxvY2F0aW9uLAotCQkJCQkJCSBm YWxzZSk7CisJCQkJCQkJIGZhbHNlLAorCQkJCQkJCSBlc2NvbnRleHQpOworCWlmIChhcmcgPT0g TlVMTCkJCQkvKiBzaG91bGRuJ3QgaGFwcGVuICovCisJCWVsb2coRVJST1IsICJmYWlsZWQgdG8g Y29lcmNlIHR5cGUgbW9kaWZpZXIgYXMgZXhwZWN0ZWQiKTsKIAogCS8qCiAJICogTm93IGJ1aWxk IHRoZSBkb21haW4gY29lcmNpb24gbm9kZS4gIFRoaXMgcmVwcmVzZW50cyBydW4tdGltZSBjaGVj a2luZwpAQCAtNzUyLDcgKzgxOCw4IEBAIHN0YXRpYyBOb2RlICoKIGNvZXJjZV90eXBlX3R5cG1v ZChOb2RlICpub2RlLCBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0YXJnZXRUeXBNb2QsCiAJCQkJ ICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKIAkJCQkg ICBpbnQgbG9jYXRpb24sCi0JCQkJICAgYm9vbCBoaWRlSW5wdXRDb2VyY2lvbikKKwkJCQkgICBi b29sIGhpZGVJbnB1dENvZXJjaW9uLAorCQkJCSAgIE5vZGUgKmVzY29udGV4dCkKIHsKIAlDb2Vy Y2lvblBhdGhUeXBlIHBhdGh0eXBlOwogCU9pZAkJCWZ1bmNJZDsKQEAgLTc3OSw3ICs4NDYsOCBA QCBjb2VyY2VfdHlwZV90eXBtb2QoTm9kZSAqbm9kZSwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIg dGFyZ2V0VHlwTW9kLAogCXsKIAkJbm9kZSA9IGJ1aWxkX2NvZXJjaW9uX2V4cHJlc3Npb24obm9k ZSwgcGF0aHR5cGUsIGZ1bmNJZCwKIAkJCQkJCQkJCQkgdGFyZ2V0VHlwZUlkLCB0YXJnZXRUeXBN b2QsCi0JCQkJCQkJCQkJIGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbik7CisJCQkJCQkJCQkJ IGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbiwKKwkJCQkJCQkJCQkgZXNjb250ZXh0KTsKIAl9 CiAJZWxzZQogCXsKQEAgLTg0MCw3ICs5MDgsOCBAQCBidWlsZF9jb2VyY2lvbl9leHByZXNzaW9u KE5vZGUgKm5vZGUsCiAJCQkJCQkgIE9pZCBmdW5jSWQsCiAJCQkJCQkgIE9pZCB0YXJnZXRUeXBl SWQsIGludDMyIHRhcmdldFR5cE1vZCwKIAkJCQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0 LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKLQkJCQkJCSAgaW50IGxvY2F0aW9uKQorCQkJCQkJICBp bnQgbG9jYXRpb24sCisJCQkJCQkgIE5vZGUgKmVzY29udGV4dCkKIHsKIAlpbnQJCQluYXJncyA9 IDA7CiAKQEAgLTkxMyw2ICs5ODIsOSBAQCBidWlsZF9jb2VyY2lvbl9leHByZXNzaW9uKE5vZGUg Km5vZGUsCiAKIAkJZmV4cHIgPSBtYWtlRnVuY0V4cHIoZnVuY0lkLCB0YXJnZXRUeXBlSWQsIGFy Z3MsCiAJCQkJCQkJIEludmFsaWRPaWQsIEludmFsaWRPaWQsIGNmb3JtYXQpOworCQlpZiAoZXNj b250ZXh0KQorCQkJZmV4cHItPmVycm9yc2FmZSA9IHRydWU7CisKIAkJZmV4cHItPmxvY2F0aW9u ID0gbG9jYXRpb247CiAJCXJldHVybiAoTm9kZSAqKSBmZXhwcjsKIAl9CkBAIC05NTAsMTQgKzEw MjIsMTUgQEAgYnVpbGRfY29lcmNpb25fZXhwcmVzc2lvbihOb2RlICpub2RlLAogCQl0YXJnZXRF bGVtZW50VHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFyZ2V0VHlwZUlkKTsKIAkJQXNzZXJ0KE9p ZElzVmFsaWQodGFyZ2V0RWxlbWVudFR5cGUpKTsKIAotCQllbGVtZXhwciA9IGNvZXJjZV90b190 YXJnZXRfdHlwZShOVUxMLAotCQkJCQkJCQkJCSAoTm9kZSAqKSBjdGVzdCwKLQkJCQkJCQkJCQkg Y3Rlc3QtPnR5cGVJZCwKLQkJCQkJCQkJCQkgdGFyZ2V0RWxlbWVudFR5cGUsCi0JCQkJCQkJCQkJ IHRhcmdldFR5cE1vZCwKLQkJCQkJCQkJCQkgY2NvbnRleHQsCi0JCQkJCQkJCQkJIGNmb3JtYXQs Ci0JCQkJCQkJCQkJIGxvY2F0aW9uKTsKKwkJZWxlbWV4cHIgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5 cGVfZXh0ZW5kZWQoTlVMTCwKKwkJCQkJCQkJCQkJCSAgKE5vZGUgKikgY3Rlc3QsCisJCQkJCQkJ CQkJCQkgIGN0ZXN0LT50eXBlSWQsCisJCQkJCQkJCQkJCQkgIHRhcmdldEVsZW1lbnRUeXBlLAor CQkJCQkJCQkJCQkJICB0YXJnZXRUeXBNb2QsCisJCQkJCQkJCQkJCQkgIGNjb250ZXh0LAorCQkJ CQkJCQkJCQkJICBjZm9ybWF0LAorCQkJCQkJCQkJCQkJICBsb2NhdGlvbiwKKwkJCQkJCQkJCQkJ CSAgZXNjb250ZXh0KTsKIAkJaWYgKGVsZW1leHByID09IE5VTEwpCS8qIHNob3VsZG4ndCBoYXBw ZW4gKi8KIAkJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gY29lcmNlIGFycmF5IGVsZW1lbnQgdHlw ZSBhcyBleHBlY3RlZCIpOwogCkBAIC0xMTQwLDcgKzEyMTMsOCBAQCBjb2VyY2VfcmVjb3JkX3Rv X2NvbXBsZXgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkJCQkJCQliYXNlVHlw ZUlkLCBiYXNlVHlwZU1vZCwKIAkJCQkJCQkJdGFyZ2V0VHlwZUlkLAogCQkJCQkJCQljY29udGV4 dCwgY2Zvcm1hdCwgbG9jYXRpb24sCi0JCQkJCQkJCWZhbHNlKTsKKwkJCQkJCQkJZmFsc2UsCisJ CQkJCQkJCU5VTEwpOwogCX0KIAogCXJldHVybiAoTm9kZSAqKSByb3dleHByOwpAQCAtMTI5NSw3 ICsxMzY5LDggQEAgY29lcmNlX251bGxfdG9fZG9tYWluKE9pZCB0eXBpZCwgaW50MzIgdHlwbW9k LCBPaWQgY29sbGF0aW9uLAogCQkJCQkJCQkgIENPRVJDSU9OX0lNUExJQ0lULAogCQkJCQkJCQkg IENPRVJDRV9JTVBMSUNJVF9DQVNULAogCQkJCQkJCQkgIC0xLAotCQkJCQkJCQkgIGZhbHNlKTsK KwkJCQkJCQkJICBmYWxzZSwKKwkJCQkJCQkJICBOVUxMKTsKIAlyZXR1cm4gcmVzdWx0OwogfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAzMTJkZmRjMTgyYS4uMDZjZjFiNzcwZDIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiYWNj ZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgi CiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBA IC0zOCw2ICszOSw3IEBACiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxz L2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRp bHMvc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1 dGlscy90eXBjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgpAQCAtNjIsNyArNjQsOCBA QCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtTXVsdGlBc3NpZ25SZWYoUGFyc2VTdGF0ZSAqcHN0YXRl LCBNdWx0aUFzc2lnblJlZiAqbWFyZWYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNhc2VFeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FzZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9y bVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKTsKIHN0YXRpYyBO b2RlICp0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAq YSwKLQkJCQkJCQkJT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1v ZCk7CisJCQkJCQkJCU9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBt b2QsCisJCQkJCQkJCWJvb2wgKmlzX2NvZXJjaWJsZSk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3Jt Um93RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIFJvd0V4cHIgKnIsIGJvb2wgYWxsb3dEZWZhdWx0 KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2FsZXNjZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBDb2FsZXNjZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybU1pbk1heEV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBNaW5NYXhFeHByICptKTsKQEAgLTc4LDYgKzgxLDExIEBAIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CSAgaW50IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zv cm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2Fz dCAqdGMpOworc3RhdGljIHZvaWQgQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKmNhc3RleHByLAorCQkJCQkJCQkgICBOb2RlICpzb3VyY2UsIE9pZCBpbnB1 dFR5cGUsIE9pZCB0YXJnZXRUeXBlKTsKK3N0YXRpYyB2b2lkIENvZXJjaW9uRXJyb3JTYWZlX0lu dGVybmFsKE9pZCBpbnB1dFR5cGUsIE9pZCB0YXJnZXRUeXBlLAorCQkJCQkJCQkJICAgYm9vbCAq ZXJyb3JzYWZlX2NvZXJjaW9uLAorCQkJCQkJCQkJICAgYm9vbCAqdXNlcmRlZmluZWQpOwogc3Rh dGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xs YXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2JqZWN0Q29uc3RydWN0 b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQlKc29uT2JqZWN0Q29uc3RydWN0b3Ig KmN0b3IpOwpAQCAtMTY2LDcgKzE3NCw3IEBAIHRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAogCQljYXNlIFRfQV9BcnJheUV4cHI6CiAJCQlyZXN1 bHQgPSB0cmFuc2Zvcm1BcnJheUV4cHIocHN0YXRlLCAoQV9BcnJheUV4cHIgKikgZXhwciwKLQkJ CQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCAtMSk7CisJCQkJCQkJCQkJSW52YWxpZE9p ZCwgSW52YWxpZE9pZCwgLTEsIE5VTEwpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX1R5cGVDYXN0 OgpAQCAtNTY2LDYgKzU3NCw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3Rh dGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKIAkJ Y2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlO X0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5E X0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CiAJ CWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToKQEAgLTE4NDAsNiArMTg0OSw5IEBAIHRy YW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQlj YXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1 ZXJ5IGluIGNoZWNrIGNvbnN0cmFpbnQiKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9D QVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIENBU1QgREVG QVVMVCBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RF RkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJj YW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lvbiIpOwpAQCAtMjAzMCwxMCAr MjA0MiwxNCBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAq c3VibGluaykKICAqIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVzIHRoZSB0YXJnZXQgdHlwZSwgdGhl IHJlc3VsdGluZyBhcnJheSB3aWxsCiAgKiBiZSBvZiBleGFjdGx5IHRoYXQgdHlwZS4gIE90aGVy d2lzZSB3ZSB0cnkgdG8gaW5mZXIgYSBjb21tb24gdHlwZQogICogZm9yIHRoZSBlbGVtZW50cyB1 c2luZyBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKyAqCisgKiBpc19jb2VyY2libGUgaXMgdHlwaWNh bGx5IE5VTEwsIGV4Y2VwdCBkdXJpbmcgcGFyc2UgYW5hbHlzaXMgZm9yCisgKiBDQVNUKC4uLiBE RUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SKS4gV2hlbiBwcm92aWRlZCwgaXQgZGVmYXVs dHMKKyAqIHRvIHRydWUgYnV0IHdpbGwgYmUgc2V0IHRvIGZhbHNlIGlmIGNvZXJjaW5nIGFycmF5 IGVsZW1lbnRzIGZhaWxzLgogICovCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1BcnJheUV4cHIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKLQkJCQkgICBPaWQgYXJyYXlfdHlw ZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kKQorCQkJCSAgIE9pZCBhcnJheV90eXBl LCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QsIGJvb2wgKmlzX2NvZXJjaWJsZSkKIHsK IAlBcnJheUV4cHIgICpuZXdhID0gbWFrZU5vZGUoQXJyYXlFeHByKTsKIAlMaXN0CSAgICpuZXdl bGVtcyA9IE5JTDsKQEAgLTIwNDEsNiArMjA1Nyw3IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCUxpc3RDZWxsICAgKmVsZW1lbnQ7CiAJ T2lkCQkJY29lcmNlX3R5cGU7CiAJYm9vbAkJY29lcmNlX2hhcmQ7CisJRXJyb3JTYXZlQ29udGV4 dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250ZXh0fTsKIAogCS8qCiAJICogVHJhbnNmb3Jt IHRoZSBlbGVtZW50IGV4cHJlc3Npb25zCkBAIC0yMDY0LDkgKzIwODEsMTAgQEAgdHJhbnNmb3Jt QXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJCQkJCQkJCQkg IChBX0FycmF5RXhwciAqKSBlLAogCQkJCQkJCQkJICBhcnJheV90eXBlLAogCQkJCQkJCQkJICBl bGVtZW50X3R5cGUsCi0JCQkJCQkJCQkgIHR5cG1vZCk7CisJCQkJCQkJCQkgIHR5cG1vZCwKKwkJ CQkJCQkJCSAgaXNfY29lcmNpYmxlKTsKIAkJCS8qIHdlIGNlcnRhaW5seSBoYXZlIGFuIGFycmF5 IGhlcmUgKi8KLQkJCUFzc2VydChhcnJheV90eXBlID09IEludmFsaWRPaWQgfHwgYXJyYXlfdHlw ZSA9PSBleHByVHlwZShuZXdlKSk7CisJCQlBc3NlcnQoaXNfY29lcmNpYmxlIHx8IGFycmF5X3R5 cGUgPT0gSW52YWxpZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKIAkJCW5l d2EtPm11bHRpZGltcyA9IHRydWU7CiAJCX0KIAkJZWxzZQpAQCAtMjEwNyw2ICsyMTI1LDggQEAg dHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJ fQogCWVsc2UKIAl7CisJCUFzc2VydChpc19jb2VyY2libGUgPT0gTlVMTCk7CisKIAkJLyogQ2Fu J3QgaGFuZGxlIGFuIGVtcHR5IGFycmF5IHdpdGhvdXQgYSB0YXJnZXQgdHlwZSAqLwogCQlpZiAo bmV3ZWxlbXMgPT0gTklMKQogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTIxNTMsMjggKzIxNzMsNTgg QEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEs CiAJICogSWYgdGhlIGFycmF5J3MgdHlwZSB3YXMgbWVyZWx5IGRlcml2ZWQgZnJvbSB0aGUgY29t bW9uIHR5cGUgb2YgaXRzCiAJICogZWxlbWVudHMsIHRoZW4gdGhlIGVsZW1lbnRzIGFyZSBpbXBs aWNpdGx5IGNvZXJjZWQgdG8gdGhlIGNvbW1vbiB0eXBlLgogCSAqIFRoaXMgaXMgY29uc2lzdGVu dCB3aXRoIG90aGVyIHVzZXMgb2Ygc2VsZWN0X2NvbW1vbl90eXBlKCkuCisJICoKKwkgKiBJZiBp c19jb2VyY2libGUgaXMgbm90IE5VTEwsIGNoZWNrIHdoZXRoZXIgZWFjaCBlbGVtZW50IGNhbiBi ZSBjb2VyY2VkCisJICogdG8gdGhlIHRhcmdldCB0eXBlLCBzaW1pbGFyIHRvIHdoYXQgaXMgZG9u ZSBpbiB0cmFuc2Zvcm1UeXBlQ2FzdC4KIAkgKi8KIAlmb3JlYWNoKGVsZW1lbnQsIG5ld2VsZW1z KQogCXsKIAkJTm9kZQkgICAqZSA9IChOb2RlICopIGxmaXJzdChlbGVtZW50KTsKLQkJTm9kZQkg ICAqbmV3ZTsKKwkJTm9kZQkgICAqbmV3ZSA9IE5VTEw7CiAKIAkJaWYgKGNvZXJjZV9oYXJkKQog CQl7Ci0JCQluZXdlID0gY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgZSwKLQkJCQkJCQkJ CQkgZXhwclR5cGUoZSksCi0JCQkJCQkJCQkJIGNvZXJjZV90eXBlLAotCQkJCQkJCQkJCSB0eXBt b2QsCi0JCQkJCQkJCQkJIENPRVJDSU9OX0VYUExJQ0lULAotCQkJCQkJCQkJCSBDT0VSQ0VfRVhQ TElDSVRfQ0FTVCwKLQkJCQkJCQkJCQkgLTEpOwotCQkJaWYgKG5ld2UgPT0gTlVMTCkKLQkJCQll cmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKLQkJ CQkJCSBlcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMiLAotCQkJCQkJCQlmb3JtYXRf dHlwZV9iZShleHByVHlwZShlKSksCi0JCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvZXJjZV90eXBl KSksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGUpKSkp OworCQkJLyoKKwkJCSAqIENhbm5vdCBjb2VyY2UsIGp1c3QgYXBwZW5kIHRoZSB0cmFuc2Zvcm1l ZCBlbGVtZW50IGV4cHJlc3Npb24KKwkJCSAqIHRvIHRoZSBsaXN0LgorCQkJICovCisJCQlpZiAo aXNfY29lcmNpYmxlICYmICghKmlzX2NvZXJjaWJsZSkpCisJCQkJbmV3ZSA9IGU7CisJCQllbHNl CisJCQl7CisJCQkJTm9kZQkgICAqZWNvcHkgPSBOVUxMOworCisJCQkJaWYgKGlzX2NvZXJjaWJs ZSkKKwkJCQkJZWNvcHkgPSBjb3B5T2JqZWN0KGUpOworCisJCQkJbmV3ZSA9IGNvZXJjZV90b190 YXJnZXRfdHlwZV9leHRlbmRlZChwc3RhdGUsIGUsCisJCQkJCQkJCQkJCQkJICBleHByVHlwZShl KSwKKwkJCQkJCQkJCQkJCQkgIGNvZXJjZV90eXBlLAorCQkJCQkJCQkJCQkJCSAgdHlwbW9kLAor CQkJCQkJCQkJCQkJCSAgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJCQkJCQkJCQkJICBDT0VSQ0Vf RVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkJCQkgIC0xLAorCQkJCQkJCQkJCQkJCSAgKE5vZGUg KikgJmVzY29udGV4dCk7CisJCQkJaWYgKG5ld2UgPT0gTlVMTCkKKwkJCQl7CisJCQkJCS8qCisJ CQkJCSAqIENhbm5vdCBjb2VyY2UuIFJhaXNlIGFuIGVycm9yIG9yIGFwcGVuZCB0aGUgdHJhbnNm b3JtZWQKKwkJCQkJICogZWxlbWVudCB0byB0aGUgbGlzdC4KKwkJCQkJICovCisJCQkJCWlmICgh aXNfY29lcmNpYmxlKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9DQU5OT1RfQ09FUkNFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAl cyB0byAlcyIsCisJCQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwclR5cGUoZSkpLAorCQkJCQkJ CQkJCWZvcm1hdF90eXBlX2JlKGNvZXJjZV90eXBlKSksCisJCQkJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZSkpKSk7CisJCQkJCWVsc2UKKwkJCQkJeworCQkJ CQkJbmV3ZSA9IGVjb3B5OworCQkJCQkJKmlzX2NvZXJjaWJsZSA9IGZhbHNlOworCQkJCQl9CisJ CQkJfQorCQkJfQogCQl9CiAJCWVsc2UKIAkJCW5ld2UgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUo cHN0YXRlLCBlLApAQCAtMjcyMywxNyArMjc3Myw2MyBAQCB0cmFuc2Zvcm1XaG9sZVJvd1JlZihQ YXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogc3RhdGljIE5v ZGUgKgogdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMp CiB7Ci0JTm9kZQkgICAqcmVzdWx0OworCVNhZmVUeXBlQ2FzdEV4cHIgKnN0YzsKKwlOb2RlCSAg ICpjYXN0ZXhwciA9IE5VTEw7CisJTm9kZQkgICAqZGVmZXhwciA9IE5VTEw7CiAJTm9kZQkgICAq YXJnID0gdGMtPmFyZzsKKwlOb2RlCSAgICpzb3VyY2U7CiAJTm9kZQkgICAqZXhwcjsKIAlPaWQJ CQlpbnB1dFR5cGU7CiAJT2lkCQkJdGFyZ2V0VHlwZTsKKwlPaWQJCQl0YXJnZXRUeXBlY29sbDsK IAlpbnQzMgkJdGFyZ2V0VHlwbW9kOwogCWludAkJCWxvY2F0aW9uOworCWJvb2wJCWlzX2NvZXJj aWJsZSA9IHRydWU7CisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVD b250ZXh0fTsKIAogCS8qIExvb2sgdXAgdGhlIHR5cGUgbmFtZSBmaXJzdCAqLwogCXR5cGVuYW1l VHlwZUlkQW5kTW9kKHBzdGF0ZSwgdGMtPnR5cGVOYW1lLCAmdGFyZ2V0VHlwZSwgJnRhcmdldFR5 cG1vZCk7CiAKKwl0YXJnZXRUeXBlY29sbCA9IGdldF90eXBjb2xsYXRpb24odGFyZ2V0VHlwZSk7 CisKKwkvKiBsb29raW5nIGF0IERFRkFVTFQgZXhwcmVzc2lvbiAqLworCWlmICh0Yy0+ZGVmZXhw cikKKwl7CisJCU9pZAkJCWRlZkNvbGw7CisKKwkJZGVmZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0 YXRlLCB0Yy0+ZGVmZXhwciwgRVhQUl9LSU5EX0NBU1RfREVGQVVMVCk7CisKKwkJZGVmZXhwciA9 IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsIGRlZmV4cHIsIGV4cHJUeXBlKGRlZmV4cHIp LAorCQkJCQkJCQkJCXRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCQlDT0VSQ0lP Tl9FWFBMSUNJVCwKKwkJCQkJCQkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQll eHByTG9jYXRpb24oZGVmZXhwcikpOworCQlpZiAoZGVmZXhwciA9PSBOVUxMKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAorCQkJCQllcnJt c2coImNhbm5vdCBjb2VyY2UgJXMgZXhwcmVzc2lvbiB0byB0eXBlICVzIiwKKwkJCQkJCSAgICJD QVNUIERFRkFVTFQiLAorCQkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAorCQkJ CQlwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24odGMtPmRl ZmV4cHIpLCBkZWZleHByKSk7CisKKwkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIGRl ZmV4cHIpOworCisJCS8qCisJCSAqIFRoZSBjb2xsYXRpb24gb2YgREVGQVVMVCBleHByZXNzaW9u IG11c3QgbWF0Y2ggdGhlIGNvbGxhdGlvbiBvZiB0aGUKKwkJICogdGFyZ2V0IHR5cGUuCisJCSAq LworCQlkZWZDb2xsID0gZXhwckNvbGxhdGlvbihkZWZleHByKTsKKworCQlpZiAodGFyZ2V0VHlw ZWNvbGwgIT0gZGVmQ29sbCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09E RV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCWVycm1zZygiY29sbGF0aW9uIG9mIENBU1QgREVG QVVMVCBleHByZXNzaW9uIGNvbmZsaWN0cyB3aXRoIHRhcmdldCB0eXBlIGNvbGxhdGlvbiIpLAor CQkJCQllcnJkZXRhaWwoIlwiJXNcIiB2ZXJzdXMgXCIlc1wiIiwKKwkJCQkJCQkgIGdldF9jb2xs YXRpb25fbmFtZShkZWZDb2xsKSwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25fbmFtZSh0YXJnZXRU eXBlY29sbCkpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o ZGVmZXhwcikpKTsKKwl9CisKIAkvKgogCSAqIElmIHRoZSBzdWJqZWN0IG9mIHRoZSB0eXBlY2Fz dCBpcyBhbiBBUlJBWVtdIGNvbnN0cnVjdCBhbmQgdGhlIHRhcmdldAogCSAqIHR5cGUgaXMgYW4g YXJyYXkgdHlwZSwgd2UgaW52b2tlIHRyYW5zZm9ybUFycmF5RXhwcigpIGRpcmVjdGx5IHNvIHRo YXQKQEAgLTI3NjIsNyArMjg1OCw4IEBAIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBz dGF0ZSwgVHlwZUNhc3QgKnRjKQogCQkJCQkJCQkJICAoQV9BcnJheUV4cHIgKikgYXJnLAogCQkJ CQkJCQkJICB0YXJnZXRCYXNlVHlwZSwKIAkJCQkJCQkJCSAgZWxlbWVudFR5cGUsCi0JCQkJCQkJ CQkgIHRhcmdldEJhc2VUeXBtb2QpOworCQkJCQkJCQkJICB0YXJnZXRCYXNlVHlwbW9kLAorCQkJ CQkJCQkJICBkZWZleHByID8gJmlzX2NvZXJjaWJsZSA6IE5VTEwpOwogCQl9CiAJCWVsc2UKIAkJ CWV4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUsIGFyZyk7CkBAIC0yNzgzLDIwICsy ODgwLDIxNCBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0 ICp0YykKIAlpZiAobG9jYXRpb24gPCAwKQogCQlsb2NhdGlvbiA9IHRjLT50eXBlTmFtZS0+bG9j YXRpb247CiAKLQlyZXN1bHQgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBleHByLCBp bnB1dFR5cGUsCi0JCQkJCQkJCSAgIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKLQkJCQkJCQkJ ICAgQ09FUkNJT05fRVhQTElDSVQsCi0JCQkJCQkJCSAgIENPRVJDRV9FWFBMSUNJVF9DQVNULAot CQkJCQkJCQkgICBsb2NhdGlvbik7Ci0JaWYgKHJlc3VsdCA9PSBOVUxMKQorCS8qCisJICogY29l cmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkIGlzIHVubGlrZWx5IHRvIG1vZGlmeSB0aGUgc291 cmNlCisJICogZXhwcmVzc2lvbiwgYnV0IHdlIHN0aWxsIGNyZWF0ZSBhIGNvcHkgYmVmb3JlaGFu ZC4gVGhpcyBhbGxvd3MKKwkgKiBTYWZlVHlwZUNhc3RFeHByIHRvIHJlY2VpdmUgdGhlIHRyYW5z Zm9ybWVkIHNvdXJjZSBleHByZXNzaW9uCisJICogdW5jaGFuZ2VkLgorCSAqLworCXNvdXJjZSA9 IGNvcHlPYmplY3QoZXhwcik7CisKKwlpZiAoaXNfY29lcmNpYmxlKQorCXsKKwkJY2FzdGV4cHIg PSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQocHN0YXRlLCBleHByLCBpbnB1dFR5cGUs CisJCQkJCQkJCQkJCQkgIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCQkJCSAg Q09FUkNJT05fRVhQTElDSVQsCisJCQkJCQkJCQkJCQkgIENPRVJDRV9FWFBMSUNJVF9DQVNULAor CQkJCQkJCQkJCQkJICBsb2NhdGlvbiwKKwkJCQkJCQkJCQkJCSAgZGVmZXhwciA/IChOb2RlICop ICZlc2NvbnRleHQgOiBOVUxMKTsKKworCQkvKiBDYW5ub3QgY29lcmNlLiBTZXQgaXNfY29lcmNp YmxlIHRvIGZhbHNlIG9yIHJhaXNlIGFuIGVycm9yICovCisJCWlmICghY2FzdGV4cHIpCisJCXsK KwkJCWlzX2NvZXJjaWJsZSA9IGZhbHNlOworCisJCQlpZiAoIWRlZmV4cHIpCisJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJCQkg ZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKKwkJCQkJCQkJZm9ybWF0X3R5cGVf YmUoaW5wdXRUeXBlKSwKKwkJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAorCQkJ CQkJIHBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uLCBleHByKSkp OworCQl9CisKKwkJLyogTm8gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiwgZXhpdCBu b3cgKi8KKwkJaWYgKCFkZWZleHByKQorCQkJcmV0dXJuIGNhc3RleHByOworCX0KKworCS8qIEZ1 cnRoZXIgY2hlY2sgZm9yIENBU1QoLi4uIERFRkFVTFQgLi4uIE9OIENPTlZFUlNJT04gRVJST1Ip ICovCisJQ29lcmNpb25FcnJvclNhZmVDaGVjayhwc3RhdGUsIGNhc3RleHByLCBzb3VyY2UsIGlu cHV0VHlwZSwKKwkJCQkJCSAgIHRhcmdldFR5cGUpOworCisJQXNzZXJ0KGlzX2NvZXJjaWJsZSB8 fCBjYXN0ZXhwciA9PSBOVUxMKTsKKworCXN0YyA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdEV4cHIp OworCXN0Yy0+c291cmNlID0gKEV4cHIgKikgc291cmNlOworCXN0Yy0+Y2FzdGV4cHIgPSAoRXhw ciAqKSBjYXN0ZXhwcjsKKwlzdGMtPmRlZmV4cHIgPSAoRXhwciAqKSBkZWZleHByOworCXN0Yy0+ cmVzdWx0dHlwZSA9IHRhcmdldFR5cGU7CisJc3RjLT5yZXN1bHR0eXBtb2QgPSB0YXJnZXRUeXBt b2Q7CisJc3RjLT5yZXN1bHRjb2xsaWQgPSB0YXJnZXRUeXBlY29sbDsKKwlzdGMtPmxvY2F0aW9u ID0gbG9jYXRpb247CisKKwlyZXR1cm4gKE5vZGUgKikgc3RjOworfQorCisvKgorICogQ2hlY2sg dHlwZSBjb2VyY2lvbiBpcyBlcnJvciBzYWZlIG9yIG5vdC4gIElmIG5vdCB0aGVuIHJlcG9ydCBl cnJvcgorICovCitzdGF0aWMgdm9pZAorQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2RlICpzb3VyY2UsCisJCQkJCSAgIE9pZCBpbnB1 dFR5cGUsIE9pZCB0YXJnZXRUeXBlKQoreworCWJvb2wJCWVycm9yc2FmZV9jb2VyY2lvbiA9IHRy dWU7CisJYm9vbAkJdXNlcmRlZmluZWQgPSBmYWxzZTsKKworCS8qCisJICogQmluYXJ5IGNvZXJj aW9uIGNhc3QgaXMgZXJyb3Itc2FmZSwgQ29lcmNlVmlhSU8gY2FuIGFsc28gYmUgZXZhbHVhdGVk CisJICogaW4gYW4gZXJyb3Itc2FmZSBtYW5uZXIuIFNraXAgdGhlc2UgY2FzZXMuCisJICovCisJ aWYgKGNhc3RleHByID09IE5VTEwgfHwKKwkJSXNCaW5hcnlDb2VyY2libGUoaW5wdXRUeXBlLCB0 YXJnZXRUeXBlKSB8fAorCQlJc0EoY2FzdGV4cHIsIENvZXJjZVZpYUlPKSkKKwkJcmV0dXJuOwor CisJQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoaW5wdXRUeXBlLCB0YXJnZXRUeXBlLAorCQkJ CQkJCSAgICZlcnJvcnNhZmVfY29lcmNpb24sCisJCQkJCQkJICAgJnVzZXJkZWZpbmVkKTsKKwor CWlmICghZXJyb3JzYWZlX2NvZXJjaW9uKQogCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2Rl KEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCi0JCQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAl cyB0byAlcyIsCi0JCQkJCQlmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAotCQkJCQkJZm9ybWF0 X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAotCQkJCSBwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24o cHN0YXRlLCBsb2NhdGlvbiwgZXhwcikpKTsKKwkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQllcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMgd2hl biAlcyBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiAlcyIsCisJCQkJCSAgIGZvcm1hdF90eXBl X2JlKGlucHV0VHlwZSksCisJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpLAorCQkJ CQkgICAiREVGQVVMVCIsCisJCQkJCSAgICJDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SIiks CisJCQkJdXNlcmRlZmluZWQKKwkJCQk/IGVycmhpbnQoIlNhZmUgdHlwZSBjYXN0IGZvciB1c2Vy LWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLiIpCisJCQkJOiBlcnJoaW50KCJF eHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUu IiksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHNvdXJjZSkp KTsKK30KIAotCXJldHVybiByZXN1bHQ7CitzdGF0aWMgdm9pZAorQ29lcmNpb25FcnJvclNhZmVf SW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUsCisJCQkJCQkgICBib29sICpl cnJvcnNhZmVfY29lcmNpb24sIGJvb2wgKnVzZXJkZWZpbmVkKQoreworCUhlYXBUdXBsZQl0dXBs ZTsKKworCWNoYXIJCWlucHV0X3R5cHR5cGUgPSBnZXRfdHlwdHlwZShpbnB1dFR5cGUpOworCWNo YXIJCXRhcmdldF90eXB0eXBlID0gZ2V0X3R5cHR5cGUodGFyZ2V0VHlwZSk7CisKKwkvKiBzaW5j ZSB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2VzLCBpdCBjb3VsZCBiZSBkcml2ZW4gdG8gc3RhY2sgb3Zl cmZsb3cgKi8KKwljaGVja19zdGFja19kZXB0aCgpOworCisJQXNzZXJ0KGVycm9yc2FmZV9jb2Vy Y2lvbiAhPSBOVUxMKTsKKwlBc3NlcnQodXNlcmRlZmluZWQgIT0gTlVMTCk7CisKKwlpZiAoISgq ZXJyb3JzYWZlX2NvZXJjaW9uKSkKKwkJcmV0dXJuOworCisJaWYgKGlucHV0X3R5cHR5cGUgPT0g VFlQVFlQRV9ET01BSU4gJiYKKwkJdGFyZ2V0X3R5cHR5cGUgPT0gVFlQVFlQRV9ET01BSU4pCisJ eworCQlDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChnZXRCYXNlVHlwZShpbnB1dFR5cGUpLAor CQkJCQkJCQkgICBnZXRCYXNlVHlwZSh0YXJnZXRUeXBlKSwKKwkJCQkJCQkJICAgZXJyb3JzYWZl X2NvZXJjaW9uLAorCQkJCQkJCQkgICB1c2VyZGVmaW5lZCk7CisJCXJldHVybjsKKwl9CisJZWxz ZSBpZiAoaW5wdXRfdHlwdHlwZSA9PSBUWVBUWVBFX0RPTUFJTikKKwl7CisJCUNvZXJjaW9uRXJy b3JTYWZlX0ludGVybmFsKGdldEJhc2VUeXBlKGlucHV0VHlwZSksCisJCQkJCQkJCSAgIHRhcmdl dFR5cGUsCisJCQkJCQkJCSAgIGVycm9yc2FmZV9jb2VyY2lvbiwKKwkJCQkJCQkJICAgdXNlcmRl ZmluZWQpOworCQlyZXR1cm47CisJfQorCWVsc2UgaWYgKHRhcmdldF90eXB0eXBlID09IFRZUFRZ UEVfRE9NQUlOKQorCXsKKwkJQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoaW5wdXRUeXBlLAor CQkJCQkJCQkgICBnZXRCYXNlVHlwZSh0YXJnZXRUeXBlKSwKKwkJCQkJCQkJICAgZXJyb3JzYWZl X2NvZXJjaW9uLAorCQkJCQkJCQkgICB1c2VyZGVmaW5lZCk7CisJCXJldHVybjsKKwl9CisJZWxz ZSBpZiAoKGlucHV0X3R5cHR5cGUgIT0gVFlQVFlQRV9CQVNFICYmIGlucHV0X3R5cHR5cGUgIT0g VFlQVFlQRV9QU0VVRE8gJiYgaW5wdXRUeXBlID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQorCQkJ IHx8ICh0YXJnZXRfdHlwdHlwZSAhPSBUWVBUWVBFX0JBU0UgJiYgdGFyZ2V0VHlwZSA+IEZpcnN0 VW5waW5uZWRPYmplY3RJZCkpCisJeworCQkvKgorCQkgKiBJbnB1dCBleHByZXNzaW9uIGNhbiBi ZSBVTktOT1dOIENvbnN0LCBhbmQgVU5LTk9XTiBpcyB0eXB0eXBlIGlzCisJCSAqIFRZUFRZUEVf UFNFVURPCisJCSAqLworCisJCS8qCisJCSAqIENvbXBvc2l0ZS10by1jb21wb3NpdGUgY2FzdGlu ZyBpcyBub3QgaW1wbGVtZW50ZWQsIHNvIGVycm9yLXNhZmUKKwkJICogY2FzdCBiZXR3ZWVuIHRo ZW0gc2hvdWxkIG5vdCBiZSBwb3NzaWJsZTsgd2UgZm9yYmlkIGl0IGhlcmUuCisJCSAqCisJCSAq IE91ciB0eXBlIHN5c3RlbSBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IGNhc3QgYSB1c2VyLWRlZmlu ZWQgcmFuZ2UKKwkJICogdHlwZSB0byBhbiBidWlsdC1pbiByYW5nZSB0eXBlLCBldmVuIGlmIHRo ZWlyIGJhc2UgZWxlbWVudCB0eXBlcworCQkgKiBhcmUgdGhlIHNhbWUuIFRoZXJlIG1heSBiZSBj b21wbGV4IGVkZ2UgY2FzZXMgdG8gY29uc2lkZXIsIHNhZmVyIHRvCisJCSAqIHNpbXBseSBkaXNh bGxvdyBlcnJvci1zYWZlIGNhc3RpbmcgZm9yIHRoZW0gbm93LgorCQkgKi8KKwkJKmVycm9yc2Fm ZV9jb2VyY2lvbiA9IGZhbHNlOworCisJCXJldHVybjsKKwl9CisJZWxzZQorCXsKKwkJT2lkCQkJ aW5wdXRfdHlwZWxlbSA9IGdldF9lbGVtZW50X3R5cGUoaW5wdXRUeXBlKTsKKwkJT2lkCQkJdGFy Z2V0X3R5cGVsZW0gPSBnZXRfZWxlbWVudF90eXBlKHRhcmdldFR5cGUpOworCisJCWlmIChPaWRJ c1ZhbGlkKGlucHV0X3R5cGVsZW0pICYmIE9pZElzVmFsaWQodGFyZ2V0X3R5cGVsZW0pKQorCQl7 CisJCQkvKiByZWN1cnNlIGludG8gYXJyYXkgZWxlbWVudCB0eXBlICovCisJCQlDb2VyY2lvbkVy cm9yU2FmZV9JbnRlcm5hbChpbnB1dF90eXBlbGVtLAorCQkJCQkJCQkJICAgdGFyZ2V0X3R5cGVs ZW0sCisJCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24sCisJCQkJCQkJCQkgICB1c2VyZGVm aW5lZCk7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwkvKgorCSAqIENhc3RzIGludm9sdmluZyB0 eXBlIE1PTkVZIGFyZSBub3QgZXJyb3Igc2FmZS4gIFR5cGUgQ0lSQ0xFIHRvIHR5cGUKKwkgKiBQ T0xZR09OIGNhc3QgaXMgdW5zYWZlIGJlY2F1c2UgaXQgcmVsaWVzIG9uIGEgU1FMLWxhbmd1YWdl IGZ1bmN0aW9uOworCSAqIG9ubHkgQy1sYW5ndWFnZSBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSBz dXBwb3J0ZWQgZm9yIGVycm9yIHNhZmUgY2FzdHMuCisJICovCisJaWYgKGlucHV0VHlwZSA9PSBN T05FWU9JRCB8fAorCQl0YXJnZXRUeXBlID09IE1PTkVZT0lEIHx8CisJCShpbnB1dFR5cGUgPT0g Q0lSQ0xFT0lEICYmIHRhcmdldFR5cGUgPT0gUE9MWUdPTk9JRCkpCisJeworCQkqZXJyb3JzYWZl X2NvZXJjaW9uID0gZmFsc2U7CisJCXJldHVybjsKKwl9CisKKwlpZiAoaW5wdXRUeXBlICE9IHRh cmdldFR5cGUpCisJeworCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihDQVNUU09VUkNFVEFSR0VU LAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKGlucHV0VHlwZSksCisJCQkJCQkJCU9iamVjdElk R2V0RGF0dW0odGFyZ2V0VHlwZSkpOworCisJCS8qCisJCSAqIEEgcGdfY2FzdCBlbnRyeSBtaWdo dCBub3QgZXhpc3QgZm9yIHRoaXMgc3BlY2lmaWMgY2FzdDsgZm9yCisJCSAqIGV4YW1wbGUsIHdo ZW4gdXNpbmcgQ29lcmNlVmlhSU8uCisJCSAqLworCQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBs ZSkpCisJCXsKKwkJCUZvcm1fcGdfY2FzdCBjYXN0Rm9ybSA9IChGb3JtX3BnX2Nhc3QpIEdFVFNU UlVDVCh0dXBsZSk7CisKKwkJCWlmIChjYXN0Rm9ybS0+Y2FzdGZ1bmMgPiBGaXJzdFVucGlubmVk T2JqZWN0SWQpCisJCQl7CisJCQkJKmVycm9yc2FmZV9jb2VyY2lvbiA9IGZhbHNlOworCQkJCSp1 c2VyZGVmaW5lZCA9IHRydWU7CisJCQl9CisJCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCQl9 CisJCWVsc2UgaWYgKGlucHV0VHlwZSA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCAmJiB0YXJnZXRU eXBlID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQorCQkJKmVycm9yc2FmZV9jb2VyY2lvbiA9IGZh bHNlOworCX0KIH0KIAogLyoKQEAgLTMyMTIsNiArMzUwMyw4IEBAIFBhcnNlRXhwcktpbmROYW1l KFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJ TlQ6CiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCXJldHVybiAiQ0hFQ0siOwor CQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQlyZXR1cm4gIkNBU1QgREVGQVVMVCI7 CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5D VElPTl9ERUZBVUxUOgogCQkJcmV0dXJuICJERUZBVUxUIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5j CmluZGV4IDhkYmQ0MWEzNTQ4Li44MWE0ZDVjNThlZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5j CkBAIC03NjgsNiArNzY4LDcgQEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRl LCBMaXN0ICpmdW5jbmFtZSwgTGlzdCAqZmFyZ3MsCiAJCWZ1bmNleHByLT5mdW5jZm9ybWF0ID0g ZnVuY2Zvcm1hdDsKIAkJLyogZnVuY2NvbGxpZCBhbmQgaW5wdXRjb2xsaWQgd2lsbCBiZSBzZXQg YnkgcGFyc2VfY29sbGF0ZS5jICovCiAJCWZ1bmNleHByLT5hcmdzID0gZmFyZ3M7CisJCWZ1bmNl eHByLT5lcnJvcnNhZmUgPSBmYWxzZTsKIAkJZnVuY2V4cHItPmxvY2F0aW9uID0gbG9jYXRpb247 CiAKIAkJcmV0dmFsID0gKE5vZGUgKikgZnVuY2V4cHI7CkBAIC0yNzQzLDYgKzI3NDQsOSBAQCBj aGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3Ny ZiwgaW50IGxvY2F0aW9uKQogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIg PSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY2hlY2sgY29u c3RyYWludHMiKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJ CQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FT VCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09M VU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIg PSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBl eHByZXNzaW9ucyIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rhcmdl dC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDU0MWZlZjVmMTgz Li43Y2QxOTcwYmM5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rhcmdl dC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtODQ1LDcgKzg0 NSw4IEBAIHRyYW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJQ09FUkNJT05fSU1QTElDSVQsCiAJCQkJCQkJCQkJQ09FUkNFX0lNUExJQ0lU X0NBU1QsCiAJCQkJCQkJCQkJbG9jYXRpb24sCi0JCQkJCQkJCQkJZmFsc2UpOworCQkJCQkJCQkJ CWZhbHNlLAorCQkJCQkJCQkJCU5VTEwpOwogCiAJCQlyZXR1cm4gKE5vZGUgKikgZnN0b3JlOwog CQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwppbmRleCBiYjdlY2NkZTlmZC4uMjgzZGZjMmVlOTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwpAQCAtNjYwLDYgKzY2MCwyNCBAQCBzdHJpbmdUeXBl RGF0dW0oVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QpCiAJcmV0dXJuIE9p ZElucHV0RnVuY3Rpb25DYWxsKHR5cGlucHV0LCBzdHJpbmcsIHR5cGlvcGFyYW0sIGF0dHR5cG1v ZCk7CiB9CiAKKy8qCisgKiBFcnJvci1zYWZlIHZlcnNpb24gb2Ygc3RyaW5nVHlwZURhdHVtLgor ICoKKyAqIFJldHVybnMgdHJ1ZSBpZiAic3RyaW5nIiBpcyBhIHZhbGlkIHJlcHJlc2VudGF0aW9u IG9mIHR5cGUgInRwIi4KKyAqIE9uIHN1Y2Nlc3MsIHRoZSBpbnRlcm5hbCBEYXR1bSByZXByZXNl bnRhdGlvbiBpcyB3cml0dGVuIHRvICJyZXN1bHQiLgorICovCitib29sCitzdHJpbmdUeXBlRGF0 dW1TYWZlKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kLAorCQkJCQlOb2Rl ICplc2NvbnRleHQsIERhdHVtICpyZXN1bHQpCit7CisJRm9ybV9wZ190eXBlIHR5cGZvcm0gPSAo Rm9ybV9wZ190eXBlKSBHRVRTVFJVQ1QodHApOworCU9pZAkJCXR5cGlucHV0ID0gdHlwZm9ybS0+ dHlwaW5wdXQ7CisJT2lkCQkJdHlwaW9wYXJhbSA9IGdldFR5cGVJT1BhcmFtKHRwKTsKKworCXJl dHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUodHlwaW5wdXQsIHN0cmluZywgdHlwaW9wYXJh bSwgYXR0dHlwbW9kLAorCQkJCQkJCQkJZXNjb250ZXh0LCByZXN1bHQpOworfQorCiAvKgogICog R2l2ZW4gYSB0eXBlaWQsIHJldHVybiB0aGUgdHlwZSdzIHR5cHJlbGlkIChhc3NvY2lhdGVkIHJl bGF0aW9uKSwgaWYgYW55LgogICogUmV0dXJucyBJbnZhbGlkT2lkIGlmIHR5cGUgaXMgbm90IGEg Y29tcG9zaXRlIHR5cGUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRp bGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCA5YTkxOGUx NGFhNy4uMTAzMThmYzQ5OTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91 dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtNDk1 MSw3ICs0OTUxLDcgQEAgdHJhbnNmb3JtUGFydGl0aW9uQm91bmRWYWx1ZShQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKnZhbCwKIAkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIHZhbHVl KTsKIAkJdmFsdWUgPSAoTm9kZSAqKSBleHByZXNzaW9uX3BsYW5uZXIoKEV4cHIgKikgdmFsdWUp OwogCQl2YWx1ZSA9IChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgdmFsdWUsIGNvbFR5 cGUsIGNvbFR5cG1vZCwKLQkJCQkJCQkJCSAgIHBhcnRDb2xsYXRpb24pOworCQkJCQkJCQkJICAg cGFydENvbGxhdGlvbiwgTlVMTCk7CiAJCWlmICghSXNBKHZhbHVlLCBDb25zdCkpCiAJCQllbG9n KEVSUk9SLCAiY291bGQgbm90IGV2YWx1YXRlIHBhcnRpdGlvbiBib3VuZCBleHByZXNzaW9uIik7 CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKaW5kZXggNzM0ZTVmZWE0NWUuLmRiZmU1 ZjRhNzllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKQEAgLTMyOTQsNiArMzI5NCwx NSBAQCBhcnJheV9tYXAoRGF0dW0gYXJyYXlkLAogCQkvKiBBcHBseSB0aGUgZ2l2ZW4gZXhwcmVz c2lvbiB0byBzb3VyY2UgZWxlbWVudCAqLwogCQl2YWx1ZXNbaV0gPSBFeGVjRXZhbEV4cHIoZXhw cnN0YXRlLCBlY29udGV4dCwgJm51bGxzW2ldKTsKIAorCQkvKiBFeGl0IGVhcmx5IGlmIGV2YWx1 YXRpb24gZmFpbGVkICovCisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJzdGF0ZS0+ZXNj b250ZXh0KSkKKwkJeworCQkJcGZyZWUodmFsdWVzKTsKKwkJCXBmcmVlKG51bGxzKTsKKworCQkJ cmV0dXJuIChEYXR1bSkgMDsKKwkJfQorCiAJCWlmIChudWxsc1tpXSkKIAkJCWhhc251bGxzID0g dHJ1ZTsKIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDdiYzEyNTg5ZTQw Li43NDg1ODZhYzY3YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTExMDYsNiAr MTExMDYsMzEgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNv bnRleHQsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJ CXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0 RXhwciwgbm9kZSk7CisKKwkJCQkvKgorCQkJCSAqIFdlIGNhbm5vdCBkZXBhcnNlIGNhc3RleHBy IGRpcmVjdGx5LCBzaW5jZQorCQkJCSAqIHRyYW5zZm9ybVR5cGVDYXN0IG1heSBoYXZlIGFscmVh ZHkgY29uc3RhbnQtZm9sZGVkIGl0IGludG8KKwkJCQkgKiBhIENvbnN0IG5vZGUuIEluc3RlYWQs IHdlIGNhbiB1c2UgInNvdXJjZSIgYW5kICJkZWZleHByIiB0bworCQkJCSAqIHJlY29uc3RydWN0 IHRoZSBDQVNUIERFRkFVTFQgY2xhdXNlLgorCQkJCSAqLworCQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmLCAiQ0FTVCgiKTsKKwkJCQlnZXRfcnVsZV9leHByKChOb2RlICopIHN0Y2V4cHIt PnNvdXJjZSwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8o YnVmLCAiIEFTICVzICIsCisJCQkJCQkJCSBmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2Qoc3RjZXhw ci0+cmVzdWx0dHlwZSwKKwkJCQkJCQkJCQkJCQkJICBzdGNleHByLT5yZXN1bHR0eXBtb2QpKTsK KworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiREVGQVVMVCAiKTsKKworCQkJCWdl dF9ydWxlX2V4cHIoKE5vZGUgKikgc3RjZXhwci0+ZGVmZXhwciwgY29udGV4dCwgc2hvd2ltcGxp Y2l0KTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIE9OIENPTlZFUlNJT04g RVJST1IpIik7CisJCQl9CisJCQlicmVhazsKKwogCQljYXNlIFRfSnNvbkV4cHI6CiAJCQl7CiAJ CQkJSnNvbkV4cHIgICAqamV4cHIgPSAoSnNvbkV4cHIgKikgbm9kZTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdy LmMKaW5kZXggYmZlY2ViN2E5MmYuLjkwNjg2YWUyMGY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpA QCAtMTc2MCw2ICsxNzYwLDE5IEBAIE9pZElucHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklk LCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpCiAJcmV0dXJuIElucHV0 RnVuY3Rpb25DYWxsKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9kKTsKIH0KIAorLyog ZXJyb3Itc2FmZSB2ZXJzaW9uIG9mIE9pZElucHV0RnVuY3Rpb25DYWxsICovCitib29sCitPaWRJ bnB1dEZ1bmN0aW9uQ2FsbFNhZmUoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwgT2lkIHR5cGlv cGFyYW0sCisJCQkJCQkgaW50MzIgdHlwbW9kLCBOb2RlICplc2NvbnRleHQsCisJCQkJCQkgRGF0 dW0gKnJlc3VsdCkKK3sKKwlGbWdySW5mbwlmbGluZm87CisKKwlmbWdyX2luZm8oZnVuY3Rpb25J ZCwgJmZsaW5mbyk7CisJcmV0dXJuIElucHV0RnVuY3Rpb25DYWxsU2FmZSgmZmxpbmZvLCBzdHIs IHR5cGlvcGFyYW0sIHR5cG1vZCwKKwkJCQkJCQkJIGVzY29udGV4dCwgcmVzdWx0KTsKK30KKwog Y2hhciAqCiBPaWRPdXRwdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIERhdHVtIHZhbCkK IHsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5j bHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IGFhOWIzNjFmYTMxLi5mYTlkYjhmZDY4NyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5j bHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0yNjUsNiArMjY1LDcgQEAgdHlwZWRlZiBlbnVt IEV4cHJFdmFsT3AKIAlFRU9QX1hNTEVYUFIsCiAJRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCUVF T1BfSVNfSlNPTiwKKwlFRU9QX1NBRkVUWVBFX0NBU1QsCiAJRUVPUF9KU09ORVhQUl9QQVRILAog CUVFT1BfSlNPTkVYUFJfQ09FUkNJT04sCiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTl9GSU5JU0gs CkBAIC03NTAsNiArNzUxLDEyIEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJSnNv bklzUHJlZGljYXRlICpwcmVkOwkvKiBvcmlnaW5hbCBleHByZXNzaW9uIG5vZGUgKi8KIAkJfQkJ CWlzX2pzb247CiAKKwkJLyogZm9yIEVFT1BfU0FGRVRZUEVfQ0FTVCAqLworCQlzdHJ1Y3QKKwkJ eworCQkJc3RydWN0IFNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsKKwkJfQkJCXN0Y2V4cHI7 CisKIAkJLyogZm9yIEVFT1BfSlNPTkVYUFJfUEFUSCAqLwogCQlzdHJ1Y3QKIAkJewpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvZm1nci5oIGIvc3JjL2luY2x1ZGUvZm1nci5oCmluZGV4IDEwZDAy YmRiNzlmLi44ZTNlNTFkYzIyOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZm1nci5oCisrKyBi L3NyYy9pbmNsdWRlL2ZtZ3IuaApAQCAtNzUyLDYgKzc1Miw5IEBAIGV4dGVybiBib29sIERpcmVj dElucHV0RnVuY3Rpb25DYWxsU2FmZShQR0Z1bmN0aW9uIGZ1bmMsIGNoYXIgKnN0ciwKIAkJCQkJ CQkJCQlEYXR1bSAqcmVzdWx0KTsKIGV4dGVybiBEYXR1bSBPaWRJbnB1dEZ1bmN0aW9uQ2FsbChP aWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLAogCQkJCQkJCQkgIE9pZCB0eXBpb3BhcmFtLCBpbnQz MiB0eXBtb2QpOworZXh0ZXJuIGJvb2wgT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKE9pZCBmdW5j dGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJCQkJCQkJIGludDMyIHR5cG1v ZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJCQkJIERhdHVtICpyZXN1bHQpOwogZXh0ZXJuIGNo YXIgKk91dHB1dEZ1bmN0aW9uQ2FsbChGbWdySW5mbyAqZmxpbmZvLCBEYXR1bSB2YWwpOwogZXh0 ZXJuIGNoYXIgKk9pZE91dHB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgRGF0dW0gdmFs KTsKIGV4dGVybiBEYXR1bSBSZWNlaXZlRnVuY3Rpb25DYWxsKEZtZ3JJbmZvICpmbGluZm8sIFN0 cmluZ0luZm8gYnVmLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCAyMTYyZmY1NmMzOC4uZDJjNzli OWYyOWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMDcxLDYgKzEwNzEsMjcgQEAgdHlwZWRl ZiBzdHJ1Y3QgRG9tYWluQ29uc3RyYWludFN0YXRlCiAJRXhwclN0YXRlICAqY2hlY2tfZXhwcnN0 YXRlOwkvKiBjaGVja19leHByJ3MgZXZhbCBzdGF0ZSwgb3IgTlVMTCAqLwogfSBEb21haW5Db25z dHJhaW50U3RhdGU7CiAKK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2FzdFN0YXRlCit7CisJU2Fm ZVR5cGVDYXN0RXhwciAqc3RjZXhwcjsKKworCS8qCisJICogQWRkcmVzcyB0byBqdW1wIHRvIHdo ZW4gc2tpcHBpbmcgYWxsIHRoZSBzdGVwcyB0byBldmFsdWF0ZSB0aGUgZGVmYXVsdAorCSAqIGV4 cHJlc3Npb24uCisJICovCisJaW50CQkJanVtcF9lbmQ7CisKKwkvKgorCSAqIEZvciBlcnJvci1z YWZlIGV2YWx1YXRpb24gb2YgY29lcmNpb25zLiBBIHBvaW50ZXIgdG8gdGhpcyBpcyBwYXNzZWQg dG8KKwkgKiBFeGVjSW5pdEV4cHJSZWMoKSB3aGVuIGluaXRpYWxpemluZyB0aGUgY29lcmNpb24g ZXhwcmVzc2lvbnMsIHNlZQorCSAqIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwci4KKwkgKgorCSAq IFJlc2V0IGZvciBlYWNoIGV2YWx1YXRpb24gb2YgRUVPUF9TQUZFVFlQRV9DQVNULgorCSAqLwor CUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0OworCit9IFNhZmVUeXBlQ2FzdFN0YXRlOworCiAv KgogICogU3RhdGUgZm9yIEpzb25FeHByIGV2YWx1YXRpb24sIHRvbyBiaWcgdG8gaW5saW5lLgog ICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkZjQzMTIyMGFjNS4uYmEyN2UwYTcxNGIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM5Nyw2ICszOTcsNyBAQCB0eXBlZGVmIHN0cnVjdCBU eXBlQ2FzdAogCU5vZGVUYWcJCXR5cGU7CiAJTm9kZQkgICAqYXJnOwkJCS8qIHRoZSBleHByZXNz aW9uIGJlaW5nIGNhc3RlZCAqLwogCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHRhcmdl dCB0eXBlICovCisJTm9kZQkgICAqZGVmZXhwcjsJCS8qIERFRkFVTFQgZXhwcmVzc2lvbiAqLwog CVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24g Ki8KIH0gVHlwZUNhc3Q7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggYjY3ZTU2ZTZjNWEuLjJh ODk1MmE1MGM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNzcwLDYgKzc3MCw0MiBAQCB0eXBl ZGVmIGVudW0gQ29lcmNpb25Gb3JtCiAJQ09FUkNFX1NRTF9TWU5UQVgsCQkJLyogZGlzcGxheSB3 aXRoIFNRTC1tYW5kYXRlZCBzcGVjaWFsIHN5bnRheCAqLwogfSBDb2VyY2lvbkZvcm07CiAKKy8q CisgKiBTYWZlVHlwZUNhc3RFeHByIC0KKyAqCQlUcmFuc2Zvcm1lZCByZXByZXNlbnRhdGlvbiBv ZgorICogCQlDQVNUKGV4cHIgQVMgdHlwZW5hbWUgREVGQVVMVCBleHByIE9OIENPTlZFUlNJT04g RVJST1IpCisgKiAJCUNBU1QoZXhwciBBUyB0eXBlbmFtZSBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpCisgKi8KK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2FzdEV4cHIKK3sKKwlFeHByCQl4cHI7 CisKKwkvKgorCSAqIFRyYW5zZm9ybWVkIHNvdXJjZSBleHByZXNzaW9uIGZyb20gdGhlIHBhcnNl ci4gQ29uc3RhbnQgZm9sZGluZworCSAqIChldmFsX2NvbnN0X2V4cHJlc3Npb25zKSBpcyBza2lw cGVkIGJlY2F1c2UgRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByCisJICogZG9lcyBub3QgdXNlIHRo aXMgbm9kZS4gVGhlcmVmb3JlLCBpdCBtYXkgY29udGFpbiBhIENvbGxhdGVFeHByIG5vZGUsCisJ ICogd2hpY2ggRXhlY0luaXRFeHByUmVjIGNhbm5vdCBoYW5kbGUuIEhvd2V2ZXIsIHRoaXMgaXMg c3RpbGwgcmVxdWlyZWQKKwkgKiBmb3IgZGVwYXJzaW5nIHB1cnBvc2VzLgorCSAqCisJICogRm9y IGV4YW1wbGUsICJDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikiLCB0aGUKKwkgKiBjYXN0ZXhwciBpcyBub3cgTlVMTC4gVG8gZGVwYXJzZSBpdCwgd2UgbmVl ZCB0aGlzIHRyYW5zZm9ybWVkICJzb3VyY2UiCisJICogZXhwcmVzc2lvbi4KKwkgKi8KKwlFeHBy CSAgICpzb3VyY2U7CisJLyogdHJhbnNmb3JtZWQgY2FzdCBleHByZXNzaW9uLCBOVUxMIG1lYW5z IGNhbm5vdCBjb2VyY2UgdG8gdGFyZ2V0IHR5cGUgKi8KKwlFeHByCSAgICpjYXN0ZXhwciBwZ19u b2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyogRmFsbC1iYWNrIHRvIHRoZSBkZWZh dWx0IGV4cHJlc3Npb24gaWYgY2FzdCBldmFsdWF0aW9uIGZhaWxzICovCisJRXhwcgkgICAqZGVm ZXhwcjsKKwkvKiB0YXJnZXQgdHlwZSBPaWQgKi8KKwlPaWQJCQlyZXN1bHR0eXBlOworCS8qIHRh cmdldCB0eXBlIG1vZGlmaWVyICovCisJaW50MzIJCXJlc3VsdHR5cG1vZDsKKwkvKiBPSUQgb2Yg Y29sbGF0aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KKwlPaWQJCQlyZXN1bHRjb2xsaWQ7 CisJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KKwlQYXJzZUxvYwlsb2Nh dGlvbjsKK30gU2FmZVR5cGVDYXN0RXhwcjsKKwogLyoKICAqIEZ1bmNFeHByIC0gZXhwcmVzc2lv biBub2RlIGZvciBhIGZ1bmN0aW9uIGNhbGwKICAqCkBAIC03OTksNiArODM1LDggQEAgdHlwZWRl ZiBzdHJ1Y3QgRnVuY0V4cHIKIAlPaWQJCQlpbnB1dGNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlf anVtYmxlX2lnbm9yZSk7CiAJLyogYXJndW1lbnRzIHRvIHRoZSBmdW5jdGlvbiAqLwogCUxpc3QJ ICAgKmFyZ3M7CisJLyogVHJ1ZSBpZiB0aGUgZnVuY3Rpb24gc3VwcG9ydHMgc29mdC1lcnJvciBl dmFsdWF0aW9uICovCisJYm9vbAkJZXJyb3JzYWZlOwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAt MSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IEZ1bmNFeHByOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oIGIvc3JjL2luY2x1ZGUvb3B0 aW1pemVyL29wdGltaXplci5oCmluZGV4IGU4YjQwOWFmYjdmLi5iNjg2YmUwNDliOSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oCisrKyBiL3NyYy9pbmNsdWRl L29wdGltaXplci9vcHRpbWl6ZXIuaApAQCAtMTUxLDcgKzE1MSw3IEBAIGV4dGVybiB2b2lkIGNv bnZlcnRfc2FvcF90b19oYXNoZWRfc2FvcChOb2RlICpub2RlKTsKIGV4dGVybiBOb2RlICplc3Rp bWF0ZV9leHByZXNzaW9uX3ZhbHVlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKTsKIAog ZXh0ZXJuIEV4cHIgKmV2YWx1YXRlX2V4cHIoRXhwciAqZXhwciwgT2lkIHJlc3VsdF90eXBlLCBp bnQzMiByZXN1bHRfdHlwbW9kLAotCQkJCQkJICAgT2lkIHJlc3VsdF9jb2xsYXRpb24pOworCQkJ CQkJICAgT2lkIHJlc3VsdF9jb2xsYXRpb24sIE5vZGUgKmVzY29udGV4dCk7CiAKIGV4dGVybiBi b29sIHZhcl9pc19ub25udWxsYWJsZShQbGFubmVySW5mbyAqcm9vdCwgVmFyICp2YXIsCiAJCQkJ CQkJICAgTm90TnVsbFNvdXJjZSBzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX2NvZXJjZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oCmlu ZGV4IGFhYmFjZDQ5YjY1Li4xMjY0NGYxNDZiZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX2NvZXJjZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2Uu aApAQCAtNDMsMTUgKzQzLDI5IEBAIGV4dGVybiBOb2RlICpjb2VyY2VfdG9fdGFyZ2V0X3R5cGUo UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkgICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQs CiAJCQkJCQkJCSAgIENvZXJjaW9uRm9ybSBjZm9ybWF0LAogCQkJCQkJCQkgICBpbnQgbG9jYXRp b24pOworZXh0ZXJuIE5vZGUgKmNvZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRlZChQYXJzZVN0 YXRlICpwc3RhdGUsCisJCQkJCQkJCQkJCU5vZGUgKmV4cHIsCisJCQkJCQkJCQkJCU9pZCBleHBy dHlwZSwKKwkJCQkJCQkJCQkJT2lkIHRhcmdldHR5cGUsCisJCQkJCQkJCQkJCWludDMyIHRhcmdl dHR5cG1vZCwKKwkJCQkJCQkJCQkJQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAorCQkJCQkJCQkJ CQlDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKKwkJCQkJCQkJCQkJaW50IGxvY2F0aW9uLAorCQkJCQkJ CQkJCQlOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGJvb2wgY2FuX2NvZXJjZV90eXBlKGludCBu YXJncywgY29uc3QgT2lkICppbnB1dF90eXBlaWRzLCBjb25zdCBPaWQgKnRhcmdldF90eXBlaWRz LAogCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCk7CiBleHRlcm4gTm9kZSAqY29lcmNl X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkJCQkJIE9pZCBpbnB1dFR5 cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKIAkJCQkJCSBDb2Vy Y2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24p OworZXh0ZXJuIE5vZGUgKmNvZXJjZV90eXBlX2V4dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Tm9kZSAqbm9kZSwKKwkJCQkJCQkJICBPaWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQs IGludDMyIHRhcmdldFR5cGVNb2QsCisJCQkJCQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0 LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uLAorCQkJCQkJCQkgIE5vZGUgKmVz Y29udGV4dCk7CiBleHRlcm4gTm9kZSAqY29lcmNlX3RvX2RvbWFpbihOb2RlICphcmcsIE9pZCBi YXNlVHlwZUlkLCBpbnQzMiBiYXNlVHlwZU1vZCwKIAkJCQkJCQkgIE9pZCB0eXBlSWQsCiAJCQkJ CQkJICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQg bG9jYXRpb24sCi0JCQkJCQkJICBib29sIGhpZGVJbnB1dENvZXJjaW9uKTsKKwkJCQkJCQkgIGJv b2wgaGlkZUlucHV0Q29lcmNpb24sCisJCQkJCQkJICBOb2RlICplc2NvbnRleHQpOwogCiBleHRl cm4gTm9kZSAqY29lcmNlX3RvX2Jvb2xlYW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2Rl LAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmNvbnN0cnVjdE5hbWUpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKaW5kZXggZmMyY2JlYjIwODMuLjcyNmMxZmNkMGUyIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKQEAgLTY3LDYgKzY3LDggQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBS X0tJTkRfVkFMVUVTX1NJTkdMRSwJLyogc2luZ2xlLXJvdyBWQUxVRVMgKGluIElOU0VSVCBvbmx5 KSAqLwogCUVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5ULCAvKiBDSEVDSyBjb25zdHJhaW50IGZv ciBhIHRhYmxlICovCiAJRVhQUl9LSU5EX0RPTUFJTl9DSEVDSywJCS8qIENIRUNLIGNvbnN0cmFp bnQgZm9yIGEgZG9tYWluICovCisJRVhQUl9LSU5EX0NBU1RfREVGQVVMVCwJCS8qIGRlZmF1bHQg ZXhwcmVzc2lvbiBpbiBDQVNUIERFRkFVTFQgT04KKwkJCQkJCQkJICogQ09OVkVSU0lPTiBFUlJP UiAqLwogCUVYUFJfS0lORF9DT0xVTU5fREVGQVVMVCwJLyogZGVmYXVsdCB2YWx1ZSBmb3IgYSB0 YWJsZSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVCwgLyogZGVmYXVsdCBw YXJhbWV0ZXIgdmFsdWUgZm9yIGZ1bmN0aW9uICovCiAJRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJ T04sIC8qIGluZGV4IGV4cHJlc3Npb24gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV90eXBlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oCmluZGV4IGEz MzU4MDdiMGIwLi5lMzAzYTEwNzNjMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oCkBAIC00Nyw2 ICs0Nyw4IEBAIGV4dGVybiBjaGFyICp0eXBlVHlwZU5hbWUoVHlwZSB0KTsKIGV4dGVybiBPaWQJ dHlwZVR5cGVSZWxpZChUeXBlIHR5cCk7CiBleHRlcm4gT2lkCXR5cGVUeXBlQ29sbGF0aW9uKFR5 cGUgdHlwKTsKIGV4dGVybiBEYXR1bSBzdHJpbmdUeXBlRGF0dW0oVHlwZSB0cCwgY2hhciAqc3Ry aW5nLCBpbnQzMiBhdHR0eXBtb2QpOworZXh0ZXJuIGJvb2wgc3RyaW5nVHlwZURhdHVtU2FmZShU eXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCwKKwkJCQkJCQkJTm9kZSAqZXNj b250ZXh0LCBEYXR1bSAqcmVzdWx0KTsKIAogZXh0ZXJuIE9pZAl0eXBlaWRUeXBlUmVsaWQoT2lk IHR5cGVfaWQpOwogZXh0ZXJuIE9pZAl0eXBlT3JEb21haW5UeXBlUmVsaWQoT2lkIHR5cGVfaWQp OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjY1MmU1ZmJjM2JiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jYXN0Lm91dApAQCAtMCwwICsxLDk3MSBAQAorU0VUIGV4dHJhX2Zsb2F0 X2RpZ2l0cyA9IDA7CistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgorU0VMRUNU IENBU1QoQicwMScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg ZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChCSVQnMDEnIEFTIGRhdGUg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAKKygx IHJvdykKKworU0VMRUNUIENBU1QoVFJVRSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEu MSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0t LS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUICdBJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBj aGFyIAorLS0tLS0tCisgQQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnZGVmJzo6dGV4dCBBUyBp bnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0t CisgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMic6Ompzb25iIEFTIHRleHQgREVGQVVM VCAnZmFsbGJhY2snIE9OIENPTlZFUlNJT04gRVJST1IpOworIHRleHQgCistLS0tLS0KKyAyCiso MSByb3cpCisKK1NFTEVDVCBDQVNUKCcxJyBDT0xMQVRFICJDIiB8fCAnaCcgQVMgdGV4dCBERUZB VUxUICdmYWxsYmFjaycgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgdGV4dCAKKy0tLS0tLQorIDFo CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGNvbmNhdCgnMScgY29sbGF0ZSAiQyIsICdoJykgQVMg aW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjb25jYXQgCistLS0tLS0t LQorICAgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCg2NTUzNiBBUyBpbnQyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQyIAorLS0tLS0tCisgICAgIAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVChpbnQ4KDY1NTM2KSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCistLSBzb3Vy Y2UgZXhwcmVzc2lvbiBpcyBhIHVua25vd24gY29uc3QKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFT IGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikpOyAtLSBlcnJvcgorRVJST1I6ICBp bnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAiZXJyb3IiCitMSU5FIDE6IFZB TFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikp OworICAgICAgICAgICAgICAgICAgICAgXgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdl ciBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgICAg ICAgIAorKDEgcm93KQorCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQg NDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAgICAgIDQy CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAxOCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAxOAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJv cgorRVJST1I6ICBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERF RkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxU IHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3Zl cigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICB3aW5kb3cgZnVuY3Rp b25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTog U0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lP TiBFLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS0gZXJyb3IKK0VSUk9SOiAgY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFVTFQg ZXhwcmVzc2lvbgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgKFNFTEVD VCBOVUxMKSBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0 eXBlIGludGVnZXI6ICJiIgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQg J2InIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXgg Zm9yIHR5cGUgaW50ZWdlcjogImEiCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJzo6aW50IGFzIGlu dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUi4uLgorICAgICAgICAgICAgICAgICAg ICBeCistLSB0aGUgZGVmYXVsdCBleHByZXNzaW9u4oCZcyBjb2xsYXRpb24gc2hvdWxkIG1hdGNo IHRhcmdldCB0eXBlIGNvbGxhdGlvbgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZB VUxUICcxJyBDT0xMQVRFICJDIiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CitFUlJPUjogIGNvbGxh dGlvbiBvZiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBjb25mbGljdHMgd2l0aCB0YXJnZXQgdHlw ZSBjb2xsYXRpb24KK0xJTkUgMTogVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZBVUxU ICcxJyBDT0xMQVRFICJDIiBPTiBDT05WLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICAiQyIgdmVyc3VzICJkZWZhdWx0IgorVkFMVUVT IChDQVNUKCdlcnJvcicgQVMgaW50MnZlY3RvciBERUZBVUxUICcxIDMnICBPTiBDT05WRVJTSU9O IEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorIDEgMworKDEgcm93KQorCitWQUxVRVMg KENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJT SU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorIHsiMSAzIn0KKygxIHJvdykKKwor LS0gc291cmNlIGV4cHJlc3Npb24gY29udGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1QoKFNFTEVD VCBiIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikpCisgICAg ICAgICAgICBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyAgICBiICAgIAorLS0tLS0tLS0tCisgeyIxIDMifQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgoU0VMRUNUIEFSUkFZKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBn LCAoVkFMVUVTKCdIJykpIHMoYikpKSkKKyAgICAgICAgICAgIEFTIElOVFtdCisgICAgICAgICAg ICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisg CisoMSByb3cpCisKK0NSRUFURSBGVU5DVElPTiByZXRfaW50OCgpIFJFVFVSTlMgQklHSU5UIEFT CiskJAorQkVHSU4gUkVUVVJOIDIxNDc0ODM2NDg7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3Fs IElNTVVUQUJMRTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBpbnRlZ2VyIG91dCBvZiByYW5n ZQorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBjYW5ub3QgY29lcmNlIENBU1QgREVGQVVMVCBl eHByZXNzaW9uIHRvIHR5cGUgZGF0ZQorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBE RUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlIuLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCistLSBERUZBVUxUIGV4cHJlc3Npb24gY2Fubm90IGJl IHNldC1yZXR1cm5pbmcKK0NSRUFURSBGVU5DVElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRP RiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFVRVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVu aW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsK K0NSRUFURSBUQUJMRSB0Y2FzdDAoYSBJTlQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHRjYXN0MCBW QUxVRVMoMSwyKSwgKDY1NTM2LDMpOworU0VUIGppdF9hYm92ZV9jb3N0ID0gMDsKK1NFTEVDVCBD QVNUKGEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2Fz dDA7CisgYSAKKy0tLQorIDEKKyAgCisoMiByb3dzKQorCitTRVQgaml0X2Fib3ZlX2Nvc3QgVE8g REVGQVVMVDsKK1NFTEVDVCBDQVNUKGEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgRlJPTSB0Y2FzdDA7CisgYSAKKy0tLQorIDEKKyAgCisoMiByb3dzKQorCitTRUxF Q1QgQ0FTVChST1coMSwyKSBBUyB0Y2FzdDAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIEZST00gdGNhc3QwIGFzIHQ7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgcmVjb3JkIHRv IHRjYXN0MCB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4g T04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChST1coMSwyKSBBUyB0Y2Fz dDAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVIuLi4KKyAgICAgICAgICAgICAgICAgICAg XgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3Qg ZXJyb3Igc2FmZS4KK0RST1AgVEFCTEUgdGNhc3QwOworU0VMRUNUIENBU1QoMTIuMTExIGFzIG51 bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWNfc2NhbGU7CisgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgIDEyLjEKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHRjYXN0KGEgdGV4dFtdLCBiIGlu dCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyBJREVOVElUWSk7CitJTlNFUlQgSU5UTyB0Y2FzdCBW QUxVRVMgKCd7MTJ9JyksICgnezEsYSwgYn0nKSwgKCd7ezEsMn0sIHtjLGR9fScpLCAoJ3sxM30n KTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkgT04gQ09OVkVS U0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS0gZXJyb3IKK0VSUk9SOiAgc2V0LXJldHVybmluZyBm dW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElO RSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZF UlNJT04gRVIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NF TEVDVCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBD T05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIHQgICAgIAorLS0tLS0tLS0t LS0KKyB7MjEsMjIsMX0KKyB7MjEsMjIsMn0KKyB7MjEsMjIsM30KKyB7MjEsMjIsNH0KKyg0IHJv d3MpCisKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50W10g fHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIGEgICAgIAor LS0tLS0tLS0tLS0KKyB7MTJ9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezEzfQorKDQgcm93 cykKKworLS0gdGVzdCB3aXRoIHVzZXItZGVmaW5lZCB0eXBlLCBkb21haW4sIGFycmF5IG92ZXIg ZG9tYWluLCBkb21haW4gb3ZlciBhcnJheQorQ1JFQVRFIERPTUFJTiBkX2ludDQyIGFzIGludCBj aGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfaW50NDJhcnIgYXMg ZF9pbnQ0MltdOworQ1JFQVRFIERPTUFJTiBkX2ludDQyYXJyMSBhcyBkX2ludDQyYXJyOworQ1JF QVRFIERPTUFJTiBkX2ludDggYXMgaW50OCBjaGVjayAodmFsdWUgPiAwKTsKK0NSRUFURSBET01B SU4gZF9pbnQ4YXJyIGFzIGRfaW50OFtdOworQ1JFQVRFIERPTUFJTiBkX2NoYXIzX25vdF9udWxs IGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hhciBhcyB2YXJjaGFy KDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W10gY2hlY2sgKHZh bHVlID0gJ3s0MSwgNDN9JykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBjb21wX2RvbWFpbl93aXRo X3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitDUkVBVEUgVFlQRSBjb21w MiBBUyAoYSBkX3ZhcmNoYXIpOworQ1JFQVRFIERPTUFJTiBkX251bWVyaWMgYXMgbnVtZXJpYyg0 LDQpOworU0VMRUNUIENBU1QoMS4wOjpmbG9hdDQgQVMgZF9udW1lcmljIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkX251bWVyaWMgCistLS0tLS0tLS0tLQorICAgICAgICAg IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnezEuMH0nIEFTIG51bWVyaWMoNCwxKVtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgezEu MH0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ3swLjEsIDEuMH0nIEFTIGRfbnVtZXJpY1tdIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkX251bWVyaWMgCistLS0tLS0tLS0t LQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDEgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZF9p bnQ0MiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJkX2ludDQyX2NoZWNrIgorU0VMRUNUIENB U1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0g ZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRfaW50NDIgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMK K1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBkX2ludDQyIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQorCitTRUxFQ1QgQ0FT VChOVUxMIEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkX2lu dDQyIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVs0 Ml06OmRfaW50NDJhcnIxIEFTIGRfaW50OCBERUZBVUxUICcxJyBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBhcnJheSAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJB WVs0Ml06OmRfaW50NDJhcnIxIEFTIGRfaW50OFtdIERFRkFVTFQgJ3sxfScgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgezQyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VChBUlJBWVs0Ml06OmRfaW50NDJhcnIxIEFTIGRfaW50OGFyciBERUZBVUxUICd7MX0nIE9OIENP TlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIHs0Mn0KKygxIHJvdykKKworU0VM RUNUIENBU1QoQVJSQVlbNDJdOjpkX2ludDQyYXJyMSBBUyBkX2ludDhhcnJbXSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisK K1NFTEVDVCBDQVNUKEFSUkFZWzQyLDQxXSBBUyBkX2ludDQyW10gREVGQVVMVCAnezQyLCA0Mn0n IE9OIENPTlZFUlNJT04gRVJST1IpOworICBhcnJheSAgCistLS0tLS0tLS0KKyB7NDIsNDJ9Ciso MSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZWzQyLDQxXSBBUyBkX2ludF9hcnIgREVGQVVMVCAn ezQxLCA0M30nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBhcnJheSAgCistLS0tLS0tLS0KKyB7 NDEsNDN9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZWzQyLCA0MV06OmRfaW50NDJhcnIx IEFTIGRfaW50OGFyciBERUZBVUxUICd7MSwyLDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAg YXJyYXkgIAorLS0tLS0tLS0tCisgezEsMiwzfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJB WVs0MiwgNDFdIEFTIGRfaW50NDJhcnIxIERFRkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQyLDQyfQorKDEgcm93KQorCitTRUxF Q1QKKyAgICBDQVNUKENBU1QoQVJSQVlbQ0FTVChBUlJBWVs0MiwgNDJdIEFTIGRfaW50NDJhcnIp XSBBUyBkX2ludDQyYXJyMVtdKSBBUyBkX2ludDhhcnJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgICAgYXJyYXkgICAgCistLS0tLS0tLS0tLS0tCisgeyJ7NDIsNDJ9In0K KygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIp JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgdmFsdWUgdG9vIGxvbmcg Zm9yIHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoMykKK0xJTkUgMTogU0VMRUNUIENBU1QoJyhOVUxM KScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OLi4uCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoJyhOVUxM KScgQVMgY29tcDIgREVGQVVMVCAnKDEyMyknIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNvbXAy IAorLS0tLS0tLQorICgxMjMpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoLDQyKScgQVMgY29t cF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5 cG1vZCBERUZBVUxUICcoMSwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5f d2l0aF90eXBtb2QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCIxICAiLDIpCisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9k IERFRkFVTFQgJygxMjM0LDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9S OiAgdmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyKDMpCitMSU5FIDE6IC4uLlNUKCco TlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJy4u LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KK1NFTEVDVCBDQVNUKFJPVyhOVUxMLDQyKSBBUyBjb21wX2RvbWFpbl93aXRoX3R5 cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjog IGNhbm5vdCBjYXN0IHR5cGUgcmVjb3JkIHRvIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIHdoZW4g REVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9O IEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKFJPVyhOVUxMLDQyKSBBUyBjb21wX2RvbWFpbl93 aXRoX3R5cG1vZCBERUZBVUxUIC4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhw bGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlLgor LS0gdGVzdCBhcnJheSBjb2VyY2UKK1NFTEVDVCBDQVNUKGFycmF5WydhJzo6dGV4dF0gQVMgaW50 W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVsnYSddIEFTIGludFtdIERFRkFVTFQgQVJS QVlbMV0gT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgezF9CisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxF Q1QgQ0FTVChhcnJheVsxMTExMTExMTExMTExMTExMV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxF Q1QgQ0FTVChhcnJheVtbJ2FiYyddLFs0NTZdXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBD QVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJ T04gRVJST1IpOworICBpbnQ0ICAKKy0tLS0tLS0tCisgey03ODl9CisoMSByb3cpCisKK1NFTEVD VCBDQVNUKCd7MjM0LGRlZiw1Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEw MTF9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgaW50NCAgIAorLS0tLS0tLS0tCisgey0xMDEx fQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBB UyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCist LS0tLS0tCisgezEsMn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwg Wyd0aHJlZScsICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLW9rCisgIGFycmF5ICAKKy0tLS0tLS0tLQorIHsyMSwyMn0KKygxIHJvdykKKwor LS0gZXJyb3I6IGBgdGhyZWUnOjppbnRgYCB3aWxsIGZhaWwgZWFybGllcgorU0VMRUNUIENBU1Qo QVJSQVlbWycxJywgJzInXSwgWyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAn ezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3lu dGF4IGZvciB0eXBlIGludGVnZXI6ICJ0aHJlZSIKK0xJTkUgMTogU0VMRUNUIENBU1QoQVJSQVlb WycxJywgJzInXSwgWyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gLi4uCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhy ZWUnOjppbnRdIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2Vy OiAidGhyZWUiCitMSU5FIDE6IFNFTEVDVCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6OmludF0gQVMg aW50W10gREVGQVVMVCAnezIxLDIyfS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CistLSBzYWZlIGNhc3Qgd2l0aCBnZW9tZXRyeSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNUKCcoMSwy KSc6OnBvaW50IEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAg IGJveCAgICAgCistLS0tLS0tLS0tLS0tCisgKDEsMiksKDEsMikKKygxIHJvdykKKworU0VMRUNU IENBU1QoJ1soTmFOLDEpLChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0t LS0tLQorIChOYU4sSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDFlKzMwMCxJ bmZpbml0eSksKDFlKzMwMCxJbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgcG9pbnQgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tCisgKDFlKzMwMCxJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soMSwy KSwoMyw0KV0nOjpwYXRoIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworIHBvbHlnb24gCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhO YU4sMS4wLE5hTixpbmZpbml0eSknOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChOYU4s SW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJv eCBBUyBsc2VnIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgbHNlZyAg ICAgIAorLS0tLS0tLS0tLS0tLS0tCisgWygyLDIpLCgwLDApXQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgcG9seWdvbiAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICgoMCwwKSwoMCwyKSwoMiwyKSwoMiwwKSkKKygxIHJvdykK KworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBhdGggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIHBhdGggCistLS0tLS0KKyAKKygxIHJvdykKKwor U0VMRUNUIENBU1QoJygyLjAsaW5maW5pdHksTmFOLGluZmluaXR5KSc6OmJveCBBUyBjaXJjbGUg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBjaXJjbGUgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+CisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9s eWdvbiBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBv aW50ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKwor U0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBw YXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgcGF0aCAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCgyLDApLCgyLDQpLCgwLDApKQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29u IEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAg CistLS0tLS0tLS0tLS0tCisgKDIsNCksKDAsMCkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhO YU4saW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgY2lyY2xl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnPCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBwb2ludCAKKy0tLS0tLS0KKyAoNSwxKQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIGJveCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0tLS0tLS0tCisgKDMs NSksKDMsNSkKKygxIHJvdykKKworLS0gY2FzdCBmcm9tIHR5cGUgY2lyY2xlIHRvIHR5cGUgcG9s eWdvbiBpcyBpbXBsZW1lbnRlZCBhcyBhbiBTUUwgZnVuY3Rpb24sIHdoaWNoIGNhbm5vdCBiZSBl cnJvci1zYWZlCitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBl IGNpcmNsZSB0byBwb2x5Z29uIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBp biBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCc8KDMs NSksMD4nOjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQy4uLgorICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0 aW9uIGlzIG5vdCBlcnJvciBzYWZlLgorLS0gc2FmZSBjYXN0IGZyb20vdG8gbW9uZXkgdHlwZSBp cyBub3Qgc3VwcG9ydGVkLCBhbGwgdGhlIGZvbGxvd2luZyB3b3VsZCByZXN1bHQgZXJyb3IKK1NF TEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGJpZ2ludCB0byBtb25leSB3aGVuIERF RkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBF UlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEV4cGxp Y2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZS4KK1NF TEVDVCBDQVNUKE5VTEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8gbW9uZXkgd2hlbiBE RUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04g RVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBs aWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCitT RUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBudW1lcmljIHRvIG1vbmV5IHdo ZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJT SU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAg RXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZl LgorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbW9uZXkgdG8gbnVtZXJp YyB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09O VkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmlj IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElO VDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Ig c2FmZS4KK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5W10gQVMgbnVtZXJpY1tdIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBtb25leVtd IHRvIG51bWVyaWNbXSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FT VCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjptb25l eVtdIEFTIG51bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkUuLi4KKyAgICAgICAgICAgICAg ICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBp cyBub3QgZXJyb3Igc2FmZS4KKy0tIHNhZmUgY2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIg ZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFT IGludDggREVGQVVMVCAxOSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0tCisg ICAxOQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODlBJzo6Ynl0ZWEgQVMgaW50 NCBERUZBVUxUIDIwIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0KKyAgIDIw CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6OmJ5dGVhIEFTIGludDIgREVGQVVM VCAyMSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQyIAorLS0tLS0tCisgICAyMQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODkwYWJjZGVmJzo6Ynl0ZWEgQVMgdXVpZCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgdXVpZCAKKy0tLS0tLQorIAorKDEgcm93 KQorCistLSBzYWZlIGNhc3QgZnJvbSB1dWlkIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VM RUNUIENBU1QoJzViMzUzODBhLTcxNDMtNDkxMi05YjU1LWYzMjI2OTljNjc3MCc6OnV1aWQgQVMg Ynl0ZWEgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAgICAgICAg Ynl0ZWEgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBceDViMzUzODBhNzE0MzQ5MTI5YjU1ZjMyMjY5OWM2NzcwCisoMSByb3cpCisKKy0tIHNh ZmUgY2FzdCBmcm9tIGJpdCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcx MTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQgREVGQVVMVCAyMiBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAyMgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCAo JzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVDggREVGQVVMVCAyMyBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0tCisgICAyMworKDEgcm93KQorCistLSBzYWZlIGNh c3QgZnJvbSB0ZXh0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworc2VsZWN0IENBU1QoJ2EuYi5j LmQnOjp0ZXh0IGFzIHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9uIGVycm9yKTsK KyByZWdjbGFzcyAKKy0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHRlc3Rf c2FmZWNhc3QoY29sMCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QoY29sMCkgVkFM VUVTICgnPHZhbHVlPm9uZTwvdmFsdWUnKTsKK1NFTEVDVCBjb2wwIGFzIHRleHQsCisgICAgICAg Q0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisgICAgICAgQ0FT VChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2FmZWNhc3Q7Cisg ICAgICAgdGV4dCAgICAgICAgfCB0b19yZWdjbGFzcyB8IGV4cGVjdF90cnVlIHwgdG9fY2hhciB8 ICAgICAgdG9fbmFtZSAgICAgIHwgdG9feG1sIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0KKyA8dmFsdWU+b25lPC92YWx1ZSB8ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCA8ICAg ICAgIHwgPHZhbHVlPm9uZTwvdmFsdWUgfCAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzE5Mi4x NjguMS54JyBhcyBpbmV0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbmV0 IAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEuMi8zMCcgYXMg Y2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY2lkciAKKy0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMjI6MDA6NWM6MDg6NTU6MDg6MDE6MDInOjptYWNh ZGRyOCBhcyBtYWNhZGRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBtYWNh ZGRyIAorLS0tLS0tLS0tCisgCisoMSByb3cpCisKKy0tIHNhZmUgY2FzdCBiZXR3ZWVlbiByYW5n ZSBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ0cmFuZ2UgQVMgaW50NG11bHRp cmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDRtdWx0aXJhbmdl IAorLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwzKX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1sx LDJdJzo6aW50OHJhbmdlIEFTIGludDhtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBpbnQ4bXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9 CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbMSwyXSc6Om51bXJhbmdlICBBUyBudW1tdWx0aXJh bmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBudW1tdWx0aXJhbmdlIAor LS0tLS0tLS0tLS0tLS0tCisge1sxLDJdfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZp bml0eSxpbmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBkYXRlbXVsdGlyYW5nZSAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKK1NF TEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzcmFuZ2UgQVMgdHNtdWx0aXJhbmdl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgIHRzbXVsdGlyYW5nZSAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1staW5maW5pdHksaW5maW5pdHldfQor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3R6cmFuZ2Ug QVMgdHN0em11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAg ICB0c3R6bXVsdGlyYW5nZSAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZp bml0eSxpbmZpbml0eV19CisoMSByb3cpCisKKy0tIHNhZmUgY2FzdCBiZXR3ZWVlbiBudW1lcmlj IGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MSgKKyAgY29sMSBmbG9hdDQs IGNvbDIgZmxvYXQ4LCBjb2wzIG51bWVyaWMsIGNvbDQgbnVtZXJpY1tdLAorICBjb2w1IGludDIg ZGVmYXVsdCAzMjc2NywKKyAgY29sNiBpbnQ0IGRlZmF1bHQgMzI3NjgsCisgIGNvbDcgaW50OCBk ZWZhdWx0IDQyOTQ5NjcyOTYpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCcx MS4xMjM0JywgJzExLjEyMzQnLCAnOTIyMzM3MjAzNjg1NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpu dW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdpbmYnLCAnaW5m JywgJ2luZicsICd7MTEuMTIzNCwgMTIsIGluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQg SU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJy1pbmYnLCAnLWluZicsICctaW5mJywgJ3sxMS4x MjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVj YXN0MSBWQUxVRVMoJ05hTicsICdOYU4nLCAnTmFOJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFO fSc6Om51bWVyaWNbXSk7CitTRUxFQ1QgY29sNSBhcyBpbnQyLAorICAgICAgIENBU1QoY29sNSBB UyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAg ICAgIENBU1QoY29sNSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNSBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDUgYXMgaW50OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDUg YXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQs CisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29s NSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworIGludDIgIHwgdG9faW50MiB8 IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9f bnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0KKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwg ICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAz Mjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAg ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorIDMy NzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwg ICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3 NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8 ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisoNCByb3dzKQorCitTRUxFQ1QgY29sNiBh cyBpbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNiBBUyBpbnQ0IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNiBB UyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAg ICBDQVNUKGNvbDYgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0OCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENB U1QoY29sNiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19udW1lcmljLAorICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2Fm ZWNhc3QxOworIGludDQgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwg dG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCist LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAzMjc2OCB8ICAg ICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2 OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAgICAgICAgIHwgICAz Mjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMy NzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3 NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAg ICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2 OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4w CisoNCByb3dzKQorCitTRUxFQ1QgY29sNyBhcyBpbnQ4LAorICAgICAgIENBU1QoY29sNyBBUyBp bnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAg IENBU1QoY29sNyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ0LAorICAgICAgIENBU1QoY29sNyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDcgYXMgaW50OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDcgYXMg ZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisg ICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNyBh cyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICAgIGludDggICAgfCB0b19pbnQy IHwgdG9faW50NCB8IHRvX29pZCB8ICB0b19pbnQ4ICAgfCAgdG9fZmxvYXQ0ICB8IHRvX2Zsb2F0 OCAgfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgNDI5NDk2NzI5NiB8ICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2 NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2 NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2 NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgIHwgNDI5NDk2NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2 NzI5NiB8IDQyOTQ5NjcyOTYgfCAgICAgICAgICAgICAgICAgCisoNCByb3dzKQorCitTRUxFQ1Qg Y29sMyBhcyBudW1lcmljLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQyIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQ0 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENB U1QoY29sMyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29p ZCwKKyAgICAgICBDQVNUKGNvbDMgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wzIGFz IGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAor ICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljKDEwLDEpIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9N IHRlc3Rfc2FmZWNhc3QxOworICAgICAgIG51bWVyaWMgICAgICAgfCB0b19pbnQyIHwgdG9faW50 NCB8IHRvX29pZCB8IHRvX2ludDggfCAgdG9fZmxvYXQ0ICB8ICAgICAgdG9fZmxvYXQ4ICAgICAg IHwgICAgIHRvX251bWVyaWMgICAgICB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0KKyA5MjIzMzcyMDM2ODU0Nzc1ODA4IHwgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgfCAgICAgICAgIHwgOS4yMjMzN2UrMTggfCA5LjIyMzM3MjAzNjg1NDc4ZSsxOCB8IDky MjMzNzIwMzY4NTQ3NzU4MDggfCAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBJbmZpbml0 eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgIEluZmluaXR5IHwg ICAgICAgICAgICAgSW5maW5pdHkgfCAgICAgICAgICAgIEluZmluaXR5IHwgICAgICAgICAgICAg ICAgIAorICAgICAgICAgICAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8 ICAgICAgICAgfCAgIC1JbmZpbml0eSB8ICAgICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICAg IC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgTmFOIHwgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICBOYU4gfCAgICAgICAg ICAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOCiso NCByb3dzKQorCitTRUxFQ1QgY29sNCBhcyBudW1fYXJyLAorICAgICAgIENBU1QoY29sNCBBUyBp bnQyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDJhcnIsCisgICAg ICAgQ0FTVChjb2w0IEFTIGludDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgaW50NGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgaW50OFtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDRb XSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgZjRhcnIsCisgICAgICAgQ0FT VChjb2w0IGFzIGZsb2F0OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBm OGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgbnVtZXJpYygxMCwxKVtdIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyBudW1hcnIKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgICAg ICAgICAgbnVtX2FyciAgICAgICAgICAgfCBpbnQyYXJyIHwgaW50NGFyciB8IGludDhhcnIgfCAg ICAgICAgICAgZjRhcnIgICAgICAgICAgICB8ICAgICAgICAgICBmOGFyciAgICAgICAgICAgIHwg bnVtYXJyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0KKyB7MTEuMTIzNH0gICAgICAgICAgICAgICAgICB8IHsxMX0g ICAgfCB7MTF9ICAgIHwgezExfSAgICB8IHsxMS4xMjM0fSAgICAgICAgICAgICAgICAgIHwgezEx LjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTEuMX0KKyB7MTEuMTIzNCwxMixJbmZpbml0eSxO YU59ICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8IHsxMS4xMjM0LDEyLEluZmluaXR5 LE5hTn0gIHwgezExLjEyMzQsMTIsSW5maW5pdHksTmFOfSAgfCAKKyB7MTEuMTIzNCwxMiwtSW5m aW5pdHksTmFOfSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8IHsxMS4xMjM0LDEyLC1J bmZpbml0eSxOYU59IHwgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAKKyB7MTEuMTIzNCwx MiwtSW5maW5pdHksTmFOfSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8IHsxMS4xMjM0 LDEyLC1JbmZpbml0eSxOYU59IHwgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAKKyg0IHJv d3MpCisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50MiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNU KGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wxIGFzIGludDggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0 NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAg IENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVt ZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJp Y19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgZmxvYXQ0ICAgfCB0b19pbnQyIHwgdG9f aW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCAgICB0b19mbG9hdDggICAgIHwg dG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgMTEuMTIzNCB8ICAgICAgMTEgfCAg ICAgIDExIHwgICAgICAgIHwgICAgICAxMSB8ICAgMTEuMTIzNCB8IDExLjEyMzM5OTczNDQ5NzEg fCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEuMQorICBJbmZpbml0eSB8ICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJbmZpbml0eSB8ICAgICAgICAgSW5maW5pdHkg fCAgIEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorIC1JbmZpbml0eSB8ICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IC1JbmZpbml0eSB8ICAgICAgICAtSW5maW5pdHkg fCAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgIE5hTiB8ICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4g fCAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgorKDQgcm93cykKKworU0VMRUNUIGNvbDIg YXMgZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMiBBUyBpbnQ0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29s MiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAg ICAgICBDQVNUKGNvbDIgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0 OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAg IENBU1QoY29sMiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rf c2FmZWNhc3QxOworICBmbG9hdDggICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9f aW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3Nj YWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQor ICAgMTEuMTIzNCB8ICAgICAgMTEgfCAgICAgIDExIHwgICAgICAgIHwgICAgICAxMSB8ICAgMTEu MTIzNCB8ICAgMTEuMTIzNCB8ICAgIDExLjEyMzQgfCAgICAgICAgICAgICAxMS4xCisgIEluZmlu aXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgIEluZmluaXR5IHwg IEluZmluaXR5IHwgICBJbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAtSW5maW5pdHkgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAtSW5maW5pdHkgfCAtSW5maW5p dHkgfCAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgIE5hTiB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgIE5hTiB8ICAgICAgIE5hTiB8ICAg ICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOCisoNCByb3dzKQorCistLSBzYWZlIHR5cGUgY2Fz dCBmb3IgdHlwZSBkYXRlL3RpbWVzdGFtcC90aW1lc3RhbXB0ei9pbnRlcnZhbAorQ1JFQVRFIFRB QkxFIHRlc3Rfc2FmZWNhc3QyKAorICBjb2wwIGRhdGUsIGNvbDEgdGltZXN0YW1wLCBjb2wyIHRp bWVzdGFtcHR6LAorICBjb2wzIGludGVydmFsLCBjb2w0IHRpbWUsIGNvbDUgdGltZXR6KTsKK0lO U0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QyIFZBTFVFUworKCctaW5maW5pdHknLCAnLWluZmluaXR5 JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLAorICAnMjAwMy0wMy0wNyAxNTozNjozOSBBbWVy aWNhL05ld19Zb3JrJywgJzIwMDMtMDctMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycpLAor KCctaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLCAnMTE6NTk6 NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7CitTRUxFQ1QgY29sMCBhcyBkYXRlLAor ICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChj b2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz LAorICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIpIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZS T00gdGVzdF9zYWZlY2FzdDI7CisgICBkYXRlICAgIHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0 ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmlu aXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyAtaW5maW5pdHkgfCAtaW5m aW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5 CisoMiByb3dzKQorCitTRUxFQ1QgY29sMSBhcyB0aW1lc3RhbXAsCisgICAgICAgQ0FTVChjb2wx IEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChj b2wxIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXR6LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MjsKKyB0aW1lc3RhbXAgfCB0b190aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwg dG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tCisgLWluZmluaXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8 ICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5ICB8IGluZmluaXR5ICAgICAgIHwgaW5m aW5pdHkgIHwgICAgICAgICAgfCAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VM RUNUIGNvbDIgYXMgdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAg ICAgICBDQVNUKGNvbDIgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENB U1QoY29sMiBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXB0 eiB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0 b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZp bml0eSAgIHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAg ICB8IC1pbmZpbml0eQorIGluZmluaXR5ICAgIHwgaW5maW5pdHkgICAgICAgfCBpbmZpbml0eSAg fCAgICAgICAgICB8ICAgICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29s MyBhcyBpbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1Qo Y29sMyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRl LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFT IHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wX3NjYWxlLAorICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDI7CisgaW50ZXJ2YWwgIHwgdG9fdGltZXN0YW1wdHogfCB0b19kYXRlIHwgdG9fdGlt ZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgfCB0b19pbnRlcnZhbF9zY2FsZSAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0 eSB8ICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgIHwgICAgICAgICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBp bmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDQgYXMgdGltZSwKKyAgICAgICBDQVNUKGNv bDQgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXMsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgSVMgTk9UIE5VTEwgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNCBBUyBp bnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2 YWwsCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsK KyAgICB0aW1lICAgICB8ICB0b190aW1lcyAgIHwgdG9fdGltZXR6IHwgICAgICAgICAgdG9faW50 ZXJ2YWwgICAgICAgICAgfCAgICAgICB0b19pbnRlcnZhbF9zY2FsZSAgICAgICAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxNTozNjozOSAgICB8IDE1 OjM2OjM5ICAgIHwgdCAgICAgICAgIHwgQCAxNSBob3VycyAzNiBtaW5zIDM5IHNlY3MgICAgfCBA IDE1IGhvdXJzIDM2IG1pbnMgMzkgc2VjcworIDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgfCB0 ICAgICAgICAgfCBAIDIzIGhvdXJzIDU5IG1pbnMgNTkuOTkgc2VjcyB8IEAgMjMgaG91cnMgNTkg bWlucyA1OS45OSBzZWNzCisoMiByb3dzKQorCitTRUxFQ1QgY29sNSBhcyB0aW1ldHosCisgICAg ICAgQ0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRp bWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAg ICAgIENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENB U1QoY29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgICAgIHRpbWV0eiAg ICAgfCAgIHRvX3RpbWUgICB8IHRvX3RpbWVfc2NhbGUgfCAgIHRvX3RpbWV0eiAgICB8IHRvX3Rp bWV0el9zY2FsZSB8IHRvX2ludGVydmFsIHwgdG9faW50ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6 MzktMDQgICAgfCAxNTozNjozOSAgICB8IDE1OjM2OjM5ICAgICAgfCAxNTozNjozOS0wNCAgICB8 IDE1OjM2OjM5LTA0ICAgICB8ICAgICAgICAgICAgIHwgCisgMjM6NTk6NTkuOTktMDcgfCAyMzo1 OTo1OS45OSB8IDIzOjU5OjU5Ljk5ICAgfCAyMzo1OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5LTA3 ICB8ICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2Fz dDMoY29sMCBqc29uYik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0Myhjb2wwKSBWQUxVRVMg KCcidGVzdCInKTsKK1NFTEVDVCBjb2wwIGFzIGpzb25iLAorICAgICAgIENBU1QoY29sMCBBUyBp bnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlZ2VyLAor ICAgICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMCBBUyBiaWdpbnQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wwIEFT IGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAor ICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgYm9vbGVhbiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9vbCwKKyAgICAgICBDQVNUKGNvbDAgQVMg c21hbGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3NtYWxsaW50 CitGUk9NIHRlc3Rfc2FmZWNhc3QzOworIGpzb25iICB8IHRvX2ludGVnZXIgfCB0b19udW1lcmlj IHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX2Jvb2wgfCB0b19zbWFsbGlu dCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgInRlc3QiIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgCisoMSByb3cpCisKKy0tIHRlc3QgZGVwYXJzZQorU0VUIGRhdGVz dHlsZSBUTyBJU08sIFlNRDsKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmlldyBBUworU0VMRUNUIENB U1QoJzEyMzQnIGFzIGNoYXIoMykgREVGQVVMVCAtMTExMSBPTiBDT05WRVJTSU9OIEVSUk9SKSwK KyAgICAgICBDQVNUKDEgYXMgZGF0ZSBERUZBVUxUICgoJzIwMjUtRGVjLTA2Jzo6ZGF0ZSArIHJh bmRvbShtaW49PjEsIG1heD0+MTo6aW50KSkpIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3Qw LAorICAgICAgIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVG QVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1Qo QVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDIsCisgICAgICAgQ0FTVChBUlJBWVsndGhyZWUn XSBBUyBJTlRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDM7 Citcc3Ygc2FmZWNhc3R2aWV3CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy5zYWZlY2Fz dHZpZXcgQVMKKyBTRUxFQ1QgQ0FTVCgnMTIzNCcgQVMgY2hhcmFjdGVyKDMpIERFRkFVTFQgJy0x MTExJzo6aW50ZWdlcjo6Y2hhcmFjdGVyKDMpIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGJwY2hh ciwKKyAgICBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUICcyMDI1LTEyLTA2Jzo6ZGF0ZSArIHJhbmRv bShtaW4gPT4gMSwgbWF4ID0+IDEpIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QwLAorICAg IENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0aHJlZSddLCBBUlJBWVsnYSddXSBBUyBpbnRl Z2VyW10gREVGQVVMVCAnezEsMn0nOjppbnRlZ2VyW10gT04gQ09OVkVSU0lPTiBFUlJPUikgQVMg Y2FzdDEsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsnMScsICcyJ10sIEFSUkFZWyd0aHJlZScsICdh J11dIEFTIGRhdGVbXSBERUZBVUxUIE5VTEw6OmRhdGVbXSBPTiBDT05WRVJTSU9OIEVSUk9SKSBB UyBjYXN0MiwKKyAgICBDQVNUKEFSUkFZWyd0aHJlZSddIEFTIGludGVnZXJbXSBERUZBVUxUICd7 MSwyfSc6OmludGVnZXJbXSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MworU0VMRUNUICog RlJPTSBzYWZlY2FzdHZpZXc7CisgYnBjaGFyIHwgICBjYXN0MCAgICB8IGNhc3QxIHwgY2FzdDIg fCBjYXN0MyAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQor IDEyMyAgICB8IDIwMjUtMTItMDcgfCB7MSwyfSB8ICAgICAgIHwgezEsMn0KKygxIHJvdykKKwor Q1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsn dGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyCisgICAgICAgICAgICBERUZBVUxUICd7NDEsNDN9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNUKEFSUkFZW1snMScs ICcyJywgMS4xXSwgWyd0aHJlZScsIHRydWUsIEInMDEnXV0gQVMgZF9pbnRfYXJyCisgICAgICAg ICAgICBERUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MjsKK1xz diBzYWZlY2FzdHZpZXcxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy5zYWZlY2FzdHZp ZXcxIEFTCisgU0VMRUNUIENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0aHJlZSddLCBBUlJB WVsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQxLDQzfSc6OmludGVnZXJbXTo6ZF9pbnRf YXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QxLAorICAgIENBU1QoQVJSQVlbQVJSQVlb MSwgMiwgMS4xOjppbnRlZ2VyXSwgQVJSQVlbJ3RocmVlJywgdHJ1ZSwgJzAxJzo6ImJpdCJdXSBB UyBkX2ludF9hcnIgREVGQVVMVCAnezQxLDQzfSc6OmludGVnZXJbXTo6ZF9pbnRfYXJyIE9OIENP TlZFUlNJT04gRVJST1IpIEFTIGNhc3QyCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzE7Cisg IGNhc3QxICB8ICBjYXN0MiAgCistLS0tLS0tLS0rLS0tLS0tLS0tCisgezQxLDQzfSB8IHs0MSw0 M30KKygxIHJvdykKKworUkVTRVQgZGF0ZXN0eWxlOworLS0gdGVzdCBDQVNUIERFRkFVTFQgZXhw cmVzc2lvbiBtdXRhYmlsaXR5CitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9z YWZlY2FzdDMoKENBU1QoY29sMCBhcyBpbnQgREVGQVVMVCByYW5kb20obWluPT4xLCBtYXg9PjEp IE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tIGVycm9yCitFUlJPUjogIGZ1bmN0aW9ucyBpbiBp bmRleCBleHByZXNzaW9uIG11c3QgYmUgbWFya2VkIElNTVVUQUJMRQorTElORSAxOiBDUkVBVEUg SU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyAuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K K0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2ww IGFzIHhpZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS0gZXJyb3IKK0VS Uk9SOiAgZGF0YSB0eXBlIHhpZCBoYXMgbm8gZGVmYXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgYWNj ZXNzIG1ldGhvZCAiYnRyZWUiCitISU5UOiAgWW91IG11c3Qgc3BlY2lmeSBhbiBvcGVyYXRvciBj bGFzcyBmb3IgdGhlIGluZGV4IG9yIGRlZmluZSBhIGRlZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9y IHRoZSBkYXRhIHR5cGUuCitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZl Y2FzdDMoKENBU1QoY29sMCBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip KSk7IC0tb2sKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoJ2Nhc3RfZXJyb3JfaWR4Jzo6cmVnY2xh c3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRF IElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHB1YmxpYy50ZXN0X3NhZmVjYXN0MyBVU0lORyBidHJl ZSAoKENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTDo6aW50ZWdlciBPTiBDT05WRVJT SU9OIEVSUk9SKSkpCisoMSByb3cpCisKK0RST1AgVklFVyBzYWZlY2FzdHZpZXc7CitEUk9QIFZJ RVcgc2FmZWNhc3R2aWV3MTsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUg dGVzdF9zYWZlY2FzdDE7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0 ZXN0X3NhZmVjYXN0MzsKK0RST1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4 OworRFJPUCBGVU5DVElPTiByZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhf dHlwbW9kOworRFJPUCBUWVBFIGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBE T01BSU4gZF9pbnQ4YXJyOworRFJPUCBET01BSU4gZF9pbnQ4OworRFJPUCBET01BSU4gZF9pbnQ0 MmFycjE7CitEUk9QIERPTUFJTiBkX2ludDQyYXJyOworRFJPUCBET01BSU4gZF9pbnQ0MjsKK0RS T1AgRE9NQUlOIGRfY2hhcjNfbm90X251bGw7CitEUk9QIERPTUFJTiBkX251bWVyaWM7CitSRVNF VCBleHRyYV9mbG9hdF9kaWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nh c3Qub3V0CmluZGV4IDBlNjk2NDRiY2EyLi42OGU2OWQxYzU4NCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKQEAgLTg4LDYgKzg4LDExIEBAIFNFTEVDVCAxMjM0 OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogIGJhcjEyMzQKICgxIHJv dykKIAorU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBl IGludGVnZXIgdG8gY2FzdHRlc3R0eXBlIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNp ZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNU KDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgorICAg ICAgICAgICAgICAgICAgICBeCitISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5l ZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQuCiAtLSBjaGVjayBkZXBlbmRlbmNpZXMgZ2Vu ZXJhdGVkIGZvciB0aGF0CiBTRUxFQ1QgcGdfZGVzY3JpYmVfb2JqZWN0KGNsYXNzaWQsIG9iamlk LCBvYmpzdWJpZCkgYXMgb2JqLAogICAgICAgIHBnX2Rlc2NyaWJlX29iamVjdChyZWZjbGFzc2lk LCByZWZvYmppZCwgcmVmb2Jqc3ViaWQpIGFzIG9ianJlZiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2VxdWl2Y2xhc3Mub3V0CmluZGV4IGFkOGFiMjk0ZmY2Li5lM2Y4YTI4MDdmOSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0CkBAIC05NSw2ICs5NSwxMyBAQCBj cmVhdGUgZnVuY3Rpb24gaW50OGFsaWFzMWNtcChpbnQ4LCBpbnQ4YWxpYXMxKSByZXR1cm5zIGlu dAogICBzdHJpY3QgaW1tdXRhYmxlIGxhbmd1YWdlIGludGVybmFsIGFzICdidGludDhjbXAnOwog YWx0ZXIgb3BlcmF0b3IgZmFtaWx5IGludGVnZXJfb3BzIHVzaW5nIGJ0cmVlIGFkZAogICBmdW5j dGlvbiAxIGludDhhbGlhczFjbXAgKGludDgsIGludDhhbGlhczEpOworLS0gaW50OGFsaWFzMiBi aW5hcnktY29lcmNpYmxlIHRvIGludDgsIHRoaXMgc2hvdWxkIG5vdCBmYWlsCitzZWxlY3QgY2Fz dCgnMSc6OmludDggYXMgaW50OGFsaWFzMiBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJv cik7CisgaW50OGFsaWFzMiAKKy0tLS0tLS0tLS0tLQorIDEKKygxIHJvdykKKwogY3JlYXRlIHRh YmxlIGVjMCAoZmYgaW50OCBwcmltYXJ5IGtleSwgZjEgaW50OCwgZjIgaW50OCk7CiBjcmVhdGUg dGFibGUgZWMxIChmZiBpbnQ4IHByaW1hcnkga2V5LCBmMSBpbnQ4YWxpYXMxLCBmMiBpbnQ4YWxp YXMyKTsKIGNyZWF0ZSB0YWJsZSBlYzIgKHhmIGludDggcHJpbWFyeSBrZXksIHgxIGludDhhbGlh czEsIHgyIGludDhhbGlhczIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggNzM0 ZGEwNTdjMzQuLmM4MmI0YjMxNDIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFs bGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAg LTgxLDcgKzgxLDcgQEAgdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJfZ2VuZXJpYyBhbHRl cl9vcGVyYXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXMKICMgY29sbGF0ZS5saW51eC51 dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4gaW4gcGFyYWxsZWwg d2l0aCBlYWNoIG90aGVyCiAjIHBzcWwgZGVwZW5kcyBvbiBjcmVhdGVfYW0KICMgYW11dGlscyBk ZXBlbmRzIG9uIGdlb21ldHJ5LCBjcmVhdGVfaW5kZXhfc3BnaXN0LCBoYXNoX2luZGV4LCBicmlu Ci10ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGluZSBhbXV0aWxzIHN0 YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndpbjEyNTIKK3Rlc3Q6 IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBwc3FsX3BpcGVsaW5lIGFtdXRpbHMgc3RhdHNfZXh0 IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRlLndpbmRvd3Mud2luMTI1MiBjYXN0CiAKICMgLS0t LS0tLS0tLQogIyBSdW4gdGhlc2UgYWxvbmUgc28gdGhleSBkb24ndCBydW4gb3V0IG9mIHBhcmFs bGVsIHdvcmtlcnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmQ5OTJiMzY5ZWEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY2FzdC5zcWwKQEAgLTAsMCArMSwzOTcgQEAKK1NFVCBleHRyYV9mbG9hdF9kaWdp dHMgPSAwOworCistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgorU0VMRUNUIENB U1QoQicwMScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVChCSVQnMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoVFJVRSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUICdBJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdkZWYnOjp0ZXh0IEFTIGludGVnZXIgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzInOjpqc29uYiBBUyB0 ZXh0IERFRkFVTFQgJ2ZhbGxiYWNrJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCcxJyBDT0xMQVRFICJDIiB8fCAnaCcgQVMgdGV4dCBERUZBVUxUICdmYWxsYmFjaycgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChjb25jYXQoJzEnIGNvbGxhdGUgIkMiLCAnaCcp IEFTIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCg2 NTUzNiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKGludDgoNjU1MzYpIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworCistLSBzb3VyY2UgZXhwcmVzc2lvbiBpcyBhIHVua25vd24gY29uc3QKK1ZBTFVFUyAoQ0FT VCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikpOyAtLSBlcnJv cgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpKTsKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgREVGQVVMVCA0MiBPTiBDT05W RVJTSU9OIEVSUk9SKSk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgMTggT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZB VUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1QgQ0FTVCgnYSc6OmludCBhcyBpbnQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorCistLSB0aGUgZGVmYXVsdCBl eHByZXNzaW9u4oCZcyBjb2xsYXRpb24gc2hvdWxkIG1hdGNoIHRhcmdldCB0eXBlIGNvbGxhdGlv bgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZBVUxUICcxJyBDT0xMQVRFICJDIiBP TiBDT05WRVJTSU9OIEVSUk9SKSk7CisKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0 b3IgREVGQVVMVCAnMSAzJyAgT04gQ09OVkVSU0lPTiBFUlJPUikpOworVkFMVUVTIChDQVNUKCdl cnJvcicgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sxIDN9JyAgT04gQ09OVkVSU0lPTiBFUlJP UikpOworCistLSBzb3VyY2UgZXhwcmVzc2lvbiBjb250YWluIHN1YnF1ZXJ5CitTRUxFQ1QgQ0FT VCgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSksIChWQUxVRVMoJ0gnKSkgcyhi KSkKKyAgICAgICAgICAgIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoKFNFTEVDVCBBUlJBWSgoU0VMRUNUIGIgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMikgZywgKFZBTFVFUygnSCcpKSBzKGIpKSkpCisgICAgICAgICAg ICBBUyBJTlRbXQorICAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworCitDUkVBVEUgRlVOQ1RJT04gcmV0X2ludDgoKSBSRVRVUk5TIEJJR0lOVCBBUworJCQKK0JF R0lOIFJFVFVSTiAyMTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFC TEU7CisKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZF UlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCBy ZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorCistLSBERUZBVUxUIGV4 cHJlc3Npb24gY2Fubm90IGJlIHNldC1yZXR1cm5pbmcKK0NSRUFURSBGVU5DVElPTiByZXRfc2V0 aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFVRVJZIEVY RUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5HVUFHRSBw bHBnc3FsIElNTVVUQUJMRTsKKworQ1JFQVRFIFRBQkxFIHRjYXN0MChhIElOVCwgYiBpbnQpOwor SU5TRVJUIElOVE8gdGNhc3QwIFZBTFVFUygxLDIpLCAoNjU1MzYsMyk7CitTRVQgaml0X2Fib3Zl X2Nvc3QgPSAwOworU0VMRUNUIENBU1QoYSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBGUk9NIHRjYXN0MDsKK1NFVCBqaXRfYWJvdmVfY29zdCBUTyBERUZBVUxUOwor U0VMRUNUIENBU1QoYSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBG Uk9NIHRjYXN0MDsKK1NFTEVDVCBDQVNUKFJPVygxLDIpIEFTIHRjYXN0MCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDAgYXMgdDsKK0RST1AgVEFCTEUgdGNhc3Qw OworCitTRUxFQ1QgQ0FTVCgxMi4xMTEgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZTsKKworQ1JFQVRFIFRBQkxFIHRj YXN0KGEgdGV4dFtdLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyBJREVOVElUWSk7CitJ TlNFUlQgSU5UTyB0Y2FzdCBWQUxVRVMgKCd7MTJ9JyksICgnezEsYSwgYn0nKSwgKCd7ezEsMn0s IHtjLGR9fScpLCAoJ3sxM30nKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRf c2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS0gZXJyb3IKK1NFTEVD VCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBDT05W RVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CitTRUxFQ1QgQ0FTVCh0LmEgQVMgaW50W10g REVGQVVMVCAnezIxLDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0 Y2FzdCBhcyB0OworCistLSB0ZXN0IHdpdGggdXNlci1kZWZpbmVkIHR5cGUsIGRvbWFpbiwgYXJy YXkgb3ZlciBkb21haW4sIGRvbWFpbiBvdmVyIGFycmF5CitDUkVBVEUgRE9NQUlOIGRfaW50NDIg YXMgaW50IGNoZWNrICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9pbnQ0 MmFyciBhcyBkX2ludDQyW107CitDUkVBVEUgRE9NQUlOIGRfaW50NDJhcnIxIGFzIGRfaW50NDJh cnI7CitDUkVBVEUgRE9NQUlOIGRfaW50OCBhcyBpbnQ4IGNoZWNrICh2YWx1ZSA+IDApOworQ1JF QVRFIERPTUFJTiBkX2ludDhhcnIgYXMgZF9pbnQ4W107CitDUkVBVEUgRE9NQUlOIGRfY2hhcjNf bm90X251bGwgYXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF92YXJjaGFyIGFz IHZhcmNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfaW50X2FyciBhcyBpbnRbXSBj aGVjayAodmFsdWUgPSAnezQxLCA0M30nKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNvbXBfZG9t YWluX3dpdGhfdHlwbW9kIEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NSRUFURSBU WVBFIGNvbXAyIEFTIChhIGRfdmFyY2hhcik7CitDUkVBVEUgRE9NQUlOIGRfbnVtZXJpYyBhcyBu dW1lcmljKDQsNCk7CisKK1NFTEVDVCBDQVNUKDEuMDo6ZmxvYXQ0IEFTIGRfbnVtZXJpYyBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnezEuMH0nIEFTIG51 bWVyaWMoNCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCd7MC4xLCAxLjB9JyBBUyBkX251bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MSBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1QgQ0FTVCgxMSBB UyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChO VUxMIEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworU0VMRUNU IENBU1QoQVJSQVlbNDJdOjpkX2ludDQyYXJyMSBBUyBkX2ludDggREVGQVVMVCAnMScgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVs0Ml06OmRfaW50NDJhcnIxIEFTIGRf aW50OFtdIERFRkFVTFQgJ3sxfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChB UlJBWVs0Ml06OmRfaW50NDJhcnIxIEFTIGRfaW50OGFyciBERUZBVUxUICd7MX0nIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbNDJdOjpkX2ludDQyYXJyMSBBUyBkX2lu dDhhcnJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKK1NFTEVDVCBDQVNU KEFSUkFZWzQyLDQxXSBBUyBkX2ludDQyW10gREVGQVVMVCAnezQyLCA0Mn0nIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbNDIsNDFdIEFTIGRfaW50X2FyciBERUZBVUxU ICd7NDEsIDQzfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVs0Miwg NDFdOjpkX2ludDQyYXJyMSBBUyBkX2ludDhhcnIgREVGQVVMVCAnezEsMiwzfScgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVs0MiwgNDFdIEFTIGRfaW50NDJhcnIxIERF RkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVAorICAgIENBU1Qo Q0FTVChBUlJBWVtDQVNUKEFSUkFZWzQyLCA0Ml0gQVMgZF9pbnQ0MmFycildIEFTIGRfaW50NDJh cnIxW10pIEFTIGRfaW50OGFycltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KworU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERF RkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoLDQyKScg QVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2Qg REVGQVVMVCAnKDEsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOVUxM LDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQsMiknIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoUk9XKE5VTEwsNDIpIEFTIGNv bXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS0gZXJyb3IKKworLS0gdGVzdCBhcnJheSBjb2VyY2UKK1NFTEVDVCBDQVNUKGFycmF5WydhJzo6 dGV4dF0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoYXJyYXlbJ2EnXSBBUyBpbnRbXSBERUZBVUxUIEFSUkFZWzFdIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJdIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChhcnJheVsxMTExMTExMTExMTExMTEx MV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoYXJyYXlbWydhYmMnXSxbNDU2XV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJ3sxMjMsYWJjLDQ1Nn0nIEFTIGludFtdIERFRkFVTFQg J3stNzg5fScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnezIzNCxkZWYsNTY3 fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAney0xMDExfScgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRb XSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJB WVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScg T04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKKy0tIGVycm9yOiBgYHRocmVlJzo6aW50YGAgd2ls bCBmYWlsIGVhcmxpZXIKK1NFTEVDVCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnOjpp bnQsICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoQVJSQVlbMSwgJ3RocmVlJzo6aW50XSBBUyBpbnRbXSBERUZBVUxUICd7 MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKKworLS0gc2FmZSBjYXN0IHdp dGggZ2VvbWV0cnkgZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBBUyBib3gg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soTmFOLDEp LChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLEluZmlu aXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCdbKDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29uIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4saW5maW5p dHkpJzo6Ym94IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJv eCBBUyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5hTixpbmZpbml0eSkn Ojpib3ggQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBw b2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIu MCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCks KDAuMCwwLjApJzo6cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoJyhOYU4saW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5 KSc6OnBvbHlnb24gQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBi b3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSBjYXN0IGZyb20gdHlw ZSBjaXJjbGUgdG8gdHlwZSBwb2x5Z29uIGlzIGltcGxlbWVudGVkIGFzIGFuIFNRTCBmdW5jdGlv biwgd2hpY2ggY2Fubm90IGJlIGVycm9yLXNhZmUKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpj aXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0t IHNhZmUgY2FzdCBmcm9tL3RvIG1vbmV5IHR5cGUgaXMgbm90IHN1cHBvcnRlZCwgYWxsIHRoZSBm b2xsb3dpbmcgd291bGQgcmVzdWx0IGVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1v bmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6 OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5W10gQVMgbnVtZXJp Y1tdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0gc2FmZSBjYXN0IGZy b20gYnl0ZWEgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCAoJ1x4MTEyMjMz NDQ1NTY2Nzc4ODk5Jzo6Ynl0ZWEgQVMgaW50OCBERUZBVUxUIDE5IE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVhIEFTIGludDQgREVGQVVMVCAy MCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6OmJ5dGVhIEFT IGludDIgREVGQVVMVCAyMSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdceDEy MzQ1Njc4OTBhYmNkZWYnOjpieXRlYSBBUyB1dWlkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKworLS0gc2FmZSBjYXN0IGZyb20gdXVpZCB0eXBlIHRvIG90aGVyIGRhdGEgdHlw ZXMKK1NFTEVDVCBDQVNUKCc1YjM1MzgwYS03MTQzLTQ5MTItOWI1NS1mMzIyNjk5YzY3NzAnOjp1 dWlkIEFTIGJ5dGVhIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0gc2Fm ZSBjYXN0IGZyb20gYml0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QoJzEx MTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVCBERUZBVUxUIDIyIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QgKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQ4 IERFRkFVTFQgMjMgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHNhZmUgY2FzdCBmcm9tIHRl eHQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRleHQg YXMgcmVnY2xhc3MgZGVmYXVsdCBOVUxMIG9uIGNvbnZlcnNpb24gZXJyb3IpOworCitDUkVBVEUg VEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2Fz dChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScpOworCitTRUxFQ1QgY29sMCBhcyB0 ZXh0LAorICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fcmVnY2xhc3MsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNz IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOVUxMIGFzIGV4cGVjdF90cnVl LAorICAgICAgIENBU1QoY29sMCBBUyAiY2hhciIgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19jaGFyLAorICAgICAgIENBU1QoY29sMCBBUyBuYW1lIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19uYW1lLAorICAgICAgIENBU1QoY29sMCBBUyB4 bWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3htbAorRlJPTSB0ZXN0 X3NhZmVjYXN0OworCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS4yLzMwJyBh cyBjaWRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcy MjowMDo1YzowODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSBzYWZlIGNhc3QgYmV0d2VlZW4gcmFuZ2UgZGF0 YSB0eXBlcworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbMSwyXSc6 OmludDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0 eSxpbmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6 dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHpt dWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0gc2FmZSBj YXN0IGJldHdlZWVuIG51bWVyaWMgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNh c3QxKAorICBjb2wxIGZsb2F0NCwgY29sMiBmbG9hdDgsIGNvbDMgbnVtZXJpYywgY29sNCBudW1l cmljW10sCisgIGNvbDUgaW50MiBkZWZhdWx0IDMyNzY3LAorICBjb2w2IGludDQgZGVmYXVsdCAz Mjc2OCwKKyAgY29sNyBpbnQ4IGRlZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQgSU5UTyB0ZXN0 X3NhZmVjYXN0MSBWQUxVRVMoJzExLjEyMzQnLCAnMTEuMTIzNCcsICc5MjIzMzcyMDM2ODU0Nzc1 ODA4JywgJ3sxMS4xMjM0fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0 MSBWQUxVRVMoJ2luZicsICdpbmYnLCAnaW5mJywgJ3sxMS4xMjM0LCAxMiwgaW5mLCBOYU59Jzo6 bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnLWluZicsICct aW5mJywgJy1pbmYnLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lO U0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnTmFOJywgJ05hTicsICdOYU4nLCAnezEx LjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKKworU0VMRUNUIGNvbDUgYXMgaW50 MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMgb2lk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FT VChjb2w1IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MTsKKworU0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNv bDYgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwK KyAgICAgICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENB U1QoY29sNiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJp YygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAg ICBDQVNUKGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFz IGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAg ICAgQ0FTVChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVt ZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAg ICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VM RUNUIGNvbDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDMgQVMg aW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAg ICBDQVNUKGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19vaWQsCisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29s MyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYygxMCwx KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBD QVNUKGNvbDQgQVMgaW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBp bnQyYXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNv bDQgYXMgZmxvYXQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJy LAorICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rfc2Fm ZWNhc3QxOworCitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIEFTIGlu dDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAg Q0FTVChjb2wxIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDQsCisgICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMSBhcyBm bG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAg ICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wxIGFz IG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251 bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wyIGFzIGZsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMgb2lk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FT VChjb2wyIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDIgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpYywKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MTsKKworLS0gc2FmZSB0eXBlIGNhc3QgZm9yIHR5cGUgZGF0ZS90aW1lc3RhbXAvdGltZXN0YW1w dHovaW50ZXJ2YWwKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MigKKyAgY29sMCBkYXRlLCBj b2wxIHRpbWVzdGFtcCwgY29sMiB0aW1lc3RhbXB0eiwKKyAgY29sMyBpbnRlcnZhbCwgY29sNCB0 aW1lLCBjb2w1IHRpbWV0eik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MiBWQUxVRVMKKygn LWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywKKyAgJzIw MDMtMDMtMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2OjM5 IEFtZXJpY2EvTmV3X1lvcmsnKSwKKygnLWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5 JywgJ2luZmluaXR5JywgJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5OjU5Ljk5IFBNIFBEVCcpOwor CitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAg ICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNU KGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wx IGFzIHRpbWVzdGFtcCwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1Qo Y29sMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRl LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFT IHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMiBhcyB0aW1l c3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBB UyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAg ICAgIENBU1QoY29sMiBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVz dGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1w X3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwK KyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1Qo Y29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l cywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAor ICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NF TEVDVCBjb2w0IGFzIHRpbWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sNCBB UyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5PVCBOVUxMIGFz IHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNCBB UyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2w1IGFzIHRpbWV0 eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAgICBDQVNUKGNv bDUgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l dHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRl cnZhbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisg ICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworQ1JF QVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QzKGNvbDAganNvbmIpOworSU5TRVJUIElOVE8gdGVzdF9z YWZlY2FzdDMoY29sMCkgVkFMVUVTICgnInRlc3QiJyk7CitTRUxFQ1QgY29sMCBhcyBqc29uYiwK KyAgICAgICBDQVNUKGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbnVtZXJpYyBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNv bDAgQVMgYmlnaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4 LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ4IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2ww IEFTIGJvb2xlYW4gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Jvb2ws CisgICAgICAgQ0FTVChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19zbWFsbGludAorRlJPTSB0ZXN0X3NhZmVjYXN0MzsKKworLS0gdGVzdCBk ZXBhcnNlCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2 aWV3IEFTCitTRUxFQ1QgQ0FTVCgnMTIzNCcgYXMgY2hhcigzKSBERUZBVUxUIC0xMTExIE9OIENP TlZFUlNJT04gRVJST1IpLAorICAgICAgIENBU1QoMSBhcyBkYXRlIERFRkFVTFQgKCgnMjAyNS1E ZWMtMDYnOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgY2FzdDAsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsn YSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2Fz dDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0 ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAgICAgICBD QVNUKEFSUkFZWyd0aHJlZSddIEFTIElOVFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBjYXN0MzsKK1xzdiBzYWZlY2FzdHZpZXcKK1NFTEVDVCAqIEZST00gc2FmZWNh c3R2aWV3OworCitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChBUlJB WVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAgIERFRkFV TFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1Qo QVJSQVlbWycxJywgJzInLCAxLjFdLCBbJ3RocmVlJywgdHJ1ZSwgQicwMSddXSBBUyBkX2ludF9h cnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IGNhc3QyOworXHN2IHNhZmVjYXN0dmlldzEKK1NFTEVDVCAqIEZST00gc2FmZWNhc3R2aWV3MTsK KworUkVTRVQgZGF0ZXN0eWxlOworCistLSB0ZXN0IENBU1QgREVGQVVMVCBleHByZXNzaW9uIG11 dGFiaWxpdHkKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0Mygo Q0FTVChjb2wwIGFzIGludCBERUZBVUxUIHJhbmRvbShtaW49PjEsIG1heD0+MSkgT04gQ09OVkVS U0lPTiBFUlJPUikpKTsgLS0gZXJyb3IKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0 ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIHhpZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikpKTsgLS0gZXJyb3IKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0 X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikpKTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRlZignY2FzdF9lcnJvcl9pZHgnOjpy ZWdjbGFzcyk7CisKK0RST1AgVklFVyBzYWZlY2FzdHZpZXc7CitEUk9QIFZJRVcgc2FmZWNhc3R2 aWV3MTsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2Fz dDE7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0 MzsKK0RST1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBGVU5D VElPTiByZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOworRFJP UCBUWVBFIGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9pbnQ4 YXJyOworRFJPUCBET01BSU4gZF9pbnQ4OworRFJPUCBET01BSU4gZF9pbnQ0MmFycjE7CitEUk9Q IERPTUFJTiBkX2ludDQyYXJyOworRFJPUCBET01BSU4gZF9pbnQ0MjsKK0RST1AgRE9NQUlOIGRf Y2hhcjNfbm90X251bGw7CitEUk9QIERPTUFJTiBkX251bWVyaWM7CitSRVNFVCBleHRyYV9mbG9h dF9kaWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKaW5kZXggMzIxODc4NTNj YzcuLjBhMTVhNzk1ZDg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVf Y2FzdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02 Miw2ICs2Miw3IEBAICQkIFNFTEVDVCAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKIAog Q1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0 X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBl OyAtLSBTaG91bGQgd29yayBub3cKK1NFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0 eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKIAogLS0gY2hl Y2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBmb3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29i amVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpIGFzIG9iaiwKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xhc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1 aXZjbGFzcy5zcWwKaW5kZXggN2ZjMjE1OTM0OWIuLjdhZGE0YmI1NTA0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9lcXVpdmNsYXNzLnNxbApAQCAtOTgsNiArOTgsOSBAQCBjcmVhdGUgZnVuY3Rpb24gaW50 OGFsaWFzMWNtcChpbnQ4LCBpbnQ4YWxpYXMxKSByZXR1cm5zIGludAogYWx0ZXIgb3BlcmF0b3Ig ZmFtaWx5IGludGVnZXJfb3BzIHVzaW5nIGJ0cmVlIGFkZAogICBmdW5jdGlvbiAxIGludDhhbGlh czFjbXAgKGludDgsIGludDhhbGlhczEpOwogCistLSBpbnQ4YWxpYXMyIGJpbmFyeS1jb2VyY2li bGUgdG8gaW50OCwgdGhpcyBzaG91bGQgbm90IGZhaWwKK3NlbGVjdCBjYXN0KCcxJzo6aW50OCBh cyBpbnQ4YWxpYXMyIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKwogY3JlYXRl IHRhYmxlIGVjMCAoZmYgaW50OCBwcmltYXJ5IGtleSwgZjEgaW50OCwgZjIgaW50OCk7CiBjcmVh dGUgdGFibGUgZWMxIChmZiBpbnQ4IHByaW1hcnkga2V5LCBmMSBpbnQ4YWxpYXMxLCBmMiBpbnQ4 YWxpYXMyKTsKIGNyZWF0ZSB0YWJsZSBlYzIgKHhmIGludDggcHJpbWFyeSBrZXksIHgxIGludDhh bGlhczEsIHgyIGludDhhbGlhczIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAwMDQy YzMzZmE2Ni4uOWNlYTM4NGYyZDMgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNzM0 LDYgKzI3MzQsOCBAQCBTVFJMRU4KIFNWCiBTWU5DSFJPTklaQVRJT05fQkFSUklFUgogU1lTVEVN X0lORk8KK1NhZmVUeXBlQ2FzdEV4cHIKK1NhZmVUeXBlQ2FzdFN0YXRlCiBTYW1wbGVTY2FuCiBT YW1wbGVTY2FuR2V0U2FtcGxlU2l6ZV9mdW5jdGlvbgogU2FtcGxlU2NhblN0YXRlCi0tIAoyLjM0 LjEKCg== --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7j15 RnJvbSBhOGE4M2MzMjQ1MTA1OWJhYmJiNDU4OTBjMWIzZmFhYjBkNTgzNWE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTM6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0aW1lc3RhbXAgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCiAgICAgICBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMs IHBwLnByb25hbWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBw Yy5jYXN0ZnVuYwphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlwZSA9 J3RpbWVzdGFtcCc6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogICAg ICAgICBjYXN0c291cmNlICAgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aG91dCB0 aW1lIHpvbmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMjAyOSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcF9kYXRlICAgICAgICB8IGRhdGUKIHRpbWVz dGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAg ICAxMzE2IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX3RpbWUgICAgICAg IHwgdGltZQogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGlt ZSB6b25lICAgIHwgICAgIDIwMjggfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3Rh bXBfdGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25l IHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgICAgIDE5NjEgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCB0aW1lc3RhbXBfc2NhbGUgICAgICAgfCB0aW1lc3RhbXAKKDQgcm93cykK CkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1i eTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtl ciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9y Zy9wYXRjaC81OTQxCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYyAgICAgIHwgIDcg KysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKyst LQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvZGF0ZS5jCmluZGV4IGUwNTJlNWIyZTg1Li4yZTgyNmEwNmU1MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv ZGF0ZS5jCkBAIC0xMzIyLDcgKzEzMjIsMTAgQEAgdGltZXN0YW1wX2RhdGUoUEdfRlVOQ1RJT05f QVJHUykKIAlUaW1lc3RhbXAJdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUCgwKTsKIAlE YXRlQURUCQlyZXN1bHQ7CiAKLQlyZXN1bHQgPSB0aW1lc3RhbXAyZGF0ZV9zYWZlKHRpbWVzdGFt cCwgTlVMTCk7CisJcmVzdWx0ID0gdGltZXN0YW1wMmRhdGVfc2FmZSh0aW1lc3RhbXAsIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJUEdfUkVUVVJOX05VTEwoKTsKKwogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7CiB9CiAK QEAgLTIwMDAsNyArMjAwMyw3IEBAIHRpbWVzdGFtcF90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgTlVMTCwg dG0sICZmc2VjLCBOVUxMLCBOVUxMKSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJu KGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJ TUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJh bmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IGRlYWJmODU5NTVjLi4y ODhkNjk2YmU3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMzQzLDcgKzM0Myw4 IEBAIHRpbWVzdGFtcF9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gdGltZXN0 YW1wOwogCi0JQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgTlVMTCk7 CisJaWYgKCFBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBmY2luZm8t PmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChy ZXN1bHQpOwogfQpAQCAtNjQyMyw4ICs2NDI0LDEzIEBAIERhdHVtCiB0aW1lc3RhbXBfdGltZXN0 YW1wdHooUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXAJdGltZXN0YW1wID0gUEdfR0VU QVJHX1RJTUVTVEFNUCgwKTsKKwlUaW1lc3RhbXBUeiByZXN1bHQ7CiAKLQlQR19SRVRVUk5fVElN RVNUQU1QVFoodGltZXN0YW1wMnRpbWVzdGFtcHR6KHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRp bWVzdGFtcDJ0aW1lc3RhbXB0el9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVM TCgpOworCisJUEdfUkVUVVJOX1RJTUVTVEFNUFRaKHJlc3VsdCk7CiB9CiAKIC8qCi0tIAoyLjM0 LjEKCg== --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7p18 RnJvbSBiZWJhMGRjYmI0MDQ2ODc1MTc3N2MyMmI2ZDE3NjZiMGVmYTJmNGRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTA6MTIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBkYXRlIHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2RhdGUnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAgICAgICBj YXN0dGFyZ2V0ICAgICAgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgICAgIHByb3NyYyAgICAgIHwgICBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiBkYXRlICAgICAgIHwgdGltZXN0YW1wIHdp dGhvdXQgdGltZSB6b25lIHwgICAgIDIwMjQgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBk YXRlX3RpbWVzdGFtcCAgIHwgdGltZXN0YW1wCiBkYXRlICAgICAgIHwgdGltZXN0YW1wIHdpdGgg dGltZSB6b25lICAgIHwgICAgIDExNzQgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBkYXRl X3RpbWVzdGFtcHR6IHwgdGltZXN0YW1wdHoKKDIgcm93cykKCkF1dGhvcjogamlhbiBoZSA8amlh bi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFp bC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEt amN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZl c3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYyB8IDE3ICsrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YwppbmRleCA4N2MwNjNmYTBjZC4uM2MwNWFiZDJjMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAt NzIyLDE1ICs3MjIsNiBAQCBkYXRlMnRpbWVzdGFtcHR6X3NhZmUoRGF0ZUFEVCBkYXRlVmFsLCBO b2RlICplc2NvbnRleHQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotLyoKLSAqIFByb21vdGUgZGF0 ZSB0byB0aW1lc3RhbXB0eiwgdGhyb3dpbmcgZXJyb3IgZm9yIG92ZXJmbG93LgotICovCi1zdGF0 aWMgVGltZXN0YW1wVHoKLWRhdGUydGltZXN0YW1wdHooRGF0ZUFEVCBkYXRlVmFsKQotewotCXJl dHVybiBkYXRlMnRpbWVzdGFtcHR6X3NhZmUoZGF0ZVZhbCwgTlVMTCk7Ci19Ci0KIC8qCiAgKiBk YXRlMnRpbWVzdGFtcF9ub19vdmVyZmxvdwogICoKQEAgLTEzMTUsNyArMTMwNiw5IEBAIGRhdGVf dGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFS R19EQVRFQURUKDApOwogCVRpbWVzdGFtcAlyZXN1bHQ7CiAKLQlyZXN1bHQgPSBkYXRlMnRpbWVz dGFtcChkYXRlVmFsKTsKKwlyZXN1bHQgPSBkYXRlMnRpbWVzdGFtcF9zYWZlKGRhdGVWYWwsIGZj aW5mby0+Y29udGV4dCk7CisJaWYoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOwog fQpAQCAtMTM4OCw3ICsxMzgxLDkgQEAgZGF0ZV90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdT KQogCURhdGVBRFQJCWRhdGVWYWwgPSBQR19HRVRBUkdfREFURUFEVCgwKTsKIAlUaW1lc3RhbXBU eiByZXN1bHQ7CiAKLQlyZXN1bHQgPSBkYXRlMnRpbWVzdGFtcHR6KGRhdGVWYWwpOworCXJlc3Vs dCA9IGRhdGUydGltZXN0YW1wdHpfc2FmZShkYXRlVmFsLCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9Ci0tIAoyLjM0LjEKCg== --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7m16 RnJvbSBmOGQwMmVhMTk4MzY1N2MwNmM3NGE5Y2I0ZTcxMTY2MDUyNDE0NTc5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTI6MjkgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0aW1lc3RhbXB0eiB0byBvdGhlciB0eXBl cwogcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0Ojpy ZWd0eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3Ny YywgcHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9 IHBjLmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBl ID0ndGltZXN0YW1wdHonOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoK ICAgICAgICBjYXN0c291cmNlICAgICAgICB8ICAgICAgICAgY2FzdHRhcmdldCAgICAgICAgICB8 IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICAgIHByb3NyYyAgICAg ICAgIHwgICBwcm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogdGltZXN0YW1wIHdpdGggdGltZSB6 b25lIHwgZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDExNzggfCBhICAgICAgICAg ICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el9kYXRlICAgICAgfCBkYXRlCiB0aW1lc3RhbXAg d2l0aCB0aW1lIHpvbmUgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25lICAgICAgfCAgICAgMjAxOSB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X3RpbWUgICAgICB8IHRpbWUK IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8 ICAgICAyMDI3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZXN0 YW1wIHwgdGltZXN0YW1wCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0aW1lIHdpdGggdGlt ZSB6b25lICAgICAgICAgfCAgICAgMTM4OCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRp bWVzdGFtcHR6X3RpbWV0eiAgICB8IHRpbWV0egogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwg dGltZXN0YW1wIHdpdGggdGltZSB6b25lICAgIHwgICAgIDE5NjcgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCB0aW1lc3RhbXB0el9zY2FsZSAgICAgfCB0aW1lc3RhbXB0egooNSByb3dzKQoK QXV0aG9yOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBDb3JleSBIdWlua2Vy IDxjb3JleS5odWlua2VyQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KQ29tbWl0ZmVzdDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3Jn L3BhdGNoLzU5NDEKLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgOSAr KysrKystLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyB8IDEwICsrKysrKysr LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2RhdGUuYwppbmRleCA0ODcyMTRiODVmNi4uZTA1MmU1YjJlODUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2RhdGUuYwpAQCAtMTM5OCw3ICsxMzk4LDEwIEBAIHRpbWVzdGFtcHR6X2RhdGUoUEdfRlVOQ1RJ T05fQVJHUykKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDAp OwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9IHRpbWVzdGFtcHR6MmRhdGVfc2FmZSh0 aW1lc3RhbXAsIE5VTEwpOworCXJlc3VsdCA9IHRpbWVzdGFtcHR6MmRhdGVfc2FmZSh0aW1lc3Rh bXAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5h cmdzKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7 CiB9CiAKQEAgLTIwMjgsNyArMjAzMSw3IEBAIHRpbWVzdGFtcHR6X3RpbWUoUEdfRlVOQ1RJT05f QVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0aW1lc3RhbXAydG0odGltZXN0YW1w LCAmdHosIHRtLCAmZnNlYywgTlVMTCwgTlVMTCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RF X0RBVEVUSU1FX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91 dCBvZiByYW5nZSIpKSk7CiAKQEAgLTI5NDcsNyArMjk1MCw3IEBAIHRpbWVzdGFtcHR6X3RpbWV0 eihQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJaWYgKHRpbWVzdGFt cDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxMKSAhPSAwKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3RpbWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5j CmluZGV4IDNiMDljMmY5ODQ5Li5kZWFiZjg1OTU1YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3Rh bXAuYwpAQCAtODY2LDcgKzg2Niw4IEBAIHRpbWVzdGFtcHR6X3NjYWxlKFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2Qo JnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgm cmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAK IAlQR19SRVRVUk5fVElNRVNUQU1QVFoocmVzdWx0KTsKIH0KQEAgLTY0ODUsOCArNjQ4NiwxMyBA QCBEYXR1bQogdGltZXN0YW1wdHpfdGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJVGlt ZXN0YW1wVHogdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUFRaKDApOworCVRpbWVzdGFt cAlyZXN1bHQ7CiAKLQlQR19SRVRVUk5fVElNRVNUQU1QKHRpbWVzdGFtcHR6MnRpbWVzdGFtcCh0 aW1lc3RhbXApKTsKKwlyZXN1bHQgPSB0aW1lc3RhbXB0ejJ0aW1lc3RhbXBfc2FmZSh0aW1lc3Rh bXAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQo ZmNpbmZvLT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElN RVNUQU1QKHJlc3VsdCk7CiB9CiAKIC8qCi0tIAoyLjM0LjEKCg== --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7r19 RnJvbSAyYzA2YThlMGU3MzlmNDE5NDkyZTQyZWRhYmQxMDg1Zjc0ZTgwZTVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MDk6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJz YWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29t PgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFp eE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBz Oi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8 ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXggMWI0MDA2ZmQ1MGEuLjQ0MjNiNzI0ZjlmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvZmxvYXQuYwpAQCAtMTIxNiw5ICsxMjE2LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05f QVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQpIG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1 cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVS SUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTog b3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAw LjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4 dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9S QU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAog CVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsKIH0KQEAgLTEyNDEsNyArMTI0Niw3IEBAIGR0b2k0 KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShp c25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2Vy IG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEyNjYsNyArMTI3MSw3IEBAIGR0b2kyKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0p IHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwppbmRleCA4ZmQ1NTFiZDUyYi4uMTliYjMwZjJk MGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAtMTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVO Q1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNoZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51 bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQll cmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYwppbmRleCA5MTYwNTMwMDdlYS4uNWMy ZTEyZmU3OGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYwpAQCAtNDU1OSw3ICs0NTU5LDggQEAg ZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAog CS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3JyeSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNl cyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRy LCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJvbV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRw dHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtl X3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7o17 RnJvbSBmMmNiOTVmZTQ1MDQ5YjE2OWM2ZDE1YmE5YmI0YjdiOWRlNjVjNjAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTE6MTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlcnZhbCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlcnZh bCc6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgICAgY2FzdHRhcmdldCAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KIGludGVydmFsICAgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25l IHwgICAgIDE0MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF90aW1lICB8 IHRpbWUKIGludGVydmFsICAgfCBpbnRlcnZhbCAgICAgICAgICAgICAgIHwgICAgIDEyMDAgfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF9zY2FsZSB8IGludGVydmFsCigyIHJv d3MpCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1 aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rn ci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRo UUBtYWlsLmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNx bC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgICAgICB8 IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyB8IDMgKystCiAyIGZpbGVz IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YwppbmRleCAzYzA1YWJkMmMxNC4uNDg3MjE0Yjg1ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAt MjA5OCw3ICsyMDk4LDcgQEAgaW50ZXJ2YWxfdGltZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVB RFQJCXJlc3VsdDsKIAogCWlmIChJTlRFUlZBTF9OT1RfRklOSVRFKHNwYW4pKQotCQllcmVwb3J0 KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJj b2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJj YW5ub3QgY29udmVydCBpbmZpbml0ZSBpbnRlcnZhbCB0byB0aW1lIikpKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jCmluZGV4IDUwYTczZmQyNGVjLi4zYjA5YzJmOTg0OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMTMyNSw3ICsxMzI1LDggQEAgaW50ZXJ2YWxfc2NhbGUo UEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KEludGVydmFsKTsKIAkq cmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRqdXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0 eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBt b2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5f SU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7t20 RnJvbSA0ZTgzNmE3MDQ1OTVlOGQyNjA2MDM3N2M5NTFkZDgwNDg4ZTQwNTQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MDY6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAxMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJz YWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29t PgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFp eE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBz Oi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBm aWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv ZmxvYXQuYwppbmRleCBmNzdmNzM4MjBkNy4uMWI0MDA2ZmQ1MGEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9h dC5jCkBAIC0xMzE1LDcgKzEzMTUsNyBAQCBmdG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyog UmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNf SU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250 ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9P Rl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0x MzQwLDcgKzEzNDAsNyBAQCBmdG9pMihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hl Y2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYo bnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4 LmMKaW5kZXggZGEzOTIxODk3NDMuLjhmZDU1MWJkNTJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAg LTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBj aGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2 NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9u dW1lcmljLmMKaW5kZXggZDY2ZmI4NjY2MmYuLjkxNjA1MzAwN2VhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9u dW1lcmljLmMKQEAgLTQ2NTcsNyArNDY1Nyw4IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29y cnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBzcGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9t X3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVuZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zy b21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQ R19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0gbWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIu MzQuMQoK --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7w21 RnJvbSA2MTcwNWUzNDFlOTE2MDU1NTA3MDNjYWU3ZjhmOGY3NzBhMDNiYmI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTc6NDkgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCkF1dGhvcjogamlh biBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwg PHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVp bmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2 MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29t CkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQx Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IGMx YmY5ZmQ1NzgzLi4wNDI1ZWE0NzNhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUw LDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxs b2MwX29iamVjdChtYWNhZGRyKTsKIAogCWlmICgoYWRkci0+ZCAhPSAweEZGKSB8fCAoYWRkci0+ ZSAhPSAweEZFKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQs IChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JB TkdFKSwKIAkJCQkgZXJybXNnKCJtYWNhZGRyOCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0 IHRvIG1hY2FkZHIiKSwKIAkJCQkgZXJyaGludCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZG IGFuZCBGRSBhcyB2YWx1ZXMgaW4gdGhlICIKLS0gCjIuMzQuMQoK --0000000000000f9331064d846ca4 Content-Type: text/x-patch; charset="US-ASCII"; name="v23-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v23-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn01zi7y22 RnJvbSA3YmRjZDZjMDY4NjAzMDVjNWUzODFjNGY3MjNiZTdhYzIzYzk2NGVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTc6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MyAwNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6 X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3Qu cG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3 b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwppbmRleCAzYTIwMDIwOTdkZC4uYzdlMDgyODc2NGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpAQCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19z aG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlpZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHko aXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1w KSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQs IChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VO VEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3VsZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikp KTsKIAotLSAKMi4zNC4xCgo= --0000000000000f9331064d846ca4--