Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3I92-0015H1-3B for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Mar 2026 18:30:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3I82-001sKH-1c for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Mar 2026 18:29:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3I82-001sK3-0E for pgsql-hackers@lists.postgresql.org; Thu, 19 Mar 2026 18:29:54 +0000 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w3I7z-0000000038G-3KZd for pgsql-hackers@lists.postgresql.org; Thu, 19 Mar 2026 18:29:54 +0000 Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-5a142464316so1377508e87.1 for ; Thu, 19 Mar 2026 11:29:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773944991; cv=none; d=google.com; s=arc-20240605; b=gTrBGGXt3h/CuvkLKgopeIkku2rf5AxY7MQUZZNRKwPE6TTUKgpVcnHbBpObmjlw6x 07XkiOLK4XxzuJ/yxgtMG5EeJBEuaDS1yvPwFw36B7S+0lJ09XrkuRxI23LXSlI3E+wi hNSBn0ka9pP5DqYS4fN8UzHUervrzspGJgPiu4ECk+3xyHw3BW+uZmOUhH/K1a4Cy2LK UaWSS1+4wIcDfN16dcv6rMc7SPEzgS9K9+8sKgf9VTr3+lpqFCh+8+EcAUcxPiaJnfyY rYKb1bx227OH4iStbksSdWIv+kXI1y9ZiVOMv+HCjyAp/A4ph5UGhoEuq46+6v22Eipf loNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=ZOHCZ0JpKYnJnEZQ5Y0GR1KVV2/N1bDc7Fl3yVOscaI=; fh=zO/2Dh3vD4+YBArRDP3TLyyDiRvWp/YWZiVUiO9Ak8I=; b=DZNvEs9oHN18opuJ2q0ix2AEmvfZLX744+DQFLG7KhdHnTzTd6eM4L4RIKrWj7hpSQ maTwtnEzfNZVDclHOkmOGzb8NHgj+VFtpE1cGdJj6X2/3dVnqXdwOQ0I2S5sF1gOCATT QTp1evpA66lrIDf1en94elNRRW50Q7oRiJIIVLGhETsxtzgF2EKeH1wkD7pyAqhfp5sD 0dYEZQQXHIQw7IXaaiISCIKpRRVOa7Qt6PUUiW1aBw7f09UtZXoeFkSdp6y5hcuSoBrY hYy0SGHZQjjHR0eAJ1/vmIryUxdovrcDwomRLXl67Yoe25+fXkqksAwtv/rDmkoP5txN BNtQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773944991; x=1774549791; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ZOHCZ0JpKYnJnEZQ5Y0GR1KVV2/N1bDc7Fl3yVOscaI=; b=gQj+tZ7YATafRSmrTSaZffvZkTaR11El77sRHLVfcDGWaJ1bFIIZBJP08eJqzF8g4E X2yYC/oIaMjUGC9JEtCvxb4naa2A679+COPCpzjzbEnKzmDKzBUJl/n7fVaDoDOnAkUm rMJxO8+o8ZxJFZAvImKvBKTbtwWhRglm1vGMExXpRLiSokiL1g/8KRxoEp1CDVrr2CSb X8KSLkm5Xj97xBjjCXMR1K+52kVRjCJ+rmGyssXv91vZu/x3inT1CczxWi0TrihXiDwl fwcbpc8R0VuLndOh7wWOb6YBRvX1pTwQFx46m/K7J9zfiUspijKZB8AgDi0nLlthYf04 vGBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773944991; x=1774549791; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ZOHCZ0JpKYnJnEZQ5Y0GR1KVV2/N1bDc7Fl3yVOscaI=; b=la5DWGL2KkKxr4U0aRrAm3dEtf8KqPI5zkFhJWP7ebTaU9ewpr4ILvkm3WK+PZCXhd GKFVTt2HwAeik95tURYFvczilJecipSiKCsqQB4t3TSUDz9/PzXbrJWY1CuMc20tlrA0 4Q/GJf9qj+hX2iufPhJgtphT1niDM3sbT7G+3xUUAskUmcEE/BEmRjj41eyvQCrpW5dm ctWRPyV8wNjrVBLeTcvL4XJrAivNbRPoH93X2+Tuuw7KtwcpqMXb82EyJWkufEabLUud q+NgX1tDr2/HLrZwSzjVemUrII6i36XGJwBVxbdGoAs7v1F6dK6eLn7D+qYFflVrKrx3 hUcQ== X-Forwarded-Encrypted: i=1; AJvYcCW8nvnTNCRhDp3LMC794yyB+lOMfzdrDezeh5NdG6Y5EHoDPVaad8NtyMytzf8WxQEO2ZyQ1C5q+9YllAkU@lists.postgresql.org X-Gm-Message-State: AOJu0YxuwaHsDZdkBWS1kpgD9b7mMhRq0cSW+lwmNEt9aHRA2QQiQo2K iYjEzmHurAN1jv1VTL1yOT138SK2QtxzOqqHTHS/i8Hl6QOYBWgAaFgttp+49WnFEX25980jFPB WV6Mlfw/qrV5lQtKzpgnXrMOGYVxd4Hw= X-Gm-Gg: ATEYQzyIuigz0X1T0jXCXf/Ce5A/ERwFt08La3iNm3HXB7L6G/0atlluL/esLFnMZmT 3TglA5E0n0ojop/0cxVLRuNzcN4tuLjyoYKU+yOPOoFcirz3VRorqxRCcp0ZdPWOr9L14iaLA+m w3raOAmb06JZ+qVN3xzv+QcqszPeUC2f8cTh52IwOBUSv58gDFclXgvO49jhoZ8W3hBZu/vlhCc 7mxM3PsDCEaIbxnrzhFnnFwGoN1Wj/sx/oT6CiD7ugOKz7CDm4CLzmG5gDCXyrYfz5ialj9Q/x1 kSyx X-Received: by 2002:a05:6512:1444:20b0:5a2:82d2:c50a with SMTP id 2adb3069b0e04-5a285b67f81mr15429e87.40.1773944991006; Thu, 19 Mar 2026 11:29:51 -0700 (PDT) MIME-Version: 1.0 References: <48261e54-c4f1-4bde-a4a9-4f3698a6b380@app.fastmail.com> In-Reply-To: From: Gyan Sreejith Date: Thu, 19 Mar 2026 14:29:38 -0400 X-Gm-Features: AaiRm53TQf9Rp0WXytwD7yMcrBDRcqWDZ1B7cAyS1Ky_xYL4EDaImVQWfNnSiDU Message-ID: Subject: Re: [Proposal] Adding Log File Capability to pg_createsubscriber To: =?UTF-8?B?S3Vyb2RhLCBIYXlhdG8v6buS55SwIOmavOS6ug==?= Cc: Amit Kapila , Shlok Kyal , vignesh C , Euler Taveira , "pgsql-hackers@lists.postgresql.org" , Peter Smith Content-Type: multipart/mixed; boundary="0000000000000a5bff064d64c10d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000a5bff064d64c10d Content-Type: multipart/alternative; boundary="0000000000000a5bfe064d64c10b" --0000000000000a5bfe064d64c10b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thank you, Kuroda-san, for all the work. I have made a small change - I added a pg_free() to free internal_log_file. Regards, Gyan On Thu, Mar 19, 2026 at 7:55=E2=80=AFAM Kuroda, Hayato/=E9=BB=92=E7=94=B0 = =E9=9A=BC=E4=BA=BA < kuroda.hayato@fujitsu.com> wrote: > Hi, > > While checking again, I found an issue in the new logging function - same > va_list > is used twice, but it was the undefined behavior. va_copy() is used to fi= x > the issue. > > Also, below points were found and fixed in 0003. Thanks Peter Smith to > work on. > > ``` > + printf(_(" -l, --logdir=3DLOGDIR location for the ne= w > log directory\n")); > ``` > > But there is a possibility that existing directory is specified, right? > > ``` > +my $logdir =3D PostgreSQL::Test::Utils::tempdir + "/logdir"; > ``` > > Isn't it enough to just use tempdir here? At least, I think using "+" is > not > appropriate, "." is used to connect strings. > > ``` > + if (opt->log_dir !=3D NULL) > + appendPQExpBuffer(pg_ctl_cmd, " -l %s/%s/%s.log", > opt->log_dir, log_timestamp, SERVER_LOG_FILE_NAME); > ``` > > I do not have 100% confident, but do we have to quote the logfile here? > > Best regards, > Hayato Kuroda > FUJITSU LIMITED > > --0000000000000a5bfe064d64c10b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thank you, Kuroda-san, for all the work.
I have made a= small change - I added a pg_free() to free internal_log_file.
Regards,
Gyan

On Thu, Mar= 19, 2026 at 7:55=E2=80=AFAM Kuroda, Hayato/=E9=BB=92=E7=94=B0 =E9=9A=BC=E4= =BA=BA <kuroda.hayato@fujit= su.com> wrote:
Hi,

While checking again, I found an issue in the new logging function - same v= a_list
is used twice, but it was the undefined behavior. va_copy() is used to fix = the issue.

Also, below points were found and fixed in 0003. Thanks Peter Smith to work= on.

```
+=C2=A0 =C2=A0 =C2=A0 =C2=A0printf(_("=C2=A0 -l, --logdir=3DLOGDIR=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0location for the new log direc= tory\n"));
```

But there is a possibility that existing directory is specified, right?

```
+my $logdir =3D PostgreSQL::Test::Utils::tempdir + "/logdir";
```

Isn't it enough to just use tempdir here? At least, I think using "= ;+" is not
appropriate, "." is used to connect strings.

```
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (opt->log_dir !=3D NULL)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0appendPQExpBuffer(p= g_ctl_cmd, " -l %s/%s/%s.log", opt->log_dir, log_timestamp, SE= RVER_LOG_FILE_NAME);
```

I do not have 100% confident, but do we have to quote the logfile here?

Best regards,
Hayato Kuroda
FUJITSU LIMITED

--0000000000000a5bfe064d64c10b-- --0000000000000a5bff064d64c10d Content-Type: application/octet-stream; name="v13-0003-Address-comments-from-Hayato-Kuroda.patch" Content-Disposition: attachment; filename="v13-0003-Address-comments-from-Hayato-Kuroda.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxt195z2 RnJvbSA0OGVmNzNmY2M0YjNlMzI0ODZlNmRmMjFhMjAzOGY3ZWRmMmU0NGE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDIxOjQzOjA4ICswOTAwClN1YmplY3Q6IFtQQVRD SCB2MTMgMy8zXSBBZGRyZXNzIGNvbW1lbnRzIGZyb20gSGF5YXRvIEt1cm9kYQoKLS0tCiBkb2Mv c3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbCAgICAgfCAxNSArLS0KIHNyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgICB8IDk1ICsrKysrKysrLS0t LS0tLS0tLS0KIC4uLi90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsICAgICAgICAgICAgICB8 ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKaW5kZXggMjg5OGE1 ZWExMTEuLmZmNjM1YmEyNmNiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0 ZXN1YnNjcmliZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmli ZXIuc2dtbApAQCAtMTQzLDIwICsxNDMsMjEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAg ICAgICA8cGFyYT4KICAgICAgICBTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBsb2cgZGlyZWN0b3J5 LiBBIG5ldyBkaXJlY3RvcnkgaXMgY3JlYXRlZCB3aXRoCiAgICAgICAgdGhpcyBuYW1lIGlmIGl0 IGRvZXMgbm90IGV4aXN0LiBBIHN1YmRpcmVjdG9yeSB3aXRoIGEgdGltZXN0YW1wCi0gICAgICAg aW5kaWNhdGluZyB0aGUgdGltZSBhdCB3aGljaCBwZ19jcmVhdGVzdWJzY3JpYmVyIHdhcyBydW4g d2lsbCBiZSBjcmVhdGVkLgotICAgICAgIFRoZSBmb2xsb3dpbmcgdHdvIGxvZyBmaWxlcyB3aWxs IGJlIGNyZWF0ZWQgaW4gdGhlIHN1YmRpcmVjdG9yeSB3aXRoIGEKLSAgICAgICB1bWFzayBvZiAw Nzcgc28gdGhhdCBhY2Nlc3MgaXMgZGlzYWxsb3dlZCB0byBvdGhlciB1c2VycyBieSBkZWZhdWx0 LgorICAgICAgIGluZGljYXRpbmcgdGhlIHRpbWUgYXQgd2hpY2ggPGFwcGxpY2F0aW9uPnBnX2Ny ZWF0ZXN1YnNjcmliZXI8L2FwcGxpY2F0aW9uPgorICAgICAgIHdhcyBydW4gd2lsbCBiZSBjcmVh dGVkLiBUaGUgZm9sbG93aW5nIHR3byBsb2cgZmlsZXMgd2lsbCBiZSBjcmVhdGVkIGluCisgICAg ICAgdGhlIHN1YmRpcmVjdG9yeSB3aXRoIGEgdW1hc2sgb2YgMDc3IHNvIHRoYXQgYWNjZXNzIGlz IGRpc2FsbG93ZWQgdG8KKyAgICAgICBvdGhlciB1c2VycyBieSBkZWZhdWx0LgogICAgICAgIDxp dGVtaXplZGxpc3Q+CiAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgotICAgICAg ICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyB3aGljaCBjYXB0dXJlcyBsb2dzIHJl bGF0ZWQgdG8gc3RvcHBpbmcKLSAgICAgICAgICBhbmQgc3RhcnRpbmcgdGhlIHN0YW5kYnkgc2Vy dmVyLAorICAgICAgICAgIDxsaXRlcmFsPnBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZzwv bGl0ZXJhbD4gd2hpY2ggY2FwdHVyZXMgbG9ncworICAgICAgICAgIHJlbGF0ZWQgdG8gc3RvcHBp bmcgYW5kIHN0YXJ0aW5nIHRoZSBzdGFuZGJ5IHNlcnZlciwKICAgICAgICAgIDwvcGFyYT4KICAg ICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+Ci0g ICAgICAgICAgcGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cgd2hpY2ggY2FwdHVyZXMg aW50ZXJuYWwgZGlhZ25vc3RpYwotICAgICAgICAgIG91dHB1dCAodmFsaWRhdGlvbnMsIGNoZWNr cywgZXRjLikKKyAgICAgICAgICA8bGl0ZXJhbD5wZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFs LmxvZzwvbGl0ZXJhbD4gd2hpY2ggY2FwdHVyZXMKKyAgICAgICAgICBpbnRlcm5hbCBkaWFnbm9z dGljIG91dHB1dCAodmFsaWRhdGlvbnMsIGNoZWNrcywgZXRjLikKICAgICAgICAgIDwvcGFyYT4K ICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3Bn X2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCmluZGV4IGJiNTM3OTM4YTdlLi42OTA2 MjMyMDFmNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNj cmliZXIuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5j CkBAIC0xODksOCArMTg5LDcgQEAgc3RhdGljIGNoYXIgKnBnX2N0bF9wYXRoID0gTlVMTDsKIHN0 YXRpYyBjaGFyICpwZ19yZXNldHdhbF9wYXRoID0gTlVMTDsKIAogc3RhdGljIEZJTEUgKmludGVy bmFsX2xvZ19maWxlX2ZwID0gTlVMTDsJLyogRmlsZSBwdHIgdG8gbG9nIGFsbCBtZXNzYWdlcyB0 byAqLwotc3RhdGljIGNoYXIgKmxvZ190aW1lc3RhbXAgPSBOVUxMOwkvKiBUaW1lc3RhbXAgdG8g YmUgdXNlZCBpbiBhbGwgbG9nIGZpbGUKLQkJCQkJCQkJCSAqIG5hbWVzICovCitzdGF0aWMgY2hh ciBsb2dkaXJbTUFYUEdQQVRIXTsJLyogRGlyZWN0b3J5IGxvZyBmaWxlcyBhcmUgcHV0IChpZiBz cGVjaWZpZWQpICovCiAKIC8qIHN0YW5kYnkgLyBzdWJzY3JpYmVyIGRhdGEgZGlyZWN0b3J5ICov CiBzdGF0aWMgY2hhciAqc3Vic2NyaWJlcl9kaXIgPSBOVUxMOwpAQCAtMzcyLDcgKzM3MSw3IEBA IHVzYWdlKHZvaWQpCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh YmFzZXMgYW5kIGRhdGFiYXNlcyB0aGF0IGRvbid0IGFsbG93IGNvbm5lY3Rpb25zXG4iKSk7CiAJ cHJpbnRmKF8oIiAgLWQsIC0tZGF0YWJhc2U9REJOQU1FICAgICAgICAgICBkYXRhYmFzZSBpbiB3 aGljaCB0byBjcmVhdGUgYSBzdWJzY3JpcHRpb25cbiIpKTsKIAlwcmludGYoXygiICAtRCwgLS1w Z2RhdGE9REFUQURJUiAgICAgICAgICAgIGxvY2F0aW9uIGZvciB0aGUgc3Vic2NyaWJlciBkYXRh IGRpcmVjdG9yeVxuIikpOwotCXByaW50ZihfKCIgIC1sLCAtLWxvZ2Rpcj1MT0dESVIgICAgICAg ICAgICAgbG9jYXRpb24gZm9yIHRoZSBuZXcgbG9nIGRpcmVjdG9yeVxuIikpOworCXByaW50Zihf KCIgIC1sLCAtLWxvZ2Rpcj1MT0dESVIgICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBsb2cg ZGlyZWN0b3J5XG4iKSk7CiAJcHJpbnRmKF8oIiAgLW4sIC0tZHJ5LXJ1biAgICAgICAgICAgICAg ICAgICBkcnkgcnVuLCBqdXN0IHNob3cgd2hhdCB3b3VsZCBiZSBkb25lXG4iKSk7CiAJcHJpbnRm KF8oIiAgLXAsIC0tc3Vic2NyaWJlci1wb3J0PVBPUlQgICAgICBzdWJzY3JpYmVyIHBvcnQgbnVt YmVyIChkZWZhdWx0ICVzKVxuIiksIERFRkFVTFRfU1VCX1BPUlQpOwogCXByaW50ZihfKCIgIC1Q LCAtLXB1Ymxpc2hlci1zZXJ2ZXI9Q09OTlNUUiAgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5n XG4iKSk7CkBAIC04NDYsOCArODQ1LDEzIEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0 IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKIAkJCQkJCSAicnVubmluZyBwZ19yZXNldHdh bCBvbiB0aGUgc3Vic2NyaWJlciIpOwogCi0JaWYgKG9wdC0+bG9nX2RpciAhPSBOVUxMKQotCQlv dXRfZmlsZSA9IHBzcHJpbnRmKCIlcy8lcy8lcy5sb2ciLCBvcHQtPmxvZ19kaXIsIGxvZ190aW1l c3RhbXAsIFNFUlZFUl9MT0dfRklMRV9OQU1FKTsKKwkvKgorCSAqIFJlZGlyZWN0aW5nIHRoZSBv dXRwdXQgdG8gdGhlIGxvZ2ZpbGUgaWYgc3BlY2lmaWVkLiBTaW5jZSB0aGUgb3V0cHV0CisJICog d291bGQgYmUgdmVyeSBzaG9ydCwgYXJvdW5kIG9uZSBsaW5lLCB3ZSBkbyBub3QgcHJvdmlkZSBh IHNlcGFyYXRlIGZpbGUKKwkgKiBmb3IgaXQ7IGl0J3MgZG9uZSBhcyBhIHBhcnQgb2YgdGhlIHNl cnZlciBsb2cuCisJICovCisJaWYgKG9wdC0+bG9nX2RpcikKKwkJb3V0X2ZpbGUgPSBwc3ByaW50 ZigiJXMvJXMubG9nIiwgbG9nZGlyLCBTRVJWRVJfTE9HX0ZJTEVfTkFNRSk7CiAJZWxzZQogCQlv dXRfZmlsZSA9IERFVk5VTEw7CiAKQEAgLTEwNzksMTMgKzEwODMsMTMgQEAgc3RhdGljIHZvaWQK IGludGVybmFsX2xvZ19maWxlX3dyaXRlKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBjb25zdCBj aGFyICpwZ19yZXN0cmljdCBmbXQsCiAJCQkJCQl2YV9saXN0IGFyZ3MpCiB7Ci0JaWYgKGxldmVs IDwgX19wZ19sb2dfbGV2ZWwpCi0JCXJldHVybjsKKwlBc3NlcnQoaW50ZXJuYWxfbG9nX2ZpbGVf ZnApOwogCi0JaWYgKGludGVybmFsX2xvZ19maWxlX2ZwID09IE5VTEwpCisJLyogRG8gbm90aGlu ZyBpZiBsb2cgbGV2ZWwgaXMgdG9vIGxvdy4gKi8KKwlpZiAobGV2ZWwgPCBfX3BnX2xvZ19sZXZl bCkKIAkJcmV0dXJuOwogCi0JdmZwcmludGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIGZtdCwgYXJn cyk7CisJdmZwcmludGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIF8oZm10KSwgYXJncyk7CiAKIAlm cHJpbnRmKGludGVybmFsX2xvZ19maWxlX2ZwLCAiXG4iKTsKIAlmZmx1c2goaW50ZXJuYWxfbG9n X2ZpbGVfZnApOwpAQCAtMTEyMiwzMyArMTEyNiwxMiBAQCBsb2dmaWxlX29wZW4oY29uc3QgY2hh ciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKm1vZGUpCiB9CiAKIHN0YXRpYyB2b2lkCi1tYWtlX2Rp cihjb25zdCBjaGFyICpkaXIpCi17Ci0Jc3RydWN0IHN0YXQgc3RhdGJ1ZjsKLQotCWlmIChzdGF0 KGRpciwgJnN0YXRidWYpID09IDApCi0JCXJldHVybjsKLQotCWlmIChlcnJubyAhPSBFTk9FTlQp Ci0JCXBnX2ZhdGFsKCJjb3VsZCBub3Qgc3RhdCBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7 Ci0KLQlpZiAobWtkaXIoZGlyLCBTX0lSV1hVKSA9PSAwKQotCXsKLQkJcGdfbG9nX2luZm8oImRp cmVjdG9yeSAlcyBjcmVhdGVkIiwgZGlyKTsKLQkJcmV0dXJuOwotCX0KLQotCXBnX2ZhdGFsKCJj b3VsZCBub3QgY3JlYXRlIGxvZyBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7Ci19Ci0KLXN0 YXRpYyB2b2lkCi1tYWtlX291dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19kaXIpCittYWtlX291 dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19iYXNlZGlyKQogewogCWNoYXIJCXRpbWVzdGFtcFsx MjhdOwogCXN0cnVjdCB0aW1ldmFsIHR2YWw7CiAJdGltZV90CQlub3c7CiAJc3RydWN0IHRtCXRt YnVmOwotCWNoYXIJCXRpbWVzdGFtcF9kaXJbTUFYUEdQQVRIXTsKIAlpbnQJCQlsZW47CiAKIAkv KiBHZW5lcmF0ZSB0aW1lc3RhbXAgKi8KQEAgLTExNjMsMjAgKzExNDYsMjAgQEAgbWFrZV9vdXRw dXRfZGlycyhjb25zdCBjaGFyICpsb2dfZGlyKQogCQkJIHNpemVvZih0aW1lc3RhbXApIC0gc3Ry bGVuKHRpbWVzdGFtcCksICIuJTAzdSIsCiAJCQkgKHVuc2lnbmVkIGludCkgKHR2YWwudHZfdXNl YyAvIDEwMDApKTsKIAotCWxvZ190aW1lc3RhbXAgPSBwZ19zdHJkdXAodGltZXN0YW1wKTsKLQot CS8qIENyZWF0ZSBiYXNlIGRpcmVjdG9yeSAoaWdub3JlIGlmIGV4aXN0cykgKi8KLQltYWtlX2Rp cihsb2dfZGlyKTsKLQogCS8qIEJ1aWxkIHRpbWVzdGFtcCBkaXJlY3RvcnkgcGF0aCAqLwotCWxl biA9IHNucHJpbnRmKHRpbWVzdGFtcF9kaXIsIE1BWFBHUEFUSCwgIiVzLyVzIiwgbG9nX2Rpciwg dGltZXN0YW1wKTsKKwlsZW4gPSBzbnByaW50Zihsb2dkaXIsIE1BWFBHUEFUSCwgIiVzLyVzIiwg bG9nX2Jhc2VkaXIsIHRpbWVzdGFtcCk7CiAKIAlpZiAobGVuID49IE1BWFBHUEFUSCkKIAkJcGdf ZmF0YWwoImRpcmVjdG9yeSBwYXRoIGZvciBsb2cgZmlsZXMsICVzLyVzLCBpcyB0b28gbG9uZyIs Ci0JCQkJIGxvZ19kaXIsIHRpbWVzdGFtcCk7CisJCQkJIGxvZ2RpciwgdGltZXN0YW1wKTsKKwor CS8qIENyZWF0ZSBiYXNlIGRpcmVjdG9yeSAoaWdub3JlIGlmIGV4aXN0cykgKi8KKwlpZiAobWtk aXIobG9nX2Jhc2VkaXIsIFNfSVJXWFUpIDwgMCAmJiBlcnJubyAhPSBFRVhJU1QpCisJCXBnX2Zh dGFsKCJjb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgbG9nX2Jhc2VkaXIp OwogCi0JLyogQ3JlYXRlIHRpbWVzdGFtcCBkaXJlY3RvcnkgKi8KLQltYWtlX2Rpcih0aW1lc3Rh bXBfZGlyKTsKKwkvKiBDcmVhdGUgQkFTRV9ESVIvJHRpbWVzdGFtcCAqLworCWlmIChta2Rpcihs b2dkaXIsIFNfSVJXWFUpIDwgMCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0 b3J5IFwiJXNcIjogJW0iLCBsb2dkaXIpOwogfQogCiAvKgpAQCAtMTkzNyw4ICsxOTIwLDggQEAg c3RhcnRfc3RhbmRieV9zZXJ2ZXIoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25z ICpvcHQsIGJvb2wgcmVzdHJpY3RlZF8KIAlpZiAocmVzdHJpY3RfbG9naWNhbF93b3JrZXIpCiAJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnX2N0bF9jbWQsICIgLW8gXCItYyBtYXhfbG9naWNhbF9y ZXBsaWNhdGlvbl93b3JrZXJzPTBcIiIpOwogCi0JaWYgKG9wdC0+bG9nX2RpciAhPSBOVUxMKQot CQlhcHBlbmRQUUV4cEJ1ZmZlcihwZ19jdGxfY21kLCAiIC1sICVzLyVzLyVzLmxvZyIsIG9wdC0+ bG9nX2RpciwgbG9nX3RpbWVzdGFtcCwgU0VSVkVSX0xPR19GSUxFX05BTUUpOworCWlmIChvcHQt PmxvZ19kaXIpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHBnX2N0bF9jbWQsICIgLWwgXCIlcy8lcy5s b2dcIiIsIGxvZ2RpciwgU0VSVkVSX0xPR19GSUxFX05BTUUpOwogCiAJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAogCQkJCQkgInBnX2N0bCBjb21tYW5kIGlz OiAlcyIsIHBnX2N0bF9jbWQtPmRhdGEpOwpAQCAtMjY5NSwyMCArMjY3OCw2IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQogCi0JaWYgKG9wdC5sb2dfZGlyICE9IE5VTEwp Ci0JewotCQljaGFyCSAgICppbnRlcm5hbF9sb2dfZmlsZTsKLQotCQltYWtlX291dHB1dF9kaXJz KG9wdC5sb2dfZGlyKTsKLQkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMvJXMu bG9nIiwgb3B0LmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsCi0JCQkJCQkJCQkgSU5URVJOQUxfTE9H X0ZJTEVfTkFNRSk7Ci0KLQkJaWYgKChpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IGxvZ2ZpbGVfb3Bl bihpbnRlcm5hbF9sb2dfZmlsZSwgImEiKSkgPT0gTlVMTCkKLQkJCXBnX2ZhdGFsKCJjb3VsZCBu b3Qgb3BlbiBsb2cgZmlsZSBcIiVzXCI6ICVtIiwgaW50ZXJuYWxfbG9nX2ZpbGUpOwotCi0JCXBn X2ZyZWUoaW50ZXJuYWxfbG9nX2ZpbGUpOwotCX0KLQogCS8qIFZhbGlkYXRlIHRoYXQgLS1hbGwg aXMgbm90IHVzZWQgd2l0aCBpbmNvbXBhdGlibGUgb3B0aW9ucyAqLwogCWlmIChvcHQuYWxsX2Ri cykKIAl7CkBAIC0yNzg2LDYgKzI3NTUsMjAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJCWV4aXQoMSk7CiAJfQogCisJaWYgKG9wdC5sb2dfZGlyICE9IE5VTEwpCisJeworCQljaGFy CSAgICppbnRlcm5hbF9sb2dfZmlsZTsKKworCQltYWtlX291dHB1dF9kaXJzKG9wdC5sb2dfZGly KTsKKwkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMubG9nIiwgbG9nZGlyLAor CQkJCQkJCQkJIElOVEVSTkFMX0xPR19GSUxFX05BTUUpOworCisJCWlmICgoaW50ZXJuYWxfbG9n X2ZpbGVfZnAgPSBsb2dmaWxlX29wZW4oaW50ZXJuYWxfbG9nX2ZpbGUsICJhIikpID09IE5VTEwp CisJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gbG9nIGZpbGUgXCIlc1wiOiAlbSIsIGludGVy bmFsX2xvZ19maWxlKTsKKworCQlwZ19mcmVlKGludGVybmFsX2xvZ19maWxlKTsKKwl9CisKIAlp ZiAoZHJ5X3J1bikKIAkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1B UlksCiAJCQkJCQkgIkV4ZWN1dGluZyBpbiBkcnktcnVuIG1vZGUuXG4iCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbCBiL3NyYy9i aW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCmluZGV4IDRkZGZi NjIxYTVkLi5kM2FmMTU2MTU1MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Qv MDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Qv MDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwKQEAgLTE0LDcgKzE0LDcgQEAgcHJvZ3JhbV92ZXJz aW9uX29rKCdwZ19jcmVhdGVzdWJzY3JpYmVyJyk7CiBwcm9ncmFtX29wdGlvbnNfaGFuZGxpbmdf b2soJ3BnX2NyZWF0ZXN1YnNjcmliZXInKTsKIAogbXkgJGRhdGFkaXIgPSBQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczo6dGVtcGRpcjsKLW15ICRsb2dkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGls czo6dGVtcGRpciArICIvbG9nZGlyIjsKK215ICRsb2dkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpV dGlsczo6dGVtcGRpcjsKIAogIyBHZW5lcmF0ZSBhIGRhdGFiYXNlIHdpdGggYSBuYW1lIG1hZGUg b2YgYSByYW5nZSBvZiBBU0NJSSBjaGFyYWN0ZXJzLgogIyBFeHRyYWN0ZWQgZnJvbSAwMDJfcGdf dXBncmFkZS5wbC4KLS0gCjIuNDMuMAoK --0000000000000a5bff064d64c10d Content-Type: application/octet-stream; name="v13-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch" Content-Disposition: attachment; filename="v13-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxt195t1 RnJvbSBlZDE2ZGJlNzYwY2UxMGNkMjcyNTJhZDU3NGU5Y2VkYjJhMDE0ZjliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIFNyZWVqaXRoIDxneWFuLnNyZWVqaXRoQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCAxOSBNYXIgMjAyNiAxNDowODowNyAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djEzIDIvM10gQWRkIGEgbmV3IGFyZ3VtZW50IC1sIDxsb2dkaXI+IHRvCiBwZ19jcmVhdGVzdWJz Y3JpYmVyLgoKRW5hYmxpbmcgdGhlIG9wdGlvbiB0byB3cml0ZSBtZXNzYWdlcyB0byBsb2cgZmls ZXMgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuCkEgbmV3IGRpcmVjdG9yeSBpcyBjcmVhdGVk IGlmIHJlcXVpcmVkLiBBIHN1YmRpcmVjdG9yeSBpcyBjcmVhdGVkIHdpdGggdGltZXN0YW1wIGFz IGl0cyBuYW1lLCBhbmQgaXQgd2lsbCBjb250YWluIHR3byBuZXcgbG9nZmlsZXM6CjEuIHBnX2Ny ZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyAgLSBjYXB0dXJlcyBtZXNzYWdlcyByZWxhdGVkIHRv IHN0YXJ0aW5nIGFuZCBzdG9wcGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIuCjIuIHBnX2NyZWF0ZXN1 YnNjcmliZXJfaW50ZXJuYWwubG9nIC0gY2FwdHVyZXMgaW50ZXJuYWwgZGlhZ25vc3RpYyBvdXRw dXQgZnJvbSBwZ19jcmVhdGVzdWJzY3JpYmVyLgoKRm9yIGV4YW1wbGUsIGlmIHdlIHNwZWNpZnkg LWwgYWJjIGFzIGFuIGFyZ3VtZW50LCBhbmQgaWYgdGhlIHRpbWVzdGFtcCBvbiBydW5uaW5nIGl0 IGlzIDIwMjYwMTE5VDIwNDMxNy4yMDQsIGEgZGlyZWN0b3J5IGFiYyBpcyBjcmVhdGVkIGlmIGl0 IGRvZXNuJ3QgZXhpc3QgYWxyZWFkeSwgd2l0aCAyMDI2MDExOVQyMDQzMTcuMjA0IGFzIGl0cyBz dWJkaXJlY3RvcnkgYW5kIGl0IHdpbGwgY29udGFpbiB0aGUgdHdvIGxvZyBmaWxlcyBwZ19jcmVh dGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgYW5kIHBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwu bG9nCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgICAgIHwg IDI4ICsrKwogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwg MTkyICsrKysrKysrKysrKysrKysrLQogLi4uL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwg ICAgICAgICAgICAgIHwgIDQxICsrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMjUwIGluc2VydGlvbnMo KyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3Jl YXRlc3Vic2NyaWJlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVy LnNnbWwKaW5kZXggY2Y0NWZmMzU3M2QuLjI4OThhNWVhMTExIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbApAQCAtMTM2LDYgKzEzNiwzNCBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxvcHRpb24+LWwgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRpcmVjdG9yeTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgor ICAgICA8dGVybT48b3B0aW9uPi0tbG9nZGlyPTxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5kaXJlY3Rvcnk8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgPGxpc3RpdGVt PgorICAgICAgPHBhcmE+CisgICAgICAgU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgbG9nIGRpcmVj dG9yeS4gQSBuZXcgZGlyZWN0b3J5IGlzIGNyZWF0ZWQgd2l0aAorICAgICAgIHRoaXMgbmFtZSBp ZiBpdCBkb2VzIG5vdCBleGlzdC4gQSBzdWJkaXJlY3Rvcnkgd2l0aCBhIHRpbWVzdGFtcAorICAg ICAgIGluZGljYXRpbmcgdGhlIHRpbWUgYXQgd2hpY2ggcGdfY3JlYXRlc3Vic2NyaWJlciB3YXMg cnVuIHdpbGwgYmUgY3JlYXRlZC4KKyAgICAgICBUaGUgZm9sbG93aW5nIHR3byBsb2cgZmlsZXMg d2lsbCBiZSBjcmVhdGVkIGluIHRoZSBzdWJkaXJlY3Rvcnkgd2l0aCBhCisgICAgICAgdW1hc2sg b2YgMDc3IHNvIHRoYXQgYWNjZXNzIGlzIGRpc2FsbG93ZWQgdG8gb3RoZXIgdXNlcnMgYnkgZGVm YXVsdC4KKyAgICAgICA8aXRlbWl6ZWRsaXN0PgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICBwZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgd2hpY2gg Y2FwdHVyZXMgbG9ncyByZWxhdGVkIHRvIHN0b3BwaW5nCisgICAgICAgICAgYW5kIHN0YXJ0aW5n IHRoZSBzdGFuZGJ5IHNlcnZlciwKKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRl bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgcGdfY3Jl YXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cgd2hpY2ggY2FwdHVyZXMgaW50ZXJuYWwgZGlhZ25v c3RpYworICAgICAgICAgIG91dHB1dCAodmFsaWRhdGlvbnMsIGNoZWNrcywgZXRjLikKKyAgICAg ICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L2l0ZW1pemVkbGlzdD4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgIDx0ZXJtPjxvcHRpb24+LW48L29wdGlvbj48L3Rlcm0+ CiAgICAgIDx0ZXJtPjxvcHRpb24+LS1kcnktcnVuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyBiL3NyYy9iaW4v cGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKaW5kZXggMDc3MGUxNjMwNDEuLmJi NTM3OTM4YTdlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vi c2NyaWJlci5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVy LmMKQEAgLTU1LDEwICs1NSwxNCBAQAogI2RlZmluZSBJTkNMVURFRF9DT05GX0ZJTEUJCQkicGdf Y3JlYXRlc3Vic2NyaWJlci5jb25mIgogI2RlZmluZSBJTkNMVURFRF9DT05GX0ZJTEVfRElTQUJM RUQJSU5DTFVERURfQ09ORl9GSUxFICIuZGlzYWJsZWQiCiAKKyNkZWZpbmUgU0VSVkVSX0xPR19G SUxFX05BTUUgInBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyIgorI2RlZmluZSBJTlRFUk5BTF9M T0dfRklMRV9OQU1FICJwZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsIgorCiAvKiBDb21tYW5k LWxpbmUgb3B0aW9ucyAqLwogc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zCiB7CiAJY2hh cgkgICAqY29uZmlnX2ZpbGU7CS8qIGNvbmZpZ3VyYXRpb24gZmlsZSAqLworCWNoYXIJICAgKmxv Z19kaXI7CQkvKiBsb2cgZGlyZWN0b3J5IG5hbWUgKi8KIAljaGFyCSAgICpwdWJfY29ubmluZm9f c3RyOwkvKiBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmcgKi8KIAljaGFyCSAgICpzb2NrZXRf ZGlyOwkJLyogZGlyZWN0b3J5IGZvciBVbml4LWRvbWFpbiBzb2NrZXQsIGlmIGFueSAqLwogCWNo YXIJICAgKnN1Yl9wb3J0OwkJLyogc3Vic2NyaWJlciBwb3J0IG51bWJlciAqLwpAQCAtMTU1LDgg KzE1OSwxNCBAQCBzdGF0aWMgdm9pZCBnZXRfcHVibGlzaGVyX2RhdGFiYXNlcyhzdHJ1Y3QgQ3Jl YXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwKIHN0YXRpYyB2b2lkIHBnX2NyZWF0ZXN1Yl9sb2co ZW51bSBwZ19sb2dfbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQsCiAJCQkJCQkJIGNvbnN0IGNoYXIg KnBnX3Jlc3RyaWN0IGZtdCwuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQpOworc3Rh dGljIHZvaWQgcGdfY3JlYXRlc3ViX2xvZ192KGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVt IHBnX2xvZ19wYXJ0IHBhcnQsCisJCQkJCQkJICAgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10 LCB2YV9saXN0IGFyZ3MpCisJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDApOwogcGdfbm9yZXR1 cm4gc3RhdGljIHZvaWQgcGdfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikK IAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitzdGF0aWMgdm9pZCBpbnRlcm5hbF9sb2df ZmlsZV93cml0ZShlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwKKwkJCQkJCQkJCWNvbnN0IGNoYXIg KnBnX3Jlc3RyaWN0IGZtdCwgdmFfbGlzdCBhcmdzKQorCQkJcGdfYXR0cmlidXRlX3ByaW50Zigy LCAwKTsKIAogI2RlZmluZQlXQUlUX0lOVEVSVkFMCTEJCS8qIDEgc2Vjb25kICovCiAKQEAgLTE3 OCw2ICsxODgsMTAgQEAgc3RhdGljIHBnX3Bybmdfc3RhdGUgcHJuZ19zdGF0ZTsKIHN0YXRpYyBj aGFyICpwZ19jdGxfcGF0aCA9IE5VTEw7CiBzdGF0aWMgY2hhciAqcGdfcmVzZXR3YWxfcGF0aCA9 IE5VTEw7CiAKK3N0YXRpYyBGSUxFICppbnRlcm5hbF9sb2dfZmlsZV9mcCA9IE5VTEw7CS8qIEZp bGUgcHRyIHRvIGxvZyBhbGwgbWVzc2FnZXMgdG8gKi8KK3N0YXRpYyBjaGFyICpsb2dfdGltZXN0 YW1wID0gTlVMTDsJLyogVGltZXN0YW1wIHRvIGJlIHVzZWQgaW4gYWxsIGxvZyBmaWxlCisJCQkJ CQkJCQkgKiBuYW1lcyAqLworCiAvKiBzdGFuZGJ5IC8gc3Vic2NyaWJlciBkYXRhIGRpcmVjdG9y eSAqLwogc3RhdGljIGNoYXIgKnN1YnNjcmliZXJfZGlyID0gTlVMTDsKIApAQCAtMTg1LDYgKzE5 OSwzMCBAQCBzdGF0aWMgYm9vbCByZWNvdmVyeV9lbmRlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wg c3RhbmRieV9ydW5uaW5nID0gZmFsc2U7CiBzdGF0aWMgYm9vbCByZWNvdmVyeV9wYXJhbXNfc2V0 ID0gZmFsc2U7CiAKK3N0YXRpYyB2b2lkCitwZ19jcmVhdGVzdWJfbG9nX3YoZW51bSBwZ19sb2df bGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkgICBjb25zdCBjaGFyICpw Z19yZXN0cmljdCBmbXQsIHZhX2xpc3QgYXJncykKK3sKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVf ZnAgIT0gTlVMTCkKKwl7CisJCS8qCisJCSAqIE91dHB1dCB0byBib3RoIHN0ZGVyciBhbmQgc3Bl Y2lmaWVkIGxvZyBmaWxlcyBpZiB0aGUgbG9nIGxldmVsIGlzCisJCSAqIHdhcm5pbmcgb3IgaGln aGVyLgorCQkgKi8KKwkJaWYgKGxldmVsID4gUEdfTE9HX0lORk8pCisJCXsKKwkJCXZhX2xpc3QJ CWFyZ19jcHk7CisKKwkJCXZhX2NvcHkoYXJnX2NweSwgYXJncyk7CisJCQlwZ19sb2dfZ2VuZXJp Y192KGxldmVsLCBwYXJ0LCBmbXQsIGFyZ19jcHkpOworCQkJdmFfZW5kKGFyZ19jcHkpOworCQl9 CisJCWludGVybmFsX2xvZ19maWxlX3dyaXRlKGxldmVsLCBmbXQsIGFyZ3MpOworCX0KKwllbHNl CisJCXBnX2xvZ19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7Cit9CisKIHN0YXRp YyB2b2lkCiBwZ19jcmVhdGVzdWJfbG9nKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBn X2xvZ19wYXJ0IHBhcnQsCiAJCQkJIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCkBA IC0xOTMsNyArMjMxLDcgQEAgcGdfY3JlYXRlc3ViX2xvZyhlbnVtIHBnX2xvZ19sZXZlbCBsZXZl bCwgZW51bSBwZ19sb2dfcGFydCBwYXJ0LAogCiAJdmFfc3RhcnQoYXJncywgZm10KTsKIAotCXBn X2xvZ19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7CisJcGdfY3JlYXRlc3ViX2xv Z192KGxldmVsLCBwYXJ0LCBmbXQsIGFyZ3MpOwogCiAJdmFfZW5kKGFyZ3MpOwogfQpAQCAtMjA1 LDEwICsyNDMsMTEgQEAgcGdfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikK IAogCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7CiAKLQlwZ19sb2dfZ2VuZXJpY192KFBHX0xPR19FUlJP UiwgUEdfTE9HX1BSSU1BUlksIGZtdCwgYXJncyk7CisJcGdfY3JlYXRlc3ViX2xvZ192KFBHX0xP R19FUlJPUiwgUEdfTE9HX1BSSU1BUlksIGZtdCwgYXJncyk7CiAKIAl2YV9lbmQoYXJncyk7CiAK KwogCWV4aXQoMSk7CiB9CiAKQEAgLTMxMyw2ICszNTIsMTIgQEAgY2xlYW51cF9vYmplY3RzX2F0 ZXhpdCh2b2lkKQogCiAJaWYgKHN0YW5kYnlfcnVubmluZykKIAkJc3RvcF9zdGFuZGJ5X3NlcnZl cihzdWJzY3JpYmVyX2Rpcik7CisKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0gTlVMTCkK Kwl7CisJCWZjbG9zZShpbnRlcm5hbF9sb2dfZmlsZV9mcCk7CisJCWludGVybmFsX2xvZ19maWxl X2ZwID0gTlVMTDsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0zMjcsNiArMzcyLDcgQEAgdXNh Z2Uodm9pZCkKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNl cyBhbmQgZGF0YWJhc2VzIHRoYXQgZG9uJ3QgYWxsb3cgY29ubmVjdGlvbnNcbiIpKTsKIAlwcmlu dGYoXygiICAtZCwgLS1kYXRhYmFzZT1EQk5BTUUgICAgICAgICAgIGRhdGFiYXNlIGluIHdoaWNo IHRvIGNyZWF0ZSBhIHN1YnNjcmlwdGlvblxuIikpOwogCXByaW50ZihfKCIgIC1ELCAtLXBnZGF0 YT1EQVRBRElSICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBzdWJzY3JpYmVyIGRhdGEgZGly ZWN0b3J5XG4iKSk7CisJcHJpbnRmKF8oIiAgLWwsIC0tbG9nZGlyPUxPR0RJUiAgICAgICAgICAg ICBsb2NhdGlvbiBmb3IgdGhlIG5ldyBsb2cgZGlyZWN0b3J5XG4iKSk7CiAJcHJpbnRmKF8oIiAg LW4sIC0tZHJ5LXJ1biAgICAgICAgICAgICAgICAgICBkcnkgcnVuLCBqdXN0IHNob3cgd2hhdCB3 b3VsZCBiZSBkb25lXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXAsIC0tc3Vic2NyaWJlci1wb3J0PVBP UlQgICAgICBzdWJzY3JpYmVyIHBvcnQgbnVtYmVyIChkZWZhdWx0ICVzKVxuIiksIERFRkFVTFRf U1VCX1BPUlQpOwogCXByaW50ZihfKCIgIC1QLCAtLXB1Ymxpc2hlci1zZXJ2ZXI9Q09OTlNUUiAg cHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nXG4iKSk7CkBAIC03NjEsNiArODA3LDcgQEAgbW9k aWZ5X3N1YnNjcmliZXJfc3lzaWQoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25z ICpvcHQpCiAJYm9vbAkJY3JjX29rOwogCXN0cnVjdCB0aW1ldmFsIHR2OwogCisJY2hhcgkgICAq b3V0X2ZpbGU7CiAJY2hhcgkgICAqY21kX3N0cjsKIAogCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLApAQCAtNzk5LDggKzg0NiwxMyBAQCBtb2RpZnlfc3Vic2Ny aWJlcl9zeXNpZChjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCkKIAkJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCiAJCQkJCQkgInJ1 bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhlIHN1YnNjcmliZXIiKTsKIAotCWNtZF9zdHIgPSBwc3By aW50ZigiXCIlc1wiIC1EIFwiJXNcIiA+IFwiJXNcIiIsIHBnX3Jlc2V0d2FsX3BhdGgsCi0JCQkJ CSAgIHN1YnNjcmliZXJfZGlyLCBERVZOVUxMKTsKKwlpZiAob3B0LT5sb2dfZGlyICE9IE5VTEwp CisJCW91dF9maWxlID0gcHNwcmludGYoIiVzLyVzLyVzLmxvZyIsIG9wdC0+bG9nX2RpciwgbG9n X3RpbWVzdGFtcCwgU0VSVkVSX0xPR19GSUxFX05BTUUpOworCWVsc2UKKwkJb3V0X2ZpbGUgPSBE RVZOVUxMOworCisJY21kX3N0ciA9IHBzcHJpbnRmKCJcIiVzXCIgLUQgXCIlc1wiID4+IFwiJXNc IiIsIHBnX3Jlc2V0d2FsX3BhdGgsCisJCQkJCSAgIHN1YnNjcmliZXJfZGlyLCBvdXRfZmlsZSk7 CiAKIAlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCiAJCQkJ CSAicGdfcmVzZXR3YWwgY29tbWFuZCBpczogJXMiLCBjbWRfc3RyKTsKQEAgLTEwMjMsNiArMTA3 NSwxMTAgQEAgc2VydmVyX2lzX2luX3JlY292ZXJ5KFBHY29ubiAqY29ubikKIAlyZXR1cm4gcmV0 ID09IDA7CiB9CiAKK3N0YXRpYyB2b2lkCitpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShlbnVtIHBn X2xvZ19sZXZlbCBsZXZlbCwgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LAorCQkJCQkJdmFf bGlzdCBhcmdzKQoreworCWlmIChsZXZlbCA8IF9fcGdfbG9nX2xldmVsKQorCQlyZXR1cm47CisK KwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJdmZwcmlu dGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIGZtdCwgYXJncyk7CisKKwlmcHJpbnRmKGludGVybmFs X2xvZ19maWxlX2ZwLCAiXG4iKTsKKwlmZmx1c2goaW50ZXJuYWxfbG9nX2ZpbGVfZnApOworfQor CisvKgorICogT3BlbiBhIG5ldyBsb2dmaWxlIHdpdGggcHJvcGVyIHBlcm1pc3Npb25zLgorICog RnJvbSBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5jCisgKi8KK3N0YXRpYyBGSUxF ICoKK2xvZ2ZpbGVfb3Blbihjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAqbW9kZSkK K3sKKwlGSUxFCSAgICpmaDsKKwltb2RlX3QJCW91bWFzazsKKworCW91bWFzayA9IHVtYXNrKCht b2RlX3QpICgofihTX0lSVVNSIHwgU19JV1VTUikpICYgKFNfSVJXWFUgfCBTX0lSV1hHIHwgU19J UldYTykpKTsKKwlmaCA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsKKwl1bWFzayhvdW1hc2spOwor CisJaWYgKGZoKQorCXsKKwkJc2V0dmJ1ZihmaCwgTlVMTCwgUEdfSU9MQkYsIDApOworCisjaWZk ZWYgV0lOMzIKKwkJLyogdXNlIENSTEYgbGluZSBlbmRpbmdzIG9uIFdpbmRvd3MgKi8KKwkJX3Nl dG1vZGUoX2ZpbGVubyhmaCksIF9PX1RFWFQpOworI2VuZGlmCisJfQorCWVsc2UKKwkJcGdfZmF0 YWwoImNvdWxkIG5vdCBvcGVuIGxvZyBmaWxlIFwiJXNcIjogJW0iLAorCQkJCSBmaWxlbmFtZSk7 CisKKwlyZXR1cm4gZmg7Cit9CisKK3N0YXRpYyB2b2lkCittYWtlX2Rpcihjb25zdCBjaGFyICpk aXIpCit7CisJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKworCWlmIChzdGF0KGRpciwgJnN0YXRidWYp ID09IDApCisJCXJldHVybjsKKworCWlmIChlcnJubyAhPSBFTk9FTlQpCisJCXBnX2ZhdGFsKCJj b3VsZCBub3Qgc3RhdCBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7CisKKwlpZiAobWtkaXIo ZGlyLCBTX0lSV1hVKSA9PSAwKQorCXsKKwkJcGdfbG9nX2luZm8oImRpcmVjdG9yeSAlcyBjcmVh dGVkIiwgZGlyKTsKKwkJcmV0dXJuOworCX0KKworCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3JlYXRl IGxvZyBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7Cit9CisKK3N0YXRpYyB2b2lkCittYWtl X291dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19kaXIpCit7CisJY2hhcgkJdGltZXN0YW1wWzEy OF07CisJc3RydWN0IHRpbWV2YWwgdHZhbDsKKwl0aW1lX3QJCW5vdzsKKwlzdHJ1Y3QgdG0JdG1i dWY7CisJY2hhcgkJdGltZXN0YW1wX2RpcltNQVhQR1BBVEhdOworCWludAkJCWxlbjsKKworCS8q IEdlbmVyYXRlIHRpbWVzdGFtcCAqLworCWdldHRpbWVvZmRheSgmdHZhbCwgTlVMTCk7CisJbm93 ID0gdHZhbC50dl9zZWM7CisKKwlzdHJmdGltZSh0aW1lc3RhbXAsIHNpemVvZih0aW1lc3RhbXAp LCAiJVklbSVkVCVIJU0lUyIsCisJCQkgbG9jYWx0aW1lX3IoJm5vdywgJnRtYnVmKSk7CisKKwkv KiBhcHBlbmQgbWlsbGlzZWNvbmRzICovCisJc25wcmludGYodGltZXN0YW1wICsgc3RybGVuKHRp bWVzdGFtcCksCisJCQkgc2l6ZW9mKHRpbWVzdGFtcCkgLSBzdHJsZW4odGltZXN0YW1wKSwgIi4l MDN1IiwKKwkJCSAodW5zaWduZWQgaW50KSAodHZhbC50dl91c2VjIC8gMTAwMCkpOworCisJbG9n X3RpbWVzdGFtcCA9IHBnX3N0cmR1cCh0aW1lc3RhbXApOworCisJLyogQ3JlYXRlIGJhc2UgZGly ZWN0b3J5IChpZ25vcmUgaWYgZXhpc3RzKSAqLworCW1ha2VfZGlyKGxvZ19kaXIpOworCisJLyog QnVpbGQgdGltZXN0YW1wIGRpcmVjdG9yeSBwYXRoICovCisJbGVuID0gc25wcmludGYodGltZXN0 YW1wX2RpciwgTUFYUEdQQVRILCAiJXMvJXMiLCBsb2dfZGlyLCB0aW1lc3RhbXApOworCisJaWYg KGxlbiA+PSBNQVhQR1BBVEgpCisJCXBnX2ZhdGFsKCJkaXJlY3RvcnkgcGF0aCBmb3IgbG9nIGZp bGVzLCAlcy8lcywgaXMgdG9vIGxvbmciLAorCQkJCSBsb2dfZGlyLCB0aW1lc3RhbXApOworCisJ LyogQ3JlYXRlIHRpbWVzdGFtcCBkaXJlY3RvcnkgKi8KKwltYWtlX2Rpcih0aW1lc3RhbXBfZGly KTsKK30KKwogLyoKICAqIElzIHRoZSBwcmltYXJ5IHNlcnZlciByZWFkeSBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbj8KICAqCkBAIC0xNzgxLDYgKzE5MzcsOSBAQCBzdGFydF9zdGFuZGJ5X3NlcnZl cihjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwgYm9vbCByZXN0cmlj dGVkXwogCWlmIChyZXN0cmljdF9sb2dpY2FsX3dvcmtlcikKIAkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocGdfY3RsX2NtZCwgIiAtbyBcIi1jIG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnM9 MFwiIik7CiAKKwlpZiAob3B0LT5sb2dfZGlyICE9IE5VTEwpCisJCWFwcGVuZFBRRXhwQnVmZmVy KHBnX2N0bF9jbWQsICIgLWwgJXMvJXMvJXMubG9nIiwgb3B0LT5sb2dfZGlyLCBsb2dfdGltZXN0 YW1wLCBTRVJWRVJfTE9HX0ZJTEVfTkFNRSk7CisKIAlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19E RUJVRywgUEdfTE9HX1BSSU1BUlksCiAJCQkJCSAicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdf Y3RsX2NtZC0+ZGF0YSk7CiAJcmMgPSBzeXN0ZW0ocGdfY3RsX2NtZC0+ZGF0YSk7CkBAIC0yMzUx LDYgKzI1MTAsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJeyJhbGwiLCBub19h cmd1bWVudCwgTlVMTCwgJ2EnfSwKIAkJeyJkYXRhYmFzZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBO VUxMLCAnZCd9LAogCQl7InBnZGF0YSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnRCd9LAor CQl7ImxvZ2RpciIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnbCd9LAogCQl7ImRyeS1ydW4i LCBub19hcmd1bWVudCwgTlVMTCwgJ24nfSwKIAkJeyJzdWJzY3JpYmVyLXBvcnQiLCByZXF1aXJl ZF9hcmd1bWVudCwgTlVMTCwgJ3AnfSwKIAkJeyJwdWJsaXNoZXItc2VydmVyIiwgcmVxdWlyZWRf YXJndW1lbnQsIE5VTEwsICdQJ30sCkBAIC0yNDA5LDYgKzI1NjksNyBAQCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKIAkvKiBEZWZhdWx0IHNldHRpbmdzICovCiAJc3Vic2NyaWJlcl9kaXIg PSBOVUxMOwogCW9wdC5jb25maWdfZmlsZSA9IE5VTEw7CisJb3B0LmxvZ19kaXIgPSBOVUxMOwog CW9wdC5wdWJfY29ubmluZm9fc3RyID0gTlVMTDsKIAlvcHQuc29ja2V0X2RpciA9IE5VTEw7CiAJ b3B0LnN1Yl9wb3J0ID0gREVGQVVMVF9TVUJfUE9SVDsKQEAgLTI0MzksNyArMjYwMCw3IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJZ2V0X3Jlc3RyaWN0ZWRfdG9rZW4oKTsKIAot CXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpEOm5wOlA6czp0OlRVOnYi LAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpEOmw6bnA6UDpzOnQ6 VFU6diIsCiAJCQkJCQkJbG9uZ19vcHRpb25zLCAmb3B0aW9uX2luZGV4KSkgIT0gLTEpCiAJewog CQlzd2l0Y2ggKGMpCkBAIC0yNDYwLDYgKzI2MjEsMTAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCQkJc3Vic2NyaWJlcl9kaXIgPSBwZ19zdHJkdXAob3B0YXJnKTsKIAkJCQljYW5v bmljYWxpemVfcGF0aChzdWJzY3JpYmVyX2Rpcik7CiAJCQkJYnJlYWs7CisJCQljYXNlICdsJzoK KwkJCQlvcHQubG9nX2RpciA9IHBnX3N0cmR1cChvcHRhcmcpOworCQkJCWNhbm9uaWNhbGl6ZV9w YXRoKG9wdC5sb2dfZGlyKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ24nOgogCQkJCWRyeV9ydW4g PSB0cnVlOwogCQkJCWJyZWFrOwpAQCAtMjUzMCw2ICsyNjk1LDIwIEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogCQl9CiAJfQogCisJaWYgKG9wdC5sb2dfZGlyICE9IE5VTEwpCisJewor CQljaGFyCSAgICppbnRlcm5hbF9sb2dfZmlsZTsKKworCQltYWtlX291dHB1dF9kaXJzKG9wdC5s b2dfZGlyKTsKKwkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMvJXMubG9nIiwg b3B0LmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsCisJCQkJCQkJCQkgSU5URVJOQUxfTE9HX0ZJTEVf TkFNRSk7CisKKwkJaWYgKChpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IGxvZ2ZpbGVfb3BlbihpbnRl cm5hbF9sb2dfZmlsZSwgImEiKSkgPT0gTlVMTCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3Bl biBsb2cgZmlsZSBcIiVzXCI6ICVtIiwgaW50ZXJuYWxfbG9nX2ZpbGUpOworCisJCXBnX2ZyZWUo aW50ZXJuYWxfbG9nX2ZpbGUpOworCX0KKwogCS8qIFZhbGlkYXRlIHRoYXQgLS1hbGwgaXMgbm90 IHVzZWQgd2l0aCBpbmNvbXBhdGlibGUgb3B0aW9ucyAqLwogCWlmIChvcHQuYWxsX2RicykKIAl7 CkBAIC0yODI2LDUgKzMwMDUsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKIAkJCQkJICJEb25lISIp OwogCisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwICE9IE5VTEwpCisJCWZjbG9zZShpbnRlcm5h bF9sb2dfZmlsZV9mcCk7CisKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf YmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsIGIvc3JjL2Jpbi9wZ19iYXNl YmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwKaW5kZXggMGMyN2ZjYTdiYjcuLjRk ZGZiNjIxYTVkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3Jl YXRlc3Vic2NyaWJlci5wbAorKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3Jl YXRlc3Vic2NyaWJlci5wbApAQCAtMTQsNiArMTQsNyBAQCBwcm9ncmFtX3ZlcnNpb25fb2soJ3Bn X2NyZWF0ZXN1YnNjcmliZXInKTsKIHByb2dyYW1fb3B0aW9uc19oYW5kbGluZ19vaygncGdfY3Jl YXRlc3Vic2NyaWJlcicpOwogCiBteSAkZGF0YWRpciA9IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxz Ojp0ZW1wZGlyOworbXkgJGxvZ2RpciA9IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGly ICsgIi9sb2dkaXIiOwogCiAjIEdlbmVyYXRlIGEgZGF0YWJhc2Ugd2l0aCBhIG5hbWUgbWFkZSBv ZiBhIHJhbmdlIG9mIEFTQ0lJIGNoYXJhY3RlcnMuCiAjIEV4dHJhY3RlZCBmcm9tIDAwMl9wZ191 cGdyYWRlLnBsLgpAQCAtMzYyLDkgKzM2MywzNSBAQCBjb21tYW5kX29rKAogCQknLS1zdWJzY3Jp cHRpb24nID0+ICdzdWIyJywKIAkJJy0tZGF0YWJhc2UnID0+ICRkYjEsCiAJCSctLWRhdGFiYXNl JyA9PiAkZGIyLAorCQknLS1sb2dkaXInID0+ICRsb2dkaXIsCiAJXSwKIAkncnVuIHBnX2NyZWF0 ZXN1YnNjcmliZXIgLS1kcnktcnVuIG9uIG5vZGUgUycpOwogCisjIENoZWNrIHRoYXQgdGhlIGxv ZyBmaWxlcyB3ZXJlIGNyZWF0ZWQKK215IEBzZXJ2ZXJfbG9nX2ZpbGVzID0gZ2xvYiAiJGxvZ2Rp ci8qL3BnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyI7Citpcyggc2NhbGFyKEBzZXJ2ZXJf bG9nX2ZpbGVzKSwgMSwgIgorICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyBmaWxl IHdhcyBjcmVhdGVkIik7CitteSAkc2VydmVyX2xvZ19maWxlX3NpemUgPSAtcyAkc2VydmVyX2xv Z19maWxlc1swXTsKK2lzbnQoJHNlcnZlcl9sb2dfZmlsZV9zaXplLCAwLAorCSJwZ19jcmVhdGVz dWJzY3JpYmVyX3NlcnZlci5sb2cgZmlsZSBub3QgZW1wdHkiKTsKK215ICRzZXJ2ZXJfbG9nID0g c2x1cnBfZmlsZSgkc2VydmVyX2xvZ19maWxlc1swXSk7CitsaWtlKAorCSRzZXJ2ZXJfbG9nLAor CXFyL2NvbnNpc3RlbnQgcmVjb3Zlcnkgc3RhdGUgcmVhY2hlZC8sCisJInNlcnZlciByZWFjaGVk IGNvbnNpc3RlbnQgcmVjb3Zlcnkgc3RhdGUiKTsKKworbXkgQGludGVybmFsX2xvZ19maWxlcyA9 IGdsb2IgIiRsb2dkaXIvKi9wZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZyI7Citpcygg c2NhbGFyKEBpbnRlcm5hbF9sb2dfZmlsZXMpLCAxLCAiCisgICAgcGdfY3JlYXRlc3Vic2NyaWJl cl9pbnRlcm5hbC5sb2cgZmlsZSB3YXMgY3JlYXRlZCIpOworbXkgJGludGVybmFsX2xvZ19maWxl X3NpemUgPSAtcyAkaW50ZXJuYWxfbG9nX2ZpbGVzWzBdOworaXNudCgkaW50ZXJuYWxfbG9nX2Zp bGVfc2l6ZSwgMCwKKwkicGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2cgZmlsZSBub3Qg ZW1wdHkiKTsKK215ICRpbnRlcm5hbF9sb2cgPSBzbHVycF9maWxlKCRpbnRlcm5hbF9sb2dfZmls ZXNbMF0pOworbGlrZSgKKwkkaW50ZXJuYWxfbG9nLAorCXFyL3RhcmdldCBzZXJ2ZXIgcmVhY2hl ZCB0aGUgY29uc2lzdGVudCBzdGF0ZS8sCisJImxvZyBzaG93cyBjb25zaXN0ZW50IHN0YXRlIHJl YWNoZWQiKTsKKwogIyBDaGVjayBpZiBub2RlIFMgaXMgc3RpbGwgYSBzdGFuZGJ5CiAkbm9kZV9z LT5zdGFydDsKIGlzKCRub2RlX3MtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0VMRUNUIHBnX2Nh dGFsb2cucGdfaXNfaW5fcmVjb3ZlcnkoKScpLApAQCAtNDQ0LDcgKzQ3MSw4IEBAIGlzKHNjYWxh cigoKSA9ICRzdGRlcnIgPX4gL3dvdWxkIGNyZWF0ZSBzdWJzY3JpcHRpb24vZyksCiAKICMgQ3Jl YXRlIGEgdXNlci1kZWZpbmVkIHB1YmxpY2F0aW9uLCBhbmQgYSB0YWJsZSB0aGF0IGlzIG5vdCBh IG1lbWJlciBvZiB0aGF0CiAjIHB1YmxpY2F0aW9uLgotJG5vZGVfcC0+c2FmZV9wc3FsKCRkYjEs IHFxKAorJG5vZGVfcC0+c2FmZV9wc3FsKAorCSRkYjEsIHFxKAogCUNSRUFURSBQVUJMSUNBVElP TiB0ZXN0X3B1YjMgRk9SIFRBQkxFIHRibDE7CiAJQ1JFQVRFIFRBQkxFIG5vdF9yZXBsaWNhdGVk IChhIGludCk7CiApKTsKQEAgLTU0MCw4ICs1NjgsNyBAQCBzZWNvbmQgcm93CiB0aGlyZCByb3cp LAogCSJsb2dpY2FsIHJlcGxpY2F0aW9uIHdvcmtzIGluIGRhdGFiYXNlICRkYjEiKTsKICRyZXN1 bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoJGRiMSwgJ1NFTEVDVCAqIEZST00gbm90X3JlcGxpY2F0 ZWQnKTsKLWlzKCRyZXN1bHQsIHFxKCksCi0JInRhYmxlIGlzIG5vdCByZXBsaWNhdGVkIGluIGRh dGFiYXNlICRkYjEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICJ0YWJsZSBpcyBub3QgcmVwbGljYXRl ZCBpbiBkYXRhYmFzZSAkZGIxIik7CiAKICMgQ2hlY2sgcmVzdWx0IGluIGRhdGFiYXNlICRkYjIK ICRyZXN1bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoJGRiMiwgJ1NFTEVDVCAqIEZST00gdGJsMicp OwpAQCAtNTU1LDggKzU4MiwxMCBAQCBteSAkc3lzaWRfcyA9ICRub2RlX3MtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAogaXNudCgkc3lzaWRfcCwgJHN5c2lkX3MsICdzeXN0ZW0gaWRlbnRpZmllciB3 YXMgY2hhbmdlZCcpOwogCiAjIFZlcmlmeSB0aGF0IHB1YjIgd2FzIGNyZWF0ZWQgaW4gJGRiMgot aXMoJG5vZGVfcC0+c2FmZV9wc3FsKCRkYjIsICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBwZ19wdWJs aWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3B1YjInIiksCi0JJzEnLCAicHVibGljYXRpb24gcHVi MiB3YXMgY3JlYXRlZCBpbiAkZGIyIik7CitpcyggJG5vZGVfcC0+c2FmZV9wc3FsKAorCQkkZGIy LCAiU0VMRUNUIENPVU5UKCopIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9ICdw dWIyJyIpLAorCScxJywKKwkicHVibGljYXRpb24gcHViMiB3YXMgY3JlYXRlZCBpbiAkZGIyIik7 CiAKICMgR2V0IHN1YnNjcmlwdGlvbiBhbmQgcHVibGljYXRpb24gbmFtZXMKICRyZXN1bHQgPSAk bm9kZV9zLT5zYWZlX3BzcWwoCkBAIC01ODEsNyArNjEwLDcgQEAgJHJlc3VsdCA9ICRub2RlX3Mt PnNhZmVfcHNxbCgKICAgICApCiApOwogCi1pcygkcmVzdWx0LCBxcSgkZGIxfHt0ZXN0X3B1YjN9 CitpcyggJHJlc3VsdCwgcXEoJGRiMXx7dGVzdF9wdWIzfQogJGRiMnx7cHViMn0pLAogCSJzdWJz Y3JpcHRpb25zIHVzZSB0aGUgY29ycmVjdCBwdWJsaWNhdGlvbnMiKTsKIAotLSAKMi40My4wCgo= --0000000000000a5bff064d64c10d Content-Type: application/octet-stream; name="v13-0001-pg_createsubscriber-use-own-reporting-functions.patch" Content-Disposition: attachment; filename="v13-0001-pg_createsubscriber-use-own-reporting-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxt19560 RnJvbSBkZTA0YzVhMWQ1NGUxNTM5NWQ3NGFlMGJjZDMyZWI1N2E1ZjRjYzg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDIwOjIwOjUwICswOTAwClN1YmplY3Q6IFtQQVRD SCB2MTMgMS8zXSBwZ19jcmVhdGVzdWJzY3JpYmVyOiB1c2Ugb3duIHJlcG9ydGluZyBmdW5jdGlv bnMKClRoaXMgY29tbWl0IGNvbnZlcnRzIGFsbCBwZ19sb2dfeHh4IGZhbWlsaWVzIHRvIGNhbGwg YSBuZXcgcmVwb3J0aW5nIGZ1bmN0aW9uCnBnX2NyZWF0ZXN1Yl9sb2coKS4gQWxzbywgcGdfZmF0 YWwoKSBpcyBvdmVyd3JpdHRlbiB0byB1c2UgaXRzIG93bi4KClRoaXMgY29tbWl0IGNoYW5nZXMg bm90aGluZyBmcm9tIHRoZSBvdXRzaWRlLCBidXQgaXMgbmVlZGVkIGZvciB0aGUgdXBjb21pbmcK Y29tbWl0LgotLS0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMg fCA3MTEgKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NTggaW5zZXJ0aW9u cygrKSwgMjUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRl c3Vic2NyaWJlci5jCmluZGV4IDJiYzg0NTA1YWFiLi4wNzcwZTE2MzA0MSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYworKysgYi9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCkBAIC0zMSw2ICszMSwxMiBAQAog I2luY2x1ZGUgImZlX3V0aWxzL3ZlcnNpb24uaCIKICNpbmNsdWRlICJnZXRvcHRfbG9uZy5oIgog CisvKgorICogRm9yIG5vdywgcGdfY3JlYXRlc3Vic2NyaWJlciBkb2VzIG5vdCB1c2UgY29tbW9u L2xvZ2dpbmcuYzsgdXNlIG91ciBvd24KKyAqIHBnX2ZhdGFsLgorICovCisjdW5kZWYgcGdfZmF0 YWwKKwogI2RlZmluZQlERUZBVUxUX1NVQl9QT1JUCSI1MDQzMiIKICNkZWZpbmUJT0JKRUNUVFlQ RV9QVUJMSUNBVElPTlMgIDB4MDAwMQogCkBAIC0xNDYsNiArMTUyLDExIEBAIHN0YXRpYyB2b2lk IGRyb3BfZXhpc3Rpbmdfc3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3Vi bmFtZSwKIAkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSk7CiBzdGF0aWMgdm9pZCBnZXRf cHVibGlzaGVyX2RhdGFiYXNlcyhzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwK IAkJCQkJCQkJCWJvb2wgZGJuYW1lc3BlY2lmaWVkKTsKK3N0YXRpYyB2b2lkIHBnX2NyZWF0ZXN1 Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQsCisJCQkJCQkJIGNvbnN0 IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCisJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQp OworcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgcGdfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJp Y3QgZm10LC4uLikKKwkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKICNkZWZpbmUJV0FJ VF9JTlRFUlZBTAkxCQkvKiAxIHNlY29uZCAqLwogCkBAIC0xNzQsNiArMTg1LDMyIEBAIHN0YXRp YyBib29sIHJlY292ZXJ5X2VuZGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBzdGFuZGJ5X3J1bm5p bmcgPSBmYWxzZTsKIHN0YXRpYyBib29sIHJlY292ZXJ5X3BhcmFtc19zZXQgPSBmYWxzZTsKIAor c3RhdGljIHZvaWQKK3BnX2NyZWF0ZXN1Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVu dW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4u LikKK3sKKwl2YV9saXN0CQlhcmdzOworCisJdmFfc3RhcnQoYXJncywgZm10KTsKKworCXBnX2xv Z19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7CisKKwl2YV9lbmQoYXJncyk7Cit9 CisKK3N0YXRpYyB2b2lkCitwZ19mYXRhbChjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4u KQoreworCXZhX2xpc3QJCWFyZ3M7CisKKwl2YV9zdGFydChhcmdzLCBmbXQpOworCisJcGdfbG9n X2dlbmVyaWNfdihQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLCBmbXQsIGFyZ3MpOworCisJ dmFfZW5kKGFyZ3MpOworCisJZXhpdCgxKTsKK30KIAogLyoKICAqIENsZWFuIHVwIG9iamVjdHMg Y3JlYXRlZCBieSBwZ19jcmVhdGVzdWJzY3JpYmVyLgpAQCAtMjA1LDcgKzI0Miw4IEBAIGNsZWFu dXBfb2JqZWN0c19hdGV4aXQodm9pZCkKIAkJaWYgKGR1cmFibGVfcmVuYW1lKGNvbmZfZmlsZW5h bWUsIGNvbmZfZmlsZW5hbWVfZGlzYWJsZWQpICE9IDApCiAJCXsKIAkJCS8qIGR1cmFibGVfcmVu YW1lKCkgaGFzIGFscmVhZHkgbG9nZ2VkIHNvbWV0aGluZy4gKi8KLQkJCXBnX2xvZ193YXJuaW5n X2hpbnQoIkEgbWFudWFsIHJlbW92YWwgb2YgdGhlIHJlY292ZXJ5IHBhcmFtZXRlcnMgbWF5IGJl IHJlcXVpcmVkLiIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9H X0hJTlQsCisJCQkJCQkJICJBIG1hbnVhbCByZW1vdmFsIG9mIHRoZSByZWNvdmVyeSBwYXJhbWV0 ZXJzIG1heSBiZSByZXF1aXJlZC4iKTsKIAkJfQogCX0KIApAQCAtMjE5LDkgKzI1NywxMSBAQCBj bGVhbnVwX29iamVjdHNfYXRleGl0KHZvaWQpCiAJICovCiAJaWYgKHJlY292ZXJ5X2VuZGVkKQog CXsKLQkJcGdfbG9nX3dhcm5pbmcoImZhaWxlZCBhZnRlciB0aGUgZW5kIG9mIHJlY292ZXJ5Iik7 Ci0JCXBnX2xvZ193YXJuaW5nX2hpbnQoIlRoZSB0YXJnZXQgc2VydmVyIGNhbm5vdCBiZSB1c2Vk IGFzIGEgcGh5c2ljYWwgcmVwbGljYSBhbnltb3JlLiAgIgotCQkJCQkJCSJZb3UgbXVzdCByZWNy ZWF0ZSB0aGUgcGh5c2ljYWwgcmVwbGljYSBiZWZvcmUgY29udGludWluZy4iKTsKKwkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImZhaWxl ZCBhZnRlciB0aGUgZW5kIG9mIHJlY292ZXJ5Iik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJICJUaGUgdGFyZ2V0IHNlcnZlciBjYW5ub3Qg YmUgdXNlZCBhcyBhIHBoeXNpY2FsIHJlcGxpY2EgYW55bW9yZS4gICIKKwkJCQkJCSAiWW91IG11 c3QgcmVjcmVhdGUgdGhlIHBoeXNpY2FsIHJlcGxpY2EgYmVmb3JlIGNvbnRpbnVpbmcuIik7CiAJ fQogCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fZGJzOyBpKyspCkBAIC0yNTEsMTcgKzI5MSwy MSBAQCBjbGVhbnVwX29iamVjdHNfYXRleGl0KHZvaWQpCiAJCQkJICovCiAJCQkJaWYgKGRiaW5m by0+bWFkZV9wdWJsaWNhdGlvbikKIAkJCQl7Ci0JCQkJCXBnX2xvZ193YXJuaW5nKCJwdWJsaWNh dGlvbiBcIiVzXCIgY3JlYXRlZCBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHJpbWFyeSB3YXMgbGVm dCBiZWhpbmQiLAotCQkJCQkJCQkgICBkYmluZm8tPnB1Ym5hbWUsCi0JCQkJCQkJCSAgIGRiaW5m by0+ZGJuYW1lKTsKLQkJCQkJcGdfbG9nX3dhcm5pbmdfaGludCgiRHJvcCB0aGlzIHB1YmxpY2F0 aW9uIGJlZm9yZSB0cnlpbmcgYWdhaW4uIik7CisJCQkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X1dBUk5JTkcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCQkJICJwdWJsaWNhdGlvbiBcIiVzXCIg Y3JlYXRlZCBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHJpbWFyeSB3YXMgbGVmdCBiZWhpbmQiLAor CQkJCQkJCQkJIGRiaW5mby0+cHVibmFtZSwKKwkJCQkJCQkJCSBkYmluZm8tPmRibmFtZSk7CisJ CQkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJ CQkJICJEcm9wIHRoaXMgcHVibGljYXRpb24gYmVmb3JlIHRyeWluZyBhZ2Fpbi4iKTsKIAkJCQl9 CiAJCQkJaWYgKGRiaW5mby0+bWFkZV9yZXBsc2xvdCkKIAkJCQl7Ci0JCQkJCXBnX2xvZ193YXJu aW5nKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBjcmVhdGVkIGluIGRhdGFiYXNlIFwiJXNcIiBv biBwcmltYXJ5IHdhcyBsZWZ0IGJlaGluZCIsCi0JCQkJCQkJCSAgIGRiaW5mby0+cmVwbHNsb3Ru YW1lLAotCQkJCQkJCQkgICBkYmluZm8tPmRibmFtZSk7Ci0JCQkJCXBnX2xvZ193YXJuaW5nX2hp bnQoIkRyb3AgdGhpcyByZXBsaWNhdGlvbiBzbG90IHNvb24gdG8gYXZvaWQgcmV0ZW50aW9uIG9m IFdBTCBmaWxlcy4iKTsKKwkJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdf TE9HX1BSSU1BUlksCisJCQkJCQkJCQkgInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGNyZWF0ZWQg aW4gZGF0YWJhc2UgXCIlc1wiIG9uIHByaW1hcnkgd2FzIGxlZnQgYmVoaW5kIiwKKwkJCQkJCQkJ CSBkYmluZm8tPnJlcGxzbG90bmFtZSwKKwkJCQkJCQkJCSBkYmluZm8tPmRibmFtZSk7CisJCQkJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJCQkJ ICJEcm9wIHRoaXMgcmVwbGljYXRpb24gc2xvdCBzb29uIHRvIGF2b2lkIHJldGVudGlvbiBvZiBX QUwgZmlsZXMuIik7CiAJCQkJfQogCQkJfQogCQl9CkBAIC0zNDIsNyArMzg2LDggQEAgZ2V0X2Jh c2VfY29ubmluZm8oY29uc3QgY2hhciAqY29ubmluZm8sIGNoYXIgKipkYm5hbWUpCiAJY29ubl9v cHRzID0gUFFjb25uaW5mb1BhcnNlKGNvbm5pbmZvLCAmZXJybXNnKTsKIAlpZiAoY29ubl9vcHRz ID09IE5VTEwpCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBwYXJzZSBjb25uZWN0aW9u IHN0cmluZzogJXMiLCBlcnJtc2cpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBwYXJzZSBjb25uZWN0aW9uIHN0cmlu ZzogJXMiLCBlcnJtc2cpOwogCQlQUWZyZWVtZW0oZXJybXNnKTsKIAkJcmV0dXJuIE5VTEw7CiAJ fQpAQCAtNDI2LDcgKzQ3MSw4IEBAIGdldF9leGVjX3BhdGgoY29uc3QgY2hhciAqYXJndjAsIGNv bnN0IGNoYXIgKnByb2duYW1lKQogCQkJCQkgcHJvZ25hbWUsIGZ1bGxfcGF0aCwgInBnX2NyZWF0 ZXN1YnNjcmliZXIiKTsKIAl9CiAKLQlwZ19sb2dfZGVidWcoIiVzIHBhdGggaXM6ICAlcyIsIHBy b2duYW1lLCBleGVjX3BhdGgpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19M T0dfUFJJTUFSWSwKKwkJCQkJICIlcyBwYXRoIGlzOiAgJXMiLCBwcm9nbmFtZSwgZXhlY19wYXRo KTsKIAogCXJldHVybiBleGVjX3BhdGg7CiB9CkBAIC00NDMsOCArNDg5LDkgQEAgY2hlY2tfZGF0 YV9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGF0YWRpcikKIAl1aW50MzIJCW1ham9yX3ZlcnNpb247 CiAJY2hhcgkgICAqdmVyc2lvbl9zdHI7CiAKLQlwZ19sb2dfaW5mbygiY2hlY2tpbmcgaWYgZGly ZWN0b3J5IFwiJXNcIiBpcyBhIGNsdXN0ZXIgZGF0YSBkaXJlY3RvcnkiLAotCQkJCWRhdGFkaXIp OworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkg ImNoZWNraW5nIGlmIGRpcmVjdG9yeSBcIiVzXCIgaXMgYSBjbHVzdGVyIGRhdGEgZGlyZWN0b3J5 IiwKKwkJCQkJIGRhdGFkaXIpOwogCiAJaWYgKHN0YXQoZGF0YWRpciwgJnN0YXRidWYpICE9IDAp CiAJewpAQCAtNDYyLDkgKzUwOSwxMSBAQCBjaGVja19kYXRhX2RpcmVjdG9yeShjb25zdCBjaGFy ICpkYXRhZGlyKQogCW1ham9yX3ZlcnNpb24gPSBHRVRfUEdfTUFKT1JWRVJTSU9OX05VTShnZXRf cGdfdmVyc2lvbihkYXRhZGlyLCAmdmVyc2lvbl9zdHIpKTsKIAlpZiAobWFqb3JfdmVyc2lvbiAh PSBQR19NQUpPUlZFUlNJT05fTlVNKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJkYXRhIGRpcmVjdG9y eSBpcyBvZiB3cm9uZyB2ZXJzaW9uIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIkZpbGUgXCIl c1wiIGNvbnRhaW5zIFwiJXNcIiwgd2hpY2ggaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGlzIHBy b2dyYW0ncyB2ZXJzaW9uIFwiJXNcIi4iLAotCQkJCQkJCSJQR19WRVJTSU9OIiwgdmVyc2lvbl9z dHIsIFBHX01BSk9SVkVSU0lPTik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZGF0YSBkaXJlY3RvcnkgaXMgb2Ygd3JvbmcgdmVyc2lv biIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJ CQkJCSAiRmlsZSBcIiVzXCIgY29udGFpbnMgXCIlc1wiLCB3aGljaCBpcyBub3QgY29tcGF0aWJs ZSB3aXRoIHRoaXMgcHJvZ3JhbSdzIHZlcnNpb24gXCIlc1wiLiIsCisJCQkJCQkgIlBHX1ZFUlNJ T04iLCB2ZXJzaW9uX3N0ciwgUEdfTUFKT1JWRVJTSU9OKTsKIAkJZXhpdCgxKTsKIAl9CiB9CkBA IC01NDcsMTQgKzU5NiwxNiBAQCBzdG9yZV9wdWJfc3ViX2luZm8oY29uc3Qgc3RydWN0IENyZWF0 ZVN1YnNjcmliZXJPcHRpb25zICpvcHQsCiAJCQlkYmluZm9baV0uc3VibmFtZSA9IE5VTEw7CiAJ CS8qIE90aGVyIGZpZWxkcyB3aWxsIGJlIGZpbGxlZCBsYXRlciAqLwogCi0JCXBnX2xvZ19kZWJ1 ZygicHVibGlzaGVyKCVkKTogcHVibGljYXRpb246ICVzIDsgcmVwbGljYXRpb24gc2xvdDogJXMg OyBjb25uZWN0aW9uIHN0cmluZzogJXMiLCBpLAotCQkJCQkgZGJpbmZvW2ldLnB1Ym5hbWUgPyBk YmluZm9baV0ucHVibmFtZSA6ICIoYXV0bykiLAotCQkJCQkgZGJpbmZvW2ldLnJlcGxzbG90bmFt ZSA/IGRiaW5mb1tpXS5yZXBsc2xvdG5hbWUgOiAiKGF1dG8pIiwKLQkJCQkJIGRiaW5mb1tpXS5w dWJjb25uaW5mbyk7Ci0JCXBnX2xvZ19kZWJ1Zygic3Vic2NyaWJlciglZCk6IHN1YnNjcmlwdGlv bjogJXMgOyBjb25uZWN0aW9uIHN0cmluZzogJXMsIHR3b19waGFzZTogJXMiLCBpLAotCQkJCQkg ZGJpbmZvW2ldLnN1Ym5hbWUgPyBkYmluZm9baV0uc3VibmFtZSA6ICIoYXV0bykiLAotCQkJCQkg ZGJpbmZvW2ldLnN1YmNvbm5pbmZvLAotCQkJCQkgZGJpbmZvcy50d29fcGhhc2UgPyAidHJ1ZSIg OiAiZmFsc2UiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJICJwdWJsaXNoZXIoJWQpOiBwdWJsaWNhdGlvbjogJXMgOyByZXBsaWNhdGlv biBzbG90OiAlcyA7IGNvbm5lY3Rpb24gc3RyaW5nOiAlcyIsIGksCisJCQkJCQkgZGJpbmZvW2ld LnB1Ym5hbWUgPyBkYmluZm9baV0ucHVibmFtZSA6ICIoYXV0bykiLAorCQkJCQkJIGRiaW5mb1tp XS5yZXBsc2xvdG5hbWUgPyBkYmluZm9baV0ucmVwbHNsb3RuYW1lIDogIihhdXRvKSIsCisJCQkJ CQkgZGJpbmZvW2ldLnB1YmNvbm5pbmZvKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVC VUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJzdWJzY3JpYmVyKCVkKTogc3Vic2NyaXB0aW9u OiAlcyA7IGNvbm5lY3Rpb24gc3RyaW5nOiAlcywgdHdvX3BoYXNlOiAlcyIsIGksCisJCQkJCQkg ZGJpbmZvW2ldLnN1Ym5hbWUgPyBkYmluZm9baV0uc3VibmFtZSA6ICIoYXV0bykiLAorCQkJCQkJ IGRiaW5mb1tpXS5zdWJjb25uaW5mbywKKwkJCQkJCSBkYmluZm9zLnR3b19waGFzZSA/ICJ0cnVl IiA6ICJmYWxzZSIpOwogCiAJCWlmIChudW1fcHVicyA+IDApCiAJCQlwdWJjZWxsID0gcHViY2Vs bC0+bmV4dDsKQEAgLTU4Miw4ICs2MzMsOSBAQCBjb25uZWN0X2RhdGFiYXNlKGNvbnN0IGNoYXIg KmNvbm5pbmZvLCBib29sIGV4aXRfb25fZXJyb3IpCiAJY29ubiA9IFBRY29ubmVjdGRiKGNvbm5p bmZvKTsKIAlpZiAoUFFzdGF0dXMoY29ubikgIT0gQ09OTkVDVElPTl9PSykKIAl7Ci0JCXBnX2xv Z19lcnJvcigiY29ubmVjdGlvbiB0byBkYXRhYmFzZSBmYWlsZWQ6ICVzIiwKLQkJCQkJIFBRZXJy b3JNZXNzYWdlKGNvbm4pKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xP R19QUklNQVJZLAorCQkJCQkJICJjb25uZWN0aW9uIHRvIGRhdGFiYXNlIGZhaWxlZDogJXMiLAor CQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKIAkJUFFmaW5pc2goY29ubik7CiAKIAkJaWYg KGV4aXRfb25fZXJyb3IpCkBAIC01OTUsOCArNjQ3LDkgQEAgY29ubmVjdF9kYXRhYmFzZShjb25z dCBjaGFyICpjb25uaW5mbywgYm9vbCBleGl0X29uX2Vycm9yKQogCXJlcyA9IFBRZXhlYyhjb25u LCBBTFdBWVNfU0VDVVJFX1NFQVJDSF9QQVRIX1NRTCk7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJl cykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgY2xl YXIgXCJzZWFyY2hfcGF0aFwiOiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMp KTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJ CQkJICJjb3VsZCBub3QgY2xlYXIgXCJzZWFyY2hfcGF0aFwiOiAlcyIsCisJCQkJCQkgUFFyZXN1 bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCVBRY2xlYXIocmVzKTsKIAkJUFFmaW5pc2goY29ubik7 CiAKQEAgLTYzNSwyNyArNjg4LDMxIEBAIGdldF9wcmltYXJ5X3N5c2lkKGNvbnN0IGNoYXIgKmNv bm5pbmZvKQogCVBHcmVzdWx0ICAgKnJlczsKIAl1aW50NjQJCXN5c2lkOwogCi0JcGdfbG9nX2lu Zm8oImdldHRpbmcgc3lzdGVtIGlkZW50aWZpZXIgZnJvbSBwdWJsaXNoZXIiKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJnZXR0aW5nIHN5 c3RlbSBpZGVudGlmaWVyIGZyb20gcHVibGlzaGVyIik7CiAKIAljb25uID0gY29ubmVjdF9kYXRh YmFzZShjb25uaW5mbywgdHJ1ZSk7CiAKIAlyZXMgPSBQUWV4ZWMoY29ubiwgIlNFTEVDVCBzeXN0 ZW1faWRlbnRpZmllciBGUk9NIHBnX2NhdGFsb2cucGdfY29udHJvbF9zeXN0ZW0oKSIpOwogCWlm IChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19l cnJvcigiY291bGQgbm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjogJXMiLAotCQkJCQkgUFFyZXN1 bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjog JXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIAlpZiAoUFFudHVwbGVzKHJlcykgIT0gMSkKIAl7Ci0J CXBnX2xvZ19lcnJvcigiY291bGQgbm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjogZ290ICVkIHJv d3MsIGV4cGVjdGVkICVkIHJvdyIsCi0JCQkJCSBQUW50dXBsZXMocmVzKSwgMSk7CisJCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQg bm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjogZ290ICVkIHJvd3MsIGV4cGVjdGVkICVkIHJvdyIs CisJCQkJCQkgUFFudHVwbGVzKHJlcyksIDEpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4s IHRydWUpOwogCX0KIAogCXN5c2lkID0gc3RydG91NjQoUFFnZXR2YWx1ZShyZXMsIDAsIDApLCBO VUxMLCAxMCk7CiAKLQlwZ19sb2dfaW5mbygic3lzdGVtIGlkZW50aWZpZXIgaXMgJSIgUFJJdTY0 ICIgb24gcHVibGlzaGVyIiwgc3lzaWQpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8s IFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN5c3RlbSBpZGVudGlmaWVyIGlzICUiIFBSSXU2NCAi IG9uIHB1Ymxpc2hlciIsIHN5c2lkKTsKIAogCVBRY2xlYXIocmVzKTsKIAlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIGZhbHNlKTsKQEAgLTY3NSw3ICs3MzIsOCBAQCBnZXRfc3RhbmRieV9zeXNp ZChjb25zdCBjaGFyICpkYXRhZGlyKQogCWJvb2wJCWNyY19vazsKIAl1aW50NjQJCXN5c2lkOwog Ci0JcGdfbG9nX2luZm8oImdldHRpbmcgc3lzdGVtIGlkZW50aWZpZXIgZnJvbSBzdWJzY3JpYmVy Iik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJ CSAiZ2V0dGluZyBzeXN0ZW0gaWRlbnRpZmllciBmcm9tIHN1YnNjcmliZXIiKTsKIAogCWNmID0g Z2V0X2NvbnRyb2xmaWxlKGRhdGFkaXIsICZjcmNfb2spOwogCWlmICghY3JjX29rKQpAQCAtNjgz LDcgKzc0MSw4IEBAIGdldF9zdGFuZGJ5X3N5c2lkKGNvbnN0IGNoYXIgKmRhdGFkaXIpCiAKIAlz eXNpZCA9IGNmLT5zeXN0ZW1faWRlbnRpZmllcjsKIAotCXBnX2xvZ19pbmZvKCJzeXN0ZW0gaWRl bnRpZmllciBpcyAlIiBQUkl1NjQgIiBvbiBzdWJzY3JpYmVyIiwgc3lzaWQpOworCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN5c3RlbSBpZGVu dGlmaWVyIGlzICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLCBzeXNpZCk7CiAKIAlwZ19mcmVl KGNmKTsKIApAQCAtNzA0LDcgKzc2Myw4IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0 IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCiAJY2hhcgkgICAqY21kX3N0 cjsKIAotCXBnX2xvZ19pbmZvKCJtb2RpZnlpbmcgc3lzdGVtIGlkZW50aWZpZXIgb2Ygc3Vic2Ny aWJlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAor CQkJCQkgIm1vZGlmeWluZyBzeXN0ZW0gaWRlbnRpZmllciBvZiBzdWJzY3JpYmVyIik7CiAKIAlj ZiA9IGdldF9jb250cm9sZmlsZShzdWJzY3JpYmVyX2RpciwgJmNyY19vayk7CiAJaWYgKCFjcmNf b2spCkBAIC03MjEsMzEgKzc4MSwzNyBAQCBtb2RpZnlfc3Vic2NyaWJlcl9zeXNpZChjb25zdCBz dHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCkKIAljZi0+c3lzdGVtX2lkZW50aWZp ZXIgfD0gZ2V0cGlkKCkgJiAweEZGRjsKIAogCWlmIChkcnlfcnVuKQotCQlwZ19sb2dfaW5mbygi ZHJ5LXJ1bjogd291bGQgc2V0IHN5c3RlbSBpZGVudGlmaWVyIHRvICUiIFBSSXU2NCAiIG9uIHN1 YnNjcmliZXIiLAotCQkJCQljZi0+c3lzdGVtX2lkZW50aWZpZXIpOworCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQg c2V0IHN5c3RlbSBpZGVudGlmaWVyIHRvICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLAorCQkJ CQkJIGNmLT5zeXN0ZW1faWRlbnRpZmllcik7CiAJZWxzZQogCXsKIAkJdXBkYXRlX2NvbnRyb2xm aWxlKHN1YnNjcmliZXJfZGlyLCBjZiwgdHJ1ZSk7Ci0JCXBnX2xvZ19pbmZvKCJzeXN0ZW0gaWRl bnRpZmllciBpcyAlIiBQUkl1NjQgIiBvbiBzdWJzY3JpYmVyIiwKLQkJCQkJY2YtPnN5c3RlbV9p ZGVudGlmaWVyKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1B UlksCisJCQkJCQkgInN5c3RlbSBpZGVudGlmaWVyIGlzICUiIFBSSXU2NCAiIG9uIHN1YnNjcmli ZXIiLAorCQkJCQkJIGNmLT5zeXN0ZW1faWRlbnRpZmllcik7CiAJfQogCiAJaWYgKGRyeV9ydW4p Ci0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBydW4gcGdfcmVzZXR3YWwgb24gdGhlIHN1 YnNjcmliZXIiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1B UlksCisJCQkJCQkgImRyeS1ydW46IHdvdWxkIHJ1biBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2Ny aWJlciIpOwogCWVsc2UKLQkJcGdfbG9nX2luZm8oInJ1bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhl IHN1YnNjcmliZXIiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkgInJ1bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhlIHN1YnNjcmliZXIiKTsK IAogCWNtZF9zdHIgPSBwc3ByaW50ZigiXCIlc1wiIC1EIFwiJXNcIiA+IFwiJXNcIiIsIHBnX3Jl c2V0d2FsX3BhdGgsCiAJCQkJCSAgIHN1YnNjcmliZXJfZGlyLCBERVZOVUxMKTsKIAotCXBnX2xv Z19kZWJ1ZygicGdfcmVzZXR3YWwgY29tbWFuZCBpczogJXMiLCBjbWRfc3RyKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAicGdfcmVzZXR3 YWwgY29tbWFuZCBpczogJXMiLCBjbWRfc3RyKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCWlu dAkJCXJjID0gc3lzdGVtKGNtZF9zdHIpOwogCiAJCWlmIChyYyA9PSAwKQotCQkJcGdfbG9nX2lu Zm8oInN1Y2Nlc3NmdWxseSByZXNldCBXQUwgb24gdGhlIHN1YnNjcmliZXIiKTsKKwkJCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAic3VjY2Vz c2Z1bGx5IHJlc2V0IFdBTCBvbiB0aGUgc3Vic2NyaWJlciIpOwogCQllbHNlCiAJCQlwZ19mYXRh bCgiY291bGQgbm90IHJlc2V0IFdBTCBvbiBzdWJzY3JpYmVyOiAlcyIsIHdhaXRfcmVzdWx0X3Rv X3N0cihyYykpOwogCX0KQEAgLTc3MSwxNSArODM3LDE3IEBAIGdlbmVyYXRlX29iamVjdF9uYW1l KFBHY29ubiAqY29ubikKIAkJCQkgIldIRVJFIGRhdG5hbWUgPSBwZ19jYXRhbG9nLmN1cnJlbnRf ZGF0YWJhc2UoKSIpOwogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19P SykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFpbiBkYXRhYmFzZSBPSUQ6ICVz IiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4g ZGF0YWJhc2UgT0lEOiAlcyIsCisJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJ CWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQogCiAJaWYgKFBRbnR1cGxlcyhy ZXMpICE9IDEpCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gZGF0YWJhc2Ug T0lEOiBnb3QgJWQgcm93cywgZXhwZWN0ZWQgJWQgcm93IiwKLQkJCQkJIFBRbnR1cGxlcyhyZXMp LCAxKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAor CQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIGRhdGFiYXNlIE9JRDogZ290ICVkIHJvd3MsIGV4cGVj dGVkICVkIHJvdyIsCisJCQkJCQkgUFFudHVwbGVzKHJlcyksIDEpOwogCQlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtODE5LDggKzg4Nyw5IEBAIGZpbmRfcHVibGlj YXRpb24oUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpwdWJuYW1lLCBjb25zdCBjaGFyICpkYm5h bWUpCiAJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJaWYgKFBRcmVzdWx0U3RhdHVz KHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qg ZmluZCBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCi0JCQkJCSBw dWJuYW1lLCBkYm5hbWUsIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3QgZmluZCBw dWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCisJCQkJCQkgcHVibmFt ZSwgZGJuYW1lLCBQUWVycm9yTWVzc2FnZShjb25uKSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2Uo Y29ubiwgdHJ1ZSk7CiAJfQogCkBAIC04NzMsOCArOTQyLDkgQEAgc2V0dXBfcHVibGlzaGVyKHN0 cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCQlpZiAoZmluZF9wdWJsaWNhdGlvbihjb25u LCBkYmluZm9baV0ucHVibmFtZSwgZGJpbmZvW2ldLmRibmFtZSkpCiAJCXsKIAkJCS8qIFJldXNl IGV4aXN0aW5nIHB1YmxpY2F0aW9uIG9uIHB1Ymxpc2hlci4gKi8KLQkJCXBnX2xvZ19pbmZvKCJ1 c2UgZXhpc3RpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJ CQlkYmluZm9baV0ucHVibmFtZSwgZGJpbmZvW2ldLmRibmFtZSk7CisJCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgInVzZSBleGlzdGluZyBw dWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCQkgZGJpbmZvW2ld LnB1Ym5hbWUsIGRiaW5mb1tpXS5kYm5hbWUpOwogCQkJLyogRG9uJ3QgcmVtb3ZlIHByZS1leGlz dGluZyBwdWJsaWNhdGlvbiBpZiBhbiBlcnJvciBvY2N1cnMuICovCiAJCQlkYmluZm9baV0ubWFk ZV9wdWJsaWNhdGlvbiA9IGZhbHNlOwogCQl9CkBAIC05MTIsOCArOTgyLDkgQEAgc2V0dXBfcHVi bGlzaGVyKHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCQkJcmVzID0gUFFleGVjKGNv bm4sICJTRUxFQ1QgcGdfbG9nX3N0YW5kYnlfc25hcHNob3QoKSIpOwogCQkJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCQkJewotCQkJCXBnX2xvZ19lcnJvcigi Y291bGQgbm90IHdyaXRlIGFuIGFkZGl0aW9uYWwgV0FMIHJlY29yZDogJXMiLAotCQkJCQkJCSBQ UXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19F UlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJCSAiY291bGQgbm90IHdyaXRlIGFuIGFkZGl0 aW9uYWwgV0FMIHJlY29yZDogJXMiLAorCQkJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVz KSk7CiAJCQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJCX0KIAkJCVBRY2xl YXIocmVzKTsKQEAgLTkzOCw4ICsxMDA5LDkgQEAgc2VydmVyX2lzX2luX3JlY292ZXJ5KFBHY29u biAqY29ubikKIAogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykK IAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFpbiByZWNvdmVyeSBwcm9ncmVzczog JXMiLAotCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IG9idGFp biByZWNvdmVyeSBwcm9ncmVzczogJXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJl cykpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtOTcxLDcg KzEwNDMsOCBAQCBjaGVja19wdWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpk YmluZm8pCiAJaW50CQkJbWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9uczsKIAljaGFyCSAgICptYXhf c2xvdF93YWxfa2VlcF9zaXplOwogCi0JcGdfbG9nX2luZm8oImNoZWNraW5nIHNldHRpbmdzIG9u IHB1Ymxpc2hlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklN QVJZLAorCQkJCQkgImNoZWNraW5nIHNldHRpbmdzIG9uIHB1Ymxpc2hlciIpOwogCiAJY29ubiA9 IGNvbm5lY3RfZGF0YWJhc2UoZGJpbmZvWzBdLnB1YmNvbm5pbmZvLCB0cnVlKTsKIApAQCAtOTgx LDcgKzEwNTQsOCBAQCBjaGVja19wdWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZv ICpkYmluZm8pCiAJICovCiAJaWYgKHNlcnZlcl9pc19pbl9yZWNvdmVyeShjb25uKSkKIAl7Ci0J CXBnX2xvZ19lcnJvcigicHJpbWFyeSBzZXJ2ZXIgY2Fubm90IGJlIGluIHJlY292ZXJ5Iik7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAi cHJpbWFyeSBzZXJ2ZXIgY2Fubm90IGJlIGluIHJlY292ZXJ5Iik7CiAJCWRpc2Nvbm5lY3RfZGF0 YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQogCkBAIC0xMDA3LDggKzEwODEsOSBAQCBjaGVja19wdWJs aXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlpZiAoUFFyZXN1 bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCiAJewotCQlwZ19sb2dfZXJyb3IoImNv dWxkIG5vdCBvYnRhaW4gcHVibGlzaGVyIHNldHRpbmdzOiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVy cm9yTWVzc2FnZShyZXMpKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xP R19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHB1Ymxpc2hlciBzZXR0aW5nczog JXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMTAyMiw0OCArMTA5Nyw2MyBAQCBjaGVja19w dWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlQUWNsZWFy KHJlcyk7CiAKLQlwZ19sb2dfZGVidWcoInB1Ymxpc2hlcjogd2FsX2xldmVsOiAlcyIsIHdhbF9s ZXZlbCk7Ci0JcGdfbG9nX2RlYnVnKCJwdWJsaXNoZXI6IG1heF9yZXBsaWNhdGlvbl9zbG90czog JWQiLCBtYXhfcmVwc2xvdHMpOwotCXBnX2xvZ19kZWJ1ZygicHVibGlzaGVyOiBjdXJyZW50IHJl cGxpY2F0aW9uIHNsb3RzOiAlZCIsIGN1cl9yZXBzbG90cyk7Ci0JcGdfbG9nX2RlYnVnKCJwdWJs aXNoZXI6IG1heF93YWxfc2VuZGVyczogJWQiLCBtYXhfd2Fsc2VuZGVycyk7Ci0JcGdfbG9nX2Rl YnVnKCJwdWJsaXNoZXI6IGN1cnJlbnQgd2FsIHNlbmRlcnM6ICVkIiwgY3VyX3dhbHNlbmRlcnMp OwotCXBnX2xvZ19kZWJ1ZygicHVibGlzaGVyOiBtYXhfcHJlcGFyZWRfdHJhbnNhY3Rpb25zOiAl ZCIsCi0JCQkJIG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMpOwotCXBnX2xvZ19kZWJ1ZygicHVi bGlzaGVyOiBtYXhfc2xvdF93YWxfa2VlcF9zaXplOiAlcyIsCi0JCQkJIG1heF9zbG90X3dhbF9r ZWVwX3NpemUpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJICJwdWJsaXNoZXI6IHdhbF9sZXZlbDogJXMiLCB3YWxfbGV2ZWwpOworCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNo ZXI6IG1heF9yZXBsaWNhdGlvbl9zbG90czogJWQiLCBtYXhfcmVwc2xvdHMpOworCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6 IGN1cnJlbnQgcmVwbGljYXRpb24gc2xvdHM6ICVkIiwgY3VyX3JlcHNsb3RzKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAicHVibGlzaGVy OiBtYXhfd2FsX3NlbmRlcnM6ICVkIiwgbWF4X3dhbHNlbmRlcnMpOworCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IGN1cnJl bnQgd2FsIHNlbmRlcnM6ICVkIiwgY3VyX3dhbHNlbmRlcnMpOworCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IG1heF9wcmVw YXJlZF90cmFuc2FjdGlvbnM6ICVkIiwKKwkJCQkJIG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMp OworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ ICJwdWJsaXNoZXI6IG1heF9zbG90X3dhbF9rZWVwX3NpemU6ICVzIiwKKwkJCQkJIG1heF9zbG90 X3dhbF9rZWVwX3NpemUpOwogCiAJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCBmYWxzZSk7CiAK IAlpZiAoc3RyY21wKHdhbF9sZXZlbCwgIm1pbmltYWwiKSA9PSAwKQogCXsKLQkJcGdfbG9nX2Vy cm9yKCJwdWJsaXNoZXIgcmVxdWlyZXMgXCJ3YWxfbGV2ZWxcIiA+PSBcInJlcGxpY2FcIiIpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkg InB1Ymxpc2hlciByZXF1aXJlcyBcIndhbF9sZXZlbFwiID49IFwicmVwbGljYVwiIik7CiAJCWZh aWxlZCA9IHRydWU7CiAJfQogCiAJaWYgKG1heF9yZXBzbG90cyAtIGN1cl9yZXBzbG90cyA8IG51 bV9kYnMpCiAJewotCQlwZ19sb2dfZXJyb3IoInB1Ymxpc2hlciByZXF1aXJlcyAlZCByZXBsaWNh dGlvbiBzbG90cywgYnV0IG9ubHkgJWQgcmVtYWluIiwKLQkJCQkJIG51bV9kYnMsIG1heF9yZXBz bG90cyAtIGN1cl9yZXBzbG90cyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJbmNyZWFzZSB0aGUg Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkg ICJtYXhfcmVwbGljYXRpb25fc2xvdHMiLCBjdXJfcmVwc2xvdHMgKyBudW1fZGJzKTsKKwkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJwdWJs aXNoZXIgcmVxdWlyZXMgJWQgcmVwbGljYXRpb24gc2xvdHMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIs CisJCQkJCQkgbnVtX2RicywgbWF4X3JlcHNsb3RzIC0gY3VyX3JlcHNsb3RzKTsKKwkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJJbmNyZWFzZSB0 aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCisJCQkJ CQkgIm1heF9yZXBsaWNhdGlvbl9zbG90cyIsIGN1cl9yZXBzbG90cyArIG51bV9kYnMpOwogCQlm YWlsZWQgPSB0cnVlOwogCX0KIAogCWlmIChtYXhfd2Fsc2VuZGVycyAtIGN1cl93YWxzZW5kZXJz IDwgbnVtX2RicykKIAl7Ci0JCXBnX2xvZ19lcnJvcigicHVibGlzaGVyIHJlcXVpcmVzICVkIFdB TCBzZW5kZXIgcHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkgbnVtX2Ricywg bWF4X3dhbHNlbmRlcnMgLSBjdXJfd2Fsc2VuZGVycyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJ bmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVk LiIsCi0JCQkJCQkgICJtYXhfd2FsX3NlbmRlcnMiLCBjdXJfd2Fsc2VuZGVycyArIG51bV9kYnMp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkgInB1Ymxpc2hlciByZXF1aXJlcyAlZCBXQUwgc2VuZGVyIHByb2Nlc3NlcywgYnV0IG9ubHkg JWQgcmVtYWluIiwKKwkJCQkJCSBudW1fZGJzLCBtYXhfd2Fsc2VuZGVycyAtIGN1cl93YWxzZW5k ZXJzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJ CQkJICJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxl YXN0ICVkLiIsCisJCQkJCQkgIm1heF93YWxfc2VuZGVycyIsIGN1cl93YWxzZW5kZXJzICsgbnVt X2Ricyk7CiAJCWZhaWxlZCA9IHRydWU7CiAJfQogCiAJaWYgKG1heF9wcmVwYXJlZF90cmFuc2Fj dGlvbnMgIT0gMCAmJiAhZGJpbmZvcy50d29fcGhhc2UpCiAJewotCQlwZ19sb2dfd2FybmluZygi dHdvX3BoYXNlIG9wdGlvbiB3aWxsIG5vdCBiZSBlbmFibGVkIGZvciByZXBsaWNhdGlvbiBzbG90 cyIpOwotCQlwZ19sb2dfd2FybmluZ19kZXRhaWwoIlN1YnNjcmlwdGlvbnMgd2lsbCBiZSBjcmVh dGVkIHdpdGggdGhlIHR3b19waGFzZSBvcHRpb24gZGlzYWJsZWQuICAiCi0JCQkJCQkJICAiUHJl cGFyZWQgdHJhbnNhY3Rpb25zIHdpbGwgYmUgcmVwbGljYXRlZCBhdCBDT01NSVQgUFJFUEFSRUQu Iik7Ci0JCXBnX2xvZ193YXJuaW5nX2hpbnQoIllvdSBjYW4gdXNlIHRoZSBjb21tYW5kLWxpbmUg b3B0aW9uIC0tZW5hYmxlLXR3by1waGFzZSB0byBlbmFibGUgdHdvX3BoYXNlLiIpOworCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAidHdv X3BoYXNlIG9wdGlvbiB3aWxsIG5vdCBiZSBlbmFibGVkIGZvciByZXBsaWNhdGlvbiBzbG90cyIp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfREVUQUlMLAorCQkJ CQkJICJTdWJzY3JpcHRpb25zIHdpbGwgYmUgY3JlYXRlZCB3aXRoIHRoZSB0d29fcGhhc2Ugb3B0 aW9uIGRpc2FibGVkLiAgIgorCQkJCQkJICJQcmVwYXJlZCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBy ZXBsaWNhdGVkIGF0IENPTU1JVCBQUkVQQVJFRC4iKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19M T0dfV0FSTklORywgUEdfTE9HX0hJTlQsCisJCQkJCQkgIllvdSBjYW4gdXNlIHRoZSBjb21tYW5k LWxpbmUgb3B0aW9uIC0tZW5hYmxlLXR3by1waGFzZSB0byBlbmFibGUgdHdvX3BoYXNlLiIpOwog CX0KIAogCS8qCkBAIC0xMDczLDkgKzExNjMsMTEgQEAgY2hlY2tfcHVibGlzaGVyKGNvbnN0IHN0 cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCSAqLwogCWlmIChkcnlfcnVuICYmIChzdHJj bXAobWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZSwgIi0xIikgIT0gMCkpCiAJewotCQlwZ19sb2dfd2Fy bmluZygicmVxdWlyZWQgV0FMIGNvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGlzaGVyIik7 Ci0JCXBnX2xvZ193YXJuaW5nX2hpbnQoIlNldCB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIg XCIlc1wiIHRvIC0xIHRvIGVuc3VyZSB0aGF0IHJlcXVpcmVkIFdBTCBmaWxlcyBhcmUgbm90IHBy ZW1hdHVyZWx5IHJlbW92ZWQuIiwKLQkJCQkJCQkibWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZSIpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ CSAicmVxdWlyZWQgV0FMIGNvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGlzaGVyIik7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJICJT ZXQgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIFwiJXNcIiB0byAtMSB0byBlbnN1cmUgdGhh dCByZXF1aXJlZCBXQUwgZmlsZXMgYXJlIG5vdCBwcmVtYXR1cmVseSByZW1vdmVkLiIsCisJCQkJ CQkgIm1heF9zbG90X3dhbF9rZWVwX3NpemUiKTsKIAl9CiAKIAlwZ19mcmVlKHdhbF9sZXZlbCk7 CkBAIC0xMTA2LDE0ICsxMTk4LDE2IEBAIGNoZWNrX3N1YnNjcmliZXIoY29uc3Qgc3RydWN0IExv Z2ljYWxSZXBJbmZvICpkYmluZm8pCiAJaW50CQkJbWF4X3JlcGxvcmlnaW5zOwogCWludAkJCW1h eF93cHJvY3M7CiAKLQlwZ19sb2dfaW5mbygiY2hlY2tpbmcgc2V0dGluZ3Mgb24gc3Vic2NyaWJl ciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJ CQkgImNoZWNraW5nIHNldHRpbmdzIG9uIHN1YnNjcmliZXIiKTsKIAogCWNvbm4gPSBjb25uZWN0 X2RhdGFiYXNlKGRiaW5mb1swXS5zdWJjb25uaW5mbywgdHJ1ZSk7CiAKIAkvKiBUaGUgdGFyZ2V0 IHNlcnZlciBtdXN0IGJlIGEgc3RhbmRieSAqLwogCWlmICghc2VydmVyX2lzX2luX3JlY292ZXJ5 KGNvbm4pKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJ0YXJnZXQgc2VydmVyIG11c3QgYmUgYSBzdGFu ZGJ5Iik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAidGFyZ2V0IHNlcnZlciBtdXN0IGJlIGEgc3RhbmRieSIpOwogCQlkaXNjb25uZWN0 X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMTEzNyw4ICsxMjMxLDkgQEAgY2hlY2tf c3Vic2NyaWJlcihjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCWlmIChQ UXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJv cigiY291bGQgbm90IG9idGFpbiBzdWJzY3JpYmVyIHNldHRpbmdzOiAlcyIsCi0JCQkJCSBQUXJl c3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1Is IFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHN1YnNjcmliZXIgc2V0 dGluZ3M6ICVzIiwKKwkJCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJZGlzY29u bmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAl9CiAKQEAgLTExNDgsMTIgKzEyNDMsMTYgQEAg Y2hlY2tfc3Vic2NyaWJlcihjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlp ZiAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCAzLCAwKSwgIiIpICE9IDApCiAJCXByaW1hcnlfc2xv dF9uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCAzLCAwKSk7CiAKLQlwZ19sb2dfZGVi dWcoInN1YnNjcmliZXI6IG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnM6ICVkIiwKLQkJ CQkgbWF4X2xyd29ya2Vycyk7Ci0JcGdfbG9nX2RlYnVnKCJzdWJzY3JpYmVyOiBtYXhfYWN0aXZl X3JlcGxpY2F0aW9uX29yaWdpbnM6ICVkIiwgbWF4X3JlcGxvcmlnaW5zKTsKLQlwZ19sb2dfZGVi dWcoInN1YnNjcmliZXI6IG1heF93b3JrZXJfcHJvY2Vzc2VzOiAlZCIsIG1heF93cHJvY3MpOwor CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJz dWJzY3JpYmVyOiBtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzOiAlZCIsCisJCQkJCSBt YXhfbHJ3b3JrZXJzKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BS SU1BUlksCisJCQkJCSAic3Vic2NyaWJlcjogbWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5z OiAlZCIsIG1heF9yZXBsb3JpZ2lucyk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcs IFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN1YnNjcmliZXI6IG1heF93b3JrZXJfcHJvY2Vzc2Vz OiAlZCIsIG1heF93cHJvY3MpOwogCWlmIChwcmltYXJ5X3Nsb3RfbmFtZSkKLQkJcGdfbG9nX2Rl YnVnKCJzdWJzY3JpYmVyOiBwcmltYXJ5X3Nsb3RfbmFtZTogJXMiLCBwcmltYXJ5X3Nsb3RfbmFt ZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCSAic3Vic2NyaWJlcjogcHJpbWFyeV9zbG90X25hbWU6ICVzIiwgcHJpbWFyeV9zbG90X25h bWUpOwogCiAJUFFjbGVhcihyZXMpOwogCkBAIC0xMTYxLDI4ICsxMjYwLDM0IEBAIGNoZWNrX3N1 YnNjcmliZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlpZiAobWF4 X3JlcGxvcmlnaW5zIDwgbnVtX2RicykKIAl7Ci0JCXBnX2xvZ19lcnJvcigic3Vic2NyaWJlciBy ZXF1aXJlcyAlZCBhY3RpdmUgcmVwbGljYXRpb24gb3JpZ2lucywgYnV0IG9ubHkgJWQgcmVtYWlu IiwKLQkJCQkJIG51bV9kYnMsIG1heF9yZXBsb3JpZ2lucyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50 KCJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0 ICVkLiIsCi0JCQkJCQkgICJtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMiLCBudW1fZGJz KTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJ CQkJICJzdWJzY3JpYmVyIHJlcXVpcmVzICVkIGFjdGl2ZSByZXBsaWNhdGlvbiBvcmlnaW5zLCBi dXQgb25seSAlZCByZW1haW4iLAorCQkJCQkJIG51bV9kYnMsIG1heF9yZXBsb3JpZ2lucyk7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiSW5j cmVhc2UgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIFwiJXNcIiB0byBhdCBsZWFzdCAlZC4i LAorCQkJCQkJICJtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMiLCBudW1fZGJzKTsKIAkJ ZmFpbGVkID0gdHJ1ZTsKIAl9CiAKIAlpZiAobWF4X2xyd29ya2VycyA8IG51bV9kYnMpCiAJewot CQlwZ19sb2dfZXJyb3IoInN1YnNjcmliZXIgcmVxdWlyZXMgJWQgbG9naWNhbCByZXBsaWNhdGlv biB3b3JrZXJzLCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkgbnVtX2RicywgbWF4X2xyd29y a2Vycyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBw YXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkgICJtYXhfbG9naWNhbF9y ZXBsaWNhdGlvbl93b3JrZXJzIiwgbnVtX2Ricyk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAic3Vic2NyaWJlciByZXF1aXJlcyAlZCBs b2dpY2FsIHJlcGxpY2F0aW9uIHdvcmtlcnMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIsCisJCQkJCQkg bnVtX2RicywgbWF4X2xyd29ya2Vycyk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9S LCBQR19MT0dfSElOVCwKKwkJCQkJCSAiSW5jcmVhc2UgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVyIFwiJXNcIiB0byBhdCBsZWFzdCAlZC4iLAorCQkJCQkJICJtYXhfbG9naWNhbF9yZXBsaWNh dGlvbl93b3JrZXJzIiwgbnVtX2Ricyk7CiAJCWZhaWxlZCA9IHRydWU7CiAJfQogCiAJaWYgKG1h eF93cHJvY3MgPCBudW1fZGJzICsgMSkKIAl7Ci0JCXBnX2xvZ19lcnJvcigic3Vic2NyaWJlciBy ZXF1aXJlcyAlZCB3b3JrZXIgcHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkg bnVtX2RicyArIDEsIG1heF93cHJvY3MpOwotCQlwZ19sb2dfZXJyb3JfaGludCgiSW5jcmVhc2Ug dGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIFwiJXNcIiB0byBhdCBsZWFzdCAlZC4iLAotCQkJ CQkJICAibWF4X3dvcmtlcl9wcm9jZXNzZXMiLCBudW1fZGJzICsgMSk7CisJCXBnX2NyZWF0ZXN1 Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAic3Vic2NyaWJlciBy ZXF1aXJlcyAlZCB3b3JrZXIgcHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4iLAorCQkJCQkJ IG51bV9kYnMgKyAxLCBtYXhfd3Byb2NzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJS T1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJh bWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCisJCQkJCQkgIm1heF93b3JrZXJfcHJvY2Vz c2VzIiwgbnVtX2RicyArIDEpOwogCQlmYWlsZWQgPSB0cnVlOwogCX0KIApAQCAtMTIxNSwxOSAr MTMyMCwyMiBAQCBkcm9wX2V4aXN0aW5nX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0 IGNoYXIgKnN1Ym5hbWUsIGNvbnN0IGNoYXIgKmRibmFtZQogCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIERST1AgU1VCU0NSSVBUSU9OICVzOyIsIHN1Ym5hbWUpOwogCiAJaWYgKGRyeV9ydW4p Ci0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBkcm9wIHN1YnNjcmlwdGlvbiBcIiVzXCIg aW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc3VibmFtZSwgZGJuYW1lKTsKKwkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImRyeS1ydW46IHdv dWxkIGRyb3Agc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJ IHN1Ym5hbWUsIGRibmFtZSk7CiAJZWxzZQogCXsKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIHN1 YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc3VibmFtZSwgZGJu YW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCQkgImRyb3BwaW5nIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwK KwkJCQkJCSBzdWJuYW1lLCBkYm5hbWUpOwogCiAJCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeS0+ ZGF0YSk7CiAKIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykK IAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgZHJvcCBzdWJzY3JpcHRpb24gXCIlc1wi OiAlcyIsCi0JCQkJCQkgc3VibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJj b3VsZCBub3QgZHJvcCBzdWJzY3JpcHRpb24gXCIlc1wiOiAlcyIsCisJCQkJCQkJIHN1Ym5hbWUs IFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25u LCB0cnVlKTsKIAkJfQogCkBAIC0xMjYxLDggKzEzNjksOSBAQCBjaGVja19hbmRfZHJvcF9leGlz dGluZ19zdWJzY3JpcHRpb25zKFBHY29ubiAqY29ubiwKIAogCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9i dGFpbiBwcmUtZXhpc3Rpbmcgc3Vic2NyaXB0aW9uczogJXMiLAotCQkJCQkgUFFyZXN1bHRFcnJv ck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IG9idGFpbiBwcmUtZXhpc3Rpbmcgc3Vic2NyaXB0 aW9uczogJXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25u ZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMTM3Myw3ICsxNDgyLDggQEAgc2V0 dXBfcmVjb3ZlcnkoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8sIGNvbnN0IGNo YXIgKmRhdGFkaXIsIGNvbnN0IGMKIAkJCQkJCSAgbHNuKTsKIAl9CiAKLQlwZ19sb2dfZGVidWco InJlY292ZXJ5IHBhcmFtZXRlcnM6XG4lcyIsIHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5kYXRhKTsK KwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAi cmVjb3ZlcnkgcGFyYW1ldGVyczpcbiVzIiwgcmVjb3Zlcnljb25mY29udGVudHMtPmRhdGEpOwog CiAJaWYgKCFkcnlfcnVuKQogCXsKQEAgLTE0MjcsOSArMTUzNywxMSBAQCBkcm9wX3ByaW1hcnlf cmVwbGljYXRpb25fc2xvdChzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbywgY29uc3QgY2hh ciAqc2xvdG5hbQogCX0KIAllbHNlCiAJewotCQlwZ19sb2dfd2FybmluZygiY291bGQgbm90IGRy b3AgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb24gcHJpbWFyeSIsCi0JCQkJCSAgIHNsb3RuYW1l KTsKLQkJcGdfbG9nX3dhcm5pbmdfaGludCgiRHJvcCB0aGlzIHJlcGxpY2F0aW9uIHNsb3Qgc29v biB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVzLiIpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IGRyb3Ag cmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb24gcHJpbWFyeSIsCisJCQkJCQkgc2xvdG5hbWUpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwKKwkJCQkJCSAi RHJvcCB0aGlzIHJlcGxpY2F0aW9uIHNsb3Qgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FM IGZpbGVzLiIpOwogCX0KIH0KIApAQCAtMTQ2MSw5ICsxNTczLDExIEBAIGRyb3BfZmFpbG92ZXJf cmVwbGljYXRpb25fc2xvdHMoc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJCX0KIAkJ ZWxzZQogCQl7Ci0JCQlwZ19sb2dfd2FybmluZygiY291bGQgbm90IG9idGFpbiBmYWlsb3ZlciBy ZXBsaWNhdGlvbiBzbG90IGluZm9ybWF0aW9uOiAlcyIsCi0JCQkJCQkgICBQUXJlc3VsdEVycm9y TWVzc2FnZShyZXMpKTsKLQkJCXBnX2xvZ193YXJuaW5nX2hpbnQoIkRyb3AgdGhlIGZhaWxvdmVy IHJlcGxpY2F0aW9uIHNsb3RzIG9uIHN1YnNjcmliZXIgc29vbiB0byBhdm9pZCByZXRlbnRpb24g b2YgV0FMIGZpbGVzLiIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdf TE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIGZhaWxvdmVyIHJlcGxpY2F0 aW9uIHNsb3QgaW5mb3JtYXRpb246ICVzIiwKKwkJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2Uo cmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwK KwkJCQkJCQkgIkRyb3AgdGhlIGZhaWxvdmVyIHJlcGxpY2F0aW9uIHNsb3RzIG9uIHN1YnNjcmli ZXIgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVzLiIpOwogCQl9CiAKIAkJUFFj bGVhcihyZXMpOwpAQCAtMTQ3MSw4ICsxNTg1LDEwIEBAIGRyb3BfZmFpbG92ZXJfcmVwbGljYXRp b25fc2xvdHMoc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJfQogCWVsc2UKIAl7Ci0J CXBnX2xvZ193YXJuaW5nKCJjb3VsZCBub3QgZHJvcCBmYWlsb3ZlciByZXBsaWNhdGlvbiBzbG90 Iik7Ci0JCXBnX2xvZ193YXJuaW5nX2hpbnQoIkRyb3AgdGhlIGZhaWxvdmVyIHJlcGxpY2F0aW9u IHNsb3RzIG9uIHN1YnNjcmliZXIgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVz LiIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAiY291bGQgbm90IGRyb3AgZmFpbG92ZXIgcmVwbGljYXRpb24gc2xvdCIpOworCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiRHJv cCB0aGUgZmFpbG92ZXIgcmVwbGljYXRpb24gc2xvdHMgb24gc3Vic2NyaWJlciBzb29uIHRvIGF2 b2lkIHJldGVudGlvbiBvZiBXQUwgZmlsZXMuIik7CiAJfQogfQogCkBAIC0xNDk0LDExICsxNjEw LDEzIEBAIGNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdjb25uICpjb25uLCBzdHJ1 Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlBc3NlcnQoY29ubiAhPSBOVUxMKTsKIAogCWlm IChkcnlfcnVuKQotCQlwZ19sb2dfaW5mbygiZHJ5LXJ1bjogd291bGQgY3JlYXRlIHRoZSByZXBs aWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHVibGlzaGVyIiwKLQkJ CQkJc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiBvbiBwdWJsaXNoZXIi LAorCQkJCQkJIHNsb3RfbmFtZSwgZGJpbmZvLT5kYm5hbWUpOwogCWVsc2UKLQkJcGdfbG9nX2lu Zm8oImNyZWF0aW5nIHRoZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVz XCIgb24gcHVibGlzaGVyIiwKLQkJCQkJc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjcmVh dGluZyB0aGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIG9uIHB1 Ymxpc2hlciIsCisJCQkJCQkgc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CiAKIAlzbG90X25h bWVfZXNjID0gUFFlc2NhcGVMaXRlcmFsKGNvbm4sIHNsb3RfbmFtZSwgc3RybGVuKHNsb3RfbmFt ZSkpOwogCkBAIC0xNTA5LDE2ICsxNjI3LDE4IEBAIGNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9u X3Nsb3QoUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCVBR ZnJlZW1lbShzbG90X25hbWVfZXNjKTsKIAotCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMi LCBzdHItPmRhdGEpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJICJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CiAKIAlpZiAoIWRyeV9y dW4pCiAJewogCQlyZXMgPSBQUWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAkJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNv dWxkIG5vdCBjcmVhdGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wi OiAlcyIsCi0JCQkJCQkgc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSwKLQkJCQkJCSBQUXJlc3Vs dEVycm9yTWVzc2FnZShyZXMpKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImNvdWxkIG5vdCBjcmVhdGUgcmVwbGljYXRpb24gc2xv dCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCisJCQkJCQkJIHNsb3RfbmFtZSwgZGJp bmZvLT5kYm5hbWUsCisJCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJUFFj bGVhcihyZXMpOwogCQkJZGVzdHJveVBRRXhwQnVmZmVyKHN0cik7CiAJCQlyZXR1cm4gTlVMTDsK QEAgLTE1NDcsMTEgKzE2NjcsMTMgQEAgZHJvcF9yZXBsaWNhdGlvbl9zbG90KFBHY29ubiAqY29u biwgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8sCiAJQXNzZXJ0KGNvbm4gIT0gTlVMTCk7 CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGRyb3AgdGhl IHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCXNsb3Rf bmFtZSwgZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZHJvcCB0aGUgcmVwbGljYXRp b24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBzbG90X25hbWUsIGRi aW5mby0+ZGJuYW1lKTsKIAllbHNlCi0JCXBnX2xvZ19pbmZvKCJkcm9wcGluZyB0aGUgcmVwbGlj YXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc2xvdF9uYW1lLCBk YmluZm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19Q UklNQVJZLAorCQkJCQkJICJkcm9wcGluZyB0aGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4g ZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAog CXNsb3RfbmFtZV9lc2MgPSBQUWVzY2FwZUxpdGVyYWwoY29ubiwgc2xvdF9uYW1lLCBzdHJsZW4o c2xvdF9uYW1lKSk7CiAKQEAgLTE1NTksMTUgKzE2ODEsMTcgQEAgZHJvcF9yZXBsaWNhdGlvbl9z bG90KFBHY29ubiAqY29ubiwgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8sCiAKIAlQUWZy ZWVtZW0oc2xvdF9uYW1lX2VzYyk7CiAKLQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwg c3RyLT5kYXRhKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1B UlksCisJCQkJCSAiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVu KQogCXsKIAkJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3VsdFN0 YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3Vs ZCBub3QgZHJvcCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVz IiwKLQkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2Fn ZShyZXMpKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJCQkgImNvdWxkIG5vdCBkcm9wIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRh dGFiYXNlIFwiJXNcIjogJXMiLAorCQkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lLCBQ UXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJCWRiaW5mby0+bWFkZV9yZXBsc2xvdCA9IGZh bHNlOwkvKiBkb24ndCB0cnkgYWdhaW4uICovCiAJCX0KIApAQCAtMTU4NywyNSArMTcxMSwzMiBA QCBwZ19jdGxfc3RhdHVzKGNvbnN0IGNoYXIgKnBnX2N0bF9jbWQsIGludCByYykKIAl7CiAJCWlm IChXSUZFWElURUQocmMpKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoInBnX2N0bCBmYWlsZWQgd2l0 aCBleGl0IGNvZGUgJWQiLCBXRVhJVFNUQVRVUyhyYykpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQ R19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAicGdfY3RsIGZhaWxlZCB3aXRo IGV4aXQgY29kZSAlZCIsCisJCQkJCQkJIFdFWElUU1RBVFVTKHJjKSk7CiAJCX0KIAkJZWxzZSBp ZiAoV0lGU0lHTkFMRUQocmMpKQogCQl7CiAjaWYgZGVmaW5lZChXSU4zMikKLQkJCXBnX2xvZ19l cnJvcigicGdfY3RsIHdhcyB0ZXJtaW5hdGVkIGJ5IGV4Y2VwdGlvbiAweCVYIiwKLQkJCQkJCSBX VEVSTVNJRyhyYykpOwotCQkJcGdfbG9nX2Vycm9yX2RldGFpbCgiU2VlIEMgaW5jbHVkZSBmaWxl IFwibnRzdGF0dXMuaFwiIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBoZXhhZGVjaW1hbCB2YWx1 ZS4iKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCQkgInBnX2N0bCB3YXMgdGVybWluYXRlZCBieSBleGNlcHRpb24gMHglWCIsCisJCQkJ CQkJIFdURVJNU0lHKHJjKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdf TE9HX0RFVEFJTCwKKwkJCQkJCQkgIlNlZSBDIGluY2x1ZGUgZmlsZSBcIm50c3RhdHVzLmhcIiBm b3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgaGV4YWRlY2ltYWwgdmFsdWUuIik7CiAjZWxzZQotCQkJ cGdfbG9nX2Vycm9yKCJwZ19jdGwgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsICVkOiAlcyIsCi0J CQkJCQkgV1RFUk1TSUcocmMpLCBwZ19zdHJzaWduYWwoV1RFUk1TSUcocmMpKSk7CisJCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJwZ19j dGwgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsICVkOiAlcyIsCisJCQkJCQkJIFdURVJNU0lHKHJj KSwgcGdfc3Ryc2lnbmFsKFdURVJNU0lHKHJjKSkpOwogI2VuZGlmCiAJCX0KIAkJZWxzZQogCQl7 Ci0JCQlwZ19sb2dfZXJyb3IoInBnX2N0bCBleGl0ZWQgd2l0aCB1bnJlY29nbml6ZWQgc3RhdHVz ICVkIiwgcmMpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJCSAicGdfY3RsIGV4aXRlZCB3aXRoIHVucmVjb2duaXplZCBzdGF0dXMgJWQi LCByYyk7CiAJCX0KIAotCQlwZ19sb2dfZXJyb3JfZGV0YWlsKCJUaGUgZmFpbGVkIGNvbW1hbmQg d2FzOiAlcyIsIHBnX2N0bF9jbWQpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwg UEdfTE9HX0RFVEFJTCwKKwkJCQkJCSAiVGhlIGZhaWxlZCBjb21tYW5kIHdhczogJXMiLCBwZ19j dGxfY21kKTsKIAkJZXhpdCgxKTsKIAl9CiB9CkBAIC0xNjUwLDEyICsxNzgxLDE0IEBAIHN0YXJ0 X3N0YW5kYnlfc2VydmVyKGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0 LCBib29sIHJlc3RyaWN0ZWRfCiAJaWYgKHJlc3RyaWN0X2xvZ2ljYWxfd29ya2VyKQogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihwZ19jdGxfY21kLCAiIC1vIFwiLWMgbWF4X2xvZ2ljYWxfcmVwbGlj YXRpb25fd29ya2Vycz0wXCIiKTsKIAotCXBnX2xvZ19kZWJ1ZygicGdfY3RsIGNvbW1hbmQgaXM6 ICVzIiwgcGdfY3RsX2NtZC0+ZGF0YSk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcs IFBHX0xPR19QUklNQVJZLAorCQkJCQkgInBnX2N0bCBjb21tYW5kIGlzOiAlcyIsIHBnX2N0bF9j bWQtPmRhdGEpOwogCXJjID0gc3lzdGVtKHBnX2N0bF9jbWQtPmRhdGEpOwogCXBnX2N0bF9zdGF0 dXMocGdfY3RsX2NtZC0+ZGF0YSwgcmMpOwogCXN0YW5kYnlfcnVubmluZyA9IHRydWU7CiAJZGVz dHJveVBRRXhwQnVmZmVyKHBnX2N0bF9jbWQpOwotCXBnX2xvZ19pbmZvKCJzZXJ2ZXIgd2FzIHN0 YXJ0ZWQiKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJICJzZXJ2ZXIgd2FzIHN0YXJ0ZWQiKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE2NjYs MTEgKzE3OTksMTMgQEAgc3RvcF9zdGFuZGJ5X3NlcnZlcihjb25zdCBjaGFyICpkYXRhZGlyKQog CiAJcGdfY3RsX2NtZCA9IHBzcHJpbnRmKCJcIiVzXCIgc3RvcCAtRCBcIiVzXCIgLXMiLCBwZ19j dGxfcGF0aCwKIAkJCQkJCSAgZGF0YWRpcik7Ci0JcGdfbG9nX2RlYnVnKCJwZ19jdGwgY29tbWFu ZCBpczogJXMiLCBwZ19jdGxfY21kKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywg UEdfTE9HX1BSSU1BUlksCisJCQkJCSAicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdfY3RsX2Nt ZCk7CiAJcmMgPSBzeXN0ZW0ocGdfY3RsX2NtZCk7CiAJcGdfY3RsX3N0YXR1cyhwZ19jdGxfY21k LCByYyk7CiAJc3RhbmRieV9ydW5uaW5nID0gZmFsc2U7Ci0JcGdfbG9nX2luZm8oInNlcnZlciB3 YXMgc3RvcHBlZCIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklN QVJZLAorCQkJCQkgInNlcnZlciB3YXMgc3RvcHBlZCIpOwogfQogCiAvKgpAQCAtMTY4OSw3ICsx ODI0LDggQEAgd2FpdF9mb3JfZW5kX3JlY292ZXJ5KGNvbnN0IGNoYXIgKmNvbm5pbmZvLCBjb25z dCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMKIAlib29sCQlyZWFkeSA9IGZhbHNlOwog CWludAkJCXRpbWVyID0gMDsKIAotCXBnX2xvZ19pbmZvKCJ3YWl0aW5nIGZvciB0aGUgdGFyZ2V0 IHNlcnZlciB0byByZWFjaCB0aGUgY29uc2lzdGVudCBzdGF0ZSIpOworCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgIndhaXRpbmcgZm9yIHRoZSB0 YXJnZXQgc2VydmVyIHRvIHJlYWNoIHRoZSBjb25zaXN0ZW50IHN0YXRlIik7CiAKIAljb25uID0g Y29ubmVjdF9kYXRhYmFzZShjb25uaW5mbywgdHJ1ZSk7CiAKQEAgLTE3MDcsNyArMTg0Myw4IEBA IHdhaXRfZm9yX2VuZF9yZWNvdmVyeShjb25zdCBjaGFyICpjb25uaW5mbywgY29uc3Qgc3RydWN0 IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zCiAJCWlmIChvcHQtPnJlY292ZXJ5X3RpbWVvdXQgPiAw ICYmIHRpbWVyID49IG9wdC0+cmVjb3ZlcnlfdGltZW91dCkKIAkJewogCQkJc3RvcF9zdGFuZGJ5 X3NlcnZlcihzdWJzY3JpYmVyX2Rpcik7Ci0JCQlwZ19sb2dfZXJyb3IoInJlY292ZXJ5IHRpbWVk IG91dCIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZ LAorCQkJCQkJCSAicmVjb3ZlcnkgdGltZWQgb3V0Iik7CiAJCQlkaXNjb25uZWN0X2RhdGFiYXNl KGNvbm4sIHRydWUpOwogCQl9CiAKQEAgLTE3MjEsOCArMTg1OCwxMCBAQCB3YWl0X2Zvcl9lbmRf cmVjb3ZlcnkoY29uc3QgY2hhciAqY29ubmluZm8sIGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3Jp YmVyT3B0aW9ucwogCWlmICghcmVhZHkpCiAJCXBnX2ZhdGFsKCJzZXJ2ZXIgZGlkIG5vdCBlbmQg cmVjb3ZlcnkiKTsKIAotCXBnX2xvZ19pbmZvKCJ0YXJnZXQgc2VydmVyIHJlYWNoZWQgdGhlIGNv bnNpc3RlbnQgc3RhdGUiKTsKLQlwZ19sb2dfaW5mb19oaW50KCJJZiBwZ19jcmVhdGVzdWJzY3Jp YmVyIGZhaWxzIGFmdGVyIHRoaXMgcG9pbnQsIHlvdSBtdXN0IHJlY3JlYXRlIHRoZSBwaHlzaWNh bCByZXBsaWNhIGJlZm9yZSBjb250aW51aW5nLiIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInRhcmdldCBzZXJ2ZXIgcmVhY2hlZCB0aGUg Y29uc2lzdGVudCBzdGF0ZSIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xP R19ISU5ULAorCQkJCQkgIklmIHBnX2NyZWF0ZXN1YnNjcmliZXIgZmFpbHMgYWZ0ZXIgdGhpcyBw b2ludCwgeW91IG11c3QgcmVjcmVhdGUgdGhlIHBoeXNpY2FsIHJlcGxpY2EgYmVmb3JlIGNvbnRp bnVpbmcuIik7CiB9CiAKIC8qCkBAIC0xNzQ5LDggKzE4ODgsOSBAQCBjcmVhdGVfcHVibGljYXRp b24oUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlyZXMgPSBQ UWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JF U19UVVBMRVNfT0spCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gcHVibGlj YXRpb24gaW5mb3JtYXRpb246ICVzIiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkgImNvdWxkIG5vdCBvYnRhaW4gcHVibGljYXRpb24gaW5mb3JtYXRpb246ICVzIiwKKwkJCQkJ CSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25u LCB0cnVlKTsKIAl9CiAKQEAgLTE3NjMsOCArMTkwMywxMCBAQCBjcmVhdGVfcHVibGljYXRpb24o UEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAkJICogcGdfY3Jl YXRlc3Vic2NyaWJlcl8gcHJlZml4IGZvbGxvd2VkIGJ5IHRoZSBleGFjdCBkYXRhYmFzZSBvaWQg YW5kCiAJCSAqIGEgcmFuZG9tIG51bWJlci4KIAkJICovCi0JCXBnX2xvZ19lcnJvcigicHVibGlj YXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgZGJpbmZvLT5wdWJuYW1lKTsKLQkJcGdfbG9n X2Vycm9yX2hpbnQoIkNvbnNpZGVyIHJlbmFtaW5nIHRoaXMgcHVibGljYXRpb24gYmVmb3JlIGNv bnRpbnVpbmcuIik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJCSAicHVibGljYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgZGJpbmZv LT5wdWJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5U LAorCQkJCQkJICJDb25zaWRlciByZW5hbWluZyB0aGlzIHB1YmxpY2F0aW9uIGJlZm9yZSBjb250 aW51aW5nLiIpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAt MTc3MiwyNCArMTkxNCwyOCBAQCBjcmVhdGVfcHVibGljYXRpb24oUEdjb25uICpjb25uLCBzdHJ1 Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlyZXNldFBRRXhwQnVmZmVyKHN0cik7CiAKIAlp ZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGNyZWF0ZSBwdWJsaWNh dGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5wdWJuYW1lLCBk YmluZm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19Q UklNQVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBjcmVhdGUgcHVibGljYXRpb24gXCIlc1wi IGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRi bmFtZSk7CiAJZWxzZQotCQlwZ19sb2dfaW5mbygiY3JlYXRpbmcgcHVibGljYXRpb24gXCIlc1wi IGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+cHVibmFtZSwgZGJpbmZvLT5kYm5h bWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCSAiY3JlYXRpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJ CQkJCQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CiAKIAlhcHBlbmRQUUV4cEJ1 ZmZlcihzdHIsICJDUkVBVEUgUFVCTElDQVRJT04gJXMgRk9SIEFMTCBUQUJMRVMiLAogCQkJCQkg IGlwdWJuYW1lX2VzYyk7CiAKLQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5k YXRhKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCSAiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVuKQogCXsK IAkJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90 IGNyZWF0ZSBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCi0JCQkJ CQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2Uo cmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkJICJjb3VsZCBub3QgY3JlYXRlIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFz ZSBcIiVzXCI6ICVzIiwKKwkJCQkJCQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSwg UFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4s IHRydWUpOwogCQl9CiAJCVBRY2xlYXIocmVzKTsKQEAgLTE4MTksMjUgKzE5NjUsMjkgQEAgZHJv cF9wdWJsaWNhdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGNvbnN0IGNo YXIgKmRibmFtZSwKIAlwdWJuYW1lX2VzYyA9IFBRZXNjYXBlSWRlbnRpZmllcihjb25uLCBwdWJu YW1lLCBzdHJsZW4ocHVibmFtZSkpOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJk cnktcnVuOiB3b3VsZCBkcm9wIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIi LAotCQkJCQlwdWJuYW1lLCBkYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZP LCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZHJvcCBwdWJsaWNhdGlv biBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBwdWJuYW1lLCBkYm5hbWUpOwog CWVsc2UKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRh YmFzZSBcIiVzXCIiLAotCQkJCQlwdWJuYW1lLCBkYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJvcHBpbmcgcHVibGljYXRp b24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgcHVibmFtZSwgZGJuYW1lKTsK IAogCWFwcGVuZFBRRXhwQnVmZmVyKHN0ciwgIkRST1AgUFVCTElDQVRJT04gJXMiLCBwdWJuYW1l X2VzYyk7CiAKIAlQUWZyZWVtZW0ocHVibmFtZV9lc2MpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21t YW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcs IFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAog CWlmICghZHJ5X3J1bikKIAl7CiAJCXJlcyA9IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlp ZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQogCQl7Ci0JCQlwZ19s b2dfZXJyb3IoImNvdWxkIG5vdCBkcm9wIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBc IiVzXCI6ICVzIiwKLQkJCQkJCSBwdWJuYW1lLCBkYm5hbWUsIFBRcmVzdWx0RXJyb3JNZXNzYWdl KHJlcykpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZ LAorCQkJCQkJCSAiY291bGQgbm90IGRyb3AgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNl IFwiJXNcIjogJXMiLAorCQkJCQkJCSBwdWJuYW1lLCBkYm5hbWUsIFBRcmVzdWx0RXJyb3JNZXNz YWdlKHJlcykpOwogCQkJKm1hZGVfcHVibGljYXRpb24gPSBmYWxzZTsJLyogZG9uJ3QgdHJ5IGFn YWluLiAqLwogCiAJCQkvKgpAQCAtMTg3MiwxNSArMjAyMiwxNyBAQCBjaGVja19hbmRfZHJvcF9w dWJsaWNhdGlvbnMoUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykK IAogCWlmIChkcm9wX2FsbF9wdWJzKQogCXsKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIGFsbCBl eGlzdGluZyBwdWJsaWNhdGlvbnMgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5k Ym5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAiZHJvcHBpbmcgYWxsIGV4aXN0aW5nIHB1YmxpY2F0aW9ucyBpbiBkYXRhYmFzZSBc IiVzXCIiLAorCQkJCQkJIGRiaW5mby0+ZGJuYW1lKTsKIAogCQkvKiBGZXRjaCBhbGwgcHVibGlj YXRpb24gbmFtZXMgKi8KIAkJcmVzID0gUFFleGVjKGNvbm4sICJTRUxFQ1QgcHVibmFtZSBGUk9N IHBnX2NhdGFsb2cucGdfcHVibGljYXRpb247Iik7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMp ICE9IFBHUkVTX1RVUExFU19PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0 YWluIHB1YmxpY2F0aW9uIGluZm9ybWF0aW9uOiAlcyIsCi0JCQkJCQkgUFFyZXN1bHRFcnJvck1l c3NhZ2UocmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHB1YmxpY2F0aW9uIGluZm9ybWF0aW9u OiAlcyIsCisJCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJUFFjbGVhcihy ZXMpOwogCQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJfQpAQCAtMTkwMywx MSArMjA1NSwxMyBAQCBjaGVja19hbmRfZHJvcF9wdWJsaWNhdGlvbnMoUEdjb25uICpjb25uLCBz dHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAkJZWxzZQogCQl7CiAJCQlpZiAoZHJ5X3J1 bikKLQkJCQlwZ19sb2dfaW5mbygiZHJ5LXJ1bjogd291bGQgcHJlc2VydmUgZXhpc3RpbmcgcHVi bGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCQkJZGJpbmZvLT5wdWJu YW1lLCBkYmluZm8tPmRibmFtZSk7CisJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkJCSAiZHJ5LXJ1bjogd291bGQgcHJlc2VydmUgZXhpc3Rp bmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkJCSBkYmlu Zm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAkJCWVsc2UKLQkJCQlwZ19sb2dfaW5mbygi cHJlc2VydmUgZXhpc3RpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIs Ci0JCQkJCQkJZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCQkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJCSAicHJlc2VydmUg ZXhpc3RpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkJ CSBkYmluZm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAkJfQogCX0KIH0KQEAgLTE5NDEs MTEgKzIwOTUsMTMgQEAgY3JlYXRlX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0 cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCXJlcGxzbG90bmFtZV9lc2MgPSBQUWVzY2Fw ZUxpdGVyYWwoY29ubiwgZGJpbmZvLT5yZXBsc2xvdG5hbWUsIHN0cmxlbihkYmluZm8tPnJlcGxz bG90bmFtZSkpOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3Vs ZCBjcmVhdGUgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlk YmluZm8tPnN1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19M T0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImRyeS1ydW46IHdvdWxkIGNyZWF0ZSBz dWJzY3JpcHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgZGJpbmZvLT5z dWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CiAJZWxzZQotCQlwZ19sb2dfaW5mbygiY3JlYXRpbmcg c3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlkYmluZm8tPnN1 Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNyZWF0aW5nIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4g ZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBkYmluZm8tPnN1Ym5hbWUsIGRiaW5mby0+ZGJuYW1l KTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKHN0ciwKIAkJCQkJICAiQ1JFQVRFIFNVQlNDUklQVElP TiAlcyBDT05ORUNUSU9OICVzIFBVQkxJQ0FUSU9OICVzICIKQEAgLTE5NTksMTUgKzIxMTUsMTcg QEAgY3JlYXRlX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBMb2dpY2Fs UmVwSW5mbyAqZGJpbmZvKQogCVBRZnJlZW1lbShwdWJjb25uaW5mb19lc2MpOwogCVBRZnJlZW1l bShyZXBsc2xvdG5hbWVfZXNjKTsKIAotCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMiLCBz dHItPmRhdGEpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJICJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CiAKIAlpZiAoIWRyeV9ydW4p CiAJewogCQlyZXMgPSBQUWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAkJaWYgKFBRcmVzdWx0U3Rh dHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3Vs ZCBub3QgY3JlYXRlIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIs Ci0JCQkJCQkgZGJpbmZvLT5zdWJuYW1lLCBkYmluZm8tPmRibmFtZSwgUFFyZXN1bHRFcnJvck1l c3NhZ2UocmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkJICJjb3VsZCBub3QgY3JlYXRlIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4g ZGF0YWJhc2UgXCIlc1wiOiAlcyIsCisJCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5k Ym5hbWUsIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJZGlzY29ubmVjdF9kYXRhYmFz ZShjb25uLCB0cnVlKTsKIAkJfQogCQlQUWNsZWFyKHJlcyk7CkBAIC0yMDExLDE1ICsyMTY5LDE3 IEBAIHNldF9yZXBsaWNhdGlvbl9wcm9ncmVzcyhQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBM b2dpY2FsUmVwSW5mbyAqZGJpbmZvLCBjb25zCiAJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0 YSk7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJ cGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWluIHN1YnNjcmlwdGlvbiBPSUQ6ICVzIiwKLQkJ CQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xP R19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gc3Vic2Ny aXB0aW9uIE9JRDogJXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlk aXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIAogCWlmIChQUW50dXBsZXMocmVz KSAhPSAxICYmICFkcnlfcnVuKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWlu IHN1YnNjcmlwdGlvbiBPSUQ6IGdvdCAlZCByb3dzLCBleHBlY3RlZCAlZCByb3ciLAotCQkJCQkg UFFudHVwbGVzKHJlcyksIDEpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdf TE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gc3Vic2NyaXB0aW9uIE9JRDog Z290ICVkIHJvd3MsIGV4cGVjdGVkICVkIHJvdyIsCisJCQkJCQkgUFFudHVwbGVzKHJlcyksIDEp OwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMjA0MywyNiAr MjIwMywzMCBAQCBzZXRfcmVwbGljYXRpb25fcHJvZ3Jlc3MoUEdjb25uICpjb25uLCBjb25zdCBz dHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbywgY29ucwogCW9yaWdpbm5hbWUgPSBwc3ByaW50 ZigicGdfJXUiLCBzdWJvaWQpOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJkcnkt cnVuOiB3b3VsZCBzZXQgdGhlIHJlcGxpY2F0aW9uIHByb2dyZXNzIChub2RlIG5hbWUgXCIlc1wi LCBMU04gJXMpIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCW9yaWdpbm5hbWUsIGxzbnN0ciwg ZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgc2V0IHRoZSByZXBsaWNhdGlvbiBwcm9n cmVzcyAobm9kZSBuYW1lIFwiJXNcIiwgTFNOICVzKSBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJ CQkJIG9yaWdpbm5hbWUsIGxzbnN0ciwgZGJpbmZvLT5kYm5hbWUpOwogCWVsc2UKLQkJcGdfbG9n X2luZm8oInNldHRpbmcgdGhlIHJlcGxpY2F0aW9uIHByb2dyZXNzIChub2RlIG5hbWUgXCIlc1wi LCBMU04gJXMpIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCW9yaWdpbm5hbWUsIGxzbnN0ciwg ZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAic2V0dGluZyB0aGUgcmVwbGljYXRpb24gcHJvZ3Jlc3MgKG5vZGUg bmFtZSBcIiVzXCIsIExTTiAlcykgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBvcmlnaW5u YW1lLCBsc25zdHIsIGRiaW5mby0+ZGJuYW1lKTsKIAogCXJlc2V0UFFFeHBCdWZmZXIoc3RyKTsK IAlhcHBlbmRQUUV4cEJ1ZmZlcihzdHIsCiAJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jl cGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCclcycsICclcycpIiwKIAkJCQkJICBvcmlnaW5uYW1l LCBsc25zdHIpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7 CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkg ImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCXJl cyA9IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAh PSBQR1JFU19UVVBMRVNfT0spCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNldCBy ZXBsaWNhdGlvbiBwcm9ncmVzcyBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIjogJXMiLAotCQkJCQkJ IGRiaW5mby0+c3VibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBu b3Qgc2V0IHJlcGxpY2F0aW9uIHByb2dyZXNzIGZvciBzdWJzY3JpcHRpb24gXCIlc1wiOiAlcyIs CisJCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJ CQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCQl9CiAJCVBRY2xlYXIocmVzKTsK QEAgLTIwOTMsMjMgKzIyNTcsMjcgQEAgZW5hYmxlX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4s IGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCXN1Ym5hbWUgPSBQUWVzY2Fw ZUlkZW50aWZpZXIoY29ubiwgZGJpbmZvLT5zdWJuYW1lLCBzdHJsZW4oZGJpbmZvLT5zdWJuYW1l KSk7CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGVuYWJs ZSBzdWJzY3JpcHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+ c3VibmFtZSwgZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZP LCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZW5hYmxlIHN1YnNjcmlw dGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBkYmluZm8tPnN1Ym5hbWUs IGRiaW5mby0+ZGJuYW1lKTsKIAllbHNlCi0JCXBnX2xvZ19pbmZvKCJlbmFibGluZyBzdWJzY3Jp cHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+c3VibmFtZSwg ZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAiZW5hYmxpbmcgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFz ZSBcIiVzXCIiLAorCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5kYm5hbWUpOwogCiAJ YXBwZW5kUFFFeHBCdWZmZXIoc3RyLCAiQUxURVIgU1VCU0NSSVBUSU9OICVzIEVOQUJMRSIsIHN1 Ym5hbWUpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CisJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNv bW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCXJlcyA9 IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQ R1JFU19DT01NQU5EX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBlbmFibGUg c3Vic2NyaXB0aW9uIFwiJXNcIjogJXMiLAotCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgUFFyZXN1 bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBub3QgZW5hYmxlIHN1YnNjcmlwdGlvbiBc IiVzXCI6ICVzIiwKKwkJCQkJCQkgZGJpbmZvLT5zdWJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2Fn ZShyZXMpKTsKIAkJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJCX0KIApAQCAt MjE1NCw3ICsyMzIyLDkgQEAgZ2V0X3B1Ymxpc2hlcl9kYXRhYmFzZXMoc3RydWN0IENyZWF0ZVN1 YnNjcmliZXJPcHRpb25zICpvcHQsCiAJcmVzID0gUFFleGVjKGNvbm4sICJTRUxFQ1QgZGF0bmFt ZSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdGlzdGVtcGxhdGUgPSBmYWxzZSBBTkQgZGF0YWxs b3djb25uIEFORCBkYXRjb25ubGltaXQgPD4gLTIgT1JERVIgQlkgMSIpOwogCWlmIChQUXJlc3Vs dFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291 bGQgbm90IG9idGFpbiBhIGxpc3Qgb2YgZGF0YWJhc2VzOiAlcyIsIFBRcmVzdWx0RXJyb3JNZXNz YWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1B UlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gYSBsaXN0IG9mIGRhdGFiYXNlczogJXMiLAor CQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlQUWNsZWFyKHJlcyk7CiAJCWRp c2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQpAQCAtMjI1OCw5ICsyNDI4LDExIEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogI2lmbmRlZiBXSU4zMgogCWlmIChnZXRldWlk KCkgPT0gMCkKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY2Fubm90IGJlIGV4ZWN1dGVkIGJ5IFwicm9v dFwiIik7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJZb3UgbXVzdCBydW4gJXMgYXMgdGhlIFBvc3Rn cmVTUUwgc3VwZXJ1c2VyLiIsCi0JCQkJCQkgIHByb2duYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjYW5ub3QgYmUgZXhlY3V0 ZWQgYnkgXCJyb290XCIiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xP R19ISU5ULAorCQkJCQkJICJZb3UgbXVzdCBydW4gJXMgYXMgdGhlIFBvc3RncmVTUUwgc3VwZXJ1 c2VyLiIsCisJCQkJCQkgcHJvZ25hbWUpOwogCQlleGl0KDEpOwogCX0KICNlbmRpZgpAQCAtMjM1 MSw3ICsyNTIzLDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJYnJlYWs7CiAJ CQlkZWZhdWx0OgogCQkJCS8qIGdldG9wdF9sb25nIGFscmVhZHkgZW1pdHRlZCBhIGNvbXBsYWlu dCAqLwotCQkJCXBnX2xvZ19lcnJvcl9oaW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBp bmZvcm1hdGlvbi4iLCBwcm9nbmFtZSk7CisJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJS T1IsIFBHX0xPR19ISU5ULAorCQkJCQkJCQkgIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGlu Zm9ybWF0aW9uLiIsCisJCQkJCQkJCSBwcm9nbmFtZSk7CiAJCQkJZXhpdCgxKTsKIAkJfQogCX0K QEAgLTIzNzIsOSArMjU0NiwxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCQlp ZiAoYmFkX3N3aXRjaCkKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJvcHRpb25zICVzIGFuZCAlcyBj YW5ub3QgYmUgdXNlZCB0b2dldGhlciIsCi0JCQkJCQkgYmFkX3N3aXRjaCwgIi1hLy0tYWxsIik7 Ci0JCQlwZ19sb2dfZXJyb3JfaGludCgiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3Jt YXRpb24uIiwgcHJvZ25hbWUpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBH X0xPR19QUklNQVJZLAorCQkJCQkJCSAib3B0aW9ucyAlcyBhbmQgJXMgY2Fubm90IGJlIHVzZWQg dG9nZXRoZXIiLAorCQkJCQkJCSBiYWRfc3dpdGNoLCAiLWEvLS1hbGwiKTsKKwkJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCQkgIlRyeSBcIiVzIC0t aGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsCisJCQkJCQkJIHByb2duYW1lKTsKIAkJCWV4 aXQoMSk7CiAJCX0KIAl9CkBAIC0yMzgyLDE3ICsyNTU5LDIxIEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCS8qIEFueSBub24tb3B0aW9uIGFyZ3VtZW50cz8gKi8KIAlpZiAob3B0aW5k IDwgYXJnYykKIAl7Ci0JCXBnX2xvZ19lcnJvcigidG9vIG1hbnkgY29tbWFuZC1saW5lIGFyZ3Vt ZW50cyAoZmlyc3QgaXMgXCIlc1wiKSIsCi0JCQkJCSBhcmd2W29wdGluZF0pOwotCQlwZ19sb2df ZXJyb3JfaGludCgiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJv Z25hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkgInRvbyBtYW55IGNvbW1hbmQtbGluZSBhcmd1bWVudHMgKGZpcnN0IGlzIFwiJXNc IikiLAorCQkJCQkJIGFyZ3Zbb3B0aW5kXSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VS Uk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5m b3JtYXRpb24uIiwgcHJvZ25hbWUpOwogCQlleGl0KDEpOwogCX0KIAogCS8qIFJlcXVpcmVkIGFy Z3VtZW50cyAqLwogCWlmIChzdWJzY3JpYmVyX2RpciA9PSBOVUxMKQogCXsKLQkJcGdfbG9nX2Vy cm9yKCJubyBzdWJzY3JpYmVyIGRhdGEgZGlyZWN0b3J5IHNwZWNpZmllZCIpOwotCQlwZ19sb2df ZXJyb3JfaGludCgiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJv Z25hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkgIm5vIHN1YnNjcmliZXIgZGF0YSBkaXJlY3Rvcnkgc3BlY2lmaWVkIik7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiVHJ5IFwi JXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJvZ25hbWUpOwogCQlleGl0KDEp OwogCX0KIApAQCAtMjQxOSwyMiArMjYwMCwyNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKIAkJICogaWRlbnRpY2FsIGVudHJpZXMgZm9yIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHJlcGxp Y2F0aW9uLiBJZiB0aGVyZSBpcwogCQkgKiBub3QsIHdlIHdvdWxkIGZhaWwgYW55d2F5LgogCQkg Ki8KLQkJcGdfbG9nX2Vycm9yKCJubyBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmcgc3BlY2lm aWVkIik7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBp bmZvcm1hdGlvbi4iLCBwcm9nbmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9S LCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAibm8gcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5n IHNwZWNpZmllZCIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJ TlQsCisJCQkJCQkgIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsIHBy b2duYW1lKTsKIAkJZXhpdCgxKTsKIAl9CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8o IkV4ZWN1dGluZyBpbiBkcnktcnVuIG1vZGUuXG4iCi0JCQkJCSJUaGUgdGFyZ2V0IGRpcmVjdG9y eSB3aWxsIG5vdCBiZSBtb2RpZmllZC4iKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5G TywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgIkV4ZWN1dGluZyBpbiBkcnktcnVuIG1vZGUuXG4i CisJCQkJCQkgIlRoZSB0YXJnZXQgZGlyZWN0b3J5IHdpbGwgbm90IGJlIG1vZGlmaWVkLiIpOwog Ci0JcGdfbG9nX2luZm8oInZhbGlkYXRpbmcgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nIik7 CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAi dmFsaWRhdGluZyBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmciKTsKIAlwdWJfYmFzZV9jb25u aW5mbyA9IGdldF9iYXNlX2Nvbm5pbmZvKG9wdC5wdWJfY29ubmluZm9fc3RyLAogCQkJCQkJCQkJ CSAgJmRibmFtZV9jb25uaW5mbyk7CiAJaWYgKHB1Yl9iYXNlX2Nvbm5pbmZvID09IE5VTEwpCiAJ CWV4aXQoMSk7CiAKLQlwZ19sb2dfaW5mbygidmFsaWRhdGluZyBzdWJzY3JpYmVyIGNvbm5lY3Rp b24gc3RyaW5nIik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1B UlksCisJCQkJCSAidmFsaWRhdGluZyBzdWJzY3JpYmVyIGNvbm5lY3Rpb24gc3RyaW5nIik7CiAJ c3ViX2Jhc2VfY29ubmluZm8gPSBnZXRfc3ViX2Nvbm5pbmZvKCZvcHQpOwogCiAJLyoKQEAgLTI0 NTEsNyArMjYzNyw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJaWYgKG9wdC5k YXRhYmFzZV9uYW1lcy5oZWFkID09IE5VTEwpCiAJewotCQlwZ19sb2dfaW5mbygibm8gZGF0YWJh c2Ugd2FzIHNwZWNpZmllZCIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19M T0dfUFJJTUFSWSwKKwkJCQkJCSAibm8gZGF0YWJhc2Ugd2FzIHNwZWNpZmllZCIpOwogCiAJCS8q CiAJCSAqIFRyeSB0byBvYnRhaW4gdGhlIGRibmFtZSBmcm9tIHRoZSBwdWJsaXNoZXIgY29ubmlu Zm8uIElmIGRibmFtZQpAQCAtMjQ2MiwxNCArMjY0OSwxNyBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAkJCXNpbXBsZV9zdHJpbmdfbGlzdF9hcHBlbmQoJm9wdC5kYXRhYmFzZV9uYW1l cywgZGJuYW1lX2Nvbm5pbmZvKTsKIAkJCW51bV9kYnMrKzsKIAotCQkJcGdfbG9nX2luZm8oImRh dGFiYXNlIG5hbWUgXCIlc1wiIHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgcHVibGlzaGVyIGNvbm5l Y3Rpb24gc3RyaW5nIiwKLQkJCQkJCWRibmFtZV9jb25uaW5mbyk7CisJCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImRhdGFiYXNlIG5hbWUg XCIlc1wiIHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5n IiwKKwkJCQkJCQkgZGJuYW1lX2Nvbm5pbmZvKTsKIAkJfQogCQllbHNlCiAJCXsKLQkJCXBnX2xv Z19lcnJvcigibm8gZGF0YWJhc2UgbmFtZSBzcGVjaWZpZWQiKTsKLQkJCXBnX2xvZ19lcnJvcl9o aW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLAotCQkJCQkJCSAg cHJvZ25hbWUpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJCSAibm8gZGF0YWJhc2UgbmFtZSBzcGVjaWZpZWQiKTsKKwkJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCQkgIlRyeSBcIiVzIC0t aGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsCisJCQkJCQkJIHByb2duYW1lKTsKIAkJCWV4 aXQoMSk7CiAJCX0KIAl9CkBAIC0yNDc3LDIzICsyNjY3LDI5IEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCS8qIE51bWJlciBvZiBvYmplY3QgbmFtZXMgbXVzdCBtYXRjaCBudW1iZXIg b2YgZGF0YWJhc2VzICovCiAJaWYgKG51bV9wdWJzID4gMCAmJiBudW1fcHVicyAhPSBudW1fZGJz KQogCXsKLQkJcGdfbG9nX2Vycm9yKCJ3cm9uZyBudW1iZXIgb2YgcHVibGljYXRpb24gbmFtZXMg c3BlY2lmaWVkIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIlRoZSBudW1iZXIgb2Ygc3BlY2lm aWVkIHB1YmxpY2F0aW9uIG5hbWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVtYmVyIG9mIHNwZWNp ZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCi0JCQkJCQkJbnVtX3B1YnMsIG51bV9kYnMpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkg Indyb25nIG51bWJlciBvZiBwdWJsaWNhdGlvbiBuYW1lcyBzcGVjaWZpZWQiKTsKKwkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ERVRBSUwsCisJCQkJCQkgIlRoZSBudW1i ZXIgb2Ygc3BlY2lmaWVkIHB1YmxpY2F0aW9uIG5hbWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVt YmVyIG9mIHNwZWNpZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCisJCQkJCQkgbnVtX3B1YnMs IG51bV9kYnMpOwogCQlleGl0KDEpOwogCX0KIAlpZiAobnVtX3N1YnMgPiAwICYmIG51bV9zdWJz ICE9IG51bV9kYnMpCiAJewotCQlwZ19sb2dfZXJyb3IoIndyb25nIG51bWJlciBvZiBzdWJzY3Jp cHRpb24gbmFtZXMgc3BlY2lmaWVkIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIlRoZSBudW1i ZXIgb2Ygc3BlY2lmaWVkIHN1YnNjcmlwdGlvbiBuYW1lcyAoJWQpIG11c3QgbWF0Y2ggdGhlIG51 bWJlciBvZiBzcGVjaWZpZWQgZGF0YWJhc2UgbmFtZXMgKCVkKS4iLAotCQkJCQkJCW51bV9zdWJz LCBudW1fZGJzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJICJ3cm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0aW9uIG5hbWVzIHNwZWNpZmll ZCIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJ CQkJCSAiVGhlIG51bWJlciBvZiBzcGVjaWZpZWQgc3Vic2NyaXB0aW9uIG5hbWVzICglZCkgbXVz dCBtYXRjaCB0aGUgbnVtYmVyIG9mIHNwZWNpZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCisJ CQkJCQkgbnVtX3N1YnMsIG51bV9kYnMpOwogCQlleGl0KDEpOwogCX0KIAlpZiAobnVtX3JlcGxz bG90cyA+IDAgJiYgbnVtX3JlcGxzbG90cyAhPSBudW1fZGJzKQogCXsKLQkJcGdfbG9nX2Vycm9y KCJ3cm9uZyBudW1iZXIgb2YgcmVwbGljYXRpb24gc2xvdCBuYW1lcyBzcGVjaWZpZWQiKTsKLQkJ cGdfbG9nX2Vycm9yX2RldGFpbCgiVGhlIG51bWJlciBvZiBzcGVjaWZpZWQgcmVwbGljYXRpb24g c2xvdCBuYW1lcyAoJWQpIG11c3QgbWF0Y2ggdGhlIG51bWJlciBvZiBzcGVjaWZpZWQgZGF0YWJh c2UgbmFtZXMgKCVkKS4iLAotCQkJCQkJCW51bV9yZXBsc2xvdHMsIG51bV9kYnMpOworCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgIndyb25n IG51bWJlciBvZiByZXBsaWNhdGlvbiBzbG90IG5hbWVzIHNwZWNpZmllZCIpOworCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJCQkJCSAiVGhlIG51bWJl ciBvZiBzcGVjaWZpZWQgcmVwbGljYXRpb24gc2xvdCBuYW1lcyAoJWQpIG11c3QgbWF0Y2ggdGhl IG51bWJlciBvZiBzcGVjaWZpZWQgZGF0YWJhc2UgbmFtZXMgKCVkKS4iLAorCQkJCQkJIG51bV9y ZXBsc2xvdHMsIG51bV9kYnMpOwogCQlleGl0KDEpOwogCX0KIApAQCAtMjUwNCw5ICsyNzAwLDEx IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJZGJpbmZvcy5vYmplY3R0eXBlc190 b19jbGVhbiB8PSBPQkpFQ1RUWVBFX1BVQkxJQ0FUSU9OUzsKIAkJZWxzZQogCQl7Ci0JCQlwZ19s b2dfZXJyb3IoImludmFsaWQgb2JqZWN0IHR5cGUgXCIlc1wiIHNwZWNpZmllZCBmb3IgJXMiLAot CQkJCQkJIGNlbGwtPnZhbCwgIi0tY2xlYW4iKTsKLQkJCXBnX2xvZ19lcnJvcl9oaW50KCJUaGUg dmFsaWQgdmFsdWUgaXM6IFwiJXNcIiIsICJwdWJsaWNhdGlvbnMiKTsKKwkJCXBnX2NyZWF0ZXN1 Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImludmFsaWQgb2Jq ZWN0IHR5cGUgXCIlc1wiIHNwZWNpZmllZCBmb3IgJXMiLAorCQkJCQkJCSBjZWxsLT52YWwsICIt LWNsZWFuIik7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJTlQs CisJCQkJCQkJICJUaGUgdmFsaWQgdmFsdWUgaXM6IFwiJXNcIiIsICJwdWJsaWNhdGlvbnMiKTsK IAkJCWV4aXQoMSk7CiAJCX0KIAl9CkBAIC0yNTUwLDggKzI3NDgsMTAgQEAgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAJICovCiAJaWYgKHN0YXQocGlkZmlsZSwgJnN0YXRidWYpID09IDAp CiAJewotCQlwZ19sb2dfZXJyb3IoInN0YW5kYnkgc2VydmVyIGlzIHJ1bm5pbmciKTsKLQkJcGdf bG9nX2Vycm9yX2hpbnQoIlN0b3AgdGhlIHN0YW5kYnkgc2VydmVyIGFuZCB0cnkgYWdhaW4uIik7 CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ CSAic3RhbmRieSBzZXJ2ZXIgaXMgcnVubmluZyIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xP R19FUlJPUiwgUEdfTE9HX0hJTlQsCisJCQkJCQkgIlN0b3AgdGhlIHN0YW5kYnkgc2VydmVyIGFu ZCB0cnkgYWdhaW4uIik7CiAJCWV4aXQoMSk7CiAJfQogCkBAIC0yNTYwLDcgKzI3NjAsOCBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkgKiBieSBjb21tYW5kLWxpbmUgb3B0aW9ucyku IFRoZSBnb2FsIGlzIHRvIGF2b2lkIGNvbm5lY3Rpb25zIGR1cmluZyB0aGUKIAkgKiB0cmFuc2Zv cm1hdGlvbiBzdGVwcy4KIAkgKi8KLQlwZ19sb2dfaW5mbygic3RhcnRpbmcgdGhlIHN0YW5kYnkg c2VydmVyIHdpdGggY29tbWFuZC1saW5lIG9wdGlvbnMiKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBH X0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJzdGFydGluZyB0aGUgc3RhbmRieSBz ZXJ2ZXIgd2l0aCBjb21tYW5kLWxpbmUgb3B0aW9ucyIpOwogCXN0YXJ0X3N0YW5kYnlfc2VydmVy KCZvcHQsIHRydWUsIGZhbHNlKTsKIAogCS8qIENoZWNrIGlmIHRoZSBzdGFuZGJ5IHNlcnZlciBp cyByZWFkeSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiAqLwpAQCAtMjU3Niw3ICsyNzc3LDggQEAg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJICogZ3VhcmFudGVlcyBpdCkgKmJlZm9yZSog Y3JlYXRpbmcgdGhlIHJlcGxpY2F0aW9uIHNsb3RzIGluCiAJICogc2V0dXBfcHVibGlzaGVyKCku CiAJICovCi0JcGdfbG9nX2luZm8oInN0b3BwaW5nIHRoZSBzdWJzY3JpYmVyIik7CisJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAic3RvcHBpbmcg dGhlIHN1YnNjcmliZXIiKTsKIAlzdG9wX3N0YW5kYnlfc2VydmVyKHN1YnNjcmliZXJfZGlyKTsK IAogCS8qIENyZWF0ZSB0aGUgcmVxdWlyZWQgb2JqZWN0cyBmb3IgZWFjaCBkYXRhYmFzZSBvbiBw dWJsaXNoZXIgKi8KQEAgLTI1OTAsNyArMjc5Miw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCSAqIHVudGlsIGFjY2VwdGluZyBjb25uZWN0aW9ucy4gV2UgZG9uJ3Qgd2FudCB0byBz dGFydCBsb2dpY2FsIHJlcGxpY2F0aW9uCiAJICogZHVyaW5nIHNldHVwLgogCSAqLwotCXBnX2xv Z19pbmZvKCJzdGFydGluZyB0aGUgc3Vic2NyaWJlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdf TE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN0YXJ0aW5nIHRoZSBzdWJzY3JpYmVy Iik7CiAJc3RhcnRfc3RhbmRieV9zZXJ2ZXIoJm9wdCwgdHJ1ZSwgdHJ1ZSk7CiAKIAkvKiBXYWl0 aW5nIHRoZSBzdWJzY3JpYmVyIHRvIGJlIHByb21vdGVkICovCkBAIC0yNjExLDcgKzI4MTQsOCBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlkcm9wX2ZhaWxvdmVyX3JlcGxpY2F0aW9u X3Nsb3RzKGRiaW5mb3MuZGJpbmZvKTsKIAogCS8qIFN0b3AgdGhlIHN1YnNjcmliZXIgKi8KLQlw Z19sb2dfaW5mbygic3RvcHBpbmcgdGhlIHN1YnNjcmliZXIiKTsKKwlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJzdG9wcGluZyB0aGUgc3Vic2Ny aWJlciIpOwogCXN0b3Bfc3RhbmRieV9zZXJ2ZXIoc3Vic2NyaWJlcl9kaXIpOwogCiAJLyogQ2hh bmdlIHN5c3RlbSBpZGVudGlmaWVyIGZyb20gc3Vic2NyaWJlciAqLwpAQCAtMjYxOSw3ICsyODIz LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAlzdWNjZXNzID0gdHJ1ZTsKIAot CXBnX2xvZ19pbmZvKCJEb25lISIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBH X0xPR19QUklNQVJZLAorCQkJCQkgIkRvbmUhIik7CiAKIAlyZXR1cm4gMDsKIH0KLS0gCjIuNDMu MAoK --0000000000000a5bff064d64c10d--