Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oKx0U-0004rW-RW for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Aug 2022 07:16:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oKx0S-00041N-Mo for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Aug 2022 07:16:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oKx0S-00041D-4q for pgsql-hackers@lists.postgresql.org; Mon, 08 Aug 2022 07:16:56 +0000 Received: from mail-oo1-xc2f.google.com ([2607:f8b0:4864:20::c2f]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1oKx0P-0002ry-Hh for pgsql-hackers@lists.postgresql.org; Mon, 08 Aug 2022 07:16:55 +0000 Received: by mail-oo1-xc2f.google.com with SMTP id j1-20020a4ab1c1000000b0043576bcb9b1so1485198ooo.10 for ; Mon, 08 Aug 2022 00:16:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=VIm4kSF4wsUItaVDvoXtoSQfaXIzs/HTLlrw3GrLx7Y=; b=X5XAohzS2oFnwAm9eFCJUePWAt9tL92ZtwTIAXT0Y+RNIEPhCoQ7IMJFVlj6r1kTWa CTYfu4iHsyLVpmL8qdt49QgOAj1QdlQovHG3fW8A+Iih06I366u3XyLoi1Y/XRqwXa9v Yb8aPr2POJEvMEJGtqdbtclz19xyP3trocV5xlMLnEsoM8MQPOznub/bMGCdzJvbj/v8 wnV98uLOgmREBy7WLAn9ecvZKFA+VNnbMzKOXQTNZhB6an+HAj5mbXDlxz4k8N6R+g2g LuvDVpHqxBM0gGfy25+gG7gm3YEtglkVdTYeoJ8WAvWyK603trfT/bGpTe8YNTcBZnSO YqqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=VIm4kSF4wsUItaVDvoXtoSQfaXIzs/HTLlrw3GrLx7Y=; b=QSDG1TY8QU8y2lViVqy+tLJ3Wfg6K2ea0N0dPDzI38lx9Rp6cY5T4EaveP9s3tpSpA 5iVzSYkc0T2F9duytidggskvjVGcJmiZ3NneB81VWMMRsY/o3bZCc0e+cjxcqXpTsBsd 6OVGueVeoLV8o4mI5Xh7x+Gj3Xggml4MgysarVyp3JQP5SZ4zGiOp3fHvfl9jM76l4s/ WZj8PGl1g33xhu3i7MYshBghK6n18u11r2oUKm41dEQ60UIdDadW5TYXJ6ivzpRn3icA SukE1AXwK7FOCQNrFIfF/MS5LBh3fbfyxuZqSCfzDKt6cGfT/NesTHuJOr/ND2lagYf9 bAfA== X-Gm-Message-State: ACgBeo2N0tP2ehT9Z1AfL0prS07lF+ifru8ILjrVsxElRp0lzVJ3rYZ6 OFqZdjtOUU9LB95z2bKhMXACpDDy1Ln0vKmO+MbjgMlRI34= X-Google-Smtp-Source: AA6agR5d70EPTiieyz9SGipuLMZ1dim6NxrYjubf4uliAUwdL+PFOiMml6UEmy6y0PAm9H9VwfUfAGOJTGG9T0BErtU= X-Received: by 2002:a4a:e142:0:b0:441:78d2:1ccf with SMTP id p2-20020a4ae142000000b0044178d21ccfmr6131375oot.39.1659943011463; Mon, 08 Aug 2022 00:16:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Mon, 8 Aug 2022 12:46:39 +0530 Message-ID: Subject: Re: Skipping schema changes in publication To: "osumi.takamichi@fujitsu.com" Cc: Peter Smith , Amit Kapila , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000008bd6c605e5b59935" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008bd6c605e5b59935 Content-Type: text/plain; charset="UTF-8" On Fri, Jun 3, 2022 at 3:36 PM vignesh C wrote: > > On Thu, May 26, 2022 at 7:04 PM osumi.takamichi@fujitsu.com > wrote: > > > > On Monday, May 23, 2022 2:13 PM vignesh C wrote: > > > Attached v7 patch which fixes the buildfarm warning for an unused warning in > > > release mode as in [1]. > > Hi, thank you for the patches. > > > > > > I'll share several review comments. > > > > For v7-0001. > > > > (1) I'll suggest some minor rewording. > > > > + > > + The RESET clause will reset the publication to the > > + default state which includes resetting the publication options, setting > > + ALL TABLES flag to false and > > + dropping all relations and schemas that are associated with the publication. > > > > My suggestion is > > "The RESET clause will reset the publication to the > > default state. It resets the publication operations, > > sets ALL TABLES flag to false and drops all relations > > and schemas associated with the publication." > > I felt the existing looks better. I would prefer to keep it that way. > > > (2) typo and rewording > > > > +/* > > + * Reset the publication. > > + * > > + * Reset the publication options, setting ALL TABLES flag to false and drop > > + * all relations and schemas that are associated with the publication. > > + */ > > > > The "setting" in this sentence should be "set". > > > > How about changing like below ? > > FROM: > > "Reset the publication options, setting ALL TABLES flag to false and drop > > all relations and schemas that are associated with the publication." > > TO: > > "Reset the publication operations, set ALL TABLES flag to false and drop > > all relations and schemas associated with the publication." > > I felt the existing looks better. I would prefer to keep it that way. > > > (3) AlterPublicationReset > > > > Do we need to call CacheInvalidateRelcacheAll() or > > InvalidatePublicationRels() at the end of > > AlterPublicationReset() like AlterPublicationOptions() ? > > CacheInvalidateRelcacheAll should be called if we change all tables > from true to false, else the cache will not be invalidated. Modified > > > > > For v7-0002. > > > > (4) > > > > + if (stmt->for_all_tables) > > + { > > + bool isdefault = CheckPublicationDefValues(tup); > > + > > + if (!isdefault) > > + ereport(ERROR, > > + errcode(ERRCODE_INVALID_OBJECT_DEFINITION), > > + errmsg("adding ALL TABLES requires the publication to have default publication options, no tables/.... > > + errhint("Use ALTER PUBLICATION ... RESET to reset the publication")); > > > > > > The errmsg string has three messages for user and is a bit long > > (we have two sentences there connected by 'and'). > > Can't we make it concise and split it into a couple of lines for code readability ? > > > > I'll suggest a change below. > > FROM: > > "adding ALL TABLES requires the publication to have default publication options, no tables/schemas associated and ALL TABLES flag should not be set" > > TO: > > "adding ALL TABLES requires the publication defined not for ALL TABLES" > > "to have default publish actions without any associated tables/schemas" > > Added errdetail and split it > > > (5) typo > > > > > > + EXCEPT TABLE > > + > > + > > + This clause specifies a list of tables to exclude from the publication. > > + It can only be used with FOR ALL TABLES. > > + > > + > > + > > + > > > > Kindly change > > FROM: > > This clause specifies a list of tables to exclude from the publication. > > TO: > > This clause specifies a list of tables to be excluded from the publication. > > or > > This clause specifies a list of tables excluded from the publication. > > Modified > > > (6) Minor suggestion for an expression change > > > > Marks the publication as one that replicates changes for all tables in > > - the database, including tables created in the future. > > + the database, including tables created in the future. If > > + EXCEPT TABLE is specified, then exclude replicating > > + the changes for the specified tables. > > > > > > I'll suggest a minor rewording. > > FROM: > > ...exclude replicating the changes for the specified tables > > TO: > > ...exclude replication changes for the specified tables > > I felt the existing is better. > > > (7) > > (7-1) > > > > +/* > > + * Check if the publication has default values > > + * > > + * Check the following: > > + * a) Publication is not set with "FOR ALL TABLES" > > + * b) Publication is having default options > > + * c) Publication is not associated with schemas > > + * d) Publication is not associated with relations > > + */ > > +static bool > > +CheckPublicationDefValues(HeapTuple tup) > > > > > > I think this header comment can be improved. > > FROM: > > Check the following: > > TO: > > Returns true if the publication satisfies all the following conditions: > > Modified > > > (7-2) > > > > b) should be changed as well > > FROM: > > Publication is having default options > > TO: > > Publication has the default publish operations > > Changed it to "Publication is having default publication parameter values" > > Thanks for the comments, the attached v8 patch has the changes for the same. The patch needed to be rebased on top of HEAD because of commit "0c20dd33db1607d6a85ffce24238c1e55e384b49", attached a rebased v8 version for the changes of the same. Regards, Vignesh --0000000000008bd6c605e5b59935 Content-Type: application/x-patch; name="v8-0001-Add-RESET-clause-to-Alter-Publication-which-will-.patch" Content-Disposition: attachment; filename="v8-0001-Add-RESET-clause-to-Alter-Publication-which-will-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6keqp3k0 RnJvbSA2OTE3NjNiYmQ4M2RmNmU1YTM3MmZjOTc5NTI2Yjg4NzY0ODZiZDFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAxNCBNYXkgMjAyMiAxMzoxMzo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjgg MS8yXSBBZGQgUkVTRVQgY2xhdXNlIHRvIEFsdGVyIFB1YmxpY2F0aW9uIHdoaWNoIHdpbGwgcmVz ZXQKIHRoZSBwdWJsaWNhdGlvbiB3aXRoIGRlZmF1bHQgdmFsdWVzLgoKVGhpcyBwYXRjaCBhZGRz IGEgbmV3IFJFU0VUIGNsYXVzZSB0byBBTFRFUiBQVUJMSUNBVElPTiB3aGljaCB3aWxsIHJlc2V0 CnRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdCBzdGF0ZSB3aGljaCBpbmNsdWRlcyByZXNl dHRpbmcgdGhlIHB1YmxpY2F0aW9uCnBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxFUyBmbGFn IHRvIGZhbHNlIGFuZCBkcm9wcGluZyB0aGUgcmVsYXRpb25zIGFuZApzY2hlbWFzIHRoYXQgYXJl IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uClVzYWdlOgpBTFRFUiBQVUJMSUNBVElP TiBwdWIxIFJFU0VUOwotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dt bCAgIHwgIDM4ICsrKysrKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YyAgICB8IDEwNSArKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICB8ICAgOSArKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgIHwgICAzICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dCB8IDEwMSArKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbCAgICAgIHwgIDUwICsrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDI5 MiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwKaW5kZXggM2UzMzhmNGNjNS4uZDRjMjNkZWJkMSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IERST1AgPHJlcGxhYwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBD VVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVi bGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC02 NSwyMCArNjYsMzMgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVGhlIHJlbWFpbmluZyB2YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUg bmFtZSBvZiB0aGUgcHVibGljYXRpb24uCisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+ IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIHB1YmxpY2F0aW9uLgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPiBjbGF1c2Ug d2lsbCBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIHB1YmxpY2F0aW9uLgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVTRVQ8L2xpdGVyYWw+IGNsYXVzZSB3aWxsIHJlc2V0 IHRoZSBwdWJsaWNhdGlvbiB0byB0aGUKKyAgIGRlZmF1bHQgc3RhdGUgd2hpY2ggaW5jbHVkZXMg cmVzZXR0aW5nIHRoZSBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzLCBzZXR0aW5nCisgICA8bGl0ZXJh bD5BTEwgVEFCTEVTPC9saXRlcmFsPiBmbGFnIHRvIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiBh bmQKKyAgIGRyb3BwaW5nIGFsbCByZWxhdGlvbnMgYW5kIHNjaGVtYXMgdGhhdCBhcmUgYXNzb2Np YXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAgWW91 IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJ T048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlv bmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QUREIEFM TCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBhbmQKLSAgIDxsaXRlcmFsPlNFVCBBTEwgVEFC TEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUKLSAg IGludm9raW5nIHVzZXIgdG8gYmUgYSBzdXBlcnVzZXIuICBUbyBhbHRlciB0aGUgb3duZXIsIHlv dSBtdXN0IGFsc28gYmUgYQotICAgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3 IG93bmluZyByb2xlLiBUaGUgbmV3IG93bmVyIG11c3QgaGF2ZQotICAgPGxpdGVyYWw+Q1JFQVRF PC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLiAgQWxzbywgdGhlIG5ldyBvd25l cgotICAgb2YgYSA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+ Rk9SIEFMTCBUQUJMRVMgSU4KLSAgIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGljYXRpb24gbXVzdCBi ZSBhIHN1cGVydXNlci4gSG93ZXZlciwgYSBzdXBlcnVzZXIgY2FuCi0gICBjaGFuZ2UgdGhlIG93 bmVyc2hpcCBvZiBhIHB1YmxpY2F0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhlc2UgcmVzdHJpY3Rpb25z LgorICAgVGhlIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisg ICA8bGl0ZXJhbD5TRVQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGlj YXRpb24gYW5kCisgICA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gb2YgcHVibGljYXRpb24gcmVx dWlyZXMgdGhlIGludm9raW5nIHVzZXIgdG8gYmUgYQorICAgc3VwZXJ1c2VyLiBUbyBhbHRlciB0 aGUgb3duZXIsIHlvdSBtdXN0IGFsc28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyCisg ICBvZiB0aGUgbmV3IG93bmluZyByb2xlLiBUaGUgbmV3IG93bmVyIG11c3QgaGF2ZSA8bGl0ZXJh bD5DUkVBVEU8L2xpdGVyYWw+CisgICBwcml2aWxlZ2Ugb24gdGhlIGRhdGFiYXNlLiAgQWxzbywg dGhlIG5ldyBvd25lciBvZiBhCisgICA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4g b3IKKyAgIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gcHVibGlj YXRpb24gbXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIEhvd2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbiBj aGFuZ2UgdGhlIG93bmVyc2hpcCBvZiBhIHB1YmxpY2F0aW9uIHJlZ2FyZGxlc3Mgb2YKKyAgIHRo ZXNlIHJlc3RyaWN0aW9ucy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMjE3LDYgKzIzMSwx MiBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVi bGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJ T04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBB TEwgVEFCTEVTIElOIFNDSEVNQSBwcm9kdWN0aW9uOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+ CisKKyAgPHBhcmE+CisgICBSZXNldCB0aGUgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+cHJvZHVj dGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQ VUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIFJFU0VUOwogPC9wcm9ncmFtbGlzdGlu Zz48L3BhcmE+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYwppbmRleCA4OWEwMDU1NDBmLi40OWU0NTExNGFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYwpAQCAtNTMsNiArNTMsMTQgQEAKICNpbmNsdWRlICJ1dGlscy9zeXNj YWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3ZhcmxlbmEuaCIKIAorLyogQ1JFQVRFIFBVQkxJQ0FU SU9OIGRlZmF1bHQgdmFsdWVzIGZvciBmbGFncyBhbmQgcHVibGljYXRpb24gcGFyYW1ldGVycyAq LworI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUIHRydWUKKyNkZWZpbmUgUFVCX0RF RkFVTFRfQUNUSU9OX1VQREFURSB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9ERUxF VEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEUgdHJ1ZQorI2RlZmlu ZSBQVUJfREVGQVVMVF9WSUFfUk9PVCBmYWxzZQorI2RlZmluZSBQVUJfREVGQVVMVF9BTExfVEFC TEVTIGZhbHNlCisKIC8qCiAgKiBJbmZvcm1hdGlvbiB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1 bW5zIGluIHRoZSByb3cgZmlsdGVyIGV4cHJlc3Npb24uIFNlZQogICogY29udGFpbl9pbnZhbGlk X3JmY29sdW1uX3dhbGtlciBmb3IgZGV0YWlscy4KQEAgLTkxLDExICs5OSwxMSBAQCBwYXJzZV9w dWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkqcHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3RfZ2l2ZW4gPSBmYWxzZTsKIAogCS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9u cy0+cHViaW5zZXJ0ID0gdHJ1ZTsKLQlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1 YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0 cnVlOwotCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlOworCXB1YmFjdGlvbnMt PnB1Ymluc2VydCA9IFBVQl9ERUZBVUxUX0FDVElPTl9JTlNFUlQ7CisJcHViYWN0aW9ucy0+cHVi dXBkYXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURTsKKwlwdWJhY3Rpb25zLT5wdWJkZWxl dGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFOworCXB1YmFjdGlvbnMtPnB1YnRydW5jYXRl ID0gUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFOworCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdCA9IFBVQl9ERUZBVUxUX1ZJQV9ST09UOwogCiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZv cmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTA1LDYgKzExMTMsOTEgQEAgSW52YWxpZGF0ZVB1Ymxp Y2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7 CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24uCisgKgorICogUmVzZXQgdGhlIHB1 YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlIGFu ZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBzY2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQg d2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9u UmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKKwkJ CQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlv biBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJ CXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnNjaGVtYXMgPSBOSUw7CisJTGlzdAkg ICAqcmVscyA9IE5JTDsKKwlib29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9v bAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNf cGdfcHVibGljYXRpb25dOworCU9iamVjdEFkZHJlc3Mgb2JqOworCUxpc3RDZWxsICAgKmxjOwor CU9pZAkJCXByaWQ7CisKKwkvKiBSRVNFVCBwdWJsaWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIg Ki8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJS Q09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1 c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOworCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9m KHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCW1lbXNl dChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJLyogUmVzZXQgdGhlIHB1 YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJp bnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUKTsKKwly ZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0gdHJ1ZTsKKworCXZh bHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBV Ql9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25f cHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVi ZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSk7CisJ cmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxldGUgLSAxXSA9IHRydWU7CisKKwl2 YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gQm9vbEdldERhdHVt KFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNh dGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOwor CisJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLworCWlmIChwdWJmb3JtLT5wdWJh bGx0YWJsZXMpCisJeworCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMg LSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BTExfVEFCTEVTKTsKKwkJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IHRydWU7CisJCUNhY2hlSW52 YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJfQorCisJdHVwID0gaGVhcF9tb2RpZnlfdHVwbGUodHVw LCBSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMsCisJCQkJCQkJcmVwbGFjZXMp OworCisJLyogVXBkYXRlIHRoZSBjYXRhbG9nLiAqLworCUNhdGFsb2dUdXBsZVVwZGF0ZShyZWws ICZ0dXAtPnRfc2VsZiwgdHVwKTsKKworCS8qIERyb3AgdGhlIHNjaGVtYXMgYXNzb2NpYXRlZCB3 aXRoIHRoZSBwdWJsaWNhdGlvbiAqLworCXNjaGVtYXMgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMo cHViaWQpOworCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMocHViaWQsIHNjaGVtYXMsIGZhbHNlKTsK KworCS8qIERyb3AgdGhlIHJlbGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9u ICovCisJcmVscyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9Q QVJUX1JPT1QpOworCWZvcmVhY2gobGMsIHJlbHMpCisJeworCQlPaWQJCQlyZWxpZCA9IGxmaXJz dF9vaWQobGMpOworCisJCXByaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFVCTElDQVRJT05SRUxNQVAs IEFudW1fcGdfcHVibGljYXRpb25fcmVsX29pZCwKKwkJCQkJCQkgICBPYmplY3RJZEdldERhdHVt KHJlbGlkKSwKKwkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJCWlmICghT2lk SXNWYWxpZChwcmlkKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBpcyBub3Qg cGFydCBvZiB0aGUgcHVibGljYXRpb24iLAorCQkJCQkJCWdldF9yZWxfbmFtZShyZWxpZCkpKSk7 CisKKwkJT2JqZWN0QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCwgcHJp ZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCX0KK30KKwog LyoKICAqIEFkZCBvciByZW1vdmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAt MTQxNiw2ICsxNTA5LDggQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCiAJaWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVy UHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOworCWVsc2UgaWYgKHN0 bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0aW9uKQorCQlBbHRlclB1YmxpY2F0aW9uUmVz ZXQocHN0YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJZWxzZQogCXsKIAkJTGlzdAkgICAqcmVsYXRp b25zID0gTklMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZjkwMzc3NjFmOS4uOWM1MWE0ZGI4YiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CkBAIC0xMDU2Niw2ICsxMDU2Niw4IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25P YmpTcGVjCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29iaiBbLCAuLi5d CiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAorICoKICAqIHB1Yl9vYmogaXMg b25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFssIC4uLl0KQEAgLTEwNjEyLDYgKzEw NjE0LDEzIEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9w T2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElD QVRJT04gbmFtZSBSRVNFVAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBt YWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJ CQkJbi0+YWN0aW9uID0gQVBfUmVzZXRQdWJsaWNhdGlvbjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4 IGYyNjVlMDQzZTkuLjljZWFlM2E0NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTE4MTcsNyArMTgx Nyw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQURE IiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9X SVRIKCJBREQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VU Iik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNo ZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVf V0lUSCgiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAppbmRleCBiMzc2MDMxODU2Li5mN2I0NzQyYjc2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBA IC00MDUzLDcgKzQwNTMsOCBAQCB0eXBlZGVmIGVudW0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbgog ewogCUFQX0FkZE9iamVjdHMsCQkJCS8qIGFkZCBvYmplY3RzIHRvIHB1YmxpY2F0aW9uICovCiAJ QVBfRHJvcE9iamVjdHMsCQkJCS8qIHJlbW92ZSBvYmplY3RzIGZyb20gcHVibGljYXRpb24gKi8K LQlBUF9TZXRPYmplY3RzCQkJCS8qIHNldCBsaXN0IG9mIG9iamVjdHMgKi8KKwlBUF9TZXRPYmpl Y3RzLAkJCQkvKiBzZXQgbGlzdCBvZiBvYmplY3RzICovCisJQVBfUmVzZXRQdWJsaWNhdGlvbgkJ CS8qIHJlc2V0IHRoZSBwdWJsaWNhdGlvbiAqLwogfSBBbHRlclB1YmxpY2F0aW9uQWN0aW9uOwog CiB0eXBlZGVmIHN0cnVjdCBBbHRlclB1YmxpY2F0aW9uU3RtdApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCA0MjhjMWYxNmM3Li4wOTdlZmE3MDhmIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTY1Myw2ICsxNjUz LDEwNyBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIERST1AgVEFCTEUgc2NoMS50YmwxOwogRFJP UCBTQ0hFTUEgc2NoMSBjYXNjYWRlOwogRFJPUCBTQ0hFTUEgc2NoMiBjYXNjYWRlOworLS0gVGVz dHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBwdWJfc2No MTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1Ig QUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSBWZXJpZnkgdGhhdCAn QUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDE7 CistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBh cmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3Nj aDEudGJsMSIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFM TCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIFZlcmlmeSB0aGF0IHNjaGVtYXMgYXNzb2Np YXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsg dGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1YmxpYyIKKworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworLS0gVmVyaWZ5 IHRoYXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNl dAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKKygxIHJvdykK KworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJf cmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCiso MSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFf UEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNl dAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQKKygxIHJvdykK KworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJf cmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCiso MSByb3cpCisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1Ymxp Y2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUg c3VwZXJ1c2VyCitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9u CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJf c2NoMTsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBEUk9QIFJPTEUgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyX2R1bW15OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCmluZGV4IDllYjg2ZmQ1NGYuLjcyNzY1OTk0ZGQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJs aWNhdGlvbi5zcWwKQEAgLTEwNTcsNiArMTA1Nyw1NiBAQCBEUk9QIFRBQkxFIHNjaDEudGJsMTsK IERST1AgU0NIRU1BIHNjaDEgY2FzY2FkZTsKIERST1AgU0NIRU1BIHNjaDIgY2FzY2FkZTsKIAor LS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBw dWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKKy0tIFZlcmlm eSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNl dAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50 YmwxOworCistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNh dGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEg cHVibGljOworCistLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVi bGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0 CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOwor CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0 cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsg dGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworCistLSBWZXJpZnkgdGhhdCAnUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1 Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRl c3RwdWJfcmVzZXQKKworLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIHJlc2V0IGEg cHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjI7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOyAtLSBmYWlsIC0gbXVz dCBiZSBzdXBlcnVzZXIKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKKworRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwor RFJPUCBTQ0hFTUEgcHViX3NjaDE7CisKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERS T1AgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjI7CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyX2R1bW15OwotLSAKMi4zMi4w Cgo= --0000000000008bd6c605e5b59935 Content-Type: application/x-patch; name="v8-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Disposition: attachment; filename="v8-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6keqp3o1 RnJvbSA3NWQxZjJmMzkwMTBmN2JlYTk5ZmI3Yjk1MjdlZGFiMTBkMmJlNGMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDEyOjE3OjUxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2OCAy LzJdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFCTEUu CgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNBVElP TiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVy IHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJzY3Jp YmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRpb25z IHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNS RUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0MjsK b3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdDEs dDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVibGlj YXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdhbnRz IHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVkIHRv IGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0aW9u cy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhjbHVk ZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFzc29j aWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgotLS0K IGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBk b2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0KIGRv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxOSArLQogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDI5ICsrLQogZG9j L3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMv YmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNjggKysrKy0tCiBz cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAxOTkgKysrKysr KysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAg ICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAg ICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5j ICAgfCAgMjUgKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAg ICAgfCAgMTcgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAg ICB8ICA1NiArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAg ICB8ICAgNyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAg fCAgMjYgKysrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAg fCAgNjIgKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAg ICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAg ICB8ICAgNyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAgICB8 ICAgNyArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwg ICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8ICA4 OSArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICAg IHwgIDQ1ICsrKy0KIC4uLi90LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAgICAg ICB8ICA4MCArKysrKysrCiAyNCBmaWxlcyBjaGFuZ2VkLCA2ODggaW5zZXJ0aW9ucygrKSwgMTI5 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGNkMmNj MzdhZWIuLjlkMTRkYjU2MDcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NDM2LDYgKzY0MzYsMTUgQEAg U0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxh Y2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIGlmIHRoZXJlIGlzIG5vIHB1YmxpY2F0aW9u IHF1YWxpZnlpbmcgY29uZGl0aW9uLjwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgIDxzdHJ1Y3RmaWVsZD5wcmV4Y2VwdDwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBUcnVlIGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVkCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAg ICAgICAgPHN0cnVjdGZpZWxkPnByYXR0cnM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQydmVjdG9y PC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggYmRmMWU3Yjcy Ny4uYjE3ZTM1MDQ5ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0x Mzc3LDEwICsxMzc3LDEwIEBAIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJlbW90ZSBkYXRhIGZvciBy ZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VSCiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KLSAgIFRvIGFkZCB0YWJsZXMgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVz dCBoYXZlIG93bmVyc2hpcCByaWdodHMgb24gdGhlCi0gICB0YWJsZS4gVG8gYWRkIGFsbCB0YWJs ZXMgaW4gc2NoZW1hIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgYmUgYQotICAgc3Vw ZXJ1c2VyLiBUbyBjcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgdGFibGVz IG9yIGFsbCB0YWJsZXMgaW4KLSAgIHNjaGVtYSBhdXRvbWF0aWNhbGx5LCB0aGUgdXNlciBtdXN0 IGJlIGEgc3VwZXJ1c2VyLgorICAgVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdXNpbmcgRk9SIEFM TCBUQUJMRVMgb3IgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BLAorICAgdGhlIHVzZXIgbXVzdCBi ZSBhIHN1cGVydXNlci4gVG8gYWRkIEFMTCBUQUJMRVMgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEg dG8gYQorICAgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVzZXIuIFRvIGFk ZCB0YWJsZXMgdG8gYSBwdWJsaWNhdGlvbiwKKyAgIHRoZSB1c2VyIG11c3QgaGF2ZSBvd25lcnNo aXAgcmlnaHRzIG9uIHRoZSB0YWJsZS4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGQ0YzIzZGViZDEuLjBlZTJhYTI3YTUg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIyLDYgKzIyLDcg QEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lz PgogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0 aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KK0FMVEVSIFBVQkxJQ0FUSU9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIEFMTCBUQUJM RVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNl cHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogQUxURVIgUFVCTElDQVRJT04g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFi bGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gRFJPUCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQogQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBT RVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVy PC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9y ZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKQEAgLTMzLDYgKzM0LDExIEBAIEFMVEVSIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVT RVQKIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiAp IF0gWywgLi4uIF0KICAgICBBTEwgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEg fSBbLCAuLi4gXQorCis8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICBbIE9O TFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFsgKiBdCisKIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtODIsOCAr ODgsOSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKICAgPHBhcmE+CiAgICBZb3UgbXVzdCBvd24gdGhl IHB1YmxpY2F0aW9uIHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBQVUJMSUNBVElPTjwvY29tbWFuZD4u Ci0gICBBZGRpbmcgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uIGFkZGl0aW9uYWxseSByZXF1aXJl cyBvd25pbmcgdGhhdCB0YWJsZS4KLSAgIFRoZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUyBJTiBT Q0hFTUE8L2xpdGVyYWw+LAorICAgQWRkaW5nIGEgdGFibGUgdG8gb3IgZXhjbHVkaW5nIGEgdGFi bGUgZnJvbSBhIHB1YmxpY2F0aW9uIGFkZGl0aW9uYWxseQorICAgcmVxdWlyZXMgb3duaW5nIHRo YXQgdGFibGUuIFRoZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sCisgICA8bGl0 ZXJhbD5BREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAogICAgPGxpdGVyYWw+U0VU IEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAogICAg PGxpdGVyYWw+UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZv a2luZyB1c2VyIHRvIGJlIGEKICAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3Ug bXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlcgpAQCAtMjI0LDYgKzIzMSwx NCBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBJ TiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4K IAorICA8cGFyYT4KKyAgIEFsdGVyIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25f cHVibGljYXRpb248L3N0cnVjdG5hbWU+IHRvIHB1Ymxpc2gKKyAgIGFsbCB0YWJsZXMgZXhjZXB0 IDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1lPmRlcGFy dG1lbnRzPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9O IHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIEFMTCBUQUJMRVMgRVhDRVBUIHVzZXJzLCBkZXBh cnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRh YmxlcyA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBh cnRtZW50czwvc3RydWN0bmFtZT4gYW5kIHNjaGVtYQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1 YmxpY2F0aW9uLnNnbWwKaW5kZXggNTc5MGQ3NjI3MC4uZGE0NTExZDVhZiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVT UUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBQ VUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+Ci0gICAgWyBGT1IgQUxMIFRBQkxFUworICAgIFsgRk9SIEFMTCBUQUJMRVMgWyBFWENFUFQg WyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0 PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAgICAgfCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0K ICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25f cGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogCkBAIC0zMCw2ICszMCwxMCBAQCBD UkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPgogCiAgICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsg V0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5U X1NDSEVNQSB9IFssIC4uLiBdCisKKzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKwor ICAgIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9y ZXBsYWNlYWJsZT4gWyAqIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAt MTIwLDcgKzEyNCw5IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4K ICAgICAgIE1hcmtzIHRoZSBwdWJsaWNhdGlvbiBhcyBvbmUgdGhhdCByZXBsaWNhdGVzIGNoYW5n ZXMgZm9yIGFsbCB0YWJsZXMgaW4KLSAgICAgIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxl cyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuCisgICAgICB0aGUgZGF0YWJhc2UsIGluY2x1ZGluZyB0 YWJsZXMgY3JlYXRlZCBpbiB0aGUgZnV0dXJlLiBJZgorICAgICAgPGxpdGVyYWw+RVhDRVBUIFRB QkxFPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZW4gZXhjbHVkZSByZXBsaWNhdGluZworICAg ICAgdGhlIGNoYW5nZXMgZm9yIHRoZSBzcGVjaWZpZWQgdGFibGVzLgogICAgICA8L3BhcmE+CiAg ICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMTU2LDYgKzE2MiwxNiBAQCBD UkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGNsYXVzZSBzcGVj aWZpZXMgYSBsaXN0IG9mIHRhYmxlcyB0byBiZSBleGNsdWRlZCBmcm9tIHRoZQorICAgICAgcHVi bGljYXRpb24uIEl0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxF UzwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+V0lUSCAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxh Y2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2Vh YmxlPl0gWywgLi4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtMzU3 LDYgKzM3MywxNSBAQCBDUkVBVEUgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBG T1IgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBBTEwgVEFCTAogQ1JFQVRFIFBVQkxJQ0FUSU9O IHNhbGVzX3B1YmxpY2F0aW9uIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNh bGVzOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBDcmVhdGUgYSBw dWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBpbiBhbGwgdGhlIHRhYmxlcyBl eGNlcHQgZm9yCisgICB0aGUgY2hhbmdlcyBvZiA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFt ZT4gYW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT46Cis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxF UyBFWENFUFQgdXNlcnMsIGRlcGFydG1lbnRzOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJh PgorCiAgIDxwYXJhPgogICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxs IGNoYW5nZXMgZm9yIHRhYmxlIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiwKICAgIGJ1 dCByZXBsaWNhdGVzIG9ubHkgY29sdW1ucyA8c3RydWN0bmFtZT51c2VyX2lkPC9zdHJ1Y3RuYW1l PiBhbmQKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCA3YmE2ZTRlZmNiLi4wYmY1NDUxNDllIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0xODcxLDggKzE4NzEsOSBAQCB0ZXN0ZGI9Jmd0Owog ICAgICAgICBJZiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFj ZWFibGU+IGlzCiAgICAgICAgIHNwZWNpZmllZCwgb25seSB0aG9zZSBwdWJsaWNhdGlvbnMgd2hv c2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYXJlCiAgICAgICAgIGxpc3RlZC4KLSAgICAgICAg SWYgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwg dGhlIHRhYmxlcyBhbmQKLSAgICAgICAgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBwdWJs aWNhdGlvbiBhcmUgc2hvd24gYXMgd2VsbC4KKyAgICAgICAgSWYgPGxpdGVyYWw+KzwvbGl0ZXJh bD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHRhYmxlcywKKyAgICAgICAg ZXhjbHVkZWQgdGFibGVzIGFuZCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0 aW9uIGFyZSBzaG93biBhcworICAgICAgICB3ZWxsLgogICAgICAgICA8L3BhcmE+CiAgICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uYwppbmRleCA2YWYzNTcwMDA1Li5iYWMyZTIxN2I3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0yOTAsNyArMjkwLDggQEAgR2V0UHViUGFydGl0aW9uT3B0 aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0 LAogICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAqLwogT2lkCi1HZXRU b3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywg aW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lk IHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBi b29sIHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlPaWQJCQl0b3Btb3N0X3Jl bGlkID0gSW52YWxpZE9pZDsKQEAgLTMwMiwzMiArMzAzLDQ0IEBAIEdldFRvcE1vc3RBbmNlc3Rv ckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBpbnQgKmFuY2VzdG9y X2xldmVsCiAJZm9yZWFjaChsYywgYW5jZXN0b3JzKQogCXsKIAkJT2lkCQkJYW5jZXN0b3IgPSBs Zmlyc3Rfb2lkKGxjKTsKLQkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRp b25zKGFuY2VzdG9yKTsKLQkJTGlzdAkgICAqYXNjaGVtYVB1YmlkcyA9IE5JTDsKKwkJTGlzdAkg ICAqYXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCBmYWxzZSk7CisJ CUxpc3QJICAgKmFzY2hlbWFwdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFleGNlcHRwdWJpZHMg PSBOSUw7CisJCWJvb2wJCXNldF90b3AgPSBmYWxzZTsKIAogCQlsZXZlbCsrOwogCi0JCWlmIChs aXN0X21lbWJlcl9vaWQoYXB1YmlkcywgcHVib2lkKSkKKwkJLyogY2hlY2sgaWYgbWVtYmVyIG9m IHRhYmxlIHB1YmxpY2F0aW9ucyAqLworCQlzZXRfdG9wID0gbGlzdF9tZW1iZXJfb2lkKGFwdWJp ZHMsIHB1Ym9pZCk7CisJCWlmICghc2V0X3RvcCkKIAkJewotCQkJdG9wbW9zdF9yZWxpZCA9IGFu Y2VzdG9yOworCQkJYXNjaGVtYXB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVs X25hbWVzcGFjZShhbmNlc3RvcikpOwogCi0JCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCi0JCQkJKmFu Y2VzdG9yX2xldmVsID0gbGV2ZWw7CisJCQkvKiBjaGVjayBpZiBtZW1iZXIgb2Ygc2NoZW1hIHB1 YmxpY2F0aW9ucyAqLworCQkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhc2NoZW1hcHViaWRz LCBwdWJvaWQpOworCisJCQkvKgorCQkJICogSWYgdGhlIHB1YmxpY2F0aW9uIGlzIGFsbCB0YWJs ZXMgcHVibGljYXRpb24gYW5kIHRoZSB0YWJsZQorCQkJICogaXMgbm90IHBhcnQgb2YgZXhjZXB0 aW9uIHRhYmxlcy4KKwkJCSAqLworCQkJaWYgKCFzZXRfdG9wICYmIHB1YmFsbHRhYmxlcykKKwkJ CXsKKwkJCQlhZXhjZXB0cHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3Is IHRydWUpOworCQkJCXNldF90b3AgPSAhbGlzdF9tZW1iZXJfb2lkKGFleGNlcHRwdWJpZHMsIHB1 Ym9pZCk7CisJCQl9CiAJCX0KLQkJZWxzZQorCisJCWlmIChzZXRfdG9wKQogCQl7Ci0JCQlhc2No ZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2Vz dG9yKSk7Ci0JCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMsIHB1Ym9pZCkpCi0J CQl7Ci0JCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOworCQkJdG9wbW9zdF9yZWxpZCA9IGFu Y2VzdG9yOwogCi0JCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCQkqYW5jZXN0b3JfbGV2ZWwg PSBsZXZlbDsKLQkJCX0KKwkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKKwkJCQkqYW5jZXN0b3JfbGV2 ZWwgPSBsZXZlbDsKIAkJfQogCiAJCWxpc3RfZnJlZShhcHViaWRzKTsKLQkJbGlzdF9mcmVlKGFz Y2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoYXNjaGVtYXB1Ymlkcyk7CisJCWxpc3RfZnJlZShh ZXhjZXB0cHViaWRzKTsKIAl9CiAKIAlyZXR1cm4gdG9wbW9zdF9yZWxpZDsKQEAgLTM5Niw2ICs0 MDksOCBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJl bEluZm8gKnByaSwKIAkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCk7CiAJdmFsdWVzW0FudW1fcGdf cHVibGljYXRpb25fcmVsX3BycmVsaWQgLSAxXSA9CiAJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQp OworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCAtIDFdID0KKwkJQm9v bEdldERhdHVtKHByaS0+ZXhjZXB0KTsKIAogCS8qIEFkZCBxdWFsaWZpY2F0aW9ucywgaWYgYXZh aWxhYmxlICovCiAJaWYgKHByaS0+d2hlcmVDbGF1c2UgIT0gTlVMTCkKQEAgLTY2NCw5ICs2Nzks OSBAQCBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLCBib29s IGlmX25vdF9leGlzdHMpCiAJcmV0dXJuIG15c2VsZjsKIH0KIAotLyogR2V0cyBsaXN0IG9mIHB1 YmxpY2F0aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gKi8KKy8qIEdldHMgbGlzdCBvZiBwdWJsaWNh dGlvbiBvaWRzIGZvciBhIHJlbGF0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgZXhjZXB0X2ZsYWcgKi8K IExpc3QgKgotR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKQorR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2VwdF9mbGFnKQogewogCUxpc3QJICAgKnJl c3VsdCA9IE5JTDsKIAlDYXRDTGlzdCAgICpwdWJyZWxsaXN0OwpAQCAtNjgwLDcgKzY5NSw4IEBA IEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKIAkJSGVhcFR1cGxlCXR1cCA9ICZw dWJyZWxsaXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKIAkJT2lkCQkJcHViaWQgPSAoKEZvcm1fcGdf cHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnBycHViaWQ7CiAKLQkJcmVzdWx0ID0g bGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlmIChleGNlcHRfZmxhZyA9PSAoKEZvcm1f cGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0KQorCQkJcmVzdWx0 ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlTGlz dChwdWJyZWxsaXN0KTsKQEAgLTc3OSwxMyArNzk1LDE2IEBAIEdldEFsbFRhYmxlc1B1YmxpY2F0 aW9ucyh2b2lkKQogICogcm9vdCBwYXJ0aXRpb25lZCB0YWJsZXMuCiAgKi8KIExpc3QgKgotR2V0 QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQorR2V0QWxsVGFi bGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBib29sIHB1YnZpYXJvb3QpCiB7CiAJ UmVsYXRpb24JY2xhc3NSZWw7CiAJU2NhbktleURhdGEga2V5WzFdOwogCVRhYmxlU2NhbkRlc2Mg c2NhbjsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCUxpc3QJ ICAgKmV4Y2VwdGxpc3Q7CisKKwlleGNlcHRsaXN0ID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMo cHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIAogCWNsYXNzUmVsID0gdGFibGVfb3BlbihS ZWxhdGlvblJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CiAKQEAgLTgwMiw3ICs4MjEsOCBA QCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhib29sIHB1YnZpYXJvb3QpCiAJCU9p ZAkJCXJlbGlkID0gcmVsRm9ybS0+b2lkOwogCiAJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhy ZWxpZCwgcmVsRm9ybSkgJiYKLQkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYgcHVidmlh cm9vdCkpCisJCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpICYmCisJ CQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCXJlc3VsdCA9IGxhcHBl bmRfb2lkKHJlc3VsdCwgcmVsaWQpOwogCX0KIApAQCAtODIzLDcgKzg0Myw4IEBAIEdldEFsbFRh Ymxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKIAkJCU9pZAkJCXJlbGlk ID0gcmVsRm9ybS0+b2lkOwogCiAJCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJl bEZvcm0pICYmCi0JCQkJIXJlbEZvcm0tPnJlbGlzcGFydGl0aW9uKQorCQkJCSFyZWxGb3JtLT5y ZWxpc3BhcnRpdGlvbiAmJgorCQkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQp KQogCQkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwogCQl9CiAKQEAgLTEw NTgsNyArMTA3OSw4IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJH UykKIAkJICovCiAJCWlmIChwdWJsaWNhdGlvbi0+YWxsdGFibGVzKQogCQl7Ci0JCQl0YWJsZXMg PSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJsaWNhdGlvbi0+cHVidmlhcm9v dCk7CisJCQl0YWJsZXMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJsaWNh dGlvbi0+b2lkLAorCQkJCQkJCQkJCQkJCSAgcHVibGljYXRpb24tPnB1YnZpYXJvb3QpOwogCQl9 CiAJCWVsc2UKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA0 OWU0NTExNGFhLi4wYjcxYjc3MDdjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYwpAQCAtMTkzLDYgKzE5MywxMSBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0 ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJc3dpdGNoIChwdWJvYmot PnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEU6CisJCQkJcHVi b2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxz LCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUFVCTElDQVRJT05PQkpf RVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CiAJCQkJ KnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQToKQEAgLTMwNSw3ICszMTAsNyBA QCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyKE5vZGUgKm5vZGUsIHJmX2NvbnRleHQg KmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQg cHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJICAgYm9v bCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCwgYm9vbCBwdWJhbGx0YWJs ZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJl bGlkKHJlbGF0aW9uKTsKQEAgLTMzMiw3ICszMzcsOCBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxp ZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAog CWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsK IAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9u KHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1Ymxp Y2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJCQkJCQkJCQkJCSAgcHViYWxsdGFibGVz KTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2Fz X3JlbGlkID0gcmVsaWQ7CkBAIC0zODEsNyArMzg3LDcgQEAgcHViX3JmX2NvbnRhaW5zX2ludmFs aWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywK ICAqLwogYm9vbAogcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1Ymlk LCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCQkJYm9vbCBwdWJ2 aWFyb290KQorCQkJCQkJCQkJYm9vbCBwdWJ2aWFyb290LCBib29sIHB1YmFsbHRhYmxlcykKIHsK IAlIZWFwVHVwbGUJdHVwbGU7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0 aW9uKTsKQEAgLTQwMCw3ICs0MDYsOCBAQCBwdWJfY29sbGlzdF9jb250YWluc19pbnZhbGlkX2Nv bHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcgogCSAqLwog CWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsK LQkJcHVibGlzaF9hc19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHVi aWQsIGFuY2VzdG9ycywgTlVMTCk7CisJCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5j ZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsCisJCQkJCQkJCQkJCQkJCSAgIE5V TEwsIHB1YmFsbHRhYmxlcyk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQp KQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtODQ0LDU0ICs4NTEsNTIgQEAgQ3Jl YXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQg KnN0bXQpCiAJLyogTWFrZSB0aGUgY2hhbmdlcyB2aXNpYmxlLiAqLwogCUNvbW1hbmRDb3VudGVy SW5jcmVtZW50KCk7CiAKLQkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlv bi4gKi8KLQlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCi0JewotCQkvKiBJbnZhbGlkYXRlIHJl bGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiAqLwotCQlDYWNoZUlu dmFsaWRhdGVSZWxjYWNoZUFsbCgpOwotCX0KLQllbHNlCi0JewotCQlPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJ CSAgICZzY2hlbWFpZGxpc3QpOworCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1 Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKKwkJCQkJCQkgICAmc2NoZW1haWRsaXN0KTsK IAotCQkvKiBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCi0J CWlmIChsaXN0X2xlbmd0aChzY2hlbWFpZGxpc3QpID4gMCAmJiAhc3VwZXJ1c2VyKCkpCi0JCQll cmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVH RSksCi0JCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBBTEwgVEFC TEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiIpKTsKKwkvKiBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hF TUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYgKGxpc3RfbGVuZ3RoKHNjaGVtYWlkbGlzdCkg PiAwICYmICFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNP REVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNl ciB0byBjcmVhdGUgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOwogCi0J CWlmIChsaXN0X2xlbmd0aChyZWxhdGlvbnMpID4gMCkKLQkJewotCQkJTGlzdAkgICAqcmVsczsK KwlpZiAobGlzdF9sZW5ndGgocmVsYXRpb25zKSA+IDApCisJeworCQlMaXN0CSAgICpyZWxzOwog Ci0JCQlyZWxzID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOwotCQkJQ2hlY2tPYmpTY2hlbWFO b3RBbHJlYWR5SW5QdWJsaWNhdGlvbihyZWxzLCBzY2hlbWFpZGxpc3QsCi0JCQkJCQkJCQkJCQkg IFBVQkxJQ0FUSU9OT0JKX1RBQkxFKTsKKwkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVsYXRpb25z KTsKKwkJQ2hlY2tPYmpTY2hlbWFOb3RBbHJlYWR5SW5QdWJsaWNhdGlvbihyZWxzLCBzY2hlbWFp ZGxpc3QsCisJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05PQkpfVEFCTEUpOwogCi0JCQlUcmFuc2Zv cm1QdWJXaGVyZUNsYXVzZXMocmVscywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkg cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOworCQlUcmFuc2Zvcm1QdWJXaGVyZUNsYXVzZXMo cmVscywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJCSBwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdCk7CiAKLQkJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHJlbHMsIHBzdGF0ZS0+ cF9zb3VyY2V0ZXh0LAotCQkJCQkJCQkJICAgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwor CQlDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwK KwkJCQkJCQkJICAgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0JCQlQdWJsaWNhdGlv bkFkZFRhYmxlcyhwdWJvaWQsIHJlbHMsIHRydWUsIE5VTEwpOwotCQkJQ2xvc2VUYWJsZUxpc3Qo cmVscyk7Ci0JCX0KKwkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBO VUxMKTsKKwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJfQogCi0JCWlmIChsaXN0X2xlbmd0aChz Y2hlbWFpZGxpc3QpID4gMCkKLQkJewotCQkJLyoKLQkJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQg dW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAotCQkJICogY29uY3Vy cmVudCBzY2hlbWEgZGVsZXRpb24uCi0JCQkgKi8KLQkJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlk bGlzdCk7Ci0JCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRy dWUsIE5VTEwpOwotCQl9CisJaWYgKGxpc3RfbGVuZ3RoKHNjaGVtYWlkbGlzdCkgPiAwKQorCXsK KwkJLyoKKwkJICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMg Y3JlYXRlZCB0byBwcmV2ZW50CisJCSAqIGNvbmN1cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgorCQkg Ki8KKwkJTG9ja1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKKwkJUHVibGljYXRpb25BZGRTY2hl bWFzKHB1Ym9pZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKIAl9CiAKIAl0YWJsZV9jbG9z ZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCisJLyogQXNzb2NpYXRlIG9iamVjdHMgd2l0aCB0 aGUgcHVibGljYXRpb24uICovCisJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCXsKKwkJLyog SW52YWxpZGF0ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9uIGluZm8gaXMgcmVidWlsdC4g Ki8KKwkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKKwl9CisKIAlJbnZva2VPYmplY3RQ b3N0Q3JlYXRlSG9vayhQdWJsaWNhdGlvblJlbGF0aW9uSWQsIHB1Ym9pZCwgMCk7CiAKIAlpZiAo d2FsX2xldmVsICE9IFdBTF9MRVZFTF9MT0dJQ0FMKQpAQCAtMTE2MCw2ICsxMTY1LDI3IEBAIEFs dGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LAogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9 IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7CiAJcmVwbGFjZXNbQW51bV9wZ19w dWJsaWNhdGlvbl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOwogCisJLyoKKwkgKiBMb2NrIHRoZSBw dWJsaWNhdGlvbiBzbyBub2JvZHkgZWxzZSBjYW4gZG8gYW55dGhpbmcgd2l0aCBpdC4gVGhpcwor CSAqIHByZXZlbnRzIGNvbmN1cnJlbnQgcHVibGljYXRpb24gcGFyYW1ldGVyIGNoYW5nZXMsIGFk ZC9kcm9wIHRhYmxlcyhzKSB0bworCSAqIHRoZSBwdWJsaWNhdGlvbiBhbmQgYWRkL2Ryb3Agc2No ZW1hKHMpIHRvIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoUHVi bGljYXRpb25SZWxhdGlvbklkLCBwdWJpZCwgMCwKKwkJCQkJCUFjY2Vzc0V4Y2x1c2l2ZUxvY2sp OworCisJLyoKKwkgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IGJ5IHRoZSB0aW1lIHdlIGFjcXVpcmUg dGhlIGxvY2sgb24gcHVibGljYXRpb24sCisJICogY29uY3VycmVudCBEREwgaGFzIHJlbW92ZWQg aXQuIFdlIGNhbiB0ZXN0IHRoaXMgYnkgY2hlY2tpbmcgdGhlCisJICogZXhpc3RlbmNlIG9mIHB1 YmxpY2F0aW9uLiBXZSBnZXQgdGhlIHR1cGxlIGFnYWluIHRvIGF2b2lkIHRoZSByaXNrCisJICog b2YgYW55IHB1YmxpY2F0aW9uIG9wdGlvbiBnZXR0aW5nIGNoYW5nZWQuCisJICovCisJdHVwID0g U2VhcmNoU3lzQ2FjaGVDb3B5MShQVUJMSUNBVElPTk9JRCwgT2JqZWN0SWRHZXREYXR1bShwdWJp ZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coInB1YmxpY2F0 aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQlzdG10LT5wdWJuYW1lKSk7CisKIAkv KiBTZXQgQUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlICovCiAJaWYgKHB1YmZvcm0tPnB1YmFsbHRh YmxlcykKIAl7CkBAIC0xMTk4LDYgKzEyMjQsNzkgQEAgQWx0ZXJQdWJsaWNhdGlvblJlc2V0KFBh cnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJfQogfQogCisv KgorICogQ2hlY2sgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBkZWZhdWx0IHZhbHVlcy4KKyAqCisg KiBSZXR1cm5zIHRydWUgaWYgdGhlIHB1YmxpY2F0aW9uIHNhdGlzZmllcyBhbGwgdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgorICogYSkgUHVibGljYXRpb24gaXMgbm90IHNldCB3aXRoICJGT1Ig QUxMIFRBQkxFUyIKKyAqIGIpIFB1YmxpY2F0aW9uIGlzIGhhdmluZyBkZWZhdWx0IHB1YmxpY2F0 aW9uIHBhcmFtZXRlciB2YWx1ZXMKKyAqIGMpIFB1YmxpY2F0aW9uIGlzIG5vdCBhc3NvY2lhdGVk IHdpdGggc2NoZW1hcworICogZCkgUHVibGljYXRpb24gaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBy ZWxhdGlvbnMKKyAqLworc3RhdGljIGJvb2wKK0NoZWNrUHVibGljYXRpb25EZWZWYWx1ZXMoSGVh cFR1cGxlIHR1cCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19w dWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7 CisJTGlzdAkgICAqcHVib2JqcyA9IE5JTDsKKworCWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMg IT0gUFVCX0RFRkFVTFRfQUxMX1RBQkxFUykKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKHB1YmZv cm0tPnB1Ymluc2VydCAhPSBQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUIHx8CisJCXB1YmZvcm0t PnB1YnVwZGF0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVVBEQVRFIHx8CisJCXB1YmZvcm0tPnB1 YmRlbGV0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHx8CisJCXB1YmZvcm0tPnB1YnRy dW5jYXRlICE9IFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSB8fAorCQlwdWJmb3JtLT5wdWJ2 aWFyb290ICE9IFBVQl9ERUZBVUxUX1ZJQV9ST09UKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJv YmpzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1YmlkKTsKKwlpZiAobGlzdF9sZW5ndGgocHVi b2JqcykpCisJCXJldHVybiBmYWxzZTsKKworCXB1Ym9ianMgPSBHZXRQdWJsaWNhdGlvblJlbGF0 aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwlpZiAobGlzdF9sZW5ndGgocHVi b2JqcykpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogU2V0 IHB1YmxpY2F0aW9uIHRvIHB1Ymxpc2ggYWxsIHRhYmxlcy4KKyAqLworc3RhdGljIHZvaWQKK0Fs dGVyUHVibGljYXRpb25TZXRBbGxUYWJsZXMoUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwKQor eworCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFkg PSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisJYm9vbAkJbnVsbHNbTmF0 dHNfcGdfcHVibGljYXRpb25dOworCWJvb2wJCXJlcGxhY2VzW05hdHRzX3BnX3B1YmxpY2F0aW9u XTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKworI2lmZGVmIFVTRV9B U1NFUlRfQ0hFQ0tJTkcKKwlBc3NlcnQoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyk7CisjZW5kaWYK KworCS8qIEFkZCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbiByZXF1aXJlcyBzdXBlcnVz ZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3QgYmUgc3Vw ZXJ1c2VyIHRvIEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbiIpKTsKKworCW1lbXNl dCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXpl b2YobnVsbHMpKTsKKwltZW1zZXQocmVwbGFjZXMsIGZhbHNlLCBzaXplb2YocmVwbGFjZXMpKTsK KworCS8qIFNldCBBTEwgVEFCTEVTIGZsYWcgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJhbGx0YWJsZXMgLSAxXSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKwlyZXBsYWNlc1tBbnVt X3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gdHJ1ZTsKKworCXR1cCA9IGhlYXBf bW9kaWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAor CQkJCQkJCXJlcGxhY2VzKTsKKworCS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9n VHVwbGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIHR1cCk7Cit9CisKIC8qCiAgKiBBZGQgb3Ig cmVtb3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTE1MDcsNiArMTYwNiwy MCBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgT0JKRUNU X1BVQkxJQ0FUSU9OLAogCQkJCQkgICBzdG10LT5wdWJuYW1lKTsKIAorCWlmIChzdG10LT5mb3Jf YWxsX3RhYmxlcykKKwl7CisJCWJvb2wJCWlzZGVmYXVsdCA9IENoZWNrUHVibGljYXRpb25EZWZW YWx1ZXModHVwKTsKKworCQlpZiAoIWlzZGVmYXVsdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJZXJybXNn KCJhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZh dWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMiKSwKKwkJCQkJZXJyZGV0YWlsKCJBTEwg VEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3Vs ZCBiZSBhc3NvY2lhdGVkLiIpOworCQkJCQllcnJoaW50KCJVc2UgQUxURVIgUFVCTElDQVRJT04g Li4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbiIpKTsKKworCQlBbHRlclB1YmxpY2F0 aW9uU2V0QWxsVGFibGVzKHJlbCwgdHVwKTsKKwl9CisKIAlpZiAoc3RtdC0+b3B0aW9ucykKIAkJ QWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJZWxzZSBp ZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0UHVibGljYXRpb24pCkBAIC0xNzUyLDYgKzE4NjUs NyBAQCBPcGVuVGFibGVMaXN0KExpc3QgKnRhYmxlcykKIAkJcHViX3JlbC0+cmVsYXRpb24gPSBy ZWw7CiAJCXB1Yl9yZWwtPndoZXJlQ2xhdXNlID0gdC0+d2hlcmVDbGF1c2U7CiAJCXB1Yl9yZWwt PmNvbHVtbnMgPSB0LT5jb2x1bW5zOworCQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CiAJ CXJlbHMgPSBsYXBwZW5kKHJlbHMsIHB1Yl9yZWwpOwogCQlyZWxpZHMgPSBsYXBwZW5kX29pZChy ZWxpZHMsIG15cmVsaWQpOwogCkBAIC0xODI0LDYgKzE5MzgsNyBAQCBPcGVuVGFibGVMaXN0KExp c3QgKnRhYmxlcykKIAogCQkJCS8qIGNoaWxkIGluaGVyaXRzIGNvbHVtbiBsaXN0IGZyb20gcGFy ZW50ICovCiAJCQkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJCQkJcHViX3JlbC0+ ZXhjZXB0ID0gdC0+ZXhjZXB0OwogCQkJCXJlbHMgPSBsYXBwZW5kKHJlbHMsIHB1Yl9yZWwpOwog CQkJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgY2hpbGRyZWxpZCk7CiAKQEAgLTE4OTks OCArMjAxNCw2IEBAIFB1YmxpY2F0aW9uQWRkVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywg Ym9vbCBpZl9ub3RfZXhpc3RzLAogewogCUxpc3RDZWxsICAgKmxjOwogCi0JQXNzZXJ0KCFzdG10 IHx8ICFzdG10LT5mb3JfYWxsX3RhYmxlcyk7Ci0KIAlmb3JlYWNoKGxjLCByZWxzKQogCXsKIAkJ UHVibGljYXRpb25SZWxJbmZvICpwdWJfcmVsID0gKFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBsZmly c3QobGMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA3MGI5NGJiYjM5Li5mOTIzYmZi YjRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTYyNjgsNyArMTYyNjgsNyBAQCBB VFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShSZWxhdGlvbiByZWwsIGJvb2wgdG9Mb2dnZWQpCiAJICog VU5MT0dHRUQgYXMgVU5MT0dHRUQgdGFibGVzIGNhbid0IGJlIHB1Ymxpc2hlZC4KIAkgKi8KIAlp ZiAoIXRvTG9nZ2VkICYmCi0JCWxpc3RfbGVuZ3RoKEdldFJlbGF0aW9uUHVibGljYXRpb25zKFJl bGF0aW9uR2V0UmVsaWQocmVsKSkpID4gMCkKKwkJbGlzdF9sZW5ndGgoR2V0UmVsYXRpb25QdWJs aWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSkpID4gMCkKIAkJZXJlcG9ydChF UlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NU QVRFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY2hhbmdlIHRhYmxlIFwiJXNcIiB0byB1bmxvZ2dl ZCBiZWNhdXNlIGl0IGlzIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIsCkBAIC0xNjQwNSw3ICsxNjQw NSw3IEBAIEFsdGVyVGFibGVOYW1lc3BhY2UoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LCBP aWQgKm9sZHNjaGVtYSkKIAl7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlMaXN0CSAgICpzY2hlbWFQ dWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMobnNwT2lkKTsKLQkJTGlzdAkgICAqcmVsUHVi aWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpKTsKKwkJ TGlzdAkgICAqcmVsUHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRS ZWxpZChyZWwpLCBmYWxzZSk7CiAKIAkJZm9yZWFjaChsYywgcmVsUHViaWRzKQogCQl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCA5YzUxYTRkYjhiLi5jNDQ2ZjEzNGEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTQ1OSw3 ICs0NTksNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCXRyYW5zZm9ybV9lbGVtZW50 X2xpc3QgdHJhbnNmb3JtX3R5cGVfbGlzdAogCQkJCVRyaWdnZXJUcmFuc2l0aW9ucyBUcmlnZ2Vy UmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlzdCBvcHRfdmFjdXVtX3JlbGF0aW9u X2xpc3QKLQkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdAorCQkJCWRyb3Bfb3B0aW9u X2xpc3QgcHViX29ial9saXN0IGV4Y2VwdF9wdWJfb2JqX2xpc3QKIAogJXR5cGUgPG5vZGU+CW9w dF9yb3V0aW5lX2JvZHkKICV0eXBlIDxncm91cGNsYXVzZT4gZ3JvdXBfY2xhdXNlCkBAIC01OTMs NiArNTkzLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPgl2YXJfdmFs dWUgem9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lkZW50IFJvbGVTcGVjIG9wdF9n cmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBQdWJsaWNhdGlvbk9ialNw ZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3Bl YwogCiAldHlwZSA8a2V5d29yZD4gdW5yZXNlcnZlZF9rZXl3b3JkIHR5cGVfZnVuY19uYW1lX2tl eXdvcmQKICV0eXBlIDxrZXl3b3JkPiBjb2xfbmFtZV9rZXl3b3JkIHJlc2VydmVkX2tleXdvcmQK QEAgLTEwNDE4LDcgKzEwNDE5LDcgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBh Z2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogICoKICAqIENSRUFURSBQ VUJMSUNBVElPTiBuYW1lIFtXSVRIIG9wdGlvbnNdCiAgKgotICogQ1JFQVRFIFBVQkxJQ0FUSU9O IEZPUiBBTEwgVEFCTEVTIFtXSVRIIG9wdGlvbnNdCisgKiBDUkVBVEUgUFVCTElDQVRJT04gRk9S IEFMTCBUQUJMRVMgW0VYQ0VQVCBbVEFCTEVdIHRhYmxlIFssIC4uLl1dIFtXSVRIIG9wdGlvbnNd CiAgKgogICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBwdWJfb2JqIFssIC4uLl0gW1dJVEggb3B0 aW9uc10KICAqCkBAIC0xMDQzOCwxMiArMTA0MzksMTMgQEAgQ3JlYXRlUHVibGljYXRpb25TdG10 OgogCQkJCQluLT5vcHRpb25zID0gJDQ7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0J CQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwgVEFCTEVTIG9wdF9kZWZpbml0aW9u CisJCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwgVEFCTEVTIGV4Y2VwdF9wdWJf b2JqX2xpc3Qgb3B0X2RlZmluaXRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVB1YmxpY2F0aW9uU3Rt dCAqbiA9IG1ha2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3RtdCk7CiAKIAkJCQkJbi0+cHVibmFt ZSA9ICQzOwotCQkJCQluLT5vcHRpb25zID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAkODsKKwkJ CQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopJDc7CiAJCQkJCW4tPmZvcl9hbGxfdGFibGVzID0g dHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KQEAgLTEwNDgxLDYgKzEwNDgzLDcg QEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDI7 CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwogCQkJCQkkJC0+cHVidGFibGUtPndo ZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCXwgQUxM IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZAogCQkJCXsKQEAgLTEwNTU2LDYgKzEwNTU5LDI1IEBA IHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpTcGVjCiAJCQkJCXsgJCQgPSBsYXBwZW5kKCQx LCAkMyk7IH0KIAk7CiAKK0V4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYzoKKwkJCSByZWxhdGlvbl9l eHByCisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJ CSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOworCQkJCQkkJC0+ cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxl LT5leGNlcHQgPSB0cnVlOworCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7CisJCQkJ CSQkLT5sb2NhdGlvbiA9IEAxOworCQkJCX0KKwk7CisKK2V4Y2VwdF9wdWJfb2JqX2xpc3Q6CUVY Q0VQVCBvcHRfdGFibGUgRXhjZXB0UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsaXN0 X21ha2UxKCQzKTsgfQorCQkJfCBleGNlcHRfcHViX29ial9saXN0ICcsJyBFeGNlcHRQdWJsaWNh dGlvbk9ialNwZWMKKwkJCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCQkJfCAgLypFTVBU WSovCQkJCQkJCQl7ICQkID0gTlVMTDsgfQorCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAg KgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgKCBvcHRpb25zICkKQEAgLTEwNTY4LDYg KzEwNTkwLDggQEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKICAqCiAgKiBBTFRF UiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBB REQgQUxMIFRBQkxFUyBFWENFUFQgW1RBQkxFXSB0YWJsZV9uYW1lIFssIC4uLl0KKyAqCiAgKiBw dWJfb2JqIGlzIG9uZSBvZjoKICAqCiAgKgkJVEFCTEUgdGFibGVfbmFtZSBbLCAuLi5dCkBAIC0x MDU5NCw2ICsxMDYxOCwxNSBAQCBBbHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+YWN0aW9u ID0gQVBfQWRkT2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxU RVIgUFVCTElDQVRJT04gbmFtZSBBRERfUCBBTEwgVEFCTEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3QK KwkJCQl7CisJCQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJs aWNhdGlvblN0bXQpOworCQkJCQluLT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPnB1Ym9iamVjdHMg PSAkNzsKKwkJCQkJbi0+Zm9yX2FsbF90YWJsZXMgPSB0cnVlOworCQkJCQluLT5hY3Rpb24gPSBB UF9BZGRPYmplY3RzOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFBV QkxJQ0FUSU9OIG5hbWUgU0VUIHB1Yl9vYmpfbGlzdAogCQkJCXsKIAkJCQkJQWx0ZXJQdWJsaWNh dGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCBhM2MxYmE4YTQwLi5iZTg2 ZDRiZWI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMK QEAgLTIwMTEsNyArMjAxMSw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRh dGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCWlmICghZW50cnktPnJlcGxpY2F0ZV92YWxpZCkKIAl7 CiAJCU9pZAkJCXNjaGVtYUlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpOwotCQlMaXN0CSAg ICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJCUxpc3QJICAgKnB1 YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CisJCUxpc3QJICAg KmV4Y2VwdFRhYmxlUHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIHRydWUp OwogCiAJCS8qCiAJCSAqIFdlIGRvbid0IGFjcXVpcmUgYSBsb2NrIG9uIHRoZSBuYW1lc3BhY2Ug c3lzdGVtIHRhYmxlIGFzIHdlIGJ1aWxkCkBAIC0yMTAwLDIyICsyMTAxLDYgQEAgZ2V0X3JlbF9z eW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCQlPaWQJ CQlwdWJfcmVsaWQgPSByZWxpZDsKIAkJCWludAkJCWFuY2VzdG9yX2xldmVsID0gMDsKIAotCQkJ LyoKLQkJCSAqIElmIHRoaXMgaXMgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiwgcGljayB0 aGUgcGFydGl0aW9uCi0JCQkgKiByb290IGFuZCBzZXQgdGhlIGFuY2VzdG9yIGxldmVsIGFjY29y ZGluZ2x5LgotCQkJICovCi0JCQlpZiAocHViLT5hbGx0YWJsZXMpCi0JCQl7Ci0JCQkJcHVibGlz aCA9IHRydWU7Ci0JCQkJaWYgKHB1Yi0+cHVidmlhcm9vdCAmJiBhbV9wYXJ0aXRpb24pCi0JCQkJ ewotCQkJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBnZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxp ZCk7Ci0KLQkJCQkJcHViX3JlbGlkID0gbGxhc3Rfb2lkKGFuY2VzdG9ycyk7Ci0JCQkJCWFuY2Vz dG9yX2xldmVsID0gbGlzdF9sZW5ndGgoYW5jZXN0b3JzKTsKLQkJCQl9Ci0JCQl9Ci0KIAkJCWlm ICghcHVibGlzaCkKIAkJCXsKIAkJCQlib29sCQlhbmNlc3Rvcl9wdWJsaXNoZWQgPSBmYWxzZTsK QEAgLTIxMzQsNyArMjExOSw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRh dGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0gR2V0VG9wTW9zdEFuY2Vz dG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJCSAgIGFuY2VzdG9ycywK LQkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwsCisJ CQkJCQkJCQkJCQkJCQkgICBwdWItPmFsbHRhYmxlcyk7CiAKIAkJCQkJaWYgKGFuY2VzdG9yICE9 IEludmFsaWRPaWQpCiAJCQkJCXsKQEAgLTIxNDksNiArMjEzNSw4IEBAIGdldF9yZWxfc3luY19l bnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJaWYgKGxp c3RfbWVtYmVyX29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAogCQkJCQlsaXN0X21lbWJlcl9vaWQo c2NoZW1hUHViaWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKHB1Yi0+YWxsdGFibGVzICYmCisJCQkJ CSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdFRhYmxlUHViaWRzLCBwdWItPm9pZCkpIHx8CiAJCQkJ CWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJcHVibGlzaCA9IHRydWU7CiAJCQl9CkBAIC0yMjI0 LDYgKzIyMTIsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxh dGlvbiByZWxhdGlvbikKIAogCQlsaXN0X2ZyZWUocHViaWRzKTsKIAkJbGlzdF9mcmVlKHNjaGVt YVB1Ymlkcyk7CisJCWxpc3RfZnJlZShleGNlcHRUYWJsZVB1Ymlkcyk7CiAJCWxpc3RfZnJlZShy ZWxfcHVibGljYXRpb25zKTsKIAogCQllbnRyeS0+cmVwbGljYXRlX3ZhbGlkID0gdHJ1ZTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDAwZGMwZjI0MDMuLjcyNjNlZjRjZmEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTYxMSw2ICs1NjExLDggQEAgdm9pZAog UmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRp b25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9pZHM7CisJTGlzdAkgICAqYWxsdGFi bGVzcHVib2lkczsKKwlMaXN0CSAgICpleGNlcHRwdWJvaWRzID0gTklMOwogCUxpc3RDZWxsICAg KmxjOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJCXNjaGVtYWlkOwpAQCAtNTY0NCw3 ICs1NjQ2LDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlv biwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2MtPmNvbHNfdmFsaWRfZm9yX2Rl bGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZv LiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJcHVib2lk cyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CiAJc2NoZW1haWQgPSBS ZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJcHVib2lkcyA9IGxpc3RfY29uY2F0X3Vu aXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlkKSk7CiAKQEAg LTU2NTgsMTQgKzU2NjAsMTkgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlv biByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQkJT2lkCQkJYW5jZXN0b3Ig PSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQo cHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKSk7 CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpKTsK IAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpOwogCQkJcHVib2lkcyA9 IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJCQkJCQkJIEdldFNjaGVtYVB1 YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0cHVib2lkcyA9IGxpc3RfY29uY2F0X3Vu aXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJCQkJCSAgIEdldFJlbGF0aW9uUHVibGlj YXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJCX0KIAl9Ci0JcHVib2lkcyA9IGxpc3RfY29uY2F0 X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVzUHVibGljYXRpb25zKCkpOwogCisJYWxs dGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpOworCXB1Ym9pZHMgPSBs aXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCisJCQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNl X29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJCQkJCQkJCQkJCQkgZXhjZXB0cHVib2lkcykpOwog CWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewogCQlPaWQJCQlwdWJpZCA9IGxmaXJzdF9vaWQobGMp OwpAQCAtNTY5NCw3ICs1NzAxLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxh dGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQlpZiAoIXB1YmZvcm0t PnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJk ZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0 aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJ CQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+cHViYWxsdGFibGVzKSkKIAkJ ewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJkZXNjLT5yZl92YWxpZF9mb3Jf dXBkYXRlID0gZmFsc2U7CkBAIC01NzExLDcgKzU3MTgsNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGlj YXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJ CWlmICghcHViZm9ybS0+cHViYWxsdGFibGVzICYmCiAJCQkocHViZm9ybS0+cHVidXBkYXRlIHx8 IHB1YmZvcm0tPnB1YmRlbGV0ZSkgJiYKIAkJCXB1Yl9jb2xsaXN0X2NvbnRhaW5zX2ludmFsaWRf Y29sdW1uKHB1YmlkLCByZWxhdGlvbiwgYW5jZXN0b3JzLAotCQkJCQkJCQkJCQkJcHViZm9ybS0+ cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJCQlwdWJmb3JtLT5wdWJ2aWFyb290LCBwdWJmb3JtLT5w dWJhbGx0YWJsZXMpKQogCQl7CiAJCQlpZiAocHViZm9ybS0+cHVidXBkYXRlKQogCQkJCXB1YmRl c2MtPmNvbHNfdmFsaWRfZm9yX3VwZGF0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggZGE2NjA1 MTc1YS4uYWYxYjNhYjY1NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xMjcsNiArMTI3LDggQEAgc3RhdGlj IFNpbXBsZU9pZExpc3QgZm9yZWlnbl9zZXJ2ZXJzX2luY2x1ZGVfb2lkcyA9IHtOVUxMLCBOVUxM fTsKIHN0YXRpYyBTaW1wbGVTdHJpbmdMaXN0IGV4dGVuc2lvbl9pbmNsdWRlX3BhdHRlcm5zID0g e05VTEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZU9pZExpc3QgZXh0ZW5zaW9uX2luY2x1ZGVfb2lk cyA9IHtOVUxMLCBOVUxMfTsKIAorc3RhdGljIFNpbXBsZVB0ckxpc3QgZXhjZXB0aW5mbyA9IHtO VUxMLCBOVUxMfTsKKwogc3RhdGljIGNvbnN0IENhdGFsb2dJZCBuaWxDYXRhbG9nSWQgPSB7MCwg MH07CiAKIC8qIG92ZXJyaWRlIGZvciBzdGFuZGFyZCBleHRyYV9mbG9hdF9kaWdpdHMgc2V0dGlu ZyAqLwpAQCAtNDAwOSw4ICs0MDExLDM0IEBAIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0 LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pCiAJCQkJCSAgcXB1Ym5hbWUpOwogCiAJ aWYgKHB1YmluZm8tPnB1YmFsbHRhYmxlcykKKwl7CisJCVNpbXBsZVB0ckxpc3RDZWxsICpjZWxs OworCQlib29sCQlmaXJzdCA9IHRydWU7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks ICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0YWJsZXMgaWYg dGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICovCisJCWZvciAoY2VsbCA9IGV4Y2Vw dGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsKKwkJCVB1YmxpY2F0aW9u UmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJbmZvICopIGNlbGwtPnB0cjsKKwkJ CVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0gcHVicmluZm8tPnB1Ymxp Y2F0aW9uKQorCQkJeworCQkJCXRiaW5mbyA9IHB1YnJpbmZvLT5wdWJ0YWJsZTsKKworCQkJCWlm IChmaXJzdCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQ VCBUQUJMRSIpOworCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCX0KKwkJCQllbHNlCisJCQkJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCIpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIE9OTFkgJXMiLCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsKKwkJCX0KKwkJ fQorCX0KKwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIFdJVEggKHB1Ymxpc2ggPSAn Iik7CiAJaWYgKHB1YmluZm8tPnB1Ymluc2VydCkKIAl7CkBAIC00MTgwLDYgKzQyMDgsNyBAQCBn ZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKQogCWludAkJCWlfcHJyZWxpZDsKIAlpbnQJCQlpX3BycmVscXVhbDsKIAlp bnQJCQlpX3ByYXR0cnM7CisJaW50CQkJaV9wcmV4Y2VwdDsKIAlpbnQJCQlpLAogCQkJCWosCiAJ CQkJbnR1cHM7CkBAIC00MTkxLDggKzQyMjAsMTcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJj aGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAogCS8qIENv bGxlY3QgYWxsIHB1YmxpY2F0aW9uIG1lbWJlcnNoaXAgaW5mby4gKi8KIAlpZiAoZm91dC0+cmVt b3RlVmVyc2lvbiA+PSAxNTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwK KwkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLFxuIik7CisK KwkJLyogRklYTUU6IDE1MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxNjAwMDAgbGF0ZXIgZm9y IFBHMTYuICovCisJCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKKwkJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHByZXhjZXB0LFxuIik7CisJCWVsc2UKKwkJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIGZhbHNlIEFTIHByZXhjZXB0LFxuIik7CisKIAkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwg cHJwdWJpZCwgcHJyZWxpZCwgIgogCQkJCQkJCSAicGdfY2F0YWxvZy5wZ19nZXRfZXhwcihwcnF1 YWwsIHBycmVsaWQpIEFTIHBycmVscXVhbCwgIgogCQkJCQkJCSAiKENBU0VcbiIKIAkJCQkJCQkg IiAgV0hFTiBwci5wcmF0dHJzIElTIE5PVCBOVUxMIFRIRU5cbiIKQEAgLTQyMDMsNiArNDI0MSw3 IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZv W10sIGludCBudW1UYWJsZXMpCiAJCQkJCQkJICIgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBy cmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJICIgIEVMU0UgTlVMTCBF TkQpIHByYXR0cnMgIgogCQkJCQkJCSAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3Jl bCBwciIpOworCX0KIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJ CSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKQEAgLTQyMTgsNiAr NDI1Nyw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0 YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaV9wcnJlbGlkID0gUFFmbnVtYmVyKHJlcywgInBy cmVsaWQiKTsKIAlpX3BycmVscXVhbCA9IFBRZm51bWJlcihyZXMsICJwcnJlbHF1YWwiKTsKIAlp X3ByYXR0cnMgPSBQUWZudW1iZXIocmVzLCAicHJhdHRycyIpOworCWlfcHJleGNlcHQgPSBQUWZu dW1iZXIocmVzLCAicHJleGNlcHQiKTsKIAogCS8qIHRoaXMgYWxsb2NhdGlvbiBtYXkgYmUgbW9y ZSB0aGFuIHdlIG5lZWQgKi8KIAlwdWJyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihQ dWJsaWNhdGlvblJlbEluZm8pKTsKQEAgLTQyMjksNiArNDI2OSw3IEBAIGdldFB1YmxpY2F0aW9u VGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMp CiAJCU9pZAkJCXBycmVsaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxpZCkp OwogCQlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm87CiAJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKwkJ Y2hhcgkgICAqcHJleGNlcHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJleGNl cHQpKTsKIAogCQkvKgogCQkgKiBJZ25vcmUgYW55IGVudHJpZXMgZm9yIHdoaWNoIHdlIGFyZW4n dCBpbnRlcmVzdGVkIGluIGVpdGhlciB0aGUKQEAgLTQyNDksNyArNDI5MCwxMSBAQCBnZXRQdWJs aWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVt VGFibGVzKQogCQkJY29udGludWU7CiAKIAkJLyogT0ssIG1ha2UgYSBEdW1wYWJsZU9iamVjdCBm b3IgdGhpcyByZWxhdGlvbnNoaXAgKi8KLQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9f UFVCTElDQVRJT05fUkVMOworCQlpZiAoc3RyY21wKHByZXhjZXB0LCAiZiIpID09IDApCisJCQlw dWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7CisJCWVsc2UKKwkJ CXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw7CisK IAkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJsZW9pZCA9CiAJCQlhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKIAkJcHVicmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBh dG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CkBAIC00Mjg4LDYgKzQzMzMsOSBAQCBn ZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKQogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8K IAkJc2VsZWN0RHVtcGFibGVQdWJsaWNhdGlvbk9iamVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBm b3V0KTsKIAorCQlpZiAoc3RyY21wKHByZXhjZXB0LCAidCIpID09IDApCisJCQlzaW1wbGVfcHRy X2xpc3RfYXBwZW5kKCZleGNlcHRpbmZvLCAmcHVicmluZm9bal0pOworCiAJCWorKzsKIAl9CiAK QEAgLTk5NzUsNiArMTAwMjMsOSBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwg RHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fUFVCTElDQVRJT046CiAJCQlkdW1wUHVi bGljYXRpb24oZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFr OworCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CisJCQkvKiB3aWxsIGJlIGR1bXBl ZCBpbiBkdW1wUHVibGljYXRpb24gKi8KKwkJCWJyZWFrOwogCQljYXNlIERPX1BVQkxJQ0FUSU9O X1JFTDoKIAkJCWR1bXBQdWJsaWNhdGlvblRhYmxlKGZvdXQsIChjb25zdCBQdWJsaWNhdGlvblJl bEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTE3OTAwLDYgKzE3OTUxLDcgQEAgYWRkQm91 bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJ CQljYXNlIERPX0RFRkFVTFRfQUNMOgogCQkJY2FzZSBET19QT0xJQ1k6CiAJCQljYXNlIERPX1BV QkxJQ0FUSU9OOgorCQkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOgogCQkJY2FzZSBE T19QVUJMSUNBVElPTl9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVN QToKIAkJCWNhc2UgRE9fU1VCU0NSSVBUSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNjllZTkzOWQ0NC4u YTJhMWVjYzhlZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC04MCw2ICs4MCw3IEBAIHR5cGVkZWYgZW51bQog CURPX1JFRlJFU0hfTUFUVklFVywKIAlET19QT0xJQ1ksCiAJRE9fUFVCTElDQVRJT04sCisJRE9f UFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlET19QVUJMSUNBVElPTl9SRUwsCiAJRE9fUFVCTElD QVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCURPX1NVQlNDUklQVElPTgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29y dC5jCmluZGV4IDVkZTMyNDFlYjQuLmE2NTk1ZjI1YTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMK QEAgLTkwLDYgKzkwLDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19GS19D T05TVFJBSU5ULAogCVBSSU9fUE9MSUNZLAogCVBSSU9fUFVCTElDQVRJT04sCisJUFJJT19QVUJM SUNBVElPTl9FWENFUFRfUkVMLAogCVBSSU9fUFVCTElDQVRJT05fUkVMLAogCVBSSU9fUFVCTElD QVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVBSSU9fU1VCU0NSSVBUSU9OLApAQCAtMTQ0LDYgKzE0 NSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJUFJJT19S RUZSRVNIX01BVFZJRVcsCQkvKiBET19SRUZSRVNIX01BVFZJRVcgKi8KIAlQUklPX1BPTElDWSwJ CQkJLyogRE9fUE9MSUNZICovCiAJUFJJT19QVUJMSUNBVElPTiwJCQkvKiBET19QVUJMSUNBVElP TiAqLworCVBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwJLyogRE9fUFVCTElDQVRJT05fRVhD RVBUX1JFTCAqLwogCVBSSU9fUFVCTElDQVRJT05fUkVMLAkJLyogRE9fUFVCTElDQVRJT05fUkVM ICovCiAJUFJJT19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEsCS8qIERPX1BVQkxJQ0FUSU9O X1RBQkxFX0lOX1NDSEVNQSAqLwogCVBSSU9fU1VCU0NSSVBUSU9OCQkJLyogRE9fU1VCU0NSSVBU SU9OICovCkBAIC0xNDgzLDYgKzE0ODUsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1w YWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBVQkxJQ0FU SU9OIChJRCAlZCBPSUQgJXUpIiwKIAkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7 CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCXNucHJp bnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJQVUJMSUNBVElPTiBFWENFUFQgVEFCTEUgKElEICVk IE9JRCAldSkiLAorCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVy bjsKIAkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6CiAJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUs CiAJCQkJCSAiUFVCTElDQVRJT04gVEFCTEUgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbAppbmRleCBiMTBlMWM0YzBkLi45YzRjNTNhOGMzIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbApAQCAtMjQ1NCw2ICsyNDU0LDMyIEBAIG15ICV0ZXN0cyA9ICgKIAkJbGlrZSA9 PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVB VEUgUFVCTElDQVRJT04gcHViNScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0 ZV9zcWwgICA9PiAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IGR1bXBfdGVzdC50ZXN0X3RhYmxlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQ VUJMSUNBVElPTiBwdWI1IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIGR1bXBfdGVz dC50ZXN0X3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1 bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0 X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVt YSA9PiAxLAorCQkJZXhjbHVkZV90ZXN0X3RhYmxlICAgICAgID0+IDEsCisJCX0sCisJfSwKKwor CSdDUkVBVEUgUFVCTElDQVRJT04gcHViNicgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIGR1bXBfdGVzdC50ZXN0X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNvbmRf dGFibGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUsIE9O TFkgZHVtcF90ZXN0LnRlc3Rfc2Vjb25kX3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1 cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxf cnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1 ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJZXhjbHVkZV90ZXN0X3RhYmxlICAgICAgID0+ IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3Jl YXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04g c3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCAzMjdhNjk0ODdiLi43YjI0MzgwZWRjIDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjk4 MywxNyArMjk4MywzNiBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hl bWFuYW1lLAogCQkJCQkJCQkgICIgICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlk IEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVM TCBFTkQpICIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIK LQkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9O IHAub2lkID0gcHIucHJwdWJpZFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5w Z19jbGFzcyBjIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5w cnJlbGlkID0gJyVzJ1xuIgorCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNh dGlvbl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBw Z19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAg IldIRVJFIHByLnBycmVsaWQgPSAnJXMnXG4iLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOwor CisJCQkJLyogRklYTUU6IDE1MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxNjAwMDAgbGF0ZXIg Zm9yIFBHMTYuICovCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAi U0VMRUNUIHB1Ym5hbWVcbiIKLQkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKLQkJCQkJCQkJICAi ICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5V TExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJ CQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25f aXNfcHVibGlzaGFibGUoJyVzJylcbiIKLQkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAotCQkJCQkJ CQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7CisJCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVz IEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iLAorCQkJ CQkJCQkgIG9pZCk7CisKKwkJCQkvKiBGSVhNRTogMTUwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRv IDE2MDAwMCBsYXRlciBmb3IgUEcxNi4gKi8KKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAw MDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCQkgICIgICAgIEFORCBO T1QgRVhJU1RTIChcbiIKKwkJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKKwkJCQkJCQkJCSAgIgkJ RlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgorCQkJCQkJCQkJICAiCQlK T0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKKwkJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxp ZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQg cHIucHJwdWJpZCA9IHAub2lkKVxuIiwKKwkJCQkJCQkJCSAgb2lkKTsKKworCQkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxOyIpOwogCQkJfQogCQkJZWxzZQogCQkJewpA QCAtNjQxNyw4ICs2NDM2LDEzIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBh dHRlcm4pCiAJCQkJCQkJICAiICAgICBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxu IgogCQkJCQkJCSAgIldIRVJFIGMucmVsbmFtZXNwYWNlID0gbi5vaWRcbiIKIAkJCQkJCQkgICIg IEFORCBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJCQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0g JyVzJ1xuIgotCQkJCQkJCSAgIk9SREVSIEJZIDEsMiIsIHB1YmlkKTsKKwkJCQkJCQkgICIgIEFO RCBwci5wcnB1YmlkID0gJyVzJ1xuIiwgcHViaWQpOworCisJCQkvKiBGSVhNRTogMTUwMDAwIHNo b3VsZCBiZSBjaGFuZ2VkIHRvIDE2MDAwMCBsYXRlciBmb3IgUEcxNi4gKi8KKwkJCWlmIChwc2V0 LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICBBTkQg Tk9UIHByLnByZXhjZXB0XG4iKTsKKworCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIk9SREVS IEJZIDEsMiIpOwogCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJU YWJsZXM6IiksIGZhbHNlLCAmY29udCkpCiAJCQkJZ290byBlcnJvcl9yZXR1cm47CiAKQEAgLTY0 MzYsNiArNjQ2MCwyNCBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJu KQogCQkJCQlnb3RvIGVycm9yX3JldHVybjsKIAkJCX0KIAkJfQorCQllbHNlCisJCXsKKwkJCS8q IEZJWE1FOiAxNTAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTYwMDAwIGxhdGVyIGZvciBQRzE2 LiAqLworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJeworCQkJCS8qIEdldCB0 aGUgZXhjbHVkZWQgdGFibGVzIGZvciB0aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQkJ cHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5h bWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFs b2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJ CQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkgICIgIEFORCBwci5wcmV4 Y2VwdFxuIgorCQkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOworCQkJCWlmICghYWRkRm9v dGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKKwkJCQkJCQkJ CQkJCXRydWUsICZjb250KSkKKwkJCQkJZ290byBlcnJvcl9yZXR1cm47CisJCQl9CisJCX0KIAog CQlwcmludFRhYmxlKCZjb250LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7 CiAJCXByaW50VGFibGVDbGVhbnVwKCZjb250KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCA5Y2VhZTNh NDcwLi5mMDAyOTk2ODNlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMK KysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xODIwLDkgKzE4MjAsMTMgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJ Q09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlJF U0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNl IGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCi0J CUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJCUNPTVBM RVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIkFMTCBUQUJMRVMiLCAiVEFCTEUiKTsK KwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE IiwgIkFMTCIsICJUQUJMRVMiKSkKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBUIFRBQkxFIiwgIklO IFNDSEVNQSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgfHwKLQkJCSAoSGVhZE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKKwkJCSBNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIkFMTCIsICJUQUJM RVMiLCAiRVhDRVBUIiwgIlRBQkxFIikgfHwKKwkJCSAoKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQ VUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpIHx8CisJCQkgICBIZWFk TWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAi VEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKSAmJgogCQkJICBlbmRzX3dpdGgocHJldl93ZCwg JywnKSkpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Rh Ymxlcyk7CiAKQEAgLTI5ODIsNyArMjk4Niw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFy ICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIikpCiAJCUNPTVBMRVRFX1dJVEgo IlRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRF IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIpKQotCQlD T01QTEVURV9XSVRIKCJJTiBTQ0hFTUEiLCAiV0lUSCAoIik7CisJCUNPTVBMRVRFX1dJVEgoIklO IFNDSEVNQSIsICJXSVRIICgiLCAiRVhDRVBUIFRBQkxFIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEUiLCBNYXRjaEFu eSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCJXSEVSRSAo IiwgIldJVEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5hbWU+IEZP UiBUQUJMRSIgd2l0aCAiPHRhYmxlPiwgLi4uIiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oCmluZGV4IGMyOTgzMjdmNWUuLmY5NTAxMmJmMDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgKQEAgLTEwOCwxMSArMTA4LDEyIEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uUmVsSW5mbwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCU5vZGUJICAgKndoZXJlQ2xhdXNl OwogCUxpc3QJICAgKmNvbHVtbnM7CisJYm9vbAkJZXhjZXB0OwogfSBQdWJsaWNhdGlvblJlbElu Zm87CiAKIGV4dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4 dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb25CeU5hbWUoY29uc3QgY2hhciAqcHVibmFt ZSwgYm9vbCBtaXNzaW5nX29rKTsKLWV4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhPaWQgcmVsaWQpOworZXh0ZXJuIExpc3QgKkdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCwgYm9vbCBleGNlcHRfZmxhZyk7CiAKIC8qLS0tLS0tLS0tCiAgKiBFeHBlY3RlZCB2YWx1 ZXMgZm9yIHB1Yl9wYXJ0b3B0IHBhcmFtZXRlciBvZiBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucygp LApAQCAtMTMyLDcgKzEzMyw3IEBAIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvblBhcnRPcHQKIAog ZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRp b25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKIGV4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNh dGlvbnModm9pZCk7Ci1leHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlv bnMoYm9vbCBwdWJ2aWFyb290KTsKK2V4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNhdGlv blJlbGF0aW9ucyhPaWQgcHViaWQsIGJvb2wgcHVidmlhcm9vdCk7CiBleHRlcm4gTGlzdCAqR2V0 UHVibGljYXRpb25TY2hlbWFzKE9pZCBwdWJpZCk7CiBleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVi bGljYXRpb25zKE9pZCBzY2hlbWFpZCk7CiBleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVibGljYXRp b25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLApAQCAtMTQzLDcgKzE0NCw3IEBAIGV4dGVybiBMaXN0 ICpHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMoTGlzdCAqcmVzdWx0LAogCQkJCQkJCQkJ CQlQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCiAJCQkJCQkJCQkJCU9pZCByZWxpZCk7 CiBleHRlcm4gT2lkCUdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwg TGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsKTsKKwkJCQkJ CQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0YWJsZXMpOwogCiBleHRlcm4g Ym9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJvb2wg aXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbl9yZWwuaAppbmRleCBlY2QzNzM5ZjFhLi4yOGEzM2ZmMTdhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKQEAgLTMxLDYgKzMxLDcgQEAgQ0FUQUxP RyhwZ19wdWJsaWNhdGlvbl9yZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lk CQkJb2lkOwkJCS8qIG9pZCAqLwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNh dGlvbik7IC8qIE9pZCBvZiB0aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9M T09LVVAocGdfY2xhc3MpOwkvKiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNl cHQgQktJX0RFRkFVTFQoZik7CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiAKICNpZmRlZglD QVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwog CXBnX25vZGVfdHJlZSBwcnF1YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuaAppbmRleCA1N2RmM2ZjMWUzLi5lNGU0ZWQxN2FiIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAorKysgYi9zcmMv aW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaApAQCAtMzIsOCArMzIsMTEgQEAgZXh0 ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJQdWJsaWNhdGlvbk93bmVyKGNvbnN0IGNoYXIgKm5hbWUs IE9pZCBuZXdPd25lcklkKTsKIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb25Pd25lcl9vaWQo T2lkIHB1YmlkLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHVibGlj YXRpb25SZWxzKExpc3QgKnJlbGlkcyk7CiBleHRlcm4gYm9vbCBwdWJfcmZfY29udGFpbnNfaW52 YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBM aXN0ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCk7CisJCQkJCQkJCQkJICAgTGlzdCAqYW5j ZXN0b3JzLCBib29sIHB1YnZpYXJvb3QsCisJCQkJCQkJCQkJICAgYm9vbCBwdWJhbGx0YWJsZXMp OwogZXh0ZXJuIGJvb2wgcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1 YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywgYm9v bCBwdWJ2aWFyb290KTsKKwkJCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywKKwkJCQkJCQkJCQkJ CWJvb2wgcHVidmlhcm9vdCwKKwkJCQkJCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzKTsKIAogI2Vu ZGlmCQkJCQkJCS8qIFBVQkxJQ0FUSU9OQ01EU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5k ZXggZjdiNDc0MmI3Ni4uOWY2ZWRmZWJhZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDAx Nyw2ICs0MDE3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogCVJhbmdlVmFy ICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gYmUgcHVibGlzaGVkICovCiAJTm9kZQkgICAq d2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCiAJTGlzdAkgICAqY29sdW1uczsJCS8q IExpc3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0aW9uIHRhYmxlICovCisJYm9vbAkJZXhjZXB0 OwkJCS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiB9IFB1YmxpY2F0aW9uVGFibGU7CiAKIC8q CkBAIC00MDI1LDYgKzQwMjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRhYmxlCiB0 eXBlZGVmIGVudW0gUHVibGljYXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FUSU9OT0JKX1RB QkxFLAkJLyogQSB0YWJsZSAqLworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSwJCS8qIEEg dGFibGUgdG8gYmUgZXhjbHVkZWQgKi8KIAlQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1B LAkvKiBBbGwgdGFibGVzIGluIHNjaGVtYSAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9D VVJfU0NIRU1BLAkvKiBBbGwgdGFibGVzIGluIGZpcnN0IGVsZW1lbnQgb2YKIAkJCQkJCQkJCQkJ ICogc2VhcmNoX3BhdGggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQKaW5kZXggMDk3ZWZhNzA4Zi4uNDllYmI4ZWVmMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTE2NSwxMyArMTY1LDM3IEBAIFB1YmxpY2F0aW9uczoK ICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgogKDEgcm93KQogCitTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJs ZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMSwg dGVzdHB1Yl90YmwyOworLS0gc3BlY2lmeSBFWENFUFQgd2l0aG91dCBUQUJMRQorQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxF UyBFWENFUFQgdGVzdHB1Yl90YmwxOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK1xkUnAr IHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAg InB1YmxpYy50ZXN0cHViX3RibDEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDIiCisKK1xkUnAr IHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAg ICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKLURST1Ag UFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3Rw dWJfZm9yc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVz dHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4 Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBDUkVBVEUgVEFC TEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0 ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0g J0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90 YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJf dGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQg VEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwg VEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9taW5f bWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1YjMKQEAgLTE5MCw4ICsyMTQsMjUgQEAgVGFibGVzOgog VGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgogCitcZFJwKyB0ZXN0cHViNQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVz OgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzYSIK KworXGRScCsgdGVzdHB1YjYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWI2CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKwogRFJP UCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0 ZXN0cHViNSwgdGVzdHB1YjY7CiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JwYXJ0ZWQ7CkBAIC0xNjU2LDkgKzE2OTcsMTUgQEAgRFJPUCBTQ0hFTUEgc2NoMiBjYXNj YWRlOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRFIFND SEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitDUkVB VEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMg PSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJM RVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJM RSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJS T1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBk ZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMg ZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFz c29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNl dCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJl c2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CkBAIC0xNjc1LDcgKzE3MjIsMjQgQEAgQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKICByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgZgogKDEgcm93KQogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5nIHRoZSBw dWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxF UyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsKK1xkUnArIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBm CitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorICAgICJwdWJfc2NoMS50Ymwy IgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKKy0tIENhbid0IGFk ZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRi bDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0 byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxM IFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91 bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VU IHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0 ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnArIHRl c3RwdWJfcmVzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWJfcmVzZXQKQEAgLTE2OTQsNiArMTc1OCwxMSBAQCBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IFJFU0VUOwogKDEgcm93KQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CistLSBDYW4ndCBhZGQgRVhD RVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBw dWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVi bGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RF VEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3Nj aGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9O IC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0aGF0IHNjaGVt YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNF VAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTcxMiw2ICsxNzgxLDEyIEBAIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworLS0gQ2FuJ3QgYWRkIEVYQ0VQ VCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFyYW1ldGVyIGRvZXMgbm90IGhhdmUgZGVmYXVs dAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJM RVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVT IHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFy YW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0 IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2Ug QUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0g VmVyaWZ5IHRoYXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9y ZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9yZXNldApAQCAtMTcyOSw2ICsxODA0LDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBDYW4ndCBhZGQg RVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIg ZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9S OiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVm YXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZs YWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3Nv Y2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQg dGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JP T1QnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTc1MCw5 ICsxODMxLDEzIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjI7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOyAtLSBmYWlsIC0gbXVz dCBiZSBzdXBlcnVzZXIKIEVSUk9SOiAgbXVzdCBiZSBzdXBlcnVzZXIgdG8gUkVTRVQgcHVibGlj YXRpb24KKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiBBREQgQUxMIFRBQkxFUwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsgCitFUlJPUjog IG11c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgog U0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2No MS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T047CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDcyNzY1OTk0 ZGQuLmUzNzI4NGViN2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTg5 LDIwICs4OSwzMyBAQCBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFibGVzIEZST00gcGdfcHVibGlj YXRpb24gV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2ZvcmFsbAogXGQrIHRlc3RwdWJfdGJsMgog XGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAn RVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRh YmxlIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJs MjsKKy0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHRl c3RwdWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKK1xkUnArIHRlc3RwdWJf Zm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNl cHR0YWJsZTEKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYTsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUs IHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSwgdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxOwogCiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90 YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklU UyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1 Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBc ZFJwKyB0ZXN0cHViMwogXGRScCsgdGVzdHB1YjQKK1xkUnArIHRlc3RwdWI1CitcZFJwKyB0ZXN0 cHViNgogCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMywgdGVzdHB1Yl90YmwzYTsKLURST1AgUFVC TElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywg dGVzdHB1YjQsIHRlc3RwdWI1LCB0ZXN0cHViNjsKIAogLS0gVGVzdHMgZm9yIHBhcnRpdGlvbmVk IHRhYmxlcwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwpAQCAtMTA2MCwxNyAr MTA3MywzMCBAQCBEUk9QIFNDSEVNQSBzY2gyIGNhc2NhZGU7CiAtLSBUZXN0cyBmb3IgQUxURVIg UFVCTElDQVRJT04gLi4uIFJFU0VUCiBDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOwogQ1JFQVRFIFRB QkxFIHB1Yl9zY2gxLnRibDEgKGEgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwyIChh IGludCk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTJyBw dWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxF UyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJM RVMnIGZsYWcgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAKKy0tIFNob3VsZCB3 b3JrIG5vdyBhZnRlciByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50Ymwx LCBwdWJfc2NoMS50YmwyOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOwogCistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRv ICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkg dGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBh ZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBSRVNFVDsKQEAgLTEwNzgsNiArMTEwNCw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQURE IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJM RSB0byAnRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEu dGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1Ymxp Y2F0aW9uIGFyZSBkcm9wcGVkIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTA4NSw2ICsxMTE0LDEwIEBA IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAKIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOwogCistLSBDYW4ndCBhZGQgRVhD RVBUIFRBQkxFIHdoZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9lcyBub3QgaGF2ZSBkZWZh dWx0CistLSB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRB QkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJ U0gnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTEwOTIsNiArMTEyNSwxMCBAQCBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOwogCist LSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09U JyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEu dGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJh bWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMTAxLDEwICsxMTM4LDE0IEBAIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsg LS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1 c2VyIGNhbiBBREQgQUxMIFRBQkxFUworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUzsKIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKIAogRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwor RFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiAKIFJFU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLjE3NWUzODM0MmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0wLDAg KzEsODAgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNl cHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1 c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9w dWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOwor JG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRu b2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5v ZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJl cicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2Fs Jyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGgg cHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFCisj IGNsYXVzZS4KKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBwdWJsaXNoZXIKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSBz Y2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEwKSBBUyBhIik7Ciskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgcHVibGljLnRh YjEoYSBpbnQpIik7CisKKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBzdWJzY3JpYmVy Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBTQ0hFTUEg c2NoMSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUg VEFCTEUgc2NoMS50YWIxIChhIGludCkiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxIChhIGludCkiKTsKKworIyBTZXR1 cCBsb2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJs aXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHNjaDEudGFiMSIpOworCiskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3Vi X3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9w dWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNo Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJs aXNoZXIsICd0YXBfc3ViX3NjaGVtYScpOworCisjIENoZWNrIHRoZSB0YWJsZSBkYXRhIGRvZXMg bm90IHN5bmMgZm9yIGV4Y2x1ZGVkIHRhYmxlCitteSAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgo YSkgRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayB0aGVyZSBp cyBubyBpbml0aWFsIGRhdGEgY29waWVkIGZvciB0aGUgZXhjbHVkZWQgdGFibGUnKTsKKworIyBJ bnNlcnQgc29tZSBkYXRhIGFuZCB2ZXJpZnkgdGhhdCBpbnNlcnRlZCBkYXRhIGlzIG5vdCByZXBs aWNhdGVkCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQg SU5UTyBzY2gxLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygxMSwyMCkpIik7CisKKyRub2Rl X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9zY2hlbWEnKTsKKworJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291 bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgw fHwpLCAnY2hlY2sgcmVwbGljYXRlZCBpbnNlcnRzIG9uIHN1YnNjcmliZXInKTsKKworIyBBbHRl ciBwdWJsaWNhdGlvbiB0byBleGNsdWRlIGRhdGEgY2hhbmdlcyBpbiBwdWJsaWMudGFiMSBhbmQg dmVyaWZ5IHRoYXQKKyMgc3Vic2NyaWJlciBkb2VzIG5vdCBnZXQgdGhlIGNoYW5nZWQgZGF0YSBm b3IgdGhpcyB0YWJsZS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisg ICAgICAgICJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBSRVNFVCIpOworJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAgICAgICAgIkFMVEVSIFBVQkxJQ0FU SU9OIHRhcF9wdWJfc2NoZW1hIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gxLnRhYjEs IHB1YmxpYy50YWIxIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor ICAgICAgICAiSU5TRVJUIElOVE8gcHVibGljLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3Nlcmllcygx LDEwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3Nj aGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBwdWJsaWMudGFiMSIp OworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJvd3Mgb24gc3Vic2NyaWJlciBjYXRjaHVw Jyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRub2RlX3B1Ymxpc2hlci0+ c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzIuMAoK --0000000000008bd6c605e5b59935--