Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uecB6-00CPr4-C7 for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Jul 2025 16:18:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uecB5-003FAu-Dz for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Jul 2025 16:18:47 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uecB5-003FAi-17 for pgsql-hackers@lists.postgresql.org; Wed, 23 Jul 2025 16:18:47 +0000 Received: from mail-qt1-x833.google.com ([2607:f8b0:4864:20::833]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uecB1-000Rne-3D for pgsql-hackers@postgresql.org; Wed, 23 Jul 2025 16:18:47 +0000 Received: by mail-qt1-x833.google.com with SMTP id d75a77b69052e-4ab86a29c98so501051cf.0 for ; Wed, 23 Jul 2025 09:18:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1753287523; x=1753892323; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=C8behOG7+HJkt5ybuNsk81J3My03UNe/YvgxCmKFvSY=; b=4gtxLuqmFSsIVM5CQya5AgO329JEQ6P8bgniD4MdmuRTTNtR3D7dtMa2Lh8rzZs1lh 7n9MfqVVCZe14eidU5U9FEq0vFr6v9LS9uDo5+QWynTGbGij2DFrmxxva/qWZYOgMeLH YexRUXm85qTcI2+NfVV0djmmEq8Ehq+ldRwjVY3ypJqR7TLUQTDPquAcsH+zP43h8W3Q V+m+vbTjd5CbSQ6wlWP7Z9o5ylSOrJzgNWPLYdCVY0XWfVg82K1wM0sdVgbASAZ5m66e PyBLhl9eABN82yzZ3B1lMoPiqqod+gsLpUwGGMvfOq1kkdY8G7rFbPW8yZSIv1TGtqFU o0ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753287523; x=1753892323; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=C8behOG7+HJkt5ybuNsk81J3My03UNe/YvgxCmKFvSY=; b=igyrolFNUeJGAb1TqWvpn6cpjqmjlkh0aPocisJ1tdvtzedGgOCKl6u8qCqKZwoLYk jlGQ/SXTWo8bXs+qwCp4IPdVPEiBlWIZH1SWeQHJb/Bp4jkPoTZ4pROyoOwsuLZ6aOcK JffKfp7xTtsGHM6mdQfNw86fVestWt77PI0u6Ey/GiutLhvwQ47RtIfIOvRnYzfR+XbJ 5Wk1P6d/KKWjtKcx/JoSEGRrqOt0KnM9yYiiJnjMuESNL5KXuz85+d7mOzrj7sR/tcBH X9uR3JJb66tYtCAWfLi+5QOiA/tOzxahq/AZtVWrSL/bS+K3LWGqDud6lkFLwCB1Vr+q Xm6A== X-Forwarded-Encrypted: i=1; AJvYcCXmlVIau0fmSSHwIts/ikwaxHZc4MGzBK2MhLs2wYVOjunt7D6eXeok1JeXUU35AHW8SCbnSC8xIwiRvepR@postgresql.org X-Gm-Message-State: AOJu0YxxJpJ/SvPt0PrmbfwwlNF75cFidZpwQExrSH4p7PGtOEj5hIIl cWHc/1hEzq2o91e8VMyGHct0qMfppIkMH1eNGLyhLVqWgWnmuLFVyFaqGd+kmA9TQBauSFmsbP0 DRLwwBETs7PnBPHS7o56/xIlqLRd6vBteJ0ysUOqw X-Gm-Gg: ASbGncunkrj76+s2hgnOmjvSqK+K7hx4zmYwFYwueFsaQzXYIYiBW+wqLPFgBxsZU+h J8GLEMZQCLnrgD2OkVBP1ZU44nJp+cGpbExPfHjOdBVyWSZme1NF057SeBPBbfUGW3tV55t5ntd YMcNYH6ugnsRLFKm4DNrYqFhkveD1wPsz5dAeV0fqp4JoM2Zu9DYSvTLBI3VraZi0wfLQOl/bWt gkjWmDWDFuC9zn7+Kouab4k92dyqBUIai8r/vwb X-Google-Smtp-Source: AGHT+IFNSAPJGse+BipSFB07u6ynAq77sJ+8CTvyAyOAvA/tz5HhLH9su9MuwReK6PqfIbFCZLloe1f1AaY6aI9PhEQ= X-Received: by 2002:a05:622a:1c1a:b0:4a5:a635:a0a with SMTP id d75a77b69052e-4ae6d609a30mr5533671cf.0.1753287522271; Wed, 23 Jul 2025 09:18:42 -0700 (PDT) MIME-Version: 1.0 References: <20230814150737.GA1395427@nathanxps13> <20230815153423.GB2296544@nathanxps13> In-Reply-To: From: Hannu Krosing Date: Wed, 23 Jul 2025 18:18:29 +0200 X-Gm-Features: Ac12FXwHbZQNAKBPSpGja5esWBMZd79WBoHlctxqhrf3tAa1A5S9Xc1919EIFkE Message-ID: Subject: Re: pgbench - adding pl/pgsql versions of tests To: Robert Haas Cc: Nathan Bossart , Fabien COELHO , pgsql-hackers Content-Type: multipart/mixed; boundary="000000000000f53e27063a9b0fa7" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f53e27063a9b0fa7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I had left plain < and > in code sample in documentation page, fixed now On Sun, Jul 6, 2025 at 11:52=E2=80=AFPM Hannu Krosing w= rote: > > On Sat, Feb 3, 2024 at 8:54=E2=80=AFAM Hannu Krosing = wrote: > > > > My justification for adding pl/pgsql tests as part of the immediately a= vailable tests > > is that pl/pgsql itself is always enabled, so having a no-effort way to= test its > > performance benefits would be really helpful. > > We also should have "tps-b-like as SQL function" to round up the "test = what's available in server" set. > > Finally got around to adding the tests for all out-of-the box > supported languages - pl/pgsql, and old and new SQL. > > Also added the documentation. --000000000000f53e27063a9b0fa7 Content-Type: application/x-patch; name="v3-0001-added-new-and-old-style-SQL-functions-and-documen.patch" Content-Disposition: attachment; filename="v3-0001-added-new-and-old-style-SQL-functions-and-documen.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdftgwa20 RnJvbSA3MmVkZTg4MTJmNjFlZDQ4NzlmNWMwMDVhMTgxMzFjMzJiYTI3NjhiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5udSBLcm9zaW5nIDxoYW5udWtAZ29vZ2xlLmNvbT4KRGF0 ZTogU3VuLCA2IEp1bCAyMDI1IDIzOjQxOjQ2ICswMjAwClN1YmplY3Q6IFtQQVRDSCB2MyAxLzJd IGFkZGVkIG5ldyBhbmQgb2xkIHN0eWxlIFNRTCBmdW5jdGlvbnMgYW5kCiBkb2N1bWVudGF0aW9u CgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvcGdiZW5jaC5zZ21sIHwgIDQzICsrKysrKystCiBzcmMv YmluL3BnYmVuY2gvcGdiZW5jaC5jICAgICB8IDE4NyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDIyMyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdiZW5jaC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9wZ2JlbmNoLnNnbWwKaW5kZXggYWIyNTJkOWZjNzQuLjZkNzMzY2ZmMWFmIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnYmVuY2guc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BnYmVuY2guc2dtbApAQCAtMTA1LDggKzEwNSw5IEBAIHBnYmVuY2ggLWkgPG9wdGlv bmFsPiA8cmVwbGFjZWFibGU+b3RoZXItb3B0aW9uczwvcmVwbGFjZWFibGU+IDwvb3B0aW9uYWw+ IDxyZXBsCiAgICAgPGxpdGVyYWw+cGdiZW5jaCAtaTwvbGl0ZXJhbD4gY3JlYXRlcyBmb3VyIHRh YmxlcyA8c3RydWN0bmFtZT5wZ2JlbmNoX2FjY291bnRzPC9zdHJ1Y3RuYW1lPiwKICAgICA8c3Ry dWN0bmFtZT5wZ2JlbmNoX2JyYW5jaGVzPC9zdHJ1Y3RuYW1lPiwgPHN0cnVjdG5hbWU+cGdiZW5j aF9oaXN0b3J5PC9zdHJ1Y3RuYW1lPiwgYW5kCiAgICAgPHN0cnVjdG5hbWU+cGdiZW5jaF90ZWxs ZXJzPC9zdHJ1Y3RuYW1lPiwKLSAgICBkZXN0cm95aW5nIGFueSBleGlzdGluZyB0YWJsZXMgb2Yg dGhlc2UgbmFtZXMuCi0gICAgQmUgdmVyeSBjYXJlZnVsIHRvIHVzZSBhbm90aGVyIGRhdGFiYXNl IGlmIHlvdSBoYXZlIHRhYmxlcyBoYXZpbmcgdGhlc2UKKyAgICBkZXN0cm95aW5nIGFueSBleGlz dGluZyB0YWJsZXMgb2YgdGhlc2UgbmFtZXMgYW5kIHRoZWlyIGRlcGVuZGVuY2llcy4KKyAgICBJ dCBhbHNvIGNyZWF0ZXMgNiBmdW5jdGlvbnMgc3RhcnRpbmcgd2l0aCA8c3RydWN0bmFtZT5wZ2Jl bmNoXzwvc3RydWN0bmFtZT4uCisgICAgQmUgdmVyeSBjYXJlZnVsIHRvIHVzZSBhbm90aGVyIGRh dGFiYXNlIGlmIHlvdSBoYXZlIHRhYmxlcyBvciBmdW5jdGlvbnMgaGF2aW5nIHRoZXNlCiAgICAg bmFtZXMhCiAgICA8L3BhcmE+CiAgIDwvY2F1dGlvbj4KQEAgLTM2MSw2ICszNjIsMTUgQEAgcGdi ZW5jaCA8b3B0aW9uYWw+IDxyZXBsYWNlYWJsZT5vcHRpb25zPC9yZXBsYWNlYWJsZT4gPC9vcHRp b25hbD4gPHJlcGxhY2VhYmxlPmQKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVu dHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InBnYmVuY2gtb3B0aW9uLW5vLWZ1bmN0aW9u cyI+CisgICAgICA8dGVybT48b3B0aW9uPi0tbm8tZnVuY3Rpb25zPC9vcHRpb24+PC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBEbyBub3QgY3JlYXRlIHBs L3Bnc3FsIGFuZCBTUUwgZnVuY3Rpb25zIGZvciBpbnRlcm5hbCBzY3JpcHRzLgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2 YXJsaXN0ZW50cnkgaWQ9InBnYmVuY2gtb3B0aW9uLXBhcnRpdGlvbi1tZXRob2QiPgogICAgICAg PHRlcm0+PG9wdGlvbj4tLXBhcnRpdGlvbi1tZXRob2Q9PHJlcGxhY2VhYmxlPk5BTUU8L3JlcGxh Y2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KQEAgLTQyNyw4ICs0Mzcs MzUgQEAgcGdiZW5jaCA8b3B0aW9uYWw+IDxyZXBsYWNlYWJsZT5vcHRpb25zPC9yZXBsYWNlYWJs ZT4gPC9vcHRpb25hbD4gPHJlcGxhY2VhYmxlPmQKICAgICAgICAgQXZhaWxhYmxlIGJ1aWx0LWlu IHNjcmlwdHMgYXJlOiA8bGl0ZXJhbD50cGNiLWxpa2U8L2xpdGVyYWw+LAogICAgICAgICA8bGl0 ZXJhbD5zaW1wbGUtdXBkYXRlPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+c2VsZWN0LW9ubHk8L2xp dGVyYWw+LgogICAgICAgICBVbmFtYmlndW91cyBwcmVmaXhlcyBvZiBidWlsdC1pbiBuYW1lcyBh cmUgYWNjZXB0ZWQuCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBVbmxl c3MgZGlzYWJsZWQgd2l0aCA8bGl0ZXJhbD4tLW5vLWZ1bmN0aW9uczwvbGl0ZXJhbD4gb3B0aW9u IGF0IGRhdGFiYXNlIAorICAgICAgICBpbml0IHRoZSA8bGl0ZXJhbD50cGNiLWxpa2U8L2xpdGVy YWw+IGFuZCA8bGl0ZXJhbD5zaW1wbGUtdXBkYXRlPC9saXRlcmFsPgorICAgICAgICBzY3JpcHRz IGFyZSBhbHNvIGltcGxlbWVudGVkIGFzIFVzZXItRGVmaW5lZCBmdW5jdGlvbnMgaW4gdGhlIGRh dGFiYXNlIHdoaWNoIAorICAgICAgICBjYW4gYmUgdGVzdGVkIHVzaW5nIHNjcmlwdHMgbmFtZWQg PGxpdGVyYWw+cGxwZ3NxbC10cGNiLWxpa2U8L2xpdGVyYWw+LCAKKyAgICAgICAgPGxpdGVyYWw+ c3FsZnVuYy10cGNiLWxpa2U8L2xpdGVyYWw+LCA8bGl0ZXJhbD5vbGRzcWxmLXRwY2ItbGlrZTwv bGl0ZXJhbD4sIAorICAgICAgICA8bGl0ZXJhbD5wbHBnc3FsLXNpbXBsZS11cGRhdGU8L2xpdGVy YWw+LCA8bGl0ZXJhbD5zcWxmdW5jLXNpbXBsZS11cGRhdGU8L2xpdGVyYWw+CisgICAgICAgIGFu ZCA8bGl0ZXJhbD5vbGRzcWxmLXNpbXBsZS11cGRhdGU8L2xpdGVyYWw+LgorICAgICAgICBUaGUg PGxpdGVyYWw+c3FsZnVuYy0qPC9saXRlcmFsPiB2ZXJzaW9ucyB1c2UgdGhlIG5ldyBTUUwtc3Rh bmRhcmQgU1FMIGZ1bmN0aW9ucyBhbmQgCisgICAgICAgIHRoZSA8bGl0ZXJhbD5vbGRzcWxmLSo8 L2xpdGVyYWw+IHVzZSB0aGUgU1FMIGZ1bmN0aW9ucyBkZWZpbmVkIHVzaW5nIDxsaXRlcmFsPkxB TkdVQUdFIFNRTDwvbGl0ZXJhbD4uCisgICAgICAgIFVzZSA8bGl0ZXJhbD4tLXNob3ctc2NyaXB0 PXNjcmlwdG5hbWU8L2xpdGVyYWw+IHRvIHNlZSB3aGF0IGlzIGFjdHVhbGx5IHJ1bi4KKyAgICAg ICA8L3BhcmE+CisgICAgICAgPHBhcmE+CiAgICAgICAgIFdpdGggdGhlIHNwZWNpYWwgbmFtZSA8 bGl0ZXJhbD5saXN0PC9saXRlcmFsPiwgc2hvdyB0aGUgbGlzdCBvZiBidWlsdC1pbiBzY3JpcHRz Ci0gICAgICAgIGFuZCBleGl0IGltbWVkaWF0ZWx5LgorICAgICAgICBhbmQgZXhpdCBpbW1lZGlh dGVseSA6Cis8cHJvZ3JhbWxpc3Rpbmc+CiskIHBnYmVuY2ggLWIgbGlzdAorQXZhaWxhYmxlIGJ1 aWx0aW4gc2NyaXB0czoKKyAgICAgICAgICAgICAgdHBjYi1saWtlOiA8YnVpbHRpbjogVFBDLUIg KHNvcnQgb2YpPgorICAgICAgcGxwZ3NxbC10cGNiLWxpa2U6IDxidWlsdGluOiBUUEMtQiAoc29y dCBvZikgLSBwbC9wZ3NxbCBVREY+CisgICAgICBzcWxmdW5jLXRwY2ItbGlrZTogPGJ1aWx0aW46 IFRQQy1CIChzb3J0IG9mKSAtICdCRUdJTiBBVE9NSUMnIFNRTCBVREY+CisgICAgICBvbGRzcWxm LXRwY2ItbGlrZTogPGJ1aWx0aW46IFRQQy1CIChzb3J0IG9mKSAtIExBTkdVQUdFIFNRTCBVREY+ CisgICAgICAgICAgc2ltcGxlLXVwZGF0ZTogPGJ1aWx0aW46IHNpbXBsZSB1cGRhdGU+CisgIHBs cGdzcWwtc2ltcGxlLXVwZGF0ZTogPGJ1aWx0aW46IHNpbXBsZSB1cGRhdGUgLSBwbC9wZ3NxbCBV REY+CisgIHNxbGZ1bmMtc2ltcGxlLXVwZGF0ZTogPGJ1aWx0aW46IHNpbXBsZSB1cGRhdGUgLSAn QkVHSU4gQVRPTUlDJyBTUUwgVURGPgorICBvbGRzcWxmLXNpbXBsZS11cGRhdGU6IDxidWlsdGlu OiBzaW1wbGUgdXBkYXRlIC0gTEFOR1VBR0UgU1FMIFVERj4KKyAgICAgICAgICAgIHNlbGVjdC1v bmx5OiA8YnVpbHRpbjogc2VsZWN0IG9ubHk+Cis8L3Byb2dyYW1saXN0aW5nPgogICAgICAgIDwv cGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgT3B0aW9uYWxseSwgd3JpdGUgYW4gaW50ZWdl ciB3ZWlnaHQgYWZ0ZXIgPGxpdGVyYWw+QDwvbGl0ZXJhbD4gdG8KZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdiZW5jaC9wZ2JlbmNoLmMgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCmluZGV4IDQ5 N2E5MzZjMTQxLi4yMWQyZmQ2NDU0OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVu Y2guYworKysgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCkBAIC0xNjAsOCArMTYwLDggQEAg dHlwZWRlZiBzdHJ1Y3Qgc29ja2V0X3NldAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBzb21lIGNvbmZpZ3Vy YWJsZSBwYXJhbWV0ZXJzICovCiAKLSNkZWZpbmUgREVGQVVMVF9JTklUX1NURVBTICJkdGd2cCIJ LyogZGVmYXVsdCAtSSBzZXR0aW5nICovCi0jZGVmaW5lIEFMTF9JTklUX1NURVBTICJkdGdHdnBm IgkvKiBhbGwgcG9zc2libGUgc3RlcHMgKi8KKyNkZWZpbmUgREVGQVVMVF9JTklUX1NURVBTICJk WXRndnB5IgkvKiBkZWZhdWx0IC1JIHNldHRpbmcgKi8KKyNkZWZpbmUgQUxMX0lOSVRfU1RFUFMg ImRZdGdHdnBmeSIJLyogYWxsIHBvc3NpYmxlIHN0ZXBzICovCiAKICNkZWZpbmUgTE9HX1NURVBf U0VDT05EUwk1CS8qIHNlY29uZHMgYmV0d2VlbiBsb2cgbWVzc2FnZXMgKi8KICNkZWZpbmUgREVG QVVMVF9OWEFDVFMJMTAJCS8qIGRlZmF1bHQgbnhhY3RzICovCkBAIC03OTYsNiArNzk2LDMzIEBA IHN0YXRpYyBjb25zdCBCdWlsdGluU2NyaXB0IGJ1aWx0aW5fc2NyaXB0W10gPQogCQkiSU5TRVJU IElOVE8gcGdiZW5jaF9oaXN0b3J5ICh0aWQsIGJpZCwgYWlkLCBkZWx0YSwgbXRpbWUpIFZBTFVF UyAoOnRpZCwgOmJpZCwgOmFpZCwgOmRlbHRhLCBDVVJSRU5UX1RJTUVTVEFNUCk7XG4iCiAJCSJF TkQ7XG4iCiAJfSwKKwl7CisJCSJwbHBnc3FsLXRwY2ItbGlrZSIsCisJCSI8YnVpbHRpbjogVFBD LUIgKHNvcnQgb2YpIC0gcGwvcGdzcWwgVURGPiIsCisJCSJcXHNldCBhaWQgcmFuZG9tKDEsICIg Q3BwQXNTdHJpbmcyKG5hY2NvdW50cykgIiAqIDpzY2FsZSlcbiIKKwkJIlxcc2V0IGJpZCByYW5k b20oMSwgIiBDcHBBc1N0cmluZzIobmJyYW5jaGVzKSAiICogOnNjYWxlKVxuIgorCQkiXFxzZXQg dGlkIHJhbmRvbSgxLCAiIENwcEFzU3RyaW5nMihudGVsbGVycykgIiAqIDpzY2FsZSlcbiIKKwkJ Ilxcc2V0IGRlbHRhIHJhbmRvbSgtNTAwMCwgNTAwMClcbiIKKwkJIlNFTEVDVCAxIEZST00gcGdi ZW5jaF90cGNiX2xpa2UoOmFpZCwgOmJpZCwgOnRpZCwgOmRlbHRhKTtcbiIKKwl9LAorCXsKKwkJ InNxbGZ1bmMtdHBjYi1saWtlIiwKKwkJIjxidWlsdGluOiBUUEMtQiAoc29ydCBvZikgLSAnQkVH SU4gQVRPTUlDJyBTUUwgVURGPiIsCisJCSJcXHNldCBhaWQgcmFuZG9tKDEsICIgQ3BwQXNTdHJp bmcyKG5hY2NvdW50cykgIiAqIDpzY2FsZSlcbiIKKwkJIlxcc2V0IGJpZCByYW5kb20oMSwgIiBD cHBBc1N0cmluZzIobmJyYW5jaGVzKSAiICogOnNjYWxlKVxuIgorCQkiXFxzZXQgdGlkIHJhbmRv bSgxLCAiIENwcEFzU3RyaW5nMihudGVsbGVycykgIiAqIDpzY2FsZSlcbiIKKwkJIlxcc2V0IGRl bHRhIHJhbmRvbSgtNTAwMCwgNTAwMClcbiIKKwkJIlNFTEVDVCAxIEZST00gcGdiZW5jaF90cGNi X2xpa2Vfc3FsZnVuYyg6YWlkLCA6YmlkLCA6dGlkLCA6ZGVsdGEpO1xuIgorCX0sCisJeworCQki b2xkc3FsZi10cGNiLWxpa2UiLAorCQkiPGJ1aWx0aW46IFRQQy1CIChzb3J0IG9mKSAtIExBTkdV QUdFIFNRTCBVREY+IiwKKwkJIlxcc2V0IGFpZCByYW5kb20oMSwgIiBDcHBBc1N0cmluZzIobmFj Y291bnRzKSAiICogOnNjYWxlKVxuIgorCQkiXFxzZXQgYmlkIHJhbmRvbSgxLCAiIENwcEFzU3Ry aW5nMihuYnJhbmNoZXMpICIgKiA6c2NhbGUpXG4iCisJCSJcXHNldCB0aWQgcmFuZG9tKDEsICIg Q3BwQXNTdHJpbmcyKG50ZWxsZXJzKSAiICogOnNjYWxlKVxuIgorCQkiXFxzZXQgZGVsdGEgcmFu ZG9tKC01MDAwLCA1MDAwKVxuIgorCQkiU0VMRUNUIDEgRlJPTSBwZ2JlbmNoX3RwY2JfbGlrZV9v bGRzcWxmdW5jKDphaWQsIDpiaWQsIDp0aWQsIDpkZWx0YSk7XG4iCisJfSwKIAl7CiAJCSJzaW1w bGUtdXBkYXRlIiwKIAkJIjxidWlsdGluOiBzaW1wbGUgdXBkYXRlPiIsCkBAIC04MDksNiArODM2 LDMzIEBAIHN0YXRpYyBjb25zdCBCdWlsdGluU2NyaXB0IGJ1aWx0aW5fc2NyaXB0W10gPQogCQki SU5TRVJUIElOVE8gcGdiZW5jaF9oaXN0b3J5ICh0aWQsIGJpZCwgYWlkLCBkZWx0YSwgbXRpbWUp IFZBTFVFUyAoOnRpZCwgOmJpZCwgOmFpZCwgOmRlbHRhLCBDVVJSRU5UX1RJTUVTVEFNUCk7XG4i CiAJCSJFTkQ7XG4iCiAJfSwKKwl7CisJCSJwbHBnc3FsLXNpbXBsZS11cGRhdGUiLAorCQkiPGJ1 aWx0aW46IHNpbXBsZSB1cGRhdGUgLSBwbC9wZ3NxbCBVREY+IiwKKwkJIlxcc2V0IGFpZCByYW5k b20oMSwgIiBDcHBBc1N0cmluZzIobmFjY291bnRzKSAiICogOnNjYWxlKVxuIgorCQkiXFxzZXQg YmlkIHJhbmRvbSgxLCAiIENwcEFzU3RyaW5nMihuYnJhbmNoZXMpICIgKiA6c2NhbGUpXG4iCisJ CSJcXHNldCB0aWQgcmFuZG9tKDEsICIgQ3BwQXNTdHJpbmcyKG50ZWxsZXJzKSAiICogOnNjYWxl KVxuIgorCQkiXFxzZXQgZGVsdGEgcmFuZG9tKC01MDAwLCA1MDAwKVxuIgorCQkiU0VMRUNUIDEg RlJPTSBwZ2JlbmNoX3NpbXBsZV91cGRhdGUoOmFpZCwgOmJpZCwgOnRpZCwgOmRlbHRhKTtcbiIK Kwl9LAorCXsKKwkJInNxbGZ1bmMtc2ltcGxlLXVwZGF0ZSIsCisJCSI8YnVpbHRpbjogc2ltcGxl IHVwZGF0ZSAtICdCRUdJTiBBVE9NSUMnIFNRTCBVREY+IiwKKwkJIlxcc2V0IGFpZCByYW5kb20o MSwgIiBDcHBBc1N0cmluZzIobmFjY291bnRzKSAiICogOnNjYWxlKVxuIgorCQkiXFxzZXQgYmlk IHJhbmRvbSgxLCAiIENwcEFzU3RyaW5nMihuYnJhbmNoZXMpICIgKiA6c2NhbGUpXG4iCisJCSJc XHNldCB0aWQgcmFuZG9tKDEsICIgQ3BwQXNTdHJpbmcyKG50ZWxsZXJzKSAiICogOnNjYWxlKVxu IgorCQkiXFxzZXQgZGVsdGEgcmFuZG9tKC01MDAwLCA1MDAwKVxuIgorCQkiU0VMRUNUIDEgRlJP TSBwZ2JlbmNoX3NpbXBsZV91cGRhdGVfc3FsZnVuYyg6YWlkLCA6YmlkLCA6dGlkLCA6ZGVsdGEp O1xuIgorCX0sCisJeworCQkib2xkc3FsZi1zaW1wbGUtdXBkYXRlIiwKKwkJIjxidWlsdGluOiBz aW1wbGUgdXBkYXRlIC0gTEFOR1VBR0UgU1FMIFVERj4iLAorCQkiXFxzZXQgYWlkIHJhbmRvbSgx LCAiIENwcEFzU3RyaW5nMihuYWNjb3VudHMpICIgKiA6c2NhbGUpXG4iCisJCSJcXHNldCBiaWQg cmFuZG9tKDEsICIgQ3BwQXNTdHJpbmcyKG5icmFuY2hlcykgIiAqIDpzY2FsZSlcbiIKKwkJIlxc c2V0IHRpZCByYW5kb20oMSwgIiBDcHBBc1N0cmluZzIobnRlbGxlcnMpICIgKiA6c2NhbGUpXG4i CisJCSJcXHNldCBkZWx0YSByYW5kb20oLTUwMDAsIDUwMDApXG4iCisJCSJTRUxFQ1QgMSBGUk9N IHBnYmVuY2hfc2ltcGxlX3VwZGF0ZV9vbGRzcWxmdW5jKDphaWQsIDpiaWQsIDp0aWQsIDpkZWx0 YSk7XG4iCisJfSwKIAl7CiAJCSJzZWxlY3Qtb25seSIsCiAJCSI8YnVpbHRpbjogc2VsZWN0IG9u bHk+IiwKQEAgLTkxNSw2ICs5NjksNyBAQCB1c2FnZSh2b2lkKQogCQkgICAiICAtcSwgLS1xdWll dCAgICAgICAgICAgICAgcXVpZXQgbG9nZ2luZyAob25lIG1lc3NhZ2UgZWFjaCA1IHNlY29uZHMp XG4iCiAJCSAgICIgIC1zLCAtLXNjYWxlPU5VTSAgICAgICAgICBzY2FsaW5nIGZhY3RvclxuIgog CQkgICAiICAtLWZvcmVpZ24ta2V5cyAgICAgICAgICAgY3JlYXRlIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnRzIGJldHdlZW4gdGFibGVzXG4iCisJCSAgICIgIC0tbm8tZnVuY3Rpb25zICAgICAgICAg ICBkbyBub3QgY3JlYXRlIHBsL3Bnc3FsIGFuZCBTUUwgZnVuY3Rpb25zIGZvciBpbnRlcm5hbCBz Y3JpcHRzXG4iCiAJCSAgICIgIC0taW5kZXgtdGFibGVzcGFjZT1UQUJMRVNQQUNFXG4iCiAJCSAg ICIgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGUgaW5kZXhlcyBpbiB0aGUgc3BlY2lm aWVkIHRhYmxlc3BhY2VcbiIKIAkJICAgIiAgLS1wYXJ0aXRpb24tbWV0aG9kPShyYW5nZXxoYXNo KVxuIgpAQCAtNDc1MCw3ICs0ODA1LDcgQEAgaW5pdERyb3BUYWJsZXMoUEdjb25uICpjb24pCiAJ CQkJCSAicGdiZW5jaF9hY2NvdW50cywgIgogCQkJCQkgInBnYmVuY2hfYnJhbmNoZXMsICIKIAkJ CQkJICJwZ2JlbmNoX2hpc3RvcnksICIKLQkJCQkJICJwZ2JlbmNoX3RlbGxlcnMiKTsKKwkJCQkJ ICJwZ2JlbmNoX3RlbGxlcnMgY2FzY2FkZSIpOwogfQogCiAvKgpAQCAtNDgyNSw2ICs0ODgwLDEw NyBAQCBjcmVhdGVQYXJ0aXRpb25zKFBHY29ubiAqY29uKQogCXRlcm1QUUV4cEJ1ZmZlcigmcXVl cnkpOwogfQogCisvKgorICogQ3JlYXRlIHRoZSBmdW5jdGlvbnMgbmVlZGVkIGZvciBwbHBnc3Fs LSogYnVpbHRpbmcgc2NyaXB0cworICovCitzdGF0aWMgdm9pZAoraW5pdENyZWF0ZUZ1bnRpb25z KFBHY29ubiAqY29uKQoreworCWZwcmludGYoc3RkZXJyLCAiY3JlYXRpbmcgZnVuY3Rpb25zLi4u XG4iKTsKKworCWV4ZWN1dGVTdGF0ZW1lbnQoY29uLCAKKwkJIkNSRUFURSBGVU5DVElPTiBwZ2Jl bmNoX3RwY2JfbGlrZShfYWlkIGludCwgX2JpZCBpbnQsIF90aWQgaW50LCBfZGVsdGEgaW50KVxu IgorCQkiUkVUVVJOUyB2b2lkXG4iCisJCSJMQU5HVUFHRSBwbHBnc3FsXG4iCisJCSJBUyAkcGxw Z3NxbCRcbiIKKwkJIkJFR0lOXG4iCisJCSIgICAgVVBEQVRFIHBnYmVuY2hfYWNjb3VudHMgU0VU IGFiYWxhbmNlID0gYWJhbGFuY2UgKyBfZGVsdGEgV0hFUkUgYWlkID0gX2FpZDtcbiIKKwkJIiAg ICBQRVJGT1JNIGFiYWxhbmNlIEZST00gcGdiZW5jaF9hY2NvdW50cyBXSEVSRSBhaWQgPSBfYWlk O1xuIgorCQkiICAgIFVQREFURSBwZ2JlbmNoX3RlbGxlcnMgU0VUIHRiYWxhbmNlID0gdGJhbGFu Y2UgKyBfZGVsdGEgV0hFUkUgdGlkID0gX3RpZDtcbiIKKwkJIiAgICBVUERBVEUgcGdiZW5jaF9i cmFuY2hlcyBTRVQgYmJhbGFuY2UgPSBiYmFsYW5jZSArIF9kZWx0YSBXSEVSRSBiaWQgPSBfYmlk O1xuIgorCQkiICAgIElOU0VSVCBJTlRPIHBnYmVuY2hfaGlzdG9yeSAodGlkLCBiaWQsIGFpZCwg ZGVsdGEsIG10aW1lKSBWQUxVRVMgKF90aWQsIF9iaWQsIF9haWQsIF9kZWx0YSwgQ1VSUkVOVF9U SU1FU1RBTVApO1xuIgorCQkiRU5EO1xuIgorCQkiJHBscGdzcWwkO1xuIik7CisJZXhlY3V0ZVN0 YXRlbWVudChjb24sCisJCSJDUkVBVEUgRlVOQ1RJT04gcGdiZW5jaF9zaW1wbGVfdXBkYXRlKF9h aWQgaW50LCBfYmlkIGludCwgX3RpZCBpbnQsIF9kZWx0YSBpbnQpXG4iCisJCSJSRVRVUk5TIHZv aWRcbiIKKwkJIkxBTkdVQUdFIHBscGdzcWxcbiIKKwkJIkFTICRwbHBnc3FsJFxuIgorCQkiQkVH SU5cbiIKKwkJIiAgICBVUERBVEUgcGdiZW5jaF9hY2NvdW50cyBTRVQgYWJhbGFuY2UgPSBhYmFs YW5jZSArIF9kZWx0YSBXSEVSRSBhaWQgPSBfYWlkO1xuIgorCQkiICAgIFBFUkZPUk0gYWJhbGFu Y2UgRlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGFpZCA9IF9haWQ7XG4iCisJCSIgICAgSU5T RVJUIElOVE8gcGdiZW5jaF9oaXN0b3J5ICh0aWQsIGJpZCwgYWlkLCBkZWx0YSwgbXRpbWUpIFZB TFVFUyAoX3RpZCwgX2JpZCwgX2FpZCwgX2RlbHRhLCBDVVJSRU5UX1RJTUVTVEFNUCk7XG4iCisJ CSJFTkQ7XG4iCisJCSIkcGxwZ3NxbCQ7XG4iKTsKKwlpZiAoKFBRc2VydmVyVmVyc2lvbihjb24p ID49IDE0MDAwMCkpCisJeworCQlleGVjdXRlU3RhdGVtZW50KGNvbiwgCisJCQkiQ1JFQVRFIEZV TkNUSU9OIHBnYmVuY2hfdHBjYl9saWtlX3NxbGZ1bmMoX2FpZCBpbnQsIF9iaWQgaW50LCBfdGlk IGludCwgX2RlbHRhIGludClcbiIKKwkJCSJSRVRVUk5TIHZvaWRcbiIKKwkJCSJCRUdJTiBBVE9N SUNcbiIKKwkJCSIgICAgVVBEQVRFIHBnYmVuY2hfYWNjb3VudHMgU0VUIGFiYWxhbmNlID0gYWJh bGFuY2UgKyBfZGVsdGEgV0hFUkUgYWlkID0gX2FpZDtcbiIKKwkJCSIgICAgU0VMRUNUIGFiYWxh bmNlIEZST00gcGdiZW5jaF9hY2NvdW50cyBXSEVSRSBhaWQgPSBfYWlkO1xuIgorCQkJIiAgICBV UERBVEUgcGdiZW5jaF90ZWxsZXJzIFNFVCB0YmFsYW5jZSA9IHRiYWxhbmNlICsgX2RlbHRhIFdI RVJFIHRpZCA9IF90aWQ7XG4iCisJCQkiICAgIFVQREFURSBwZ2JlbmNoX2JyYW5jaGVzIFNFVCBi YmFsYW5jZSA9IGJiYWxhbmNlICsgX2RlbHRhIFdIRVJFIGJpZCA9IF9iaWQ7XG4iCisJCQkiICAg IElOU0VSVCBJTlRPIHBnYmVuY2hfaGlzdG9yeSAodGlkLCBiaWQsIGFpZCwgZGVsdGEsIG10aW1l KSBWQUxVRVMgKF90aWQsIF9iaWQsIF9haWQsIF9kZWx0YSwgQ1VSUkVOVF9USU1FU1RBTVApO1xu IgorCQkJIkVORDtcbiIpOworCQlleGVjdXRlU3RhdGVtZW50KGNvbiwKKwkJCSJDUkVBVEUgRlVO Q1RJT04gcGdiZW5jaF9zaW1wbGVfdXBkYXRlX3NxbGZ1bmMoX2FpZCBpbnQsIF9iaWQgaW50LCBf dGlkIGludCwgX2RlbHRhIGludClcbiIKKwkJCSJSRVRVUk5TIHZvaWRcbiIKKwkJCSJCRUdJTiBB VE9NSUNcbiIKKwkJCSIgICAgVVBEQVRFIHBnYmVuY2hfYWNjb3VudHMgU0VUIGFiYWxhbmNlID0g YWJhbGFuY2UgKyBfZGVsdGEgV0hFUkUgYWlkID0gX2FpZDtcbiIKKwkJCSIgICAgU0VMRUNUIGFi YWxhbmNlIEZST00gcGdiZW5jaF9hY2NvdW50cyBXSEVSRSBhaWQgPSBfYWlkO1xuIgorCQkJIiAg ICBJTlNFUlQgSU5UTyBwZ2JlbmNoX2hpc3RvcnkgKHRpZCwgYmlkLCBhaWQsIGRlbHRhLCBtdGlt ZSkgVkFMVUVTIChfdGlkLCBfYmlkLCBfYWlkLCBfZGVsdGEsIENVUlJFTlRfVElNRVNUQU1QKTtc biIKKwkJCSJFTkQ7XG4iKTsKKwl9CisJZXhlY3V0ZVN0YXRlbWVudChjb24sIAorCQkiQ1JFQVRF IEZVTkNUSU9OIHBnYmVuY2hfdHBjYl9saWtlX29sZHNxbGZ1bmMoX2FpZCBpbnQsIF9iaWQgaW50 LCBfdGlkIGludCwgX2RlbHRhIGludClcbiIKKwkJIlJFVFVSTlMgdm9pZFxuIgorCQkiTEFOR1VB R0Ugc3FsXG4iCisJCSJBUyAkc3FsJFxuIgorCQkiLS0gQkVHSU5cbiIKKwkJIiAgICBVUERBVEUg cGdiZW5jaF9hY2NvdW50cyBTRVQgYWJhbGFuY2UgPSBhYmFsYW5jZSArIF9kZWx0YSBXSEVSRSBh aWQgPSBfYWlkO1xuIgorCQkiICAgIFNFTEVDVCBhYmFsYW5jZSBGUk9NIHBnYmVuY2hfYWNjb3Vu dHMgV0hFUkUgYWlkID0gX2FpZDtcbiIKKwkJIiAgICBVUERBVEUgcGdiZW5jaF90ZWxsZXJzIFNF VCB0YmFsYW5jZSA9IHRiYWxhbmNlICsgX2RlbHRhIFdIRVJFIHRpZCA9IF90aWQ7XG4iCisJCSIg ICAgVVBEQVRFIHBnYmVuY2hfYnJhbmNoZXMgU0VUIGJiYWxhbmNlID0gYmJhbGFuY2UgKyBfZGVs dGEgV0hFUkUgYmlkID0gX2JpZDtcbiIKKwkJIiAgICBJTlNFUlQgSU5UTyBwZ2JlbmNoX2hpc3Rv cnkgKHRpZCwgYmlkLCBhaWQsIGRlbHRhLCBtdGltZSkgVkFMVUVTIChfdGlkLCBfYmlkLCBfYWlk LCBfZGVsdGEsIENVUlJFTlRfVElNRVNUQU1QKTtcbiIKKwkJIi0tIEVORDtcbiIKKwkJIiRzcWwk O1xuIik7CisJZXhlY3V0ZVN0YXRlbWVudChjb24sCisJCSJDUkVBVEUgRlVOQ1RJT04gcGdiZW5j aF9zaW1wbGVfdXBkYXRlX29sZHNxbGZ1bmMoX2FpZCBpbnQsIF9iaWQgaW50LCBfdGlkIGludCwg X2RlbHRhIGludClcbiIKKwkJIlJFVFVSTlMgdm9pZFxuIgorCQkiTEFOR1VBR0Ugc3FsXG4iCisJ CSJBUyAkc3FsJFxuIgorCQkiLS0gQkVHSU5cbiIKKwkJIiAgICBVUERBVEUgcGdiZW5jaF9hY2Nv dW50cyBTRVQgYWJhbGFuY2UgPSBhYmFsYW5jZSArIF9kZWx0YSBXSEVSRSBhaWQgPSBfYWlkO1xu IgorCQkiICAgIFNFTEVDVCBhYmFsYW5jZSBGUk9NIHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgYWlk ID0gX2FpZDtcbiIKKwkJIiAgICBJTlNFUlQgSU5UTyBwZ2JlbmNoX2hpc3RvcnkgKHRpZCwgYmlk LCBhaWQsIGRlbHRhLCBtdGltZSkgVkFMVUVTIChfdGlkLCBfYmlkLCBfYWlkLCBfZGVsdGEsIENV UlJFTlRfVElNRVNUQU1QKTtcbiIKKwkJIi0tIEVORDtcbiIKKwkJIiRzcWwkO1xuIik7Cit9CisK Ky8qCisgKiBSZW1vdmUgb2xkIHBnYmVuY2ggZnVuY3Rpb25zLCBpZiBhbnkgZXhpc3QKKyAqLwor c3RhdGljIHZvaWQKK2luaXREcm9wRnVuY3Rpb25zKFBHY29ubiAqY29uKQoreworCWZwcmludGYo c3RkZXJyLCAiZHJvcHBpbmcgb2xkIGZ1bmN0aW9ucy4uLlxuIik7CisKKwlleGVjdXRlU3RhdGVt ZW50KGNvbiwgCisJCSJEUk9QIEZVTkNUSU9OIElGIEVYSVNUUyBwZ2JlbmNoX3RwY2JfbGlrZShf YWlkIGludCwgX2JpZCBpbnQsIF90aWQgaW50LCBfZGVsdGEgaW50KTtcbiIpOworCWV4ZWN1dGVT dGF0ZW1lbnQoY29uLAorCQkiRFJPUCBGVU5DVElPTiBJRiBFWElTVFMgcGdiZW5jaF9zaW1wbGVf dXBkYXRlKF9haWQgaW50LCBfYmlkIGludCwgX3RpZCBpbnQsIF9kZWx0YSBpbnQpO1xuIik7CisJ ZXhlY3V0ZVN0YXRlbWVudChjb24sIAorCQkiRFJPUCBGVU5DVElPTiBJRiBFWElTVFMgcGdiZW5j aF90cGNiX2xpa2Vfc3FsZnVuYyhfYWlkIGludCwgX2JpZCBpbnQsIF90aWQgaW50LCBfZGVsdGEg aW50KTtcbiIpOworCWV4ZWN1dGVTdGF0ZW1lbnQoY29uLAorCQkiRFJPUCBGVU5DVElPTiBJRiBF WElTVFMgcGdiZW5jaF9zaW1wbGVfdXBkYXRlX3NxbGZ1bmMoX2FpZCBpbnQsIF9iaWQgaW50LCBf dGlkIGludCwgX2RlbHRhIGludCk7XG4iKTsKKwlleGVjdXRlU3RhdGVtZW50KGNvbiwgCisJCSJE Uk9QIEZVTkNUSU9OIElGIEVYSVNUUyBwZ2JlbmNoX3RwY2JfbGlrZV9vbGRzcWxmdW5jKF9haWQg aW50LCBfYmlkIGludCwgX3RpZCBpbnQsIF9kZWx0YSBpbnQpO1xuIik7CisJZXhlY3V0ZVN0YXRl bWVudChjb24sCisJCSJEUk9QIEZVTkNUSU9OIElGIEVYSVNUUyBwZ2JlbmNoX3NpbXBsZV91cGRh dGVfb2xkc3FsZnVuYyhfYWlkIGludCwgX2JpZCBpbnQsIF90aWQgaW50LCBfZGVsdGEgaW50KTtc biIpOworfQorCiAvKgogICogQ3JlYXRlIHBnYmVuY2gncyBzdGFuZGFyZCB0YWJsZXMKICAqLwpA QCAtNTMxMSw2ICs1NDY3LDE0IEBAIHJ1bkluaXRTdGVwcyhjb25zdCBjaGFyICppbml0aWFsaXpl X3N0ZXBzKQogCQkJCW9wID0gImZvcmVpZ24ga2V5cyI7CiAJCQkJaW5pdENyZWF0ZUZLZXlzKGNv bik7CiAJCQkJYnJlYWs7CisJCQljYXNlICdZJzoKKwkJCQlvcCA9ICJkcm9wIGZ1bmN0aW9ucyI7 CisJCQkJaW5pdERyb3BGdW5jdGlvbnMoY29uKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgJ3knOgor CQkJCW9wID0gImNyZWF0ZSBmdW5jdGlvbnMiOworCQkJCWluaXRDcmVhdGVGdW50aW9ucyhjb24p OworCQkJCWJyZWFrOwogCQkJY2FzZSAnICc6CiAJCQkJYnJlYWs7CQkJLyogaWdub3JlICovCiAJ CQlkZWZhdWx0OgpAQCAtNjE0Niw3ICs2MzEwLDcgQEAgbGlzdEF2YWlsYWJsZVNjcmlwdHModm9p ZCkKIAogCWZwcmludGYoc3RkZXJyLCAiQXZhaWxhYmxlIGJ1aWx0aW4gc2NyaXB0czpcbiIpOwog CWZvciAoaSA9IDA7IGkgPCBsZW5ndGhvZihidWlsdGluX3NjcmlwdCk7IGkrKykKLQkJZnByaW50 ZihzdGRlcnIsICIgICUxM3M6ICVzXG4iLCBidWlsdGluX3NjcmlwdFtpXS5uYW1lLCBidWlsdGlu X3NjcmlwdFtpXS5kZXNjKTsKKwkJZnByaW50ZihzdGRlcnIsICIgICUyMXM6ICVzXG4iLCBidWls dGluX3NjcmlwdFtpXS5uYW1lLCBidWlsdGluX3NjcmlwdFtpXS5kZXNjKTsKIAlmcHJpbnRmKHN0 ZGVyciwgIlxuIik7CiB9CiAKQEAgLTY3MDUsNiArNjg2OSw3IEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCQl7InZlcmJvc2UtZXJyb3JzIiwgbm9fYXJndW1lbnQsIE5VTEwsIDE1fSwK IAkJeyJleGl0LW9uLWFib3J0Iiwgbm9fYXJndW1lbnQsIE5VTEwsIDE2fSwKIAkJeyJkZWJ1ZyIs IG5vX2FyZ3VtZW50LCBOVUxMLCAxN30sCisJCXsibm8tZnVuY3Rpb25zIiwgbm9fYXJndW1lbnQs IE5VTEwsIDE4fSwKIAkJe05VTEwsIDAsIE5VTEwsIDB9CiAJfTsKIApAQCAtNjcxMiw2ICs2ODc3 LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJYm9vbAkJaXNfaW5pdF9tb2RlID0g ZmFsc2U7CS8qIGluaXRpYWxpemUgbW9kZT8gKi8KIAljaGFyCSAgICppbml0aWFsaXplX3N0ZXBz ID0gTlVMTDsKIAlib29sCQlmb3JlaWduX2tleXMgPSBmYWxzZTsKKwlib29sCQlub19mdW5jdGlv bnMgPSBmYWxzZTsKIAlib29sCQlpc19ub192YWN1dW0gPSBmYWxzZTsKIAlib29sCQlkb192YWN1 dW1fYWNjb3VudHMgPSBmYWxzZTsgLyogdmFjdXVtIGFjY291bnRzIHRhYmxlPyAqLwogCWludAkJ CW9wdGluZGV4OwpAQCAtNzA1OCw2ICs3MjI0LDEwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCQkJY2FzZSAxNzoJCQkvKiBkZWJ1ZyAqLwogCQkJCXBnX2xvZ2dpbmdfaW5jcmVhc2Vf dmVyYm9zaXR5KCk7CiAJCQkJYnJlYWs7CisJCQljYXNlIDE4OgkJCQkvKiBuby1mdW5jdGlvbnMg Ki8KKwkJCQlpbml0aWFsaXphdGlvbl9vcHRpb25fc2V0ID0gdHJ1ZTsKKwkJCQlub19mdW5jdGlv bnMgPSB0cnVlOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBnZXRvcHRfbG9uZyBh bHJlYWR5IGVtaXR0ZWQgYSBjb21wbGFpbnQgKi8KIAkJCQlwZ19sb2dfZXJyb3JfaGludCgiVHJ5 IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJvZ25hbWUpOwpAQCAtNzE1 NSw2ICs3MzI1LDE1IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCSpwID0gJyAn OwogCQl9CiAKKwkJaWYgKG5vX2Z1bmN0aW9ucykKKwkJeworCQkJLyogUmVtb3ZlIGNyZWF0ZSBm dW5jdGlvbiBzdGVwIGluIGluaXRpYWxpemVfc3RlcHMgKi8KKwkJCWNoYXIJICAgKnA7CisKKwkJ CXdoaWxlICgocCA9IHN0cmNocihpbml0aWFsaXplX3N0ZXBzLCAneScpKSAhPSBOVUxMKQorCQkJ CSpwID0gJyAnOworCQl9CisKIAkJaWYgKGZvcmVpZ25fa2V5cykKIAkJewogCQkJLyogQWRkICdm JyB0byBlbmQgb2YgaW5pdGlhbGl6ZV9zdGVwcywgaWYgbm90IGFscmVhZHkgdGhlcmUgKi8KLS0g CjIuNTAuMC43MjcuZ2JmN2RjMThmZjQtZ29vZwoK --000000000000f53e27063a9b0fa7 Content-Type: application/x-patch; name="v3-0002-Fixed-pleaving-plain-in-code-sample-in.patch" Content-Disposition: attachment; filename="v3-0002-Fixed-pleaving-plain-in-code-sample-in.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdftgwad1 RnJvbSBmMzMzZmUxOTQ4NjNiMDdiYTkwNWM0YzU3MDYyNjZkNjE2N2FkMTQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5udSBLcm9zaW5nIDxoYW5udWtAZ29vZ2xlLmNvbT4KRGF0 ZTogV2VkLCAyMyBKdWwgMjAyNSAxMjoyMDozMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggdjMgMi8y XSBGaXhlZCBwbGVhdmluZyBwbGFpbiA8ID4gaW4gY29kZSBzYW1wbGUgaW4KCi0tLQogZG9jL3Ny Yy9zZ21sL3JlZi9wZ2JlbmNoLnNnbWwgfCAxOCArKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9wZ2JlbmNoLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnYmVuY2guc2dt bAppbmRleCA2ZDczM2NmZjFhZi4uNDUwMmM4ZWFiYTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcGdiZW5jaC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdiZW5jaC5zZ21sCkBA IC00NTYsMTUgKzQ1NiwxNSBAQCBwZ2JlbmNoIDxvcHRpb25hbD4gPHJlcGxhY2VhYmxlPm9wdGlv bnM8L3JlcGxhY2VhYmxlPiA8L29wdGlvbmFsPiA8cmVwbGFjZWFibGU+ZAogPHByb2dyYW1saXN0 aW5nPgogJCBwZ2JlbmNoIC1iIGxpc3QKIEF2YWlsYWJsZSBidWlsdGluIHNjcmlwdHM6Ci0gICAg ICAgICAgICAgIHRwY2ItbGlrZTogPGJ1aWx0aW46IFRQQy1CIChzb3J0IG9mKT4KLSAgICAgIHBs cGdzcWwtdHBjYi1saWtlOiA8YnVpbHRpbjogVFBDLUIgKHNvcnQgb2YpIC0gcGwvcGdzcWwgVURG PgotICAgICAgc3FsZnVuYy10cGNiLWxpa2U6IDxidWlsdGluOiBUUEMtQiAoc29ydCBvZikgLSAn QkVHSU4gQVRPTUlDJyBTUUwgVURGPgotICAgICAgb2xkc3FsZi10cGNiLWxpa2U6IDxidWlsdGlu OiBUUEMtQiAoc29ydCBvZikgLSBMQU5HVUFHRSBTUUwgVURGPgotICAgICAgICAgIHNpbXBsZS11 cGRhdGU6IDxidWlsdGluOiBzaW1wbGUgdXBkYXRlPgotICBwbHBnc3FsLXNpbXBsZS11cGRhdGU6 IDxidWlsdGluOiBzaW1wbGUgdXBkYXRlIC0gcGwvcGdzcWwgVURGPgotICBzcWxmdW5jLXNpbXBs ZS11cGRhdGU6IDxidWlsdGluOiBzaW1wbGUgdXBkYXRlIC0gJ0JFR0lOIEFUT01JQycgU1FMIFVE Rj4KLSAgb2xkc3FsZi1zaW1wbGUtdXBkYXRlOiA8YnVpbHRpbjogc2ltcGxlIHVwZGF0ZSAtIExB TkdVQUdFIFNRTCBVREY+Ci0gICAgICAgICAgICBzZWxlY3Qtb25seTogPGJ1aWx0aW46IHNlbGVj dCBvbmx5PgorICAgICAgICAgICAgICB0cGNiLWxpa2U6ICZsdDtidWlsdGluOiBUUEMtQiAoc29y dCBvZikmZ3Q7CisgICAgICBwbHBnc3FsLXRwY2ItbGlrZTogJmx0O2J1aWx0aW46IFRQQy1CIChz b3J0IG9mKSAtIHBsL3Bnc3FsIFVERiZndDsKKyAgICAgIHNxbGZ1bmMtdHBjYi1saWtlOiAmbHQ7 YnVpbHRpbjogVFBDLUIgKHNvcnQgb2YpIC0gJ0JFR0lOIEFUT01JQycgU1FMIFVERiZndDsKKyAg ICAgIG9sZHNxbGYtdHBjYi1saWtlOiAmbHQ7YnVpbHRpbjogVFBDLUIgKHNvcnQgb2YpIC0gTEFO R1VBR0UgU1FMIFVERiZndDsKKyAgICAgICAgICBzaW1wbGUtdXBkYXRlOiAmbHQ7YnVpbHRpbjog c2ltcGxlIHVwZGF0ZSZndDsKKyAgcGxwZ3NxbC1zaW1wbGUtdXBkYXRlOiAmbHQ7YnVpbHRpbjog c2ltcGxlIHVwZGF0ZSAtIHBsL3Bnc3FsIFVERiZndDsKKyAgc3FsZnVuYy1zaW1wbGUtdXBkYXRl OiAmbHQ7YnVpbHRpbjogc2ltcGxlIHVwZGF0ZSAtICdCRUdJTiBBVE9NSUMnIFNRTCBVREYmZ3Q7 CisgIG9sZHNxbGYtc2ltcGxlLXVwZGF0ZTogJmx0O2J1aWx0aW46IHNpbXBsZSB1cGRhdGUgLSBM QU5HVUFHRSBTUUwgVURGJmd0OworICAgICAgICAgICAgc2VsZWN0LW9ubHk6ICZsdDtidWlsdGlu OiBzZWxlY3Qgb25seSZndDsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgICAgPC9wYXJhPgogICAg ICAgIDxwYXJhPgotLSAKMi41MC4wLjcyNy5nYmY3ZGMxOGZmNC1nb29nCgo= --000000000000f53e27063a9b0fa7--