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 1umH5w-00CnK6-Gm for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Aug 2025 19:25:09 +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 1umH5s-00HKM2-Ts for pgsql-hackers@arkaria.postgresql.org; Wed, 13 Aug 2025 19:25: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 1umH5r-00HKLu-LT for pgsql-hackers@lists.postgresql.org; Wed, 13 Aug 2025 19:25:04 +0000 Received: from mail-yb1-xb2f.google.com ([2607:f8b0:4864:20::b2f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1umH5c-000Pdu-1W for pgsql-hackers@lists.postgresql.org; Wed, 13 Aug 2025 19:25:02 +0000 Received: by mail-yb1-xb2f.google.com with SMTP id 3f1490d57ef6-e931c85710aso256807276.0 for ; Wed, 13 Aug 2025 12:24:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1755113087; x=1755717887; 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=BxKP6U06Y65/B62OfXdtDKB7wHsTKbe3mI80lICuspE=; b=cZRdAgUvnrUB69nRvRI6ECvSS7EbNFu3yfvFkmnOI3itXdVgNIoboavrqzffcalyjO oboled35lWVp9DzuoPneKLF2/jUKzIEWFPl1AFXrC8l2IvMV9ac1Ds2DHj55d+9hsXab Z/nJ/uV5XNY14L342ZBm0orriYhc1Lt2uEHXYp+S+YfRSRBMzrI2p0OmIM9er+05dbvL cOKF9XrC8pisXzfud1z8SuPwj7jiAA1Bxd96yOOx8kz3Eu/nrE+8qvnJSe274A+MNtHE 4GaPaCfRpibpX95MyZ2547HB/8VGzkTz+jikwtZKThLy3EtGLtYwx/AXhPCgRI8J21wK vgBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755113087; x=1755717887; 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=BxKP6U06Y65/B62OfXdtDKB7wHsTKbe3mI80lICuspE=; b=o/+Vc/tlBql6glkpmLIxCRqWVHPrWm7VsJZ4QF3byxIN4Vtg/weozAXsLyj6K4KUb3 52Z8GEeja883QPLH2AxS4kPVN4BJRWdLaKyWHiwvGLkoQaa9AR5/S1MrOiIy1+HqwCyA a/HtDjXpryCEfukfmfPYyi/GRrqwSd0qOdBBYYTbjt07nRt/yjFJvCCVLw0NNQrnDMSY qJgYeUo6jOTYoaT+TM7cvSIomZrBvCbVGmUVbdO56gxb8lbXwqcxxSlgO2yNc3vxPQw9 MD9Zr4LSG8HBSothG0ZuzgXrcmcaY/CZxvPopkgjdzI/GlCZJUj39PPRFs81JVuoPoAz 7Z0g== X-Forwarded-Encrypted: i=1; AJvYcCX9VxtZxAs/MR/eGa+mNYxRppQwrNW6QP5TKW76g3Rvk14U05Df81XeLy/C2qVVxAwabBVukxpJnJ2XFaAA@lists.postgresql.org X-Gm-Message-State: AOJu0YyPAT5IMDeUDC2GidZ1nxewnfddkoa5Rxal5fhYUyoheFuXscwX lkYGpSot1sgkw81y2d88XqlO0hSK7245TM0Csh85gW+oaCDIXyiX+qPyZJ4N8NNq0ZbXK+xvn74 2PDzohzkHCUpFp+Sh++DP5kEELRe8in8= X-Gm-Gg: ASbGnctjPwDqYt7rWVTKMqd2MGqQujMlbaxV7fqVhqCSEKaADl/a0QsQ8+n0HbZsuDb jKHtw9DGfaPQ0kbuXD55LtS7qAhvZ+TzzRD2ZDt+GC/51OuUMUutVYXCjEaGsnm9e+wZ9+pjpfc yUbrHRa01zewaj+Z6qPfJIhP0NOXFCedKA+KOXMTG6mZ/MSfAqt89zo3HhEpMs6imlCq+3hBh3q Ma/gCXqMYJrNM1dm9O3Oz69X78SGbbEvVLFI++Q X-Google-Smtp-Source: AGHT+IFD0DtGfAzy35IIp2pUqlC/VP4MDkondStzwDu8xUPw9KYtyG3/rbXHzelC4M/DBaOKwBvtiDHSjbl/9pCztlQ= X-Received: by 2002:a05:690c:4b93:b0:71a:41e2:b553 with SMTP id 00721157ae682-71d6358d882mr860167b3.26.1755113086995; Wed, 13 Aug 2025 12:24:46 -0700 (PDT) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> In-Reply-To: From: Pavel Stehule Date: Wed, 13 Aug 2025 21:24:09 +0200 X-Gm-Features: Ac12FXyLYVr2KVKIazE_3rEZjkZULIgd_2PNj1HkU9ZWmB0MvqtiL-lkxfPROfc Message-ID: Subject: Re: proposal: schema variables To: Bruce Momjian Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers , jian he , Alvaro Herrera , PegoraroF10 Content-Type: multipart/mixed; boundary="000000000000184a40063c441cb3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000184a40063c441cb3 Content-Type: multipart/alternative; boundary="000000000000184a3e063c441cb1" --000000000000184a3e063c441cb1 Content-Type: text/plain; charset="UTF-8" Hi fix regress tests after 71ea0d6795438f95f4ee6e35867058c44b270d51 Regards Pavel --000000000000184a3e063c441cb1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

fix regress tests after= =C2=A071ea0d6795438f95f4ee6e35867058c44b270d51

Reg= ards

Pavel
--000000000000184a3e063c441cb1-- --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0015-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250813-0015-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczig10 RnJvbSBkYTNkYTZjNmYxOGI1YTA2ZGE4MTE0NWZmNThkYTU4OGNkZDU0ZGQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMTVdIHBscGdzcWwgdGVzdHMKCnNldCBvZiBwbHBnc3FsIHJlbGF0ZWQgdGVzdHM6CgoqIGNo ZWNrIHNlc3Npb24gdmFyaWFibGVzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcyBhcmUgbm90IGluIGNv bGxpc2lvbiBldmVyCiogY2hlY2sgY29ycmVjdCBwbHBnc3FsIHBsYW4gY2FjaGUgaW52YWxpZGF0 aW9uIHdoZW4gc2Vzc2lvbiB2YXJpYWJsZSBpcyBkcm9wcGVkCiogY2hlY2sgc28gdGhlIHZhbHVl IG9mIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IGNvcnJ1cHRlZCwgd2hlbiB0aGUgdmFyaWFibGUg aXMKICBtb2RpZmllZCBpbnNpZGUgbmVzdGVkIGNhbGxlZCBmdW5jdGlvbnMKLS0tCiBzcmMvcGwv cGxwZ3NxbC9zcmMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCB8IDE5OCArKysrKysrKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAg MSArCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsICAgICAgfCAxMzcg KysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDMzOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3Bs cGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxw Z3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUK aW5kZXggNjNjYjk2ZmFlM2UuLmJiY2FlMjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3 ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9 IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9jYWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9s IFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3NxbF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3Fs X3JlY29yZCBwbHBnc3FsX3NpbXBsZSBwbHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3Ry YXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3Nx bF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQog CiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tleXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVz CiBUT09MU0RJUiA9ICQodG9wX3NyY2Rpcikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZGNlYzc4YzIzNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUub3V0CkBAIC0wLDAgKzEsMTk4IEBACistLSBjaGVjayBvZiBjb3JyZWN0IHBsYW4gY2Fj aGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7 CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMiBBUyBpbnRbXTsKKy0tIHBscGdzcWwg dmFyaWFibGVzIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGluIGNvbGxpc2lvbiBldmVy CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMV8wMSgp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUgcGxwZ3NxbF9zZXN2YXIwMSBpbnQ7CitCRUdJ TgorICBwbHBnc3FsX3Nlc3ZhcjAxIDo9IDEwMDsKKyAgTEVUIHBscGdzcWxfc2VzdmFyMDEgPSAx MDAwOworICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyOiAlLCBzZXNzaW9uIHZhcjogJScsCisg ICAgcGxwZ3NxbF9zZXN2YXIwMSwgVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCk7 CitOT1RJQ0U6ICBwbHBnc3FsIHZhcjogMTAwLCBzZXNzaW9uIHZhcjogMTAwMAorIHN2YXJ0ZXN0 X3BscGdzcWxfZnVuYzAxXzAxIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMw MV8wMigpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUgX19wbHBnc3FsX3Nlc3ZhcjAxIGlu dDsKK0JFR0lOCisgIF9fcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7CisgIExFVCBfX3BscGdzcWxf c2VzdmFyMDEgPSAxMDAwOworICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyOiAlLCBzZXNzaW9u IHZhcjogJScsCisgICAgX19wbHBnc3FsX3Nlc3ZhcjAxLCBWQVJJQUJMRShfX3BscGdzcWxfc2Vz dmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBmYWlsCitTRUxF Q1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDIoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJs ZSAiX19wbHBnc3FsX3Nlc3ZhcjAxIiBkb2Vzbid0IGV4aXN0CitMSU5FIDE6IExFVCBfX3BscGdz cWxfc2VzdmFyMDEgPSAxMDAwCisgICAgICAgICAgICBeCitRVUVSWTogIExFVCBfX3BscGdzcWxf c2VzdmFyMDEgPSAxMDAwCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gc3ZhcnRlc3RfcGxw Z3NxbF9mdW5jMDFfMDIoKSBsaW5lIDUgYXQgU1FMIHN0YXRlbWVudAorLS0gc2hvdWxkIGZhaWwK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAzKCkK K1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7Cisg IExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gMTAwMDsKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cjogJSwgc2Vzc2lvbiB2YXI6ICUnLAorICAgIHBscGdzcWxfc2VzdmFyMDEsIFZBUklBQkxFKHBs cGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0VSUk9SOiAgInBs cGdzcWxfc2VzdmFyMDEiIGlzIG5vdCBhIGtub3duIHZhcmlhYmxlCitMSU5FIDQ6ICAgcGxwZ3Nx bF9zZXN2YXIwMSA6PSAxMDA7CisgICAgICAgICAgXgorRFJPUCBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMV8wMSgpOworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMw MV8wMigpOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5j MDIoKQorUkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOwor QkVHSU4KKyAgTEVUIHBscGdzcWxfc2VzdmFyMDEgPSAxOworICB2W1ZBUklBQkxFKHBscGdzcWxf c2VzdmFyMDEpXSA9IDEwMDsKKyAgUkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxf c2VzdmFyMDIgPSB2OworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMltWQVJJQUJMRShwbHBnc3FsX3Nl c3ZhcjAxKV0gPSAtMTsKKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUocGxwZ3NxbF9zZXN2 YXIwMik7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAyKCk7CitOT1RJQ0U6ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHN2YXJ0ZXN0X3Bs cGdzcWxfZnVuYzAyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc2VzdmFyMDEsIHBscGdzcWxfc2VzdmFyMDI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBpbnRbXTsKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMigpOwor Tk9USUNFOiAgezEwMH0KK05PVElDRTogIHstMX0KKyBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBz dmFydGVzdF9wbHBnc3FsX2Z1bmMwMigpOworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAx LCBwbHBnc3FsX3Nlc3ZhcjAyOworLS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBzdmFydGVzdF9wbHBnc3FsX2luYyhpbnQpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAg TEVUIHBscGdzcWxfc2VzdmFyMDEgPSBDT0FMRVNDRShWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAx KSArICQxLCAkMSk7CisgIFJFVFVSTiBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7Cisg c3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEpOwor IHN2YXJ0ZXN0X3BscGdzcWxfaW5jIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAyCisoMSByb3cpCisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxKTsK KyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSkg RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAg ICAgICAgNQorICAgICAgICAgICAgICAgICAgICA2CisgICAgICAgICAgICAgICAgICAgIDcKKyAg ICAgICAgICAgICAgICAgICAgOAorICAgICAgICAgICAgICAgICAgICA5CisgICAgICAgICAgICAg ICAgICAgMTAKKyAgICAgICAgICAgICAgICAgICAxMQorICAgICAgICAgICAgICAgICAgIDEyCisg ICAgICAgICAgICAgICAgICAgMTMKKygxMCByb3dzKQorCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc2VzdmFyMDIgPSAwLjA7CitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhudW1lcmljKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAyID0gQ09BTEVTQ0Uo VkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMikgKyAkMSwgJDEpOworICBSRVRVUk4gVkFSSUFCTEUo cGxwZ3NxbF9zZXN2YXIwMik7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2 YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNU IHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDIKKygxIHJvdykKKworU0VM RUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDMKKygxIHJvdykKKwor U0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwx MCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICAgICAgNQorICAgICAgICAgICAgICAg ICAgICA2CisgICAgICAgICAgICAgICAgICAgIDcKKyAgICAgICAgICAgICAgICAgICAgOAorICAg ICAgICAgICAgICAgICAgICA5CisgICAgICAgICAgICAgICAgICAgMTAKKyAgICAgICAgICAgICAg ICAgICAxMQorICAgICAgICAgICAgICAgICAgIDEyCisgICAgICAgICAgICAgICAgICAgMTMKKygx MCByb3dzKQorCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc2VzdmFyMDEsIHBscGdzcWxfc2VzdmFy MDI7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKGludCk7CitEUk9QIEZVTkNU SU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKG51bWVyaWMpOworLS0gdGhlIHZhbHVlIHNob3VsZCBu b3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMyB0ZXh0Owor TEVUIHBscGdzcWxfc2VzdmFyMDMgPSAnYWJjJzsKK0NSRUFURSBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBzdmFy dGVzdF9wbHBnc3FsX2Z1bmNfbmVzdGVkKFZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDMpKTsKK0VO RAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3Fs X2Z1bmNfbmVzdGVkKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBs cGdzcWxfc2VzdmFyMDMgPSAnQk9PTSEnOworICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDMoKTsKKyBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBhYmMKKygxIHJvdykK KworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworRFJPUCBGVU5DVElP TiBzdmFydGVzdF9wbHBnc3FsX2Z1bmNfbmVzdGVkKHRleHQpOworRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3Nlc3ZhcjAzOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxk IGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCmluZGV4IDMzYzQ5YWMyNWQ5Li4xZDAx ZDFjMjYyOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCisrKyBi L3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZApAQCAtODgsNiArODgsNyBAQCB0ZXN0cyAr PSB7CiAgICAgICAncGxwZ3NxbF90cmFwJywKICAgICAgICdwbHBnc3FsX3RyaWdnZXInLAogICAg ICAgJ3BscGdzcWxfdmFycHJvcHMnLAorICAgICAgJ3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZScs CiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNWFiZjE4ZTNiYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv c3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKQEAgLTAsMCArMSwxMzcgQEAKKy0tIGNo ZWNrIG9mIGNvcnJlY3QgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAy IEFTIGludFtdOworCistLSBwbHBnc3FsIHZhcmlhYmxlcyBhbmQgc2Vzc2lvbiB2YXJpYWJsZXMg YXJlIG5vdCBpbiBjb2xsaXNpb24gZXZlcgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zh cnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKQorUkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJFIHBs cGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7Cisg IExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gMTAwMDsKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cjogJSwgc2Vzc2lvbiB2YXI6ICUnLAorICAgIHBscGdzcWxfc2VzdmFyMDEsIFZBUklBQkxFKHBs cGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIHN2 YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFS RSBfX3BscGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgX19wbHBnc3FsX3Nlc3ZhcjAxIDo9 IDEwMDsKKyAgTEVUIF9fcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7CisgIFJBSVNFIE5PVElDRSAn cGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBfX3BscGdzcWxfc2VzdmFyMDEs IFZBUklBQkxFKF9fcGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3Fs OworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAyKCk7 CisKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMV8wMygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIHBscGdzcWxf c2VzdmFyMDEgOj0gMTAwOworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7CisgIFJBSVNF IE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBwbHBnc3FsX3Nl c3ZhcjAxLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKTsKK0RS T1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDIoKTsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKQorUkVUVVJOUyB2b2lkIEFT ICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBscGdzcWxf c2VzdmFyMDEgPSAxOworICB2W1ZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpXSA9IDEwMDsKKyAg UkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIgPSB2OworICBMRVQg cGxwZ3NxbF9zZXN2YXIwMltWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKV0gPSAtMTsKKyAgUkFJ U0UgTk9USUNFICclJywgVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMik7CitFTkQ7CiskJCBMQU5H VUFHRSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsKKworRFJP UCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBpbnRbXTsKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAyKCk7 CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsKKworRFJPUCBWQVJJ QUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCistLSByZXR1cm5zIHVw ZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKKwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gQ09BTEVTQ0Uo VkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMSkgKyAkMSwgJDEpOworICBSRVRVUk4gVkFSSUFCTEUo cGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qg c3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7 CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CisKK1NFTEVDVCBzdmFydGVzdF9wbHBn c3FsX2luYygxKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc2VzdmFyMDIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc2VzdmFyMDIgPSAw LjA7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKG51 bWVyaWMpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIg PSBDT0FMRVNDRShWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKSArICQxLCAkMSk7CisgIFJFVFVS TiBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxLjApOworU0VMRUNUIHN2YXJ0ZXN0X3Bs cGdzcWxfaW5jKDEuMCk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsKKworU0VM RUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7 CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIwMjsKKwor RFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhpbnQpOworRFJPUCBGVU5DVElPTiBz dmFydGVzdF9wbHBnc3FsX2luYyhudW1lcmljKTsKKworLS0gdGhlIHZhbHVlIHNob3VsZCBub3Qg YmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMyB0ZXh0OworTEVU IHBscGdzcWxfc2VzdmFyMDMgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0ZXN0X3Bs cGdzcWxfZnVuYzAzKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIHN2YXJ0 ZXN0X3BscGdzcWxfZnVuY19uZXN0ZWQoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMykpOworRU5E CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3Nx bF9mdW5jX25lc3RlZCh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBw bHBnc3FsX3Nlc3ZhcjAzID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDMoKTsKKworRFJPUCBG VU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworRFJPUCBGVU5DVElPTiBzdmFydGVz dF9wbHBnc3FsX2Z1bmNfbmVzdGVkKHRleHQpOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc2Vz dmFyMDM7Ci0tIAoyLjUwLjEKCg== --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0013-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250813-0013-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczihd2 RnJvbSAwMjA2ODJmMWU3ZjVkMzljZWRhOTc3ODVkMWY4OWZjZTlhYTRiNzgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAyMDo0MTo1NyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MTVdIERJU0NBUkQgVkFSSUFCTEVTCgpJbXBsZW1lbnRhdGlvbiBvZiBESVNDQVJEIFZBUklBQkxF UyBjb21tYW5kcyBieSByZW1vdmluZyBoYXNoIHRhYmxlIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMK YW5kIHJlc2V0dGluZyByZWxhdGVkIG1lbW9yeSBjb250ZXh0LgotLS0KIGRvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8IDEzICsrKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMyICsrKysrKysrKystLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrCiBzcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlc19kbWwub3V0ICAgICAgICB8IDUwICsrKysrKysrKysrKysrKysrKysKIC4uLi9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8IDI0ICsrKysrKysrKwog MTEgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2Rpc2NhcmQuc2dtbAppbmRleCBiZjQ0YzUyM2NhYy4uNjFiOTY3ZjljOWIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAg PHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VR VUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFV RU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+CiAgPC9y ZWZzeW5vcHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5T IHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZB UklBQkxFUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFJlc2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlh YmxlCisgICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRl cmFsPk5VTEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlRF TVBPUkFSWTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAg PGxpc3RpdGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9ja19h bGwoKTsKIERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVFTkNFUzsK K0RJU0NBUkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAgPC9saXN0 aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGlzY2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDgxMzM5 YTc1YTUyLi41OTA0YTZjNDkxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlz Y2FyZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwpAQCAtMTgsNiArMTgs NyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGlz Y2FyZC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNp bmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9wb3J0YWwuaCIKQEAgLTQ4LDYg KzQ5LDEwIEBAIERpc2NhcmRDb21tYW5kKERpc2NhcmRTdG10ICpzdG10LCBib29sIGlzVG9wTGV2 ZWwpCiAJCQlSZXNldFRlbXBUYWJsZU5hbWVzcGFjZSgpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBE SVNDQVJEX1ZBUklBQkxFUzoKKwkJCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOworCQkJYnJlYWs7 CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRElTQ0FSRCB0YXJn ZXQ6ICVkIiwgc3RtdC0+dGFyZ2V0KTsKIAl9CkBAIC03NSw0ICs4MCw1IEBAIERpc2NhcmRBbGwo Ym9vbCBpc1RvcExldmVsKQogCVJlc2V0UGxhbkNhY2hlKCk7CiAJUmVzZXRUZW1wVGFibGVOYW1l c3BhY2UoKTsKIAlSZXNldFNlcXVlbmNlQ2FjaGVzKCk7CisJUmVzZXRTZXNzaW9uVmFyaWFibGVz KCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggOWE5Mjgx YWNkODMuLjEwZjliNWUyMDIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCkBAIC0xMDMsNyArMTAzLDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVt IGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBn X3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAot CUFzc2VydChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Yg c2Vzc2lvbiB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2Vp dmluZyBhbiBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJM RVMgXQorCSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICgh c2Vzc2lvbnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBu b3Qgc3BlY2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjU3LDgg KzY2Myw4IEBAIHBnX3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJCQkv KgogCQkJCSAqIEl0IGlzIGFsc28gcG9zc2libGUgdGhhdCBhIHZhcmlhYmxlIGhhcyBiZWVuIGRy b3BwZWQgYW5kCi0JCQkJICogc29tZW9uZSBjcmVhdGVkIGEgbmV3IHZhcmlhYmxlIHdpdGggdGhl IHNhbWUgb2JqZWN0IElELgotCQkJCSAqIFVzZSB0aGUgY2F0YWxvZyBpbmZvcm1hdGlvbiBvbmx5 IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgorCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBhIG5ldyB2 YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4gVXNlCisJCQkJICogdGhlIGNhdGFsb2cg aW5mb3JtYXRpb24gb25seSBpZiB0aGF0IGlzIG5vdCB0aGUgY2FzZS4KIAkJCQkgKi8KIAkJCQlp ZiAoc3Zhci0+Y3JlYXRlX2xzbiA9PSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuKQogCQkJCXsKQEAg LTcwMCwzICs3MDYsMjMgQEAgcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdfRlVOQ1RJT05fQVJHUykK IAogCXJldHVybiAoRGF0dW0pIDA7CiB9CisKKy8qCisgKiBGYXN0IGRyb3Agb2YgdGhlIGNvbXBs ZXRlIGNvbnRlbnQgb2YgdGhlIHNlc3Npb24gdmFyaWFibGVzIGhhc2ggdGFibGUsIGFuZAorICog Y2xlYW51cCBvZiBhbnkgbGlzdCB0aGF0IHdvdWxkbid0IGJlIHJlbGV2YW50IGFueW1vcmUuCisg KiBUaGlzIGlzIHVzZWQgYnkgdGhlIERJU0NBUkQgVkFSSUFCTEVTIChhbmQgRElTQ0FSRCBBTEwp IGNvbW1hbmQuCisgKi8KK3ZvaWQKK1Jlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKQoreworCS8q IGRlc3Ryb3kgaGFzaCB0YWJsZSBhbmQgcmVzZXQgcmVsYXRlZCBtZW1vcnkgY29udGV4dCAqLwor CWlmIChzZXNzaW9udmFycykKKwl7CisJCWhhc2hfZGVzdHJveShzZXNzaW9udmFycyk7CisJCXNl c3Npb252YXJzID0gTlVMTDsKKwl9CisKKwkvKiByZWxlYXNlIG1lbW9yeSBhbGxvY2F0ZWQgYnkg c2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlpZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAhPSBOVUxM KQorCQlNZW1vcnlDb250ZXh0UmVzZXQoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7Cit9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCBhODBiMDM1OGQ2Ny4uM2NjMmVhOTc4ZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjEx OSw3ICsyMTE5LDEzIEBAIERpc2NhcmRTdG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NF UVVFTkNFUzsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJ QUJMRVMKKwkJCQl7CisJCQkJCURpc2NhcmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQp OwogCisJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2Rl ICopIG47CisJCQkJfQogCQk7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGls aXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAzY2QxYjA4NzFmMC4uN2Ew ZDZlYTFkMDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0yOTUzLDYgKzI5NTMsOSBAQCBDcmVhdGVDb21t YW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCQljYXNlIERJU0NBUkRfU0VRVUVOQ0VTOgogCQkJ CQl0YWcgPSBDTURUQUdfRElTQ0FSRF9TRVFVRU5DRVM7CiAJCQkJCWJyZWFrOworCQkJCWNhc2Ug RElTQ0FSRF9WQVJJQUJMRVM6CisJCQkJCXRhZyA9IENNRFRBR19ESVNDQVJEX1ZBUklBQkxFUzsK KwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJ CQl9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggMWU3YzAzOTJjNDYuLjRlYzM4NGYzYTg4IDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC00MjA2LDcgKzQyMDYsNyBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAogLyogRElTQ0FSRCAqLwogCWVsc2UgaWYgKE1hdGNo ZXMoIkRJU0NBUkQiKSkKLQkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNF UyIsICJURU1QIik7CisJCUNPTVBMRVRFX1dJVEgoIkFMTCIsICJQTEFOUyIsICJTRVFVRU5DRVMi LCAiVEVNUCIsICJWQVJJQUJMRVMiKTsKIAogLyogRE8gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJE TyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o IGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDJlYmU4NDc3 Nzg5Li5hYzM2ZGZjYzE5YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu aApAQCAtMjksNCArMjksNiBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVWYXJpYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdAogZXh0ZXJuIHZvaWQg RXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxp c3RJbmZvIHBhcmFtcywKIAkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVy eUNvbXBsZXRpb24gKnFjKTsKIAorZXh0ZXJuIHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZv aWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA3NmZhNGEyOWRmMi4uYzlh YTA2NTQxMDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQxMDQsNiArNDEwNCw3IEBAIHR5 cGVkZWYgZW51bSBEaXNjYXJkTW9kZQogCURJU0NBUkRfUExBTlMsCiAJRElTQ0FSRF9TRVFVRU5D RVMsCiAJRElTQ0FSRF9URU1QLAorCURJU0NBUkRfVkFSSUFCTEVTLAogfSBEaXNjYXJkTW9kZTsK IAogdHlwZWRlZiBzdHJ1Y3QgRGlzY2FyZFN0bXQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggMjIw ODJjMzAwMDguLmJlZjBhYzI1MzMxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTM1LDYgKzEz NSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9BTEwsICJESVNDQVJEIEFMTCIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfUExBTlMsICJESVNDQVJE IFBMQU5TIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9T RVFVRU5DRVMsICJESVNDQVJEIFNFUVVFTkNFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0RJU0NBUkRfVEVNUCwgIkRJU0NBUkQgVEVNUCIsIGZhbHNlLCBmYWxzZSwg ZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTLCAiRElTQ0FSRCBWQVJJ QUJMRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ETywgIkRPIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVUSE9E LCAiRFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl c19kbWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19k bWwub3V0CmluZGV4IDY3Zjc4YTU0OGRjLi4yYmY3YmQyNzQ2NyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dApAQCAtNDY2LDMg KzQ2Niw1MyBAQCBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ3CiBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ4CiBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ5CiBEUk9QIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xl OworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9kbWxfZGlzY2FyZDsKK0NSRUFURSBWQVJJQUJMRSBz dmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCBBUyB2YXJjaGFyOworTEVUIHN2YXJ0ZXN0X2Rt bF9kaXNjYXJkLnNlc3ZhcjUwID0gJ0hlbGxvJzsKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9k bWxfZGlzY2FyZC5zZXN2YXI1MCk7Cisgc2VzdmFyNTAgCistLS0tLS0tLS0tCisgSGVsbG8KKygx IHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVS RSBzY2hlbWEgPSAnc3ZhcnRlc3RfZG1sX2Rpc2NhcmQnOworIGNvdW50IAorLS0tLS0tLQorICAg ICAxCisoMSByb3cpCisKK0RJU0NBUkQgQUxMOworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitT RUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTApOworIHNlc3ZhcjUw IAorLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitMRVQgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2Vz dmFyNTAgPSAnSGVsbG8nOworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQorCitESVNDQVJEIFZBUklB QkxFUzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291 bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0 X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsKKyBzZXN2YXI1MCAKKy0tLS0tLS0tLS0KKyAKKygxIHJv dykKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQgQ0FTQ0FERTsKK05PVElDRTog IGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWxfZGlzY2FyZC5z ZXN2YXI1MApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXNfZG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5z cWwKaW5kZXggMmM4ZDZjM2E0OTcuLjVhNzIxNzUwNDQ2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKQEAgLTM0OCwzICszNDgsMjcgQEAgU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7CiAKIERST1AgU0NIRU1BIHN2YXJ0 ZXN0X2RtbCBDQVNDQURFOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29u bHlfcm9sZTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9kbWxfZGlzY2FyZDsKKworQ1JFQVRF IFZBUklBQkxFIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwIEFTIHZhcmNoYXI7CitMRVQg c3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgPSAnSGVsbG8nOworU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsKKworU0VMRUNUIGNvdW50KCopIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZG1sX2Rpc2Nh cmQnOworCitESVNDQVJEIEFMTDsKKworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3Zh cjUwKTsKK0xFVCBzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCA9ICdIZWxsbyc7CisKK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0RJU0NBUkQgVkFS SUFCTEVTOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTApOworRFJPUCBT Q0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQgQ0FTQ0FERTsKLS0gCjIuNTAuMQoK --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250813-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczih21 RnJvbSA4MTczYzY2N2ZjZjAyNGVlNWZmZjFiYzVlZjJjOGEwZTZhYjg3ZGQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAyMjozMzoyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQv MTVdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBzaW52 YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhhc2gg dGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Igd3Jp dGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fubm90 IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVkIHdo ZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCB3 aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1NCArKysrKysrKysrKystCiBzcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDIgKwogLi4uL2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTEwICsrKysrKysrKwogc3JjL3Rl c3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29s YXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCAgICAgICAgfCAyMTQgKysrKysrKysrKysr KysrKysrCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbCAgICAgfCAx NTEgKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY4MyBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggZDhlZGU0ZmE4YzguLmM5NDExNDQzYzZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKICNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgpAQCAtMTU0LDcgKzE1NSw4IEBAIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogfQogCiAvKgotICogRHJvcCB2YXJpYWJsZSBieSBP SUQKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQgcmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNz aW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgogICovCiB2b2lkCiBEcm9wVmFyaWFibGVCeUlkKE9p ZCB2YXJpZCkKQEAgLTE3NCw0ICsxNzYsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBp ZiBuZWVkZWQgKi8KKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3ModmFyaWQpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDEwZjliNWUyMDIxLi4w Yjg4YzA2NzFhMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAt MTMsOCArMTMsOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgotCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFjY2Vz cy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCkBAIC03Niw2 ICs3NiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWlu X2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhp ZDsKIAorCS8qCisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0 IHRyYW5zYWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2Ug bmVlZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZh cmlhYmxlcyBkcm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRp b24gaXMgcm9sbGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9s eGlkOworCiAJLyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJl IG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVu IGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtOTIsNiArMTAw LDE3IEBAIHN0YXRpYyBIVEFCICpzZXNzaW9udmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9y IHNlc3Npb24gdmFyaWFibGVzICovCiAKIHN0YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1l bW9yeUNvbnRleHQgPSBOVUxMOwogCisvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEg c2ludmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsK KworLyoKKyAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90 IHJlbW92ZWQgaW1tZWRpYXRlbHkuICBXZSBkbworICogdGhhdCBpbiB0aGUgbmV4dCB0cmFuc2Fj dGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgKiAidmFsaWRh dGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2FpZCB2YWxp ZGF0aW9uLCBzbworICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCisg Ki8KK3N0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZhbGlkTG9j YWxUcmFuc2FjdGlvbklkOworCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24g dmFyaWFibGUgaW52YWxpZGF0aW9uLgogICovCkBAIC0xMjQsNiArMTQzLDM4IEBAIHBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFs dWUpCiAJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUgPT0gaGFzaHZhbHVl KQogCQl7CiAJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJbmVlZHNfdmFsaWRhdGlvbiA9 IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhlIGxvY2FsIG1lbW9yeSBjbGVh bnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisgKiBDYWxsZXIgc2hvdWxkIHRh a2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmlyc3QuCisgKi8KK3Zv aWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCit7CisJQXNzZXJ0 KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQpKTsKKworCWlmIChz ZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFyaWFibGUJc3ZhciA9IChTVmFy aWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCQkJCQkgICBI QVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7CisJCQkvKgorCQkJICogU2F2 ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQgdG8gbWFrZSBzdXJl IHdlCisJCQkgKiB3b24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgbG9jYWwgdmFyaWFibGUg c3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25fdmFyaWFibGVzKCkgd2hlbiB0 aGUgaW52YWxpZGF0aW9uIG1lc3NhZ2UKKwkJCSAqIGZyb20gRFJPUCBWQVJJQUJMRSBhcnJpdmVz LiAgQWZ0ZXIgYWxsLCB0aGUgdHJhbnNhY3Rpb24gY291bGQKKwkJCSAqIHN0aWxsIGJlIHJvbGxl ZCBiYWNrLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJc3Zhci0+ZHJv cF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CiAJCX0KIAl9CiB9CkBAIC0xNzcsNiArMjI4LDY3 IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCiAJcmV0dXJuIHJl c3VsdDsKIH0KIAorLyoKKyAqIENoZWNrIGFsbCBwb3RlbnRpYWxseSBpbnZhbGlkIHNlc3Npb24g dmFyaWFibGUgZGF0YSBpbiBsb2NhbCBtZW1vcnkgYW5kIGZyZWUKKyAqIHRoZSBtZW1vcnkgZm9y IGFsbCBpbnZhbGlkIG9uZXMuICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgYW55IHJl YWQgb3IKKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIEZyZWVpbmcgb2YgYSB2YXJp YWJsZSdzIG1lbW9yeSBpcyBwb3N0cG9uZWQgaWYKKyAqIHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBk cm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCBzaW5jZSB0aGF0CisgKiBvcGVyYXRp b24gY291bGQgc3RpbGwgYmUgcm9sbGVkIGJhY2suCisgKgorICogSXQgaXMgcG9zc2libGUgdGhh dCB3ZSByZWNlaXZlIGEgY2FjaGUgaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2hpbGUKKyAqIHJlbW92 ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkgaXMgZXhlY3V0aW5nLCBzbyB3ZSBjYW5ub3Qg Z3VhcmFudGVlIHRoYXQKKyAqIGFsbCBlbnRyaWVzIGluICJzZXNzaW9udmFycyIgd2lsbCBiZSBz ZXQgdG8gImlzX3ZhbGlkIiBhZnRlciB0aGUgZnVuY3Rpb24gaXMKKyAqIGRvbmUuICBIb3dldmVy LCB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQgYWxsIGVudHJpZXMgZ2V0IGNoZWNrZWQgb25jZS4KKyAq Lworc3RhdGljIHZvaWQKK3JlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCit7 CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCS8qCisJICog VGhlIHZhbGlkYXRpb24gcmVxdWlyZXMgc3lzdGVtIGNhdGFsb2cgYWNjZXNzLCBzbyB0aGUgc2Vz c2lvbiBzdGF0ZQorCSAqIHNob3VsZCBiZSAiaW4gdHJhbnNhY3Rpb24iLgorCSAqLworCUFzc2Vy dChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwlpZiAoIW5lZWRzX3ZhbGlkYXRpb24gfHwgIXNl c3Npb252YXJzKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFJlc2V0IHRoZSBmbGFnIGJlZm9yZSB3 ZSBzdGFydCB0aGUgdmFsaWRhdGlvbi4gIEl0IGNhbiBiZSBzZXQgYWdhaW4gYnkKKwkgKiBjb25j dXJyZW50bHkgaW5jb21pbmcgc2ludmFsIG1lc3NhZ2VzLgorCSAqLworCW5lZWRzX3ZhbGlkYXRp b24gPSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFsaWRhdGVf YWxsX3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vz c2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgm c3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCWlm IChzdmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQl7CisJCQkJLyogdHJ5 IGFnYWluIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uICovCisJCQkJbmVlZHNfdmFsaWRhdGlvbiA9 IHRydWU7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCWlmICghaXNfc2Vzc2lvbl92YXJpYWJs ZV92YWxpZChzdmFyKSkKKwkJCXsKKwkJCQlPaWQJCQl2YXJpZCA9IHN2YXItPnZhcmlkOworCisJ CQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQkJCWhhc2hfc2VhcmNoKHNl c3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQlzdmFyID0gTlVMTDsK KwkJCX0KKwkJCWVsc2UKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCX0KKwl9Cit9CisK IC8qCiAgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICovCkBAIC0y MDYsNiArMzE4LDggQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJc3Zhci0+ ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisKIAlzdmFyLT5pc251bGwgPSB0cnVl OwogCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOwogCkBAIC0zMjksMjIgKzQ0Myw0MiBAQCBnZXRf c2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJaWYgKCFzZXNzaW9udmFycykKIAkJY3JlYXRl X3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlmICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZh bGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlkYXRlZF9seGlkICE9IE15UHJvYy0+dnhp ZC5seGlkKQorCXsKKwkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZh cmlhYmxlcyAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpOworCisJCS8q IGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0aGUgc2FtZSB0cmFuc2FjdGlvbiAqLwor CQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNI X0VOVEVSLCAmZm91bmQpOwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhlIHNlc3Np b24gdmFyaWFibGUgY291bGQgaGF2ZSBiZWVuIGRyb3BwZWQgYnkgYSBEUk9QIFZBUklBQkxFCisJ CSAqIHN0YXRlbWVudCBpbiBhIHN1YnRyYW5zYWN0aW9uIHRoYXQgd2FzIGxhdGVyIHJvbGxlZCBi YWNrLCB3aGljaAorCQkgKiBtZWFucyB0aGF0IHdlIG1heSBoYXZlIHRvIHdvcmsgd2l0aCB0aGUg ZGF0YSBvZiBhIHZhcmlhYmxlIG1hcmtlZAorCQkgKiBhcyBpbnZhbGlkLgorCQkgKi8KIAkJaWYg KCFzdmFyLT5pc192YWxpZCkKIAkJewogCQkJLyoKLQkJCSAqIElmIHRoZXJlIHdhcyBhbiBpbnZh bGlkYXRpb24gbWVzc2FnZSwgdGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsCi0JCQkgKiBiZSB2YWxp ZCwgYnV0IHdlIGhhdmUgdG8gY2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFsb2cuCisJCQkgKiBX ZSBoYXZlIHRvIGNoZWNrIHRoZSBzeXN0ZW0gY2F0YWxvZyB0byBzZWUgaWYgdGhlIHZhcmlhYmxl IGlzCisJCQkgKiBzdGlsbCB2YWxpZCwgZXZlbiBpZiBhbiBpbnZhbGlkYXRpb24gbWVzc2FnZSBz ZXQgaXQgdG8gaW52YWxpZC4KKwkJCSAqCisJCQkgKiBUaGUgdmFyaWFibGUgbXVzdCBiZSB2YWxp ZGF0ZWQgYmVmb3JlIGl0IGlzIGFjY2Vzc2VkLiAgVGhlIG9pZAorCQkJICogc2hvdWxkIGJlIHZh bGlkLCBiZWNhdXNlIHRoZSByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUgaXMKKwkJCSAqIGFscmVh ZHkgbG9ja2VkLCBhbmQgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKSB3b3VsZAor CQkJICogcmVtb3ZlIHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9ucy4KIAkJ CSAqLwogCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJc3Zhci0+ aXNfdmFsaWQgPSB0cnVlOwogCQkJZWxzZQotCQkJCS8qIGlmIHRoZSB2YWx1ZSBjYW5ub3QgYmUg dmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KLQkJCQlmcmVlX3Nlc3Npb25fdmFy aWFibGVfdmFsdWUoc3Zhcik7CisJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgc3RhdGUgb2Yg c2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAkJfQogCX0KIAllbHNlCkBAIC00MDUsNiAr NTM5LDE2IEBAIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29s IGlzTnVsbCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRh YmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9u SWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJeworCQkvKiBm cmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICovCisJCXJlbW92 ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVwZWF0IHRoZSBh Ym92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRlZF9seGlkID0g TXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNo KHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCBhYzM2ZGZjYzE5Yi4u YzA2ZTFmYWYwMmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAg LTIxLDYgKzIxLDggQEAKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAjaW5jbHVkZSAi dGNvcC9jbWR0YWcuaCIKIAorZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9j ZXNzKE9pZCB2YXJpZCk7CisKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFy aWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZh cmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv aXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5hZmNiMDY1OTllOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsxLDExMCBA QAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRp b246IGxldCB2YWwgZHJvcCB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVw IHZhbDogU0VMRUNUIFZBUklBQkxFKG15dmFyKTsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJv dykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNFTEVDVCBW QVJJQUJMRShteXZhcik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgIm15dmFyIiBkb2Vzbid0 IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQor c3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUo bXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJTjsK K3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFC TEUobXl2YXIpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJteXZhciIgZG9lc24ndCBleGlz dAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBk YmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0 ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEg cm93KQorCitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0t LS0tLS0KK3B1YmxpY3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBW QVJJQUJMRSBteXZhcjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4 dDsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lfHJlbW92ZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0K KyAgICAgIHwgICAgfHQgICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBWQVJJQUJM RShteXZhcik7CitteXZhcgorLS0tLS0KKyAgICAgCisoMSByb3cpCisKKworc3RhcnRpbmcgcGVy bXV0YXRpb246IGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCitzdGVwIGxl dDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBWQVJJQUJMRShteXZhcik7 CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgczE6IEJFR0lOOworc3RlcCBk Ymc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8 bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7 CitzdGVwIGNyZWF0ZTogQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzog U0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7 CitzY2hlbWF8bmFtZXxyZW1vdmVkCistLS0tLS0rLS0tLSstLS0tLS0tCisgICAgICB8ICAgIHx0 ICAgICAgCisoMSByb3cpCisKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2 YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9MTEJBQ0s7CisKK3N0YXJ0 aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3Az IGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFCTEUg bXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVzdCc7CitzdGVwIHMz OiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owor c3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJM RSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFyMzsKK3N0ZXAgaW52YWwz OiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7Cis/Y29sdW1uPwor LS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2FyZDogRElTQ0FSRCBWQVJJ QUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VMRUNUIHZhcm5hbWUgRlJP TSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAKKygxIHJvdykKKwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSBiL3NyYy90ZXN0 L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggZTNjNjY5YTI5YzcuLjhkZjkwMWZj NzljIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCisr KyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTExNiwzICsxMTYs NCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDogc2VyaWFsaXphYmxlLXBh cmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDogbG9jay1ub3dhaXQKK3Rl c3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVj cy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lv bi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h MzhiOTc2MWZkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9z ZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24gdmFy aWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVBVEUg VkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZBUklB QkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJTjsg fQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNUIFZB UklBQkxFKG15dmFyKTsgfQorc3RlcCBkYmcJeyBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVk IEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsgfQorc3RlcCBzcjEJeyBST0xMQkFDSzsgfQor CitzZXNzaW9uIHMyCitzdGVwIGRyb3AJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjsgfQorc3RlcCBj cmVhdGUJCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7IH0KKworc2Vzc2lvbiBzMwor c3RlcCBzMwkJCXsgQkVHSU47IH0KK3N0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9 CitzdGVwIGNyZWF0ZTQJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KK3N0ZXAg bGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rlc3QnOyB9CitzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFC TEUgbXl2YXI0OyB9CitzdGVwIGludmFsMwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBn X2ZvcmVpZ25fdGFibGU7IH0KK3N0ZXAgZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFCTEVTOyB9Citz dGVwIHNjMwkJeyBDT01NSVQ7IH0KK3N0ZXAgc3RhdGUJCXsgU0VMRUNUIHZhcm5hbWUgRlJPTSBw Z192YXJpYWJsZTsgfQorCitzZXNzaW9uIHM0CitzdGVwIGNyZWF0ZTMJeyBDUkVBVEUgVkFSSUFC TEUgbXl2YXIzIEFTIHRleHQ7IH0KK3N0ZXAgZHJvcDMJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjM7 IH0KKworIyBDb25jdXJyZW50IGRyb3Agb2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQgbGVhZCB0 byBhbiBlcnJvcgorcGVybXV0YXRpb24gbGV0IHZhbCBkcm9wIHZhbAorIyBTYW1lLCBidXQgd2l0 aCBhbiBleHBsaWNpdCB0cmFuc2FjdGlvbgorcGVybXV0YXRpb24gbGV0IHZhbCBzMSBkcm9wIHZh bCBzcjEKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3Vs ZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNy ZWF0ZSBkYmcgdmFsCisjIENvbmN1cnJlbnQgZHJvcC9jcmVhdGUgb2YgYSBrbm93biB2YXJpYWJs ZSBzaG91bGQgbGVhZCB0byBlbXB0eSB2YXJpYWJsZQorIyBXZSBuZWVkIGEgdHJhbnNhY3Rpb24g dG8gbWFrZSBzdXJlIHRoYXQgd2Ugd29uJ3QgYWNjZXB0IGludmFsaWRhdGlvbiB3aGVuCisjIGNh bGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKK3Blcm11dGF0aW9u IGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCisjIHRlc3QgZm9yIERJU0NB UkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0ZXJlZAor cGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZh bDMgZGlzY2FyZCBzYzMgc3RhdGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dAppbmRleCA5Yzc1OTVlOWE0MS4uNTljMmNmOGJmYTYg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNf ZGRsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz X2RkbC5vdXQKQEAgLTE2MSwzICsxNjEsMjE3IEBAIERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8g c2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMAogZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExCiBEUk9QIFNDSEVNQSBz dmFydGVzdDAyX2RkbCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHN2YXJ0ZXN0MDJfZGRsLnNlc3ZhcjEwCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0 X2RkbDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjAgQVMgdmFyY2hhcjsK Ky0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5IGJlZm9y ZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIG5leHQg dHJhbnNhY3Rpb24KK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAnSGVsbG8nOworU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBzY2hlbWEgPSAn c3ZhcnRlc3RfZGRsJzsgLS0gMQorIGNvdW50IAorLS0tLS0tLQorICAgICAxCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAgV0hFUkUgc2No ZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDAKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHByZXNlcnZlZCB3 aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRlZCB0cmFuc2FjdGlvbgor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyB2YXJjaGFyOworTEVUIHN2 YXJ0ZXN0X2RkbC5zZXN2YXI2MCA9ICdIZWxsbyc7CitCRUdJTjsKKyAgRFJPUCBWQVJJQUJMRSBz dmFydGVzdF9kZGwuc2VzdmFyNjA7CisgIC0tIHNob3VsZCBmYWlsCisgIFNFTEVDVCBWQVJJQUJM RShzdmFydGVzdF9kZGwuc2VzdmFyNjApOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJzdmFy dGVzdF9kZGwuc2VzdmFyNjAiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CisgICAgICAgICAgICAgICAgICAgICAgICBeCitST0xM QkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2 YXI2MCk7IC0tIEhlbGxvCisgc2VzdmFyNjAgCistLS0tLS0tLS0tCisgSGVsbG8KKygxIHJvdykK KworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwu c2VzdmFyNjA7CisgIC0tIHNob3VsZCBiZSBvaworICBDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3Rf ZGRsLnNlc3ZhcjYwIEFTIGludDsKKyAgTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCA9IDEwMDsK KyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7IC0tIDEwMAorIHNlc3Zh cjYwIAorLS0tLS0tLS0tLQorICAgICAgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOworU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7IC0tIEhlbGxvCisgc2VzdmFyNjAgCist LS0tLS0tLS0tCisgSGVsbG8KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwu c2VzdmFyNjA7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFS SUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIGludDsKKyAgTEVUIHN2YXJ0ZXN0X2RkbC5z ZXN2YXI2MCA9IDEwMDsKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7 Cisgc2VzdmFyNjAgCistLS0tLS0tLS0tCisgICAgICAxMDAKKygxIHJvdykKKworICBTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpCisgICAgV0hFUkUgc2NoZW1hID0g J3N2YXJ0ZXN0X2RkbCc7IC0tIDEKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQor CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworQ09NTUlUOworU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBzY2hlbWEgPSAn c3ZhcnRlc3RfZGRsJzsgLS0gMAorIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjEgQVMgaW50OworQ1JFQVRFIFZB UklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MiBBUyBpbnQ7CitMRVQgc3ZhcnRlc3RfZGRsLnNl c3ZhcjYxID0gMTA7CitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyID0gMDsKK0JFR0lOOworICBT QVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworICAt LSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAg U0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFyNjIgCistLS0t LS0tLS0tCisgICAgICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisgc2VzdmFyNjEgCistLS0tLS0tLS0t CisgICAgICAgMTAKKygxIHJvdykKKworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUg c3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBh bm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5z ZXN2YXI2Mik7Cisgc2VzdmFyNjIgCistLS0tLS0tLS0tCisgICAgICAgIDAKKygxIHJvdykKKwor ICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklB QkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisgc2VzdmFyNjEgCistLS0tLS0tLS0tCisgICAg ICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJM RSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5n IGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRs LnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0tLS0KKyAgICAgICAgMAorKDEgcm93KQor CisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3Zh cjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAgICAgICAxMAorKDEgcm93KQorCisgIFNB VkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisgIC0t IGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBT RUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0t LS0tLS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMyOworUk9MTEJBQ0s7 CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEp OworIHNlc3ZhcjYxIAorLS0tLS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisKK0JFR0lOOwor ICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOwor ICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUK KyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFyNjIgCist LS0tLS0tLS0tCisgICAgICAgIDAKKygxIHJvdykKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZv cmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0t LS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICAtLSBmb3JjZSBj bGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZB UklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFyNjIgCistLS0tLS0tLS0tCisg ICAgICAgIDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAg ICAgICAxMAorKDEgcm93KQorCistLSByZXBlYXRlZCBhYm9ydGVkIHRyYW5zYWN0aW9uCitCRUdJ TjsgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNLOworQkVHSU47 IERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsKK0JFR0lOOyBE Uk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7CistLSBzaG91bGQg YmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOworIHNlc3ZhcjYx IAorLS0tLS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRl c3RfZGRsLnNlc3ZhcjYxLCBzdmFydGVzdF9kZGwuc2VzdmFyNjI7CitEUk9QIFNDSEVNQSBzdmFy dGVzdF9kZGw7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlc19kZGwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRs LnNxbAppbmRleCBmODQ0NDY5ZWNiMS4uNmI5NjJjZjhlNWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbApAQCAtMTQ4LDMgKzE0OCwxNTQgQEAg QUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QwMl9kZGwuc2VzdmFyMTAgU0VUIFNDSEVNQSBzdmFydGVz dDAxX2RkbDsKIAogRFJPUCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGwgQ0FTQ0FERTsKIERST1AgU0NI RU1BIHN2YXJ0ZXN0MDJfZGRsIENBU0NBREU7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZGRs OworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZhcmNoYXI7CisK Ky0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5IGJlZm9y ZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIG5leHQg dHJhbnNhY3Rpb24KKworTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCA9ICdIZWxsbyc7CisKK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAgV0hFUkUgc2NoZW1h ID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDEKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2Vz dmFyNjA7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpCisgIFdIRVJFIHNjaGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAwCisK Ky0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gYSB2 YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUg VkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZhcmNoYXI7CisKK0xFVCBzdmFydGVz dF9kZGwuc2VzdmFyNjAgPSAnSGVsbG8nOworCitCRUdJTjsKKyAgRFJPUCBWQVJJQUJMRSBzdmFy dGVzdF9kZGwuc2VzdmFyNjA7CisKKyAgLS0gc2hvdWxkIGZhaWwKKyAgU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CisKK1JPTExCQUNLOworCistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAtLSBIZWxsbworCistLSBh bm90aGVyIHRlc3QKK0JFR0lOOworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2 MDsKKworICAtLSBzaG91bGQgYmUgb2sKKyAgQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5z ZXN2YXI2MCBBUyBpbnQ7CisgIExFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAxMDA7CisgIFNF TEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAtLSAxMDAKKworUk9MTEJBQ0s7 CisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAtLSBIZWxsbworCitE Uk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAgV0hFUkUgc2No ZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDAKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSBz dmFydGVzdF9kZGwuc2VzdmFyNjAgQVMgaW50OworCisgIExFVCBzdmFydGVzdF9kZGwuc2VzdmFy NjAgPSAxMDA7CisKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CisK KyAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICAgIFdIRVJF IHNjaGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAxCisKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVz dF9kZGwuc2VzdmFyNjA7CisKK0NPTU1JVDsKKworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAor CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxIEFTIGludDsKK0NSRUFURSBW QVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjIgQVMgaW50OworCitMRVQgc3ZhcnRlc3RfZGRs LnNlc3ZhcjYxID0gMTA7CitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyID0gMDsKKworQkVHSU47 CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7 CisKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlh YmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworICBST0xMQkFD SyBUTyBzMTsKKworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKwor ICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOwor CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJs ZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyAgUk9MTEJBQ0sg VE8gczI7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2MSk7CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFS SUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworCisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRv dWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRl c3RfZGRsLnNlc3ZhcjYyKTsKKyAgUk9MTEJBQ0sgVE8gczE7CisKKyAgU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7CisKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklB QkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3Vj aGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0 X2RkbC5zZXN2YXI2Mik7CisgIFJPTExCQUNLIFRPIHMyOworUk9MTEJBQ0s7CisKKy0tIHNob3Vs ZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7CisKK0JFR0lO OworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYx OworCisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJp YWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKworICBTQVZF UE9JTlQgczI7CisKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNz aW9uIHZhcmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOwor ICBST0xMQkFDSyBUTyBzMTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90 aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2 YXI2Mik7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2MSk7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JF R0lOOyBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7CitCRUdJ TjsgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNLOworQkVHSU47 IERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsKKworLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKworRFJP UCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjEsIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MjsK KworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfZGRsOwotLSAKMi41MC4xCgo= --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0012-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250813-0012-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczihl3 RnJvbSBkNjM3MTI1NDkzYzExMzRjNzhlZWY1MTE0YzNjOGUxYTM2YjNiM2RmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEy LzE1XSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDc2 ODE2M2UyMDA5Li45YTkyODFhY2Q4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNkZXNjLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJub2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdHlwZS5oIgpAQCAtNjAwLDMgKzYwMSwxMDIgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Np b25fdmFyaWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVu Y3Rpb24gZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhl CisgKiBjb250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9y ZSBkaXNwbGF5IGRhdGEgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkLCBidXQgZm9yIHdoaWNoIHRoaXMgYmFja2VuZCBkaWRuJ3QKKyAqIHByb2Nlc3MgdGhlIHNo YXJlZCBpbnZhbGlkYXRpb25zIHlldC4KKyAqLworRGF0dW0KK3BnX3Nlc3Npb25fdmFyaWFibGVz KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIE5VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19B VFRTIDgKKworCS8qCisJICogTWFrZSBzdXJlIHN5c2NhY2hlIGVudHJpZXMgYXJlIGZsdXNoZWQg Zm9yIHJlY2VudCBjYXRhbG9nIGNoYW5nZXMuIEZvcgorCSAqIHN0YWJsZSBiZWhhdmlvciB3ZSBu ZWVkIHRvIHJlbGlhYmx5IGRldGVjdCB3aGljaCB2YXJpYWJsZXMgd2VyZQorCSAqIGRyb3BwZWQu CisJICovCisJQWNjZXB0SW52YWxpZGF0aW9uTWVzc2FnZXMoKTsKKworCUluaXRNYXRlcmlhbGl6 ZWRTUkYoZmNpbmZvLCAwKTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCVJldHVyblNldElu Zm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsKKwkJSEFT SF9TRVFfU1RBVFVTIHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7CisKKwkJaGFzaF9zZXFfaW5p dCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkg aGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7CisJCQlEYXR1bQkJdmFsdWVz W05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCWJvb2wJCW51bGxzW05VTV9QR19T RVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCUhlYXBUdXBsZQl0cDsKKwkJCWJvb2wJCXZhcl9p c192YWxpZCA9IGZhbHNlOworCisJCQltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7 CisJCQltZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOworCisJCQl2YWx1ZXNbMF0gPSBP YmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKTsKKwkJCXZhbHVlc1szXSA9IE9iamVjdElkR2V0 RGF0dW0oc3Zhci0+dHlwaWQpOworCisJCQkvKgorCQkJICogSXQgaXMgcG9zc2libGUgdGhhdCB0 aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBmcm9tIHRoZQorCQkJICogY2F0YWxvZywgYnV0 IG5vdCB5ZXQgcHVyZ2VkIGZyb20gdGhlIGhhc2ggdGFibGUuCisJCQkgKi8KKwkJCXRwID0gU2Vh cmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKSk7 CisKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsKKwkJCQlGb3JtX3BnX3Zhcmlh YmxlIHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKTsKKworCQkJCS8q CisJCQkJICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgdmFyaWFibGUgaGFzIGJlZW4gZHJv cHBlZCBhbmQKKwkJCQkgKiBzb21lb25lIGNyZWF0ZWQgYSBuZXcgdmFyaWFibGUgd2l0aCB0aGUg c2FtZSBvYmplY3QgSUQuCisJCQkJICogVXNlIHRoZSBjYXRhbG9nIGluZm9ybWF0aW9uIG9ubHkg aWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICovCisJCQkJaWYgKHN2YXItPmNyZWF0ZV9s c24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJCQl7CisJCQkJCXZhbHVlc1sxXSA9IENT dHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKHZhcmZv cm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVlc1syXSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJCQkJCXZhbHVlc1s0XSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+dHlwaWQpKTsKKwkJCQkJdmFsdWVzWzVd ID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2YWx1ZXNbNl0gPSBCb29sR2V0RGF0dW0o CisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52 YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwgQUNMX1NFTEVDVCkgPT0gQUNMQ0hF Q0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xHZXREYXR1bSgKKwkJCQkJCQkJCQkJIG9i amVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2YXItPnZhcmlkLAorCQkJCQkJCQkJ CQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9PSBBQ0xDSEVDS19PSyk7CisKKwkJCQkJ dmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHApOwor CQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRjaGluZyBjYXRhbG9nIGVudHJ5LCByZXR1 cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lzX3ZhbGlkKQorCQkJeworCQkJCW51bGxz WzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7CisJCQkJbnVsbHNbNF0gPSB0cnVlOwor CQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKwkJCQludWxsc1s2XSA9IHRydWU7 CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhy c2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwkJfQor CX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBh NzFiOTA1OTgyMi4uZDAzOTllYzEzZmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI1 OTksNCArMTI1OTksMTIgQEAKICAgcHJvYXJnbmFtZXMgPT4gJ3twaWQsaW9faWQsaW9fZ2VuZXJh dGlvbixzdGF0ZSxvcGVyYXRpb24sb2ZmLGxlbmd0aCx0YXJnZXQsaGFuZGxlX2RhdGFfbGVuLHJh d19yZXN1bHQscmVzdWx0LHRhcmdldF9kZXNjLGZfc3luYyxmX2xvY2FsbWVtLGZfYnVmZmVyZWR9 JywKICAgcHJvc3JjID0+ICdwZ19nZXRfYWlvcycgfSwKIAorIyBTZXNzaW9uIHZhcmlhYmxlcyBz dXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICdsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2 YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxlcycsIHByb3Jvd3Mg PT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92b2xhdGlsZSA9PiAncycsIHByb3Bh cmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKKyAgcHJvYXJndHlwZXMgPT4g JycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4dCxvaWQsdGV4dCxib29sLGJvb2ws Ym9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmdu YW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5cG5hbWUscmVtb3ZlZCxjYW5fc2Vs ZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxlcycgfSwK IF0KLS0gCjIuNTAuMQoK --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="UTF-8"; name="v20250813-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Disposition: attachment; filename="v20250813-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meacziht4 RnJvbSAwZGYyOWZlMmVmNzg1YWEyNmJiZWM0MDcwYjZiZTg1ODAyODcwNTg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAwODoyOTozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MTVdIExFVCBjb21tYW5kIC0gYXNzaWduIGEgcmVzdWx0IG9mIGV4cHJlc3Npb24gdG8gdGhlCiBz ZXNzaW9uIHZhcmlhYmxlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgdmFs dWUgaXMgYXNzaWduZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgdXN1YWxseSBieSBTRVQgY29tbWFu ZC4gVW5mb3J0dW5hdGVseQp0aGVyZSBhcmUgdHdvIHJlYXNvbnMgd2h5IFNFVCBzaG91bGQgbm90 IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZSBpbiBQb3N0Z3Jlcy4KCjEuIFVzaW5nIGFfZXhwciBp bnNpZGUgZ2VuZXJpY19zZXQgcmFtIHJ1bGUgcHJvZHVjZXMgcmVkdWNlIGNvbmZsaWN0cywgc28g aXQgbmVlZHMKwqAgwqB0b3RhbCByZWltcGxlbWVudGF0aW9uIG9mIHJlbGF0ZWQgZ3JhbSBydWxl cy4KCjIuIFNFVCBpcyBubyBwbGFuIGNvbW1hbmQgLSBzbyBpdCBkb2Vzbid0IHN1cHBvcnQgdXNh Z2Ugb2YgcGFyYW1ldGVycy4KCjMuIEV4Y2VwdGluZyBpbXBsZW1lbnRhdGlvbiBpc3N1ZXMsIHRo ZXJlIGlzIGZhY3QsIHNvIGlmIHdlIHVzZSBTRVQgY29tbWFuZArCoCDCoGZvciBhc3NpZ25pbmcg dmFsdWVzIHRvIHNlc3Npb24gdmFyaWFibGVzLCB0aGVuIHRoZXJlIGNhbiBiZSBjb2xsaXNpb25z CsKgIMKgYmV0d2VlbiBzZXNzaW9uIHZhcmlhYmxlcyBhbmQgR1VDLCBhbmQgdGhlbiB3ZSBuZWVk IHNvbWUgY29uY2VwdHMsIGhvdwrCoCDCoHRoZXNlIGNvbGxpc2lvbnMgc2hvdWxkIGJlIHNvbHZl ZCwgb3IgaG93IHRvIHByb3RlY3Qgc2VsZiBhZ2FpbnN0IHRoZXNlCsKgIMKgY29sbGlzaW9ucy4g V2l0aCB0aGUgZGVkaWNhdGVkIGNvbW1hbmQsIHRoZSBjb2xsaXNpb25zIGJldHdlZW4gR1VDIGFu ZCBzZXNzaW9uCsKgIMKgdmFyaWFibGVzIGFyZSBub3QgcG9zc2libGUuCgpUaGUgY29tbWFuZCBM RVQgaXMgZXhlY3V0ZWQgYXMgdXN1YWwgcXVlcnkgZXhlY3V0aW9uLiBUaGUgcmVzdWx0IGlzIHN0 b3JlZAp0byB0aGUgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgKHJlc3VsdFZhcmlhYmxlKSBieSB1 c2luZyBWYXJpYWJsZURlc3RSZWNlaXZlci4KCkltcGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExF VCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cyBhcmUgbm90IHN1cHBvcnRlZApub3cuIFBvc3Rw b25lZCB0byBuZXh0IHN0ZXAgZHVlIHJlZHVjaW5nIHBhdGNoIHNpemUuCi0tLQogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI5ICsrCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYv bGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysKIGRvYy9zcmMvc2dtbC9y ZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgODYgKysrKysrCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgMjMgKy0KIHNyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgMjQgKysKIHNyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYyAgICAgICAgICB8ICAzNCArKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8IDIzNyArKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAzOSArKy0KIHNyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvYmFj a2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyAgICAgICAgICAgfCAgMTEgKwogc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDEyICstCiBzcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE1ICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9ub2Rl cy9wbGFubm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzX2RtbC5vdXQgICAgICAgIHwgMjc3ICsrKysrKysrKysrKysrKysrKwogLi4uL3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwgICAgIHwgMTg5ICsrKysrKysrKysrKwog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAxICsKIDI3 IGZpbGVzIGNoYW5nZWQsIDExMjQgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAoKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAyNjU1ZmE1 ZTdjZS4uYmRmMDBiMzU1MDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0MDMsMTAgKzU0MDMsMzkgQEAgRVhQTEFJTiBT RUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUg JzIwMDgtMDEtMDEnOwogICAgIHNlc3Npb24gdmFyaWFibGUgaWRlbnRpZmllciwgYW5kIGNhbiBi ZSB1c2VkIG9ubHkgZm9yIHNlc3Npb24gdmFyaWFibGUKICAgICBpZGVudGlmaWVyLiBUaGUgc3Bl Y2lhbCBzeW50YXggZm9yIGFjY2Vzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyByZW1vdmVzCiAgICAg cmlzayBvZiBjb2xsaXNpb25zIGJldHdlZW4gdmFyaWFibGUgaWRlbnRpZmllcnMgYW5kIGNvbHVt biBuYW1lcy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vz c2lvbiB2YXJpYWJsZSBpcyBzZXQgd2l0aCB0aGUgU1FMIHN0YXRlbWVudAorICAgIDxjb21tYW5k PkxFVDwvY29tbWFuZD4uICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSBy ZXRyaWV2ZWQKKyAgICB3aXRoIHRoZSBTUUwgc3RhdGVtZW50IDxjb21tYW5kPlNFTEVDVDwvY29t bWFuZD4uCiA8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOwor TEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgVkFSSUFCTEUodmFyMSk7Cis8L3Byb2dy YW1saXN0aW5nPgorCisgICAgb3IKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxF IHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgQVMgaW50ZWdlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIFRPIFBVQkxJQzsKK0xFVCBjdXJyZW50X3VzZXJf aWQgPSAoU0VMRUNUIGlkIEZST00gdXNlcnMgV0hFUkUgdXNlbmFtZSA9IHNlc3Npb25fdXNlcik7 CiBTRUxFQ1QgVkFSSUFCTEUoY3VycmVudF91c2VyX2lkKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAg ICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFi bGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZworICAgIGEgdmFy aWFibGUncyB2YWx1ZSByZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBp dHMgdmFsdWUgaGFzCisgICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJl bnQgc2Vzc2lvbiB1c2luZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQu ICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IHRyYW5zYWN0aW9uYWw6CisgICAgYW55IGNoYW5n ZXMgbWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rp b24gd29uJ3QKKyAgICBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNr IChqdXN0IGxpa2UgdmFyaWFibGVzIGluCisgICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vz c2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVudCwgYnV0CisgICAgdGhlaXIg dmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUgY29udGVu dCBvZgorICAgIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAg PHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxs ZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCAyZjY3ZGUz ZTIxYi4uY2MzYmQ1YWI1NDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTE1OCw2ICsxNTgs NyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRp cmVjdG9yeS4KIDwhRU5USVRZIGdyYW50ICAgICAgICAgICAgICBTWVNURU0gImdyYW50LnNnbWwi PgogPCFFTlRJVFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNURU0gImltcG9ydF9mb3JlaWduX3Nj aGVtYS5zZ21sIj4KIDwhRU5USVRZIGluc2VydCAgICAgICAgICAgICBTWVNURU0gImluc2VydC5z Z21sIj4KKzwhRU5USVRZIGxldCAgICAgICAgICAgICAgICBTWVNURU0gImxldC5zZ21sIj4KIDwh RU5USVRZIGxpc3RlbiAgICAgICAgICAgICBTWVNURU0gImxpc3Rlbi5zZ21sIj4KIDwhRU5USVRZ IGxvYWQgICAgICAgICAgICAgICBTWVNURU0gImxvYWQuc2dtbCI+CiA8IUVOVElUWSBsb2NrICAg ICAgICAgICAgICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJs ZS5zZ21sCmluZGV4IDk2ZDI1ODY0MjNlLi4yMjFhNjk5NDY5YiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfdmFyaWFibGUuc2dtbApAQCAtMTczLDYgKzE3Myw3IEBAIEFMVEVSIFZBUklBQkxFIGJvbyBT RVQgU0NIRU1BIHByaXZhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAgPG1l bWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0Pgog IDwvcmVmc2VjdDE+CiA8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwKaW5kZXggNmU5ODhmMmU0NzIuLjQzMDAwY2UwMDRkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKQEAgLTEyMCw5ICsxMjAsMTEgQEAgQ1JFQVRFIFZBUklBQkxFIFsgSUYg Tk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWIKICAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KIAogICA8cGFyYT4KLSAgIENyZWF0ZSBhbiBk YXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisgICBDcmVhdGUg YSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+IG9mIGRhdGEgdHlwZSBk YXRlOgogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xF VCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIFZBUklBQkxFKHZhcjEpOwogPC9wcm9ncmFt bGlzdGluZz4KICAgPC9wYXJhPgogCkBAIC0xNDMsNiArMTQ1LDcgQEAgQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgZGF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+ PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+ PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48 eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3Jl ZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCmluZGV4IDViZGIzNTYwZjBi Li42Nzk4OGI1ZmNkOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxl LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTExMSw2 ICsxMTEsNyBAQCBEUk9QIFZBUklBQkxFIHZhcjE7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGlu ZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1i ZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwv c2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2xldC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMDBmOWJlYTkxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL2xldC5zZ21sCkBAIC0wLDAgKzEsOTYgQEAKKzwhLS0KK2RvYy9zcmMvc2dt bC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRy eSBpZD0ic3FsLWxldCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+ TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+ c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5jaGFuZ2luZzwvc2Vjb25k YXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+TEVUPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5j aGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1l ZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorTEVUIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPgorPC9z eW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVz Y3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFu ZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBzZXNzaW9uCisgICB2 YXJpYWJsZS4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3Zh cmlhYmxlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5Pgor ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwv cmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBB biBhcmJpdHJhcnkgU1FMIGV4cHJlc3Npb24uICBUaGUgcmVzdWx0IG11c3QgYmUgb2YgYSBkYXRh IHR5cGUgdGhhdCBjYW4KKyAgICAgIGJlIGNhc3QgdG8gdGhlIHR5cGUgb2YgdGhlIHNlc3Npb24g dmFyaWFibGUgaW4gYW4gYXNzaWdubWVudC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorPHByb2dyYW1saXN0aW5n PgorQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xF VCBteXZhciA9IChTRUxFQ1Qgc3VtKHZhbCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBpcyBhIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgIGV4dGVuc2lvbi4KKyAgPC9wYXJh PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+ CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVm c2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IDI1NTc4ZjM5NDZjLi4xM2U0 YWRjNWRmMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtMTg2LDYgKzE4Niw3IEBACiAgICAmZ3JhbnQ7 CiAgICAmaW1wb3J0Rm9yZWlnblNjaGVtYTsKICAgICZpbnNlcnQ7CisgICAmbGV0OwogICAgJmxp c3RlbjsKICAgICZsb2FkOwogICAgJmxvY2s7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMKaW5kZXggZGJjMDU0Nzk1YmIuLjc2ODE2M2UyMDA5IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xOSwxNSArMTksMjIgQEAKICNpbmNsdWRlICJj YXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9leGVj ZGVzYy5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCisjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRl ICJub2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2lu Y2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3Iu aCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90Lmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgog I2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAj aW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAj aW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAogLyoKQEAgLTUxNCwzICs1MjEsODIgQEAgQ3Jl YXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3Rt dCkKIAogCXJldHVybiB2YXJpYWJsZTsKIH0KKworLyoKKyAqIEFzc2lnbiB0aGUgcmVzdWx0IG9m IHRoZSBldmFsdWF0ZWQgZXhwcmVzc2lvbiB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICovCit2 b2lkCitFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkgICBMZXRTdG10ICpz dG10LAorCQkJICAgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJCQkgICBRdWVyeUVudmlyb25tZW50 ICpxdWVyeUVudiwKKwkJCSAgIFF1ZXJ5Q29tcGxldGlvbiAqcWMpCit7CisJUXVlcnkJICAgKnF1 ZXJ5ID0gY2FzdE5vZGUoUXVlcnksIHN0bXQtPnF1ZXJ5KTsKKwlMaXN0CSAgICpyZXdyaXR0ZW47 CisJRGVzdFJlY2VpdmVyICpkZXN0OworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJUGxhbm5lZFN0 bXQgKnBsYW47CisJUXVlcnlEZXNjICAqcXVlcnlEZXNjOworCU9pZAkJCXZhcmlkID0gcXVlcnkt PnJlc3VsdFZhcmlhYmxlOworCisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCS8qIGRv IHdlIGhhdmUgcGVybWlzc2lvbiB0byB3cml0ZSB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8gKi8K KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg R2V0VXNlcklkKCksIEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0sp CisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwkvKiBjcmVhdGUgYSBkZXN0IHJlY2VpdmVyIGZv ciBMRVQgKi8KKwlkZXN0ID0gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIodmFyaWQpOworCisJ LyogcnVuIHRoZSBxdWVyeSByZXdyaXRlciAqLworCXF1ZXJ5ID0gY29weU9iamVjdChxdWVyeSk7 CisKKwlyZXdyaXR0ZW4gPSBRdWVyeVJld3JpdGUocXVlcnkpOworCisJQXNzZXJ0KGxpc3RfbGVu Z3RoKHJld3JpdHRlbikgPT0gMSk7CisKKwlxdWVyeSA9IGxpbml0aWFsX25vZGUoUXVlcnksIHJl d3JpdHRlbik7CisJQXNzZXJ0KHF1ZXJ5LT5jb21tYW5kVHlwZSA9PSBDTURfU0VMRUNUKTsKKwor CS8qIHBsYW4gdGhlIHF1ZXJ5ICovCisJcGxhbiA9IHBnX3BsYW5fcXVlcnkocXVlcnksIHBzdGF0 ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJIENVUlNPUl9PUFRfUEFSQUxMRUxfT0ssIHBhcmFtcyk7 CisKKwkvKgorCSAqIFVzZSBhIHNuYXBzaG90IHdpdGggYW4gdXBkYXRlZCBjb21tYW5kIElEIHRv IGVuc3VyZSB0aGlzIHF1ZXJ5IHNlZXMgdGhlCisJICogcmVzdWx0cyBvZiBhbnkgcHJldmlvdXNs eSBleGVjdXRlZCBxdWVyaWVzLiAgKFRoaXMgY291bGQgb25seSBtYXR0ZXIgaWYKKwkgKiB0aGUg cGxhbm5lciBleGVjdXRlZCBhbiBhbGxlZ2VkbHktc3RhYmxlIGZ1bmN0aW9uIHRoYXQgY2hhbmdl ZCB0aGUKKwkgKiBkYXRhYmFzZSBjb250ZW50cywgYnV0IGxldCdzIGRvIGl0IGFueXdheSB0byBi ZSBwYXJhbGxlbCB0byB0aGUgRVhQTEFJTgorCSAqIGNvZGUgcGF0aC4pCisJICovCisJUHVzaENv cGllZFNuYXBzaG90KEdldEFjdGl2ZVNuYXBzaG90KCkpOworCVVwZGF0ZUFjdGl2ZVNuYXBzaG90 Q29tbWFuZElkKCk7CisKKwkvKiBjcmVhdGUgYSBRdWVyeURlc2MsIHJlZGlyZWN0aW5nIG91dHB1 dCB0byBvdXIgdHVwbGUgcmVjZWl2ZXIgKi8KKwlxdWVyeURlc2MgPSBDcmVhdGVRdWVyeURlc2Mo cGxhbiwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJCUdldEFjdGl2ZVNuYXBzaG90KCks IEludmFsaWRTbmFwc2hvdCwKKwkJCQkJCQkJZGVzdCwgcGFyYW1zLCBxdWVyeUVudiwgMCk7CisK KwkvKiBjYWxsIEV4ZWN1dG9yU3RhcnQgdG8gcHJlcGFyZSB0aGUgcGxhbiBmb3IgZXhlY3V0aW9u ICovCisJRXhlY3V0b3JTdGFydChxdWVyeURlc2MsIDApOworCisJLyoKKwkgKiBSdW4gdGhlIHBs YW4gdG8gY29tcGxldGlvbi4gIFRoZSByZXN1bHQgc2hvdWxkIGJlIG9ubHkgb25lIHJvdy4gIFRv CisJICogY2hlY2sgaWYgdGhlcmUgYXJlIHRvbyBtYW55IHJlc3VsdCByb3dzLCB3ZSB0cnkgdG8g ZmV0Y2ggdHdvLgorCSAqLworCUV4ZWN1dG9yUnVuKHF1ZXJ5RGVzYywgRm9yd2FyZFNjYW5EaXJl Y3Rpb24sIDJMKTsKKworCS8qIHNhdmUgdGhlIHJvd2NvdW50IGlmIHdlJ3JlIGdpdmVuIGEgUXVl cnlDb21wbGV0aW9uIHRvIGZpbGwgKi8KKwlpZiAocWMpCisJCVNldFF1ZXJ5Q29tcGxldGlvbihx YywgQ01EVEFHX0xFVCwgcXVlcnlEZXNjLT5lc3RhdGUtPmVzX3Byb2Nlc3NlZCk7CisKKwkvKiBh bmQgY2xlYW4gdXAgKi8KKwlFeGVjdXRvckZpbmlzaChxdWVyeURlc2MpOworCUV4ZWN1dG9yRW5k KHF1ZXJ5RGVzYyk7CisKKwlGcmVlUXVlcnlEZXNjKHF1ZXJ5RGVzYyk7CisKKwlQb3BBY3RpdmVT bmFwc2hvdCgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNDUzYWI5NGE4ZGYuLjBm MzlmNTc2Nzk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTIzNCwxMyArMjM0LDI0IEBA IHN0YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3Mp CiAJCS8qIGZpbGwgdGhlIGFycmF5ICovCiAJCWZvcmVhY2hfb2lkKHZhcmlkLCBxdWVyeURlc2Mt PnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQogCQl7Ci0JCQlBY2xSZXN1bHQJYWNscmVz dWx0OworCQkJLyoKKwkJCSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxkIGJlIGV4ZWN1dGVkIG9u IGFsbCBleHBsaWNpdGx5IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0aGUgcXVlcnkuIEZvciBp bXBsaWNpdGx5IHVzZWQgdmFyaWFibGUgKGxpa2UgYmFzZQorCQkJICogbm9kZSBvZiBhc3NpZ25t ZW50IGluZGlyZWN0KSB3ZSBjYW5ub3QgZG8gcGVybWlzc2lvbiBjaGVjaywKKwkJCSAqIGJlY2F1 c2Ugd2UgbmVlZCByZWFkIHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhhdmUgb25seSBVUERBVEUK KwkJCSAqIHZhcmlhYmxlKS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGlzIGV4 ZWN1dGVkIGluCisJCQkgKiB3cml0ZSB0aW1lLgorCQkJICovCisJCQlpZiAodmFyaWQgIT0gcXVl cnlEZXNjLT5wbGFubmVkc3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkKQorCQkJeworCQkJ CUFjbFJlc3VsdAlhY2xyZXN1bHQ7CiAKLQkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhW YXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAotCQkJCQkJCQkJCUdldFVzZXJJZCgpLCBBQ0xfU0VM RUNUKTsKLQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCi0JCQkJYWNsY2hlY2tfZXJy b3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCi0JCQkJCQkJICAgZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCkpOworCQkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJCQlHZXRVc2VySWQoKSwgQUNMX1NFTEVD VCk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJYWNsY2hlY2tfZXJy b3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJCSAgIGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodmFyaWQpKTsKKwkJCX0KIAogCQkJZXN0YXRlLT5lc19zZXNzaW9uX3Zhcmlh Ymxlc1tpXS52YWx1ZSA9CiAJCQkJR2V0U2Vzc2lvblZhcmlhYmxlKHZhcmlkLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYwppbmRleCBjZDYwOWM2ZTQ3OS4uNTc1MzY1ZWVmY2QgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCkBAIC00Mzc4LDYgKzQzNzgsMTYgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1w bChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNl IFRfTGV0U3RtdDoKKwkJCXsKKwkJCQlMZXRTdG10ICAgICpzdG10ID0gKExldFN0bXQgKikgbm9k ZTsKKworCQkJCWlmIChXQUxLKHN0bXQtPnRhcmdldCkpCisJCQkJCXJldHVybiB0cnVlOworCQkJ CWlmIChXQUxLKHN0bXQtPnF1ZXJ5KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVh azsKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKIAkJCXsKIAkJCQlQTEFzc2lnblN0bXQgKnN0bXQg PSAoUExBc3NpZ25TdG10ICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMK aW5kZXggMWQ5OGZiZDZkNTAuLmFkNWM2OWMwYTA5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cGxhbm5lci5jCkBAIC0zNDYsNiArMzQ2LDIwIEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBh cnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCWdsb2It PnJlbF9ub3RudWxsYXR0c19oYXNoID0gTlVMTDsKIAlnbG9iLT5zZXNzaW9uVmFyaWFibGVzID0g TklMOwogCisJLyoKKwkgKiBUaGUgKHNlc3Npb24pIHJlc3VsdCB2YXJpYWJsZSBzaG91bGQgYmUg c3RvcmVkIHRvIGdsb2JhbCwgYmVjYXVzZSBpdCBpcworCSAqIG5vdCBzZXQgaW4gc3VicXVlcnku ICBXaGVuIHRoaXMgdmFyaWFibGUgaXMgdXNlZCBvdGhlciB0aGFuIGluIGJhc2UKKwkgKiBub2Rl IG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24sIHdlIG5lZWQgdG8gY2hlY2sgdGhlIGFjY2VzcyBy aWdodHMgKGFuZAorCSAqIHRoZW4gd2UgbmVlZCB0byBkZXRlY3QgdGhpcyBzaXR1YXRpb24pLiBU aGUgdmFyaWFibGUgdXNlZCBsaWtlIGJhc2UKKwkgKiBub2RlIGNhbm5vdCBiZSBkaWZmZXJlbnQg dGhhbiB0YXJnZXQgKHJlc3VsdCkgdmFyaWFibGUuIEJlY2F1c2Ugd2Uga25vdworCSAqIHRoZSBy ZXN1bHQgdmFyaWFibGUgYmVmb3JlIHBsYW5uZXIgaW52b2NhdGlvbiwgd2UgY2FuIHNpbXBseSBz ZWFyY2ggb2YKKwkgKiB1c2FnZSBqdXN0IHRoaXMgdmFyaWFibGUsIGFuZCB3ZSBkb24ndCBuZWVk IHRvIHRvIHdhaXQgdW50aWwgdGhlIGVuZCBvZgorCSAqIHBsYW5uaW5nIHdoZW4gd2Uga25vdyBi YXNlbm9kZVNlc3Npb25WYXJpZC4KKwkgKi8KKwlnbG9iLT5yZXN1bHRWYXJpYWJsZSA9IHBhcnNl LT5yZXN1bHRWYXJpYWJsZTsKKwlnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IEludmFsaWRP aWQ7CisJZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2sgPSBmYWxzZTsKKwogCS8q CiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBm b3IgdGhpcyBxdWVyeS4gV2UKIAkgKiBjYW4ndCBkbyB0aGlzIGluIGEgc3RhbmRhbG9uZSBiYWNr ZW5kLCBvciBpZiB0aGUgY29tbWFuZCB3aWxsIHRyeSB0bwpAQCAtNTg2LDYgKzYwMCwxNiBAQCBz dGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBp bnQgY3Vyc29yT3B0aW9ucywKIAogCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNl c3Npb25WYXJpYWJsZXM7CiAKKwkvKgorCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgKGFu ZCBvbmx5IHVzZWQpIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25lbW50CisJICogaW5kaXJlY3Rp b24gc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gcGVybWlzc2lvbiBjaGVjay4KKwkgKi8KKwlpZiAo T2lkSXNWYWxpZChnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkgJiYKKwkJKCFnbG9iLT5iYXNl bm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjaykpCisJCXJlc3VsdC0+ZXhjbFNlbGVjdFBlcm1DaGVj a1ZhcmlkID0gZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisJZWxzZQorCQlyZXN1bHQtPmV4 Y2xTZWxlY3RQZXJtQ2hlY2tWYXJpZCA9IEludmFsaWRPaWQ7CisKIAlyZXN1bHQtPnN0bXRfbG9j YXRpb24gPSBwYXJzZS0+c3RtdF9sb2NhdGlvbjsKIAlyZXN1bHQtPnN0bXRfbGVuID0gcGFyc2Ut PnN0bXRfbGVuOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggNmM4NmVl MWFkNjQuLmQ0N2E3MjZmMmRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBA IC0yMjI0LDYgKzIyMjQsMjcgQEAgZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBh cmFtICpwKQogCQkJcC0+cGFyYW1pZCA9IG47CiAJCX0KIAorCQkvKgorCQkgKiBXZSBkbyBTRUxF Q1QgcGVybWlzc2lvbiBjaGVjayBvZiBhbGwgdmFyaWFibGVzIHVzZWQgYnkgdGhlIHF1ZXJ5CisJ CSAqIGV4Y2x1ZGluZyB0aGUgdmFyaWFibGUgdGhhdCBpcyB1c2VkIG9ubHkgYXMgYmFzZSBub2Rl IG9mIGFzc2lnbm1lbnQKKwkJICogaW5kaXJlY3Rpb24uIFRoZSB2YXJpYWJsZSBpZCBhc3NpZ25l ZCB0byB0aGlzIHBhcmFtIHNob3VsZCBiZSBzYW1lCisJCSAqIGxpa2UgcmVzdWx0VmFyaWFibGUg aWQsIGFuZCB0aGlzIHBhcmFtIHNob3VsZCBiZSB1c2VkIG9ubHkgb25jZSBpbgorCQkgKiBxdWVy eS4gV2hlbiB0aGUgdmFyaWFibGUgaXMgcmVmZXJlbmNlZCBieSBhbnkgb3RoZXIgcGFyYW0sIHdl CisJCSAqIHNob3VsZCB0byBkbyBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBmb3IgdGhpcyB2YXJp YWJsZSB0b28uCisJCSAqLworCQlpZiAocC0+cGFyYW1iYXNlbm9kZSkKKwkJeworCQkJQXNzZXJ0 KCFPaWRJc1ZhbGlkKHJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSk7CisJCQlBc3Nl cnQocm9vdC0+Z2xvYi0+cmVzdWx0VmFyaWFibGUgPT0gcC0+cGFyYW12YXJpZCk7CisKKwkJCXJv b3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkID0gcC0+cGFyYW12YXJpZDsKKwkJfQorCQll bHNlCisJCXsKKwkJCWlmIChwLT5wYXJhbXZhcmlkID09IHJvb3QtPmdsb2ItPnJlc3VsdFZhcmlh YmxlKQorCQkJCXJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNrID0gdHJ1 ZTsKKwkJfQorCiAJCXJldHVybiAoTm9kZSAqKSBwOwogCX0KIApAQCAtMzcwOSw3ICszNzMwLDcg QEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdHlw aWQpCiAKIC8qCiAgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUuICBU aGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQotICogc2Vzc2lvbiB2YXJpYWJsZSBpbiBhbiBl eHByZXNzaW9uIGxpc3QuCisgKiBzZXNzaW9uIHZhcmlhYmxlIGluIGFuIGV4cHJlc3Npb24gbGlz dCwgb3IgYXMgdGhlIHRhcmdldCBvZiBhIExFVCBzdGF0ZW1lbnQuCiAgKi8KIHN0YXRpYyB2b2lk CiByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQg dmFyaWQpCkBAIC0zODExLDkgKzM4MzIsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNf d2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJfQogCiAJCQkvKgot CQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNo IGFzIEVYUExBSU4pCi0JCQkgKiB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVk IHF1ZXJ5LiAgRm9yIHRob3NlLCB3ZQotCQkJICoganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBh dHRlbnRpb24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KKwkJCSAqIElnbm9yZSBvdGhlciB1dGls aXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOCisJCQkgKiBvciBM RVQpIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBGb3IKKwkJ CSAqIHRob3NlLCB3ZSBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0byB0aGUg Y29udGFpbmVkCisJCQkgKiBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkgPSBVdGlsaXR5Q29udGFp bnNRdWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5ID09IE5VTEwpCkBAIC0z ODM2LDYgKzM4NTgsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUg Km5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5kX29pZChjb250ZXh0LT5n bG9iLT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJLyogcmVjb3JkIGRlcGVu ZGVuY3kgb24gdGhlIHRhcmdldCB2YXJpYWJsZSBvZiBhIExFVCBjb21tYW5kICovCisJCWlmIChP aWRJc1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJs ZV9kZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSk7CisKIAkJLyogQW5k IHJlY3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAqLwogCQlyZXR1cm4gcXVl cnlfdHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlciwK IAkJCQkJCQkJIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggOTViYjA2MjBmMzku LjkyNzE1YmY4YjFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUg InV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0 aWxzL3N5c2NhY2hlLmgiCiAKIApAQCAtODMsNiArODQsOCBAQCBzdGF0aWMgUXVlcnkgKnRyYW5z Zm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQ3Jl YXRlVGFibGVBc1N0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1DYWxsU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCUNhbGxTdG10ICpzdG10KTsKK3N0YXRpYyBRdWVy eSAqdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJICAgTGV0U3Rt dCAqc3RtdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Mb2NraW5nQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgUXVlcnkgKnFyeSwKIAkJCQkJCQkJICAgTG9ja2luZ0NsYXVzZSAqbGMsIGJvb2wg cHVzaGVkRG93bik7CiAjaWZkZWYgREVCVUdfTk9ERV9URVNUU19FTkFCTEVECkBAIC0zMzAsNiAr MzMzLDcgQEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJl ZSkKIAkJCWNhc2UgVF9VcGRhdGVTdG10OgogCQkJY2FzZSBUX0RlbGV0ZVN0bXQ6CiAJCQljYXNl IFRfTWVyZ2VTdG10OgorCQkJY2FzZSBUX0xldFN0bXQ6CiAJCQkJKHZvaWQpIHRlc3RfcmF3X2V4 cHJlc3Npb25fY292ZXJhZ2UocGFyc2VUcmVlLCBOVUxMKTsKIAkJCQlicmVhazsKIAkJCWRlZmF1 bHQ6CkBAIC00MDksNiArNDEzLDExIEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpwYXJzZVRyZWUpCiAJCQkJCQkJCQkgICAoQ2FsbFN0bXQgKikgcGFyc2VUcmVlKTsK IAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcmVzdWx0ID0gdHJhbnNmb3JtTGV0 U3RtdChwc3RhdGUsCisJCQkJCQkJCQkgIChMZXRTdG10ICopIHBhcnNlVHJlZSk7CisJCQlicmVh azsKKwogCQlkZWZhdWx0OgogCiAJCQkvKgpAQCAtNDYwLDYgKzQ2OSw3IEBAIHN0bXRfcmVxdWly ZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQogCQljYXNlIFRfU2VsZWN0U3Rt dDoKIAkJY2FzZSBUX1JldHVyblN0bXQ6CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2Ug VF9MZXRTdG10OgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJCWJyZWFrOwogCkBAIC0zMzYyLDYgKzMz NzIsMjMzIEBAIHRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0bXQg KnN0bXQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0bXQgLQor ICoJICB0cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkgKgordHJh bnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7CisJUXVl cnkJICAgKnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhwckxpc3QgPSBO SUw7CisJTGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCUxp c3RDZWxsICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpzZWxlY3RRdWVy eTsKKwlPaWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90 X3VuaXF1ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBt b2Q7CisJT2lkCQkJY29sbGlkOworCUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlpbnQJCQlpbmRp cmVjdGlvbl9zdGFydDsKKwlpbnQJCQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0IGJlIGFueSBv dXRlciBXSVRIIHRvIHdvcnJ5IGFib3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9jdGVuYW1lc3Bh Y2UgPT0gTklMKTsKKworCW5hbWVzID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJnZXQpOworCisJ LyogbG9ja3MgdGhlIHZhcmlhYmxlIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICovCisJdmFyaWQg PSBJZGVudGlmeVZhcmlhYmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7 CisJaWYgKG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wiIG9mIExF VCBjb21tYW5kIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSks CisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJ aWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUg XCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAor CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCS8q CisJICogQ2FsY3VsYXRlIHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGluZGlyZWN0 aW9uIGluIGxpc3QsIGFuZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBzdG9yZSBw b2ludGVyIG9uIGZpcnN0IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJlY3Rpb25f c3RhcnQgPSBsaXN0X2xlbmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJaWYgKGxp c3RfbGVuZ3RoKHN0bXQtPnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5kaXJlY3Rp b25faGVhZCA9IGxpc3RfbnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9zdGFydCk7 CisKKwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBp ZCwgJnR5cG1vZCwgJmNvbGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0eXBlKHR5 cGlkKTsKKworCWlmIChhdHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJj YW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiBiZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCWF0 dHJuYW1lLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCks CisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBS X0tJTkRfVVBEQVRFX1RBUkdFVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVyc2lv biBvZiAidW5rbm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zID0g ZmFsc2U7CisKKwlzZWxlY3RRdWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10LT5xdWVy eSk7CisKKwkvKiB0aGUgZ3JhbW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVDVCAqLwor CUFzc2VydChJc0Eoc2VsZWN0UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29tbWFuZFR5 cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Npb24gbGlz dCBmb3IgdGhlIExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZQorCSAqIG5vbi1yZXNqdW5rIGNvbHVt bnMgZnJvbSB0aGUgc3VicXVlcnkuCisJICovCisJZXhwckxpc3QgPSBOSUw7CisJZm9yZWFjaF9u b2RlKFRhcmdldEVudHJ5LCB0bGUsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJaWYg KHRsZS0+cmVzanVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVuZChleHBy TGlzdCwgdGxlLT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVtbiByZXN1 bHQgKi8KKwlpZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFs KCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAi YXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIGxp c3RfbGVuZ3RoKGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCkpLAor CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKChO b2RlICopIGV4cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZvcmVhY2go bGMsIGV4cHJMaXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7 CisJCUV4cHIJICAgKmNvZXJjZWRfZXhwcjsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJCS8qIG5v dyB3ZSBjYW4gcmVhZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBydHlwaWQg PSBleHByVHlwZSgoTm9kZSAqKSBleHByKTsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJ eworCQkJYm9vbAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisJCQlQ YXJhbQkgICAqcGFyYW07CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVtZW50X3R5 cGUodHlwaWQpKTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOwor CisJCQlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJB TV9WQVJJQUJMRTsKKwkJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCQlwYXJhbS0+cGFy YW10eXBlID0gdHlwaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisKKwkJCS8q CisJCQkgKiBUaGUgcGFyYW1ldGVyIHVzZWQgYXMgYmFzZW5vZGUgaGFzIHRvIGhhdmUgc3BlY2lh bCBtYXJrLAorCQkJICogYmVjYXVzZSByZXF1aXJlcyBzcGVjaWFsIGFjY2VzcyB3aGVuIHdlIGRv IFNFTEVDVCBhY2Nlc3MgY2hlY2suCisJCQkgKi8KKwkJCXBhcmFtLT5wYXJhbWJhc2Vub2RlID0g dHJ1ZTsKKworCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQl0cmFuc2Zvcm1Bc3NpZ25t ZW50SW5kaXJlY3Rpb24ocHN0YXRlLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBwYXJhbSwKKwkJ CQkJCQkJCQkJICAgdGFyZ2V0TmFtZSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0SXNBcnJheSwKKwkJ CQkJCQkJCQkJICAgdHlwaWQsCisJCQkJCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkJCQkJICAg SW52YWxpZE9pZCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+dGFyZ2V0LAorCQkJCQkJCQkJCQkgICBp bmRpcmVjdGlvbl9oZWFkLAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJ CQkgICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJCQkgICBzdG10LT5sb2NhdGlvbik7 CisJCX0KKwkJZWxzZQorCQkJY29lcmNlZF9leHByID0gKEV4cHIgKikKKwkJCQljb2VyY2VfdG9f dGFyZ2V0X3R5cGUocHN0YXRlLAorCQkJCQkJCQkJICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJ ICBleHBydHlwaWQsCisJCQkJCQkJCQkgIHR5cGlkLCB0eXBtb2QsCisJCQkJCQkJCQkgIENPRVJD SU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJ CQkJICBzdG10LT5sb2NhdGlvbik7CisKKwkJaWYgKGNvZXJjZWRfZXhwciA9PSBOVUxMKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCks CisJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlICVzLCBidXQgZXhw cmVzc2lvbiBpcyBvZiB0eXBlICVzIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJ CWZvcm1hdF90eXBlX2JlKGV4cHJ0eXBpZCkpLAorCQkJCQkgZXJyaGludCgiWW91IHdpbGwgbmVl ZCB0byByZXdyaXRlIG9yIGNhc3QgdGhlIGV4cHJlc3Npb24uIiksCisJCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUgKikgZXhwcikpKSk7CisKKwkJZXhw ckxpc3RDb2VyID0gbGFwcGVuZChleHByTGlzdENvZXIsIGNvZXJjZWRfZXhwcik7CisJfQorCisJ LyogZ2VuZXJhdGUgcXVlcnkncyB0YXJnZXQgbGlzdCB1c2luZyB0aGUgY29tcHV0ZWQgbGlzdCBv ZiBleHByZXNzaW9ucyAqLworCXF1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCXF1ZXJ5LT5jb21t YW5kVHlwZSA9IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdENvZXIpCisJewor CQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJVGFyZ2V0RW50cnkgKnRs ZTsKKworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoZXhwciwKKwkJCQkJCQkgIGkgKyAxLAorCQkJ CQkJCSAgRmlndXJlQ29sbmFtZSgoTm9kZSAqKSBleHByKSwKKwkJCQkJCQkgIGZhbHNlKTsKKwkJ cXVlcnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0bGUpOworCX0K KworCS8qIGRvbmUgYnVpbGRpbmcgdGhlIHJhbmdlIHRhYmxlIGFuZCBqb2ludHJlZSAqLworCXF1 ZXJ5LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOworCXF1ZXJ5LT5qb2ludHJlZSA9IG1ha2VG cm9tRXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOworCisJcXVlcnktPmhhc1RhcmdldFNS RnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKKwlxdWVyeS0+aGFzU3ViTGlua3MgPSBwc3Rh dGUtPnBfaGFzU3ViTGlua3M7CisJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUt PnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKworCS8qIHRoaXMgaXMgdG9wLWxldmVsIHF1ZXJ5ICov CisJcXVlcnktPmNhblNldFRhZyA9IHRydWU7CisKKwkvKgorCSAqIFNhdmUgdGFyZ2V0IHNlc3Np b24gdmFyaWFibGUgSUQuIEl0IGlzIHVzZWQgbGF0ZXIgZm9yIGFjcXVpcmluZyBhbgorCSAqIEFj Y2Vzc1NoYXJlTG9jayBvbiB0YXJnZXQgdmFyaWFibGUsIHNldHRpbmcgcGxhbiBkZXBlbmRlbmN5 IGFuZCBmaW5hbGx5CisJICogZm9yIGNyZWF0aW5nIFZhcmlhYmxlRGVzdFJlY2VpdmVyLgorCSAq LworCXF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSA9IHZhcmlkOworCisJYXNzaWduX3F1ZXJ5X2NvbGxh dGlvbnMocHN0YXRlLCBxdWVyeSk7CisKKwkvKgorCSAqIFRoZSBxdWVyeSBpcyBleGVjdXRlZCBh cyB1dGlsaXR5IGNvbW1hbmQgYnkgbmVzdGVkIGV4ZWN1dG9yIGNhbGwuCisJICogQXNzaWduZWQg cXVlcnlJZCBpcyByZXF1aXJlZCBpbiB0aGlzIGNhc2UuCisJICovCisJaWYgKElzUXVlcnlJZEVu YWJsZWQoKSkKKwkJSnVtYmxlUXVlcnkocXVlcnkpOworCisJc3RtdC0+cXVlcnkgPSAoTm9kZSAq KSBxdWVyeTsKKworCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkg Ki8KKwlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CisJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENN RF9VVElMSVRZOworCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSAoTm9kZSAqKSBzdG10OworCisJcmV0 dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIFByb2R1Y2UgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24g b2YgYSBMb2NrQ2xhdXNlU3RyZW5ndGggdmFsdWUuCiAgKiBUaGlzIHNob3VsZCBvbmx5IGJlIGFw cGxpZWQgdG8gdmFsaWQgdmFsdWVzIChub3QgTENTX05PTkUpLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNTJh MjQyY2NjN2YuLmE4MGIwMzU4ZDY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTI5Niw3ICsyOTYsNyBAQCBz dGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlEcm9wVHJhbnNmb3JtU3RtdAogCQlEcm9wVXNlck1h cHBpbmdTdG10IEV4cGxhaW5TdG10IEZldGNoU3RtdAogCQlHcmFudFN0bXQgR3JhbnRSb2xlU3Rt dCBJbXBvcnRGb3JlaWduU2NoZW1hU3RtdCBJbmRleFN0bXQgSW5zZXJ0U3RtdAotCQlMaXN0ZW5T dG10IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3Rt dCBQcmVwYXJhYmxlU3RtdAorCQlMZXRTdG10IExpc3RlblN0bXQgTG9hZFN0bXQgTG9ja1N0bXQg TWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBhcmFibGVTdG10CiAJCUNy ZWF0ZUZ1bmN0aW9uU3RtdCBBbHRlckZ1bmN0aW9uU3RtdCBSZWluZGV4U3RtdCBSZW1vdmVBZ2dy U3RtdAogCQlSZW1vdmVGdW5jU3RtdCBSZW1vdmVPcGVyU3RtdCBSZW5hbWVTdG10IFJldHVyblN0 bXQgUmV2b2tlU3RtdCBSZXZva2VSb2xlU3RtdAogCQlSdWxlQWN0aW9uU3RtdCBSdWxlQWN0aW9u U3RtdE9yRW1wdHkgUnVsZVN0bXQKQEAgLTc0MSw3ICs3NDEsNyBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExBTkdVQUdFIExBUkdFX1AgTEFTVF9Q IExBVEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1J VCBMSVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVUIExF VkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RB TVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAogCU1BUFBJTkcgTUFUQ0ggTUFUQ0hF RCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0VfQUNUSU9OIE1FVEhPRApAQCAtMTA4 OCw2ICsxMDg4LDcgQEAgc3RtdDoKIAkJCXwgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQKIAkJCXwg SW5kZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJCXwgTGV0U3RtdAogCQkJfCBMaXN0ZW5TdG10 CiAJCQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJfCBMb2FkU3RtdApAQCAtMTI5MTUsNiArMTI5 MTYsMzggQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICovCQkJCQkJeyAkJCA9IDA7IH0KIAkJCXwgV0lU SE9VVCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7CiAKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor ICoKKyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFURU1FTlQKKyAqCisgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCitMZXRTdG10OglMRVQgQ29sSWQgb3B0X2luZGlyZWN0aW9uICc9JyBhX2V4cHIKKwkJ CQl7CisJCQkJCUxldFN0bXQJICAgKm4gPSBtYWtlTm9kZShMZXRTdG10KTsKKwkJCQkJU2VsZWN0 U3RtdCAqc2VsZWN0OworCQkJCQlSZXNUYXJnZXQgICpyZXM7CisKKwkJCQkJbi0+dGFyZ2V0ID0g bGNvbnMobWFrZVN0cmluZygkMiksCisJCQkJCQkJCQkgIGNoZWNrX2luZGlyZWN0aW9uKCQzLCB5 eXNjYW5uZXIpKTsKKworCQkJCQlzZWxlY3QgPSBtYWtlTm9kZShTZWxlY3RTdG10KTsKKwkJCQkJ cmVzID0gbWFrZU5vZGUoUmVzVGFyZ2V0KTsKKworCQkJCQkvKiBjcmVhdGUgdGFyZ2V0IGxpc3Qg Zm9yIGltcGxpY2l0IHF1ZXJ5ICovCisJCQkJCXJlcy0+bmFtZSA9IE5VTEw7CisJCQkJCXJlcy0+ aW5kaXJlY3Rpb24gPSBOSUw7CisJCQkJCXJlcy0+dmFsID0gKE5vZGUgKikgJDU7CisJCQkJCXJl cy0+bG9jYXRpb24gPSBANTsKKworCQkJCQlzZWxlY3QtPnRhcmdldExpc3QgPSBsaXN0X21ha2Ux KHJlcyk7CisJCQkJCW4tPnF1ZXJ5ID0gKE5vZGUgKikgc2VsZWN0OworCisJCQkJCW4tPmxvY2F0 aW9uID0gQDI7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCiAgKgogICoJCVFVRVJZOgpAQCAtMTc5OTAsNiArMTgwMjMsNyBAQCB1bnJl c2VydmVkX2tleXdvcmQ6CiAJCQl8IExBUkdFX1AKIAkJCXwgTEFTVF9QCiAJCQl8IExFQUtQUk9P RgorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElTVEVOCiAJCQl8IExPQUQKQEAgLTE4NjA0 LDYgKzE4NjM4LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBMRUFLUFJPT0YKIAkJCXwg TEVBU1QKIAkJCXwgTEVGVAorCQkJfCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElLRQogCQkJfCBM SVNURU4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tl bmQvdGNvcC91dGlsaXR5LmMKaW5kZXggOTdhZDk1OTY1NjEuLjNjZDFiMDg3MWYwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0 aWxpdHkuYwpAQCAtMjM1LDYgKzIzNSw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRP bmx5KE5vZGUgKnBhcnNldHJlZSkKIAogCQljYXNlIFRfQ2FsbFN0bXQ6CiAJCWNhc2UgVF9Eb1N0 bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJewogCQkJCS8qCiAJCQkJICogQ29tbWFuZHMgaW5z aWRlIHRoZSBETyBibG9jayBvciB0aGUgY2FsbGVkIHByb2NlZHVyZSBtaWdodApAQCAtMTA1Nyw2 ICsxMDU4LDExIEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwK IAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCUV4ZWN1dGVMZXRTdG10 KHBzdGF0ZSwgKExldFN0bXQgKikgcGFyc2V0cmVlLCBwYXJhbXMsCisJCQkJCQkgICBxdWVyeUVu diwgcWMpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8qIEFsbCBvdGhlciBzdGF0ZW1l bnQgdHlwZXMgaGF2ZSBldmVudCB0cmlnZ2VyIHN1cHBvcnQgKi8KIAkJCVByb2Nlc3NVdGlsaXR5 U2xvdyhwc3RhdGUsIHBzdG10LCBxdWVyeVN0cmluZywKQEAgLTIxOTgsNiArMjIwNCwxMCBAQCBV dGlsaXR5Q29udGFpbnNRdWVyeShOb2RlICpwYXJzZXRyZWUpCiAJCQkJcmV0dXJuIFV0aWxpdHlD b250YWluc1F1ZXJ5KHFyeS0+dXRpbGl0eVN0bXQpOwogCQkJcmV0dXJuIHFyeTsKIAorCQljYXNl IFRfTGV0U3RtdDoKKwkJCXFyeSA9IGNhc3ROb2RlKFF1ZXJ5LCAoKExldFN0bXQgKikgcGFyc2V0 cmVlKS0+cXVlcnkpOworCQkJcmV0dXJuIHFyeTsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5V TEw7CiAJfQpAQCAtMjM5Niw2ICsyNDA2LDEwIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFy c2V0cmVlKQogCQkJdGFnID0gQ01EVEFHX1NFTEVDVDsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9M ZXRTdG10OgorCQkJdGFnID0gQ01EVEFHX0xFVDsKKwkJCWJyZWFrOworCiAJCQkvKiB1dGlsaXR5 IHN0YXRlbWVudHMgLS0tIHNhbWUgd2hldGhlciByYXcgb3IgY29va2VkICovCiAJCWNhc2UgVF9U cmFuc2FjdGlvblN0bXQ6CiAJCQl7CkBAIC0zMjgxLDYgKzMyOTUsNyBAQCBHZXRDb21tYW5kTG9n TGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX1BMQXNzaWduU3Rt dDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlsZXYgPSBMT0dTVE1UX0FMTDsKIAkJCWJyZWFrOwog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDFkMjBmMzM4MmIwLi5jOGU5MWJl MTQ4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAgLTIwNTMsNiArMjA1Mywx NyBAQCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiAJ CXF1ZXJ5X3RyZWVfd2Fsa2VyKHBhcnNldHJlZSwgU2NhblF1ZXJ5V2Fsa2VyLCAmYWNxdWlyZSwK IAkJCQkJCSAgUVRXX0lHTk9SRV9SQ19TVUJRVUVSSUVTKTsKIAl9CisKKwkvKiBwcm9jZXNzIHNl c3Npb24gdmFyaWFibGVzICovCisJaWYgKE9pZElzVmFsaWQocGFyc2V0cmVlLT5yZXN1bHRWYXJp YWJsZSkpCisJeworCQlpZiAoYWNxdWlyZSkKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJs ZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJICAgMCwgQWNj ZXNzU2hhcmVMb2NrKTsKKwkJZWxzZQorCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVS ZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCQkgMCwgQWNjZXNz U2hhcmVMb2NrKTsKKwl9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZjM3MTQ0 ZTQzN2UuLjFlN2MwMzkyYzQ2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMjUyLDggKzEy NTIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3FsX2NvbW1hbmRzW10gPSB7CiAJIkFC T1JUIiwgIkFMVEVSIiwgIkFOQUxZWkUiLCAiQkVHSU4iLCAiQ0FMTCIsICJDSEVDS1BPSU5UIiwg IkNMT1NFIiwgIkNMVVNURVIiLAogCSJDT01NRU5UIiwgIkNPTU1JVCIsICJDT1BZIiwgIkNSRUFU RSIsICJERUFMTE9DQVRFIiwgIkRFQ0xBUkUiLAogCSJERUxFVEUgRlJPTSIsICJESVNDQVJEIiwg IkRPIiwgIkRST1AiLCAiRU5EIiwgIkVYRUNVVEUiLCAiRVhQTEFJTiIsCi0JIkZFVENIIiwgIkdS QU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMSVNURU4iLCAi TE9BRCIsICJMT0NLIiwKLQkiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJF IiwKKwkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklOU0VSVCBJ TlRPIiwgIkxFVCIsCisJIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLCAiTUVSR0UgSU5UTyIsICJN T1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKIAkiUkVBU1NJR04iLCAiUkVGUkVTSCBNQVRFUklB TElaRUQgVklFVyIsICJSRUlOREVYIiwgIlJFTEVBU0UiLAogCSJSRVNFVCIsICJSRVZPS0UiLCAi Uk9MTEJBQ0siLAogCSJTQVZFUE9JTlQiLCAiU0VDVVJJVFkgTEFCRUwiLCAiU0VMRUNUIiwgIlNF VCIsICJTSE9XIiwgIlNUQVJUIiwKQEAgLTQ3NzksNiArNDc3OSwxNCBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVTIikg JiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwgIlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRIKCIo Iik7CiAKKy8qIExFVCAqLworCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0 IG9mIHZhcmlhYmxlcyAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCS8qIENvbXBs ZXRlIExFVCA8dmFyaWFibGU+IHdpdGggIj0iICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxF VCIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiPSIpOworCiAvKiBMT0NLICovCiAJLyog Q29tcGxldGUgTE9DSyBbVEFCTEVdIFtPTkxZXSB3aXRoIGEgbGlzdCBvZiB0YWJsZXMgKi8KIAll bHNlIGlmIChNYXRjaGVzKCJMT0NLIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmgKaW5kZXggOWY1YzZlMzBmYmQuLjJlYmU4NDc3Nzg5IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0xNywxMSArMTcsMTYgQEAKIAogI2luY2x1ZGUgImNh dGFsb2cvb2JqZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisj aW5jbHVkZSAibm9kZXMvcGFyYW1zLmgiCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgor I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJs ZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0 U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIAogZXh0ZXJuIE9iamVj dEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9u VmFyU3RtdCAqc3RtdCk7CiAKK2V4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJCQkJCQkgICBR dWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7CisKICNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDEwY2Y1MjQ2N2UzLi43NmZhNGEyOWRmMiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQ3LDYgKzE0Nyw5IEBAIHR5cGVkZWYgc3RydWN0IFF1 ZXJ5CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlP aWQJCQlyZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhh dmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdu b3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMjE2OCw2ICsy MTcxLDE4IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlU3RtdAogCVdpdGhDbGF1c2UgKndpdGhDbGF1 c2U7CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KK3R5cGVkZWYgc3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAg KnRhcmdldDsJCQkvKiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBz b3VyY2UgZXhwcmVzc2lvbiAqLworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBMZXRTdG10OworCiAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGF0aG5vZGVzLmgKaW5kZXggY2ZkMmIyNGYzMmEuLjc4YjA5NmYyODQwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRo bm9kZXMuaApAQCAtMTg1LDYgKzE4NSwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFs CiAKIAkvKiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIAlMaXN0CSAgICpzZXNz aW9uVmFyaWFibGVzOworCisJLyogT2lkIG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIHRh cmdldCBvZiBMRVQgY29tbWFuZCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCisJLyogb2lk IG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIGJhc2Ugbm9kZSBmb3IgYXNzaWdubWVudCBp bmRpcmVjdGlvbiAqLworCU9pZAkJCWJhc2Vub2RlU2Vzc2lvblZhcmlkOworCisJLyogdHJ1ZSwg aWYgd2UgZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgb24gYmFzZW5vZGVTZXNzaW9uVmFyaWQg Ki8KKwlib29sCQliYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjazsKIH0gUGxhbm5lckdsb2Jh bDsKIAogLyogbWFjcm8gZm9yIGZldGNoaW5nIHRoZSBQbGFuIGFzc29jaWF0ZWQgd2l0aCBhIFN1 YlBsYW4gbm9kZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCAzNTk3MWUzYTMzOC4uOWQ0ODQz MTVmNzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xNTIsNiArMTUyLDEzIEBAIHR5cGVkZWYg c3RydWN0IFBsYW5uZWRTdG10CiAJLyogT0lEcyBmb3IgUEFSQU1fVkFSSUFCTEUgUGFyYW1zICov CiAJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKIAorCS8qCisJICogVGhlIG9pZCBvZiBzZXNz aW9uIHZhcmlhYmxlIGV4ZWNsdWRlZCBmcm9tIHBlcm1pc3Npb24gY2hlY2suIFRoaXMKKwkgKiBz ZXNzaW9uIHZhcmlhYmxlIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJl Y3Rpb24gKGFuZCBpdAorCSAqIGlzIHVzZWQgb25seSB0aGVyZSkuCisJICovCisJaW50CQkJZXhj bFNlbGVjdFBlcm1DaGVja1ZhcmlkOworCiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGluIHNvdXJj ZSBzdHJpbmcgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwogCS8qIHN0YXJ0IGxvY2F0aW9uLCBvciAt MSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKaW5kZXggOWQ3YjlmNTk4ZjguLmEzY2ZiMWU4MDQ0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApA QCAtNDA0LDYgKzQwNCwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCU9pZAkJCXBhcmFtY29s bGlkOwogCS8qIE9JRCBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGUgb3IgSW52YWxpZE9pZCBpZiBu b25lICovCiAJT2lkCQkJcGFyYW12YXJpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9y ZSk7CisKKwkvKgorCSAqIHRydWUgaWYgcGFyYW0gaXMgdXNlZCBhcyBiYXNlIG5vZGUgb2YgYXNz aWdubWVudCBpbmRpcmVjdGlvbiAod2hlbgorCSAqIHRhcmdldCBvZiBMRVQgc3RhdGVtZW50IGlz IGFuIGFycmF5IGZpZWxkIG9yIGFuIHJlY29yZCBmaWVsZCkuIEZvciB0aGlzCisJICogcGFyYW0g d2UgZG8gbm90IGNoZWNrIFNFTEVDVCBhY2Nlc3MgcmlnaHQsIGJlY2F1c2UgdGhpcyBwYXJhbSBp cyB1c2VkCisJICoganVzdCBmb3IgZXhlY3V0aW9uIG9mIGFuIG1vZGlmeSBvcGVyYXRpb24uCisJ ICovCisJYm9vbAkJcGFyYW1iYXNlbm9kZTsKKwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBp ZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CmluZGV4IDBlYTAyNjVkZTdjLi44YzBhZmZiYTEzYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMjU3 LDYgKzI1Nyw3IEBAIFBHX0tFWVdPUkQoImxlYWRpbmciLCBMRUFESU5HLCBSRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVha3Byb29mIiwgTEVBS1BST09GLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFzdCIsIExFQVNULCBD T0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVmdCIsIExFRlQsIFRZ UEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJsZXQiLCBMRVQs IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxldmVsIiwgTEVW RUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxpa2UiLCBM SUtFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGlt aXQiLCBMSU1JVCwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5o CmluZGV4IGVhODY5NTRkZGVkLi4yMjA4MmMzMDAwOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAg LTE4Niw2ICsxODYsNyBAQCBQR19DTURUQUcoQ01EVEFHX0dSQU5ULCAiR1JBTlQiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0dSQU5UX1JPTEUsICJHUkFOVCBST0xFIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU1QT1JUX0ZPUkVJR05fU0NI RU1BLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19JTlNFUlQsICJJTlNFUlQiLCBmYWxzZSwgZmFsc2UsIHRydWUpCitQR19DTURU QUcoQ01EVEFHX0xFVCwgIkxFVCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0xJU1RFTiwgIkxJU1RFTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0xPQUQsICJMT0FEIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf TE9DS19UQUJMRSwgIkxPQ0sgVEFCTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CmluZGV4 IDNlMjEwNTlhY2MyLi42N2Y3OGE1NDhkYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dApAQCAtMTg5LDMgKzE4OSwyODAgQEAg ZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBzdmFydGVzdF9kbWwudGVzdHRhYgogRFJPUCBST0xFIHJl Z3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKIERST1AgVkFSSUFCTEUgc2VzdmFyNDA7CiBE Uk9QIFRBQkxFIHN2YXJ0ZXN0X2RtbDsKK0NSRUFURSBWQVJJQUJMRSBzZXN2YXI0MyBBUyBudW1l cmljOworLS0gTEVUIHN0bXQgaXMgbm90IGFsbG93ZWQgaW5zaWRlIENURQorV0lUSCB4IEFTIChM RVQgc2VzdmFyNDMgPSAzLjE0KSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJPUjogIHN5bnRheCBlcnJv ciBhdCBvciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVUIHNlc3ZhcjQzID0gMy4x NCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAgICAgICAgIF4KKy0tIExFVCBzdG10IHJl cXVpcmVzIHJlc3VsdCB3aXRoIGV4YWN0bHkgb25lIHJvdworTEVUIHNlc3ZhcjQzID0gZ2VuZXJh dGVfc2VyaWVzKDEsMSk7CistLSBzaG91bGQgZmFpbAorTEVUIHNlc3ZhcjQzID0gZ2VuZXJhdGVf c2VyaWVzKDEsMik7CitFUlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSBy b3cKK0xFVCBzZXN2YXI0MyA9IGdlbmVyYXRlX3NlcmllcygxLDApOworRVJST1I6ICBleHByZXNz aW9uIHJldHVybmVkIG5vIHJvd3MKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sOworQ1JFQVRF IFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCBBUyB2YXJjaGFyOworQ1JFQVRFIFRZUEUg c3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NS RUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDUgQVMgc3ZhcnRlc3RfZG1sLmNvbXBv c2l0ZV90eXBlOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDEo bnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAkJAorTEVUIHNlc3ZhcjQzID0gJDE7CiskJCBMQU5H VUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwMigp CitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0Myk7CiskJCBM QU5HVUFHRSBzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDEoMy4xNCk7CisgZngwMSAKKy0t LS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDIoKSwgVkFSSUFCTEUo c2VzdmFyNDMpOworIGZ4MDIgfCBzZXN2YXI0MyAKKy0tLS0tLSstLS0tLS0tLS0tCisgMy4xNCB8 ICAgICAzLjE0CisoMSByb3cpCisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0 X2RtbC5meDAzKHMgdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJAorQkVHSU4KKyAgTEVU IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJMRShzdmFydGVzdF9k bWwuc2VzdmFyNDQpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2YXJ0ZXN0 X2RtbC5meDAzKCdIZWxsbycpOworIGZ4MDMgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA0KHMgdmFyY2hhcikK K1JFVFVSTlMgdmFyY2hhciBBUyAkJAorQkVHSU4KKyAgTEVUIHNlc3ZhcjQ0ID0gczsKKyAgUkVU VVJOIFZBUklBQkxFKHNlc3ZhcjQ0KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbAorU0VUIFNF QVJDSF9QQVRIIFRPICdzdmFydGVzdF9kbWwnOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA0KCdI ZWxsbycpOworIGZ4MDQgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA1KGEgaW50LCBiIGludCwgYyBpbnQpCitS RVRVUk5TIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBUyAkJAorQkVHSU4KKyAgTEVUIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVyhhLCBiLCBjKTsKKyAgUkVUVVJOIFZBUklBQkxFKHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNU IHJvd190b19qc29uKHN2YXJ0ZXN0X2RtbC5meDA1KDEwLCAyMCwgMzApKTsKKyAgICAgIHJvd190 b19qc29uICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMCwiYiI6MjAs ImMiOjMwfQorKDEgcm93KQorCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1 KTsKKyAgc2VzdmFyNDUgIAorLS0tLS0tLS0tLS0tCisgKDEwLDIwLDMwKQorKDEgcm93KQorCitT RUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS4qOworIGEgIHwgYiAgfCBjICAK Ky0tLS0rLS0tLSstLS0tCisgMTAgfCAyMCB8IDMwCisoMSByb3cpCisKK1NFTEVDVCBWQVJJQUJM RShzdmFydGVzdF9kbWwuc2VzdmFyNDUuYSk7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKwor U0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuYTsKKyBhICAKKy0tLS0KKyAx MAorKDEgcm93KQorCitBTFRFUiBUWVBFIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBREQg QVRUUklCVVRFIGQgaW50OworLS0gY29tcG9zaXRlIHZhbHVlIHNob3VsZCBiZSBzdGlsbCByZWFk YWJsZQorU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkp OworICAgICAgICAgICByb3dfdG9fanNvbiAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7ImEiOjEwLCJiIjoyMCwiYyI6MzAsImQiOm51bGx9CisoMSByb3cp CisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coMTAwLCAyMDAsIDMwMCwgTlVMTCk7 CitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KSk7Cisg ICAgICAgICAgICByb3dfdG9fanNvbiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAwLCJiIjoyMDAsImMiOjMwMCwiZCI6bnVsbH0KKygx IHJvdykKKworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlldworQ1JFQVRFIFZJRVcgc3ZhcnRl c3RfZG1sLnZpZXcwMSBBUyBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS4q OworU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudmlldzAxOworICBhICB8ICBiICB8ICBjICB8 IGQgCistLS0tLSstLS0tLSstLS0tLSstLS0KKyAxMDAgfCAyMDAgfCAzMDAgfCAgCisoMSByb3cp CisKKy0tIHN0YXJ0IG5ldyBjb25uZWN0aW9uCitcYworU0VMRUNUICogRlJPTSBzdmFydGVzdF9k bWwudmlldzAxOworIGEgfCBiIHwgYyB8IGQgCistLS0rLS0tKy0tLSstLS0KKyAgIHwgICB8ICAg fCAgCisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coNSwgNiwgNywg OCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2RtbC52aWV3MDE7CisgYSB8IGIgfCBjIHwgZCAK Ky0tLSstLS0rLS0tKy0tLQorIDUgfCA2IHwgNyB8IDgKKygxIHJvdykKKworLS0gc2hvdWxkIGZh aWwgKGRlcGVuZGVuY3kpCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NTsKK0VS Uk9SOiAgY2Fubm90IGRyb3Agc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDUg YmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgdmlldyBzdmFydGVz dF9kbWwudmlldzAxIGRlcGVuZHMgb24gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2Vz dmFyNDUKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQg b2JqZWN0cyB0b28uCitEUk9QIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKy0tIHRlc3Qgb2Yg YWNjZXNzIHZhcmlhYmxlcyBmcm9tIGdlbmVyaWMgcGxhbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA2KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJAorQkVHSU4K KyAgUkVUVVJOIFZBUklBQkxFKHNlc3ZhcjQzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0xFVCBzZXN2YXI0 MyA9IDYuMjg7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsKKyBmeDA2IAorLS0tLS0tCisg Ni4yOAorKDEgcm93KQorCitMRVQgc2VzdmFyNDMgPSBWQVJJQUJMRShzZXN2YXI0MykgKiAyOwor U0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisgZngwNiAgCistLS0tLS0tCisgMTIuNTYKKygx IHJvdykKKworLS0gcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBWQVJJQUJMRSBz ZXN2YXI0MzsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyNDMiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTog VkFSSUFCTEUoc2VzdmFyNDMpCisgICAgICAgICAgICAgICAgIF4KK1FVRVJZOiAgVkFSSUFCTEUo c2VzdmFyNDMpCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLmZ4MDYo KSBsaW5lIDMgYXQgUkVUVVJOCitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMgbnVtZXJpYzsK K0xFVCBzZXN2YXI0MyA9IDIuNzI7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsKKyBmeDA2 IAorLS0tLS0tCisgMi43MgorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHNlc3ZhcjQzOworQ1JF QVRFIERPTUFJTiBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsIEFTIGludCBDSEVDSyh2YWx1ZSBJ UyBOT1QgTlVMTCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ2IEFTIHN2 YXJ0ZXN0X2RtbC5pbnRfbm90X251bGw7CistLSBzaG91bGQgZmFpbAorTEVUIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0NiA9IE5VTEw7CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gc3ZhcnRlc3RfZG1s LmludF9ub3RfbnVsbCB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJpbnRfbm90X251bGxfY2hl Y2siCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDYgPSAxMDA7CitM RVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDEsMiwzLDQpOworTEVUIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0NS5hID0gMTAwOworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0NSkpOworICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMDAsImIiOjIsImMiOjMsImQiOjR9CisoMSBy b3cpCisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsK K0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBzdmFydGVzdF9kbWwgVE8gcmVncmVzc19zdmFydGVzdF9k bWxfd3JpdGVfb25seV9yb2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0NSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CitTRVQg Uk9MRSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CistLSBzaG91bGQg ZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQ1CistLSBzaG91bGQg YmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYiA9IDIwMDsKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1 KSk7CisgICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgeyJhIjoxMDAsImIiOjIwMCwiYyI6MywiZCI6NH0KKygxIHJvdykKKwor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBBUyBpbnRbXTsKK0xFVCBzdmFy dGVzdF9kbWwuc2VzdmFyNDcgPSBBUlJBWVsxLDIsM107CitHUkFOVCBVUERBVEUgT04gVkFSSUFC TEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3IFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29u bHlfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9s ZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3 KTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgc2VzdmFy NDcKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0N1sxXSA9IDIwMDsK K1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3Zh cjQ3KTsKKyBzZXN2YXI0NyAgCistLS0tLS0tLS0tLQorIHsyMDAsMiwzfQorKDEgcm93KQorCitD UkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4IEFTIGludDRtdWx0aXJhbmdlW107 CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4ID0gTlVMTDsKK0xFVCBzdmFydGVzdF9kbWwuc2Vz dmFyNDggPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgc3Zh cnRlc3RfZG1sLnNlc3ZhcjQ4WzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNUIFZBUklB QkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCk7CisgICAgICAgICAgICAgICAgc2VzdmFyNDggICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg eyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KKygxIHJvdykKKworLS0gdGVz dCBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0OSBBUyBpbnQ7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ5ID0gJDEgXGJpbmQgMTAg XGcKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOworIHNlc3ZhcjQ5IAor LS0tLS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFy NDkgPSAkMSBccGFyc2UgbGV0cHMKK1xiaW5kX25hbWVkIGxldHBzIDEwMCBcZworU0VMRUNUIFZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7Cisgc2VzdmFyNDkgCistLS0tLS0tLS0tCisg ICAgICAxMDAKKygxIHJvdykKKworXGNsb3NlX3ByZXBhcmVkIGxldHBzCitEUk9QIFNDSEVNQSBz dmFydGVzdF9kbWwgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMTQgb3RoZXIg b2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NAorZHJvcCBjYXNjYWRlcyB0byB0eXBlIHN2YXJ0ZXN0X2RtbC5jb21w b3NpdGVfdHlwZQorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0NQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngwMShu dW1lcmljKQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngwMigpCitk cm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC5meDAzKGNoYXJhY3RlciB2YXJ5 aW5nKQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngwNChjaGFyYWN0 ZXIgdmFyeWluZykKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLmZ4MDUo aW50ZWdlcixpbnRlZ2VyLGludGVnZXIpCitkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHN2YXJ0 ZXN0X2RtbC5meDA2KCkKK2Ryb3AgY2FzY2FkZXMgdG8gdHlwZSBzdmFydGVzdF9kbWwuaW50X25v dF9udWxsCitkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ2Citkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ3Citkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ4Citkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ5CitEUk9QIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKaW5kZXgg YjI4NzBkZGU5ZTkuLjJjOGQ2YzNhNDk3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzX2RtbC5zcWwKQEAgLTE1OSwzICsxNTksMTkyIEBAIERST1AgUk9MRSBy ZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CiBEUk9QIFZBUklBQkxFIHNlc3ZhcjQwOwog CiBEUk9QIFRBQkxFIHN2YXJ0ZXN0X2RtbDsKKworQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjQzIEFT IG51bWVyaWM7CisKKy0tIExFVCBzdG10IGlzIG5vdCBhbGxvd2VkIGluc2lkZSBDVEUKK1dJVEgg eCBBUyAoTEVUIHNlc3ZhcjQzID0gMy4xNCkgU0VMRUNUICogRlJPTSB4OworCistLSBMRVQgc3Rt dCByZXF1aXJlcyByZXN1bHQgd2l0aCBleGFjdGx5IG9uZSByb3cKK0xFVCBzZXN2YXI0MyA9IGdl bmVyYXRlX3NlcmllcygxLDEpOworCistLSBzaG91bGQgZmFpbAorTEVUIHNlc3ZhcjQzID0gZ2Vu ZXJhdGVfc2VyaWVzKDEsMik7CitMRVQgc2VzdmFyNDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwwKTsK KworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9kbWw7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ0IEFTIHZhcmNoYXI7CitDUkVBVEUgVFlQRSBzdmFydGVzdF9kbWwuY29tcG9z aXRlX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NSBBUyBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGU7CisKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDAxKG51bWVyaWMpCitSRVRVUk5T IHZvaWQgQVMgJCQKK0xFVCBzZXN2YXI0MyA9ICQxOworJCQgTEFOR1VBR0Ugc3FsOworCitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwMigpCitSRVRVUk5TIG51bWVy aWMgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0Myk7CiskJCBMQU5HVUFHRSBzcWw7CisK K1NFTEVDVCBzdmFydGVzdF9kbWwuZngwMSgzLjE0KTsKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngw MigpLCBWQVJJQUJMRShzZXN2YXI0Myk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2 YXJ0ZXN0X2RtbC5meDAzKHMgdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJAorQkVHSU4K KyAgTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJMRShzdmFy dGVzdF9kbWwuc2VzdmFyNDQpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qg c3ZhcnRlc3RfZG1sLmZ4MDMoJ0hlbGxvJyk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHN2YXJ0ZXN0X2RtbC5meDA0KHMgdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJAorQkVH SU4KKyAgTEVUIHNlc3ZhcjQ0ID0gczsKKyAgUkVUVVJOIFZBUklBQkxFKHNlc3ZhcjQ0KTsKK0VO RAorJCQgTEFOR1VBR0UgcGxwZ3NxbAorU0VUIFNFQVJDSF9QQVRIIFRPICdzdmFydGVzdF9kbWwn OworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDQoJ0hlbGxvJyk7CisKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA1KGEgaW50LCBiIGludCwgYyBpbnQpCitSRVRV Uk5TIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBUyAkJAorQkVHSU4KKyAgTEVUIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVyhhLCBiLCBjKTsKKyAgUkVUVVJOIFZBUklBQkxFKHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qg cm93X3RvX2pzb24oc3ZhcnRlc3RfZG1sLmZ4MDUoMTAsIDIwLCAzMCkpOworCitTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KTsKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9k bWwuc2VzdmFyNDUpLio7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmEp OworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuYTsKKworQUxURVIgVFlQ RSBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUgQUREIEFUVFJJQlVURSBkIGludDsKKworLS0g Y29tcG9zaXRlIHZhbHVlIHNob3VsZCBiZSBzdGlsbCByZWFkYWJsZQorU0VMRUNUIHJvd190b19q c29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworCitMRVQgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ1ID0gUk9XKDEwMCwgMjAwLCAzMDAsIE5VTEwpOworU0VMRUNUIHJvd190b19qc29u KFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworCistLSB1c2UgdmFyaWFibGVzIGlu c2lkZSB2aWV3CitDUkVBVEUgVklFVyBzdmFydGVzdF9kbWwudmlldzAxIEFTIFNFTEVDVCBWQVJJ QUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpLio7CitTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2Rt bC52aWV3MDE7CisKKy0tIHN0YXJ0IG5ldyBjb25uZWN0aW9uCitcYworU0VMRUNUICogRlJPTSBz dmFydGVzdF9kbWwudmlldzAxOworCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDUs IDYsIDcsIDgpOworCitTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2RtbC52aWV3MDE7CisKKy0tIHNo b3VsZCBmYWlsIChkZXBlbmRlbmN5KQorRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFy NDU7CisKK0RST1AgVklFVyBzdmFydGVzdF9kbWwudmlldzAxOworCistLSB0ZXN0IG9mIGFjY2Vz cyB2YXJpYWJsZXMgZnJvbSBnZW5lcmljIHBsYW5zCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBzdmFydGVzdF9kbWwuZngwNigpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK0JFR0lOCisgIFJF VFVSTiBWQVJJQUJMRShzZXN2YXI0Myk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitT RVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworTEVUIHNlc3ZhcjQz ID0gNi4yODsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisKK0xFVCBzZXN2YXI0MyA9 IFZBUklBQkxFKHNlc3ZhcjQzKSAqIDI7CisKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigpOwor CistLSBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklBQkxFIHNlc3ZhcjQz OworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisKK0NSRUFU RSBWQVJJQUJMRSBzZXN2YXI0MyBBUyBudW1lcmljOworCitMRVQgc2VzdmFyNDMgPSAyLjcyOwor CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsKKworRFJPUCBWQVJJQUJMRSBzZXN2YXI0MzsK KworQ1JFQVRFIERPTUFJTiBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsIEFTIGludCBDSEVDSyh2 YWx1ZSBJUyBOT1QgTlVMTCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ2 IEFTIHN2YXJ0ZXN0X2RtbC5pbnRfbm90X251bGw7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgc3Zh cnRlc3RfZG1sLnNlc3ZhcjQ2ID0gTlVMTDsKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0NiA9IDEwMDsKKworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVygx LDIsMyw0KTsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYSA9IDEwMDsKK1NFTEVDVCByb3df dG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKworQ1JFQVRFIFJPTEUg cmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworR1JBTlQgVVNBR0UgT04gU0NI RU1BIHN2YXJ0ZXN0X2RtbCBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7 CitHUkFOVCBVUERBVEUgT04gVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1IFRPIHJlZ3Jl c3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc19z dmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NS5iID0gMjAwOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitT RUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KSk7CisKK0NS RUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDcgQVMgaW50W107CitMRVQgc3ZhcnRl c3RfZG1sLnNlc3ZhcjQ3ID0gQVJSQVlbMSwyLDNdOworCitHUkFOVCBVUERBVEUgT04gVkFSSUFC TEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3IFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29u bHlfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9y b2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0Nyk7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0N1sxXSA9 IDIwMDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0Nyk7CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDgg QVMgaW50NG11bHRpcmFuZ2VbXTsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDggPSBOVUxMOwor TEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxb MTIsMTQpfSJ9JzsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDhbMl0gPSAne1s1LDgpLFsxMiwx MDApfSc7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4KTsKKworLS0gdGVz dCBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0OSBBUyBpbnQ7CisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDkgPSAkMSBcYmluZCAx MCBcZworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7CisKK0xFVCBzdmFy dGVzdF9kbWwuc2VzdmFyNDkgPSAkMSBccGFyc2UgbGV0cHMKK1xiaW5kX25hbWVkIGxldHBzIDEw MCBcZworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7CisKK1xjbG9zZV9w cmVwYXJlZCBsZXRwcworCitEUk9QIFNDSEVNQSBzdmFydGVzdF9kbWwgQ0FTQ0FERTsKK0RST1Ag Uk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CmRpZmYgLS1naXQgYS9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CmluZGV4IDU5NGY5ZTI0OTBkLi4zZTY2NWQyYzRiZSAxMDA2NDQKLS0tIGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKQEAgLTE1NDYsNiArMTU0Niw3IEBAIExhcmdlT2JqZWN0RGVzYwogTGF0Y2gK IExhdW5jaGVyTGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xldFN0bXQKIExleERlc2Ny CiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFzaEtleQotLSAKMi41MC4xCgo= --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0010-svariableReceiver.patch" Content-Disposition: attachment; filename="v20250813-0010-svariableReceiver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczihz5 RnJvbSA0OTE0NWFiNWVmMzQ1MDJlM2RlMDIyYzAxNTI1ZDAxYmY5YTdlZDNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMSBKdW4gMjAyNSAyMToyMDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAv MTVdIHN2YXJpYWJsZVJlY2VpdmVyCgphbGxvd3MgdG8gc3RvcmUgcmVzdWx0IG9mIHRoZSBxdWVy eSB0byBzZXNzaW9uIHZhcmlhYmxlCgpDaGVjayBjb3JyZWN0IGZvcm1hdCBvZiByZXN1bHQgLSBv bmUgY29sdW1uLCBvbmUgcm93LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIHwgMTcy ICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC90Y29wL2Rlc3QuYyAgICAgICAg ICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmggfCAgMjIgKysrCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgfCAgIDEgKwog NyBmaWxlcyBjaGFuZ2VkLCAyMDUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtl ZmlsZQppbmRleCAxMTExOGQwY2UwMi4uNzEyNDhhMzRmMjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxl CkBAIC03Niw2ICs3Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRvd0FnZy5vIFwKIAlub2RlV29y a3RhYmxlc2Nhbi5vIFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVjZWl2ZXIubyBcCiAJdHF1ZXVl Lm8gXAogCXRzdG9yZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAppbmRleCAy Y2VhNDFmODc3MS4uNDkxMDkyZmNjNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCkBAIC02 NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25vZGVXaW5kb3dBZ2cu YycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAgJ3N2YXJpYWJsZVJl Y2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIuYycsCiApCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNDFhOTY3Y2I0YjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEsMTcyIEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisgKgkgIEFuIGltcGxl bWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZhbHVlIGlu CisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNs dWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisjaW5jbHVkZSAiYWNj ZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCisjaW5jbHVkZSAidXRp bHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogVGhpcyBEZXN0UmVjZWl2ZXIgaXMgdXNlZCBieSB0 aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCB0byBhCisgKiBzZXNzaW9uIHZh cmlhYmxlLiAgVGhlIHJlc3VsdCBoYXMgdG8gaGF2ZSBvbmx5IG9uZSB0dXBsZSB3aXRoIG9ubHkg b25lCisgKiBub24tZGVsZXRlZCBhdHRyaWJ1dGUuICBUaGUgcm93IGNvdW50ZXIgKGZpZWxkICJy b3dzIikgaXMgaW5jcmVtZW50ZWQKKyAqIGFmdGVyIHJlY2VpdmluZyBhIHJvdywgYW5kIGFuIGVy cm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlIGFyZSBubyByb3dzIG9yCisgKiB0aGVyZSBhcmUgbW9y ZSB0aGFuIG9uZSByZWNlaXZlZCByb3dzLiAgQSByZWNlaXZlZCB0dXBsZSBjYW5ub3QgdG8gaGF2 ZQorICogZGVsZXRlZCBhdHRyaWJ1dGVzLiAgVGhlIHZhbHVlIGlzIGRldG9hc3RlZCBiZWZvcmUg c3RvcmluZyBpdCBpbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3R5cGVkZWYgc3Ry dWN0Cit7CisJRGVzdFJlY2VpdmVyIHB1YjsKKwlPaWQJCQl2YXJpZDsKKwlib29sCQluZWVkX2Rl dG9hc3Q7CS8qIGRvIHdlIG5lZWQgdG8gZGV0b2FzdCB0aGUgYXR0cmlidXRlPyAqLworCWludAkJ CXJvd3M7CQkJLyogcm93IGNvdW50ZXIgKi8KK30gU1ZhcmlhYmxlU3RhdGU7CisKKy8qCisgKiBQ cmVwYXJlIHRvIHJlY2VpdmUgdHVwbGVzIGZyb20gZXhlY3V0b3IuCisgKi8KK3N0YXRpYyB2b2lk CitzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0 aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAo U1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlMT0NLVEFHCQlsb2NrdGFnIFBHX1VTRURfRk9SX0FT U0VSVFNfT05MWTsKKwlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyOworCU9pZAkJCXR5cGlkIFBHX1VT RURfRk9SX0FTU0VSVFNfT05MWTsKKwlPaWQJCQljb2xsaWQgUEdfVVNFRF9GT1JfQVNTRVJUU19P TkxZOworCWludDMyCQl0eXBtb2QgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCisJQXNzZXJ0 KG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVzdFZhcmlhYmxlKTsKKwlBc3NlcnQoT2lkSXNWYWxp ZChteVN0YXRlLT52YXJpZCkpOworCUFzc2VydChTZWFyY2hTeXNDYWNoZUV4aXN0czEoVkFSSUFC TEVPSUQsIG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0KHR5cGVpbmZvLT5uYXR0cyA9PSAxKTsK KworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKworCVNFVF9MT0NLVEFHX09CSkVDVChsb2Nr dGFnLAorCQkJCQkgICBNeURhdGFiYXNlSWQsCisJCQkJCSAgIFZhcmlhYmxlUmVsYXRpb25JZCwK KwkJCQkJICAgbXlTdGF0ZS0+dmFyaWQsCisJCQkJCSAgIDApOworCisJQXNzZXJ0KExvY2tIZWxk QnlNZSgmbG9ja3RhZywgQWNjZXNzU2hhcmVMb2NrLCBmYWxzZSkpOworCisjZW5kaWYKKworCWF0 dHIgPSBUdXBsZURlc2NBdHRyKHR5cGVpbmZvLCAwKTsKKworCUFzc2VydCghYXR0ci0+YXR0aXNk cm9wcGVkKTsKKworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKworCWdldF9zZXNzaW9uX3Zh cmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChteVN0YXRlLT52YXJpZCwKKwkJCQkJCQkJCQkJJnR5 cGlkLAorCQkJCQkJCQkJCQkmdHlwbW9kLAorCQkJCQkJCQkJCQkmY29sbGlkKTsKKworCUFzc2Vy dChhdHRyLT5hdHR0eXBpZCA9PSB0eXBpZCk7CisJQXNzZXJ0KGF0dHItPmF0dHR5cG1vZCA8IDAg fHwgYXR0ci0+YXR0dHlwbW9kID09IHR5cG1vZCk7CisKKyNlbmRpZgorCisJbXlTdGF0ZS0+bmVl ZF9kZXRvYXN0ID0gYXR0ci0+YXR0bGVuID09IC0xOworCW15U3RhdGUtPnJvd3MgPSAwOworfQor CisvKgorICogUmVjZWl2ZSBhIHR1cGxlIGZyb20gdGhlIGV4ZWN1dG9yIGFuZCBzdG9yZSBpdCBp biB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGljIGJvb2wKK3N2YXJpYWJsZVJlY2Vp dmVTbG90KFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJU1Zh cmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlEYXR1bQkJ dmFsdWU7CisJYm9vbAkJaXNudWxsOworCWJvb2wJCWZyZWV2YWwgPSBmYWxzZTsKKworCS8qIG1h a2Ugc3VyZSB0aGUgdHVwbGUgaXMgZnVsbHkgZGVjb25zdHJ1Y3RlZCAqLworCXNsb3RfZ2V0YWxs YXR0cnMoc2xvdCk7CisKKwl2YWx1ZSA9IHNsb3QtPnR0c192YWx1ZXNbMF07CisJaXNudWxsID0g c2xvdC0+dHRzX2lzbnVsbFswXTsKKworCWlmIChteVN0YXRlLT5uZWVkX2RldG9hc3QgJiYgIWlz bnVsbCAmJiBWQVJBVFRfSVNfRVhURVJOQUwoRGF0dW1HZXRQb2ludGVyKHZhbHVlKSkpCisJewor CQl2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bShkZXRvYXN0X2V4dGVybmFsX2F0dHIoKHN0cnVjdCB2 YXJsZW5hICopCisJCQkJCQkJCQkJCQkJICBEYXR1bUdldFBvaW50ZXIodmFsdWUpKSk7CisJCWZy ZWV2YWwgPSB0cnVlOworCX0KKworCW15U3RhdGUtPnJvd3MgKz0gMTsKKworCWlmIChteVN0YXRl LT5yb3dzID4gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1RPT19N QU5ZX1JPV1MpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFuIG9u ZSByb3ciKSkpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlKG15U3RhdGUtPnZhcmlkLCB2YWx1ZSwg aXNudWxsKTsKKworCWlmIChmcmVldmFsKQorCQlwZnJlZShEYXR1bUdldFBvaW50ZXIodmFsdWUp KTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogQ2xlYW4gdXAgYXQgZW5kIG9mIHRoZSBl eGVjdXRvciBydW4KKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXIo RGVzdFJlY2VpdmVyICpzZWxmKQoreworCWlmICgoKFNWYXJpYWJsZVN0YXRlICopIHNlbGYpLT5y b3dzID09IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OT19EQVRB X0ZPVU5EKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MiKSkpOwor fQorCisvKgorICogRGVzdHJveSB0aGUgcmVjZWl2ZXIgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIGl0 CisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXIoRGVzdFJlY2VpdmVy ICpzZWxmKQoreworCXBmcmVlKHNlbGYpOworfQorCisvKgorICogSW5pdGlhbGx5IGNyZWF0ZSBh IERlc3RSZWNlaXZlciBvYmplY3QuCisgKi8KK0Rlc3RSZWNlaXZlciAqCitDcmVhdGVWYXJpYWJs ZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlU3RhdGUgKnNlbGYgPSAoU1Zh cmlhYmxlU3RhdGUgKikgcGFsbG9jMChzaXplb2YoU1ZhcmlhYmxlU3RhdGUpKTsKKworCXNlbGYt PnB1Yi5yZWNlaXZlU2xvdCA9IHN2YXJpYWJsZVJlY2VpdmVTbG90OworCXNlbGYtPnB1Yi5yU3Rh cnR1cCA9IHN2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcjsKKwlzZWxmLT5wdWIuclNodXRkb3duID0g c3ZhcmlhYmxlU2h1dGRvd25SZWNlaXZlcjsKKwlzZWxmLT5wdWIuckRlc3Ryb3kgPSBzdmFyaWFi bGVEZXN0cm95UmVjZWl2ZXI7CisJc2VsZi0+cHViLm15ZGVzdCA9IERlc3RWYXJpYWJsZTsKKwor CXNlbGYtPnZhcmlkID0gdmFyaWQ7CisKKwlyZXR1cm4gKERlc3RSZWNlaXZlciAqKSBzZWxmOwor fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgYi9zcmMvYmFja2VuZC90Y29w L2Rlc3QuYwppbmRleCBiNjIwNzY2YzkzOC4uYjJmNzY0YjY1N2YgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3Rjb3AvZGVzdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCkBAIC0zOCw2 ICszOCw3IEBACiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3IvdHF1ZXVlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKKyNp bmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImxpYnBxL2xp YnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAtMTU1LDYgKzE1Niw5IEBA IENyZWF0ZURlc3RSZWNlaXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJCWNhc2UgRGVzdEV4cGxh aW5TZXJpYWxpemU6CiAJCQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZl cihOVUxMKTsKKworCQljYXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVybiBDcmVhdGVWYXJpYWJs ZURlc3RSZWNlaXZlcihJbnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91bGQgbmV2ZXIgZ2V0IGhl cmUgKi8KQEAgLTE5MSw2ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0IFF1ZXJ5Q29tcGxldGlv biAqcWMsIENvbW1hbmREZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNvcmF0ZWRfbwogCQljYXNl IERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4 cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpA QCAtMjM3LDYgKzI0Miw3IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0IGRlc3QpCiAJCWNhc2Ug RGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhw bGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9CiB9CkBA IC0yODEsNiArMjg3LDcgQEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVzdCBkZXN0KQogCQljYXNl IERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4 cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCBiL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRiNDRkOGI5NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaApAQCAtMCwwICsxLDIyIEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5oCisgKgkgIHByb3Rv dHlwZXMgZm9yIHN2YXJpYWJsZVJlY2VpdmVyLmMKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg b2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2Vp dmVyLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIFNWQVJJQUJMRV9S RUNFSVZFUl9ICisjZGVmaW5lIFNWQVJJQUJMRV9SRUNFSVZFUl9ICisKKyNpbmNsdWRlICJ0Y29w L2Rlc3QuaCIKKworZXh0ZXJuIERlc3RSZWNlaXZlciAqQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2 ZXIoT2lkIHZhcmlkKTsKKworI2VuZGlmCQkJCQkJCS8qIFNWQVJJQUJMRV9SRUNFSVZFUl9IICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3Av ZGVzdC5oCmluZGV4IDAwYzA5MmUzZDdjLi42Y2UzZWEwZTYxNyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdGNvcC9kZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKQEAgLTk3LDYg Kzk3LDcgQEAgdHlwZWRlZiBlbnVtCiAJRGVzdFRyYW5zaWVudFJlbCwJCQkvKiByZXN1bHRzIHNl bnQgdG8gdHJhbnNpZW50IHJlbGF0aW9uICovCiAJRGVzdFR1cGxlUXVldWUsCQkJCS8qIHJlc3Vs dHMgc2VudCB0byB0dXBsZSBxdWV1ZSAqLwogCURlc3RFeHBsYWluU2VyaWFsaXplLAkJLyogcmVz dWx0cyBhcmUgc2VyaWFsaXplZCBhbmQgZGlzY2FyZGVkICovCisJRGVzdFZhcmlhYmxlLAkJCQkv KiByZXN1bHRzIHNlbnQgdG8gc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBDb21tYW5kRGVzdDsKIAog LyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBjY2ZhNmRi ODM5ZC4uNTk0ZjllMjQ5MGQgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNjU1LDYg KzI2NTUsNyBAQCBTVFJMRU4KIFNWCiBTVmFyaWFibGVEYXRhCiBTVmFyaWFibGUKK1NWYXJpYWJs ZVN0YXRlCiBTWU5DSFJPTklaQVRJT05fQkFSUklFUgogU1lTVEVNX0lORk8KIFNhbXBsZVNjYW4K LS0gCjIuNTAuMQoK --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Disposition: attachment; filename="v20250813-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczii56 RnJvbSA5Zjk1NTFhYjRhZTM5NzhlZGZlOTgzYWIxNzU2NmY4Njg2MmE3MDBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMSBKdW4gMjAyNSAwNzozMjowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkv MTVdIGZpbGwgYW4gYXV4aWxpYXJ5IGJ1ZmZlciB3aXRoIHZhbHVlcyBvZiBzZXNzaW9uCiB2YXJp YWJsZXMgdXNlZCBpbiBxdWVyeQoKYW5kIGxvY2tzIHZhcmlhYmxlcyB1c2VkIGluIHF1ZXJ5LiBO b3cgd2UgY2FuIHJlYWQgdGhlIGNvbnRlbnQgb2YgYW55CnNlc3Npb24gdmFyaWFibGUuIERpcmVj dCByZWFkaW5nIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvciBpcyBub3QgYWxsb3dlZCwKc28gd2Ug Y2Fubm90IHRvIHVzZSBzZXNzaW9uIHZhcmlhYmxlcyBpbnNpZGUgQ0FMTCBvciBFWEVDVVRFIGNv bW1hbmRzCihjYW4gYmUgc3VwcG9ydGVkIHdpdGggZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZh cmlhYmxlcyAoZnJvbSBleHByZXNzaW9uCmV4ZWN1dG9yKSAtIHBvc3Rwb25lZCkuCgpVc2luZyBz ZXNzaW9uIHZhcmlhYmxlcyBibG9ja3MgcGFyYWxsZWwgcXVlcnkgZXhlY3V0aW9uLiBJdCBpcyBu b3QKdGVjaG5pY2FsIHByb2JsZW0gKGl0IGp1c3QgbmVlZHMgYSBzZXJpYWxpemF0aW9uL2Rlc2Vy aWFsaXphdGlvbiBvZgplc19zZXNzaW9uX3ZhcmlibGVzIGJ1ZmZlciksIGJ1dCBpdCBpbmNyZWFz ZXMgYSBzaXplIG9mIHBhdGNoIChhbmQgdGhlbgppdCBpcyBwb3N0cG9uZWQpLgotLS0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAyOSArKysKIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICA1NiArKysrKwogc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDI0ICsrLQogc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDE0ICsrCiAuLi4v ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCAgICAgICAgfCAxOTEgKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAg fCAgIDcgKy0KIC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8 IDE2MSArKysrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAg ICAgICAgICAgICB8ICAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDQ3OSBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwppbmRleCBmMTU2OTg3OWI1Mi4uMDQ1N2E3Mjk1MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwpAQCAtMTA2OSw2ICsxMDY5LDM1IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBF eHByU3RhdGUgKnN0YXRlLAogCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNo KTsKIAkJCQkJCX0KIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIFBBUkFNX1ZBUklBQkxFOgorCQkJ CQkJeworCQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJCQkJCQkJ U2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzID0gTlVMTDsKKwkJCQkJ CQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJaWYgKHN0YXRlLT5wYXJlbnQg JiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJCQkJCQllc19zZXNzaW9uX3Zh cmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlczsKKwkJ CQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVz X251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJCQkJCQlBc3NlcnQoZXNfc2Vz c2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8K KwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQor CQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBv dXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJh bS0+cGFyYW1pZF07CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0 aGUgdmFsdWUgbGlrZSBhIGNvbnN0YW50LgorCQkJCQkJCSAqLworCQkJCQkJCXNjcmF0Y2gub3Bj b2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXIt PnZhbHVlOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsK KwkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQl9CisJCQkJ CQlicmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQg cGFyYW1raW5kOiAlZCIsCiAJCQkJCQkJIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKaW5kZXggYjhiOWQyYTg1ZjcuLjQ1M2FiOTRhOGRmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKQEAgLTQzLDcgKzQzLDkgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0 aXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvbWF0dmlldy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0 b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjUGFydGl0aW9uLmgiCkBAIC0xOTYsNiArMTk4 LDYwIEBAIHN0YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBl ZmxhZ3MpCiAJQXNzZXJ0KHF1ZXJ5RGVzYy0+c291cmNlVGV4dCAhPSBOVUxMKTsKIAllc3RhdGUt PmVzX3NvdXJjZVRleHQgPSBxdWVyeURlc2MtPnNvdXJjZVRleHQ7CiAKKwkvKgorCSAqIFRoZSBl eGVjdXRvciBkb2Vzbid0IHdvcmsgd2l0aCBzZXNzaW9uIHZhcmlhYmxlcyBkaXJlY3RseS4gVmFs dWVzIG9mCisJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgY29waWVkIHRvIGEgZGVk aWNhdGVkIGFycmF5LCBhbmQgdGhpcworCSAqIGFycmF5IGlzIHBhc3NlZCB0byB0aGUgZXhlY3V0 b3IuIFRoaXMgYXJyYXkgaXMgc3RhYmxlICJzbmFwc2hvdCIgb2YKKwkgKiB2YWx1ZXMgb2YgdXNl ZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhlcmUgYXJlIHRocmVlIGJlbmVmaXRzIG9mIHRoaXMKKwkg KiBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBwYXJhbWV0 ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5lZWQgbWFrZSBmcmVz aCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlICh0aGlzCisJICogaXMgbmVj ZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuIGJl IGNoYW5nZWQKKwkgKiBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVm ZXJlbmNlIHRvIHByZXZpb3VzbHkKKwkgKiByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVk KS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK Kwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgor CQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQg d2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9m IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJ c1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1 ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0 aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZh bHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlh YmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJp ZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJQWNs UmVzdWx0CWFjbHJlc3VsdDsKKworCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlh YmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1Qp OworCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQlhY2xjaGVja19lcnJvcihh Y2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwKKwkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHZhcmlkKSk7CisKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFs dWUgPQorCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwKKwkJCQkJCQkJICAgJmVzdGF0ZS0+ ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNudWxsKTsKKworCQkJaSsrOworCQl9CisKKwkJZXN0 YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBuU2Vzc2lvblZhcmlhYmxlczsKKwl9CisK IAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmlyb25tZW50LCBpZiBhbnksIGZyb20gcXVl cnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNh Y2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCBhYjFmMmFm MTNlNS4uMWQyMGYzMzgyYjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Bs YW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC0y MDQzLDkgKzIwNDMsMTIgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9v bCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3VibGluayBzdWJxdWVyaWVzLCB0 b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkgKiB0aGUgcnRhYmxlIGFuZCBj dGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBXZSBuZWVkIHRvIGZvcmNlIGEg cmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMgdG9vLCB0byBmaW5kIGFu ZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2VlCisJICogU2NhblF1ZXJ5V2Fs a2VyKS4KIAkgKi8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKKwlpZiAocGFyc2V0cmVl LT5oYXNTdWJMaW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewog CQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwgJmFjcXVpcmUs CiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CkBAIC0yMDUzLDcgKzIwNTYsOCBA QCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiB9CiAK IC8qCi0gKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgZm9yIFNjYW5RdWVyeUZv ckxvY2tzCisgKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgb3IgcmVmZXJlbmNl ZCBzZXNzaW9uIHZhcmlhYmxlcworICogZm9yIFNjYW5RdWVyeUZvckxvY2tzCiAgKi8KIHN0YXRp YyBib29sCiBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKQEAgLTIw NjgsNiArMjA3MiwyMCBAQCBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWly ZSkKIAkJU2NhblF1ZXJ5Rm9yTG9ja3MoY2FzdE5vZGUoUXVlcnksIHN1Yi0+c3Vic2VsZWN0KSwg KmFjcXVpcmUpOwogCQkvKiBGYWxsIHRocm91Z2ggdG8gcHJvY2VzcyBsZWZ0aGFuZCBhcmdzIG9m IFN1YkxpbmsgKi8KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFt CSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJeworCQkJaWYgKGFjcXVpcmUpCisJCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZh cmlhYmxlUmVsYXRpb25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJICAgMCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJCWVsc2UKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0 aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJ fQorCX0KIAogCS8qCiAJICogRG8gTk9UIHJlY3Vyc2UgaW50byBRdWVyeSBub2RlcywgYmVjYXVz ZSBTY2FuUXVlcnlGb3JMb2NrcyBhbHJlYWR5CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IGUxMDdk NmU1ZjgxLi42MzA2MjlmMzRiNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTY0OSw2ICs2NDks MTYgQEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8K IH0gQXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9uVmFyaWFi bGVWYWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBTZXNzaW9u VmFyaWFibGVWYWx1ZQoreworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Np b25WYXJpYWJsZVZhbHVlOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZv cm1hdGlvbgogICoKQEAgLTcwOCw2ICs3MTgsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJ UGFyYW1MaXN0SW5mbyBlc19wYXJhbV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBw YXJhbXMgKi8KIAlQYXJhbUV4ZWNEYXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBv ZiBpbnRlcm5hbCBwYXJhbXMgKi8KIAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJ aW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBudW1iZXIgb2YgdXNlZCB2YXJpYWJs ZXMgKi8KKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXM7IC8qIGFy cmF5IG9mIGNvcGllcyBvZiB2YWx1ZXMgKi8KKwogCVF1ZXJ5RW52aXJvbm1lbnQgKmVzX3F1ZXJ5 RW52OwkvKiBxdWVyeSBlbnZpcm9ubWVudCAqLwogCiAJLyogT3RoZXIgd29ya2luZyBzdGF0ZTog Ki8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXNfZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNf ZG1sLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2UyMTA1OWFj YzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzX2RtbC5vdXQKQEAgLTAsMCArMSwxOTEgQEAKK0NSRUFURSBWQVJJQUJMRSBzZXN2 YXI0MCBBUyBpbnQ7CistLSBzaG91bGQgbm90IGJlIGFjY2Vzc2libGUgd2l0aG91dCB2YXJpYWJs ZSdzIGZlbmNlCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHNlc3ZhcjQwOworRVJST1I6ICBjb2x1 bW4gInNlc3ZhcjQwIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1Qgc2VzdmFyNDA7Cisg ICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0 MCk7Cisgc2VzdmFyNDAgCistLS0tLS0tLS0tCisgICAgICAgICAKKygxIHJvdykKKworQ1JFQVRF IFNDSEVNQSBzdmFydGVzdF9kbWw7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3Zh cjQxIEFTIGludDsKKy0tIGlkZW50aWZpZXIgY29sbGlzaW9uIHRlc3QKK0NSRUFURSBUQUJMRSBz dmFydGVzdF9kbWwoc2VzdmFyNDEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJ0ZXN0X2RtbCBWQUxV RVMoMTAwKTsKK1NFTEVDVCBzZXN2YXI0MSBGUk9NIHN2YXJ0ZXN0X2RtbDsgLS0gMTAwCisgc2Vz dmFyNDEgCistLS0tLS0tLS0tCisgICAgICAxMDAKKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7IC0tIE5VTEwKKyBzZXN2YXI0MSAKKy0tLS0tLS0tLS0K KyAgICAgICAgIAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHNl c3ZhcjQxKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyNDEiIGRvZXNuJ3QgZXhp c3QKK0xJTkUgMTogU0VMRUNUIFZBUklBQkxFKHNlc3ZhcjQxKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgIF4KK1NFVCBTRUFSQ0hfUEFUSCBUTyBzdmFydGVzdF9kbWw7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0MSk7Cisgc2VzdmFyNDEgCistLS0tLS0tLS0tCisg ICAgICAgICAKKygxIHJvdykKKworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CistLSBzaG91 bGQgbm90IGNyYXNoCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUo c3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VORDsKKyQkOworTk9USUNFOiAgPE5VTEw+CitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwudGVzdHNxbCgpCitSRVRVUk5TIGlu dCBBUyAkJAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CiskJCBMQU5H VUFHRSBzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKTsKKyB0ZXN0c3FsIAorLS0t LS0tLS0tCisgICAgICAgIAorKDEgcm93KQorCistLSBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSB1c2VkIGFzIHBhcmFtZXRlciBvZiBDQUxMIG9yIEVYRUNVVEUKK0NSRUFURSBPUiBSRVBMQUNF IFBST0NFRFVSRSBzdmFydGVzdF9kbWwucHJvYyhpbnQpCitBUyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICclJywgJDE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIG5v dCBjcmFzaAorQ0FMTCBzdmFydGVzdF9kbWwucHJvYyhWQVJJQUJMRShzdmFydGVzdF9kbWwuc2Vz dmFyNDEpKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgaXMgbm90IHN1cHBv cnRlZCBoZXJlCitMSU5FIDE6IENBTEwgc3ZhcnRlc3RfZG1sLnByb2MoVkFSSUFCTEUoc3ZhcnRl c3RfZG1sLnNlc3ZhcjQxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorUFJFUEFSRSBzdmFydGVzdF9kbWxfcHJlcHN0bXQoaW50KSBBUyBTRUxFQ1QgJDE7Cist LSBzaG91bGQgbm90IGNyYXNoCitFWEVDVVRFIHN2YXJ0ZXN0X2RtbF9wcmVwc3RtdChWQVJJQUJM RShzdmFydGVzdF9kbWwuc2VzdmFyNDEpKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZl cmVuY2UgaXMgbm90IHN1cHBvcnRlZCBoZXJlCitMSU5FIDE6IEVYRUNVVEUgc3ZhcnRlc3RfZG1s X3ByZXBzdG10KFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MS4uLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitEUk9QIFBST0NFRFVSRSBzdmFy dGVzdF9kbWwucHJvYzsKK0RFQUxMT0NBVEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10OworLS0gZG9t YWlucyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgRE9NQUlOIHN2YXJ0ZXN0X2RtbF9pbnRfbm90X251 bGwgQVMgaW50IENIRUNLKHZhbHVlIElTIE5PVCBOVUxMKTsKK0NSRUFURSBWQVJJQUJMRSBzdmFy dGVzdF9kbWwuc3ZhcnRlc3Q0MiBBUyBzdmFydGVzdF9kbWxfaW50X25vdF9udWxsOworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc3ZhcnRlc3Q0Mik7CitFUlJP UjogIHZhbHVlIGZvciBkb21haW4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbCB2aW9sYXRlcyBj aGVjayBjb25zdHJhaW50ICJzdmFydGVzdF9kbWxfaW50X25vdF9udWxsX2NoZWNrIgorRFJPUCBW QVJJQUJMRSBzdmFydGVzdF9kbWwuc3ZhcnRlc3Q0MjsKK0RST1AgRE9NQUlOIHN2YXJ0ZXN0X2Rt bF9pbnRfbm90X251bGw7CitDUkVBVEUgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3Jv bGU7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYo KQorUkVUVVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFy NDEpOworJCQgTEFOR1VBR0UgU1FMIFNFQ1VSSVRZIERFRklORVI7CitHUkFOVCBVU0FHRSBPTiBT Q0hFTUEgc3ZhcnRlc3RfZG1sIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKK1NF VCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgc2VzdmFyNDEKKy0tIHNob3VsZCBmYWls CitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQxKTsKK0VORDsKKyQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSBzZXN2YXI0MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIlZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSkiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVf Y29kZV9ibG9jayBsaW5lIDMgYXQgUkFJU0UKKy0tIHVzaW5nIHNxbCBmdW5jdGlvbiBzaG91bGQg dG8gZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCk7CitFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQxCitDT05URVhUOiAgU1FMIGZ1 bmN0aW9uICJ0ZXN0c3FsIiBzdGF0ZW1lbnQgMQorLS0gdXNpbmcgc2VjdXJpdHkgZGVmaW5lciBz aG91bGQgYmUgb2sKK1NFTEVDVCBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKTsKKyBmdW5jX3Nl Y2RlZiAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIAorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKTsKK0dS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDEgVE8gcmVncmVzc19z dmFydGVzdF9kbWxfcmVhZF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxf cmVhZF9yb2xlOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQxKTsKKyBzZXN2YXI0MSAKKy0tLS0tLS0tLS0KKyAgICAgICAgIAorKDEgcm93KQor CistLSBzaG91bGQgYmUgb2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJ QUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworRU5EOworJCQ7CitOT1RJQ0U6ICA8TlVMTD4K K1NFVCBST0xFIFRPIERFRkFVTFQ7CitDUkVBVEUgVEFCTEUgc3ZhcnRlc3RfZG1sLnRlc3R0YWIo YSBpbnQpOworSU5TRVJUIElOVE8gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgU0VMRUNUICogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0NSRUFURSBJTkRFWCBzdmFydGVzdF9kbWxfdGVzdHRh Yl9hIE9OIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiKGEpOworQU5BTFlaRSBzdmFydGVzdF9kbWwudGVz dHRhYjsKKy0tIGZvcmNlIGluZGV4CitTRVQgZW5hYmxlX3NlcXNjYW4gVE8gT0ZGOworLS0gaW5k ZXggc2NhbiBzaG91bGQgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IHN2YXJ0ZXN0X2RtbC50ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRShzZXN2YXI0MCk7CisgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEluZGV4IE9ubHkgU2NhbiB1c2luZyBzdmFydGVzdF9kbWxfdGVzdHRhYl9hIG9uIHRlc3R0YWIK KyAgIEluZGV4IENvbmQ6IChhID0gVkFSSUFCTEUoc2VzdmFyNDApKQorKDIgcm93cykKKworRFJP UCBJTkRFWCBzdmFydGVzdF9kbWwuc3ZhcnRlc3RfZG1sX3Rlc3R0YWJfYTsKK1NFVCBlbmFibGVf c2Vxc2NhbiBUTyBERUZBVUxUOworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIHNob3VsZCBiZSBibG9j a2VkCistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0 dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFs bGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dh dGhlciA9IDI7CistLSBwYXJhbGxlbCBwbGFuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUgYSA9IDEwMDsK KyAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgR2F0aGVyCisgICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgIC0+ ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB0ZXN0dGFiCisgICAgICAgICBGaWx0ZXI6IChhID0gMTAw KQorKDQgcm93cykKKworLS0gcGFyYWxsZWwgcGxhbiBzaG91bGQgbm90IGJlIHVzZWQKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudGVzdHRhYiBXSEVSRSBh ID0gVkFSSUFCTEUoc2VzdmFyNDApOworICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0 ZXN0dGFiCisgICBGaWx0ZXI6IChhID0gVkFSSUFCTEUoc2VzdmFyNDApKQorKDIgcm93cykKKwor UkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitS RVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dv cmtlcnNfcGVyX2dhdGhlcjsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbCBDQVNDQURFOworTk9U SUNFOiAgZHJvcCBjYXNjYWRlcyB0byAzIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2Fz Y2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDEKK2Ryb3AgY2Fz Y2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKQorZHJvcCBjYXNjYWRlcyB0 byB0YWJsZSBzdmFydGVzdF9kbWwudGVzdHRhYgorRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3Rf ZG1sX3JlYWRfcm9sZTsKK0RST1AgVkFSSUFCTEUgc2VzdmFyNDA7CitEUk9QIFRBQkxFIHN2YXJ0 ZXN0X2RtbDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUg Yi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDk1Yzc2YmFmOWFlLi5i MTZlYzA2NTk1MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTUsNyArMTE1 LDcgQEAgdGVzdDoganNvbiBqc29uYiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2Vu Y29kaW5nIGpzb25iX2pzb25wYXRoIHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgcmVjb25u ZWN0cyB3aGljaCB0cmFuc2llbnRseSB1c2UgMiBjb25uZWN0aW9ucywKICMgc28ga2VlcCB0aGlz IHBhcmFsbGVsIGdyb3VwIHRvIGF0IG1vc3QgMTkgdGVzdHMKICMgLS0tLS0tLS0tLQotdGVzdDog cGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVw YXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNt IHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBzZXNzaW9uX3ZhcmlhYmxl c19kZGwgc2Vzc2lvbl92YXJpYWJsZXNfYWNsCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3Nx bCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0 ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxh cmdlb2JqZWN0IHdpdGggeG1sCiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBh cmFsbGVsIHRlc3RzCkBAIC0xNDAsMyArMTQwLDggQEAgdGVzdDogZmFzdF9kZWZhdWx0CiAjIHJ1 biB0YWJsZXNwYWNlIHRlc3QgYXQgdGhlIGVuZCBiZWNhdXNlIGl0IGRyb3BzIHRoZSB0YWJsZXNw YWNlIGNyZWF0ZWQgZHVyaW5nCiAjIHNldHVwIHRoYXQgb3RoZXIgdGVzdHMgbWF5IHVzZS4KIHRl c3Q6IHRhYmxlc3BhY2UKKworIyAtLS0tLS0tLS0tCisjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxs ZWwgdGVzdHMgKHNlc3Npb24gdmFyaWFibGVzIHJlbGF0ZWQpCisjIC0tLS0tLS0tLS0KK3Rlc3Q6 IHNlc3Npb25fdmFyaWFibGVzX2RkbCBzZXNzaW9uX3ZhcmlhYmxlc19hY2wgc2Vzc2lvbl92YXJp YWJsZXNfZG1sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlc19kbWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1s LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjI4NzBkZGU5ZTkK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl c19kbWwuc3FsCkBAIC0wLDAgKzEsMTYxIEBACitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDAgQVMg aW50OworCistLSBzaG91bGQgbm90IGJlIGFjY2Vzc2libGUgd2l0aG91dCB2YXJpYWJsZSdzIGZl bmNlCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHNlc3ZhcjQwOworCistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0MCk7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1s OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSBBUyBpbnQ7CisKKy0tIGlk ZW50aWZpZXIgY29sbGlzaW9uIHRlc3QKK0NSRUFURSBUQUJMRSBzdmFydGVzdF9kbWwoc2VzdmFy NDEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJ0ZXN0X2RtbCBWQUxVRVMoMTAwKTsKKworU0VMRUNU IHNlc3ZhcjQxIEZST00gc3ZhcnRlc3RfZG1sOyAtLSAxMDAKK1NFTEVDVCBWQVJJQUJMRShzdmFy dGVzdF9kbWwuc2VzdmFyNDEpOyAtLSBOVUxMCisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFS SUFCTEUoc2VzdmFyNDEpOworCitTRVQgU0VBUkNIX1BBVEggVE8gc3ZhcnRlc3RfZG1sOworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0MSk7CisKK1NFVCBTRUFSQ0hf UEFUSCBUTyBERUZBVUxUOworCistLSBzaG91bGQgbm90IGNyYXNoCitETyAkJAorQkVHSU4KKyAg UkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VORDsK KyQkOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwudGVzdHNxbCgp CitSRVRVUk5TIGludCBBUyAkJAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 MSk7CiskJCBMQU5HVUFHRSBzcWw7CisKK1NFTEVDVCBzdmFydGVzdF9kbWwudGVzdHNxbCgpOwor CistLSBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIHBhcmFtZXRlciBvZiBDQUxM IG9yIEVYRUNVVEUKK0NSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVSRSBzdmFydGVzdF9kbWwucHJv YyhpbnQpCitBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgJDE7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCistLSBzaG91bGQgbm90IGNyYXNoCitDQUxMIHN2YXJ0ZXN0X2Rt bC5wcm9jKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSkpOworCitQUkVQQVJFIHN2YXJ0 ZXN0X2RtbF9wcmVwc3RtdChpbnQpIEFTIFNFTEVDVCAkMTsKKworLS0gc2hvdWxkIG5vdCBjcmFz aAorRVhFQ1VURSBzdmFydGVzdF9kbWxfcHJlcHN0bXQoVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNl c3ZhcjQxKSk7CisKK0RST1AgUFJPQ0VEVVJFIHN2YXJ0ZXN0X2RtbC5wcm9jOworREVBTExPQ0FU RSBzdmFydGVzdF9kbWxfcHJlcHN0bXQ7CisKKy0tIGRvbWFpbnMgYXJlIHN1cHBvcnRlZAorQ1JF QVRFIERPTUFJTiBzdmFydGVzdF9kbWxfaW50X25vdF9udWxsIEFTIGludCBDSEVDSyh2YWx1ZSBJ UyBOT1QgTlVMTCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0NDIgQVMg c3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbDsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJ QUJMRShzdmFydGVzdF9kbWwuc3ZhcnRlc3Q0Mik7CisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3Rf ZG1sLnN2YXJ0ZXN0NDI7CitEUk9QIERPTUFJTiBzdmFydGVzdF9kbWxfaW50X25vdF9udWxsOwor CitDUkVBVEUgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5mdW5jX3NlY2RlZigpCitSRVRVUk5TIGlu dCBBUyAkJAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CiskJCBMQU5H VUFHRSBTUUwgU0VDVVJJVFkgREVGSU5FUjsKKworR1JBTlQgVVNBR0UgT04gU0NIRU1BIHN2YXJ0 ZXN0X2RtbCBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworCistLSBzaG91bGQgZmFpbAorRE8g JCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0MSk7CitFTkQ7CiskJDsKKworLS0gdXNpbmcgc3FsIGZ1bmN0aW9uIHNob3VsZCB0byBmYWls CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKTsKKworLS0gdXNpbmcgc2VjdXJpdHkgZGVm aW5lciBzaG91bGQgYmUgb2sKK1NFTEVDVCBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKTsKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19z ZWNkZWYoKTsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 MSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jl c3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKKworLS0gc2hvdWxkIGJlIG9rCitETyAkJAor QkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQx KTsKK0VORDsKKyQkOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitDUkVBVEUgVEFCTEUgc3Zh cnRlc3RfZG1sLnRlc3R0YWIoYSBpbnQpOworCitJTlNFUlQgSU5UTyBzdmFydGVzdF9kbWwudGVz dHRhYiBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworCitDUkVBVEUgSU5E RVggc3ZhcnRlc3RfZG1sX3Rlc3R0YWJfYSBPTiBzdmFydGVzdF9kbWwudGVzdHRhYihhKTsKKwor QU5BTFlaRSBzdmFydGVzdF9kbWwudGVzdHRhYjsKKworLS0gZm9yY2UgaW5kZXgKK1NFVCBlbmFi bGVfc2Vxc2NhbiBUTyBPRkY7CisKKy0tIGluZGV4IHNjYW4gc2hvdWxkIGJlIHVzZWQKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudGVzdHRhYiBXSEVSRSBh ID0gVkFSSUFCTEUoc2VzdmFyNDApOworCitEUk9QIElOREVYIHN2YXJ0ZXN0X2RtbC5zdmFydGVz dF9kbWxfdGVzdHRhYl9hOworCitTRVQgZW5hYmxlX3NlcXNjYW4gVE8gREVGQVVMVDsKKworLS0g cGFyYWxsZWwgZXhlY3V0aW9uIHNob3VsZCBiZSBibG9ja2VkCistLSBFbmNvdXJhZ2UgdXNlIG9m IHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0dXBfY29zdCA9IDA7CitTRVQgcGFyYWxs ZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7 CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9IDI7CisKKy0tIHBhcmFsbGVs IHBsYW4gc2hvdWxkIGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBz dmFydGVzdF9kbWwudGVzdHRhYiBXSEVSRSBhID0gMTAwOworCistLSBwYXJhbGxlbCBwbGFuIHNo b3VsZCBub3QgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHN2YXJ0 ZXN0X2RtbC50ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRShzZXN2YXI0MCk7CisKK1JFU0VUIHBh cmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWlu X3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Bl cl9nYXRoZXI7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbCBDQVNDQURFOworRFJPUCBST0xF IHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKKworRFJPUCBWQVJJQUJMRSBzZXN2YXI0 MDsKKworRFJPUCBUQUJMRSBzdmFydGVzdF9kbWw7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IGVhYzQ4MmQ3YmVjLi5jY2ZhNmRiODM5ZCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTI3MTIsNiArMjcxMiw3IEBAIFNlcmlhbGl6ZWRUcmFuc2FjdGlvblN0YXRlCiBTZXNzaW9u CiBTZXNzaW9uQmFja3VwU3RhdGUKIFNlc3Npb25FbmRUeXBlCitTZXNzaW9uVmFyaWFibGVWYWx1 ZQogU2V0Q29uc3RyYWludFN0YXRlCiBTZXRDb25zdHJhaW50U3RhdGVEYXRhCiBTZXRDb25zdHJh aW50VHJpZ2dlckRhdGEKLS0gCjIuNTAuMQoK --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Disposition: attachment; filename="v20250813-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meacziib7 RnJvbSAxMmQzZTRkYmIwMDVlNzMwNmM2MDk2NWM5MTkxMTA5N2M3ZTllMWJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMDk6MzE6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4 LzE1XSBjb2xsZWN0IHNlc3Npb24gdmFyaWFibGVzIHVzZWQgaW4gcGxhbiBhbmQgYXNzaWduCiBw YXJhbWlkCgpJbiB0aGUgcGxhbiBzdGFnZSB3ZSBuZWVkIHRvIGNvbGxlY3QgdXNlZCBzZXNzaW9u IHZhcmlhYmxlcy4gT24gdGhlCm9yZGVyIG9mIHRoaXMgbGlzdCwgdGhlIHBhcmFtIG5vZGVzIGdl dHMgcGFyYW1pZCAoZml4X3BhcmFtX25vZGUpLgpUaGlzIG51bWJlciBpcyB1c2VkIChsYXRlcikg YXMgaW5kZXggdG8gYnVmZmVyIG9mIHZhbHVlcyBvZiB0aGUKdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gVGhlIGJ1ZmZlciBpcyBwcmVwYXJlZCBhbmQgZmlsbGVkIGJ5IGV4ZWN1dG9yLgoKU29tZSB1 bnN1cHBvcnRlZCBvcHRpbWl6YXRpb25zIGFyZSBkaXNhYmxlZDoKCiogcGFyYWxsZWwgZXhlY3V0 aW9uCiogc2ltcGxlIGV4cHJlc3Npb24gZXhlY3V0aW9uIGluIFBML3BnU1FMCiogU1FMIGZ1bmN0 aW9ucyBpbmxpbmluZwoKQmVmb3JlIGV4ZWN1dGlvbiBvZiBxdWVyeSB3aXRoIHNlc3Npb24gdmFy aWFibGVzIHdlIG5lZWQgdG8gY29sbGVjdAp1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGlzIGxp c3QgaXMgdXNlZCBmb3IKLS0tCiBkb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCAgICAgICAgICAg ICAgICB8ICAgNiArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAg fCAgIDUgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgfCAgMTEg KysKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyAgICAgIHwgMTI0ICsrKysr KysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJl ZS5jIHwgICAzICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgIHwg IDMzICsrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgfCAg IDYgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jICAgICAgICAgICAgIHwgIDEwICst CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICB8ICAgNSArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCAgICAgICAgICB8ICAgMiArCiAxMSBmaWxlcyBjaGFuZ2Vk LCAxOTkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcGFyYWxsZWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDFj ZTlhYmY4NmY1Li42ODNkZWRlNmFkYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVs LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKQEAgLTUxNSw2ICs1MTUsMTIg QEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgZmlsbGVyIExJ S0UgJyV4JSc7CiAgICAgICAgIFBsYW4gbm9kZXMgdGhhdCByZWZlcmVuY2UgYSBjb3JyZWxhdGVk IDxsaXRlcmFsPlN1YlBsYW48L2xpdGVyYWw+LgogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0 ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICAgUGxhbiBub2RlcyB0 aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KICAgPC9pdGVtaXplZGxpc3Q+CiAKICA8c2VjdDIgaWQ9InBhcmFsbGVsLWxhYmVsaW5nIj4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMWQ2MmU2M2Q0ZjcuLmViOTFiNDZiMTI4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg3NSw2ICsxODc1LDExIEBAIGZpbmRfZXhw cl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0g KFBhcmFtICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJsZSBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcmFt LT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwogCQkvKiBBIHBh cmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJYWRk X29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW10eXBlLCAwLAogCQkJ CQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmlu ZGV4IDViYTBkMjJiZWZkLi4xZDk4ZmJkNmQ1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYwpAQCAtMzQ0LDYgKzM0NCw3IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNl LCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCWdsb2ItPmRl cGVuZHNPblJvbGUgPSBmYWxzZTsKIAlnbG9iLT5wYXJ0aXRpb25fZGlyZWN0b3J5ID0gTlVMTDsK IAlnbG9iLT5yZWxfbm90bnVsbGF0dHNfaGFzaCA9IE5VTEw7CisJZ2xvYi0+c2Vzc2lvblZhcmlh YmxlcyA9IE5JTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1 c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTU4Miw2ICs1ODMsOSBAQCBz dGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBp bnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xvYi0+cGFyYW1F eGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3ZSBtaWdodCBh cyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2UtPnV0aWxpdHlT dG10OworCisJcmVzdWx0LT5zZXNzaW9uVmFyaWFibGVzID0gZ2xvYi0+c2Vzc2lvblZhcmlhYmxl czsKKwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0aW9uOwogCXJl c3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAKQEAgLTc2NCw2ICs3NjgsMTMgQEAg c3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFyc2UsIFBsYW5u ZXJJbmZvICpwYXJlbnRfcm9vdCwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAK KwkvKgorCSAqIENoZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNlcyBhIHNlc3Npb24gdmFyaWFibGUu ICBUaGUgZmxhZworCSAqIGhhc1Nlc3Npb25WYXJpYWJsZXMgc2hvdWxkIGJlIHRydWUgaWYgdGhl IHF1ZXJ5IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhCisJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkg Ki8KKwlwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJICogSWYg dGhpcyBpcyBhIHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBl bmRyZWwuIFdlCiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBw dWxsX3VwX3N1YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYwppbmRleCA4NDZlNDQxODZjMy4uNmM4NmVlMWFkNjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9zZXRyZWZzLmMKQEAgLTIxMCw2ICsyMTAsOSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVy bmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpz ZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAog CQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAq cGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIo Tm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVySW5mbyAqcm9vdCk7CitzdGF0aWMgdm9p ZCByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQg dmFyaWQpOwogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTMxNiw2ICsxMzE5LDUwIEBA IHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNl dCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAqIFNlYXJjaCB1c2FnZSBvZiBzZXNzaW9uIHZh cmlhYmxlcyBpbiBzdWJxdWVyaWVzCisgKi8KK3ZvaWQKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFy aWFibGVzKFBsYW5uZXJJbmZvICpyb290KQoreworCVF1ZXJ5CSAgICpxdWVyeSA9IHJvb3QtPnBh cnNlOworCisJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJcm9vdC0+aGFz U2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCSh2b2lkKSBxdWVyeV90 cmVlX3dhbGtlcihxdWVyeSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KK30KKworc3RhdGljIGJv b2wKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFu bmVySW5mbyAqcm9vdCkKK3sKKwlpZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJ aWYgKElzQShub2RlLCBRdWVyeSkpCisJeworCQlRdWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikg bm9kZTsKKworCQlpZiAocXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCXJvb3Qt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJ LyogcmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8KKwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2Vy KChRdWVyeSAqKSBub2RlLAorCQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNf d2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9vdCwgMCk7CisJfQorCXJldHVybiBleHByZXNz aW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtl ciwKKwkJCQkJCQkJICAodm9pZCAqKSByb290KTsKK30KKwogLyoKICAqIHNldF9pbmRleG9ubHlz Y2FuX3JlZmVyZW5jZXMKICAqCQlEbyBzZXRfcGxhbl9yZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24g YW4gSW5kZXhPbmx5U2NhbgpAQCAtMjAxNiw4ICsyMDYzLDkgQEAgY29weVZhcihWYXIgKnZhcikK ICAqIFRoaXMgaXMgY29kZSB0aGF0IGlzIGNvbW1vbiB0byBhbGwgdmFyaWFudHMgb2YgZXhwcmVz c2lvbi1maXhpbmcuCiAgKiBXZSBtdXN0IGxvb2sgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9y IE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKICAqIGFkZCBPSURzIGZyb20gcmVnY2xhc3MgQ29u c3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMsIGFuZAotICogYWRkIFBsYW5J bnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGludG8gcm9vdC0+Z2xvYi0+aW52 YWxJdGVtcy4KLSAqIFdlIGFsc28gZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQ SU5HKCkgZXhwcmVzc2lvbnMuCisgKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5l ZCBmdW5jdGlvbnMgYW5kIHNlc3Npb24gdmFyaWFibGVzIGludG8KKyAqIHJvb3QtPmdsb2ItPmlu dmFsSXRlbXMuICBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElO RygpCisgKiBleHByZXNzaW9ucy4KICAqCiAgKiBXZSBhc3N1bWUgaXQncyBva2F5IHRvIHVwZGF0 ZSBvcGNvZGUgaW5mbyBpbi1wbGFjZS4gIFNvIHRoaXMgY291bGQgcG9zc2libHkKICAqIHNjcmli YmxlIG9uIHRoZSBwbGFubmVyJ3MgaW5wdXQgZGF0YSBzdHJ1Y3R1cmVzLCBidXQgaXQncyBPSy4K QEAgLTIxMDcsNiArMjE1NSwxMyBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3Qs IE5vZGUgKm5vZGUpCiAJCQkJZy0+Y29scyA9IGNvbHM7CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNB KG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJ aWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJlY29yZF9wbGFuX3Zhcmlh YmxlX2RlcGVuZGVuY3kocm9vdCwgcC0+cGFyYW12YXJpZCk7CisJfQogfQogCiAvKgpAQCAtMjEx Niw2ICsyMTcxLDEwIEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAq bm9kZSkKICAqIElmIGl0J3MgYSBQQVJBTV9NVUxUSUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUg YXBwcm9wcmlhdGUgUGFyYW0gZnJvbQogICogcm9vdC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3 aXNlIG5vIGNoYW5nZSBpcyBuZWVkZWQuCiAgKiBKdXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdl IG1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIGluIGVpdGhlciBjYXNlLgorICoKKyAqIElmIGl0J3Mg YSBQQVJBTV9WQVJJQUJMRSwgdGhlbiB3ZSBjb2xsZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMg aW4KKyAqIHRoZSBsaXN0IHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZS4gIEFsc28sIGFzc2ln biB0aGUgcGFyYW1ldGVyJ3MKKyAqICJwYXJhbWlkIiB0byB0aGUgcGFyYW1ldGVyJ3MgcG9zaXRp b24gaW4gdGhhdCBsaXN0LgogICovCiBzdGF0aWMgTm9kZSAqCiBmaXhfcGFyYW1fbm9kZShQbGFu bmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCkBAIC0yMTM0LDYgKzIxOTMsNDAgQEAgZml4X3BhcmFt X25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQogCQkJZWxvZyhFUlJPUiwgInVuZXhw ZWN0ZWQgUEFSQU1fTVVMVElFWFBSIElEOiAlZCIsIHAtPnBhcmFtaWQpOwogCQlyZXR1cm4gY29w eU9iamVjdChsaXN0X250aChwYXJhbXMsIGNvbG5vIC0gMSkpOwogCX0KKworCWlmIChwLT5wYXJh bWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlpbnQJCQluID0gMDsKKwkJYm9vbAkJZm91 bmQgPSBmYWxzZTsKKworCQkvKiB3ZSB3aWxsIG1vZGlmeSBvYmplY3QgKi8KKwkJcCA9IChQYXJh bSAqKSBjb3B5T2JqZWN0KHApOworCisJCS8qCisJCSAqIE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBs aXN0IG9mIHNlc3Npb24gdmFyaWFibGVzLCBhbmQgd2UgY2FuCisJCSAqIGNvbXBsZXRlIHBhcmFt aWQgcGFyYW1ldGVyLgorCQkgKi8KKwkJZm9yZWFjaF9vaWQodmFyaWQsIHJvb3QtPmdsb2ItPnNl c3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCWlmICh2YXJpZCA9PSBwLT5wYXJhbXZhcmlkKQorCQkJ eworCQkJCXAtPnBhcmFtaWQgPSBuOworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJ CX0KKwkJCW4gKz0gMTsKKwkJfQorCisJCWlmICghZm91bmQpCisJCXsKKwkJCXJvb3QtPmdsb2It PnNlc3Npb25WYXJpYWJsZXMgPSBsYXBwZW5kX29pZChyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFi bGVzLAorCQkJCQkJCQkJCQkJCSAgIHAtPnBhcmFtdmFyaWQpOworCQkJcC0+cGFyYW1pZCA9IG47 CisJCX0KKworCQlyZXR1cm4gKE5vZGUgKikgcDsKKwl9CisKIAlyZXR1cm4gKE5vZGUgKikgY29w eU9iamVjdChwKTsKIH0KIApAQCAtMjE5NSw3ICsyMjg4LDEwIEBAIGZpeF9hbHRlcm5hdGl2ZV9z dWJwbGFuKFBsYW5uZXJJbmZvICpyb290LCBBbHRlcm5hdGl2ZVN1YlBsYW4gKmFzcGxhbiwKICAq IHJlcGxhY2luZyBBZ2dyZWYgbm9kZXMgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgYnkgaW5pdHBs YW4gb3V0cHV0IFBhcmFtcywKICAqIGNob29zaW5nIHRoZSBiZXN0IGltcGxlbWVudGF0aW9uIGZv ciBBbHRlcm5hdGl2ZVN1YlBsYW5zLAogICogbG9va2luZyB1cCBvcGVyYXRvciBvcGNvZGUgaW5m byBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5vZGVzLAotICogYW5kIGFkZGluZyBPSURzIGZyb20g cmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMuCisgKiBh ZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVs YXRpb25PaWRzLAorICogYXNzaWduaW5nIHBhcmFtdmFyaWQgdG8gUEFSQU1fVkFSSUFCTEUgcGFy YW1zLCBhbmQgY29sbGVjdGluZyB0aGUKKyAqIE9JRHMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4g dGhlIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAorICogKHBhcmFtdmFyaWQgaXMg dGhlIHBvc2l0aW9uIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoaXMgbGlzdCkuCiAgKgog ICogJ25vZGUnOiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2RpZmllZAogICogJ3J0b2Zmc2V0Jzog aG93IG11Y2ggdG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAtMjIxNyw3ICsyMzEzLDggQEAgZml4 X3NjYW5fZXhwcihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50IHJ0b2Zmc2V0LCBk b3VibGUgbnVtX2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMgIT0gTklMIHx8CiAJCXJv b3QtPmdsb2ItPmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+bWlubWF4X2FnZ3MgIT0gTklMIHx8 Ci0JCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJCXJvb3QtPmhhc0FsdGVybmF0aXZl U3ViUGxhbnMgfHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCXJldHVybiBm aXhfc2Nhbl9leHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQpOwogCX0KQEAgLTM2MTAsNiArMzcw NywyNSBAQCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9p ZCB0eXBpZCkKIAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24g dmFyaWFibGUuICBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQorICogc2Vzc2lvbiB2YXJp YWJsZSBpbiBhbiBleHByZXNzaW9uIGxpc3QuCisgKi8KK3N0YXRpYyB2b2lkCityZWNvcmRfcGxh bl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpCit7CisJ UGxhbkludmFsSXRlbSAqaW52YWxfaXRlbSA9IG1ha2VOb2RlKFBsYW5JbnZhbEl0ZW0pOworCisJ LyogcGFyYW1pZCBpcyBzdGlsbCBzZXNzaW9uIHZhcmlhYmxlIGlkICovCisJaW52YWxfaXRlbS0+ Y2FjaGVJZCA9IFZBUklBQkxFT0lEOworCWludmFsX2l0ZW0tPmhhc2hWYWx1ZSA9IEdldFN5c0Nh Y2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1 bSh2YXJpZCkpOworCisJLyogYXBwZW5kIHRoaXMgdmFyaWFibGUgdG8gZ2xvYmFsLCByZWdpc3Rl ciBkZXBlbmRlbmN5ICovCisJcm9vdC0+Z2xvYi0+aW52YWxJdGVtcyA9IGxhcHBlbmQocm9vdC0+ Z2xvYi0+aW52YWxJdGVtcywKKwkJCQkJCQkJCSBpbnZhbF9pdGVtKTsKK30KKwogLyoKICAqIGV4 dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzCiAgKgkJR2l2ZW4gYSByZXdyaXR0ZW4sIGJ1dCBub3Qg eWV0IHBsYW5uZWQsIHF1ZXJ5IG9yIHF1ZXJpZXMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAv cHJlcGpvaW50cmVlLmMKaW5kZXggMzVlOGQzYzE4M2IuLmQyNDcwYzliMmRiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtMTY0NSw2ICsxNjQ1LDkgQEAg cHVsbF91cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwg UmFuZ2VUYmxFbnRyeSAqcnRlLAogCS8qIElmIHN1YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlv bnMsIG5vdyBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9 IHN1YnF1ZXJ5LT5oYXNSb3dTZWN1cml0eTsKIAorCS8qIGlmIHRoZSBzdWJxdWVyeSBoYWQgc2Vz c2lvbiB2YXJpYWJsZXMsIHRoZSBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCisJcGFyc2UtPmhhc1Nl c3Npb25WYXJpYWJsZXMgfD0gc3VicXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAkvKgog CSAqIHN1YnF1ZXJ5IHdvbid0IGJlIHB1bGxlZCB1cCBpZiBpdCBoYXNBZ2dzLCBoYXNXaW5kb3dG dW5jcywgb3IKIAkgKiBoYXNUYXJnZXRTUkZzLCBzbyBubyB3b3JrIG5lZWRlZCBvbiB0aG9zZSBm bGFncwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDZmMGIzMzhkMmNkLi42 ZGY3NmQ4N2I3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjUsNiAr MjUsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3Iu aCIKICNpbmNsdWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgi CkBAIC05MzksNiArOTQwLDEzIEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5v ZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5w YXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRv bid0IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlm IChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3Bh cmFsbGVsX2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJ CXJldHVybiB0cnVlOworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhF QyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0t PnBhcmFtaWQpKQogCQl7CkBAIC0yMzk1LDYgKzI0MDMsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFz aGVkX3Nhb3Bfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9m IHRoZSBQYXJhbS4KICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVu Y3Rpb25zIHRvIGNvbnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0 byB0aGVpciBjb250YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNl c3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0t LS0tLS0tLS0tLS0tLQogICovCiBOb2RlICoKQEAgLTI1MjEsNiArMjUzMCwyNyBAQCBldmFsX2Nv bnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJ CX0KKwkJCQllbHNlIGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJ CQkJCQkgY29udGV4dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJ CQlib29sCQl0eXBCeVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsK KworCQkJCQlnZXRfdHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBM ZW4sICZ0eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZShwYXJhbS0+ cGFyYW12YXJpZCwgJmlzbnVsbCk7CisKKwkJCQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChw YXJhbS0+cGFyYW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbXR5cG1vZCwKKwkJCQkJ CQkJCQkJICBwYXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJCQkJCSAgKGludCkgdHlwTGVuLAor CQkJCQkJCQkJCQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJCQkJCQkgIHR5 cEJ5VmFsKTsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5vdCByZXBsYWNlYWJsZSwgc28ganVz dCBjb3B5IHRoZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDgxOSw3ICs0ODQ5LDggQEAgaW5saW5l X2Z1bmN0aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQs CiAJCXF1ZXJ5dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1pdENvdW50IHx8 CiAJCXF1ZXJ5dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQlsaXN0X2xlbmd0aChxdWVyeXRyZWUt PnRhcmdldExpc3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3Qp ICE9IDEpIHx8CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXggNjY2MWQyYzZiNzMuLmFiMWYy YWYxM2U1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpAQCAtNTgsNiArNTgsNyBA QAogCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVz cGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVj dXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVz L25vZGVGdW5jcy5oIgpAQCAtMTUzLDYgKzE1NCw3IEBAIEluaXRQbGFuQ2FjaGUodm9pZCkKIAlD YWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhBTU9QT1BJRCwgUGxhbkNhY2hlU3lzQ2FsbGJh Y2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTlNF UlZFUk9JRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3Rl clN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTkRBVEFXUkFQUEVST0lELCBQbGFuQ2FjaGVTeXNDYWxs YmFjaywgKERhdHVtKSAwKTsKKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJM RU9JRCwgUGxhbkNhY2hlT2JqZWN0Q2FsbGJhY2ssIChEYXR1bSkgMCk7CiB9CiAKIC8qCkBAIC0y MTk2LDcgKzIxOTgsOSBAQCBQbGFuQ2FjaGVSZWxDYWxsYmFjayhEYXR1bSBhcmcsIE9pZCByZWxp ZCkKIAogLyoKICAqIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrCi0gKgkJU3lzY2FjaGUgaW52YWwg Y2FsbGJhY2sgZnVuY3Rpb24gZm9yIFBST0NPSUQgYW5kIFRZUEVPSUQgY2FjaGVzCisgKgkJU3lz Y2FjaGUgaW52YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFRZUEVPSUQsIFBST0NPSUQsIE5BTUVT UEFDRU9JRCwKKyAqCQlPUEVST0lELCBBTU9QT1BJRCwgRk9SRUlHTlNFUlZFUk9JRCwgRk9SRUlH TkRBVEFXUkFQUEVST0lEIGFuZAorICoJCVZBUklBQkxFT0lEIGNhY2hlcy4KICAqCiAgKiBJbnZh bGlkYXRlIGFsbCBwbGFucyBtZW50aW9uaW5nIHRoZSBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVk IGhhc2ggdmFsdWUsCiAgKiBvciBhbGwgcGxhbnMgbWVudGlvbmluZyBhbnkgbWVtYmVyIG9mIHRo aXMgY2FjaGUgaWYgaGFzaHZhbHVlID09IDAuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9mbWdyL2ZtZ3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IDc4MjI5 MWQ5OTk4Li4wOTM2MjJmYmRjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9m bWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAgLTIwMjYsOSArMjAy NiwxMyBAQCBnZXRfY2FsbF9leHByX2FyZ19zdGFibGUoTm9kZSAqZXhwciwgaW50IGFyZ251bSkK IAkgKi8KIAlpZiAoSXNBKGFyZywgQ29uc3QpKQogCQlyZXR1cm4gdHJ1ZTsKLQlpZiAoSXNBKGFy ZywgUGFyYW0pICYmCi0JCSgoUGFyYW0gKikgYXJnKS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVS TikKLQkJcmV0dXJuIHRydWU7CisJaWYgKElzQShhcmcsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAg ICpwID0gKFBhcmFtICopIGFyZzsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVS TiB8fCBwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9 CiAKIAlyZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRo bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IGFkMjcyNmYwMjZm Li5jZmQyYjI0ZjMyYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTE4Miw2ICsxODIsOSBAQCB0 eXBlZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFsCiAKIAkvKiBoYXNoIHRhYmxlIGZvciBOT1QgTlVM TCBhdHRudW1zIG9mIHJlbGF0aW9ucyAqLwogCXN0cnVjdCBIVEFCICpyZWxfbm90bnVsbGF0dHNf aGFzaCBwZ19ub2RlX2F0dHIocmVhZF93cml0ZV9pZ25vcmUpOworCisJLyogbGlzdCBvZiB1c2Vk IHNlc3Npb24gdmFyaWFibGVzICovCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKIH0gUGxh bm5lckdsb2JhbDsKIAogLyogbWFjcm8gZm9yIGZldGNoaW5nIHRoZSBQbGFuIGFzc29jaWF0ZWQg d2l0aCBhIFN1YlBsYW4gbm9kZSAqLwpAQCAtNTMyLDYgKzUzNSw4IEBAIHN0cnVjdCBQbGFubmVy SW5mbwogCWJvb2wJCXBsYWNlaG9sZGVyc0Zyb3plbjsKIAkvKiB0cnVlIGlmIHBsYW5uaW5nIGEg cmVjdXJzaXZlIFdJVEggaXRlbSAqLwogCWJvb2wJCWhhc1JlY3Vyc2lvbjsKKwkvKiB0cnVlIGlm IHNlc3Npb24gdmFyaWFibGVzIHdlcmUgdXNlZCAqLworCWJvb2wJCWhhc1Nlc3Npb25WYXJpYWJs ZXM7CiAKIAkvKgogCSAqIFRoZSByYW5nZXRhYmxlIGluZGV4IGZvciB0aGUgUlRFX0dST1VQIFJU RSwgb3IgMCBpZiB0aGVyZSBpcyBubwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxh bm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCAyOWQ3NzMyZDZh MC4uMzU5NzFlM2EzMzggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xNDksNiArMTQ5LDkgQEAg dHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAkvKiBub24tbnVsbCBpZiB0aGlzIGlzIHV0aWxp dHkgc3RtdCAqLwogCU5vZGUJICAgKnV0aWxpdHlTdG10OwogCisJLyogT0lEcyBmb3IgUEFSQU1f VkFSSUFCTEUgUGFyYW1zICovCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKKwogCS8qIHN0 YXRlbWVudCBsb2NhdGlvbiBpbiBzb3VyY2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8K IAkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCXN0bXRf bG9jYXRpb247CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCBi L3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCmluZGV4IDlkM2RlYmNhYjI4Li5iYTQz MDVkNjFhNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKKysr IGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEzMSw0ICsxMzEsNiBAQCBl eHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpy b290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5j eShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGV4dHJhY3RfcXVl cnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCk7 CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZv ICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KLS0gCjIuNTAuMQoK --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Disposition: attachment; filename="v20250813-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meacziig8 RnJvbSA2ZDAzMzlkZWMwOTIzOGIxM2ZkOTkzY2UwNmYyYTMxZmU5MzgwMjczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMjI6NDQ6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzE1XSBsb2NhbCBIQVNIVEFCIGZvciBjdXJyZW50bHkgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyBh bmQKIGxvdyBsZXZlbCBhY2Nlc3MgZnVuY3Rpb25zCgpTZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3Rv cmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVkIGhhc2ggdGFibGUuClRoZXkgYXJl IHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkgdGhlIFNFTEVDVCBjb21tYW5kLgpU aGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4KCkhhc2ggZW50cmllcyByZWxhdGVk IHRvIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCByZWxlYXNlZC4gVGhlIG1lbW9y eQpjbGVhbmluZyBpcyBpbXBsZW1lbnRlZCBpbiBtZW1vcnktY2xlYW5pbmctYWZ0ZXItRFJPUC1W QVJJQUJMRSBwYXRjaC4KLS0tCiBkb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAgICAgICAg ICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyB8IDQy OCArKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCB8ICAgMyArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAg ICAgfCAgIDIgKwogNCBmaWxlcyBjaGFuZ2VkLCA0MzYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMv c2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IDgzYjEzZjk4ZjI4Li4yZDEzZGNlYTRlZiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKQEAgLTE3MTQsOCArMTcxNCw5IEBACiAgICAgPHBhcmE+CiAgICAgIEEgcGVyc2lz dGVudCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5 LiAgVGhpcwogICAgICB2YWx1ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVs ZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgotICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0 byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCi0gICAgIHNp bWlsYXIgdG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4KKyAgICAgVGhlIGRlZmF1bHQgdmFsdWUg b2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaXMgbnVsbC4gIFJlYWQgb3Igd3JpdGUgYWNjZXNzCisg ICAgIHRvIHNlc3Npb24gdmFyaWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywgc2lt aWxhciB0byBvdGhlciBkYXRhYmFzZQorICAgICBvYmplY3RzLgogICAgIDwvcGFyYT4KICAgICA8 cGFyYT4KICAgICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwt c2Vzc2lvbi12YXJpYWJsZXMiLz4uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKaW5kZXggZjY0MWUwMGMxYWMuLmRiYzA1NDc5NWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCwxNCArMTQsNDQyIEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdHlwZS5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInN0b3JhZ2Uv cHJvYy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZGF0 dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgorI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2Fj aGUuaCIKKworLyoKKyAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3Jl ZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CisgKiBpbiB0aGUgZGVkaWNhdGVkIG1l bW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KKyAq IFRoZXkgYXJlIHN0b3JlZCBpbiB0aGUgInNlc3Npb252YXJzIiBoYXNoIHRhYmxlLCB3aG9zZSBr ZXkgaXMgdGhlIE9JRCBvZiB0aGUKKyAqIHZhcmlhYmxlLiAgSG93ZXZlciwgdGhlIE9JRCBpcyBu b3QgZ29vZCBlbm91Z2ggdG8gaWRlbnRpZnkgYSBzZXNzaW9uCisgKiB2YXJpYWJsZTogY29uY3Vy cmVudCBzZXNzaW9ucyBjb3VsZCBkcm9wIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFuZCBjcmVhdGUg YQorICogbmV3IG9uZSwgd2hpY2ggY291bGQgYmUgYXNzaWduZWQgdGhlIHNhbWUgT0lELiAgVG8g ZW5zdXJlIHRoYXQgdGhlIHZhbHVlcworICogc3RvcmVkIGluIG1lbW9yeSBhbmQgdGhlIGNhdGFs b2cgZGVmaW5pdGlvbiBtYXRjaCwgd2UgYWxzbyBrZWVwIHRyYWNrIG9mCisgKiB0aGUgImNyZWF0 ZV9sc24iLiAgQmVmb3JlIGFueSBhY2Nlc3MgdG8gdGhlIHZhcmlhYmxlIHZhbHVlcywgd2UgbmVl ZCB0bworICogY2hlY2sgaWYgdGhlIExTTiBzdG9yZWQgaW4gbWVtb3J5IG1hdGNoZXMgdGhlIExT TiBpbiB0aGUgY2F0YWxvZy4gIElmIHRoZXJlCisgKiBpcyBhIG1pc21hdGNoIGJldHdlZW4gdGhl IExTTnMsIG9yIGlmIHRoZSBPSUQgaXMgbm90IHByZXNlbnQgaW4gcGdfdmFyaWFibGUKKyAqIGF0 IGFsbCwgdGhlIHZhbHVlIHN0b3JlZCBpbiBtZW1vcnkgaXMgcmVsZWFzZWQuCisgKi8KK3R5cGVk ZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKK3sKKwlPaWQJCQl2YXJpZDsJCQkvKiBwZ192YXJpYWJs ZSBPSUQgb2YgdGhlIHZhcmlhYmxlIChoYXNoIGtleSkgKi8KKwlYTG9nUmVjUHRyCWNyZWF0ZV9s c247CisKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworCisJT2lkCQkJdHlwaWQ7CisJ aW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBieXZhbDsKKworCWJvb2wJCWlzX2RvbWFpbjsKKwor CS8qCisJICogZG9tYWluX2NoZWNrX2V4dHJhIGhvbGRzIGNhY2hlZCBkb21haW4gbWV0YWRhdGEu ICBUaGlzICJleHRyYSIgaXMKKwkgKiB1c3VhbGx5IHN0b3JlZCBpbiBmbl9tY3h0LiAgV2UgZG8g bm90IGhhdmUgYWNjZXNzIHRvIHRoYXQgbWVtb3J5CisJICogY29udGV4dCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMsIGJ1dCB3ZSBjYW4gdXNlIFRvcFRyYW5zYWN0aW9uQ29udGV4dAorCSAqIGluc3Rl YWQuIEEgZnJlc2ggdmFsdWUgaXMgZm9yY2VkIHdoZW4gd2UgZGV0ZWN0IHdlIGFyZSBpbiBhIGRp ZmZlcmVudAorCSAqIHRyYW5zYWN0aW9uICh0aGUgbG9jYWwgdHJhbnNhY3Rpb24gSUQgZGlmZmVy cyBmcm9tCisJICogZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAgKmRv bWFpbl9jaGVja19leHRyYTsKKwlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJh X2x4aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4g YmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKKwkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRo ZW4gaGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCisJICogdHJ1c3R3 b3J0aHkuCisJICovCisJYm9vbAkJaXNfdmFsaWQ7CisKKwl1aW50MzIJCWhhc2h2YWx1ZTsJCS8q IHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KK30gU1ZhcmlhYmxlRGF0YTsKKwor dHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CisKK3N0YXRpYyBIVEFCICpzZXNzaW9u dmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCisKK3N0 YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOworCisvKgor ICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgor ICovCitzdGF0aWMgdm9pZAorcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBp bnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVz OworCVNWYXJpYWJsZQlzdmFyOworCisJZWxvZyhERUJVRzEsICJwZ192YXJpYWJsZV9jYWNoZV9j YWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7CisKKwlBc3NlcnQoc2Vzc2lvbnZh cnMpOworCisJLyoKKwkgKiBJZiB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHdlIGhh dmUgdG8gcmVjaGVjayBhbGwgY3VycmVudGx5CisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4g IFNpbmNlIHdlIGNhbid0IHRlbGwgdGhlIGV4YWN0IHNlc3Npb24gdmFyaWFibGUKKwkgKiBmcm9t IGl0cyBoYXNodmFsdWUsIHdlIGhhdmUgdG8gaXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0aGUg aGFzaAorCSAqIGJ1Y2tldC4KKwkgKi8KKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252 YXJzKTsKKworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3Rh dHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFs dWUgPT0gaGFzaHZhbHVlKQorCQl7CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJ fQorfQorCisvKgorICogUmVsZWFzZSBzdG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0 YXRpYyB2b2lkCitmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7 CisJLyogY2xlYW4gdGhlIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7 CisJCWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+ dmFsdWUpKTsKKworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0g KERhdHVtKSAwOworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBn X3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFi bGUuCisgKi8KK3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJs ZSBzdmFyKQoreworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFz c2VydChPaWRJc1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBU dXBsZUlzVmFsaWQodHApKQorCXsKKwkJLyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5v dWdoIGFzIGFuIHVuaXF1ZSBpZGVudGlmaWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0 IHJlY3ljbGVkLCBhbmQgYSBuZXcgc2Vzc2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdCB0aGUK KwkJICogc2FtZSBPSUQuICBXZSBkbyBhIHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQg TFNOIHdoZW4gdGhlCisJCSAqIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2 YXItPmNyZWF0ZV9sc24gPT0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFy Y3JlYXRlX2xzbikKKwkJCXJlc3VsdCA9IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsK Kwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVz IGNhY2hlZCBpbiAic3ZhciIKKyAqLworc3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1f cGdfdmFyaWFibGUgdmFyZm9ybTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0 dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQp KTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZv cm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9 IHZhcmlkOworCXN2YXItPmNyZWF0ZV9sc24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJ c3Zhci0+dHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXIt PnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9t YWluID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsK KwlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19l eHRyYV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9 IHRydWU7CisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRy dWU7CisKKwlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVP SUQsCisJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworfQorCisvKgorICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9u IHZhcmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlm IG5lY2Vzc2FyeS4KKyAqCisgKiBJZiBhbnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZh bHVlIHdvbid0IGJlIG1vZGlmaWVkLgorICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFy aWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1 bQkJbmV3dmFsOworCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFz c2VydChzdmFyKTsKKwlBc3NlcnQoIWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJ LyoKKwkgKiBVc2UgdHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5 IHdoZW4gdGhleSBhcmUKKwkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdl IHdhcyBub3QgYWNjZXB0ZWQgZm9yIHRoaXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFi bGUgbWlnaHQgYmUgaW52YWxpZCwgZm9yY2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3Zlcndy aXRlIHRoZSBwYXNzZWQgc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgor CSAqIHRoYXQgbm8gZXJyb3IgY2FuIGJlIHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3Zh bGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQp OworCQlfc3ZhciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlm ICghaXNudWxsKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dp dGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZh bHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjeHQpOworCX0KKwllbHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9z ZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3Bh Y2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJ IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQp OworCisJLyogbm8gbW9yZSBlcnJvciBleHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUg b2xkIHZhcmlhYmxlIG5vdyAqLworCWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3Zhciwg X3N2YXIsIHNpemVvZihTVmFyaWFibGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsK KwlzdmFyLT5pc251bGwgPSBpc251bGw7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFi bGUgZm9yIHN0b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVh dGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOwor CisJQXNzZXJ0KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQp CisJeworCQkvKiByZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2Fj aGVDYWxsYmFjayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2Fs bGJhY2ssCisJCQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxv bmctbGl2ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJ CQlBbGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vz c2lvbiB2YXJpYWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsK Kwl9CisKKwltZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0 bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNW YXJpYWJsZURhdGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0Owor CisJc2Vzc2lvbnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZh cnNfY3RsLAorCQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7 Cit9CisKKy8qCisgKiBTZWFyY2ggYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxl IGdpdmVuIGl0cyBPSUQuICBJZiBpdAorICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQg dGhlcmUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlz c2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1 aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwg dGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9z ZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlm b3VuZDsKKworCS8qIHByb3RlY3QgdGhlIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERS T1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwg QWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9u dmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vz c2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlm IChmb3VuZCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJ ZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBz dGlsbAorCQkJICogYmUgdmFsaWQsIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3Rl bSBjYXRhbG9nLgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFy KSkKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZh bHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQsIHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZy ZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXIt PmlzX3ZhbGlkID0gZmFsc2U7CisKKwkvKgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGlu aXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxp ZGF0ZWQuCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25f dmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRl ZCBieSBSRUFEKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQp LAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3Rp bGwgb2YgdGhlIGNvcnJlY3QgZG9tYWluICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJ CS8qCisJCSAqIFN0b3JlICJleHRyYSIgZm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0 aW9uQ29udGV4dC4gIFdoZW4gd2UKKwkJICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21h aW5fY2hlY2tfZXh0cmEgY2FjaGUgaXMgbm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8K KwkJaWYgKHN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlk KQorCQkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2so c3Zhci0+dmFsdWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9t YWluX2NoZWNrX2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJl dHVybiBzdmFyOworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lv biB2YXJpYWJsZSBpbiB0aGUgY2FjaGUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJs ZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwg dGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgor ICogdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQK K1NldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkK K3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBz ZXNzaW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNz aW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAo U1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBI QVNIX0VOVEVSLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25f dmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRl ZCBieSBXUklURSkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHN2YXItPnZhcmlkKSwKKwkJCSB2YXJpZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQg d29uJ3QgY2hhbmdlIHRoZSBzdG9yZWQgdmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShz dmFyLCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2 YWx1ZSBzdG9yZWQgaW4gYSB2YXJpYWJsZS4KKyAqLworc3RhdGljIGlubGluZSBEYXR1bQorY29w eV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBib29sICppc051bGwpCit7 CisJRGF0dW0JCXZhbHVlOworCisJLyogZm9yY2UgY29weSBvZiBub24gTlVMTCB2YWx1ZSAqLwor CWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJdmFsdWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUs IHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4pOworCQkqaXNOdWxsID0gZmFsc2U7CisJfQor CWVsc2UKKwl7CisJCXZhbHVlID0gKERhdHVtKSAwOworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisK KwlyZXR1cm4gdmFsdWU7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUg b2YgdGhlIHNlc3Npb24gdmFyaWFibGUgKGluIHRoZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4 dCkuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAq LworRGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCkKK3sK KwlTVmFyaWFibGUJc3ZhcjsKKworCXN2YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7 CisKKwkvKgorCSAqIEFsdGhvdWdoICJzdmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlz IHBvaW50LCBzdmFyLT5pc192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0 aW9uIG1lc3NhZ2Ugd2FzIHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbgorCSAqIGNoZWNrLiBC dXQgdGhlIHZhcmlhYmxlIGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywg c28gd2UKKwkgKiBkb24ndCBuZWVkIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwly ZXR1cm4gY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CiAKIC8q CiAgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKaW5kZXggNDlmMzZhYzY4ODUuLjlmNWM2ZTMwZmJkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0xOSw2ICsxOSw5IEBACiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX25vZGUuaCIKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAKK2V4dGVy biB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlz TnVsbCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAq aXNOdWxsKTsKKwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiAKICNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBkMWUzNTFiMDQ2ZS4uZWFjNDgyZDdiZWMgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNjUzLDYgKzI2NTMsOCBAQCBTU0xfQ1RYCiBTVEFSVFVQ SU5GTwogU1RSTEVOCiBTVgorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlCiBTWU5DSFJPTklaQVRJ T05fQkFSUklFUgogU1lTVEVNX0lORk8KIFNhbXBsZVNjYW4KLS0gCjIuNTAuMQoK --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0006-session-variable-fences-parsing.patch" Content-Disposition: attachment; filename="v20250813-0006-session-variable-fences-parsing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meacziin9 RnJvbSBhMzcyZjg2M2U0NTEzMDFmYjdiOTVjYzFlMTJjYzk0YzEyNjZmMGMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMDc6Mjc6MjcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2 LzE1XSBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBwYXJzaW5nCgpUaGUgc2Vzc2lvbiB2YXJpYWJs ZXMgY2FuIGJlIHVzZWQgaW4gcXVlcnkgb25seSBpbnNpZGUgdGhlIHZhcmlhYmxlIGZlbmNlLgpU aGlzIGlzIHNwZWNpYWwgc3ludGF4IFZBUklBQkxFKHZhcm5hbWUpLCB0aGF0IGVsaW1pbmF0ZXMg YSByaXNrIG9mCmNvbGxpc2lvbiBiZXR3ZWVuIHZhcmlhYmxlIGFuZCBjb2x1bW4gaWRlbnRpZmll ci4KClRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXJzIG9m IENBTEwgb3IgRVhFQ1VURQpjb21tYW5kcy4gVGhlc2UgY29tbWFuZHMgZXZhbHVhdGVzIGFyZ3Vt ZW50cyBieSBkaXJlY3QgY2FsbCBvZiBleHByZXNzaW9uCmV4ZWN1dG9yLCBhbmQgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKd2lsbCBi ZSBpbXBsZW1lbnRlZCBsYXRlciAoaW4gbmV4dCBzdGVwKS4KLS0tCiBkb2Mvc3JjL3NnbWwvZGRs LnNnbWwgICAgICAgICAgICAgICB8ICAxMSArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYyAgICAgfCAyODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMgICAgICAgfCAgIDYgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAg fCAgIDkgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgfCAgMjggKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICB8IDIwOCArKysrKysrKysrKysrKysr KysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jICAgfCAgNDYgKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xz eXNjYWNoZS5jIHwgIDI0ICsrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCAgICAg fCAgIDIgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgfCAgMTIgKysKIHNy Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmggICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oICAgICAgIHwgICA0ICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAgIHwg ICAzICstCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICB8ICAgMSArCiAxOCBm aWxlcyBjaGFuZ2VkLCA2NjEgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXgg NDIwYTRkOWZmMTEuLjI2NTVmYTVlN2NlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Mzk2LDYgKzUzOTYsMTcgQEAgRVhQ TEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9 IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGhvbGRzIHZhbHVl IGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBwcml2YXRlCiAgICAgdG8gZWFjaCBz ZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNzaW9uIGVuZHMuCiAgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIEluIGFuIHF1ZXJ5IHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBi ZSB1c2VkIG9ubHkgaW5zaWRlCisgICAgPGZpcnN0dGVybT52YXJpYWJsZSBmZW5jZTwvZmlyc3R0 ZXJtPi4gVGhpcyBpcyBzcGVjaWFsIHN5bnRheCBmb3IKKyAgICBzZXNzaW9uIHZhcmlhYmxlIGlk ZW50aWZpZXIsIGFuZCBjYW4gYmUgdXNlZCBvbmx5IGZvciBzZXNzaW9uIHZhcmlhYmxlCisgICAg aWRlbnRpZmllci4gVGhlIHNwZWNpYWwgc3ludGF4IGZvciBhY2Nlc3Npbmcgc2Vzc2lvbiB2YXJp YWJsZXMgcmVtb3ZlcworICAgIHJpc2sgb2YgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlk ZW50aWZpZXJzIGFuZCBjb2x1bW4gbmFtZXMuCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgVkFS SUFCTEUoY3VycmVudF91c2VyX2lkKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CiAg IDwvc2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKaW5kZXggYjQ1MDQ3MWUwNjMuLmNkYmU5ZmY0ZmNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKQEAgLTM0OTcsNiArMzQ5NywyOTUgQEAgTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcykKIAly ZXR1cm4gcmVzdWx0OwogfQogCisvKiAtLS0tLQorICogSWRlbnRpZnlWYXJpYWJsZSAtIHRyeSB0 byBmaW5kIGEgdmFyaWFibGUgZnJvbSBhIGxpc3Qgb2YgaWRlbnRpZmllcnMKKyAqCisgKiBSZXR1 cm5zIHRoZSBPSUQgb2YgdGhlIHZhcmlhYmxlIGZvdW5kLCBvciBJbnZhbGlkT2lkLgorICoKKyAq ICJuYW1lcyIgaXMgYSBsaXN0IG9mIHVwIHRvIGZvdXIgaWRlbnRpZmllcnM7IHBvc3NpYmxlIG1l YW5pbmdzIGFyZToKKyAqIC0gdmFyaWFibGUgIChzZWFyY2hlZCBvbiB0aGUgc2VhcmNoX3BhdGgp CisgKiAtIHNjaGVtYS52YXJpYWJsZQorICogLSB2YXJpYWJsZS5hdHRyaWJ1dGUgIChzZWFyY2hl ZCBvbiB0aGUgc2VhcmNoX3BhdGgpCisgKiAtIHNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUKKyAq IC0gZGF0YWJhc2Uuc2NoZW1hLnZhcmlhYmxlCisgKiAtIGRhdGFiYXNlLnNjaGVtYS52YXJpYWJs ZS5hdHRyaWJ1dGUKKyAqCisgKiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHdheSB0byBpZGVu dGlmeSBhIHZhcmlhYmxlLCAibm90X3VuaXF1ZSIgd2lsbCBiZQorICogc2V0IHRvIHRydWUuCisg KgorICogVW5sZXNzICJub2Vycm9yIiBpcyB0cnVlLCBhbiBlcnJvciBpcyByYWlzZWQgaWYgdGhl cmUgYXJlIG1vcmUgdGhhbiBmb3VyCisgKiAgaWRlbnRpZmllcnMgaW4gdGhlIGxpc3QsIG9yIGlm IHRoZSBuYW1lZCBkYXRhYmFzZSBpcyBub3QgdGhlIGN1cnJlbnQgb25lLgorICogVGhpcyBpcyB1 c2VmdWwgaWYgd2Ugd2FudCB0byBpZGVudGlmeSBhIHNoYWRvd2VkIHZhcmlhYmxlLgorICoKKyAq IElmIGFuIGF0dHJpYnV0ZSBpcyBpZGVudGlmaWVkLCBpdCBpcyBzdG9yZWQgaW4gImF0dHJuYW1l Iiwgb3RoZXJ3aXNlIHRoZQorICogcGFyYW1ldGVyIGlzIHNldCB0byBOVUxMLgorICoKKyAqIFRo ZSBpZGVudGlmaWVkIHNlc3Npb24gdmFyaWFibGUgd2lsbCBiZSBsb2NrZWQgd2l0aCBhbiBBY2Nl c3NTaGFyZUxvY2suCisgKiAtLS0tLQorICovCitPaWQKK0lkZW50aWZ5VmFyaWFibGUoTGlzdCAq bmFtZXMsIGNoYXIgKiphdHRybmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKQor eworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKKwlPaWQJCQlvbGRfdmFyaWQgPSBJbnZhbGlk T2lkOworCXVpbnQ2NAkJaW52YWxfY291bnQ7CisJYm9vbAkJcmV0cnkgPSBmYWxzZTsKKworCS8q CisJICogRERMIG9wZXJhdGlvbnMgY2FuIGNoYW5nZSB0aGUgcmVzdWx0cyBvZiBhIG5hbWUgbG9v a3VwLiAgU2luY2UgYWxsIHN1Y2gKKwkgKiBvcGVyYXRpb25zIHdpbGwgZ2VuZXJhdGUgaW52YWxp ZGF0aW9uIG1lc3NhZ2VzLCB3ZSBrZWVwIHRyYWNrIG9mCisJICogd2hldGhlciBhbnkgc3VjaCBt ZXNzYWdlcyBzaG93IHVwIHdoaWxlIHdlJ3JlIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbiwKKwkg KiBhbmQgcmV0cnkgdW50aWwgZWl0aGVyICgxKSBubyBtb3JlIGludmFsaWRhdGlvbiBtZXNzYWdl cyBzaG93IHVwIG9yICgyKQorCSAqIHRoZSBhbnN3ZXIgZG9lc24ndCBjaGFuZ2UuCisJICovCisJ Zm9yICg7OykKKwl7CisJCU5vZGUJICAgKmZpZWxkMSA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxk MiA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkMyA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkNCA9 IE5VTEw7CisJCWNoYXIJICAgKmEgPSBOVUxMOworCQljaGFyCSAgICpiID0gTlVMTDsKKwkJY2hh cgkgICAqYyA9IE5VTEw7CisJCWNoYXIJICAgKmQgPSBOVUxMOworCQlPaWQJCQl2YXJvaWRfd2l0 aG91dF9hdHRyID0gSW52YWxpZE9pZDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhfYXR0ciA9IEludmFs aWRPaWQ7CisKKwkJKm5vdF91bmlxdWUgPSBmYWxzZTsKKwkJKmF0dHJuYW1lID0gTlVMTDsKKwkJ dmFyaWQgPSBJbnZhbGlkT2lkOworCisJCWludmFsX2NvdW50ID0gU2hhcmVkSW52YWxpZE1lc3Nh Z2VDb3VudGVyOworCisJCXN3aXRjaCAobGlzdF9sZW5ndGgobmFtZXMpKQorCQl7CisJCQljYXNl IDE6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVs ZDEsIFN0cmluZykpOworCisJCQkJdmFyaWQgPSBMb29rdXBWYXJpYWJsZShOVUxMLCBzdHJWYWwo ZmllbGQxKSwgdHJ1ZSk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgMjoKKwkJCQlmaWVsZDEgPSBs aW5pdGlhbChuYW1lcyk7CisJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisKKwkJCQlBc3Nl cnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCisJCQkJ aWYgKElzQShmaWVsZDIsIFN0cmluZykpCisJCQkJeworCQkJCQkvKiB3aGVuIGJvdGggZmllbGRz IGFyZSBvZiBzdHJpbmcgdHlwZSAqLworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJ LyoKKwkJCQkJICogYS5iIGNhbiBtZWFuICJzY2hlbWEiLiJ2YXJpYWJsZSIgb3IKKwkJCQkJICog InZhcmlhYmxlIi4iYXR0cmlidXRlIi4gIENoZWNrIGJvdGggdmFyaWFudHMsIGFuZAorCQkJCQkg KiByZXR1cm5zIEludmFsaWRPaWQgd2l0aCBub3RfdW5pcXVlIGZsYWcsIHdoZW4gYm90aAorCQkJ CQkgKiBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgorCQkJCQkgKi8KKwkJCQkJdmFyb2lk X3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIsIHRydWUpOworCQkJCQl2YXJvaWRf d2l0aF9hdHRyID0gTG9va3VwVmFyaWFibGUoTlVMTCwgYSwgdHJ1ZSk7CisJCQkJfQorCQkJCWVs c2UKKwkJCQl7CisJCQkJCS8qIHRoZSBsYXN0IGZpZWxkIG9mIGxpc3QgY2FuIGJlIHN0YXIgdG9v ICovCisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBBX1N0YXIpKTsKKworCQkJCQkvKgorCQkJCQkg KiBUaGUgc3ludGF4IGlkZW50LiogaXMgdXNlZCBvbmx5IGJ5IHJlbGF0aW9uIGFsaWFzZXMsCisJ CQkJCSAqIGFuZCB0aGVuIHRoaXMgaWRlbnRpZmllciBjYW5ub3QgYmUgYSByZWZlcmVuY2UgdG8K KwkJCQkJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkJICovCisJCQkJCXJldHVybiBJbnZhbGlk T2lkOworCQkJCX0KKworCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpICYm IE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJeworCQkJCQkqbm90X3VuaXF1ZSA9 IHRydWU7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxz ZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQl7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2 YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSphdHRybmFtZSA9IGI7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgMzoKKwkJ CQl7CisJCQkJCWJvb2wJCWZpZWxkMV9pc19jYXRhbG9nID0gZmFsc2U7CisKKwkJCQkJZmllbGQx ID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJ ZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5n KSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJpbmcpKTsKKworCQkJCQlhID0gc3RyVmFs KGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQlpZiAoSXNBKGZpZWxk MywgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCQkv KgorCQkJCQkJICogYS5iLmMgY2FuIG1lYW4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb3IKKwkJ CQkJCSAqIHNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUuCisJCQkJCQkgKgorCQkJCQkJICogQ2hl Y2sgYm90aCB2YXJpYW50cywgYW5kIHNldCBub3RfdW5pcXVlIGZsYWcsIHdoZW4KKwkJCQkJCSAq IGJvdGggaW50ZXJwcmV0YXRpb25zIGFyZSBwb3NzaWJsZS4KKwkJCQkJCSAqCisJCQkJCQkgKiBX aGVuIHRoaXJkIG5vZGUgaXMgc3Rhciwgb25seSBwb3NzaWJsZQorCQkJCQkJICogaW50ZXJwcmV0 YXRpb24gaXMgc2NoZW1hLnZhcmlhYmxlLiosIGJ1dCB0aGlzCisJCQkJCQkgKiBwYXR0ZXJuIGlz IG5vdCBzdXBwb3J0ZWQgbm93LgorCQkJCQkJICovCisJCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0g TG9va3VwVmFyaWFibGUoYSwgYiwgdHJ1ZSk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBjaGVjayBw YXR0ZXJuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxlIG9ubHkgd2hlbgorCQkJCQkJICogdGhlcmUg aXMgcG9zc2liaWxpdHkgdG8gc3VjY2Vzcy4KKwkJCQkJCSAqLworCQkJCQkJaWYgKHN0cmNtcChh LCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSA9PSAwKQorCQkJCQkJeworCQkJCQkJ CWZpZWxkMV9pc19jYXRhbG9nID0gdHJ1ZTsKKwkJCQkJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0g TG9va3VwVmFyaWFibGUoYiwgYywgdHJ1ZSk7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJZWxzZQor CQkJCQl7CisJCQkJCQlBc3NlcnQoSXNBKGZpZWxkMywgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4g SW52YWxpZE9pZDsKKwkJCQkJfQorCisJCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0 X2F0dHIpICYmIE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSpu b3RfdW5pcXVlID0gdHJ1ZTsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJ CQkJfQorCQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJ CQl7CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxz ZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJeworCQkJCQkJKmF0dHJu YW1lID0gYzsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQkJfQorCisJCQkJ CS8qCisJCQkJCSAqIFdoZW4gd2UgZGlkbid0IGZpbmQgdmFyaWFibGUsIHdlIGNhbiAod2hlbiBp dCBpcworCQkJCQkgKiBhbGxvd2VkKSByYWlzZSBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2UgZXJy b3IuCisJCQkJCSAqLworCQkJCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpICYmICFub2Vycm9yICYm ICFmaWVsZDFfaXNfY2F0YWxvZykKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJIGVycm1zZygiY3Jv c3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJ CQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlj YXNlIDQ6CisJCQkJeworCQkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxk MiA9IGxzZWNvbmQobmFtZXMpOworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCQkJCQlm aWVsZDQgPSBsZm91cnRoKG5hbWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5n KSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShm aWVsZDMsIFN0cmluZykpOworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0 clZhbChmaWVsZDIpOworCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJLyoKKwkJCQkJ ICogSW4gdGhpcyBjYXNlLCAiYSIgaXMgdXNlZCBhcyBjYXRhbG9nIG5hbWUgLSBjaGVjayBpdC4K KwkJCQkJICovCisJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFz ZUlkKSkgIT0gMCkKKwkJCQkJeworCQkJCQkJaWYgKCFub2Vycm9yKQorCQkJCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJ CQkJCX0KKworCQkJCQlpZiAoSXNBKGZpZWxkNCwgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJZCA9 IHN0clZhbChmaWVsZDQpOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0 KElzQShmaWVsZDQsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0K KworCQkJCQkqYXR0cm5hbWUgPSBkOworCQkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKGIsIGMs IHRydWUpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQlpZiAoIW5vZXJy b3IpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCQkJCSBlcnJtc2coImltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFu eSBkb3R0ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkp KTsKKwkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJfQorCisJCS8qCisJCSAqIElmLCB1cG9uIHJl dHJ5LCB3ZSBnZXQgYmFjayB0aGUgc2FtZSBPSUQgd2UgZGlkIGxhc3QgdGltZSwgdGhlbiB0aGUK KwkJICogaW52YWxpZGF0aW9uIG1lc3NhZ2VzIHdlIHByb2Nlc3NlZCBkaWQgbm90IGNoYW5nZSB0 aGUgZmluYWwgYW5zd2VyLgorCQkgKiBTbyB3ZSdyZSBkb25lLgorCQkgKgorCQkgKiBJZiB3ZSBn b3QgYSBkaWZmZXJlbnQgT0lELCB3ZSd2ZSBsb2NrZWQgdGhlIHZhcmlhYmxlIHRoYXQgdXNlZCB0 bworCQkgKiBoYXZlIHRoaXMgbmFtZSByYXRoZXIgdGhhbiB0aGUgb25lIHRoYXQgZG9lcyBub3cu ICBTbyByZWxlYXNlIHRoZQorCQkgKiBsb2NrLgorCQkgKi8KKwkJaWYgKHJldHJ5KQorCQl7CisJ CQlpZiAob2xkX3ZhcmlkID09IHZhcmlkKQorCQkJCWJyZWFrOworCisJCQlpZiAoT2lkSXNWYWxp ZChvbGRfdmFyaWQpKQorCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25J ZCwgb2xkX3ZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQl9CisKKwkJLyoKKwkJICogTG9j ayB0aGUgdmFyaWFibGUuICBUaGlzIHdpbGwgYWxzbyBhY2NlcHQgYW55IHBlbmRpbmcgaW52YWxp ZGF0aW9uCisJCSAqIG1lc3NhZ2VzLiAgSWYgd2UgZ290IGJhY2sgSW52YWxpZE9pZCwgaW5kaWNh dGluZyBub3QgZm91bmQsIHRoZW4KKwkJICogdGhlcmUncyBub3RoaW5nIHRvIGxvY2ssIGJ1dCB3 ZSBhY2NlcHQgaW52YWxpZGF0aW9uIG1lc3NhZ2VzCisJCSAqIGFueXdheSwgdG8gZmx1c2ggYW55 IG5lZ2F0aXZlIGNhdGNhY2hlIGVudHJpZXMgdGhhdCBtYXkgYmUKKwkJICogbGluZ2VyaW5nLgor CQkgKi8KKwkJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCUFjY2VwdEludmFsaWRhdGlvbk1l c3NhZ2VzKCk7CisJCWVsc2UKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9u SWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCS8qCisJCSAqIElmIG5vIGludmFs aWRhdGlvbiBtZXNzYWdlIHdlcmUgcHJvY2Vzc2VkLCB3ZSdyZSBkb25lIQorCQkgKi8KKwkJaWYg KGludmFsX2NvdW50ID09IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcikKKwkJCWJyZWFrOwor CisJCXJldHJ5ID0gdHJ1ZTsKKwkJb2xkX3ZhcmlkID0gdmFyaWQ7CisJCXZhcmlkID0gSW52YWxp ZE9pZDsKKwl9CisKKwlyZXR1cm4gdmFyaWQ7Cit9CisKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxp ZmllZE5hbWUKICAqCQlHaXZlbiBhIHBvc3NpYmx5LXF1YWxpZmllZCBuYW1lIGV4cHJlc3NlZCBh cyBhIGxpc3Qgb2YgU3RyaW5nIG5vZGVzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDM0YjY0 MTBkNmEyLi5mY2FkY2Q5YmMzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzQxLDYgKzM0 MSwxNCBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVt ZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJn dW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uIGV4 ZWN1dG9yCisJICogY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJp YWJsZXMgeWV0LiBJdCB3aWxsIGJlCisJICogZW5hYmxlZCBsYXRlci4gVGhpcyBjYXNlIHNob3Vs ZCBiZSBibG9ja2VkIHBhcnNlciBieQorCSAqIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMsIHNvIG9ubHkgYXNzZXJ0aW9ucyBpcyB1c2VkIGhlcmUuCisJICovCisJQXNzZXJ0KCFw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyk7CisKIAkvKiBQcmVwYXJlIHRoZSBleHByZXNz aW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQcmVwYXJlRXhwckxpc3Qo cGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVu Y3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDdiYzgyMzUwN2YxLi5j ZDYwOWM2ZTQ3OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTE2NzMsNiArMTY3Myw5IEBAIGV4 cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUGFyYW1SZWY6CiAJCQlsb2Mg PSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOworCQljYXNl IFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9ICgoY29uc3QgVmFyaWFibGVGZW5jZSAqKSBleHBy KS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0FfQ29uc3Q6CiAJCQlsb2MgPSAoKGNv bnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0aW9uOwogCQkJYnJlYWs7CkBAIC00NzA1LDYgKzQ3 MDgsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJ CXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgor CQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMgY29udGFpbiBub3RoaW5nIGludGVyZXN0aW5nICov CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9k ZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcobm9kZSkpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK aW5kZXggMzRmN2MxN2Y1NzYuLjk1YmIwNjIwZjM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTYw Nyw2ICs2MDcsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVs ZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRv d0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwog CXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlh YmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2Nv bGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xMDMyLDYgKzEwMzMsNyBAQCB0cmFuc2Zvcm1J bnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3RtdCAqc3RtdCkKIAogCXFyeS0+ aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlu a3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9u cyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE0OTcsNiArMTQ5OSw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93 RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0g cHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0Fn Z3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJp YWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMTcyMyw2 ICsxNzI2LDcgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2Vs ZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9q b2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1Ykxp bmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFy aWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0x OTc0LDYgKzE5NzgsNyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5w X2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJn ZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFj aChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAgLTI0NDksNiArMjQ1NCw3IEBAIHRyYW5zZm9ybVJl dHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRT UkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5w X2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAK QEAgLTI1MTYsNiArMjUyMiw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5w X2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5r czsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjk5 Miw2ICsyOTk5LDggQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg UExBc3NpZ25TdG10ICpzdG10KQogCQkJCQkJCSAgIChMb2NraW5nQ2xhdXNlICopIGxmaXJzdChs KSwgZmFsc2UpOwogCX0KIAorCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9o YXNTZXNzaW9uVmFyaWFibGVzOworCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBx cnkpOwogCiAJLyogdGhpcyBtdXN0IGJlIGRvbmUgYWZ0ZXIgY29sbGF0aW9ucywgZm9yIHJlbGlh YmxlIGNvbXBhcmlzb24gb2YgZXhwcnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGFiYzM2NWMwY2ZhLi41 MmEyNDJjY2M3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01MjUsNyArNTI1LDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5v ZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglkZWZfYXJnIGNvbHVtbkVsZW0gd2hlcmVfY2xhdXNl IHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCiAJCQkJYV9leHByIGJfZXhwciBjX2V4cHIgQWV4cHJD b25zdCBpbmRpcmVjdGlvbl9lbCBvcHRfc2xpY2VfYm91bmQKIAkJCQljb2x1bW5yZWYgaGF2aW5n X2NsYXVzZSBmdW5jX3RhYmxlIHhtbHRhYmxlIGFycmF5X2V4cHIKLQkJCQlPcHRXaGVyZUNsYXVz ZSBvcGVyYXRvcl9kZWZfYXJnCisJCQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0b3JfZGVmX2FyZyB2 YXJpYWJsZV9mZW5jZQogJXR5cGUgPGxpc3Q+CW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9saXN0CiAl dHlwZSA8bGlzdD4Jcm93c2Zyb21faXRlbSByb3dzZnJvbV9saXN0IG9wdF9jb2xfZGVmX2xpc3QK ICV0eXBlIDxib29sZWFuPiBvcHRfb3JkaW5hbGl0eSBvcHRfd2l0aG91dF9vdmVybGFwcwpAQCAt ODgxLDcgKzg4MSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAgKi8KICVub25hc3NvYwlV TkJPVU5ERUQgTkVTVEVEIC8qIGlkZWFsbHkgd291bGQgaGF2ZSBzYW1lIHByZWNlZGVuY2UgYXMg SURFTlQgKi8KICVub25hc3NvYwlJREVOVCBQQVJUSVRJT04gUkFOR0UgUk9XUyBHUk9VUFMgUFJF Q0VESU5HIEZPTExPV0lORyBDVUJFIFJPTExVUAotCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFS IFZBTFVFX1AgV0lUSCBXSVRIT1VUIFBBVEgKKwkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBW QUxVRV9QIFdJVEggV0lUSE9VVCBQQVRIIFZBUklBQkxFCiAlbGVmdAkJT3AgT1BFUkFUT1IJCS8q IG11bHRpLWNoYXJhY3RlciBvcHMgYW5kIHVzZXItZGVmaW5lZCBvcGVyYXRvcnMgKi8KICVsZWZ0 CQknKycgJy0nCiAlbGVmdAkJJyonICcvJyAnJScKQEAgLTE1NjkwLDYgKzE1NjkwLDE5IEBAIGNf ZXhwcjoJCWNvbHVtbnJlZgkJCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQkJCWVsc2UKIAkJCQkJCSQk ID0gJDI7CiAJCQkJfQorCQkJfCB2YXJpYWJsZV9mZW5jZSBvcHRfaW5kaXJlY3Rpb24KKwkJCQl7 CisJCQkJCWlmICgkMikKKwkJCQkJeworCQkJCQkJQV9JbmRpcmVjdGlvbiAqbiA9IG1ha2VOb2Rl KEFfSW5kaXJlY3Rpb24pOworCisJCQkJCQluLT5hcmcgPSAoTm9kZSAqKSAkMTsKKwkJCQkJCW4t PmluZGlyZWN0aW9uID0gY2hlY2tfaW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5lcik7CisJCQkJCQkk JCA9IChOb2RlICopIG47CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQkJJCQgPSAkMTsKKwkJCQl9 CiAJCQl8IGNhc2VfZXhwcgogCQkJCXsgJCQgPSAkMTsgfQogCQkJfCBmdW5jX2V4cHIKQEAgLTE3 MDY1LDYgKzE3MDc4LDE3IEBAIGNhc2VfYXJnOglhX2V4cHIJCQkJCQkJCQl7ICQkID0gJDE7IH0K IAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTlVMTDsgfQogCQk7CiAKK3ZhcmlhYmxlX2Zl bmNlOgorCQkJVkFSSUFCTEUgJygnIGFueV9uYW1lICcpJworCQkJCXsKKwkJCQkJVmFyaWFibGVG ZW5jZSAqdmYgPSBtYWtlTm9kZShWYXJpYWJsZUZlbmNlKTsKKworCQkJCQl2Zi0+dmFybmFtZSA9 ICQzOworCQkJCQl2Zi0+bG9jYXRpb24gPSBAMzsKKwkJCQkJJCQgPSAoTm9kZSAqKSB2ZjsKKwkJ CQl9CisJCTsKKwogY29sdW1ucmVmOglDb2xJZAogCQkJCXsKIAkJCQkJJCQgPSBtYWtlQ29sdW1u UmVmKCQxLCBOSUwsIEAxLCB5eXNjYW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXgg ZDY2Mjc2ODAxYzYuLjEzNGI1YTZiMDkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE1 LDYgKzE1LDcgQEAKIAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJjYXRhbG9n L25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgpA QCAtNzcsNiArNzgsNyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VT dGF0ZSAqcHN0YXRlLAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1U eXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CiBzdGF0aWMgTm9kZSAq dHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxhdGVDbGF1c2Ug KmMpOworc3RhdGljIE5vZGUgKnRyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBWYXJpYWJsZUZlbmNlICp2Zik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVj dENvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENv bnN0cnVjdG9yICpjdG9yKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uQXJyYXlDb25zdHJ1 Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0xMDYsNyArMTA4LDkgQEAgc3RhdGljIEV4cHIg Km1ha2VfZGlzdGluY3Rfb3AoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcG5hbWUsCiAJCQkJ CQkJICBOb2RlICpsdHJlZSwgTm9kZSAqcnRyZWUsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9k ZSAqbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJ CQkJCQkgQV9FeHByICpkaXN0aW5jdGEsIE5vZGUgKmFyZyk7Ci0KK3N0YXRpYyBOb2RlICptYWtl UGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJICBPaWQg dmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJCQkJCQkJICBj aGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKIAogLyoKICAqIHRyYW5zZm9ybUV4cHIgLQpA QCAtMzcwLDYgKzM3NCwxMCBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3Rh dGUsIE5vZGUgKmV4cHIpCiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Kc29uRnVuY0V4cHIocHN0YXRl LCAoSnNvbkZ1bmNFeHByICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1ZhcmlhYmxl RmVuY2U6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKHBzdGF0ZSwgKFZhcmlh YmxlRmVuY2UgKikgZXhwcik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxk IG5vdCByZWFjaCBoZXJlICovCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlw ZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIpKTsKQEAgLTkwMyw2ICs5MTEsMTM1IEBAIHRyYW5z Zm9ybVBhcmFtUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiAJcmV0dXJu IHJlc3VsdDsKIH0KIAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lv biBraW5kIGlzIHZhbGlkIGZvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqIFNlc3Npb24gdmFyaWFi bGVzIGNhbiBiZSB1c2VkIGV2ZXJ5d2hlcmUgd2hlcmUgZXh0ZXJuYWwgcGFyYW1ldGVycyBjYW4g YmUKKyAqIHVzZWQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQgaW4gRERMIGNv bW1hbmRzIG9yIGluIGNvbnN0cmFpbnRzLgorICoKKyAqIEFuIGlkZW50aWZpZXIgY2FuIGJlIHBh cnNlZCBhcyBhIHNlc3Npb24gdmFyaWFibGUgb25seSBmb3IgZXhwcmVzc2lvbiBraW5kcworICog d2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsbG93ZWQuICBUaGlzIGlzIHRoZSBwcmltYXJ5 IHVzYWdlIG9mIHRoaXMKKyAqIGZ1bmN0aW9uLgorICoKKyAqIFRoZSBzZWNvbmQgdXNhZ2Ugb2Yg dGhpcyBmdW5jdGlvbiBpcyB0byBkZWNpZGUgd2hldGhlciBhICJjb2x1bW4gZG9lcyBub3QKKyAq IGV4aXN0IiBvciBhICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiIGVycm9yIG1l c3NhZ2Ugc2hvdWxkIGJlCisgKiBwcmludGVkLiAgV2hlbiB3ZSBhcmUgaW4gYW4gZXhwcmVzc2lv biB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUKKyAqIHVzZWQsIHdlIHJhaXNlIHRo ZSBmaXJzdCBmb3JtIG9mIGVycm9yIG1lc3NhZ2UuCisgKi8KK3N0YXRpYyBib29sCitleHByX2tp bmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCit7 CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlzd2l0Y2ggKHBfZXhwcl9raW5kKQorCXsKKwkJ Y2FzZSBFWFBSX0tJTkRfTk9ORToKKwkJCUFzc2VydChmYWxzZSk7CQkvKiBjYW4ndCBoYXBwZW4g Ki8KKwkJCXJldHVybiBmYWxzZTsKKworCQkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dlZCAq LworCQljYXNlIEVYUFJfS0lORF9PVEhFUjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoKKwkJ Y2FzZSBFWFBSX0tJTkRfRlJPTV9TVUJTRUxFQ1Q6CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fRlVO Q1RJT046CisJCWNhc2UgRVhQUl9LSU5EX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9IQVZJTkc6 CisJCWNhc2UgRVhQUl9LSU5EX0ZJTFRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX1BBUlRJ VElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX09SREVSOgorCQljYXNlIEVYUFJfS0lORF9X SU5ET1dfRlJBTUVfUkFOR0U6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dTOgor CQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfR1JPVVBTOgorCQljYXNlIEVYUFJfS0lORF9T RUxFQ1RfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNlIEVY UFJfS0lORF9VUERBVEVfU09VUkNFOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgorCQlj YXNlIEVYUFJfS0lORF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZ OgorCQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJTkRfRElTVElOQ1Rf T046CisJCWNhc2UgRVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVYUFJfS0lORF9PRkZTRVQ6CisJ CWNhc2UgRVhQUl9LSU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgorCQlj YXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgorCQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJyZWFr OworCisJCQkvKiBzZXNzaW9uIHZhcmlhYmxlcyBub3QgYWxsb3dlZCAqLworCQljYXNlIEVYUFJf S0lORF9JTlNFUlRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoK KwkJY2FzZSBFWFBSX0tJTkRfQ0FMTF9BUkdVTUVOVDoKKwkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tf Q09OU1RSQUlOVDoKKwkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJf S0lORF9DT0xVTU5fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoK KwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfSU5E RVhfUFJFRElDQVRFOgorCQljYXNlIEVYUFJfS0lORF9TVEFUU19FWFBSRVNTSU9OOgorCQljYXNl IEVYUFJfS0lORF9UUklHR0VSX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9CT1VO RDoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9L SU5EX0dFTkVSQVRFRF9DT0xVTU46CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6CisJCWNh c2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FMVEVSX0NPTF9UUkFO U0ZPUk06CisJCWNhc2UgRVhQUl9LSU5EX1BPTElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ09QWV9X SEVSRToKKwkJCXJlc3VsdCA9IGZhbHNlOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3Vs dDsKK30KKworc3RhdGljIE5vZGUgKgordHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0YXRl ICpwc3RhdGUsIFZhcmlhYmxlRmVuY2UgKnZmKQoreworCU5vZGUJICAgKnJlc3VsdDsKKwlPaWQJ CQl2YXJpZCA9IEludmFsaWRPaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJ CW5vdF91bmlxdWU7CisKKwkvKiBWYXJpYWJsZUZlbmNlIGNhbiBiZSB1c2VkIG9ubHkgaW4gY29u dGV4dCB3aGVuIHZhcmlhYmxlcyBhcmUgc3VwcG9ydGVkICovCisJaWYgKCFleHByX2tpbmRfYWxs b3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkg ZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUi KSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJ LyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJ dmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKHZmLT52YXJuYW1lLCAmYXR0cm5hbWUsICZub3RfdW5p cXVlLCBmYWxzZSk7CisKKwlpZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgcmVmZXJlbmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxp c3RUb1N0cmluZyh2Zi0+dmFybmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCB2Zi0+bG9jYXRpb24pKSk7CisKKwlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJeworCQlPaWQJ CQl0eXBpZDsKKwkJaW50MzIJCXR5cG1vZDsKKwkJT2lkCQkJY29sbGlkOworCisJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAor CQkJCQkJCQkJCQkJJmNvbGxpZCk7CisKKwkJcmVzdWx0ID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlh YmxlKHBzdGF0ZSwKKwkJCQkJCQkJCQkgIHZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJ CQkJCQkJCQkJICBhdHRybmFtZSwgdmYtPmxvY2F0aW9uKTsKKwl9CisJZWxzZQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVy cm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1l TGlzdFRvU3RyaW5nKHZmLT52YXJuYW1lKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIHZmLT5sb2NhdGlvbikpKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qIFRlc3Qgd2hl dGhlciBhbiBhX2V4cHIgaXMgYSBwbGFpbiBOVUxMIGNvbnN0YW50IG9yIG5vdCAqLwogc3RhdGlj IGJvb2wKIGV4cHJJc051bGxDb25zdGFudChOb2RlICphcmcpCkBAIC0zMTIyLDYgKzMyNTksNzUg QEAgbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9FeHBy ICpkaXN0aW5jdGEsIE5vZGUgKmFyZykKIAlyZXR1cm4gKE5vZGUgKikgbnQ7CiB9CiAKKy8qCisg KiBHZW5lcmF0ZSBwYXJhbSB2YXJpYWJsZSBmb3IgcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFi bGUKKyAqLworc3RhdGljIE5vZGUgKgorbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKKwkJCQkJCSBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBP aWQgY29sbGlkLAorCQkJCQkJIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pCit7CisJUGFy YW0JICAgKnBhcmFtOworCisJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisKKwlwYXJhbS0+cGFy YW1raW5kID0gUEFSQU1fVkFSSUFCTEU7CisJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlw YXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOwor CXBhcmFtLT5wYXJhbWNvbGxpZCA9IGNvbGxpZDsKKworCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFy aWFibGVzID0gdHJ1ZTsKKworCWlmIChhdHRybmFtZSAhPSBOVUxMKQorCXsKKwkJVHVwbGVEZXNj CXR1cGRlc2M7CisJCWludAkJCWk7CisKKwkJdHVwZGVzYyA9IGxvb2t1cF9yb3d0eXBlX3R1cGRl c2Nfbm9lcnJvcih0eXBpZCwgdHlwbW9kLCB0cnVlKTsKKwkJaWYgKCF0dXBkZXNjKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJ CQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlIFwiJXNcIiwgd2hpY2gg aXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisKKwkJZm9yIChpID0g MDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJCXsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIGF0 dCA9IFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSk7CisKKwkJCWlmIChzdHJjbXAoYXR0cm5hbWUs IE5hbWVTdHIoYXR0LT5hdHRuYW1lKSkgPT0gMCAmJgorCQkJCSFhdHQtPmF0dGlzZHJvcHBlZCkK KwkJCXsKKwkJCQkvKiBzdWNjZXNzLCBzbyBnZW5lcmF0ZSBhIEZpZWxkU2VsZWN0IGV4cHJlc3Np b24gKi8KKwkJCQlGaWVsZFNlbGVjdCAqZnNlbGVjdCA9IG1ha2VOb2RlKEZpZWxkU2VsZWN0KTsK KworCQkJCWZzZWxlY3QtPmFyZyA9IChFeHByICopIHBhcmFtOworCQkJCWZzZWxlY3QtPmZpZWxk bnVtID0gaSArIDE7CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwZSA9IGF0dC0+YXR0dHlwaWQ7CisJ CQkJZnNlbGVjdC0+cmVzdWx0dHlwbW9kID0gYXR0LT5hdHR0eXBtb2Q7CisJCQkJLyogc2F2ZSBh dHRyaWJ1dGUncyBjb2xsYXRpb24gZm9yIHBhcnNlX2NvbGxhdGUuYyAqLworCQkJCWZzZWxlY3Qt PnJlc3VsdGNvbGxpZCA9IGF0dC0+YXR0Y29sbGF0aW9uOworCisJCQkJUmVsZWFzZVR1cGxlRGVz Yyh0dXBkZXNjKTsKKwkJCQlyZXR1cm4gKE5vZGUgKikgZnNlbGVjdDsKKwkJCX0KKwkJfQorCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwK KwkJCQkgZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgY29sdW1uIFwiJXNcIiBpbiB2YXJpYWJs ZSBcIiVzLiVzXCIiLAorCQkJCQkJYXR0cm5hbWUsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHZhcmlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IGxvY2F0aW9uKSkpOworCX0KKworCXJldHVybiAoTm9kZSAqKSBwYXJhbTsKK30KKwogLyoKICAq IFByb2R1Y2UgYSBzdHJpbmcgaWRlbnRpZnlpbmcgYW4gZXhwcmVzc2lvbiBieSBraW5kLgogICoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKaW5kZXggNTFkNzcwM2VmZjcuLjI0NGVmY2RkZjMyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIHRyYW5zZm9ybU1l cmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFz VGFyZ2V0U1JGcyA9IGZhbHNlOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3Vi TGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25W YXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA0YWJhMGQ5ZDRkNS4uY2YwMWJmZjY1YTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTIwMzQsNiArMjAzNCwxMyBAQCBGaWd1cmVD b2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUpCiAJCQkJCQkgKGludCkgKChK c29uRnVuY0V4cHIgKikgbm9kZSktPm9wKTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfVmFy aWFibGVGZW5jZToKKwkJCXsKKwkJCQkvKiByZXR1cm4gbGFzdCBmaWVsZCBuYW1lICovCisJCQkJ Km5hbWUgPSBzdHJWYWwobGxhc3QoKChWYXJpYWJsZUZlbmNlICopIG5vZGUpLT52YXJuYW1lKSk7 CisJCQkJcmV0dXJuIDI7CisJCQl9CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwog CX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAzZDZlNmJkYmZkMi4uNTJiODY3M2Vl ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Ry aWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1vbi9rZXl3b3Jkcy5oIgpAQCAt NTM0LDYgKzUzNSw3IEBAIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9mdW5jdGlvbl9uYW1lKE9pZCBm dW5jaWQsIGludCBuYXJncywKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9vcGVyYXRvcl9uYW1lKE9p ZCBvcGVyaWQsIE9pZCBhcmcxLCBPaWQgYXJnMik7CiBzdGF0aWMgdm9pZCBhZGRfY2FzdF90byhT dHJpbmdJbmZvIGJ1ZiwgT2lkIHR5cGlkKTsKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9xdWFsaWZp ZWRfdHlwZV9uYW1lKE9pZCB0eXBpZCk7CitzdGF0aWMgY2hhciAqZ2VuZXJhdGVfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7CiBzdGF0aWMgdGV4dCAqc3RyaW5nX3RvX3RleHQoY2hh ciAqc3RyKTsKIHN0YXRpYyBjaGFyICpmbGF0dGVuX3JlbG9wdGlvbnMoT2lkIHJlbGlkKTsKIHN0 YXRpYyB2b2lkIGdldF9yZWxvcHRpb25zKFN0cmluZ0luZm8gYnVmLCBEYXR1bSByZWxvcHRpb25z KTsKQEAgLTg4MDMsNiArODgwNSwxNCBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVw YXJzZV9jb250ZXh0ICpjb250ZXh0KQogCQl9CiAJfQogCisJLyogdHJhbnNsYXRlIHBhcmFtdmFy aWQgdG8gc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICovCisJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fVkFSSUFCTEUpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIlZB UklBQkxFKCVzKSIsCisJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFt LT5wYXJhbXZhcmlkKSk7CisJCXJldHVybjsKKwl9CisKIAkvKgogCSAqIE5vdCBQQVJBTV9FWEVD LCBvciBjb3VsZG4ndCBmaW5kIHJlZmVyZW50OiBqdXN0IHByaW50ICROLgogCSAqCkBAIC0xMzU2 Niw2ICsxMzU3Niw0MiBAQCBnZW5lcmF0ZV9jb2xsYXRpb25fbmFtZShPaWQgY29sbGlkKQogCXJl dHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUK KyAqCQlDb21wdXRlIHRoZSBuYW1lIHRvIGRpc3BsYXkgZm9yIGEgc2Vzc2lvbiB2YXJpYWJsZSBz cGVjaWZpZWQgYnkgT0lECisgKgorICogVGhlIHJlc3VsdCBpbmNsdWRlcyBhbGwgbmVjZXNzYXJ5 IHF1b3RpbmcgYW5kIHNjaGVtYS1wcmVmaXhpbmcuCisgKi8KK3N0YXRpYyBjaGFyICoKK2dlbmVy YXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsK KwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJY2hhcgkgICAqdmFybmFtZTsKKwljaGFyCSAg ICpuc3BuYW1lOworCWNoYXIJICAgKnJlc3VsdDsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJ c1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJp YWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHR1cCk7CisKKwl2YXJuYW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCWlm ICghVmFyaWFibGVJc1Zpc2libGUodmFyaWQpKQorCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9u YW1lX29yX3RlbXAodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwllbHNlCisJCW5zcG5hbWUgPSBO VUxMOworCisJcmVzdWx0ID0gcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwgdmFy bmFtZSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisK IC8qCiAgKiBHaXZlbiBhIEMgc3RyaW5nLCBwcm9kdWNlIGEgVEVYVCBkYXR1bS4KICAqCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IDM0NTA0YmYzZDZiLi43ZjgxYjE0ZDYxYiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTM5MTksMyArMzkxOSwyNyBAQCBn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKQogCiAJcmV0dXJuIHZhcm5h bWVzcGFjZTsKIH0KKworLyoKKyAqIFJldHVybnMgdGhlIHR5cGUsIHR5cG1vZCBhbmQgY29sbGlk IG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCit2b2lkCitnZXRfc2Vzc2lvbl92 YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAq dHlwbW9kLAorCQkJCQkJCQkJCU9pZCAqY29sbGlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9y bV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxF T0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQo dHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNU UlVDVCh0dXApOworCisJKnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKwkqdHlwbW9kID0gdmFy Zm9ybS0+dmFydHlwbW9kOworCSpjb2xsaWQgPSB2YXJmb3JtLT52YXJjb2xsYXRpb247CisKKwlS ZWxlYXNlU3lzQ2FjaGUodHVwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IGJkYWMw YzEzYmVjLi5iMjIxYWRhZmQyZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC05OCw2ICs5 OCw4IEBAIGV4dGVybiBPaWQJVHlwZW5hbWVHZXRUeXBpZEV4dGVuZGVkKGNvbnN0IGNoYXIgKnR5 cG5hbWUsIGJvb2wgdGVtcF9vayk7CiBleHRlcm4gYm9vbCBUeXBlSXNWaXNpYmxlKE9pZCB0eXBp ZCk7CiAKIGV4dGVybiBib29sIFZhcmlhYmxlSXNWaXNpYmxlKE9pZCB2YXJpZCk7CitleHRlcm4g T2lkCUlkZW50aWZ5VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIgKiphdHRybmFtZSwKKwkJCQkJ CQkgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKTsKIAogZXh0ZXJuIEZ1bmNDYW5kaWRh dGVMaXN0IEZ1bmNuYW1lR2V0Q2FuZGlkYXRlcyhMaXN0ICpuYW1lcywKIAkJCQkJCQkJCQkJICAg aW50IG5hcmdzLCBMaXN0ICphcmduYW1lcywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAyYjRj NzM2M2Q3NC4uMTBjZjUyNDY3ZTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE2Nyw2ICsx NjcsOCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCWJvb2wJCWhhc1Jvd1NlY3VyaXR5IHBnX25v ZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBwYXJzZXIgaGFzIGFkZGVkIGFuIFJU RV9HUk9VUCBSVEUgKi8KIAlib29sCQloYXNHcm91cFJURSBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7CisJLyogdXNlcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWJvb2wJCWhhc1Nl c3Npb25WYXJpYWJsZXMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGlz IGEgUkVUVVJOIHN0YXRlbWVudCAqLwogCWJvb2wJCWlzUmV0dXJuIHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKIApAQCAtMzIxLDYgKzMyMywxNiBAQCB0eXBlZGVmIHN0cnVjdCBQ YXJhbVJlZgogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlm IHVua25vd24gKi8KIH0gUGFyYW1SZWY7CiAKKy8qCisgKiBWYXJpYWJsZUZlbmNlIC0gZW5zdXJl IHNvIGZpZWxkcyB3aWxsIGJlIGludGVycHJldHRlZCBhcyBhIHZhcmlhYmxlCisgKi8KK3R5cGVk ZWYgc3RydWN0IFZhcmlhYmxlRmVuY2UKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnZh cm5hbWU7CQkvKiB2YXJpYWJsZSBuYW1lIChTdHJpbmcgbm9kZXMpICovCisJUGFyc2VMb2MJbG9j YXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLworfSBWYXJpYWJs ZUZlbmNlOworCiAvKgogICogQV9FeHByIC0gaW5maXgsIHByZWZpeCwgYW5kIHBvc3RmaXggZXhw cmVzc2lvbnMKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA2ZGZjYTNjYjM1Yi4uOWQ3Yjlm NTk4ZjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0zNzgsNiArMzc4LDggQEAgdHlwZWRlZiBz dHJ1Y3QgQ29uc3QKICAqCQkJCW9mIHRoZSBgcGFyYW1pZCcgZmllbGQgY29udGFpbiB0aGUgU3Vi TGluaydzIHN1YkxpbmtJZCwgYW5kCiAgKgkJCQl0aGUgbG93LW9yZGVyIDE2IGJpdHMgY29udGFp biB0aGUgY29sdW1uIG51bWJlci4gIChUaGlzIHR5cGUKICAqCQkJCW9mIFBhcmFtIGlzIGFsc28g Y29udmVydGVkIHRvIFBBUkFNX0VYRUMgZHVyaW5nIHBsYW5uaW5nLikKKyAqCQlQQVJBTV9WQVJJ QUJMRTogIFRoZSBwYXJhbWV0ZXIgaXMgYSByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxl CisgKgkJCQkocGFyYW12YXJpZCBob2xkcyB0aGUgdmFyaWFibGUncyBPSUQpLgogICovCiB0eXBl ZGVmIGVudW0gUGFyYW1LaW5kCiB7CkBAIC0zODUsNiArMzg3LDcgQEAgdHlwZWRlZiBlbnVtIFBh cmFtS2luZAogCVBBUkFNX0VYRUMsCiAJUEFSQU1fU1VCTElOSywKIAlQQVJBTV9NVUxUSUVYUFIs CisJUEFSQU1fVkFSSUFCTEUsCiB9IFBhcmFtS2luZDsKIAogdHlwZWRlZiBzdHJ1Y3QgUGFyYW0K QEAgLTM5OSw2ICs0MDIsOCBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCWludDMyCQlwYXJhbXR5 cG1vZDsKIAkvKiBPSUQgb2YgY29sbGF0aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8KIAlP aWQJCQlwYXJhbWNvbGxpZDsKKwkvKiBPSUQgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIG9yIElu dmFsaWRPaWQgaWYgbm9uZSAqLworCU9pZAkJCXBhcmFtdmFyaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICov CiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5k ZXggZjdkMDdjODQ1NDIuLjg0ZTg4Njk0MGQ4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAg LTIyOCw2ICsyMjgsNyBAQCBzdHJ1Y3QgUGFyc2VTdGF0ZQogCWJvb2wJCXBfaGFzVGFyZ2V0U1JG czsKIAlib29sCQlwX2hhc1N1YkxpbmtzOwogCWJvb2wJCXBfaGFzTW9kaWZ5aW5nQ1RFOworCWJv b2wJCXBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCU5vZGUJICAgKnBfbGFzdF9zcmY7CQkvKiBt b3N0IHJlY2VudCBzZXQtcmV0dXJuaW5nIGZ1bmMvb3AgZm91bmQgKi8KIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2Fj aGUuaAppbmRleCA4N2UxZmU2MzZiOS4uZjUxNjBkZTY3ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o CkBAIC0yMTQsNiArMjE0LDEwIEBAIGV4dGVybiBjaGFyICpnZXRfc3Vic2NyaXB0aW9uX25hbWUo T2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOwogCiBleHRlcm4gY2hhciAqZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOwogZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UoT2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxl X3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFyaWQsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwK KwkJCQkJCQkJCQkJCQlpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsK IAogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQp ICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxh aW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJyYXlzICovCmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRl eCBkMTk0MjViN2E3MS4uOTY4NTc4NzRmZmUgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtODI2OCw3 ICs4MjY4LDggQEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHByICpleHByKQogCQlx dWVyeS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxp bWl0Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRp b25zIHx8CisJCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQlyZXR1cm4gZmFsc2U7CiAK IAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA4OTYyZDQ4MjNkMi4uZDFlMzUxYjA0 NmUgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0zMjAyLDYgKzMyMDIsNyBAQCBWYWxp ZGF0b3JWYWxpZGF0ZUNCCiBWYWx1ZXNTY2FuCiBWYWx1ZXNTY2FuU3RhdGUKIFZhcgorVmFyaWFi bGVGZW5jZQogVmFyQml0CiBWYXJDaGFyCiBWYXJQYXJhbVN0YXRlCi0tIAoyLjUwLjEKCg== --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0004-support-of-session-variables-for-psql.patch" Content-Disposition: attachment; filename="v20250813-0004-support-of-session-variables-for-psql.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczij211 RnJvbSBmNTJmYjJkMGVjNTRlODM1OGRhNTE2YWNkNjcxNDUwNmIyOWJlOGQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDUgQXVnIDIwMjUgMDY6NDI6MDIgKzAyMDAKU3ViamVjdDogW1BB VENIIDA0LzE1XSBzdXBwb3J0IG9mIHNlc3Npb24gdmFyaWFibGVzIGZvciBwc3FsCgpUaGlzIHBh dGNoIGVuaGFuY2luZyBwc3FsIHRvIHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXM6CgogKiBcZFZb K10gY29tbWFuZAogKiB0YWIgY29tcGxldGUgZm9yIENSRUFURSwgRFJPUCwgQUxURVIgVkFSSUFC TEUKCk5vdGU6IHRhYiBjb21wbGV0ZSBmb3IgdmFyaWFibGUgZmVuY2luZyBpcyBub3Qgc3VwcG9y dGVkIHlldAotLS0KIGRvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sICAgfCAgMTMgKysr KwogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICB8ICAxMyArKysrCiBzcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jICAgIHwgIDE0ICsrKysKIHNyYy9iaW4vcHNxbC9jb21t YW5kLmMgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAg ICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmggICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BzcWwvaGVscC5jICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgfCAgNDUg KysrKysrKysrKystLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICB8ICAgMyAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IHwgIDUwICsrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAgICB8ICAyMSArKysrKysKIDExIGZp bGVzIGNoYW5nZWQsIDI1OSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMv ZnVuYy1pbmZvLnNnbWwKaW5kZXggYTU3Zjc2NjUwNTQuLjNhYWQ5ZDA1MjlmIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWluZm8uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVu Yy9mdW5jLWluZm8uc2dtbApAQCAtMTM3Nyw2ICsxMzc3LDE5IEBAIFNFTEVDVCByZWxuYW1lIEZS T00gcGdfY2xhc3MgV0hFUkUgcGdfdGFibGVfaXNfdmlzaWJsZShvaWQpOwogICAgICAgICBJcyB0 eXBlIChvciBkb21haW4pIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CiAgICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0i ZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8 aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvcHJp bWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ192YXJpYWJs ZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhcmlhYmxlPC9wYXJhbWV0ZXI+ IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJu dmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJcyBzZXNzaW9u IHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CisgICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggMWEzMzk2MDBiYzQuLjZiYjNhOWRhZDUwIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTQ0LDYgKzIxNDQsMTkgQEAgU0VMRUNUICQxIFxwYXJz ZSBzdG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kdiI+CisgICAgICAg IDx0ZXJtPjxsaXRlcmFsPlxkVlsrXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5z Ij48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9s aW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgTGlzdHMgc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgIElmIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMKKyAgICAgICAg c3BlY2lmaWVkLCBvbmx5IHNlc3Npb24gdmFyaWFibGVzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBw YXR0ZXJuIGFyZSBsaXN0ZWQuCisgICAgICAgIElmIHRoZSBmb3JtIDxsaXRlcmFsPlxkVis8L2xp dGVyYWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgZWFj aCB2YXJpYWJsZSBpcyBzaG93biwgbGlrZSAgYWNjZXNzIHByaXZpbGVnZXMgYW5kIGRlc2NyaXB0 aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5k LWR1Ij4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGR1W1N4K10gWyA8bGluayBsaW5rZW5kPSJh cHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48 L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRl bT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IDRhYmJlNzMzZjQ1Li5iNDUwNDcxZTA2MyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC01MjkyLDMgKzUyOTIsMTcgQEAgcGdfaXNfb3Ro ZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9CT09MKGlzT3Ro ZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwogfQorCitEYXR1bQorcGdfdmFyaWFibGVfaXNfdmlzaWJs ZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCW9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJ Ym9vbAkJcmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJlc3VsdCA9IFZh cmlhYmxlSXNWaXNpYmxlRXh0KG9pZCwgJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3Npbmcp CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJUEdfUkVUVVJOX0JPT0wocmVzdWx0KTsKK30KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmlu ZGV4IGNjNjAyMDg3ZGIyLi4wYWM3Yjk4ODFjZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Nv bW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC0xMjcwLDYgKzEyNzAsOSBA QCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2Jy YW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJCWJyZWFrOwor CQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJCQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJs ZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8q IEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJib3NlKQogCQkJCQlzdWNjZXNzID0gbGlz dEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA3YTA2YWY0ODg0Mi4uNGU4 OTYyNGYyNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xMjI0LDcgKzEyMjQsNyBAQCBsaXN0RGVmYXVsdEFDTHMo Y29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3Vz ZXJieWlkKGQuZGVmYWNscm9sZSkgQVMgXCIlc1wiLFxuIgogCQkJCQkgICIgIG4ubnNwbmFtZSBB UyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSBkLmRlZmFjbG9ianR5cGUgIgotCQkJCQkgICIg ICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVO ICclcyciCisJCQkJCSAgIiAgICBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICcl cycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIgogCQkJCQkgICIgICAg V0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICcl cycgRU5EIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICAiLAogCQkJCQkgIGdldHRleHRfbm9vcCgi T3duZXIiKSwKQEAgLTEyNDEsNiArMTI0MSw4IEBAIGxpc3REZWZhdWx0QUNMcyhjb25zdCBjaGFy ICpwYXR0ZXJuKQogCQkJCQkgIGdldHRleHRfbm9vcCgic2NoZW1hIiksCiAJCQkJCSAgREVGQUNM T0JKX0xBUkdFT0JKRUNULAogCQkJCQkgIGdldHRleHRfbm9vcCgibGFyZ2Ugb2JqZWN0IiksCisJ CQkJCSAgREVGQUNMT0JKX1ZBUklBQkxFLAorCQkJCQkgIGdldHRleHRfbm9vcCgic2Vzc2lvbiB2 YXJpYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpKTsKIAogCXByaW50QUNMQ29s dW1uKCZidWYsICJkLmRlZmFjbGFjbCIpOwpAQCAtNTMxNCw2ICs1MzE2LDEwMiBAQCBlcnJvcl9y ZXR1cm46CiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICogXGRWCisgKgorICogbGlzdFZhcmlh YmxlcygpCisgKi8KK2Jvb2wKK2xpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOwor CXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisJc3RhdGljIGNvbnN0IGJvb2wgdHJh bnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZX07CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKKwl7CisJCWNoYXIJ CXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykg ZG9lcyBub3Qgc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcy4iLAorCQkJCQkgZm9ybWF0UEdWZXJz aW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNp emVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIo JmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1Qgbi5uc3Bu YW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZhcm5hbWUgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMg XCIlc1wiLFxuIgorCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cu cGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgorCQkJCQkgICIgICBXSEVS RSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFy Y29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIlxuIiwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAor CQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0 aW9uIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpKTsKKworCWlmICh2ZXJib3NlKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgIik7CisJCXByaW50QUNMQ29s dW1uKCZidWYsICJ2LnZhcmFjbCIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJ ICAiLFxuICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbih2Lm9pZCwgJ3BnX3ZhcmlhYmxlJykg QVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlvbiIpKTsKKwl9CisK KwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0YWxvZy5w Z192YXJpYWJsZSB2IgorCQkJCQkJICJcbiAgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFt ZXNwYWNlIG4gT04gbi5vaWQgPSB2LnZhcm5hbWVzcGFjZSIpOworCisJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmJ1ZiwgIlxuV0hFUkUgdHJ1ZVxuIik7CisJaWYgKCFwYXR0ZXJuKQorCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiICAgICAgQU5EIG4ubnNwbmFtZSA8PiAncGdfY2F0YWxvZydc biIKKwkJCQkJCQkgIiAgICAgIEFORCBuLm5zcG5hbWUgPD4gJ2luZm9ybWF0aW9uX3NjaGVtYSdc biIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIHRydWUs IGZhbHNlLAorCQkJCQkJCQkibi5uc3BuYW1lIiwgInYudmFybmFtZSIsIE5VTEwsCisJCQkJCQkJ CSJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkJCQkJCQkJTlVM TCwgMykpCisJCXJldHVybiBmYWxzZTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJP UkRFUiBCWSAxLDI7Iik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhw QnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIE1v c3QgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgY29udGVudCB0byBwcmludCBhbiBlbXB0eSB0 YWJsZSB3aGVuCisJICogdGhlcmUgYXJlIG5vIG1hdGNoaW5nIG9iamVjdHMuICBXZSBpbnRlbnRp b25hbGx5IGRldmlhdGUgZnJvbSB0aGF0CisJICogaGVyZSwgYnV0IG9ubHkgaW4gIXF1aWV0IG1v ZGUsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuCisJICovCisJaWYgKFBRbnR1cGxlcyhyZXMpID09 IDAgJiYgIXBzZXQucXVpZXQpCisJeworCQlpZiAocGF0dGVybikKKwkJCXBnX2xvZ19lcnJvcigi RGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlIG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJ IHBhdHRlcm4pOworCQllbHNlCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vz c2lvbiB2YXJpYWJsZXMuIik7CisJfQorCWVsc2UKKwl7CisJCW15b3B0Lm51bGxQcmludCA9IE5V TEw7CisJCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB2YXJpYWJsZXMiKTsKKwkJbXlvcHQudHJh bnNsYXRlX2hlYWRlciA9IHRydWU7CisJCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNs YXRlX2NvbHVtbnM7CisJCW15b3B0Lm5fdHJhbnNsYXRlX2NvbHVtbnMgPSBsZW5ndGhvZih0cmFu c2xhdGVfY29sdW1ucyk7CisKKwkJcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZv dXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCX0KKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4g dHJ1ZTsKK30KIAogLyoKICAqIFxkRnAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggMThlY2FhNjA5NDkuLjU1Y2VkNGFh YjdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQgKzE0OSw3IEBAIGV4dGVybiBib29sIGxpc3RPcEZhbWls eUZ1bmN0aW9ucyhjb25zdCBjaGFyICphY2Nlc3NfbWV0aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3Ig XGxvX2xpc3QgKi8KIGV4dGVybiBib29sIGxpc3RMYXJnZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsK IAorLyogXGRWICovCitleHRlcm4gYm9vbCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRl cm4sIGJvb2wgdmFyYm9zZSk7CisKICNlbmRpZgkJCQkJCQkvKiBERVNDUklCRV9IICovCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCBl ZDAwYzM2Njk1ZS4uYWE5MWE3Y2UxMGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMK KysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjY2LDYgKzI2Niw3IEBAIHNsYXNoVXNhZ2Uo dW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZFRbU3grXSBbUEFUVEVSTl0g ICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAoIiAgXFxkdVtTeCtdIFtQQVRURVJOXSAg ICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxkdltTeCtdIFtQQVRURVJOXSAgICAgbGlz dCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkVlt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBzZXNz aW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxkeFt4K10gIFtQQVRURVJOXSAgICAgbGlz dCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRYW3hdICAgW1BBVFRFUk5dICAgICBsaXN0 IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAwKCIgIFxcZHlbeCtdICBbUEFUVEVSTl0g ICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDhi MTBmMjMxM2YzLi5mMzcxNDRlNDM3ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtOTc4LDYg Kzk3OCwxMyBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX3RyaWdnZXJfb2Zf dGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9ICJjMS5yZWxuYW1lc3BhY2UiLAogfTsKIAorc3Rh dGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyA9IHsKKwku bWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAwLAorCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdf dmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlvbiA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lz X3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNwYWNlID0gInYudmFybmFtZXNwYWNlIiwKKwkucmVz dWx0ID0gInYudmFybmFtZSIsCit9OwogCiAvKgogICogUXVlcmllcyB0byBnZXQgbGlzdHMgb2Yg bmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0aGluZ3MsIHBvc3NpYmx5CkBAIC0xMzQyLDYgKzEz NDksNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9 IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlVTRVIiLCBRdWVyeV9m b3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5d29yZHNfZm9yX3VzZXJfdGhpbmd9LAog CXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEwsIE5VTEx9LAorCXsiVkFSSUFCTEUiLCBO VUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzfSwKIAl7IlZJRVciLCBOVUxM LCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBv ZiBsaXN0ICovCiB9OwpAQCAtMTkwNyw3ICsxOTE1LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0 IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxk RnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwg IlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQdCIs CiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxkUnMiLCAiXFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0 IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIsICJcXGR5IiwKKwkJIlxc ZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLCAiXFxk ViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0IiwgIlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIsICJc XGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAiXFxlbmRwaXBlbGluZSIsICJcXGVycnZlcmJvc2Ui LCAiXFxldiIsCiAJCSJcXGYiLCAiXFxmbHVzaCIsICJcXGZsdXNocmVxdWVzdCIsCkBAIC0yNjIw LDYgKzI2MjgsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJ CQkJCQkgICJBTEwiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAiU0VU IiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklBQkxF IDxuYW1lPiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVN QSIpOwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiVklFVyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwgIk9X TkVSIFRPIiwgIlJFTkFNRSIsICJSRVNFVCIsICJTRVQiKTsKQEAgLTMyMjYsNyArMzIzNyw3IEBA IG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJST1VUSU5FIiwg IlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJ Q1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhU IFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKLQkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJ RVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAll bHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJ Q09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJDT05TVFJBSU5UIikpCkBAIC00MDM5 LDYgKzQwNTAsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlFeGNlcHQoIiopIikpKQogCQkJQ09NUExF VEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2Vk IGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0 ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hl cygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIp OworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJ LyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCisJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CiAK IC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1 c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0gVklF VyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC00MzE2LDYgKzQzMzQsMTIgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIs ICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hBbnksICJMQU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJ Q09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklDVCIpOwogCisJLyogRFJPUCBWQVJJQUJM RSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwllbHNlIGlm IChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRI KCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CisKIC8qIEVYRUNVVEUgKi8KIAllbHNlIGlmIChNYXRj aGVzKCJFWEVDVVRFIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf cHJlcGFyZWRfc3RhdGVtZW50cyk7CkBAIC00NTE3LDcgKzQ1NDEsOSBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwog CQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQotCQkJ Q09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VE VVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIiwgIkxBUkdFIE9CSkVDVFMiKTsK KwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBS T0NFRFVSRVMiLAorCQkJCQkJICAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIsICJMQVJH RSBPQkpFQ1RTIiwKKwkJCQkJCSAgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJ CQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00NTI1LDYgKzQ1NTEsNyBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VU SU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAog CQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkJCQkJCQkiQUxMIFZBUklB QkxFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiREFUQUJBU0UiLAogCQkJCQkJCQkJCQkiRE9N QUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJR04gREFUQSBXUkFQUEVSIiwKQEAgLTQ1MzksNyArNDU2 Niw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQki U0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIs Ci0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZB UklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRj aEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIs ICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSkKQEAgLTQ1NDcsNyArNDU3 NSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJQUk9D RURVUkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJCSAg IlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAotCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIik7CisJCQkJ CSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkgICJWQVJJQUJMRVMgSU4gU0NIRU1BIik7CiAJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAiRk9S RUlHTiIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAi Rk9SIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikpCiAJCUNPTVBMRVRFX1dJVEgoIkRBVEEg V1JBUFBFUiIsICJTRVJWRVIiKTsKQEAgLTQ1ODMsNiArNDYxMiw4IEBAIG1hdGNoX3ByZXZpb3Vz X3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3Jf bGlzdF9vZl90YWJsZXNwYWNlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJ CQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMp OworCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhf U0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJHUkFOVCIsIE1hdGNoQW55LCBNYXRjaEFueSwgTWF0Y2hBbnkpKQogCQkJQ09N UExFVEVfV0lUSCgiVE8iKTsKIAkJZWxzZQpAQCAtNDkwOSw3ICs0OTQwLDcgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8qIFBSRVBBUkUgeHggQVMgKi8KIAllbHNl IGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnksICJBUyIpKQotCQlDT01QTEVURV9XSVRI KCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIik7CisJCUNP TVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZS T00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRSQU5TQUNUSU9OIGlzIG1pc3Npbmcgb24g cHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNhY3Rpb24KQEAgLTUzOTgsNiArNTQyOSw4 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRI X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NT KCJcXGR2KiIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9v Zl92aWV3cyk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkVioiKSkKKwkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAllbHNlIGlm IChUYWlsTWF0Y2hlc0NTKCJcXGR4KiIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX2V4dGVuc2lvbnMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZFgqIikp CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA3ZmE1ZjczNjZjMS4uYTcxYjkwNTk4MjIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjY5Nyw2ICs2Njk3LDkgQEAKICAgcHJvbmFtZSA9 PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxl ID0+ICdzJywKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAog ICBwcm9zcmMgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJyB9LAoreyBvaWQgPT4gJzk5OTkn LCBkZXNjciA9PiAnaXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPycs CisgIHByb25hbWUgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUnLCBwcm9jb3N0ID0+ICcxMCcs IHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVz ID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUnIH0sCiAKIHsgb2lk ID0+ICcyODU0JywgZGVzY3IgPT4gJ2dldCBPSUQgb2YgY3VycmVudCBzZXNzaW9uXCdzIHRlbXAg c2NoZW1hLCBpZiBhbnknLAogICBwcm9uYW1lID0+ICdwZ19teV90ZW1wX3NjaGVtYScsIHByb3Zv bGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQKaW5kZXggYTc5MzI1ZThhMmYuLmYyZTUwNjc5NmRiIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHNxbC5vdXQKQEAgLTYwMjUsNiArNjAyNSwzMCBAQCBDT01NSVQ7CiAjIGZpbmFsIE9OX0VS Uk9SX1JPTExCQUNLOiBvZmYKIERST1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3FsX2Vy cm9yOworLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CitcZFYrIHZhcjEKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBT Y2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93 bmVyICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIx IHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy IHwgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykKKworR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRl c2NyaXB0aW9uJzsKK1xkVisgdmFyMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAg ICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAg fCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1Ymxp YyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitEUk9QIFZBUklB QkxFIHZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CiAtLSBjaGVjayBkZXNjcmliaW5nIGludmFsaWQgbXVsdGlwYXJ0IG5hbWVzCiBc ZEEgcmVncmVzc2lvbi5oZWFwCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90 dGVkIG5hbWVzKTogcmVncmVzc2lvbi5oZWFwCkBAIC02MjQ2LDYgKzYyNzAsMTIgQEAgY3Jvc3Mt ZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub25lc3VjaC5wdWJsaWMu ZnVuY19kZXBzX3N0YXQKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9uZXN1Y2gubXlldnQKIGltcHJvcGVyIHF1 YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBub25lc3VjaC5teWV2dAorXGRW IGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9v IG1hbnkgZG90dGVkIG5hbWVzKTogaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xkViByZWdy ZXNzaW9ufG15ZGIucHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90 IGltcGxlbWVudGVkOiByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1 YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDog bm9uZXN1Y2gucHVibGljLnZhcgogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFt ZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgog TGlzdCBvZiBhY2Nlc3MgbWV0aG9kcwpAQCAtNjQ4MCw2ICs2NTEwLDEyIEBAIExpc3Qgb2Ygc2No ZW1hcwogLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0K ICgwIHJvd3MpCiAKK1xkViAibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0t LS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0g YWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5h bWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNj ZXNzLm1ldGhvZCIKQEAgLTY2NDksNiArNjY4NSwxMiBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFt ZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0 YQogCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9w ZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBk YXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdyZXNzaW9u LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCiAgICAgICAgIExpc3Qg b2YgdGFibGVzCkBAIC02NzgyLDYgKzY4MjQsMTIgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1w bGF0ZXMKIC0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0KICgwIHJvd3MpCiAKK1xkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVt YSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBk b3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24i CiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNo LmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAt NjgyOSw2ICs2ODc3LDggQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxl bWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW0KIGNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNlIi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBjcm9zcy1kYXRh YmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1 Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCitjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogLS0gY2hlY2sgXGRyZyBhbmQg XGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUwOwogQ1JFQVRFIFJPTEUgcmVncmVzc19k dV9yb2xlMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggZjA2NGU0ZjU0NTYuLjhmNjEwOGU0NGRl IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTY0NSw2ICsxNjQ1LDE5IEBAIENPTU1JVDsKIERS T1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogCistLSBzZXNzaW9uIHZh cmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9M RSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFy Y2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZh cjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0 aW9uJzsKK1xkVisgdmFyMQorRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgUk9MRSBUTyBERUZB VUxUOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKIC0tIGNoZWNrIGRlc2Ny aWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIFxkQSBu b25lc3VjaC5oZWFwCkBAIC0xNzU2LDYgKzE3NjksOSBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJy b3I7CiBcZFggbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBcZHkgcmVncmVzc2lvbi5t eWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIK K1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIK IAogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90 IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTc5Nyw2ICsxODEzLDgg QEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLmluc3RhbGxlZC5leHRl bnNpb24iCiBcZFggIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5l dmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorCiAKIC0tIGFnYWluLCBidXQg d2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE4MzcsNiArMTg1NSw3IEBAIERST1AgRlVOQ1RJ T04gcHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhbGxlZC5l eHRlbnNpb24iCiBcZFggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0 aWNzIgogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGgg Y3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCBy ZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0x ODYxLDYgKzE4ODAsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUIHJl Z3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggcmVncmVz c2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYg cmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2Fp biwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRp b25zLgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRh YmxlLnJlbGF0aW9uIgpAQCAtMTg4Niw2ICsxOTA2LDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vy cm9yOwogXGRQICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBh cnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJuby5zdWNoLmRhdGFi YXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBjaGVjayBcZHJn IGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7Ci0tIAoyLjUwLjEKCg== --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0003-GRANT-REVOKE-variable.patch" Content-Disposition: attachment; filename="v20250813-0003-GRANT-REVOKE-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczija12 RnJvbSA0NGVjOWMzNGFmZDk4N2EwZWQ5ZTFiMTA5ZjE2NGUwOTg1NDhlMmY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDUgQXVnIDIwMjUgMDY6Mzc6MjggKzAyMDAKU3ViamVjdDogW1BB VENIIDAzLzE1XSBHUkFOVCwgUkVWT0tFIHZhcmlhYmxlCgpBY2Nlc3MgdG8gc2Vzc2lvbiB2YXJp YWJsZXMgY2FuIGJlIGNvbnRyb2xsZWQgYnkgU0VMRUNUIG9yIFVQREFURSByaWdodHMuIEJvdGgg cmlnaHRzIGFyZQppbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggdG9vLiBEZWZhdWx0IEFDTCBhcmUg c3VwcG9ydGVkLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAg ICAgICB8ICAgMyArLQogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDE5ICstCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWluZm8uc2dtbCAgICAgICAgICAg ICAgfCAgMjMgKy0KIC4uLi9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCAg ICB8ICAyOSArLQogZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sICAgICAgICAgICAgICAgICAg IHwgIDIwICstCiBkb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sICAgICAgICAgICAgICAgICAg fCAgIDggKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgICAgICAgICAgIHwg IDc0ICsrKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyAgICAgICAgICAg fCAgMjIgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8 ICAxMSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwg IDIxICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMgICAgICAgICAgICAgICAgICAgfCAy MjEgKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAg ICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAg ICAgICB8ICAyMCArKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2FjbC5oICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiAuLi4vZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91dCAgICAgICAg fCAzMDcgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlICAgICAgICAgICAgfCAgIDIgKy0KIC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl c19hY2wuc3FsICAgICB8IDE1OCArKysrKysrKysKIDE4IGZpbGVzIGNoYW5nZWQsIDkxNSBpbnNl cnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5vdXQKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wuc3FsCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbAppbmRleCBiMzNmM2YwNmQ3MS4uYjE4MTVmOGQyYWIgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBA IC0zMzYwLDcgKzMzNjAsOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0 aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIDxsaXRl cmFsPmY8L2xpdGVyYWw+ID0gZnVuY3Rpb24sCiAgICAgICAgPGxpdGVyYWw+VDwvbGl0ZXJhbD4g PSB0eXBlLAogICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gc2NoZW1hLAotICAgICAgIDxs aXRlcmFsPkw8L2xpdGVyYWw+ID0gbGFyZ2Ugb2JqZWN0CisgICAgICAgPGxpdGVyYWw+TDwvbGl0 ZXJhbD4gPSBsYXJnZSBvYmplY3QsCisgICAgICAgPGxpdGVyYWw+VjwvbGl0ZXJhbD4gPSBzZXNz aW9uIHZhcmlhYmxlCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRl eCBmYTcxMWEwOWJjNC4uNDIwYTRkOWZmMTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTIwMjUsNiArMjAyNSw3IEBAIFJF Vk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAgRm9yIHNlcXVlbmNlcywg dGhpcyBwcml2aWxlZ2UgYWxzbyBhbGxvd3MgdXNlIG9mIHRoZQogICAgICAgIDxmdW5jdGlvbj5j dXJydmFsPC9mdW5jdGlvbj4gZnVuY3Rpb24uCiAgICAgICAgRm9yIGxhcmdlIG9iamVjdHMsIHRo aXMgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJlIHJlYWQuCisgICAgICAgRm9yIHNl c3Npb24gdmFyaWFibGVzLCB0aGlzICBwcml2aWxlZ2UgYWxsb3dzIHRoZSBvYmplY3QgdG8gYmUg cmVhZC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRy eT4KQEAgLTIwNjAsNiArMjA2MSw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJM SUM7CiAgICAgICAgPGZ1bmN0aW9uPnNldHZhbDwvZnVuY3Rpb24+IGZ1bmN0aW9ucy4KICAgICAg ICBGb3IgbGFyZ2Ugb2JqZWN0cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHdyaXRpbmcgb3IgdHJ1 bmNhdGluZyB0aGUKICAgICAgICBvYmplY3QuCisgICAgICAgRm9yIHNlc3Npb24gdmFyaWFibGVz LCB0aGlzIHByaXZpbGVnZSBhbGxvd3MgdG8gc2V0IGEgdmFsdWUgdG8gdGhlCisgICAgICAgb2Jq ZWN0LgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5 PgpAQCAtMjMwNCw3ICsyMzA3LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJ QzsKICAgICAgICA8bGl0ZXJhbD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxsaXRl cmFsPlNFUVVFTkNFPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4g KGFuZCB0YWJsZS1saWtlIG9iamVjdHMpLAotICAgICAgIHRhYmxlIGNvbHVtbgorICAgICAgIHRh YmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPgog ICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxyb3c+CkBAIC0yMzE5LDcgKzIzMjMs OCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgIDxsaXRlcmFs PkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+U0VRVUVOQ0U8L2xpdGVy YWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9saXRlcmFsPiwKLSAgICAgICB0YWJsZSBjb2x1 bW4KKyAgICAgICB0YWJsZSBjb2x1bW4sCisgICAgICAgPGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJM RTwvbGl0ZXJhbD4KICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8cm93PgpAQCAt MjUwNiw2ICsyNTExLDEyIEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAg ICAgICA8ZW50cnk+PGxpdGVyYWw+VTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgPGVudHJ5Pjxs aXRlcmFsPlxkVCs8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgPC9yb3c+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgPGVudHJ5PjxsaXRlcmFsPnJ3PC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+ PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPlxk Vis8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdy b3VwPgogICA8L3RhYmxlPgpAQCAtNTM3NSw2ICs1Mzg2LDEwIEBAIEVYUExBSU4gU0VMRUNUIGNv dW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAx LTAxJzsKIAogICAgPHBhcmE+CiAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGRhdGFiYXNlIG9i amVjdHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIFNlc3Npb24gdmFyaWFibGVzLCBsaWtl IHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nlc3MKKyAgICBp cyBjb250cm9sbGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJF Vk9LRTwvY29tbWFuZD4KKyAgICBjb21tYW5kcy4gIEEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUg Y3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFSSUFCTEU8L2NvbW1hbmQ+IGNv bW1hbmQuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2Z1bmMvZnVuYy1pbmZvLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWluZm8uc2dtbApp bmRleCBjMzkzODMyZDk0Yy4uYTU3Zjc2NjUwNTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9m dW5jL2Z1bmMtaW5mby5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21s CkBAIC03NDAsNiArNzQwLDI1IEBAIFNFTEVDVCBoYXNfZnVuY3Rpb25fcHJpdmlsZWdlKCdqb2V1 c2VyJywgJ215ZnVuYyhpbnQsIHRleHQpJywgJ2V4ZWN1dGUnKTsKICAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgIDwvcm93PgogCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJm dW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxp bmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5oYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2U8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+aGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9mdW5jdGlvbj4gKAorICAgICAgICAgIDxvcHRp b25hbD4gPHBhcmFtZXRlcj51c2VyPC9wYXJhbWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+IG9yIDx0 eXBlPm9pZDwvdHlwZT4sIDwvb3B0aW9uYWw+CisgICAgICAgICAgPHBhcmFtZXRlcj5zZXNzaW9u X3ZhcmlhYmxlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IG9yIDx0eXBlPm9pZDwvdHlw ZT4sCisgICAgICAgICAgPHBhcmFtZXRlcj5wcml2aWxlZ2U8L3BhcmFtZXRlcj4gPHR5cGU+dGV4 dDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJudmFsdWU+Cisg ICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBEb2VzIHVzZXIgaGF2ZSBwcml2 aWxlZ2UgZm9yIHNlc3Npb24gdmFyaWFibGU/CisgICAgICAgIEFsbG93YWJsZSBwcml2aWxlZ2Ug dHlwZXMgYXJlCisgICAgICAgIDxsaXRlcmFsPlNFTEVDVDwvbGl0ZXJhbD4sIGFuZAorICAgICAg ICA8bGl0ZXJhbD5VUERBVEU8L2xpdGVyYWw+LgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICAgPC9yb3c+CisKICAgICAgIDxyb3c+CiAgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KICAgICAgICAgPGluZGV4dGVybT4K QEAgLTEwODksOCArMTEwOCw4IEBAIFNFTEVDVCBoYXNfZnVuY3Rpb25fcHJpdmlsZWdlKCdqb2V1 c2VyJywgJ215ZnVuYyhpbnQsIHRleHQpJywgJ2V4ZWN1dGUnKTsKICAgICAgICAgJ3QnIGZvciA8 bGl0ZXJhbD5UQUJMRVNQQUNFPC9saXRlcmFsPiwKICAgICAgICAgJ0YnIGZvciA8bGl0ZXJhbD5G T1JFSUdOIERBVEEgV1JBUFBFUjwvbGl0ZXJhbD4sCiAgICAgICAgICdTJyBmb3IgPGxpdGVyYWw+ Rk9SRUlHTiBTRVJWRVI8L2xpdGVyYWw+LAotICAgICAgICBvcgotICAgICAgICAnVCcgZm9yIDxs aXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4uCisgICAg ICAgICdUJyBmb3IgPGxpdGVyYWw+VFlQRTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+RE9NQUlOPC9s aXRlcmFsPiBvcgorICAgICAgICAnVicgZm9yIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xp dGVyYWw+LgogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCmluZGV4IDZhY2QwZjFk ZjkxLi5iYzczODE3MDYxZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZh dWx0X3ByaXZpbGVnZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRf cHJpdmlsZWdlcy5zZ21sCkBAIC01Niw2ICs1NiwxMSBAQCBHUkFOVCB7IHsgU0VMRUNUIHwgVVBE QVRFIH0KICAgICBPTiBMQVJHRSBPQkpFQ1RTCiAgICAgVE8geyBbIEdST1VQIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0g WywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KIAorR1JBTlQgeyB7IFNFTEVDVCB8IFVQREFU RSB9CisgICAgWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVT CisgICAgVE8geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVf bmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9O IF0KKwogUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgeyB7IFNFTEVDVCB8IElOU0VS VCB8IFVQREFURSB8IERFTEVURSB8IFRSVU5DQVRFIHwgUkVGRVJFTkNFUyB8IFRSSUdHRVIgfCBN QUlOVEFJTiB9CiAgICAgWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CkBAIC05NSw2ICsx MDAsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgT04gTEFSR0UgT0JKRUNU UwogICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJv bGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FERSB8 IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVD VCB8IFVQREFURSB9CisgICAgWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgeyB7 IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9O IFZBUklBQkxFUworICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsg Q0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApA QCAtMTI5LDE0ICsxNDIsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJh PgogICAgQ3VycmVudGx5LAogICAgb25seSB0aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFi bGVzIChpbmNsdWRpbmcgdmlld3MgYW5kIGZvcmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywg ZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMpLCBhbmQgbGFyZ2Ugb2JqZWN0cwot ICAgY2FuIGJlIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBh Z2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgotICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9O UzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVxdWl2 YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBw cmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1bmN0 aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgotICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3Rn cmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0gICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0 ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZhdWx0 IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKKyAg IHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMp LCBsYXJnZSBvYmplY3RzCisgICBhbmQgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGFsdGVyZWQu ICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZQorICAgYWdncmVnYXRlcyBhbmQg cHJvY2VkdXJlcy4gIFRoZSB3b3JkcyA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IGFuZAor ICAgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGFyZSBlcXVpdmFsZW50IGluIHRoaXMgY29t bWFuZC4KKyAgICg8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gaXMgcHJlZmVycmVkIGdvaW5n IGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRlcm0KKyAgIGZvciBmdW5jdGlvbnMgYW5kIHByb2Nl ZHVyZXMgdGFrZW4gdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsCisg ICBvbmx5IHRoZSB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQu ICBJdCBpcyBub3QgcG9zc2libGUKKyAgIHRvIHNldCBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKICAgPC9wYXJhPgogCiAgIDxwYXJh PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9ncmFudC5zZ21sCmluZGV4IDk5OWY2NTdkNWMwLi5jMTE4NjBmYTIwMCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3Jh bnQuc2dtbApAQCAtMTAxLDYgKzEwMSwxMiBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAg IFsgV0lUSCB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IHsgT1BUSU9OIHwgVFJVRSB8IEZBTFNF IH0gXQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9s ZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFU RSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+ dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJM RVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFO VCBPUFRJT04gXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorCiA8cGhyYXNlPndoZXJlIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2Vh YmxlPiBjYW4gYmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CkBAIC0xMTksOCArMTI1LDggQEAg R1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgIHRoYXQgZ3JhbnRzIHByaXZpbGVnZXMgb24gYSBk YXRhYmFzZSBvYmplY3QgKHRhYmxlLCBjb2x1bW4sIHZpZXcsCiAgICBmb3JlaWduIHRhYmxlLCBz ZXF1ZW5jZSwgZGF0YWJhc2UsIGZvcmVpZ24tZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlciwK ICAgIGZ1bmN0aW9uLCBwcm9jZWR1cmUsIHByb2NlZHVyYWwgbGFuZ3VhZ2UsIGxhcmdlIG9iamVj dCwgY29uZmlndXJhdGlvbgotICAgcGFyYW1ldGVyLCBzY2hlbWEsIHRhYmxlc3BhY2UsIG9yIHR5 cGUpLCBhbmQgb25lIHRoYXQgZ3JhbnRzCi0gICBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNl IHZhcmlhbnRzIGFyZSBzaW1pbGFyIGluIG1hbnkgd2F5cywgYnV0CisgICBwYXJhbWV0ZXIsIHNj aGVtYSwgc2Vzc2lvbiB2YXJpYWJsZSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhh dAorICAgZ3JhbnRzIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNp bWlsYXIgaW4gbWFueSB3YXlzLCBidXQKICAgIHRoZXkgYXJlIGRpZmZlcmVudCBlbm91Z2ggdG8g YmUgZGVzY3JpYmVkIHNlcGFyYXRlbHkuCiAgIDwvcGFyYT4KIApAQCAtMjM2LDkgKzI0Miw5IEBA IEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgIDxwYXJhPgogICAgVGhlcmUgaXMgYWxzbyBhbiBv cHRpb24gdG8gZ3JhbnQgcHJpdmlsZWdlcyBvbiBhbGwgb2JqZWN0cyBvZiB0aGUgc2FtZQogICAg dHlwZSB3aXRoaW4gb25lIG9yIG1vcmUgc2NoZW1hcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBj dXJyZW50bHkgc3VwcG9ydGVkCi0gICBvbmx5IGZvciB0YWJsZXMsIHNlcXVlbmNlcywgZnVuY3Rp b25zLCBhbmQgcHJvY2VkdXJlcy4gIDxsaXRlcmFsPkFMTAotICAgVEFCTEVTPC9saXRlcmFsPiBh bHNvIGFmZmVjdHMgdmlld3MgYW5kIGZvcmVpZ24gdGFibGVzLCBqdXN0IGxpa2UgdGhlCi0gICBz cGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8bGl0ZXJh bD5BTEwKKyAgIG9ubHkgZm9yIHRhYmxlcywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHByb2NlZHVy ZXMgYW5kIHZhcmlhYmxlcy4KKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGFsc28g YWZmZWN0cyB2aWV3cyBhbmQgZm9yZWlnbiB0YWJsZXMsIGp1c3QKKyAgIGxpa2UgdGhlIHNwZWNp ZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFM TAogICAgRlVOQ1RJT05TPC9saXRlcmFsPiBhbHNvIGFmZmVjdHMgYWdncmVnYXRlIGFuZCB3aW5k b3cgZnVuY3Rpb25zLCBidXQgbm90CiAgICBwcm9jZWR1cmVzLCBhZ2FpbiBqdXN0IGxpa2UgdGhl IHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBV c2UgPGxpdGVyYWw+QUxMIFJPVVRJTkVTPC9saXRlcmFsPiB0byBpbmNsdWRlIHByb2NlZHVyZXMu CkBAIC01MTgsOCArNTI0LDggQEAgR1JBTlQgYWRtaW5zIFRPIGpvZTsKICAgIDwvcGFyYT4KIAog ICAgPHBhcmE+Ci0gICAgUHJpdmlsZWdlcyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hl bWFzLCBsYW5ndWFnZXMsIGFuZAotICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKKyAg ICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdl cywgc2Vzc2lvbiB2YXJpYWJsZXMKKyAgICBhbmQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFy ZQogICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9ucy4K ICAgIDwvcGFyYT4KICA8L3JlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9y ZXZva2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKaW5kZXggOGRmNDkyMjgx YTEuLjc2MGZkZGI3YzIwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKQEAgLTEzMCw2ICsxMzAsMTQgQEAg UkVWT0tFIFsgeyBBRE1JTiB8IElOSEVSSVQgfCBTRVQgfSBPUFRJT04gRk9SIF0KICAgICBbIEdS QU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlv bjwvcmVwbGFjZWFibGU+IF0KICAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCiAKK1JFVk9LRSBb IEdSQU5UIE9QVElPTiBGT1IgXQorICAgIHsgeyBTRUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwg QUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiB7IFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJp YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJ TiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSB9CisgICAgRlJPTSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0K KyAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3Bl Y2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KKyAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCisK IDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lm aWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2FjbGNoay5jCmluZGV4IDcwNzVjODYzNzhhLi5lMzMzYWQyMmUyNSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2Fj bGNoay5jCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRl ICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC0yOTEsNiArMjkyLDkgQEAgcmVzdHJpY3Rf YW5kX2NoZWNrX2dyYW50KGJvb2wgaXNfZ3JhbnQsIEFjbE1vZGUgYXZhaWxfZ29wdGlvbnMsIGJv b2wgYWxsX3ByaXZzLAogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJd2hvbGVfbWFz ayA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJ CQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0 IHR5cGU6ICVkIiwgb2JqdHlwZSk7CiAJCQkvKiBub3QgcmVhY2hlZCwgYnV0IGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KQEAgLTUzNSw2ICs1MzksMTAgQEAgRXhlY3V0ZUdyYW50U3RtdChHcmFudFN0 bXQgKnN0bXQpCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9B Q0w7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAl cyBmb3IgcGFyYW1ldGVyIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJ CQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJZXJyb3Jtc2cg PSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHNlc3Npb24gdmFy aWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBzdG10LT5vYmp0eXBlKTsK QEAgLTY0MCw2ICs2NDgsOSBAQCBFeGVjR3JhbnRTdG10X29pZHMoSW50ZXJuYWxHcmFudCAqaXN0 bXQpCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCQlFeGVjR3JhbnRfUGFyYW1ldGVy KGlzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCUV4ZWNHcmFu dF9jb21tb24oaXN0bXQsIFZhcmlhYmxlUmVsYXRpb25JZCwgQUNMX0FMTF9SSUdIVFNfVkFSSUFC TEUsIE5VTEwpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNv Z25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGlzdG10LT5vYmp0eXBl KTsKQEAgLTc2MCw2ICs3NzEsMTggQEAgb2JqZWN0TmFtZXNUb09pZHMoT2JqZWN0VHlwZSBvYmp0 eXBlLCBMaXN0ICpvYmpuYW1lcywgYm9vbCBpc19ncmFudCkKIAkJCQkJb2JqZWN0cyA9IGxhcHBl bmRfb2lkKG9iamVjdHMsIHBhcmFtZXRlcklkKTsKIAkJCX0KIAkJCWJyZWFrOworCisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJZm9yZWFjaF9ub2RlKFJhbmdlVmFyLCB2YXJ2YXIsIG9iam5h bWVzKQorCQkJeworCQkJCU9pZAkJCXJlbE9pZDsKKworCQkJCXJlbE9pZCA9IExvb2t1cFZhcmlh YmxlKHZhcnZhci0+c2NoZW1hbmFtZSwKKwkJCQkJCQkJCQl2YXJ2YXItPnJlbG5hbWUsCisJCQkJ CQkJCQkJZmFsc2UpOworCQkJCW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCByZWxPaWQp OworCQkJfQorCQkJYnJlYWs7CiAJfQogCiAJcmV0dXJuIG9iamVjdHM7CkBAIC04NDYsNiArODY5 LDMyIEBAIG9iamVjdHNJblNjaGVtYVRvT2lkcyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm5z cG5hbWVzKQogCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CiAJCQkJfQog CQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJeworCQkJCQlTY2FuS2V5 RGF0YSBrZXk7CisJCQkJCVJlbGF0aW9uCXJlbDsKKwkJCQkJVGFibGVTY2FuRGVzYyBzY2FuOwor CQkJCQlIZWFwVHVwbGUJdHVwbGU7CisKKwkJCQkJU2NhbktleUluaXQoJmtleSwKKwkJCQkJCQkJ QW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCQkJCQkJCUJURXF1YWxTdHJhdGVneU51 bWJlciwgRl9PSURFUSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOwor CisJCQkJCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxv Y2spOworCQkJCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NhdGFsb2cocmVsLCAxLCAma2V5KTsK KworCQkJCQl3aGlsZSAoKHR1cGxlID0gaGVhcF9nZXRuZXh0KHNjYW4sIEZvcndhcmRTY2FuRGly ZWN0aW9uKSkgIT0gTlVMTCkKKwkJCQkJeworCQkJCQkJT2lkCQkJb2lkID0gKChGb3JtX3BnX3By b2MpIEdFVFNUUlVDVCh0dXBsZSkpLT5vaWQ7CisKKwkJCQkJCW9iamVjdHMgPSBsYXBwZW5kX29p ZChvYmplY3RzLCBvaWQpOworCQkJCQl9CisKKwkJCQkJdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJ CQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCX0KKwkJCQlicmVhazsK IAkJCWRlZmF1bHQ6CiAJCQkJLyogc2hvdWxkIG5vdCBoYXBwZW4gKi8KIAkJCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCkBAIC0xMDA5LDYgKzEwNTgs MTAgQEAgRXhlY0FsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg QWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQgKnMKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FM TF9SSUdIVFNfTEFSR0VPQkpFQ1Q7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxp ZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgbGFyZ2Ugb2JqZWN0Iik7CiAJCQlicmVhazsKKwkJY2Fz ZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAo aW50KSBhY3Rpb24tPm9ianR5cGUpOwpAQCAtMTIwOSw2ICsxMjYyLDExIEBAIFNldERlZmF1bHRB Q0woSW50ZXJuYWxEZWZhdWx0QUNMICppYWNscykKIAkJCWlmIChpYWNscy0+YWxsX3ByaXZzICYm IHRoaXNfcHJpdmlsZWdlcyA9PSBBQ0xfTk9fUklHSFRTKQogCQkJCXRoaXNfcHJpdmlsZWdlcyA9 IEFDTF9BTExfUklHSFRTX0xBUkdFT0JKRUNUOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgorCQkJb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsKKwkJCWlmIChpYWNscy0+ YWxsX3ByaXZzICYmIHRoaXNfcHJpdmlsZWdlcyA9PSBBQ0xfTk9fUklHSFRTKQorCQkJCXRoaXNf cHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAKIAkJZGVm YXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKQEAg LTE0NTYsNiArMTUxNCw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNMKE9pZCByb2xlaWQsIE9p ZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIERFRkFDTE9CSl9MQVJHRU9CSkVDVDoKIAkJ CQlpYWNscy5vYmp0eXBlID0gT0JKRUNUX0xBUkdFT0JKRUNUOwogCQkJCWJyZWFrOworCQkJY2Fz ZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogU2hvdWxkbid0IGdldCBoZXJlICov CiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgZGVmYXVsdCBBQ0wgdHlwZTogJWQiLApAQCAt MTUxNiw2ICsxNTc3LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RBQ0woT2lkIHJvbGVpZCwgT2lk IGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgUGFyYW1ldGVyQWNsUmVsYXRpb25JZDoKIAkJ CQlpc3RtdC5vYmp0eXBlID0gT0JKRUNUX1BBUkFNRVRFUl9BQ0w7CiAJCQkJYnJlYWs7CisJCQlj YXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCQlpc3RtdC5vYmp0eXBlID0gT0JKRUNUX1ZBUklB QkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCBvYmplY3QgY2xhc3MgJXUiLCBjbGFzc2lkKTsKIAkJCQlicmVhazsKQEAgLTI3NDksNiArMjgx Myw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlw ZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVy bWlzc2lvbiBkZW5pZWQgZm9yIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5p ZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9C SkVDVF9WSUVXOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBm b3IgdmlldyAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yNzcxLDcgKzI4MzgsNiBAQCBhY2xjaGVj a19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2Ug T0JKRUNUX1RTUEFSU0VSOgogCQkJCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgogCQkJCQljYXNl IE9CSkVDVF9VU0VSX01BUFBJTkc6Ci0JCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJCQkJ ZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJ CX0KIApAQCAtMzAxMiw2ICszMDc4LDggQEAgcGdfYWNsbWFzayhPYmplY3RUeXBlIG9ianR5cGUs IE9pZCBvYmplY3Rfb2lkLCBBdHRyTnVtYmVyIGF0dG51bSwgT2lkIHJvbGVpZCwKIAkJCXJldHVy biBBQ0xfTk9fUklHSFRTOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuIG9iamVjdF9h Y2xtYXNrKFR5cGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuIG9iamVjdF9hY2xtYXNrKFZhcmlhYmxl UmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOwogCQlkZWZhdWx0Ogog CQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50 KSBvYmp0eXBlKTsKQEAgLTQyNzUsNiArNDM0MywxMCBAQCBnZXRfdXNlcl9kZWZhdWx0X2FjbChP YmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25lcklkLCBPaWQgbnNwX29pZCkKIAkJCWRlZmFjbG9i anR5cGUgPSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1Q7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKKwkJCWRlZmFjbG9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQli cmVhazsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29i amVjdGFkZHJlc3MuYwppbmRleCBlZTM3ZmQ4NTk3My4uNjE4MmE1NzcxYWMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC0yMDMwLDE3ICsyMDMwLDIxIEBAIGdldF9vYmplY3Rf YWRkcmVzc19kZWZhY2woTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCWNhc2UgREVG QUNMT0JKX0xBUkdFT0JKRUNUOgogCQkJb2JqdHlwZV9zdHIgPSAibGFyZ2Ugb2JqZWN0cyI7CiAJ CQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQlvYmp0eXBlX3N0ciA9ICJ2 YXJpYWJsZXMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJIGVycm1z ZygidW5yZWNvZ25pemVkIGRlZmF1bHQgQUNMIG9iamVjdCB0eXBlIFwiJWNcIiIsIG9ianR5cGUp LAotCQkJCQkgZXJyaGludCgiVmFsaWQgb2JqZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwg XCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCisJCQkJCSBlcnJoaW50KCJWYWxpZCBv YmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBc IiVjXCIsIFwiJWNcIi4iLAogCQkJCQkJCSBERUZBQ0xPQkpfUkVMQVRJT04sCiAJCQkJCQkJIERF RkFDTE9CSl9TRVFVRU5DRSwKIAkJCQkJCQkgREVGQUNMT0JKX0ZVTkNUSU9OLAogCQkJCQkJCSBE RUZBQ0xPQkpfVFlQRSwKIAkJCQkJCQkgREVGQUNMT0JKX05BTUVTUEFDRSwKLQkJCQkJCQkgREVG QUNMT0JKX0xBUkdFT0JKRUNUKSkpOworCQkJCQkJCSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1QsCisJ CQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkpKTsKIAl9CiAKIAkvKgpAQCAtMzkyMiw2ICszOTI2 LDE2IEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwg Ym9vbCBtaXNzaW5nX29rKQogCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3 IGxhcmdlIG9iamVjdHMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKIAkJCQkJCQkJCQkgcm9sZW5h bWUpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJ aWYgKG5zcG5hbWUpCisJCQkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJCQkJCQkJ CQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzZXNzaW9uIHZhcmlhYmxlcyBiZWxvbmdp bmcgdG8gcm9sZSAlcyBpbiBzY2hlbWEgJXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVuYW1lLCBuc3Bu YW1lKTsKKwkJCQkJCWVsc2UKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJ CQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24gdmFyaWFibGVzIGJl bG9uZ2luZyB0byByb2xlICVzIiksCisJCQkJCQkJCQkJCSByb2xlbmFtZSk7CisJCQkJCQlicmVh azsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJCQkJ aWYgKG5zcG5hbWUpCkBAIC01ODUyLDYgKzU4NjYsMTAgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0 cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKCZidWZmZXIsCiAJCQkJCQkJCQkJCSAgICIgb24gbGFyZ2Ugb2JqZWN0cyIpOwogCQkJCQkJ YnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJCQkgICAiIG9uIHNlc3Npb24gdmFyaWFibGVz Iik7CisJCQkJCQlicmVhazsKIAkJCQl9CiAKIAkJCQlpZiAob2JqbmFtZSkKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYwppbmRleCBiZDZhMjlhNzllNS4uZDhlZGU0ZmE4YzggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTM4LDYgKzM4LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0 IGNoYXIgKnZhck5hbWUsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwKIAkJCQlib29sIGlmX25vdF9l eGlzdHMpCiB7CisJQWNsCQkgICAqdmFyYWNsOwogCU5hbWVEYXRhCXZhcm5hbWU7CiAJYm9vbAkJ bnVsbHNbTmF0dHNfcGdfdmFyaWFibGVdOwogCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfdmFyaWFi bGVdOwpAQCAtOTcsNyArOTgsMTIgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5h bWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3duZXIgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0odmFyT3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOwogCi0JbnVsbHNbQW51bV9wZ192 YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7CisJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9h Y2woT0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKKwkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwor CWlmICh2YXJhY2wgIT0gTlVMTCkKKwkJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyYWNsIC0g MV0gPSBQb2ludGVyR2V0RGF0dW0odmFyYWNsKTsKKwllbHNlCisJCW51bGxzW0FudW1fcGdfdmFy aWFibGVfdmFyYWNsIC0gMV0gPSB0cnVlOwogCiAJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3Io cmVsKTsKIApAQCAtMTMxLDYgKzEzNyw5IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAogCS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KIAlyZWNvcmREZXBlbmRlbmN5T25P d25lcihWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CiAKKwkvKiBkZXBlbmRl bmNpZXMgb24gcm9sZXMgbWVudGlvbmVkIGluIGRlZmF1bHQgQUNMICovCisJcmVjb3JkRGVwZW5k ZW5jeU9uTmV3QWNsKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIHZhck93bmVyLCB2YXJh Y2wpOworCiAJLyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24gKi8KIAlyZWNvcmREZXBlbmRlbmN5 T25DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMzE0 MGM3NzIxNzguLmFiYzM2NWMwY2ZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTc4NCw3ICs3ODQsNyBAQCBz dGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVOTElTVEVOIFVOTE9HR0VEIFVOVElMIFVQREFURSBV U0VSIFVTSU5HCiAKIAlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFM VUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSSUFCTEUKLQlWQVJZSU5HIFZFUkJPU0UgVkVSU0lPTl9Q IFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQorCVZBUklBQkxFUyBWQVJZSU5HIFZFUkJPU0Ug VkVSU0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElU RVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAK QEAgLTgwNTgsNiArODA1OCwxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0g JDI7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IFZBUklBQkxFIHF1YWxpZmllZF9uYW1lX2xp c3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6 ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsK KwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQyOwor CQkJCQkkJCA9IG47CisJCQkJfQogCQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlz dAogCQkJCXsKIAkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXpl b2YoUHJpdlRhcmdldCkpOwpAQCAtODEwMyw2ICs4MTExLDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6 CiAJCQkJCW4tPm9ianMgPSAkNTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgQUxMIFZBUklB QkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAo UHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5 cGUgPSBBQ0xfVEFSR0VUX0FMTF9JTl9TQ0hFTUE7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1Rf VkFSSUFCTEU7CisJCQkJCW4tPm9ianMgPSAkNTsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJOwog CiAKQEAgLTgzMDEsNiArODMxNyw3IEBAIGRlZmFjbF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJfCBU WVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwgU0NIRU1BUwkJeyAkJCA9IE9CSkVD VF9TQ0hFTUE7IH0KIAkJCXwgTEFSR0VfUCBPQkpFQ1RTX1AJeyAkJCA9IE9CSkVDVF9MQVJHRU9C SkVDVDsgfQorCQkJfCBWQVJJQUJMRVMJCXsgJCQgPSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwog CiAKQEAgLTE4MTIxLDYgKzE4MTM4LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBWQUxJ REFUT1IKIAkJCXwgVkFMVUVfUAogCQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJCXwg VkFSWUlORwogCQkJfCBWRVJTSU9OX1AKIAkJCXwgVklFVwpAQCAtMTg3NzgsNiArMTg3OTYsNyBA QCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZBTFVFUwogCQkJfCBWQVJDSEFSCiAJCQl8IFZB UklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJJQURJQwogCQkJfCBWRVJCT1NFCiAJCQl8 IFZFUlNJT05fUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCmluZGV4IDEyMTNmOTEwNmQ1Li5kYzQxMjAxMGMyMCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9hY2wuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf cHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJvY2xhbmcu aCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCkBAIC0xMjksNiArMTMwLDggQEAg c3RhdGljIEFjbE1vZGUgY29udmVydF90eXBlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90 ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcGFyYW1ldGVyX3ByaXZfc3RyaW5nKHRleHQg KnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X2xhcmdlb2JqZWN0X3ByaXZfc3Ry aW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcm9sZV9w cml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CitzdGF0aWMgT2lkCWNvbnZlcnRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHRleHQgKnZhcm5hbWUpOworc3RhdGljIEFjbE1vZGUgY29udmVy dF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0 YXRpYyBBY2xSZXN1bHQgcGdfcm9sZV9hY2xjaGVjayhPaWQgcm9sZV9vaWQsIE9pZCByb2xlaWQs IEFjbE1vZGUgbW9kZSk7CiAKIHN0YXRpYyB2b2lkIFJvbGVNZW1iZXJzaGlwQ2FjaGVDYWxsYmFj ayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKTsKQEAgLTg2OCw2ICs4 NzEsMTAgQEAgYWNsZGVmYXVsdChPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25lcklkKQogCQkJ d29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CiAJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FM TF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJM RToKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOworCQkJb3duZXJfZGVmYXVsdCA9 IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwog CQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQg Ki8KQEAgLTk2NSw2ICs5NzIsOSBAQCBhY2xkZWZhdWx0X3NxbChQR19GVU5DVElPTl9BUkdTKQog CQljYXNlICdUJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1RfVFlQRTsKIAkJCWJyZWFrOworCQljYXNl ICdWJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVs dDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgYWJicmV2aWF0aW9u OiAlYyIsIG9ianR5cGVjKTsKIAl9CkBAIC01MDMzLDYgKzUwNDMsMjE3IEBAIHBnX3JvbGVfYWNs Y2hlY2soT2lkIHJvbGVfb2lkLCBPaWQgcm9sZWlkLCBBY2xNb2RlIG1vZGUpCiAJcmV0dXJuIEFD TENIRUNLX05PX1BSSVY7CiB9CiAKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgdmFyaWFudHMKKyAqCQlUaGVzZSBhcmUgYWxsIG5hbWVkICJoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UiIGF0IHRoZSBTUUwgbGV2ZWwuCisgKgkJVGhleSB0YWtlIHZhcmlvdXMgY29t YmluYXRpb25zIG9mIHZhcmlhYmxlIG5hbWUsIHZhcmlhYmxlIE9JRCwKKyAqCQl1c2VyIG5hbWUs IHVzZXIgT0lELCBvciBpbXBsaWNpdCB1c2VyID0gY3VycmVudF91c2VyLgorICoKKyAqCQlUaGUg cmVzdWx0IGlzIGEgYm9vbGVhbiB2YWx1ZTogdHJ1ZSBpZiB1c2VyIGhhcyB0aGUgaW5kaWNhdGVk CisgKgkJcHJpdmlsZWdlLCBmYWxzZSBpZiBub3QsIG9yIE5VTEwgaWYgc2Vzc2lvbiB2YXJpYWJs ZSBkb2Vzbid0CisgKgkJZXhpc3RzLgorICovCisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2VfbmFtZV9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vz c2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCW5hbWUgdXNlcm5hbWUsIHRleHQgc2Vzc2lvbiB2YXJp YWJsZSBuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJ cm9sZW5hbWUgPSBQR19HRVRBUkdfTkFNRSgwKTsKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VU QVJHX1RFWFRfUFAoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVY VF9QUCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsK KwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJv bGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFtZVN0cigqcm9sZW5hbWUpKTsKKwltb2Rl ID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsK Kwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNs cmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAor CQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlz X21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1 bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlh YmxlIGdpdmVuCisgKgkJdGV4dCBzZXNzaW9uIHZhcmlhYmxlIGFuZCB0ZXh0IHByaXYgbmFtZS4K KyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlX25hbWUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwl0ZXh0CSAgICp2YXJu YW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMCk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQ R19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJdmFyaWQ7CisJQWNs TW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBm YWxzZTsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25f dmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1v ZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQg PT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlX25hbWVfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlh YmxlIGdpdmVuCisgKgkJbmFtZSB1c2VuYW1lLCBzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRl eHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl X25hbWVfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlOYW1lCQl1c2VybmFtZSA9IFBHX0dFVEFS R19OQU1FKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0ZXh0CSAgICpw cml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlB Y2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9 IGZhbHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCp1c2Vy bmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJp dl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlz X21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQ R19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2Vz IG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCXNlc3Npb24gdmFyaWFibGUgb2lkLCBh bmQgdGV4dCBwcml2IG5hbWUuCisgKgkJY3VycmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0 dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZChQR19GVU5DVElPTl9BUkdTKQor eworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVf dGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQlt b2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOwor CisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJs ZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1v ZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7 Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfbmFtZQorICoJ CUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQly b2xlaWQsIHRleHQgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisg Ki8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfbmFtZShQR19GVU5D VElPTl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkg ICAqdmFybmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90 ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9k ZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKwor CW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3Rl eHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisK KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlp ZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFj bHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2VfaWRfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9u IHZhcmlhYmxlIGdpdmVuCisgKgkJcm9sZWlkLCBzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRl eHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl X2lkX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09J RCgwKTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4dAkgICAqcHJpdl90 eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJl c3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJbW9kZSA9IGNv bnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs CisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAo aXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJl c3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBHaXZlbiBhIHNlc3Npb24gdmFyaWFi bGUgbmFtZSBleHByZXNzZWQgYXMgYSBzdHJpbmcsIGxvb2sgaXQgdXAgYW5kIHJldHVybgorICog T2lkCisgKi8KK3N0YXRpYyBPaWQKK2NvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHRleHQg KnZhcm5hbWUpCit7CisJcmV0dXJuIExvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KHRleHRUb1F1 YWxpZmllZE5hbWVMaXN0KHZhcm5hbWUpLCB0cnVlKTsKK30KKworLyoKKyAqIGNvbnZlcnRfdmFy aWFibGVfcHJpdl9zdHJpbmcKKyAqCQlDb252ZXJ0IHRleHQgc3RyaW5nIHRvIEFjbE1vZGUgdmFs dWUuCisgKi8KK3N0YXRpYyBBY2xNb2RlCitjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9z dHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpCit7CisJc3RhdGljIGNvbnN0IHByaXZfbWFwIHNl c3Npb25fdmFyaWFibGVfcHJpdl9tYXBbXSA9IHsKKwkJeyJTRUxFQ1QiLCBBQ0xfU0VMRUNUfSwK KwkJeyJTRUxFQ1QgV0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xf U0VMRUNUKX0sCisJCXsiVVBEQVRFIiwgQUNMX1VQREFURX0sCisJCXsiVVBEQVRFIFdJVEggR1JB TlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1IoQUNMX1VQREFURSl9LAorCQl7TlVMTCwg MH0KKwl9OworCisJcmV0dXJuIGNvbnZlcnRfYW55X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0 LCBzZXNzaW9uX3ZhcmlhYmxlX3ByaXZfbWFwKTsKK30KIAogLyoKICAqIGluaXRpYWxpemF0aW9u IGZ1bmN0aW9uIChjYWxsZWQgYnkgSW5pdFBvc3RncmVzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZh dWx0X2FjbC5oCmluZGV4IGNlNmU1MDk4ZWFmLi4wODdkMzViOTQzZCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjksNiArNjksNyBAQCBNQUtFX1NZU0NBQ0hFKERFRkFD TFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVfbnNwX29ial9pbmRleCwgOCk7CiAjZGVm aW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZpbmUgREVGQUNMT0JKX05B TUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLwogI2RlZmluZSBERUZBQ0xPQkpfTEFSR0VPQkpF Q1QJJ0wnIC8qIGxhcmdlIG9iamVjdCAqLworI2RlZmluZSBERUZBQ0xPQkpfVkFSSUFCTEUJCSdW JyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RF ICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDExOGQ2ZGExYWNlLi43ZmE1ZjczNjZj MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC01NDY3LDYgKzU0NjcsMjYgQEAKICAgcHJv cmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lkIHRleHQnLAogICBwcm9z cmMgPT4gJ2hhc19sYXJnZW9iamVjdF9wcml2aWxlZ2VfaWRfaWQnIH0sCiAKK3sgb2lkID0+ICc5 NjEzJywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNl cm5hbWUsIHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJv YXJndHlwZXMgPT4gJ25hbWUgdGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lJyB9LAoreyBvaWQgPT4gJzk2MTQnLCBkZXNjciA9 PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VybmFtZSwgc2VxIG9p ZCcsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3Zv bGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdu YW1lIG9pZCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Vf bmFtZV9pZCcgfSwKK3sgb2lkID0+ICc5NjE1JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9u IHNlc3Npb24gdmFyaWFibGUgYnkgdXNlciBvaWQsIHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAn aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9y ZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0IHRleHQnLCBwcm9z cmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9uYW1lJyB9LAoreyBvaWQg PT4gJzk2MTYnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBi eSB1c2VyIG9pZCwgc2VxIG9pZCcsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisg IHByb2FyZ3R5cGVzID0+ICdvaWQgb2lkIHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZV9pZF9pZCcgfSwKK3sgb2lkID0+ICc5NjE3JywgZGVzY3IgPT4gJ2N1 cnJlbnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSBzZXEgbmFtZScsCisg IHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxl ID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRl eHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lJyB9LAor eyBvaWQgPT4gJzk2MTgnLCBkZXNjciA9PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBzZXNz aW9uIHZhcmlhYmxlIGJ5IHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wn LAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZV9pZCcgfSwKKwogeyBvaWQgPT4gJzMzNTUnLCBkZXNjciA9PiAnSS9P JywKICAgcHJvbmFtZSA9PiAncGdfbmRpc3RpbmN0X2luJywgcHJvcmV0dHlwZSA9PiAncGdfbmRp c3RpbmN0JywKICAgcHJvYXJndHlwZXMgPT4gJ2NzdHJpbmcnLCBwcm9zcmMgPT4gJ3BnX25kaXN0 aW5jdF9pbicgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA2ZjUxM2YwNDIyNS4uMGVhMDI2NWRlN2Mg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKQEAgLTQ4Nyw2ICs0ODcsNyBAQCBQR19LRVlXT1JEKCJ2YWx1ZSIs IFZBTFVFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZh bHVlcyIsIFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InZhcmNoYXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgidmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQorUEdfS0VZV09SRCgidmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVT RVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwg VFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggMDFhZTViNzE5 ZmQuLjVlMWE4YTgyZTkwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYgc3Ry dWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFDTF9V U0FHRXxBQ0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShBQ0xf Q1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNkZWZp bmUgQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAKIC8q IG9wZXJhdGlvbiBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91dApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDc4YjQ3NDcyZjAKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz X2FjbC5vdXQKQEAgLTAsMCArMSwzMDcgQEAKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1 cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9hY2w7CitDUkVBVEUgUk9MRSBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyX2FjbDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXJfYWNsOworR1JBTlQgQUxMIE9OIFNDSEVNQSBwdWJsaWMgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcl9hY2w7CitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3RfYWNs CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVy X2FjbDsKKy0tIGNyZWF0aW5nIHZhcmlhYmxlIHdpdGggZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQg Uk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBWQVJJQUJMRSBzdmFy dGVzdF9hY2wuc2VzdmFyMjAgQVMgaW50OworU0VUIFJPTEUgVE8gREVGQVVMVDsKKy0tIHNob3Vs ZCBiZSBvay4gc2luY2UgQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCistLSBhbGxvdyByZWdyZXNz X3ZhcmlhYmxlX3JlYWRlcl9hY2wgdG8gaGF2ZSBTRUxFQ1QgcHJpdmlsZWRnZQorU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNs JywgJ3N2YXJ0ZXN0X2FjbC5zZXN2YXIyMCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg dAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMDsKK0RST1Ag U0NIRU1BIHN2YXJ0ZXN0X2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9h Y2w7CistLQorLS0gYmVnaW4gb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04gYW5kIFJF Vk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMV9hY2w7 CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBBUyBp bnQ7ICAgICAgLS1zZXN2YXIyMl9hY2wgd2lsbCBvd25lZCBieSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyX2FjbAorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBUTyByZWdyZXNz X3ZhcmlhYmxlX3IxX2FjbCBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfcjFfYWNsOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBU TyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0 CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wn LCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVWT0tFIEFMTCBQ UklWSUxFR0VTIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVf cjFfYWNsIENBU0NBREU7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcp OyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIy Ml9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVi bGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNs IEZST00gcmVncmVzc192YXJpYWJsZV9yMl9hY2wgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxl X293bmVyX2FjbDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0t IGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2Fj bCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbCcs ICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHNlc3ZhcjIyX2Fj bDsKKy0tCistLSBlbmQgb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04gYW5kIFJFVk9L RSBHUkFOVEVEIEJZCistLQorLS0KKy0tIGJlZ2luIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxF Q1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorQ1JFQVRFIFNDSEVNQSBz dmFydGVzdF9hY2w7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0X2FjbCBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyX2FjbDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJf YWNsOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMCBBUyBpbnQ7CitDUkVB VEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIxIEFTIGludDsKK0dSQU5UIFNFTEVDVCBP TiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdF9hY2wgVE8gcmVncmVzc192YXJpYWJs ZV9yMV9hY2w7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjAnLCAnU0VMRUNUJyk7IC0t IHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3Zh cjIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1JFVk9LRSBT RUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsIEZST00gcmVncmVz c192YXJpYWJsZV9yMV9hY2w7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjAnLCAnU0VM RUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3ZhcnRlc3Rf YWNsLnNlc3ZhcjIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisK K1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIy MDsKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIxOworRFJPUCBTQ0hFTUEgc3Zh cnRlc3RfYWNsOworLS0KKy0tIGVuZCBvZiB0ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFU RSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQQorLS0KKy0tCistLSBmdW5jdGlvbiBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgaGF2ZSB2YXJpb3VzIGtpbmQgb2Ygc2lnbmF0dXJlLgor LS0gdGhlIGZvbGxvd2luZyBhcmUgZXh0ZW5zaXZlIHRlc3QgZm9yIGl0LgorLS0KK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5z ZXN2YXIyMl9hY2wgQVMgaW50OworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKK0dSQU5UIFNF TEVDVCBPTiBWQVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVf cjFfYWNsOworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIy X2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIy Ml9hY2wnLCAnU0VMRUNUJyk7CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1 YmxpYy5ub3RleGlzdHMnLCAnU0VMRUNUJykgSVMgTlVMTDsKKyA/Y29sdW1uPyAKKy0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MV9hY2wnLCAnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjFfYWNsJywgJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gZgorIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0t IHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAnc2VzdmFyMjJfYWNsJywgJ1VQ REFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJv dykKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9NIHBnX3ZhcmlhYmxlCisgIFdIRVJFIHZh cm5hbWUgPSAnc2VzdmFyMjJfYWNsJyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJlZ25h bWVzcGFjZSBcZ3NldAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2Vz dmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdVUERB VEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsIDp2YXJpZCwgJ1NF TEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgOnZhcmlkLCAn VVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCA6dmFyaWQs ICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsIDp2YXJp ZCwgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSg6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2Fj bCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1VQREFURScp OyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgJ3Nlc3Zh cjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2Fj bCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFU RScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgOnZh cmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnOjpy ZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSB0 ZXN0cy4KKy0tCitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFV TFQ7CitEUk9QIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2w7CitEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9yMV9hY2w7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMl9hY2w7CitS RVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2Fj bDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFs bGVsX3NjaGVkdWxlCmluZGV4IDNhYmMxYWNhNWYyLi45NWM3NmJhZjlhZSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTUsNyArMTE1LDcgQEAgdGVzdDoganNvbiBqc29uYiBq c29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2VuY29kaW5nIGpzb25iX2pzb25wYXRoIHNx bGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgcmVjb25uZWN0cyB3aGljaCB0cmFuc2llbnRseSB1 c2UgMiBjb25uZWN0aW9ucywKICMgc28ga2VlcCB0aGlzIHBhcmFsbGVsIGdyb3VwIHRvIGF0IG1v c3QgMTkgdGVzdHMKICMgLS0tLS0tLS0tLQotdGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwg Y29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUg YWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJn ZW9iamVjdCB3aXRoIHhtbCBzZXNzaW9uX3ZhcmlhYmxlc19kZGwKK3Rlc3Q6IHBsYW5jYWNoZSBs aW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJz aW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyBy ZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vzc2lvbl92YXJpYWJsZXNfZGRsIHNlc3Np b25fdmFyaWFibGVzX2FjbAogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJh bGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXNfYWNsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2Fj bC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUxYTlkNWNlNWY0 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXNfYWNsLnNxbApAQCAtMCwwICsxLDE1OCBAQAorLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cyBhbmQg c3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJs ZV9yZWFkZXJfYWNsOworCitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0X2FjbCBUTyByZWdy ZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgcHVibGljIFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworCitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAg IEZPUiBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsCisgICBJTiBTQ0hFTUEgc3ZhcnRl c3RfYWNsCisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyX2FjbDsKKworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0IHByaXZpbGVn ZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFZBUklB QkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMCBBUyBpbnQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOwor CistLSBzaG91bGQgYmUgb2suIHNpbmNlIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUworLS0gYWxs b3cgcmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsIHRvIGhhdmUgU0VMRUNUIHByaXZpbGVkZ2UK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyX2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjAnLCAnU0VMRUNUJyk7IC0tIHQKKwor RFJPUCBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjA7CitEUk9QIFNDSEVNQSBzdmFydGVz dF9hY2w7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworCistLQorLS0g YmVnaW4gb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVE IEJZCistLQorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJs ZV9vd25lcl9hY2w7CitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMjJfYWNsIEFTIGludDsgICAgICAt LXNlc3ZhcjIyX2FjbCB3aWxsIG93bmVkIGJ5IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsCisK K0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJs ZV9yMV9hY2wgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxl X3IxX2FjbDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgVE8gcmVncmVz c192YXJpYWJsZV9yMl9hY2wgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyBERUZBVUxU OworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2Fj bCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBBTEwg UFJJVklMRUdFUyBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgRlJPTSByZWdyZXNzX3ZhcmlhYmxl X3IxX2FjbCBDQVNDQURFOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVD VCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBm CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworR1JBTlQgU0VMRUNU IE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAn cHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorCitSRVZPS0UgQUxMIE9OIFZB UklBQkxFIHNlc3ZhcjIyX2FjbCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsIEdSQU5URUQg QlkgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIy Ml9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAn U0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNU Jyk7IC0tIHQKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgc2VzdmFyMjJf YWNsOworLS0KKy0tIGVuZCBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5UIE9QVElPTiBhbmQgUkVW T0tFIEdSQU5URUQgQlkKKy0tCisKKy0tCistLSBiZWdpbiBvZiB0ZXN0OiBHUkFOVHxSRVZPS0Ug U0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQQorLS0KK0NSRUFURSBTQ0hF TUEgc3ZhcnRlc3RfYWNsOworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdF9hY2wgVE8gcmVn cmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293 bmVyX2FjbDsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMCBBUyBpbnQ7 CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIxIEFTIGludDsKKworR1JBTlQg U0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0X2FjbCBUTyByZWdyZXNz X3ZhcmlhYmxlX3IxX2FjbDsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwJywgJ1NF TEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjEnLCAnU0VMRUNUJyk7 IC0tIHQKKworUkVWT0tFIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVz dF9hY2wgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3ZhcnRlc3Rf YWNsLnNlc3ZhcjIwJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVzdF9hY2wuc2Vz dmFyMjEnLCAnU0VMRUNUJyk7IC0tIGYKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFS SUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9hY2wu c2VzdmFyMjE7CitEUk9QIFNDSEVNQSBzdmFydGVzdF9hY2w7CistLQorLS0gZW5kIG9mIHRlc3Q6 IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCist LQorCistLQorLS0gZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIGhhdmUg dmFyaW91cyBraW5kIG9mIHNpZ25hdHVyZS4KKy0tIHRoZSBmb2xsb3dpbmcgYXJlIGV4dGVuc2l2 ZSB0ZXN0IGZvciBpdC4KKy0tCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2Fj bDsKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2wgQVMgaW50OworCitTRVQg c2VhcmNoX3BhdGggVE8gcHVibGljOworCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgcHVibGlj LnNlc3ZhcjIyX2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK0dSQU5UIFNFTEVDVCwg VVBEQVRFIE9OIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJs ZV9yMl9hY2w7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7CitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix X2FjbCcsICdwdWJsaWMubm90ZXhpc3RzJywgJ1NFTEVDVCcpIElTIE5VTEw7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAn U0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gZgor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y Ml9hY2wnLCAnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdzZXN2YXIy Ml9hY2wnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIGYKKwor U0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9NIHBnX3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUg PSAnc2VzdmFyMjJfYWNsJyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJlZ25hbWVzcGFj ZSBcZ3NldAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2YXIy Ml9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsIDp2YXJpZCwg J1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcs IDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0 CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnU0VMRUNU Jyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAn VVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1NFTEVD VCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0t IGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjJfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9h Y2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6 cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgOnZhcmlk LCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0t IHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjJfYWNsJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKy0tCistLSBlbmQg b2YgZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIHRlc3RzLgorLS0KKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOworCitEUk9Q IFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2w7CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX3IxX2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKKworUkVWT0tF IEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitE Uk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7Ci0tIAoyLjUwLjEKCg== --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0005-support-of-session-variables-for-pg_dump.patch" Content-Disposition: attachment; filename="v20250813-0005-support-of-session-variables-for-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meacziiv10 RnJvbSA2MTg1MGUwNGExMDVlYzY3MjYzMWRmOTU1NDhmOGRjYmRhYjU1ZDU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMjI6NTQ6MDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1 LzE1XSBzdXBwb3J0IG9mIHNlc3Npb24gdmFyaWFibGVzIGZvciBwZ19kdW1wCgpUaGlzIHBhdGNo IGVuaGFuY2luZyBwZ19kdW1wIHRvIHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuCi0tLQogc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcGdfZHVt cC9kdW1wdXRpbHMuYyAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw LmggICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5j IHwgICA5ICsrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgfCAxOTAgKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAg ICAgICAgfCAgMTUgKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgfCAg IDcgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgIHwgIDYzICsrKysrKysr Kwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgIHwgICAxICsKIDkgZmlsZXMg Y2hhbmdlZCwgMjk2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5kZXggYTE5NzZmYWU2MDcuLjUz MzNhY2I3YmJkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBAIC0yNDcsNiArMjQ3LDkgQEAgZ2V0U2NoZW1hRGF0YShB cmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlwZ19sb2dfaW5mbygicmVhZGluZyBz dWJzY3JpcHRpb24gbWVtYmVyc2hpcCBvZiB0YWJsZXMiKTsKIAlnZXRTdWJzY3JpcHRpb25UYWJs ZXMoZm91dCk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyB2YXJpYWJsZXMiKTsKKwlnZXRWYXJp YWJsZXMoZm91dCk7CisKIAlmcmVlKGluaGluZm8pOwkJCQkvKiBub3QgbmVlZGVkIGFueSBsb25n ZXIgKi8KIAogCSpudW1UYWJsZXNQdHIgPSBudW1UYWJsZXM7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKaW5kZXgg ODk0NWJkZDQyYzUuLmFmMTBmOWUwNGRhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvZHVt cHV0aWxzLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCkBAIC01NTIsNiArNTUy LDEyIEBAIGRvIHsgXAogCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CiAJCUNPTlZFUlRf UFJJVigndycsICJVUERBVEUiKTsKIAl9CisJZWxzZSBpZiAoc3RyY21wKHR5cGUsICJWQVJJQUJM RSIpID09IDAgfHwKKwkJCSBzdHJjbXAodHlwZSwgIlZBUklBQkxFUyIpID09IDApCisJeworCQlD T05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CisJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUi KTsKKwl9CiAJZWxzZQogCQlhYm9ydCgpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5kZXggZDkwNDFkYWQ3 MjAuLmRhYzA2N2JkYzRjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0xMzQsMTIgKzEzNCwxNCBAQCB0 eXBlZGVmIHN0cnVjdCBfcmVzdG9yZU9wdGlvbnMKIAlpbnQJCQlzZWxGdW5jdGlvbjsKIAlpbnQJ CQlzZWxUcmlnZ2VyOwogCWludAkJCXNlbFRhYmxlOworCWludAkJCXNlbFZhcmlhYmxlOwogCVNp bXBsZVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IGZ1bmN0aW9uTmFt ZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHNj aGVtYUV4Y2x1ZGVOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRyaWdnZXJOYW1lczsKIAlTaW1w bGVTdHJpbmdMaXN0IHRhYmxlTmFtZXM7CisJU2ltcGxlU3RyaW5nTGlzdCB2YXJpYWJsZU5hbWVz OwogCiAJaW50CQkJdXNlREI7CiAJQ29ublBhcmFtcwljcGFyYW1zOwkJLyogcGFyYW1ldGVycyB0 byB1c2UgaWYgdXNlREIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf YXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCAz YzNhY2JhY2NkYi4uNDhiMmY0NzZiNzcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVy LmMKQEAgLTMyMDcsNiArMzIwNywxNCBAQCBfdG9jRW50cnlSZXF1aXJlZChUb2NFbnRyeSAqdGUs IHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNoaXZlSGFuZGxlICpBSCkKIAkJCQkJIXNpbXBsZV9z dHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnRyaWdnZXJOYW1lcywgdGUtPnRhZykpCiAJCQkJCXJl dHVybiAwOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKHRlLT5kZXNjLCAiVkFSSUFCTEUiKSA9 PSAwKQorCQkJeworCQkJCWlmICghcm9wdC0+c2VsVmFyaWFibGUpCisJCQkJCXJldHVybiAwOwor CQkJCWlmIChyb3B0LT52YXJpYWJsZU5hbWVzLmhlYWQgIT0gTlVMTCAmJgorCQkJCQkhc2ltcGxl X3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dmFyaWFibGVOYW1lcywgdGUtPnRhZykpCisJCQkJ CXJldHVybiAwOworCQkJfQogCQkJZWxzZQogCQkJCXJldHVybiAwOwogCQl9CkBAIC0zNzgwLDYg KzM3ODgsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBU b2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggRElDVElPTkFSWSIpID09 IDAgfHwKIAkJc3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBDT05GSUdVUkFUSU9OIikgPT0gMCB8 fAogCQlzdHJjbXAodHlwZSwgIlRZUEUiKSA9PSAwIHx8CisJCXN0cmNtcCh0eXBlLCAiVkFSSUFC TEUiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVklFVyIpID09IDAgfHwKIAkvKiBub24tc2No ZW1hLXNwZWNpZmllZCBvYmplY3RzICovCiAJCXN0cmNtcCh0eXBlLCAiREFUQUJBU0UiKSA9PSAw IHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYwppbmRleCBmYzdhNjYzOTE2My4uNzZhZDg0ZDk3YTMgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YwpAQCAtMzgxLDYgKzM4MSw3IEBAIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZl ICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pOwogc3RhdGljIHZvaWQgZHVt cFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZv ICpwdWJyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQs IGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFN1YnNj cmlwdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YlJlbEluZm8gKnN1YnJpbmZvKTsK K3N0YXRpYyB2b2lkIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUlu Zm8gKnZhcmluZm8pOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlKEFyY2hpdmUgKmZvdXQpOwog c3RhdGljIHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFyY2hpdmUgKkFILCBQUUV4cEJ1ZmZlciBv dXRidWYsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqZGJuYW1lLCBPaWQgZGJvaWQpOwpAQCAtNTYx Myw2ICs1NjE0LDE4OCBAQCBnZXRfbmV4dF9wb3NzaWJsZV9mcmVlX3BnX3R5cGVfb2lkKEFyY2hp dmUgKmZvdXQsIFBRRXhwQnVmZmVyIHVwZ3JhZGVfcXVlcnkpCiAJcmV0dXJuIG5leHRfcG9zc2li bGVfZnJlZV9vaWQ7CiB9CiAKKy8qCisgKiBnZXRWYXJpYWJsZXMKKyAqCSAgZ2V0IGluZm9ybWF0 aW9uIGFib3V0IHZhcmlhYmxlcworICovCit2b2lkCitnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91 dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJVmFyaWFibGVJ bmZvICp2YXJpbmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJ aV92YXJuYW1lOworCWludAkJCWlfdmFybmFtZXNwYWNlOworCWludAkJCWlfdmFydHlwZTsKKwlp bnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJvd25lcjsKKwlpbnQJCQlpX3ZhcmNvbGxh dGlvbjsKKwlpbnQJCQlpX3ZhcmFjbDsKKwlpbnQJCQlpX2FjbGRlZmF1bHQ7CisJaW50CQkJaSwK KwkJCQludHVwczsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTgwMDAwKQorCQlyZXR1 cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwkvKiBnZXQgdGhlIHZhcmlh YmxlcyBpbiBjdXJyZW50IGRhdGFiYXNlICovCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJ CQkJCSAgIlNFTEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkgICIg ICAgICAgdi52YXJuYW1lc3BhY2UsIHYudmFydHlwZSxcbiIKKwkJCQkJICAiICAgICAgIHBnX2Nh dGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxc biIKKwkJCQkJICAiICAgICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNvbGxh dGlvbiAiCisJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKKwkJCQkJ ICAiICAgICAgICAgICAgRUxTRSAwXG4iCisJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0 aW9uLFxuIgorCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCisJCQkJCSAg IiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgorCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgorCQkJCQkgICJKT0lOIHBnX2Nh dGFsb2cucGdfdHlwZSB0ICIKKwkJCQkJICAiT04gKHYudmFydHlwZSA9IHQub2lkKSIpOworCisJ cmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0sp OworCisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIo cmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX3Zh cm5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZSIpOworCWlfdmFybmFtZXNwYWNlID0gUFFm bnVtYmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOworCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMs ICJ2YXJ0eXBlIik7CisJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUi KTsKKwlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKwor CWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKKwlpX3ZhcmFjbCA9IFBR Zm51bWJlcihyZXMsICJ2YXJhY2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIocmVzLCAi YWNsZGVmYXVsdCIpOworCisJdmFyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihWYXJp YWJsZUluZm8pKTsKKworCWZvciAoaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJVHlwZUlu Zm8gICAqdnR5cGU7CisKKwkJdmFyaW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19WQVJJQUJMRTsK KwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQUWdldHZhbHVl KHJlcywgaSwgaV90YWJsZW9pZCkpOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRv b2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnZhcmluZm9b aV0uZG9iaik7CisJCXZhcmluZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3Zhcm5hbWUpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9CisJCQlm aW5kTmFtZXNwYWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lc3BhY2UpKSk7 CisKKwkJdmFyaW5mb1tpXS52YXJ0eXBlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cnR5cGUpKTsKKwkJdmFyaW5mb1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsKKwkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9v aWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisKKwkJdmFyaW5mb1tpXS5k YWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKKwkJdmFy aW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf YWNsZGVmYXVsdCkpOworCQl2YXJpbmZvW2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQl2YXJpbmZv W2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsKKwkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9s ZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKKworCQkvKiBkbyBub3QgdHJ5 IHRvIGR1bXAgQUNMIGlmIG5vIEFDTCBleGlzdHMgKi8KKwkJaWYgKCFQUWdldGlzbnVsbChyZXMs IGksIGlfdmFyYWNsKSkKKwkJCXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09N UE9ORU5UX0FDTDsKKworCQlpZiAoc3RybGVuKHZhcmluZm9baV0ucm9sbmFtZSkgPT0gMCkKKwkJ CXBnX2xvZ193YXJuaW5nKCJvd25lciBvZiB2YXJpYWJsZSBcIiVzXCIgYXBwZWFycyB0byBiZSBp bnZhbGlkIiwKKwkJCQkJCSAgIHZhcmluZm9baV0uZG9iai5uYW1lKTsKKworCQkvKiBkZWNpZGUg d2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KKwkJc2VsZWN0RHVtcGFibGVPYmplY3QoJih2 YXJpbmZvW2ldLmRvYmopLCBmb3V0KTsKKworCQl2dHlwZSA9IGZpbmRUeXBlQnlPaWQodmFyaW5m b1tpXS52YXJ0eXBlKTsKKwkJYWRkT2JqZWN0RGVwZW5kZW5jeSgmdmFyaW5mb1tpXS5kb2JqLCB2 dHlwZS0+ZG9iai5kdW1wSWQpOworCX0KKwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFFeHBC dWZmZXIocXVlcnkpOworfQorCisvKgorICogZHVtcFZhcmlhYmxlCisgKgkgIGR1bXAgdGhlIGRl ZmluaXRpb24gb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIHZvaWQK K2R1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8p Cit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCisJUFFFeHBCdWZmZXIgZGVs cTsKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwljaGFyCSAgICpxdWFsdmFybmFtZTsKKwljb25zdCBj aGFyICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKworCS8qIHNraXAgaWYgbm90 IHRvIGJlIGR1bXBlZCAqLworCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0LT5kdW1w U2NoZW1hKQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVy eSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxdWFsdmFybmFtZSA9IHBnX3N0cmR1cChmbXRR dWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CisJdmFydHlwbmFtZSA9IHZhcmluZm8tPnZhcnR5 cG5hbWU7CisJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCisJYXBwZW5k UFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLAorCQkJCQkgIHF1YWx2YXJu YW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFZBUklBQkxFICVzIEFT ICVzIiwKKwkJCQkJICBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CisKKwlpZiAoT2lkSXNWYWxp ZCh2YXJjb2xsYXRpb24pKQorCXsKKwkJQ29sbEluZm8gICAqY29sbDsKKworCQljb2xsID0gZmlu ZENvbGxhdGlvbkJ5T2lkKHZhcmNvbGxhdGlvbik7CisJCWlmIChjb2xsKQorCQkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIgQ09MTEFURSAlcyIsCisJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1w YWJsZShjb2xsKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7XG4iKTsKKwor CWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQorCQlB cmNoaXZlRW50cnkoZm91dCwgdmFyaW5mby0+ZG9iai5jYXRJZCwgdmFyaW5mby0+ZG9iai5kdW1w SWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHZhcmluZm8tPmRvYmoubmFtZSwKKwkJCQkJ CQkJICAubmFtZXNwYWNlID0gdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwKKwkJ CQkJCQkJICAub3duZXIgPSB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlv biA9ICJWQVJJQUJMRSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAor CQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10 ID0gZGVscS0+ZGF0YSkpOworCisJLyogZHVtcCBjb21tZW50IGlmIGFueSAqLworCWlmICh2YXJp bmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQlkdW1wQ29tbWVudChm b3V0LCAiVkFSSUFCTEUiLCBxdWFsdmFybmFtZSwKKwkJCQkJTlVMTCwgdmFyaW5mby0+cm9sbmFt ZSwKKwkJCQkJdmFyaW5mby0+ZG9iai5jYXRJZCwgMCwgdmFyaW5mby0+ZG9iai5kdW1wSWQpOwor CisJLyogZHVtcCBBQ0wgaWYgYW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBf Q09NUE9ORU5UX0FDTCkKKwl7CisJCWNoYXIJICAgKnF2YXJuYW1lID0gcGdfc3RyZHVwKGZtdElk KHZhcmluZm8tPmRvYmoubmFtZSkpOworCisJCWR1bXBBQ0woZm91dCwgdmFyaW5mby0+ZG9iai5k dW1wSWQsIEludmFsaWREdW1wSWQsICJWQVJJQUJMRSIsCisJCQkJcXZhcm5hbWUsIE5VTEwsCisJ CQkJdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgTlVMTCwgdmFyaW5mby0+cm9s bmFtZSwKKwkJCQkmdmFyaW5mby0+ZGFjbCk7CisKKwkJZnJlZShxdmFybmFtZSk7CisJfQorCisJ ZGVzdHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisK KwlmcmVlKHF1YWx2YXJuYW1lKTsKK30KKwogc3RhdGljIHZvaWQKIGJpbmFyeV91cGdyYWRlX3Nl dF90eXBlX29pZHNfYnlfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwKIAkJCQkJCQkJCQkgUFFFeHBC dWZmZXIgdXBncmFkZV9idWZmZXIsCkBAIC0xMTc0NSw2ICsxMTkyOCw5IEBAIGR1bXBEdW1wYWJs ZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19S RUxfU1RBVFM6CiAJCQlkdW1wUmVsYXRpb25TdGF0cyhmb3V0LCAoY29uc3QgUmVsU3RhdHNJbmZv ICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fVkFSSUFCTEU6CisJCQlkdW1wVmFyaWFi bGUoZm91dCwgKFZhcmlhYmxlSW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFrOwogCQljYXNlIERPX1BS RV9EQVRBX0JPVU5EQVJZOgogCQljYXNlIERPX1BPU1RfREFUQV9CT1VOREFSWToKIAkJCS8qIG5l dmVyIGR1bXBlZCwgbm90aGluZyB0byBkbyAqLwpAQCAtMTYyNTEsNiArMTY0MzcsOSBAQCBkdW1w RGVmYXVsdEFDTChBcmNoaXZlICpmb3V0LCBjb25zdCBEZWZhdWx0QUNMSW5mbyAqZGFjbGluZm8p CiAJCWNhc2UgREVGQUNMT0JKX0xBUkdFT0JKRUNUOgogCQkJdHlwZSA9ICJMQVJHRSBPQkpFQ1RT IjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCXR5cGUgPSAiVkFS SUFCTEVTIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkbid0IGdldCBoZXJl ICovCiAJCQlwZ19mYXRhbCgidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGluIGRlZmF1bHQgcHJp dmlsZWdlczogJWQiLApAQCAtMjAwNjQsNiArMjAyNTMsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVu Y2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fQ09O VkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CiAJCQljYXNlIERPX1RBQkxFX0FUVEFDSDoKKwkJ CWNhc2UgRE9fVkFSSUFCTEU6CiAJCQljYXNlIERPX0FUVFJERUY6CiAJCQljYXNlIERPX1BST0NM QU5HOgogCQkJY2FzZSBET19DQVNUOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggZGRlODVlZDE1NmMuLjEyYmVi ZjRhOTg4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTUzLDYgKzUzLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9f VEFCTEUsCiAJRE9fVEFCTEVfQVRUQUNILAogCURPX0FUVFJERUYsCisJRE9fVkFSSUFCTEUsCiAJ RE9fSU5ERVgsCiAJRE9fSU5ERVhfQVRUQUNILAogCURPX1NUQVRTRVhULApAQCAtNzQ0LDYgKzc0 NSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBfU3ViUmVsSW5mbwogCWNoYXIJICAgKnNyc3VibHNuOwog fSBTdWJSZWxJbmZvOwogCisvKgorICogVGhlIFZhcmlhYmxlSW5mbyBzdHJ1Y3QgaXMgdXNlZCB0 byByZXByZXNlbnQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX1Zhcmlh YmxlSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJRHVtcGFibGVBY2wgZGFjbDsKKwlP aWQJCQl2YXJ0eXBlOworCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJT2lkCQkJdmFyY29sbGF0aW9u OworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJp bmcgKi8KK30gVmFyaWFibGVJbmZvOworCiAvKgogICoJY29tbW9uIHV0aWxpdHkgZnVuY3Rpb25z CiAgKi8KQEAgLTgyOCw1ICs4NDIsNiBAQCBleHRlcm4gdm9pZCBnZXRQdWJsaWNhdGlvblRhYmxl cyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLAogCQkJCQkJCQkgaW50IG51bVRh Ymxlcyk7CiBleHRlcm4gdm9pZCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpOwogZXh0 ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQpOworZXh0ZXJuIHZv aWQgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfRFVN UF9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggYTAyZGEzZTk2NTIuLmQyODQ4ZmFmMGQy IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC03Niw2ICs3Niw3IEBAIGVudW0gZGJPYmplY3RU eXBlUHJpb3JpdGllcwogCVBSSU9fVEFCTEVfQVRUQUNILAogCVBSSU9fRFVNTVlfVFlQRSwKIAlQ UklPX0FUVFJERUYsCisJUFJJT19WQVJJQUJMRSwKIAlQUklPX1BSRV9EQVRBX0JPVU5EQVJZLAkJ LyogYm91bmRhcnkhICovCiAJUFJJT19UQUJMRV9EQVRBLAogCVBSSU9fU0VRVUVOQ0VfU0VULApA QCAtMTE5LDYgKzEyMCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlb XSA9CiAJW0RPX1RBQkxFXSA9IFBSSU9fVEFCTEUsCiAJW0RPX1RBQkxFX0FUVEFDSF0gPSBQUklP X1RBQkxFX0FUVEFDSCwKIAlbRE9fQVRUUkRFRl0gPSBQUklPX0FUVFJERUYsCisJW0RPX1ZBUklB QkxFXSA9IFBSSU9fVkFSSUFCTEUsCiAJW0RPX0lOREVYXSA9IFBSSU9fSU5ERVgsCiAJW0RPX0lO REVYX0FUVEFDSF0gPSBQUklPX0lOREVYX0FUVEFDSCwKIAlbRE9fU1RBVFNFWFRdID0gUFJJT19T VEFUU0VYVCwKQEAgLTE3MzYsNiArMTczOCwxMSBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1 bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiUkVMQVRJ T04gU1RBVElTVElDUyBGT1IgJXMgIChJRCAlZCBPSUQgJXUpIiwKIAkJCQkJIG9iai0+bmFtZSwg b2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19WQVJJ QUJMRToKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJWQVJJQUJMRSAlcyAgKElE ICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5v aWQpOworCQkJcmV0dXJuOwogCX0KIAkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAlzbnByaW50 ZihidWYsIGJ1ZnNpemUsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVt cC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IGU3YTJkNjRmNzQx Li44NDE1M2RiNDU5ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTk2Miw2ICs5NjIs MTYgQEAgbXkgJXRlc3RzID0gKAogCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAogCSAg fSwKIAorCSdBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rl c3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQycKKwkgID0+IHsKKwkJ Y3JlYXRlX29yZGVyID0+IDU2LAorCQljcmVhdGVfc3FsICAgPT4gJ0FMVEVSIERFRkFVTFQgUFJJ VklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRVMgVE8gUFVCTElDOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUFMVEVSIERFRkFV TFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVD VCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDO1xFL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwg fSwKKwkgIH0sCisKIAknQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlJyA9PiB7CiAJ CXJlZ2V4cCA9PiBxci9eCiAJCQlcUUFMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBX SVRIIFxFCkBAIC0xOTYyLDYgKzE5NzIsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAK KwknQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7CisJCWNyZWF0 ZV9vcmRlciA9PiA3MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDT01NRU5UIE9OIFZBUklBQkxFIGR1 bXBfdGVzdC52YXJpYWJsZTEKKwkJCQkJICAgSVMgXCdjb21tZW50IG9uIHZhcmlhYmxlXCc7JywK KwkJcmVnZXhwID0+CisJCSAgcXIvXlxRQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFy aWFibGUxIElTICdjb21tZW50IG9uIHZhcmlhYmxlJztcRS9tLAorCQlsaWtlID0+IHsKKwkJCSVm dWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0 YSAgICAgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3Nj aGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwK KwogCSdDT1BZIHRlc3RfdGFibGUnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDQsCiAJCWNyZWF0 ZV9zcWwgPT4gJ0lOU0VSVCBJTlRPIGR1bXBfdGVzdC50ZXN0X3RhYmxlIChjb2wxKSAnCkBAIC00 MzE1LDYgKzQzNDIsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFZB UklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4u IGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NS RUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVnZXI7JywKKwkJcmVnZXhw ID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMgaW50 ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9z Y2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+ IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1 cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+ IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBk dW1wX3Rlc3QudGVzdF92aWV3CkBAIC00Nzc5LDYgKzQ4MjMsMjUgQEAgbXkgJXRlc3RzID0gKAog CQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVz dC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDczLAorCQljcmVhdGVfc3FsID0+ CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIFRPIHJl Z3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rf cm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90 ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxp a2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlub19wcml2cyAg ICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAor CQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBtYXR2aWV3JyA9PiB7CiAJ CXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBfdGVzdC5tYXR2 aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNjcwNTY2 NTFmN2YuLjg5NjJkNDgyM2QyIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMzIxMCw2 ICszMjEwLDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAogVmFyaWFibGUKIFZh cmlhYmxlQXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtpbmQKIFZhcmlhYmxl U2V0U3RtdAogVmFyaWFibGVTaG93U3RtdAotLSAKMi41MC4xCgo= --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Disposition: attachment; filename="v20250813-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meacziji13 RnJvbSAzMWQ3MzA3YTZkYWU0MjY4YzRjOTVlNmI0ZTFhNjBiMjIxNWYwMWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMTE6MjY6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzE1XSBDUkVBVEUsIERST1AsIEFMVEVSIFZBUklBQkxFCgpJbXBsZW1lbnRhdGlvbiBvZiBjb21t YW5kczoKCiAgICBDUkVBVEUgVkFSSUFCTEUgdmFybmFtZSBBUyB0eXBlCiAgICBEUk9QIFZBUklB QkxFIHZhcm5hbWUKICAgIEFMVEVSIFZBUklBQkxFIHZhcm5hbWUgT1dORVIgVE8KICAgIEFMVEVS IFZBUklBQkxFIHZhcm5hbWUgUkVOQU1FIFRPCiAgICBBTFRFUiBWQVJJQUJMRSB2YXJuYW1lIFNF VCBTQ0hFTUEKCkFMVEVSIGNvbW1hbmQgdXNlcyBhbHJlYWR5IHByZXBhcmVkIGluZnJhc3RydWN0 dXJlIGJhc2VkIG9uIE9iamVjdEFkZHJlc3MgQVBJLApzbyB0aGlzIHBhdGNoIGltcGxlbWVudHMg T2JqZWN0QWRkcmVzcyByZWxhdGVkIGZ1bmN0aW9uYWxpdHkgdG9vLgoKRXZlbnQgdHJpZ2dlcnMg Zm9yIERETCBvdmVyIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQuCi0tLQogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIxICsrCiBkb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTUgKysKIGRvYy9zcmMv c2dtbC9wbHBnc3FsLnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAxNCArKwogZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAzICsKIGRvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3OCArKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sICAgICAgICAgICAgICAgICB8ICAgMSArCiBk b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCAgICAgICAgICAgfCAgMTIgKy0KIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8IDE0OSArKysrKysr KysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAx MTcgKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAg ICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAg ICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAg fCAgIDYgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgICAgICAgIHwg MjA3ICsrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMgICAgICAgICAgIHwgIDk5ICsrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRl cGVuZC5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAg ICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAg ICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YyAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZCAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAg ICAgICB8ICA4OCArKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAg ICAgICAgICAgIHwgIDQxICsrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgICAg ICAgICAgICAgICB8ICAxNSArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDg2ICsrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNt ZC5jICAgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAg ICAgICAgICAgICAgIHwgIDIwICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YyAgICAgICAgICAgfCAgNjUgKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5o ICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oICAgICAgIHwgIDI0ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAg ICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAg ICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQg ICAgICB8ICAxNyArKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgICAg ICAgIHwgMTYzICsrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsICAgICAgICAgICB8ICAxNCArKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RkbC5zcWwgICAgIHwgMTUwICsrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiA0MCBmaWxlcyBjaGFuZ2VkLCAxNTcxIGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMv c2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNx bAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwu c2dtbAppbmRleCA2NWJjMDcwZDJlNS4uZmE3MTFhMDliYzQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzNjIsNiArNTM2 MiwyNyBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxv Z2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICA8L3BhcmE+CiAgPC9zZWN0MT4KIAor ICA8c2VjdDEgaWQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+CisgICA8dGl0bGU+U2Vzc2lvbiBW YXJpYWJsZXM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtIHpvbmU9ImRkbC1zZXNzaW9uLXZhcmlh YmxlcyI+CisgICAgPHByaW1hcnk+U2Vzc2lvbiB2YXJpYWJsZXM8L3ByaW1hcnk+CisgICA8L2lu ZGV4dGVybT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxl PC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIFNlc3Npb24gdmFy aWFibGVzIGFyZSBkYXRhYmFzZSBvYmplY3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHNlc3Npb24gdmFyaWFibGUgaG9sZHMgdmFsdWUg aW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzIHZhbHVlIGlzIHByaXZhdGUKKyAgICB0byBlYWNoIHNl c3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4KKyAgIDwvcGFyYT4K KyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CiAgIDx0aXRsZT5PdGhlciBE YXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBiODhjYWM1OThlOS4u ODNiMTNmOThmMjggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNzA4LDYgKzE3MDgsMjEgQEAKICAgIDwv Z2xvc3NkZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnkt c2Vzc2lvbi12YXJpYWJsZSI+CisgICA8Z2xvc3N0ZXJtPlNlc3Npb24gdmFyaWFibGU8L2dsb3Nz dGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBwZXJzaXN0ZW50IGRhdGFi YXNlIG9iamVjdCB0aGF0IGhvbGRzIGEgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzCisg ICAgIHZhbHVlIGlzIHByaXZhdGUgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVu IHRoZSBzZXNzaW9uIGVuZHMuCisgICAgIFJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywKKyAgICAgc2ltaWxhciB0byBv dGhlciBkYXRhYmFzZSBvYmplY3RzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgRm9y IG1vcmUgaW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJs ZXMiLz4uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAg IDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zaGFyZWQtbWVtb3J5Ij4KICAgIDxnbG9zc3Rlcm0+ U2hhcmVkIG1lbW9yeTwvZ2xvc3N0ZXJtPgogICAgPGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXgg ZTkzNzQ5MWU2YjguLjFlNGM0M2I4YjYxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTYwMzYsNiArNjAzNiwy MCBAQCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiA8L3Byb2dyYW1saXN0 aW5nPgogICAgIDwvcGFyYT4KICAgIDwvc2VjdDM+CisKKyAgIDxzZWN0MyBpZD0icGxwZ3NxbC1w b3J0aW5nLXBhY2thZ2UtdmFyaWFibGVzIj4KKyAgICA8dGl0bGU+PGNvbW1hbmQ+UGFja2FnZXMg YW5kIHBhY2thZ2UgdmFyaWFibGVzPC9jb21tYW5kPjwvdGl0bGU+CisKKyAgICA8cGFyYT4KKyAg ICAgVGhlIDxhcHBsaWNhdGlvbj5QTC9wZ1NRTDwvYXBwbGljYXRpb24+IGxhbmd1YWdlIGhhcyBu byBwYWNrYWdlcywgYW5kCisgICAgIHRoZXJlZm9yZSBubyBwYWNrYWdlIHZhcmlhYmxlcyBvciBw YWNrYWdlIGNvbnN0YW50cy4KKyAgICAgWW91IGNhbiBjb25zaWRlciB0cmFuc2xhdGluZyBhbiBP cmFjbGUgcGFja2FnZSBpbnRvIGEgc2NoZW1hIGluCisgICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3Jl U1FMPC9wcm9kdWN0bmFtZT4uICBQYWNrYWdlIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcworICAg ICB3b3VsZCB0aGVuIGJlY29tZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgaW4gdGhhdCBzY2hl bWEsIGFuZCBwYWNrYWdlCisgICAgIHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNl c3Npb24gdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgorICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9 ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KICAg PC9zZWN0Mj4KIAogICA8c2VjdDIgaWQ9InBscGdzcWwtcG9ydGluZy1hcHBlbmRpeCI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2N2EuLjJmNjdkZTNlMjFiIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9h bGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0Nyw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNn bWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAg ICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAg ICAgICBTWVNURU0gImFsdGVyX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5n ICAgU1lTVEVNICJhbHRlcl91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlh YmxlICAgICAgU1lTVEVNICJhbHRlcl92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmll dyAgICAgICAgICBTWVNURU0gImFsdGVyX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAg ICAgICAgICAgU1lTVEVNICJhbmFseXplLnNnbWwiPgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAg ICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+CkBAIC05OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0 IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZ IGNyZWF0ZVR5cGUgICAgICAgICBTWVNURU0gImNyZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkg Y3JlYXRlVXNlciAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBj cmVhdGVVc2VyTWFwcGluZyAgU1lTVEVNICJjcmVhdGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFF TlRJVFkgY3JlYXRlVmFyaWFibGUgICAgIFNZU1RFTSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgog PCFFTlRJVFkgY3JlYXRlVmlldyAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8 IUVOVElUWSBkZWFsbG9jYXRlICAgICAgICAgU1lTVEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFF TlRJVFkgZGVjbGFyZSAgICAgICAgICAgIFNZU1RFTSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2 ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0 aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BUeXBlICAgICAgICAgICBTWVNURU0gImRyb3Bf dHlwZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyICAgICAgICAgICBTWVNURU0gImRyb3BfdXNl ci5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyTWFwcGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9t YXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgZHJvcFZhcmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92 YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BWaWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bf dmlldy5zZ21sIj4KIDwhRU5USVRZIGVuZCAgICAgICAgICAgICAgICBTWVNURU0gImVuZC5zZ21s Ij4KIDwhRU5USVRZIGV4ZWN1dGUgICAgICAgICAgICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjk2ZDI1ODY0MjNlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0tCitkb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgor LS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9u ZT0ic3FsLWFsdGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJMRTwvcHJpbWFy eT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFy aWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBWQVJJQUJMRTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxy ZWZwdXJwb3NlPgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZQorICA8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2Pgor PHN5bm9wc2lzPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNF UiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFCTEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KKzwv c3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRl c2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5BTFRFUiBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGFuCisgICBl eGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJmb3JtczoKKwor ICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5P V05FUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUg bmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48 bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGludG8g YW5vdGhlciBzY2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IE9ubHkgdGhlIG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0ZXIgYSBzZXNz aW9uIHZhcmlhYmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFyaWFibGUgZnJv bSBvbmUgc2NoZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28gaGF2ZSB0aGUg PGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEgKG9y CisgICBiZSBhIHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhlIHNlc3Npb24g dmFyaWFibGUgb3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAgIHRoZSB1c2Vy IG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldworICAg b3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8 L2xpdGVyYWw+IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUncyBzY2hlbWEg KG9yIGJlIGEgc3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZvcmNlIHRoYXQg YWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5 CisgICBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90 aXRsZT4KKworICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAg IFRoZSBuYW1lIChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhpc3Rpbmcgc2Vz c2lvbiB2YXJpYWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVw bGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBUaGUgdXNlciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9yIHRoZSBzZXNzaW9uIHZh cmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAg PGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVtYSBmb3IgdGhl IHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAg ICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+CisgIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dyYW1saXN0aW5n PgorQUxURVIgVkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBzZXNz aW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwv bGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gT1dORVIgVE8g am9lOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hh bmdlIHRoZSBzY2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRl cmFsPiB0bworICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+ CitBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9ncmFtbGlzdGlu Zz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21w YXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFuZCB0 aGlzIGNvbW1hbmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVuc2lvbi4KKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRlcnZhcmlhYmxl LXNlZS1hbHNvIj4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0 eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY29tbWVudC5zZ21sCmluZGV4IDViNDNjNTZiMTMzLi4yMWNkODA4MThmYiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jb21tZW50LnNnbWwKQEAgLTY1LDYgKzY1LDcgQEAgQ09NTUVOVCBPTgogICBUUkFOU0ZPUk0g Rk9SIDxyZXBsYWNlYWJsZT50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBMQU5HVUFHRSA8cmVwbGFj ZWFibGU+bGFuZ19uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBUUklHR0VSIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPiBPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFlQRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8 CisgIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwv cmVwbGFjZWFibGU+IHwKICAgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2Jq ZWN0X25hbWU8L3JlcGxhY2VhYmxlPgogfSBJUyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5zdHJpbmdfbGl0ZXJhbDwvcmVwbGFjZWFibGU+IHwgTlVMTCB9CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfc2NoZW1hLnNnbWwKaW5kZXggZWQ2OTI5OGNjYzYuLmQyYmIyNjUyMDliIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbApAQCAtMTAzLDkgKzEwMywxMCBAQCBDUkVBVEUgU0NI RU1BIElGIE5PVCBFWElTVFMgQVVUSE9SSVpBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcAogICAgICAgICBzY2hlbWEuIEN1cnJlbnRseSwgb25seSA8Y29tbWFuZD5D UkVBVEUKICAgICAgICAgVEFCTEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUgVklFVzwvY29t bWFuZD4sIDxjb21tYW5kPkNSRUFURQogICAgICAgICBJTkRFWDwvY29tbWFuZD4sIDxjb21tYW5k PkNSRUFURSBTRVFVRU5DRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQotICAgICAgICBUUklH R0VSPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBh cyBjbGF1c2VzCi0gICAgICAgIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUgU0NIRU1BPC9jb21tYW5k Pi4gT3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkKLSAgICAgICAgYmUgY3JlYXRlZCBpbiBzZXBh cmF0ZSBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCisgICAgICAgIFRSSUdH RVI8L2NvbW1hbmQ+LCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkNSRUFU RQorICAgICAgICBWQVJJQUJMRTwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMgd2l0 aGluIDxjb21tYW5kPkNSRUFURQorICAgICAgICBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5k cyBvZiBvYmplY3RzIG1heSBiZSBjcmVhdGVkIGluIHNlcGFyYXRlCisgICAgICAgIGNvbW1hbmRz IGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xp c3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIxNCw2ICsyMTUsMTEgQEAgQ1JFQVRF IFZJRVcgaG9sbHl3b29kLndpbm5lcnMgQVMKICAgIFRoZSA8bGl0ZXJhbD5JRiBOT1QgRVhJU1RT PC9saXRlcmFsPiBvcHRpb24gaXMgYQogICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPiBleHRlbnNpb24uCiAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFu ZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KICA8L3JlZnNl Y3QxPgogCiAgPHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZlOTg4ZjJlNDcyCi0tLSAvZGV2 L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCww ICsxLDE0OSBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHBy aW1hcnk+Q1JFQVRFIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5kZWZpbmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkNSRUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51 bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRz PC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+ Q1JFQVRFIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9u IHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rp dj4KKzxzeW5vcHNpcz4KK0NSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBd Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBW QVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAg IFNlc3Npb24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1h IGFuZCB0aGVpciBhY2Nlc3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRoZSBjb21tYW5kcyA8Y29t bWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4uCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMg bG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2 YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8K KyAgIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5k PkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcworICAgcmVndWxh ciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNF TEVDVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+CisKKyAgPG5vdGU+Cisg ICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9x dW90ZT4gYnkgb3RoZXIgaWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+ CisKKyAgPHZhcmlhYmxlbGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2 YXJpYWJsZS1pZi1ub3QtZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RT PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8g bm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBp cyBpc3N1ZWQgaW4KKyAgICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW5hbWUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNz aW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90 eXBlIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBl PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUg b2YgdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3Jl YXRldmFyaWFibGUtY29sbGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFj ZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4g Y2xhdXNlIGFzc2lnbnMgYSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxl ICh3aGljaCBtdXN0IGJlIG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNp ZmllZCwKKyAgICAgIHRoZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwv dmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3Rl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8 L2NvbW1hbmQ+IGNvbW1hbmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwv cGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3Rp dGxlPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0 ZXJhbD52YXIxPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGRhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBh cmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlz IGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWJkYjM1NjBmMGIKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAt MCwwICsxLDExNyBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwK K1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWRyb3B2 YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcHZhcmlhYmxlIj4KKyAgPHByaW1h cnk+RFJPUCBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+ CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+cmVt b3Zpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50 cnl0aXRsZT5EUk9QIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21h bnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1p c2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5EUk9QIFZB UklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBzZXNzaW9uIHZhcmlhYmxl PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5v cHNpcz4KK0RST1AgVkFSSUFCTEUgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBDQVNDQURFIHwgUkVTVFJJQ1Qg XQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJPUCBWQVJJ QUJMRTwvY29tbWFuZD4gcmVtb3ZlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgICBBIHNlc3Npb24g dmFyaWFibGUgY2FuIG9ubHkgYmUgcmVtb3ZlZCBieSBpdHMgb3duZXIgb3IgYSBzdXBlcnVzZXIu CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBzZXNzaW9u IHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0LiBBIG5vdGljZSBpcworICAgICAgaXNzdWVkIGluIHRo aXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiBh IHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+Q0FT Q0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBzZXNzaW9uIHZh cmlhYmxlIChzdWNoIGFzCisgICAgICB2aWV3cyksIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRo YXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRs LWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWZ1 c2UgdG8gZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24g aXQuICBUaGlzIGlzCisgICAgICB0aGUgZGVmYXVsdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4K KyAgIFRvIHJlbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFs PjoKKworPHByb2dyYW1saXN0aW5nPgorRFJPUCBWQVJJQUJMRSB2YXIxOworPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBh dGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkRST1AgVkFSSUFC TEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3By b2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9Imlu bGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9t ZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwv bWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbAppbmRleCBmZjg1YWNlODNmYy4uMjU1NzhmMzk0NmMgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNn bWwKQEAgLTc1LDYgKzc1LDcgQEAKICAgICZhbHRlclR5cGU7CiAgICAmYWx0ZXJVc2VyOwogICAg JmFsdGVyVXNlck1hcHBpbmc7CisgICAmYWx0ZXJWYXJpYWJsZTsKICAgICZhbHRlclZpZXc7CiAg ICAmYW5hbHl6ZTsKICAgICZiZWdpbjsKQEAgLTEyNyw2ICsxMjgsNyBAQAogICAgJmNyZWF0ZVR5 cGU7CiAgICAmY3JlYXRlVXNlcjsKICAgICZjcmVhdGVVc2VyTWFwcGluZzsKKyAgICZjcmVhdGVW YXJpYWJsZTsKICAgICZjcmVhdGVWaWV3OwogICAgJmRlYWxsb2NhdGU7CiAgICAmZGVjbGFyZTsK QEAgLTE3NSw2ICsxNzcsNyBAQAogICAgJmRyb3BUeXBlOwogICAgJmRyb3BVc2VyOwogICAgJmRy b3BVc2VyTWFwcGluZzsKKyAgICZkcm9wVmFyaWFibGU7CiAgICAmZHJvcFZpZXc7CiAgICAmZW5k OwogICAgJmV4ZWN1dGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCA5Y2E4YTg4ZGM5MS4uNzA3NWM4 NjM3OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMjc3MSw2ICsyNzcxLDcgQEAgYWNsY2hlY2tf ZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9C SkVDVF9UU1BBUlNFUjoKIAkJCQkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJCQkJY2FzZSBP QkpFQ1RfVVNFUl9NQVBQSU5HOgorCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCQkJCWVs b2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCQl9 CiAKQEAgLTI4NzgsNiArMjg3OSw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIs IE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQkJ CQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHRleHQgc2VhcmNoIGRpY3Rp b25hcnkgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxl ICVzIik7CisJCQkJCQlicmVhazsKIAogCQkJCQkJLyoKIAkJCQkJCSAqIFNwZWNpYWwgY2FzZXM6 IEZvciB0aGVzZSwgdGhlIGVycm9yIG1lc3NhZ2UgdGFsa3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMKaW5kZXggN2RkZWQ2MzRlYjguLjFkNjJlNjNkNGY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYwpAQCAtNjUsMTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNp bmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0 ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcG9saWN5LmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVu Y2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBAIC0xNDQ0LDYgKzE0NDYsMTAg QEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAkJ CVJlbW92ZVB1YmxpY2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwogCisJ CWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlhYmxlQnlJZChvYmplY3QtPm9i amVjdElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29s bGF0aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jCmluZGV4IGQ5N2Q2MzJhN2VmLi40YWJiZTczM2Y0NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19w YXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tb24vaGFzaGZuX3Vu c3RhYmxlLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtMjI1LDYgKzIyNiw3IEBAIHN0YXRp YyBib29sIFRTUGFyc2VySXNWaXNpYmxlRXh0KE9pZCBwcnNJZCwgYm9vbCAqaXNfbWlzc2luZyk7 CiBzdGF0aWMgYm9vbCBUU0RpY3Rpb25hcnlJc1Zpc2libGVFeHQoT2lkIGRpY3RJZCwgYm9vbCAq aXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU1RlbXBsYXRlSXNWaXNpYmxlRXh0KE9pZCB0bXBs SWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNDb25maWdJc1Zpc2libGVFeHQo T2lkIGNmZ2lkLCBib29sICppc19taXNzaW5nKTsKK3N0YXRpYyBib29sIFZhcmlhYmxlSXNWaXNp YmxlRXh0KE9pZCB2YXJpZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgdm9pZCByZWNvbXB1 dGVOYW1lc3BhY2VQYXRoKHZvaWQpOwogc3RhdGljIHZvaWQgQWNjZXNzVGVtcFRhYmxlTmFtZXNw YWNlKGJvb2wgZm9yY2UpOwogc3RhdGljIHZvaWQgSW5pdFRlbXBUYWJsZU5hbWVzcGFjZSh2b2lk KTsKQEAgLTk4Niw2ICs5ODgsODQgQEAgUmVsYXRpb25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBi b29sICppc19taXNzaW5nKQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogVmFyaWFibGVJ c1Zpc2libGUKKyAqCQlEZXRlcm1pbmUgd2hldGhlciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5 IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxl IG1lYW5zICJ3b3VsZCBiZSBmb3VuZCBieSBzZWFyY2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlm aWVkIHZhcmlhYmxlIG5hbWUiLgorICovCitib29sCitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFy aWQpCit7CisJcmV0dXJuIFZhcmlhYmxlSXNWaXNpYmxlRXh0KHZhcmlkLCBOVUxMKTsKK30KKwor LyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlRXh0CisgKgkJQXMgYWJvdmUsIGJ1dCBpZiB0aGUgdmFy aWFibGUgaXNuJ3QgZm91bmQgYW5kIGlzX21pc3NpbmcgaXMgbm90IE5VTEwsCisgKgkJdGhlbiBz ZXQgKmlzX21pc3NpbmcgPSB0cnVlIGFuZCByZXR1cm4gZmFsc2UsIGluc3RlYWQgb2YgdGhyb3dp bmcKKyAqCQlhbiBlcnJvci4gKENhbGxlciBtdXN0IGluaXRpYWxpemUgKmlzX21pc3NpbmcgPSBm YWxzZS4pCisgKi8KK3N0YXRpYyBib29sCitWYXJpYWJsZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQs IGJvb2wgKmlzX21pc3NpbmcpCit7CisJSGVhcFR1cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3Zhcmlh YmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2 YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFy aWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodmFydHVwKSkKKwl7CisJCWlmIChpc19taXNz aW5nICE9IE5VTEwpCisJCXsKKwkJCSppc19taXNzaW5nID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxz ZTsKKwkJfQorCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9u IHZhcmlhYmxlICV1IiwgdmFyaWQpOworCX0KKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUp IEdFVFNUUlVDVCh2YXJ0dXApOworCisJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJLyoK KwkgKiBRdWljayBjaGVjazogaWYgaXQgYWluJ3QgaW4gdGhlIHBhdGggYXQgYWxsLCBpdCBhaW4n dCB2aXNpYmxlLiBXZSBkb24ndAorCSAqIGV4cGVjdCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxl cyBpbiB0aGUgc3lzdGVtIG5hbWVzcGFjZS4KKwkgKi8KKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3Jt LT52YXJuYW1lc3BhY2U7CisJaWYgKCFsaXN0X21lbWJlcl9vaWQoYWN0aXZlU2VhcmNoUGF0aCwg dmFybmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZhbHNlOworCWVsc2UKKwl7CisJCS8qCisJCSAq IElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdodCBzdGlsbCBub3QgYmUgdmlzaWJsZTsgaXQg Y291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFub3RoZXIgdmFyaWFibGUgb2YgdGhlIHNhbWUgbmFt ZSBlYXJsaWVyIGluIHRoZSBwYXRoLiBTbworCQkgKiB3ZSBtdXN0IGRvIGEgc2xvdyBjaGVjayBm b3IgY29uZmxpY3RpbmcgcmVsYXRpb25zLgorCQkgKi8KKwkJY2hhcgkgICAqdmFybmFtZSA9IE5h bWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJdmlzaWJsZSA9IGZhbHNlOworCQlmb3JlYWNo X29pZChuYW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJaWYgKG5hbWVzcGFj ZUlkID09IHZhcm5hbWVzcGFjZSkKKwkJCXsKKwkJCQkvKiBmb3VuZCBpdCBmaXJzdCBpbiBwYXRo ICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoT2lkSXNW YWxpZChnZXRfdmFybmFtZV92YXJpZCh2YXJuYW1lLCBuYW1lc3BhY2VJZCkpKQorCQkJeworCQkJ CS8qIGZvdW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0IGluIHBhdGggKi8KKwkJCQlicmVhazsKKwkJ CX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXNDYWNoZSh2YXJ0dXApOworCisJcmV0dXJuIHZpc2li bGU7Cit9CiAKIC8qCiAgKiBUeXBlbmFtZUdldFR5cGlkCkBAIC0zMjg5LDYgKzMzNjksMTMzIEBA IFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1 cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUg c3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVyLgorICoKKyAqIElmIG5v dCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlmIG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dzIGVy cm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsCisJCQkg ICBjb25zdCBjaGFyICp2YXJuYW1lLAorCQkJICAgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJ CXZhcm9pZCA9IEludmFsaWRPaWQ7CisKKwlpZiAobnNwbmFtZSkKKwl7CisJCU9pZAkJCW5hbWVz cGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2UobnNwbmFtZSwgbWlzc2luZ19vayk7CisK KwkJLyogaWYgbnNwbmFtZSBpcyBhIGtub3duIG5hbWVzcGFjZSwgdGhlIHZhcmlhYmxlIG11c3Qg YmUgdGhlcmUgKi8KKwkJaWYgKE9pZElzVmFsaWQobmFtZXNwYWNlSWQpKQorCQl7CisJCQl2YXJv aWQgPSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29p ZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkJCQkgT2JqZWN0 SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCQl9CisJfQorCWVsc2UKKwl7CisJCS8qIGl0ZXJh dGUgb3ZlciB0aGUgc2NoZW1hcyBvbiB0aGUgc2VhcmNoX3BhdGggKi8KKwkJcmVjb21wdXRlTmFt ZXNwYWNlUGF0aCgpOworCisJCWZvcmVhY2hfb2lkKG5hbWVzcGFjZUlkLCBhY3RpdmVTZWFyY2hQ YXRoKQorCQl7CisJCQl2YXJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBB bnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSks CisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCisJCQlpZiAoT2lk SXNWYWxpZCh2YXJvaWQpKQorCQkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFPaWRJc1ZhbGlk KHZhcm9pZCkgJiYgIW1pc3Npbmdfb2spCisJeworCQlpZiAobnNwbmFtZSkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJ CQluc3BuYW1lLCB2YXJuYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQko ZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9u IHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJdmFybmFtZSkpKTsKKwl9 CisKKwlyZXR1cm4gdmFyb2lkOworfQorCisvKgorICogUmV0dXJucyBvaWQgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSBzcGVjaWZpZWQgYnkgcG9zc2libHkgcXVhbGlmaWVkIGlkZW50aWZpZXIKKyAqCisg KiBJZiBub3QgZm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRo cm93cyBlcnJvci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdChMaXN0ICpu YW1lcywKKwkJCQkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sKKwljaGFyCSAgICpjYXRuYW1lID0g TlVMTDsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2YXJuYW1lID0gTlVM TDsKKworCXN3aXRjaCAobGlzdF9sZW5ndGgobmFtZXMpKQorCXsKKwkJY2FzZSAxOgorCQkJdmFy bmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJ CW5zcG5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBzdHJWYWwo bHNlY29uZChuYW1lcykpOworCQkJYnJlYWs7CisJCWNhc2UgMzoKKwkJCWNhdG5hbWUgPSBzdHJW YWwobGluaXRpYWwobmFtZXMpKTsKKwkJCW5zcG5hbWUgPSBzdHJWYWwobHNlY29uZChuYW1lcykp OworCQkJdmFybmFtZSA9IHN0clZhbChsdGhpcmQobmFtZXMpKTsKKworCQkJLyogY2hlY2sgY2F0 YWxvZyBuYW1lICovCisJCQlpZiAoc3RyY21wKGNhdG5hbWUsIGdldF9kYXRhYmFzZV9uYW1lKE15 RGF0YWJhc2VJZCkpICE9IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQlOYW1lTGlz dFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNn KCJpbXByb3BlciBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6 ICVzIiwKKwkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCWJyZWFrOworCX0K KworCXJldHVybiBMb29rdXBWYXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsK K30KKworLyoKKyAqIFRoZSBpbnB1dCBsaXN0IGNvbnRhaW5zIG5hbWVzIHdpdGggaW5kaXJlY3Rp b24gZXhwcmVzc2lvbnMgdXNlZCBhcyB0aGUgbGVmdAorICogcGFydCBvZiBMRVQgc3RhdGVtZW50 LiBUaGUgZm9sbG93aW5nIHJvdXRpbmUgcmV0dXJucyBhIG5ldyBsaXN0IHdpdGggb25seQorICog aW5pdGlhbCBzdHJpbmdzIChuYW1lcykgLSB3aXRob3V0IGluZGlyZWN0aW9uIGV4cHJlc3Npb25z LgorICovCitMaXN0ICoKK05hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpCit7CisJTGlzdENlbGwg ICAqbDsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlmb3JlYWNoKGwsIG5hbWVzKQorCXsK KwkJTm9kZQkgICAqbiA9IGxmaXJzdChsKTsKKworCQlpZiAoSXNBKG4sIFN0cmluZykpCisJCXsK KwkJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBuKTsKKwkJfQorCQllbHNlCisJCQlicmVhazsK Kwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQogCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWRO YW1lCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IDAxMDJjOTk4NGU3Li5lZTM3 ZmQ4NTk3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTYyLDYgKzYyLDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5k cy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2 ZW50X3RyaWdnZXIuaCIKQEAgLTYzNiw2ICs2MzcsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFBy b3BlcnR5VHlwZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywKIAkJ ZmFsc2UKIAl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0aW9u SWQsCisJCVZhcmlhYmxlT2lkSW5kZXhJZCwKKwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxFTkFN RU5TUCwKKwkJQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFt ZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFibGVf dmFyb3duZXIsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFCTEUs CisJCXRydWUKKwl9CiB9OwogCiAvKgpAQCAtODMxLDYgKzg0Niw5IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJfSwKIAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIsIE9C SkVDVF9TVEFUSVNUSUNfRVhUCisJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JKRUNU X1ZBUklBQkxFCiAJfQogfTsKIApAQCAtODU2LDYgKzg3NCw3IEBAIHN0YXRpYyBPYmplY3RBZGRy ZXNzIGdldF9vYmplY3RfYWRkcmVzc19hdHRyZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJ CQkJCQkJCWJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0 X2FkZHJlc3NfdHlwZShPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFtZSAq dHlwZW5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2Jq ZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwogc3Rh dGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBvYmp0 eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJCQkJCQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGlj IE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlwZSBv Ymp0eXBlLApAQCAtMTEyNyw2ICsxMTQ2LDkgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5 cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwog CQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CisJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShjYXN0 Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBubyBk ZWZhdWx0LCB0byBsZXQgY29tcGlsZXIgd2FybiBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJfQog CkBAIC0yMTAyLDYgKzIxMjQsMjQgQEAgdGV4dGFycmF5X3RvX3N0cnZhbHVlbGlzdChBcnJheVR5 cGUgKmFycikKIAlyZXR1cm4gbGlzdDsKIH0KIAorLyoKKyAqIEZpbmQgdGhlIE9iamVjdEFkZHJl c3MgZm9yIGEgc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworZ2V0 X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQor eworCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwlj aGFyCSAgICp2YXJuYW1lID0gTlVMTDsKKworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgVmFy aWFibGVSZWxhdGlvbklkLCBJbnZhbGlkT2lkKTsKKworCURlY29uc3RydWN0UXVhbGlmaWVkTmFt ZShvYmplY3QsICZuc3BuYW1lLCAmdmFybmFtZSk7CisJYWRkcmVzcy5vYmplY3RJZCA9IExvb2t1 cFZhcmlhYmxlKG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdfb2spOworCisJcmV0dXJuIGFkZHJl c3M7Cit9CisKIC8qCiAgKiBTUUwtY2FsbGFibGUgdmVyc2lvbiBvZiBnZXRfb2JqZWN0X2FkZHJl c3MKICAqLwpAQCAtMjI5Niw2ICsyMzM2LDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNU X09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9WQVJJQUJM RToKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBuYW1lOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNU X0FDQ0VTU19NRVRIT0Q6CkBAIC0yNDY3LDYgKzI1MDgsNyBAQCBjaGVja19vYmplY3Rfb3duZXJz aGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNz LAogCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05B Ulk6CiAJCWNhc2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CiAJCQlpZiAoIW9iamVjdF9vd25lcmNoZWNrKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5v YmplY3RJZCwgcm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIs IG9ianR5cGUsCiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmpl Y3QpKSk7CkBAIC0zNDk2LDYgKzM1MzgsMzIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3Qg T2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9 CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hhcgkgICAqbnNwbmFt ZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwor CQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShv YmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJ CWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1 IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192 YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlpZiAoVmFyaWFibGVJc1Zpc2libGUob2Jq ZWN0LT5vYmplY3RJZCkpCisJCQkJCW5zcG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNw bmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCisJCQkJ YXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJzZXNzaW9uIHZhcmlhYmxlICVzIiksCisJCQkJ CQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJ TmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSkpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2FzZSBUU1BhcnNlclJlbGF0aW9uSWQ6CiAJCQl7CiAJ CQkJSGVhcFR1cGxlCXR1cDsKQEAgLTQ2NzAsNiArNDczOCwxMCBAQCBnZXRPYmplY3RUeXBlRGVz Y3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJ0cmFuc2Zvcm0iKTsKIAkJCWJyZWFr OwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmlu ZygmYnVmZmVyLCAic2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoK IAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5j bGFzc0lkKTsKIAl9CkBAIC02MDIwLDYgKzYwOTIsMzMgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0 cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNl IFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisJCQkJY2hh cgkgICAqdmFybmFtZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUg dmFyZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0 SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9u IHZhcmlhYmxlICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0g PSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlzY2hlbWEgPSBnZXRf bmFtZXNwYWNlX25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCQkJCXZhcm5h bWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygm YnVmZmVyLCAiJXMiLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1h LCB2YXJuYW1lKSk7CisKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21h a2UyKHNjaGVtYSwgcHN0cmR1cCh2YXJuYW1lKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVw KTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3Vw cG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfc2hkZXBlbmQuYwppbmRleCAzMmU1NDRkYTI4YS4uNDFhNjFjYzdjNWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3NoZGVwZW5kLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RzX2RpY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29t bWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTE3MTQsNiArMTcxNSw3 IEBAIHNoZGVwUmVhc3NpZ25Pd25lZF9Pd25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3JtLCBP aWQgbmV3cm9sZSkKIAkJY2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdS ZWxhdGlvbklkOgogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFi bGVSZWxhdGlvbklkOgogCQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+Y2xh c3NpZCwKIAkJCQkJCQkJCSAgc2RlcEZvcm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xlKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUKaW5kZXggY2IyZmJkYzdjNjAuLmFlZTQwZTdiZDU5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9NYWtlZmlsZQpAQCAtNTMsNiArNTMsNyBAQCBPQkpTID0gXAogCXNjaGVtYWNtZHMubyBc CiAJc2VjbGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCisJc2Vzc2lvbl92YXJpYWJsZS5vIFwKIAlz dGF0c2NtZHMubyBcCiAJc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNtZHMubyBcCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvYWx0ZXIuYwppbmRleCBjYjc1ZTExZmNlZC4uYWFmNjFhNmY2MWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBAIC0xNDAsNiArMTQxLDEwIEBAIHJl cG9ydF9uYW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUsIE9p ZCBuc3BPaWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKIAkJCW1zZ2ZtdCA9IGdl dHRleHRfbm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlz dHMgaW4gc2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJCWNhc2UgVmFyaWFibGVSZWxhdGlv bklkOgorCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CisJCQltc2dmbXQgPSBnZXR0ZXh0 X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBc IiVzXCIiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9y dGVkIG9iamVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJCWJyZWFrOwpAQCAtNDM1LDYgKzQ0 MCw3IEBAIEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RT VEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9TVUJT Q1JJUFRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFkZHJl c3MgYWRkcmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpAQCAtNTc1LDYgKzU4MSw3IEBAIEV4 ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQlj YXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQljYXNl IE9CSkVDVF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlS ZWxhdGlvbgljYXRhbG9nOwogCQkJCU9pZAkJCWNsYXNzSWQ7CkBAIC02NTcsNiArNjY0LDcgQEAg QWx0ZXJPYmplY3ROYW1lc3BhY2Vfb2lkKE9pZCBjbGFzc0lkLCBPaWQgb2JqaWQsIE9pZCBuc3BP aWQsCiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoKIAkJY2FzZSBUU1RlbXBsYXRlUmVs YXRpb25JZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxh dGlvbklkOgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAKQEAgLTg4Nyw2ICs4OTUsNyBA QCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNU X1RBQkxFU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1Rf VFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlPYmpl Y3RBZGRyZXNzIGFkZHJlc3M7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ry b3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IGNlYjlhMjI5 YjYzLi5lYmI1ODVkYzRhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNt ZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC00NzYsNiArNDc2 LDEwIEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAq b2JqZWN0KQogCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBu b3QgZXhpc3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFsKG9iamVjdCk7CiAJCQlicmVh azsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQltc2cgPSBnZXR0ZXh0X25vb3AoInNlc3Np b24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOworCQkJbmFtZSA9 IE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSk7CisJCQlicmVhazsKIAog CQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IDYzMWZiMDUyNWYxLi41ZTBjZTU1ZGFhMSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtMjE0OSw2ICsyMTQ5LDggQEAgc3Ry aW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJM RVNQQUNFIjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRSI7CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRSI7CiAJCQkvKiB0aGVzZSBjdXJy ZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2Fz ZSBPQkpFQ1RfQUdHUkVHQVRFOgpAQCAtMjIzMiw2ICsyMjM0LDggQEAgc3RyaW5naWZ5X2FkZWZw cml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJCXJldHVybiAiVEFCTEVTUEFDRVMi OwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBFUyI7CisJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRVMiOwogCQkJLyogdGhlc2UgY3VycmVudGx5 IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCWNhc2UgT0JK RUNUX0FHR1JFR0FURToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1 aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKaW5kZXggZGQ0Y2RlNDFkMzIu LjEwMWM4ZDc1ZGQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWls ZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZApAQCAtNDEsNiArNDEsNyBA QCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hlbWFjbWRzLmMnLAogICAnc2VjbGFi ZWwuYycsCiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25fdmFyaWFibGUuYycsCiAgICdzdGF0 c2NtZHMuYycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAogICAndGFibGVjbWRzLmMnLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlY2xhYmVsLmMKaW5kZXggY2VlNWQ3YmJiOWMuLjU3YjRlNjcxOWMyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlY2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVj dFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2Fz ZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZjY0MWUwMGMxYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSw4OCBAQAorLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgorICogc2Vzc2lvbl92YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3Jl YXRpb24vbWFuaXB1bGF0aW9uIGNvbW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lu Y2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUu aCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAibWlz Y2FkbWluLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJ1dGls cy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorCisvKgorICogQ3Jl YXRlcyBhIG5ldyB2YXJpYWJsZQorICoKKyAqIFVzZWQgYnkgQ1JFQVRFIFZBUklBQkxFIGNvbW1h bmQKKyAqLworT2JqZWN0QWRkcmVzcworQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKK3sKKwlPaWQJCQluYW1lc3BhY2VpZDsKKwlB Y2xSZXN1bHQJYWNscmVzdWx0OworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJT2lk CQkJdmFyb3duZXIgPSBHZXRVc2VySWQoKTsKKwlPaWQJCQljb2xsYXRpb247CisJT2lkCQkJdHlw Y29sbGF0aW9uOworCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CisKKwluYW1lc3BhY2VpZCA9CisJ CVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShzdG10LT52YXJpYWJsZSwgTm9M b2NrLCBOVUxMKTsKKworCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgc3RtdC0+dHlwZU5h bWUsICZ0eXBpZCwgJnR5cG1vZCk7CisKKwkvKiBkaXNhbGxvdyBwc2V1ZG90eXBlcyAqLworCWlm IChnZXRfdHlwdHlwZSh0eXBpZCkgPT0gVFlQVFlQRV9QU0VVRE8pCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygi c2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgcHNldWRvLXR5cGUgJXMiLAorCQkJCQkJZm9ybWF0 X3R5cGVfYmUodHlwaWQpKSkpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFR5cGVS ZWxhdGlvbklkLCB0eXBpZCwgR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJaWYgKGFjbHJlc3Vs dCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3JfdHlwZShhY2xyZXN1bHQsIHR5cGlk KTsKKworCXR5cGNvbGxhdGlvbiA9IGdldF90eXBjb2xsYXRpb24odHlwaWQpOworCisJaWYgKHN0 bXQtPmNvbGxDbGF1c2UpCisJCWNvbGxhdGlvbiA9IExvb2t1cENvbGxhdGlvbihwc3RhdGUsCisJ CQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5jb2xsbmFtZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxD bGF1c2UtPmxvY2F0aW9uKTsKKwllbHNlCisJCWNvbGxhdGlvbiA9IHR5cGNvbGxhdGlvbjsKKwor CS8qIGNvbXBsYWluIGlmIENPTExBVEUgaXMgYXBwbGllZCB0byBhbiB1bmNvbGxhdGFibGUgdHlw ZSAqLworCWlmIChPaWRJc1ZhbGlkKGNvbGxhdGlvbikgJiYgIU9pZElzVmFsaWQodHlwY29sbGF0 aW9uKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01J U01BVENIKSwKKwkJCQkgZXJybXNnKCJjb2xsYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHR5 cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pKSk7CisKKwl2YXJpYWJs ZSA9IGNyZWF0ZV92YXJpYWJsZShzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwKKwkJCQkJCQkgICBu YW1lc3BhY2VpZCwKKwkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJ ICAgdmFyb3duZXIsCisJCQkJCQkJICAgY29sbGF0aW9uLAorCQkJCQkJCSAgIHN0bXQtPmlmX25v dF9leGlzdHMpOworCisJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUg XCIlc1wiIChvaWQ6JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKKwkJIHN0bXQtPnZh cmlhYmxlLT5yZWxuYW1lLCB2YXJpYWJsZS5vYmplY3RJZCk7CisKKwlyZXR1cm4gdmFyaWFibGU7 Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGM2ZGQyZTAyMGRhLi41ZDk5YmUzZTYy MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zh cmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9zdG9yYWdlX3hsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCkBAIC02OTA5 LDYgKzY5MTAsNyBAQCBBVFR5cGVkVGFibGVSZWN1cnNpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRp b24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAgKiAocG9zc2libHkgbmVzdGVkIHNldmVyYWwg bGV2ZWxzIGRlZXAgaW4gY29tcG9zaXRlIHR5cGVzLCBhcnJheXMsIGV0YyEpLgogICogRXZlbnR1 YWxseSwgd2UnZCBsaWtlIHRvIHByb3BhZ2F0ZSB0aGUgY2hlY2sgb3IgcmV3cml0ZSBvcGVyYXRp b24KICAqIGludG8gc3VjaCB0YWJsZXMsIGJ1dCBmb3Igbm93LCBqdXN0IGVycm9yIG91dCBpZiB3 ZSBmaW5kIGFueS4KKyAqIEFsc28sIGNoZWNrIGlmICJ0eXBlT2lkIiBpcyB1c2VkIGFzIHR5cGUg b2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlLgogICoKICAqIENhbGxlciBzaG91bGQgcHJvdmlkZSBl aXRoZXIgdGhlIGFzc29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBlLAogICogb3IgYSB0eXBl IG5hbWUgKG5vdCBib3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNzYWdlLCBpZiBhbnkuCkBA IC02OTcyLDYgKzY5NzQsNDUgQEAgZmluZF9jb21wb3NpdGVfdHlwZV9kZXBlbmRlbmNpZXMoT2lk IHR5cGVPaWQsIFJlbGF0aW9uIG9yaWdSZWxhdGlvbiwKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJ LyogY2hlY2sgaWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJp YWJsZSAqLworCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkK KwkJeworCQkJT2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9iamlkOworCisJCQlpZiAob3JpZ1R5 cGVOYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVz XCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJ b3JpZ1R5cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQg PT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fu bm90IGFsdGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIg dXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiks CisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3Bh Y2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7 CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0ZP UkVJR05fVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBmb3Jl aWduIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMg aXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAorCQkJ CQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZh cmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJ ZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElP TiB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9NQVRW SUVXIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BB UlRJVElPTkVEX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIg dGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIs CisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJ CWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQp KSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisKKwkJCWNv bnRpbnVlOworCQl9CisKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVlcyB0aGF0IGFyZW4ndCBy ZWxhdGlvbnMgKi8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCAhPSBSZWxhdGlvblJlbGF0aW9u SWQpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDI2ZDk4NTE5M2Fl Li5iNzZjZmU2MmQwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC01Myw2ICs1Myw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19yYW5n ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21t YW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90eXBlY21kcy5oIgpAQCAtMzM4 MSw2ICszMzgyLDIwIEBAIGdldF9yZWxzX3dpdGhfZG9tYWluKE9pZCBkb21haW5PaWQsIExPQ0tN T0RFIGxvY2ttb2RlKQogCQkJfQogCQkJY29udGludWU7CiAJCX0KKwkJZWxzZSBpZiAocGdfZGVw ZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJeworCQkJLyoKKwkJCSAqIFdl IGNhbm5vdCB0byB2YWxpZGF0ZSBjb25zdHJhaW50IGluc2lkZSBzZXNzaW9uIHZhcmlhYmxlcyBm cm9tCisJCQkgKiBvdGhlciBzZXNzaW9ucywgc28gYmV0dGVyIHRvIGZhaWwgaWYgdGhlcmUgYXJl IGFueSBzZXNzaW9uCisJCQkgKiB2YXJpYWJsZSwgdGhhdCB1c2UgdGhpcyBkb21haW4uCisJCQkg Ki8KKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGRvbWFpbiBcIiVzXCIgYmVj YXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQlkb21haW5U eXBlTmFtZSwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHBnX2RlcGVuZC0+b2JqaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHBnX2RlcGVuZC0+b2JqaWQpKSkpOworCQl9CiAKIAkJLyogRWxzZSwgaWdub3JlIGRl cGVuZGVlcyB0aGF0IGFyZW4ndCB1c2VyIGNvbHVtbnMgb2YgcmVsYXRpb25zICovCiAJCS8qICh3 ZSBhc3N1bWUgc3lzdGVtIGNvbHVtbnMgYXJlIG5ldmVyIG9mIGRvbWFpbiB0eXBlcykgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CmluZGV4IGRiNDMwMzRiOWRiLi4zMTQwYzc3MjE3OCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01 Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJncmFtcGFyc2UuaCIKQEAg LTI4NCw4ICsyODUsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDb25zdHJhaW50c1Nl dFN0bXQgQ29weVN0bXQgQ3JlYXRlQXNTdG10IENyZWF0ZUNhc3RTdG10CiAJCUNyZWF0ZURvbWFp blN0bXQgQ3JlYXRlRXh0ZW5zaW9uU3RtdCBDcmVhdGVHcm91cFN0bXQgQ3JlYXRlT3BDbGFzc1N0 bXQKIAkJQ3JlYXRlT3BGYW1pbHlTdG10IEFsdGVyT3BGYW1pbHlTdG10IENyZWF0ZVBMYW5nU3Rt dAotCQlDcmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0 c1N0bXQgQ3JlYXRlVGFibGVTcGFjZVN0bXQKLQkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWdu U2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CisJCUNyZWF0ZVNjaGVtYVN0bXQgQ3Jl YXRlU2VxU3RtdCBDcmVhdGVTZXNzaW9uVmFyU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3Rt dAorCQlDcmVhdGVUYWJsZVNwYWNlU3RtdCBDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2 ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKIAkJQ3JlYXRlQXNzZXJ0aW9uU3RtdCBDcmVh dGVUcmFuc2Zvcm1TdG10IENyZWF0ZVRyaWdTdG10IENyZWF0ZUV2ZW50VHJpZ1N0bXQKIAkJQ3Jl YXRlVXNlclN0bXQgQ3JlYXRlVXNlck1hcHBpbmdTdG10IENyZWF0ZVJvbGVTdG10IENyZWF0ZVBv bGljeVN0bXQKIAkJQ3JlYXRlZGJTdG10IERlY2xhcmVDdXJzb3JTdG10IERlZmluZVN0bXQgRGVs ZXRlU3RtdCBEaXNjYXJkU3RtdCBEb1N0bXQKQEAgLTc4Miw4ICs3ODMsOCBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogCVVFU0NBUEUgVU5CT1VOREVEIFVOQ09ORElUSU9OQUwgVU5DT01NSVRU RUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04KIAlVTkxJU1RFTiBVTkxPR0dFRCBV TlRJTCBVUERBVEUgVVNFUiBVU0lORwogCi0JVkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRP UiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBRElDIFZBUllJTkcKLQlWRVJCT1NFIFZFUlNJ T05fUCBWSUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQgVkFMSURBVEUg VkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSSUFCTEUKKwlWQVJZ SU5HIFZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQogCiAJV0hF TiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQ UEVSIFdSSVRFCiAKQEAgLTEwNDksNiArMTA1MCw3IEBAIHN0bXQ6CiAJCQl8IENyZWF0ZVBvbGlj eVN0bXQKIAkJCXwgQ3JlYXRlUExhbmdTdG10CiAJCQl8IENyZWF0ZVNjaGVtYVN0bXQKKwkJCXwg Q3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJCXwgQ3JlYXRlU2VxU3RtdAogCQkJfCBDcmVhdGVTdG10 CiAJCQl8IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKQEAgLTE2MjYsNiArMTYyOCw3IEBAIHNjaGVt YV9zdG10OgogCQkJfCBDcmVhdGVUcmlnU3RtdAogCQkJfCBHcmFudFN0bXQKIAkJCXwgVmlld1N0 bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJOwogCiAKQEAgLTUzMDcsNiArNTMxMCwz NCBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJCX0KIAkJOwogCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJQ1JFQVRFIFZBUklBQkxFIHZhcm5h bWUgW0FTXSB0eXBlCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitDcmVhdGVTZXNzaW9u VmFyU3RtdDoKKwkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5h bWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAq biA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAk MzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRl Q2xhdXNlICopICQ2OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMg cXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsK KwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFy U3RtdCk7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7CisJ CQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+aWZfbm90 X2V4aXN0cyA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsg VE8gdmVyc2lvbiBdCkBAIC03MTE4LDYgKzcxNDksNyBAQCBvYmplY3RfdHlwZV9hbnlfbmFtZToK IAkJCXwgVEVYVF9QIFNFQVJDSCBESUNUSU9OQVJZCQkJCXsgJCQgPSBPQkpFQ1RfVFNESUNUSU9O QVJZOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggVEVNUExBVEUJCQkJeyAkJCA9IE9CSkVDVF9UU1RF TVBMQVRFOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggQ09ORklHVVJBVElPTgkJCXsgJCQgPSBPQkpF Q1RfVFNDT05GSUdVUkFUSU9OOyB9CisJCQl8IFZBUklBQkxFCQkJCQkJCQl7ICQkID0gT0JKRUNU X1ZBUklBQkxFOyB9CiAJCTsKIAogLyoKQEAgLTEwMDUzLDYgKzEwMDg1LDI0IEBAIFJlbmFtZVN0 bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUgVE8gbmFt ZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJewor CQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFt ZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOwor CQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJ JCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBh bnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VO b2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOwor CQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJ CQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7 CiAKIG9wdF9jb2x1bW46IENPTFVNTgpAQCAtMTA0MTQsNiArMTA0NjQsMjQgQEAgQWx0ZXJPYmpl Y3RTY2hlbWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFNFVCBTQ0hFTUEg bmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0 ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ2 OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMgYW55X25hbWUgU0VUIFNDSEVNQSBu YW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxF OworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDg7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9 CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDY5NSw2ICsxMDc2MywxNCBAQCBB bHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9X TkVSIFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUg KikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVT cGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJT dG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2Jq ZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld293bmVyID0gJDY7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KIAkJOwogCiAKQEAgLTE4MDQ0LDYgKzE4MTIwLDcgQEAgdW5yZXNlcnZl ZF9rZXl3b3JkOgogCQkJfCBWQUxJREFURQogCQkJfCBWQUxJREFUT1IKIAkJCXwgVkFMVUVfUAor CQkJfCBWQVJJQUJMRQogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBA IC0xODcwMCw2ICsxODc3Nyw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAog CQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJMRQogCQkJfCBWQVJJQURJQwog CQkJfCBWRVJCT1NFCiAJCQl8IFZFUlNJT05fUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMK aW5kZXggYWZjZjU0MTY5YzMuLjg0MGJhZWFjYzhhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGls Y21kLmMKQEAgLTEwNSw2ICsxMDUsNyBAQCB0eXBlZGVmIHN0cnVjdAogCUxpc3QJICAgKmluZGV4 ZXM7CQkvKiBDUkVBVEUgSU5ERVggaXRlbXMgKi8KIAlMaXN0CSAgICp0cmlnZ2VyczsJCS8qIENS RUFURSBUUklHR0VSIGl0ZW1zICovCiAJTGlzdAkgICAqZ3JhbnRzOwkJCS8qIEdSQU5UIGl0ZW1z ICovCisJTGlzdAkgICAqdmFyaWFibGVzOwkJLyogQ1JFQVRFIFZBUklBQkxFIGl0ZW1zICovCiB9 IENyZWF0ZVNjaGVtYVN0bXRDb250ZXh0OwogCiAKQEAgLTQxMTMsNiArNDExNCw3IEBAIHRyYW5z Zm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFy ICpzY2hlbWFOYW1lKQogCWN4dC5pbmRleGVzID0gTklMOwogCWN4dC50cmlnZ2VycyA9IE5JTDsK IAljeHQuZ3JhbnRzID0gTklMOworCWN4dC52YXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIFJ1 biB0aHJvdWdoIGVhY2ggc2NoZW1hIGVsZW1lbnQgaW4gdGhlIHNjaGVtYSBlbGVtZW50IGxpc3Qu IFNlcGFyYXRlCkBAIC00MTgxLDYgKzQxODMsMTUgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3Rt dEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJ Y3h0LmdyYW50cyA9IGxhcHBlbmQoY3h0LmdyYW50cywgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAK KwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Np b25WYXJTdG10ICplbHAgPSAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgZWxlbWVudDsKKworCQkJ CQlzZXRTY2hlbWFOYW1lKGN4dC5zY2hlbWFuYW1lLCAmZWxwLT52YXJpYWJsZS0+c2NoZW1hbmFt ZSk7CisJCQkJCWN4dC52YXJpYWJsZXMgPSBsYXBwZW5kKGN4dC52YXJpYWJsZXMsIGVsZW1lbnQp OworCQkJCX0KKwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5y ZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhlbGVtZW50KSk7 CkBAIC00MTk0LDYgKzQyMDUsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMo TGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAlyZXN1bHQgPSBsaXN0 X2NvbmNhdChyZXN1bHQsIGN4dC5pbmRleGVzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1 bHQsIGN4dC50cmlnZ2Vycyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuZ3Jh bnRzKTsKKwlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC52YXJpYWJsZXMpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j IGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggNGY0MTkxYjBlYTYuLjk3YWQ5NTk2 NTYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRz L3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRlICJj b21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCkBA IC0xODIsNiArMTgzLDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAq cGFyc2V0cmVlKQogCQljYXNlIFRfQ3JlYXRlUmFuZ2VTdG10OgogCQljYXNlIFRfQ3JlYXRlUm9s ZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTY2hlbWFTdG10OgorCQljYXNlIFRfQ3JlYXRlU2Vzc2lv blZhclN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFTdG10OgogCQljYXNlIFRfQ3JlYXRlU3RhdHNT dG10OgogCQljYXNlIFRfQ3JlYXRlU3RtdDoKQEAgLTEzODAsNiArMTM4MiwxMCBAQCBQcm9jZXNz VXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCX0KIAkJCQlicmVhazsKIAorCQkJ Y2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCWFkZHJlc3MgPSBDcmVhdGVWYXJpYWJs ZShwc3RhdGUsIChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFr OworCiAJCQkJLyoKIAkJCQkgKiAqKioqKioqKioqKioqIG9iamVjdCBjcmVhdGlvbiAvIGRlc3Ry dWN0aW9uICoqKioqKioqKioqKioqCiAJCQkJICovCkBAIC0yMzMzLDYgKzIzMzksOSBAQCBBbHRl ck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1Rf U1RBVElTVElDX0VYVDoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9TVEFUSVNUSUNTOwogCQkJYnJl YWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX1ZBUklB QkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJ CWJyZWFrOwpAQCAtMjY0MSw2ICsyNjUwLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJz ZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCQkJdGFnID0gQ01EVEFH X0RST1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX1ZBUklBQkxFOworCQkJCQlicmVhazsKIAkJCQlkZWZh dWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTMyMTcsNiArMzIyOSwx MCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwog CisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCXRhZyA9IENNRFRBR19DUkVBVEVf VkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5HLCAidW5y ZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkp OwpAQCAtMzc1MSw2ICszNzY3LDEwIEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRy ZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJ CQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdB Uk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWco cGFyc2V0cmVlKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2Fj aGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IDAzMmJiNjIy MmM0Li4zNDUwNGJmM2Q2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5 c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTM5 LDYgKzM5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5Lmgi CkBAIC0zODU0LDMgKzM4NTUsNjcgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwg Ym9vbCBtaXNzaW5nX29rKQogCiAJcmV0dXJuIHN1Ym5hbWU7CiB9CisKKy8qCQkJCS0tLS0tLS0t LS0gUEdfVkFSSUFCTEUgQ0FDSEUgLS0tLS0tLS0tLQkJCQkgKi8KKworLyoKKyAqIGdldF92YXJu YW1lX3ZhcmlkCisgKgkJR2l2ZW4gbmFtZSBhbmQgbmFtZXNwYWNlIG9mIHZhcmlhYmxlLCBsb29r IHVwIHRoZSBPSUQuCisgKi8KK09pZAorZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFy bmFtZSwgT2lkIHZhcm5hbWVzcGFjZSkKK3sKKwlyZXR1cm4gR2V0U3lzQ2FjaGVPaWQyKFZBUklB QkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkgICBQb2ludGVyR2V0RGF0 dW0odmFybmFtZSksCisJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKHZhcm5hbWVzcGFjZSkpOwor fQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCVJldHVybnMgYSBwYWxs b2MnZCBjb3B5IG9mIHRoZSBuYW1lIG9mIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor Y2hhciAqCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVw bGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOwor CisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZh cmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2 YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9 IHBzdHJkdXAoTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKKworCXJldHVybiB2YXJuYW1lOworfQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlCisgKgkJUmV0dXJucyB0aGUgcGdfbmFtZXNwYWNlIE9JRCBhc3NvY2lhdGVk IHdpdGggYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3Bn X3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCisJdHVwID0gU2VhcmNo U3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3Zhcmlh YmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWVzcGFjZSA9IHZhcmZvcm0tPnZhcm5hbWVz cGFjZTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWVzcGFjZTsK K30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDhjN2NjYzY5YTNjLi5iZGFjMGMxM2JlYyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC05Nyw2ICs5Nyw4IEBAIGV4dGVybiBPaWQJVHlw ZW5hbWVHZXRUeXBpZChjb25zdCBjaGFyICp0eXBuYW1lKTsKIGV4dGVybiBPaWQJVHlwZW5hbWVH ZXRUeXBpZEV4dGVuZGVkKGNvbnN0IGNoYXIgKnR5cG5hbWUsIGJvb2wgdGVtcF9vayk7CiBleHRl cm4gYm9vbCBUeXBlSXNWaXNpYmxlKE9pZCB0eXBpZCk7CiAKK2V4dGVybiBib29sIFZhcmlhYmxl SXNWaXNpYmxlKE9pZCB2YXJpZCk7CisKIGV4dGVybiBGdW5jQ2FuZGlkYXRlTGlzdCBGdW5jbmFt ZUdldENhbmRpZGF0ZXMoTGlzdCAqbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGludCBuYXJncywgTGlz dCAqYXJnbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGJvb2wgZXhwYW5kX3ZhcmlhZGljLApAQCAtMTY5 LDYgKzE3MSwxMCBAQCBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhNYXRj aGVyKE1lbW9yeUNvbnRleHQgY29udGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkNv cHlTZWFyY2hQYXRoTWF0Y2hlcihTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gYm9v bCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAq cGF0aCk7CiAKK2V4dGVybiBMaXN0ICpOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKTsKK2V4dGVy biBPaWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFy bmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJTG9va3VwVmFyaWFibGVGcm9tTmFt ZUxpc3QoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2luZ19vayk7CisKIGV4dGVybiBPaWQJZ2V0X2Nv bGxhdGlvbl9vaWQoTGlzdCAqY29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lk CWdldF9jb252ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0 ZXJuIE9pZAlGaW5kRGVmYXVsdENvbnZlcnNpb25Qcm9jKGludDMyIGZvcl9lbmNvZGluZywgaW50 MzIgdG9fZW5jb2RpbmcpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40OWYzNmFjNjg4NQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAt MCwwICsxLDI0IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9udmFyaWFibGUu aAorICoJICBwcm90b3R5cGVzIGZvciBzZXNzaW9udmFyaWFibGUuYy4KKyAqCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhl IFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYg U0VTU0lPTlZBUklBQkxFX0gKKyNkZWZpbmUgU0VTU0lPTlZBUklBQkxFX0gKKworI2luY2x1ZGUg ImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgi CisjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorCitleHRlcm4gT2JqZWN0QWRkcmVzcyBD cmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpz dG10KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggODZhMjM2YmQ1OGIuLjJi NGM3MzYzZDc0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMzcwLDYgKzIzNzAsNyBAQCB0 eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9UU1RFTVBMQVRFLAogCU9CSkVDVF9UWVBF LAogCU9CSkVDVF9VU0VSX01BUFBJTkcsCisJT0JKRUNUX1ZBUklBQkxFLAogCU9CSkVDVF9WSUVX LAogfSBPYmplY3RUeXBlOwogCkBAIC0zNTUyLDYgKzM1NTMsMjEgQEAgdHlwZWRlZiBzdHJ1Y3Qg QWx0ZXJTdGF0c1N0bXQKIAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiBzdGF0 aXN0aWNzIG9iamVjdCBpcyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisKKy8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQl7Q3JlYXRlfEFsdGVyfSBWQVJJQUJMRSBTdGF0ZW1l bnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3JlYXRl U2Vzc2lvblZhclN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZhcmlhYmxl OwkJLyogdGhlIHZhcmlhYmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJ LyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KKwlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOwor CWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMg Ki8KK30gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICoJCUNyZWF0ZSBGdW5jdGlvbiBTdGF0ZW1lbnQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAppbmRleCBhNGFmM2Y3MTdhMS4uNmY1MTNmMDQyMjUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKQEAgLTQ4Niw2ICs0ODYsNyBAQCBQR19LRVlXT1JEKCJ2YWxpZGF0b3IiLCBWQUxJ REFUT1IsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVl IiwgVkFMVUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi dmFsdWVzIiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgidmFyY2hhciIsIFZBUkNIQVIsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19L RVlXT1JEKCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVTRVJWRURfS0VZ V09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwgVFlQRV9GVU5D X05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggZDI1MGE3 MTRkNTkuLmVhODY5NTRkZGVkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xp c3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtNjgsNiArNjgsNyBA QCBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSQU5TRk9STSwgIkFMVEVSIFRSQU5TRk9STSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJJR0dFUiwgIkFMVEVS IFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RZ UEUsICJBTFRFUiBUWVBFIiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FM VEVSX1VTRVJfTUFQUElORywgIkFMVEVSIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfVkFSSUFCTEUsICJBTFRFUiBWQVJJQUJMRSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVklFVywgIkFMVEVSIFZJ RVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FOQUxZWkUsICJBTkFM WVpFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQkVHSU4sICJCRUdJ TiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMjMsNiArMTI0LDcgQEAgUEdfQ01EVEFHKENN RFRBR19DUkVBVEVfVFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRydWUsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVBVEUgVFJJR0dFUiIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RZUEUsICJDUkVB VEUgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1VT RVJfTUFQUElORywgIkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQ R19DTURUQUcoQ01EVEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJQUJMRSIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcsICJDUkVBVEUgVklF VyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FURSwgIkRF QUxMT0NBVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9D QVRFX0FMTCwgIkRFQUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTE3NSw2 ICsxNzcsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAiRFJPUCBUUkFOU0ZP Uk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJJR0dFUiwg IkRST1AgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJP UF9UWVBFLCAiRFJPUCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19EUk9QX1VTRVJfTUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBWQVJJQUJMRSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVXLCAiRFJPUCBWSUVX IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVDVVRFLCAiRVhFQ1VU RSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYUExBSU4sICJFWFBM QUlOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxz L2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5kZXggZmE3Yzdl MDMyM2IuLjg3ZTFmZTYzNmI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2Fj aGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtMTM5LDYgKzEzOSw3 IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tpbmQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gYm9v bCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNpZCk7CiBleHRlcm4gUmVnUHJvY2VkdXJlIGdl dF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxuYW1lX3JlbGlk KGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxuYW1lc3BhY2UpOworZXh0ZXJuIE9pZAlnZXRf dmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFtZXNwYWNlKTsKIGV4 dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF9u YW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF90eXBlX2lkKE9pZCByZWxp ZCk7CkBAIC0yMTEsNiArMjEyLDkgQEAgZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlvbl9uYW1l KE9pZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNjcmlwdGlv bl9vaWQoY29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFy ICpnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOwogCitl eHRlcm4gY2hhciAqZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOworZXh0ZXJu IE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKTsKKwogI2RlZmlu ZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFs aWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlz IGFuZCBkb21haW5zIG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWlu KHR5cGlkKSAgKGdldF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CmluZGV4IDc1YTA3OGFkYTllLi5j ZDhlNDQxMmZhOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRl bmN5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CkBA IC0xNTEsMyArMTUxLDIwIEBAIG93bmVyIG9mIHR5cGUgZGVwdGVzdF90CiBEUk9QIE9XTkVEIEJZ IHJlZ3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNz X2RlcF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKy0tIGRlcGVuZGVuY3kg b24gdHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFy dHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyB2YXJ0eXBlOworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0VS Uk9SOiAgY2Fubm90IGRyb3AgdHlwZSB2YXJkb21haW4gYmVjYXVzZSBvdGhlciBvYmplY3RzIGRl cGVuZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGMgb2YgY29tcG9zaXRlIHR5cGUgdmFydHlwZSBk ZXBlbmRzIG9uIHR5cGUgdmFyZG9tYWluCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8g ZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBUWVBFIHZhcnR5cGU7CitFUlJP UjogIGNhbm5vdCBkcm9wIHR5cGUgdmFydHlwZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHZh cnR5cGUKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQg b2JqZWN0cyB0b28uCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBF IHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljNzU5NWU5YTQxCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0CkBAIC0wLDAg KzEsMTYzIEBACitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CitDUkVBVEUgVkFSSUFCTEUgZGRs dGVzdF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmRkbHRlc3Rfc2Vz dmFyMDIgQVMgaW50OworQ1JFQVRFIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKK0NSRUFURSBWQVJJ QUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzIEFTIGludDsKK1NFTEVDVCBwZ19p ZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpCisgIEZS T00gcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzZXNzaW9uIHZhcmlhYmxlJywgJ3tkZGx0ZXN0X3Nl c3ZhcjAxfScsICd7fScpOworICAgICAgICAgICAgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJl c3MgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKCJzZXNzaW9uIHZhcmlhYmxlIiwie3B1YmxpYyxkZGx0ZXN0X3Nlc3Zh cjAxfSIse30pCisoMSByb3cpCisKK1NFTEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVz cyhjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpCisgIEZST00gcGdfZ2V0X29iamVjdF9hZGRyZXNz KCdzZXNzaW9uIHZhcmlhYmxlJywgJ3twdWJsaWMsZGRsdGVzdF9zZXN2YXIwMn0nLCAne30nKTsK KyAgICAgICAgICAgIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgi c2Vzc2lvbiB2YXJpYWJsZSIsIntwdWJsaWMsZGRsdGVzdF9zZXN2YXIwMn0iLHt9KQorKDEgcm93 KQorCitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQs IG9ianN1YmlkKQorICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJs ZScsICd7c2VzdmFydGVzdF9kZGwsZGRsdGVzdF9zZXN2YXIwM30nLCAne30nKTsKKyAgICAgICAg ICAgICAgICBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAoInNlc3Npb24gdmFyaWFibGUiLCJ7c2VzdmFydGVzdF9kZGwsZGRsdGVzdF9zZXN2YXIw M30iLHt9KQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDE7CitEUk9Q IFZBUklBQkxFIHB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjAyOworQ1JFQVRFIFRZUEUgc2VzdmFydGVz dF90eXBlX2RkbCBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBET01BSU4gc2VzdmFydGVzdF9k b21haW5fZGRsIEFTIGludDsKK0NSRUFURSBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCAoYSBp bnQsIGIgaW50KTsKKy8qIHByZWZpeCBkZGx0ZXN0XyBzaG91bGQgbm90IGJlIHVzZWQgZXZlciBp biBhbm90aGVyIHRlc3RzICovCitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNCBBUyBz ZXN2YXJ0ZXN0X3R5cGVfZGRsOworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDUgQVMg c2VzdmFydGVzdF9kb21haW5fZGRsOworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDYg QVMgc2VzdmFydGVzdF90YWJsZV9kZGw7CistLSBhZGQgbmV3IGZpZWxkIHRvIGNvbXBvc2l0ZSB2 YWx1ZSBpcyBzdXBwb3J0ZWQsCistLSBjaGFuZ2UgdHlwZSBvZiBmaWVsZCBpcyBwcm9oaWJpdGVk CistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBREQgQVRU UklCVVRFIGMgaW50OworQUxURVIgVEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGwgQUREIENPTFVN TiBjIGludDsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGwg QUxURVIgQVRUUklCVVRFIGIgVFlQRSBudW1lcmljOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlw ZSAic2VzdmFydGVzdF90eXBlX2RkbCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMu ZGRsdGVzdF9zZXN2YXIwNCIgdXNlcyBpdAorQUxURVIgVEFCTEUgc2VzdmFydGVzdF90YWJsZV9k ZGwgQUxURVIgQ09MVU1OIGIgVFlQRSBudW1lcmljOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFi bGUgInNlc3ZhcnRlc3RfdGFibGVfZGRsIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1Ymxp Yy5kZGx0ZXN0X3Nlc3ZhcjA2IiB1c2VzIGl0CitBTFRFUiBET01BSU4gc2VzdmFydGVzdF9kb21h aW5fZGRsIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgZG9t YWluICJzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVi bGljLmRkbHRlc3Rfc2VzdmFyMDUiIHVzZXMgaXQKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUg c2VzdmFydGVzdF90eXBlX2RkbDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlwZSBzZXN2YXJ0ZXN0 X3R5cGVfZGRsIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNl c3Npb24gdmFyaWFibGUgZGRsdGVzdF9zZXN2YXIwNCBkZXBlbmRzIG9uIHR5cGUgc2VzdmFydGVz dF90eXBlX2RkbAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVu ZGVudCBvYmplY3RzIHRvby4KK0RST1AgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0VS Uk9SOiAgY2Fubm90IGRyb3AgdHlwZSBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwgYmVjYXVzZSBvdGhl ciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSBkZGx0ZXN0 X3Nlc3ZhcjA1IGRlcGVuZHMgb24gdHlwZSBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwKK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitE Uk9QIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsOworRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJs ZSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0 CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIGRkbHRlc3Rfc2VzdmFyMDYgZGVwZW5kcyBvbiB0 eXBlIHNlc3ZhcnRlc3RfdGFibGVfZGRsCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8g ZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gY2hlY2sgZXZlbnQgdHJpZ2dlciBz dXBwb3J0CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVw b3J0X2Ryb3BwZWQoKQorUkVUVVJOUyBldmVudF90cmlnZ2VyCitBUyAkJAorREVDTEFSRSByIHJl Y29yZDsKK0JFR0lOCisgIEZPUiByIElOIFNFTEVDVCAqIGZyb20gcGdfZXZlbnRfdHJpZ2dlcl9k cm9wcGVkX29iamVjdHMoKQorICBMT09QCisgICAgSUYgci5jbGFzc2lkID0gJ3BnX3ZhcmlhYmxl Jzo6cmVnY2xhc3MgQU5ECisgICAgICAgci5hZGRyZXNzX25hbWVzWzJdIGxpa2UgJ2RkbHRlc3Rf c2VzdmFyJScKKyAgICBUSEVOCisgICAgICBSQUlTRSBOT1RJQ0UKKyAgICAgICAgICdOT1JNQUw6 IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUgYXJncz0l JywKKyAgICAgICAgIHIub3JpZ2luYWwsIHIubm9ybWFsLCByLmlzX3RlbXBvcmFyeSwgci5vYmpl Y3RfdHlwZSwKKyAgICAgICAgIHIub2JqZWN0X2lkZW50aXR5LCByLmFkZHJlc3NfbmFtZXMsIHIu YWRkcmVzc19hcmdzOworICAgIEVORCBJRjsKKyAgRU5EIExPT1A7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdn ZXJfcmVwb3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcgSU4gKCdEUk9QIFZBUklB QkxFJywgJ0RST1AgU0NIRU1BJykKKyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkKCk7CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDQ7CitO T1RJQ0U6ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBpc3RlbXA9ZiB0eXBlPXNlc3Npb24gdmFy aWFibGUgaWRlbnRpdHk9cHVibGljLmRkbHRlc3Rfc2VzdmFyMDQgbmFtZT17cHVibGljLGRkbHRl c3Rfc2VzdmFyMDR9IGFyZ3M9e30KK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNTsKK05P VElDRTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5cGU9c2Vzc2lvbiB2YXJp YWJsZSBpZGVudGl0eT1wdWJsaWMuZGRsdGVzdF9zZXN2YXIwNSBuYW1lPXtwdWJsaWMsZGRsdGVz dF9zZXN2YXIwNX0gYXJncz17fQorRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA2OworTk9U SUNFOiAgTk9STUFMOiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNzaW9uIHZhcmlh YmxlIGlkZW50aXR5PXB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA2IG5hbWU9e3B1YmxpYyxkZGx0ZXN0 X3Nlc3ZhcjA2fSBhcmdzPXt9CistLSBzaG91bGQgdG8gZmFpbAorRFJPUCBTQ0hFTUEgc2VzdmFy dGVzdF9kZGw7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNjaGVtYSBzZXN2YXJ0ZXN0X2RkbCBiZWNh dXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxl IHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgZGVwZW5kcyBvbiBzY2hlbWEgc2VzdmFy dGVzdF9kZGwKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRl bnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3Rf ZGRsIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUg c2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMworTk9USUNFOiAgTk9STUFMOiBvcmlnPWYg bm9ybWFsPXQgaXN0ZW1wPWYgdHlwZT1zZXNzaW9uIHZhcmlhYmxlIGlkZW50aXR5PXNlc3ZhcnRl c3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgbmFtZT17c2VzdmFydGVzdF9kZGwsZGRsdGVzdF9zZXN2 YXIwM30gYXJncz17fQorRFJPUCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkOworRFJPUCBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVw b3J0X2Ryb3BwZWQoKTsKKy0tIHNob3VsZCBiZSBvaworRFJPUCBUWVBFIHNlc3ZhcnRlc3RfdHlw ZV9kZGw7CitEUk9QIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitEUk9QIFRBQkxFIHNl c3ZhcnRlc3RfdGFibGVfZGRsOworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JFQVRF IFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDcgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSBk ZGx0ZXN0X3Nlc3ZhcjA3IElTICdzb21lIHNlc3Npb24gdmFyaWFibGUgY29tbWVudCc7CitTRUxF Q1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBGUk9NIHBn X3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAnZGRsdGVzdF9zZXN2YXIwNyc7CisgICAgICAgIG9i al9kZXNjcmlwdGlvbiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg c29tZSBzZXNzaW9uIHZhcmlhYmxlIGNvbW1lbnQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBk ZGx0ZXN0X3Nlc3ZhcjA3OworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDggQVMgaW50 OworQUxURVIgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBSRU5BTUUgVE8gZGRsdGVzdF9zZXN2 YXIwOF9yZW5hbWVkOworQ1JFQVRFIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKK0FMVEVSIFZBUklB QkxFIGRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZCBTRVQgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOwor Q1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CitHUkFOVCBBTEwgT04gU0NI RU1BIHNlc3ZhcnRlc3RfZGRsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworU0VUIFJP TEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CistLSBzaG91bGQgZmFpbAorRFJPUCBW QVJJQUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQ7CitFUlJPUjog IG11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0 X3Nlc3ZhcjA4X3JlbmFtZWQKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitBTFRFUiBWQVJJQUJMRSBz ZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgT1dORVIgVE8gcmVncmVzc192 YXJpYWJsZV9vd25lcl9kZGw7CistLSBzaG91bGQgZmFpbAorRFJPUCBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXJfZGRsOworRVJST1I6ICByb2xlICJyZWdyZXNzX3ZhcmlhYmxlX293bmVyX2Rk bCIgY2Fubm90IGJlIGRyb3BwZWQgYmVjYXVzZSBzb21lIG9iamVjdHMgZGVwZW5kIG9uIGl0CitE RVRBSUw6ICBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rf c2VzdmFyMDhfcmVuYW1lZAorcHJpdmlsZWdlcyBmb3Igc2NoZW1hIHNlc3ZhcnRlc3RfZGRsCist LSBzaG91bGQgZmFpbCAtIG5vdCBvbiBzZWFyY2ggcGF0aAorRFJPUCBWQVJJQUJMRSBkZGx0ZXN0 X3Nlc3ZhcjA4X3JlbmFtZWQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgImRkbHRlc3Rfc2Vz dmFyMDhfcmVuYW1lZCIgZG9lcyBub3QgZXhpc3QKK1NFVCBTRUFSQ0hfUEFUSCBUTyAnc2VzdmFy dGVzdF9kZGwnOworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFy MDhfcmVuYW1lZDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gREVG QVVMVDsKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXJfZGRsOworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gREVGQVVMVDsKK0NSRUFURSBW QVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkgQVMgaW50OworQ1JFQVRFIFZB UklBQkxFIElGIE5PVCBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOSBBUyBpbnQ7CitOT1RJQ0U6ICBz ZXNzaW9uIHZhcmlhYmxlICJkZGx0ZXN0X3Nlc3ZhcjA5IiBhbHJlYWR5IGV4aXN0cywgc2tpcHBp bmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDk7CitEUk9QIFZBUklB QkxFIElGIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJs ZSAiZGRsdGVzdF9zZXN2YXIwOSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitDUkVBVEUgU0NI RU1BIHN2YXJ0ZXN0MDFfZGRsIENSRUFURSBWQVJJQUJMRSBzZXN2YXIxMCBBUyBpbnQ7CitDUkVB VEUgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEgQVMgaW50OworQ1JFQVRFIFNDSEVN QSBzdmFydGVzdDAyX2RkbCBDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMTAgQVMgaW50OworLS0gc2hv dWxkIHRvIGZhaWwKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMCBBUyBp bnQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInNlc3ZhcjEwIiBhbHJlYWR5IGV4aXN0cwor QUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEgUkVOQU1FIFRPIHNlc3ZhcjEw OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJzZXN2YXIxMCIgYWxyZWFkeSBleGlzdHMgaW4g c2NoZW1hICJzdmFydGVzdDAxX2RkbCIKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0MDJfZGRsLnNl c3ZhcjEwIFNFVCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGw7CitFUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgInNlc3ZhcjEwIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgInN2YXJ0ZXN0MDFfZGRsIgor RFJPUCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGwgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2Fk ZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24g dmFyaWFibGUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAKK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lv biB2YXJpYWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMQorRFJPUCBTQ0hFTUEgc3ZhcnRlc3Qw Ml9kZGwgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJs ZSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5k ZXggZmJmZmM2N2FlNjAuLjNhYmMxYWNhNWYyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKQEAgLTExNSw3ICsxMTUsNyBAQCB0ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2RpbmcganNv bnBhdGgganNvbnBhdGhfZW5jb2RpbmcganNvbmJfanNvbnBhdGggc3FsanNvbgogIyBOQjogdGVt cC5zcWwgZG9lcyByZWNvbm5lY3RzIHdoaWNoIHRyYW5zaWVudGx5IHVzZSAyIGNvbm5lY3Rpb25z LAogIyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAt LS0tLS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFp biByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1 ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1s Cit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1 bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5 bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25f dmFyaWFibGVzX2RkbAogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxl bCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAppbmRleCA4ZDc0ZWQ3MTIyYy4u NmMxOGI3Zjg0MGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCkBAIC0xMTQsMyAr MTE0LDE3IEBAIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgT1dORUQgQlkgcmVn cmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVw X3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCistLSBkZXBlbmRlbmN5IG9u IHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5 cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgdmFydHlwZTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0RS T1AgVFlQRSB2YXJ0eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZjg0NDQ2OWVjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCkBAIC0wLDAgKzEsMTUwIEBA CitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CisKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nl c3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2YXIwMiBB UyBpbnQ7CitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQ1JFQVRFIFZBUklBQkxFIHNl c3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgQVMgaW50OworCitTRUxFQ1QgcGdfaWRlbnRp Znlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKQorICBGUk9NIHBn X2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScsICd7ZGRsdGVzdF9zZXN2YXIw MX0nLCAne30nKTsKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNz aWQsIG9iamlkLCBvYmpzdWJpZCkKKyAgRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nlc3Np b24gdmFyaWFibGUnLCAne3B1YmxpYyxkZGx0ZXN0X3Nlc3ZhcjAyfScsICd7fScpOworCitTRUxF Q1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1Ymlk KQorICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScsICd7c2Vz dmFydGVzdF9kZGwsZGRsdGVzdF9zZXN2YXIwM30nLCAne30nKTsKKworRFJPUCBWQVJJQUJMRSBk ZGx0ZXN0X3Nlc3ZhcjAxOworRFJPUCBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2YXIwMjsK KworQ1JFQVRFIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBUyAoYSBpbnQsIGIgaW50KTsKK0NS RUFURSBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsIEFTIGludDsKK0NSRUFURSBUQUJMRSBz ZXN2YXJ0ZXN0X3RhYmxlX2RkbCAoYSBpbnQsIGIgaW50KTsKKworLyogcHJlZml4IGRkbHRlc3Rf IHNob3VsZCBub3QgYmUgdXNlZCBldmVyIGluIGFub3RoZXIgdGVzdHMgKi8KK0NSRUFURSBWQVJJ QUJMRSBkZGx0ZXN0X3Nlc3ZhcjA0IEFTIHNlc3ZhcnRlc3RfdHlwZV9kZGw7CitDUkVBVEUgVkFS SUFCTEUgZGRsdGVzdF9zZXN2YXIwNSBBUyBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitDUkVBVEUg VkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNiBBUyBzZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKKworLS0g YWRkIG5ldyBmaWVsZCB0byBjb21wb3NpdGUgdmFsdWUgaXMgc3VwcG9ydGVkLAorLS0gY2hhbmdl IHR5cGUgb2YgZmllbGQgaXMgcHJvaGliaXRlZAorCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZ UEUgc2VzdmFydGVzdF90eXBlX2RkbCBBREQgQVRUUklCVVRFIGMgaW50OworQUxURVIgVEFCTEUg c2VzdmFydGVzdF90YWJsZV9kZGwgQUREIENPTFVNTiBjIGludDsKKworLS0gc2hvdWxkIGZhaWwK K0FMVEVSIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBTFRFUiBBVFRSSUJVVEUgYiBUWVBFIG51 bWVyaWM7CitBTFRFUiBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBBTFRFUiBDT0xVTU4gYiBU WVBFIG51bWVyaWM7CitBTFRFUiBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsIEFERCBDSEVD Syh2YWx1ZSA8PiAxMDApOworCistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHNlc3ZhcnRlc3Rf dHlwZV9kZGw7CitEUk9QIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitEUk9QIFRBQkxF IHNlc3ZhcnRlc3RfdGFibGVfZGRsOworCistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBvcnQK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJv cHBlZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3JkOwor QkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3BwZWRf b2JqZWN0cygpCisgIExPT1AKKyAgICBJRiByLmNsYXNzaWQgPSAncGdfdmFyaWFibGUnOjpyZWdj bGFzcyBBTkQKKyAgICAgICByLmFkZHJlc3NfbmFtZXNbMl0gbGlrZSAnZGRsdGVzdF9zZXN2YXIl JworICAgIFRIRU4KKyAgICAgIFJBSVNFIE5PVElDRQorICAgICAgICAgJ05PUk1BTDogb3JpZz0l IG5vcm1hbD0lIGlzdGVtcD0lIHR5cGU9JSBpZGVudGl0eT0lIG5hbWU9JSBhcmdzPSUnLAorICAg ICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90eXBl LAorICAgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5hZGRyZXNz X2FyZ3M7CisgICAgRU5EIElGOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CisKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3Jl cG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJQUJMRScs ICdEUk9QIFNDSEVNQScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJpZ2dlcl9y ZXBvcnRfZHJvcHBlZCgpOworCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDQ7CitEUk9Q IFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDU7CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFy MDY7CisKKy0tIHNob3VsZCB0byBmYWlsCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKKwor LS0gc2hvdWxkIGJlIG9rCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbCBDQVNDQURFOworCitE Uk9QIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3Bw ZWQ7CisKK0RST1AgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCk7 CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGw7CitEUk9Q IERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitEUk9QIFRBQkxFIHNlc3ZhcnRlc3RfdGFi bGVfZGRsOworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUg ZGRsdGVzdF9zZXN2YXIwNyBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIGRkbHRlc3Rfc2Vz dmFyMDcgSVMgJ3NvbWUgc2Vzc2lvbiB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRh bG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUg V0hFUkUgdmFybmFtZSA9ICdkZGx0ZXN0X3Nlc3ZhcjA3JzsKK0RST1AgVkFSSUFCTEUgZGRsdGVz dF9zZXN2YXIwNzsKKworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDggQVMgaW50Owor QUxURVIgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBSRU5BTUUgVE8gZGRsdGVzdF9zZXN2YXIw OF9yZW5hbWVkOworCitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQUxURVIgVkFSSUFC TEUgZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkIFNFVCBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CisK K0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCitHUkFOVCBBTEwgT04g U0NIRU1BIHNlc3ZhcnRlc3RfZGRsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCitT RVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKKworLS0gc2hvdWxkIGZhaWwK K0RST1AgVkFSSUFCTEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkOwor CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitBTFRFUiBWQVJJQUJMRSBzZXN2YXJ0ZXN0X2RkbC5k ZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgT1dORVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9k ZGw7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9k ZGw7CisKKy0tIHNob3VsZCBmYWlsIC0gbm90IG9uIHNlYXJjaCBwYXRoCitEUk9QIFZBUklBQkxF IGRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZDsKKworU0VUIFNFQVJDSF9QQVRIIFRPICdzZXN2YXJ0 ZXN0X2RkbCc7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3Zh cjA4X3JlbmFtZWQ7CisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyBERUZBVUxUOworCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKKworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCitTRVQgbG9nX3N0YXRlbWVudCBUTyBERUZBVUxU OworCitDUkVBVEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5IEFTIGlu dDsKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkgQVMgaW50 OworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKK0RST1AgVkFSSUFC TEUgSUYgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDk7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Qw MV9kZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBz dmFydGVzdDAxX2RkbC5zZXN2YXIxMSBBUyBpbnQ7CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0MDJf ZGRsIENSRUFURSBWQVJJQUJMRSBzZXN2YXIxMCBBUyBpbnQ7CisKKy0tIHNob3VsZCB0byBmYWls CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAgQVMgaW50OworQUxURVIg VkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEgUkVOQU1FIFRPIHNlc3ZhcjEwOworQUxU RVIgVkFSSUFCTEUgc3ZhcnRlc3QwMl9kZGwuc2VzdmFyMTAgU0VUIFNDSEVNQSBzdmFydGVzdDAx X2RkbDsKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGwgQ0FTQ0FERTsKK0RST1AgU0NIRU1B IHN2YXJ0ZXN0MDJfZGRsIENBU0NBREU7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGJl MDgxZTk2NDEzLi42NzA1NjY1MWY3ZiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTU2 MCw2ICs1NjAsNyBAQCBDcmVhdGVSb2xlU3RtdAogQ3JlYXRlU2NoZW1hU3RtdAogQ3JlYXRlU2No ZW1hU3RtdENvbnRleHQKIENyZWF0ZVNlcVN0bXQKK0NyZWF0ZVNlc3Npb25WYXJTdG10CiBDcmVh dGVTdGF0c1N0bXQKIENyZWF0ZVN0bXQKIENyZWF0ZVN0bXRDb250ZXh0Ci0tIAoyLjUwLjEKCg== --000000000000184a40063c441cb3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250813-0001-introduce-new-class-catalog-pg_variable.patch" Content-Disposition: attachment; filename="v20250813-0001-introduce-new-class-catalog-pg_variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_meaczijt14 RnJvbSBjZGU5YjE1ZDgzOTkxZDJiYzIyOWVlMzM0NjEyOGNhMzA2YzM1NTk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMDg6MzA6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDAx LzE1XSBpbnRyb2R1Y2UgbmV3IGNsYXNzIChjYXRhbG9nKSBwZ192YXJpYWJsZQoKVGhpcyB0YWJs ZSBob2xkcyBtZXRhZGF0YSBhYm91dCBzZXNzaW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5CmNvbW1h bmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJvcHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUu Ci0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgfCAxMzMgKysrKysr KysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgIHwg ICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgIHwgICAxICsKIHNy Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgIHwgMTY4ICsrKysrKysrKysrKysr KysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgIHwgICAz ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICB8ICA5NiArKysrKysrKysrKysrKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQgfCAgIDQgKwogc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgfCAgIDIgKwogOSBmaWxlcyBjaGFuZ2VkLCA0 MDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggZGE4YTc4ODI1ODAu LmIzM2YzZjA2ZDcxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMzY5LDYgKzM2OSwxMSBAQAogICAgICAg PGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdXNlci1tYXBwaW5nIj48c3RydWN0bmFt ZT5wZ191c2VyX21hcHBpbmc8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50 cnk+bWFwcGluZ3Mgb2YgdXNlcnMgdG8gZm9yZWlnbiBzZXJ2ZXJzPC9lbnRyeT4KICAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LXZhcmlhYmxlIj48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L2xpbms+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT5zZXNzaW9uIHZhcmlhYmxlczwvZW50cnk+CisgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KQEAgLTk3ODUsNCArOTc5 MCwxMzIgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZn dDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgPC90YWJsZT4KICA8L3NlY3QxPgog CisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1l PnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJj YXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgIDxwcmltYXJ5PnBnX3ZhcmlhYmxlPC9wcmltYXJ5Pgor ICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBn X3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQKKyAgIHNlc3Np b24gdmFyaWFibGVzLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3Ru YW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAg Y29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3Jp cHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgor CisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+dmFydHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAo cmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUiPjxzdHJ1Y3RuYW1lPnBn X3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4p CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgT0lEIG9mIHRoZSB2YXJp YWJsZSdzIGRhdGEgdHlwZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVf bHNuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdfbHNuPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgTFNOIG9mIHRoZSB0cmFuc2FjdGlvbiB3aGVyZSB0aGUgdmFyaWFi bGUgd2FzIGNyZWF0ZWQuCisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVj dGZpZWxkPiBhbmQKKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gdG9nZXRo ZXIgZm9ybSB0aGUgYWxsLXRpbWUgdW5pcXVlCisgICAgICAgaWRlbnRpZmllciAoPHN0cnVjdGZp ZWxkPm9pZDwvc3RydWN0ZmllbGQ+IGFsb25lIGlzIG5vdCBlbm91Z2gsIHNpbmNlCisgICAgICAg b2JqZWN0IGlkZW50aWZpZXJzIGNhbiBnZXQgcmV1c2VkKS4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+dmFybmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRh bG9nLXBnLW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMg dGhpcyB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5r ZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1l PjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlw bW9kPC9zdHJ1Y3RmaWVsZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBw bGllZCBhdCB2YXJpYWJsZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0K KyAgICAgICBsZW5ndGggb2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMg cGFzc2VkIHRvCisgICAgICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0 aCBjb2VyY2lvbiBmdW5jdGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJl IC0xIGZvciB0eXBlcyB0aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0 cnVjdGZpZWxkPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0 cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhl IHZhcmlhYmxlLCBvciB6ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNv bGxhdGFibGUgZGF0YSB0eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8 L3N0cnVjdGZpZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlu a2VuZD0ic3FsLWdyYW50Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2Ui Lz4KKyAgICAgICBmb3IgZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8 L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCBjMDkwMDk0ZWQwOC4uMmMyMGQ2MGRiMTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNDUsNiArNDUsNyBAQCBPQkpTID0gXAogCXBnX3NoZGVw ZW5kLm8gXAogCXBnX3N1YnNjcmlwdGlvbi5vIFwKIAlwZ190eXBlLm8gXAorCXBnX3ZhcmlhYmxl Lm8gXAogCXN0b3JhZ2UubyBcCiAJdG9hc3RpbmcubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApp bmRleCAxOTU4ZWE5MjM4YS4uZWQ0NGM4NzdmY2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApA QCAtMzIsNiArMzIsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdwZ19zaGRlcGVu ZC5jJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5jJywKICAgJ3BnX3R5cGUuYycsCisgICdwZ192YXJp YWJsZS5jJywKICAgJ3N0b3JhZ2UuYycsCiAgICd0b2FzdGluZy5jJywKICkKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmQ2 YTI5YTc5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zhcmlh YmxlLmMKQEAgLTAsMCArMSwxNjggQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Zh cmlhYmxlLmMKKyAqCQlzZXNzaW9uIHZhcmlhYmxlcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJCXNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgorI2luY2x1ZGUgImNh dGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNz LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgorI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3Zhcmlh YmxlIHRhYmxlCisgKi8KK09iamVjdEFkZHJlc3MKK2NyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2UsCisJCQkJT2lkIHZhclR5cGUsCisJCQkJ aW50MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25lciwKKwkJCQlPaWQgdmFyQ29sbGF0aW9u LAorCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlOYW1lRGF0YQl2YXJuYW1lOworCWJvb2wJ CW51bGxzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Zhcmlh YmxlXTsKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1cGxlCXR1cDsKKwlUdXBsZURlc2MJdHVwZGVz YzsKKwlPYmplY3RBZGRyZXNzIG15c2VsZiwKKwkJCQlyZWZlcmVuY2VkOworCU9iamVjdEFkZHJl c3NlcyAqYWRkcnM7CisJT2lkCQkJdmFyaWQ7CisKKwlBc3NlcnQodmFyTmFtZSk7CisJQXNzZXJ0 KE9pZElzVmFsaWQodmFyTmFtZXNwYWNlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyVHlwZSkp OworCUFzc2VydChPaWRJc1ZhbGlkKHZhck93bmVyKSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZh cmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIENoZWNrIGZv ciBkdXBsaWNhdGVzLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCByZWFsbHkgcHJldmVudAorCSAq IGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRvIHByb3ZpZGUgbmljZXIgZXJyb3IgbWVzc2Fn ZSBpbiBjb21tb24KKwkgKiBjYXNlLiBUaGUgcmVhbCBwcm90ZWN0aW9uIGlzIHRoZSB1bmlxdWUg a2V5IG9uIHRoZSBjYXRhbG9nLgorCSAqLworCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIoVkFS SUFCTEVOQU1FTlNQLAorCQkJCQkJCSAgUG9pbnRlckdldERhdHVtKHZhck5hbWUpLAorCQkJCQkJ CSAgT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpKSkKKwl7CisJCWlmIChpZl9ub3RfZXhp c3RzKQorCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkg ZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJ IGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJ CXZhck5hbWUpKSk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJfQorCisJbWVtc2V0KHZhbHVlcywgMCwg c2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOwor CisJbmFtZXN0cmNweSgmdmFybmFtZSwgdmFyTmFtZSk7CisKKwl2YXJpZCA9IEdldE5ld09pZFdp dGhJbmRleChyZWwsIFZhcmlhYmxlT2lkSW5kZXhJZCwgQW51bV9wZ192YXJpYWJsZV9vaWQpOwor CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZh cmlkKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjcmVhdGVfbHNuIC0gMV0gPSBMU05H ZXREYXR1bShHZXRYTG9nSW5zZXJ0UmVjUHRyKCkpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFj ZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bSh2YXJUeXBlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9 IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJv d25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlv bik7CisKKwludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKworCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUo dHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJl c3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0aW9uSWQsIHZhck5hbWVzcGFjZSk7CisJYWRk X2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRl bmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgVHlwZVJl bGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNl ZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBjb2xsYXRpb24gKi8KKwlpZiAoT2lkSXNW YWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNvbGxhdGlvbiAhPSBERUZBVUxUX0NPTExBVElP Tl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbGxhdGlvblJlbGF0 aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJl bmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMo Jm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlmcmVlX29iamVjdF9hZGRyZXNz ZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLworCXJlY29yZERlcGVuZGVu Y3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVyKTsKKworCS8qIGRl cGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCisJcmVjb3JkRGVwZW5kZW5jeU9uQ3VycmVudEV4dGVu c2lvbigmbXlzZWxmLCBmYWxzZSk7CisKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJLyogcG9z dCBjcmVhdGlvbiBob29rIGZvciBuZXcgZnVuY3Rpb24gKi8KKwlJbnZva2VPYmplY3RQb3N0Q3Jl YXRlSG9vayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwKTsKKworCXRhYmxlX2Nsb3NlKHJl bCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCisvKgorICogRHJv cCB2YXJpYWJsZSBieSBPSUQKKyAqLwordm9pZAorRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQp Cit7CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVu KFZhcmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hT eXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAm dHVwLT50X3NlbGYpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwl0YWJsZV9jbG9zZShy ZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9NYWtlZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMmJiYzc4MDVm ZTMuLmY5ODc2MGRlNjM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxl CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTgxLDcgKzgxLDggQEAgQ0FU QUxPR19IRUFERVJTIDo9IFwKIAlwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCBcCiAJcGdfcHVi bGljYXRpb25fcmVsLmggXAogCXBnX3N1YnNjcmlwdGlvbi5oIFwKLQlwZ19zdWJzY3JpcHRpb25f cmVsLmgKKwlwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX3ZhcmlhYmxlLmgKIAogR0VORVJB VEVEX0hFQURFUlMgOj0gJChDQVRBTE9HX0hFQURFUlM6JS5oPSVfZC5oKQogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9t ZXNvbi5idWlsZAppbmRleCBlYzFjZjQ2N2Y2Zi4uODEzOThlZmE3YzkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9t ZXNvbi5idWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19w dWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdwZ19zdWJzY3Jp cHRpb25fcmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMgVGhlIC5kYXQgZmlsZXMg d2UgbmVlZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHkuCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE1ZjUz MDg5NGM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Zhcmlh YmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0ZW0gY2F0YWxv ZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgorICogTk9URVMK KyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBz Y2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNp Zm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNpbmNsdWRlICJh Y2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVf ZC5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJ cGdfdmFyaWFibGUgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVm IHN0cnVjdCBGb3JtRGF0YV9wZ192YXJpYWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitD QVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9p ZDsJCQkvKiBvaWQgKi8KKworCS8qIE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJs ZSdzIHR5cGUgKi8KKwlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKgor CSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0ZV9sc25dLgorCSAqCisJICog VGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5cGUgc2hvdWxkIGJlIGF0IGFu IGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBidXQgYmVmb3JlIGFueSBjb2x1 bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRyCXZhcmNyZWF0ZV9sc247CisK KwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFtZURhdGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBu YW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJsZSBjbGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFj ZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisKKwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9p ZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFy aWFibGUncyB0eXBlICovCisJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkv KiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlPaWQJCQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQo MCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJM RU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2Vz cyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0JCXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8p OworCisjZW5kaWYKK30gRm9ybURhdGFfcGdfdmFyaWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0t LS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1 cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHRoZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KKyAq IC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBGb3JtRGF0YV9wZ192YXJpYWJsZSAqRm9y bV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9UT0FTVChwZ192YXJpYWJsZSwgOTIyMywgOTIyNCk7 CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfdmFyaWFibGVfb2lkX2luZGV4LCA5MjI1 LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3ZhcmlhYmxlLCBidHJlZShvaWQgb2lkX29wcykpOwor REVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDkyMjYs IFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBnX3ZhcmlhYmxlLCBidHJlZSh2YXJuYW1lIG5hbWVf b3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFTkFN RU5TUCwgcGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShW QVJJQUJMRU9JRCwgcGdfdmFyaWFibGVfb2lkX2luZGV4LCA4KTsKKworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCisJCQkJCQkJCQkgT2lk IHZhck5hbWVzcGFjZSwKKwkJCQkJCQkJCSBPaWQgdmFyVHlwZSwKKwkJCQkJCQkJCSBpbnQzMiB2 YXJUeXBtb2QsCisJCQkJCQkJCQkgT2lkIHZhck93bmVyLAorCQkJCQkJCQkJIE9pZCB2YXJDb2xs YXRpb24sCisJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKworZXh0ZXJuIHZvaWQgRHJv cFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpOworCisjZW5kaWYJCQkJCQkJLyogUEdfVkFSSUFCTEVf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAyMTVlYjg5OWJl My4uZDk5NTMzMjE0MDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBA IC0yNjYsMyArMjY2LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJk YmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0 aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19z dWJzY3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElD RTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtv aWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFydHlwZX0gPT4gcGdfdHlwZSB7 b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zhcm5hbWVzcGFjZX0gPT4gcGdf bmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFyb3duZXJ9 ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcmNv bGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IGU2ZjJlOTNiMmQ2Li5iZTA4MWU5NjQxMyAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTkwOSw2ICs5MDksNyBAQCBGb3JtRGF0YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3Rz X3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zv cm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19h Z2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTk2OCw2ICs5NjksNyBAQCBGb3JtX3BnX3RzX3BhcnNl cgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGlu ZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZy ZWVMaXN0RGF0YQotLSAKMi41MC4xCgo= --000000000000184a40063c441cb3--