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 1uPM7a-005v1H-G5 for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Jun 2025 14:08:06 +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 1uPM7Y-003SSd-Bi for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Jun 2025 14:08:05 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uPM7X-003SSU-FA for pgsql-hackers@lists.postgresql.org; Wed, 11 Jun 2025 14:08:04 +0000 Received: from mail-yw1-x112f.google.com ([2607:f8b0:4864:20::112f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uPM7W-001RUm-0H for pgsql-hackers@lists.postgresql.org; Wed, 11 Jun 2025 14:08:03 +0000 Received: by mail-yw1-x112f.google.com with SMTP id 00721157ae682-70e77831d68so65218357b3.2 for ; Wed, 11 Jun 2025 07:08:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749650881; x=1750255681; 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=Ws8PPPzTNDplhBi8/1W1eHk0YetOcn+GESbKjCleUZM=; b=HpjGBbeVsnyr1cxAMdYS68hkc/ixuryzfeqBSXo+SpUg4aR/T8x8owWMIiHHzz4xdc nH0bzPzKLyymdWryops+uL1wiDXUIPyW/z0pDnmyN10sUeJfyEdhDQiO5fJgMJ4jrLeH O5aCyH5jLo5GKWaKEg4yMBi7JmEbRH71TCMG0Gbk8S7iB9mhfx4EVbLj8kInL64T9VU5 asHTShyJm63LEbwvFSauGLoYYBf+dppwF8AnGYiBuJHLvABl+UBXGJh/3cBOsn15EN5+ gm6CHpXJYa/n0c6lm80wC3VDz6GTXef1Z4NolEKg/s0Obc1EG6ubHyLTsPttsbASq44l reDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749650881; x=1750255681; 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=Ws8PPPzTNDplhBi8/1W1eHk0YetOcn+GESbKjCleUZM=; b=EC0N5Tx5jTGEz8gEGpYwCdHx6LDImQ3dMl0zB3cU/OtpByCwkk4p/P79r/N3xlGTF7 7JHhpJHJJVsUx5WR0eAdtyL42W1IYYAWf078+6BUuYB3nMkouYLM4v/mQY695TjNboQg yB3PKV+/jtQnPX7382nfFm09U4uVyK7isZPJo2HX1wqj5g46f1N+oDqFauCpZhdtH9gT XsL7+Okmm1G9WHQXmHyqsc5hu4WWaAZQoZemorqzb1VplIB3uxMseoLWuhKdNrguPMG9 9wS/aZq2VPgrTZ6Za1cq98bfLVkIdVma4RXS0Y12AHfOe7VSjmN6LD49St0oDLZYhT9k atEQ== X-Forwarded-Encrypted: i=1; AJvYcCUHZhAcpCguMvPUxSy0t1SMng5xOYFtRoHLlXKDVCcUGkxNryQMM5JKqhGfgWPRCarAK3/2U5dW9TVNa5G2@lists.postgresql.org X-Gm-Message-State: AOJu0YyinKQxyfkYsFzW0I8IqbjSvlXwwdTIyic8Oh5NkSwoGZjqLe+u r0vW4+ntoCMnDIR7w9C4JFpgl+7R7USACAUTlOWtrWtlcL6CalHK/UuhAxjFpOgInYOU3M9Vnw3 6uyU87ZEi/4Xz2JqLjHHJ7+xyGmcyKGQ= X-Gm-Gg: ASbGncueOWzWL6G62JqfyUiJ43p7VCfiXb6pPVBV4LRE+VWa2PbsAP9JxuGMCS9eBhN gTc0NkuJ4XX/To8DNbCnRqooSumdYCRZDz4HEsrVHgRAIeZynnktmNQniIujD65RJUoEcM1uA+O XXR0X8i6gyCtp1O7QFnoaDOPCKAVTYAnWyKYuBH5nYRBa5Vg== X-Google-Smtp-Source: AGHT+IEkE0xjg3/m6XkoL1wflvdPAnZ3bJzofwvD5+2GCy2781o8+OELi/PwPwZOBOtpFdKODKEss5E8Yx/o6Aaa/Po= X-Received: by 2002:a05:690c:350f:b0:710:a3d4:ed39 with SMTP id 00721157ae682-71142501a7amr44222337b3.35.1749650881044; Wed, 11 Jun 2025 07:08:01 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Wed, 11 Jun 2025 19:37:49 +0530 X-Gm-Features: AX0GCFsg71QOYqdDa6aKR1zi96cOfXciTeR_-o8Qg5MMzjjvpEuh0JiDux7Lo5E Message-ID: Subject: Re: Skipping schema changes in publication To: Amit Kapila Cc: "Zhijie Hou (Fujitsu)" , vignesh C , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Peter Smith , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000003f1c9906374c5769" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003f1c9906374c5769 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 17 Apr 2025 at 09:12, Amit Kapila wrote: > > On Wed, Apr 16, 2025 at 8:22=E2=80=AFAM Zhijie Hou (Fujitsu) > wrote: > > > > On Thu, Apr 10, 2025 at 7:25 PM Amit Kapila wrote: > > > > > > On Tue, Jan 9, 2024 at 12:02=E2=80=AFPM vignesh C wrote: > > > > > > > > As I did not see much interest from others, I'm withdrawing this pa= tch > > > > for now. But if there is any interest others in future, I would be > > > > more than happy to work on this feature. > > > > > > > > > > Just FYI, I noticed a use case for this patch in email [1]. Users wou= ld like to > > > replicate all except a few columns having sensitive information. The = challenge > > > with current column list features is that adding new tables to column= s would > > > lead users to change the respective publications as well. > > > > > > [1] - > > > https://www.postgresql.org/message-id/tencent_DCDF626FCD4A556C51BE > > > 270FDC3047540208%40qq.com > > > > BTW, I noticed that debezium, an open source distributed platform for c= hange > > data capture that replies on logical decoding, also support specifying = the > > column exclusion list[1]. So, this indicates that there could be some u= se cases > > for this feature. > > > > Thanks for sharing the link. I see that they support both the include > and exclude lists for columns and tables. > Hi Hackers, I see there is some interest in the functionality added by this patch. I have rebased the patches in [1]. I saw a new column 'pubgencols' was added in pg_publication in PG 18. So, I have modified v11-0001 to RESET this as well. I am also working on creating a patch to exclude columns in publication as per suggestion in [2]. [1]: https://www.postgresql.org/message-id/CALDaNm3dWZCYDih55qTNAYsjCvYXMFv= %3D46UsDWmfCnXMt3kPCg%40mail.gmail.com [2]: https://www.postgresql.org/message-id/CAA4eK1KRdAPC%3D5%3D7tQ1GW0cRwD%= 3DzaDMi%2BT4u_k4GxPhPY6e8BQ%40mail.gmail.com Thanks and Regards, Shlok Kyal --0000000000003f1c9906374c5769 Content-Type: application/octet-stream; name="v11-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v11-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbs0rjx60 RnJvbSA3MTQzMjM0NjNkMmNiNjExMTM2NDZjNzczZWZhMDkwNDI1ZmU3MTZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MSAxLzJdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZs YWcgdG8gZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBh cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FU SU9OIHB1YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sICAgfCAgMzUgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMTEgKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgIHwgICA5ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAg ICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQgfCAxMjAgKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsICAgICAgfCAgNTcgKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAzMjEg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sCmluZGV4IGQ1ZWEzODNlOGJjLi4wNjQ1MmFmOTIxNCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IERST1AgPHJlcGxhYwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBD VVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVi bGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC02 OSwxOCArNzAsMzIgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVGhlIHJlbWFpbmluZyB2YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUg bmFtZSBvZiB0aGUgcHVibGljYXRpb24uCisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+ IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlCisgICBwdWJsaWNhdGlvbi4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD4gY2xh dXNlIHdpbGwgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZQorICAgcHVibGljYXRpb24uCisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gY2xhdXNlIHdp bGwgcmVzZXQgdGhlIHB1YmxpY2F0aW9uIHRvIHRoZQorICAgZGVmYXVsdCBzdGF0ZSB3aGljaCBp bmNsdWRlcyByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcKKyAg IDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGZsYWcgdG8gPGxpdGVyYWw+ZmFsc2U8L2xp dGVyYWw+IGFuZAorICAgZHJvcHBpbmcgYWxsIHJlbGF0aW9ucyBhbmQgc2NoZW1hcyB0aGF0IGFy ZSBhc3NvY2lhdGVkIHdpdGggdGhlCisgICBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxU RVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNh dGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxp dGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVyYWw+U0VU IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhl Ci0gICBpbnZva2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIgdGhlIG93 bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0 aGUKLSAgIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAgIFRoZSA8 bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAgIDxsaXRl cmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcg dXNlciB0byBiZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3Qg YmUgYWJsZSB0bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBuZXcgb3du aW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xp dGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3IG93bmVy IG9mIGEKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9y LWFsbC10YWJsZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4KICAg IG9yIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxl cy1pbi1zY2hlbWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvbGlu az4KQEAgLTIzMCw2ICsyNDUsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRp b24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1l PnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgog QUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMs IGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiA8c3RydWN0 bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGlu Zz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gUkVTRVQ7CiA8L3By b2dyYW1saXN0aW5nPjwvcGFyYT4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCmluZGV4IDBiMjNkOTRjMzhlLi4xNTlkYzM3ODFkMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTQ5LDYgKzQ5LDE1IEBACiAjaW5jbHVk ZSAidXRpbHMvdmFybGVuYS5oIgogCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZh bHVlcyBmb3IgZmxhZ3MgYW5kIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVC X0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9V UERBVEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZp bmUgUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRf VklBX1JPT1QgZmFsc2UKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorI2Rl ZmluZSBQVUJfREVGQVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJ bmZvcm1hdGlvbiB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVy IGV4cHJlc3Npb24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3Ig ZGV0YWlscy4KQEAgLTkxLDEyICsxMDAsMTIgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsCiAJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnNfZ2l2ZW4gPSBm YWxzZTsKIAogCS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsK LQlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9 IHRydWU7Ci0JcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdCA9IGZhbHNlOwotCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVC TElTSF9HRU5DT0xTX05PTkU7CisJcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVDsKKwlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJ T05fVVBEQVRFOworCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9E RUxFVEU7CisJcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJV TkNBVEU7CisJKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JP T1Q7CisJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJfREVGQVVMVF9HRU5DT0xTOwog CiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTg3LDYg KzExOTYsOTQgQEAgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNh Y2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGlj YXRpb24uCisgKgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcg QUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlIGFuZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBz Y2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0 YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKKwkJCQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0 dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRp b24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJ ICAgKnNjaGVtYXMgPSBOSUw7CisJTGlzdAkgICAqcmVscyA9IE5JTDsKKwlib29sCQludWxsc1tO YXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRp b25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCU9iamVjdEFkZHJl c3Mgb2JqOworCUxpc3RDZWxsICAgKmxjOworCU9pZAkJCXByaWQ7CisKKwkvKiBSRVNFVCBwdWJs aWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwK KwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOwor CisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFs c2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBs YWNlcykpOworCisJLyogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKwl2YWx1 ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJf REVGQVVMVF9BQ1RJT05fSU5TRVJUKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1 Ymluc2VydCAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVw ZGF0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJl cGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFs dWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVC X0RFRkFVTFRfQUNUSU9OX0RFTEVURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9w dWJkZWxldGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0 cnVuY2F0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsK KworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXRE YXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cHViZ2VuY29scyAtIDFdID0gQ2hhckdldERhdHVtKFBVQl9ERUZBVUxUX0dFTkNPTFMpOworCXJl cGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gdHJ1ZTsKKworCS8q IFNldCBBTEwgVEFCTEVTIGZsYWcgdG8gZmFsc2UgKi8KKwlpZiAocHViZm9ybS0+cHViYWxsdGFi bGVzKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0g PSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyk7CisJCXJlcGxhY2VzW0FudW1f cGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOworCQlDYWNoZUludmFsaWRh dGVSZWxjYWNoZUFsbCgpOworCX0KKworCXR1cCA9IGhlYXBfbW9kaWZ5X3R1cGxlKHR1cCwgUmVs YXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAorCQkJCQkJCXJlcGxhY2VzKTsKKwor CS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVw LT50X3NlbGYsIHR1cCk7CisKKwkvKiBEcm9wIHRoZSBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1Ymlk KTsKKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1YmlkLCBzY2hlbWFzLCBmYWxzZSk7CisKKwkv KiBEcm9wIHRoZSByZWxhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLwor CXJlbHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9S T09UKTsKKwlmb3JlYWNoKGxjLCByZWxzKQorCXsKKwkJT2lkCQkJcmVsaWQgPSBsZmlyc3Rfb2lk KGxjKTsKKworCQlwcmlkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLCBBbnVt X3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShyZWxp ZCksCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQlpZiAoIU9pZElzVmFs aWQocHJpZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgbm90IHBhcnQg b2YgdGhlIHB1YmxpY2F0aW9uIiwKKwkJCQkJCQlnZXRfcmVsX25hbWUocmVsaWQpKSkpOworCisJ CU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQsIHByaWQpOwor CQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwl9Cit9CisKIC8qCiAg KiBBZGQgb3IgcmVtb3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTE1MDEs NiArMTU5OCw4IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAogCWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1Ymxp Y2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKKwllbHNlIGlmIChzdG10LT5h Y3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKKwkJQWx0ZXJQdWJsaWNhdGlvblJlc2V0KHBz dGF0ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2UKIAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9 IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IDBiNTY1MjA3MWQxLi45NTJlOGUxMDNjZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC0xMDc2Miw2ICsxMDc2Miw4IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpT cGVjCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29iaiBbLCAuLi5dCiAg KgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAorICoKICAqIHB1Yl9vYmogaXMgb25l IG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFssIC4uLl0KQEAgLTEwODA4LDYgKzEwODEw LDEzIEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9wT2Jq ZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJ T04gbmFtZSBSRVNFVAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtl Tm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJ bi0+YWN0aW9uID0gQVBfUmVzZXRQdWJsaWNhdGlvbjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmlu ZGV4IDYyMDgzMGZlYjlkLi5kNTllZDVmM2ZkMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAt MjI0Miw3ICsyMjQyLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAK IAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRS T1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRIKCJB REQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7CiAJ LyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgi VEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGRk MDBhYjQyMGI4Li43MjgwZTk4MzZjZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI3Miw2 ICs0MjcyLDcgQEAgdHlwZWRlZiBlbnVtIEFsdGVyUHVibGljYXRpb25BY3Rpb24KIAlBUF9BZGRP YmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0cyB0byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmpl Y3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0cyBmcm9tIHB1YmxpY2F0aW9uICovCiAJQVBfU2V0T2Jq ZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQX1Jlc2V0UHVibGljYXRpb24s CQkvKiByZXNldCB0aGUgcHVibGljYXRpb24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbjsK IAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNGRlOTZjMDRmOWQuLmIyZmZlMGE4YzIwIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTkyMyw2ICsx OTIzLDEyNiBAQCBUYWJsZXM6CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjE7CiBEUk9QIFBVQkxJQ0FU SU9OIHB1YjI7CiBEUk9QIFRBQkxFIGdlbmNvbHM7CistLSBUZXN0cyBmb3IgQUxURVIgUFVCTElD QVRJT04gLi4uIFJFU0VUCitDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOworQ1JFQVRFIFRBQkxFIHB1 Yl9zY2gxLnRibDEgKGEgaW50KTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOworUkVTRVQg Y2xpZW50X21pbl9tZXNzYWdlczsKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEg cm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2No MS50YmwxOworLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGlj YXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgor VGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Ymxp YzsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkFMTCIKK0xJTkUgMTogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFZlcmlm eSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBl ZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8 IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8 IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJ U0ggPSAnJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9O X1JPT1QgPSAndHJ1ZScpOworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9S T09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0 CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgdAorKDEgcm93 KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1 Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVk IGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAg ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKKy0tIFZlcmlmeSB0aGF0 ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVy YXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHN0b3Jl ZCAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKKy0tIFZlcmlm eSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7 CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCitFUlJPUjog IG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCitTRVQgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9Q IFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIFJFU0VUIGNsaWVu dF9taW5fbWVzc2FnZXM7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDY4MDAxZGU0MDAwLi4xNWIyYjFjZmQy OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTIyMiw2ICsxMjIyLDYz IEBAIERST1AgUFVCTElDQVRJT04gcHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1Ag VEFCTEUgZ2VuY29sczsKIAorLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNF VAorQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChh IGludCk7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CisKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJw KyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwor XGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFE RCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRl ZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVz dHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnAr IHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VU IChQVUJMSVNIID0gJycpOworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworCist LSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyBy ZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBTRVQgKFBVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOworCistLSBW ZXJpZnkgdGhhdCAnUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUycgcGFyYW1ldGVyIGlzIHJlc2V0 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNl ciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyOworCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKKwogUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7Ci0tIAoyLjM0LjEK Cg== --0000000000003f1c9906374c5769 Content-Type: application/octet-stream; name="v11-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v11-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbs0rjxc1 RnJvbSA1N2QzZmQ0Njg4MmYzYjkzMDYzZWMzMTcxYjgyMzg4NmJlZjliOTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTk6MDg6MzUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MSAyLzJdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0 MjsKb3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg dDEsdDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVi bGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxOSArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDI5ICsrLQog ZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICstCiBz cmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNjggKysrKy0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAxOTcgKysr KysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAg ICAgICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1 dC5jICAgfCAgMjUgKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAg ICAgICAgfCAgMTYgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAg ICAgICB8ICA1NiArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAg ICAgICB8ICAgNyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAg ICAgfCAgMjAgKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAg ICB8ICA2MiArKysrKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAg ICAgICB8ICAxMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAg ICAgIHwgICA3ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggICAgICAg IHwgICA1ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAg fCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICAgIHwg IDk3ICsrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAg ICAgIHwgIDQ3ICsrKystCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAg ICAgICAgfCAgIDEgKwogLi4uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCAgICAg ICAgIHwgIDgzICsrKysrKysrCiAyNSBmaWxlcyBjaGFuZ2VkLCA2ODkgaW5zZXJ0aW9ucygrKSwg MTM0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGZh ODZjNTY5ZGM0Li40ZTM3YzkyOGI0NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1NjgsNiArNjU2OCwx NSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0Ozwv cmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgaWYgdGhlcmUgaXMgbm8gcHVibGlj YXRpb24gcXVhbGlmeWluZyBjb25kaXRpb24uPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRydWUgaWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KICAgICAgICA8c3RydWN0ZmllbGQ+cHJhdHRyczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJ2 ZWN0b3I8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlv bi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCA2ODZk ZDQ0MWQwMi4uMDIyYzRmZDRlMmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bApAQCAtMjI1MSwxMCArMjI1MSwxMCBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0 YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8L3Bh cmE+CiAKICAgPHBhcmE+Ci0gICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1 c2VyIG11c3QgaGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBh bGwgdGFibGVzIGluIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEK LSAgIHN1cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxs IHRhYmxlcyBvciBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEgYXV0b21hdGljYWxseSwgdGhlIHVz ZXIgbXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHVzaW5n IEZPUiBBTEwgVEFCTEVTIG9yIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSwKKyAgIHRoZSB1c2Vy IG11c3QgYmUgYSBzdXBlcnVzZXIuIFRvIGFkZCBBTEwgVEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHRvIGEKKyAgIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2Vy LiBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sCisgICB0aGUgdXNlciBtdXN0IGhhdmUg b3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUgdGFibGUuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCAwNjQ1MmFmOTIxNC4uMzdl MmM4NGJjMTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIy LDYgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KK0FMVEVSIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQURE IEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBTRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwv cmVwbGFjZWFibGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gRFJPUCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQogQUxU RVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25f cGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKQEAgLTMzLDYgKzM0LDExIEBAIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gUkVTRVQKIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBb IFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1ND SEVNQSB9IFssIC4uLiBdCisKKzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAg IFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0KKwogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC04 OSw4ICs5NSw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93 biB0aGUgcHVibGljYXRpb24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21t YW5kPi4KLSAgIEFkZGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJl cXVpcmVzIG93bmluZyB0aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiwKKyAgIEFkZGluZyBhIHRhYmxlIHRvIG9yIGV4Y2x1ZGluZyBhIHRh YmxlIGZyb20gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkKKyAgIHJlcXVpcmVzIG93bmluZyB0 aGF0IHRhYmxlLiBUaGUgPGxpdGVyYWw+QUREIEFMTCBUQUJMRVM8L2xpdGVyYWw+LAorICAgPGxp dGVyYWw+QUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKICAgIDxsaXRlcmFsPlNF VCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAogICAgPGxp dGVyYWw+UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZva2lu ZyB1c2VyIHRvIGJlIGEKICAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVz dCBiZSBhYmxlIHRvCkBAIC0yMzgsNiArMjQ1LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVz X3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3By b2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlv biA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBwdWJs aXNoCisgICBhbGwgdGFibGVzIGV4Y2VwdCA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4g YW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwg VEFCTEVTIEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKwogICA8cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5h bWU+LAogICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDgwMjYzMGYyZGYx Li5iZTYxMzE4YTBkYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGlj YXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21s CkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNp c2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+Ci0gICAgWyBGT1IgQUxMIFRBQkxFUworICAg IFsgRk9SIEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAg ICAgfCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBd ICkgXQogCkBAIC0zMCw2ICszMCwxMCBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogCiAgICAgVEFCTEUgWyBPTkxZ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxF UyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8 L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVy ZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogPC9zeW5vcHNpcz4KICA8 L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMjUsNyArMTI5LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8 bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9u ZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgotICAgICAgdGhlIGRh dGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIHRo ZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuIElmCisg ICAgICA8bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlbiBl eGNsdWRlIHJlcGxpY2F0aW5nCisgICAgICB0aGUgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCB0 YWJsZXMuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+ CkBAIC0xNjEsNiArMTY3LDE2IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkVY Q0VQVCBUQUJMRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgY2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1 ZGVkIGZyb20gdGhlCisgICAgICBwdWJsaWNhdGlvbi4gSXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRo IDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoIj4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRI ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwv cmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVw bGFjZWFibGU+XSBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBA IC00NDIsNiArNDU4LDE1IEBAIENSRUFURSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0 aW9uIEZPUiBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElD QVRJT04gc2FsZXNfcHVibGljYXRpb24gRk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBz YWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEg cHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMg ZXhjZXB0IGZvcgorICAgdGhlIGNoYW5nZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5h bWU+IGFuZAorICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJM RVMgRVhDRVBUIHVzZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFy YT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFs bCBjaGFuZ2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBi dXQgcmVwbGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFt ZT4gYW5kCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggOGY3ZDg3NThjYTAuLjNjY2U3NjJmYTk3 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMDk0LDggKzIwOTQsOSBAQCBTRUxFQ1QgJDEg XHBhcnNlIHN0bXQxCiAgICAgICAgIGxpc3RlZC4KICAgICAgICAgSWYgPGxpdGVyYWw+eDwvbGl0 ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHJlc3VsdHMKICAgICAg ICAgYXJlIGRpc3BsYXllZCBpbiBleHBhbmRlZCBtb2RlLgotICAgICAgICBJZiA8bGl0ZXJhbD4r PC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzIGFu ZAotICAgICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9uIGFyZSBz aG93biBhcyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRl ZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAgICAgICBleGNsdWRlZCB0YWJs ZXMgYW5kIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRpb24gYXJlIHNob3du IGFzCisgICAgICAgIHdlbGwuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4K ICAgICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmlu ZGV4IGQ2Zjk0ZGI1ZDk5Li5lYzU4MGUzYjA1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uYwpAQCAtMzUxLDcgKzM1MSw4IEBAIEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9u cyhMaXN0ICpyZXN1bHQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKICAqIGFuY2Vz dG9yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgKi8KIE9pZAotR2V0VG9wTW9zdEFuY2Vz dG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0 b3JfbGV2ZWwpCitHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExp c3QgKmFuY2VzdG9ycywKKwkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0 YWJsZXMpCiB7CiAJTGlzdENlbGwgICAqbGM7CiAJT2lkCQkJdG9wbW9zdF9yZWxpZCA9IEludmFs aWRPaWQ7CkBAIC0zNjMsMzIgKzM2NCw0NCBAQCBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0 aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbAogCWZv cmVhY2gobGMsIGFuY2VzdG9ycykKIAl7CiAJCU9pZAkJCWFuY2VzdG9yID0gbGZpcnN0X29pZChs Yyk7Ci0JCUxpc3QJICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rv cik7Ci0JCUxpc3QJICAgKmFzY2hlbWFQdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFwdWJpZHMg PSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpOworCQlMaXN0CSAgICph c2NoZW1hcHViaWRzID0gTklMOworCQlMaXN0CSAgICphZXhjZXB0cHViaWRzID0gTklMOworCQli b29sCQlzZXRfdG9wID0gZmFsc2U7CiAKIAkJbGV2ZWwrKzsKIAotCQlpZiAobGlzdF9tZW1iZXJf b2lkKGFwdWJpZHMsIHB1Ym9pZCkpCisJCS8qIGNoZWNrIGlmIG1lbWJlciBvZiB0YWJsZSBwdWJs aWNhdGlvbnMgKi8KKwkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhcHViaWRzLCBwdWJvaWQp OworCQlpZiAoIXNldF90b3ApCiAJCXsKLQkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKKwkJ CWFzY2hlbWFwdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2Uo YW5jZXN0b3IpKTsKIAotCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCSphbmNlc3Rvcl9sZXZl bCA9IGxldmVsOworCQkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHNjaGVtYSBwdWJsaWNhdGlvbnMg Ki8KKwkJCXNldF90b3AgPSBsaXN0X21lbWJlcl9vaWQoYXNjaGVtYXB1YmlkcywgcHVib2lkKTsK KworCQkJLyoKKwkJCSAqIElmIHRoZSBwdWJsaWNhdGlvbiBpcyBhbGwgdGFibGVzIHB1YmxpY2F0 aW9uIGFuZCB0aGUgdGFibGUgaXMKKwkJCSAqIG5vdCBwYXJ0IG9mIGV4Y2VwdGlvbiB0YWJsZXMu CisJCQkgKi8KKwkJCWlmICghc2V0X3RvcCAmJiBwdWJhbGx0YWJsZXMpCisJCQl7CisJCQkJYWV4 Y2VwdHB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKTsKKwkJ CQlzZXRfdG9wID0gIWxpc3RfbWVtYmVyX29pZChhZXhjZXB0cHViaWRzLCBwdWJvaWQpOworCQkJ fQogCQl9Ci0JCWVsc2UKKworCQlpZiAoc2V0X3RvcCkKIAkJewotCQkJYXNjaGVtYVB1YmlkcyA9 IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25hbWVzcGFjZShhbmNlc3RvcikpOwotCQkJ aWYgKGxpc3RfbWVtYmVyX29pZChhc2NoZW1hUHViaWRzLCBwdWJvaWQpKQotCQkJewotCQkJCXRv cG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKKwkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKIAot CQkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7Ci0J CQl9CisJCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCisJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7 CiAJCX0KIAogCQlsaXN0X2ZyZWUoYXB1Ymlkcyk7Ci0JCWxpc3RfZnJlZShhc2NoZW1hUHViaWRz KTsKKwkJbGlzdF9mcmVlKGFzY2hlbWFwdWJpZHMpOworCQlsaXN0X2ZyZWUoYWV4Y2VwdHB1Ymlk cyk7CiAJfQogCiAJcmV0dXJuIHRvcG1vc3RfcmVsaWQ7CkBAIC00NzksNiArNDkyLDggQEAgcHVi bGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmks CiAJCU9iamVjdElkR2V0RGF0dW0ocHViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9u X3JlbF9wcnJlbGlkIC0gMV0gPQogCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwl2YWx1ZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJleGNlcHQgLSAxXSA9CisJCUJvb2xHZXREYXR1bShw cmktPmV4Y2VwdCk7CiAKIAkvKiBBZGQgcXVhbGlmaWNhdGlvbnMsIGlmIGF2YWlsYWJsZSAqLwog CWlmIChwcmktPndoZXJlQ2xhdXNlICE9IE5VTEwpCkBAIC03NDYsOSArNzYxLDkgQEAgcHVibGlj YXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhp c3RzKQogCXJldHVybiBteXNlbGY7CiB9CiAKLS8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBv aWRzIGZvciBhIHJlbGF0aW9uICovCisvKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBm b3IgYSByZWxhdGlvbiB0aGF0IG1hdGNoZXMgdGhlIGV4Y2VwdF9mbGFnICovCiBMaXN0ICoKLUdl dFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKK0dldFJlbGF0aW9uUHVibGljYXRpb25z KE9pZCByZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7 CiAJQ2F0Q0xpc3QgICAqcHVicmVsbGlzdDsKQEAgLTc2Miw3ICs3NzcsOCBAQCBHZXRSZWxhdGlv blB1YmxpY2F0aW9ucyhPaWQgcmVsaWQpCiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+ bWVtYmVyc1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9u X3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOwogCi0JCXJlc3VsdCA9IGxhcHBlbmRfb2lk KHJlc3VsdCwgcHViaWQpOworCQlpZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3JtX3BnX3B1YmxpY2F0 aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdCkKKwkJCXJlc3VsdCA9IGxhcHBlbmRf b2lkKHJlc3VsdCwgcHViaWQpOwogCX0KIAogCVJlbGVhc2VTeXNDYWNoZUxpc3QocHVicmVsbGlz dCk7CkBAIC04NjEsMTMgKzg3NywxNiBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkK ICAqIHJvb3QgcGFydGl0aW9uZWQgdGFibGVzLgogICovCiBMaXN0ICoKLUdldEFsbFRhYmxlc1B1 YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFRhYmxlc1B1YmxpY2F0 aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogewogCVJlbGF0aW9uCWNs YXNzUmVsOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlUYWJsZVNjYW5EZXNjIHNjYW47CiAJSGVh cFR1cGxlCXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRs aXN0OworCisJZXhjZXB0bGlzdCA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJM SUNBVElPTl9QQVJUX0FMTCk7CiAKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25SZWxh dGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCkBAIC04ODQsNyArOTAzLDggQEAgR2V0QWxsVGFi bGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQogCQlPaWQJCQlyZWxpZCA9 IHJlbEZvcm0tPm9pZDsKIAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZv cm0pICYmCi0JCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpKQorCQkJ IShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSAmJgorCQkJIWxpc3RfbWVt YmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCiAJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1 bHQsIHJlbGlkKTsKIAl9CiAKQEAgLTkwNSw3ICs5MjUsOCBAQCBHZXRBbGxUYWJsZXNQdWJsaWNh dGlvblJlbGF0aW9ucyhib29sIHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0t Pm9pZDsKIAogCQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgot CQkJCSFyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRp b24gJiYKKwkJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1 bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTYwLDcgKzExODEs OCBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkgKiB0 aG9zZS4gT3RoZXJ3aXNlLCBnZXQgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4KIAkJCSAq LwogCQkJaWYgKHB1Yl9lbGVtLT5hbGx0YWJsZXMpCi0JCQkJcHViX2VsZW1fdGFibGVzID0gR2V0 QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMocHViX2VsZW0tPnB1YnZpYXJvb3QpOworCQkJ CXB1Yl9lbGVtX3RhYmxlcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9l bGVtLT5vaWQsCisJCQkJCQkJCQkJCQkJCQkJICAgcHViX2VsZW0tPnB1YnZpYXJvb3QpOwogCQkJ ZWxzZQogCQkJewogCQkJCUxpc3QJICAgKnJlbGlkcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMKaW5kZXggMTU5ZGMzNzgxZDAuLjUxOTRiMmZiNmUyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjA0LDYgKzIwNCwxMSBAQCBPYmplY3RzSW5Q dWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJc3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJ T05PQkpfVEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJCQkJ KnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsKKwkJ CWNhc2UgUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUt PmV4Y2VwdCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRh YmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVN QToKQEAgLTI3OCw3ICsyODMsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyKE5v ZGUgKm5vZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250YWlu c19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNl c3RvcnMsCi0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVidmlh cm9vdCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lkCQkJ cmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTMwNSw3ICszMTAsOCBAQCBw dWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlv biwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwt PnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BNb3N0 QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBHZXRU b3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJCQkJ CQkJCQkJCSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19y ZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNjUsNyArMzcxLDcgQEAg cHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRp b24sIExpc3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihP aWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCQkJYm9v bCBwdWJ2aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQlib29sICppbnZhbGlk X2NvbHVtbl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29sICppbnZhbGlkX2Nv bHVtbl9saXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJCQlyZWxp ZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzg5LDcgKzM5NSw4IEBAIHB1Yl9j b250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0 ICphbmNlc3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3JlbC0+ cmVsaXNwYXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2Vz dG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9hc19y ZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywK KwkJCQkJCQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFs aWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC05 MjEsNTIgKzkyOCw1MCBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENy ZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkvKiBNYWtlIHRoZSBjaGFuZ2VzIHZpc2libGUu ICovCiAJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAotCS8qIEFzc29jaWF0ZSBvYmplY3Rz IHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLwotCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKLQl7 Ci0JCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJl YnVpbHQuICovCi0JCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7Ci0JfQotCWVsc2UKLQl7 Ci0JCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwg JnJlbGF0aW9ucywKLQkJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7CisJT2JqZWN0c0luUHVibGlj YXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAorCQkJCQkJ CSAgICZzY2hlbWFpZGxpc3QpOwogCi0JCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHJlcXVpcmVz IHN1cGVydXNlciAqLwotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkp Ci0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCi0JCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBU QUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOworCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1B IHJlcXVpcmVzIHN1cGVydXNlciAqLworCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMICYmICFzdXBl cnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJ RU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBjcmVhdGUg Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CiAKLQkJaWYgKHJlbGF0aW9ucyAh PSBOSUwpCi0JCXsKLQkJCUxpc3QJICAgKnJlbHM7CisJaWYgKHJlbGF0aW9ucyAhPSBOSUwpCisJ eworCQlMaXN0CSAgICpyZWxzOwogCi0JCQlyZWxzID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMp OwotCQkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0 LAotCQkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwkJcmVscyA9IE9wZW5U YWJsZUxpc3QocmVsYXRpb25zKTsKKwkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBz dGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQkgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qp OwogCi0JCQlDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChzdG10LT5wdWJuYW1lLCByZWxzLAot CQkJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKLQkJCQkJCQkJCSAgIHB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290KTsKKwkJQ2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVi bmFtZSwgcmVscywKKwkJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKKwkJCQkJCQkJICAg cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0JCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhw dWJvaWQsIHJlbHMsIHRydWUsIE5VTEwpOwotCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7Ci0JCX0K KwkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKKwkJQ2xv c2VUYWJsZUxpc3QocmVscyk7CisJfQogCi0JCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMKQotCQl7 Ci0JCQkvKgotCQkJICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24g aXMgY3JlYXRlZCB0byBwcmV2ZW50Ci0JCQkgKiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlvbi4K LQkJCSAqLwotCQkJTG9ja1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKLQkJCVB1YmxpY2F0aW9u QWRkU2NoZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7Ci0JCX0KKwlpZiAo c2NoZW1haWRsaXN0ICE9IE5JTCkKKwl7CisJCS8qCisJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQg dW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAorCQkgKiBjb25jdXJy ZW50IHNjaGVtYSBkZWxldGlvbi4KKwkJICovCisJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlz dCk7CisJCVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwg TlVMTCk7CiAJfQogCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAorCS8q IEFzc29jaWF0ZSBvYmplY3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLworCWlmIChzdG10LT5m b3JfYWxsX3RhYmxlcykKKwl7CisJCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJs aWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQuICovCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxs KCk7CisJfQorCiAJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soUHVibGljYXRpb25SZWxhdGlv bklkLCBwdWJvaWQsIDApOwogCiAJaWYgKHdhbF9sZXZlbCAhPSBXQUxfTEVWRUxfTE9HSUNBTCkK QEAgLTEyNDYsNiArMTI1MSwyNyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJs aWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSBDaGFyR2V0RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09M Uyk7CiAJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVl OwogCisJLyoKKwkgKiBMb2NrIHRoZSBwdWJsaWNhdGlvbiBzbyBub2JvZHkgZWxzZSBjYW4gZG8g YW55dGhpbmcgd2l0aCBpdC4gVGhpcworCSAqIHByZXZlbnRzIGNvbmN1cnJlbnQgcHVibGljYXRp b24gcGFyYW1ldGVyIGNoYW5nZXMsIGFkZC9kcm9wIHRhYmxlcyhzKQorCSAqIHRvIHRoZSBwdWJs aWNhdGlvbiBhbmQgYWRkL2Ryb3Agc2NoZW1hKHMpIHRvIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8K KwlMb2NrRGF0YWJhc2VPYmplY3QoUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJpZCwgMCwKKwkJ CQkJICAgQWNjZXNzRXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIEl0IGlzIHBvc3NpYmxlIHRo YXQgYnkgdGhlIHRpbWUgd2UgYWNxdWlyZSB0aGUgbG9jayBvbiBwdWJsaWNhdGlvbiwKKwkgKiBj b25jdXJyZW50IERETCBoYXMgcmVtb3ZlZCBpdC4gV2UgY2FuIHRlc3QgdGhpcyBieSBjaGVja2lu ZyB0aGUKKwkgKiBleGlzdGVuY2Ugb2YgcHVibGljYXRpb24uIFdlIGdldCB0aGUgdHVwbGUgYWdh aW4gdG8gYXZvaWQgdGhlIHJpc2sgb2YKKwkgKiBhbnkgcHVibGljYXRpb24gb3B0aW9uIGdldHRp bmcgY2hhbmdlZC4KKwkgKi8KKwl0dXAgPSBTZWFyY2hTeXNDYWNoZUNvcHkxKFBVQkxJQ0FUSU9O T0lELCBPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1 cCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpF Q1QpLAorCQkJCWVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJ CQkJICAgc3RtdC0+cHVibmFtZSkpOworCiAJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxz ZSAqLwogCWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCiAJewpAQCAtMTI4NCw2ICsxMzEwLDc5 IEBAIEFsdGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LAogCX0KIH0KIAorLyoKKyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlv biBoYXMgZGVmYXVsdCB2YWx1ZXMuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNh dGlvbiBzYXRpc2ZpZXMgYWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIGEpIFB1Ymxp Y2F0aW9uIGlzIG5vdCBzZXQgd2l0aCAiRk9SIEFMTCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlv biBpcyBoYXZpbmcgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQ dWJsaWNhdGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0 aW9uIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggcmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29sCitD aGVja1B1YmxpY2F0aW9uRGVmVmFsdWVzKEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJs aWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOwor CU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisK KwlpZiAocHViZm9ybS0+cHViYWxsdGFibGVzICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJ CXJldHVybiBmYWxzZTsKKworCWlmIChwdWJmb3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVCB8fAorCQlwdWJmb3JtLT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNU SU9OX1VQREFURSB8fAorCQlwdWJmb3JtLT5wdWJkZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9O X0RFTEVURSB8fAorCQlwdWJmb3JtLT5wdWJ0cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05f VFJVTkNBVEUgfHwKKwkJcHViZm9ybS0+cHVidmlhcm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9P VCkKKwkJcmV0dXJuIGZhbHNlOworCisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhw dWJpZCk7CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlw dWJvYmpzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCk7CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwly ZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIFNldCBwdWJsaWNhdGlvbiB0byBwdWJsaXNoIGFsbCB0 YWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKFJl bGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZv cm0gUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNU UlVDVCh0dXApOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQly ZXBsYWNlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19w dWJsaWNhdGlvbl07CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJQXNzZXJ0KCFwdWJm b3JtLT5wdWJhbGx0YWJsZXMpOworI2VuZGlmCisKKwkvKiBBZGQgQUxMIFRBQkxFUyB0byB0aGUg cHVibGljYXRpb24gcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVH RSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0 aGUgcHVibGljYXRpb24iKSk7CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7 CisJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2Vz LCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2VzKSk7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnICov CisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0 RGF0dW0odHJ1ZSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMg LSAxXSA9IHRydWU7CisKKwl0dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0 RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywKKwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRh dGUgdGhlIGNhdGFsb2cuICovCisJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxm LCB0dXApOworfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0by9mcm9tIHB1YmxpY2F0 aW9uLgogICovCkBAIC0xNTk2LDYgKzE2OTUsMjAgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCQlhY2xjaGVja19lcnJv cihBQ0xDSEVDS19OT1RfT1dORVIsIE9CSkVDVF9QVUJMSUNBVElPTiwKIAkJCQkJICAgc3RtdC0+ cHVibmFtZSk7CiAKKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJeworCQlib29sCQlpc2Rl ZmF1bHQgPSBDaGVja1B1YmxpY2F0aW9uRGVmVmFsdWVzKHR1cCk7CisKKwkJaWYgKCFpc2RlZmF1 bHQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpF Q1RfREVGSU5JVElPTiksCisJCQkJCWVycm1zZygiYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMg dGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFs dWVzIiksCisJCQkJCWVycmRldGFpbCgiQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0 IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4iKSwKKwkJCQkJZXJy aGludCgiVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGlj YXRpb24iKSk7CisKKwkJQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxlcyhyZWwsIHR1cCk7CisJ fQorCiAJaWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0 ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1 YmxpY2F0aW9uKQpAQCAtMTgwOCw2ICsxOTIxLDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJs ZXMpCiAJCXB1Yl9yZWwtPnJlbGF0aW9uID0gcmVsOwogCQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9 IHQtPndoZXJlQ2xhdXNlOwogCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJcHVi X3JlbC0+ZXhjZXB0ID0gdC0+ZXhjZXB0OwogCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVs KTsKIAkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBteXJlbGlkKTsKIApAQCAtMTg4MCw2 ICsxOTk0LDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAKIAkJCQkvKiBjaGlsZCBp bmhlcml0cyBjb2x1bW4gbGlzdCBmcm9tIHBhcmVudCAqLwogCQkJCXB1Yl9yZWwtPmNvbHVtbnMg PSB0LT5jb2x1bW5zOworCQkJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJCQlyZWxz ID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxp ZHMsIGNoaWxkcmVsaWQpOwogCkBAIC0xOTU1LDggKzIwNzAsNiBAQCBQdWJsaWNhdGlvbkFkZFRh YmxlcyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgaWZfbm90X2V4aXN0cywKIHsKIAlMaXN0 Q2VsbCAgICpsYzsKIAotCUFzc2VydCghc3RtdCB8fCAhc3RtdC0+Zm9yX2FsbF90YWJsZXMpOwot CiAJZm9yZWFjaChsYywgcmVscykKIAl7CiAJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHViX3JlbCA9 IChQdWJsaWNhdGlvblJlbEluZm8gKikgbGZpcnN0KGxjKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKaW5kZXggZWE5Njk0N2Q4MTMuLjhhODI2OGEwNWQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwpAQCAtODYyNCw3ICs4NjI0LDcgQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVkVGFi bGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkgKiBleHBy ZXNzaW9ucy4KIAkgKi8KIAlpZiAoYXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURf VklSVFVBTCAmJgotCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJl bCkpICE9IE5JTCkKKwkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChy ZWwpLCBmYWxzZSkgIT0gTklMKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIFNF VCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bnMgb24gdGFibGVzIHRoYXQgYXJlIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIpLApAQCAtMTg3OTQs NyArMTg3OTQsNyBAQCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShBbHRlcmVkVGFibGVJbmZvICp0 YWIsIFJlbGF0aW9uIHJlbCwgYm9vbCB0b0xvZ2dlZCkKIAkgKiBVTkxPR0dFRCwgYXMgVU5MT0dH RUQgdGFibGVzIGNhbid0IGJlIHB1Ymxpc2hlZC4KIAkgKi8KIAlpZiAoIXRvTG9nZ2VkICYmCi0J CUdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQor CQlsaXN0X2xlbmd0aChHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJl bCksIGZhbHNlKSkgPiAwKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVf T0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBj aGFuZ2UgdGFibGUgXCIlc1wiIHRvIHVubG9nZ2VkIGJlY2F1c2UgaXQgaXMgcGFydCBvZiBhIHB1 YmxpY2F0aW9uIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDk1MmU4ZTEwM2NmLi44OWFjMDQ5NWNlOCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC00NDYsNyArNDQ2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJ CQl0cmFuc2Zvcm1fZWxlbWVudF9saXN0IHRyYW5zZm9ybV90eXBlX2xpc3QKIAkJCQlUcmlnZ2Vy VHJhbnNpdGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qg b3B0X3ZhY3V1bV9yZWxhdGlvbl9saXN0Ci0JCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xp c3QKKwkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdCBleGNlcHRfcHViX29ial9saXN0 CiAKICV0eXBlIDxyZXRjbGF1c2U+IHJldHVybmluZ19jbGF1c2UKICV0eXBlIDxub2RlPglyZXR1 cm5pbmdfb3B0aW9uCkBAIC01ODUsNiArNTg1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK ICV0eXBlIDxub2RlPgl2YXJfdmFsdWUgem9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRo X2lkZW50IFJvbGVTcGVjIG9wdF9ncmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3Rz cGVjPiBQdWJsaWNhdGlvbk9ialNwZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IEV4 Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYwogCiAldHlwZSA8a2V5d29yZD4gdW5yZXNlcnZlZF9rZXl3 b3JkIHR5cGVfZnVuY19uYW1lX2tleXdvcmQKICV0eXBlIDxrZXl3b3JkPiBjb2xfbmFtZV9rZXl3 b3JkIHJlc2VydmVkX2tleXdvcmQKQEAgLTEwNjE0LDcgKzEwNjE1LDcgQEAgQWx0ZXJPd25lclN0 bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xl U3BlYwogICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBuYW1lIFtXSVRIIG9wdGlvbnNdCiAgKgot ICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBBTEwgVEFCTEVTIFtXSVRIIG9wdGlvbnNdCisgKiBD UkVBVEUgUFVCTElDQVRJT04gRk9SIEFMTCBUQUJMRVMgW0VYQ0VQVCBbVEFCTEVdIHRhYmxlIFss IC4uLl1dIFtXSVRIIG9wdGlvbnNdCiAgKgogICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBwdWJf b2JqIFssIC4uLl0gW1dJVEggb3B0aW9uc10KICAqCkBAIC0xMDYzNCwxMiArMTA2MzUsMTMgQEAg Q3JlYXRlUHVibGljYXRpb25TdG10OgogCQkJCQluLT5vcHRpb25zID0gJDQ7CiAJCQkJCSQkID0g KE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwg VEFCTEVTIG9wdF9kZWZpbml0aW9uCisJCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBB TEwgVEFCTEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3Qgb3B0X2RlZmluaXRpb24KIAkJCQl7CiAJCQkJ CUNyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3Rt dCk7CiAKIAkJCQkJbi0+cHVibmFtZSA9ICQzOwotCQkJCQluLT5vcHRpb25zID0gJDc7CisJCQkJ CW4tPm9wdGlvbnMgPSAkODsKKwkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopJDc7CiAJCQkJ CW4tPmZvcl9hbGxfdGFibGVzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0K QEAgLTEwNjc3LDYgKzEwNjc5LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVi dGFibGUtPnJlbGF0aW9uID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwog CQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5sb2NhdGlvbiA9 IEAxOwogCQkJCX0KIAkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCiAJCQkJewpAQCAtMTA3 NTIsNiArMTA3NTUsMjUgQEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKIAkJCQkJ eyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQogCTsKIAorRXhjZXB0UHVibGljYXRpb25PYmpTcGVj OgorCQkJIHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRp b25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9FWENFUFRf VEFCTEU7CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOwor CQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVs YXRpb24gPSAkMTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQorCTsKKworZXhjZXB0 X3B1Yl9vYmpfbGlzdDoJRVhDRVBUIG9wdF90YWJsZSBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMK KwkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDMpOyB9CisJCQl8IGV4Y2VwdF9wdWJfb2JqX2xpc3Qg JywnIEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMp OyB9CisJCQl8ICAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJOworCiAvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCAoIG9wdGlv bnMgKQpAQCAtMTA3NjQsNiArMTA3ODYsOCBAQCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2Jq U3BlYwogICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKICAqCisgKiBBTFRFUiBQ VUJMSUNBVElPTiBuYW1lIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBbVEFCTEVdIHRhYmxlX25hbWUg WywgLi4uXQorICoKICAqIHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9u YW1lIFssIC4uLl0KQEAgLTEwNzkwLDYgKzEwODE0LDE1IEBAIEFsdGVyUHVibGljYXRpb25TdG10 OgogCQkJCQluLT5hY3Rpb24gPSBBUF9BZGRPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERF9QIEFMTCBUQUJMRVMgZXhj ZXB0X3B1Yl9vYmpfbGlzdAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBt YWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJ CQkJbi0+cHVib2JqZWN0cyA9ICQ3OworCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CisJ CQkJCW4tPmFjdGlvbiA9IEFQX0FkZE9iamVjdHM7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KIAkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29ial9saXN0CiAJCQkJewog CQkJCQlBbHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25T dG10KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0 cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4 IDY5M2E3NjZlNmQ3Li41NTEyYjRjYmE3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9w Z291dHB1dC9wZ291dHB1dC5jCkBAIC0yMDYzLDcgKzIwNjMsOCBAQCBnZXRfcmVsX3N5bmNfZW50 cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAlpZiAoIWVudHJ5LT5y ZXBsaWNhdGVfdmFsaWQpCiAJewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNl KHJlbGlkKTsKLQkJTGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVs aWQpOworCQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwg ZmFsc2UpOworCQlMaXN0CSAgICpleGNlcHRUYWJsZVB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGlj YXRpb25zKHJlbGlkLCB0cnVlKTsKIAogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9j ayBvbiB0aGUgbmFtZXNwYWNlIHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZApAQCAtMjE3NCwyMiAr MjE3NSw2IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9u IHJlbGF0aW9uKQogCQkJT2lkCQkJcHViX3JlbGlkID0gcmVsaWQ7CiAJCQlpbnQJCQlhbmNlc3Rv cl9sZXZlbCA9IDA7CiAKLQkJCS8qCi0JCQkgKiBJZiB0aGlzIGlzIGEgRk9SIEFMTCBUQUJMRVMg cHVibGljYXRpb24sIHBpY2sgdGhlIHBhcnRpdGlvbgotCQkJICogcm9vdCBhbmQgc2V0IHRoZSBh bmNlc3RvciBsZXZlbCBhY2NvcmRpbmdseS4KLQkJCSAqLwotCQkJaWYgKHB1Yi0+YWxsdGFibGVz KQotCQkJewotCQkJCXB1Ymxpc2ggPSB0cnVlOwotCQkJCWlmIChwdWItPnB1YnZpYXJvb3QgJiYg YW1fcGFydGl0aW9uKQotCQkJCXsKLQkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRp dGlvbl9hbmNlc3RvcnMocmVsaWQpOwotCi0JCQkJCXB1Yl9yZWxpZCA9IGxsYXN0X29pZChhbmNl c3RvcnMpOwotCQkJCQlhbmNlc3Rvcl9sZXZlbCA9IGxpc3RfbGVuZ3RoKGFuY2VzdG9ycyk7Ci0J CQkJfQotCQkJfQotCiAJCQlpZiAoIXB1Ymxpc2gpCiAJCQl7CiAJCQkJYm9vbAkJYW5jZXN0b3Jf cHVibGlzaGVkID0gZmFsc2U7CkBAIC0yMjA4LDcgKzIxOTMsOCBAQCBnZXRfcmVsX3N5bmNfZW50 cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCQlhbmNlc3Rv ciA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsCiAJCQkJCQkJCQkJ CQkJCQkgICBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwpOworCQkJCQkJCQkJ CQkJCQkJICAgJmxldmVsLAorCQkJCQkJCQkJCQkJCQkJICAgcHViLT5hbGx0YWJsZXMpOwogCiAJ CQkJCWlmIChhbmNlc3RvciAhPSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0yMjIzLDYgKzIyMDks OCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxh dGlvbikKIAogCQkJCWlmIChsaXN0X21lbWJlcl9vaWQocHViaWRzLCBwdWItPm9pZCkgfHwKIAkJ CQkJbGlzdF9tZW1iZXJfb2lkKHNjaGVtYVB1YmlkcywgcHViLT5vaWQpIHx8CisJCQkJCShwdWIt PmFsbHRhYmxlcyAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRUYWJsZVB1Ymlkcywg cHViLT5vaWQpKSB8fAogCQkJCQlhbmNlc3Rvcl9wdWJsaXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0 cnVlOwogCQkJfQpAQCAtMjMwMSw2ICsyMjg5LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0 cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7 CiAJCWxpc3RfZnJlZShzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoZXhjZXB0VGFibGVQdWJp ZHMpOwogCQlsaXN0X2ZyZWUocmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0 ZV92YWxpZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxj YWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA1NTliYTlj ZGIyYy4uYmZmZGFiMmFiNjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Jl bGNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTc5 NCw2ICs1Nzk0LDggQEAgdm9pZAogUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlv biByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9p ZHM7CisJTGlzdAkgICAqYWxsdGFibGVzcHVib2lkczsKKwlMaXN0CSAgICpleGNlcHRwdWJvaWRz ID0gTklMOwogCUxpc3RDZWxsICAgKmxjOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJ CXNjaGVtYWlkOwpAQCAtNTgzMSw3ICs1ODMzLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9u RGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRl c2MtPmdlbmNvbHNfdmFsaWRfZm9yX2RlbGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVi bGljYXRpb24gbWVtYmVyc2hpcCBpbmZvLiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1Ymxp Y2F0aW9ucyhyZWxpZCk7CisJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlk LCBmYWxzZSk7CiAJc2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJ cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGlj YXRpb25zKHNjaGVtYWlkKSk7CiAKQEAgLTU4NDUsMTQgKzU4NDcsMTkgQEAgUmVsYXRpb25CdWls ZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJk ZXNjKQogCQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9 IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9u UHVibGljYXRpb25zKGFuY2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhhbmNlc3RvciwgZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2Uo YW5jZXN0b3IpOwogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywK IAkJCQkJCQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0 cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJ CQkJCSAgIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJCX0KIAl9 Ci0JcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVz UHVibGljYXRpb25zKCkpOwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxlc1B1Ymxp Y2F0aW9ucygpOworCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCisJ CQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJCQkJCQkJ CQkJCQkgZXhjZXB0cHVib2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewogCQlPaWQJ CQlwdWJpZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTg4Myw3ICs1ODkwLDcgQEAgUmVsYXRpb25C dWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpw dWJkZXNjKQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1 YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFpbnNfaW52 YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJICAgcHVi Zm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCwgcHVi Zm9ybS0+cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJ CQlwdWJkZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBAIC01OTAxLDYgKzU5MDgs NyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJs aWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCQlwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHVi aWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCiAJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCwK IAkJCQkJCQkJCQlwdWJmb3JtLT5wdWJnZW5jb2xzLAorCQkJCQkJCQkJCXB1YmZvcm0tPnB1YmFs bHRhYmxlcywKIAkJCQkJCQkJCQkmaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQkJCQkmaW52 YWxpZF9nZW5fY29sKSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggMzc0MzJlNjZlZmQuLjkyZGI1Y2E4 ZDk3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE4Myw2ICsxODMsOCBAQCBzdGF0aWMgU2ltcGxlT2lkTGlz dCBleHRlbnNpb25faW5jbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZVN0 cmluZ0xpc3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0dGVybnMgPSB7TlVMTCwgTlVMTH07CiBzdGF0 aWMgU2ltcGxlT2lkTGlzdCBleHRlbnNpb25fZXhjbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9Owog CitzdGF0aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRpbmZvID0ge05VTEwsIE5VTEx9OworCiBzdGF0 aWMgY29uc3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJZCA9IHswLCAwfTsKIAogLyogb3ZlcnJpZGUg Zm9yIHN0YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0cyBzZXR0aW5nICovCkBAIC00NTEwLDggKzQ1 MTIsMzQgQEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9u SW5mbyAqcHViaW5mbykKIAkJCQkJICBxcHVibmFtZSk7CiAKIAlpZiAocHViaW5mby0+cHViYWxs dGFibGVzKQorCXsKKwkJU2ltcGxlUHRyTGlzdENlbGwgKmNlbGw7CisKIAkJYXBwZW5kUFFFeHBC dWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCQkvKiBJbmNsdWRlIGV4Y2Vw dGlvbiB0YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICovCisJCWZv ciAoY2VsbCA9IGV4Y2VwdGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsK KwkJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJbmZvICop IGNlbGwtPnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0g cHVicmluZm8tPnB1YmxpY2F0aW9uKQorCQkJeworCQkJCXRiaW5mbyA9IHB1YnJpbmZvLT5wdWJ0 YWJsZTsKKworCQkJCWlmIChmaXJzdCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KHF1ZXJ5LCAiIEVYQ0VQVCBUQUJMRSIpOworCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCX0KKwkJ CQllbHNlCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCIpOworCQkJCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OTFkgJXMiLCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0Ymlu Zm8pKTsKKwkJCX0KKwkJfQorCX0KKworCWZpcnN0ID0gdHJ1ZTsKIAlhcHBlbmRQUUV4cEJ1ZmZl clN0cihxdWVyeSwgIiBXSVRIIChwdWJsaXNoID0gJyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNl cnQpCiAJewpAQCAtNDY3Nyw2ICs0NzA1LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3By cmVsaWQ7CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9wcmF0dHJzOworCWludAkJCWlf cHJleGNlcHQ7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJCW50dXBzOwpAQCAtNDY4OCw4ICs0NzE3 LDE3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0Ymxp bmZvW10sIGludCBudW1UYWJsZXMpCiAKIAkvKiBDb2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1i ZXJzaGlwIGluZm8uICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCXsK KwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQs IG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxk IGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQlpZiAoZm91dC0+cmVt b3RlVmVyc2lvbiA+PSAxODAwMDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBw cmV4Y2VwdCxcbiIpOworCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBm YWxzZSBBUyBwcmV4Y2VwdCxcbiIpOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAot CQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJ CQkgInBnX2NhdGFsb2cucGdfZ2V0X2V4cHIocHJxdWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWws ICIKIAkJCQkJCQkgIihDQVNFXG4iCiAJCQkJCQkJICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1Qg TlVMTCBUSEVOXG4iCkBAIC00NzAwLDYgKzQ3MzgsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhB cmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJ CSAiICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJz W3NdKVxuIgogCQkJCQkJCSAiICBFTFNFIE5VTEwgRU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZS T00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBw cnB1YmlkLCBwcnJlbGlkLCAiCkBAIC00NzE1LDYgKzQ3NTQsNyBAQCBnZXRQdWJsaWNhdGlvblRh YmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQog CWlfcHJyZWxpZCA9IFBRZm51bWJlcihyZXMsICJwcnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQ UWZudW1iZXIocmVzLCAicHJyZWxxdWFsIik7CiAJaV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywg InByYXR0cnMiKTsKKwlpX3ByZXhjZXB0ID0gUFFmbnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAK IAkvKiB0aGlzIGFsbG9jYXRpb24gbWF5IGJlIG1vcmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmlu Zm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00 NzI2LDYgKzQ3NjYsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJs ZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lk KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BycmVsaWQpKTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJp bmZvOwogCQlUYWJsZUluZm8gICp0YmluZm87CisJCWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3Ry ZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ByZXhjZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3Jl IGFueSBlbnRyaWVzIGZvciB3aGljaCB3ZSBhcmVuJ3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhl CkBAIC00NzM5LDcgKzQ3ODAsMTEgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJ CS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0J CXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0 cmNtcChwcmV4Y2VwdCwgImYiKSA9PSAwKQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0g RE9fUFVCTElDQVRJT05fUkVMOworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUg PSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOworCiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQu dGFibGVvaWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJ CXB1YnJpbmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBp X29pZCkpOwpAQCAtNDc4MCw2ICs0ODI1LDkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRl IHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRp b25PYmplY3QoJihwdWJyaW5mb1tqXS5kb2JqKSwgZm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4 Y2VwdCwgInQiKSA9PSAwKQorCQkJc2ltcGxlX3B0cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywg JnB1YnJpbmZvW2pdKTsKKwogCQlqKys7CiAJfQogCkBAIC0xMTU0Miw2ICsxMTU5MCw5IEBAIGR1 bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJ Y2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWR1bXBQdWJsaWNhdGlvbihmb3V0LCAoY29uc3QgUHVi bGljYXRpb25JbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fUFVCTElDQVRJT05f RVhDRVBUX1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVtcGVkIGluIGR1bXBQdWJsaWNhdGlvbiAqLwor CQkJYnJlYWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJZHVtcFB1YmxpY2F0aW9u VGFibGUoZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFr OwpAQCAtMTk3ODEsNiArMTk4MzIsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJs ZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CiAJ CQljYXNlIERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElDQVRJT046CisJCQljYXNlIERPX1BV QkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWNh c2UgRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BOgogCQkJY2FzZSBET19TVUJTQ1JJUFRJ T046CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAppbmRleCA3NDE3ZWFiNmFlZi4uMDk2ZjI5MzQ2ZDggMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aApAQCAtODEsNiArODEsNyBAQCB0eXBlZGVmIGVudW0KIAlET19SRUZSRVNIX01BVFZJRVcsCiAJ RE9fUE9MSUNZLAogCURPX1BVQkxJQ0FUSU9OLAorCURPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUws CiAJRE9fUFVCTElDQVRJT05fUkVMLAogCURPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwK IAlET19SRUxfU1RBVFMsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0 LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMGIwOTc3Nzg4ZjEuLjU2 ZDY3NDBiOWVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC05Miw2ICs5Miw3IEBAIGVudW0g ZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9fRktfQ09OU1RSQUlOVCwKIAlQUklPX1BPTElD WSwKIAlQUklPX1BVQkxJQ0FUSU9OLAorCVBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlQ UklPX1BVQkxJQ0FUSU9OX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwK IAlQUklPX1NVQlNDUklQVElPTiwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50 IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19SRUZSRVNIX01BVFZJRVddID0gUFJJT19S RUZSRVNIX01BVFZJRVcsCiAJW0RPX1BPTElDWV0gPSBQUklPX1BPTElDWSwKIAlbRE9fUFVCTElD QVRJT05dID0gUFJJT19QVUJMSUNBVElPTiwKKwlbRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTF0g PSBQUklPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJW0RPX1BVQkxJQ0FUSU9OX1JFTF0gPSBQ UklPX1BVQkxJQ0FUSU9OX1JFTCwKIAlbRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BXSA9 IFBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVtET19SRUxfU1RBVFNdID0gUFJJ T19TVEFUSVNUSUNTX0RBVEFfREFUQSwKQEAgLTE0OTgsNiArMTUwMCwxMSBAQCBkZXNjcmliZUR1 bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUp CiAJCQkJCSAiUFVCTElDQVRJT04gKElEICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5kdW1wSWQs IG9iai0+Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENF UFRfUkVMOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIEVY Q0VQVCBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJ ZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCXNucHJp bnRmKGJ1ZiwgYnVmc2l6ZSwKIAkJCQkJICJQVUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1 KSIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDM4NmUyMWUwYzU5Li4xNTJmZDdmZjA4 NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTMyNzMsNiArMzI3MywyNiBAQCBteSAl dGVzdHMgPSAoCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAx LCB9LAogCX0sCiAKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYnID0+IHsKKwkJY3JlYXRlX29y ZGVyID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI2 IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBkdW1wX3Rlc3QudGVzdF90YWJsZTsnLAorCQlyZWdleHAg PT4gcXIvXgorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViNiBGT1IgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZSBXSVRIIChwdWJsaXNoID0gJ2luc2Vy dCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVm dWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKworCSdDUkVBVEUgUFVC TElDQVRJT04gcHViNycgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwg PT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIGR1bXBfdGVzdC50ZXN0X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNvbmRfdGFibGU7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBU QUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUsIE9OTFkgZHVtcF90 ZXN0LnRlc3Rfc2Vjb25kX3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRl bGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2Vj dGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3Vi MScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBT VUJTQ1JJUFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAyNGUwMTAwYzlmMC4uMmY2MWJlOWMxN2UgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCkBAIC0zMDM4LDE3ICszMDM4LDM2IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNv bnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxp ZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJCSAgIiAg ICAgICAgRUxTRSBOVUxMIEVORCkgIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVi bGljYXRpb24gcFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNh dGlvbl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9J TiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJ CSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKKwkJCQkJ CQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRc biIKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIsCisJCQkJCQkJCSAgb2lk LCBvaWQsIG9pZCk7CisKKwkJCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRv IDE5MDAwMCBsYXRlciBmb3IgUEcxOS4gKi8KKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAw MDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIgQU5EIE5PVCBwci5wcmV4Y2Vw dFxuIik7CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCQkgICJVTklPTlxu IgogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxu IgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgorCQkJ CQkJCQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGlj YXRpb24gcFxuIgotCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxv Zy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgotCQkJCQkJCQkgICJPUkRFUiBC WSAxOyIsCi0JCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkKTsKKwkJCQkJCQkJICAiV0hFUkUg cC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUo JyVzJylcbiIsCisJCQkJCQkJCSAgb2lkKTsKKworCQkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxk IGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQkJCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE4MDAwMCkKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJ CSAgIiAgICAgQU5EIE5PVCBFWElTVFMgKFxuIgorCQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgor CQkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJ CQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgorCQkJCQkJCQkJICAi CQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVs aWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4iLAorCQkJCQkJCQkJICBvaWQpOwor CisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDE7Iik7CiAJCQl9CiAJ CQllbHNlCiAJCQl7CkBAIC02NjkyLDggKzY3MTEsMTMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMo Y29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgICAgIHBnX2NhdGFsb2cucGdfcHVibGlj YXRpb25fcmVsIHByXG4iCiAJCQkJCQkJICAiV0hFUkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZFxu IgogCQkJCQkJCSAgIiAgQU5EIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCSAgIiAgQU5E IHByLnBycHViaWQgPSAnJXMnXG4iCi0JCQkJCQkJICAiT1JERVIgQlkgMSwyIiwgcHViaWQpOwor CQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iLCBwdWJpZCk7CisKKwkJCS8qIEZJ WE1FOiAxODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAq LworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVy KCZidWYsICIgIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLCAiT1JERVIgQlkgMSwyIik7CiAJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25E ZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFsc2UsICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3Jl dHVybjsKIApAQCAtNjcxMSw2ICs2NzM1LDI0IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0 IGNoYXIgKnBhdHRlcm4pCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVs c2UKKwkJeworCQkJLyogRklYTUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAg bGF0ZXIgZm9yIFBHMTkuICovCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJCQl7 CisJCQkJLyogR2V0IHRoZSBleGNsdWRlZCB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGlj YXRpb24gKi8KKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1Qg Y29uY2F0KGMucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgor CQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAg IEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJl bGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAg IiAgQU5EIHByLnByZXhjZXB0XG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJ CQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVz OiIpLAorCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCQlnb3RvIGVycm9yX3JldHVybjsK KwkJCX0KKwkJfQogCiAJCXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwg cHNldC5sb2dmaWxlKTsKIAkJcHJpbnRUYWJsZUNsZWFudXAoJmNvbnQpOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jCmluZGV4IGQ1OWVkNWYzZmQwLi5iZjNiMGViMzFjMSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu aW4uYwpAQCAtMjI0NSwxMSArMjI0NSwxNiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0 dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVO QU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBB REQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55 LCAiQUREIikpCi0JCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsK KwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxF Iik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwg IkFERCIsICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIp OwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJB RER8U0VUIiwgIlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX3RhYmxlcyk7Ci0JZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKLQkJCSBlbmRzX3dpdGgo cHJldl93ZCwgJywnKSkKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55LCAiQUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpCisJ CUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJ ZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJB RER8U0VUIiwgIlRBQkxFIikgJiYgZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRF X1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAo SGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxM IiwgIlRBQkxFUyIsICJFWENFUFQiLCAiVEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywn KSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVz KTsKIAogCS8qCkBAIC0zNTM2LDcgKzM1NDEsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBN YXRjaEFueSwgIkZPUiIsICJBTEwiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIik7CiAJZWxz ZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAi QUxMIiwgIlRBQkxFUyIpKQotCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKKwkJQ09NUExFVEVf V0lUSCgiRVhDRVBUIFRBQkxFIiwgIldJVEggKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVU RV9XSVRIKCJJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRo KHByZXZfd2QsICcsJykpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggNDhj N2QxYTg2MTUuLjMzYjc3MTk5MGJkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5o CkBAIC0xMzksMTEgKzEzOSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblJlbEluZm8K IAlSZWxhdGlvbglyZWxhdGlvbjsKIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0CSAgICpj b2x1bW5zOworCWJvb2wJCWV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiBleHRlcm4g UHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRp b24gKkdldFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2lu Z19vayk7Ci1leHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsK K2V4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhj ZXB0X2ZsYWcpOwogCiAvKi0tLS0tLS0tLQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBwdWJfcGFy dG9wdCBwYXJhbWV0ZXIgb2YgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoKSwKQEAgLTE2Myw3ICsx NjQsNyBAQCB0eXBlZGVmIGVudW0gUHVibGljYXRpb25QYXJ0T3B0CiAKIGV4dGVybiBMaXN0ICpH ZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJf cGFydG9wdCk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpOwot ZXh0ZXJuIExpc3QgKkdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlh cm9vdCk7CitleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lk IHB1YmlkLCBib29sIHB1YnZpYXJvb3QpOwogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uU2No ZW1hcyhPaWQgcHViaWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQg c2NoZW1haWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9p ZCBzY2hlbWFpZCwKQEAgLTE3NCw3ICsxNzUsNyBAQCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0 aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwKIAkJCQkJCQkJCQkJUHVibGljYXRpb25Q YXJ0T3B0IHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJCQlPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlH ZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9y cywKLQkJCQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCk7CisJCQkJCQkJCQkJCWludCAqYW5j ZXN0b3JfbGV2ZWwsIGJvb2wgcHViYWxsdGFibGVzKTsKIAogZXh0ZXJuIGJvb2wgaXNfcHVibGlz aGFibGVfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJs aWNhdGlvbihPaWQgcHViaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbl9yZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVs LmgKaW5kZXggOTJjYzM2ZGZkZjYuLmU3ZDdmM2JhODVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHVibGljYXRpb25fcmVsLmgKQEAgLTMxLDYgKzMxLDcgQEAgQ0FUQUxPRyhwZ19wdWJsaWNh dGlvbl9yZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8q IG9pZCAqLwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9p ZCBvZiB0aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xh c3MpOwkvKiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RFRkFV TFQoZik7CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiAKICNpZmRlZglDQVRBTE9HX1ZBUkxF TgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJl ZSBwcnF1YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNh dGlvbmNtZHMuaAppbmRleCBmOTBjZjFlZjg5Ni4uMGFkNWQyODc1NGQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCkBAIC0zMiwxMCArMzIsMTEgQEAgZXh0ZXJuIE9iamVj dEFkZHJlc3MgQWx0ZXJQdWJsaWNhdGlvbk93bmVyKGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuZXdP d25lcklkKTsKIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb25Pd25lcl9vaWQoT2lkIHB1Ymlk LCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxz KExpc3QgKnJlbGlkcyk7CiBleHRlcm4gYm9vbCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1 bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBMaXN0ICphbmNl c3RvcnMsIGJvb2wgcHVidmlhcm9vdCk7CisJCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBi b29sIHB1YnZpYXJvb3QsCisJCQkJCQkJCQkJICAgYm9vbCBwdWJhbGx0YWJsZXMpOwogZXh0ZXJu IGJvb2wgcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVs YXRpb24sCiAJCQkJCQkJCQkJTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3QsCi0JCQkJ CQkJCQkJY2hhciBwdWJnZW5jb2xzX3R5cGUsCisJCQkJCQkJCQkJY2hhciBwdWJnZW5jb2xzX3R5 cGUsIGJvb2wgcHViYWxsdGFibGVzLAogCQkJCQkJCQkJCWJvb2wgKmludmFsaWRfY29sdW1uX2xp c3QsCiAJCQkJCQkJCQkJYm9vbCAqaW52YWxpZF9nZW5fY29sKTsKIGV4dGVybiB2b2lkIEludmFs aWRhdGVQdWJSZWxTeW5jQ2FjaGUoT2lkIHB1YmlkLCBib29sIHB1YmFsbHRhYmxlcyk7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKaW5kZXggNzI4MGU5ODM2Y2YuLjYxYTBiMmNjZjM4IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCkBAIC00MjM1LDYgKzQyMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNh dGlvblRhYmxlCiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBiZSBwdWJs aXNoZWQgKi8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KIAlM aXN0CSAgICpjb2x1bW5zOwkJLyogTGlzdCBvZiBjb2x1bW5zIGluIGEgcHVibGljYXRpb24gdGFi bGUgKi8KKwlib29sCQlleGNlcHQ7CQkJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KIH0gUHVi bGljYXRpb25UYWJsZTsKIAogLyoKQEAgLTQyNDMsNiArNDI0NCw3IEBAIHR5cGVkZWYgc3RydWN0 IFB1YmxpY2F0aW9uVGFibGUKIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvbk9ialNwZWNUeXBlCiB7 CiAJUFVCTElDQVRJT05PQkpfVEFCTEUsCQkvKiBBIHRhYmxlICovCisJUFVCTElDQVRJT05PQkpf RVhDRVBUX1RBQkxFLAkvKiBBIHRhYmxlIHRvIGJlIGV4Y2x1ZGVkICovCiAJUFVCTElDQVRJT05P QkpfVEFCTEVTX0lOX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBzY2hlbWEgKi8KIAlQVUJMSUNB VElPTk9CSl9UQUJMRVNfSU5fQ1VSX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBmaXJzdCBlbGVt ZW50IG9mCiAJCQkJCQkJCQkJCSAqIHNlYXJjaF9wYXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IGIyZmZlMGE4YzIwLi41ZDAyNTMyODcwNCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIwOSwxMyArMjA5 LDM3IEBAIE5vdC1udWxsIGNvbnN0cmFpbnRzOgogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBu b25lICAgICAgICAgICAgICB8IGYKICgxIHJvdykKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMg PSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2Vw dHRhYmxlIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJf dGJsMjsKKy0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IHRlc3RwdWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitcZFJwKyB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoK KyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMiIKKwor XGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0 YWJsZTEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitF eGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9QIFRBQkxFIHRl c3RwdWJfdGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3Rw dWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOwor RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwg dGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxs dGFibGVzX2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBD UkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90 YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21l c3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUg dGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZ IHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxF UyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2 IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCkBAIC0yMzQsOCAr MjU4LDI1IEBAIFRhYmxlczoKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKIAor XGRScCsgdGVzdHB1YjUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5l cmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25l ICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3Ri bDMiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDNhIgorCitcZFJwKyB0ZXN0cHViNgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWI2CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhj ZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKwogRFJPUCBUQUJMRSB0ZXN0 cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0 cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHViNSwgdGVz dHB1YjY7CiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQ7 CkBAIC0xOTI2LDkgKzE5NjcsMTUgQEAgRFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9y IEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENS RUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEu dGJsMiAoYSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRf bWluX21lc3NhZ2VzOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJM RVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwg VEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRB QkxFUyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9u IHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJl IHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAg VXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24K IC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHVi X3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTk0NSw3ICsxOTkyLDI0IEBAIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUg ICAgICAgICAgICAgIHwgZgogKDEgcm93KQogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVz ZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsK K1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3NjaDEu dGJsMSIKKyAgICAicHViX3NjaDEudGJsMiIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBSRVNFVDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgVEFCTEUnIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyBy ZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFt ZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBh bmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZl cmlmeSB0aGF0IHRhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9w cGVkIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTk2 MywxNyArMjAyNywyMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwog IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKICgxIHJvdykK IAotQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hF TUEgcHVibGljOwotRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiQUxMIgotTElORSAx OiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIElOIFNDSEVN QSBwdWIuLi4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJs aWM7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hF TUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwg VEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRB QkxFUyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9u IHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJl IHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAg VXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24K IC0tIFZlcmlmeSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBh cmUgZHJvcHBlZCBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQK ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K ICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCi0oMSByb3cp CitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJsaWMiCiAKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CkBAIC0xOTg0LDYgKzIw NTEsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKICgxIHJvdykK IAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7Cist LSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9l cyBub3QgaGF2ZSBkZWZhdWx0CistLSB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAg YWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVs dCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcg c2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lh dGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhl IHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0 CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMjAwMSw2ICsyMDc0LDEyIEBA IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9P VCA9ICd0cnVlJyk7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklB X1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1 ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQg VEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMg dGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFs dWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRh Ymxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJM SUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhh dCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsg dGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTIwMzksOSArMjExOCwxMyBAQCBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCiBFUlJP UjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCistLSBWZXJpZnkgdGhh dCBvbmx5IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRv IEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgogU0VUIFJPTEUgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJM RSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEg cHViX3NjaDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogUkVTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDE1YjJiMWNm ZDI4Li5hZjMxYTIyMTRjYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAt MTA0LDIwICsxMDQsMzMgQEAgU0VMRUNUIHB1Ym5hbWUsIHB1YmFsbHRhYmxlcyBGUk9NIHBnX3B1 YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9mb3JhbGwKIFxkKyB0ZXN0cHViX3Ri bDIKIFxkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCiAKK1NFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNl cHR0YWJsZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHVi X3RibDI7CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRBQkxFCitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQ VCB0ZXN0cHViX3RibDE7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworCitcZFJwKyB0ZXN0 cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNf ZXhjZXB0dGFibGUxCisKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwyOwotRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hl bWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9y YWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9m b3JfdGJsX3NjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUsIHRlc3RwdWJf Zm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAo YSBpbnQpOwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRl c3RwdWJfdGJsMyk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJs MzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFC TEUgT05MWSB0ZXN0cHViX3RibDM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsg dGVzdHB1YjMKIFxkUnArIHRlc3RwdWI0CitcZFJwKyB0ZXN0cHViNQorXGRScCsgdGVzdHB1YjYK IAogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FU SU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3Rw dWI0LCB0ZXN0cHViNSwgdGVzdHB1YjY7CiAKIC0tIFRlc3RzIGZvciBwYXJ0aXRpb25lZCB0YWJs ZXMKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKQEAgLTEyMjUsMjMgKzEyMzgs MzkgQEAgRFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9O IC4uLiBSRVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2No MS50YmwxIChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VU IGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCist LSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24K K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlz IHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldAogCistLSBTaG91bGQgd29yayBub3cgYWZ0 ZXIgcmVzZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEu dGJsMjsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBSRVNFVDsKKwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUg cHViX3NjaDEudGJsMTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIFRBQkxF JyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRB QkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgdGFibGVz IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQK IFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAKLUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBDYW4ndCBhZGQg RVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJM RSBwdWJfc2NoMS50YmwxOwogCiAtLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0 aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJf cmVzZXQKQEAgLTEyNTAsNiArMTI3OSwxMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElT SCA9ICcnKTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcg cGFyYW1ldGVyIGRvZXMgbm90IGhhdmUgZGVmYXVsdAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRi bDE7CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnAr IHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBA IC0xMjU3LDYgKzEyOTAsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNF VDsKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BB UlRJVElPTl9ST09UID0gJ3RydWUnKTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVu ICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90CistLSBoYXZl IGRlZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBU QUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJM SVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHVi X3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTI3Mywx MCArMTMxMCwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIyOwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgor CistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CiBTRVQgUk9MRSByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiAKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsK IERST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERS T1AgU0NIRU1BIHB1Yl9zY2gxOwogCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL21lc29uLmJ1aWxkCmluZGV4IDU4NmZmYmE0MzRlLi5lOGExMTdmMzQyMSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi9tZXNvbi5idWlsZApAQCAtNDIsNiArNDIsNyBAQCB0ZXN0cyArPSB7CiAgICAg ICAndC8wMzNfcnVuX2FzX3RhYmxlX293bmVyLnBsJywKICAgICAgICd0LzAzNF90ZW1wb3JhbC5w bCcsCiAgICAgICAndC8wMzVfY29uZmxpY3RzLnBsJywKKyAgICAgICd0LzAzNl9yZXBfY2hhbmdl c19leGNlcHRfdGFibGUucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAgIF0sCiAgIH0s CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhj ZXB0X3RhYmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4 Y2VwdF90YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWQx MTUyODM4MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZf cmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0wLDAgKzEsODMgQEAKKworIyBDb3B5cmln aHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwor IyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25z Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJ bml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FM OjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0 KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7 CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3Rn cmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJl ci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVy LT5zdGFydDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQg dXNpbmcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFCisjIGNsYXVzZS4KKyMgQ3JlYXRlIHNj aGVtYXMgYW5kIHRhYmxlcyBvbiBwdWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSBzY2gxLnRhYjEgQVMgU0VMRUNUIGdl bmVyYXRlX3NlcmllcygxLDEwKSBBUyBhIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxKGEgaW50KSIpOworCisjIENyZWF0 ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQp Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJM RSBwdWJsaWMudGFiMSAoYSBpbnQpIik7CisKKyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgor bXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5h bWU9cG9zdGdyZXMnOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki Q1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBU QUJMRSBzY2gxLnRhYjEiCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICck cHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBX YWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53 YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2No ZW1hJyk7CisKKyMgQ2hlY2sgdGhlIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVk ZWQgdGFibGUKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIp OworaXMoJHJlc3VsdCwgcXEoMHx8KSwKKwknY2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRh IGNvcGllZCBmb3IgdGhlIGV4Y2x1ZGVkIHRhYmxlJyk7CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBh bmQgdmVyaWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0YSBpcyBub3QgcmVwbGljYXRlZAorJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIxIFZB TFVFUyhnZW5lcmF0ZV9zZXJpZXMoMTEsMjApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRf Zm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1h eChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxp Y2F0ZWQgaW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CisKKyMgQWx0ZXIgcHVibGljYXRpb24gdG8g ZXhjbHVkZSBkYXRhIGNoYW5nZXMgaW4gcHVibGljLnRhYjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1 YnNjcmliZXIgZG9lcyBub3QgZ2V0IHRoZSBjaGFuZ2VkIGRhdGEgZm9yIHRoaXMgdGFibGUuCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElP TiB0YXBfcHViX3NjaGVtYSBSRVNFVCIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgQUREIEFMTCBUQUJM RVMgRVhDRVBUIFRBQkxFIHNjaDEudGFiMSwgcHVibGljLnRhYjEiCispOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gcHVibGljLnRhYjEgVkFM VUVTKGdlbmVyYXRlX3NlcmllcygxLDEwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgo YSkgRlJPTSBwdWJsaWMudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJvd3Mg b24gc3Vic2NyaWJlciBjYXRjaHVwJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3Qn KTsKKyRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0g CjIuMzQuMQoK --0000000000003f1c9906374c5769--