Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vpxDg-001qBR-0G for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Feb 2026 23:32:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vpxDe-001ack-3A for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Feb 2026 23:32:35 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vpxDe-001acc-1g for pgsql-hackers@lists.postgresql.org; Tue, 10 Feb 2026 23:32:35 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vpxDc-000000003p5-4B7D for pgsql-hackers@postgresql.org; Tue, 10 Feb 2026 23:32:35 +0000 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-65a1974d3dfso1720605a12.3 for ; Tue, 10 Feb 2026 15:32:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1770766352; x=1771371152; darn=postgresql.org; h=in-reply-to:references:cc:from:to:subject:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=nHvfAXXO0tMMhj5ou+To96Ia2+K5lyP8S8zXizPpdK0=; b=k08O/uo7twYzCoeHRp8X1RGNns/WuwDpbY6hRuqpTXfgsA4XcmFKWUQGwZTNRYrare jEukInsd8HXiQBnpMnqckZyzWJl01yIkEdwtYqsgKP5B3mUL2wLJ4t6hOC9bsWy12yyz 7GMPMh+8qFfMe8eNr/Eo1DaaFJ1y9ZJFQrfDyAZNqsOcWRYWgz12vhHS13h27XpBnaaS +tk6iJL0VPD2L5VqC96amre0NO6ed6hyNefAs3mcfKx/ciFeQcQWTtjmvNBNW67B9XHL h7ofu3Ce8DTKd4F9DRNh8hJQapd4oJV0MCYb23O/NGaOCyGP7DvDwSIjucuJUPVGd0Gh Vmtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770766352; x=1771371152; h=in-reply-to:references:cc:from:to:subject:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=nHvfAXXO0tMMhj5ou+To96Ia2+K5lyP8S8zXizPpdK0=; b=FN9wvHQ90O9WmZgSy2Lqzd1U1D1CrD/GwMevEAhkXrN1lE7mhcFRM63CqcDEis7bvb M9vowDnU9ui+NneZ3nDb0rqz5/0a2uEzVuqBgSvsUtefKw15gOwPKNbg0mev9KncvS1K 39bR5+21hSSEPuTUlbSOKM6NrwSrsd8gsPjpVsEODJb8nD7cdq2llBSQN7UmklabQHmn K0YrP66W9OVVvtPtzoA9p8N7rkb0UUd75ooYd2v/eHMMQX04Y+Ii2hS0FjKJSO2h2sD5 QLvqsrqRXpnSUDKi3ex1fnkZcetPlrJYqKHlhMsb0yigHB/t2vIt2b7BSZCvkiuJl5G2 ezzQ== X-Forwarded-Encrypted: i=1; AJvYcCVP2yG9yhDAYRrTBmHl4PW/Emhhw7ACZuGv7SA9xbgkUxxKxGrEPfnBrBgYK7UD9uJ0rPtQilXeZuHYaHwr@postgresql.org X-Gm-Message-State: AOJu0Yw7PnjBQBFCt24AdV2OkWSY1kWq98L/zqhRL/It+w4924WAHZvW Sz3L/tIb4e+jFsm6gwG6aigTOhUxKB438gB1nSrAXHL190UhFcu5BL88RZkluOgCAns= X-Gm-Gg: AZuq6aIB35EQQAhFmW5S7ntHifJm/PHJiKY1hR60XC4Lu4s2pWFrRWS/zlzCM8GnTtf Kagm+pA3SY1tYRyfQM1y/8s94RePh3khZr9GgV2dKdI/b0PRmnne+2/65oMKCrPX+ALZF/9KQHv Dfb1yUUycw6M/4tkcIdVklMsn2zYX7d06jHeyw8ejK5t2+9U6BAW4e5Obda+7Vx15tUXIJfDpvE fk0w8qiYlJpesqAEo94pHoM6NHgoquzXrq8E0wcAPpMGx3IXLSvnwZ+8WWwBEeQRUtNcJ4xrfea ishK8qsm4OzPXFa6Z8JaEkyZs5QEZBWvGohJ1IS9d7N3ALW8GhTeIxVDo/MutY1YFaNhyeqpf0w z2U8qrK76lNF7zNlHnDQLJM6l99eB8w1jtRbAMnM0oQVuvQz4W6i6wI+uFMjXBLzBVOfWXrRcN/ 35YBNKSZYGr2SY0OgvFxVTHSMTBG/Lxy2czvYRANaZs+i5o5Y= X-Received: by 2002:a05:6402:35cd:b0:658:60d:c0a6 with SMTP id 4fb4d7f45d1cf-65a3fdfc300mr72497a12.12.1770766351692; Tue, 10 Feb 2026 15:32:31 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-65a3ceb13casm104111a12.6.2026.02.10.15.32.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 10 Feb 2026 15:32:30 -0800 (PST) Content-Type: multipart/mixed; boundary=6b4d6db3bb26733560a525a9ad26021b941a389413c576d3d03d20df2a5c Mime-Version: 1.0 Date: Wed, 11 Feb 2026 00:32:29 +0100 Message-Id: Subject: Re: Extension security improvement: Add support for extensions with an owned schema To: "Jelte Fennema-Nio" , "Robert Haas" From: "Jelte Fennema-Nio" Cc: "Julien Rouhaud" , "Artem Gavrilov" , "Tomas Vondra" , "David G. Johnston" , "Jeff Davis" , "PostgreSQL-development" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <585e996c-a5c6-4e61-acc4-d92b7a1458ea@vondra.me> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --6b4d6db3bb26733560a525a9ad26021b941a389413c576d3d03d20df2a5c Content-Type: multipart/alternative; boundary=37b5ebe88feb6787594bcbd9a1306c4dab9bb9617cb5cb2b185323f61bcc --37b5ebe88feb6787594bcbd9a1306c4dab9bb9617cb5cb2b185323f61bcc Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Wed Feb 11, 2026 at 12:19 AM CET, Jelte Fennema-Nio wrote: > Added now in v8 Ugh, I didn't include some of the new files in the attached patch. Fixed now with v9. --37b5ebe88feb6787594bcbd9a1306c4dab9bb9617cb5cb2b185323f61bcc-- --6b4d6db3bb26733560a525a9ad26021b941a389413c576d3d03d20df2a5c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v9-0001-Add-support-for-extensions-with-an-owned-schema.patch Content-Type: text/x-patch; charset=utf-8; name=v9-0001-Add-support-for-extensions-with-an-owned-schema.patch RnJvbSAzZTA3MDIwYjRkNjRhMDljZjk3ZTA2NzczNmQxNzNjYTliMjU1MDMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDQgT2N0IDIwMjQgMjI6MzQ6NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIHY5 XSBBZGQgc3VwcG9ydCBmb3IgZXh0ZW5zaW9ucyB3aXRoIGFuIG93bmVkIHNjaGVtYQoKV3JpdGlu ZyB0aGUgc3FsIG1pZ3JhdGlvbiBzY3JpcHRzIHRoYXQgYXJlIHJ1biBieSBDUkVBVEUgRVhURU5T SU9OIGFuZApBTFRFUiBFWFRFTlNJT04gVVBEQVRFIGFyZSBzZWN1cml0eSBtaW5lZmllbGRzIGZv ciBleHRlbnNpb24gYXV0aG9ycy4KT25lIGJpZyByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCBzZWFy Y2hfcGF0aCBpcyBzZXQgdG8gdGhlIHNjaGVtYSBvZiB0aGUKZXh0ZW5zaW9uIHdoaWxlIHJ1bm5p bmcgdGhlc2Ugc2NyaXB0cywgYW5kIHRodXMgaWYgYSB1c2VyIHdpdGggbG93ZXIKcHJpdmlsZWdl cyBjYW4gY3JlYXRlIGZ1bmN0aW9ucyBvciBvcGVyYXRvcnMgaW4gdGhhdCBzY2hlbWEgdGhleSBj YW4gZG8KYWxsIGtpbmRzIG9mIHNlYXJjaF9wYXRoIGNvbmZ1c2lvbiBhdHRhY2tzIGlmIG5vdCBl dmVyeSBmdW5jdGlvbiBhbmQKb3BlcmF0b3IgdGhhdCBpcyB1c2VkIGluIHRoZSBzY3JpcHQgaXMg c2NoZW1hIHF1YWxpZmllZC4gV2hpbGUgZG9pbmcKc3VjaCBzY2hlbWEgcXVhbGlmaWNhdGlvbiBp cyBwb3NzaWJsZSwgaXQgcmVsaWVzIG9uIHRoZSBhdXRob3IgdG8gbmV2ZXIKbWFrZSBhIG1pc3Rh a2UgaW4gYW55IG9mIHRoZSBzcWwgZmlsZXMuIEFuZCBzYWRseSBodW1hbnMgaGF2ZSBhIHRlbmRl bmN5CnRvIG1ha2UgbWlzdGFrZXMuCgpUaGlzIHBhdGNoIGFkZHMgYSBuZXcgIm93bmVkX3NjaGVt YSIgb3B0aW9uIHRvIHRoZSBleHRlbnNpb24gY29udHJvbApmaWxlIHRoYXQgY2FuIGJlIHNldCB0 byB0cnVlIHRvIGluZGljYXRlIHRoYXQgdGhpcyBleHRlbnNpb24gd2FudHMgdG8Kb3duIHRoZSBz Y2hlbWEgaW4gd2hpY2ggaXQgaXMgaW5zdGFsbGVkLiBXaGF0IHRoYXQgbWVhbnMgaXMgdGhhdCB0 aGUKc2NoZW1hIHNob3VsZCBub3QgZXhpc3QgYmVmb3JlIGNyZWF0aW5nIHRoZSBleHRlbnNpb24s IGFuZCB3aWxsIGJlCmNyZWF0ZWQgZHVyaW5nIGV4dGVuc2lvbiBjcmVhdGlvbi4gVGhpcyB0aHVz IGdpdmVzIHRoZSBleHRlbnNpb24gYXV0aG9yCmFuIGVhc3kgd2F5IHRvIHVzZSBhIHNhZmUgc2Vh cmNoX3BhdGgsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGFsbCBvYmplY3RzCnRvIGJlIGdyb3VwZWQg dG9nZXRoZXIgaW4gYSBzY2hlbWEuIFRoZSBpbXBsZW1lbnRhdGlvbiBhbHNvIGhhcyB0aGUKcGxl YXNhbnQgc2lkZSBlZmZlY3QgdGhhdCB0aGUgc2NoZW1hIHdpbGwgYmUgYXV0b21hdGljYWxseSBk cm9wcGVkIHdoZW4KdGhlIGV4dGVuc2lvbiBpcyBkcm9wcGVkLgotLS0KIGRvYy9zcmMvc2dtbC9l eHRlbmQuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArKwogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfZXh0ZW5zaW9uLnNnbWwgICAgICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9jb21t YW5kcy9leHRlbnNpb24uYyAgICAgICAgICAgICAgfCA0MjkgKysrKysrKysrKysrKy0tLS0tCiBz cmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMgICAgfCAgNDUgKy0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICA1NCArKy0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2V4dGVuc2lvbi5oICAgICAgICAgICAgfCAgIDEgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5j bHVkZS9jb21tYW5kcy9leHRlbnNpb24uaCAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy90ZXN0 L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL01ha2VmaWxlICAgICB8ICAxMyArLQogLi4uL2V4cGVj dGVkL3Rlc3RfZXh0ZW5zaW9ucy5vdXQgICAgICAgICAgICAgIHwgMTU3ICsrKysrKysKIHNyYy90 ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL21lc29uLmJ1aWxkICB8ICAxMSArCiAuLi4vdGVz dF9leHRlbnNpb25zL3NxbC90ZXN0X2V4dGVuc2lvbnMuc3FsICAgfCAgNzUgKysrCiAuLi4vdGVz dF9leHRfb3duZWRfc2NoZW1hLS0xLjAtLTEuMS5zcWwgICAgICAgfCAgIDMgKwogLi4uL3Rlc3Rf ZXh0X293bmVkX3NjaGVtYS0tMS4wLnNxbCAgICAgICAgICAgIHwgICAyICsKIC4uLi90ZXN0X2V4 dF9vd25lZF9zY2hlbWEuY29udHJvbCAgICAgICAgICAgICB8ICAgNSArCiAuLi5leHRfb3duZWRf c2NoZW1hX25vc3VwZXJ1c2VyLS0xLjAtLTEuMS5zcWwgfCAgIDUgKwogLi4udGVzdF9leHRfb3du ZWRfc2NoZW1hX25vc3VwZXJ1c2VyLS0xLjAuc3FsIHwgICAzICsKIC4uLi90ZXN0X2V4dF9vd25l ZF9zY2hlbWFfbm9zdXBlcnVzZXIuY29udHJvbCB8ICAgNSArCiAuLi50ZXN0X2V4dF9vd25lZF9z Y2hlbWFfcmVsb2NhdGFibGUtLTEuMC5zcWwgfCAgIDIgKwogLi4uL3Rlc3RfZXh0X293bmVkX3Nj aGVtYV9yZWxvY2F0YWJsZS5jb250cm9sIHwgICA0ICsKIC4uLmVzdF9leHRfb3duZWRfc2NoZW1h X3RydXN0ZWQtLTEuMC0tMS4xLnNxbCB8ICAgMyArCiAuLi4vdGVzdF9leHRfb3duZWRfc2NoZW1h X3RydXN0ZWQtLTEuMC5zcWwgICAgfCAgIDMgKwogLi4uL3Rlc3RfZXh0X293bmVkX3NjaGVtYV90 cnVzdGVkLmNvbnRyb2wgICAgIHwgICA1ICsKIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9wZ19kdW1w L3QvMDAxX2Jhc2UucGwgICB8ICAzMiArKwogMjUgZmlsZXMgY2hhbmdlZCwgNzYxIGluc2VydGlv bnMoKyksIDE0MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWEtLTEuMC0tMS4xLnNxbAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3Rf ZXh0X293bmVkX3NjaGVtYS0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21v ZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS5jb250cm9sCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRf b3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyLS0xLjAtLTEuMS5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFf bm9zdXBlcnVzZXItLTEuMC5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIuY29udHJv bAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rl c3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVt YV9yZWxvY2F0YWJsZS5jb250cm9sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3RydXN0ZWQtLTEuMC0tMS4x LnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25z L3Rlc3RfZXh0X293bmVkX3NjaGVtYV90cnVzdGVkLS0xLjAuc3FsCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1h X3RydXN0ZWQuY29udHJvbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9leHRlbmQuc2dtbCBi L2RvYy9zcmMvc2dtbC9leHRlbmQuc2dtbAppbmRleCA2M2M1ZWM2ZDFlYi4uZGRmYjRlYmZiZjUg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9leHRlbmQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv ZXh0ZW5kLnNnbWwKQEAgLTgxNCw2ICs4MTQsNDAgQEAgUkVUVVJOUyBhbnljb21wYXRpYmxlIEFT IC4uLgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0iZXh0ZW5kLWV4dGVuc2lvbnMtZmlsZXMtb3duZWQtc2NoZW1hIj4KKyAg ICAgIDx0ZXJtPjx2YXJuYW1lPm93bmVkX3NjaGVtYTwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48 L3R5cGU+KTwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg QW4gZXh0ZW5zaW9uIHNob3VsZCBzZXQgPGZpcnN0dGVybT5vd25lZF9zY2hlbWE8L2ZpcnN0dGVy bT4gdG8KKyAgICAgICAgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gaW4gaXRzIGNvbnRyb2wgZmls ZSBpZiB0aGUgZXh0ZW5zaW9uIHdhbnRzIGEKKyAgICAgICAgZGVkaWNhdGVkIHNjaGVtYSBmb3Ig aXRzIG9iamVjdHMuIFN1Y2ggYSBzY2hlbWEgc2hvdWxkIG5vdCBleGlzdCB5ZXQgYXQKKyAgICAg ICAgdGhlIHRpbWUgb2YgZXh0ZW5zaW9uIGNyZWF0aW9uLCBhbmQgd2lsbCBiZSBjcmVhdGVkIGF1 dG9tYXRpY2FsbHkgYnkKKyAgICAgICAgPGxpdGVyYWw+Q1JFQVRFIEVYVEVOU0lPTjwvbGl0ZXJh bD4uIFRoZSBkZWZhdWx0IGlzCisgICAgICAgIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiwgaS5l LiwgdGhlIGV4dGVuc2lvbiBjYW4gYmUgaW5zdGFsbGVkIGludG8gYW4KKyAgICAgICAgZXhpc3Rp bmcgc2NoZW1hLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSGF2aW5n IGEgc2NoZW1hIG93bmVkIGJ5IHRoZSBleHRlbnNpb24gY2FuIG1ha2UgaXQgbXVjaCBlYXNpZXIg dG8KKyAgICAgICAgcmVhc29uIGFib3V0IHBvc3NpYmxlIDxsaXRlcmFsPnNlYXJjaF9wYXRoPC9s aXRlcmFsPiBpbmplY3Rpb24gYXR0YWNrcy4KKyAgICAgICAgRm9yIGluc3RhbmNlIHdpdGggYW4g b3duZWQgc2NoZW1hLCBpdCBpcyBnZW5lcmFsbHkgc2FmZSB0byBzZXQgdGhlCisgICAgICAgIDxs aXRlcmFsPnNlYXJjaF9wYXRoPC9saXRlcmFsPiBvZiBhIDxsaXRlcmFsPlNFQ1VSSVRZIERFRklO RVI8L2xpdGVyYWw+CisgICAgICAgIGZ1bmN0aW9uIHRvIHRoZSBzY2hlbWEgb2YgdGhlIGV4dGVu c2lvbi4gV2hpbGUgd2l0aG91dCBhbiBvd25lZCBzY2hlbWEKKyAgICAgICAgaXQgbWlnaHQgbm90 IGJlIHNhZmUgdG8gZG8gc28sIGJlY2F1c2UgYSBtYWxpY2lvdXMgdXNlciBjb3VsZCBpbnNlcnQK KyAgICAgICAgb2JqZWN0cyBpbiB0aGF0IHNjaGVtYSBhbmQgdGh1cyA8bGluaworICAgICAgICBs aW5rZW5kPSJzcWwtY3JlYXRlZnVuY3Rpb24tc2VjdXJpdHkiPiBjYXVzZSBtYWxpY2lvdXMgdG8g YmUgZXhlY3V0ZWQKKyAgICAgICAgYXMgc3VwZXJ1c2VyPC9saW5rPi4gU2ltaWxhcmx5LCBoYXZp bmcgYW4gb3duZWQgc2NoZW1hIGNhbiBtYWtlIGl0IHNhZmUKKyAgICAgICAgYnkgZGVmYXVsdCB0 byBleGVjdXRlIGdlbmVyYWwtcHVycG9zZSBTUUwgaW4gdGhlIGV4dGVuc2lvbiBzY3JpcHQsCisg ICAgICAgIGJlY2F1c2UgdGhlIHNlYXJjaF9wYXRoIG5vdyBvbmx5IGNvbnRhaW5zIHRydXN0ZWQg c2NoZW1hcy4gV2l0aG91dCBhbgorICAgICAgICBvd25lZCBzY2hlbWEgaXQncyA8bGluayBsaW5r ZW5kPSJleHRlbmQtZXh0ZW5zaW9ucy1zZWN1cml0eS1zY3JpcHRzIj4KKyAgICAgICAgcmVjb21t ZW5kZWQgdG8gbWFudWFsbHkgY2hhbmdlIHRoZSBzZWFyY2hfcGF0aDwvbGluaz4uCisgICAgICAg PC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBBcGFydCBmcm9tIHRoZSBzZWN1cml0eSBj b25zaWRlcmF0aW9ucywgaGF2aW5nIGFuIG93bmVkIHNjaGVtYSBjYW4gaGVscAorICAgICAgICBw cmV2ZW50IG5hbWluZyBjb25mbGljdHMgYmV0d2VlbiBvYmplY3RzIG9mIGRpZmZlcmVudCBleHRl bnNpb25zLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlz dGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImV4dGVuZC1leHRlbnNpb25zLWZpbGVz LXNjaGVtYSI+CiAgICAgICA8dGVybT48dmFybmFtZT5zY2hlbWE8L3Zhcm5hbWU+ICg8dHlwZT5z dHJpbmc8L3R5cGU+KTwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2V4dGVuc2lvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfZXh0ZW5zaW9uLnNnbWwKaW5kZXggNzEzYWJkOWM0OTQuLmFiMTI1ZDU2MjYzIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9leHRlbnNpb24uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9leHRlbnNpb24uc2dtbApAQCAtMTA0LDcgKzEwNCwxMSBAQCBDUkVB VEUgRVhURU5TSU9OIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5leHRlbnNpb25fbmFtZQogICAgICAgIDxwYXJhPgogICAgICAgICBUaGUgbmFtZSBvZiB0 aGUgc2NoZW1hIGluIHdoaWNoIHRvIGluc3RhbGwgdGhlIGV4dGVuc2lvbidzCiAgICAgICAgIG9i amVjdHMsIGdpdmVuIHRoYXQgdGhlIGV4dGVuc2lvbiBhbGxvd3MgaXRzIGNvbnRlbnRzIHRvIGJl Ci0gICAgICAgIHJlbG9jYXRlZC4gIFRoZSBuYW1lZCBzY2hlbWEgbXVzdCBhbHJlYWR5IGV4aXN0 LgorICAgICAgICByZWxvY2F0ZWQuIFdoZXRoZXIgdGhpcyBzY2hlbWEgc2hvdWxkIGFscmVhZHkg ZXhpc3Qgb3Igbm90IGRlcGVuZHMgb24KKyAgICAgICAgdGhlIHZhbHVlIG9mIDxsaXRlcmFsPm93 bmVkX3NjaGVtYTwvbGl0ZXJhbD4gaW4gdGhlIGV4dGVuc2lvbnMgY29udHJvbAorICAgICAgICBm aWxlOiBJZiBpdCdzIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LCB0aGUgc2NoZW1hIG11c3QKKyAg ICAgICAgPGVtcGhhc2lzPm5vdDwvZW1waGFzaXM+IGV4aXN0OyBpZiBpdCdzIDxsaXRlcmFsPmZh bHNlPC9saXRlcmFsPiBpdAorICAgICAgICBtdXN0IGV4aXN0LgogICAgICAgICBJZiBub3Qgc3Bl Y2lmaWVkLCBhbmQgdGhlIGV4dGVuc2lvbidzIGNvbnRyb2wgZmlsZSBkb2VzIG5vdCBzcGVjaWZ5 IGEKICAgICAgICAgc2NoZW1hIGVpdGhlciwgdGhlIGN1cnJlbnQgZGVmYXVsdCBvYmplY3QgY3Jl YXRpb24gc2NoZW1hIGlzIHVzZWQuCiAgICAgICAgPC9wYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNp b24uYwppbmRleCA4MWYyNDYxNWQ1MS4uMDNiM2RlMzU3YmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVu c2lvbi5jCkBAIC05NCw2ICs5NCw4IEBAIHR5cGVkZWYgc3RydWN0IEV4dGVuc2lvbkNvbnRyb2xG aWxlCiAJCQkJCQkJCQkgKiBNT0RVTEVfUEFUSE5BTUUgKi8KIAljaGFyCSAgICpjb21tZW50OwkJ LyogY29tbWVudCwgaWYgYW55ICovCiAJY2hhcgkgICAqc2NoZW1hOwkJCS8qIHRhcmdldCBzY2hl bWEgKGFsbG93ZWQgaWYgIXJlbG9jYXRhYmxlKSAqLworCWJvb2wJCW93bmVkX3NjaGVtYTsJLyog aWYgdGhlIHNjaGVtYSBzaG91bGQgYmUgb3duZWQgYnkgdGhlCisJCQkJCQkJCSAqIGV4dGVuc2lv biAqLwogCWJvb2wJCXJlbG9jYXRhYmxlOwkvKiBpcyBBTFRFUiBFWFRFTlNJT04gU0VUIFNDSEVN QSBzdXBwb3J0ZWQ/ICovCiAJYm9vbAkJc3VwZXJ1c2VyOwkJLyogbXVzdCBiZSBzdXBlcnVzZXIg dG8gaW5zdGFsbD8gKi8KIAlib29sCQl0cnVzdGVkOwkJLyogYWxsb3cgYmVjb21pbmcgc3VwZXJ1 c2VyIG9uIHRoZSBmbHk/ICovCkBAIC03OTAsNiArNzkyLDE0IEBAIHBhcnNlX2V4dGVuc2lvbl9j b250cm9sX2ZpbGUoRXh0ZW5zaW9uQ29udHJvbEZpbGUgKmNvbnRyb2wsCiAJCXsKIAkJCWNvbnRy b2wtPnNjaGVtYSA9IHBzdHJkdXAoaXRlbS0+dmFsdWUpOwogCQl9CisJCWVsc2UgaWYgKHN0cmNt cChpdGVtLT5uYW1lLCAib3duZWRfc2NoZW1hIikgPT0gMCkKKwkJeworCQkJaWYgKCFwYXJzZV9i b29sKGl0ZW0tPnZhbHVlLCAmY29udHJvbC0+b3duZWRfc2NoZW1hKSkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJ CQkJCQkgZXJybXNnKCJwYXJhbWV0ZXIgXCIlc1wiIHJlcXVpcmVzIGEgQm9vbGVhbiB2YWx1ZSIs CisJCQkJCQkJCWl0ZW0tPm5hbWUpKSk7CisJCX0KIAkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5h bWUsICJyZWxvY2F0YWJsZSIpID09IDApCiAJCXsKIAkJCWlmICghcGFyc2VfYm9vbChpdGVtLT52 YWx1ZSwgJmNvbnRyb2wtPnJlbG9jYXRhYmxlKSkKQEAgLTEyMzMsNiArMTI0Myw0NCBAQCBleHRl bnNpb25faXNfdHJ1c3RlZChFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCkKIAlyZXR1cm4g ZmFsc2U7CiB9CiAKKy8qCisgKiBFbmZvcmNlIHN1cGVydXNlciByZXF1aXJlbWVudHMgZm9yIGV4 dGVuc2lvbiBvcGVyYXRpb25zLgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQgc3dp dGNoIHRvIHN1cGVydXNlciBmb3IgdHJ1c3RlZCBleHRlbnNpb25zLgorICogVGhyb3dzIGFuIGVy cm9yIGlmIHN1cGVydXNlciBpcyByZXF1aXJlZCBidXQgbm90IGF2YWlsYWJsZS4KKyAqCisgKiBU aGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBjaG9vc2luZyB0aGUgYXBw cm9wcmlhdGUKKyAqIGNvbnRyb2wgZmlsZSAoaW5jbHVkaW5nIGFueSBzZWNvbmRhcnkgY29udHJv bCBmaWxlcyBmb3IgdXBkYXRlcykuCisgKi8KK3N0YXRpYyBib29sCitjaGVja19leHRlbnNpb25f c3VwZXJ1c2VyX3JlcXVpcmVtZW50cyhFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwKKwkJ CQkJCQkJCSAgIGNvbnN0IGNoYXIgKmZyb21fdmVyc2lvbikKK3sKKwlpZiAoY29udHJvbC0+c3Vw ZXJ1c2VyICYmICFzdXBlcnVzZXIoKSkKKwl7CisJCWlmIChleHRlbnNpb25faXNfdHJ1c3RlZChj b250cm9sKSkKKwkJCXJldHVybiB0cnVlOworCQllbHNlIGlmIChmcm9tX3ZlcnNpb24gPT0gTlVM TCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5U X1BSSVZJTEVHRSksCisJCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSBl eHRlbnNpb24gXCIlc1wiIiwKKwkJCQkJCQljb250cm9sLT5uYW1lKSwKKwkJCQkJIGNvbnRyb2wt PnRydXN0ZWQKKwkJCQkJID8gZXJyaGludCgiTXVzdCBoYXZlIENSRUFURSBwcml2aWxlZ2Ugb24g Y3VycmVudCBkYXRhYmFzZSB0byBjcmVhdGUgdGhpcyBleHRlbnNpb24uIikKKwkJCQkJIDogZXJy aGludCgiTXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIHRoaXMgZXh0ZW5zaW9uLiIpKSk7CisJ CWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJ RU5UX1BSSVZJTEVHRSksCisJCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIHRvIHVwZGF0 ZSBleHRlbnNpb24gXCIlc1wiIiwKKwkJCQkJCQljb250cm9sLT5uYW1lKSwKKwkJCQkJIGNvbnRy b2wtPnRydXN0ZWQKKwkJCQkJID8gZXJyaGludCgiTXVzdCBoYXZlIENSRUFURSBwcml2aWxlZ2Ug b24gY3VycmVudCBkYXRhYmFzZSB0byB1cGRhdGUgdGhpcyBleHRlbnNpb24uIikKKwkJCQkJIDog ZXJyaGludCgiTXVzdCBiZSBzdXBlcnVzZXIgdG8gdXBkYXRlIHRoaXMgZXh0ZW5zaW9uLiIpKSk7 CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICogRXhlY3V0ZSB0aGUgYXBwcm9wcmlh dGUgc2NyaXB0IGZpbGUgZm9yIGluc3RhbGxpbmcgb3IgdXBkYXRpbmcgdGhlIGV4dGVuc2lvbgog ICoKQEAgLTEyNjEsMjcgKzEzMDksNyBAQCBleGVjdXRlX2V4dGVuc2lvbl9zY3JpcHQoT2lkIGV4 dGVuc2lvbk9pZCwgRXh0ZW5zaW9uQ29udHJvbEZpbGUgKmNvbnRyb2wsCiAJICogaGVyZSBzbyB0 aGF0IHRoZSBjb250cm9sIGZsYWdzIGFyZSBjb3JyZWN0bHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBy aWdodAogCSAqIHNjcmlwdChzKSBpZiB0aGV5IGhhcHBlbiB0byBiZSBzZXQgaW4gc2Vjb25kYXJ5 IGNvbnRyb2wgZmlsZXMuCiAJICovCi0JaWYgKGNvbnRyb2wtPnN1cGVydXNlciAmJiAhc3VwZXJ1 c2VyKCkpCi0JewotCQlpZiAoZXh0ZW5zaW9uX2lzX3RydXN0ZWQoY29udHJvbCkpCi0JCQlzd2l0 Y2hfdG9fc3VwZXJ1c2VyID0gdHJ1ZTsKLQkJZWxzZSBpZiAoZnJvbV92ZXJzaW9uID09IE5VTEwp Ci0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9Q UklWSUxFR0UpLAotCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgZXh0 ZW5zaW9uIFwiJXNcIiIsCi0JCQkJCQkJY29udHJvbC0+bmFtZSksCi0JCQkJCSBjb250cm9sLT50 cnVzdGVkCi0JCQkJCSA/IGVycmhpbnQoIk11c3QgaGF2ZSBDUkVBVEUgcHJpdmlsZWdlIG9uIGN1 cnJlbnQgZGF0YWJhc2UgdG8gY3JlYXRlIHRoaXMgZXh0ZW5zaW9uLiIpCi0JCQkJCSA6IGVycmhp bnQoIk11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSB0aGlzIGV4dGVuc2lvbi4iKSkpOwotCQll bHNlCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVO VF9QUklWSUxFR0UpLAotCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCB0byB1cGRhdGUg ZXh0ZW5zaW9uIFwiJXNcIiIsCi0JCQkJCQkJY29udHJvbC0+bmFtZSksCi0JCQkJCSBjb250cm9s LT50cnVzdGVkCi0JCQkJCSA/IGVycmhpbnQoIk11c3QgaGF2ZSBDUkVBVEUgcHJpdmlsZWdlIG9u IGN1cnJlbnQgZGF0YWJhc2UgdG8gdXBkYXRlIHRoaXMgZXh0ZW5zaW9uLiIpCi0JCQkJCSA6IGVy cmhpbnQoIk11c3QgYmUgc3VwZXJ1c2VyIHRvIHVwZGF0ZSB0aGlzIGV4dGVuc2lvbi4iKSkpOwot CX0KKwlzd2l0Y2hfdG9fc3VwZXJ1c2VyID0gY2hlY2tfZXh0ZW5zaW9uX3N1cGVydXNlcl9yZXF1 aXJlbWVudHMoY29udHJvbCwgZnJvbV92ZXJzaW9uKTsKIAogCWZpbGVuYW1lID0gZ2V0X2V4dGVu c2lvbl9zY3JpcHRfZmlsZW5hbWUoY29udHJvbCwgZnJvbV92ZXJzaW9uLCB2ZXJzaW9uKTsKIApA QCAtMTgyMCw2ICsxODQ4LDE2NCBAQCBmaW5kX2luc3RhbGxfcGF0aChMaXN0ICpldmlfbGlzdCwg RXh0ZW5zaW9uVmVyc2lvbkluZm8gKmV2aV90YXJnZXQsCiAJcmV0dXJuIGV2aV9zdGFydDsKIH0K IAorLyoKKyAqIENyZWF0ZSBhIHNjaGVtYSB3aXRoIHRoZSBnaXZlbiBuYW1lLCBhcyBwYXJ0IG9m IENSRUFURSBFWFRFTlNJT04uCisgKi8KK3N0YXRpYyBPaWQKK0NyZWF0ZVNjaGVtYUZvckV4dGVu c2lvbihjaGFyICpzY2hlbWFOYW1lKQoreworCisJQ3JlYXRlU2NoZW1hU3RtdCAqY3NzdG10ID0g bWFrZU5vZGUoQ3JlYXRlU2NoZW1hU3RtdCk7CisKKwljc3N0bXQtPnNjaGVtYW5hbWUgPSBzY2hl bWFOYW1lOworCWNzc3RtdC0+YXV0aHJvbGUgPSBOVUxMOwkvKiB3aWxsIGJlIGNyZWF0ZWQgYnkg Y3VycmVudCB1c2VyICovCisJY3NzdG10LT5zY2hlbWFFbHRzID0gTklMOworCWNzc3RtdC0+aWZf bm90X2V4aXN0cyA9IGZhbHNlOworCUNyZWF0ZVNjaGVtYUNvbW1hbmQoY3NzdG10LCAiKGdlbmVy YXRlZCBDUkVBVEUgU0NIRU1BIGNvbW1hbmQpIiwKKwkJCQkJCS0xLCAtMSk7CisKKwkvKgorCSAq IENyZWF0ZVNjaGVtYUNvbW1hbmQgaW5jbHVkZXMgQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQsIHNv IG5ldyBzY2hlbWEgaXMKKwkgKiBub3cgdmlzaWJsZS4KKwkgKi8KKwlyZXR1cm4gZ2V0X25hbWVz cGFjZV9vaWQoc2NoZW1hTmFtZSwgZmFsc2UpOworfQorCisvKgorICogQ3JlYXRlIGFuIG93bmVk IHNjaGVtYSB3aXRoIHRoZSBnaXZlbiBuYW1lLCBhcyBwYXJ0IG9mIENSRUFURSBFWFRFTlNJT04s IGFuZAorICogZmFpbHMgaWYgdGhlIHNjaGVtYSBhbHJlYWR5IGV4aXN0LgorICovCitzdGF0aWMg T2lkCitDcmVhdGVPd25lZFNjaGVtYUZvckV4dGVuc2lvbihjaGFyICpzY2hlbWFOYW1lKQorewor CS8qIEZpbmQgb3IgY3JlYXRlIHRoZSBzY2hlbWEgaW4gY2FzZSBpdCBkb2VzIG5vdCBleGlzdC4g Ki8KKwlPaWQJCQlzY2hlbWFPaWQgPSBnZXRfbmFtZXNwYWNlX29pZChzY2hlbWFOYW1lLCB0cnVl KTsKKworCWlmIChPaWRJc1ZhbGlkKHNjaGVtYU9pZCkpCisJeworCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX1NDSEVNQSksCisJCQkJIGVycm1zZygic2No ZW1hIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQlzY2hlbWFOYW1lKSwKKwkJCQkgZXJy aGludCgiRHJvcCBzY2hlbWEgXCIlc1wiIG9yIHNwZWNpZnkgYW5vdGhlciBzY2hlbWEgdXNpbmcg Q1JFQVRFIEVYVEVOU0lPTiAuLi4gU0NIRU1BIC4uLiIsIHNjaGVtYU5hbWUpKSk7CisJfQorCisJ cmV0dXJuIENyZWF0ZVNjaGVtYUZvckV4dGVuc2lvbihzY2hlbWFOYW1lKTsKK30KKworLyoKKyAq IEdldHMgb3IgY3JlYXRlcyB0aGUgc2NoZW1hIHRoYW4gYW4gZXh0ZW5zaW9uIHNob3VsZCBiZSBj cmVhdGVkIGluLgorICoKKyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgc2NoZW1hIGFuZCB1cGRh dGVzIHNjaGVtYU5hbWUgdG8gdGhlIG5hbWUgb2YgdGhlIHNjaGVtYS4KKyAqLworc3RhdGljIE9p ZAorR2V0T3JDcmVhdGVTY2hlbWFGb3JFeHRlbnNpb24oY2hhciAqKnNjaGVtYU5hbWUsIEV4dGVu c2lvbkNvbnRyb2xGaWxlICpjb250cm9sLCBib29sIGNhc2NhZGUpCit7CisJLyoKKwkgKiBUaGUg c2ltcGxlc3QgY2FzZSBpcyB3aGVuIHRoZSB1c2VyIHByb3ZpZGVzIGEgc2NoZW1hIG5hbWUuCisJ ICovCisJaWYgKCpzY2hlbWFOYW1lKQorCXsKKwkJT2lkCQkJc2NoZW1hT2lkOworCisJCWlmICgh Y29udHJvbC0+b3duZWRfc2NoZW1hKQorCQl7CisJCQkvKgorCQkJICogRm9yIG5vbi1vd25lZCBz Y2hlbWFzLCB0aGlzIHNjaGVtYSBtdXN0IGFscmVhZHkgZXhpc3QuIFdlIHdhbnQKKwkJCSAqIHRv IGNoZWNrIHRoaXMgbm93LCBzbyBpdCBmYWlscyBldmVuIGlmIHdlIGJhaWwgb3V0IG9mIHRoaXMK KwkJCSAqIGJsb2NrIGR1ZSB0byB0aGUgQ0FTQ0FERSBsb2dpYy4KKwkJCSAqLworCQkJc2NoZW1h T2lkID0gZ2V0X25hbWVzcGFjZV9vaWQoKnNjaGVtYU5hbWUsIGZhbHNlKTsKKwkJfQorCisJCWlm IChjb250cm9sLT5zY2hlbWEgJiYgc3RyY21wKGNvbnRyb2wtPnNjaGVtYSwgKnNjaGVtYU5hbWUp ICE9IDApCisJCXsKKwkJCS8qCisJCQkgKiBUaGUgZXh0ZW5zaW9uIGlzIG5vdCByZWxvY2F0YWJs ZSBhbmQgdGhlIGF1dGhvciBnYXZlIHVzIGEKKwkJCSAqIHNjaGVtYSBmb3IgaXQuCisJCQkgKgor CQkJICogVW5sZXNzIENBU0NBREUgcGFyYW1ldGVyIHdhcyBnaXZlbiwgaXQncyBhbiBlcnJvciB0 byBnaXZlIGEKKwkJCSAqIHNjaGVtYSBkaWZmZXJlbnQgZnJvbSBjb250cm9sLT5zY2hlbWEgaWYg Y29udHJvbC0+c2NoZW1hIGlzCisJCQkgKiBzcGVjaWZpZWQuCisJCQkgKi8KKwkJCWlmICghY2Fz Y2FkZSkKKwkJCXsKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiZXh0ZW5zaW9uIFwiJXNcIiBt dXN0IGJlIGluc3RhbGxlZCBpbiBzY2hlbWEgXCIlc1wiIiwKKwkJCQkJCQkJY29udHJvbC0+bmFt ZSwKKwkJCQkJCQkJY29udHJvbC0+c2NoZW1hKSwKKwkJCQkJCSBlcnJoaW50KCJEbyBub3Qgc3Bl Y2lmeSBTQ0hFTUEgd2hlbiBydW5uaW5nIENSRUFURSBFWFRFTlNJT04gZm9yIGV4dGVuc2lvbiBc IiVzXCIiLCBjb250cm9sLT5uYW1lKSkpOworCQkJfQorCisJCQkvKgorCQkJICogSWYgdGhlIHNj aGVtYSBtaXNtYXRjaGVzIGFuZCBDQVNDQURFIHdhcyBnaXZlbiwgd2UgcHJldGVuZCB0aGUKKwkJ CSAqIHVzZXIgZGlkIG5vdCBzcGVjaWZ5IGEgc2NoZW1hIGFuZCB1c2UgdGhlIG5vcm1hbCBsb2dp YyBiZWxvdyB0bworCQkJICogZ2V0IG9yIGNyZWF0ZSB0aGUgc2NoZW1hIGZyb20gdGhlIGNvbnRy b2wgZmlsZS4KKwkJCSAqLworCQl9CisJCWVsc2UgaWYgKGNvbnRyb2wtPm93bmVkX3NjaGVtYSkK KwkJeworCQkJcmV0dXJuIENyZWF0ZU93bmVkU2NoZW1hRm9yRXh0ZW5zaW9uKCpzY2hlbWFOYW1l KTsKKwkJfQorCQllbHNlCisJCXsKKwkJCXJldHVybiBzY2hlbWFPaWQ7CisJCX0KKwl9CisKKwlp ZiAoY29udHJvbC0+c2NoZW1hKQorCXsKKwkJT2lkCQkJc2NoZW1hT2lkOworCisJCSpzY2hlbWFO YW1lID0gY29udHJvbC0+c2NoZW1hOworCisJCWlmIChjb250cm9sLT5vd25lZF9zY2hlbWEpCisJ CXsKKwkJCXJldHVybiBDcmVhdGVPd25lZFNjaGVtYUZvckV4dGVuc2lvbihjb250cm9sLT5zY2hl bWEpOworCQl9CisKKwkJLyogRmluZCBvciBjcmVhdGUgdGhlIHNjaGVtYSBpbiBjYXNlIGl0IGRv ZXMgbm90IGV4aXN0LiAqLworCQlzY2hlbWFPaWQgPSBnZXRfbmFtZXNwYWNlX29pZChjb250cm9s LT5zY2hlbWEsIHRydWUpOworCQlpZiAoT2lkSXNWYWxpZChzY2hlbWFPaWQpKQorCQl7CisJCQly ZXR1cm4gc2NoZW1hT2lkOworCQl9CisJCXJldHVybiBDcmVhdGVTY2hlbWFGb3JFeHRlbnNpb24o Y29udHJvbC0+c2NoZW1hKTsKKwl9CisKKwlpZiAoY29udHJvbC0+b3duZWRfc2NoZW1hKQorCXsK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9TQ0hFTUEp LAorCQkJCSBlcnJtc2coIm5vIHNjaGVtYSBoYXMgYmVlbiBzZWxlY3RlZCB0byBjcmVhdGUgaW4i KSkpOworCX0KKworCXsKKwkJLyoKKwkJICogTmVpdGhlciB1c2VyIG5vciBhdXRob3Igb2YgdGhl IGV4dGVuc2lvbiBzcGVjaWZpZWQgc2NoZW1hOyB1c2UgdGhlCisJCSAqIGN1cnJlbnQgZGVmYXVs dCBjcmVhdGlvbiBuYW1lc3BhY2UsIHdoaWNoIGlzIHRoZSBmaXJzdCBleHBsaWNpdAorCQkgKiBl bnRyeSBpbiB0aGUgc2VhcmNoX3BhdGguCisJCSAqLworCQlMaXN0CSAgICpzZWFyY2hfcGF0aCA9 IGZldGNoX3NlYXJjaF9wYXRoKGZhbHNlKTsKKwkJT2lkCQkJc2NoZW1hT2lkOworCisJCWlmIChz ZWFyY2hfcGF0aCA9PSBOSUwpIC8qIG5vdGhpbmcgdmFsaWQgaW4gc2VhcmNoX3BhdGg/ICovCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9TQ0hFTUEp LAorCQkJCQkgZXJybXNnKCJubyBzY2hlbWEgaGFzIGJlZW4gc2VsZWN0ZWQgdG8gY3JlYXRlIGlu IikpKTsKKwkJc2NoZW1hT2lkID0gbGluaXRpYWxfb2lkKHNlYXJjaF9wYXRoKTsKKwkJKnNjaGVt YU5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUoc2NoZW1hT2lkKTsKKwkJaWYgKCpzY2hlbWFOYW1l ID09IE5VTEwpCS8qIHJlY2VudGx5LWRlbGV0ZWQgbmFtZXNwYWNlPyAqLworCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfU0NIRU1BKSwKKwkJCQkJIGVy cm1zZygibm8gc2NoZW1hIGhhcyBiZWVuIHNlbGVjdGVkIHRvIGNyZWF0ZSBpbiIpKSk7CisKKwkJ bGlzdF9mcmVlKHNlYXJjaF9wYXRoKTsKKwkJcmV0dXJuIHNjaGVtYU9pZDsKKwl9Cit9CisKIC8q CiAgKiBDUkVBVEUgRVhURU5TSU9OIHdvcmtlcgogICoKQEAgLTE4NDksNiArMjAzNSw5IEBAIENy ZWF0ZUV4dGVuc2lvbkludGVybmFsKGNoYXIgKmV4dGVuc2lvbk5hbWUsCiAJT2lkCQkJZXh0ZW5z aW9uT2lkOwogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAlMaXN0Q2VsbCAgICpsYzsKKwlib29s CQlzd2l0Y2hfdG9fc3VwZXJ1c2VyID0gZmFsc2U7CisJT2lkCQkJc2F2ZV91c2VyaWQgPSAwOwor CWludAkJCXNhdmVfc2VjX2NvbnRleHQgPSAwOwogCiAJLyoKIAkgKiBSZWFkIHRoZSBwcmltYXJ5 IGNvbnRyb2wgZmlsZS4gIE5vdGUgd2UgYXNzdW1lIHRoYXQgaXQgZG9lcyBub3QgY29udGFpbgpA QCAtMTkxNyw3NyArMjEwNiwyNSBAQCBDcmVhdGVFeHRlbnNpb25JbnRlcm5hbChjaGFyICpleHRl bnNpb25OYW1lLAogCWNvbnRyb2wgPSByZWFkX2V4dGVuc2lvbl9hdXhfY29udHJvbF9maWxlKHBj b250cm9sLCB2ZXJzaW9uTmFtZSk7CiAKIAkvKgotCSAqIERldGVybWluZSB0aGUgdGFyZ2V0IHNj aGVtYSB0byBpbnN0YWxsIHRoZSBleHRlbnNpb24gaW50bworCSAqIEZvciB0cnVzdGVkIGV4dGVu c2lvbnMgd2l0aCBvd25lZCBzY2hlbWFzLCB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgc2NoZW1hCisJ ICogYXMgc3VwZXJ1c2VyIHRvIGVuc3VyZSBwcm9wZXIgb3duZXJzaGlwLgogCSAqLwotCWlmIChz Y2hlbWFOYW1lKQotCXsKLQkJLyogSWYgdGhlIHVzZXIgaXMgZ2l2aW5nIHVzIHRoZSBzY2hlbWEg bmFtZSwgaXQgbXVzdCBleGlzdCBhbHJlYWR5LiAqLwotCQlzY2hlbWFPaWQgPSBnZXRfbmFtZXNw YWNlX29pZChzY2hlbWFOYW1lLCBmYWxzZSk7Ci0JfQotCi0JaWYgKGNvbnRyb2wtPnNjaGVtYSAh PSBOVUxMKQorCWlmIChjb250cm9sLT5vd25lZF9zY2hlbWEpCiAJewotCQkvKgotCQkgKiBUaGUg ZXh0ZW5zaW9uIGlzIG5vdCByZWxvY2F0YWJsZSBhbmQgdGhlIGF1dGhvciBnYXZlIHVzIGEgc2No ZW1hCi0JCSAqIGZvciBpdC4KLQkJICoKLQkJICogVW5sZXNzIENBU0NBREUgcGFyYW1ldGVyIHdh cyBnaXZlbiwgaXQncyBhbiBlcnJvciB0byBnaXZlIGEgc2NoZW1hCi0JCSAqIGRpZmZlcmVudCBm cm9tIGNvbnRyb2wtPnNjaGVtYSBpZiBjb250cm9sLT5zY2hlbWEgaXMgc3BlY2lmaWVkLgotCQkg Ki8KLQkJaWYgKHNjaGVtYU5hbWUgJiYgc3RyY21wKGNvbnRyb2wtPnNjaGVtYSwgc2NoZW1hTmFt ZSkgIT0gMCAmJgotCQkJIWNhc2NhZGUpCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coImV4dGVuc2lv biBcIiVzXCIgbXVzdCBiZSBpbnN0YWxsZWQgaW4gc2NoZW1hIFwiJXNcIiIsCi0JCQkJCQkJY29u dHJvbC0+bmFtZSwKLQkJCQkJCQljb250cm9sLT5zY2hlbWEpKSk7Ci0KLQkJLyogQWx3YXlzIHVz ZSB0aGUgc2NoZW1hIGZyb20gY29udHJvbCBmaWxlIGZvciBjdXJyZW50IGV4dGVuc2lvbi4gKi8K LQkJc2NoZW1hTmFtZSA9IGNvbnRyb2wtPnNjaGVtYTsKLQotCQkvKiBGaW5kIG9yIGNyZWF0ZSB0 aGUgc2NoZW1hIGluIGNhc2UgaXQgZG9lcyBub3QgZXhpc3QuICovCi0JCXNjaGVtYU9pZCA9IGdl dF9uYW1lc3BhY2Vfb2lkKHNjaGVtYU5hbWUsIHRydWUpOwotCi0JCWlmICghT2lkSXNWYWxpZChz Y2hlbWFPaWQpKQorCQlzd2l0Y2hfdG9fc3VwZXJ1c2VyID0gY2hlY2tfZXh0ZW5zaW9uX3N1cGVy dXNlcl9yZXF1aXJlbWVudHMoY29udHJvbCwgTlVMTCk7CisJCWlmIChzd2l0Y2hfdG9fc3VwZXJ1 c2VyKQogCQl7Ci0JCQlDcmVhdGVTY2hlbWFTdG10ICpjc3N0bXQgPSBtYWtlTm9kZShDcmVhdGVT Y2hlbWFTdG10KTsKLQotCQkJY3NzdG10LT5zY2hlbWFuYW1lID0gc2NoZW1hTmFtZTsKLQkJCWNz c3RtdC0+YXV0aHJvbGUgPSBOVUxMOwkvKiB3aWxsIGJlIGNyZWF0ZWQgYnkgY3VycmVudCB1c2Vy ICovCi0JCQljc3N0bXQtPnNjaGVtYUVsdHMgPSBOSUw7Ci0JCQljc3N0bXQtPmlmX25vdF9leGlz dHMgPSBmYWxzZTsKLQkJCUNyZWF0ZVNjaGVtYUNvbW1hbmQoY3NzdG10LCAiKGdlbmVyYXRlZCBD UkVBVEUgU0NIRU1BIGNvbW1hbmQpIiwKLQkJCQkJCQkJLTEsIC0xKTsKLQotCQkJLyoKLQkJCSAq IENyZWF0ZVNjaGVtYUNvbW1hbmQgaW5jbHVkZXMgQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQsIHNv IG5ldwotCQkJICogc2NoZW1hIGlzIG5vdyB2aXNpYmxlLgotCQkJICovCi0JCQlzY2hlbWFPaWQg PSBnZXRfbmFtZXNwYWNlX29pZChzY2hlbWFOYW1lLCBmYWxzZSk7CisJCQlHZXRVc2VySWRBbmRT ZWNDb250ZXh0KCZzYXZlX3VzZXJpZCwgJnNhdmVfc2VjX2NvbnRleHQpOworCQkJU2V0VXNlcklk QW5kU2VjQ29udGV4dChCT09UU1RSQVBfU1VQRVJVU0VSSUQsCisJCQkJCQkJCSAgIHNhdmVfc2Vj X2NvbnRleHQgfCBTRUNVUklUWV9MT0NBTF9VU0VSSURfQ0hBTkdFKTsKIAkJfQogCX0KLQllbHNl IGlmICghT2lkSXNWYWxpZChzY2hlbWFPaWQpKQotCXsKLQkJLyoKLQkJICogTmVpdGhlciB1c2Vy IG5vciBhdXRob3Igb2YgdGhlIGV4dGVuc2lvbiBzcGVjaWZpZWQgc2NoZW1hOyB1c2UgdGhlCi0J CSAqIGN1cnJlbnQgZGVmYXVsdCBjcmVhdGlvbiBuYW1lc3BhY2UsIHdoaWNoIGlzIHRoZSBmaXJz dCBleHBsaWNpdAotCQkgKiBlbnRyeSBpbiB0aGUgc2VhcmNoX3BhdGguCi0JCSAqLwotCQlMaXN0 CSAgICpzZWFyY2hfcGF0aCA9IGZldGNoX3NlYXJjaF9wYXRoKGZhbHNlKTsKIAotCQlpZiAoc2Vh cmNoX3BhdGggPT0gTklMKSAvKiBub3RoaW5nIHZhbGlkIGluIHNlYXJjaF9wYXRoPyAqLwotCQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfU0NIRU1BKSwK LQkJCQkJIGVycm1zZygibm8gc2NoZW1hIGhhcyBiZWVuIHNlbGVjdGVkIHRvIGNyZWF0ZSBpbiIp KSk7Ci0JCXNjaGVtYU9pZCA9IGxpbml0aWFsX29pZChzZWFyY2hfcGF0aCk7Ci0JCXNjaGVtYU5h bWUgPSBnZXRfbmFtZXNwYWNlX25hbWUoc2NoZW1hT2lkKTsKLQkJaWYgKHNjaGVtYU5hbWUgPT0g TlVMTCkgLyogcmVjZW50bHktZGVsZXRlZCBuYW1lc3BhY2U/ICovCi0JCQllcmVwb3J0KEVSUk9S LAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9TQ0hFTUEpLAotCQkJCQkgZXJybXNn KCJubyBzY2hlbWEgaGFzIGJlZW4gc2VsZWN0ZWQgdG8gY3JlYXRlIGluIikpKTsKKwlzY2hlbWFP aWQgPSBHZXRPckNyZWF0ZVNjaGVtYUZvckV4dGVuc2lvbigmc2NoZW1hTmFtZSwgY29udHJvbCwg Y2FzY2FkZSk7CiAKLQkJbGlzdF9mcmVlKHNlYXJjaF9wYXRoKTsKLQl9CisJLyogUmVzdG9yZSBh dXRoZW50aWNhdGlvbiBzdGF0ZSBhZnRlciBzY2hlbWEgY3JlYXRpb24gaWYgbmVlZGVkICovCisJ aWYgKHN3aXRjaF90b19zdXBlcnVzZXIpCisJCVNldFVzZXJJZEFuZFNlY0NvbnRleHQoc2F2ZV91 c2VyaWQsIHNhdmVfc2VjX2NvbnRleHQpOwogCiAJLyoKIAkgKiBNYWtlIG5vdGUgaWYgYSB0ZW1w b3JhcnkgbmFtZXNwYWNlIGhhcyBiZWVuIGFjY2Vzc2VkIGluIHRoaXMKQEAgLTIwMzMsNiArMjE3 MCw3IEBAIENyZWF0ZUV4dGVuc2lvbkludGVybmFsKGNoYXIgKmV4dGVuc2lvbk5hbWUsCiAJICov CiAJYWRkcmVzcyA9IEluc2VydEV4dGVuc2lvblR1cGxlKGNvbnRyb2wtPm5hbWUsIGV4dG93bmVy LAogCQkJCQkJCQkgICBzY2hlbWFPaWQsIGNvbnRyb2wtPnJlbG9jYXRhYmxlLAorCQkJCQkJCQkg ICBjb250cm9sLT5vd25lZF9zY2hlbWEsCiAJCQkJCQkJCSAgIHZlcnNpb25OYW1lLAogCQkJCQkJ CQkgICBQb2ludGVyR2V0RGF0dW0oTlVMTCksCiAJCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShO VUxMKSwKQEAgLTIyMzgsNyArMjM3Niw4IEBAIENyZWF0ZUV4dGVuc2lvbihQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZUV4dGVuc2lvblN0bXQgKnN0bXQpCiAgKi8KIE9iamVjdEFkZHJlc3MKIElu c2VydEV4dGVuc2lvblR1cGxlKGNvbnN0IGNoYXIgKmV4dE5hbWUsIE9pZCBleHRPd25lciwKLQkJ CQkJIE9pZCBzY2hlbWFPaWQsIGJvb2wgcmVsb2NhdGFibGUsIGNvbnN0IGNoYXIgKmV4dFZlcnNp b24sCisJCQkJCSBPaWQgc2NoZW1hT2lkLCBib29sIHJlbG9jYXRhYmxlLCBib29sIG93bmVkU2No ZW1hLAorCQkJCQkgY29uc3QgY2hhciAqZXh0VmVyc2lvbiwKIAkJCQkJIERhdHVtIGV4dENvbmZp ZywgRGF0dW0gZXh0Q29uZGl0aW9uLAogCQkJCQkgTGlzdCAqcmVxdWlyZWRFeHRlbnNpb25zKQog ewpAQCAtMjI2OCw2ICsyNDA3LDcgQEAgSW5zZXJ0RXh0ZW5zaW9uVHVwbGUoY29uc3QgY2hhciAq ZXh0TmFtZSwgT2lkIGV4dE93bmVyLAogCXZhbHVlc1tBbnVtX3BnX2V4dGVuc2lvbl9leHRvd25l ciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShleHRPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfZXh0 ZW5zaW9uX2V4dG5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShzY2hlbWFPaWQpOwog CXZhbHVlc1tBbnVtX3BnX2V4dGVuc2lvbl9leHRyZWxvY2F0YWJsZSAtIDFdID0gQm9vbEdldERh dHVtKHJlbG9jYXRhYmxlKTsKKwl2YWx1ZXNbQW51bV9wZ19leHRlbnNpb25fZXh0b3duZWRzY2hl bWEgLSAxXSA9IEJvb2xHZXREYXR1bShvd25lZFNjaGVtYSk7CiAJdmFsdWVzW0FudW1fcGdfZXh0 ZW5zaW9uX2V4dHZlcnNpb24gLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZXh0VmVyc2lvbik7 CiAKIAlpZiAoZXh0Q29uZmlnID09IFBvaW50ZXJHZXREYXR1bShOVUxMKSkKQEAgLTIzMTIsNiAr MjQ1MiwxNyBAQCBJbnNlcnRFeHRlbnNpb25UdXBsZShjb25zdCBjaGFyICpleHROYW1lLCBPaWQg ZXh0T3duZXIsCiAJcmVjb3JkX29iamVjdF9hZGRyZXNzX2RlcGVuZGVuY2llcygmbXlzZWxmLCBy ZWZvYmpzLCBERVBFTkRFTkNZX05PUk1BTCk7CiAJZnJlZV9vYmplY3RfYWRkcmVzc2VzKHJlZm9i anMpOwogCisJaWYgKG93bmVkU2NoZW1hKQorCXsKKwkJT2JqZWN0QWRkcmVzcyBzY2hlbWFBZGRy ZXNzID0geworCQkJLmNsYXNzSWQgPSBOYW1lc3BhY2VSZWxhdGlvbklkLAorCQkJLm9iamVjdElk ID0gc2NoZW1hT2lkLAorCQl9OworCisJCXJlY29yZERlcGVuZGVuY3lPbigmc2NoZW1hQWRkcmVz cywgJm15c2VsZiwgREVQRU5ERU5DWV9FWFRFTlNJT04pOworCX0KKworCiAJLyogUG9zdCBjcmVh dGlvbiBob29rIGZvciBuZXcgZXh0ZW5zaW9uICovCiAJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhv b2soRXh0ZW5zaW9uUmVsYXRpb25JZCwgZXh0ZW5zaW9uT2lkLCAwKTsKIApAQCAtMzI0NiwxMiAr MzM5NywxNiBAQCBleHRlbnNpb25fY29uZmlnX3JlbW92ZShPaWQgZXh0ZW5zaW9ub2lkLCBPaWQg dGFibGVvaWQpCiAKIC8qCiAgKiBFeGVjdXRlIEFMVEVSIEVYVEVOU0lPTiBTRVQgU0NIRU1BCisg KgorICogRm9yIG93bmVkIHNjaGVtYXMsIHRoaXMgYm9pbHMgZG93biB0byBjaGFuZ2luZyB0aGUg bmFtZSBvZiBpdHMgc2NoZW1hLiBGb3IKKyAqIG5vbi1vd25lZCBzY2hlbWFzIHRoaXMgcmVxdWly ZXMgbW92aW5nIGFsbCB0aGUgbWVtYmVyIG9iamVjdHMgaW50byB0aGUgbmV3CisgKiBzY2hlbWEu CiAgKi8KIE9iamVjdEFkZHJlc3MKIEFsdGVyRXh0ZW5zaW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIg KmV4dGVuc2lvbk5hbWUsIGNvbnN0IGNoYXIgKm5ld3NjaGVtYSwgT2lkICpvbGRzY2hlbWEpCiB7 CiAJT2lkCQkJZXh0ZW5zaW9uT2lkOwotCU9pZAkJCW5zcE9pZDsKKwlPaWQJCQluc3BPaWQgPSBJ bnZhbGlkT2lkOwogCU9pZAkJCW9sZE5zcE9pZDsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OwogCVJl bGF0aW9uCWV4dFJlbDsKQEAgLTMyNjQsMTEgKzM0MTksMTAgQEAgQWx0ZXJFeHRlbnNpb25OYW1l c3BhY2UoY29uc3QgY2hhciAqZXh0ZW5zaW9uTmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1hLCBP aWQgKm8KIAlIZWFwVHVwbGUJZGVwVHVwOwogCU9iamVjdEFkZHJlc3NlcyAqb2Jqc01vdmVkOwog CU9iamVjdEFkZHJlc3MgZXh0QWRkcjsKKwlib29sCQlvd25lZFNjaGVtYTsKIAogCWV4dGVuc2lv bk9pZCA9IGdldF9leHRlbnNpb25fb2lkKGV4dGVuc2lvbk5hbWUsIGZhbHNlKTsKIAotCW5zcE9p ZCA9IExvb2t1cENyZWF0aW9uTmFtZXNwYWNlKG5ld3NjaGVtYSk7Ci0KIAkvKgogCSAqIFBlcm1p c3Npb24gY2hlY2s6IG11c3Qgb3duIGV4dGVuc2lvbi4gIE5vdGUgdGhhdCB3ZSBkb24ndCBib3Ro ZXIgdG8KIAkgKiBjaGVjayBvd25lcnNoaXAgb2YgdGhlIGluZGl2aWR1YWwgbWVtYmVyIG9iamVj dHMgLi4uCkBAIC0zMjc3LDIyICszNDMxLDYgQEAgQWx0ZXJFeHRlbnNpb25OYW1lc3BhY2UoY29u c3QgY2hhciAqZXh0ZW5zaW9uTmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1hLCBPaWQgKm8KIAkJ YWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfRVhURU5TSU9OLAogCQkJ CQkgICBleHRlbnNpb25OYW1lKTsKIAotCS8qIFBlcm1pc3Npb24gY2hlY2s6IG11c3QgaGF2ZSBj cmVhdGlvbiByaWdodHMgaW4gdGFyZ2V0IG5hbWVzcGFjZSAqLwotCWFjbHJlc3VsdCA9IG9iamVj dF9hY2xjaGVjayhOYW1lc3BhY2VSZWxhdGlvbklkLCBuc3BPaWQsIEdldFVzZXJJZCgpLCBBQ0xf Q1JFQVRFKTsKLQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQlhY2xjaGVja19lcnJv cihhY2xyZXN1bHQsIE9CSkVDVF9TQ0hFTUEsIG5ld3NjaGVtYSk7Ci0KLQkvKgotCSAqIElmIHRo ZSBzY2hlbWEgaXMgY3VycmVudGx5IGEgbWVtYmVyIG9mIHRoZSBleHRlbnNpb24sIGRpc2FsbG93 IG1vdmluZwotCSAqIHRoZSBleHRlbnNpb24gaW50byB0aGUgc2NoZW1hLiAgVGhhdCB3b3VsZCBj cmVhdGUgYSBkZXBlbmRlbmN5IGxvb3AuCi0JICovCi0JaWYgKGdldEV4dGVuc2lvbk9mT2JqZWN0 KE5hbWVzcGFjZVJlbGF0aW9uSWQsIG5zcE9pZCkgPT0gZXh0ZW5zaW9uT2lkKQotCQllcmVwb3J0 KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVf U1RBVEUpLAotCQkJCSBlcnJtc2coImNhbm5vdCBtb3ZlIGV4dGVuc2lvbiBcIiVzXCIgaW50byBz Y2hlbWEgXCIlc1wiICIKLQkJCQkJCSJiZWNhdXNlIHRoZSBleHRlbnNpb24gY29udGFpbnMgdGhl IHNjaGVtYSIsCi0JCQkJCQlleHRlbnNpb25OYW1lLCBuZXdzY2hlbWEpKSk7Ci0KIAkvKiBMb2Nh dGUgdGhlIHBnX2V4dGVuc2lvbiB0dXBsZSAqLwogCWV4dFJlbCA9IHRhYmxlX29wZW4oRXh0ZW5z aW9uUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CiAKQEAgLTMzMTYsMTQgKzM0NTQsNDMg QEAgQWx0ZXJFeHRlbnNpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqZXh0ZW5zaW9uTmFtZSwgY29u c3QgY2hhciAqbmV3c2NoZW1hLCBPaWQgKm8KIAogCXN5c3RhYmxlX2VuZHNjYW4oZXh0U2Nhbik7 CiAKKwlvd25lZFNjaGVtYSA9IGV4dEZvcm0tPmV4dG93bmVkc2NoZW1hOworCiAJLyoKLQkgKiBJ ZiB0aGUgZXh0ZW5zaW9uIGlzIGFscmVhZHkgaW4gdGhlIHRhcmdldCBzY2hlbWEsIGp1c3Qgc2ls ZW50bHkgZG8KLQkgKiBub3RoaW5nLgorCSAqIEZvciBub24tb3duZWQgc2NoZW1hcywgd2Ugc2hv dWxkIG5vdyBldmFsdWF0ZSBpZiB0aGUgdGFyZ2V0IHNjaGVtYSBpcyBhCisJICogdmFsaWQgdGFy Z2V0LiBGb3Igb3duZWQgc2NoZW1hcywgbm8gc3VjaCBjaGVja3MgYXJlIG5lZWRlZCwgYmVjYXVz ZQorCSAqIHdlJ2xsIHNpbXBseSByZW5hbWUgdGhlIGV4aXN0aW5nIHNjaGVtYS4KIAkgKi8KLQlp ZiAoZXh0Rm9ybS0+ZXh0bmFtZXNwYWNlID09IG5zcE9pZCkKKwlpZiAoIW93bmVkU2NoZW1hKQog CXsKLQkJdGFibGVfY2xvc2UoZXh0UmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKLQkJcmV0dXJuIElu dmFsaWRPYmplY3RBZGRyZXNzOworCQluc3BPaWQgPSBMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShu ZXdzY2hlbWEpOworCisJCS8qIFBlcm1pc3Npb24gY2hlY2s6IG11c3QgaGF2ZSBjcmVhdGlvbiBy aWdodHMgaW4gdGFyZ2V0IG5hbWVzcGFjZSAqLworCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soTmFtZXNwYWNlUmVsYXRpb25JZCwgbnNwT2lkLCBHZXRVc2VySWQoKSwgQUNMX0NSRUFURSk7 CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQlhY2xjaGVja19lcnJvcihhY2xy ZXN1bHQsIE9CSkVDVF9TQ0hFTUEsIG5ld3NjaGVtYSk7CisKKwkJLyoKKwkJICogSWYgdGhlIHNj aGVtYSBpcyBjdXJyZW50bHkgYSBtZW1iZXIgb2YgdGhlIGV4dGVuc2lvbiwgZGlzYWxsb3cKKwkJ ICogbW92aW5nIHRoZSBleHRlbnNpb24gaW50byB0aGUgc2NoZW1hLiAgVGhhdCB3b3VsZCBjcmVh dGUgYQorCQkgKiBkZXBlbmRlbmN5IGxvb3AuCisJCSAqLworCQlpZiAoZ2V0RXh0ZW5zaW9uT2ZP YmplY3QoTmFtZXNwYWNlUmVsYXRpb25JZCwgbnNwT2lkKSA9PSBleHRlbnNpb25PaWQpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVR VUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IG1vdmUgZXh0ZW5zaW9uIFwiJXNc IiBpbnRvIHNjaGVtYSBcIiVzXCIgIgorCQkJCQkJCSJiZWNhdXNlIHRoZSBleHRlbnNpb24gY29u dGFpbnMgdGhlIHNjaGVtYSIsCisJCQkJCQkJZXh0ZW5zaW9uTmFtZSwgbmV3c2NoZW1hKSkpOwor CisJCS8qCisJCSAqIElmIHRoZSBleHRlbnNpb24gaXMgYWxyZWFkeSBpbiB0aGUgdGFyZ2V0IHNj aGVtYSwganVzdCBzaWxlbnRseSBkbworCQkgKiBub3RoaW5nLgorCQkgKi8KKwkJaWYgKGV4dEZv cm0tPmV4dG5hbWVzcGFjZSA9PSBuc3BPaWQpCisJCXsKKwkJCXRhYmxlX2Nsb3NlKGV4dFJlbCwg Um93RXhjbHVzaXZlTG9jayk7CisJCQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJCX0K IAl9CiAKIAkvKiBDaGVjayBleHRlbnNpb24gaXMgc3VwcG9zZWQgdG8gYmUgcmVsb2NhdGFibGUg Ki8KQEAgLTMzOTYsNiArMzU2MywxMyBAQCBBbHRlckV4dGVuc2lvbk5hbWVzcGFjZShjb25zdCBj aGFyICpleHRlbnNpb25OYW1lLCBjb25zdCBjaGFyICpuZXdzY2hlbWEsIE9pZCAqbwogCQkJfQog CQl9CiAKKwkJLyoKKwkJICogV2UgZG9uJ3QgYWN0dWFsbHkgbW92ZSBhbnkgb2JqZWN0cyBmb3Ig b3duZWQgc2NoZW1hcyBiZWNhdXNlIHdlCisJCSAqIHNpbXBseSByZW5hbWUgdGhlIHNjaGVtYSB0 aGF0IHRoZXNlIG9iamVjdHMgYXJlIGFscmVhZHkgaW4uCisJCSAqLworCQlpZiAob3duZWRTY2hl bWEpCisJCQljb250aW51ZTsKKwogCQkvKgogCQkgKiBPdGhlcndpc2UsIGlnbm9yZSBub24tbWVt YmVyc2hpcCBkZXBlbmRlbmNpZXMuICAoQ3VycmVudGx5LCB0aGUKIAkJICogb25seSBvdGhlciBj YXNlIHdlIGNvdWxkIHNlZSBoZXJlIGlzIGEgbm9ybWFsIGRlcGVuZGVuY3kgZnJvbQpAQCAtMzQz OSwxOCArMzYxMywzNSBAQCBBbHRlckV4dGVuc2lvbk5hbWVzcGFjZShjb25zdCBjaGFyICpleHRl bnNpb25OYW1lLCBjb25zdCBjaGFyICpuZXdzY2hlbWEsIE9pZCAqbwogCiAJcmVsYXRpb25fY2xv c2UoZGVwUmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCi0JLyogTm93IGFkanVzdCBwZ19leHRlbnNp b24uZXh0bmFtZXNwYWNlICovCi0JZXh0Rm9ybS0+ZXh0bmFtZXNwYWNlID0gbnNwT2lkOworCS8q IE5vdyBhY3R1YWxseSB1cGRhdGUgdGhlIHNjaGVtYSBvZiB0aGUgZXh0ZW5zaW9uLiAqLworCWlm IChvd25lZFNjaGVtYSkKKwl7CisJCS8qCisJCSAqIEZvciBvd25lZCBzY2hlbWFzLCB3ZSBzaW1w bHkgcmVuYW1lIHRoZSBzY2hlbWEuIFRoaXMgbWVhbnMgdGhhdCB3ZQorCQkgKiBkb24ndCBuZWVk IHRvIHVwZGF0ZSB0aGUgZXh0ZW5zaW9uIGl0cyBjYXRhbG9nIGVudHJ5LCBiZWNhdXNlIHRoZQor CQkgKiBvaWQgb2YgdGhlIHNjaGVtYSB3aWxsIHN0YXkgdGhlIHNhbWUuCisJCSAqLworCQlSZW5h bWVTY2hlbWEoZ2V0X25hbWVzcGFjZV9uYW1lKG9sZE5zcE9pZCksIG5ld3NjaGVtYSk7CisJCXRh YmxlX2Nsb3NlKGV4dFJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisJfQorCWVsc2UKKwl7CisJCS8q CisJCSAqIEZvciBub24tb3duZWQgc2NoZW1hcywgd2Ugbm93IGhhdmUgdG8gdXBkYXRlIHRoZSBl eHRlbnNpb24ncyBzY2hlbWEKKwkJICogZW50cnksIGFuZCBhbHNvIHVwZGF0ZSB0aGUgZGVwZW5k ZW5jaWVzLgorCQkgKi8KKwkJZXh0Rm9ybS0+ZXh0bmFtZXNwYWNlID0gbnNwT2lkOwogCi0JQ2F0 YWxvZ1R1cGxlVXBkYXRlKGV4dFJlbCwgJmV4dFR1cC0+dF9zZWxmLCBleHRUdXApOworCQlDYXRh bG9nVHVwbGVVcGRhdGUoZXh0UmVsLCAmZXh0VHVwLT50X3NlbGYsIGV4dFR1cCk7CiAKLQl0YWJs ZV9jbG9zZShleHRSZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCQl0YWJsZV9jbG9zZShleHRSZWws IFJvd0V4Y2x1c2l2ZUxvY2spOwogCi0JLyogdXBkYXRlIGRlcGVuZGVuY3kgdG8gcG9pbnQgdG8g dGhlIG5ldyBzY2hlbWEgKi8KLQlpZiAoY2hhbmdlRGVwZW5kZW5jeUZvcihFeHRlbnNpb25SZWxh dGlvbklkLCBleHRlbnNpb25PaWQsCi0JCQkJCQkJTmFtZXNwYWNlUmVsYXRpb25JZCwgb2xkTnNw T2lkLCBuc3BPaWQpICE9IDEpCi0JCWVsb2coRVJST1IsICJjb3VsZCBub3QgY2hhbmdlIHNjaGVt YSBkZXBlbmRlbmN5IGZvciBleHRlbnNpb24gJXMiLAotCQkJIE5hbWVTdHIoZXh0Rm9ybS0+ZXh0 bmFtZSkpOworCQkvKiB1cGRhdGUgZGVwZW5kZW5jeSB0byBwb2ludCB0byB0aGUgbmV3IHNjaGVt YSAqLworCQlpZiAoY2hhbmdlRGVwZW5kZW5jeUZvcihFeHRlbnNpb25SZWxhdGlvbklkLCBleHRl bnNpb25PaWQsCisJCQkJCQkJCU5hbWVzcGFjZVJlbGF0aW9uSWQsIG9sZE5zcE9pZCwgbnNwT2lk KSAhPSAxKQorCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBjaGFuZ2Ugc2NoZW1hIGRlcGVuZGVu Y3kgZm9yIGV4dGVuc2lvbiAlcyIsCisJCQkJIE5hbWVTdHIoZXh0Rm9ybS0+ZXh0bmFtZSkpOwor CX0KIAogCUludm9rZU9iamVjdFBvc3RBbHRlckhvb2soRXh0ZW5zaW9uUmVsYXRpb25JZCwgZXh0 ZW5zaW9uT2lkLCAwKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3Vw Z3JhZGVfc3VwcG9ydC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9y dC5jCmluZGV4IGI1MDVhNmI0ZmVlLi5hMGRiZjExOWRlOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgImNh dGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nj aGVtYWNtZHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJyZXBsaWNhdGlv bi9sb2dpY2FsLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbGxhdW5jaGVyLmgiCkBA IC0xODUsMTIgKzE4NiwxNCBAQCBEYXR1bQogYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4 dGVuc2lvbihQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmV4dE5hbWU7Ci0JdGV4dAkg ICAqc2NoZW1hTmFtZTsKKwljaGFyCSAgICpzY2hlbWFOYW1lOwogCWJvb2wJCXJlbG9jYXRhYmxl OworCWJvb2wJCW93bmVkc2NoZW1hOwogCXRleHQJICAgKmV4dFZlcnNpb247CiAJRGF0dW0JCWV4 dENvbmZpZzsKIAlEYXR1bQkJZXh0Q29uZGl0aW9uOwogCUxpc3QJICAgKnJlcXVpcmVkRXh0ZW5z aW9uczsKKwlPaWQJCQlzY2hlbWFPaWQ7CiAKIAlDSEVDS19JU19CSU5BUllfVVBHUkFERTsKIApA QCAtMTk4LDI4ICsyMDEsMzAgQEAgYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVuc2lv bihQR19GVU5DVElPTl9BUkdTKQogCWlmIChQR19BUkdJU05VTEwoMCkgfHwKIAkJUEdfQVJHSVNO VUxMKDEpIHx8CiAJCVBHX0FSR0lTTlVMTCgyKSB8fAotCQlQR19BUkdJU05VTEwoMykpCisJCVBH X0FSR0lTTlVMTCgzKSB8fAorCQlQR19BUkdJU05VTEwoNCkpCiAJCWVsb2coRVJST1IsICJudWxs IGFyZ3VtZW50IHRvIGJpbmFyeV91cGdyYWRlX2NyZWF0ZV9lbXB0eV9leHRlbnNpb24gaXMgbm90 IGFsbG93ZWQiKTsKIAogCWV4dE5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKLQlzY2hlbWFO YW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJc2NoZW1hTmFtZSA9IHRleHRfdG9fY3N0cmlu ZyhQR19HRVRBUkdfVEVYVF9QUCgxKSk7CiAJcmVsb2NhdGFibGUgPSBQR19HRVRBUkdfQk9PTCgy KTsKLQlleHRWZXJzaW9uID0gUEdfR0VUQVJHX1RFWFRfUFAoMyk7CisJb3duZWRzY2hlbWEgPSBQ R19HRVRBUkdfQk9PTCgzKTsKKwlleHRWZXJzaW9uID0gUEdfR0VUQVJHX1RFWFRfUFAoNCk7CiAK LQlpZiAoUEdfQVJHSVNOVUxMKDQpKQorCWlmIChQR19BUkdJU05VTEwoNSkpCiAJCWV4dENvbmZp ZyA9IFBvaW50ZXJHZXREYXR1bShOVUxMKTsKIAllbHNlCi0JCWV4dENvbmZpZyA9IFBHX0dFVEFS R19EQVRVTSg0KTsKKwkJZXh0Q29uZmlnID0gUEdfR0VUQVJHX0RBVFVNKDUpOwogCi0JaWYgKFBH X0FSR0lTTlVMTCg1KSkKKwlpZiAoUEdfQVJHSVNOVUxMKDYpKQogCQlleHRDb25kaXRpb24gPSBQ b2ludGVyR2V0RGF0dW0oTlVMTCk7CiAJZWxzZQotCQlleHRDb25kaXRpb24gPSBQR19HRVRBUkdf REFUVU0oNSk7CisJCWV4dENvbmRpdGlvbiA9IFBHX0dFVEFSR19EQVRVTSg2KTsKIAogCXJlcXVp cmVkRXh0ZW5zaW9ucyA9IE5JTDsKLQlpZiAoIVBHX0FSR0lTTlVMTCg2KSkKKwlpZiAoIVBHX0FS R0lTTlVMTCg3KSkKIAl7Ci0JCUFycmF5VHlwZSAgKnRleHRBcnJheSA9IFBHX0dFVEFSR19BUlJB WVRZUEVfUCg2KTsKKwkJQXJyYXlUeXBlICAqdGV4dEFycmF5ID0gUEdfR0VUQVJHX0FSUkFZVFlQ RV9QKDcpOwogCQlEYXR1bQkgICAqdGV4dERhdHVtczsKIAkJaW50CQkJbmRhdHVtczsKIAkJaW50 CQkJaTsKQEAgLTIzNCwxMCArMjM5LDI4IEBAIGJpbmFyeV91cGdyYWRlX2NyZWF0ZV9lbXB0eV9l eHRlbnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIAkJfQogCX0KIAorCWlmIChvd25lZHNjaGVtYSkK Kwl7CisJCUNyZWF0ZVNjaGVtYVN0bXQgKmNzc3RtdCA9IG1ha2VOb2RlKENyZWF0ZVNjaGVtYVN0 bXQpOworCisJCWNzc3RtdC0+c2NoZW1hbmFtZSA9IHNjaGVtYU5hbWU7CisJCWNzc3RtdC0+YXV0 aHJvbGUgPSBOVUxMOwkvKiB3aWxsIGJlIGNyZWF0ZWQgYnkgY3VycmVudCB1c2VyICovCisJCWNz c3RtdC0+c2NoZW1hRWx0cyA9IE5JTDsKKwkJY3NzdG10LT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7 CisJCXNjaGVtYU9pZCA9IENyZWF0ZVNjaGVtYUNvbW1hbmQoY3NzdG10LCAiKGdlbmVyYXRlZCBD UkVBVEUgU0NIRU1BIGNvbW1hbmQpIiwKKwkJCQkJCQkJCQktMSwgLTEpOworCisJfQorCWVsc2UK Kwl7CisJCXNjaGVtYU9pZCA9IGdldF9uYW1lc3BhY2Vfb2lkKHNjaGVtYU5hbWUsIGZhbHNlKTsK Kwl9CisKIAlJbnNlcnRFeHRlbnNpb25UdXBsZSh0ZXh0X3RvX2NzdHJpbmcoZXh0TmFtZSksCiAJ CQkJCQkgR2V0VXNlcklkKCksCi0JCQkJCQkgZ2V0X25hbWVzcGFjZV9vaWQodGV4dF90b19jc3Ry aW5nKHNjaGVtYU5hbWUpLCBmYWxzZSksCisJCQkJCQkgc2NoZW1hT2lkLAogCQkJCQkJIHJlbG9j YXRhYmxlLAorCQkJCQkJIG93bmVkc2NoZW1hLAogCQkJCQkJIHRleHRfdG9fY3N0cmluZyhleHRW ZXJzaW9uKSwKIAkJCQkJCSBleHRDb25maWcsCiAJCQkJCQkgZXh0Q29uZGl0aW9uLApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKaW5kZXggMmMzNzU0ZDAyMGYuLmYyNzQ5MGZhODI1IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE5NTEs NiArMTk1MSwxOSBAQCBjaGVja0V4dGVuc2lvbk1lbWJlcnNoaXAoRHVtcGFibGVPYmplY3QgKmRv YmosIEFyY2hpdmUgKmZvdXQpCiAJaWYgKGV4dCA9PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CiAK KwkvKgorCSAqIElmIHRoaXMgaXMgdGhlICJvd25lZF9zY2hlbWEiIG9mIHRoZSBleHRlbnNpb24s IHRoZW4gd2UgZG9uJ3Qgd2FudCB0bworCSAqIGNyZWF0ZSBpdCBtYW51YWxseSwgYmVjYXVzZSBp dCBnZXRzIGNyZWF0ZWQgdG9nZXRoZXIgd2l0aCB0aGUKKwkgKiBleHRlbnNpb24uCisJICovCisJ aWYgKGRvYmotPm9ialR5cGUgPT0gRE9fTkFNRVNQQUNFICYmCisJCWV4dC0+b3duZWRzY2hlbWEg JiYgc3RyY21wKGV4dC0+bmFtZXNwYWNlLCBkb2JqLT5uYW1lKSA9PSAwKQorCXsKKwkJTmFtZXNw YWNlSW5mbyAqbnNpbmZvID0gKE5hbWVzcGFjZUluZm8gKikgZG9iajsKKworCQluc2luZm8tPmNy ZWF0ZSA9IGZhbHNlOworCX0KKwogCWRvYmotPmV4dF9tZW1iZXIgPSB0cnVlOwogCiAJLyogUmVj b3JkIGRlcGVuZGVuY3kgc28gdGhhdCBnZXREZXBlbmRlbmNpZXMgbmVlZG4ndCBkZWFsIHdpdGgg dGhhdCAqLwpAQCAtNTk1MSw3ICs1OTY0LDcgQEAgYmluYXJ5X3VwZ3JhZGVfZXh0ZW5zaW9uX21l bWJlcihQUUV4cEJ1ZmZlciB1cGdyYWRlX2J1ZmZlciwKIAkJCQkJCQkJY29uc3QgY2hhciAqb2Jq bmFtZSwKIAkJCQkJCQkJY29uc3QgY2hhciAqb2JqbmFtZXNwYWNlKQogewotCUR1bXBhYmxlT2Jq ZWN0ICpleHRvYmogPSBOVUxMOworCUV4dGVuc2lvbkluZm8gKmV4dCA9IE5VTEw7CiAJaW50CQkJ aTsKIAogCWlmICghZG9iai0+ZXh0X21lbWJlcikKQEAgLTU5NjUsMTkgKzU5NzgsMzMgQEAgYmlu YXJ5X3VwZ3JhZGVfZXh0ZW5zaW9uX21lbWJlcihQUUV4cEJ1ZmZlciB1cGdyYWRlX2J1ZmZlciwK IAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgZG9iai0+bkRlcHM7IGkrKykKIAl7Ci0JCWV4dG9iaiA9 IGZpbmRPYmplY3RCeUR1bXBJZChkb2JqLT5kZXBlbmRlbmNpZXNbaV0pOworCQlEdW1wYWJsZU9i amVjdCAqZXh0b2JqID0gZmluZE9iamVjdEJ5RHVtcElkKGRvYmotPmRlcGVuZGVuY2llc1tpXSk7 CisKIAkJaWYgKGV4dG9iaiAmJiBleHRvYmotPm9ialR5cGUgPT0gRE9fRVhURU5TSU9OKQorCQl7 CisJCQlleHQgPSAoRXh0ZW5zaW9uSW5mbyAqKSBleHRvYmo7CiAJCQlicmVhazsKLQkJZXh0b2Jq ID0gTlVMTDsKKwkJfQogCX0KLQlpZiAoZXh0b2JqID09IE5VTEwpCisJaWYgKGV4dCA9PSBOVUxM KQogCQlwZ19mYXRhbCgiY291bGQgbm90IGZpbmQgcGFyZW50IGV4dGVuc2lvbiBmb3IgJXMgJXMi LAogCQkJCSBvYmp0eXBlLCBvYmpuYW1lKTsKIAorCS8qCisJICogSWYgdGhlIG9iamVjdCBpcyB0 aGUgIm93bmVkX3NjaGVtYSIgb2YgdGhlIGV4dGVuc2lvbiwgd2UgZG9uJ3QgbmVlZCB0bworCSAq IGFkZCBpdCB0byB0aGUgZXh0ZW5zaW9uIGJlY2F1c2UgaXQgd2FzIGFscmVhZHkgbWFkZSBhIG1l bWJlciBvZiB0aGUKKwkgKiBleHRlbnNpb24gd2hlbiB0aGUgZXh0ZW5zaW9uIHdhcyBjcmVhdGVk LgorCSAqLworCWlmIChkb2JqLT5vYmpUeXBlID09IERPX05BTUVTUEFDRSAmJgorCQlleHQtPm93 bmVkc2NoZW1hICYmIHN0cmNtcChleHQtPm5hbWVzcGFjZSwgZG9iai0+bmFtZSkgPT0gMCkKKwl7 CisJCXJldHVybjsKKwl9CisKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cih1cGdyYWRlX2J1ZmZlciwK IAkJCQkJCSAiXG4tLSBGb3IgYmluYXJ5IHVwZ3JhZGUsIGhhbmRsZSBleHRlbnNpb24gbWVtYmVy c2hpcCB0aGUgaGFyZCB3YXlcbiIpOwogCWFwcGVuZFBRRXhwQnVmZmVyKHVwZ3JhZGVfYnVmZmVy LCAiQUxURVIgRVhURU5TSU9OICVzIEFERCAlcyAiLAotCQkJCQkgIGZtdElkKGV4dG9iai0+bmFt ZSksCisJCQkJCSAgZm10SWQoZXh0LT5kb2JqLm5hbWUpLAogCQkJCQkgIG9ianR5cGUpOwogCWlm IChvYmpuYW1lc3BhY2UgJiYgKm9iam5hbWVzcGFjZSkKIAkJYXBwZW5kUFFFeHBCdWZmZXIodXBn cmFkZV9idWZmZXIsICIlcy4iLCBmbXRJZChvYmpuYW1lc3BhY2UpKTsKQEAgLTYxMzQsNiArNjE2 MSw3IEBAIGdldEV4dGVuc2lvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1FeHRlbnNpb25zKQog CWludAkJCWlfZXh0bmFtZTsKIAlpbnQJCQlpX25zcG5hbWU7CiAJaW50CQkJaV9leHRyZWxvY2F0 YWJsZTsKKwlpbnQJCQlpX2V4dG93bmVkc2NoZW1hOwogCWludAkJCWlfZXh0dmVyc2lvbjsKIAlp bnQJCQlpX2V4dGNvbmZpZzsKIAlpbnQJCQlpX2V4dGNvbmRpdGlvbjsKQEAgLTYxNDIsNyArNjE3 MCwxNCBAQCBnZXRFeHRlbnNpb25zKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtRXh0ZW5zaW9ucykK IAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiU0VMRUNUIHgudGFibGVvaWQsIHgub2lk LCAiCiAJCQkJCQkgInguZXh0bmFtZSwgbi5uc3BuYW1lLCB4LmV4dHJlbG9jYXRhYmxlLCB4LmV4 dHZlcnNpb24sIHguZXh0Y29uZmlnLCB4LmV4dGNvbmRpdGlvbiAiCi0JCQkJCQkgIkZST00gcGdf ZXh0ZW5zaW9uIHggIgorCQkpOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAw KQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgeC5leHRvd25lZHNjaGVtYSAiKTsK KwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBmYWxzZSBBUyBleHRvd25l ZHNjaGVtYSAiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiRlJPTSBwZ19leHRl bnNpb24geCAiCiAJCQkJCQkgIkpPSU4gcGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB4LmV4dG5h bWVzcGFjZSIpOwogCiAJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQ R1JFU19UVVBMRVNfT0spOwpAQCAtNjE1OCw2ICs2MTkzLDcgQEAgZ2V0RXh0ZW5zaW9ucyhBcmNo aXZlICpmb3V0LCBpbnQgKm51bUV4dGVuc2lvbnMpCiAJaV9leHRuYW1lID0gUFFmbnVtYmVyKHJl cywgImV4dG5hbWUiKTsKIAlpX25zcG5hbWUgPSBQUWZudW1iZXIocmVzLCAibnNwbmFtZSIpOwog CWlfZXh0cmVsb2NhdGFibGUgPSBQUWZudW1iZXIocmVzLCAiZXh0cmVsb2NhdGFibGUiKTsKKwlp X2V4dG93bmVkc2NoZW1hID0gUFFmbnVtYmVyKHJlcywgImV4dG93bmVkc2NoZW1hIik7CiAJaV9l eHR2ZXJzaW9uID0gUFFmbnVtYmVyKHJlcywgImV4dHZlcnNpb24iKTsKIAlpX2V4dGNvbmZpZyA9 IFBRZm51bWJlcihyZXMsICJleHRjb25maWciKTsKIAlpX2V4dGNvbmRpdGlvbiA9IFBRZm51bWJl cihyZXMsICJleHRjb25kaXRpb24iKTsKQEAgLTYxNzEsNiArNjIwNyw3IEBAIGdldEV4dGVuc2lv bnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1FeHRlbnNpb25zKQogCQlleHRpbmZvW2ldLmRvYmou bmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9leHRuYW1lKSk7CiAJCWV4dGlu Zm9baV0ubmFtZXNwYWNlID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX25zcG5hbWUp KTsKIAkJZXh0aW5mb1tpXS5yZWxvY2F0YWJsZSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfZXh0 cmVsb2NhdGFibGUpKSA9PSAndCc7CisJCWV4dGluZm9baV0ub3duZWRzY2hlbWEgPSAqKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX2V4dG93bmVkc2NoZW1hKSkgPT0gJ3QnOwogCQlleHRpbmZvW2ldLmV4 dHZlcnNpb24gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfZXh0dmVyc2lvbikpOwog CQlleHRpbmZvW2ldLmV4dGNvbmZpZyA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9l eHRjb25maWcpKTsKIAkJZXh0aW5mb1tpXS5leHRjb25kaXRpb24gPSBwZ19zdHJkdXAoUFFnZXR2 YWx1ZShyZXMsIGksIGlfZXh0Y29uZGl0aW9uKSk7CkBAIC0xMTg4NCw5ICsxMTkyMSw5IEBAIGR1 bXBOYW1lc3BhY2UoQXJjaGl2ZSAqZm91dCwgY29uc3QgTmFtZXNwYWNlSW5mbyAqbnNwaW5mbykK IAl7CiAJCS8qIHNlZSBzZWxlY3REdW1wYWJsZU5hbWVzcGFjZSgpICovCiAJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKGRlbHEsCi0JCQkJCQkJICItLSAqbm90KiBkcm9wcGluZyBzY2hlbWEsIHNpbmNl IGluaXRkYiBjcmVhdGVzIGl0XG4iKTsKKwkJCQkJCQkgIi0tICpub3QqIGRyb3BwaW5nIHNjaGVt YSwgc2luY2UgaW5pdGRiIG9yIENSRUFURSBFWFRFTlNJT04gY3JlYXRlcyBpdFxuIik7CiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHEsCi0JCQkJCQkJICItLSAqbm90KiBjcmVhdGluZyBzY2hlbWEs IHNpbmNlIGluaXRkYiBjcmVhdGVzIGl0XG4iKTsKKwkJCQkJCQkgIi0tICpub3QqIGNyZWF0aW5n IHNjaGVtYSwgc2luY2UgaW5pdGRiIG9yIENSRUFURSBFWFRFTlNJT04gY3JlYXRlcyBpdFxuIik7 CiAJfQogCiAJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQpAQCAtMTE5OTgsNiArMTIwMzUsNyBA QCBkdW1wRXh0ZW5zaW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IEV4dGVuc2lvbkluZm8gKmV4dGlu Zm8pCiAJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxLCBleHRpbmZvLT5uYW1lc3BhY2UsIGZvdXQp OwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiLCAiKTsKIAkJYXBwZW5kUFFFeHBCdWZmZXIo cSwgIiVzLCAiLCBleHRpbmZvLT5yZWxvY2F0YWJsZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOworCQlh cHBlbmRQUUV4cEJ1ZmZlcihxLCAiJXMsICIsIGV4dGluZm8tPm93bmVkc2NoZW1hID8gInRydWUi IDogImZhbHNlIik7CiAJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxLCBleHRpbmZvLT5leHR2ZXJz aW9uLCBmb3V0KTsKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIiwgIik7CiAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o CmluZGV4IDRjNGIxNGU1ZmM3Li5lZjc0MDIwZDE3MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC0xOTUsNiAr MTk1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2V4dGVuc2lvbkluZm8KIAlEdW1wYWJsZU9iamVjdCBk b2JqOwogCWNoYXIJICAgKm5hbWVzcGFjZTsJCS8qIHNjaGVtYSBjb250YWluaW5nIGV4dGVuc2lv bidzIG9iamVjdHMgKi8KIAlib29sCQlyZWxvY2F0YWJsZTsKKwlib29sCQlvd25lZHNjaGVtYTsK IAljaGFyCSAgICpleHR2ZXJzaW9uOwogCWNoYXIJICAgKmV4dGNvbmZpZzsJCS8qIGluZm8gYWJv dXQgY29uZmlndXJhdGlvbiB0YWJsZXMgKi8KIAljaGFyCSAgICpleHRjb25kaXRpb247CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2V4dGVuc2lvbi5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19leHRlbnNpb24uaAppbmRleCA4YWI1ZTMxNDFkMC4uYmJjNzk3NzNlNmUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZXh0ZW5zaW9uLmgKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19leHRlbnNpb24uaApAQCAtMzQsNiArMzQsNyBAQCBDQVRBTE9HKHBn X2V4dGVuc2lvbiwzMDc5LEV4dGVuc2lvblJlbGF0aW9uSWQpCiAJT2lkCQkJZXh0bmFtZXNwYWNl IEJLSV9MT09LVVAocGdfbmFtZXNwYWNlKTsJLyogbmFtZXNwYWNlIG9mCiAJCQkJCQkJCQkJCQkJ CSAqIGNvbnRhaW5lZCBvYmplY3RzICovCiAJYm9vbAkJZXh0cmVsb2NhdGFibGU7IC8qIGlmIHRy dWUsIGFsbG93IEFMVEVSIEVYVEVOU0lPTiBTRVQgU0NIRU1BICovCisJYm9vbAkJZXh0b3duZWRz Y2hlbWE7IC8qIGlmIHRydWUsIHNjaGVtYSBpcyBvd25lZCBieSBleHRlbnNpb24gKi8KIAogI2lm ZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJl ICovCiAJLyogZXh0dmVyc2lvbiBtYXkgbmV2ZXIgYmUgbnVsbCwgYnV0IHRoZSBvdGhlcnMgY2Fu IGJlLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggODNmNjUwMWRmMzguLmVhMGVmNTdi N2UwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTExODA1LDcgKzExODA1LDcgQEAKIHsg b2lkID0+ICczNTkxJywgZGVzY3IgPT4gJ2ZvciB1c2UgYnkgcGdfdXBncmFkZScsCiAgIHByb25h bWUgPT4gJ2JpbmFyeV91cGdyYWRlX2NyZWF0ZV9lbXB0eV9leHRlbnNpb24nLCBwcm9pc3N0cmlj dCA9PiAnZicsCiAgIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcGFyYWxsZWwgPT4gJ3UnLCBwcm9y ZXR0eXBlID0+ICd2b2lkJywKLSAgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCBib29sIHRleHQg X29pZCBfdGV4dCBfdGV4dCcsCisgIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRleHQgYm9vbCBib29s IHRleHQgX29pZCBfdGV4dCBfdGV4dCcsCiAgIHByb3NyYyA9PiAnYmluYXJ5X3VwZ3JhZGVfY3Jl YXRlX2VtcHR5X2V4dGVuc2lvbicgfSwKIHsgb2lkID0+ICc0MDgzJywgZGVzY3IgPT4gJ2ZvciB1 c2UgYnkgcGdfdXBncmFkZScsCiAgIHByb25hbWUgPT4gJ2JpbmFyeV91cGdyYWRlX3NldF9yZWNv cmRfaW5pdF9wcml2cycsIHByb3ZvbGF0aWxlID0+ICd2JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL2V4dGVuc2lvbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXh0ZW5zaW9u LmgKaW5kZXggN2E3NmJkZWJjZmEuLjAzMTY2Yjc1NTAyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9leHRlbnNpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHRlbnNp b24uaApAQCAtMzgsNyArMzgsOSBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVFeHRlbnNp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVFeHRlbnNpb25TdG10ICpzdAogZXh0ZXJuIHZv aWQgUmVtb3ZlRXh0ZW5zaW9uQnlJZChPaWQgZXh0SWQpOwogCiBleHRlcm4gT2JqZWN0QWRkcmVz cyBJbnNlcnRFeHRlbnNpb25UdXBsZShjb25zdCBjaGFyICpleHROYW1lLCBPaWQgZXh0T3duZXIs Ci0JCQkJCQkJCQkJICBPaWQgc2NoZW1hT2lkLCBib29sIHJlbG9jYXRhYmxlLCBjb25zdCBjaGFy ICpleHRWZXJzaW9uLAorCQkJCQkJCQkJCSAgT2lkIHNjaGVtYU9pZCwgYm9vbCByZWxvY2F0YWJs ZSwKKwkJCQkJCQkJCQkgIGJvb2wgb3duZWRTY2hlbWEsCisJCQkJCQkJCQkJICBjb25zdCBjaGFy ICpleHRWZXJzaW9uLAogCQkJCQkJCQkJCSAgRGF0dW0gZXh0Q29uZmlnLCBEYXR1bSBleHRDb25k aXRpb24sCiAJCQkJCQkJCQkJICBMaXN0ICpyZXF1aXJlZEV4dGVuc2lvbnMpOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9NYWtlZmlsZSBiL3NyYy90ZXN0 L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL01ha2VmaWxlCmluZGV4IGEzNTkxYmYzZDJmLi4wYTdj ZjY5MjIxNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvTWFr ZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvTWFrZWZpbGUKQEAg LTksNyArOSw5IEBAIEVYVEVOU0lPTiA9IHRlc3RfZXh0MSB0ZXN0X2V4dDIgdGVzdF9leHQzIHRl c3RfZXh0NCB0ZXN0X2V4dDUgdGVzdF9leHQ2IFwKICAgICAgICAgICAgIHRlc3RfZXh0X2V4dHNj aGVtYSBcCiAgICAgICAgICAgICB0ZXN0X2V4dF9ldnR0cmlnIFwKICAgICAgICAgICAgIHRlc3Rf ZXh0X3NldF9zY2hlbWEgXAotICAgICAgICAgICAgdGVzdF9leHRfcmVxX3NjaGVtYTEgdGVzdF9l eHRfcmVxX3NjaGVtYTIgdGVzdF9leHRfcmVxX3NjaGVtYTMKKyAgICAgICAgICAgIHRlc3RfZXh0 X3JlcV9zY2hlbWExIHRlc3RfZXh0X3JlcV9zY2hlbWEyIHRlc3RfZXh0X3JlcV9zY2hlbWEzIFwK KyAgICAgICAgICAgIHRlc3RfZXh0X293bmVkX3NjaGVtYSB0ZXN0X2V4dF9vd25lZF9zY2hlbWFf bm9zdXBlcnVzZXIgXAorICAgICAgICAgICAgdGVzdF9leHRfb3duZWRfc2NoZW1hX3RydXN0ZWQg dGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlCiAKIERBVEEgPSB0ZXN0X2V4dDEtLTEu MC5zcWwgdGVzdF9leHQyLS0xLjAuc3FsIHRlc3RfZXh0My0tMS4wLnNxbCBcCiAgICAgICAgdGVz dF9leHQ0LS0xLjAuc3FsIHRlc3RfZXh0NS0tMS4wLnNxbCB0ZXN0X2V4dDYtLTEuMC5zcWwgXApA QCAtMjUsNyArMjcsMTQgQEAgREFUQSA9IHRlc3RfZXh0MS0tMS4wLnNxbCB0ZXN0X2V4dDItLTEu MC5zcWwgdGVzdF9leHQzLS0xLjAuc3FsIFwKICAgICAgICB0ZXN0X2V4dF9zZXRfc2NoZW1hLS0x LjAuc3FsIFwKICAgICAgICB0ZXN0X2V4dF9yZXFfc2NoZW1hMS0tMS4wLnNxbCBcCiAgICAgICAg dGVzdF9leHRfcmVxX3NjaGVtYTItLTEuMC5zcWwgXAotICAgICAgIHRlc3RfZXh0X3JlcV9zY2hl bWEzLS0xLjAuc3FsCisgICAgICAgdGVzdF9leHRfcmVxX3NjaGVtYTMtLTEuMC5zcWwgXAorICAg ICAgIHRlc3RfZXh0X293bmVkX3NjaGVtYS0tMS4wLnNxbCBcCisgICAgICAgdGVzdF9leHRfb3du ZWRfc2NoZW1hLS0xLjAtLTEuMS5zcWwgXAorICAgICAgIHRlc3RfZXh0X293bmVkX3NjaGVtYV9u b3N1cGVydXNlci0tMS4wLnNxbCBcCisgICAgICAgdGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3Vw ZXJ1c2VyLS0xLjAtLTEuMS5zcWwgXAorICAgICAgIHRlc3RfZXh0X293bmVkX3NjaGVtYV90cnVz dGVkLS0xLjAuc3FsIFwKKyAgICAgICB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1c3RlZC0tMS4w LS0xLjEuc3FsIFwKKyAgICAgICB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUtLTEu MC5zcWwKIAogUkVHUkVTUyA9IHRlc3RfZXh0ZW5zaW9ucyB0ZXN0X2V4dGRlcGVuZAogVEFQX1RF U1RTID0gMQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvZXhw ZWN0ZWQvdGVzdF9leHRlbnNpb25zLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNp b25zL2V4cGVjdGVkL3Rlc3RfZXh0ZW5zaW9ucy5vdXQKaW5kZXggZmRhZTUyZDZhYjIuLjE4MjBl NzZkNzQ2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9leHBl Y3RlZC90ZXN0X2V4dGVuc2lvbnMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRl bnNpb25zL2V4cGVjdGVkL3Rlc3RfZXh0ZW5zaW9ucy5vdXQKQEAgLTksNiArOSw3IEBAIENSRUFU RSBFWFRFTlNJT04gdGVzdF9leHQxIFNDSEVNQSB0ZXN0X2V4dDsKIEVSUk9SOiAgc2NoZW1hICJ0 ZXN0X2V4dCIgZG9lcyBub3QgZXhpc3QKIENSRUFURSBFWFRFTlNJT04gdGVzdF9leHQxIFNDSEVN QSBoYXMkZG9sbGFyOwogRVJST1I6ICBleHRlbnNpb24gInRlc3RfZXh0MSIgbXVzdCBiZSBpbnN0 YWxsZWQgaW4gc2NoZW1hICJ0ZXN0X2V4dDEiCitISU5UOiAgRG8gbm90IHNwZWNpZnkgU0NIRU1B IHdoZW4gcnVubmluZyBDUkVBVEUgRVhURU5TSU9OIGZvciBleHRlbnNpb24gInRlc3RfZXh0MSIK IC0tIGZpbmFsbHkgc3VjY2VzcwogQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dDEgU0NIRU1BIGhh cyRkb2xsYXIgQ0FTQ0FERTsKIE5PVElDRTogIGluc3RhbGxpbmcgcmVxdWlyZWQgZXh0ZW5zaW9u ICJ0ZXN0X2V4dDIiCkBAIC02NjcsMyArNjY4LDE1OSBAQCBTRUxFQ1QgdGVzdF9zX2RlcC5kZXBf cmVxMigpOwogCiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9yZXFfc2NoZW1hMSBDQVNDQURFOwog Tk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBleHRlbnNpb24gdGVzdF9leHRfcmVxX3NjaGVtYTIK Ky0tCistLSBUZXN0IG93bmVkIHNjaGVtYSBleHRlbnNpb25zCistLQorQ1JFQVRFIFNDSEVNQSB0 ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBGYWlscyBmb3IgYW4gYWxyZWFkeSBleGlzdGluZyBz Y2hlbWEgdG8gYmUgcHJvdmlkZWQKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2No ZW1hIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitFUlJPUjogIHNjaGVtYSAidGVzdF9l eHRfb3duZWRfc2NoZW1hIiBhbHJlYWR5IGV4aXN0cworSElOVDogIERyb3Agc2NoZW1hICJ0ZXN0 X2V4dF9vd25lZF9zY2hlbWEiIG9yIHNwZWNpZnkgYW5vdGhlciBzY2hlbWEgdXNpbmcgQ1JFQVRF IEVYVEVOU0lPTiAuLi4gU0NIRU1BIC4uLgorLS0gRmFpbHMgYmVjYXVzZSBhIGRpZmZlcmVudCBz Y2hlbWEgaXMgc2V0IGluIGNvbnRyb2wgZmlsZQorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9v d25lZF9zY2hlbWEgU0NIRU1BIHRlc3Rfc2NoZW1hOworRVJST1I6ICBleHRlbnNpb24gInRlc3Rf ZXh0X293bmVkX3NjaGVtYSIgbXVzdCBiZSBpbnN0YWxsZWQgaW4gc2NoZW1hICJ0ZXN0X2V4dF9v d25lZF9zY2hlbWEiCitISU5UOiAgRG8gbm90IHNwZWNpZnkgU0NIRU1BIHdoZW4gcnVubmluZyBD UkVBVEUgRVhURU5TSU9OIGZvciBleHRlbnNpb24gInRlc3RfZXh0X293bmVkX3NjaGVtYSIKK0RS T1AgU0NIRU1BIHRlc3RfZXh0X293bmVkX3NjaGVtYTsKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hOworXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitPYmplY3RzIGlu IGV4dGVuc2lvbiAidGVzdF9leHRfb3duZWRfc2NoZW1hIgorICAgICAgICAgICBPYmplY3QgZGVz Y3JpcHRpb24gICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgZnVuY3Rpb24gdGVzdF9leHRfb3duZWRfc2NoZW1hLm93bmVkMSgpCisgc2NoZW1h IHRlc3RfZXh0X293bmVkX3NjaGVtYQorKDIgcm93cykKKworLS0gVGVzdCBBTFRFUiBFWFRFTlNJ T04gVVBEQVRFIHdpdGggb3duZWQgc2NoZW1hCitBTFRFUiBFWFRFTlNJT04gdGVzdF9leHRfb3du ZWRfc2NoZW1hIFVQREFURSBUTyAnMS4xJzsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hOwor T2JqZWN0cyBpbiBleHRlbnNpb24gInRlc3RfZXh0X293bmVkX3NjaGVtYSIKKyAgICAgICAgICAg T2JqZWN0IGRlc2NyaXB0aW9uICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGZ1bmN0aW9uIHRlc3RfZXh0X293bmVkX3NjaGVtYS5vd25lZDEo KQorIGZ1bmN0aW9uIHRlc3RfZXh0X293bmVkX3NjaGVtYS5vd25lZDIoKQorIHNjaGVtYSB0ZXN0 X2V4dF9vd25lZF9zY2hlbWEKKygzIHJvd3MpCisKKy0tIFZlcmlmeSB0aGF0IHRoZSBvd25lZCBz Y2hlbWEgaXMgZHJvcHBlZCB0b2dldGhlciB3aXRoIHRoZSBleHRlbnNpb24KK0RST1AgRVhURU5T SU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYTsKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIHBnX25hbWVz cGFjZSBXSEVSRSBuc3BuYW1lID0gJ3Rlc3RfZXh0X293bmVkX3NjaGVtYSc7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gVGVzdCBkcm9wIGJlaGF2aW9yIHdpdGggbm9u LWV4dGVuc2lvbiBvYmplY3RzIGluIHRoZSBvd25lZCBzY2hlbWEKK0NSRUFURSBFWFRFTlNJT04g dGVzdF9leHRfb3duZWRfc2NoZW1hOworQ1JFQVRFIEZVTkNUSU9OIHRlc3RfZXh0X293bmVkX3Nj aGVtYS5ub25fZXh0X2Z1bmMoKSBSRVRVUk5TIGludCBMQU5HVUFHRSBTUUwgQVMgJCQgU0VMRUNU IDEgJCQ7CistLSBGYWlscyBiZWNhdXNlIG9mIHRoZSBub24tZXh0ZW5zaW9uIG9iamVjdAorRFJP UCBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hOworRVJST1I6ICBjYW5ub3QgZHJvcCBl eHRlbnNpb24gdGVzdF9leHRfb3duZWRfc2NoZW1hIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBl bmQgb24gaXQKK0RFVEFJTDogIGZ1bmN0aW9uIHRlc3RfZXh0X293bmVkX3NjaGVtYS5ub25fZXh0 X2Z1bmMoKSBkZXBlbmRzIG9uIHNjaGVtYSB0ZXN0X2V4dF9vd25lZF9zY2hlbWEKK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCist LSBTdWNjZWVkcyBhbmQgY2FzY2FkZXMgdG8gdGhlIG5vbi1leHRlbnNpb24gb2JqZWN0CitEUk9Q IEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWEgQ0FTQ0FERTsKK05PVElDRTogIGRyb3Ag Y2FzY2FkZXMgdG8gZnVuY3Rpb24gdGVzdF9leHRfb3duZWRfc2NoZW1hLm5vbl9leHRfZnVuYygp CitDUkVBVEUgU0NIRU1BIGFscmVhZHlfZXhpc3Rpbmc7CistLSBGYWlscyBmb3IgYW4gYWxyZWFk eSBleGlzdGluZyBzY2hlbWEgdG8gYmUgcHJvdmlkZWQKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIFNDSEVNQSBhbHJlYWR5X2V4aXN0aW5nOworRVJS T1I6ICBzY2hlbWEgImFscmVhZHlfZXhpc3RpbmciIGFscmVhZHkgZXhpc3RzCitISU5UOiAgRHJv cCBzY2hlbWEgImFscmVhZHlfZXhpc3RpbmciIG9yIHNwZWNpZnkgYW5vdGhlciBzY2hlbWEgdXNp bmcgQ1JFQVRFIEVYVEVOU0lPTiAuLi4gU0NIRU1BIC4uLgorLS0gRmFpbHMgYmVjYXVzZSBubyBz Y2hlbWEgaXMgc2V0IGluIGNvbnRyb2wgZmlsZQorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9v d25lZF9zY2hlbWFfcmVsb2NhdGFibGU7CitFUlJPUjogIG5vIHNjaGVtYSBoYXMgYmVlbiBzZWxl Y3RlZCB0byBjcmVhdGUgaW4KK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1h X3JlbG9jYXRhYmxlIFNDSEVNQSB0ZXN0X3NjaGVtYTsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2No ZW1hX3JlbG9jYXRhYmxlCitPYmplY3RzIGluIGV4dGVuc2lvbiAidGVzdF9leHRfb3duZWRfc2No ZW1hX3JlbG9jYXRhYmxlIgorICAgICAgT2JqZWN0IGRlc2NyaXB0aW9uICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ1bmN0aW9uIHRlc3Rfc2NoZW1hLm93bmVkMigp Cisgc2NoZW1hIHRlc3Rfc2NoZW1hCisoMiByb3dzKQorCistLSBGYWlscyBiZWNhdXNlIHNjaGVt YSBhbHJlYWR5IGV4aXN0cworQUxURVIgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9y ZWxvY2F0YWJsZSBTRVQgU0NIRU1BIGFscmVhZHlfZXhpc3Rpbmc7CitFUlJPUjogIHNjaGVtYSAi YWxyZWFkeV9leGlzdGluZyIgYWxyZWFkeSBleGlzdHMKK0FMVEVSIEVYVEVOU0lPTiB0ZXN0X2V4 dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUgU0VUIFNDSEVNQSBzb21lX290aGVyX25hbWU7Citc ZHgrIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZQorT2JqZWN0cyBpbiBleHRlbnNp b24gInRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZSIKKyAgICAgICAgT2JqZWN0IGRl c2NyaXB0aW9uICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IGZ1bmN0aW9uIHNvbWVfb3RoZXJfbmFtZS5vd25lZDIoKQorIHNjaGVtYSBzb21lX290aGVyX25h bWUKKygyIHJvd3MpCisKK0RST1AgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxv Y2F0YWJsZTsKKy0tIFZlcmlmeSB0aGUgc2NoZW1hIHdhcyBkcm9wcGVkIHdpdGggdGhlIGV4dGVu c2lvbgorRFJPUCBTQ0hFTUEgc29tZV9vdGhlcl9uYW1lOworRVJST1I6ICBzY2hlbWEgInNvbWVf b3RoZXJfbmFtZSIgZG9lcyBub3QgZXhpc3QKKy0tIFRlc3Qgb3duZWRfc2NoZW1hICsgc3VwZXJ1 c2VyPWZhbHNlIGV4dGVuc2lvbgorQ1JFQVRFIFVTRVIgdGVzdF9leHRfdXNlcjsKK0dSQU5UIENS RUFURSBPTiBEQVRBQkFTRSByZWdyZXNzaW9uX3Rlc3RfZXh0ZW5zaW9ucyBUTyB0ZXN0X2V4dF91 c2VyOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiB0ZXN0X2V4dF91c2VyOworQ1JFQVRFIEVY VEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXI7CitcZHgrIHRlc3RfZXh0 X293bmVkX3NjaGVtYV9ub3N1cGVydXNlcjsKK09iamVjdHMgaW4gZXh0ZW5zaW9uICJ0ZXN0X2V4 dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIiCisgICAgICAgICAgICAgICBPYmplY3QgZGVzY3Jp cHRpb24gICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgZnVuY3Rpb24gdGVzdF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIu b3duZWQxKCkKKyBzY2hlbWEgdGVzdF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIKKygyIHJvd3Mp CisKKy0tIENoZWNrIHRoYXQgc2NoZW1hIGlzIG93bmVkIGJ5IHRoZSBjcmVhdGluZyB1c2VyIChu b3QgYm9vdHN0cmFwIHN1cGVydXNlcikKK1NFTEVDVCBuLm5zcG5hbWUsIG4ubnNwb3duZXIgPSBj dXJyZW50X3VzZXI6OnJlZ3JvbGUgYXMgb3duZWRfYnlfY3VycmVudF91c2VyCitGUk9NIHBnX25h bWVzcGFjZSBuCitXSEVSRSBuLm5zcG5hbWUgPSAndGVzdF9vd25lZF9zY2hlbWFfbm9zdXBlcnVz ZXInOworICAgICAgICAgICAgbnNwbmFtZSAgICAgICAgICAgIHwgb3duZWRfYnlfY3VycmVudF91 c2VyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHRlc3Rfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyIHwgdAorKDEgcm93KQorCistLSBV cGdyYWRlcyBzaG91bGQgd29yayBmb3Igc3VwZXJ1c2VyPWZhbHNlIGV4dGVuc2lvbnMKK0FMVEVS IEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIgVVBEQVRFIFRPICcx LjEnOworXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXI7CitPYmplY3RzIGlu IGV4dGVuc2lvbiAidGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyIgorICAgICAgICAg ICAgICAgT2JqZWN0IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ1bmN0aW9uIHRlc3Rfb3duZWRf c2NoZW1hX25vc3VwZXJ1c2VyLm93bmVkMSgpCisgZnVuY3Rpb24gdGVzdF9vd25lZF9zY2hlbWFf bm9zdXBlcnVzZXIub3duZWQyKCkKKyBzY2hlbWEgdGVzdF9vd25lZF9zY2hlbWFfbm9zdXBlcnVz ZXIKKygzIHJvd3MpCisKK0RST1AgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9ub3N1 cGVydXNlcjsKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKKy0tIFRlc3Qgb3duZWRfc2No ZW1hICsgdHJ1c3RlZD10cnVlIGV4dGVuc2lvbgorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiB0 ZXN0X2V4dF91c2VyOworQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1 c3RlZDsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hX3RydXN0ZWQ7CitPYmplY3RzIGluIGV4 dGVuc2lvbiAidGVzdF9leHRfb3duZWRfc2NoZW1hX3RydXN0ZWQiCisgICAgICAgICAgICAgT2Jq ZWN0IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ1bmN0aW9uIHRlc3Rfb3duZWRfc2NoZW1hX3RydXN0ZWQu b3duZWQxKCkKKyBzY2hlbWEgdGVzdF9vd25lZF9zY2hlbWFfdHJ1c3RlZAorKDIgcm93cykKKwor LS0gQ2hlY2sgdGhhdCBzY2hlbWEgaXMgb3duZWQgYnkgYm9vdHN0cmFwIHN1cGVydXNlciBmb3Ig dHJ1c3RlZCBleHRlbnNpb24sCistLSBldmVuIHRob3VnaCB0aGUgZXh0ZW5zaW9uIGlzIG93bmVk IGJ5IHRlc3RfZXh0X3VzZXIKK1NFTEVDVCBuLm5zcG5hbWUsIG4ubnNwb3duZXIgPSAxMCBhcyBv d25lZF9ieV9ib290c3RyYXBfc3VwZXJ1c2VyCitGUk9NIHBnX25hbWVzcGFjZSBuCitXSEVSRSBu Lm5zcG5hbWUgPSAndGVzdF9vd25lZF9zY2hlbWFfdHJ1c3RlZCc7CisgICAgICAgICAgbnNwbmFt ZSAgICAgICAgICB8IG93bmVkX2J5X2Jvb3RzdHJhcF9zdXBlcnVzZXIgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdGVzdF9vd25l ZF9zY2hlbWFfdHJ1c3RlZCB8IHQKKygxIHJvdykKKworLS0gVXBkYXRpbmcgdHJ1c3RlZCBleHRl bnNpb25zIHNob3VsZCB3b3JrIG5vcm1hbGx5CitBTFRFUiBFWFRFTlNJT04gdGVzdF9leHRfb3du ZWRfc2NoZW1hX3RydXN0ZWQgVVBEQVRFIFRPICcxLjEnOworXGR4KyB0ZXN0X2V4dF9vd25lZF9z Y2hlbWFfdHJ1c3RlZDsKK09iamVjdHMgaW4gZXh0ZW5zaW9uICJ0ZXN0X2V4dF9vd25lZF9zY2hl bWFfdHJ1c3RlZCIKKyAgICAgICAgICAgICBPYmplY3QgZGVzY3JpcHRpb24gICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZnVuY3Rp b24gdGVzdF9vd25lZF9zY2hlbWFfdHJ1c3RlZC5vd25lZDEoKQorIGZ1bmN0aW9uIHRlc3Rfb3du ZWRfc2NoZW1hX3RydXN0ZWQub3duZWQyKCkKKyBzY2hlbWEgdGVzdF9vd25lZF9zY2hlbWFfdHJ1 c3RlZAorKDMgcm93cykKKworRFJPUCBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3Ry dXN0ZWQ7CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitSRVZPS0UgQ1JFQVRFIE9OIERB VEFCQVNFIHJlZ3Jlc3Npb25fdGVzdF9leHRlbnNpb25zIEZST00gdGVzdF9leHRfdXNlcjsKK0RS T1AgVVNFUiB0ZXN0X2V4dF91c2VyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2V4dGVuc2lvbnMvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9u cy9tZXNvbi5idWlsZAppbmRleCBiZTljOWFlNTkzZi4uMDE5ZTBkMmEyNDMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL21lc29uLmJ1aWxkCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL21lc29uLmJ1aWxkCkBAIC00NCw2ICs0NCwxNyBA QCB0ZXN0X2luc3RhbGxfZGF0YSArPSBmaWxlcygKICAgJ3Rlc3RfZXh0X3JlcV9zY2hlbWEzLmNv bnRyb2wnLAogICAndGVzdF9leHRfc2V0X3NjaGVtYS0tMS4wLnNxbCcsCiAgICd0ZXN0X2V4dF9z ZXRfc2NoZW1hLmNvbnRyb2wnLAorICAndGVzdF9leHRfb3duZWRfc2NoZW1hLS0xLjAuc3FsJywK KyAgJ3Rlc3RfZXh0X293bmVkX3NjaGVtYS0tMS4wLS0xLjEuc3FsJywKKyAgJ3Rlc3RfZXh0X293 bmVkX3NjaGVtYS5jb250cm9sJywKKyAgJ3Rlc3RfZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNl ci0tMS4wLnNxbCcsCisgICd0ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXItLTEuMC0t MS4xLnNxbCcsCisgICd0ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIuY29udHJvbCcs CisgICd0ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1c3RlZC0tMS4wLnNxbCcsCisgICd0ZXN0X2V4 dF9vd25lZF9zY2hlbWFfdHJ1c3RlZC0tMS4wLS0xLjEuc3FsJywKKyAgJ3Rlc3RfZXh0X293bmVk X3NjaGVtYV90cnVzdGVkLmNvbnRyb2wnLAorICAndGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlLS0xLjAuc3FsJywKKyAgJ3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS5j b250cm9sJywKICkKIAogdGVzdHMgKz0gewpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2V4dGVuc2lvbnMvc3FsL3Rlc3RfZXh0ZW5zaW9ucy5zcWwgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZXh0ZW5zaW9ucy9zcWwvdGVzdF9leHRlbnNpb25zLnNxbAppbmRleCBiNTg3OGY2Zjgw Zi4uNzAwMDMzZmMxM2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNp b25zL3NxbC90ZXN0X2V4dGVuc2lvbnMuc3FsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9l eHRlbnNpb25zL3NxbC90ZXN0X2V4dGVuc2lvbnMuc3FsCkBAIC0zMDMsMyArMzAzLDc4IEBAIEFM VEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9yZXFfc2NoZW1hMSBTRVQgU0NIRU1BIHRlc3Rfc19kZXAy OyAgLS0gbm93IG9rCiBTRUxFQ1QgdGVzdF9zX2RlcDIuZGVwX3JlcTEoKTsKIFNFTEVDVCB0ZXN0 X3NfZGVwLmRlcF9yZXEyKCk7CiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9yZXFfc2NoZW1hMSBD QVNDQURFOworCistLQorLS0gVGVzdCBvd25lZCBzY2hlbWEgZXh0ZW5zaW9ucworLS0KKworQ1JF QVRFIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBGYWlscyBmb3IgYW4gYWxyZWFk eSBleGlzdGluZyBzY2hlbWEgdG8gYmUgcHJvdmlkZWQKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBGYWlscyBi ZWNhdXNlIGEgZGlmZmVyZW50IHNjaGVtYSBpcyBzZXQgaW4gY29udHJvbCBmaWxlCitDUkVBVEUg RVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYSBTQ0hFTUEgdGVzdF9zY2hlbWE7CitEUk9Q IFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0 X293bmVkX3NjaGVtYTsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hOworLS0gVGVzdCBBTFRF UiBFWFRFTlNJT04gVVBEQVRFIHdpdGggb3duZWQgc2NoZW1hCitBTFRFUiBFWFRFTlNJT04gdGVz dF9leHRfb3duZWRfc2NoZW1hIFVQREFURSBUTyAnMS4xJzsKK1xkeCsgdGVzdF9leHRfb3duZWRf c2NoZW1hOworLS0gVmVyaWZ5IHRoYXQgdGhlIG93bmVkIHNjaGVtYSBpcyBkcm9wcGVkIHRvZ2V0 aGVyIHdpdGggdGhlIGV4dGVuc2lvbgorRFJPUCBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2No ZW1hOworU0VMRUNUIENPVU5UKCopIEZST00gcGdfbmFtZXNwYWNlIFdIRVJFIG5zcG5hbWUgPSAn dGVzdF9leHRfb3duZWRfc2NoZW1hJzsKKworLS0gVGVzdCBkcm9wIGJlaGF2aW9yIHdpdGggbm9u LWV4dGVuc2lvbiBvYmplY3RzIGluIHRoZSBvd25lZCBzY2hlbWEKK0NSRUFURSBFWFRFTlNJT04g dGVzdF9leHRfb3duZWRfc2NoZW1hOworQ1JFQVRFIEZVTkNUSU9OIHRlc3RfZXh0X293bmVkX3Nj aGVtYS5ub25fZXh0X2Z1bmMoKSBSRVRVUk5TIGludCBMQU5HVUFHRSBTUUwgQVMgJCQgU0VMRUNU IDEgJCQ7CistLSBGYWlscyBiZWNhdXNlIG9mIHRoZSBub24tZXh0ZW5zaW9uIG9iamVjdAorRFJP UCBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hOworLS0gU3VjY2VlZHMgYW5kIGNhc2Nh ZGVzIHRvIHRoZSBub24tZXh0ZW5zaW9uIG9iamVjdAorRFJPUCBFWFRFTlNJT04gdGVzdF9leHRf b3duZWRfc2NoZW1hIENBU0NBREU7CisKK0NSRUFURSBTQ0hFTUEgYWxyZWFkeV9leGlzdGluZzsK Ky0tIEZhaWxzIGZvciBhbiBhbHJlYWR5IGV4aXN0aW5nIHNjaGVtYSB0byBiZSBwcm92aWRlZAor Q1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUgU0NIRU1B IGFscmVhZHlfZXhpc3Rpbmc7CistLSBGYWlscyBiZWNhdXNlIG5vIHNjaGVtYSBpcyBzZXQgaW4g Y29udHJvbCBmaWxlCitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxv Y2F0YWJsZTsKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRh YmxlIFNDSEVNQSB0ZXN0X3NjaGVtYTsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlCistLSBGYWlscyBiZWNhdXNlIHNjaGVtYSBhbHJlYWR5IGV4aXN0cworQUxURVIgRVhU RU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZSBTRVQgU0NIRU1BIGFscmVh ZHlfZXhpc3Rpbmc7CitBTFRFUiBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlIFNFVCBTQ0hFTUEgc29tZV9vdGhlcl9uYW1lOworXGR4KyB0ZXN0X2V4dF9vd25lZF9z Y2hlbWFfcmVsb2NhdGFibGUKK0RST1AgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9y ZWxvY2F0YWJsZTsKKy0tIFZlcmlmeSB0aGUgc2NoZW1hIHdhcyBkcm9wcGVkIHdpdGggdGhlIGV4 dGVuc2lvbgorRFJPUCBTQ0hFTUEgc29tZV9vdGhlcl9uYW1lOworCistLSBUZXN0IG93bmVkX3Nj aGVtYSArIHN1cGVydXNlcj1mYWxzZSBleHRlbnNpb24KK0NSRUFURSBVU0VSIHRlc3RfZXh0X3Vz ZXI7CitHUkFOVCBDUkVBVEUgT04gREFUQUJBU0UgcmVncmVzc2lvbl90ZXN0X2V4dGVuc2lvbnMg VE8gdGVzdF9leHRfdXNlcjsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gdGVzdF9leHRfdXNl cjsKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyOwor XGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXI7CistLSBDaGVjayB0aGF0IHNj aGVtYSBpcyBvd25lZCBieSB0aGUgY3JlYXRpbmcgdXNlciAobm90IGJvb3RzdHJhcCBzdXBlcnVz ZXIpCitTRUxFQ1Qgbi5uc3BuYW1lLCBuLm5zcG93bmVyID0gY3VycmVudF91c2VyOjpyZWdyb2xl IGFzIG93bmVkX2J5X2N1cnJlbnRfdXNlcgorRlJPTSBwZ19uYW1lc3BhY2UgbgorV0hFUkUgbi5u c3BuYW1lID0gJ3Rlc3Rfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyJzsKKy0tIFVwZ3JhZGVzIHNo b3VsZCB3b3JrIGZvciBzdXBlcnVzZXI9ZmFsc2UgZXh0ZW5zaW9ucworQUxURVIgRVhURU5TSU9O IHRlc3RfZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlciBVUERBVEUgVE8gJzEuMSc7CitcZHgr IHRlc3RfZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlcjsKK0RST1AgRVhURU5TSU9OIHRlc3Rf ZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlcjsKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TjsKKworLS0gVGVzdCBvd25lZF9zY2hlbWEgKyB0cnVzdGVkPXRydWUgZXh0ZW5zaW9uCitTRVQg U0VTU0lPTiBBVVRIT1JJWkFUSU9OIHRlc3RfZXh0X3VzZXI7CitDUkVBVEUgRVhURU5TSU9OIHRl c3RfZXh0X293bmVkX3NjaGVtYV90cnVzdGVkOworXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWFf dHJ1c3RlZDsKKy0tIENoZWNrIHRoYXQgc2NoZW1hIGlzIG93bmVkIGJ5IGJvb3RzdHJhcCBzdXBl cnVzZXIgZm9yIHRydXN0ZWQgZXh0ZW5zaW9uLAorLS0gZXZlbiB0aG91Z2ggdGhlIGV4dGVuc2lv biBpcyBvd25lZCBieSB0ZXN0X2V4dF91c2VyCitTRUxFQ1Qgbi5uc3BuYW1lLCBuLm5zcG93bmVy ID0gMTAgYXMgb3duZWRfYnlfYm9vdHN0cmFwX3N1cGVydXNlcgorRlJPTSBwZ19uYW1lc3BhY2Ug bgorV0hFUkUgbi5uc3BuYW1lID0gJ3Rlc3Rfb3duZWRfc2NoZW1hX3RydXN0ZWQnOworLS0gVXBk YXRpbmcgdHJ1c3RlZCBleHRlbnNpb25zIHNob3VsZCB3b3JrIG5vcm1hbGx5CitBTFRFUiBFWFRF TlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3RydXN0ZWQgVVBEQVRFIFRPICcxLjEnOworXGR4 KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1c3RlZDsKK0RST1AgRVhURU5TSU9OIHRlc3RfZXh0 X293bmVkX3NjaGVtYV90cnVzdGVkOworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworUkVW T0tFIENSRUFURSBPTiBEQVRBQkFTRSByZWdyZXNzaW9uX3Rlc3RfZXh0ZW5zaW9ucyBGUk9NIHRl c3RfZXh0X3VzZXI7CitEUk9QIFVTRVIgdGVzdF9leHRfdXNlcjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS0tMS4wLS0x LjEuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRf c2NoZW1hLS0xLjAtLTEuMS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmE4N2JlMWFjOTY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hLS0xLjAtLTEuMS5zcWwKQEAgLTAsMCAr MSwzIEBACistLSBUZXN0IGV4dGVuc2lvbiB1cGdyYWRlIHNjcmlwdAorQ1JFQVRFIEZVTkNUSU9O IG93bmVkMigpIFJFVFVSTlMgdGV4dAorICBMQU5HVUFHRSBTUUwgQVMgJCQgU0VMRUNUICdvd25l ZDInOjp0ZXh0ICQkOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lv bnMvdGVzdF9leHRfb3duZWRfc2NoZW1hLS0xLjAuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hLS0xLjAuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NzJhYjhlNjA3ZgotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS0t MS4wLnNxbApAQCAtMCwwICsxLDIgQEAKK0NSRUFURSBGVU5DVElPTiBvd25lZDEoKSBSRVRVUk5T IHRleHQKK0xBTkdVQUdFIFNRTCBBUyAkJCBTRUxFQ1QgMSAkJDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS5jb250cm9s IGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1h LmNvbnRyb2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUzMWMzOGRh ZWZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMv dGVzdF9leHRfb3duZWRfc2NoZW1hLmNvbnRyb2wKQEAgLTAsMCArMSw1IEBACitjb21tZW50ID0g J1Rlc3QgZXh0ZW5zaW9uIHdpdGggYW4gb3duZWQgc2NoZW1hJworZGVmYXVsdF92ZXJzaW9uID0g JzEuMCcKK3JlbG9jYXRhYmxlID0gZmFsc2UKK3NjaGVtYSA9IHRlc3RfZXh0X293bmVkX3NjaGVt YQorb3duZWRfc2NoZW1hID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyLS0xLjAtLTEuMS5z cWwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hl bWFfbm9zdXBlcnVzZXItLTEuMC0tMS4xLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uZTliYTc4OGQ3NTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXItLTEu MC0tMS4xLnNxbApAQCAtMCwwICsxLDUgQEAKKy0tIGNvbXBsYWluIGlmIHNjcmlwdCBpcyBzb3Vy Y2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhURU5TSU9OCitcZWNobyBVc2Ug IkFMVEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIgVVBEQVRF IFRPICcxLjEnIiB0byBsb2FkIHRoaXMgZmlsZS4gXHF1aXQKKworQ1JFQVRFIEZVTkNUSU9OIG93 bmVkMigpIFJFVFVSTlMgdGV4dAorICBMQU5HVUFHRSBTUUwgQVMgJCQgU0VMRUNUICdvd25lZDIn Ojp0ZXh0ICQkOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMv dGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyLS0xLjAuc3FsIGIvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyLS0x LjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42YzIyYzc3NzUx OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rl c3RfZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlci0tMS4wLnNxbApAQCAtMCwwICsxLDMgQEAK Ky0tIFRlc3QgZXh0ZW5zaW9uIHdpdGggb3duZWQgc2NoZW1hIChzdXBlcnVzZXI9ZmFsc2UpCitD UkVBVEUgRlVOQ1RJT04gb3duZWQxKCkgUkVUVVJOUyB0ZXh0CisgIExBTkdVQUdFIFNRTCBBUyAk JCBTRUxFQ1QgJ293bmVkMSc6OnRleHQgJCQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIuY29udHJv bCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVt YV9ub3N1cGVydXNlci5jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5jYWFkMDk2MDk5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVz dF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlci5jb250cm9sCkBA IC0wLDAgKzEsNSBAQAorY29tbWVudCA9ICdUZXN0IGV4dGVuc2lvbiB3aXRoIG93bmVkIHNjaGVt YSAoc3VwZXJ1c2VyPWZhbHNlKScKK2RlZmF1bHRfdmVyc2lvbiA9ICcxLjAnCitzdXBlcnVzZXIg PSBmYWxzZQorb3duZWRfc2NoZW1hID0gdHJ1ZQorc2NoZW1hID0gJ3Rlc3Rfb3duZWRfc2NoZW1h X25vc3VwZXJ1c2VyJwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lv bnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLS0xLjAuc3FsIGIvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxl LS0xLjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZmNjYWY0 YWY4MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25z L3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS0tMS4wLnNxbApAQCAtMCwwICsxLDIg QEAKK0NSRUFURSBGVU5DVElPTiBvd25lZDIoKSBSRVRVUk5TIHRleHQKK0xBTkdVQUdFIFNRTCBB UyAkJCBTRUxFQ1QgMSAkJDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRl bnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS5jb250cm9sIGIvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRh YmxlLmNvbnRyb2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNjZGEx ZTEyMzQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lv bnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLmNvbnRyb2wKQEAgLTAsMCArMSw0 IEBACitjb21tZW50ID0gJ1Rlc3QgZXh0ZW5zaW9uIHdpdGggYW4gb3duZWQgc2NoZW1hJworZGVm YXVsdF92ZXJzaW9uID0gJzEuMCcKK3JlbG9jYXRhYmxlID0gdHJ1ZQorb3duZWRfc2NoZW1hID0g dHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9l eHRfb3duZWRfc2NoZW1hX3RydXN0ZWQtLTEuMC0tMS4xLnNxbCBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYV90cnVzdGVkLS0xLjAtLTEuMS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE4N2JlMWFjOTY3Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9l eHRfb3duZWRfc2NoZW1hX3RydXN0ZWQtLTEuMC0tMS4xLnNxbApAQCAtMCwwICsxLDMgQEAKKy0t IFRlc3QgZXh0ZW5zaW9uIHVwZ3JhZGUgc2NyaXB0CitDUkVBVEUgRlVOQ1RJT04gb3duZWQyKCkg UkVUVVJOUyB0ZXh0CisgIExBTkdVQUdFIFNRTCBBUyAkJCBTRUxFQ1QgJ293bmVkMic6OnRleHQg JCQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4 dF9vd25lZF9zY2hlbWFfdHJ1c3RlZC0tMS4wLnNxbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9l eHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYV90cnVzdGVkLS0xLjAuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZTU0MTBjMTg0ZAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3Nj aGVtYV90cnVzdGVkLS0xLjAuc3FsCkBAIC0wLDAgKzEsMyBAQAorLS0gVGVzdCBleHRlbnNpb24g d2l0aCBvd25lZCBzY2hlbWEgKHRydXN0ZWQ9dHJ1ZSkKK0NSRUFURSBGVU5DVElPTiBvd25lZDEo KSBSRVRVUk5TIHRleHQKKyAgTEFOR1VBR0UgU1FMIEFTICQkIFNFTEVDVCAnb3duZWQxJzo6dGV4 dCAkJDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3Rf ZXh0X293bmVkX3NjaGVtYV90cnVzdGVkLmNvbnRyb2wgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf ZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1c3RlZC5jb250cm9sCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNzdiM2YxNjAzYgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3Nj aGVtYV90cnVzdGVkLmNvbnRyb2wKQEAgLTAsMCArMSw1IEBACitjb21tZW50ID0gJ1Rlc3QgZXh0 ZW5zaW9uIHdpdGggb3duZWQgc2NoZW1hICh0cnVzdGVkPXRydWUpJworZGVmYXVsdF92ZXJzaW9u ID0gJzEuMCcKK3RydXN0ZWQgPSB0cnVlCitvd25lZF9zY2hlbWEgPSB0cnVlCitzY2hlbWEgPSAn dGVzdF9vd25lZF9zY2hlbWFfdHJ1c3RlZCcKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9wZ19kdW1wL3QvMDAxX2Jhc2UucGwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfcGdfZHVt cC90LzAwMV9iYXNlLnBsCmluZGV4IDNkNjVjZTQ0OTdhLi40ZGIyOTU3MzE4ZCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3BnX2R1bXAvdC8wMDFfYmFzZS5wbAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfcGdfZHVtcC90LzAwMV9iYXNlLnBsCkBAIC0zODEsNiArMzgxLDM4 IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiAxLAorCQljcmVhdGVfc3Fs ID0+ICdDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYTsnLAorCQlyZWdleHAg PT4gcXIvXgorCQkJXFFDUkVBVEUgRVhURU5TSU9OIElGIE5PVCBFWElTVFMgdGVzdF9leHRfb3du ZWRfc2NoZW1hIFdJVEggU0NIRU1BIHRlc3RfZXh0X293bmVkX3NjaGVtYTtcRQorCQkJXG4veG0s CisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCXNjaGVtYV9vbmx5ID0+IDEsCisJCQlz ZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQliaW5hcnlfdXBn cmFkZSA9PiAxLAorCQkJd2l0aF9leHRlbnNpb24gPT4gMSwKKwkJCXdpdGhvdXRfZXh0ZW5zaW9u ID0+IDEKKwkJfQorCX0sCisKKwknQ1JFQVRFIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWEn ID0+IHsKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFNDSEVNQSB0ZXN0X2V4dF9vd25l ZF9zY2hlbWE7XEUKKwkJCVxuL3htLAorCQlsaWtlID0+IHt9LAorCX0sCisKKwknQUxURVIgRVhU RU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYSBBREQgU0NIRU1BIHRlc3RfZXh0X293bmVkX3Nj aGVtYScgPT4geworCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hIEFERCBTQ0hFTUEgdGVzdF9leHRfb3duZWRfc2NoZW1hO1xFCisJCQlc bi94bSwKKwkJbGlrZSA9PiB7fSwKKwl9LAorCiAJJ0NSRUFURSBST0xFIHJlZ3Jlc3NfZHVtcF90 ZXN0X3JvbGUnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NS RUFURSBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKCmJhc2UtY29tbWl0OiBhZGJhZDgz M2YzZDllOTE3NmU4ZDcwMDVmMTVlYTYwNTY5MDAyMjdkCi0tIAoyLjUyLjAKCg== --6b4d6db3bb26733560a525a9ad26021b941a389413c576d3d03d20df2a5c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=nocfbot.changes.diff Content-Type: text/x-patch; charset=utf-8; name=nocfbot.changes.diff ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMKaW5kZXggNzdiYzZhODI5ODcuLjAzYjNkZTM1N2JkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9leHRlbnNpb24uYwpAQCAtMTI0Myw2ICsxMjQzLDQ0IEBAIGV4dGVuc2lv bl9pc190cnVzdGVkKEV4dGVuc2lvbkNvbnRyb2xGaWxlICpjb250cm9sKQogCXJldHVybiBmYWxz ZTsKIH0KIAorLyoKKyAqIEVuZm9yY2Ugc3VwZXJ1c2VyIHJlcXVpcmVtZW50cyBmb3IgZXh0ZW5z aW9uIG9wZXJhdGlvbnMuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCBzd2l0Y2gg dG8gc3VwZXJ1c2VyIGZvciB0cnVzdGVkIGV4dGVuc2lvbnMuCisgKiBUaHJvd3MgYW4gZXJyb3Ig aWYgc3VwZXJ1c2VyIGlzIHJlcXVpcmVkIGJ1dCBub3QgYXZhaWxhYmxlLgorICoKKyAqIFRoaXMg ZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGNob29zaW5nIHRoZSBhcHByb3By aWF0ZQorICogY29udHJvbCBmaWxlIChpbmNsdWRpbmcgYW55IHNlY29uZGFyeSBjb250cm9sIGZp bGVzIGZvciB1cGRhdGVzKS4KKyAqLworc3RhdGljIGJvb2wKK2NoZWNrX2V4dGVuc2lvbl9zdXBl cnVzZXJfcmVxdWlyZW1lbnRzKEV4dGVuc2lvbkNvbnRyb2xGaWxlICpjb250cm9sLAorCQkJCQkJ CQkJICAgY29uc3QgY2hhciAqZnJvbV92ZXJzaW9uKQoreworCWlmIChjb250cm9sLT5zdXBlcnVz ZXIgJiYgIXN1cGVydXNlcigpKQorCXsKKwkJaWYgKGV4dGVuc2lvbl9pc190cnVzdGVkKGNvbnRy b2wpKQorCQkJcmV0dXJuIHRydWU7CisJCWVsc2UgaWYgKGZyb21fdmVyc2lvbiA9PSBOVUxMKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJ VklMRUdFKSwKKwkJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQgdG8gY3JlYXRlIGV4dGVu c2lvbiBcIiVzXCIiLAorCQkJCQkJCWNvbnRyb2wtPm5hbWUpLAorCQkJCQkgY29udHJvbC0+dHJ1 c3RlZAorCQkJCQkgPyBlcnJoaW50KCJNdXN0IGhhdmUgQ1JFQVRFIHByaXZpbGVnZSBvbiBjdXJy ZW50IGRhdGFiYXNlIHRvIGNyZWF0ZSB0aGlzIGV4dGVuc2lvbi4iKQorCQkJCQkgOiBlcnJoaW50 KCJNdXN0IGJlIHN1cGVydXNlciB0byBjcmVhdGUgdGhpcyBleHRlbnNpb24uIikpKTsKKwkJZWxz ZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRf UFJJVklMRUdFKSwKKwkJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQgdG8gdXBkYXRlIGV4 dGVuc2lvbiBcIiVzXCIiLAorCQkJCQkJCWNvbnRyb2wtPm5hbWUpLAorCQkJCQkgY29udHJvbC0+ dHJ1c3RlZAorCQkJCQkgPyBlcnJoaW50KCJNdXN0IGhhdmUgQ1JFQVRFIHByaXZpbGVnZSBvbiBj dXJyZW50IGRhdGFiYXNlIHRvIHVwZGF0ZSB0aGlzIGV4dGVuc2lvbi4iKQorCQkJCQkgOiBlcnJo aW50KCJNdXN0IGJlIHN1cGVydXNlciB0byB1cGRhdGUgdGhpcyBleHRlbnNpb24uIikpKTsKKwl9 CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBFeGVjdXRlIHRoZSBhcHByb3ByaWF0ZSBz Y3JpcHQgZmlsZSBmb3IgaW5zdGFsbGluZyBvciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uCiAgKgpA QCAtMTI3MSwyNyArMTMwOSw3IEBAIGV4ZWN1dGVfZXh0ZW5zaW9uX3NjcmlwdChPaWQgZXh0ZW5z aW9uT2lkLCBFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwKIAkgKiBoZXJlIHNvIHRoYXQg dGhlIGNvbnRyb2wgZmxhZ3MgYXJlIGNvcnJlY3RseSBhc3NvY2lhdGVkIHdpdGggdGhlIHJpZ2h0 CiAJICogc2NyaXB0KHMpIGlmIHRoZXkgaGFwcGVuIHRvIGJlIHNldCBpbiBzZWNvbmRhcnkgY29u dHJvbCBmaWxlcy4KIAkgKi8KLQlpZiAoY29udHJvbC0+c3VwZXJ1c2VyICYmICFzdXBlcnVzZXIo KSkKLQl7Ci0JCWlmIChleHRlbnNpb25faXNfdHJ1c3RlZChjb250cm9sKSkKLQkJCXN3aXRjaF90 b19zdXBlcnVzZXIgPSB0cnVlOwotCQllbHNlIGlmIChmcm9tX3ZlcnNpb24gPT0gTlVMTCkKLQkJ CWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJ TEVHRSksCi0JCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSBleHRlbnNp b24gXCIlc1wiIiwKLQkJCQkJCQljb250cm9sLT5uYW1lKSwKLQkJCQkJIGNvbnRyb2wtPnRydXN0 ZWQKLQkJCQkJID8gZXJyaGludCgiTXVzdCBoYXZlIENSRUFURSBwcml2aWxlZ2Ugb24gY3VycmVu dCBkYXRhYmFzZSB0byBjcmVhdGUgdGhpcyBleHRlbnNpb24uIikKLQkJCQkJIDogZXJyaGludCgi TXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIHRoaXMgZXh0ZW5zaW9uLiIpKSk7Ci0JCWVsc2UK LQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCi0JCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIHRvIHVwZGF0ZSBleHRl bnNpb24gXCIlc1wiIiwKLQkJCQkJCQljb250cm9sLT5uYW1lKSwKLQkJCQkJIGNvbnRyb2wtPnRy dXN0ZWQKLQkJCQkJID8gZXJyaGludCgiTXVzdCBoYXZlIENSRUFURSBwcml2aWxlZ2Ugb24gY3Vy cmVudCBkYXRhYmFzZSB0byB1cGRhdGUgdGhpcyBleHRlbnNpb24uIikKLQkJCQkJIDogZXJyaGlu dCgiTXVzdCBiZSBzdXBlcnVzZXIgdG8gdXBkYXRlIHRoaXMgZXh0ZW5zaW9uLiIpKSk7Ci0JfQor CXN3aXRjaF90b19zdXBlcnVzZXIgPSBjaGVja19leHRlbnNpb25fc3VwZXJ1c2VyX3JlcXVpcmVt ZW50cyhjb250cm9sLCBmcm9tX3ZlcnNpb24pOwogCiAJZmlsZW5hbWUgPSBnZXRfZXh0ZW5zaW9u X3NjcmlwdF9maWxlbmFtZShjb250cm9sLCBmcm9tX3ZlcnNpb24sIHZlcnNpb24pOwogCkBAIC0x ODU0LDcgKzE4NzIsNyBAQCBDcmVhdGVTY2hlbWFGb3JFeHRlbnNpb24oY2hhciAqc2NoZW1hTmFt ZSkKIH0KIAogLyoKLSAqIENyZWF0ZSBhIG93bmVkIHNjaGVtYSB3aXRoIHRoZSBnaXZlbiBuYW1l LCBhcyBwYXJ0IG9mIENSRUFURSBFWFRFTlNJT04sIGFuZAorICogQ3JlYXRlIGFuIG93bmVkIHNj aGVtYSB3aXRoIHRoZSBnaXZlbiBuYW1lLCBhcyBwYXJ0IG9mIENSRUFURSBFWFRFTlNJT04sIGFu ZAogICogZmFpbHMgaWYgdGhlIHNjaGVtYSBhbHJlYWR5IGV4aXN0LgogICovCiBzdGF0aWMgT2lk CkBAIC0yMDE3LDYgKzIwMzUsOSBAQCBDcmVhdGVFeHRlbnNpb25JbnRlcm5hbChjaGFyICpleHRl bnNpb25OYW1lLAogCU9pZAkJCWV4dGVuc2lvbk9pZDsKIAlPYmplY3RBZGRyZXNzIGFkZHJlc3M7 CiAJTGlzdENlbGwgICAqbGM7CisJYm9vbAkJc3dpdGNoX3RvX3N1cGVydXNlciA9IGZhbHNlOwor CU9pZAkJCXNhdmVfdXNlcmlkID0gMDsKKwlpbnQJCQlzYXZlX3NlY19jb250ZXh0ID0gMDsKIAog CS8qCiAJICogUmVhZCB0aGUgcHJpbWFyeSBjb250cm9sIGZpbGUuICBOb3RlIHdlIGFzc3VtZSB0 aGF0IGl0IGRvZXMgbm90IGNvbnRhaW4KQEAgLTIwODQsOCArMjEwNSwyNyBAQCBDcmVhdGVFeHRl bnNpb25JbnRlcm5hbChjaGFyICpleHRlbnNpb25OYW1lLAogCSAqLwogCWNvbnRyb2wgPSByZWFk X2V4dGVuc2lvbl9hdXhfY29udHJvbF9maWxlKHBjb250cm9sLCB2ZXJzaW9uTmFtZSk7CiAKKwkv KgorCSAqIEZvciB0cnVzdGVkIGV4dGVuc2lvbnMgd2l0aCBvd25lZCBzY2hlbWFzLCB3ZSBuZWVk IHRvIGNyZWF0ZSB0aGUgc2NoZW1hCisJICogYXMgc3VwZXJ1c2VyIHRvIGVuc3VyZSBwcm9wZXIg b3duZXJzaGlwLgorCSAqLworCWlmIChjb250cm9sLT5vd25lZF9zY2hlbWEpCisJeworCQlzd2l0 Y2hfdG9fc3VwZXJ1c2VyID0gY2hlY2tfZXh0ZW5zaW9uX3N1cGVydXNlcl9yZXF1aXJlbWVudHMo Y29udHJvbCwgTlVMTCk7CisJCWlmIChzd2l0Y2hfdG9fc3VwZXJ1c2VyKQorCQl7CisJCQlHZXRV c2VySWRBbmRTZWNDb250ZXh0KCZzYXZlX3VzZXJpZCwgJnNhdmVfc2VjX2NvbnRleHQpOworCQkJ U2V0VXNlcklkQW5kU2VjQ29udGV4dChCT09UU1RSQVBfU1VQRVJVU0VSSUQsCisJCQkJCQkJCSAg IHNhdmVfc2VjX2NvbnRleHQgfCBTRUNVUklUWV9MT0NBTF9VU0VSSURfQ0hBTkdFKTsKKwkJfQor CX0KKwogCXNjaGVtYU9pZCA9IEdldE9yQ3JlYXRlU2NoZW1hRm9yRXh0ZW5zaW9uKCZzY2hlbWFO YW1lLCBjb250cm9sLCBjYXNjYWRlKTsKIAorCS8qIFJlc3RvcmUgYXV0aGVudGljYXRpb24gc3Rh dGUgYWZ0ZXIgc2NoZW1hIGNyZWF0aW9uIGlmIG5lZWRlZCAqLworCWlmIChzd2l0Y2hfdG9fc3Vw ZXJ1c2VyKQorCQlTZXRVc2VySWRBbmRTZWNDb250ZXh0KHNhdmVfdXNlcmlkLCBzYXZlX3NlY19j b250ZXh0KTsKKwogCS8qCiAJICogTWFrZSBub3RlIGlmIGEgdGVtcG9yYXJ5IG5hbWVzcGFjZSBo YXMgYmVlbiBhY2Nlc3NlZCBpbiB0aGlzCiAJICogdHJhbnNhY3Rpb24uCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9leHRlbnNpb25zL01ha2VmaWxlCmluZGV4IGE2NTk0YzE5ZDdlLi4wYTdjZjY5MjIx NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvTWFrZWZpbGUK KysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvTWFrZWZpbGUKQEAgLTEwLDcg KzEwLDggQEAgRVhURU5TSU9OID0gdGVzdF9leHQxIHRlc3RfZXh0MiB0ZXN0X2V4dDMgdGVzdF9l eHQ0IHRlc3RfZXh0NSB0ZXN0X2V4dDYgXAogICAgICAgICAgICAgdGVzdF9leHRfZXZ0dHJpZyBc CiAgICAgICAgICAgICB0ZXN0X2V4dF9zZXRfc2NoZW1hIFwKICAgICAgICAgICAgIHRlc3RfZXh0 X3JlcV9zY2hlbWExIHRlc3RfZXh0X3JlcV9zY2hlbWEyIHRlc3RfZXh0X3JlcV9zY2hlbWEzIFwK LSAgICAgICAgICAgIHRlc3RfZXh0X293bmVkX3NjaGVtYSB0ZXN0X2V4dF9vd25lZF9zY2hlbWFf cmVsb2NhdGFibGUKKyAgICAgICAgICAgIHRlc3RfZXh0X293bmVkX3NjaGVtYSB0ZXN0X2V4dF9v d25lZF9zY2hlbWFfbm9zdXBlcnVzZXIgXAorICAgICAgICAgICAgdGVzdF9leHRfb3duZWRfc2No ZW1hX3RydXN0ZWQgdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlCiAKIERBVEEgPSB0 ZXN0X2V4dDEtLTEuMC5zcWwgdGVzdF9leHQyLS0xLjAuc3FsIHRlc3RfZXh0My0tMS4wLnNxbCBc CiAgICAgICAgdGVzdF9leHQ0LS0xLjAuc3FsIHRlc3RfZXh0NS0tMS4wLnNxbCB0ZXN0X2V4dDYt LTEuMC5zcWwgXApAQCAtMjgsNiArMjksMTEgQEAgREFUQSA9IHRlc3RfZXh0MS0tMS4wLnNxbCB0 ZXN0X2V4dDItLTEuMC5zcWwgdGVzdF9leHQzLS0xLjAuc3FsIFwKICAgICAgICB0ZXN0X2V4dF9y ZXFfc2NoZW1hMi0tMS4wLnNxbCBcCiAgICAgICAgdGVzdF9leHRfcmVxX3NjaGVtYTMtLTEuMC5z cWwgXAogICAgICAgIHRlc3RfZXh0X293bmVkX3NjaGVtYS0tMS4wLnNxbCBcCisgICAgICAgdGVz dF9leHRfb3duZWRfc2NoZW1hLS0xLjAtLTEuMS5zcWwgXAorICAgICAgIHRlc3RfZXh0X293bmVk X3NjaGVtYV9ub3N1cGVydXNlci0tMS4wLnNxbCBcCisgICAgICAgdGVzdF9leHRfb3duZWRfc2No ZW1hX25vc3VwZXJ1c2VyLS0xLjAtLTEuMS5zcWwgXAorICAgICAgIHRlc3RfZXh0X293bmVkX3Nj aGVtYV90cnVzdGVkLS0xLjAuc3FsIFwKKyAgICAgICB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1 c3RlZC0tMS4wLS0xLjEuc3FsIFwKICAgICAgICB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2Nh dGFibGUtLTEuMC5zcWwKIAogUkVHUkVTUyA9IHRlc3RfZXh0ZW5zaW9ucyB0ZXN0X2V4dGRlcGVu ZApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvZXhwZWN0ZWQv dGVzdF9leHRlbnNpb25zLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL2V4 cGVjdGVkL3Rlc3RfZXh0ZW5zaW9ucy5vdXQKaW5kZXggYjgyYjM5NzlhOTAuLjE4MjBlNzZkNzQ2 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9leHBlY3RlZC90 ZXN0X2V4dGVuc2lvbnMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25z L2V4cGVjdGVkL3Rlc3RfZXh0ZW5zaW9ucy5vdXQKQEAgLTY5MCw3ICs2OTAsMzYgQEAgT2JqZWN0 cyBpbiBleHRlbnNpb24gInRlc3RfZXh0X293bmVkX3NjaGVtYSIKICBzY2hlbWEgdGVzdF9leHRf b3duZWRfc2NoZW1hCiAoMiByb3dzKQogCistLSBUZXN0IEFMVEVSIEVYVEVOU0lPTiBVUERBVEUg d2l0aCBvd25lZCBzY2hlbWEKK0FMVEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWEg VVBEQVRFIFRPICcxLjEnOworXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitPYmplY3RzIGlu IGV4dGVuc2lvbiAidGVzdF9leHRfb3duZWRfc2NoZW1hIgorICAgICAgICAgICBPYmplY3QgZGVz Y3JpcHRpb24gICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgZnVuY3Rpb24gdGVzdF9leHRfb3duZWRfc2NoZW1hLm93bmVkMSgpCisgZnVuY3Rp b24gdGVzdF9leHRfb3duZWRfc2NoZW1hLm93bmVkMigpCisgc2NoZW1hIHRlc3RfZXh0X293bmVk X3NjaGVtYQorKDMgcm93cykKKworLS0gVmVyaWZ5IHRoYXQgdGhlIG93bmVkIHNjaGVtYSBpcyBk cm9wcGVkIHRvZ2V0aGVyIHdpdGggdGhlIGV4dGVuc2lvbgogRFJPUCBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hOworU0VMRUNUIENPVU5UKCopIEZST00gcGdfbmFtZXNwYWNlIFdIRVJF IG5zcG5hbWUgPSAndGVzdF9leHRfb3duZWRfc2NoZW1hJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAgMAorKDEgcm93KQorCistLSBUZXN0IGRyb3AgYmVoYXZpb3Igd2l0aCBub24tZXh0ZW5zaW9u IG9iamVjdHMgaW4gdGhlIG93bmVkIHNjaGVtYQorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9v d25lZF9zY2hlbWE7CitDUkVBVEUgRlVOQ1RJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hLm5vbl9l eHRfZnVuYygpIFJFVFVSTlMgaW50IExBTkdVQUdFIFNRTCBBUyAkJCBTRUxFQ1QgMSAkJDsKKy0t IEZhaWxzIGJlY2F1c2Ugb2YgdGhlIG5vbi1leHRlbnNpb24gb2JqZWN0CitEUk9QIEVYVEVOU0lP TiB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitFUlJPUjogIGNhbm5vdCBkcm9wIGV4dGVuc2lvbiB0 ZXN0X2V4dF9vd25lZF9zY2hlbWEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAor REVUQUlMOiAgZnVuY3Rpb24gdGVzdF9leHRfb3duZWRfc2NoZW1hLm5vbl9leHRfZnVuYygpIGRl cGVuZHMgb24gc2NoZW1hIHRlc3RfZXh0X293bmVkX3NjaGVtYQorSElOVDogIFVzZSBEUk9QIC4u LiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIFN1Y2NlZWRz IGFuZCBjYXNjYWRlcyB0byB0aGUgbm9uLWV4dGVuc2lvbiBvYmplY3QKK0RST1AgRVhURU5TSU9O IHRlc3RfZXh0X293bmVkX3NjaGVtYSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBmdW5jdGlvbiB0ZXN0X2V4dF9vd25lZF9zY2hlbWEubm9uX2V4dF9mdW5jKCkKIENSRUFURSBT Q0hFTUEgYWxyZWFkeV9leGlzdGluZzsKIC0tIEZhaWxzIGZvciBhbiBhbHJlYWR5IGV4aXN0aW5n IHNjaGVtYSB0byBiZSBwcm92aWRlZAogQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9z Y2hlbWFfcmVsb2NhdGFibGUgU0NIRU1BIGFscmVhZHlfZXhpc3Rpbmc7CkBAIC03MjEsMyArNzUw LDc3IEBAIE9iamVjdHMgaW4gZXh0ZW5zaW9uICJ0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2Nh dGFibGUiCiAoMiByb3dzKQogCiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFf cmVsb2NhdGFibGU7CistLSBWZXJpZnkgdGhlIHNjaGVtYSB3YXMgZHJvcHBlZCB3aXRoIHRoZSBl eHRlbnNpb24KK0RST1AgU0NIRU1BIHNvbWVfb3RoZXJfbmFtZTsKK0VSUk9SOiAgc2NoZW1hICJz b21lX290aGVyX25hbWUiIGRvZXMgbm90IGV4aXN0CistLSBUZXN0IG93bmVkX3NjaGVtYSArIHN1 cGVydXNlcj1mYWxzZSBleHRlbnNpb24KK0NSRUFURSBVU0VSIHRlc3RfZXh0X3VzZXI7CitHUkFO VCBDUkVBVEUgT04gREFUQUJBU0UgcmVncmVzc2lvbl90ZXN0X2V4dGVuc2lvbnMgVE8gdGVzdF9l eHRfdXNlcjsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gdGVzdF9leHRfdXNlcjsKK0NSRUFU RSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyOworXGR4KyB0ZXN0 X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXI7CitPYmplY3RzIGluIGV4dGVuc2lvbiAidGVz dF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyIgorICAgICAgICAgICAgICAgT2JqZWN0IGRl c2NyaXB0aW9uICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ1bmN0aW9uIHRlc3Rfb3duZWRfc2NoZW1hX25vc3VwZXJ1 c2VyLm93bmVkMSgpCisgc2NoZW1hIHRlc3Rfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyCisoMiBy b3dzKQorCistLSBDaGVjayB0aGF0IHNjaGVtYSBpcyBvd25lZCBieSB0aGUgY3JlYXRpbmcgdXNl ciAobm90IGJvb3RzdHJhcCBzdXBlcnVzZXIpCitTRUxFQ1Qgbi5uc3BuYW1lLCBuLm5zcG93bmVy ID0gY3VycmVudF91c2VyOjpyZWdyb2xlIGFzIG93bmVkX2J5X2N1cnJlbnRfdXNlcgorRlJPTSBw Z19uYW1lc3BhY2UgbgorV0hFUkUgbi5uc3BuYW1lID0gJ3Rlc3Rfb3duZWRfc2NoZW1hX25vc3Vw ZXJ1c2VyJzsKKyAgICAgICAgICAgIG5zcG5hbWUgICAgICAgICAgICB8IG93bmVkX2J5X2N1cnJl bnRfdXNlciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0ZXN0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlciB8IHQKKygxIHJvdykKKwor LS0gVXBncmFkZXMgc2hvdWxkIHdvcmsgZm9yIHN1cGVydXNlcj1mYWxzZSBleHRlbnNpb25zCitB TFRFUiBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyIFVQREFURSBU TyAnMS4xJzsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyOworT2JqZWN0 cyBpbiBleHRlbnNpb24gInRlc3RfZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlciIKKyAgICAg ICAgICAgICAgIE9iamVjdCBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmdW5jdGlvbiB0ZXN0X293 bmVkX3NjaGVtYV9ub3N1cGVydXNlci5vd25lZDEoKQorIGZ1bmN0aW9uIHRlc3Rfb3duZWRfc2No ZW1hX25vc3VwZXJ1c2VyLm93bmVkMigpCisgc2NoZW1hIHRlc3Rfb3duZWRfc2NoZW1hX25vc3Vw ZXJ1c2VyCisoMyByb3dzKQorCitEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFf bm9zdXBlcnVzZXI7CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CistLSBUZXN0IG93bmVk X3NjaGVtYSArIHRydXN0ZWQ9dHJ1ZSBleHRlbnNpb24KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gdGVzdF9leHRfdXNlcjsKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1h X3RydXN0ZWQ7CitcZHgrIHRlc3RfZXh0X293bmVkX3NjaGVtYV90cnVzdGVkOworT2JqZWN0cyBp biBleHRlbnNpb24gInRlc3RfZXh0X293bmVkX3NjaGVtYV90cnVzdGVkIgorICAgICAgICAgICAg IE9iamVjdCBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmdW5jdGlvbiB0ZXN0X293bmVkX3NjaGVtYV90cnVz dGVkLm93bmVkMSgpCisgc2NoZW1hIHRlc3Rfb3duZWRfc2NoZW1hX3RydXN0ZWQKKygyIHJvd3Mp CisKKy0tIENoZWNrIHRoYXQgc2NoZW1hIGlzIG93bmVkIGJ5IGJvb3RzdHJhcCBzdXBlcnVzZXIg Zm9yIHRydXN0ZWQgZXh0ZW5zaW9uLAorLS0gZXZlbiB0aG91Z2ggdGhlIGV4dGVuc2lvbiBpcyBv d25lZCBieSB0ZXN0X2V4dF91c2VyCitTRUxFQ1Qgbi5uc3BuYW1lLCBuLm5zcG93bmVyID0gMTAg YXMgb3duZWRfYnlfYm9vdHN0cmFwX3N1cGVydXNlcgorRlJPTSBwZ19uYW1lc3BhY2UgbgorV0hF UkUgbi5uc3BuYW1lID0gJ3Rlc3Rfb3duZWRfc2NoZW1hX3RydXN0ZWQnOworICAgICAgICAgIG5z cG5hbWUgICAgICAgICAgfCBvd25lZF9ieV9ib290c3RyYXBfc3VwZXJ1c2VyIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHRlc3Rf b3duZWRfc2NoZW1hX3RydXN0ZWQgfCB0CisoMSByb3cpCisKKy0tIFVwZGF0aW5nIHRydXN0ZWQg ZXh0ZW5zaW9ucyBzaG91bGQgd29yayBub3JtYWxseQorQUxURVIgRVhURU5TSU9OIHRlc3RfZXh0 X293bmVkX3NjaGVtYV90cnVzdGVkIFVQREFURSBUTyAnMS4xJzsKK1xkeCsgdGVzdF9leHRfb3du ZWRfc2NoZW1hX3RydXN0ZWQ7CitPYmplY3RzIGluIGV4dGVuc2lvbiAidGVzdF9leHRfb3duZWRf c2NoZW1hX3RydXN0ZWQiCisgICAgICAgICAgICAgT2JqZWN0IGRlc2NyaXB0aW9uICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ1 bmN0aW9uIHRlc3Rfb3duZWRfc2NoZW1hX3RydXN0ZWQub3duZWQxKCkKKyBmdW5jdGlvbiB0ZXN0 X293bmVkX3NjaGVtYV90cnVzdGVkLm93bmVkMigpCisgc2NoZW1hIHRlc3Rfb3duZWRfc2NoZW1h X3RydXN0ZWQKKygzIHJvd3MpCisKK0RST1AgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVt YV90cnVzdGVkOworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworUkVWT0tFIENSRUFURSBP TiBEQVRBQkFTRSByZWdyZXNzaW9uX3Rlc3RfZXh0ZW5zaW9ucyBGUk9NIHRlc3RfZXh0X3VzZXI7 CitEUk9QIFVTRVIgdGVzdF9leHRfdXNlcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9leHRlbnNpb25zL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVu c2lvbnMvbWVzb24uYnVpbGQKaW5kZXggM2UyNWM0NDY2ZWMuLjAxOWUwZDJhMjQzIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9tZXNvbi5idWlsZAorKysgYi9z cmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9tZXNvbi5idWlsZApAQCAtNDUsNyArNDUs MTQgQEAgdGVzdF9pbnN0YWxsX2RhdGEgKz0gZmlsZXMoCiAgICd0ZXN0X2V4dF9zZXRfc2NoZW1h LS0xLjAuc3FsJywKICAgJ3Rlc3RfZXh0X3NldF9zY2hlbWEuY29udHJvbCcsCiAgICd0ZXN0X2V4 dF9vd25lZF9zY2hlbWEtLTEuMC5zcWwnLAorICAndGVzdF9leHRfb3duZWRfc2NoZW1hLS0xLjAt LTEuMS5zcWwnLAogICAndGVzdF9leHRfb3duZWRfc2NoZW1hLmNvbnRyb2wnLAorICAndGVzdF9l eHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyLS0xLjAuc3FsJywKKyAgJ3Rlc3RfZXh0X293bmVk X3NjaGVtYV9ub3N1cGVydXNlci0tMS4wLS0xLjEuc3FsJywKKyAgJ3Rlc3RfZXh0X293bmVkX3Nj aGVtYV9ub3N1cGVydXNlci5jb250cm9sJywKKyAgJ3Rlc3RfZXh0X293bmVkX3NjaGVtYV90cnVz dGVkLS0xLjAuc3FsJywKKyAgJ3Rlc3RfZXh0X293bmVkX3NjaGVtYV90cnVzdGVkLS0xLjAtLTEu MS5zcWwnLAorICAndGVzdF9leHRfb3duZWRfc2NoZW1hX3RydXN0ZWQuY29udHJvbCcsCiAgICd0 ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUtLTEuMC5zcWwnLAogICAndGVzdF9leHRf b3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLmNvbnRyb2wnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvc3FsL3Rlc3RfZXh0ZW5zaW9ucy5zcWwgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9zcWwvdGVzdF9leHRlbnNpb25zLnNxbAppbmRl eCBhOTc4NjZkMDBlYS4uNzAwMDMzZmMxM2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9leHRlbnNpb25zL3NxbC90ZXN0X2V4dGVuc2lvbnMuc3FsCisrKyBiL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9leHRlbnNpb25zL3NxbC90ZXN0X2V4dGVuc2lvbnMuc3FsCkBAIC0zMTYsNyAr MzE2LDIwIEBAIENSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hIFNDSEVNQSB0 ZXN0X3NjaGVtYTsKIERST1AgU0NIRU1BIHRlc3RfZXh0X293bmVkX3NjaGVtYTsKIENSRUFURSBF WFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hOwogXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hl bWE7CistLSBUZXN0IEFMVEVSIEVYVEVOU0lPTiBVUERBVEUgd2l0aCBvd25lZCBzY2hlbWEKK0FM VEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWEgVVBEQVRFIFRPICcxLjEnOworXGR4 KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBWZXJpZnkgdGhhdCB0aGUgb3duZWQgc2NoZW1h IGlzIGRyb3BwZWQgdG9nZXRoZXIgd2l0aCB0aGUgZXh0ZW5zaW9uCitEUk9QIEVYVEVOU0lPTiB0 ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBwZ19uYW1lc3BhY2Ug V0hFUkUgbnNwbmFtZSA9ICd0ZXN0X2V4dF9vd25lZF9zY2hlbWEnOworCistLSBUZXN0IGRyb3Ag YmVoYXZpb3Igd2l0aCBub24tZXh0ZW5zaW9uIG9iamVjdHMgaW4gdGhlIG93bmVkIHNjaGVtYQor Q1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitDUkVBVEUgRlVOQ1RJT04g dGVzdF9leHRfb3duZWRfc2NoZW1hLm5vbl9leHRfZnVuYygpIFJFVFVSTlMgaW50IExBTkdVQUdF IFNRTCBBUyAkJCBTRUxFQ1QgMSAkJDsKKy0tIEZhaWxzIGJlY2F1c2Ugb2YgdGhlIG5vbi1leHRl bnNpb24gb2JqZWN0CiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBT dWNjZWVkcyBhbmQgY2FzY2FkZXMgdG8gdGhlIG5vbi1leHRlbnNpb24gb2JqZWN0CitEUk9QIEVY VEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWEgQ0FTQ0FERTsKIAogQ1JFQVRFIFNDSEVNQSBh bHJlYWR5X2V4aXN0aW5nOwogLS0gRmFpbHMgZm9yIGFuIGFscmVhZHkgZXhpc3Rpbmcgc2NoZW1h IHRvIGJlIHByb3ZpZGVkCkBAIC0zMzAsMyArMzQzLDM4IEBAIEFMVEVSIEVYVEVOU0lPTiB0ZXN0 X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUgU0VUIFNDSEVNQSBhbHJlYWR5X2V4aXN0aW5n OwogQUxURVIgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZSBTRVQg U0NIRU1BIHNvbWVfb3RoZXJfbmFtZTsKIFxkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlCiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGU7 CistLSBWZXJpZnkgdGhlIHNjaGVtYSB3YXMgZHJvcHBlZCB3aXRoIHRoZSBleHRlbnNpb24KK0RS T1AgU0NIRU1BIHNvbWVfb3RoZXJfbmFtZTsKKworLS0gVGVzdCBvd25lZF9zY2hlbWEgKyBzdXBl cnVzZXI9ZmFsc2UgZXh0ZW5zaW9uCitDUkVBVEUgVVNFUiB0ZXN0X2V4dF91c2VyOworR1JBTlQg Q1JFQVRFIE9OIERBVEFCQVNFIHJlZ3Jlc3Npb25fdGVzdF9leHRlbnNpb25zIFRPIHRlc3RfZXh0 X3VzZXI7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHRlc3RfZXh0X3VzZXI7CitDUkVBVEUg RVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlcjsKK1xkeCsgdGVzdF9l eHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyOworLS0gQ2hlY2sgdGhhdCBzY2hlbWEgaXMgb3du ZWQgYnkgdGhlIGNyZWF0aW5nIHVzZXIgKG5vdCBib290c3RyYXAgc3VwZXJ1c2VyKQorU0VMRUNU IG4ubnNwbmFtZSwgbi5uc3Bvd25lciA9IGN1cnJlbnRfdXNlcjo6cmVncm9sZSBhcyBvd25lZF9i eV9jdXJyZW50X3VzZXIKK0ZST00gcGdfbmFtZXNwYWNlIG4KK1dIRVJFIG4ubnNwbmFtZSA9ICd0 ZXN0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlcic7CistLSBVcGdyYWRlcyBzaG91bGQgd29yayBm b3Igc3VwZXJ1c2VyPWZhbHNlIGV4dGVuc2lvbnMKK0FMVEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9v d25lZF9zY2hlbWFfbm9zdXBlcnVzZXIgVVBEQVRFIFRPICcxLjEnOworXGR4KyB0ZXN0X2V4dF9v d25lZF9zY2hlbWFfbm9zdXBlcnVzZXI7CitEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9z Y2hlbWFfbm9zdXBlcnVzZXI7CitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CisKKy0tIFRl c3Qgb3duZWRfc2NoZW1hICsgdHJ1c3RlZD10cnVlIGV4dGVuc2lvbgorU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiB0ZXN0X2V4dF91c2VyOworQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25l ZF9zY2hlbWFfdHJ1c3RlZDsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hX3RydXN0ZWQ7Cist LSBDaGVjayB0aGF0IHNjaGVtYSBpcyBvd25lZCBieSBib290c3RyYXAgc3VwZXJ1c2VyIGZvciB0 cnVzdGVkIGV4dGVuc2lvbiwKKy0tIGV2ZW4gdGhvdWdoIHRoZSBleHRlbnNpb24gaXMgb3duZWQg YnkgdGVzdF9leHRfdXNlcgorU0VMRUNUIG4ubnNwbmFtZSwgbi5uc3Bvd25lciA9IDEwIGFzIG93 bmVkX2J5X2Jvb3RzdHJhcF9zdXBlcnVzZXIKK0ZST00gcGdfbmFtZXNwYWNlIG4KK1dIRVJFIG4u bnNwbmFtZSA9ICd0ZXN0X293bmVkX3NjaGVtYV90cnVzdGVkJzsKKy0tIFVwZGF0aW5nIHRydXN0 ZWQgZXh0ZW5zaW9ucyBzaG91bGQgd29yayBub3JtYWxseQorQUxURVIgRVhURU5TSU9OIHRlc3Rf ZXh0X293bmVkX3NjaGVtYV90cnVzdGVkIFVQREFURSBUTyAnMS4xJzsKK1xkeCsgdGVzdF9leHRf b3duZWRfc2NoZW1hX3RydXN0ZWQ7CitEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hl bWFfdHJ1c3RlZDsKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK1JFVk9LRSBDUkVBVEUg T04gREFUQUJBU0UgcmVncmVzc2lvbl90ZXN0X2V4dGVuc2lvbnMgRlJPTSB0ZXN0X2V4dF91c2Vy OworRFJPUCBVU0VSIHRlc3RfZXh0X3VzZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWEtLTEuMC0tMS4xLnNxbCBiL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS0tMS4w LS0xLjEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hODdiZTFh Yzk2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25z L3Rlc3RfZXh0X293bmVkX3NjaGVtYS0tMS4wLS0xLjEuc3FsCkBAIC0wLDAgKzEsMyBAQAorLS0g VGVzdCBleHRlbnNpb24gdXBncmFkZSBzY3JpcHQKK0NSRUFURSBGVU5DVElPTiBvd25lZDIoKSBS RVRVUk5TIHRleHQKKyAgTEFOR1VBR0UgU1FMIEFTICQkIFNFTEVDVCAnb3duZWQyJzo6dGV4dCAk JDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0 X293bmVkX3NjaGVtYV9ub3N1cGVydXNlci0tMS4wLS0xLjEuc3FsIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyLS0xLjAt LTEuMS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5YmE3ODhk NzUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMv dGVzdF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyLS0xLjAtLTEuMS5zcWwKQEAgLTAsMCAr MSw1IEBACistLSBjb21wbGFpbiBpZiBzY3JpcHQgaXMgc291cmNlZCBpbiBwc3FsLCByYXRoZXIg dGhhbiB2aWEgQ1JFQVRFIEVYVEVOU0lPTgorXGVjaG8gVXNlICJBTFRFUiBFWFRFTlNJT04gdGVz dF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyIFVQREFURSBUTyAnMS4xJyIgdG8gbG9hZCB0 aGlzIGZpbGUuIFxxdWl0CisKK0NSRUFURSBGVU5DVElPTiBvd25lZDIoKSBSRVRVUk5TIHRleHQK KyAgTEFOR1VBR0UgU1FMIEFTICQkIFNFTEVDVCAnb3duZWQyJzo6dGV4dCAkJDsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVt YV9ub3N1cGVydXNlci0tMS4wLnNxbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25z L3Rlc3RfZXh0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlci0tMS4wLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmMyMmM3Nzc1MTkKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFf bm9zdXBlcnVzZXItLTEuMC5zcWwKQEAgLTAsMCArMSwzIEBACistLSBUZXN0IGV4dGVuc2lvbiB3 aXRoIG93bmVkIHNjaGVtYSAoc3VwZXJ1c2VyPWZhbHNlKQorQ1JFQVRFIEZVTkNUSU9OIG93bmVk MSgpIFJFVFVSTlMgdGV4dAorICBMQU5HVUFHRSBTUUwgQVMgJCQgU0VMRUNUICdvd25lZDEnOjp0 ZXh0ICQkOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVz dF9leHRfb3duZWRfc2NoZW1hX25vc3VwZXJ1c2VyLmNvbnRyb2wgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIuY29udHJv bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2FhZDA5NjA5OTYKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4 dF9vd25lZF9zY2hlbWFfbm9zdXBlcnVzZXIuY29udHJvbApAQCAtMCwwICsxLDUgQEAKK2NvbW1l bnQgPSAnVGVzdCBleHRlbnNpb24gd2l0aCBvd25lZCBzY2hlbWEgKHN1cGVydXNlcj1mYWxzZSkn CitkZWZhdWx0X3ZlcnNpb24gPSAnMS4wJworc3VwZXJ1c2VyID0gZmFsc2UKK293bmVkX3NjaGVt YSA9IHRydWUKK3NjaGVtYSA9ICd0ZXN0X293bmVkX3NjaGVtYV9ub3N1cGVydXNlcicKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3Nj aGVtYV90cnVzdGVkLS0xLjAtLTEuMS5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5z aW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1c3RlZC0tMS4wLS0xLjEuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hODdiZTFhYzk2NwotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3Nj aGVtYV90cnVzdGVkLS0xLjAtLTEuMS5zcWwKQEAgLTAsMCArMSwzIEBACistLSBUZXN0IGV4dGVu c2lvbiB1cGdyYWRlIHNjcmlwdAorQ1JFQVRFIEZVTkNUSU9OIG93bmVkMigpIFJFVFVSTlMgdGV4 dAorICBMQU5HVUFHRSBTUUwgQVMgJCQgU0VMRUNUICdvd25lZDInOjp0ZXh0ICQkOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2No ZW1hX3RydXN0ZWQtLTEuMC5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90 ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1c3RlZC0tMS4wLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNGU1NDEwYzE4NGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1c3Rl ZC0tMS4wLnNxbApAQCAtMCwwICsxLDMgQEAKKy0tIFRlc3QgZXh0ZW5zaW9uIHdpdGggb3duZWQg c2NoZW1hICh0cnVzdGVkPXRydWUpCitDUkVBVEUgRlVOQ1RJT04gb3duZWQxKCkgUkVUVVJOUyB0 ZXh0CisgIExBTkdVQUdFIFNRTCBBUyAkJCBTRUxFQ1QgJ293bmVkMSc6OnRleHQgJCQ7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9z Y2hlbWFfdHJ1c3RlZC5jb250cm9sIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMv dGVzdF9leHRfb3duZWRfc2NoZW1hX3RydXN0ZWQuY29udHJvbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMjc3YjNmMTYwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfdHJ1c3Rl ZC5jb250cm9sCkBAIC0wLDAgKzEsNSBAQAorY29tbWVudCA9ICdUZXN0IGV4dGVuc2lvbiB3aXRo IG93bmVkIHNjaGVtYSAodHJ1c3RlZD10cnVlKScKK2RlZmF1bHRfdmVyc2lvbiA9ICcxLjAnCit0 cnVzdGVkID0gdHJ1ZQorb3duZWRfc2NoZW1hID0gdHJ1ZQorc2NoZW1hID0gJ3Rlc3Rfb3duZWRf c2NoZW1hX3RydXN0ZWQnCg== --6b4d6db3bb26733560a525a9ad26021b941a389413c576d3d03d20df2a5c--