Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pdp3l-000732-3h for pgsql-hackers@arkaria.postgresql.org; Sun, 19 Mar 2023 09:10:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pdp3j-0005kv-Vr for pgsql-hackers@arkaria.postgresql.org; Sun, 19 Mar 2023 09:10:35 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pdp3j-0005km-8G for pgsql-hackers@lists.postgresql.org; Sun, 19 Mar 2023 09:10:35 +0000 Received: from mail-qk1-x730.google.com ([2607:f8b0:4864:20::730]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pdp3b-0003sX-Ec for pgsql-hackers@lists.postgresql.org; Sun, 19 Mar 2023 09:10:34 +0000 Received: by mail-qk1-x730.google.com with SMTP id p1so2882675qkk.1 for ; Sun, 19 Mar 2023 02:10:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679217026; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=jehF3a9gJdSzXBU5swbC3rTfzdA6Ztdx/oX5LcmUQRU=; b=JO6H6Lt9kyajfneO+KNwezPIC7RxZO1UsZRFZNxtKwblawR18nj+Hcze90b7mpR3ar LXWqB2d8EufnxynikpHYPBJOUAtROkQ7SYvbggwt346wQyheL5aOI6uUIxGxchkf/wtW XFpKwRf01/ZzpmeJiSzuat7ogl6wF3x4C4njI1QdwmeZa7xD2TbBi61C9Oxt+hQQUXGR ckAzguKjsa+ZRnafgo7fbrDK5W6H+7D+XuSdXt/PnZNx6W28wRSjMbJ795CsB99caMbo bDpmSz1wG/NuK/y11DJRkr07DfOVJguDtXUQcfm52qioawF9gqlNNOsF4vUg4GyizWk3 KUMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679217026; 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=jehF3a9gJdSzXBU5swbC3rTfzdA6Ztdx/oX5LcmUQRU=; b=7zNnzkIUlJYekSdC6IdAQuIy73FokyyqZZd6ZH2Opja9T/lD+uurO73ngl/CqhcKFF x650jc2ZbrUryJ8MbF8RdelQvyWeyEErtIdgcgdg/v67kUC7JoILZDfe1qIchWqaVe77 RLZAbY0ofTtdKg5yc750ZKzZNvGrwEVphdgcvbtVTpSw0+FHOIUZKTGeL452nxsSEFG4 ib9FIy2N41bSQ7C76Gjl/R4Wm7jnXlFtksReTCGGu6fw4H2XOhpkre6oPuinYul7/JzL +27SwMUCHbKjMHoOKi10FYrAqqcnbFL8ZB0WFKCIngydaRO63nwtGTNOshWDISe1uwtP oWeQ== X-Gm-Message-State: AO0yUKXe2fUhgz15zaSY2Ggby4cJCJLtWRJat66Oddig/eEO6WUXT/60 QbeGbyuJAJrSLOWBTesYPCIQFuY/JMxfdCGlxEU= X-Google-Smtp-Source: AK7set8nEpWPrWuQ7cpC9SjkHryYj3q460qaHbnZeRj/N7wgl5J175CFbyqbhSUyq3qIQUpBWKj3OhSkPsnvUHIbOvo= X-Received: by 2002:a05:620a:c82:b0:71f:b908:7b76 with SMTP id q2-20020a05620a0c8200b0071fb9087b76mr7088256qki.2.1679217026515; Sun, 19 Mar 2023 02:10:26 -0700 (PDT) MIME-Version: 1.0 References: <20230104115758.2ajc235gphwfe3d6@alvherre.pgsql> In-Reply-To: From: Dean Rasheed Date: Sun, 19 Mar 2023 09:10:15 +0000 Message-ID: Subject: Re: MERGE ... WHEN NOT MATCHED BY SOURCE To: Vik Fearing Cc: Alvaro Herrera , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000005e263d05f73d2e66" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005e263d05f73d2e66 Content-Type: text/plain; charset="UTF-8" I see the PlaceHolderVar issue turned out to be a pre-existing bug after all. Rebased version attached. Regards, Dean --0000000000005e263d05f73d2e66 Content-Type: text/x-patch; charset="US-ASCII"; name="support-merge-when-not-matched-by-source-v7.patch" Content-Disposition: attachment; filename="support-merge-when-not-matched-by-source-v7.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lff6cmm10 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tdmNjLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbXZjYy5z Z21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4N2FkNWMuLjE0ODJlZGUKLS0tIGEvZG9j L3NyYy9zZ21sL212Y2Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbXZjYy5zZ21sCkBAIC0zOTYs OCArMzk2LDggQEAKICAgICBvcmlnaW5hbGx5IG1hdGNoZWQgYXBwZWFycyBsYXRlciBpbiB0aGUg bGlzdCBvZiBhY3Rpb25zLgogICAgIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGUgcm93IGlzIGNv bmN1cnJlbnRseSB1cGRhdGVkIG9yIGRlbGV0ZWQgc28KICAgICB0aGF0IHRoZSBqb2luIGNvbmRp dGlvbiBmYWlscywgdGhlbiA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4gd2lsbAotICAgIGV2YWx1 YXRlIHRoZSBjb25kaXRpb24ncyA8bGl0ZXJhbD5OT1QgTUFUQ0hFRDwvbGl0ZXJhbD4gYWN0aW9u cyBuZXh0LAotICAgIGFuZCBleGVjdXRlIHRoZSBmaXJzdCBvbmUgdGhhdCBzdWNjZWVkcy4KKyAg ICBldmFsdWF0ZSB0aGUgY29uZGl0aW9uJ3MgPGxpdGVyYWw+Tk9UIE1BVENIRUQgW0JZIFRBUkdF VF08L2xpdGVyYWw+CisgICAgYWN0aW9ucyBuZXh0LCBhbmQgZXhlY3V0ZSB0aGUgZmlyc3Qgb25l IHRoYXQgc3VjY2VlZHMuCiAgICAgSWYgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+IGF0dGVtcHRz IGFuIDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4KICAgICBhbmQgYSB1bmlxdWUgaW5kZXggaXMg cHJlc2VudCBhbmQgYSBkdXBsaWNhdGUgcm93IGlzIGNvbmN1cnJlbnRseQogICAgIGluc2VydGVk LCB0aGVuIGEgdW5pcXVlbmVzcyB2aW9sYXRpb24gZXJyb3IgaXMgcmFpc2VkOwpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9tZXJnZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9tZXJnZS5z Z21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5OTVmZTAuLjhlZjEyMWEKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9tZXJnZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvbWVyZ2Uuc2dt bApAQCAtMzMsNyArMzMsOCBAQCBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0CiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+d2hlbl9jbGF1 c2U8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIAogeyBXSEVOIE1BVENIRUQgWyBBTkQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbmRpdGlvbjwvcmVwbGFjZWFibGU+IF0gVEhF TiB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tZXJnZV91cGRhdGU8L3JlcGxhY2Vh YmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tZXJnZV9kZWxldGU8L3JlcGxh Y2VhYmxlPiB8IERPIE5PVEhJTkcgfSB8Ci0gIFdIRU4gTk9UIE1BVENIRUQgWyBBTkQgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbmRpdGlvbjwvcmVwbGFjZWFibGU+IF0gVEhFTiB7 IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tZXJnZV9pbnNlcnQ8L3JlcGxhY2VhYmxl PiB8IERPIE5PVEhJTkcgfSB9CisgIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFsgQU5EIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxlPiBdIFRI RU4geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bWVyZ2VfdXBkYXRlPC9yZXBsYWNl YWJsZT4gfCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bWVyZ2VfZGVsZXRlPC9yZXBs YWNlYWJsZT4gfCBETyBOT1RISU5HIH0gfAorICBXSEVOIE5PVCBNQVRDSEVEIFtCWSBUQVJHRVRd IFsgQU5EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2Vh YmxlPiBdIFRIRU4geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bWVyZ2VfaW5zZXJ0 PC9yZXBsYWNlYWJsZT4gfCBETyBOT1RISU5HIH0gfQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bWVyZ2VfaW5zZXJ0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJh c2U+CiAKQEAgLTcwLDcgKzcxLDkgQEAgREVMRVRFCiAgICBmcm9tIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5kYXRhX3NvdXJjZTwvcmVwbGFjZWFibGU+IHRvCiAgICA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFyZ2V0X3RhYmxlX25hbWU8L3JlcGxhY2VhYmxlPgogICAg cHJvZHVjaW5nIHplcm8gb3IgbW9yZSBjYW5kaWRhdGUgY2hhbmdlIHJvd3MuICBGb3IgZWFjaCBj YW5kaWRhdGUgY2hhbmdlCi0gICByb3csIHRoZSBzdGF0dXMgb2YgPGxpdGVyYWw+TUFUQ0hFRDwv bGl0ZXJhbD4gb3IgPGxpdGVyYWw+Tk9UIE1BVENIRUQ8L2xpdGVyYWw+CisgICByb3csIHRoZSBz dGF0dXMgb2YgPGxpdGVyYWw+TUFUQ0hFRDwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5OT1QgTUFU Q0hFRCBCWSBTT1VSQ0U8L2xpdGVyYWw+LAorICAgb3IgPGxpdGVyYWw+Tk9UIE1BVENIRUQgW0JZ IFRBUkdFVF08L2xpdGVyYWw+CiAgICBpcyBzZXQganVzdCBvbmNlLCBhZnRlciB3aGljaCA8bGl0 ZXJhbD5XSEVOPC9saXRlcmFsPiBjbGF1c2VzIGFyZSBldmFsdWF0ZWQKICAgIGluIHRoZSBvcmRl ciBzcGVjaWZpZWQuICBGb3IgZWFjaCBjYW5kaWRhdGUgY2hhbmdlIHJvdywgdGhlIGZpcnN0IGNs YXVzZSB0bwogICAgZXZhbHVhdGUgYXMgdHJ1ZSBpcyBleGVjdXRlZC4gIE5vIG1vcmUgdGhhbiBv bmUgPGxpdGVyYWw+V0hFTjwvbGl0ZXJhbD4KQEAgLTIyNiwxNiArMjI5LDM3IEBAIERFTEVURQog ICAgICAgQXQgbGVhc3Qgb25lIDxsaXRlcmFsPldIRU48L2xpdGVyYWw+IGNsYXVzZSBpcyByZXF1 aXJlZC4KICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5XSEVO PC9saXRlcmFsPiBjbGF1c2UgbWF5IHNwZWNpZnkgPGxpdGVyYWw+V0hFTiBNQVRDSEVEPC9saXRl cmFsPiwKKyAgICAgIDxsaXRlcmFsPldIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFPC9saXRlcmFs Piwgb3IKKyAgICAgIDxsaXRlcmFsPldIRU4gTk9UIE1BVENIRUQgW0JZIFRBUkdFVF08L2xpdGVy YWw+LgorICAgICAgTm90ZSB0aGF0IHRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IHN0YW5kYXJk IG9ubHkgZGVmaW5lcworICAgICAgPGxpdGVyYWw+V0hFTiBNQVRDSEVEPC9saXRlcmFsPiBhbmQg PGxpdGVyYWw+V0hFTiBOT1QgTUFUQ0hFRDwvbGl0ZXJhbD4KKyAgICAgICh3aGljaCBpcyBkZWZp bmVkIHRvIG1lYW4gbm8gbWF0Y2hpbmcgdGFyZ2V0IHJvdykuCisgICAgICA8bGl0ZXJhbD5XSEVO IE5PVCBNQVRDSEVEIEJZIFNPVVJDRTwvbGl0ZXJhbD4gaXMgYW4gZXh0ZW5zaW9uIHRvIHRoZQor ICAgICAgPGFjcm9ueW0+U1FMPC9hY3JvbnltPiBzdGFuZGFyZCwgYXMgaXMgdGhlIG9wdGlvbiB0 byBhcHBlbmQKKyAgICAgIDxsaXRlcmFsPkJZIFRBUkdFVDwvbGl0ZXJhbD4gdG8gPGxpdGVyYWw+ V0hFTiBOT1QgTUFUQ0hFRDwvbGl0ZXJhbD4sIHRvCisgICAgICBtYWtlIGl0cyBtZWFuaW5nIG1v cmUgZXhwbGljaXQuCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CiAgICAgICBJZiB0aGUgPGxp dGVyYWw+V0hFTjwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcyA8bGl0ZXJhbD5XSEVOIE1BVENI RUQ8L2xpdGVyYWw+Ci0gICAgICBhbmQgdGhlIGNhbmRpZGF0ZSBjaGFuZ2Ugcm93IG1hdGNoZXMg YSByb3cgaW4gdGhlCisgICAgICBhbmQgdGhlIGNhbmRpZGF0ZSBjaGFuZ2Ugcm93IG1hdGNoZXMg YSByb3cgaW4gdGhlIHNvdXJjZSB0byBhIHJvdyBpbiB0aGUKICAgICAgIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YXJnZXRfdGFibGVfbmFtZTwvcmVwbGFjZWFibGU+LAogICAgICAg dGhlIDxsaXRlcmFsPldIRU48L2xpdGVyYWw+IGNsYXVzZSBpcyBleGVjdXRlZCBpZiB0aGUKICAg ICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxl PiBpcwogICAgICAgYWJzZW50IG9yIGl0IGV2YWx1YXRlcyB0byA8bGl0ZXJhbD50cnVlPC9saXRl cmFsPi4KICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4KLSAgICAgIENvbnZlcnNlbHksIGlmIHRo ZSA8bGl0ZXJhbD5XSEVOPC9saXRlcmFsPiBjbGF1c2Ugc3BlY2lmaWVzCi0gICAgICA8bGl0ZXJh bD5XSEVOIE5PVCBNQVRDSEVEPC9saXRlcmFsPgorICAgICAgSWYgdGhlIDxsaXRlcmFsPldIRU48 L2xpdGVyYWw+IGNsYXVzZSBzcGVjaWZpZXMKKyAgICAgIDxsaXRlcmFsPldIRU4gTk9UIE1BVENI RUQgQlkgU09VUkNFPC9saXRlcmFsPiBhbmQgdGhlIGNhbmRpZGF0ZSBjaGFuZ2UKKyAgICAgIHJv dyByZXByZXNlbnRzIGEgcm93IGluIHRoZQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnRhcmdldF90YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gdGhhdCBkb2VzCisgICAgICBu b3QgbWF0Y2ggYSBzb3VyY2Ugcm93LCB0aGUgPGxpdGVyYWw+V0hFTjwvbGl0ZXJhbD4gY2xhdXNl IGlzIGV4ZWN1dGVkCisgICAgICBpZiB0aGUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbmRpdGlvbjwvcmVwbGFjZWFibGU+IGlzCisgICAgICBhYnNlbnQgb3IgaXQgZXZhbHVhdGVz IHRvIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgor ICAgICAgSWYgdGhlIDxsaXRlcmFsPldIRU48L2xpdGVyYWw+IGNsYXVzZSBzcGVjaWZpZXMKKyAg ICAgIDxsaXRlcmFsPldIRU4gTk9UIE1BVENIRUQgW0JZIFRBUkdFVF08L2xpdGVyYWw+CiAgICAg ICBhbmQgdGhlIGNhbmRpZGF0ZSBjaGFuZ2Ugcm93IGRvZXMgbm90IG1hdGNoIGEgcm93IGluIHRo ZQogICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhcmdldF90YWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4sCiAgICAgICB0aGUgPGxpdGVyYWw+V0hFTjwvbGl0ZXJhbD4gY2xhdXNl IGlzIGV4ZWN1dGVkIGlmIHRoZQpAQCAtMjU3LDcgKzI4MSwxMCBAQCBERUxFVEUKICAgICAgPHBh cmE+CiAgICAgICBBIGNvbmRpdGlvbiBvbiBhIDxsaXRlcmFsPldIRU4gTUFUQ0hFRDwvbGl0ZXJh bD4gY2xhdXNlIGNhbiByZWZlciB0byBjb2x1bW5zCiAgICAgICBpbiBib3RoIHRoZSBzb3VyY2Ug YW5kIHRoZSB0YXJnZXQgcmVsYXRpb25zLiBBIGNvbmRpdGlvbiBvbiBhCi0gICAgICA8bGl0ZXJh bD5XSEVOIE5PVCBNQVRDSEVEPC9saXRlcmFsPiBjbGF1c2UgY2FuIG9ubHkgcmVmZXIgdG8gY29s dW1ucyBmcm9tCisgICAgICA8bGl0ZXJhbD5XSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRTwvbGl0 ZXJhbD4gY2xhdXNlIGNhbiBvbmx5IHJlZmVyIHRvCisgICAgICBjb2x1bW5zIGZyb20gdGhlIHRh cmdldCByZWxhdGlvbiwgc2luY2UgYnkgZGVmaW5pdGlvbiB0aGVyZSBpcyBubyBtYXRjaGluZwor ICAgICAgc291cmNlIHJvdy4gQSBjb25kaXRpb24gb24gYSA8bGl0ZXJhbD5XSEVOIE5PVCBNQVRD SEVEIFtCWSBUQVJHRVRdPC9saXRlcmFsPgorICAgICAgY2xhdXNlIGNhbiBvbmx5IHJlZmVyIHRv IGNvbHVtbnMgZnJvbQogICAgICAgdGhlIHNvdXJjZSByZWxhdGlvbiwgc2luY2UgYnkgZGVmaW5p dGlvbiB0aGVyZSBpcyBubyBtYXRjaGluZyB0YXJnZXQgcm93LgogICAgICAgT25seSB0aGUgc3lz dGVtIGF0dHJpYnV0ZXMgZnJvbSB0aGUgdGFyZ2V0IHRhYmxlIGFyZSBhY2Nlc3NpYmxlLgogICAg ICA8L3BhcmE+CkBAIC0zODIsOCArNDA5LDEwIEBAIERFTEVURQogICAgICAgPGxpdGVyYWw+V0hF TiBNQVRDSEVEPC9saXRlcmFsPiBjbGF1c2UsIHRoZSBleHByZXNzaW9uIGNhbiB1c2UgdmFsdWVz CiAgICAgICBmcm9tIHRoZSBvcmlnaW5hbCByb3cgaW4gdGhlIHRhcmdldCB0YWJsZSwgYW5kIHZh bHVlcyBmcm9tIHRoZQogICAgICAgPGxpdGVyYWw+ZGF0YV9zb3VyY2U8L2xpdGVyYWw+IHJvdy4K LSAgICAgIElmIHVzZWQgaW4gYSA8bGl0ZXJhbD5XSEVOIE5PVCBNQVRDSEVEPC9saXRlcmFsPiBj bGF1c2UsIHRoZQotICAgICAgZXhwcmVzc2lvbiBjYW4gdXNlIHZhbHVlcyBmcm9tIHRoZSA8bGl0 ZXJhbD5kYXRhX3NvdXJjZTwvbGl0ZXJhbD4uCisgICAgICBJZiB1c2VkIGluIGEgPGxpdGVyYWw+ V0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0U8L2xpdGVyYWw+IGNsYXVzZSwgdGhlCisgICAgICBl eHByZXNzaW9uIGNhbiBvbmx5IHVzZSB2YWx1ZXMgZnJvbSB0aGUgb3JpZ2luYWwgcm93IGluIHRo ZSB0YXJnZXQgdGFibGUuCisgICAgICBJZiB1c2VkIGluIGEgPGxpdGVyYWw+V0hFTiBOT1QgTUFU Q0hFRCBbQlkgVEFSR0VUXTwvbGl0ZXJhbD4gY2xhdXNlLCB0aGUKKyAgICAgIGV4cHJlc3Npb24g Y2FuIG9ubHkgdXNlIHZhbHVlcyBmcm9tIHRoZSA8bGl0ZXJhbD5kYXRhX3NvdXJjZTwvbGl0ZXJh bD4uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBA IC00NTIsOCArNDgxLDkgQEAgTUVSR0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRv dAogICAgICAgIDxvcmRlcmVkbGlzdD4KICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBh cmE+Ci0gICAgICAgICAgRXZhbHVhdGUgd2hldGhlciBlYWNoIHJvdyBpcyA8bGl0ZXJhbD5NQVRD SEVEPC9saXRlcmFsPiBvcgotICAgICAgICAgIDxsaXRlcmFsPk5PVCBNQVRDSEVEPC9saXRlcmFs Pi4KKyAgICAgICAgICBFdmFsdWF0ZSB3aGV0aGVyIGVhY2ggcm93IGlzIDxsaXRlcmFsPk1BVENI RUQ8L2xpdGVyYWw+LAorICAgICAgICAgIDxsaXRlcmFsPk5PVCBNQVRDSEVEIEJZIFNPVVJDRTwv bGl0ZXJhbD4sIG9yCisgICAgICAgICAgPGxpdGVyYWw+Tk9UIE1BVENIRUQgW0JZIFRBUkdFVF08 L2xpdGVyYWw+LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAg ICA8bGlzdGl0ZW0+CkBAIC01MjgsNyArNTU4LDggQEAgTUVSR0UgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnRvdAogICA8cGFyYT4KICAgIElmIGEgPGxpdGVyYWw+V0hFTjwvbGl0ZXJh bD4gY2xhdXNlIG9taXRzIGFuIDxsaXRlcmFsPkFORDwvbGl0ZXJhbD4KICAgIHN1Yi1jbGF1c2Us IGl0IGJlY29tZXMgdGhlIGZpbmFsIHJlYWNoYWJsZSBjbGF1c2Ugb2YgdGhhdAotICAga2luZCAo PGxpdGVyYWw+TUFUQ0hFRDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+Tk9UIE1BVENIRUQ8L2xpdGVy YWw+KS4KKyAgIGtpbmQgKDxsaXRlcmFsPk1BVENIRUQ8L2xpdGVyYWw+LCA8bGl0ZXJhbD5OT1Qg TUFUQ0hFRCBCWSBTT1VSQ0U8L2xpdGVyYWw+LAorICAgb3IgPGxpdGVyYWw+Tk9UIE1BVENIRUQg W0JZIFRBUkdFVF08L2xpdGVyYWw+KS4KICAgIElmIGEgbGF0ZXIgPGxpdGVyYWw+V0hFTjwvbGl0 ZXJhbD4gY2xhdXNlIG9mIHRoYXQga2luZAogICAgaXMgc3BlY2lmaWVkIGl0IHdvdWxkIGJlIHBy b3ZhYmx5IHVucmVhY2hhYmxlIGFuZCBhbiBlcnJvciBpcyByYWlzZWQuCiAgICBJZiBubyBmaW5h bCByZWFjaGFibGUgY2xhdXNlIGlzIHNwZWNpZmllZCBvZiBlaXRoZXIga2luZCwgaXQgaXMKQEAg LTYxOSw2ICs2NTAsMjMgQEAgV0hFTiBNQVRDSEVEIFRIRU4KICAgIHRlbXBvcmFyeSB0YWJsZSBy ZWNlbnRseSBsb2FkZWQgaW50byB0aGUgZGF0YWJhc2UuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4K KyAgIFVwZGF0ZSA8bGl0ZXJhbD53aW5lPC9saXRlcmFsPiBiYXNlZCBvbiBhIHJlcGxhY2VtZW50 IHdpbmUgbGlzdCwgaW5zZXJ0aW5nCisgICByb3dzIGZvciBhbnkgbmV3IHN0b2NrLCB1cGRhdGlu ZyBtb2RpZmllZCBzdG9jayBlbnRyaWVzLCBhbmQgZGVsZXRpbmcgYW55CisgICB3aW5lcyBub3Qg cHJlc2VudCBpbiB0aGUgbmV3IGxpc3QuCis8cHJvZ3JhbWxpc3Rpbmc+CitNRVJHRSBJTlRPIHdp bmVzIHcKK1VTSU5HIG5ld193aW5lX2xpc3QgcworT04gcy53aW5lbmFtZSA9IHcud2luZW5hbWUK K1dIRU4gTk9UIE1BVENIRUQgQlkgVEFSR0VUIFRIRU4KKyAgSU5TRVJUIFZBTFVFUyhzLndpbmVu YW1lLCBzLnN0b2NrKQorV0hFTiBNQVRDSEVEIEFORCB3LnN0b2NrICE9IHMuc3RvY2sgVEhFTgor ICBVUERBVEUgU0VUIHN0b2NrID0gcy5zdG9jaworV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0Ug VEhFTgorICBERUxFVEU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKICA8L3JlZnNl Y3QxPgogCiAgPHJlZnNlY3QxPgpAQCAtNjI3LDcgKzY3NSwxMCBAQCBXSEVOIE1BVENIRUQgVEhF TgogICAgIFRoaXMgY29tbWFuZCBjb25mb3JtcyB0byB0aGUgPGFjcm9ueW0+U1FMPC9hY3Jvbnlt PiBzdGFuZGFyZC4KICAgPC9wYXJhPgogICAgPHBhcmE+Ci0gICAgVGhlIFdJVEggY2xhdXNlIGFu ZCA8bGl0ZXJhbD5ETyBOT1RISU5HPC9saXRlcmFsPiBhY3Rpb24gYXJlIGV4dGVuc2lvbnMgdG8K KyAgICBUaGUgV0lUSCBjbGF1c2UsIDxsaXRlcmFsPkJZIFNPVVJDRTwvbGl0ZXJhbD4gYW5kCisg ICAgPGxpdGVyYWw+QlkgVEFSR0VUPC9saXRlcmFsPiBxdWFsaWZpZXJzIHRvCisgICAgPGxpdGVy YWw+V0hFTiBOT1QgTUFUQ0hFRDwvbGl0ZXJhbD4sIGFuZAorICAgIDxsaXRlcmFsPkRPIE5PVEhJ Tkc8L2xpdGVyYWw+IGFjdGlvbiBhcmUgZXh0ZW5zaW9ucyB0bwogICAgIHRoZSA8YWNyb255bT5T UUw8L2Fjcm9ueW0+IHN0YW5kYXJkLgogICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDZjYThh Li44NjFkMzVlCi0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFydGl0aW9uLmMKQEAgLTkwMiw4ICs5MDIsMTYg QEAgRXhlY0luaXRQYXJ0aXRpb25JbmZvKE1vZGlmeVRhYmxlU3RhdGUgKgogCQkJYWN0aW9uX3N0 YXRlID0gbWFrZU5vZGUoTWVyZ2VBY3Rpb25TdGF0ZSk7CiAJCQlhY3Rpb25fc3RhdGUtPm1hc19h Y3Rpb24gPSBhY3Rpb247CiAKLQkJCS8qIEFuZCBwdXQgdGhlIGFjdGlvbiBpbiB0aGUgYXBwcm9w cmlhdGUgbGlzdCAqLwotCQkJaWYgKGFjdGlvbi0+bWF0Y2hlZCkKKwkJCS8qCisJCQkgKiBQdXQg dGhlIGFjdGlvbiBpbiB0aGUgYXBwcm9wcmlhdGUgbGlzdC4KKwkJCSAqCisJCQkgKiBOb3RlIHRo YXQgdGhlIGV4ZWN1dG9yIHRyZWF0cyBXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRQorCQkJICog YWN0aW9ucyBpbiBleGFjdGx5IHRoZSBzYW1lIHdheSBhcyBXSEVOIE1BVENIRUQgYWN0aW9ucywg c2luY2UKKwkJCSAqIHRoZXkgYm90aCBtYXRjaCB0aGUgdGFyZ2V0IChzZWUgRXhlY01lcmdlKS4g IFRodXMgYm90aCB0eXBlcyBnbworCQkJICogaW4gdGhlICJtYXRjaGVkIiBsaXN0LiAgT25seSBX SEVOIE5PVCBNQVRDSEVEIEJZIFRBUkdFVCBhY3Rpb25zCisJCQkgKiBnbyBpbiB0aGUgIm5vdCBt YXRjaGVkIiBsaXN0LgorCQkJICovCisJCQlpZiAoYWN0aW9uLT5tYXRjaEtpbmQgIT0gTUVSR0Vf V0hFTl9OT1RfTUFUQ0hFRF9CWV9UQVJHRVQpCiAJCQkJbGlzdCA9ICZsZWFmX3BhcnRfcnJpLT5y aV9tYXRjaGVkTWVyZ2VBY3Rpb247CiAJCQllbHNlCiAJCQkJbGlzdCA9ICZsZWFmX3BhcnRfcnJp LT5yaV9ub3RNYXRjaGVkTWVyZ2VBY3Rpb247CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlTW9kaWZ5VGFibGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlU YWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmYTJiOTMuLmExMzA3ZjgKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKQEAgLTI0LDEzICsyNCwxNSBAQAogICoJCXZhbHVl cyBwbHVzIHJvdy1sb2NhdGluZyBpbmZvIGZvciBVUERBVEUgYW5kIE1FUkdFIGNhc2VzLCBvciBq dXN0IHRoZQogICoJCXJvdy1sb2NhdGluZyBpbmZvIGZvciBERUxFVEUgY2FzZXMuCiAgKgotICoJ CU1FUkdFIHJ1bnMgYSBqb2luIGJldHdlZW4gdGhlIHNvdXJjZSByZWxhdGlvbiBhbmQgdGhlIHRh cmdldAotICoJCXRhYmxlOyBpZiBhbnkgV0hFTiBOT1QgTUFUQ0hFRCBjbGF1c2VzIGFyZSBwcmVz ZW50LCB0aGVuIHRoZQotICoJCWpvaW4gaXMgYW4gb3V0ZXIgam9pbi4gIEluIHRoaXMgY2FzZSwg YW55IHVubWF0Y2hlZCB0dXBsZXMgd2lsbAotICoJCWhhdmUgTlVMTCByb3ctbG9jYXRpbmcgaW5m bywgYW5kIG9ubHkgSU5TRVJUIGNhbiBiZSBydW4uIEJ1dCBmb3IKLSAqCQltYXRjaGVkIHR1cGxl cywgdGhlbiByb3ctbG9jYXRpbmcgaW5mbyBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUKLSAqCQl0 dXBsZSB0byBVUERBVEUgb3IgREVMRVRFLiBXaGVuIGFsbCBjbGF1c2VzIGFyZSBXSEVOIE1BVENI RUQsCi0gKgkJdGhlbiBhbiBpbm5lciBqb2luIGlzIHVzZWQsIHNvIGFsbCB0dXBsZXMgY29udGFp biByb3ctbG9jYXRpbmcgaW5mby4KKyAqCQlNRVJHRSBydW5zIGEgam9pbiBiZXR3ZWVuIHRoZSBz b3VyY2UgcmVsYXRpb24gYW5kIHRoZSB0YXJnZXQgdGFibGUuCisgKgkJSWYgYW55IFdIRU4gTk9U IE1BVENIRUQgW0JZIFRBUkdFVF0gY2xhdXNlcyBhcmUgcHJlc2VudCwgdGhlbiB0aGUgam9pbgor ICoJCWlzIGFuIG91dGVyIGpvaW4gdGhhdCBtaWdodCBvdXRwdXQgdHVwbGVzIHdpdGhvdXQgYSBt YXRjaGluZyB0YXJnZXQKKyAqCQl0dXBsZS4gIEluIHRoaXMgY2FzZSwgYW55IHVubWF0Y2hlZCB0 YXJnZXQgdHVwbGVzIHdpbGwgaGF2ZSBOVUxMCisgKgkJcm93LWxvY2F0aW5nIGluZm8sIGFuZCBv bmx5IElOU0VSVCBjYW4gYmUgcnVuLiAgQnV0IGZvciBtYXRjaGVkCisgKgkJdGFyZ2V0IHR1cGxl cywgdGhlIHJvdy1sb2NhdGluZyBpbmZvIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0dXBsZQor ICoJCXRvIFVQREFURSBvciBERUxFVEUuICBXaGVuIGFsbCBjbGF1c2VzIGFyZSBXSEVOIE1BVENI RUQgb3IgV0hFTiBOT1QKKyAqCQlNQVRDSEVEIEJZIFNPVVJDRSwgYWxsIHR1cGxlcyBwcm9kdWNl ZCBieSB0aGUgam9pbiB3aWxsIGluY2x1ZGUgYQorICoJCW1hdGNoaW5nIHRhcmdldCB0dXBsZSwg c28gYWxsIHR1cGxlcyBjb250YWluIHJvdy1sb2NhdGluZyBpbmZvLgogICoKICAqCQlJZiB0aGUg cXVlcnkgc3BlY2lmaWVzIFJFVFVSTklORywgdGhlbiB0aGUgTW9kaWZ5VGFibGUgcmV0dXJucyBh CiAgKgkJUkVUVVJOSU5HIHR1cGxlIGFmdGVyIGNvbXBsZXRpbmcgZWFjaCByb3cgaW5zZXJ0LCB1 cGRhdGUsIG9yIGRlbGV0ZS4KQEAgLTI3MDYsNiArMjcwOCwyMCBAQCBFeGVjTWVyZ2UoTW9kaWZ5 VGFibGVDb250ZXh0ICpjb250ZXh0LCBSCiAJYm9vbAkJbWF0Y2hlZDsKIAogCS8qLS0tLS0KKwkg KiBOb3RlIHRoYXQgYXMgZmFyIGFzIHRoZSBleGVjdXRvciBpcyBjb25jZXJuZWQsIFdIRU4gTk9U IE1BVENIRUQgQlkKKwkgKiBTT1VSQ0UgYWN0aW9ucyBhcmUgdHJlYXRlZCBleGFjdGx5IHRoZSBz YW1lIGFzIFdIRU4gTUFUQ0hFRCBhY3Rpb25zLAorCSAqIHNpbmNlIGJvdGggbWF0Y2ggdGFyZ2V0 IHR1cGxlcy4gIFRoZXkgYXJlIGRpc3Rpbmd1aXNoZWQgZnJvbSBvbmUKKwkgKiBhbm90aGVyIGJ5 IGEgcXVhbCB0aGF0IHRlc3RzIGlmIHRoZSBzb3VyY2UgdHVwbGUgaXMgTlVMTCwgYnV0IHRoZQor CSAqIGV4ZWN1dG9yIGtub3dzIG5vdGhpbmcgYWJvdXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBtZXJn ZSBhY3Rpb24gcXVhbHMuCisJICogVGh1cyBXSEVOIE1BVENIRUQgYW5kIFdIRU4gTk9UIE1BVENI RUQgQlkgU09VUkNFIGFjdGlvbnMgYXJlIHN0b3JlZAorCSAqIHRvZ2V0aGVyIGluIHRoZSBzYW1l ICJtYXRjaGVkIiBsaXN0LiAgSW4gdGhlIGNhc2Ugb2YgY29uY3VycmVudCB1cGRhdGVzCisJICog YW5kIHJlY2hlY2tzIGRpc2N1c3NlZCBiZWxvdywgdGhlIHRhcmdldCB0dXBsZSBtaWdodCBiZSBt b2RpZmllZCwgYnV0CisJICogbm90IHRoZSBzb3VyY2UgdHVwbGUsIGFuZCBzbyB0aGVyZSBpcyBu byBkYW5nZXIgb2YgYSBXSEVOIE1BVENIRUQgY2FzZQorCSAqIGJlY29taW5nIGEgV0hFTiBOT1Qg TUFUQ0hFRCBCWSBTT1VSQ0UgY2FzZSwgb3IgdmljZSB2ZXJzYS4gIFRodXMsIGluCisJICogdGhl IGRpY3Vzc2lvbiB0aGF0IGZvbGxvd3MgIk1BVENIRUQiIG1lYW5zICJtYXRjaGVkIGJ5IHRhcmdl dCIsIGFuZAorCSAqIHNob3VsZCBiZSB0YWtlbiB0byBpbmNsdWRlIGJvdGggV0hFTiBNQVRDSEVE IGFuZCBXSEVOIE5PVCBNQVRDSEVEIEJZCisJICogU09VUkNFLCB3aGlsZSAiTk9UIE1BVENIRUQi IG1lYW5zIE5PVCBNQVRDSEVEIEJZIFRBUkdFVC4KKwkgKgogCSAqIElmIHdlIGFyZSBkZWFsaW5n IHdpdGggYSBXSEVOIE1BVENIRUQgY2FzZSAodHVwbGVpZCBpcyB2YWxpZCksIHdlCiAJICogZXhl Y3V0ZSB0aGUgZmlyc3QgYWN0aW9uIGZvciB3aGljaCB0aGUgYWRkaXRpb25hbCBXSEVOIE1BVENI RUQgQU5ECiAJICogcXVhbHMgcGFzcy4gIElmIGFuIGFjdGlvbiB3aXRob3V0IHF1YWxzIGlzIGZv dW5kLCB0aGF0IGFjdGlvbiBpcwpAQCAtMzI0Miw4ICszMjU4LDE0IEBAIEV4ZWNJbml0TWVyZ2Uo TW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwKIAkJCSAqIFdlIGNyZWF0ZSB0d28gbGlzdHMgLSBv bmUgZm9yIFdIRU4gTUFUQ0hFRCBhY3Rpb25zIGFuZCBvbmUgZm9yCiAJCQkgKiBXSEVOIE5PVCBN QVRDSEVEIGFjdGlvbnMgLSBhbmQgc3RpY2sgdGhlIE1lcmdlQWN0aW9uU3RhdGUgaW50bwogCQkJ ICogdGhlIGFwcHJvcHJpYXRlIGxpc3QuCisJCQkgKgorCQkJICogTm90ZSB0aGF0IHRoZSBleGVj dXRvciB0cmVhdHMgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UKKwkJCSAqIGFjdGlvbnMgaW4g ZXhhY3RseSB0aGUgc2FtZSB3YXkgYXMgV0hFTiBNQVRDSEVEIGFjdGlvbnMsIHNpbmNlCisJCQkg KiB0aGV5IGJvdGggbWF0Y2ggdGhlIHRhcmdldCAoc2VlIEV4ZWNNZXJnZSkuICBUaHVzIGJvdGgg dHlwZXMgZ28KKwkJCSAqIGluIHRoZSAibWF0Y2hlZCIgbGlzdC4gIE9ubHkgV0hFTiBOT1QgTUFU Q0hFRCBCWSBUQVJHRVQgYWN0aW9ucworCQkJICogZ28gaW4gdGhlICJub3QgbWF0Y2hlZCIgbGlz dC4KIAkJCSAqLwotCQkJaWYgKGFjdGlvbl9zdGF0ZS0+bWFzX2FjdGlvbi0+bWF0Y2hlZCkKKwkJ CWlmIChhY3Rpb24tPm1hdGNoS2luZCAhPSBNRVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZX1RBUkdF VCkKIAkJCQlsaXN0ID0gJnJlc3VsdFJlbEluZm8tPnJpX21hdGNoZWRNZXJnZUFjdGlvbjsKIAkJ CWVsc2UKIAkJCQlsaXN0ID0gJnJlc3VsdFJlbEluZm8tPnJpX25vdE1hdGNoZWRNZXJnZUFjdGlv bjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5j IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggODcwZDg0Yi4uM2IzMmM4ZAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9w cmVwam9pbnRyZWUuYwpAQCAtMTUzLDYgKzE1Myw5IEBAIHRyYW5zZm9ybV9NRVJHRV90b19qb2lu KFF1ZXJ5ICpwYXJzZSkKIHsKIAlSYW5nZVRibEVudHJ5ICpqb2lucnRlOwogCUpvaW5FeHByICAg KmpvaW5leHByOworCUxpc3RDZWxsICAgKmxjOworCWJvb2wJCXNyY19vbmx5X3R1cGxlczsKKwli b29sCQl0Z3Rfb25seV90dXBsZXM7CiAJSm9pblR5cGUJam9pbnR5cGU7CiAJaW50CQkJam9pbnJ0 aTsKIAlMaXN0CSAgICp2YXJzOwpAQCAtMTY0LDEyICsxNjcsMzIgQEAgdHJhbnNmb3JtX01FUkdF X3RvX2pvaW4oUXVlcnkgKnBhcnNlKQogCXZhcnMgPSBOSUw7CiAKIAkvKgotCSAqIFdoZW4gYW55 IFdIRU4gTk9UIE1BVENIRUQgVEhFTiBJTlNFUlQgY2xhdXNlcyBleGlzdCwgd2UgbmVlZCB0byB1 c2UgYW4KLQkgKiBvdXRlciBqb2luIHNvIHRoYXQgd2UgcHJvY2VzcyBhbGwgdW5tYXRjaGVkIHR1 cGxlcyBmcm9tIHRoZSBzb3VyY2UKLQkgKiByZWxhdGlvbi4gIElmIG5vbmUgZXhpc3QsIHdlIGNh biB1c2UgYW4gaW5uZXIgam9pbi4KKwkgKiBXb3JrIG91dCB3aGF0IGtpbmQgb2Ygam9pbiBpcyBy ZXF1aXJlZC4gIElmIHRoZXJlIGFueSBXSEVOIE5PVCBNQVRDSEVECisJICogQlkgU09VUkNFL1RB UkdFVCBjbGF1c2VzLCBhbiBvdXRlciBqb2luIGlzIHJlcXVpcmVkIHNvIHRoYXQgd2UgcHJvY2Vz cworCSAqIGFsbCB1bm1hdGNoZWQgdHVwbGVzIGZyb20gdGhlIHNvdXJjZSBhbmQvb3IgdGFyZ2V0 IHJlbGF0aW9ucy4KKwkgKiBPdGhlcndpc2UsIHdlIGNhbiB1c2UgYW4gaW5uZXIgam9pbi4KIAkg Ki8KLQlpZiAocGFyc2UtPm1lcmdlVXNlT3V0ZXJKb2luKQorCXNyY19vbmx5X3R1cGxlcyA9IGZh bHNlOworCXRndF9vbmx5X3R1cGxlcyA9IGZhbHNlOworCWZvcmVhY2gobGMsIHBhcnNlLT5tZXJn ZUFjdGlvbkxpc3QpCisJeworCQlNZXJnZUFjdGlvbiAqYWN0aW9uID0gbGZpcnN0X25vZGUoTWVy Z2VBY3Rpb24sIGxjKTsKKworCQlpZiAoYWN0aW9uLT5jb21tYW5kVHlwZSAhPSBDTURfTk9USElO RykKKwkJeworCQkJaWYgKGFjdGlvbi0+bWF0Y2hLaW5kID09IE1FUkdFX1dIRU5fTk9UX01BVENI RURfQllfU09VUkNFKQorCQkJCXRndF9vbmx5X3R1cGxlcyA9IHRydWU7CisJCQlpZiAoYWN0aW9u LT5tYXRjaEtpbmQgPT0gTUVSR0VfV0hFTl9OT1RfTUFUQ0hFRF9CWV9UQVJHRVQpCisJCQkJc3Jj X29ubHlfdHVwbGVzID0gdHJ1ZTsKKwkJfQorCX0KKworCWlmIChzcmNfb25seV90dXBsZXMgJiYg dGd0X29ubHlfdHVwbGVzKQorCQlqb2ludHlwZSA9IEpPSU5fRlVMTDsKKwllbHNlIGlmIChzcmNf b25seV90dXBsZXMpCiAJCWpvaW50eXBlID0gSk9JTl9SSUdIVDsKKwllbHNlIGlmICh0Z3Rfb25s eV90dXBsZXMpCisJCWpvaW50eXBlID0gSk9JTl9MRUZUOwogCWVsc2UKIAkJam9pbnR5cGUgPSBK T0lOX0lOTkVSOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZmU4OGNj Li5lMWViYzhkCi0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQpAQCAtMjczLDYgKzI3Myw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVj dXJzaXZlVmlld1NlbGVjdChjaGEKIAlzdHJ1Y3QgU2VsZWN0TGltaXQgKnNlbGVjdGxpbWl0Owog CVNldFF1YW50aWZpZXIgc2V0cXVhbnRpZmllcjsKIAlzdHJ1Y3QgR3JvdXBDbGF1c2UgKmdyb3Vw Y2xhdXNlOworCU1lcmdlTWF0Y2hLaW5kIG1lcmdlbWF0Y2g7CiAJTWVyZ2VXaGVuQ2xhdXNlICpt ZXJnZXdoZW47CiAJc3RydWN0IEtleUFjdGlvbnMgKmtleWFjdGlvbnM7CiAJc3RydWN0IEtleUFj dGlvbiAqa2V5YWN0aW9uOwpAQCAtNTEyLDYgKzUxMyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVj dXJzaXZlVmlld1NlbGVjdChjaGEKICV0eXBlIDxvbmNvbmZsaWN0PiBvcHRfb25fY29uZmxpY3QK ICV0eXBlIDxtZXJnZXdoZW4+CW1lcmdlX2luc2VydCBtZXJnZV91cGRhdGUgbWVyZ2VfZGVsZXRl CiAKKyV0eXBlIDxtZXJnZW1hdGNoPiBtZXJnZV93aGVuX3RndF9tYXRjaGVkIG1lcmdlX3doZW5f dGd0X25vdF9tYXRjaGVkCiAldHlwZSA8bm9kZT4JbWVyZ2Vfd2hlbl9jbGF1c2Ugb3B0X21lcmdl X3doZW5fY29uZGl0aW9uCiAldHlwZSA8bGlzdD4JbWVyZ2Vfd2hlbl9saXN0CiAKQEAgLTc0MCwx MSArNzQyLDExIEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGEKIAog CVNBVkVQT0lOVCBTQ0hFTUEgU0NIRU1BUyBTQ1JPTEwgU0VBUkNIIFNFQ09ORF9QIFNFQ1VSSVRZ IFNFTEVDVCBTRVFVRU5DRSBTRVFVRU5DRVMKIAlTRVJJQUxJWkFCTEUgU0VSVkVSIFNFU1NJT04g U0VTU0lPTl9VU0VSIFNFVCBTRVRTIFNFVE9GIFNIQVJFIFNIT1cKLQlTSU1JTEFSIFNJTVBMRSBT S0lQIFNNQUxMSU5UIFNOQVBTSE9UIFNPTUUgU1FMX1AgU1RBQkxFIFNUQU5EQUxPTkVfUAorCVNJ TUlMQVIgU0lNUExFIFNLSVAgU01BTExJTlQgU05BUFNIT1QgU09NRSBTT1VSQ0UgU1FMX1AgU1RB QkxFIFNUQU5EQUxPTkVfUAogCVNUQVJUIFNUQVRFTUVOVCBTVEFUSVNUSUNTIFNURElOIFNURE9V VCBTVE9SQUdFIFNUT1JFRCBTVFJJQ1RfUCBTVFJJUF9QCiAJU1VCU0NSSVBUSU9OIFNVQlNUUklO RyBTVVBQT1JUIFNZTU1FVFJJQyBTWVNJRCBTWVNURU1fUCBTWVNURU1fVVNFUgogCi0JVEFCTEUg VEFCTEVTIFRBQkxFU0FNUExFIFRBQkxFU1BBQ0UgVEVNUCBURU1QTEFURSBURU1QT1JBUlkgVEVY VF9QIFRIRU4KKwlUQUJMRSBUQUJMRVMgVEFCTEVTQU1QTEUgVEFCTEVTUEFDRSBUQVJHRVQgVEVN UCBURU1QTEFURSBURU1QT1JBUlkgVEVYVF9QIFRIRU4KIAlUSUVTIFRJTUUgVElNRVNUQU1QIFRP IFRSQUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TRk9STQogCVRSRUFUIFRSSUdHRVIgVFJJTSBUUlVF X1AKIAlUUlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCkBAIC0xMjI2MCw0OSArMTIyNjIs NTkgQEAgbWVyZ2Vfd2hlbl9saXN0OgogCQk7CiAKIG1lcmdlX3doZW5fY2xhdXNlOgotCQkJV0hF TiBNQVRDSEVEIG9wdF9tZXJnZV93aGVuX2NvbmRpdGlvbiBUSEVOIG1lcmdlX3VwZGF0ZQorCQkJ bWVyZ2Vfd2hlbl90Z3RfbWF0Y2hlZCBvcHRfbWVyZ2Vfd2hlbl9jb25kaXRpb24gVEhFTiBtZXJn ZV91cGRhdGUKIAkJCQl7Ci0JCQkJCSQ1LT5tYXRjaGVkID0gdHJ1ZTsKLQkJCQkJJDUtPmNvbmRp dGlvbiA9ICQzOworCQkJCQkkNC0+bWF0Y2hLaW5kID0gJDE7CisJCQkJCSQ0LT5jb25kaXRpb24g PSAkMjsKIAotCQkJCQkkJCA9IChOb2RlICopICQ1OworCQkJCQkkJCA9IChOb2RlICopICQ0Owog CQkJCX0KLQkJCXwgV0hFTiBNQVRDSEVEIG9wdF9tZXJnZV93aGVuX2NvbmRpdGlvbiBUSEVOIG1l cmdlX2RlbGV0ZQorCQkJfCBtZXJnZV93aGVuX3RndF9tYXRjaGVkIG9wdF9tZXJnZV93aGVuX2Nv bmRpdGlvbiBUSEVOIG1lcmdlX2RlbGV0ZQogCQkJCXsKLQkJCQkJJDUtPm1hdGNoZWQgPSB0cnVl OwotCQkJCQkkNS0+Y29uZGl0aW9uID0gJDM7CisJCQkJCSQ0LT5tYXRjaEtpbmQgPSAkMTsKKwkJ CQkJJDQtPmNvbmRpdGlvbiA9ICQyOwogCi0JCQkJCSQkID0gKE5vZGUgKikgJDU7CisJCQkJCSQk ID0gKE5vZGUgKikgJDQ7CiAJCQkJfQotCQkJfCBXSEVOIE5PVCBNQVRDSEVEIG9wdF9tZXJnZV93 aGVuX2NvbmRpdGlvbiBUSEVOIG1lcmdlX2luc2VydAorCQkJfCBtZXJnZV93aGVuX3RndF9ub3Rf bWF0Y2hlZCBvcHRfbWVyZ2Vfd2hlbl9jb25kaXRpb24gVEhFTiBtZXJnZV9pbnNlcnQKIAkJCQl7 Ci0JCQkJCSQ2LT5tYXRjaGVkID0gZmFsc2U7Ci0JCQkJCSQ2LT5jb25kaXRpb24gPSAkNDsKKwkJ CQkJJDQtPm1hdGNoS2luZCA9ICQxOworCQkJCQkkNC0+Y29uZGl0aW9uID0gJDI7CiAKLQkJCQkJ JCQgPSAoTm9kZSAqKSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKSAkNDsKIAkJCQl9Ci0JCQl8IFdI RU4gTUFUQ0hFRCBvcHRfbWVyZ2Vfd2hlbl9jb25kaXRpb24gVEhFTiBETyBOT1RISU5HCisJCQl8 IG1lcmdlX3doZW5fdGd0X21hdGNoZWQgb3B0X21lcmdlX3doZW5fY29uZGl0aW9uIFRIRU4gRE8g Tk9USElORwogCQkJCXsKIAkJCQkJTWVyZ2VXaGVuQ2xhdXNlICptID0gbWFrZU5vZGUoTWVyZ2VX aGVuQ2xhdXNlKTsKIAotCQkJCQltLT5tYXRjaGVkID0gdHJ1ZTsKKwkJCQkJbS0+bWF0Y2hLaW5k ID0gJDE7CiAJCQkJCW0tPmNvbW1hbmRUeXBlID0gQ01EX05PVEhJTkc7Ci0JCQkJCW0tPmNvbmRp dGlvbiA9ICQzOworCQkJCQltLT5jb25kaXRpb24gPSAkMjsKIAogCQkJCQkkJCA9IChOb2RlICop IG07CiAJCQkJfQotCQkJfCBXSEVOIE5PVCBNQVRDSEVEIG9wdF9tZXJnZV93aGVuX2NvbmRpdGlv biBUSEVOIERPIE5PVEhJTkcKKwkJCXwgbWVyZ2Vfd2hlbl90Z3Rfbm90X21hdGNoZWQgb3B0X21l cmdlX3doZW5fY29uZGl0aW9uIFRIRU4gRE8gTk9USElORwogCQkJCXsKIAkJCQkJTWVyZ2VXaGVu Q2xhdXNlICptID0gbWFrZU5vZGUoTWVyZ2VXaGVuQ2xhdXNlKTsKIAotCQkJCQltLT5tYXRjaGVk ID0gZmFsc2U7CisJCQkJCW0tPm1hdGNoS2luZCA9ICQxOwogCQkJCQltLT5jb21tYW5kVHlwZSA9 IENNRF9OT1RISU5HOwotCQkJCQltLT5jb25kaXRpb24gPSAkNDsKKwkJCQkJbS0+Y29uZGl0aW9u ID0gJDI7CiAKIAkJCQkJJCQgPSAoTm9kZSAqKSBtOwogCQkJCX0KIAkJOwogCittZXJnZV93aGVu X3RndF9tYXRjaGVkOgorCQkJV0hFTiBNQVRDSEVECQkJCQl7ICQkID0gTUVSR0VfV0hFTl9NQVRD SEVEOyB9CisJCQl8IFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFCXsgJCQgPSBNRVJHRV9XSEVO X05PVF9NQVRDSEVEX0JZX1NPVVJDRTsgfQorCQk7CisKK21lcmdlX3doZW5fdGd0X25vdF9tYXRj aGVkOgorCQkJV0hFTiBOT1QgTUFUQ0hFRAkJCQl7ICQkID0gTUVSR0VfV0hFTl9OT1RfTUFUQ0hF RF9CWV9UQVJHRVQ7IH0KKwkJCXwgV0hFTiBOT1QgTUFUQ0hFRCBCWSBUQVJHRVQJeyAkJCA9IE1F UkdFX1dIRU5fTk9UX01BVENIRURfQllfVEFSR0VUOyB9CisJCTsKKwogb3B0X21lcmdlX3doZW5f Y29uZGl0aW9uOgogCQkJQU5EIGFfZXhwcgkJCQl7ICQkID0gJDI7IH0KIAkJCXwJCQkJCQl7ICQk ID0gTlVMTDsgfQpAQCAtMTY5NjgsNiArMTY5ODAsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJ CQl8IFNJTVBMRQogCQkJfCBTS0lQCiAJCQl8IFNOQVBTSE9UCisJCQl8IFNPVVJDRQogCQkJfCBT UUxfUAogCQkJfCBTVEFCTEUKIAkJCXwgU1RBTkRBTE9ORV9QCkBAIC0xNjk4Niw2ICsxNjk5OSw3 IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgU1lTVEVNX1AKIAkJCXwgVEFCTEVTCiAJCQl8 IFRBQkxFU1BBQ0UKKwkJCXwgVEFSR0VUCiAJCQl8IFRFTVAKIAkJCXwgVEVNUExBVEUKIAkJCXwg VEVNUE9SQVJZCkBAIC0xNzU2Myw2ICsxNzU3Nyw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJ CXwgU01BTExJTlQKIAkJCXwgU05BUFNIT1QKIAkJCXwgU09NRQorCQkJfCBTT1VSQ0UKIAkJCXwg U1FMX1AKIAkJCXwgU1RBQkxFCiAJCQl8IFNUQU5EQUxPTkVfUApAQCAtMTc1ODYsNiArMTc2MDEs NyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFRBQkxFUwogCQkJfCBUQUJMRVNBTVBMRQog CQkJfCBUQUJMRVNQQUNFCisJCQl8IFRBUkdFVAogCQkJfCBURU1QCiAJCQl8IFRFTVBMQVRFCiAJ CQl8IFRFTVBPUkFSWQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdl LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBkODg2NjM3Li5mY2EyYmQ5Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9t ZXJnZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCkBAIC00Myw5ICs0 Myw5IEBAIHN0YXRpYyB2b2lkIHNldE5hbWVzcGFjZVZpc2liaWxpdHlGb3JSVEUKICAqIE1ha2Ug YXBwcm9wcmlhdGUgY2hhbmdlcyB0byB0aGUgbmFtZXNwYWNlIHZpc2liaWxpdHkgd2hpbGUgdHJh bnNmb3JtaW5nCiAgKiBpbmRpdmlkdWFsIGFjdGlvbidzIHF1YWxzIGFuZCB0YXJnZXRsaXN0IGV4 cHJlc3Npb25zLiBJbiBwYXJ0aWN1bGFyLCBmb3IKICAqIElOU0VSVCBhY3Rpb25zIHdlIG11c3Qg b25seSBzZWUgdGhlIHNvdXJjZSByZWxhdGlvbiAoc2luY2UgSU5TRVJUIGFjdGlvbiBpcwotICog aW52b2tlZCBmb3IgTk9UIE1BVENIRUQgdHVwbGVzIGFuZCBoZW5jZSB0aGVyZSBpcyBubyB0YXJn ZXQgdHVwbGUgdG8gZGVhbAotICogd2l0aCkuIE9uIHRoZSBvdGhlciBoYW5kLCBVUERBVEUgYW5k IERFTEVURSBhY3Rpb25zIGNhbiBzZWUgYm90aCBzb3VyY2UgYW5kCi0gKiB0YXJnZXQgcmVsYXRp b25zLgorICogaW52b2tlZCBmb3IgTk9UIE1BVENIRUQgW0JZIFRBUkdFVF0gdHVwbGVzIGFuZCBo ZW5jZSB0aGVyZSBpcyBubyB0YXJnZXQKKyAqIHR1cGxlIHRvIGRlYWwgd2l0aCkuIE9uIHRoZSBv dGhlciBoYW5kLCBVUERBVEUgYW5kIERFTEVURSBhY3Rpb25zIGNhbiBzZWUKKyAqIGJvdGggc291 cmNlIGFuZCB0YXJnZXQgcmVsYXRpb25zLCB1bmxlc3MgaW52b2tlZCBmb3IgTk9UIE1BVENIIEJZ IFNPVVJDRS4KICAqCiAgKiBBbHNvLCBzaW5jZSB0aGUgaW50ZXJuYWwgam9pbiBub2RlIGNhbiBo aWRlIHRoZSBzb3VyY2UgYW5kIHRhcmdldAogICogcmVsYXRpb25zLCB3ZSBtdXN0IGV4cGxpY2l0 bHkgbWFrZSB0aGUgcmVzcGVjdGl2ZSByZWxhdGlvbiBhcyB2aXNpYmxlIHNvCkBAIC02MSw3ICs2 MSw3IEBAIHNldE5hbWVzcGFjZUZvck1lcmdlV2hlbihQYXJzZVN0YXRlICpwc3QKIAl0YXJnZXRS ZWxSVEUgPSBydF9mZXRjaCh0YXJnZXRSVEksIHBzdGF0ZS0+cF9ydGFibGUpOwogCXNvdXJjZVJl bFJURSA9IHJ0X2ZldGNoKHNvdXJjZVJUSSwgcHN0YXRlLT5wX3J0YWJsZSk7CiAKLQlpZiAobWVy Z2VXaGVuQ2xhdXNlLT5tYXRjaGVkKQorCWlmIChtZXJnZVdoZW5DbGF1c2UtPm1hdGNoS2luZCA9 PSBNRVJHRV9XSEVOX01BVENIRUQpCiAJewogCQlBc3NlcnQobWVyZ2VXaGVuQ2xhdXNlLT5jb21t YW5kVHlwZSA9PSBDTURfVVBEQVRFIHx8CiAJCQkgICBtZXJnZVdoZW5DbGF1c2UtPmNvbW1hbmRU eXBlID09IENNRF9ERUxFVEUgfHwKQEAgLTczLDExICs3MywyNSBAQCBzZXROYW1lc3BhY2VGb3JN ZXJnZVdoZW4oUGFyc2VTdGF0ZSAqcHN0CiAJCXNldE5hbWVzcGFjZVZpc2liaWxpdHlGb3JSVEUo cHN0YXRlLT5wX25hbWVzcGFjZSwKIAkJCQkJCQkJCSBzb3VyY2VSZWxSVEUsIHRydWUsIHRydWUp OwogCX0KLQllbHNlCisJZWxzZSBpZiAobWVyZ2VXaGVuQ2xhdXNlLT5tYXRjaEtpbmQgPT0gTUVS R0VfV0hFTl9OT1RfTUFUQ0hFRF9CWV9TT1VSQ0UpCiAJewogCQkvKgotCQkgKiBOT1QgTUFUQ0hF RCBhY3Rpb25zIGNhbid0IHNlZSB0YXJnZXQgcmVsYXRpb24sIGJ1dCB0aGV5IGNhbiBzZWUKLQkJ ICogc291cmNlIHJlbGF0aW9uLgorCQkgKiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgYWN0aW9ucyBj YW4gc2VlIHRoZSB0YXJnZXQgcmVsYXRpb24sIGJ1dCB0aGV5CisJCSAqIGNhbid0IHNlZSB0aGUg c291cmNlIHJlbGF0aW9uLgorCQkgKi8KKwkJQXNzZXJ0KG1lcmdlV2hlbkNsYXVzZS0+Y29tbWFu ZFR5cGUgPT0gQ01EX1VQREFURSB8fAorCQkJICAgbWVyZ2VXaGVuQ2xhdXNlLT5jb21tYW5kVHlw ZSA9PSBDTURfREVMRVRFIHx8CisJCQkgICBtZXJnZVdoZW5DbGF1c2UtPmNvbW1hbmRUeXBlID09 IENNRF9OT1RISU5HKTsKKwkJc2V0TmFtZXNwYWNlVmlzaWJpbGl0eUZvclJURShwc3RhdGUtPnBf bmFtZXNwYWNlLAorCQkJCQkJCQkJIHRhcmdldFJlbFJURSwgdHJ1ZSwgdHJ1ZSk7CisJCXNldE5h bWVzcGFjZVZpc2liaWxpdHlGb3JSVEUocHN0YXRlLT5wX25hbWVzcGFjZSwKKwkJCQkJCQkJCSBz b3VyY2VSZWxSVEUsIGZhbHNlLCBmYWxzZSk7CisJfQorCWVsc2UJLyogbWVyZ2VXaGVuQ2xhdXNl LT5tYXRjaEtpbmQgPT0gTUVSR0VfV0hFTl9OT1RfTUFUQ0hFRF9CWV9UQVJHRVQgKi8KKwl7CisJ CS8qCisJCSAqIE5PVCBNQVRDSEVEIFtCWSBUQVJHRVRdIGFjdGlvbnMgY2FuJ3Qgc2VlIHRhcmdl dCByZWxhdGlvbiwgYnV0IHRoZXkKKwkJICogY2FuIHNlZSBzb3VyY2UgcmVsYXRpb24uCiAJCSAq LwogCQlBc3NlcnQobWVyZ2VXaGVuQ2xhdXNlLT5jb21tYW5kVHlwZSA9PSBDTURfSU5TRVJUIHx8 CiAJCQkgICBtZXJnZVdoZW5DbGF1c2UtPmNvbW1hbmRUeXBlID09IENNRF9OT1RISU5HKTsKQEAg LTk4LDcgKzExMiw4IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE0K IAlRdWVyeQkgICAqcXJ5ID0gbWFrZU5vZGUoUXVlcnkpOwogCUxpc3RDZWxsICAgKmw7CiAJQWNs TW9kZQkJdGFyZ2V0UGVybXMgPSBBQ0xfTk9fUklHSFRTOwotCWJvb2wJCWlzX3Rlcm1pbmFsWzJd OworCWJvb2wJCWlzX3Rlcm1pbmFsWzNdOworCWJvb2wJCXRndF9vbmx5X3R1cGxlczsKIAlJbmRl eAkJc291cmNlUlRJOwogCUxpc3QJICAgKm1lcmdlQWN0aW9uTGlzdDsKIAlOb2RlCSAgICpqb2lu RXhwcjsKQEAgLTEyNSwxMiArMTQwLDEzIEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIE0KIAkvKgogCSAqIENoZWNrIFdIRU4gY2xhdXNlcyBmb3IgcGVybWlzc2lvbnMg YW5kIHNhbml0eQogCSAqLwotCWlzX3Rlcm1pbmFsWzBdID0gZmFsc2U7Ci0JaXNfdGVybWluYWxb MV0gPSBmYWxzZTsKKwlpc190ZXJtaW5hbFtNRVJHRV9XSEVOX01BVENIRURdID0gZmFsc2U7CisJ aXNfdGVybWluYWxbTUVSR0VfV0hFTl9OT1RfTUFUQ0hFRF9CWV9TT1VSQ0VdID0gZmFsc2U7CisJ aXNfdGVybWluYWxbTUVSR0VfV0hFTl9OT1RfTUFUQ0hFRF9CWV9UQVJHRVRdID0gZmFsc2U7CisJ dGd0X29ubHlfdHVwbGVzID0gZmFsc2U7CiAJZm9yZWFjaChsLCBzdG10LT5tZXJnZVdoZW5DbGF1 c2VzKQogCXsKIAkJTWVyZ2VXaGVuQ2xhdXNlICptZXJnZVdoZW5DbGF1c2UgPSAoTWVyZ2VXaGVu Q2xhdXNlICopIGxmaXJzdChsKTsKLQkJaW50CQkJd2hlbl90eXBlID0gKG1lcmdlV2hlbkNsYXVz ZS0+bWF0Y2hlZCA/IDAgOiAxKTsKIAogCQkvKgogCQkgKiBDb2xsZWN0IGFjdGlvbiB0eXBlcyBz byB3ZSBjYW4gY2hlY2sgdGFyZ2V0IHBlcm1pc3Npb25zCkBAIC0xNTUsMTIgKzE3MSwyMiBAQCB0 cmFuc2Zvcm1NZXJnZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBNCiAJCS8qCiAJCSAqIENoZWNr IGZvciB1bnJlYWNoYWJsZSBXSEVOIGNsYXVzZXMKIAkJICovCi0JCWlmIChpc190ZXJtaW5hbFt3 aGVuX3R5cGVdKQorCQlpZiAoaXNfdGVybWluYWxbbWVyZ2VXaGVuQ2xhdXNlLT5tYXRjaEtpbmRd KQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAogCQkJCQkgZXJybXNnKCJ1bnJlYWNoYWJsZSBXSEVOIGNsYXVzZSBzcGVjaWZpZWQgYWZ0ZXIg dW5jb25kaXRpb25hbCBXSEVOIGNsYXVzZSIpKSk7CiAJCWlmIChtZXJnZVdoZW5DbGF1c2UtPmNv bmRpdGlvbiA9PSBOVUxMKQotCQkJaXNfdGVybWluYWxbd2hlbl90eXBlXSA9IHRydWU7CisJCQlp c190ZXJtaW5hbFttZXJnZVdoZW5DbGF1c2UtPm1hdGNoS2luZF0gPSB0cnVlOworCisJCS8qCisJ CSAqIFRlc3QgaWYgd2UgaGF2ZSBhIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIGFjdGlvbiB0 aGF0IHByb2Nlc3NlcworCQkgKiB1bm1hdGNoZWQgdHVwbGVzIGZyb20gdGhlIHRhcmdldCByZWxh dGlvbi4gIElmIHNvLCBhZGRpdGlvbmFsIFdIRU4KKwkJICogY29uZGl0aW9ucyBhcmUgYWRkZWQg YmVsb3cgdG8gZGlmZmVyZW50aWF0ZSB0aGUgdmFyaW91cyBtYXRjaAorCQkgKiBraW5kcy4KKwkJ ICovCisJCWlmIChtZXJnZVdoZW5DbGF1c2UtPmNvbW1hbmRUeXBlICE9IENNRF9OT1RISU5HICYm CisJCQltZXJnZVdoZW5DbGF1c2UtPm1hdGNoS2luZCA9PSBNRVJHRV9XSEVOX05PVF9NQVRDSEVE X0JZX1NPVVJDRSkKKwkJCXRndF9vbmx5X3R1cGxlcyA9IHRydWU7CiAJfQogCiAJLyoKQEAgLTI1 NSwxMSArMjgxLDcgQEAgdHJhbnNmb3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTQog CiAJCWFjdGlvbiA9IG1ha2VOb2RlKE1lcmdlQWN0aW9uKTsKIAkJYWN0aW9uLT5jb21tYW5kVHlw ZSA9IG1lcmdlV2hlbkNsYXVzZS0+Y29tbWFuZFR5cGU7Ci0JCWFjdGlvbi0+bWF0Y2hlZCA9IG1l cmdlV2hlbkNsYXVzZS0+bWF0Y2hlZDsKLQotCQkvKiBVc2UgYW4gb3V0ZXIgam9pbiBpZiBhbnkg SU5TRVJUIGFjdGlvbnMgZXhpc3QgaW4gdGhlIGNvbW1hbmQuICovCi0JCWlmIChhY3Rpb24tPmNv bW1hbmRUeXBlID09IENNRF9JTlNFUlQpCi0JCQlxcnktPm1lcmdlVXNlT3V0ZXJKb2luID0gdHJ1 ZTsKKwkJYWN0aW9uLT5tYXRjaEtpbmQgPSBtZXJnZVdoZW5DbGF1c2UtPm1hdGNoS2luZDsKIAog CQkvKgogCQkgKiBTZXQgbmFtZXNwYWNlIGZvciB0aGUgc3BlY2lmaWMgYWN0aW9uLiBUaGlzIG11 c3QgYmUgZG9uZSBiZWZvcmUKQEAgLTI4MCw2ICszMDIsNTEgQEAgdHJhbnNmb3JtTWVyZ2VTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTQogCQkJCQkJCQkJCQlFWFBSX0tJTkRfTUVSR0VfV0hFTiwg IldIRU4iKTsKIAogCQkvKgorCQkgKiBJZiB0aGVyZSBhbnkgV0hFTiBOT1QgTUFUQ0hFRCBCWSBT T1VSQ0UgYWN0aW9ucyB0aGF0IHJlcXVpcmUKKwkJICogdW5tYXRjaGVkIHR1cGxlcyBmcm9tIHRo ZSB0YXJnZXQgcmVsYXRpb24gdG8gYmUgcHJvY2Vzc2VkLCBhZGQKKwkJICogYWRkaXRpb25hbCBX SEVOIGNvbmRpdGlvbnMgdG8gZXZlcnkgYWN0aW9uIHRvIGNoZWNrIHRoYXQgdHVwbGVzCisJCSAq IGZyb20gdGhlIHNvdXJjZSBtYXRjaCBvciBkbyBub3QgbWF0Y2gsIGFzIG5lY2Vzc2FyeS4KKwkJ ICoKKwkJICogVGhpcyBkaXN0aW5ndWlzaGVzIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBhY3Rpb25z IChpZGVudGlmaWVkIGJ5IGEKKwkJICogInNvdXJjZSBJUyBOT1QgRElTVElOQ1QgRlJPTSBOVUxM IiBjbGF1c2UpIGZyb20gTUFUQ0hFRCBhY3Rpb25zCisJCSAqIChpZGVudGlmaWVkIGJ5IGEgInNv dXJjZSBJUyBESVNUSU5DVCBGUk9NIE5VTEwiIGNsYXVzZSkuCisJCSAqCisJCSAqIEFkZGl0aW9u YWxseSwgYSAic291cmNlIElTIERJU1RJTkNUIEZST00gTlVMTCIgY2xhdXNlIGlzIHJlcXVpcmVk CisJCSAqIGZvciBOT1QgTUFUQ0hFRCBbQlkgVEFSR0VUXSBhY3Rpb25zIGluIGNhc2UgdGhlIGV4 ZWN1dG9yIGF0dGVtcHRzCisJCSAqIHRvIGludm9rZSBzdWNoIGFuIGFjdGlvbiBmb3IgYSBjb25j dXJyZW50bHkgZGVsZXRlZCB0YXJnZXQgcm93IHRoYXQKKwkJICogZW5kcyB1cCBtYXRjaGluZyBu ZWl0aGVyIHNvdXJjZSBub3IgdGFyZ2V0LgorCQkgKi8KKwkJaWYgKHRndF9vbmx5X3R1cGxlcykK KwkJeworCQkJYm9vbAkJc3JjX251bGw7CisJCQlOdWxsVGVzdCAgICpudGVzdDsKKworCQkJLyog TWFrZSBhICJzb3VyY2UgSVMgW05PVF0gRElTVElOQ1QgRlJPTSBOVUxMIiBjbGF1c2UgKi8KKwkJ CXNyY19udWxsID0gYWN0aW9uLT5tYXRjaEtpbmQgPT0gTUVSR0VfV0hFTl9OT1RfTUFUQ0hFRF9C WV9TT1VSQ0U7CisKKwkJCW50ZXN0ID0gbWFrZU5vZGUoTnVsbFRlc3QpOworCisJCQludGVzdC0+ YXJnID0gKEV4cHIgKikgbWFrZVZhcihzb3VyY2VSVEksCisJCQkJCQkJCQkJICBJbnZhbGlkQXR0 ck51bWJlciwKKwkJCQkJCQkJCQkgIFJFQ09SRE9JRCwKKwkJCQkJCQkJCQkgIC0xLAorCQkJCQkJ CQkJCSAgSW52YWxpZE9pZCwKKwkJCQkJCQkJCQkgIDApOworCQkJbnRlc3QtPm51bGx0ZXN0dHlw ZSA9IHNyY19udWxsID8gSVNfTlVMTCA6IElTX05PVF9OVUxMOworCQkJbnRlc3QtPmFyZ2lzcm93 ID0gZmFsc2U7CisJCQludGVzdC0+bG9jYXRpb24gPSAtMTsKKworCQkJLyogQ29tYmluZSBpdCB3 aXRoIHRoZSBhY3Rpb24ncyBXSEVOIGNvbmRpdGlvbiAqLworCQkJaWYgKGFjdGlvbi0+cXVhbCA9 PSBOVUxMKQorCQkJCWFjdGlvbi0+cXVhbCA9IChOb2RlICopIG50ZXN0OworCQkJZWxzZQorCQkJ CWFjdGlvbi0+cXVhbCA9CisJCQkJCShOb2RlICopIG1ha2VCb29sRXhwcihBTkRfRVhQUiwKKwkJ CQkJCQkJCQkgIGxpc3RfbWFrZTIobnRlc3QsIGFjdGlvbi0+cXVhbCksCisJCQkJCQkJCQkJICAt MSk7CisJCX0KKworCQkvKgogCQkgKiBUcmFuc2Zvcm0gdGFyZ2V0IGxpc3RzIGZvciBlYWNoIElO U0VSVCBhbmQgVVBEQVRFIGFjdGlvbiBzdG10CiAJCSAqLwogCQlzd2l0Y2ggKGFjdGlvbi0+Y29t bWFuZFR5cGUpCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDJlODdi OS4uOTQxYzY0YgotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC00MjM3LDE3ICs0MjM3LDM1IEBAIHBzcWxfY29tcGxl dGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3QKIAkJCSBUYWlsTWF0Y2hlcygiVVNJTkciLCBN YXRjaEFueSwgTWF0Y2hBbnksICJPTiIsIE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hBbnksICJX SEVOIikpCiAJCUNPTVBMRVRFX1dJVEgoIk1BVENIRUQiLCAiTk9UIE1BVENIRUQiKTsKIAotCS8q IENvbXBsZXRlIC4uLiBXSEVOIFtOT1RdIE1BVENIRUQgd2l0aCBUSEVOL0FORCAqLworCS8qCisJ ICogQ29tcGxldGUgLi4uIFdIRU4gTUFUQ0hFRCBhbmQgV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VS Q0V8VEFSR0VUIHdpdGgKKwkgKiBUSEVOL0FORAorCSAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVz KCJXSEVOIiwgIk1BVENIRUQiKSB8fAotCQkJIFRhaWxNYXRjaGVzKCJXSEVOIiwgIk5PVCIsICJN QVRDSEVEIikpCisJCQkgVGFpbE1hdGNoZXMoIldIRU4iLCAiTk9UIiwgIk1BVENIRUQiLCAiQlki LCAiU09VUkNFfFRBUkdFVCIpKQogCQlDT01QTEVURV9XSVRIKCJUSEVOIiwgIkFORCIpOwogCi0J LyogQ29tcGxldGUgLi4uIFdIRU4gTUFUQ0hFRCBUSEVOIHdpdGggVVBEQVRFIFNFVC9ERUxFVEUv RE8gTk9USElORyAqLwotCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJXSEVOIiwgIk1BVENIRUQiLCAi VEhFTiIpKQorCS8qIENvbXBsZXRlIC4uLiBXSEVOIE5PVCBNQVRDSEVEIHdpdGggQlkvVEhFTi9B TkQgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiV0hFTiIsICJOT1QiLCAiTUFUQ0hFRCIpKQor CQlDT01QTEVURV9XSVRIKCJCWSIsICJUSEVOIiwgIkFORCIpOworCisJLyogQ29tcGxldGUgLi4u IFdIRU4gTk9UIE1BVENIRUQgQlkgd2l0aCBTT1VSQ0UvVEFSR0VUICovCisJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIldIRU4iLCAiTk9UIiwgIk1BVENIRUQiLCAiQlkiKSkKKwkJQ09NUExFVEVfV0lU SCgiU09VUkNFIiwgIlRBUkdFVCIpOworCisJLyoKKwkgKiBDb21wbGV0ZSAuLi4gV0hFTiBNQVRD SEVEIFRIRU4gYW5kIFdIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4gd2l0aAorCSAqIFVQ REFURSBTRVQvREVMRVRFL0RPIE5PVEhJTkcKKwkgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygi V0hFTiIsICJNQVRDSEVEIiwgIlRIRU4iKSB8fAorCQkJIFRhaWxNYXRjaGVzKCJXSEVOIiwgIk5P VCIsICJNQVRDSEVEIiwgIkJZIiwgIlNPVVJDRSIsICJUSEVOIikpCiAJCUNPTVBMRVRFX1dJVEgo IlVQREFURSBTRVQiLCAiREVMRVRFIiwgIkRPIE5PVEhJTkciKTsKIAotCS8qIENvbXBsZXRlIC4u LiBXSEVOIE5PVCBNQVRDSEVEIFRIRU4gd2l0aCBJTlNFUlQvRE8gTk9USElORyAqLwotCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJXSEVOIiwgIk5PVCIsICJNQVRDSEVEIiwgIlRIRU4iKSkKKwkvKgor CSAqIENvbXBsZXRlIC4uLiBXSEVOIE5PVCBNQVRDSEVEIFtCWSBUQVJHRVRdIFRIRU4gd2l0aCBJ TlNFUlQvRE8gTk9USElORworCSAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJXSEVOIiwgIk5P VCIsICJNQVRDSEVEIiwgIlRIRU4iKSB8fAorCQkJIFRhaWxNYXRjaGVzKCJXSEVOIiwgIk5PVCIs ICJNQVRDSEVEIiwgIkJZIiwgIlRBUkdFVCIsICJUSEVOIikpCiAJCUNPTVBMRVRFX1dJVEgoIklO U0VSVCIsICJETyBOT1RISU5HIik7CiAKIC8qIE5PVElGWSAtLS0gY2FuIGJlIGluc2lkZSBFWFBM QUlOLCBSVUxFLCBldGMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMjg1ODhmLi5lNGNlMzc3Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE4Myw4ICsxODMs NiBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCQkJCQkJCQkgKiBhbHNvIFVTSU5HIGNsYXVzZSBm b3IgTUVSR0UgKi8KIAogCUxpc3QJICAgKm1lcmdlQWN0aW9uTGlzdDsJLyogbGlzdCBvZiBhY3Rp b25zIGZvciBNRVJHRSAob25seSkgKi8KLQkvKiB3aGV0aGVyIHRvIHVzZSBvdXRlciBqb2luICov Ci0JYm9vbAkJbWVyZ2VVc2VPdXRlckpvaW4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOwogCiAJTGlzdAkgICAqdGFyZ2V0TGlzdDsJCS8qIHRhcmdldCBsaXN0IChvZiBUYXJnZXRF bnRyeSkgKi8KIApAQCAtMTY2Miw2ICsxNjYwLDE0IEBAIHR5cGVkZWYgc3RydWN0IENvbW1vblRh YmxlRXhwcgogCSAoKFF1ZXJ5ICopIChjdGUpLT5jdGVxdWVyeSktPnRhcmdldExpc3QgOiBcCiAJ ICgoUXVlcnkgKikgKGN0ZSktPmN0ZXF1ZXJ5KS0+cmV0dXJuaW5nTGlzdCkKIAorLyogTUFUQ0hF RC9OT1QgTUFUQ0hFRCBzcGVjaWZpY2F0aW9uIGZvciBXSEVOIGNsYXVzZXMgaW4gYSBNRVJHRSBz dGF0ZW1lbnQgKi8KK3R5cGVkZWYgZW51bSBNZXJnZU1hdGNoS2luZAoreworCU1FUkdFX1dIRU5f TUFUQ0hFRCwKKwlNRVJHRV9XSEVOX05PVF9NQVRDSEVEX0JZX1NPVVJDRSwKKwlNRVJHRV9XSEVO X05PVF9NQVRDSEVEX0JZX1RBUkdFVAorfSBNZXJnZU1hdGNoS2luZDsKKwogLyoKICAqIE1lcmdl V2hlbkNsYXVzZSAtCiAgKgkJcmF3IHBhcnNlciByZXByZXNlbnRhdGlvbiBvZiBhIFdIRU4gY2xh dXNlIGluIGEgTUVSR0Ugc3RhdGVtZW50CkBAIC0xNjcxLDcgKzE2NzcsNyBAQCB0eXBlZGVmIHN0 cnVjdCBDb21tb25UYWJsZUV4cHIKIHR5cGVkZWYgc3RydWN0IE1lcmdlV2hlbkNsYXVzZQogewog CU5vZGVUYWcJCXR5cGU7Ci0JYm9vbAkJbWF0Y2hlZDsJCS8qIHRydWU9TUFUQ0hFRCwgZmFsc2U9 Tk9UIE1BVENIRUQgKi8KKwlNZXJnZU1hdGNoS2luZCBtYXRjaEtpbmQ7CS8qIE1BVENIRUQvTk9U IE1BVENIRUQgQlkgU09VUkNFL1RBUkdFVCAqLwogCUNtZFR5cGUJCWNvbW1hbmRUeXBlOwkvKiBJ TlNFUlQvVVBEQVRFL0RFTEVURS9ETyBOT1RISU5HICovCiAJT3ZlcnJpZGluZ0tpbmQgb3ZlcnJp ZGU7CS8qIE9WRVJSSURJTkcgY2xhdXNlICovCiAJTm9kZQkgICAqY29uZGl0aW9uOwkJLyogV0hF TiBjb25kaXRpb25zIChyYXcgcGFyc2VyKSAqLwpAQCAtMTY4Nyw3ICsxNjkzLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgTWVyZ2VXaGVuQ2xhdXNlCiB0eXBlZGVmIHN0cnVjdCBNZXJnZUFjdGlvbgogewog CU5vZGVUYWcJCXR5cGU7Ci0JYm9vbAkJbWF0Y2hlZDsJCS8qIHRydWU9TUFUQ0hFRCwgZmFsc2U9 Tk9UIE1BVENIRUQgKi8KKwlNZXJnZU1hdGNoS2luZCBtYXRjaEtpbmQ7CS8qIE1BVENIRUQvTk9U IE1BVENIRUQgQlkgU09VUkNFL1RBUkdFVCAqLwogCUNtZFR5cGUJCWNvbW1hbmRUeXBlOwkvKiBJ TlNFUlQvVVBEQVRFL0RFTEVURS9ETyBOT1RISU5HICovCiAJLyogT1ZFUlJJRElORyBjbGF1c2Ug Ki8KIAlPdmVycmlkaW5nS2luZCBvdmVycmlkZSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2ln bm9yZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5j bHVkZS9wYXJzZXIva3dsaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzUzZTllZS4u YjIxM2I5OQotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0zOTIsNiArMzkyLDcgQEAgUEdfS0VZV09SRCgic2tpcCIs IFNLSVAsIFVOUkVTRVJWRURfS0VZVwogUEdfS0VZV09SRCgic21hbGxpbnQiLCBTTUFMTElOVCwg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNuYXBzaG90IiwgU05B UFNIT1QsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNvbWUi LCBTT01FLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgic291cmNl IiwgU09VUkNFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJz cWwiLCBTUUxfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi c3RhYmxlIiwgU1RBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJzdGFuZGFsb25lIiwgU1RBTkRBTE9ORV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCkBAIC00MTUsNiArNDE2LDcgQEAgUEdfS0VZV09SRCgidGFibGUiLCBUQUJMRSwgUkVT RVJWRURfS0VZVwogUEdfS0VZV09SRCgidGFibGVzIiwgVEFCTEVTLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0YWJsZXNhbXBsZSIsIFRBQkxFU0FNUExFLCBU WVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidGFibGVzcGFj ZSIsIFRBQkxFU1BBQ0UsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdP UkQoInRhcmdldCIsIFRBUkdFVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgidGVtcCIsIFRFTVAsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInRlbXBsYXRlIiwgVEVNUExBVEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInRlbXBvcmFyeSIsIFRFTVBPUkFSWSwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9t ZXJnZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21lcmdlLm91dApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAxZGRjNjhiLi44YWQyYTYyCi0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvbWVyZ2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWVyZ2Uu b3V0CkBAIC03MSw2ICs3MSwxNSBAQCBXSEVOIE1BVENIRUQgVEhFTgogRVJST1I6ICBzeW50YXgg ZXJyb3IgYXQgb3IgbmVhciAiSU5TRVJUIgogTElORSA1OiAgSU5TRVJUIERFRkFVTFQgVkFMVUVT OwogICAgICAgICAgXgorLS0gTk9UIE1BVENIRUQgQlkgU09VUkNFL0lOU0VSVCBlcnJvcgorTUVS R0UgSU5UTyB0YXJnZXQgdAorVVNJTkcgc291cmNlIEFTIHMKK09OIHQudGlkID0gcy5zaWQKK1dI RU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKwlJTlNFUlQgREVGQVVMVCBWQUxVRVM7CitF UlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJJTlNFUlQiCitMSU5FIDU6ICBJTlNFUlQg REVGQVVMVCBWQUxVRVM7CisgICAgICAgICBeCiAtLSBpbmNvcnJlY3RseSBzcGVjaWZ5aW5nIElO VE8gdGFyZ2V0CiBNRVJHRSBJTlRPIHRhcmdldCB0CiBVU0lORyBzb3VyY2UgQVMgcwpAQCAtMTA3 LDYgKzExNiwxNSBAQCBXSEVOIE5PVCBNQVRDSEVEIFRIRU4KIEVSUk9SOiAgc3ludGF4IGVycm9y IGF0IG9yIG5lYXIgIlVQREFURSIKIExJTkUgNTogIFVQREFURSBTRVQgYmFsYW5jZSA9IDA7CiAg ICAgICAgICBeCistLSBOT1QgTUFUQ0hFRCBCWSBUQVJHRVQvVVBEQVRFCitNRVJHRSBJTlRPIHRh cmdldCB0CitVU0lORyBzb3VyY2UgQVMgcworT04gdC50aWQgPSBzLnNpZAorV0hFTiBOT1QgTUFU Q0hFRCBCWSBUQVJHRVQgVEhFTgorCVVQREFURSBTRVQgYmFsYW5jZSA9IDA7CitFUlJPUjogIHN5 bnRheCBlcnJvciBhdCBvciBuZWFyICJVUERBVEUiCitMSU5FIDU6ICBVUERBVEUgU0VUIGJhbGFu Y2UgPSAwOworICAgICAgICAgXgogLS0gVVBEQVRFIHRhYmxlbmFtZQogTUVSR0UgSU5UTyB0YXJn ZXQgdAogVVNJTkcgc291cmNlIEFTIHMKQEAgLTI3MSw2ICsyODksMjIgQEAgU0VMRUNUICogRlJP TSB0YXJnZXQgT1JERVIgQlkgdGlkOwogKDQgcm93cykKIAogUk9MTEJBQ0s7CistLSBERUxFVEUv SU5TRVJUIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZS90YXJnZXQKK0JFR0lOOworTUVSR0UgSU5UTyB0 YXJnZXQgdAorVVNJTkcgc291cmNlIEFTIHMKK09OIHQudGlkID0gcy5zaWQKK1dIRU4gTk9UIE1B VENIRUQgQlkgU09VUkNFIFRIRU4KKwlERUxFVEUKK1dIRU4gTk9UIE1BVENIRUQgQlkgVEFSR0VU IFRIRU4KKwlJTlNFUlQgVkFMVUVTIChzLnNpZCwgcy5kZWx0YSk7CitTRUxFQ1QgKiBGUk9NIHRh cmdldCBPUkRFUiBCWSB0aWQ7CisgdGlkIHwgYmFsYW5jZSAKKy0tLS0tKy0tLS0tLS0tLQorICAg NCB8ICAgICAgNDAKKygxIHJvdykKKworUk9MTEJBQ0s7CiAtLSBpbmRleCBwbGFucwogSU5TRVJU IElOVE8gdGFyZ2V0IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMTAwMCwyNTAwKSwgMDsKIEFMVEVS IFRBQkxFIHRhcmdldCBBREQgUFJJTUFSWSBLRVkgKHRpZCk7CkBAIC03MzgsNiArNzcyLDE5IEBA IFNFTEVDVCAqIEZST00gd3FfdGFyZ2V0OwogICAgMSB8ICAgICAgLTEKICgxIHJvdykKIAorLS0g Y29uZGl0aW9ucyBpbiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgY2xhdXNlIGNhbiBvbmx5IHJlZmVy IHRvIHRhcmdldCBjb2x1bW5zCitNRVJHRSBJTlRPIHdxX3RhcmdldCB0CitVU0lORyB3cV9zb3Vy Y2UgcyBPTiB0LnRpZCA9IHMuc2lkCitXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBBTkQgcy5i YWxhbmNlID0gMTAwIFRIRU4KKwlERUxFVEU7CitFUlJPUjogIGludmFsaWQgcmVmZXJlbmNlIHRv IEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAicyIKK0xJTkUgMzogV0hFTiBOT1QgTUFUQ0hF RCBCWSBTT1VSQ0UgQU5EIHMuYmFsYW5jZSA9IDEwMCBUSEVOCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICBUaGVyZSBpcyBhbiBlbnRyeSBmb3IgdGFi bGUgInMiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhl IHF1ZXJ5LgorTUVSR0UgSU5UTyB3cV90YXJnZXQgdAorVVNJTkcgd3Ffc291cmNlIHMgT04gdC50 aWQgPSBzLnNpZAorV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgQU5EIHQuYmFsYW5jZSA9IDEw MCBUSEVOCisgICAgREVMRVRFOwogLS0gY29uZGl0aW9ucyBpbiBNQVRDSEVEIGNsYXVzZSBjYW4g cmVmZXIgdG8gYm90aCBzb3VyY2UgYW5kIHRhcmdldAogU0VMRUNUICogRlJPTSB3cV9zb3VyY2U7 CiAgYmFsYW5jZSB8IHNpZCAKQEAgLTkyMyw2ICs5NzAsNDUgQEAgU0VMRUNUICogRlJPTSB0YXJn ZXQgT1JERVIgQlkgdGlkOwogKDMgcm93cykKIAogUk9MTEJBQ0s7CistLSBVUFNFUlQgd2l0aCBV UERBVEUvREVMRVRFIHdoZW4gbm90IG1hdGNoZWQgYnkgc291cmNlCitCRUdJTjsKK0RFTEVURSBG Uk9NIFNPVVJDRSBXSEVSRSBzaWQgPSAyOworTUVSR0UgSU5UTyB0YXJnZXQgdAorVVNJTkcgc291 cmNlIEFTIHMKK09OIHQudGlkID0gcy5zaWQKK1dIRU4gTUFUQ0hFRCBBTkQgdC5iYWxhbmNlID4g cy5kZWx0YSBUSEVOCisgICAgVVBEQVRFIFNFVCBiYWxhbmNlID0gdC5iYWxhbmNlIC0gcy5kZWx0 YQorV0hFTiBNQVRDSEVEIFRIRU4KKwlVUERBVEUgU0VUIGJhbGFuY2UgPSAwCitXSEVOIE5PVCBN QVRDSEVEIFRIRU4KKyAgICBJTlNFUlQgVkFMVUVTIChzLnNpZCwgcy5kZWx0YSkKK1dIRU4gTk9U IE1BVENIRUQgQlkgU09VUkNFIEFORCB0aWQgPSAxIFRIRU4KKwlVUERBVEUgU0VUIGJhbGFuY2Ug PSAwCitXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVOCisJREVMRVRFOworTk9USUNFOiAg QkVGT1JFIElOU0VSVCBTVEFURU1FTlQgdHJpZ2dlcgorTk9USUNFOiAgQkVGT1JFIFVQREFURSBT VEFURU1FTlQgdHJpZ2dlcgorTk9USUNFOiAgQkVGT1JFIERFTEVURSBTVEFURU1FTlQgdHJpZ2dl cgorTk9USUNFOiAgQkVGT1JFIFVQREFURSBST1cgdHJpZ2dlciByb3c6ICgzLDMwKSAtPiAoMywx MCkKK05PVElDRTogIEJFRk9SRSBJTlNFUlQgUk9XIHRyaWdnZXIgcm93OiAoNCw0MCkKK05PVElD RTogIEJFRk9SRSBERUxFVEUgUk9XIHRyaWdnZXIgcm93OiAoMiwyMCkKK05PVElDRTogIEJFRk9S RSBVUERBVEUgUk9XIHRyaWdnZXIgcm93OiAoMSwxMCkgLT4gKDEsMCkKK05PVElDRTogIEFGVEVS IFVQREFURSBST1cgdHJpZ2dlciByb3c6ICgzLDMwKSAtPiAoMywxMCkKK05PVElDRTogIEFGVEVS IElOU0VSVCBST1cgdHJpZ2dlciByb3c6ICg0LDQwKQorTk9USUNFOiAgQUZURVIgREVMRVRFIFJP VyB0cmlnZ2VyIHJvdzogKDIsMjApCitOT1RJQ0U6ICBBRlRFUiBVUERBVEUgUk9XIHRyaWdnZXIg cm93OiAoMSwxMCkgLT4gKDEsMCkKK05PVElDRTogIEFGVEVSIERFTEVURSBTVEFURU1FTlQgdHJp Z2dlcgorTk9USUNFOiAgQUZURVIgVVBEQVRFIFNUQVRFTUVOVCB0cmlnZ2VyCitOT1RJQ0U6ICBB RlRFUiBJTlNFUlQgU1RBVEVNRU5UIHRyaWdnZXIKK1NFTEVDVCAqIEZST00gdGFyZ2V0IE9SREVS IEJZIHRpZDsKKyB0aWQgfCBiYWxhbmNlIAorLS0tLS0rLS0tLS0tLS0tCisgICAxIHwgICAgICAg MAorICAgMyB8ICAgICAgMTAKKyAgIDQgfCAgICAgIDQwCisoMyByb3dzKQorCitST0xMQkFDSzsK IC0tIFRlc3QgYmVoYXZpb3Igb2YgdHJpZ2dlcnMgdGhhdCB0dXJuIFVQREFURS9ERUxFVEUgaW50 byBuby1vcHMKIGNyZWF0ZSBvciByZXBsYWNlIGZ1bmN0aW9uIHNraXBfbWVyZ2Vfb3AoKSByZXR1 cm5zIHRyaWdnZXIKIGxhbmd1YWdlIHBscGdzcWwgYXMKQEAgLTE0NTEsNiArMTUzNyw1MCBAQCBX SEVOIE5PVCBNQVRDSEVEIEFORCBzLmEgPCAyMCBUSEVOCiAgICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gZXhfbXRhcmdldCB0IChhY3R1YWwgcm93cz00OSBsb29wcz0xKQogKDEyIHJvd3Mp CiAKKy0tIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZQorU0VMRUNUIGV4cGxhaW5fbWVyZ2UoJworTUVS R0UgSU5UTyBleF9tdGFyZ2V0IHQgVVNJTkcgZXhfbXNvdXJjZSBzIE9OIHQuYSA9IHMuYQorV0hF TiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgYW5kIHQuYSA8IDEwIFRIRU4KKwlERUxFVEUnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX21lcmdlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBNZXJnZSBvbiBleF9tdGFyZ2V0IHQgKGFjdHVh bCByb3dzPTAgbG9vcHM9MSkKKyAgIFR1cGxlczogc2tpcHBlZD01NAorICAgLT4gIE1lcmdlIExl ZnQgSm9pbiAoYWN0dWFsIHJvd3M9NTQgbG9vcHM9MSkKKyAgICAgICAgIE1lcmdlIENvbmQ6ICh0 LmEgPSBzLmEpCisgICAgICAgICAtPiAgU29ydCAoYWN0dWFsIHJvd3M9NTQgbG9vcHM9MSkKKyAg ICAgICAgICAgICAgIFNvcnQgS2V5OiB0LmEKKyAgICAgICAgICAgICAgIFNvcnQgTWV0aG9kOiBx dWlja3NvcnQgIE1lbW9yeTogeHh4CisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZXhf bXRhcmdldCB0IChhY3R1YWwgcm93cz01NCBsb29wcz0xKQorICAgICAgICAgLT4gIFNvcnQgKGFj dHVhbCByb3dzPTEwMCBsb29wcz0xKQorICAgICAgICAgICAgICAgU29ydCBLZXk6IHMuYQorICAg ICAgICAgICAgICAgU29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5OiB4eHgKKyAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBleF9tc291cmNlIHMgKGFjdHVhbCByb3dzPTEwMCBsb29w cz0xKQorKDEyIHJvd3MpCisKKy0tIG5vdCBtYXRjaGVkIGJ5IHNvdXJjZSBhbmQgdGFyZ2V0CitT RUxFQ1QgZXhwbGFpbl9tZXJnZSgnCitNRVJHRSBJTlRPIGV4X210YXJnZXQgdCBVU0lORyBleF9t c291cmNlIHMgT04gdC5hID0gcy5hCitXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBBTkQgdC5h IDwgMTAgVEhFTgorCURFTEVURQorV0hFTiBOT1QgTUFUQ0hFRCBCWSBUQVJHRVQgQU5EIHMuYSA8 IDIwIFRIRU4KKwlJTlNFUlQgVkFMVUVTIChhLCBiKScpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGV4cGxhaW5fbWVyZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIE1lcmdlIG9uIGV4X210YXJnZXQgdCAoYWN0dWFsIHJvd3M9MCBsb29wcz0xKQor ICAgVHVwbGVzOiBza2lwcGVkPTEwMAorICAgLT4gIE1lcmdlIEZ1bGwgSm9pbiAoYWN0dWFsIHJv d3M9MTAwIGxvb3BzPTEpCisgICAgICAgICBNZXJnZSBDb25kOiAodC5hID0gcy5hKQorICAgICAg ICAgLT4gIFNvcnQgKGFjdHVhbCByb3dzPTU0IGxvb3BzPTEpCisgICAgICAgICAgICAgICBTb3J0 IEtleTogdC5hCisgICAgICAgICAgICAgICBTb3J0IE1ldGhvZDogcXVpY2tzb3J0ICBNZW1vcnk6 IHh4eAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGV4X210YXJnZXQgdCAoYWN0dWFs IHJvd3M9NTQgbG9vcHM9MSkKKyAgICAgICAgIC0+ICBTb3J0IChhY3R1YWwgcm93cz0xMDAgbG9v cHM9MSkKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBzLmEKKyAgICAgICAgICAgICAgIFNvcnQg TWV0aG9kOiBxdWlja3NvcnQgIE1lbW9yeTogeHh4CisgICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gZXhfbXNvdXJjZSBzIChhY3R1YWwgcm93cz0xMDAgbG9vcHM9MSkKKygxMiByb3dzKQor CiAtLSBub3RoaW5nCiBTRUxFQ1QgZXhwbGFpbl9tZXJnZSgnCiBNRVJHRSBJTlRPIGV4X210YXJn ZXQgdCBVU0lORyBleF9tc291cmNlIHMgT04gdC5hID0gcy5hIEFORCB0LmEgPCAtMTAwMApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWVyZ2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvbWVyZ2Uuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5YTM1NDguLjc2YmI5 ZmQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWVyZ2Uuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL21lcmdlLnNxbApAQCAtNTEsNiArNTEsMTIgQEAgVVNJTkcgc291cmNlIEFTIHMK IE9OIHQudGlkID0gcy5zaWQKIFdIRU4gTUFUQ0hFRCBUSEVOCiAJSU5TRVJUIERFRkFVTFQgVkFM VUVTOworLS0gTk9UIE1BVENIRUQgQlkgU09VUkNFL0lOU0VSVCBlcnJvcgorTUVSR0UgSU5UTyB0 YXJnZXQgdAorVVNJTkcgc291cmNlIEFTIHMKK09OIHQudGlkID0gcy5zaWQKK1dIRU4gTk9UIE1B VENIRUQgQlkgU09VUkNFIFRIRU4KKwlJTlNFUlQgREVGQVVMVCBWQUxVRVM7CiAtLSBpbmNvcnJl Y3RseSBzcGVjaWZ5aW5nIElOVE8gdGFyZ2V0CiBNRVJHRSBJTlRPIHRhcmdldCB0CiBVU0lORyBz b3VyY2UgQVMgcwpAQCAtNzUsNiArODEsMTIgQEAgVVNJTkcgc291cmNlIEFTIHMKIE9OIHQudGlk ID0gcy5zaWQKIFdIRU4gTk9UIE1BVENIRUQgVEhFTgogCVVQREFURSBTRVQgYmFsYW5jZSA9IDA7 CistLSBOT1QgTUFUQ0hFRCBCWSBUQVJHRVQvVVBEQVRFCitNRVJHRSBJTlRPIHRhcmdldCB0CitV U0lORyBzb3VyY2UgQVMgcworT04gdC50aWQgPSBzLnNpZAorV0hFTiBOT1QgTUFUQ0hFRCBCWSBU QVJHRVQgVEhFTgorCVVQREFURSBTRVQgYmFsYW5jZSA9IDA7CiAtLSBVUERBVEUgdGFibGVuYW1l CiBNRVJHRSBJTlRPIHRhcmdldCB0CiBVU0lORyBzb3VyY2UgQVMgcwpAQCAtMjEzLDYgKzIyNSwx OCBAQCBXSEVOIE5PVCBNQVRDSEVEIFRIRU4KIFNFTEVDVCAqIEZST00gdGFyZ2V0IE9SREVSIEJZ IHRpZDsKIFJPTExCQUNLOwogCistLSBERUxFVEUvSU5TRVJUIG5vdCBtYXRjaGVkIGJ5IHNvdXJj ZS90YXJnZXQKK0JFR0lOOworTUVSR0UgSU5UTyB0YXJnZXQgdAorVVNJTkcgc291cmNlIEFTIHMK K09OIHQudGlkID0gcy5zaWQKK1dIRU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIFRIRU4KKwlERUxF VEUKK1dIRU4gTk9UIE1BVENIRUQgQlkgVEFSR0VUIFRIRU4KKwlJTlNFUlQgVkFMVUVTIChzLnNp ZCwgcy5kZWx0YSk7CitTRUxFQ1QgKiBGUk9NIHRhcmdldCBPUkRFUiBCWSB0aWQ7CitST0xMQkFD SzsKKwogLS0gaW5kZXggcGxhbnMKIElOU0VSVCBJTlRPIHRhcmdldCBTRUxFQ1QgZ2VuZXJhdGVf c2VyaWVzKDEwMDAsMjUwMCksIDA7CiBBTFRFUiBUQUJMRSB0YXJnZXQgQUREIFBSSU1BUlkgS0VZ ICh0aWQpOwpAQCAtNDk3LDYgKzUyMSwxNyBAQCBXSEVOIE5PVCBNQVRDSEVEIEFORCBzLmJhbGFu Y2UgPSAxMDAgVEhFCiAJSU5TRVJUICh0aWQpIFZBTFVFUyAocy5zaWQpOwogU0VMRUNUICogRlJP TSB3cV90YXJnZXQ7CiAKKy0tIGNvbmRpdGlvbnMgaW4gTk9UIE1BVENIRUQgQlkgU09VUkNFIGNs YXVzZSBjYW4gb25seSByZWZlciB0byB0YXJnZXQgY29sdW1ucworTUVSR0UgSU5UTyB3cV90YXJn ZXQgdAorVVNJTkcgd3Ffc291cmNlIHMgT04gdC50aWQgPSBzLnNpZAorV0hFTiBOT1QgTUFUQ0hF RCBCWSBTT1VSQ0UgQU5EIHMuYmFsYW5jZSA9IDEwMCBUSEVOCisJREVMRVRFOworCitNRVJHRSBJ TlRPIHdxX3RhcmdldCB0CitVU0lORyB3cV9zb3VyY2UgcyBPTiB0LnRpZCA9IHMuc2lkCitXSEVO IE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBBTkQgdC5iYWxhbmNlID0gMTAwIFRIRU4KKyAgICBERUxF VEU7CisKIC0tIGNvbmRpdGlvbnMgaW4gTUFUQ0hFRCBjbGF1c2UgY2FuIHJlZmVyIHRvIGJvdGgg c291cmNlIGFuZCB0YXJnZXQKIFNFTEVDVCAqIEZST00gd3Ffc291cmNlOwogTUVSR0UgSU5UTyB3 cV90YXJnZXQgdApAQCAtNjI0LDYgKzY1OSwyNSBAQCBXSEVOIE5PVCBNQVRDSEVEIFRIRU4KIFNF TEVDVCAqIEZST00gdGFyZ2V0IE9SREVSIEJZIHRpZDsKIFJPTExCQUNLOwogCistLSBVUFNFUlQg d2l0aCBVUERBVEUvREVMRVRFIHdoZW4gbm90IG1hdGNoZWQgYnkgc291cmNlCitCRUdJTjsKK0RF TEVURSBGUk9NIFNPVVJDRSBXSEVSRSBzaWQgPSAyOworTUVSR0UgSU5UTyB0YXJnZXQgdAorVVNJ Tkcgc291cmNlIEFTIHMKK09OIHQudGlkID0gcy5zaWQKK1dIRU4gTUFUQ0hFRCBBTkQgdC5iYWxh bmNlID4gcy5kZWx0YSBUSEVOCisgICAgVVBEQVRFIFNFVCBiYWxhbmNlID0gdC5iYWxhbmNlIC0g cy5kZWx0YQorV0hFTiBNQVRDSEVEIFRIRU4KKwlVUERBVEUgU0VUIGJhbGFuY2UgPSAwCitXSEVO IE5PVCBNQVRDSEVEIFRIRU4KKyAgICBJTlNFUlQgVkFMVUVTIChzLnNpZCwgcy5kZWx0YSkKK1dI RU4gTk9UIE1BVENIRUQgQlkgU09VUkNFIEFORCB0aWQgPSAxIFRIRU4KKwlVUERBVEUgU0VUIGJh bGFuY2UgPSAwCitXSEVOIE5PVCBNQVRDSEVEIEJZIFNPVVJDRSBUSEVOCisJREVMRVRFOworU0VM RUNUICogRlJPTSB0YXJnZXQgT1JERVIgQlkgdGlkOworUk9MTEJBQ0s7CisKIC0tIFRlc3QgYmVo YXZpb3Igb2YgdHJpZ2dlcnMgdGhhdCB0dXJuIFVQREFURS9ERUxFVEUgaW50byBuby1vcHMKIGNy ZWF0ZSBvciByZXBsYWNlIGZ1bmN0aW9uIHNraXBfbWVyZ2Vfb3AoKSByZXR1cm5zIHRyaWdnZXIK IGxhbmd1YWdlIHBscGdzcWwgYXMKQEAgLTkyOSw2ICs5ODMsMjAgQEAgV0hFTiBNQVRDSEVEIEFO RCB0LmEgPj0gMzAgQU5EIHQuYSA8PSA0MAogV0hFTiBOT1QgTUFUQ0hFRCBBTkQgcy5hIDwgMjAg VEhFTgogCUlOU0VSVCBWQUxVRVMgKGEsIGIpJyk7CiAKKy0tIG5vdCBtYXRjaGVkIGJ5IHNvdXJj ZQorU0VMRUNUIGV4cGxhaW5fbWVyZ2UoJworTUVSR0UgSU5UTyBleF9tdGFyZ2V0IHQgVVNJTkcg ZXhfbXNvdXJjZSBzIE9OIHQuYSA9IHMuYQorV0hFTiBOT1QgTUFUQ0hFRCBCWSBTT1VSQ0UgYW5k IHQuYSA8IDEwIFRIRU4KKwlERUxFVEUnKTsKKworLS0gbm90IG1hdGNoZWQgYnkgc291cmNlIGFu ZCB0YXJnZXQKK1NFTEVDVCBleHBsYWluX21lcmdlKCcKK01FUkdFIElOVE8gZXhfbXRhcmdldCB0 IFVTSU5HIGV4X21zb3VyY2UgcyBPTiB0LmEgPSBzLmEKK1dIRU4gTk9UIE1BVENIRUQgQlkgU09V UkNFIEFORCB0LmEgPCAxMCBUSEVOCisJREVMRVRFCitXSEVOIE5PVCBNQVRDSEVEIEJZIFRBUkdF VCBBTkQgcy5hIDwgMjAgVEhFTgorCUlOU0VSVCBWQUxVRVMgKGEsIGIpJyk7CisKIC0tIG5vdGhp bmcKIFNFTEVDVCBleHBsYWluX21lcmdlKCcKIE1FUkdFIElOVE8gZXhfbXRhcmdldCB0IFVTSU5H IGV4X21zb3VyY2UgcyBPTiB0LmEgPSBzLmEgQU5EIHQuYSA8IC0xMDAwCg== --0000000000005e263d05f73d2e66--