Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tffdE-0049uV-TP for pgsql-hackers@arkaria.postgresql.org; Wed, 05 Feb 2025 13:39:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tffdE-00EmX5-0I for pgsql-hackers@arkaria.postgresql.org; Wed, 05 Feb 2025 13:39:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tffdD-00EmWw-65 for pgsql-hackers@lists.postgresql.org; Wed, 05 Feb 2025 13:39:55 +0000 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tffdA-003JuO-2b for pgsql-hackers@postgresql.org; Wed, 05 Feb 2025 13:39:54 +0000 Received: by mail-pl1-x644.google.com with SMTP id d9443c01a7336-21f01fe1ce8so27393545ad.2 for ; Wed, 05 Feb 2025 05:39:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738762792; x=1739367592; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=yaYoNXFTuAEa3y/YrrFaIZRS5TFzZfSWljFpDhIBGL4=; b=RrnjQsAT1CTdROKbam2aTr0Ha9s0yJPzGEJ3PSUMzWmfDyBQ6eEKoKZPi3mtRgKWzn 9bgyl802T04RPJaP7uhK13FyVB+6HQzhP6su/52N2bNQVaC4fZRRHqePdO1z8AAltJDK lqdsS+E4EtrHrwLSmTjnX28EOY+lbZIJamOZYumUZ4B63HwoBkmA+YpwV8HOm1ej6sQ7 bSHGZZ9JabU9AgEycbvWPojqUiKb0HRVnTEpC0aPxeQrE6ZSg8PiXu7LIACQGIFxxy5s 4qLpR0W6YfqTXZ/9IpscCeH/mzGtO+SDLXd2kFG+8k1wtQNb/2iYOS91H6moE3MUQVWq X4Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738762792; x=1739367592; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=yaYoNXFTuAEa3y/YrrFaIZRS5TFzZfSWljFpDhIBGL4=; b=TnEIYW4fVhSld0c6uuQlPhV/SIJIvY+gneM9LdiakU/sKseqFmcASXPjgVF1MTTdCb dN4jhQXBpavgsUIjVRM5lmBZv2+/1OYJEkPkFl8cvSxHcgUOVy57z92g4/w7AZZx5RFx T0h0YNQ9z7R9RJxrWXg/Vx+SNFryT9Ct3W0kN1TYXCBEn70JI2mMY8U4vC7o8RSSpgG+ /b3nZhMFxcVR1PbVeN8fqJ1L+RO2J6rric2t5wBtqdp7eHlcZipEzo7yRvWDiDmR6kXj ryAiprUx2Jhd1GbaNzsEZ2BfQBnubb8gGQ7e684Jegjp8KW/le4y2c9TL2NBvir3UxZe /4uw== X-Forwarded-Encrypted: i=1; AJvYcCUuOvlNfrCHoEu+0/fPMMpRQ+fprQumf0PWsoukJZazvBF+LYkkB34G4Bkb8NaC41BjvjAjg0ay30REIPyg@postgresql.org X-Gm-Message-State: AOJu0YxBXgsbWeYSttkyxPpNnWOIEoge9gEcEkLOAGWCx9wSnX3T8EGR Uyw6NhzlrB8J06+UJzjLeCYVmzkfDF0xinLcoiqWVDqVwvoow0Dz39iMqBmxXiT3qQq1RskeSt+ G1OzswiwZSDOSUijA9PEbRUFdmS0= X-Gm-Gg: ASbGncuxT3EdwvyZDUVC9LMwp4oBqm5gwGPwusAR+dCsKaFz3w/DDuwAX+Y6A+/QYxS HXaA6S3rfyv8zmjSByYYX7CIS9vmLmJ9dStRwrR5sHd7MZy4sSZ1sb3XPalhPzDqK5HmCvtq3rd tb8Tl/lO8vsvZahJirlktq2f5JfUxHCA== X-Google-Smtp-Source: AGHT+IGIaYdKq5XGsv4KdbRqSo6EPQLIVq/awVLN/R8Xzoq2WEaP3InKOWsk6KP8Uu2RCtOE/qd9kL+Wh86iAY7TRqc= X-Received: by 2002:a05:6a21:3511:b0:1ed:a4b3:800 with SMTP id adf61e73a8af0-1ede883211fmr5412963637.12.1738762792313; Wed, 05 Feb 2025 05:39:52 -0800 (PST) MIME-Version: 1.0 References: <21fa36b4-6d56-4556-b524-9e3955b922c8@eisentraut.org> In-Reply-To: From: Alexandra Wang Date: Wed, 5 Feb 2025 07:39:15 -0600 X-Gm-Features: AWEUYZkSMGJbMQANs7DKm_IzbxT8wCoOmsNvr_k39Ao1PCmm4tMwtEXgmZJkJIs Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Peter Eisentraut Cc: Andrew Dunstan , Nikita Glukhov , PostgreSQL Hackers , "David E. Wheeler" , jian he Content-Type: multipart/mixed; boundary="00000000000096028c062d6542e5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000096028c062d6542e5 Content-Type: multipart/alternative; boundary="00000000000096028b062d6542e3" --00000000000096028b062d6542e3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Wed, Feb 5, 2025 at 1:20=E2=80=AFAM Alexandra Wang wrote: > I attached a minimized version of Nikita=E2=80=99s patch (v7): > > - The first three patches are refactoring steps that could be squashed > if preferred. > - The last two patches implement dot notation and wildcard access, > respectively. > > Changes in this new version: > - Removed code handling hstore, as Andrew pointed out it isn=E2=80=99t > directly relevant to JSON access and should be handled separately. > - Split tests for dot notation and wildcard access. > - Dropped the two patches in v6 that enabled non-parenthesized column > references (per Nikita=E2=80=99s suggestion, this will need its own sep= arate > discussion). > It appears that the Commitfest app selected the wrong patch. Sorry about the confusion! I'm reposting the patches to correct this. --00000000000096028b062d6542e3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,=C2=A0

On Wed, Feb 5, 2025 at= 1:20=E2=80=AFAM Alexandra Wang <alexandra.wang.oss@gmail.com> wrote:
I attached a minimized version of Nikita=E2=80=99s = patch (v7):

- The first three patches are refactoring steps that cou= ld be squashed
=C2=A0 if preferred.
- The last two patches implement = dot notation and wildcard access,
=C2=A0 respectively.

Changes in= this new version:
- Removed code handling hstore, as Andrew pointed out= it isn=E2=80=99t
=C2=A0 directly relevant to JSON access and should be = handled separately.
- Split tests for dot notation and wildcard access.<= br>- Dropped the two patches in v6 that enabled non-parenthesized column=C2=A0 references (per Nikita=E2=80=99s suggestion, this will need its own= separate
discussion).

It appears that the Commitfest app selected the wrong patch. Sorry
abo= ut the confusion! I'm reposting the patches to correct this.

--00000000000096028b062d6542e3-- --00000000000096028c062d6542e5 Content-Type: application/octet-stream; name="v7-0002-Pass-field-accessors-to-generic-subscripting.patch" Content-Disposition: attachment; filename="v7-0002-Pass-field-accessors-to-generic-subscripting.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6ryfo5u1 RnJvbSAyOTg0NTAzM2NjZTFkZTBlODBiM2MxOWQ0ZTU2YjUxNGQwOTRlOTU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoyMToyMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djcgMi81XSBQYXNzIGZpZWxkIGFjY2Vzc29ycyB0byBnZW5lcmljIHN1YnNjcmlwdGluZwoKLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgIHwgMjQgKysrKysrKy0tLQogc3Jj L2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICB8IDczICsrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyB8IDIyICsrKysr KystLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICB8IDU4ICsrKysrKysrKysr KysrKystLS0tLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYyAgICB8IDM5ICsr KysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgfCAgMyAr LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jICB8IDEzICsrKystLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jICB8IDExICsrKystCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMgIHwgMjkgKysrKysrKystLS0tCiBzcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oICAgIHwgIDMgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDIxOCBpbnNlcnRpb25z KCspLCA1NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCAwMzU2NmM0 ZDE4MS4uYmU0MjEzNDU1ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMzMyOCw5ICsz MzI4LDE1IEBAIEV4ZWNJbml0U3Vic2NyaXB0aW5nUmVmKEV4cHJFdmFsU3RlcCAqc2NyYXRjaCwg U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCXsKIAkJCXNic3JlZnN0YXRlLT51cHBlcnByb3Zp ZGVkW2ldID0gdHJ1ZTsKIAkJCS8qIEVhY2ggc3Vic2NyaXB0IGlzIGV2YWx1YXRlZCBpbnRvIGFw cHJvcHJpYXRlIGFycmF5IGVudHJ5ICovCi0JCQlFeGVjSW5pdEV4cHJSZWMoZSwgc3RhdGUsCi0J CQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4W2ldLAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+ dXBwZXJpbmRleG51bGxbaV0pOworCQkJaWYgKElzQShlLCBTdHJpbmcpKQorCQkJeworCQkJCXNi c3JlZnN0YXRlLT51cHBlcmluZGV4W2ldID0gQ1N0cmluZ0dldFRleHREYXR1bShzdHJWYWwoZSkp OworCQkJCXNic3JlZnN0YXRlLT51cHBlcmluZGV4bnVsbFtpXSA9IGZhbHNlOworCQkJfQorCQkJ ZWxzZQorCQkJCUV4ZWNJbml0RXhwclJlYyhlLCBzdGF0ZSwKKwkJCQkJCQkJJnNic3JlZnN0YXRl LT51cHBlcmluZGV4W2ldLAorCQkJCQkJCQkmc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxsW2ld KTsKIAkJfQogCQlpKys7CiAJfQpAQCAtMzM1MSw5ICszMzU3LDE1IEBAIEV4ZWNJbml0U3Vic2Ny aXB0aW5nUmVmKEV4cHJFdmFsU3RlcCAqc2NyYXRjaCwgU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYs CiAJCXsKIAkJCXNic3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKIAkJCS8qIEVh Y2ggc3Vic2NyaXB0IGlzIGV2YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVudHJ5ICov Ci0JCQlFeGVjSW5pdEV4cHJSZWMoZSwgc3RhdGUsCi0JCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dl cmluZGV4W2ldLAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleG51bGxbaV0pOworCQkJ aWYgKElzQShlLCBTdHJpbmcpKQorCQkJeworCQkJCXNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ld ID0gQ1N0cmluZ0dldFRleHREYXR1bShzdHJWYWwoZSkpOworCQkJCXNic3JlZnN0YXRlLT5sb3dl cmluZGV4bnVsbFtpXSA9IGZhbHNlOworCQkJfQorCQkJZWxzZQorCQkJCUV4ZWNJbml0RXhwclJl YyhlLCBzdGF0ZSwKKwkJCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ldLAorCQkJCQkJ CQkmc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhudWxsW2ldKTsKIAkJfQogCQlpKys7CiAJfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYwppbmRleCA3YmM4MjM1MDdmMS4uYTljMjlhYjhmMjkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jCkBAIC0yMTgyLDEyICsyMTgyLDI4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJf aW1wbChOb2RlICpub2RlLAogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJewogCQkJCVN1 YnNjcmlwdGluZ1JlZiAqc2JzcmVmID0gKFN1YnNjcmlwdGluZ1JlZiAqKSBub2RlOworCQkJCUxp c3RDZWxsICAgKmxjOworCisJCQkJLyoKKwkJCQkgKiBSZWN1cnNlIGRpcmVjdGx5IGZvciB1cHBl ci9sb3dlciBjb250YWluZXIgaW5kZXggbGlzdHMsCisJCQkJICogc2tpcHBpbmcgU3RyaW5nIHN1 YnNjcmlwdHMgdXNlZCBmb3IgZG90IG5vdGF0aW9uLgorCQkJCSAqLworCQkJCWZvcmVhY2gobGMs IHNic3JlZi0+cmVmdXBwZXJpbmRleHByKQorCQkJCXsKKwkJCQkJTm9kZQkgICAqZXhwciA9IGxm aXJzdChsYyk7CisKKwkJCQkJaWYgKGV4cHIgJiYgIUlzQShleHByLCBTdHJpbmcpICYmIFdBTEso ZXhwcikpCisJCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQl9CisKKwkJCQlmb3JlYWNoKGxjLCBzYnNy ZWYtPnJlZmxvd2VyaW5kZXhwcikKKwkJCQl7CisJCQkJCU5vZGUJICAgKmV4cHIgPSBsZmlyc3Qo bGMpOworCisJCQkJCWlmIChleHByICYmICFJc0EoZXhwciwgU3RyaW5nKSAmJiBXQUxLKGV4cHIp KQorCQkJCQkJcmV0dXJuIHRydWU7CisJCQkJfQogCi0JCQkJLyogcmVjdXJzZSBkaXJlY3RseSBm b3IgdXBwZXIvbG93ZXIgY29udGFpbmVyIGluZGV4IGxpc3RzICovCi0JCQkJaWYgKExJU1RfV0FM SyhzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikpCi0JCQkJCXJldHVybiB0cnVlOwotCQkJCWlmIChM SVNUX1dBTEsoc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpKQotCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJ CQkvKiB3YWxrZXIgbXVzdCBzZWUgdGhlIHJlZmV4cHIgYW5kIHJlZmFzc2duZXhwciwgaG93ZXZl ciAqLwogCQkJCWlmIChXQUxLKHNic3JlZi0+cmVmZXhwcikpCiAJCQkJCXJldHVybiB0cnVlOwpA QCAtMzA4MiwxMiArMzA5OCw1MSBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRvcl9pbXBsKE5vZGUg Km5vZGUsCiAJCQl7CiAJCQkJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYgPSAoU3Vic2NyaXB0aW5n UmVmICopIG5vZGU7CiAJCQkJU3Vic2NyaXB0aW5nUmVmICpuZXdub2RlOworCQkJCUxpc3RDZWxs ICAgKmxjOworCQkJCUxpc3QJICAgKmV4cHJzID0gTklMOwogCiAJCQkJRkxBVENPUFkobmV3bm9k ZSwgc2JzcmVmLCBTdWJzY3JpcHRpbmdSZWYpOwotCQkJCU1VVEFURShuZXdub2RlLT5yZWZ1cHBl cmluZGV4cHIsIHNic3JlZi0+cmVmdXBwZXJpbmRleHByLAotCQkJCQkgICBMaXN0ICopOwotCQkJ CU1VVEFURShuZXdub2RlLT5yZWZsb3dlcmluZGV4cHIsIHNic3JlZi0+cmVmbG93ZXJpbmRleHBy LAotCQkJCQkgICBMaXN0ICopOworCisJCQkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmlu ZGV4cHIpCisJCQkJeworCQkJCQlOb2RlCSAgICpleHByID0gbGZpcnN0KGxjKTsKKworCQkJCQlp ZiAoZXhwciAmJiBJc0EoZXhwciwgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJU3RyaW5nCSAgICpz dHI7CisKKwkJCQkJCUZMQVRDT1BZKHN0ciwgZXhwciwgU3RyaW5nKTsKKwkJCQkJCWV4cHIgPSAo Tm9kZSAqKSBzdHI7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQkJZXhwciA9IG11dGF0b3IoZXhw ciwgY29udGV4dCk7CisKKwkJCQkJZXhwcnMgPSBsYXBwZW5kKGV4cHJzLCBleHByKTsKKwkJCQl9 CisKKwkJCQluZXdub2RlLT5yZWZ1cHBlcmluZGV4cHIgPSBleHByczsKKworCQkJCWV4cHJzID0g TklMOworCisJCQkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpCisJCQkJewor CQkJCQlOb2RlCSAgICpleHByID0gbGZpcnN0KGxjKTsKKworCQkJCQlpZiAoZXhwciAmJiBJc0Eo ZXhwciwgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJU3RyaW5nCSAgICpzdHI7CisKKwkJCQkJCUZM QVRDT1BZKHN0ciwgZXhwciwgU3RyaW5nKTsKKwkJCQkJCWV4cHIgPSAoTm9kZSAqKSBzdHI7CisJ CQkJCX0KKwkJCQkJZWxzZQorCQkJCQkJZXhwciA9IG11dGF0b3IoZXhwciwgY29udGV4dCk7CisK KwkJCQkJZXhwcnMgPSBsYXBwZW5kKGV4cHJzLCBleHByKTsKKwkJCQl9CisKKwkJCQluZXdub2Rl LT5yZWZsb3dlcmluZGV4cHIgPSBleHByczsKKwogCQkJCU1VVEFURShuZXdub2RlLT5yZWZleHBy LCBzYnNyZWYtPnJlZmV4cHIsCiAJCQkJCSAgIEV4cHIgKik7CiAJCQkJTVVUQVRFKG5ld25vZGUt PnJlZmFzc2duZXhwciwgc2JzcmVmLT5yZWZhc3NnbmV4cHIsCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Nv bGxhdGUuYwppbmRleCBkMmUyMTgzNTNmMy4uYmU2ZGVhNmZmZDIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2NvbGxhdGUuYwpAQCAtNjgwLDExICs2ODAsMjUgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fs a2VyKE5vZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCQkJ CQkJICogY29udHJpYnV0ZSBhbnl0aGluZy4pCiAJCQkJCQkJICovCiAJCQkJCQkJU3Vic2NyaXB0 aW5nUmVmICpzYnNyZWYgPSAoU3Vic2NyaXB0aW5nUmVmICopIG5vZGU7CisJCQkJCQkJTGlzdENl bGwgICAqbGM7CisKKwkJCQkJCQkvKiBza2lwIFN0cmluZyBzdWJzY3JpcHRzIHVzZWQgZm9yIGRv dCBub3RhdGlvbiAqLworCQkJCQkJCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmdXBwZXJpbmRleHBy KQorCQkJCQkJCXsKKwkJCQkJCQkJTm9kZQkgICAqZXhwciA9IGxmaXJzdChsYyk7CisKKwkJCQkJ CQkJaWYgKGV4cHIgJiYgIUlzQShleHByLCBTdHJpbmcpKQorCQkJCQkJCQkJYXNzaWduX2V4cHJf Y29sbGF0aW9ucyhjb250ZXh0LT5wc3RhdGUsIGV4cHIpOworCQkJCQkJCX0KKworCQkJCQkJCWZv cmVhY2gobGMsIHNic3JlZi0+cmVmbG93ZXJpbmRleHByKQorCQkJCQkJCXsKKwkJCQkJCQkJTm9k ZQkgICAqZXhwciA9IGxmaXJzdChsYyk7CisKKwkJCQkJCQkJaWYgKGV4cHIgJiYgIUlzQShleHBy LCBTdHJpbmcpKQorCQkJCQkJCQkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhjb250ZXh0LT5wc3Rh dGUsIGV4cHIpOworCQkJCQkJCX0KIAotCQkJCQkJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMoY29u dGV4dC0+cHN0YXRlLAotCQkJCQkJCQkJCQkJICAgKE5vZGUgKikgc2JzcmVmLT5yZWZ1cHBlcmlu ZGV4cHIpOwotCQkJCQkJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMoY29udGV4dC0+cHN0YXRlLAot CQkJCQkJCQkJCQkJICAgKE5vZGUgKikgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpOwogCQkJCQkJ CSh2b2lkKSBhc3NpZ25fY29sbGF0aW9uc193YWxrZXIoKE5vZGUgKikgc2JzcmVmLT5yZWZleHBy LAogCQkJCQkJCQkJCQkJCQkJJmxvY2NvbnRleHQpOwogCQkJCQkJCSh2b2lkKSBhc3NpZ25fY29s bGF0aW9uc193YWxrZXIoKE5vZGUgKikgc2JzcmVmLT5yZWZhc3NnbmV4cHIsCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYwppbmRleCAyYzBmNGE1MGIyMS4uYWZlOTUzZmRiZWEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYwpAQCAtNDYxLDE5ICs0NjEsNDAgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCX0KIAkJZWxzZQogCQl7Ci0J CQlOb2RlCSAgICpuZXdyZXN1bHQ7Ci0KIAkJCUFzc2VydChJc0EobiwgU3RyaW5nKSk7CisJCQlz dWJzY3JpcHRzID0gbGFwcGVuZChzdWJzY3JpcHRzLCBuKTsKKwkJfQorCX0KKworCS8qIHByb2Nl c3MgdHJhaWxpbmcgc3Vic2NyaXB0cywgaWYgYW55ICovCisJd2hpbGUgKHN1YnNjcmlwdHMpCisJ eworCQlOb2RlCSAgICpuZXdyZXN1bHQgPSAoTm9kZSAqKQorCQkJdHJhbnNmb3JtQ29udGFpbmVy U3Vic2NyaXB0cyhwc3RhdGUsCisJCQkJCQkJCQkJIHJlc3VsdCwKKwkJCQkJCQkJCQkgZXhwclR5 cGUocmVzdWx0KSwKKwkJCQkJCQkJCQkgZXhwclR5cG1vZChyZXN1bHQpLAorCQkJCQkJCQkJCSAm c3Vic2NyaXB0cywKKwkJCQkJCQkJCQkgZmFsc2UsCisJCQkJCQkJCQkJIHRydWUpOworCisJCWlm ICghbmV3cmVzdWx0KQorCQl7CisJCQkvKiBnZW5lcmljIHN1YnNjcmlwdGluZyBmYWlsZWQgKi8K KwkJCU5vZGUJICAgKm47CisKKwkJCUFzc2VydChzdWJzY3JpcHRzKTsKKworCQkJbiA9IGxpbml0 aWFsKHN1YnNjcmlwdHMpOwogCi0JCQkvKiBwcm9jZXNzIHN1YnNjcmlwdHMgYmVmb3JlIHRoaXMg ZmllbGQgc2VsZWN0aW9uICovCi0JCQl3aGlsZSAoc3Vic2NyaXB0cykKLQkJCQlyZXN1bHQgPSAo Tm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJ CQkJCSAgIHJlc3VsdCwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCi0JCQkJ CQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICAmc3Vi c2NyaXB0cywKLQkJCQkJCQkJCQkJCQkJCSAgIGZhbHNlKTsKKwkJCWlmICghSXNBKG4sIFN0cmlu ZykpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVf TUlTTUFUQ0gpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVzIGJlY2F1 c2UgaXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAorCQkJCQkJCQlmb3JtYXRfdHlw ZV9iZShleHByVHlwZShyZXN1bHQpKSksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0 ZSwgZXhwckxvY2F0aW9uKHJlc3VsdCkpKSk7CiAKKwkJCS8qIHRyeSB0byBmaW5kIGZ1bmN0aW9u IGZvciBmaWVsZCBzZWxlY3Rpb24gKi8KIAkJCW5ld3Jlc3VsdCA9IFBhcnNlRnVuY09yQ29sdW1u KHBzdGF0ZSwKIAkJCQkJCQkJCQkgIGxpc3RfbWFrZTEobiksCiAJCQkJCQkJCQkJICBsaXN0X21h a2UxKHJlc3VsdCksCkBAIC00ODEsMTkgKzUwMiwxNiBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJCQkJCQkJCQkgIE5VTEws CiAJCQkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJCQkgIGxvY2F0aW9uKTsKLQkJCWlmIChuZXdy ZXN1bHQgPT0gTlVMTCkKKworCQkJaWYgKCFuZXdyZXN1bHQpCiAJCQkJdW5rbm93bl9hdHRyaWJ1 dGUocHN0YXRlLCByZXN1bHQsIHN0clZhbChuKSwgbG9jYXRpb24pOwotCQkJcmVzdWx0ID0gbmV3 cmVzdWx0OworCisJCQkvKiBjb25zdW1lIGZpZWxkIHNlbGVjdCAqLworCQkJc3Vic2NyaXB0cyA9 IGxpc3RfZGVsZXRlX2ZpcnN0KHN1YnNjcmlwdHMpOwogCQl9CisKKwkJcmVzdWx0ID0gbmV3cmVz dWx0OwogCX0KLQkvKiBwcm9jZXNzIHRyYWlsaW5nIHN1YnNjcmlwdHMsIGlmIGFueSAqLwotCXdo aWxlIChzdWJzY3JpcHRzKQotCQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJT dWJzY3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkgICByZXN1bHQsCi0JCQkJCQkJCQkJCQkJ ICAgZXhwclR5cGUocmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCks Ci0JCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJCQkJICAgZmFsc2UpOwog CiAJcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9ub2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IDE5YTZiNjc4 ZTY3Li5jMWY4MDU1NTY0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25v ZGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yNDUsMTMgKzI0 NSwxNSBAQCB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1v ZCwKIAkJCQkJCQkgTGlzdCAqKmluZGlyZWN0aW9uLAotCQkJCQkJCSBib29sIGlzQXNzaWdubWVu dCkKKwkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQsCisJCQkJCQkJIGJvb2wgbm9FcnJvcikKIHsK IAlTdWJzY3JpcHRpbmdSZWYgKnNic3JlZjsKIAljb25zdCBTdWJzY3JpcHRSb3V0aW5lcyAqc2Jz cm91dGluZXM7CiAJT2lkCQkJZWxlbWVudFR5cGU7CiAJYm9vbAkJaXNTbGljZSA9IGZhbHNlOwog CUxpc3RDZWxsICAgKmlkeDsKKwlpbnQJCQlpbmRpcmVjdGlvbl9sZW5ndGggPSBsaXN0X2xlbmd0 aCgqaW5kaXJlY3Rpb24pOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgdGhlIGFjdHVhbCBjb250YWlu ZXIgdHlwZSwgc21hc2hpbmcgYW55IGRvbWFpbi4gIEluIHRoZQpAQCAtMjY3LDExICsyNjksMTYg QEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJICov CiAJc2Jzcm91dGluZXMgPSBnZXRTdWJzY3JpcHRpbmdSb3V0aW5lcyhjb250YWluZXJUeXBlLCAm ZWxlbWVudFR5cGUpOwogCWlmICghc2Jzcm91dGluZXMpCisJeworCQlpZiAobm9FcnJvcikKKwkJ CXJldHVybiBOVUxMOworCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCiAJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVz IGJlY2F1c2UgaXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAogCQkJCQkJZm9ybWF0 X3R5cGVfYmUoY29udGFpbmVyVHlwZSkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJfQogCiAJLyoKIAkgKiBEZXRlY3Qg d2hldGhlciBhbnkgb2YgdGhlIGluZGlyZWN0aW9uIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJz LgpAQCAtMjgyLDkgKzI4OSw5IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCSAqLwogCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJewotCQlB X0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwkJTm9kZQkgICAq YWkgPSBsZmlyc3QoaWR4KTsKIAotCQlpZiAoYWktPmlzX3NsaWNlKQorCQlpZiAoSXNBKGFpLCBB X0luZGljZXMpICYmIGNhc3ROb2RlKEFfSW5kaWNlcywgYWkpLT5pc19zbGljZSkKIAkJewogCQkJ aXNTbGljZSA9IHRydWU7CiAJCQlicmVhazsKQEAgLTMxMiw2ICszMTksMzIgQEAgdHJhbnNmb3Jt Q29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJc2Jzcm91dGluZXMtPnRy YW5zZm9ybShzYnNyZWYsIGluZGlyZWN0aW9uLCBwc3RhdGUsCiAJCQkJCQkgICBpc1NsaWNlLCBp c0Fzc2lnbm1lbnQpOwogCisJLyoKKwkgKiBFcnJvciBvdXQsIGlmIGRhdGF0eW9lIGZhbGllZCB0 byBjb25zdW1lIGFueSBpbmRpcmVjdGlvbiBlbGVtZW50cy4KKwkgKi8KKwlpZiAobGlzdF9sZW5n dGgoKmluZGlyZWN0aW9uKSA9PSBpbmRpcmVjdGlvbl9sZW5ndGgpCisJeworCQlOb2RlCSAgICpp bmQgPSBsaW5pdGlhbCgqaW5kaXJlY3Rpb24pOworCisJCWlmIChub0Vycm9yKQorCQkJcmV0dXJu IE5VTEw7CisKKwkJaWYgKElzQShpbmQsIFN0cmluZykpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidHlw ZSAlcyBkb2VzIG5vdCBzdXBwb3J0IGNvbHVtbiBub3RhdGlvbiIsCisJCQkJCQkJZm9ybWF0X3R5 cGVfYmUoY29udGFpbmVyVHlwZSkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg ZXhwckxvY2F0aW9uKGNvbnRhaW5lckJhc2UpKSkpOworCQllbHNlIGlmIChJc0EoaW5kLCBBX0lu ZGljZXMpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInR5cGUgJXMgZG9lcyBub3Qgc3VwcG9ydCBhcnJh eSBzdWJzY3JpcHRpbmciLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwK KwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihjb250YWluZXJC YXNlKSkpKTsKKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgImludmFsaWQgaW5kaXJlY3Rpb24gb3Bl cmF0aW9uOiAlZCIsIG5vZGVUYWcoaW5kKSk7CisJfQorCiAJLyoKIAkgKiBWZXJpZnkgd2UgZ290 IGEgdmFsaWQgdHlwZSAodGhpcyBkZWZlbmRzLCBmb3IgZXhhbXBsZSwgYWdhaW5zdCBzb21lb25l CiAJICogdXNpbmcgYXJyYXlfc3Vic2NyaXB0X2hhbmRsZXIgYXMgdHlwc3Vic2NyaXB0IHdpdGhv dXQgc2V0dGluZyB0eXBlbGVtKS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCAzOWZk ODJmODM3MS4uNWUxMjYxNDVlYTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkz Nyw3ICs5MzcsOCBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpw c3RhdGUsCiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBlLAogCQkJCQkJCQkJCSAgY29udGFpbmVy VHlwTW9kLAogCQkJCQkJCQkJCSAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJICB0cnVlKTsKKwkJ CQkJCQkJCQkgIHRydWUsCisJCQkJCQkJCQkJICBmYWxzZSk7CiAKIAlpZiAoc3Vic2NyaXB0cykK IAkJZWxvZyhFUlJPUiwgInN1YnNjcmlwdGluZyBhc3NpZ25tZW50IGlzIG5vdCBzdXBwb3J0ZWQi KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYwppbmRleCBlZGQ4NWY3YmE2Ny4uZmUxOGRmODZl NDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKQEAgLTYxLDYgKzYxLDcgQEAgYXJyYXlf c3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlMaXN0CSAgICp1 cHBlckluZGV4cHIgPSBOSUw7CiAJTGlzdAkgICAqbG93ZXJJbmRleHByID0gTklMOwogCUxpc3RD ZWxsICAgKmlkeDsKKwlpbnQJCQluZGltOwogCiAJLyoKIAkgKiBUcmFuc2Zvcm0gdGhlIHN1YnNj cmlwdCBleHByZXNzaW9ucywgYW5kIHNlcGFyYXRlIHVwcGVyIGFuZCBsb3dlcgpAQCAtNzIsOSAr NzMsMTQgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3Jl ZiwKIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKLQkJQV9JbmRpY2VzICAq YWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisJCUFfSW5kaWNlcyAgKmFpOwogCQlO b2RlCSAgICpzdWJleHByOwogCisJCWlmICghSXNBKGxmaXJzdChpZHgpLCBBX0luZGljZXMpKQor CQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisKIAkJaWYg KGlzU2xpY2UpCiAJCXsKIAkJCWlmIChhaS0+bGlkeCkKQEAgLTE0NCwxNCArMTUwLDE1IEBAIGFy cmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVm LT5yZWZsb3dlcmluZGV4cHIgPSBsb3dlckluZGV4cHI7CiAKIAkvKiBWZXJpZnkgc3Vic2NyaXB0 IGxpc3QgbGVuZ3RocyBhcmUgd2l0aGluIGltcGxlbWVudGF0aW9uIGxpbWl0ICovCi0JaWYgKGxp c3RfbGVuZ3RoKHVwcGVySW5kZXhwcikgPiBNQVhESU0pCisJbmRpbSA9IGxpc3RfbGVuZ3RoKHVw cGVySW5kZXhwcik7CisJaWYgKG5kaW0gPiBNQVhESU0pCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVEKSwKIAkJCQkgZXJybXNnKCJu dW1iZXIgb2YgYXJyYXkgZGltZW5zaW9ucyAoJWQpIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dl ZCAoJWQpIiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwciksIE1BWERJTSkpKTsKIAkv KiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIgc2VwYXJhdGVseSAqLwogCi0JKmluZGly ZWN0aW9uID0gTklMOworCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGly ZWN0aW9uLCBuZGltKTsKIAogCS8qCiAJICogRGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0 aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbi4gIEl0J3MgdGhlIHNhbWUKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9q c29uYnN1YnMuYwppbmRleCA4YWQ2YWExYWQ0Zi4uYTBkMzhhMGZkODAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmJzdWJzLmMKQEAgLTU1LDkgKzU1LDE0IEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zv cm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICovCiAJZm9yZWFjaChpZHgsICppbmRpcmVj dGlvbikKIAl7Ci0JCUFfSW5kaWNlcyAgKmFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgp OworCQlBX0luZGljZXMgICphaTsKIAkJTm9kZQkgICAqc3ViRXhwcjsKIAorCQlpZiAoIUlzQShs Zmlyc3QoaWR4KSwgQV9JbmRpY2VzKSkKKwkJCWJyZWFrOworCisJCWFpID0gbGZpcnN0X25vZGUo QV9JbmRpY2VzLCBpZHgpOworCiAJCWlmIChpc1NsaWNlKQogCQl7CiAJCQlOb2RlCSAgICpleHBy ID0gYWktPnVpZHggPyBhaS0+dWlkeCA6IGFpLT5saWR4OwpAQCAtMTYwLDcgKzE2NSw5IEBAIGpz b25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVm LT5yZWZyZXN0eXBlID0gSlNPTkJPSUQ7CiAJc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsKIAotCSpp bmRpcmVjdGlvbiA9IE5JTDsKKwkvKiBSZW1vdmUgcHJvY2Vzc2VkIGVsZW1lbnRzICovCisJaWYg KHVwcGVySW5kZXhwcikKKwkJKmluZGlyZWN0aW9uID0gbGlzdF9kZWxldGVfZmlyc3RfbigqaW5k aXJlY3Rpb24sIGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikpOwogfQogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jCmluZGV4IDU0ZGFkOTc1NTUzLi5hZjU0MTdkMDg1OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIm5vZGVzL21h a2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVz L3BhdGhub2Rlcy5oIgorI2luY2x1ZGUgIm5vZGVzL3N1YnNjcmlwdGluZy5oIgogI2luY2x1ZGUg Im9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfYWdnLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIKQEAgLTEyOTE2LDE3ICsxMjkxNywyOSBAQCBw cmludFN1YnNjcmlwdHMoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsIGRlcGFyc2VfY29udGV4dCAq Y29udGV4dCkKIAlsb3dsaXN0X2l0ZW0gPSBsaXN0X2hlYWQoc2JzcmVmLT5yZWZsb3dlcmluZGV4 cHIpOwkvKiBjb3VsZCBiZSBOVUxMICovCiAJZm9yZWFjaCh1cGxpc3RfaXRlbSwgc2JzcmVmLT5y ZWZ1cHBlcmluZGV4cHIpCiAJewotCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICdbJyk7Ci0J CWlmIChsb3dsaXN0X2l0ZW0pCisJCU5vZGUJICAgKnVwID0gKE5vZGUgKikgbGZpcnN0KHVwbGlz dF9pdGVtKTsKKworCQlpZiAoSXNBKHVwLCBTdHJpbmcpKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJ bmZvQ2hhcihidWYsICcuJyk7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVf aWRlbnRpZmllcihzdHJWYWwodXApKSk7CisJCX0KKwkJZWxzZQogCQl7CisJCQlhcHBlbmRTdHJp bmdJbmZvQ2hhcihidWYsICdbJyk7CisJCQlpZiAobG93bGlzdF9pdGVtKQorCQkJeworCQkJCS8q IElmIHN1YmV4cHJlc3Npb24gaXMgTlVMTCwgZ2V0X3J1bGVfZXhwciBwcmludHMgbm90aGluZyAq LworCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGZpcnN0KGxvd2xpc3RfaXRlbSksIGNvbnRl eHQsIGZhbHNlKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICc6Jyk7CisJCQl9CiAJ CQkvKiBJZiBzdWJleHByZXNzaW9uIGlzIE5VTEwsIGdldF9ydWxlX2V4cHIgcHJpbnRzIG5vdGhp bmcgKi8KLQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGZpcnN0KGxvd2xpc3RfaXRlbSksIGNv bnRleHQsIGZhbHNlKTsKLQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJzonKTsKLQkJCWxv d2xpc3RfaXRlbSA9IGxuZXh0KHNic3JlZi0+cmVmbG93ZXJpbmRleHByLCBsb3dsaXN0X2l0ZW0p OworCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pLCBjb250ZXh0 LCBmYWxzZSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICddJyk7CiAJCX0KLQkJLyog SWYgc3ViZXhwcmVzc2lvbiBpcyBOVUxMLCBnZXRfcnVsZV9leHByIHByaW50cyBub3RoaW5nICov Ci0JCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGZpcnN0KHVwbGlzdF9pdGVtKSwgY29udGV4dCwg ZmFsc2UpOwotCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICddJyk7CisKKwkJaWYgKGxvd2xp c3RfaXRlbSkKKwkJCWxvd2xpc3RfaXRlbSA9IGxuZXh0KHNic3JlZi0+cmVmbG93ZXJpbmRleHBy LCBsb3dsaXN0X2l0ZW0pOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggNWFl MTFjY2VjMzMuLjcxYjA0YmQ1MDNjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM3OCw3 ICszNzgsOCBAQCBleHRlcm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJz Y3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5 cGUsCiAJCQkJCQkJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkJCQkg TGlzdCAqKmluZGlyZWN0aW9uLAotCQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCk7CisJ CQkJCQkJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50LAorCQkJCQkJCQkJCQkJCSBib29sIG5vRXJy b3IpOwogZXh0ZXJuIENvbnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9Db25z dCAqYWNvbnN0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX05PREVfSCAqLwotLSAKMi4zOS41 IChBcHBsZSBHaXQtMTU0KQoK --00000000000096028c062d6542e5 Content-Type: application/octet-stream; name="v7-0005-Allow-processing-of-.-by-generic-subscripting.patch" Content-Disposition: attachment; filename="v7-0005-Allow-processing-of-.-by-generic-subscripting.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6ryfo5y4 RnJvbSBiMzc2YjAyM2FlZDViNDc2OWNiMjlkYWE3ZjU1ZTZlYjIyYjkwYWZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djcgNS81XSBBbGxvdyBwcm9jZXNzaW5nIG9mIC4qIGJ5IGdlbmVyaWMgc3Vic2NyaXB0aW5nCgot LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgIHwgIDM0ICsrKy0tCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMgICB8ICA2MCArKysrKystLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9ydWxldXRpbHMuYyAgIHwgICA2ICstCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCB8IDE5NSAr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNlcnRp b25zKCspLCA5NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBkN2Y5YzAwYzQwOS4uNWY2 OWFjNjYxYmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTg5NTksNiArMTg5NTksNyBAQCBjaGVja19mdW5j X25hbWUoTGlzdCAqbmFtZXMsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogc3RhdGljIExpc3Qg KgogY2hlY2tfaW5kaXJlY3Rpb24oTGlzdCAqaW5kaXJlY3Rpb24sIGNvcmVfeXlzY2FuX3QgeXlz Y2FubmVyKQogeworI2lmIDAKIAlMaXN0Q2VsbCAgICpsOwogCiAJZm9yZWFjaChsLCBpbmRpcmVj dGlvbikKQEAgLTE4OTY5LDYgKzE4OTcwLDcgQEAgY2hlY2tfaW5kaXJlY3Rpb24oTGlzdCAqaW5k aXJlY3Rpb24sIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCQkJCXBhcnNlcl95eWVycm9yKCJp bXByb3BlciB1c2Ugb2YgXCIqXCIiKTsKIAkJfQogCX0KKyNlbmRpZgogCXJldHVybiBpbmRpcmVj dGlvbjsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYWZlOTUzZmRiZWEuLmIwYzM4 NTI5ODcyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTc0LDcgKzc0LDYgQEAgc3RhdGlj IE5vZGUgKnRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAq Y3JlZik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQkJCQkJCQkgIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogCQkJCQkJCQkgIGlu dCBzdWJsZXZlbHNfdXAsIGludCBsb2NhdGlvbik7Ci1zdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5k aXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3RhdGlj IE5vZGUgKnRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRj KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ29sbGF0ZUNsYXVzZSAqYyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENv bnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTE1OCw3ICsxNTcsNyBAQCB0cmFuc2Zv cm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQlicmVhazsK IAogCQljYXNlIFRfQV9JbmRpcmVjdGlvbjoKLQkJCXJlc3VsdCA9IHRyYW5zZm9ybUluZGlyZWN0 aW9uKHBzdGF0ZSwgKEFfSW5kaXJlY3Rpb24gKikgZXhwcik7CisJCQlyZXN1bHQgPSB0cmFuc2Zv cm1JbmRpcmVjdGlvbihwc3RhdGUsIChBX0luZGlyZWN0aW9uICopIGV4cHIsIE5VTEwpOwogCQkJ YnJlYWs7CiAKIAkJY2FzZSBUX0FfQXJyYXlFeHByOgpAQCAtNDMyLDggKzQzMSw5IEBAIHVua25v d25fYXR0cmlidXRlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqcmVscmVmLCBjb25zdCBjaGFy ICphdHRuYW1lLAogCX0KIH0KIAotc3RhdGljIE5vZGUgKgotdHJhbnNmb3JtSW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCitOb2RlICoKK3RyYW5zZm9y bUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kLAorCQkJ CQkgYm9vbCAqdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24pCiB7CiAJTm9kZQkgICAqbGFzdF9zcmYg PSBwc3RhdGUtPnBfbGFzdF9zcmY7CiAJTm9kZQkgICAqcmVzdWx0ID0gdHJhbnNmb3JtRXhwclJl Y3Vyc2UocHN0YXRlLCBpbmQtPmFyZyk7CkBAIC00NTMsMTIgKzQ1Myw3IEBAIHRyYW5zZm9ybUlu ZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQlpZiAo SXNBKG4sIEFfSW5kaWNlcykpCiAJCQlzdWJzY3JpcHRzID0gbGFwcGVuZChzdWJzY3JpcHRzLCBu KTsKIAkJZWxzZSBpZiAoSXNBKG4sIEFfU3RhcikpCi0JCXsKLQkJCWVyZXBvcnQoRVJST1IsCi0J CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1z Zygicm93IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCi0JCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKLQkJfQorCQkJc3Vic2Ny aXB0cyA9IGxhcHBlbmQoc3Vic2NyaXB0cywgbik7CiAJCWVsc2UKIAkJewogCQkJQXNzZXJ0KElz QShuLCBTdHJpbmcpKTsKQEAgLTQ4Nyw3ICs0ODIsMjEgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAKIAkJCW4gPSBsaW5pdGlh bChzdWJzY3JpcHRzKTsKIAotCQkJaWYgKCFJc0EobiwgU3RyaW5nKSkKKwkJCWlmIChJc0Eobiwg QV9TdGFyKSkKKwkJCXsKKwkJCQkvKiBTdWNjZXNzLCBpZiB0cmFpbGluZyBzdGFyIGV4cGFuc2lv biBpcyBhbGxvd2VkICovCisJCQkJaWYgKHRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uICYmIGxpc3Rf bGVuZ3RoKHN1YnNjcmlwdHMpID09IDEpCisJCQkJeworCQkJCQkqdHJhaWxpbmdfc3Rhcl9leHBh bnNpb24gPSB0cnVlOworCQkJCQlyZXR1cm4gcmVzdWx0OworCQkJCX0KKworCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCQkgZXJybXNnKCJyb3cgZXhwYW5zaW9uIHZpYSBcIipcIiBpcyBub3Qgc3VwcG9ydGVkIGhl cmUiKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwkJ CX0KKwkJCWVsc2UgaWYgKCFJc0EobiwgU3RyaW5nKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCiAJCQkJCQkgZXJybXNnKCJj YW5ub3Qgc3Vic2NyaXB0IHR5cGUgJXMgYmVjYXVzZSBpdCBkb2VzIG5vdCBzdXBwb3J0IHN1YnNj cmlwdGluZyIsCkBAIC01MTMsNiArNTIyLDkgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCXJlc3VsdCA9IG5ld3Jlc3VsdDsK IAl9CiAKKwlpZiAodHJhaWxpbmdfc3Rhcl9leHBhbnNpb24pCisJCSp0cmFpbGluZ19zdGFyX2V4 cGFuc2lvbiA9IGZhbHNlOworCiAJcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3RhcmdldC5jCmluZGV4IDVlMTI2MTQ1ZWE1Li45NjVlMmYwNmU3YiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90YXJnZXQuYwpAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQXNz aWdubWVudFN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogc3RhdGljIExpc3QgKkV4cGFu ZENvbHVtblJlZlN0YXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYsCiAJCQkJ CQkJCSBib29sIG1ha2VfdGFyZ2V0X2VudHJ5KTsKIHN0YXRpYyBMaXN0ICpFeHBhbmRBbGxUYWJs ZXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBpbnQgbG9jYXRpb24pOwotc3RhdGljIExpc3QgKkV4cGFu ZEluZGlyZWN0aW9uU3RhcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCwK K3N0YXRpYyBOb2RlICpFeHBhbmRJbmRpcmVjdGlvblN0YXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0luZGlyZWN0aW9uICppbmQsCiAJCQkJCQkJCSAgIGJvb2wgbWFrZV90YXJnZXRfZW50cnksIFBh cnNlRXhwcktpbmQgZXhwcktpbmQpOwogc3RhdGljIExpc3QgKkV4cGFuZFNpbmdsZVRhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJCQkJICAg aW50IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uLApAQCAtMTM0LDYgKzEzNCw3IEBAIHRyYW5z Zm9ybVRhcmdldExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICp0YXJnZXRsaXN0LAogCWZv cmVhY2gob190YXJnZXQsIHRhcmdldGxpc3QpCiAJewogCQlSZXNUYXJnZXQgICpyZXMgPSAoUmVz VGFyZ2V0ICopIGxmaXJzdChvX3RhcmdldCk7CisJCU5vZGUJICAgKnRyYW5zZm9ybWVkID0gTlVM TDsKIAogCQkvKgogCQkgKiBDaGVjayBmb3IgInNvbWV0aGluZy4qIi4gIERlcGVuZGluZyBvbiB0 aGUgY29tcGxleGl0eSBvZiB0aGUKQEAgLTE2MiwxMyArMTYzLDE5IEBAIHRyYW5zZm9ybVRhcmdl dExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICp0YXJnZXRsaXN0LAogCiAJCQkJaWYgKElz QShsbGFzdChpbmQtPmluZGlyZWN0aW9uKSwgQV9TdGFyKSkKIAkJCQl7Ci0JCQkJCS8qIEl0IGlz IHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLwotCQkJCQlwX3Rhcmdl dCA9IGxpc3RfY29uY2F0KHBfdGFyZ2V0LAotCQkJCQkJCQkJCSAgIEV4cGFuZEluZGlyZWN0aW9u U3Rhcihwc3RhdGUsCi0JCQkJCQkJCQkJCQkJCQkJIGluZCwKLQkJCQkJCQkJCQkJCQkJCQkgdHJ1 ZSwKLQkJCQkJCQkJCQkJCQkJCQkgZXhwcktpbmQpKTsKLQkJCQkJY29udGludWU7CisJCQkJCU5v ZGUJICAgKmNvbHVtbnMgPSBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRlLAorCQkJCQkJCQkJ CQkJCQkJCWluZCwKKwkJCQkJCQkJCQkJCQkJCQl0cnVlLAorCQkJCQkJCQkJCQkJCQkJCWV4cHJL aW5kKTsKKworCQkJCQlpZiAoSXNBKGNvbHVtbnMsIExpc3QpKQorCQkJCQl7CisJCQkJCQkvKiBJ dCBpcyBzb21ldGhpbmcuKiwgZXhwYW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KKwkJCQkJCXBf dGFyZ2V0ID0gbGlzdF9jb25jYXQocF90YXJnZXQsIChMaXN0ICopIGNvbHVtbnMpOworCQkJCQkJ Y29udGludWU7CisJCQkJCX0KKworCQkJCQl0cmFuc2Zvcm1lZCA9IChOb2RlICopIGNvbHVtbnM7 CiAJCQkJfQogCQkJfQogCQl9CkBAIC0xODAsNyArMTg3LDcgQEAgdHJhbnNmb3JtVGFyZ2V0TGlz dChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAJCXBfdGFyZ2V0ID0gbGFw cGVuZChwX3RhcmdldCwKIAkJCQkJCSAgIHRyYW5zZm9ybVRhcmdldEVudHJ5KHBzdGF0ZSwKIAkJ CQkJCQkJCQkJCXJlcy0+dmFsLAotCQkJCQkJCQkJCQkJTlVMTCwKKwkJCQkJCQkJCQkJCXRyYW5z Zm9ybWVkLAogCQkJCQkJCQkJCQkJZXhwcktpbmQsCiAJCQkJCQkJCQkJCQlyZXMtPm5hbWUsCiAJ CQkJCQkJCQkJCQlmYWxzZSkpOwpAQCAtMjUxLDEwICsyNTgsMTUgQEAgdHJhbnNmb3JtRXhwcmVz c2lvbkxpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpleHBybGlzdCwKIAogCQkJaWYgKElz QShsbGFzdChpbmQtPmluZGlyZWN0aW9uKSwgQV9TdGFyKSkKIAkJCXsKLQkJCQkvKiBJdCBpcyBz b21ldGhpbmcuKiwgZXhwYW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KLQkJCQlyZXN1bHQgPSBs aXN0X2NvbmNhdChyZXN1bHQsCi0JCQkJCQkJCQkgRXhwYW5kSW5kaXJlY3Rpb25TdGFyKHBzdGF0 ZSwgaW5kLAotCQkJCQkJCQkJCQkJCQkgICBmYWxzZSwgZXhwcktpbmQpKTsKKwkJCQlOb2RlCSAg ICpjb2xzID0gRXhwYW5kSW5kaXJlY3Rpb25TdGFyKHBzdGF0ZSwgaW5kLAorCQkJCQkJCQkJCQkJ CQkgZmFsc2UsIGV4cHJLaW5kKTsKKworCQkJCWlmICghY29scyB8fCBJc0EoY29scywgTGlzdCkp CisJCQkJCS8qIEl0IGlzIHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAq LworCQkJCQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIChMaXN0ICopIGNvbHMpOworCQkJ CWVsc2UKKwkJCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIGNvbHMpOworCiAJCQkJY29udGlu dWU7CiAJCQl9CiAJCX0KQEAgLTEzNDgsMjIgKzEzNjAsMzAgQEAgRXhwYW5kQWxsVGFibGVzKFBh cnNlU3RhdGUgKnBzdGF0ZSwgaW50IGxvY2F0aW9uKQogICogRm9yIHJvYnVzdG5lc3MsIHdlIHVz ZSBhIHNlcGFyYXRlICJtYWtlX3RhcmdldF9lbnRyeSIgZmxhZyB0byBjb250cm9sCiAgKiB0aGlz IHJhdGhlciB0aGFuIHJlbHlpbmcgb24gZXhwcktpbmQuCiAgKi8KLXN0YXRpYyBMaXN0ICoKK3N0 YXRpYyBOb2RlICoKIEV4cGFuZEluZGlyZWN0aW9uU3RhcihQYXJzZVN0YXRlICpwc3RhdGUsIEFf SW5kaXJlY3Rpb24gKmluZCwKIAkJCQkJICBib29sIG1ha2VfdGFyZ2V0X2VudHJ5LCBQYXJzZUV4 cHJLaW5kIGV4cHJLaW5kKQogewogCU5vZGUJICAgKmV4cHI7CisJUGFyc2VFeHByS2luZCBzdl9l eHByX2tpbmQ7CisJYm9vbAkJdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gPSBmYWxzZTsKKworCS8q IFNhdmUgYW5kIHJlc3RvcmUgaWRlbnRpdHkgb2YgZXhwcmVzc2lvbiB0eXBlIHdlJ3JlIHBhcnNp bmcgKi8KKwlBc3NlcnQoZXhwcktpbmQgIT0gRVhQUl9LSU5EX05PTkUpOworCXN2X2V4cHJfa2lu ZCA9IHBzdGF0ZS0+cF9leHByX2tpbmQ7CisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IGV4cHJLaW5k OwogCiAJLyogU3RyaXAgb2ZmIHRoZSAnKicgdG8gY3JlYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSBy b3d0eXBlIG9iamVjdCAqLwotCWluZCA9IGNvcHlPYmplY3QoaW5kKTsKLQlpbmQtPmluZGlyZWN0 aW9uID0gbGlzdF90cnVuY2F0ZShpbmQtPmluZGlyZWN0aW9uLAotCQkJCQkJCQkJIGxpc3RfbGVu Z3RoKGluZC0+aW5kaXJlY3Rpb24pIC0gMSk7CisJZXhwciA9IHRyYW5zZm9ybUluZGlyZWN0aW9u KHBzdGF0ZSwgaW5kLCAmdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24pOworCisJcHN0YXRlLT5wX2V4 cHJfa2luZCA9IHN2X2V4cHJfa2luZDsKIAotCS8qIEFuZCB0cmFuc2Zvcm0gdGhhdCAqLwotCWV4 cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikgaW5kLCBleHByS2luZCk7CisJLyog JyonIHdhcyBjb25zdW1lZCBieSBnZW5lcmljIHR5cGUgc3Vic2NyaXB0aW5nICovCisJaWYgKCF0 cmFpbGluZ19zdGFyX2V4cGFuc2lvbikKKwkJcmV0dXJuIGV4cHI7CiAKIAkvKiBFeHBhbmQgdGhl IHJvd3R5cGUgZXhwcmVzc2lvbiBpbnRvIGluZGl2aWR1YWwgZmllbGRzICovCi0JcmV0dXJuIEV4 cGFuZFJvd1JlZmVyZW5jZShwc3RhdGUsIGV4cHIsIG1ha2VfdGFyZ2V0X2VudHJ5KTsKKwlyZXR1 cm4gKE5vZGUgKikgRXhwYW5kUm93UmVmZXJlbmNlKHBzdGF0ZSwgZXhwciwgbWFrZV90YXJnZXRf ZW50cnkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IGFmNTQxN2Qw ODU5Li4xMDAwNmI3NDlkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTI5MTks NyArMTI5MTksMTEgQEAgcHJpbnRTdWJzY3JpcHRzKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLCBk ZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJewogCQlOb2RlCSAgICp1cCA9IChOb2RlICopIGxm aXJzdCh1cGxpc3RfaXRlbSk7CiAKLQkJaWYgKElzQSh1cCwgU3RyaW5nKSkKKwkJaWYgKCF1cCkK KwkJeworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIuKiIpOworCQl9CisJCWVsc2Ug aWYgKElzQSh1cCwgU3RyaW5nKSkKIAkJewogCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAn LicpOwogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIoc3Ry VmFsKHVwKSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggZWZiYWZmOGU3MTAuLmM5ZjZh NzcyNGMwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTIyLDQgKzIyLDcgQEAgZXh0ZXJu IE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJz ZUV4cHJLaW5kIGV4cHJLaW4KIAogZXh0ZXJuIGNvbnN0IGNoYXIgKlBhcnNlRXhwcktpbmROYW1l KFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCitleHRlcm4gTm9kZSAqdHJhbnNmb3JtSW5kaXJl Y3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQsCisJCQkJCQkJCSAg Ym9vbCAqdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24pOworCiAjZW5kaWYJCQkJCQkJLyogUEFSU0Vf RVhQUl9IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDE0MTIzOTI5NDc1 Li45MDU3MTg2YmRmMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29u Yi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTU4OTEs MTkgKzU4OTEsMzkgQEAgc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmludDg7CiBDUkVBVEUgVEFCTEUgdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gQVMKIFNFTEVDVCAneyJhIjogWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6 ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sICJiIjogWzMs IDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XX0nOjpqc29uYiBq YjsKIFNFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLUVSUk9SOiAg dHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpiICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5 IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoi OiAiWlpaIn19XV0KKygxIHJvdykKKwogU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uIHQ7Ci1FUlJPUjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBq YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUi OiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIs ICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisKIFNFTEVDVCAodC5q YikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7Ci1FUlJPUjogIHR5cGUganNvbmIg aXMgbm90IGNvbXBvc2l0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBqYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsi YiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6 eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1d CisoMSByb3cpCisKIFNFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK LUVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7 InkiOiAieXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAi WVlZIiwgInoiOiAiWlpaIn19XV0KKygxIHJvdykKKwogU0VMRUNUICh0LmpiKS4qIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CiBFUlJPUjogIG1pc3NpbmcgRlJPTS1jbGF1c2UgZW50cnkg Zm9yIHRhYmxlICJ0IgogTElORSAxOiBTRUxFQ1QgKHQuamIpLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKICAgICAgICAgICAgICAgICBeCiBTRUxFQ1QgKHQuamIpLiogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbiB0OwotRVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21wb3Np dGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgamIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7ImIiOiAiYyJ9LCB7ImIi OiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCBbMywgNCwg eyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dXQorKDEgcm93KQorCiBT RUxFQ1QgKGpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01OTM1LDc1ICs1OTU1LDEyMCBAQCBTRUxFQ1QgKGpi KS5hLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKICgxIHJvdykKIAogU0VMRUNUIChq YikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjogIHR5cGUganNvbmIg aXMgbm90IGNvbXBvc2l0ZQorICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsiYyIs ICJkIiwgImYiLCB7InkiOiAieXl5IiwgInoiOiAienp6In1dCisoMSByb3cpCisKIFNFTEVDVCAo amIpLmEuKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjogIGltcHJvcGVy IHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIKLUxJTkUgMTogU0VMRUNUIChqYikuYS4qLmIg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg XgorIGIgCistLS0KKyAKKygxIHJvdykKKwogU0VMRUNUIChqYikuYS4qLnggRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKLUVSUk9SOiAgaW1wcm9wZXIgdXNlIG9mICIqIiBhdCBvciBuZWFy ICJGUk9NIgotTElORSAxOiBTRUxFQ1QgKGpiKS5hLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOwotICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgeCAKKy0tLQorIAorKDEgcm93 KQorCiBTRUxFQ1QgKGpiKS5hLioueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwotRVJS T1I6ICBpbXByb3BlciB1c2Ugb2YgIioiIGF0IG9yIG5lYXIgIkZST00iCi1MSU5FIDE6IFNFTEVD VCAoamIpLmEuKi55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgIF4KKyAgIHkgICAKKy0tLS0tLS0KKyAieXl5IgorKDEgcm93KQorCiBTRUxF Q1QgKGpiKS5hLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwotRVJST1I6ICBpbXBy b3BlciB1c2Ugb2YgIioiIGF0IG9yIG5lYXIgIkZST00iCi1MSU5FIDE6IFNFTEVDVCAoamIpLmEu Ki4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgIF4KKyAgICAgICBhICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoi XQorKDEgcm93KQorCiBTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKLUVSUk9SOiAgaW1wcm9wZXIgdXNlIG9mICIqIiBhdCBvciBuZWFyICJGUk9NIgotTElORSAx OiBTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLSAgICAgICAg ICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIs ICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCiBTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbiB0OwotRVJST1I6ICBpbXByb3BlciB1c2Ugb2YgIioiIGF0IG9yIG5lYXIg IkZST00iCi1MSU5FIDE6IFNFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uIHQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICAgICAgICAgICAgICAg ICAgIHggICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFt7InkiOiAieXl5IiwgInoiOiAienp6 In0sIHsieSI6ICJZWVkiLCAieiI6ICJaWloifV0KKygxIHJvdykKKwogU0VMRUNUICgoamIpLiop LnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwotRVJST1I6ICByb3cgZXhwYW5zaW9u IHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlCi1MSU5FIDE6IFNFTEVDVCAoKGpiKS4qKS54 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKLSAgICAgICAgICAgICAgICAgXgorIHgg CistLS0KKyAKKygxIHJvdykKKwogU0VMRUNUICgoamIpLiopLnggRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbiB0OwotRVJST1I6ICByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBv cnRlZCBoZXJlCi1MSU5FIDE6IFNFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb24gdDsKLSAgICAgICAgICAgICAgICAgXgorIHggCistLS0KKyAKKygxIHJvdykKKwog U0VMRUNUICgoamIpLiopWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwotRVJS T1I6ICByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlCi1MSU5FIDE6 IFNFTEVDVCAoKGpiKS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKLSAg ICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9LCB7InkiOiAiWVlZIiwg InoiOiAiWlpaIn1dCisoMSByb3cpCisKIFNFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOwotRVJST1I6ICBpbXByb3BlciB1c2Ugb2YgIioiIGF0IG9yIG5lYXIgIkZS T00iCi1MSU5FIDE6IFNFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OwotICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAgICB4 ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9LCB7 InkiOiAiWVlZIiwgInoiOiAiWlpaIn1dCisoMSByb3cpCisKIFNFTEVDVCAoamIpLioueC4qIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjogIGltcHJvcGVyIHVzZSBvZiAiKiIg YXQgb3IgbmVhciAiRlJPTSIKLUxJTkUgMTogU0VMRUNUIChqYikuKi54LiogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAg ICAgICB4ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb Inl5eSIsICJ6enoiLCAiWVlZIiwgIlpaWiJdCisoMSByb3cpCisKIFNFTEVDVCAoamIpLioueC55 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjogIGltcHJvcGVyIHVzZSBvZiAi KiIgYXQgb3IgbmVhciAiRlJPTSIKLUxJTkUgMTogU0VMRUNUIChqYikuKi54LnkgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAg IHkgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgIllZWSJdCisoMSByb3cpCisK IFNFTEVDVCAoamIpLioueC56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjog IGltcHJvcGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIKLUxJTkUgMTogU0VMRUNUIChq YikuKi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorICAgICAgIHogICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsienp6Iiwg IlpaWiJdCisoMSByb3cpCisKIFNFTEVDVCAoamIpLiouKi55IEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247Ci1FUlJPUjogIGltcHJvcGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIK LUxJTkUgMTogU0VMRUNUIChqYikuKi4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgIHkgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLQorIFsieXl5IiwgIllZWSJdCisoMSByb3cpCisKIFNFTEVDVCAoamIpLiouKi4qIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjogIGltcHJvcGVyIHVzZSBvZiAiKiIg YXQgb3IgbmVhciAiRlJPTSIKLUxJTkUgMTogU0VMRUNUIChqYikuKi4qLiogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAg ICAgICBqYiAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb Inl5eSIsICJ6enoiLCAiWVlZIiwgIlpaWiJdCisoMSByb3cpCisKIFNFTEVDVCAoamIpLiouKi4q LiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLUVSUk9SOiAgaW1wcm9wZXIgdXNlIG9m ICIqIiBhdCBvciBuZWFyICJGUk9NIgotTElORSAxOiBTRUxFQ1QgKGpiKS4qLiouKi4qIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor IGpiIAorLS0tLQorIAorKDEgcm93KQorCiBTRUxFQ1QgKGpiKS5hLmIuYy4qIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQor IGMgCistLS0KKyAKKygxIHJvdykKKwogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxF Q1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci1FUlJPUjogIHR5cGUganNv bmIgaXMgbm90IGNvbXBvc2l0ZQorICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IGpi LioKKygyIHJvd3MpCisKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYiku YSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCkBAIC02MDE5LDEwICs2MDg0LDE2IEBAIEVYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogKDIg cm93cykKIAogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLipbJ2In XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwotRVJST1I6ICBpbXByb3BlciB1c2Ugb2Yg IioiIGF0IG9yIG5lYXIgIkZST00iCi1MSU5FIDE6IEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9G RikgU0VMRUNUIChqYikuYS4qWydiJ10gRlJPTSB0ZXN0Xy4uLgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9u b3RhdGlvbgorICAgT3V0cHV0OiBqYi5hLipbJ2InOjp0ZXh0XQorKDIgcm93cykKKwogRVhQTEFJ TiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLipbMToyXVsnYiddLmIgRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLUVSUk9SOiAgaW1wcm9wZXIgdXNlIG9mICIqIiBhdCBv ciBuZWFyICJGUk9NIgotTElORSAxOiAuLi4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChq YikuYS4qWzE6Ml1bJ2InXS5iIEZST00gdGVzdF8uLi4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90 YXRpb24KKyAgIE91dHB1dDogamIuYS4qWzE6Ml1bOidiJzo6dGV4dF0uYgorKDIgcm93cykKKwot LSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --00000000000096028c062d6542e5 Content-Type: application/octet-stream; name="v7-0001-Allow-transformation-only-of-a-sublist-of-subscri.patch" Content-Disposition: attachment; filename="v7-0001-Allow-transformation-only-of-a-sublist-of-subscri.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6ryfo5q0 RnJvbSA1ZGEzZDM2NWM4ZWI3MmJmNDY3ZmUzM2M3MTczZmVkZDYxYzlmOTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IEZyaSwgMTQgT2N0IDIwMjIgMTU6MzU6MjIgKzAzMDAKU3ViamVjdDogW1BBVENI IHY3IDEvNV0gQWxsb3cgdHJhbnNmb3JtYXRpb24gb25seSBvZiBhIHN1Ymxpc3Qgb2Ygc3Vic2Ny aXB0cwoKLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgfCA5ICsrKystLS0t LQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYyAgIHwgNCArKy0tCiBzcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgfCA1ICsrKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQv YXJyYXlzdWJzLmMgfCA2ICsrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5j IHwgNiArKysrLS0KIHNyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGluZy5oICB8IDIgKy0KIHNy Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICB8IDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwg MjAgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMK aW5kZXggYmFkMWRmNzMyZWEuLjJjMGY0YTUwYjIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMK QEAgLTQ2NiwxNCArNDY2LDEzIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKIAog CQkJLyogcHJvY2VzcyBzdWJzY3JpcHRzIGJlZm9yZSB0aGlzIGZpZWxkIHNlbGVjdGlvbiAqLwot CQkJaWYgKHN1YnNjcmlwdHMpCisJCQl3aGlsZSAoc3Vic2NyaXB0cykKIAkJCQlyZXN1bHQgPSAo Tm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKIAkJCQkJCQkJCQkJ CQkJCSAgIHJlc3VsdCwKIAkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJ CQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICBzdWJz Y3JpcHRzLAorCQkJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJCQkg ICBmYWxzZSk7Ci0JCQlzdWJzY3JpcHRzID0gTklMOwogCiAJCQluZXdyZXN1bHQgPSBQYXJzZUZ1 bmNPckNvbHVtbihwc3RhdGUsCiAJCQkJCQkJCQkJICBsaXN0X21ha2UxKG4pLApAQCAtNDg4LDEy ICs0ODcsMTIgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0lu ZGlyZWN0aW9uICppbmQpCiAJCX0KIAl9CiAJLyogcHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRz LCBpZiBhbnkgKi8KLQlpZiAoc3Vic2NyaXB0cykKKwl3aGlsZSAoc3Vic2NyaXB0cykKIAkJcmVz dWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCiAJCQkJ CQkJCQkJCQkJICAgcmVzdWx0LAogCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJ CQkJCQkJCQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJCSAgIHN1YnNj cmlwdHMsCisJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJICAgZmFs c2UpOwogCiAJcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ub2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IGQ2ZmVi MTZhZWYzLi4xOWE2YjY3OGU2NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X25vZGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yNDQsNyAr MjQ0LDcgQEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJIE5vZGUgKmNvbnRhaW5lckJhc2UsCiAJCQkJCQkJIE9pZCBjb250YWluZXJUeXBl LAogCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJIExpc3QgKmluZGlyZWN0 aW9uLAorCQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJIGJvb2wgaXNBc3NpZ25t ZW50KQogewogCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmOwpAQCAtMjgwLDcgKzI4MCw3IEBAIHRy YW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGVsZW1l bnQuICBJZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBl ciksIHRoZW4KIAkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIg c2xpY2Ugb3BlcmF0aW9uLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3Jl YWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9k ZShBX0luZGljZXMsIGlkeCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA0YWJh MGQ5ZDRkNS4uMzlmZDgyZjgzNzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkz Niw5ICs5MzYsMTIgQEAgdHJhbnNmb3JtQXNzaWdubWVudFN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJCQkJCSAgYmFzZW5vZGUsCiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBl LAogCQkJCQkJCQkJCSAgY29udGFpbmVyVHlwTW9kLAotCQkJCQkJCQkJCSAgc3Vic2NyaXB0cywK KwkJCQkJCQkJCQkgICZzdWJzY3JpcHRzLAogCQkJCQkJCQkJCSAgdHJ1ZSk7CiAKKwlpZiAoc3Vi c2NyaXB0cykKKwkJZWxvZyhFUlJPUiwgInN1YnNjcmlwdGluZyBhc3NpZ25tZW50IGlzIG5vdCBz dXBwb3J0ZWQiKTsKKwogCXR5cGVOZWVkZWQgPSBzYnNyZWYtPnJlZnJlc3R5cGU7CiAJdHlwbW9k TmVlZGVkID0gc2JzcmVmLT5yZWZ0eXBtb2Q7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheXN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYwpp bmRleCA1NjIxNzliMzc5OS4uZWRkODVmN2JhNjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheXN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJz LmMKQEAgLTUzLDcgKzUzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlTdWJXb3Jrc3BhY2UKICAq Lwogc3RhdGljIHZvaWQKIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVm ICpzYnNyZWYsCi0JCQkJCQkgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJICBMaXN0ICoqaW5k aXJlY3Rpb24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgYm9vbCBpc1Ns aWNlLAogCQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKQEAgLTcwLDcgKzcwLDcgQEAgYXJyYXlf c3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKiBpbmRpcmVj dGlvbiBpdGVtcyB0byBzbGljZXMgYnkgdHJlYXRpbmcgdGhlIHNpbmdsZSBzdWJzY3JpcHQgYXMg dGhlCiAJICogdXBwZXIgYm91bmQgYW5kIHN1cHBseWluZyBhbiBhc3N1bWVkIGxvd2VyIGJvdW5k IG9mIDEuCiAJICovCi0JZm9yZWFjaChpZHgsIGluZGlyZWN0aW9uKQorCWZvcmVhY2goaWR4LCAq aW5kaXJlY3Rpb24pCiAJewogCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNl cywgaWR4KTsKIAkJTm9kZQkgICAqc3ViZXhwcjsKQEAgLTE1MSw2ICsxNTEsOCBAQCBhcnJheV9z dWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJbGlzdF9s ZW5ndGgodXBwZXJJbmRleHByKSwgTUFYRElNKSkpOwogCS8qIFdlIG5lZWQgbm90IGNoZWNrIGxv d2VySW5kZXhwciBzZXBhcmF0ZWx5ICovCiAKKwkqaW5kaXJlY3Rpb24gPSBOSUw7CisKIAkvKgog CSAqIERldGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRp b24uICBJdCdzIHRoZSBzYW1lCiAJICogYXMgdGhlIGFycmF5IHR5cGUgaWYgd2UncmUgc2xpY2lu ZywgZWxzZSBpdCdzIHRoZSBlbGVtZW50IHR5cGUuICBJbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jCmluZGV4IGRlNjRkNDk4NTEyLi44YWQ2YWExYWQ0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29u YnN1YnMuYwpAQCAtNDEsNyArNDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBKc29uYlN1YldvcmtzcGFj ZQogICovCiBzdGF0aWMgdm9pZAoganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRp bmdSZWYgKnNic3JlZiwKLQkJCQkJCSAgTGlzdCAqaW5kaXJlY3Rpb24sCisJCQkJCQkgIExpc3Qg KippbmRpcmVjdGlvbiwKIAkJCQkJCSAgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJICBib29s IGlzU2xpY2UsCiAJCQkJCQkgIGJvb2wgaXNBc3NpZ25tZW50KQpAQCAtNTMsNyArNTMsNyBAQCBq c29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCSAqIFRy YW5zZm9ybSBhbmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb25zLiBKc29uYiBzdWJz Y3JpcHRpbmcKIAkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcywgbG9vayBvbmx5IGFuZCB0aGUg dXBwZXIgaW5kZXguCiAJICovCi0JZm9yZWFjaChpZHgsIGluZGlyZWN0aW9uKQorCWZvcmVhY2go aWR4LCAqaW5kaXJlY3Rpb24pCiAJewogCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFf SW5kaWNlcywgaWR4KTsKIAkJTm9kZQkgICAqc3ViRXhwcjsKQEAgLTE1OSw2ICsxNTksOCBAQCBq c29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERl dGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFs d2F5cyBqc29uYiAqLwogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05CT0lEOwogCXNic3JlZi0+ cmVmdHlwbW9kID0gLTE7CisKKwkqaW5kaXJlY3Rpb24gPSBOSUw7CiB9CiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCBiL3NyYy9pbmNsdWRlL25vZGVz L3N1YnNjcmlwdGluZy5oCmluZGV4IDIzNGU4YWQ4MDEyLi5lZDJmMWNlZmI0OSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvc3Vic2NyaXB0aW5nLmgKQEAgLTkzLDcgKzkzLDcgQEAgc3RydWN0IFN1YnNjcmlwdEV4ZWNT dGVwczsKICAqIGFzc2lnbm1lbnQgbXVzdCByZXR1cm4uCiAgKi8KIHR5cGVkZWYgdm9pZCAoKlN1 YnNjcmlwdFRyYW5zZm9ybSkgKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAotCQkJCQkJCQkJTGlz dCAqaW5kaXJlY3Rpb24sCisJCQkJCQkJCQlMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJCQlz dHJ1Y3QgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJYm9vbCBpc1NsaWNlLAogCQkJCQkJ CQkJYm9vbCBpc0Fzc2lnbm1lbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggOTk0Mjg0 MDE5ZmIuLjVhZTExY2NlYzMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM3Nyw3ICsz NzcsNyBAQCBleHRlcm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJzY3Jp cHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgTm9kZSAqY29udGFpbmVyQmFz ZSwKIAkJCQkJCQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJCQkJIGludDMy IGNvbnRhaW5lclR5cE1vZCwKLQkJCQkJCQkJCQkJCQkgTGlzdCAqaW5kaXJlY3Rpb24sCisJCQkJ CQkJCQkJCQkJIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCQkJCQkJCQkgYm9vbCBpc0Fzc2ln bm1lbnQpOwogZXh0ZXJuIENvbnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9D b25zdCAqYWNvbnN0KTsKIAotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --00000000000096028c062d6542e5 Content-Type: application/octet-stream; name="v7-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v7-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6ryfo5w2 RnJvbSAwMTVmMDFiNDRmYTk5ZmUxMjQyYjIxY2I4MzczNmU0ZDMxZmE1NjcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNTo1NSArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djcgMy81XSBFeHBvcnQganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoKQoKLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbnBhdGguYyB8IDI0ICsrKysrKysrKysrKysrKysrKy0tLS0tLQogc3Jj L2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaCAgICAgfCAgNCArKysrCiAyIGZpbGVzIGNoYW5nZWQs IDIyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25wYXRoLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGgu YwppbmRleCA3NjJmN2U4YTA5ZC4uYTMyNzBiZGFiYTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29ucGF0aC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0 aC5jCkBAIC0xNjUsMTYgKzE2NSwxMiBAQCBqc29ucGF0aF9zZW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAvKgogICogQ29udmVydHMgQy1zdHJpbmcgdG8gYSBqc29ucGF0aCB2YWx1ZS4KICAqCi0gKiBV c2VzIGpzb25wYXRoIHBhcnNlciB0byB0dXJuIHN0cmluZyBpbnRvIGFuIEFTVCwgdGhlbgotICog ZmxhdHRlbkpzb25QYXRoUGFyc2VJdGVtKCkgZG9lcyBzZWNvbmQgcGFzcyB0dXJuaW5nIEFTVCBp bnRvIGJpbmFyeQotICogcmVwcmVzZW50YXRpb24gb2YganNvbnBhdGguCisgKiBVc2VzIGpzb25w YXRoIHBhcnNlciB0byB0dXJuIHN0cmluZyBpbnRvIGFuIEFTVC4KICAqLwogc3RhdGljIERhdHVt CiBqc29uUGF0aEZyb21Dc3RyaW5nKGNoYXIgKmluLCBpbnQgbGVuLCBzdHJ1Y3QgTm9kZSAqZXNj b250ZXh0KQogewogCUpzb25QYXRoUGFyc2VSZXN1bHQgKmpzb25wYXRoID0gcGFyc2Vqc29ucGF0 aChpbiwgbGVuLCBlc2NvbnRleHQpOwotCUpzb25QYXRoICAgKnJlczsKLQlTdHJpbmdJbmZvRGF0 YSBidWY7CiAKIAlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQogCQlyZXR1cm4g KERhdHVtKSAwOwpAQCAtMTg1LDggKzE4MSwyNCBAQCBqc29uUGF0aEZyb21Dc3RyaW5nKGNoYXIg KmluLCBpbnQgbGVuLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogCQkJCSBlcnJtc2coImludmFs aWQgaW5wdXQgc3ludGF4IGZvciB0eXBlICVzOiBcIiVzXCIiLCAianNvbnBhdGgiLAogCQkJCQkJ aW4pKSk7CiAKKwlyZXR1cm4ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoanNvbnBhdGgsIDQgKiBs ZW4sIGVzY29udGV4dCk7Cit9CisKKy8qCisgKiBDb252ZXJ0cyBqc29ucGF0aCBBU1QgdG8gYSBq c29ucGF0aCB2YWx1ZS4KKyAqCisgKiBmbGF0dGVuSnNvblBhdGhQYXJzZUl0ZW0oKSBkb2VzIHNl Y29uZCBwYXNzIHR1cm5pbmcgQVNUIGludG8gYmluYXJ5CisgKiByZXByZXNlbnRhdGlvbiBvZiBq c29ucGF0aC4KKyAqLworRGF0dW0KK2pzb25QYXRoRnJvbVBhcnNlUmVzdWx0KEpzb25QYXRoUGFy c2VSZXN1bHQgKmpzb25wYXRoLCBpbnQgZXN0aW1hdGVkX2xlbiwKKwkJCQkJCXN0cnVjdCBOb2Rl ICplc2NvbnRleHQpCit7CisJSnNvblBhdGggICAqcmVzOworCVN0cmluZ0luZm9EYXRhIGJ1ZjsK KwogCWluaXRTdHJpbmdJbmZvKCZidWYpOwotCWVubGFyZ2VTdHJpbmdJbmZvKCZidWYsIDQgKiBs ZW4gLyogZXN0aW1hdGlvbiAqLyApOworCWVubGFyZ2VTdHJpbmdJbmZvKCZidWYsIGVzdGltYXRl ZF9sZW4pOwogCiAJYXBwZW5kU3RyaW5nSW5mb1NwYWNlcygmYnVmLCBKU09OUEFUSF9IRFJTWik7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmggYi9zcmMvaW5jbHVk ZS91dGlscy9qc29ucGF0aC5oCmluZGV4IDIzYTc2ZDIzM2U5Li5lMDU5NDE2MjNlNyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy9qc29ucGF0aC5oCkBAIC0yODEsNiArMjgxLDEwIEBAIGV4dGVybiBKc29uUGF0aFBhcnNlUmVz dWx0ICpwYXJzZWpzb25wYXRoKGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbiwKIGV4dGVybiBib29s IGpzcENvbnZlcnRSZWdleEZsYWdzKHVpbnQzMiB4ZmxhZ3MsIGludCAqcmVzdWx0LAogCQkJCQkJ CQkgc3RydWN0IE5vZGUgKmVzY29udGV4dCk7CiAKK2V4dGVybiBEYXR1bSBqc29uUGF0aEZyb21Q YXJzZVJlc3VsdChKc29uUGF0aFBhcnNlUmVzdWx0ICpqc29ucGF0aCwKKwkJCQkJCQkJCSBpbnQg ZXN0aW1hdGVkX2xlbiwKKwkJCQkJCQkJCSBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKKwogLyoK ICAqIFN0cnVjdCBmb3IgZGV0YWlscyBhYm91dCBleHRlcm5hbCB2YXJpYWJsZXMgcGFzc2VkIGlu dG8ganNvbnBhdGggZXhlY3V0b3IKICAqLwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --00000000000096028c062d6542e5 Content-Type: application/octet-stream; name="v7-0004-Implement-read-only-dot-notation-for-jsonb-using-.patch" Content-Disposition: attachment; filename="v7-0004-Implement-read-only-dot-notation-for-jsonb-using-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6ryfo5x3 RnJvbSA1M2JjMWRhNzhiMGZlYjc3NjljNTcxZmJjYWZiNzBjMjIxNGE5YzQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAyMzoxNzo1MyArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djcgNC81XSBJbXBsZW1lbnQgcmVhZC1vbmx5IGRvdCBub3RhdGlvbiBmb3IganNvbmIgdXNpbmcK IGpzb25wYXRoCgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyAgIHwgNDM4 ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0IHwg MjY1ICsrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgICAg ICB8ICA1NiArKysrCiA0IGZpbGVzIGNoYW5nZWQsIDY3MCBpbnNlcnRpb25zKCspLCA5MSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKaW5kZXggYTBkMzhhMGZkODAuLjFl Y2VjYjRlZmEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCkBAIC0xNSwxMiArMTUsMTQg QEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIu aCIKKyNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVu Y3MuaCIKICNpbmNsdWRlICJub2Rlcy9zdWJzY3JpcHRpbmcuaCIKICNpbmNsdWRlICJwYXJzZXIv cGFyc2VfY29lcmNlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2pzb25iLmgiCisjaW5jbHVkZSAi dXRpbHMvanNvbnBhdGguaCIKIAogCiAvKiBTdWJzY3JpcHRpbmdSZWZTdGF0ZS53b3Jrc3BhY2Ug Zm9yIGpzb25iIHN1YnNjcmlwdGluZyBleGVjdXRpb24gKi8KQEAgLTMwLDggKzMyLDI2MSBAQCB0 eXBlZGVmIHN0cnVjdCBKc29uYlN1YldvcmtzcGFjZQogCU9pZAkJICAgKmluZGV4T2lkOwkJLyog T0lEIG9mIGNvZXJjZWQgc3Vic2NyaXB0IGV4cHJlc3Npb24sIGNvdWxkCiAJCQkJCQkJCSAqIGJl IG9ubHkgaW50ZWdlciBvciB0ZXh0ICovCiAJRGF0dW0JICAgKmluZGV4OwkJCS8qIFN1YnNjcmlw dCB2YWx1ZXMgaW4gRGF0dW0gZm9ybWF0ICovCisJSnNvblBhdGggICAqanNvbnBhdGg7CQkvKiBq c29ucGF0aCBmb3IgZG90IG5vdGF0aW9uIGV4ZWN1dGlvbiAqLworCUxpc3QJCXZhcnM7CQkJLyog anNvbnBhdGggdmFycyAqLwogfSBKc29uYlN1YldvcmtzcGFjZTsKIAorc3RhdGljIGJvb2wKK2pz b25iX2NoZWNrX2pzb25wYXRoX25lZWRlZChMaXN0ICppbmRpcmVjdGlvbikKK3sKKwlMaXN0Q2Vs bCAgICpsYzsKKworCWZvcmVhY2gobGMsIGluZGlyZWN0aW9uKQorCXsKKwkJTm9kZQkgICAqYWNj ZXNzb3IgPSBsZmlyc3QobGMpOworCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykgfHwKKwkJ CUlzQShhY2Nlc3NvciwgQV9TdGFyKSkKKwkJCXJldHVybiB0cnVlOworCQllbHNlIGlmIChJc0Eo YWNjZXNzb3IsIEFfSW5kaWNlcykpCisJCXsKKwkJCUFfSW5kaWNlcyAgKmFpID0gY2FzdE5vZGUo QV9JbmRpY2VzLCBhY2Nlc3Nvcik7CisKKwkJCWlmICghYWktPnVpZHggfHwgYWktPmxpZHgpCisJ CQl7CisJCQkJQXNzZXJ0KGFpLT5pc19zbGljZSk7CisJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJ CX0KKwkJZWxzZQorCQkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCitz dGF0aWMgSnNvblBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtKEpzb25QYXRoSXRl bVR5cGUgdHlwZSkKK3sKKwlKc29uUGF0aFBhcnNlSXRlbSAqdiA9IHBhbGxvYyhzaXplb2YoKnYp KTsKKworCXYtPnR5cGUgPSB0eXBlOworCXYtPm5leHQgPSBOVUxMOworCisJcmV0dXJuIHY7Cit9 CisKK3N0YXRpYyBKc29uUGF0aFBhcnNlSXRlbSAqCittYWtlX2pzb25wYXRoX2l0ZW1faW50KGlu dDMyIHZhbCwgTGlzdCAqKmV4cHJzKQoreworCUpzb25QYXRoUGFyc2VJdGVtICpqcGkgPSBtYWtl X2pzb25wYXRoX2l0ZW0oanBpTnVtZXJpYyk7CisKKwlqcGktPnZhbHVlLm51bWVyaWMgPQorCQlE YXR1bUdldE51bWVyaWMoRGlyZWN0RnVuY3Rpb25DYWxsMShpbnQ0X251bWVyaWMsIEludDMyR2V0 RGF0dW0odmFsKSkpOworCisJKmV4cHJzID0gbGFwcGVuZCgqZXhwcnMsIG1ha2VDb25zdChJTlQ0 T0lELCAtMSwgSW52YWxpZE9pZCwgNCwKKwkJCQkJCQkJCSAgIEludDMyR2V0RGF0dW0odmFsKSwg ZmFsc2UsIHRydWUpKTsKKworCXJldHVybiBqcGk7Cit9CisKK3N0YXRpYyBPaWQKK2pzb25iX3N1 YnNjcmlwdF90eXBlKE5vZGUgKmV4cHIpCit7CisJaWYgKGV4cHIgJiYgSXNBKGV4cHIsIFN0cmlu ZykpCisJCXJldHVybiBURVhUT0lEOworCisJcmV0dXJuIGV4cHJUeXBlKGV4cHIpOworfQorCitz dGF0aWMgTm9kZSAqCitjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqc3ViRXhwciwgT2lkIG51bXR5cGUpCit7CisJT2lkCQkJc3ViRXhwclR5cGUgPSBq c29uYl9zdWJzY3JpcHRfdHlwZShzdWJFeHByKTsKKwlPaWQJCQl0YXJnZXRUeXBlID0gVU5LTk9X Tk9JRDsKKworCWlmIChzdWJFeHByVHlwZSAhPSBVTktOT1dOT0lEKQorCXsKKwkJT2lkCQkJdGFy Z2V0c1syXSA9IHtudW10eXBlLCBURVhUT0lEfTsKKworCQkvKgorCQkgKiBKc29uYiBjYW4gaGFu ZGxlIG11bHRpcGxlIHN1YnNjcmlwdCB0eXBlcywgYnV0IGNhc2VzIHdoZW4gYQorCQkgKiBzdWJz Y3JpcHQgY291bGQgYmUgY29lcmNlZCB0byBtdWx0aXBsZSB0YXJnZXQgdHlwZXMgbXVzdCBiZQor CQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQgZnVuY3Rpb25zLiBJdCBjb3VsZCBi ZQorCQkgKiBwb3NzaWJseSBleHRlbmQgd2l0aCBqc29ucGF0aCBpbiB0aGUgZnV0dXJlLgorCQkg Ki8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspCisJCXsKKwkJCWlmIChjYW5fY29lcmNl X3R5cGUoMSwgJnN1YkV4cHJUeXBlLCAmdGFyZ2V0c1tpXSwgQ09FUkNJT05fSU1QTElDSVQpKQor CQkJeworCQkJCS8qCisJCQkJICogT25lIHR5cGUgaGFzIGFscmVhZHkgc3VjY2VlZGVkLCBpdCBt ZWFucyB0aGVyZSBhcmUKKwkJCQkgKiB0d28gY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJsZSwgZmFp bHVyZS4KKwkJCQkgKi8KKwkJCQlpZiAodGFyZ2V0VHlwZSAhPSBVTktOT1dOT0lEKQorCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gp LAorCQkJCQkJCSBlcnJtc2coInN1YnNjcmlwdCB0eXBlICVzIGlzIG5vdCBzdXBwb3J0ZWQiLCBm b3JtYXRfdHlwZV9iZShzdWJFeHByVHlwZSkpLAorCQkJCQkJCSBlcnJoaW50KCJqc29uYiBzdWJz Y3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUgdHlwZSwgaW50ZWdlciBvciB0ZXh0 LiIpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc3Vi RXhwcikpKSk7CisKKwkJCQl0YXJnZXRUeXBlID0gdGFyZ2V0c1tpXTsKKwkJCX0KKwkJfQorCisJ CS8qCisJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUgZm91bmQsIGZhaWx1cmUuCisJCSAqLwor CQlpZiAodGFyZ2V0VHlwZSA9PSBVTktOT1dOT0lEKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInN1YnNj cmlwdCB0eXBlICVzIGlzIG5vdCBzdXBwb3J0ZWQiLCBmb3JtYXRfdHlwZV9iZShzdWJFeHByVHlw ZSkpLAorCQkJCQkgZXJyaGludCgianNvbmIgc3Vic2NyaXB0IG11c3QgYmUgY29lcmNpYmxlIHRv IGVpdGhlciBpbnRlZ2VyIG9yIHRleHQuIiksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7CisJfQorCWVsc2UKKwkJdGFyZ2V0VHlwZSA9 IFRFWFRPSUQ7CisKKwkvKgorCSAqIFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRoYXQg Y29lcmNpb24gd2lsbCBzdWNjZWVkLCBzbworCSAqIGNvZXJjZV90eXBlIGNvdWxkIGJlIHVzZWQu IE5vdGUgdGhlIGltcGxpY2l0IGNvZXJjaW9uIGNvbnRleHQsCisJICogd2hpY2ggaXMgcmVxdWly ZWQgdG8gaGFuZGxlIHN1YnNjcmlwdHMgb2YgZGlmZmVyZW50IHR5cGVzLAorCSAqIHNpbWlsYXIg dG8gb3ZlcmxvYWRlZCBmdW5jdGlvbnMuCisJICovCisJc3ViRXhwciA9IGNvZXJjZV90eXBlKHBz dGF0ZSwKKwkJCQkJCSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCisJCQkJCQkgIHRhcmdldFR5cGUs IC0xLAorCQkJCQkJICBDT0VSQ0lPTl9JTVBMSUNJVCwKKwkJCQkJCSAgQ09FUkNFX0lNUExJQ0lU X0NBU1QsCisJCQkJCQkgIC0xKTsKKwlpZiAoc3ViRXhwciA9PSBOVUxMKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJt c2coImpzb25iIHN1YnNjcmlwdCBtdXN0IGhhdmUgdGV4dCB0eXBlIiksCisJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKworCXJldHVybiBz dWJFeHByOworfQorCitzdGF0aWMgSnNvblBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9p dGVtX2V4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMpCit7 CisJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaTsKKworCWV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0 ZSwgZXhwciwgcHN0YXRlLT5wX2V4cHJfa2luZCk7CisKKwlpZiAoSXNBKGV4cHIsIENvbnN0KSkK Kwl7CisJCUNvbnN0CSAgICpjbnN0ID0gKENvbnN0ICopIGV4cHI7CisKKwkJaWYgKGNuc3QtPmNv bnN0dHlwZSA9PSBJTlQ0T0lEICYmICFjbnN0LT5jb25zdGlzbnVsbCkKKwkJeworCQkJaW50MzIJ CXZhbCA9IERhdHVtR2V0SW50MzIoY25zdC0+Y29uc3R2YWx1ZSk7CisKKwkJCXJldHVybiBtYWtl X2pzb25wYXRoX2l0ZW1faW50KHZhbCwgZXhwcnMpOworCQl9CisJfQorCisJKmV4cHJzID0gbGFw cGVuZCgqZXhwcnMsIGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHQocHN0YXRlLCBleHByLCBOVU1F UklDT0lEKSk7CisKKwlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpVmFyaWFibGUpOworCWpw aS0+dmFsdWUuc3RyaW5nLnZhbCA9IHBzcHJpbnRmKCIlZCIsIGxpc3RfbGVuZ3RoKCpleHBycykp OworCWpwaS0+dmFsdWUuc3RyaW5nLmxlbiA9IHN0cmxlbihqcGktPnZhbHVlLnN0cmluZy52YWwp OworCisJcmV0dXJuIGpwaTsKK30KKworc3RhdGljIE5vZGUgKgoranNvbmJfc3Vic2NyaXB0X21h a2VfanNvbnBhdGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sCisJCQkJ CQkJICBMaXN0ICoqdWV4cHJzLCBMaXN0ICoqbGV4cHJzKQoreworCUpzb25QYXRoUGFyc2VSZXN1 bHQganByZXM7CisJSnNvblBhdGhQYXJzZUl0ZW0gKnBhdGggPSBtYWtlX2pzb25wYXRoX2l0ZW0o anBpUm9vdCk7CisJTGlzdENlbGwgICAqbGM7CisJRGF0dW0JCWpzcDsKKwlpbnQJCQlwYXRobGVu ID0gMDsKKworCSp1ZXhwcnMgPSBOSUw7CisJKmxleHBycyA9IE5JTDsKKworCWpwcmVzLmV4cHIg PSBwYXRoOworCWpwcmVzLmxheCA9IHRydWU7CisKKwlmb3JlYWNoKGxjLCAqaW5kaXJlY3Rpb24p CisJeworCQlOb2RlCSAgICphY2Nlc3NvciA9IGxmaXJzdChsYyk7CisJCUpzb25QYXRoUGFyc2VJ dGVtICpqcGk7CisKKwkJaWYgKElzQShhY2Nlc3NvciwgU3RyaW5nKSkKKwkJeworCQkJY2hhcgkg ICAqZmllbGQgPSBzdHJWYWwoYWNjZXNzb3IpOworCisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0 ZW0oanBpS2V5KTsKKwkJCWpwaS0+dmFsdWUuc3RyaW5nLnZhbCA9IGZpZWxkOworCQkJanBpLT52 YWx1ZS5zdHJpbmcubGVuID0gc3RybGVuKGZpZWxkKTsKKworCQkJKnVleHBycyA9IGxhcHBlbmQo KnVleHBycywgYWNjZXNzb3IpOworCQl9CisJCWVsc2UgaWYgKElzQShhY2Nlc3NvciwgQV9TdGFy KSkKKwkJeworCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUFueUtleSk7CisKKwkJCSp1 ZXhwcnMgPSBsYXBwZW5kKCp1ZXhwcnMsIE5VTEwpOworCQl9CisJCWVsc2UgaWYgKElzQShhY2Nl c3NvciwgQV9JbmRpY2VzKSkKKwkJeworCQkJQV9JbmRpY2VzICAqYWkgPSBjYXN0Tm9kZShBX0lu ZGljZXMsIGFjY2Vzc29yKTsKKworCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUluZGV4 QXJyYXkpOworCQkJanBpLT52YWx1ZS5hcnJheS5uZWxlbXMgPSAxOworCQkJanBpLT52YWx1ZS5h cnJheS5lbGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXSkpOwor CisJCQlpZiAoYWktPmlzX3NsaWNlKQorCQkJeworCQkJCXdoaWxlIChsaXN0X2xlbmd0aCgqbGV4 cHJzKSA8IGxpc3RfbGVuZ3RoKCp1ZXhwcnMpKQorCQkJCQkqbGV4cHJzID0gbGFwcGVuZCgqbGV4 cHJzLCBOVUxMKTsKKworCQkJCWlmIChhaS0+bGlkeCkKKwkJCQkJanBpLT52YWx1ZS5hcnJheS5l bGVtc1swXS5mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIocHN0YXRlLCBhaS0+bGlkeCwg bGV4cHJzKTsKKwkJCQllbHNlCisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0uZnJvbSA9 IG1ha2VfanNvbnBhdGhfaXRlbV9pbnQoMCwgbGV4cHJzKTsKKworCQkJCWlmIChhaS0+dWlkeCkK KwkJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9IG1ha2VfanNvbnBhdGhfaXRlbV9l eHByKHBzdGF0ZSwgYWktPnVpZHgsIHVleHBycyk7CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJanBp LT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlMYXN0KTsK KwkJCQkJKnVleHBycyA9IGxhcHBlbmQoKnVleHBycywgTlVMTCk7CisJCQkJfQorCQkJfQorCQkJ ZWxzZQorCQkJeworCQkJCUFzc2VydChhaS0+dWlkeCAmJiAhYWktPmxpZHgpOworCQkJCWpwaS0+ dmFsdWUuYXJyYXkuZWxlbXNbMF0uZnJvbSA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0 ZSwgYWktPnVpZHgsIHVleHBycyk7CisJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9 IE5VTEw7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJYnJlYWs7CisKKwkJLyogYXBwZW5kIHBhdGgg aXRlbSAqLworCQlwYXRoLT5uZXh0ID0ganBpOworCQlwYXRoID0ganBpOworCQlwYXRobGVuKys7 CisJfQorCisJaWYgKCpsZXhwcnMpCisJeworCQl3aGlsZSAobGlzdF9sZW5ndGgoKmxleHBycykg PCBsaXN0X2xlbmd0aCgqdWV4cHJzKSkKKwkJCSpsZXhwcnMgPSBsYXBwZW5kKCpsZXhwcnMsIE5V TEwpOworCX0KKworCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0 aW9uLCBwYXRobGVuKTsKKworCWpzcCA9IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCZqcHJlcywg MCwgTlVMTCk7CisKKwlyZXR1cm4gKE5vZGUgKikgbWFrZUNvbnN0KEpTT05QQVRIT0lELCAtMSwg SW52YWxpZE9pZCwgLTEsIGpzcCwgZmFsc2UsIGZhbHNlKTsKK30KIAogLyoKICAqIEZpbmlzaCBw YXJzZSBhbmFseXNpcyBvZiBhIFN1YnNjcmlwdGluZ1JlZiBleHByZXNzaW9uIGZvciBhIGpzb25i LgpAQCAtNDksMTkgKzMwNCwzNSBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlw dGluZ1JlZiAqc2JzcmVmLAogCUxpc3QJICAgKnVwcGVySW5kZXhwciA9IE5JTDsKIAlMaXN0Q2Vs bCAgICppZHg7CiAKKwkvKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3Jp cHRpbmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIgKi8KKwlzYnNyZWYtPnJlZnJlc3R5cGUgPSBK U09OQk9JRDsKKwlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJaWYgKGpzb25iX2NoZWNrX2pz b25wYXRoX25lZWRlZCgqaW5kaXJlY3Rpb24pKQorCXsKKwkJc2JzcmVmLT5yZWZwcml2YXRlID0K KwkJCWpzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKHBzdGF0ZSwgaW5kaXJlY3Rpb24sCisJ CQkJCQkJCQkJICAmc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIsCisJCQkJCQkJCQkJICAmc2JzcmVm LT5yZWZsb3dlcmluZGV4cHIpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBUcmFuc2Zvcm0g YW5kIGNvbnZlcnQgdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucy4gSnNvbmIgc3Vic2NyaXB0aW5n CiAJICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25seSBhbmQgdGhlIHVwcGVyIGlu ZGV4LgogCSAqLwogCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJeworCQlOb2RlCSAgICpp ID0gbGZpcnN0KGlkeCk7CiAJCUFfSW5kaWNlcyAgKmFpOwogCQlOb2RlCSAgICpzdWJFeHByOwog Ci0JCWlmICghSXNBKGxmaXJzdChpZHgpLCBBX0luZGljZXMpKQorCQlBc3NlcnQoSXNBKGksIEFf SW5kaWNlcykpOworCisJCWlmICghSXNBKGksIEFfSW5kaWNlcykpCiAJCQlicmVhazsKIAotCQlh aSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4KTsKKwkJYWkgPSBjYXN0Tm9kZShBX0luZGlj ZXMsIGkpOwogCiAJCWlmIChpc1NsaWNlKQogCQl7CkBAIC03NSw3MSArMzQ2LDggQEAganNvbmJf c3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAogCQlpZiAoYWkt PnVpZHgpCiAJCXsKLQkJCU9pZAkJCXN1YkV4cHJUeXBlID0gSW52YWxpZE9pZCwKLQkJCQkJCXRh cmdldFR5cGUgPSBVTktOT1dOT0lEOwotCiAJCQlzdWJFeHByID0gdHJhbnNmb3JtRXhwcihwc3Rh dGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsKLQkJCXN1YkV4cHJUeXBlID0gZXhw clR5cGUoc3ViRXhwcik7Ci0KLQkJCWlmIChzdWJFeHByVHlwZSAhPSBVTktOT1dOT0lEKQotCQkJ ewotCQkJCU9pZAkJCXRhcmdldHNbMl0gPSB7SU5UNE9JRCwgVEVYVE9JRH07Ci0KLQkJCQkvKgot CQkJCSAqIEpzb25iIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3Vic2NyaXB0IHR5cGVzLCBidXQgY2Fz ZXMgd2hlbiBhCi0JCQkJICogc3Vic2NyaXB0IGNvdWxkIGJlIGNvZXJjZWQgdG8gbXVsdGlwbGUg dGFyZ2V0IHR5cGVzIG11c3QgYmUKLQkJCQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJsb2Fk ZWQgZnVuY3Rpb25zLiBJdCBjb3VsZCBiZQotCQkJCSAqIHBvc3NpYmx5IGV4dGVuZCB3aXRoIGpz b25wYXRoIGluIHRoZSBmdXR1cmUuCi0JCQkJICovCi0JCQkJZm9yIChpbnQgaSA9IDA7IGkgPCAy OyBpKyspCi0JCQkJewotCQkJCQlpZiAoY2FuX2NvZXJjZV90eXBlKDEsICZzdWJFeHByVHlwZSwg JnRhcmdldHNbaV0sIENPRVJDSU9OX0lNUExJQ0lUKSkKLQkJCQkJewotCQkJCQkJLyoKLQkJCQkJ CSAqIE9uZSB0eXBlIGhhcyBhbHJlYWR5IHN1Y2NlZWRlZCwgaXQgbWVhbnMgdGhlcmUgYXJlCi0J CQkJCQkgKiB0d28gY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJsZSwgZmFpbHVyZS4KLQkJCQkJCSAq LwotCQkJCQkJaWYgKHRhcmdldFR5cGUgIT0gVU5LTk9XTk9JRCkKLQkJCQkJCQllcmVwb3J0KEVS Uk9SLAotCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJ CQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgZm9ybWF0 X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkJCSBlcnJoaW50KCJqc29uYiBzdWJzY3Jp cHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUgdHlwZSwgaW50ZWdlciBvciB0ZXh0LiIp LAotCQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJF eHByKSkpKTsKLQotCQkJCQkJdGFyZ2V0VHlwZSA9IHRhcmdldHNbaV07Ci0JCQkJCX0KLQkJCQl9 Ci0KLQkJCQkvKgotCQkJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUgZm91bmQsIGZhaWx1cmUu Ci0JCQkJICovCi0JCQkJaWYgKHRhcmdldFR5cGUgPT0gVU5LTk9XTk9JRCkKLQkJCQkJZXJlcG9y dChFUlJPUiwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKLQkJ CQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgZm9ybWF0 X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkgZXJyaGludCgianNvbmIgc3Vic2NyaXB0 IG11c3QgYmUgY29lcmNpYmxlIHRvIGVpdGhlciBpbnRlZ2VyIG9yIHRleHQuIiksCi0JCQkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKLQkJ CX0KLQkJCWVsc2UKLQkJCQl0YXJnZXRUeXBlID0gVEVYVE9JRDsKLQotCQkJLyoKLQkJCSAqIFdl IGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRoYXQgY29lcmNpb24gd2lsbCBzdWNjZWVkLCBz bwotCQkJICogY29lcmNlX3R5cGUgY291bGQgYmUgdXNlZC4gTm90ZSB0aGUgaW1wbGljaXQgY29l cmNpb24gY29udGV4dCwKLQkJCSAqIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGhhbmRsZSBzdWJzY3Jp cHRzIG9mIGRpZmZlcmVudCB0eXBlcywKLQkJCSAqIHNpbWlsYXIgdG8gb3ZlcmxvYWRlZCBmdW5j dGlvbnMuCi0JCQkgKi8KLQkJCXN1YkV4cHIgPSBjb2VyY2VfdHlwZShwc3RhdGUsCi0JCQkJCQkJ CSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCi0JCQkJCQkJCSAgdGFyZ2V0VHlwZSwgLTEsCi0JCQkJ CQkJCSAgQ09FUkNJT05fSU1QTElDSVQsCi0JCQkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NBU1Qs Ci0JCQkJCQkJCSAgLTEpOwotCQkJaWYgKHN1YkV4cHIgPT0gTlVMTCkKLQkJCQllcmVwb3J0KEVS Uk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCQkg ZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgbXVzdCBoYXZlIHRleHQgdHlwZSIpLAotCQkJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKwkJCXN1 YkV4cHIgPSBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0KHBzdGF0ZSwgc3ViRXhwciwgSU5UNE9J RCk7CiAJCX0KIAkJZWxzZQogCQl7CkBAIC0xNjEsMTAgKzM2OSw2IEBAIGpzb25iX3N1YnNjcmlw dF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZ1cHBlcmlu ZGV4cHIgPSB1cHBlckluZGV4cHI7CiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBOSUw7CiAK LQkvKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0 aW9uOyBhbHdheXMganNvbmIgKi8KLQlzYnNyZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsKLQlz YnNyZWYtPnJlZnR5cG1vZCA9IC0xOwotCiAJLyogUmVtb3ZlIHByb2Nlc3NlZCBlbGVtZW50cyAq LwogCWlmICh1cHBlckluZGV4cHIpCiAJCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0 X24oKmluZGlyZWN0aW9uLCBsaXN0X2xlbmd0aCh1cHBlckluZGV4cHIpKTsKQEAgLTIxOSw3ICs0 MjMsNyBAQCBqc29uYl9zdWJzY3JpcHRfY2hlY2tfc3Vic2NyaXB0cyhFeHByU3RhdGUgKnN0YXRl LAogCQkJICogRm9yIGpzb25iIGZldGNoIGFuZCBhc3NpZ24gZnVuY3Rpb25zIHdlIG5lZWQgdG8g cHJvdmlkZSBwYXRoIGluCiAJCQkgKiB0ZXh0IGZvcm1hdC4gQ29udmVydCBpZiBpdCdzIG5vdCBh bHJlYWR5IHRleHQuCiAJCQkgKi8KLQkJCWlmICh3b3Jrc3BhY2UtPmluZGV4T2lkW2ldID09IElO VDRPSUQpCisJCQlpZiAoIXdvcmtzcGFjZS0+anNvbnBhdGggJiYgd29ya3NwYWNlLT5pbmRleE9p ZFtpXSA9PSBJTlQ0T0lEKQogCQkJewogCQkJCURhdHVtCQlkYXR1bSA9IHNic3JlZnN0YXRlLT51 cHBlcmluZGV4W2ldOwogCQkJCWNoYXIJICAgKmNzID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1 bmN0aW9uQ2FsbDEoaW50NG91dCwgZGF0dW0pKTsKQEAgLTI0NywxNyArNDUxLDQ0IEBAIGpzb25i X3N1YnNjcmlwdF9mZXRjaChFeHByU3RhdGUgKnN0YXRlLAogewogCVN1YnNjcmlwdGluZ1JlZlN0 YXRlICpzYnNyZWZzdGF0ZSA9IG9wLT5kLnNic3JlZi5zdGF0ZTsKIAlKc29uYlN1YldvcmtzcGFj ZSAqd29ya3NwYWNlID0gKEpzb25iU3ViV29ya3NwYWNlICopIHNic3JlZnN0YXRlLT53b3Jrc3Bh Y2U7Ci0JSnNvbmIJICAgKmpzb25iU291cmNlOwogCiAJLyogU2hvdWxkIG5vdCBnZXQgaGVyZSBp ZiBzb3VyY2UganNvbmIgKG9yIGFueSBzdWJzY3JpcHQpIGlzIG51bGwgKi8KIAlBc3NlcnQoISgq b3AtPnJlc251bGwpKTsKIAotCWpzb25iU291cmNlID0gRGF0dW1HZXRKc29uYlAoKm9wLT5yZXN2 YWx1ZSk7Ci0JKm9wLT5yZXN2YWx1ZSA9IGpzb25iX2dldF9lbGVtZW50KGpzb25iU291cmNlLAot CQkJCQkJCQkJICB3b3Jrc3BhY2UtPmluZGV4LAotCQkJCQkJCQkJICBzYnNyZWZzdGF0ZS0+bnVt dXBwZXIsCi0JCQkJCQkJCQkgIG9wLT5yZXNudWxsLAotCQkJCQkJCQkJICBmYWxzZSk7CisJaWYg KHdvcmtzcGFjZS0+anNvbnBhdGgpCisJeworCQlib29sCQllbXB0eSA9IGZhbHNlOworCQlib29s CQllcnJvciA9IGZhbHNlOworCQlMaXN0CSAgICp2YXJzID0gJndvcmtzcGFjZS0+dmFyczsKKwkJ TGlzdENlbGwgICAqbGM7CisKKwkJLyogY29weSBjb21wdXRlZCB2YXJpYWJsZSB2YWx1ZXMgKi8K KwkJZm9yZWFjaChsYywgdmFycykKKwkJeworCQkJSnNvblBhdGhWYXJpYWJsZSAqdmFyID0gbGZp cnN0KGxjKTsKKwkJCWludAkJCWkgPSBmb3JlYWNoX2N1cnJlbnRfaW5kZXgobGMpOworCisJCQl2 YXItPnZhbHVlID0gd29ya3NwYWNlLT5pbmRleFtpXTsKKwkJCXZhci0+aXNudWxsID0gZmFsc2U7 CisJCX0KKworCQkqb3AtPnJlc3ZhbHVlID0gSnNvblBhdGhRdWVyeSgqb3AtPnJlc3ZhbHVlLCB3 b3Jrc3BhY2UtPmpzb25wYXRoLAorCQkJCQkJCQkJICBKU1dfQ09ORElUSU9OQUwsCisJCQkJCQkJ CQkgICZlbXB0eSwgJmVycm9yLCB2YXJzLAorCQkJCQkJCQkJICBOVUxMKTsKKworCQkqb3AtPnJl c251bGwgPSBlbXB0eSB8fCBlcnJvcjsKKwl9CisJZWxzZQorCXsKKwkJSnNvbmIJICAgKmpzb25i U291cmNlID0gRGF0dW1HZXRKc29uYlAoKm9wLT5yZXN2YWx1ZSk7CisKKwkJKm9wLT5yZXN2YWx1 ZSA9IGpzb25iX2dldF9lbGVtZW50KGpzb25iU291cmNlLAorCQkJCQkJCQkJCSAgd29ya3NwYWNl LT5pbmRleCwKKwkJCQkJCQkJCQkgIHNic3JlZnN0YXRlLT5udW11cHBlciwKKwkJCQkJCQkJCQkg IG9wLT5yZXNudWxsLAorCQkJCQkJCQkJCSAgZmFsc2UpOworCX0KIH0KIAogLyoKQEAgLTM2Nywx MiArNTk4LDU3IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vic2NyaXB0aW5nUmVmICpzYnNy ZWYsCiAJTGlzdENlbGwgICAqbGM7CiAJaW50CQkJbnVwcGVyID0gc2JzcmVmLT5yZWZ1cHBlcmlu ZGV4cHItPmxlbmd0aDsKIAljaGFyCSAgICpwdHI7CisJYm9vbAkJdXNlSnNvbnBhdGggPSBzYnNy ZWYtPnJlZnByaXZhdGUgIT0gTlVMTDsKKwlKc29uUGF0aFZhcmlhYmxlICp2YXJzOworCWludAkJ CW52YXJzID0gdXNlSnNvbnBhdGggPyBudXBwZXIgOiAwOwogCiAJLyogQWxsb2NhdGUgdHlwZS1z cGVjaWZpYyB3b3Jrc3BhY2Ugd2l0aCBzcGFjZSBmb3IgcGVyLXN1YnNjcmlwdCBkYXRhICovCi0J d29ya3NwYWNlID0gcGFsbG9jMChNQVhBTElHTihzaXplb2YoSnNvbmJTdWJXb3Jrc3BhY2UpKSAr CisJd29ya3NwYWNlID0gcGFsbG9jMChNQVhBTElHTihvZmZzZXRvZihKc29uYlN1YldvcmtzcGFj ZSwgdmFycy5pbml0aWFsX2VsZW1lbnRzKSArIG52YXJzICogc2l6ZW9mKExpc3RDZWxsKSkgKwor CQkJCQkJTUFYQUxJR04obnZhcnMgKiBzaXplb2YoKnZhcnMpICsgbnZhcnMgKiAxNikgKwogCQkJ CQkJbnVwcGVyICogKHNpemVvZihEYXR1bSkgKyBzaXplb2YoT2lkKSkpOwogCXdvcmtzcGFjZS0+ ZXhwZWN0QXJyYXkgPSBmYWxzZTsKLQlwdHIgPSAoKGNoYXIgKikgd29ya3NwYWNlKSArIE1BWEFM SUdOKHNpemVvZihKc29uYlN1YldvcmtzcGFjZSkpOworCXB0ciA9ICgoY2hhciAqKSB3b3Jrc3Bh Y2UpICsKKwkJTUFYQUxJR04ob2Zmc2V0b2YoSnNvbmJTdWJXb3Jrc3BhY2UsIHZhcnMuaW5pdGlh bF9lbGVtZW50cykgKworCQkJCSBudmFycyAqIHNpemVvZihMaXN0Q2VsbCkpOworCisJaWYgKCF1 c2VKc29ucGF0aCkKKwkJd29ya3NwYWNlLT5qc29ucGF0aCA9IE5VTEw7CisJZWxzZQorCXsKKwkJ d29ya3NwYWNlLT5qc29ucGF0aCA9IERhdHVtR2V0SnNvblBhdGhQKGNhc3ROb2RlKENvbnN0LCBz YnNyZWYtPnJlZnByaXZhdGUpLT5jb25zdHZhbHVlKTsKKworCQl2YXJzID0gKEpzb25QYXRoVmFy aWFibGUgKikgcHRyOworCQlwdHIgKz0gTUFYQUxJR04obnZhcnMgKiBzaXplb2YoKnZhcnMpKTsK KworCQl3b3Jrc3BhY2UtPnZhcnMudHlwZSA9IFRfTGlzdDsKKwkJd29ya3NwYWNlLT52YXJzLmxl bmd0aCA9IG52YXJzOworCQl3b3Jrc3BhY2UtPnZhcnMubWF4X2xlbmd0aCA9IG52YXJzOworCQl3 b3Jrc3BhY2UtPnZhcnMuZWxlbWVudHMgPSAmd29ya3NwYWNlLT52YXJzLmluaXRpYWxfZWxlbWVu dHNbMF07CisKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBudmFyczsgaSsrKQorCQl7CisJCQlOb2Rl CSAgICpleHByID0gbGlzdF9udGgoc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIsIGkpOworCisJCQl3 b3Jrc3BhY2UtPnZhcnMuZWxlbWVudHNbaV0ucHRyX3ZhbHVlID0gJnZhcnNbaV07CisKKwkJCWlm IChleHByICYmIElzQShleHByLCBTdHJpbmcpKQorCQkJeworCQkJCXZhcnNbaV0udHlwaWQgPSBU RVhUT0lEOworCQkJCXZhcnNbaV0udHlwbW9kID0gLTE7CisJCQl9CisJCQllbHNlCisJCQl7CisJ CQkJdmFyc1tpXS50eXBpZCA9IGV4cHJUeXBlKGV4cHIpOworCQkJCXZhcnNbaV0udHlwbW9kID0g ZXhwclR5cG1vZChleHByKTsKKwkJCX0KKworCQkJdmFyc1tpXS5uYW1lID0gcHRyOworCQkJc25w cmludGYocHRyLCAxNiwgIiVkIiwgaSArIDEpOworCQkJdmFyc1tpXS5uYW1lbGVuID0gc3RybGVu KHB0cik7CisKKwkJCXB0ciArPSAxNjsKKwkJfQorCX0KIAogCS8qCiAJICogVGhpcyBjb2Rpbmcg YXNzdW1lcyBzaXplb2YoRGF0dW0pID49IHNpemVvZihPaWQpLCBlbHNlIHdlIG1pZ2h0CkBAIC0z OTAsNyArNjY2LDcgQEAganNvbmJfZXhlY19zZXR1cChjb25zdCBTdWJzY3JpcHRpbmdSZWYgKnNi c3JlZiwKIAkJTm9kZQkgICAqZXhwciA9IGxmaXJzdChsYyk7CiAJCWludAkJCWkgPSBmb3JlYWNo X2N1cnJlbnRfaW5kZXgobGMpOwogCi0JCXdvcmtzcGFjZS0+aW5kZXhPaWRbaV0gPSBleHByVHlw ZShleHByKTsKKwkJd29ya3NwYWNlLT5pbmRleE9pZFtpXSA9IGpzb25iX3N1YnNjcmlwdF90eXBl KGV4cHIpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDgzOWU3MWQ1MmY0Li40 YjFlNWRlOThlNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTcxOCw2ICs3MTgsOCBAQCB0eXBl ZGVmIHN0cnVjdCBTdWJzY3JpcHRpbmdSZWYKIAlFeHByCSAgICpyZWZleHByOwogCS8qIGV4cHJl c3Npb24gZm9yIHRoZSBzb3VyY2UgdmFsdWUsIG9yIE5VTEwgaWYgZmV0Y2ggKi8KIAlFeHByCSAg ICpyZWZhc3NnbmV4cHI7CisJLyogcHJpdmF0ZSBleHByZXNzaW9uICovCisJTm9kZQkgICAqcmVm cHJpdmF0ZTsKIH0gU3Vic2NyaXB0aW5nUmVmOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pz b25iLm91dAppbmRleCAyYmFmZjkzMWJmMi4uMTQxMjM5Mjk0NzUgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvanNvbmIub3V0CkBAIC00OTM5LDYgKzQ5MzksMTIgQEAgc2VsZWN0ICgnMTIzJzo6anNv bmIpWydhJ107CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJzEyMyc6Ompzb25iKS5hOworIGEgCist LS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgnMTIzJzo6anNvbmIpWzBdOwogIGpzb25iIAogLS0t LS0tLQpAQCAtNDk1Nyw2ICs0OTYzLDEyIEBAIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydh J107CiAgMQogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKS5hOworIGEgCist LS0KKyAxCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWzBdOwogIGpzb25i IAogLS0tLS0tLQpAQCAtNDk2OSw2ICs0OTgxLDEyIEBAIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNv bmIpWydub3RfZXhpc3QnXTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogMX0nOjpqc29u YikuIm5vdF9leGlzdCI7Cisgbm90X2V4aXN0IAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwog c2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbTlVMTF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC00 OTgxLDYgKzQ5OTksMTIgQEAgc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbJ2EnXTsK ICAKICgxIHJvdykKIAorc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuYTsKKyBhIAor LS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzBdOwog IGpzb25iIAogLS0tLS0tLQpAQCAtNDk5Myw2ICs1MDE3LDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWycxJ107CiAgIjIiCiAoMSByb3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpLiIxIjsKKyAxIAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sx LCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07CiBFUlJPUjogIHN1YnNjcmlwdCB0eXBlIG51bWVy aWMgaXMgbm90IHN1cHBvcnRlZAogTElORSAxOiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompz b25iKVsxLjBdOwpAQCAtNTAyMiw2ICs1MDUyLDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxd Jzo6anNvbmIpWzFdWydhJ107CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxd Jzo6anNvbmIpWzFdLmE7CisgYSAKKy0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCdbMSwgIjIi LCBudWxsXSc6Ompzb25iKVsxXVswXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwMzQsNzMgKzUw NzAsMTQzIEBAIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpq c29uYilbJ2InXTsKICAiYyIKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIs ICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5iOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cp CisKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilb J2QnXTsKICAgIGpzb25iICAgCiAtLS0tLS0tLS0tLQogIFsxLCAyLCAzXQogKDEgcm93KQogCitz ZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQ7Cisg ICAgIGQgICAgIAorLS0tLS0tLS0tLS0KKyBbMSwgMiwgM10KKygxIHJvdykKKwogc2VsZWN0ICgn eyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddWzFdOwogIGpz b25iIAogLS0tLS0tLQogIDIKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIs ICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5kWzFdOworIGQgCistLS0KKyAyCisoMSByb3cpCisK IHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2Qn XVsnYSddOwogIGpzb25iIAogLS0tLS0tLQogIAogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAx LCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmRbJ2EnXTsKKyBkIAorLS0tCisg CisoMSByb3cpCisKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0n Ojpqc29uYikuZC5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogeyJh MSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSdd WydhMSddOwogICAgICBqc29uYiAgICAgCiAtLS0tLS0tLS0tLS0tLS0KICB7ImEyIjogImFhYSJ9 CiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAi YmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMTsKKyAgICAgIGExICAgICAgIAorLS0tLS0t LS0tLS0tLS0tCisgeyJhMiI6ICJhYWEifQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiB7ImEx IjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpWydhJ11b J2ExJ11bJ2EyJ107CiAganNvbmIgCiAtLS0tLS0tCiAgImFhYSIKICgxIHJvdykKIAorc2VsZWN0 ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6 Ompzb25iKS5hLmExLmEyOworICBhMiAgIAorLS0tLS0tLQorICJhYWEiCisoMSByb3cpCisKIHNl bGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2Nj In0nOjpqc29uYilbJ2EnXVsnYTEnXVsnYTInXVsnYTMnXTsKICBqc29uYiAKIC0tLS0tLS0KICAK ICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJi YmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyLmEzOworIGEzIAorLS0tLQorIAorKDEg cm93KQorCiBzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2Mi XX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpWydhJ11bMV1bJ2IxJ107CiAgICAgICAgICBqc29uYiAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBbImFhYSIsICJiYmIiLCAiY2NjIl0K ICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAi Y2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFdLmIxOworICAgICAgICAgIGIxICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJhYWEiLCAiYmJiIiwgImNjYyJdCiso MSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNj YyJdfV0sICJiIjogImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXVsyXTsKICBqc29uYiAKIC0t LS0tLS0KICAiY2NjIgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsi YWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYjFbMl07Cisg IGIxICAgCistLS0tLS0tCisgImNjYyIKKygxIHJvdykKKwogLS0gc2xpY2VzIGFyZSBub3Qgc3Vw cG9ydGVkCiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsKLUVSUk9SOiAganNv bmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCi1MSU5FIDE6IHNlbGVjdCAoJ3si YSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorIGpzb25iIAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCdbMSwg IjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29u YilbMToyXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisg ICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisgWyIyIiwgbnVsbF0KKygxIHJvdykKKwogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOjJdOwogRVJST1I6ICBqc29uYiBzdWJzY3Jp cHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKIExJTkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVs bF0nOjpqc29uYilbOjJdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMTpdOwotRVJST1I6ICBqc29u YiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2VsZWN0ICgnWzEs ICIyIiwgbnVsbF0nOjpqc29uYilbMTpdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCisgICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisgWyIyIiwgbnVsbF0K KygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOl07Ci1FUlJPUjog IGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcworICAgICBqc29uYiAgICAg IAorLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAiMiIsIG51bGxdCisoMSByb3cpCisKIGNyZWF0ZSBU RU1QIFRBQkxFIHRlc3RfanNvbmJfc3Vic2NyaXB0ICgKICAgICAgICBpZCBpbnQsCiAgICAgICAg dGVzdF9qc29uIGpzb25iCkBAIC01NzgxLDMgKzU4ODcsMTQyIEBAIHNlbGVjdCAnMTIzNDUuMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ4 OwogIDEyMzQ1CiAoMSByb3cpCiAKKy0tIGRvdCBub3RhdGlvbgorQ1JFQVRFIFRBQkxFIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIEFTCitTRUxFQ1QgJ3siYSI6IFsxLCAyLCB7ImIiOiAiYyJ9LCB7 ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCAiYiI6 IFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV19Jzo6anNv bmIgamI7CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFUlJP UjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorU0VMRUNUIChqYikuKiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CitFUlJPUjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0 ZQorU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK0VSUk9S OiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRlCitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CitFUlJPUjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQor U0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFUlJPUjogIG1p c3NpbmcgRlJPTS1jbGF1c2UgZW50cnkgZm9yIHRhYmxlICJ0IgorTElORSAxOiBTRUxFQ1QgKHQu amIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICBeCitT RUxFQ1QgKHQuamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworRVJST1I6ICB0 eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKK1NFTEVDVCAoamIpLmEgRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwg MiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoi OiAienp6In19XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsIDIsIHsi YiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6 eiJ9fV0KKygxIHJvdykKKworU0VMRUNUIChqYikuYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb MywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dCisoMSByb3cp CisKK1NFTEVDVCAoamIpLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyBjIAorLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCisoMSByb3cpCisK K1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVJST1I6ICB0 eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKK1NFTEVDVCAoamIpLmEuKi5iIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CitFUlJPUjogIGltcHJvcGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVh ciAiRlJPTSIKK0xJTkUgMTogU0VMRUNUIChqYikuYS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIChqYikuYS4qLngg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VSUk9SOiAgaW1wcm9wZXIgdXNlIG9mICIq IiBhdCBvciBuZWFyICJGUk9NIgorTElORSAxOiBTRUxFQ1QgKGpiKS5hLioueCBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1Qg KGpiKS5hLioueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVJST1I6ICBpbXByb3Bl ciB1c2Ugb2YgIioiIGF0IG9yIG5lYXIgIkZST00iCitMSU5FIDE6IFNFTEVDVCAoamIpLmEuKi55 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAg IF4KK1NFTEVDVCAoamIpLmEuKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFUlJP UjogIGltcHJvcGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIKK0xJTkUgMTogU0VMRUNU IChqYikuYS4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CitFUlJPUjogIGltcHJvcGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIKK0xJTkUg MTogU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAg ICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiB0OworRVJST1I6ICBpbXByb3BlciB1c2Ugb2YgIioiIGF0IG9yIG5lYXIgIkZST00i CitMSU5FIDE6IFNFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7 CisgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CitFUlJPUjogIHJvdyBleHBhbnNpb24gdmlhICIqIiBpcyBu b3Qgc3VwcG9ydGVkIGhlcmUKK0xJTkUgMTogU0VMRUNUICgoamIpLiopLnggRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgKChqYikuKiku eCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitFUlJPUjogIHJvdyBleHBhbnNpb24g dmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUKK0xJTkUgMTogU0VMRUNUICgoamIpLiopLngg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICBeCitTRUxF Q1QgKChqYikuKilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitFUlJPUjog IHJvdyBleHBhbnNpb24gdmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUKK0xJTkUgMTogU0VM RUNUICgoamIpLiopWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAg ICAgICAgICAgICBeCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK0VSUk9SOiAgaW1wcm9wZXIgdXNlIG9mICIqIiBhdCBvciBuZWFyICJGUk9NIgorTElORSAx OiBTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAg ICAgICAgICAgICAgICAgIF4KK1NFTEVDVCAoamIpLioueC4qIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CitFUlJPUjogIGltcHJvcGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIK K0xJTkUgMTogU0VMRUNUIChqYikuKi54LiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIChqYikuKi54LnkgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VSUk9SOiAgaW1wcm9wZXIgdXNlIG9mICIqIiBhdCBvciBu ZWFyICJGUk9NIgorTElORSAxOiBTRUxFQ1QgKGpiKS4qLngueSBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgKGpiKS4qLngu eiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVJST1I6ICBpbXByb3BlciB1c2Ugb2Yg IioiIGF0IG9yIG5lYXIgIkZST00iCitMSU5FIDE6IFNFTEVDVCAoamIpLioueC56IEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVD VCAoamIpLiouKi55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFUlJPUjogIGltcHJv cGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIKK0xJTkUgMTogU0VMRUNUIChqYikuKi4q LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorU0VMRUNUIChqYikuKi4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VS Uk9SOiAgaW1wcm9wZXIgdXNlIG9mICIqIiBhdCBvciBuZWFyICJGUk9NIgorTElORSAxOiBTRUxF Q1QgKGpiKS4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAg ICAgICAgICAgICAgICBeCitTRUxFQ1QgKGpiKS4qLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CitFUlJPUjogIGltcHJvcGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIK K0xJTkUgMTogU0VMRUNUIChqYikuKi4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCAoamIpLmEuYi5jLiogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29t cG9zaXRlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9z aXRlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiBq Yi5hCisoMiByb3dzKQorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIp LmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlv bgorICAgT3V0cHV0OiBqYi5hWzFdCisoMiByb3dzKQorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpIFNFTEVDVCAoamIpLmEuKlsnYiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CitFUlJPUjogIGltcHJvcGVyIHVzZSBvZiAiKiIgYXQgb3IgbmVhciAiRlJPTSIKK0xJTkUgMTog RVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLipbJ2InXSBGUk9NIHRl c3RfLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLipb MToyXVsnYiddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VSUk9SOiAgaW1wcm9w ZXIgdXNlIG9mICIqIiBhdCBvciBuZWFyICJGUk9NIgorTElORSAxOiAuLi4gKFZFUkJPU0UsIENP U1RTIE9GRikgU0VMRUNUIChqYikuYS4qWzE6Ml1bJ2InXS5iIEZST00gdGVzdF8uLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9qc29uYi5zcWwKaW5kZXggNTQ0YmI2MTBlMmQuLjRiNDlkNTkyMjJiIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvanNvbmIuc3FsCkBAIC0xMjg2LDMwICsxMjg2LDQ2IEBAIHNlbGVjdCBqc29uYl9p bnNlcnQoJ3siYSI6IHsiYiI6ICJ2YWx1ZSJ9fScsICd7YSwgYn0nLCAnIm5ld192YWx1ZSInLCB0 cnVlKTsKIAogLS0ganNvbmIgc3Vic2NyaXB0CiBzZWxlY3QgKCcxMjMnOjpqc29uYilbJ2EnXTsK K3NlbGVjdCAoJzEyMyc6Ompzb25iKS5hOwogc2VsZWN0ICgnMTIzJzo6anNvbmIpWzBdOwogc2Vs ZWN0ICgnMTIzJzo6anNvbmIpW05VTExdOwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ2En XTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLmE7CiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompz b25iKVswXTsKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydub3RfZXhpc3QnXTsKK3NlbGVj dCAoJ3siYSI6IDF9Jzo6anNvbmIpLiJub3RfZXhpc3QiOwogc2VsZWN0ICgneyJhIjogMX0nOjpq c29uYilbTlVMTF07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsnYSddOworc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuYTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxd Jzo6anNvbmIpWzBdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbJzEnXTsKK3Nl bGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpLiIxIjsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpWzEuMF07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsyXTsK IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzNdOwogc2VsZWN0ICgnWzEsICIyIiwg bnVsbF0nOjpqc29uYilbLTJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1b J2EnXTsKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdLmE7CiBzZWxlY3QgKCdb MSwgIjIiLCBudWxsXSc6Ompzb25iKVsxXVswXTsKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMi LCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2InXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjog ImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuYjsKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjog ImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJi IjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZDsKIHNlbGVjdCAoJ3siYSI6IDEsICJi IjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXVsxXTsKK3NlbGVjdCAoJ3siYSI6 IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZFsxXTsKIHNlbGVjdCAoJ3si YSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXVsnYSddOworc2Vs ZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5kWydhJ107 CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQu YTsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMi OiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEy IjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMTsKIHNlbGVj dCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0n Ojpqc29uYilbJ2EnXVsnYTEnXVsnYTInXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjog ImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMjsKIHNlbGVj dCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0n Ojpqc29uYilbJ2EnXVsnYTEnXVsnYTInXVsnYTMnXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7 ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMi5h MzsKIHNlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0s ICJiIjogImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXTsKK3NlbGVjdCAoJ3siYSI6IFsiYTEi LCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsx XS5iMTsKIHNlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJd fV0sICJiIjogImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXVsyXTsKK3NlbGVjdCAoJ3siYSI6 IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29u YikuYVsxXS5iMVsyXTsKIAogLS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVkCiBzZWxlY3QgKCd7 ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsKQEAgLTE1NzIsMyArMTU4OCw0MyBAQCBzZWxlY3Qg JzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpq c29uYjo6ZmxvYXQ4Owogc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmludDI7CiBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50NDsKIHNl bGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw NSc6Ompzb25iOjppbnQ4OworCistLSBkb3Qgbm90YXRpb24KK0NSRUFURSBUQUJMRSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbiBBUworU0VMRUNUICd7ImEiOiBbMSwgMiwgeyJiIjogImMifSwgeyJi IjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwgImIiOiBb MywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dfSc6Ompzb25i IGpiOworCitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxF Q1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAodC5qYiku KiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKGpiKS4qIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKHQuamIpLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u IHQ7CitTRUxFQ1QgKGpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1Qg KGpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5iIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5jIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEu Ki54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLioueSBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qLiogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsK K1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoKGpi KS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoamIpLiou eCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54LiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueC55IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuKi4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK K1NFTEVDVCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1Qg KGpiKS4qLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5h LmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisKK0VYUExBSU4gKFZFUkJPU0Us IENPU1RTIE9GRikgU0VMRUNUIChqYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor RVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIp LmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikgU0VMRUNUIChqYikuYS4qWydiJ10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYS4qWzE6Ml1bJ2In XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0x NTQpCgo= --00000000000096028c062d6542e5--