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 1o0HN3-0002k9-Vi for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Jun 2022 06:46:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o0HN1-0008Hv-8G for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Jun 2022 06:46:47 +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 1o0HN0-0008Hi-GF for pgsql-hackers@lists.postgresql.org; Sun, 12 Jun 2022 06:46:46 +0000 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1o0HMw-0002Di-DU for pgsql-hackers@lists.postgresql.org; Sun, 12 Jun 2022 06:46:46 +0000 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-fe51318ccfso4673674fac.0 for ; Sat, 11 Jun 2022 23:46:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=L8Ptc7UOkCg/na6Tb4VTqyorC8Ir/Yig2yNZNYlio0w=; b=FxPlKNqfMP+9Pd2WJZMZpwyw7H8YuJJ4prQSdDm4LAh08LVMv0ken53DgXgqWLdBup aeJQqCqE/NSmEonxbltPyBAyKMTCcJO4jxoW0aw8P8+ES4DQY2/b1b7xRfsTIiTUBXl9 2MSZzA9DKYJtjEv2lZuV6iAan9OMzVEx2rImrRoqOkL00l89dop+rOtCcmmKVj3k13EA ff/aGmFl0AoiET0prVRhKwGbdjNmfXT2mTvHIJmgm4vgNhzn4sa8byQQo79F7QLrEvWf LutrXglTmSa82AHN2cQ9O68RkzCmbokiHigrYLmA7uk0RRggdbIHjewlamFqNQXAdOOf v8gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=L8Ptc7UOkCg/na6Tb4VTqyorC8Ir/Yig2yNZNYlio0w=; b=hPBDj2g1KmlOAhiKEexz2uZSvnW4vOmGoAL1anQGCZrAsTQSH9ubCF5N4O0I8eoioW Gs835CYwtN0ABbw9ojF4lwJdEoA2+tGPmeeD2QZ+IheeOFZ1RYI/weA/dFdksRhi/M/0 9qSk80+9zn+Iup0COM31B7syauUgNrMj83wD2xg+8Smy29AZaAXDzZP0LtusnHCxnC/F BVR0Dv6vBewHHrzKkCXTx2n5Q5Oh1Nmhutz3MPs8i8xgxjpb10PrB3dUMxnWrRaIFgEm f+mxKYUwzSHGjne7nB+m68rCZbW14YdKsISCaQHeebTXdIntiICCYNyVkicYhrQxwncZ u8YA== X-Gm-Message-State: AOAM530vKTNqWKzcXJaZcQHr7sdu1XpJqOkIW8J4decG/Sh99FmOILQf wBA0NdkieBfSEJlVTACSjrDtKXxOfcU2YLqumtE= X-Google-Smtp-Source: ABdhPJxC2sf52oC1TbjgPxoknJgASDOlr43OiAszczl+VbOWAZo6rrgje4l1fbTBVkTMfaxxICJ0M/NPRAbNs0YguTQ= X-Received: by 2002:a05:6870:1cb:b0:fe:f0b:e0ac with SMTP id n11-20020a05687001cb00b000fe0f0be0acmr4310074oad.5.1655016400058; Sat, 11 Jun 2022 23:46:40 -0700 (PDT) MIME-Version: 1.0 References: <202203162206.7spggyktx63e@alvherre.pgsql> In-Reply-To: From: Zheng Li Date: Sun, 12 Jun 2022 02:46:27 -0400 Message-ID: Subject: Re: Support logical replication of DDLs To: "houzj.fnst@fujitsu.com" Cc: Masahiko Sawada , Amit Kapila , Japin Li , Alvaro Herrera , Dilip Kumar , rajesh singarapu , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000009fcfad05e13a88b5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009fcfad05e13a88b5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > > > > > I've not looked at these patches in-depth yet but with this appro= ach, > > > > > what do you think we can handle the DDL syntax differences betwee= n > > > > > major versions? DDL syntax or behavior could be changed by future > > > > > changes and I think we need to somehow deal with the differences.= For > > > > > > > > > example, if the user uses logical replication for major version > > > > > upgrade, the publisher is older than the subscriber. We might hav= e to > > > > > rewrite the DDL before applying to the subscriber because the DDL > > > > > executed on the publisher no longer work on a new PostgreSQL vers= ion > > > > > > > > I don't think we will allow this kind of situation to happen in the > > > > first place for > > > > backward compatibility. If a DDL no longer works on a new version o= f > > > > PostgreSQL, the user will have to change the application code as we= ll. > > > > So even if it happens for > > > > whatever reason, we could either > > > > 1. fail the apply worker and let the user fix such DDL because they= 'll > > > > have to fix the application code anyway when this happens. > > > > 2. add guard rail logic in the apply worker to automatically fix su= ch > > > > DDL if possible, knowing the version of the source and target. Simi= lar > > > > logic must have been implemented for pg_dump/restore/upgrade. > > > > > > > > > or we might have to add some options to the DDL before the applic= ation > > > > > in order to keep the same behavior. This seems to require a diffe= rent > > > > > solution from what the patch does for the problem you mentioned s= uch > > > > > > > > > as "DDL involving multiple tables where only some tables are > > > > > replicated=E2=80=9D. > > > > > > > > First of all, this case can only happen when the customer chooses t= o > > > > only replicate a subset of the tables in a database in which case > > > > table level DDL replication is chosen instead of database level DDL > > > > replication (where all tables > > > > and DDLs are replicated). I think the solution would be: > > > > 1. make best effort to detect such DDLs on the publisher and avoid > > > > logging of such DDLs in table level DDL replication. > > > > 2. apply worker will fail to replay such command due to missing > > > > objects if such DDLs didn't get filtered on the publisher for some > > > > reason. This should be rare and I think it's OK even if it happens, > > > > we'll find out > > > > why and fix it. > > > > > > > > > > FWIW, both these cases could be handled with the deparsing approach, > > > and the handling related to the drop of multiple tables where only a > > > few are published is already done in the last POC patch shared by Aji= n > > > [1]. > > > > > > > Right. So I'm inclined to think that deparsing approach is better from > > this point as well as the point mentioned by =C3=81lvaro before[1]. > > I agree. One more point about deparsing approach is that it can also > help to replicate CREATE TABLE AS/SELECT INTO in a better way. > > The main idea of replicating the CREATE TABLE AS is that we deprase the C= REATE > TABLE AS into a simple CREATE TABLE(without subquery) command and WAL log= it > after creating the table and before writing data into the table and repli= cate > the incoming writes later as normal INSERTs. In this apporach, we don't e= xecute > the subquery on subscriber so that don't need to make sure all the object= s > referenced in the subquery also exists in subscriber. And This approach w= orks > for all kind of commands(e.g. CRAETE TABLE AS [SELECT][EXECUTE][VALUES]) > > One problem of this approach is that we cannot use the current trigger to > deparse or WAL log the CREATE TABLE. Because none of the even trigger is = fired > after creating the table and before inserting the data. To solve this, on= e idea > is that we could directly add some code at the end of create_ctas_interna= l() to > deparse and WAL log it. Moreover, we could even introduce a new type of e= vent > trigger(table_create) which would be fired at the expected timing so that= we > can use the trigger function to deparse and WAL log. I am not sure which = way is > better. I temporarily use the second idea which introduce a new type even= t > trigger in the 0003 POC patch. Hi, I agree that an intermediate structured format (with all objects schema qualified) makes it easier to handle syntax differences between the publisher and the subscriber. Such structured format is also likely easier to use by other logical replication consumers. However, to make things more maintainable, would it be better to use the existing serialization/deserialization functions in out/readfuncs.c to generate the parsetree representation of the DDL command? It turns out support for DDL commands are mostly missing in out/readfuncs at the moment. see the following comment from outfuncs.c: * Output support for raw parsetrees * is somewhat incomplete, too; in particular, utility statements are * almost entirely unsupported. We try to support everything that can * appear in a raw SELECT, though. So what about adding support for utility statements in out/readfuncs.c so that nodeToString()/stringToNode() works on raw parsetrees of utility statements? I think there'll be some benefits: 1. It's less code compared to introducing brand new serialization/deserialization code for DDL commands. 2. It's more maintainable since hackers are already familiar with out/readfuncs.c. 3. Support for utility statements in out/readfuncs.c may turn out to be useful for future features that need serialization/deserialization of DDL raw parsetrees. In patch 0012 I explored the above idea by changing the logging format of logical ddlmessage to that of the serialization of the raw parsetree of the DDL command using nodeToString(), the apply worker deserializes the message back to the raw parsetree by calling stringToNode(). Here are the detailed changes: - Adding serialization/deserialization functions in outfuncs.c/readfunc= s.c for CreateTableStmt, AlterTableStmt, DropStmt, CreateFunctionStmt and AlterFunctionStmt. - Modified the serialization process to always schema qualify object na= mes, this is done by outQualifiedName() and a change in _outRangeVar(). - Change the input of LogLogicalDDLMessage() to use nodeToString(parset= ree). - Change the apply worker to call stringToNode(ddlmessage) to get the raw parsetree back and then directly execute the parsetree. This patch doesn't introduce any deparsing functionality yet, but it also provides the flexibility to edit the command being replayed by directly modifying the raw parsetree on the apply worker (e.g. setting the missing_ok flag for DropStmt is equivalent to adding "IF EXIST" to the statement). Thoughts? Regards, Zheng Li --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0004-Enable-replication-of-CREATE-MATERIALIZED-VIEW-AS-st.patch" Content-Disposition: attachment; filename="0004-Enable-replication-of-CREATE-MATERIALIZED-VIEW-AS-st.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwp83 RnJvbSA5ZmFlNmY3N2VlZDE4NzliZWZhYmQwY2RkY2UyNDA2NWFmNzhhMTcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IFR1ZSwgMjIgTWFyIDIwMjIgMjM6NDc6NTIgKzAwMDAKU3ViamVjdDogW1BBVENIIDA0 LzEyXSBFbmFibGUgcmVwbGljYXRpb24gb2YgQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIEFTIHN0 bXQuCiBBZGQgdGVzdHMgZm9yIGJvdGggQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIGFuZCBDUkVB VEUgVklFVy4KCi0tLQogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgIHwg NDIgKysrKysrKysrKysrKysrKysrKysrKystLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMw X3JlcF9kZGxzLnBsIHwgMTggKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNTggaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0 aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IGQwYmIyMzJhZjYuLjc5 YjVmYWNjYzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0xMTQwLDYgKzExNDAsNDUgQEAgTG9nTG9naWNh bERETENvbW1hbmQoTm9kZSAqcGFyc2V0cmVlLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykKIAkJ CX0KIAkJCWJyZWFrOwogCisJCS8qCisJCSAqIENyZWF0ZVRhYmxlQXNTdG10IGNhbiBjcmVhdGUg ZWl0aGVyIGEgdGFibGUgYSBtYXRlcmlhbGl6ZWQgdmlldworCQkgKiBhbmQgdGhleSBhcmUgaGFu ZGxlZCBkaWZmZXJlbnRseS4KKwkJICovCisJCWNhc2UgVF9DcmVhdGVUYWJsZUFzU3RtdDoKKwkJ eworCQkJQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQgPSAoQ3JlYXRlVGFibGVBc1N0bXQgKikgcGFy c2V0cmVlOworCQkJc3dpdGNoKHN0bXQtPm9ianR5cGUpCisJCQl7CisJCQkJY2FzZSBPQkpFQ1Rf VEFCTEU6CisJCQkJCS8qCisJCQkJCSAqIEZJWE1FIENSRUFURSBUQUJMRSBBUyBzdG10IG5lZWRz IHRvIGJlIGJyb2tlbiBkb3duIGludG8gdHdvIHBhcnRzCisJCQkJCSAqIDEuIEEgbm9ybWFsIENS RUFURSBUQUJMRSBzdHJpbmcgdGhhdCBnZXQncyBsb2dnZWQgYW5kIHJlcGxpY2F0ZWQgdmlhCisJ CQkJCSAqCSAgRERMIHJlcGxpY2F0aW9uLgorCQkJCQkgKiAyLiBJbnNlcnRpb25zIHRoYXQgZ2V0 IHJlcGxpY2F0ZWQgYnkgRE1MIHJlcGxpY2F0aW9uLgorCQkJCQkgKi8KKwkJCQkJYnJlYWs7CisJ CQkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKKwkJCQkJLyoKKwkJCQkJICogTG9nIENSRUFURSBNQVRF UklBTElaRUQgVklFVyBBUyBzdG10IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGlmCisJCQkJCSAq IHRoZXJlIGlzIGFueSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiB3aXRoIHB1YmRkbF9kYXRh YmFzZSBvbi4KKwkJCQkJICogaS5lLiBEYXRhYmFzZSBsZXZlbCBEREwgcmVwbGljYXRpb24gaXMg b24gZm9yIHNvbWUgcHVibGljYXRpb24uCisJCQkJCSAqLworCQkJCQlpZiAoZGRsX25lZWRfeGxv ZyhJbnZhbGlkT2lkLCB0cnVlLCB0cnVlKSkKKwkJCQkJeworCQkJCQkJYm9vbCB0cmFuc2FjdGlv bmFsID0gdHJ1ZTsKKwkJCQkJCWNvbnN0IGNoYXIqIHByZWZpeCA9ICIiOworCQkJCQkJTG9nTG9n aWNhbERETE1lc3NhZ2UocHJlZml4LAorCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksCisJCQkJCQkJ CQkJCSBxdWVyeVN0cmluZywKKwkJCQkJCQkJCQkJIHN0cmxlbihxdWVyeVN0cmluZyksCisJCQkJ CQkJCQkJCSB0cmFuc2FjdGlvbmFsKTsKKwkJCQkJfQorCQkJCWRlZmF1bHQ6CisJCQkJCWJyZWFr OworCQkJfQorCQkJYnJlYWs7CisJCX0KKwogCQkvKgogCQkgKiBTZWNvbmRseSwgY29tbWFuZHMg dGhhdCBtYXkgYmUgYWxsb3dlZCBpbiBUYWJsZSBsZXZlbCBEREwgcmVwbGljYXRpb24uCiAJCSAq IFRoZXNlIGFyZSBjdXJyZW50bHkgaGFuZGxlZCBpbiB0aGUgbGF0ZXIgZXhlY3V0aW9uIHBhdGgg b2YgdGhlIGNvbW1hbmQuCkBAIC0xMTU1LDcgKzExOTQsNyBAQCBMb2dMb2dpY2FsRERMQ29tbWFu ZChOb2RlICpwYXJzZXRyZWUsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQogCQkvKiBEcm9wU3Rt dCBkZXBlbmRzIG9uIHRoZSByZW1vdmVUeXBlICovCiAJCWNhc2UgVF9Ecm9wU3RtdDoKIAkJewot CQkJRHJvcFN0bXQqIHN0bXQgPSAoRHJvcFN0bXQqKSBwYXJzZXRyZWU7CisJCQlEcm9wU3RtdCAq c3RtdCA9IChEcm9wU3RtdCAqKSBwYXJzZXRyZWU7CiAJCQlzd2l0Y2ggKHN0bXQtPnJlbW92ZVR5 cGUpCiAJCQl7CiAJCQkJLyogTWF5YmUgYWxsb3dlZCBpbiBUYWJsZSBsZXZlbCBEREwgcmVwbGlj YXRpb24sIGhhbmRsZWQgaW4gbGF0ZXIgY29kZSBwYXRoICovCkBAIC0xMjA2LDcgKzEyNDUsNiBA QCBMb2dMb2dpY2FsRERMQ29tbWFuZChOb2RlICpwYXJzZXRyZWUsIGNvbnN0IGNoYXIgKnF1ZXJ5 U3RyaW5nKQogCQljYXNlIFRfUnVsZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFTdG10OgogCQlj YXNlIFRfQWx0ZXJTZXFTdG10OgotCQljYXNlIFRfQ3JlYXRlVGFibGVBc1N0bXQ6CiAJCWNhc2Ug VF9SZWZyZXNoTWF0Vmlld1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVQTGFuZ1N0bXQ6CiAJCWNhc2Ug VF9DcmVhdGVDb252ZXJzaW9uU3RtdDoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzMF9yZXBfZGRscy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBfZGRs cy5wbAppbmRleCBjODhjNGVhMWMwLi41NjJlZmUyY2Y3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDMwX3JlcF9kZGxzLnBsCkBAIC0yMjYsNiArMjI2LDI0IEBAICRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCB0YWJsZW93bmVyIGZyb20gcGdfY2F0YWxvZy5w Z190YWJsZXMgd2hlcmUgdGFibGVuYW1lID0gJ3Q1JzsiKTsKIGlzKCRyZXN1bHQsIHFxKGRkbF9y ZXBsaWNhdGlvbl91c2VyKSwgJ093bmVyIG9mIHQ1IGlzIGNvcnJlY3QnKTsKIAorIyBUZXN0IENS RUFURSBNQVRFUklBTElaRUQgVklFVyBzdG10IGlzIHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcgczEubWF0 dmlldzEgQVMgU0VMRUNUIGEsIGIgZnJvbSBzMS50MTsiKTsKKyRyZXN1bHQgPSAkbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gczEubWF0 dmlldzE7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsK KworJHJlc3VsdF9zdWIgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IlNFTEVDVCBjb3VudCgqKSBmcm9tIHMxLm1hdHZpZXcxOyIpOworaXMoJHJlc3VsdCwgcXEoJHJl c3VsdF9zdWIpLCAnQ1JFQVRFIG9mIHMxLm1hdHZpZXcxIGlzIHJlcGxpY2F0ZWQnKTsKKworIyBU ZXN0IENSRUFURSBWSUVXIHN0bXQgaXMgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBWSUVXIHMxLnZpZXcxIEFTIFNFTEVDVCBhLCBiIGZy b20gczEudDE7Iik7CiskcmVzdWx0ID0gJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIlNFTEVDVCBjb3VudCgqKSBmcm9tIHMxLnZpZXcxOyIpOworCiskbm9kZV9wdWJsaXNo ZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CisKKyRyZXN1bHRfc3ViID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgZnJvbSBzMS52 aWV3MTsiKTsKK2lzKCRyZXN1bHQsIHFxKCRyZXN1bHRfc3ViKSwgJ0NSRUFURSBvZiBzMS52aWV3 MSBpcyByZXBsaWNhdGVkJyk7CisKICNUT0RPIFRFU1QgY2VydGFpbiBERExzIGFyZSBub3QgcmVw bGljYXRlZAogCiBwYXNzICJEREwgcmVwbGljYXRpb24gdGVzdHMgcGFzc2VkISI7Ci0tIAoyLjMy LjAKCg== --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0005-Support-replication-of-CREATE-.-AS-.-and-SELECT-.-IN.patch" Content-Disposition: attachment; filename="0005-Support-replication-of-CREATE-.-AS-.-and-SELECT-.-IN.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwp94 RnJvbSBhZWI1ZjVjNDUxN2Y1ZmNkYTFjNDc4NmViY2Q5MjM0M2ZlYTY4Zjk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IFRodSwgMjQgTWFyIDIwMjIgMTc6NDY6NTUgKzAwMDAKU3ViamVjdDogW1BBVENIIDA1 LzEyXSBTdXBwb3J0IHJlcGxpY2F0aW9uIG9mIENSRUFURSAuLi4gQVMgLi4gYW5kIFNFTEVDVCAu Li4KIElOVE8gLi4uIHN0YXRlbWVudHMuCgpUaGUgaWRlYSBpcyB0byBmb3JjZSBza2lwcGluZyB0 aGUgZGlyZWN0IGRhdGEgcG9wdWxhdGlvbgood2hpY2ggY291bGQgcG90ZW50aWFsbHkgY2F1c2Ug ZGF0YSBtaXNtYXRjaCBjb21wYXJlZCB0byB0aGUgcHVibGlzaGVyKQp3aXRoIHRoZXNlIGNvbW1h bmQgb24gdGhlIHN1YnNjcmliZXIgYnkgZm9yY2Ugc2V0dGluZyB0aGUgc2tpcERhdGEgZmxhZwpp biB0aGUgaW50b0NsYXVzZSBvZiB0aGUgcGFyc2V0cmVlIGFmdGVyIHRoZSBsb2dpY2FsIHJlcGxp Y2F0aW9uIHdvcmtlcgpwYXJzZXMgdGhlIGNvbW1hbmQuIFRoZSBkYXRhIHN5bmMgd2lsbCBiZSB0 YWtlbiBjYXJlIG9mIGJ5IERNTCByZXBsaWNhdGlvbgphZnRlciB0aGUgcmVwbGljYXRpb24gb2Yg dGhlIERETCBjb21tYW5kLgotLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29y a2VyLmMgfCA1MSArKysrKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3Rjb3AvdXRp bGl0eS5jICAgICAgICAgICAgICAgfCA0MSArKysrKysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwgIHwgMjQgKysrKysrKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKaW5kZXggYzI1ZTNhNGNmZS4uOTA1ZjQ3ZmFmNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC0yNTQyLDIzICsy NTQyLDU4IEBAIGFwcGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQoY29uc3QgY2hhciAqY21kc3RyLCBj b25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpzZWFyCiAJCVBvcnRhbAkJcG9ydGFsOwogCQlE ZXN0UmVjZWl2ZXIgKnJlY2VpdmVyOwogCQlib29sCQkgc25hcHNob3Rfc2V0ID0gZmFsc2U7Ci0J CWNoYXIgCQkgKnNjaGVtYW5hbWUgPSBOVUxMOyAvKiBGb3IgQ1JFQVRFIFRBQkxFIHN0bXQgb25s eSAqLwotCQljaGFyCQkgKnJlbG5hbWUgPSBOVUxMOyAvKiBGb3IgQ1JFQVRFIFRBQkxFIHN0bXQg b25seSAqLworCQljaGFyIAkJICpzY2hlbWFuYW1lID0gTlVMTDsgLyogRm9yIENSRUFURSBUQUJM RSBhbmQgQ1JFQVRFIFRBQkxFIEFTIHN0bXQgb25seSAqLworCQljaGFyCQkgKnJlbG5hbWUgPSBO VUxMOyAvKiBGb3IgQ1JFQVRFIFRBQkxFIGFuZCBDUkVBVEUgVEFCTEUgQVMgc3RtdCBvbmx5ICov CiAKIAkJY29tbWFuZFRhZyA9IENyZWF0ZUNvbW1hbmRUYWcoKE5vZGUgKiljb21tYW5kKTsKIAog CQkvKgotCQkgKiBSZW1lbWJlciB0aGUgc2NoZW1hbmFtZSBhbmQgcmVsbmFtZSBpZiBpdCdzIGEg Q1JFQVRFIFRBQkxFIHN0bXQKKwkJICogUmVtZW1iZXIgdGhlIHNjaGVtYW5hbWUgYW5kIHJlbG5h bWUgaWYgdGhlIGNtZCBpcyBnb2luZyB0byBjcmVhdGUgYSB0YWJsZQogCQkgKiBiZWNhdXNlIHdl IHdpbGwgbmVlZCB0aGVtIGZvciBzb21lIHBvc3QtcHJvY2Vzc2luZyBhZnRlciB3ZQotCQkgKiBl eGVjdXRlIHRoZSBzdG10LiBBdCB0aGF0IHBvaW50LCBDcmVhdGVTdG10IG1heSBoYXZlIGJlZW4g ZnJlZWVkIHVwLgorCQkgKiBleGVjdXRlIHRoZSBzdG10LiBBdCB0aGF0IHBvaW50LCBjb21tYW5k LT5zdG10IG1heSBoYXZlIGJlZW4gZnJlZWVkIHVwLgogCQkgKi8KIAkJaWYgKGNvbW1hbmRUYWcg PT0gQ01EVEFHX0NSRUFURV9UQUJMRSkKIAkJewotCQkJQ3JlYXRlU3RtdCAqY3N0bXQgPSAoQ3Jl YXRlU3RtdCAqKWNvbW1hbmQtPnN0bXQ7CisJCQlDcmVhdGVTdG10ICpjc3RtdCA9IChDcmVhdGVT dG10ICopIGNvbW1hbmQtPnN0bXQ7CiAJCQlSYW5nZVZhciAqcnYgPSBjc3RtdC0+cmVsYXRpb247 CiAJCQlzY2hlbWFuYW1lID0gcnYtPnNjaGVtYW5hbWU7CiAJCQlyZWxuYW1lID0gcnYtPnJlbG5h bWU7CiAJCX0KKwkJZWxzZSBpZiAoY29tbWFuZFRhZyA9PSBDTURUQUdfQ1JFQVRFX1RBQkxFX0FT KQorCQl7CisJCQlDcmVhdGVUYWJsZUFzU3RtdCAqY2FzdG10ID0gKENyZWF0ZVRhYmxlQXNTdG10 ICopIGNvbW1hbmQtPnN0bXQ7CisKKwkJCWlmIChjYXN0bXQtPm9ianR5cGUgPT0gT0JKRUNUX1RB QkxFKQorCQkJeworCQkJCVJhbmdlVmFyICpydiA9IGNhc3RtdC0+aW50by0+cmVsOworCQkJCXNj aGVtYW5hbWUgPSBydi0+c2NoZW1hbmFtZTsKKwkJCQlyZWxuYW1lID0gcnYtPnJlbG5hbWU7CisK KwkJCQkvKgorCQkJCSAqIEZvcmNlIHNraXBwaW5nIGRhdGEgcG9wdWxhdGlvbiB0byBhdm9pZCBk YXRhIGluY29uc2lzdGVuY3kuCisJCQkJICogRGF0YSBzaG91bGQgYmUgcmVwbGljYXRlZCBmcm9t IHRoZSBwdWJsaXNoZXIgaW5zdGVhZC4KKwkJCQkgKi8KKwkJCQljYXN0bXQtPmludG8tPnNraXBE YXRhID0gdHJ1ZTsKKwkJCX0KKwkJfQorCQkvKiBTRUxFQ1QgSU5UTyAqLworCQllbHNlIGlmIChj b21tYW5kVGFnID09IENNRFRBR19TRUxFQ1QpCisJCXsKKwkJCVNlbGVjdFN0bXQgKnNzdG10ID0g KFNlbGVjdFN0bXQgKikgY29tbWFuZC0+c3RtdDsKKworCQkJaWYgKHNzdG10LT5pbnRvQ2xhdXNl ICE9IE5VTEwpCisJCQl7CisJCQkJUmFuZ2VWYXIgKnJ2ID0gc3N0bXQtPmludG9DbGF1c2UtPnJl bDsKKwkJCQlzY2hlbWFuYW1lID0gcnYtPnNjaGVtYW5hbWU7CisJCQkJcmVsbmFtZSA9IHJ2LT5y ZWxuYW1lOworCisJCQkJLyoKKwkJCQkgKiBGb3JjZSBza2lwcGluZyBkYXRhIHBvcHVsYXRpb24g dG8gYXZvaWQgZGF0YSBpbmNvbnNpc3RlbmN5LgorCQkJCSAqIERhdGEgc2hvdWxkIGJlIHJlcGxp Y2F0ZWQgZnJvbSB0aGUgcHVibGlzaGVyIGluc3RlYWQuCisJCQkJICovCisJCQkJc3N0bXQtPmlu dG9DbGF1c2UtPnNraXBEYXRhID0gdHJ1ZTsKKwkJCX0KKwkJfQogCiAJCS8qCiAJCSAqIFNldCB1 cCBhIHNuYXBzaG90IGlmIHBhcnNlIGFuYWx5c2lzL3BsYW5uaW5nIHdpbGwgbmVlZCBvbmUuCkBA IC0yNjU3LDEyICsyNjkyLDEyIEBAIGFwcGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQoY29uc3QgY2hh ciAqY21kc3RyLCBjb25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpzZWFyCiAJCSAqIFRhYmxl IGNyZWF0ZWQgYnkgRERMIHJlcGxpY2F0aW9uIChkYXRhYmFzZSBsZXZlbCkgaXMgYXV0b21hdGlj YWxseQogCQkgKiBhZGRlZCB0byB0aGUgc3Vic2NyaXB0aW9uIGhlcmUuCiAJCSAqCi0JCSAqIENh bGwgQWRkU3Vic2NyaXB0aW9uUmVsU3RhdGUgZm9yIENSRUFURSBUQUJFTCBjb21tYW5kIHRvIHNl dAotCQkgKiB0aGUgcmVsc3RhdGUgdG8gU1VCUkVMX1NUQVRFX0lOSVQgc28gRE1MIGNoYW5nZXMg b24gdGhpcworCQkgKiBDYWxsIEFkZFN1YnNjcmlwdGlvblJlbFN0YXRlIGZvciBDUkVBVEUgVEFC RUwgYW5kIENSRUFURSBUQUJMRSBBUworCQkgKiBjb21tYW5kIHRvIHNldCB0aGUgcmVsc3RhdGUg dG8gU1VCUkVMX1NUQVRFX0lOSVQgc28gRE1MIGNoYW5nZXMgb24gdGhpcwogCQkgKiBuZXcgdGFi bGUgY2FuIGJlIHJlcGxpY2F0ZWQgd2l0aG91dCBoYXZpbmcgdG8gbWFudWFsbHkgcnVuCiAJCSAq ICJhbHRlciBzdWJzY3JpcHRpb24gLi4uIHJlZnJlc2ggcHVibGljYXRpb24iCiAJCSAqLwotCQlp ZiAoY29tbWFuZFRhZyA9PSBDTURUQUdfQ1JFQVRFX1RBQkxFKQorCQlpZiAocmVsbmFtZSAhPSBO VUxMKQogCQl7CiAJCQlPaWQgcmVsaWQ7CiAJCQlPaWQgcmVsbmFtZXNwYWNlID0gSW52YWxpZE9p ZDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKaW5kZXggNzliNWZhY2NjMC4uMjkzODFiNTNiNiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMKQEAgLTExNDIsMjQgKzExNDIsMzEgQEAgTG9nTG9naWNhbERETENvbW1hbmQoTm9kZSAqcGFy c2V0cmVlLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykKIAogCQkvKgogCQkgKiBDcmVhdGVUYWJs ZUFzU3RtdCBjYW4gY3JlYXRlIGVpdGhlciBhIHRhYmxlIGEgbWF0ZXJpYWxpemVkIHZpZXcKLQkJ ICogYW5kIHRoZXkgYXJlIGhhbmRsZWQgZGlmZmVyZW50bHkuCiAJCSAqLwogCQljYXNlIFRfQ3Jl YXRlVGFibGVBc1N0bXQ6CiAJCXsKIAkJCUNyZWF0ZVRhYmxlQXNTdG10ICpzdG10ID0gKENyZWF0 ZVRhYmxlQXNTdG10ICopIHBhcnNldHJlZTsKKwogCQkJc3dpdGNoKHN0bXQtPm9ianR5cGUpCiAJ CQl7CisJCQkJLyoKKwkJCQkgKiBFaXRoZXIgQ1JFQVRFIFRBQkxFIEFTIG9yIFNFTEVDVCAuLi4g SU5UTyBzdG10CisJCQkJICogVGhlIHN0YXRlbWVudCBpcyBsb2dnZWQgYXMgaXMsIGJ1dCB3aGVu IHdlIGFwcGx5IHRoZQorCQkJCSAqIENSRUFURSBUQUJMRSBBUyBvciBTRUxFQ1QgLi4uIElOVE8g c3RhdGVtdG5zIG9uIHRoZSBsb2dpY2FsCisJCQkJICogcmVwbGljYXRpb24gd29ya2VyLCB3ZSB3 aWxsIGZvcmNlIHRoZSBza2lwRGF0YSBmbGFnIGluIHRoZQorCQkJCSAqIGludG9DbGF1c2UuIFRo aXMgd2F5IHdlIGF2b2lkIGRpcmVjdCBkYXRhIHBvcHVsYXRpb24gb24gdGhlCisJCQkJICogc3Vi c3JpYmVyIHdpdGggdGhlIGV4ZWN1dGlvbiBvZiB0aGVzZSBjb21tYW5kcyB3aGljaCBjYW4KKwkJ CQkgKiBwb3RlbnRpYWxseSBjYXVzZSBkYXRhIG1pc21hdGNoIGJld3RlZW4gdGhlIHB1Ymxpc2hl ci4KKwkJCQkgKgorCQkJCSAqIFRoZSBkYXRhIHN5bmMgd2lsbCBiZSBoYW5kbGVkIGJ5IERNTCBy ZXBsaWNhdGlvbiBhZnRlciB0aGUKKwkJCQkgKiB0YXJnZXQgdGFibGUgaGFzIGJlZW4gY3JlYXRl ZC4KKwkJCQkgKi8KIAkJCQljYXNlIE9CSkVDVF9UQUJMRToKLQkJCQkJLyoKLQkJCQkJICogRklY TUUgQ1JFQVRFIFRBQkxFIEFTIHN0bXQgbmVlZHMgdG8gYmUgYnJva2VuIGRvd24gaW50byB0d28g cGFydHMKLQkJCQkJICogMS4gQSBub3JtYWwgQ1JFQVRFIFRBQkxFIHN0cmluZyB0aGF0IGdldCdz IGxvZ2dlZCBhbmQgcmVwbGljYXRlZCB2aWEKLQkJCQkJICoJICBEREwgcmVwbGljYXRpb24uCi0J CQkJCSAqIDIuIEluc2VydGlvbnMgdGhhdCBnZXQgcmVwbGljYXRlZCBieSBETUwgcmVwbGljYXRp b24uCi0JCQkJCSAqLwotCQkJCQlicmVhazsKKworCQkJCS8qIENSRUFURSBNQVRFUklBTElaRUQg VklFVyAqLwogCQkJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCQkJCS8qCi0JCQkJCSAqIExvZyBD UkVBVEUgTUFURVJJQUxJWkVEIFZJRVcgQVMgc3RtdCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBp ZgorCQkJCQkgKiBMb2cgdGhlc2Ugc3RtdCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBpZgogCQkJ CQkgKiB0aGVyZSBpcyBhbnkgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24gd2l0aCBwdWJkZGxf ZGF0YWJhc2Ugb24uCiAJCQkJCSAqIGkuZS4gRGF0YWJhc2UgbGV2ZWwgRERMIHJlcGxpY2F0aW9u IGlzIG9uIGZvciBzb21lIHB1YmxpY2F0aW9uLgogCQkJCQkgKi8KQEAgLTEzMDQsOCArMTMxMSwx NyBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCVBHX1RSWSgpOwog CXsKIAkJaWYgKGlzQ29tcGxldGVRdWVyeSkKKwkJewogCQkJRXZlbnRUcmlnZ2VyRERMQ29tbWFu ZFN0YXJ0KHBhcnNldHJlZSk7CiAKKwkJCS8qCisJCQkgKiBDb25zaWRlciBsb2dnaW5nIHRoZSBE REwgY29tbWFuZCBpZiBsb2dpY2FsIGxvZ2dpbmcgaXMgZW5hYmxlZCBhbmQgdGhpcyBpcworCQkJ ICogYSBjb21wbGV0ZSB0b3AgbGV2ZWwgcXVlcnkuCisJCQkgKi8KKwkJCWlmIChYTG9nTG9naWNh bEluZm9BY3RpdmUoKSAmJiBpc1RvcExldmVsKQorCQkJCUxvZ0xvZ2ljYWxERExDb21tYW5kKHBh cnNldHJlZSwgcXVlcnlTdHJpbmcpOworCQl9CisKIAkJc3dpdGNoIChub2RlVGFnKHBhcnNldHJl ZSkpCiAJCXsKIAkJCQkvKgpAQCAtMjE0MSwxMyArMjE1Nyw2IEBAIFByb2Nlc3NVdGlsaXR5U2xv dyhQYXJzZVN0YXRlICpwc3RhdGUsCiAKIAkJaWYgKGlzQ29tcGxldGVRdWVyeSkKIAkJewotCQkJ LyoKLQkJCSAqIENvbnNpZGVyIGxvZ2dpbmcgdGhlIERETCBjb21tYW5kIGlmIGxvZ2ljYWwgbG9n Z2luZyBpcyBlbmFibGVkIGFuZCB0aGlzIGlzCi0JCQkgKiBhIGNvbXBsZXRlIHRvcCBsZXZlbCBx dWVyeS4KLQkJCSAqLwotCQkJaWYgKFhMb2dMb2dpY2FsSW5mb0FjdGl2ZSgpICYmIGlzVG9wTGV2 ZWwpCi0JCQkJTG9nTG9naWNhbERETENvbW1hbmQocGFyc2V0cmVlLCBxdWVyeVN0cmluZyk7Ci0K IAkJCUV2ZW50VHJpZ2dlclNRTERyb3AocGFyc2V0cmVlKTsKIAkJCUV2ZW50VHJpZ2dlckRETENv bW1hbmRFbmQocGFyc2V0cmVlKTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDMwX3JlcF9kZGxzLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9k ZGxzLnBsCmluZGV4IDU2MmVmZTJjZjcuLjNiMTVjNmQ5ZjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBfZGRscy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMzBfcmVwX2RkbHMucGwKQEAgLTI0NCw2ICsyNDQsMzAgQEAgJG5vZGVfcHVibGlzaGVy LT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOwogJHJlc3VsdF9zdWIgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBmcm9tIHMxLnZpZXcx OyIpOwogaXMoJHJlc3VsdCwgcXEoJHJlc3VsdF9zdWIpLCAnQ1JFQVRFIG9mIHMxLnZpZXcxIGlz IHJlcGxpY2F0ZWQnKTsKIAorIyBURVNUIENSRUFURSBUQUJMRSBBUyBzdG10Ciskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHMxLnQzIEFTIFNFTEVD VCBhLCBiIGZyb20gczEudDE7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gczEudDM7Iik7CitpcygkcmVzdWx0LCBxcSgy KSwgJ0NSRUFURSBUQUJMRSBzMS50MyBBUyBpcyByZXBsaWNhdGVkIHdpdGggZGF0YScpOworCisj IFRFU1QgQ1JFQVRFIFRBQkxFIEFTIHN0bXQgLi4uIFdJVEggTk8gREFUQQorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSBzMS50NCBBUyBTRUxFQ1Qg YSwgYiBmcm9tIHMxLnQxIFdJVEggTk8gREFUQTsiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgZnJvbSBzMS50NDsiKTsKK2lzKCRy ZXN1bHQsIHFxKDApLCAnQ1JFQVRFIFRBQkxFIHMxLnQ0IEFTIGlzIHJlcGxpY2F0ZWQgd2l0aCBu byBkYXRhJyk7CisKKyMgVEVTVCBTRUxFQ1QgSU5UTyBzdG10Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGIgaW50byBzMS50NiBmcm9tIHMxLnQxIHdoZXJl IGEgPiAxIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsK KworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VM RUNUIGNvdW50KCopIGZyb20gczEudDY7Iik7CitpcygkcmVzdWx0LCBxcSgxKSwgJ1NFTEVDVCBJ TlRPIHMxLnQ2IGlzIHJlcGxpY2F0ZWQgd2l0aCBkYXRhJyk7CisKICNUT0RPIFRFU1QgY2VydGFp biBERExzIGFyZSBub3QgcmVwbGljYXRlZAogCiBwYXNzICJEREwgcmVwbGljYXRpb24gdGVzdHMg cGFzc2VkISI7Ci0tIAoyLjMyLjAKCg== --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0001-Define-DDL-replication-levels-via-the-CREATE-PUBLICA.patch" Content-Disposition: attachment; filename="0001-Define-DDL-replication-levels-via-the-CREATE-PUBLICA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwoz0 RnJvbSBmZjhmY2Q5YjFhNWU0YjY2NDk3N2ExY2VkMWZhNzZjOTViNzYxOTlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IEZyaSwgMTggTWFyIDIwMjIgMTY6NDc6MTYgKzAwMDAKU3ViamVjdDogW1BBVENIIDAx LzEyXSBEZWZpbmUgRERMIHJlcGxpY2F0aW9uIGxldmVscyB2aWEgdGhlIENSRUFURQogUFVCTElD QVRJT04gY29tbWFuZCwgY3VycmVudGx5IGFsbG93IERhdGFiYXNlIG9yIFRhYmxlIGxldmVsIERE TCByZXBsaWNhdGlvbi4KCkFsbG93IHRoZSB1c2VyIHRvIGNvbmZpZ3VyZSBlaXRoZXIgZGF0YWJh c2UgbGV2ZWwgb3IgdGFibGUgbGV2ZWwKRERMIHJlcGxpY2F0aW9uIHZpYSB0aGUgQ1JFQVRFIFBV QkxJQ0FUSU9OIGNvbW1hbmQgYXMgaW4gbXkgZmlyc3QKZW1haWwuIFR3byBuZXcgY29sdW1ucyBh cmUgYWRkZWQgdG8gdGhlIHBnX3B1YmxpY2F0aW9uIGNhdGFsb2cgdG8Kc2hvdyB0aGUgRERMIHJl cGxpY2F0aW9uIGxldmVscywgdGVzdCBvdXRwdXQgcHVibGljYXRpb24ub3V0IGlzCnVwZGF0ZWQg YWNjb3JkaW5nbHkuIHBnX2R1bXAgaXMgYWxzbyBtb2RpZmllZCB0byBhY2NvbW1vZGF0ZSB0aGUK cGdfcHVibGljYXRpb24gY2F0YWxvZyBjaGFuZ2UuCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgICAgfCAgODkgKysrKystCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxj YWNoZS5jICAgICAgICB8ICAgMiArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAg ICAgICAgICB8ICA0NSArKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAg ICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgIHwg IDEwICstCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICB8ICAzMCAr LQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgfCAgMTAgKwogc3Jj L2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmggICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgfCAzNzIgKysrKysrKysrKystLS0tLS0t LS0tLQogMTAgZmlsZXMgY2hhbmdlZCwgMzY0IGluc2VydGlvbnMoKyksIDE5OSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggOGM3ZmNhNjJkZS4uYjhh YjFkODE0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtMTAwNiw2ICsx MDA2LDggQEAgR2V0UHVibGljYXRpb24oT2lkIHB1YmlkKQogCXB1Yi0+cHViYWN0aW9ucy5wdWJk ZWxldGUgPSBwdWJmb3JtLT5wdWJkZWxldGU7CiAJcHViLT5wdWJhY3Rpb25zLnB1YnRydW5jYXRl ID0gcHViZm9ybS0+cHVidHJ1bmNhdGU7CiAJcHViLT5wdWJ2aWFyb290ID0gcHViZm9ybS0+cHVi dmlhcm9vdDsKKwlwdWItPnB1YmFjdGlvbnMucHViZGRsX2RhdGFiYXNlID0gcHViZm9ybS0+cHVi ZGRsX2RhdGFiYXNlOworCXB1Yi0+cHViYWN0aW9ucy5wdWJkZGxfdGFibGUgPSBwdWJmb3JtLT5w dWJkZGxfdGFibGU7CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA4ZTY0NTc0MWU0Li5lZGNlYWEwYzRlIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtODAsMTUgKzgwLDE4IEBAIHN0YXRp YyB2b2lkIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBi b29sIG1pc3Npbmdfb2spOwogc3RhdGljIHZvaWQKIHBhcnNlX3B1YmxpY2F0aW9uX29wdGlvbnMo UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJICBMaXN0ICpvcHRpb25zLAorCQkJCQkJICBib29s IGZvcl9hbGxfdGFibGVzLAogCQkJCQkJICBib29sICpwdWJsaXNoX2dpdmVuLAogCQkJCQkJICBQ dWJsaWNhdGlvbkFjdGlvbnMgKnB1YmFjdGlvbnMsCiAJCQkJCQkgIGJvb2wgKnB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290X2dpdmVuLAotCQkJCQkJICBib29sICpwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdCkKKwkJCQkJCSAgYm9vbCAqcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QsCisJCQkJ CQkgIGJvb2wgKmRkbF9sZXZlbF9naXZlbikKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAogCSpwdWJs aXNoX2dpdmVuID0gZmFsc2U7CiAJKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290X2dpdmVuID0g ZmFsc2U7CisJKmRkbF9sZXZlbF9naXZlbiA9IGZhbHNlOwogCiAJLyogZGVmYXVsdHMgKi8KIAlw dWJhY3Rpb25zLT5wdWJpbnNlcnQgPSB0cnVlOwpAQCAtOTYsNiArOTksMTYgQEAgcGFyc2VfcHVi bGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJcHViYWN0aW9ucy0+cHViZGVs ZXRlID0gdHJ1ZTsKIAlwdWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IHRydWU7CiAJKnB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2U7CisJaWYgKGZvcl9hbGxfdGFibGVzKQorCXsKKwkJ cHViYWN0aW9ucy0+cHViZGRsX2RhdGFiYXNlID0gdHJ1ZTsKKwkJcHViYWN0aW9ucy0+cHViZGRs X3RhYmxlID0gdHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJcHViYWN0aW9ucy0+cHViZGRsX2RhdGFi YXNlID0gZmFsc2U7CisJCXB1YmFjdGlvbnMtPnB1YmRkbF90YWJsZSA9IGZhbHNlOworCX0KIAog CS8qIFBhcnNlIG9wdGlvbnMgKi8KIAlmb3JlYWNoKGxjLCBvcHRpb25zKQpAQCAtMTU0LDYgKzE2 Nyw1NSBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdF9naXZlbiA9IHRydWU7CiAJCQkqcHVibGlzaF92 aWFfcGFydGl0aW9uX3Jvb3QgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKIAkJfQorCQllbHNlIGlm IChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJkZGwiKSA9PSAwKQorCQl7CisJCQljaGFyCSAgICpk ZGxfbGV2ZWw7CisJCQlMaXN0CSAgICpkZGxfbGlzdDsKKwkJCUxpc3RDZWxsICAgKmxjOworCisJ CQlpZiAoKmRkbF9sZXZlbF9naXZlbikKKwkJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZl bCwgcHN0YXRlKTsKKworCQkJLyoKKwkJCSAqIElmIHB1Ymxpc2ggb3B0aW9uIHdhcyBnaXZlbiBv bmx5IHRoZSBleHBsaWNpdGx5IGxpc3RlZCBhY3Rpb25zCisJCQkgKiBzaG91bGQgYmUgcHVibGlz aGVkLgorCQkJICovCisJCQlwdWJhY3Rpb25zLT5wdWJkZGxfZGF0YWJhc2UgPSBmYWxzZTsKKwkJ CXB1YmFjdGlvbnMtPnB1YmRkbF90YWJsZSA9IGZhbHNlOworCisJCQkqZGRsX2xldmVsX2dpdmVu ID0gdHJ1ZTsKKwkJCWRkbF9sZXZlbCA9IGRlZkdldFN0cmluZyhkZWZlbCk7CisKKwkJCWlmICgh U3BsaXRJZGVudGlmaWVyU3RyaW5nKGRkbF9sZXZlbCwgJywnLCAmZGRsX2xpc3QpKQorCQkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJ CQkgZXJybXNnKCJpbnZhbGlkIGxpc3Qgc3ludGF4IGZvciBcImRkbFwiIG9wdGlvbiIpKSk7CisK KwkJCS8qIFByb2Nlc3MgdGhlIG9wdGlvbiBsaXN0LiAqLworCQkJZm9yZWFjaChsYywgZGRsX2xp c3QpCisJCQl7CisJCQkJY2hhcgkgICAqcHVibGlzaF9vcHQgPSAoY2hhciAqKSBsZmlyc3QobGMp OworCisJCQkJaWYgKHN0cmNtcChwdWJsaXNoX29wdCwgImRhdGFiYXNlIikgPT0gMCkKKwkJCQl7 CisJCQkJCWlmICghZm9yX2FsbF90YWJsZXMpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCSBlcnJtc2coIkRETCBy ZXBsaWNhdGlvbiBvbiB0aGUgZGF0YWJhc2UgbGV2ZWwgaXMgb25seSBzdXBwb3J0ZWQgaW4gRk9S IEFMTCBUQUJMRVMgcHVibGljYXRpb24iKSkpOworCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCXB1 YmFjdGlvbnMtPnB1YmRkbF9kYXRhYmFzZSA9IHRydWU7CisJCQkJCQlwdWJhY3Rpb25zLT5wdWJk ZGxfdGFibGUgPSB0cnVlOworCQkJCQl9CisJCQkJfQorCQkJCWVsc2UgaWYgKHN0cmNtcChwdWJs aXNoX29wdCwgInRhYmxlIikgPT0gMCkKKwkJCQkJcHViYWN0aW9ucy0+cHViZGRsX3RhYmxlID0g dHJ1ZTsKKwkJCQllbHNlCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCSBlcnJtc2coInVucmVjb2duaXplZCBcImRkbFwi IHZhbHVlOiBcIiVzXCIiLCBwdWJsaXNoX29wdCkpKTsKKwkJCX0KKwkJfQogCQllbHNlCiAJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCkBAIC03 NjEsNiArODIzLDcgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNh dGlvbl07CiAJSGVhcFR1cGxlCXR1cDsKIAlib29sCQlwdWJsaXNoX2dpdmVuOworCWJvb2wJCWRk bF9sZXZlbF9naXZlbjsKIAlQdWJsaWNhdGlvbkFjdGlvbnMgcHViYWN0aW9uczsKIAlib29sCQlw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdF9naXZlbjsKIAlib29sCQlwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdDsKQEAgLTgwMyw5ICs4NjYsMTEgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAKIAlwYXJzZV9wdWJs aWNhdGlvbl9vcHRpb25zKHBzdGF0ZSwKIAkJCQkJCQkgIHN0bXQtPm9wdGlvbnMsCisJCQkJCQkJ ICBzdG10LT5mb3JfYWxsX3RhYmxlcywKIAkJCQkJCQkgICZwdWJsaXNoX2dpdmVuLCAmcHViYWN0 aW9ucywKIAkJCQkJCQkgICZwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdF9naXZlbiwKLQkJCQkJ CQkgICZwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCQkJCQkJICAmcHVibGlzaF92aWFf cGFydGl0aW9uX3Jvb3QsCisJCQkJCQkJICAmZGRsX2xldmVsX2dpdmVuKTsKIAogCXB1Ym9pZCA9 IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFB1YmxpY2F0aW9uT2JqZWN0SW5kZXhJZCwKIAkJCQkJ CQkJQW51bV9wZ19wdWJsaWNhdGlvbl9vaWQpOwpAQCAtODIyLDYgKzg4NywxMCBAQCBDcmVhdGVQ dWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3Rt dCkKIAkJQm9vbEdldERhdHVtKHB1YmFjdGlvbnMucHVidHJ1bmNhdGUpOwogCXZhbHVlc1tBbnVt X3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9CiAJCUJvb2xHZXREYXR1bShwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZGRs X2RhdGFiYXNlIC0gMV0gPQorCQlCb29sR2V0RGF0dW0ocHViYWN0aW9ucy5wdWJkZGxfZGF0YWJh c2UpOworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRkbF90YWJsZSAtIDFdID0KKwkJ Qm9vbEdldERhdHVtKHB1YmFjdGlvbnMucHViZGRsX3RhYmxlKTsKIAogCXR1cCA9IGhlYXBfZm9y bV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOwogCkBAIC05MDgs NiArOTc3LDcgQEAgQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB bHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJs aWNhdGlvbl07CiAJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CiAJYm9vbAkJ cHVibGlzaF9naXZlbjsKKwlib29sICAgICAgICBkZGxfbGV2ZWxfZ2l2ZW47CiAJUHVibGljYXRp b25BY3Rpb25zIHB1YmFjdGlvbnM7CiAJYm9vbAkJcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Rf Z2l2ZW47CiAJYm9vbAkJcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q7CkBAIC05MTYsMTEgKzk4 NiwxNSBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVy UHVibGljYXRpb25TdG10ICpzdG10LAogCUxpc3QJICAgKnJvb3RfcmVsaWRzID0gTklMOwogCUxp c3RDZWxsICAgKmxjOwogCisJcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJV Q1QodHVwKTsKKwogCXBhcnNlX3B1YmxpY2F0aW9uX29wdGlvbnMocHN0YXRlLAogCQkJCQkJCSAg c3RtdC0+b3B0aW9ucywKKwkJCQkJCQkgIHB1YmZvcm0tPnB1YmFsbHRhYmxlcywKIAkJCQkJCQkg ICZwdWJsaXNoX2dpdmVuLCAmcHViYWN0aW9ucywKIAkJCQkJCQkgICZwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdF9naXZlbiwKLQkJCQkJCQkgICZwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7 CisJCQkJCQkJICAmcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QsCisJCQkJCQkJICAmZGRsX2xl dmVsX2dpdmVuKTsKIAogCXB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNU KHR1cCk7CiAKQEAgLTEwMjQsNiArMTA5OCwxNSBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQlyZXBsYWNl c1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPSB0cnVlOwogCX0KIAorCWlm IChkZGxfbGV2ZWxfZ2l2ZW4pCisJeworCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJk ZGxfZGF0YWJhc2UgLSAxXSA9IEJvb2xHZXREYXR1bShwdWJhY3Rpb25zLnB1YmRkbF9kYXRhYmFz ZSk7CisJCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViZGRsX2RhdGFiYXNlIC0gMV0g PSB0cnVlOworCisJCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRkbF90YWJsZSAtIDFd ID0gQm9vbEdldERhdHVtKHB1YmFjdGlvbnMucHViZGRsX3RhYmxlKTsKKwkJcmVwbGFjZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJkZGxfdGFibGUgLSAxXSA9IHRydWU7CisJfQorCiAJaWYgKHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290X2dpdmVuKQogCXsKIAkJdmFsdWVzW0FudW1fcGdfcHVi bGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gQm9vbEdldERhdHVtKHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hl LmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDYwZTcyZjllOGIu LmRkMjM1ZDY2ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTYzMyw2ICs1 NjMzLDggQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwg UHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQlwdWJkZXNjLT5wdWJhY3Rpb25zLnB1YnVwZGF0 ZSB8PSBwdWJmb3JtLT5wdWJ1cGRhdGU7CiAJCXB1YmRlc2MtPnB1YmFjdGlvbnMucHViZGVsZXRl IHw9IHB1YmZvcm0tPnB1YmRlbGV0ZTsKIAkJcHViZGVzYy0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0 ZSB8PSBwdWJmb3JtLT5wdWJ0cnVuY2F0ZTsKKwkJcHViZGVzYy0+cHViYWN0aW9ucy5wdWJkZGxf ZGF0YWJhc2UgfD0gcHViZm9ybS0+cHViZGRsX2RhdGFiYXNlOworCQlwdWJkZXNjLT5wdWJhY3Rp b25zLnB1YmRkbF90YWJsZSB8PSBwdWJmb3JtLT5wdWJkZGxfdGFibGU7CiAKIAkJLyoKIAkJICog Q2hlY2sgaWYgYWxsIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgZmlsdGVyIGV4cHJlc3Npb24g YXJlIHBhcnQKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDdjYzljNzJlNDkuLjg4NjA1MTBhYzEgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtMzg2OCw2ICszODY4LDggQEAgZ2V0UHVibGljYXRpb25zKEFyY2hpdmUgKmZvdXQs IGludCAqbnVtUHVibGljYXRpb25zKQogCWludAkJCWlfcHViZGVsZXRlOwogCWludAkJCWlfcHVi dHJ1bmNhdGU7CiAJaW50CQkJaV9wdWJ2aWFyb290OworCWludAkJCWlfcHViZGRsX2RhdGFiYXNl OworCWludAkJCWlfcHViZGRsX3RhYmxlOwogCWludAkJCWksCiAJCQkJbnR1cHM7CiAKQEAgLTM4 ODIsMjMgKzM4ODQsMjkgQEAgZ2V0UHVibGljYXRpb25zKEFyY2hpdmUgKmZvdXQsIGludCAqbnVt UHVibGljYXRpb25zKQogCXJlc2V0UFFFeHBCdWZmZXIocXVlcnkpOwogCiAJLyogR2V0IHRoZSBw dWJsaWNhdGlvbnMuICovCi0JaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTMwMDAwKQorCWlm IChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksCisJCQkJCQkgICJTRUxFQ1QgcC50YWJsZW9pZCwgcC5vaWQsIHAucHVibmFtZSwgIgorCQkJ CQkJICAicC5wdWJvd25lciwgIgorCQkJCQkJICAicC5wdWJhbGx0YWJsZXMsIHAucHViaW5zZXJ0 LCBwLnB1YnVwZGF0ZSwgcC5wdWJkZWxldGUsIHAucHVidHJ1bmNhdGUsIHAucHVidmlhcm9vdCwg cC5wdWJkZGxfZGF0YWJhc2UsIHAucHViZGRsX3RhYmxlICIKKwkJCQkJCSAgIkZST00gcGdfcHVi bGljYXRpb24gcCIpOworCWVsc2UgaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTMwMDAwKQog CQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJCSAgIlNFTEVDVCBwLnRhYmxlb2lkLCBw Lm9pZCwgcC5wdWJuYW1lLCAiCiAJCQkJCQkgICJwLnB1Ym93bmVyLCAiCi0JCQkJCQkgICJwLnB1 YmFsbHRhYmxlcywgcC5wdWJpbnNlcnQsIHAucHVidXBkYXRlLCBwLnB1YmRlbGV0ZSwgcC5wdWJ0 cnVuY2F0ZSwgcC5wdWJ2aWFyb290ICIKKwkJCQkJCSAgInAucHViYWxsdGFibGVzLCBwLnB1Ymlu c2VydCwgcC5wdWJ1cGRhdGUsIHAucHViZGVsZXRlLCBwLnB1YnRydW5jYXRlLCBwLnB1YnZpYXJv b3QsIGZhbHNlIEFTIHB1YmRkbF9kYXRhYmFzZSwgZmFsc2UgQVMgcHViZGRsX3RhYmxlICIKIAkJ CQkJCSAgIkZST00gcGdfcHVibGljYXRpb24gcCIpOwogCWVsc2UgaWYgKGZvdXQtPnJlbW90ZVZl cnNpb24gPj0gMTEwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJCSAgIlNF TEVDVCBwLnRhYmxlb2lkLCBwLm9pZCwgcC5wdWJuYW1lLCAiCiAJCQkJCQkgICJwLnB1Ym93bmVy LCAiCi0JCQkJCQkgICJwLnB1YmFsbHRhYmxlcywgcC5wdWJpbnNlcnQsIHAucHVidXBkYXRlLCBw LnB1YmRlbGV0ZSwgcC5wdWJ0cnVuY2F0ZSwgZmFsc2UgQVMgcHVidmlhcm9vdCAiCisJCQkJCQkg ICJwLnB1YmFsbHRhYmxlcywgcC5wdWJpbnNlcnQsIHAucHVidXBkYXRlLCBwLnB1YmRlbGV0ZSwg cC5wdWJ0cnVuY2F0ZSwgZmFsc2UgQVMgcHVidmlhcm9vdCwgZmFsc2UgQVMgcHViZGRsX2RhdGFi YXNlLCBmYWxzZSBBUyBwdWJkZGxfdGFibGUgIgogCQkJCQkJICAiRlJPTSBwZ19wdWJsaWNhdGlv biBwIik7CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJCSAgIlNFTEVD VCBwLnRhYmxlb2lkLCBwLm9pZCwgcC5wdWJuYW1lLCAiCiAJCQkJCQkgICJwLnB1Ym93bmVyLCAi Ci0JCQkJCQkgICJwLnB1YmFsbHRhYmxlcywgcC5wdWJpbnNlcnQsIHAucHVidXBkYXRlLCBwLnB1 YmRlbGV0ZSwgZmFsc2UgQVMgcHVidHJ1bmNhdGUsIGZhbHNlIEFTIHB1YnZpYXJvb3QgIgorCQkJ CQkJICAicC5wdWJhbGx0YWJsZXMsIHAucHViaW5zZXJ0LCBwLnB1YnVwZGF0ZSwgcC5wdWJkZWxl dGUsIGZhbHNlIEFTIHB1YnRydW5jYXRlLCBmYWxzZSBBUyBwdWJ2aWFyb290LCBmYWxzZSBBUyBw dWJkZGxfZGF0YWJhc2UsIGZhbHNlIEFTIHB1YmRkbF90YWJsZSAiCiAJCQkJCQkgICJGUk9NIHBn X3B1YmxpY2F0aW9uIHAiKTsKIAogCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKQEAgLTM5MTUsNiArMzkyMyw4IEBAIGdldFB1YmxpY2F0 aW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVB1YmxpY2F0aW9ucykKIAlpX3B1YmRlbGV0ZSA9 IFBRZm51bWJlcihyZXMsICJwdWJkZWxldGUiKTsKIAlpX3B1YnRydW5jYXRlID0gUFFmbnVtYmVy KHJlcywgInB1YnRydW5jYXRlIik7CiAJaV9wdWJ2aWFyb290ID0gUFFmbnVtYmVyKHJlcywgInB1 YnZpYXJvb3QiKTsKKwlpX3B1YmRkbF9kYXRhYmFzZSA9IFBRZm51bWJlcihyZXMsICJwdWJkZGxf ZGF0YWJhc2UiKTsKKwlpX3B1YmRkbF90YWJsZSA9IFBRZm51bWJlcihyZXMsICJwdWJkZGxfdGFi bGUiKTsKIAogCXB1YmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoUHVibGljYXRpb25J bmZvKSk7CiAKQEAgLTM5MzksNiArMzk0OSwxMCBAQCBnZXRQdWJsaWNhdGlvbnMoQXJjaGl2ZSAq Zm91dCwgaW50ICpudW1QdWJsaWNhdGlvbnMpCiAJCQkoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3B1YnRydW5jYXRlKSwgInQiKSA9PSAwKTsKIAkJcHViaW5mb1tpXS5wdWJ2aWFyb290ID0K IAkJCShzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHVidmlhcm9vdCksICJ0IikgPT0gMCk7 CisJCXB1YmluZm9baV0ucHViZGRsX2RhdGFiYXNlID0KKwkJCShzdHJjbXAoUFFnZXR2YWx1ZShy ZXMsIGksIGlfcHViZGRsX2RhdGFiYXNlKSwgInQiKSA9PSAwKTsKKwkJcHViaW5mb1tpXS5wdWJk ZGxfdGFibGUgPQorCQkJKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9wdWJkZGxfdGFibGUp LCAidCIpID09IDApOwogCiAJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAq LwogCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHB1YmluZm9baV0uZG9iaiksIGZvdXQpOwpAQCAt NDAxOCw2ICs0MDMyLDI5IEBAIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQ dWJsaWNhdGlvbkluZm8gKnB1YmluZm8pCiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwg IiciKTsKIAorCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBkZGwgPSAnIik7CisJZmly c3QgPSB0cnVlOworCisJaWYgKHB1YmluZm8tPnB1YmRkbF9kYXRhYmFzZSkKKwl7CisJCWlmICgh Zmlyc3QpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgIik7CisKKwkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICJkYXRhYmFzZSIpOworCQlmaXJzdCA9IGZhbHNlOworCX0K KworCWlmIChwdWJpbmZvLT5wdWJkZGxfdGFibGUpCisJeworCQlpZiAoIWZpcnN0KQorCQkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsICIpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KHF1ZXJ5LCAidGFibGUiKTsKKwkJZmlyc3QgPSBmYWxzZTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwgIiciKTsKKwogCWlmIChwdWJpbmZvLT5wdWJ2aWFyb290KQogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0 cnVlIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDFkMjFjMjkwNmYuLjhjNWVmMDFjYjAgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaApAQCAtNjIwLDYgKzYyMCw4IEBAIHR5cGVkZWYgc3RydWN0IF9QdWJsaWNhdGlvbkluZm8K IAlib29sCQlwdWJkZWxldGU7CiAJYm9vbAkJcHVidHJ1bmNhdGU7CiAJYm9vbAkJcHVidmlhcm9v dDsKKwlib29sCQlwdWJkZGxfZGF0YWJhc2U7CisJYm9vbAkJcHViZGRsX3RhYmxlOwogfSBQdWJs aWNhdGlvbkluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDFmMDg3MTZm NjkuLmNiZmNhYmNmYTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1w LnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0yNDIwLDcgKzI0 MjAsNyBAQCBteSAldGVzdHMgPSAoCiAJCWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJY3JlYXRlX3Nx bCAgID0+ICdDUkVBVEUgUFVCTElDQVRJT04gcHViMTsnLAogCQlyZWdleHAgICAgICAgPT4gcXIv XgotCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViMSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwg dXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 YjEgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIGRk bCA9ICcnKTtcRQogCQkJL3htLAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0 X2RhdGEgPT4gMSwgfSwKIAl9LApAQCAtMjQyOSw5ICsyNDI5LDkgQEAgbXkgJXRlc3RzID0gKAog CQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFBVQkxJQ0FU SU9OIHB1YjIKIAkJCQkJCSBGT1IgQUxMIFRBQkxFUwotCQkJCQkJIFdJVEggKHB1Ymxpc2ggPSBc J1wnKTsnLAorCQkJCQkJIFdJVEggKHB1Ymxpc2ggPSBcJ1wnLCBkZGwgPSBcJ1wnKTsnLAogCQly ZWdleHAgPT4gcXIvXgotCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViMiBGT1IgQUxMIFRBQkxF UyBXSVRIIChwdWJsaXNoID0gJycpO1xFCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWIyIEZP UiBBTEwgVEFCTEVTIFdJVEggKHB1Ymxpc2ggPSAnJywgZGRsID0gJycpO1xFCiAJCQkveG0sCiAJ CWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0sCkBA IC0yNDQwLDcgKzI0NDAsNyBAQCBteSAldGVzdHMgPSAoCiAJCWNyZWF0ZV9vcmRlciA9PiA1MCwK IAkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgUFVCTElDQVRJT04gcHViMzsnLAogCQlyZWdleHAg ICAgICAgPT4gcXIvXgotCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViMyBXSVRIIChwdWJsaXNo ID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCVxRQ1JFQVRFIFBV QkxJQ0FUSU9OIHB1YjMgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0 cnVuY2F0ZScsIGRkbCA9ICcnKTtcRQogCQkJL3htLAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LApAQCAtMjQ0OSw3ICsyNDQ5LDcgQEAgbXkg JXRlc3RzID0gKAogCQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgICA9PiAnQ1JF QVRFIFBVQkxJQ0FUSU9OIHB1YjQ7JywKIAkJcmVnZXhwICAgICAgID0+IHFyL14KLQkJCVxRQ1JF QVRFIFBVQkxJQ0FUSU9OIHB1YjQgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVs ZXRlLCB0cnVuY2F0ZScpO1xFCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWI0IFdJVEggKHB1 Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBkZGwgPSAnJyk7XEUK IAkJCS94bSwKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEs IH0sCiAJfSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMKaW5kZXggMWE1ZDkyNGEyMy4uYjA3YzZiMTg0MSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAg LTYwNTAsNyArNjA1MCw3IEBAIGxpc3RQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikK IAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0 IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5z W10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTYwODUsNiArNjA4 NSwxNSBAQCBsaXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsCiAJCQkJCQkgICIsXG4gIHB1YnZpYXJvb3QgQVMgXCIlc1wiIiwKIAkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJWaWEgcm9vdCIpKTsKKwlpZiAocHNldC5zdmVyc2lvbiA+PSAx NDAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBwdWJk ZGxfZGF0YWJhc2UgQVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEYXRhYmFzZSBs ZXZlbCBERExzIikpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBw dWJkZGxfdGFibGUgQVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJUYWJsZSBsZXZl bCBERExzIikpOworCX0KIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCiAJCQkJCQkgIlxu RlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uXG4iKTsKQEAgLTYxNzIsNiArNjE4MSw3IEBA IGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJUEdyZXN1bHQgICAq cmVzOwogCWJvb2wJCWhhc19wdWJ0cnVuY2F0ZTsKIAlib29sCQloYXNfcHVidmlhcm9vdDsKKwli b29sCQloYXNfcHViZGRsOwogCiAJUFFFeHBCdWZmZXJEYXRhIHRpdGxlOwogCXByaW50VGFibGVD b250ZW50IGNvbnQ7CkBAIC02MTg4LDYgKzYxOTgsNyBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhj b25zdCBjaGFyICpwYXR0ZXJuKQogCiAJaGFzX3B1YnRydW5jYXRlID0gKHBzZXQuc3ZlcnNpb24g Pj0gMTEwMDAwKTsKIAloYXNfcHVidmlhcm9vdCA9IChwc2V0LnN2ZXJzaW9uID49IDEzMDAwMCk7 CisJaGFzX3B1YmRkbCA9IChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCk7CiAKIAlpbml0UFFFeHBC dWZmZXIoJmJ1Zik7CiAKQEAgLTYyMDEsNiArNjIxMiwxMSBAQCBkZXNjcmliZVB1YmxpY2F0aW9u cyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCWlmIChoYXNfcHVidmlhcm9vdCkKIAkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwKIAkJCQkJCQkgIiwgcHVidmlhcm9vdCIpOworCWlmIChoYXNfcHVi ZGRsKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJCQkJCQkgIiwgcHViZGRs X2RhdGFiYXNlLCBwdWJkZGxfdGFibGUiKTsKKwl9CiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1 ZiwKIAkJCQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25cbiIpOwogCkBAIC02 MjQ5LDYgKzYyNjUsOCBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJu KQogCQkJbmNvbHMrKzsKIAkJaWYgKGhhc19wdWJ2aWFyb290KQogCQkJbmNvbHMrKzsKKwkJaWYg KGhhc19wdWJkZGwpCisJCQluY29scyArPSAyOwogCiAJCWluaXRQUUV4cEJ1ZmZlcigmdGl0bGUp OwogCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlB1YmxpY2F0aW9uICVzIiksIHB1Ym5h bWUpOwpAQCAtNjI2Myw2ICs2MjgxLDExIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNo YXIgKnBhdHRlcm4pCiAJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3Ao IlRydW5jYXRlcyIpLCB0cnVlLCBhbGlnbik7CiAJCWlmIChoYXNfcHVidmlhcm9vdCkKIAkJCXBy aW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiVmlhIHJvb3QiKSwgdHJ1ZSwg YWxpZ24pOworCQlpZiAoaGFzX3B1YmRkbCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigm Y29udCwgZ2V0dGV4dF9ub29wKCJEYXRhYmFzZSBsZXZlbCBEREwiKSwgdHJ1ZSwgYWxpZ24pOwor CQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJUYWJsZSBsZXZlbCBE REwiKSwgdHJ1ZSwgYWxpZ24pOworCQl9CiAKIAkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBR Z2V0dmFsdWUocmVzLCBpLCAyKSwgZmFsc2UsIGZhbHNlKTsKIAkJcHJpbnRUYWJsZUFkZENlbGwo JmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCAzKSwgZmFsc2UsIGZhbHNlKTsKQEAgLTYyNzMsNiAr NjI5NiwxMSBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJ cHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA3KSwgZmFsc2UsIGZh bHNlKTsKIAkJaWYgKGhhc19wdWJ2aWFyb290KQogCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQs IFBRZ2V0dmFsdWUocmVzLCBpLCA4KSwgZmFsc2UsIGZhbHNlKTsKKwkJaWYgKGhhc19wdWJkZGwp CisJCXsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgOSks IGZhbHNlLCBmYWxzZSk7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShy ZXMsIGksIDEwKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQogCiAJCWlmICghcHViYWxsdGFibGVzKQog CQl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggNDgyMDViYTQyOS4uYTk0 ZTE1MjI1NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApAQCAtMjAsNiArMjAs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmpl Y3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9kLmgiCisjaW5j bHVkZSAidGNvcC91dGlsaXR5LmgiCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCQlwZ19wdWJs aWNhdGlvbiBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRoaXMgaW50bwpAQCAtNTQsNiArNTUsMTIg QEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbiw2MTA0LFB1YmxpY2F0aW9uUmVsYXRpb25JZCkKIAog CS8qIHRydWUgaWYgcGFydGl0aW9uIGNoYW5nZXMgYXJlIHB1Ymxpc2hlZCB1c2luZyByb290IHNj aGVtYSAqLwogCWJvb2wJCXB1YnZpYXJvb3Q7CisKKwkvKiB0cnVlIGlmIGRhdGFiYXNlIGxldmVs IGRkbHMgYXJlIHB1Ymxpc2hlZCAqLworCWJvb2wJCXB1YmRkbF9kYXRhYmFzZTsKKworCS8qIHRy dWUgaWYgdGFibGUgbGV2ZWwgZGRscyBhcmUgcHVibGlzaGVkICovCisJYm9vbAkJcHViZGRsX3Rh YmxlOwogfSBGb3JtRGF0YV9wZ19wdWJsaWNhdGlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpA QCAtNzIsNiArNzksOCBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvbkFjdGlvbnMKIAlib29s CQlwdWJ1cGRhdGU7CiAJYm9vbAkJcHViZGVsZXRlOwogCWJvb2wJCXB1YnRydW5jYXRlOworCWJv b2wJCXB1YmRkbF9kYXRhYmFzZTsKKwlib29sCQlwdWJkZGxfdGFibGU7CiB9IFB1YmxpY2F0aW9u QWN0aW9uczsKIAogdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25EZXNjCkBAIC0xNTcsNSArMTY2 LDYgQEAgZXh0ZXJuIEJpdG1hcHNldCAqcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0KEJpdG1hcHNl dCAqY29sdW1ucywgRGF0dW0gcHViY29scywKIAogZXh0ZXJuIE9pZAlnZXRfcHVibGljYXRpb25f b2lkKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hhciAq Z2V0X3B1YmxpY2F0aW9uX25hbWUoT2lkIHB1YmlkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJu IGJvb2wgZGRsX25lZWRfeGxvZyhPaWQgcmVsaWQsIGJvb2wgZm9yQWxsVGFiUHViT25seSwgYm9v bCBpc1RvcExldmVsKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX1BVQkxJQ0FUSU9OX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvZGVmcmVtLmgKaW5kZXggNTZkMmJiNjYxNi4uMDczZjQ2ZWYxYSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZGVmcmVtLmgKQEAgLTE1LDYgKzE1LDcgQEAKICNkZWZpbmUgREVGUkVNX0gKIAogI2luY2x1ZGUg ImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRp b24uaCIKICNpbmNsdWRlICJub2Rlcy9wYXJhbXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vf bm9kZS5oIgogI2luY2x1ZGUgInRjb3AvZGVzdC5oIgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3B1YmxpY2F0aW9uLm91dAppbmRleCAyNzRiMzdkZmU1Li5lOWNlYTExYTViIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMzAsMjAgKzMwLDIwIEBAIEVS Uk9SOiAgY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMKIExJTkUgMTogLi4udWJfeHh4 IFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gJ3RydWUnLCBwdWJsaXNoX3ZpLi4u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogXGRScAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgcHVibGljYXRpb25zCi0gICAgICAgIE5hbWUgICAgICAgIHwgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSB0ZXN0cGliX2luc190cnVuY3QgfCByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAg ICAgIHwgZiAgICAgICAgIHwgZgotIHRlc3RwdWJfZGVmYXVsdCAgICB8IHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBm ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBwdWJsaWNhdGlvbnMKKyAgICAgICAgTmFt ZSAgICAgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBs ZXZlbCBERExzIHwgVGFibGUgbGV2ZWwgRERMcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KKyB0ZXN0cGliX2luc190cnVuY3QgfCByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAg ICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgIHwgZgorIHRlc3RwdWJfZGVmYXVs dCAgICB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwg dCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAg ICAgICAgfCBmCiAoMiByb3dzKQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RlZmF1bHQg U0VUIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUnKTsKIFxkUnAKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9u cwotICAgICAgICBOYW1lICAgICAgICB8ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9v dCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gdGVzdHBpYl9pbnNfdHJ1bmN0IHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKLSB0 ZXN0cHViX2RlZmF1bHQgICAgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgcHVibGljYXRpb25zCisgICAgICAgIE5hbWUgICAgICAgIHwgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMcyB8IFRhYmxlIGxldmVs IERETHMgCistLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgdGVzdHBp Yl9pbnNfdHJ1bmN0IHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgICB8IGYKKyB0ZXN0cHViX2RlZmF1bHQgICAgfCByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgIHwgZgogKDIgcm93cykKIAog LS0tIGFkZGluZyB0YWJsZXMKQEAgLTg3LDEwICs4NywxMCBAQCBSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOwogLS0gc2hvdWxkIGJlIGFibGUgdG8gYWRkIHNjaGVtYSB0byAnRk9SIFRBQkxFJyBw dWJsaWNhdGlvbgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBBREQgQUxMIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CiBcZFJwKyB0ZXN0cHViX2ZvcnRhYmxlCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ydGFibGUKLSAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X2ZvcnRhYmxlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2Ug bGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJs ZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgpAQCAt OTksMjAgKzk5LDIwIEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAtLSBzaG91bGQgYmUgYWJsZSB0 byBkcm9wIHNjaGVtYSBmcm9tICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2ZvcnRhYmxlIERST1AgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7 CiBcZFJwKyB0ZXN0cHViX2ZvcnRhYmxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ydGFibGUKLSAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwg RERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHVi X3RibDEiCiAKIC0tIHNob3VsZCBiZSBhYmxlIHRvIHNldCBzY2hlbWEgdG8gJ0ZPUiBUQUJMRScg cHVibGljYXRpb24KIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgU0VUIEFMTCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogXGRScCsgdGVzdHB1Yl9mb3J0YWJsZQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCi0g ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9mb3J0YWJsZQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNl IGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFi bGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QiCiAKQEAgLTEzNCwxMCArMTM0LDEwIEBA IEVSUk9SOiAgcmVsYXRpb24gInRlc3RwdWJfbm9wayIgaXMgbm90IHBhcnQgb2YgdGhlIHB1Ymxp Y2F0aW9uCiAtLSBzaG91bGQgYmUgYWJsZSB0byBzZXQgdGFibGUgdG8gc2NoZW1hIHB1YmxpY2F0 aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBTRVQgVEFCTEUgcHViX3Rl c3QudGVzdHB1Yl9ub3BrOwogXGRScCsgdGVzdHB1Yl9mb3JzY2hlbWEKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnNjaGVtYQotICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yc2No ZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwg RERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAg ICAgInB1Yl90ZXN0LnRlc3RwdWJfbm9wayIKIApAQCAtMTU5LDEwICsxNTksMTAgQEAgUHVibGlj YXRpb25zOgogICAgICJ0ZXN0cHViX2ZvcmFsbHRhYmxlcyIKIAogXGRScCsgdGVzdHB1Yl9mb3Jh bGx0YWJsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfZm9yYWxsdGFibGVzCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAg IHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzCisgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCB0ICAgICAg ICAgICAgICAgICAgfCB0CiAoMSByb3cpCiAKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwyOwpAQCAt MTc0LDE5ICsxNzQsMTkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIzIEZPUiBUQUJMRSB0 ZXN0cHViX3RibDM7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjQgRk9SIFRBQkxFIE9OTFkg dGVzdHB1Yl90YmwzOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIz Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi MwotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViMworICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNl IGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFi bGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgogICAgICJwdWJsaWMudGVzdHB1Yl90Ymwz YSIKIAogXGRScCsgdGVzdHB1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWI0Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290 IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI0CisgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCiAKQEAg LTIwNywxMCArMjA3LDEwIEBAIFVQREFURSB0ZXN0cHViX3BhcnRlZDEgU0VUIGEgPSAxOwogLS0g b25seSBwYXJlbnQgaXMgbGlzdGVkIGFzIGJlaW5nIGluIHB1YmxpY2F0aW9uLCBub3QgdGhlIHBh cnRpdGlvbgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQgQUREIFRBQkxFIHRl c3RwdWJfcGFydGVkOwogXGRScCsgdGVzdHB1Yl9mb3JwYXJ0ZWQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnBhcnRlZAotICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ycGFydGVk CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERM IHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAg InB1YmxpYy50ZXN0cHViX3BhcnRlZCIKIApAQCAtMjIzLDEwICsyMjMsMTAgQEAgQUxURVIgVEFC TEUgdGVzdHB1Yl9wYXJ0ZWQgREVUQUNIIFBBUlRJVElPTiB0ZXN0cHViX3BhcnRlZDE7CiBVUERB VEUgdGVzdHB1Yl9wYXJ0ZWQxIFNFVCBhID0gMTsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9ycGFydGVkIFNFVCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKTsKIFxkUnAr IHRlc3RwdWJfZm9ycGFydGVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9mb3JwYXJ0ZWQKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJv b3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnBhcnRlZAorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9wYXJ0 ZWQiCiAKQEAgLTI1NSwxMCArMjU1LDEwIEBAIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VS Uk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgVEFCTEUgdGVzdHB1Yl9yZl90 YmwxLCB0ZXN0cHViX3JmX3RibDIgV0hFUkUgKGMgPD4gJ3Rlc3QnIEFORCBkIDwgNSkgV0lUSCAo cHVibGlzaCA9ICdpbnNlcnQnKTsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0 ZXN0cHViNQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1YjUKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBE YXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAg ICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfcmZfdGJsMSIKICAgICAicHVibGljLnRl c3RwdWJfcmZfdGJsMiIgV0hFUkUgKChjIDw+ICd0ZXN0Jzo6dGV4dCkgQU5EIChkIDwgNSkpCkBA IC0yNzEsMTAgKzI3MSwxMCBAQCBUYWJsZXM6CiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWI1 IEFERCBUQUJMRSB0ZXN0cHViX3JmX3RibDMgV0hFUkUgKGUgPiAxMDAwIEFORCBlIDwgMjAwMCk7 CiBcZFJwKyB0ZXN0cHViNQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1YjUKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAg ICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlh IHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAg IHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfcmZfdGJsMSIKICAgICAi cHVibGljLnRlc3RwdWJfcmZfdGJsMiIgV0hFUkUgKChjIDw+ICd0ZXN0Jzo6dGV4dCkgQU5EIChk IDwgNSkpCkBAIC0yOTAsMTAgKzI5MCwxMCBAQCBQdWJsaWNhdGlvbnM6CiAKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWI1IERST1AgVEFCTEUgdGVzdHB1Yl9yZl90YmwyOwogXGRScCsgdGVzdHB1 YjUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWI1Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWI1CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJh c2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBm ICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBU YWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAgICAgInB1YmxpYy50ZXN0cHVi X3JmX3RibDMiIFdIRVJFICgoZSA+IDEwMDApIEFORCAoZSA8IDIwMDApKQpAQCAtMzAxLDEwICsz MDEsMTAgQEAgVGFibGVzOgogLS0gcmVtb3ZlIHRlc3RwdWJfcmZfdGJsMSBhbmQgYWRkIHRlc3Rw dWJfcmZfdGJsMyBhZ2FpbiAoYW5vdGhlciBXSEVSRSBleHByZXNzaW9uKQogQUxURVIgUFVCTElD QVRJT04gdGVzdHB1YjUgU0VUIFRBQkxFIHRlc3RwdWJfcmZfdGJsMyBXSEVSRSAoZSA+IDMwMCBB TkQgZSA8IDUwMCk7CiBcZFJwKyB0ZXN0cHViNQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKLSAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfcmZf dGJsMyIgV0hFUkUgKChlID4gMzAwKSBBTkQgKGUgPCA1MDApKQogCkBAIC0zMzcsMTAgKzMzNywx MCBAQCBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9zeW50YXgxIEZPUiBUQUJMRSB0ZXN0cHViX3JmX3RibDEsIE9OTFkgdGVzdHB1 Yl9yZl90YmwzIFdIRVJFIChlIDwgOTk5KSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCcpOwogUkVT RVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWJfc3ludGF4MQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3N5bnRheDEKLSAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9z eW50YXgxCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2 ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAg IHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6 CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3Ri bDMiIFdIRVJFIChlIDwgOTk5KQpAQCAtMzUwLDEwICszNTAsMTAgQEAgU0VUIGNsaWVudF9taW5f bWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc3ludGF4MiBG T1IgVEFCTEUgdGVzdHB1Yl9yZl90YmwxLCB0ZXN0cHViX3JmX3NjaGVtYTEudGVzdHB1Yl9yZl90 Ymw1IFdIRVJFIChoIDwgOTk5KSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCcpOwogUkVTRVQgY2xp ZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWJfc3ludGF4MgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3N5bnRheDIKLSAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg ZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zeW50YXgy CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERM IHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAg InB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAgICAgInRlc3RwdWJfcmZfc2NoZW1hMS50ZXN0cHVi X3JmX3RibDUiIFdIRVJFIChoIDwgOTk5KQpAQCAtMTAyOSwxMCArMTAyOSwxMCBAQCBFUlJPUjog IHJlbGF0aW9uICJ0ZXN0cHViX3RibDEiIGlzIGFscmVhZHkgbWVtYmVyIG9mIHB1YmxpY2F0aW9u ICJ0ZXN0cHViX2ZvcnRibAogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGJsIEZPUiBU QUJMRSB0ZXN0cHViX3RibDE7CiBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnRibCIg YWxyZWFkeSBleGlzdHMKIFxkUnArIHRlc3RwdWJfZm9ydGJsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRibAotICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ci0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRibAorICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRh YmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJf dGVzdC50ZXN0cHViX25vcGsiCiAgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCkBAIC0xMDcwLDEw ICsxMDcwLDEwIEBAIFB1YmxpY2F0aW9uczoKICAgICAidGVzdHB1Yl9mb3J0YmwiCiAKIFxkUnAr IHRlc3RwdWJfZGVmYXVsdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNh dGlvbiB0ZXN0cHViX2RlZmF1bHQKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3Qg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAg ICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9kZWZhdWx0CisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1Yl90ZXN0LnRlc3RwdWJfbm9wayIK ICAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKQEAgLTExNTEsMTAgKzExNTEsMTAgQEAgUkVWT0tF IENSRUFURSBPTiBEQVRBQkFTRSByZWdyZXNzaW9uIEZST00gcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyMjsKIERST1AgVEFCTEUgdGVzdHB1Yl9wYXJ0ZWQ7CiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJs MTsKIFxkUnArIHRlc3RwdWJfZGVmYXVsdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2RlZmF1bHQKLSAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9kZWZhdWx0CisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwg RERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBtdXN0IGJl IG93bmVyIG9mIHB1YmxpY2F0aW9uCkBAIC0xMTY0LDIwICsxMTY0LDIwIEBAIEVSUk9SOiAgbXVz dCBiZSBvd25lciBvZiBwdWJsaWNhdGlvbiB0ZXN0cHViX2RlZmF1bHQKIFJFU0VUIFJPTEU7CiBB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RlZmF1bHQgUkVOQU1FIFRPIHRlc3RwdWJfZm9vOwog XGRScCB0ZXN0cHViX2ZvbwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgcHVibGljYXRpb25zCi0gICAgTmFtZSAgICAgfCAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gdGVzdHB1Yl9mb28gfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBwdWJsaWNhdGlvbnMKKyAgICBOYW1lICAgICB8ICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETHMgfCBUYWJsZSBsZXZlbCBE RExzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgdGVzdHB1Yl9mb28gfCBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgIHwg ZgogKDEgcm93KQogCiAtLSByZW5hbWUgYmFjayB0byBrZWVwIHRoZSByZXN0IHNpbXBsZQogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb28gUkVOQU1FIFRPIHRlc3RwdWJfZGVmYXVsdDsKIEFM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGVmYXVsdCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIyOwogXGRScCB0ZXN0cHViX2RlZmF1bHQKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRpb25zCi0gICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHRlc3RwdWJfZGVmYXVs dCB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBwdWJsaWNh dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSBy b290IHwgRGF0YWJhc2UgbGV2ZWwgRERMcyB8IFRhYmxlIGxldmVsIERETHMgCistLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHRlc3RwdWJfZGVmYXVsdCB8IHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlcjIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgIHwgZgogKDEg cm93KQogCiAtLSBhZGRpbmcgc2NoZW1hcyBhbmQgdGFibGVzCkBAIC0xMTkzLDE5ICsxMTkzLDE5 IEBAIENSRUFURSBUQUJMRSAiQ1VSUkVOVF9TQ0hFTUEiLiJDVVJSRU5UX1NDSEVNQSIoaWQgaW50 KTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViMV9mb3JzY2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsK IFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2 ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAg ICJwdWJfdGVzdDEiCiAKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMl9mb3JzY2hlbWEgRk9S IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MSwgcHViX3Rlc3QyLCBwdWJfdGVzdDM7CiBc ZFJwKyB0ZXN0cHViMl9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViMl9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVs IERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAi cHViX3Rlc3QxIgogICAgICJwdWJfdGVzdDIiCkBAIC0xMjE5LDQ0ICsxMjE5LDQ0IEBAIENSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViNl9mb3JzY2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1B ICJDVVJSRU5UX1NDSEVNQSIsCiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBG T1IgVEFCTEUgIkNVUlJFTlRfU0NIRU1BIi4iQ1VSUkVOVF9TQ0hFTUEiOwogUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjNfZm9yc2No ZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwg RERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJv bSBzY2hlbWFzOgogICAgICJwdWJsaWMiCiAKIFxkUnArIHRlc3RwdWI0X2ZvcnNjaGVtYQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI0X2ZvcnNjaGVt YQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1YjRfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0 YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBm CiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJDVVJSRU5UX1NDSEVNQSIKIAogXGRScCsgdGVz dHB1YjVfZm9yc2NoZW1hCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1YjVfZm9yc2NoZW1hCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290 IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgIkNVUlJFTlRf U0NIRU1BIgogICAgICJwdWJsaWMiCiAKIFxkUnArIHRlc3RwdWI2X2ZvcnNjaGVtYQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI2X2ZvcnNjaGVtYQot ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 YjZfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJh c2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBU YWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJDVVJSRU5UX1NDSEVNQSIKICAgICAicHVibGljIgog CiBcZFJwKyB0ZXN0cHViX2ZvcnRhYmxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ydGFibGUKLSAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwg RERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgIkNVUlJFTlRfU0NIRU1B LkNVUlJFTlRfU0NIRU1BIgogCkBAIC0xMjkwLDEwICsxMjkwLDEwIEBAIEVSUk9SOiAgc2NoZW1h ICJ0ZXN0cHViX3ZpZXciIGRvZXMgbm90IGV4aXN0CiAtLSBkcm9wcGluZyB0aGUgc2NoZW1hIHNo b3VsZCByZWZsZWN0IHRoZSBjaGFuZ2UgaW4gcHVibGljYXRpb24KIERST1AgU0NIRU1BIHB1Yl90 ZXN0MzsKIFxkUnArIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0g cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjJfZm9yc2NoZW1hCisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFi bGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFz OgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTEzMDEsMjAgKzEzMDEsMjAg QEAgVGFibGVzIGZyb20gc2NoZW1hczoKIC0tIHJlbmFtaW5nIHRoZSBzY2hlbWEgc2hvdWxkIHJl ZmxlY3QgdGhlIGNoYW5nZSBpbiBwdWJsaWNhdGlvbgogQUxURVIgU0NIRU1BIHB1Yl90ZXN0MSBS RU5BTUUgdG8gcHViX3Rlc3QxX3JlbmFtZWQ7CiBcZFJwKyB0ZXN0cHViMl9mb3JzY2hlbWEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMl9mb3JzY2hl bWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWIyX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERh dGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxX3JlbmFtZWQiCiAgICAgInB1 Yl90ZXN0MiIKIAogQUxURVIgU0NIRU1BIHB1Yl90ZXN0MV9yZW5hbWVkIFJFTkFNRSB0byBwdWJf dGVzdDE7CiBcZFJwKyB0ZXN0cHViMl9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMl9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQorICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRh YmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1h czoKICAgICAicHViX3Rlc3QxIgogICAgICJwdWJfdGVzdDIiCkBAIC0xMzIyLDEwICsxMzIyLDEw IEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAtLSBhbHRlciBwdWJsaWNhdGlvbiBhZGQgc2NoZW1h CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgQUREIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0MjsKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9y c2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2 ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMg ZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTEzMzQs MTAgKzEzMzQsMTAgQEAgVGFibGVzIGZyb20gc2NoZW1hczoKIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWIxX2ZvcnNjaGVtYSBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgbm9uX2V4aXN0ZW50X3Nj aGVtYTsKIEVSUk9SOiAgc2NoZW1hICJub25fZXhpc3RlbnRfc2NoZW1hIiBkb2VzIG5vdCBleGlz dAogXGRScCsgdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBs ZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBm ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAg ICAgInB1Yl90ZXN0MSIKICAgICAicHViX3Rlc3QyIgpAQCAtMTM0NiwxMCArMTM0NiwxMCBAQCBU YWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1h IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDE7CiBFUlJPUjogIHNjaGVtYSAicHVi X3Rlc3QxIiBpcyBhbHJlYWR5IG1lbWJlciBvZiBwdWJsaWNhdGlvbiAidGVzdHB1YjFfZm9yc2No ZW1hIgogXGRScCsgdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKKyAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBUYWJs ZSBsZXZlbCBEREwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6 CiAgICAgInB1Yl90ZXN0MSIKICAgICAicHViX3Rlc3QyIgpAQCAtMTM1NywxMCArMTM1NywxMCBA QCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogLS0gYWx0ZXIgcHVibGljYXRpb24gZHJvcCBzY2hlbWEK IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBEUk9QIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHB1Yl90ZXN0MjsKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9y c2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2 ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMg ZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKQEAgLTEzNjgsMTAgKzEzNjgsMTAgQEAg VGFibGVzIGZyb20gc2NoZW1hczoKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVt YSBEUk9QIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MjsKIEVSUk9SOiAgdGFibGVzIGZy b20gc2NoZW1hICJwdWJfdGVzdDIiIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljYXRpb24KIFxk UnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBW aWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwg RERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJw dWJfdGVzdDEiCiAKQEAgLTEzNzksMjkgKzEzNzksMjkgQEAgVGFibGVzIGZyb20gc2NoZW1hczoK IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBEUk9QIEFMTCBUQUJMRVMgSU4g U0NIRU1BIG5vbl9leGlzdGVudF9zY2hlbWE7CiBFUlJPUjogIHNjaGVtYSAibm9uX2V4aXN0ZW50 X3NjaGVtYSIgZG9lcyBub3QgZXhpc3QKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQot ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJh c2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBU YWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKIC0tIGRyb3AgYWxsIHNjaGVt YXMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBEUk9QIEFMTCBUQUJMRVMg SU4gU0NIRU1BIHB1Yl90ZXN0MTsKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFf Zm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2Ug bGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiAoMSBy b3cpCiAKIC0tIGFsdGVyIHB1YmxpY2F0aW9uIHNldCBtdWx0aXBsZSBzY2hlbWEKIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBTRVQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3Rlc3QxLCBwdWJfdGVzdDI7CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2Zv cnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRz IHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxl dmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogVGFibGVz IGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogICAgICJwdWJfdGVzdDIiCkBAIC0xNDEw LDEwICsxNDEwLDEwIEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViMV9mb3JzY2hlbWEgU0VUIEFMTCBUQUJMRVMgSU4gU0NIRU1BIG5vbl9leGlzdGVudF9z Y2hlbWE7CiBFUlJPUjogIHNjaGVtYSAibm9uX2V4aXN0ZW50X3NjaGVtYSIgZG9lcyBub3QgZXhp c3QKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCisgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUg bGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg ZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgog ICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTE0MjIsMTAgKzE0MjIsMTAgQEAg VGFibGVzIGZyb20gc2NoZW1hczoKIC0tIHJlbW92aW5nIHRoZSBkdXBsaWNhdGUgc2NoZW1hcwog QUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIFNFVCBBTEwgVEFCTEVTIElOIFND SEVNQSBwdWJfdGVzdDEsIHB1Yl90ZXN0MTsKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVt YQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0 YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBm CiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKQEAgLTE1MDQsMTggKzE1 MDQsMTggQEAgU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWIzX2ZvcnNjaGVtYTsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBc ZFJwKyB0ZXN0cHViM19mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViM19mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVs IERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgZgogKDEgcm93KQogCiBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViM19mb3JzY2hlbWEgU0VUIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsK IFxkUnArIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjNfZm9yc2NoZW1hCisgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUgbGV2 ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZiAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAg ICJwdWJfdGVzdDEiCiAKQEAgLTE1MjUsMjAgKzE1MjUsMjAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9yc2NoZW1hX2ZvcnRhYmxlIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdDEKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlX2ZvcnNjaGVtYSBGT1Ig VEFCTEUgcHViX3Rlc3QyLnRibDEsIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsKIFJF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViX2ZvcnNjaGVtYV9mb3J0YWJs ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JzY2hl bWFfZm9ydGFibGUKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBm CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9mb3JzY2hlbWFfZm9ydGFibGUKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgfCBEYXRhYmFzZSBsZXZlbCBEREwgfCBUYWJsZSBsZXZlbCBEREwgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHViX3Rlc3QyLnRibDEiCiBUYWJsZXMgZnJv bSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKIFxkUnArIHRlc3RwdWJfZm9ydGFibGVfZm9y c2NoZW1hCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2Zv cnRhYmxlX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBWaWEgcm9vdCB8IERhdGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJfdGVzdDIudGJsMSIKIFRhYmxl cyBmcm9tIHNjaGVtYXM6Ci0tIAoyLjMyLjAKCg== --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0003-Logical-replication-of-DDL-messages.patch" Content-Disposition: attachment; filename="0003-Logical-replication-of-DDL-messages.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwp72 RnJvbSA0ZDRmNzI0ODNjMTgwNzMwY2M4OTg1NGJhYWYxOThmMDhlNDRmZDQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IEZyaSwgMTggTWFyIDIwMjIgMTc6MTc6MzkgKzAwMDAKU3ViamVjdDogW1BBVENIIDAz LzEyXSBMb2dpY2FsIHJlcGxpY2F0aW9uIG9mIERETCBtZXNzYWdlcwoKSW50ZWdyYXRpb24gd2l0 aCBwZ291dHB1dDoKU3VwcG9ydHMgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHRoZSBEREwgbWVzc2Fn ZSB1c2luZyB0aGUgbG9naWNhbApyZXBsaWNhdGlvbiB3aXJlIHByb3RvY29sLiBBIG5ldyBMb2dp Y2FsUmVwTXNnVHlwZSBpcyBpbnRyb2R1Y2VkCmZvciB0aGlzIHB1cnBvc2U6IExPR0lDQUxfUkVQ X01TR19ERExNRVNTQUdFID0gJ0wnLgoKTG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXIgY2hhbmdl OgpTdXBwb3J0cyBleGVjdXRpb24gb2YgdGhlIERETCBjb21tYW5kIGluIHRoZSBvcmlnaW5hbCB1 c2VyIHJvbGUgYW5kCnNlYXJjaF9wYXRoLiBGb3IgYW55IG5ldyB0YWJsZSBjcmVhdGVkIHRoaXMg d2F5LCB3ZSBhbHNvIHNldCBpdHMKc3JzdWJzdGF0ZSBpbiB0aGUgcGdfc3Vic2NyaXB0aW9uX3Jl bCBjYXRhbG9nIHRvIFNVQlJFTF9TVEFURV9JTklULApTbyB0aGF0IERNTCByZXBsaWNhdGlvbiBj YW4gcHJvZ3Jlc3Mgb24gdGhpcyBuZXcgdGFibGUgd2l0aG91dAptYW51YWxseSBydW5uaW5nICJB TFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJT04iLgoKVEFQIHRlc3Q6CkEg bmV3IFRBUCB0ZXN0IDAzMF9yZXBfZGRsLnBsIGlzIGFkZGVkLiBXZSBtYWlubHkgZm9jdXNlZCBv bgp0ZXN0aW5nIHRoZSBoYXBweSBwYXRoIG9mIGRhdGFiYXNlIGxldmVsIHJlcGxpY2F0aW9uIHNv IGZhci4KQ29ybmVyIGNhc2UgRERMcyBhbmQgdGFibGUgbGV2ZWwgRERMIHJlcGxpY2F0aW9uIGFy ZSBzdGlsbCB0byBiZQpjYXJlZnVsbHkgdGVzdGVkLgotLS0KIC4uLi90ZXN0X2RlY29kaW5nL2V4 cGVjdGVkL2RkbG1lc3NhZ2VzLm91dCAgICB8ICAyNiArLQogY29udHJpYi90ZXN0X2RlY29kaW5n L3NxbC9kZGxtZXNzYWdlcy5zcWwgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3Byb3RvLmMgICAgICAgfCAgNjMgKysrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8IDI2NCArKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICA4MiArKysrKy0KIHNy Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQogc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHByb3RvLmggICAgICAgIHwgIDEwICstCiBzcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMDRfc3luYy5wbCAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAwNl9yZXdyaXRlLnBsICAgICAgICB8ICAgMiArLQogc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDA4X2RpZmZfc2NoZW1hLnBsICAgIHwgICAyICstCiBzcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMDlfbWF0dmlld3MucGwgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAxMl9jb2xsYXRpb24ucGwgICAgICB8ICAgMiArLQogc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDEzX3BhcnRpdGlvbi5wbCAgICAgIHwgICA4ICstCiBzcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwgICAgICAgfCAyMzcgKysrKysrKysrKysrKysr KwogMTQgZmlsZXMgY2hhbmdlZCwgNjg0IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBfZGRscy5w bAoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGxtZXNzYWdl cy5vdXQgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsbWVzc2FnZXMub3V0Cmlu ZGV4IDc5Mjg0ZjlkZWYuLjAzNzZmMzZjMjQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy9leHBlY3RlZC9kZGxtZXNzYWdlcy5vdXQKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5n L2V4cGVjdGVkL2RkbG1lc3NhZ2VzLm91dApAQCAtMiw2ICsyLDkgQEAKIFNFVCBzeW5jaHJvbm91 c19jb21taXQgPSBvbjsKIC0tIHR1cm4gb24gbG9naWNhbCBkZGwgbWVzc2FnZSBsb2dnaW5nCiBD UkVBVEUgcHVibGljYXRpb24gbXlwdWIgRk9SIEFMTCBUQUJMRVMgd2l0aCAoZGRsID0gJ2RhdGFi YXNlJyk7CistLSBTRVQgVVNFUgorQ1JFQVRFIFJPTEUgZGRsX3JlcGxpY2F0aW9uX3VzZXIgTE9H SU4gU1VQRVJVU0VSOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAnZGRsX3JlcGxpY2F0aW9u X3VzZXInOwogU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9u X3Nsb3QoJ3JlZ3Jlc3Npb25fc2xvdCcsICd0ZXN0X2RlY29kaW5nJyk7CiAgP2NvbHVtbj8gCiAt LS0tLS0tLS0tCkBAIC0yMCwyMyArMjMsMjIgQEAgQkVHSU47CiBDUkVBVEUgVEFCTEUgdGVzdF9k ZGxtZXNzYWdlIChpZCBzZXJpYWwgdW5pcXVlLCBkYXRhIGludCk7CiBBTFRFUiBUQUJMRSB0ZXN0 X2RkbG1lc3NhZ2UgYWRkIGMzIHZhcmNoYXI7CiBDT01NSVQ7Ci1cbyB8IHNlZCAncy9yb2xlLipz ZWFyY2hfcGF0aC9yb2xlOiByZWRhY3RlZCwgc2VhcmNoX3BhdGgvZycKIFNFTEVDVCBkYXRhIEZS T00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBO VUxMLCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJyk7Ci1TRUxF Q1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3QnKTsKLURST1AgVEFC TEUgdGVzdF9kZGxtZXNzYWdlOwotRFJPUCBwdWJsaWNhdGlvbiBteXB1YjsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAxIHBy ZWZpeDogIHJvbGU6IHJlZGFjdGVkLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejog NTggY29udGVudDpDUkVBVEUgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIChpZCBzZXJpYWwgdW5pcXVl LCBkYXRhIGludCk7Ci0gRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9s ZTogcmVkYWN0ZWQsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiA0MyBjb250ZW50 OkFMVEVSIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSBhZGQgYzMgdmFyY2hhcjsKLSBEREwgbWVzc2Fn ZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiByZWRhY3RlZCwgc2VhcmNoX3BhdGg6 ICIkdXNlciIsIHB1YmxpYywgc3o6IDM2IGNvbnRlbnQ6QUxURVIgVEFCTEUgdGVzdF9kZGxtZXNz YWdlIGRyb3AgYzM7Ci0gRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9s ZTogcmVkYWN0ZWQsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiAyNyBjb250ZW50 OkRST1AgVEFCTEUgdGVzdF9kZGxtZXNzYWdlOwotIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFs OiAxIHByZWZpeDogIHJvbGU6IHJlZGFjdGVkLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGlj LCBzejogNTggY29udGVudDpDUkVBVEUgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIChpZCBzZXJpYWwg dW5pcXVlLCBkYXRhIGludCk7Ci0gRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4 OiAgcm9sZTogcmVkYWN0ZWQsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiA0MyBj b250ZW50OkFMVEVSIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSBhZGQgYzMgdmFyY2hhcjsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGlj YXRpb25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDU4IGNvbnRlbnQ6 Q1JFQVRFIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSAoaWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQp OworIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAxIHByZWZpeDogIHJvbGU6IGRkbF9yZXBs aWNhdGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejogNDMgY29udGVu dDpBTFRFUiBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgYWRkIGMzIHZhcmNoYXI7CisgRERMIG1lc3Nh Z2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9sZTogZGRsX3JlcGxpY2F0aW9uX3VzZXIs IHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiAzNiBjb250ZW50OkFMVEVSIFRBQkxF IHRlc3RfZGRsbWVzc2FnZSBkcm9wIGMzOworIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAx IHByZWZpeDogIHJvbGU6IGRkbF9yZXBsaWNhdGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2Vy IiwgcHVibGljLCBzejogMjcgY29udGVudDpEUk9QIFRBQkxFIHRlc3RfZGRsbWVzc2FnZTsKKyBE REwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRp b25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDU4IGNvbnRlbnQ6Q1JF QVRFIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSAoaWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOwor IERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAxIHByZWZpeDogIHJvbGU6IGRkbF9yZXBsaWNh dGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejogNDMgY29udGVudDpB TFRFUiBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgYWRkIGMzIHZhcmNoYXI7CiAoNiByb3dzKQogCitT RUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3QnKTsKICBwZ19k cm9wX3JlcGxpY2F0aW9uX3Nsb3QgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogKDEg cm93KQogCitEUk9QIFRBQkxFIHRlc3RfZGRsbWVzc2FnZTsKK0RST1AgcHVibGljYXRpb24gbXlw dWI7CmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbG1lc3NhZ2VzLnNx bCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsbWVzc2FnZXMuc3FsCmluZGV4IDIxMTQ5 N2VlMjIuLmMyMzYxMGY5YjQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwv ZGRsbWVzc2FnZXMuc3FsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsbWVzc2Fn ZXMuc3FsCkBAIC0zLDYgKzMsMTAgQEAgU0VUIHN5bmNocm9ub3VzX2NvbW1pdCA9IG9uOwogLS0g dHVybiBvbiBsb2dpY2FsIGRkbCBtZXNzYWdlIGxvZ2dpbmcKIENSRUFURSBwdWJsaWNhdGlvbiBt eXB1YiBGT1IgQUxMIFRBQkxFUyB3aXRoIChkZGwgPSAnZGF0YWJhc2UnKTsKIAorLS0gU0VUIFVT RVIKK0NSRUFURSBST0xFIGRkbF9yZXBsaWNhdGlvbl91c2VyIExPR0lOIFNVUEVSVVNFUjsKK1NF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ2RkbF9yZXBsaWNhdGlvbl91c2VyJzsKKwogU0VMRUNU ICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3JlZ3Jlc3Np b25fc2xvdCcsICd0ZXN0X2RlY29kaW5nJyk7CiAKIENSRUFURSBUQUJMRSB0ZXN0X2RkbG1lc3Nh Z2UgKGlkIHNlcmlhbCB1bmlxdWUsIGRhdGEgaW50KTsKQEAgLTIwLDcgKzI0LDYgQEAgQ1JFQVRF IFRBQkxFIHRlc3RfZGRsbWVzc2FnZSAoaWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOwogQUxU RVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2YXJjaGFyOwogQ09NTUlUOwogCi1cbyB8 IHNlZCAncy9yb2xlLipzZWFyY2hfcGF0aC9yb2xlOiByZWRhY3RlZCwgc2VhcmNoX3BhdGgvZycK IFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9u X3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0 cycsICcxJyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Ns b3QnKTsKIERST1AgVEFCTEUgdGVzdF9kZGxtZXNzYWdlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9wcm90by5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9wcm90by5jCmluZGV4IGZmODUxM2UyZDIuLjNjZmE5NGRkOGMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcHJvdG8uYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Byb3RvLmMKQEAgLTY0MCw4ICs2NDAsOCBAQCBsb2dpY2Fs cmVwX3JlYWRfdHJ1bmNhdGUoU3RyaW5nSW5mbyBpbiwKICAqLwogdm9pZAogbG9naWNhbHJlcF93 cml0ZV9tZXNzYWdlKFN0cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0 ciBsc24sCi0JCQkJCQkgYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsIFNp emUgc3osCi0JCQkJCQkgY29uc3QgY2hhciAqbWVzc2FnZSkKKwkJCQkJCSBib29sIHRyYW5zYWN0 aW9uYWwsIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJCQkJCSBTaXplIHN6LCBjb25zdCBjaGFyICpt ZXNzYWdlKQogewogCXVpbnQ4CQlmbGFncyA9IDA7CiAKQEAgLTY2Miw2ICs2NjIsNjMgQEAgbG9n aWNhbHJlcF93cml0ZV9tZXNzYWdlKFN0cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklkIHhpZCwg WExvZ1JlY1B0ciBsc24sCiAJcHFfc2VuZGJ5dGVzKG91dCwgbWVzc2FnZSwgc3opOwogfQogCisv KgorICogUmVhZCBEREwgTUVTU0FHRSBmcm9tIHN0cmVhbQorICovCitjb25zdCBjaGFyICoKK2xv Z2ljYWxyZXBfcmVhZF9kZGxtZXNzYWdlKFN0cmluZ0luZm8gaW4sIFhMb2dSZWNQdHIgKmxzbiwK KwkJCQkJCSAgIGNvbnN0IGNoYXIgKipwcmVmaXgsCisJCQkJCQkgICBjb25zdCBjaGFyICoqcm9s ZSwKKwkJCQkJCSAgIGNvbnN0IGNoYXIgKipzZWFyY2hfcGF0aCwKKwkJCQkJCSAgIGJvb2wgKnRy YW5zYWN0aW9uYWwsCisJCQkJCQkgICBTaXplICpzeikKK3sKKwl1aW50OCBmbGFnczsKKwljb25z dCBjaGFyICptc2c7CisKKwkvL1RPRE8gZG91YmxlIGNoZWNrIHdoZW4gZG8gd2UgbmVlZCB0byBn ZXQgVHJhbnNhY3Rpb25JZC4KKworCWZsYWdzID0gcHFfZ2V0bXNnaW50KGluLCAxKTsKKwkqdHJh bnNhY3Rpb25hbCA9IChmbGFncyAmIE1FU1NBR0VfVFJBTlNBQ1RJT05BTCkgPiAwOworCSpsc24g PSBwcV9nZXRtc2dpbnQ2NChpbik7CisJKnByZWZpeCA9IHBxX2dldG1zZ3N0cmluZyhpbik7CisJ KnJvbGUgPSBwcV9nZXRtc2dzdHJpbmcoaW4pOworCSpzZWFyY2hfcGF0aCA9IHBxX2dldG1zZ3N0 cmluZyhpbik7CisJKnN6ID0gcHFfZ2V0bXNnaW50KGluLCA0KTsKKwltc2cgPSBwcV9nZXRtc2di eXRlcyhpbiwgKnN6KTsKKworCXJldHVybiBtc2c7Cit9CisKKy8qCisgKiBXcml0ZSBEREwgTUVT U0FHRSB0byBzdHJlYW0KKyAqLwordm9pZAorbG9naWNhbHJlcF93cml0ZV9kZGxtZXNzYWdlKFN0 cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0ciBsc24sCisJCQkJCQkg Ym9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnJvbGUs CisJCQkJCQkgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsIFNpemUgc3osIGNvbnN0IGNoYXIgKm1l c3NhZ2UpCit7CisJdWludDgJCWZsYWdzID0gMDsKKworCXBxX3NlbmRieXRlKG91dCwgTE9HSUNB TF9SRVBfTVNHX0RETE1FU1NBR0UpOworCisJLyogZW5jb2RlIGFuZCBzZW5kIG1lc3NhZ2UgZmxh Z3MgKi8KKwlpZiAodHJhbnNhY3Rpb25hbCkKKwkJZmxhZ3MgfD0gTUVTU0FHRV9UUkFOU0FDVElP TkFMOworCisJLyogdHJhbnNhY3Rpb24gSUQgKGlmIG5vdCB2YWxpZCwgd2UncmUgbm90IHN0cmVh bWluZykgKi8KKwlpZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQoeGlkKSkKKwkJcHFfc2VuZGludDMy KG91dCwgeGlkKTsKKworCXBxX3NlbmRpbnQ4KG91dCwgZmxhZ3MpOworCXBxX3NlbmRpbnQ2NChv dXQsIGxzbik7CisJcHFfc2VuZHN0cmluZyhvdXQsIHByZWZpeCk7CisJcHFfc2VuZHN0cmluZyhv dXQsIHJvbGUpOworCXBxX3NlbmRzdHJpbmcob3V0LCBzZWFyY2hfcGF0aCk7CisJcHFfc2VuZGlu dDMyKG91dCwgc3opOworCXBxX3NlbmRieXRlcyhvdXQsIG1lc3NhZ2UsIHN6KTsKK30KKwogLyoK ICAqIFdyaXRlIHJlbGF0aW9uIGRlc2NyaXB0aW9uIHRvIHRoZSBvdXRwdXQgc3RyZWFtLgogICov CkBAIC0xMjE4LDYgKzEyNzUsOCBAQCBsb2dpY2FscmVwX21lc3NhZ2VfdHlwZShMb2dpY2FsUmVw TXNnVHlwZSBhY3Rpb24pCiAJCQlyZXR1cm4gIlRZUEUiOwogCQljYXNlIExPR0lDQUxfUkVQX01T R19NRVNTQUdFOgogCQkJcmV0dXJuICJNRVNTQUdFIjsKKwkJY2FzZSBMT0dJQ0FMX1JFUF9NU0df RERMTUVTU0FHRToKKwkJCXJldHVybiAiRERMIjsKIAkJY2FzZSBMT0dJQ0FMX1JFUF9NU0dfQkVH SU5fUFJFUEFSRToKIAkJCXJldHVybiAiQkVHSU4gUFJFUEFSRSI7CiAJCWNhc2UgTE9HSUNBTF9S RVBfTVNHX1BSRVBBUkU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpp bmRleCBmYzIxMGE5ZTdiLi5jMjVlM2E0Y2ZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvd29ya2VyLmMKQEAgLTE1Niw2ICsxNTYsNyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRp bWl6ZXIuaCIKKyNpbmNsdWRlICJwYXJzZXIvYW5hbHl6ZS5oIgogI2luY2x1ZGUgInBnc3RhdC5o IgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVy L2ludGVycnVwdC5oIgpAQCAtMTgwLDYgKzE4MSw4IEBACiAjaW5jbHVkZSAic3RvcmFnZS9wcm9j LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRlICJ0Y29wL3Rjb3Bw cm90LmgiCisjaW5jbHVkZSAidGNvcC9wcXVlcnkuaCIKKyNpbmNsdWRlICJ0Y29wL3V0aWxpdHku aCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgog I2luY2x1ZGUgInV0aWxzL2NhdGNhY2hlLmgiCkBAIC0zNDYsNiArMzQ5LDEwIEBAIHN0YXRpYyB2 b2lkIGFwcGx5X2hhbmRsZV90dXBsZV9yb3V0aW5nKEFwcGx5RXhlY3V0aW9uRGF0YSAqZWRhdGEs CiAJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJCSAgIExv Z2ljYWxSZXBUdXBsZURhdGEgKm5ld3R1cCwKIAkJCQkJCQkJCSAgIENtZFR5cGUgb3BlcmF0aW9u KTsKK3N0YXRpYyB2b2lkIGFwcGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQoY29uc3QgY2hhciAqY21k c3RyLAorCQkJCQkJCQkJICBjb25zdCBjaGFyKiByb2xlLAorCQkJCQkJCQkJICBjb25zdCBjaGFy KiBzZWFyY2hfcGF0aCwKKwkJCQkJCQkJCSAgYm9vbCBpc1RvcExldmVsKTsKIAogLyogQ29tcHV0 ZSBHSUQgZm9yIHR3b19waGFzZSB0cmFuc2FjdGlvbnMgKi8KIHN0YXRpYyB2b2lkIFR3b1BoYXNl VHJhbnNhY3Rpb25HaWQoT2lkIHN1YmlkLCBUcmFuc2FjdGlvbklkIHhpZCwgY2hhciAqZ2lkLCBp bnQgc3pnaWQpOwpAQCAtMjQ0NSw2ICsyNDUyLDI1OSBAQCBhcHBseV9oYW5kbGVfdHJ1bmNhdGUo U3RyaW5nSW5mbyBzKQogCWVuZF9yZXBsaWNhdGlvbl9zdGVwKCk7CiB9CiAKKy8qCisgKiBIYW5k bGUgZ2VuZXJpYyBtZXNzYWdlcy4KKyAqLworc3RhdGljIHZvaWQKK2FwcGx5X2hhbmRsZV9kZGxt ZXNzYWdlKFN0cmluZ0luZm8gcykKK3sKKwlYTG9nUmVjUHRyIGxzbjsKKwlib29sIHRyYW5zYWN0 aW9uYWw7CisJU2l6ZSBzejsKKwljb25zdCBjaGFyICpwcmVmaXg7CisJY29uc3QgY2hhciAqcm9s ZTsKKwljb25zdCBjaGFyICpzZWFyY2hfcGF0aDsKKwljb25zdCBjaGFyICptc2c7CisKKwltc2cg PSBsb2dpY2FscmVwX3JlYWRfZGRsbWVzc2FnZShzLCAmbHNuLCAmcHJlZml4LCAmcm9sZSwgJnNl YXJjaF9wYXRoLCAmdHJhbnNhY3Rpb25hbCwgJnN6KTsKKworCWFwcGx5X2V4ZWN1dGVfc3FsX2Nv bW1hbmQobXNnLCByb2xlLCBzZWFyY2hfcGF0aCwgdHJ1ZSk7Cit9CisKKy8qCisgKiBBZGQgY29u dGV4dCB0byB0aGUgZXJyb3JzIHByb2R1Y2VkIGJ5IGFwcGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQo KS4KKyAqLworc3RhdGljIHZvaWQKK2V4ZWN1dGVfc3FsX2NvbW1hbmRfZXJyb3JfY2Iodm9pZCAq YXJnKQoreworCWVycmNvbnRleHQoImR1cmluZyBleGVjdXRpb24gb2YgU1FMIHN0YXRlbWVudDog JXMiLCAoY2hhciAqKSBhcmcpOworfQorCisvKgorICogRXhlY3V0ZSBhbiBTUUwgY29tbWFuZC4g VGhpcyBjYW4gYmUgbXVsdGlwbGUgcXVlcmllcy4KKyAqIFRoaXMgaXMgbW9kaWZpZWQgYmFzZWQg b24gcGdsb2dpY2FsX2V4ZWN1dGVfc3FsX2NvbW1hbmQoKS4KKyAqLworc3RhdGljIHZvaWQKK2Fw cGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQoY29uc3QgY2hhciAqY21kc3RyLCBjb25zdCBjaGFyICpy b2xlLCBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKKwkJCQkJCSAgYm9vbCBpc1RvcExldmVsKQor eworCWNvbnN0IGNoYXIgKnNhdmVfZGVidWdfcXVlcnlfc3RyaW5nID0gZGVidWdfcXVlcnlfc3Ry aW5nOworCUxpc3QJICAgKnBhcnNldHJlZV9saXN0OworCUxpc3RDZWxsICAgKnBhcnNldHJlZV9p dGVtOworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKwlFcnJvckNvbnRleHRDYWxsYmFjayBl cnJjYWxsYmFjazsKKwlpbnQJCQlzYXZlX25lc3RsZXZlbDsKKworCS8qCisJICogU3dpdGNoIHRv IGFwcHJvcHJpYXRlIGNvbnRleHQgZm9yIGNvbnN0cnVjdGluZyBwYXJzZXRyZWVzLgorCSAqLwor CW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlNZXNzYWdlQ29udGV4dCk7 CisJYmVnaW5fcmVwbGljYXRpb25fc3RlcCgpOworCisJLyoKKwkgKiBTZXQgdGhlIGN1cnJlbnQg cm9sZSB0byB0aGUgdXNlciB0aGF0IGV4ZWN1dGVkIHRoZSBjb21tYW5kIG9uIHRoZQorCSAqIHB1 YmxpY2F0aW9uIHNlcnZlci4KKwkgKiBTZXQgdGhlIGN1cnJlbnQgc2VhcmNoX3BhdGggdG8gdGhl IHNlYXJjaF9wYXRoIG9uIHRoZSBwdWJsaWNhdGlvbgorCSAqIHNlcnZlciB3aGVuIHRoZSBjb21t YW5kIHdhcyBleGVjdXRlZC4KKwkgKi8KKwlzYXZlX25lc3RsZXZlbCA9IE5ld0dVQ05lc3RMZXZl bCgpOworCVNldENvbmZpZ09wdGlvbigicm9sZSIsIHJvbGUsIFBHQ19JTlRFUk5BTCwgUEdDX1Nf T1ZFUlJJREUpOworCVNldENvbmZpZ09wdGlvbigic2VhcmNoX3BhdGgiLCBzZWFyY2hfcGF0aCwg UEdDX0lOVEVSTkFMLCBQR0NfU19PVkVSUklERSk7CisKKwllcnJjYWxsYmFjay5jYWxsYmFjayA9 IGV4ZWN1dGVfc3FsX2NvbW1hbmRfZXJyb3JfY2I7CisJZXJyY2FsbGJhY2suYXJnID0gKGNoYXIg KikgY21kc3RyOworCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsK KwllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOworCisJZGVidWdfcXVlcnlfc3Ry aW5nID0gY21kc3RyOworCisJcGFyc2V0cmVlX2xpc3QgPSBwZ19wYXJzZV9xdWVyeShjbWRzdHIp OworCisJLyoKKwkgKiBEbyBhIGxpbWl0ZWQgYW1vdW50IG9mIHNhZmV0eSBjaGVja2luZyBhZ2Fp bnN0IENPTkNVUlJFTlRMWSBjb21tYW5kcworCSAqIGV4ZWN1dGVkIGluIHNpdHVhdGlvbnMgd2hl cmUgdGhleSBhcmVuJ3QgYWxsb3dlZC4gVGhlIHNlbmRlciBzaWRlIHNob3VsZAorCSAqIHByb3Zp ZGUgcHJvdGVjdGlvbiwgYnV0IGJldHRlciBiZSBzYWZlIHRoYW4gc29ycnkuCisJICovCisJaXNU b3BMZXZlbCA9IGlzVG9wTGV2ZWwgJiYgKGxpc3RfbGVuZ3RoKHBhcnNldHJlZV9saXN0KSA9PSAx KTsKKworCS8qCisJICogU3dpdGNoIGJhY2sgdG8gdHJhbnNhY3Rpb24gY29udGV4dCB0byBlbnRl ciB0aGUgbG9vcC4KKwkgKi8KKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisK Kwlmb3JlYWNoKHBhcnNldHJlZV9pdGVtLCBwYXJzZXRyZWVfbGlzdCkKKwl7CisJCUxpc3QJICAg KnBsYW50cmVlX2xpc3Q7CisJCUxpc3QJICAgKnF1ZXJ5dHJlZV9saXN0OworCQlSYXdTdG10CSAg ICpjb21tYW5kID0gKFJhd1N0bXQgKikgbGZpcnN0KHBhcnNldHJlZV9pdGVtKTsKKwkJQ29tbWFu ZFRhZwljb21tYW5kVGFnOworCQlNZW1vcnlDb250ZXh0IHBlcl9wYXJzZXRyZWVfY29udGV4dCA9 IE5VTEw7CisJCVBvcnRhbAkJcG9ydGFsOworCQlEZXN0UmVjZWl2ZXIgKnJlY2VpdmVyOworCQli b29sCQkgc25hcHNob3Rfc2V0ID0gZmFsc2U7CisJCWNoYXIgCQkgKnNjaGVtYW5hbWUgPSBOVUxM OyAvKiBGb3IgQ1JFQVRFIFRBQkxFIHN0bXQgb25seSAqLworCQljaGFyCQkgKnJlbG5hbWUgPSBO VUxMOyAvKiBGb3IgQ1JFQVRFIFRBQkxFIHN0bXQgb25seSAqLworCisJCWNvbW1hbmRUYWcgPSBD cmVhdGVDb21tYW5kVGFnKChOb2RlICopY29tbWFuZCk7CisKKwkJLyoKKwkJICogUmVtZW1iZXIg dGhlIHNjaGVtYW5hbWUgYW5kIHJlbG5hbWUgaWYgaXQncyBhIENSRUFURSBUQUJMRSBzdG10CisJ CSAqIGJlY2F1c2Ugd2Ugd2lsbCBuZWVkIHRoZW0gZm9yIHNvbWUgcG9zdC1wcm9jZXNzaW5nIGFm dGVyIHdlCisJCSAqIGV4ZWN1dGUgdGhlIHN0bXQuIEF0IHRoYXQgcG9pbnQsIENyZWF0ZVN0bXQg bWF5IGhhdmUgYmVlbiBmcmVlZWQgdXAuCisJCSAqLworCQlpZiAoY29tbWFuZFRhZyA9PSBDTURU QUdfQ1JFQVRFX1RBQkxFKQorCQl7CisJCQlDcmVhdGVTdG10ICpjc3RtdCA9IChDcmVhdGVTdG10 ICopY29tbWFuZC0+c3RtdDsKKwkJCVJhbmdlVmFyICpydiA9IGNzdG10LT5yZWxhdGlvbjsKKwkJ CXNjaGVtYW5hbWUgPSBydi0+c2NoZW1hbmFtZTsKKwkJCXJlbG5hbWUgPSBydi0+cmVsbmFtZTsK KwkJfQorCisJCS8qCisJCSAqIFNldCB1cCBhIHNuYXBzaG90IGlmIHBhcnNlIGFuYWx5c2lzL3Bs YW5uaW5nIHdpbGwgbmVlZCBvbmUuCisJCSAqLworCQlpZiAoYW5hbHl6ZV9yZXF1aXJlc19zbmFw c2hvdChjb21tYW5kKSkKKwkJeworCQkJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9u U25hcHNob3QoKSk7CisJCQlzbmFwc2hvdF9zZXQgPSB0cnVlOworCQl9CisKKwkJLyoKKwkJICog T0sgdG8gYW5hbHl6ZSwgcmV3cml0ZSwgYW5kIHBsYW4gdGhpcyBxdWVyeS4KKwkJICoKKwkJICog U3dpdGNoIHRvIGFwcHJvcHJpYXRlIGNvbnRleHQgZm9yIGNvbnN0cnVjdGluZyBxdWVyeSBhbmQg cGxhbiB0cmVlcworCQkgKiAodGhlc2UgY2FuJ3QgYmUgaW4gdGhlIHRyYW5zYWN0aW9uIGNvbnRl eHQsIGFzIHRoYXQgd2lsbCBnZXQgcmVzZXQKKwkJICogd2hlbiB0aGUgY29tbWFuZCBpcyBDT01N SVQvUk9MTEJBQ0spLiAgSWYgd2UgaGF2ZSBtdWx0aXBsZQorCQkgKiBwYXJzZXRyZWVzLCB3ZSB1 c2UgYSBzZXBhcmF0ZSBjb250ZXh0IGZvciBlYWNoIG9uZSwgc28gdGhhdCB3ZSBjYW4KKwkJICog ZnJlZSB0aGF0IG1lbW9yeSBiZWZvcmUgbW92aW5nIG9uIHRvIHRoZSBuZXh0IG9uZS4gIEJ1dCBm b3IgdGhlCisJCSAqIGxhc3QgKG9yIG9ubHkpIHBhcnNldHJlZSwganVzdCB1c2UgTWVzc2FnZUNv bnRleHQsIHdoaWNoIHdpbGwgYmUKKwkJICogcmVzZXQgc2hvcnRseSBhZnRlciBjb21wbGV0aW9u IGFueXdheS4gIEluIGV2ZW50IG9mIGFuIGVycm9yLCB0aGUKKwkJICogcGVyX3BhcnNldHJlZV9j b250ZXh0IHdpbGwgYmUgZGVsZXRlZCB3aGVuIE1lc3NhZ2VDb250ZXh0IGlzIHJlc2V0LgorCQkg Ki8KKwkJaWYgKGxuZXh0KHBhcnNldHJlZV9saXN0LCBwYXJzZXRyZWVfaXRlbSkgIT0gTlVMTCkK KwkJeworCQkJcGVyX3BhcnNldHJlZV9jb250ZXh0ID0KKwkJCQlBbGxvY1NldENvbnRleHRDcmVh dGUoTWVzc2FnZUNvbnRleHQsCisJCQkJCQkJCQkgICJwZXItcGFyc2V0cmVlIG1lc3NhZ2UgY29u dGV4dCIsCisJCQkJCQkJCQkgIEFMTE9DU0VUX0RFRkFVTFRfU0laRVMpOworCQkJb2xkY29udGV4 dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhwZXJfcGFyc2V0cmVlX2NvbnRleHQpOworCQl9CisJ CWVsc2UKKwkJCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlNZXNzYWdl Q29udGV4dCk7CisKKwkJcXVlcnl0cmVlX2xpc3QgPSBwZ19hbmFseXplX2FuZF9yZXdyaXRlX2Zp eGVkcGFyYW1zKAorCQkJY29tbWFuZCwKKwkJCWNtZHN0ciwKKwkJCU5VTEwsIDAsIE5VTEwpOwor CisJCXBsYW50cmVlX2xpc3QgPSBwZ19wbGFuX3F1ZXJpZXMoCisJCQlxdWVyeXRyZWVfbGlzdCwg Y21kc3RyLCAwLCBOVUxMKTsKKworCQkvKgorCQkgKiBEb25lIHdpdGggdGhlIHNuYXBzaG90IHVz ZWQgZm9yIHBhcnNpbmcvcGxhbm5pbmcuCisJCSAqCisJCSAqIFdoaWxlIGl0IGxvb2tzIHByb21p c2luZyB0byByZXVzZSB0aGUgc2FtZSBzbmFwc2hvdCBmb3IgcXVlcnkKKwkJICogZXhlY3V0aW9u IChhdCBsZWFzdCBmb3Igc2ltcGxlIHByb3RvY29sKSwgdW5mb3J0dW5hdGVseSBpdCBjYXVzZXMK KwkJICogZXhlY3V0aW9uIHRvIHVzZSBhIHNuYXBzaG90IHRoYXQgaGFzIGJlZW4gYWNxdWlyZWQg YmVmb3JlIGxvY2tpbmcKKwkJICogYW55IG9mIHRoZSB0YWJsZXMgbWVudGlvbmVkIGluIHRoZSBx dWVyeS4gIFRoaXMgY3JlYXRlcyB1c2VyLQorCQkgKiB2aXNpYmxlIGFub21hbGllcywgc28gcmVm cmFpbi4gIFJlZmVyIHRvCisJCSAqIGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC81MDc1RDhERi42 MDUwNTAwQGZ1enp5LmN6IGZvciBkZXRhaWxzLgorCQkgKi8KKwkJaWYgKHNuYXBzaG90X3NldCkK KwkJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CisKKwkJcG9ydGFsID0gQ3JlYXRlUG9ydGFsKCJsb2dp Y2FsIHJlcGxpY2F0aW9uIiwgdHJ1ZSwgdHJ1ZSk7CisKKwkJLyoKKwkJICogV2UgZG9uJ3QgaGF2 ZSB0byBjb3B5IGFueXRoaW5nIGludG8gdGhlIHBvcnRhbCwgYmVjYXVzZSBldmVyeXRoaW5nCisJ CSAqIHdlIGFyZSBwYXNzaW5nIGhlcmUgaXMgaW4gTWVzc2FnZUNvbnRleHQgb3IgdGhlCisJCSAq IHBlcl9wYXJzZXRyZWVfY29udGV4dCwgYW5kIHNvIHdpbGwgb3V0bGl2ZSB0aGUgcG9ydGFsIGFu eXdheS4KKwkJICovCisJCVBvcnRhbERlZmluZVF1ZXJ5KHBvcnRhbCwKKwkJCQkJCSAgTlVMTCwK KwkJCQkJCSAgY21kc3RyLAorCQkJCQkJICBjb21tYW5kVGFnLAorCQkJCQkJICBwbGFudHJlZV9s aXN0LAorCQkJCQkJICBOVUxMKTsKKworCQkvKgorCQkgKiBTdGFydCB0aGUgcG9ydGFsLiAgTm8g cGFyYW1ldGVycyBoZXJlLgorCQkgKi8KKwkJUG9ydGFsU3RhcnQocG9ydGFsLCBOVUxMLCAwLCBJ bnZhbGlkU25hcHNob3QpOworCisJCS8qIERlc3ROb25lIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9u ICovCisJCXJlY2VpdmVyID0gQ3JlYXRlRGVzdFJlY2VpdmVyKERlc3ROb25lKTsKKworCQkvKgor CQkgKiBTd2l0Y2ggYmFjayB0byB0cmFuc2FjdGlvbiBjb250ZXh0IGZvciBleGVjdXRpb24uCisJ CSAqLworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisKKwkJKHZvaWQpIFBv cnRhbFJ1bihwb3J0YWwsCisJCQkJCQkgRkVUQ0hfQUxMLAorCQkJCQkJIGlzVG9wTGV2ZWwsCisJ CQkJCQkgdHJ1ZSwKKwkJCQkJCSByZWNlaXZlciwKKwkJCQkJCSByZWNlaXZlciwKKwkJCQkJCSBO VUxMKTsKKwkJKCpyZWNlaXZlci0+ckRlc3Ryb3kpIChyZWNlaXZlcik7CisKKwkJUG9ydGFsRHJv cChwb3J0YWwsIGZhbHNlKTsKKworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJCS8q CisJCSAqIFRhYmxlIGNyZWF0ZWQgYnkgRERMIHJlcGxpY2F0aW9uIChkYXRhYmFzZSBsZXZlbCkg aXMgYXV0b21hdGljYWxseQorCQkgKiBhZGRlZCB0byB0aGUgc3Vic2NyaXB0aW9uIGhlcmUuCisJ CSAqCisJCSAqIENhbGwgQWRkU3Vic2NyaXB0aW9uUmVsU3RhdGUgZm9yIENSRUFURSBUQUJFTCBj b21tYW5kIHRvIHNldAorCQkgKiB0aGUgcmVsc3RhdGUgdG8gU1VCUkVMX1NUQVRFX0lOSVQgc28g RE1MIGNoYW5nZXMgb24gdGhpcworCQkgKiBuZXcgdGFibGUgY2FuIGJlIHJlcGxpY2F0ZWQgd2l0 aG91dCBoYXZpbmcgdG8gbWFudWFsbHkgcnVuCisJCSAqICJhbHRlciBzdWJzY3JpcHRpb24gLi4u IHJlZnJlc2ggcHVibGljYXRpb24iCisJCSAqLworCQlpZiAoY29tbWFuZFRhZyA9PSBDTURUQUdf Q1JFQVRFX1RBQkxFKQorCQl7CisJCQlPaWQgcmVsaWQ7CisJCQlPaWQgcmVsbmFtZXNwYWNlID0g SW52YWxpZE9pZDsKKworCQkJaWYgKHNjaGVtYW5hbWUgIT0gTlVMTCkKKwkJCQlyZWxuYW1lc3Bh Y2UgPSBnZXRfbmFtZXNwYWNlX29pZChzY2hlbWFuYW1lLCBmYWxzZSk7CisJCQlpZiAocmVsbmFt ZXNwYWNlICE9IEludmFsaWRPaWQpCisJCQkJcmVsaWQgPSBnZXRfcmVsbmFtZV9yZWxpZChyZWxu YW1lLCByZWxuYW1lc3BhY2UpOworCQkJZWxzZQorCQkJeworCQkJCS8qCisJCQkJICogVHJ5IHRv IHJlc29sdmUgdW5xdWFsaWZpZWQgcmVsbmFtZS4KKwkJCQkgKiBOb3RpY2Ugd2UgaGF2ZSBzZXQg dGhlIHNlYXJjaF9wYXRoIHRvIHRoZSBvcmlnaW5hbCBzZWFyY2hfcGF0aCBvbiB0aGUgcHVibGlz aGVyCisJCQkJICogYXQgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZ1bmN0aW9uLgorCQkJCSAqLwor CQkJCXJlbGlkID0gUmVsbmFtZUdldFJlbGlkKHJlbG5hbWUpOworCQkJfQorCisJCQlpZiAocmVs aWQgIT0gSW52YWxpZE9pZCkKKwkJCXsKKwkJCQlBZGRTdWJzY3JpcHRpb25SZWxTdGF0ZShNeVN1 YnNjcmlwdGlvbi0+b2lkLCByZWxpZCwKKwkJCQkJCQkJCQlTVUJSRUxfU1RBVEVfSU5JVCwKKwkJ CQkJCQkJCQlJbnZhbGlkWExvZ1JlY1B0cik7CisJCQkJZXJlcG9ydChERUJVRzEsCisJCQkJCQko ZXJybXNnX2ludGVybmFsKCJ0YWJsZSBcIiVzXCIgYWRkZWQgdG8gc3Vic2NyaXB0aW9uIFwiJXNc IiIsCisJCQkJCQkJCQkJIHJlbG5hbWUsIE15U3Vic2NyaXB0aW9uLT5uYW1lKSkpOworCQkJfQor CQl9CisJfQorCisJLyoKKwkgKiBSZXN0b3JlIHRoZSBHVUMgdmFyaWFibGVzIHdlIHNldCBhYm92 ZS4KKwkgKi8KKwlBdEVPWGFjdF9HVUModHJ1ZSwgc2F2ZV9uZXN0bGV2ZWwpOworCisJLyogcHJv dGVjdCBhZ2FpbnN0IHN0YWNrIHJlc2V0cyBkdXJpbmcgQ09OQ1VSUkVOVExZIHByb2Nlc3Npbmcg Ki8KKwlpZiAoZXJyb3JfY29udGV4dF9zdGFjayA9PSAmZXJyY2FsbGJhY2spCisJCWVycm9yX2Nv bnRleHRfc3RhY2sgPSBlcnJjYWxsYmFjay5wcmV2aW91czsKKworCWRlYnVnX3F1ZXJ5X3N0cmlu ZyA9IHNhdmVfZGVidWdfcXVlcnlfc3RyaW5nOworCWVuZF9yZXBsaWNhdGlvbl9zdGVwKCk7Cit9 CiAKIC8qCiAgKiBMb2dpY2FsIHJlcGxpY2F0aW9uIHByb3RvY29sIG1lc3NhZ2UgZGlzcGF0Y2hl ci4KQEAgLTI1MTAsNiArMjc3MCwxMCBAQCBhcHBseV9kaXNwYXRjaChTdHJpbmdJbmZvIHMpCiAJ CQkgKi8KIAkJCWJyZWFrOwogCisJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX0RETE1FU1NBR0U6CisJ CQlhcHBseV9oYW5kbGVfZGRsbWVzc2FnZShzKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgTE9HSUNB TF9SRVBfTVNHX1NUUkVBTV9TVEFSVDoKIAkJCWFwcGx5X2hhbmRsZV9zdHJlYW1fc3RhcnQocyk7 CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0 L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5j CmluZGV4IDhkZWFlNTcxNDMuLmRiMjIxYzdlOGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtNTQsNiArNTQsMTAgQEAgc3RhdGljIHZvaWQgcGdv dXRwdXRfbWVzc2FnZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCiAJCQkJCQkJIFJlb3Jk ZXJCdWZmZXJUWE4gKnR4biwgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwKIAkJCQkJCQkgYm9vbCB0 cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCQkJIFNpemUgc3osIGNvbnN0 IGNoYXIgKm1lc3NhZ2UpOworc3RhdGljIHZvaWQgcGdvdXRwdXRfZGRsbWVzc2FnZShMb2dpY2Fs RGVjb2RpbmdDb250ZXh0ICpjdHgsCisJCQkJCQkJCVJlb3JkZXJCdWZmZXJUWE4gKnR4biwgWExv Z1JlY1B0ciBtZXNzYWdlX2xzbiwKKwkJCQkJCQkJYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBj aGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnJvbGUsCisJCQkJCQkJCWNvbnN0IGNoYXIgKnNlYXJj aF9wYXRoLCBTaXplIHN6LCBjb25zdCBjaGFyICptZXNzYWdlKTsKIHN0YXRpYyBib29sIHBnb3V0 cHV0X29yaWdpbl9maWx0ZXIoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCQkJCQkJCQkg ICBSZXBPcmlnaW5JZCBvcmlnaW5faWQpOwogc3RhdGljIHZvaWQgcGdvdXRwdXRfYmVnaW5fcHJl cGFyZV90eG4oTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LApAQCAtMjU2LDYgKzI2MCw3IEBA IF9QR19vdXRwdXRfcGx1Z2luX2luaXQoT3V0cHV0UGx1Z2luQ2FsbGJhY2tzICpjYikKIAljYi0+ Y2hhbmdlX2NiID0gcGdvdXRwdXRfY2hhbmdlOwogCWNiLT50cnVuY2F0ZV9jYiA9IHBnb3V0cHV0 X3RydW5jYXRlOwogCWNiLT5tZXNzYWdlX2NiID0gcGdvdXRwdXRfbWVzc2FnZTsKKwljYi0+ZGRs bWVzc2FnZV9jYiA9IHBnb3V0cHV0X2RkbG1lc3NhZ2U7CiAJY2ItPmNvbW1pdF9jYiA9IHBnb3V0 cHV0X2NvbW1pdF90eG47CiAKIAljYi0+YmVnaW5fcHJlcGFyZV9jYiA9IHBnb3V0cHV0X2JlZ2lu X3ByZXBhcmVfdHhuOwpAQCAtMjcyLDYgKzI3Nyw3IEBAIF9QR19vdXRwdXRfcGx1Z2luX2luaXQo T3V0cHV0UGx1Z2luQ2FsbGJhY2tzICpjYikKIAljYi0+c3RyZWFtX2NvbW1pdF9jYiA9IHBnb3V0 cHV0X3N0cmVhbV9jb21taXQ7CiAJY2ItPnN0cmVhbV9jaGFuZ2VfY2IgPSBwZ291dHB1dF9jaGFu Z2U7CiAJY2ItPnN0cmVhbV9tZXNzYWdlX2NiID0gcGdvdXRwdXRfbWVzc2FnZTsKKwljYi0+c3Ry ZWFtX2RkbG1lc3NhZ2VfY2IgPSBwZ291dHB1dF9kZGxtZXNzYWdlOwogCWNiLT5zdHJlYW1fdHJ1 bmNhdGVfY2IgPSBwZ291dHB1dF90cnVuY2F0ZTsKIAkvKiB0cmFuc2FjdGlvbiBzdHJlYW1pbmcg LSB0d28tcGhhc2UgY29tbWl0ICovCiAJY2ItPnN0cmVhbV9wcmVwYXJlX2NiID0gcGdvdXRwdXRf c3RyZWFtX3ByZXBhcmVfdHhuOwpAQCAtMTY1Niw4ICsxNjYyLDggQEAgcGdvdXRwdXRfdHJ1bmNh dGUoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAK IHN0YXRpYyB2b2lkCiBwZ291dHB1dF9tZXNzYWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0 eCwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAotCQkJCSBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLCBi b29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0IGNoYXIgKnByZWZpeCwgU2l6ZSBzeiwKLQkJCQkgY29u c3QgY2hhciAqbWVzc2FnZSkKKwkJCQkgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwgYm9vbCB0cmFu c2FjdGlvbmFsLAorCQkJCSBjb25zdCBjaGFyICpwcmVmaXgsIFNpemUgc3osIGNvbnN0IGNoYXIg Km1lc3NhZ2UpCiB7CiAJUEdPdXRwdXREYXRhICpkYXRhID0gKFBHT3V0cHV0RGF0YSAqKSBjdHgt Pm91dHB1dF9wbHVnaW5fcHJpdmF0ZTsKIAlUcmFuc2FjdGlvbklkIHhpZCA9IEludmFsaWRUcmFu c2FjdGlvbklkOwpAQCAtMTY5Nyw2ICsxNzAzLDcwIEBAIHBnb3V0cHV0X21lc3NhZ2UoTG9naWNh bERlY29kaW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJT3V0cHV0UGx1 Z2luV3JpdGUoY3R4LCB0cnVlKTsKIH0KIAorc3RhdGljIHZvaWQKK3Bnb3V0cHV0X2RkbG1lc3Nh Z2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCisJ CQkJIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24sIGJvb2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkgY29u c3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFyICogcm9sZSwKKwkJCQkgY29uc3QgY2hhciAqc2Vh cmNoX3BhdGgsIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCit7CisJUEdPdXRwdXREYXRh ICpkYXRhID0gKFBHT3V0cHV0RGF0YSAqKSBjdHgtPm91dHB1dF9wbHVnaW5fcHJpdmF0ZTsKKwlU cmFuc2FjdGlvbklkIHhpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCUxpc3RDZWxsICpsYzsK KworCS8qIFJlbG9hZCBwdWJsaWNhdGlvbnMgaWYgbmVlZGVkIGJlZm9yZSB1c2UuICovCisJaWYg KCFwdWJsaWNhdGlvbnNfdmFsaWQpCisJeworCQlNZW1vcnlDb250ZXh0IG9sZGN0eCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOworCQlpZiAoZGF0YS0+cHVibGlj YXRpb25zKQorCQkJbGlzdF9mcmVlX2RlZXAoZGF0YS0+cHVibGljYXRpb25zKTsKKworCQlkYXRh LT5wdWJsaWNhdGlvbnMgPSBMb2FkUHVibGljYXRpb25zKGRhdGEtPnB1YmxpY2F0aW9uX25hbWVz KTsKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CisJCXB1YmxpY2F0aW9uc192YWxp ZCA9IHRydWU7CisJfQorCisJLyogQ2hlY2sgaWYgZGRsIHJlcGxpY2F0aW9uIGlzIHR1cm5lZCBv biBmb3IgdGhlIHB1YmxpY2F0aW9ucyAqLworCWZvcmVhY2gobGMsIGRhdGEtPnB1YmxpY2F0aW9u cykKKwl7CisJCVB1YmxpY2F0aW9uICpwdWIgPSAoUHVibGljYXRpb24gKikgbGZpcnN0KGxjKTsK KwkJLyogVE9ETyBuZWVkIHRvIGNoZWNrIHJlbGlkIGZvciB0YWJsZSBsZXZlbCBERExzICovCisJ CWlmICghcHViLT5wdWJhY3Rpb25zLnB1YmRkbF9kYXRhYmFzZSAmJiAhcHViLT5wdWJhY3Rpb25z LnB1YmRkbF90YWJsZSkKKwkJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIFJlbWVtYmVyIHRoZSB4 aWQgZm9yIHRoZSBtZXNzYWdlIGluIHN0cmVhbWluZyBtb2RlLiBTZWUKKwkgKiBwZ291dHB1dF9j aGFuZ2UuCisJICovCisJaWYgKGluX3N0cmVhbWluZykKKwkJeGlkID0gdHhuLT54aWQ7CisKKwkv KgorCSAqIE91dHB1dCBCRUdJTiBpZiB3ZSBoYXZlbid0IHlldC4gQXZvaWQgZm9yIG5vbi10cmFu c2FjdGlvbmFsCisJICogbWVzc2FnZXMuCisJICovCisJaWYgKHRyYW5zYWN0aW9uYWwpCisJewor CQlQR091dHB1dFR4bkRhdGEgKnR4bmRhdGEgPSAoUEdPdXRwdXRUeG5EYXRhICopIHR4bi0+b3V0 cHV0X3BsdWdpbl9wcml2YXRlOworCisJCS8qIFNlbmQgQkVHSU4gaWYgd2UgaGF2ZW4ndCB5ZXQg Ki8KKwkJaWYgKHR4bmRhdGEgJiYgIXR4bmRhdGEtPnNlbnRfYmVnaW5fdHhuKQorCQkJcGdvdXRw dXRfc2VuZF9iZWdpbihjdHgsIHR4bik7CisJfQorCisJT3V0cHV0UGx1Z2luUHJlcGFyZVdyaXRl KGN0eCwgdHJ1ZSk7CisJbG9naWNhbHJlcF93cml0ZV9kZGxtZXNzYWdlKGN0eC0+b3V0LAorCQkJ CQkJCSB4aWQsCisJCQkJCQkJIG1lc3NhZ2VfbHNuLAorCQkJCQkJCSB0cmFuc2FjdGlvbmFsLAor CQkJCQkJCSBwcmVmaXgsCisJCQkJCQkJIHJvbGUsCisJCQkJCQkJIHNlYXJjaF9wYXRoLAorCQkJ CQkJCSBzeiwKKwkJCQkJCQkgbWVzc2FnZSk7CisJT3V0cHV0UGx1Z2luV3JpdGUoY3R4LCB0cnVl KTsKK30KKwogLyoKICAqIEN1cnJlbnRseSB3ZSBhbHdheXMgZm9yd2FyZC4KICAqLwpAQCAtMTk4 Miw3ICsyMDUyLDkgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVs YXRpb24gcmVsYXRpb24pCiAJCWVudHJ5LT5zY2hlbWFfc2VudCA9IGZhbHNlOwogCQllbnRyeS0+ c3RyZWFtZWRfdHhucyA9IE5JTDsKIAkJZW50cnktPnB1YmFjdGlvbnMucHViaW5zZXJ0ID0gZW50 cnktPnB1YmFjdGlvbnMucHVidXBkYXRlID0KLQkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0 ZSA9IGVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5jYXRlID0gZmFsc2U7CisJCQllbnRyeS0+cHVi YWN0aW9ucy5wdWJkZWxldGUgPSBlbnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSA9CisJCQll bnRyeS0+cHViYWN0aW9ucy5wdWJkZGxfZGF0YWJhc2UgPQorCQkJZW50cnktPnB1YmFjdGlvbnMu cHViZGRsX3RhYmxlID0gZmFsc2U7CiAJCWVudHJ5LT5uZXdfc2xvdCA9IE5VTEw7CiAJCWVudHJ5 LT5vbGRfc2xvdCA9IE5VTEw7CiAJCW1lbXNldChlbnRyeS0+ZXhwcnN0YXRlLCAwLCBzaXplb2Yo ZW50cnktPmV4cHJzdGF0ZSkpOwpAQCAtMjA0MCw2ICsyMTEyLDggQEAgZ2V0X3JlbF9zeW5jX2Vu dHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCWVudHJ5LT5wdWJh Y3Rpb25zLnB1YnVwZGF0ZSA9IGZhbHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJkZWxldGUg PSBmYWxzZTsKIAkJZW50cnktPnB1YmFjdGlvbnMucHVidHJ1bmNhdGUgPSBmYWxzZTsKKwkJZW50 cnktPnB1YmFjdGlvbnMucHViZGRsX2RhdGFiYXNlID0gZmFsc2U7CisJCWVudHJ5LT5wdWJhY3Rp b25zLnB1YmRkbF90YWJsZSA9IGZhbHNlOwogCiAJCS8qCiAJCSAqIFR1cGxlIHNsb3RzIGNsZWFu dXBzLiAoV2lsbCBiZSByZWJ1aWx0IGxhdGVyIGlmIG5lZWRlZCkuCkBAIC0yMTUzLDYgKzIyMjcs OCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxh dGlvbikKIAkJCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ1cGRhdGUgfD0gcHViLT5wdWJhY3Rpb25z LnB1YnVwZGF0ZTsKIAkJCQllbnRyeS0+cHViYWN0aW9ucy5wdWJkZWxldGUgfD0gcHViLT5wdWJh Y3Rpb25zLnB1YmRlbGV0ZTsKIAkJCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSB8PSBw dWItPnB1YmFjdGlvbnMucHVidHJ1bmNhdGU7CisJCQkJZW50cnktPnB1YmFjdGlvbnMucHViZGRs X2RhdGFiYXNlIHw9IHB1Yi0+cHViYWN0aW9ucy5wdWJkZGxfZGF0YWJhc2U7CisJCQkJZW50cnkt PnB1YmFjdGlvbnMucHViZGRsX3RhYmxlIHw9IHB1Yi0+cHViYWN0aW9ucy5wdWJkZGxfdGFibGU7 CiAKIAkJCQkvKgogCQkJCSAqIFdlIHdhbnQgdG8gcHVibGlzaCB0aGUgY2hhbmdlcyBhcyB0aGUg dG9wLW1vc3QgYW5jZXN0b3IKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j IGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggNWZlNTRmNzQyYS4uZDBiYjIzMmFm NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tl bmQvdGNvcC91dGlsaXR5LmMKQEAgLTEyNjgsMTMgKzEyNjgsNiBAQCBQcm9jZXNzVXRpbGl0eVNs b3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQlpZiAoaXNDb21wbGV0ZVF1ZXJ5KQogCQkJRXZlbnRU cmlnZ2VyRERMQ29tbWFuZFN0YXJ0KHBhcnNldHJlZSk7CiAKLQkJLyoKLQkJICogQ29uc2lkZXIg bG9nZ2luZyB0aGUgRERMIGNvbW1hbmQgaWYgbG9naWNhbCBsb2dnaW5nIGlzIGVuYWJsZWQgYW5k IHRoaXMgaXMKLQkJICogYSB0b3AgbGV2ZWwgcXVlcnkuCi0JCSAqLwotCQlpZiAoWExvZ0xvZ2lj YWxJbmZvQWN0aXZlKCkgJiYgaXNUb3BMZXZlbCkKLQkJCUxvZ0xvZ2ljYWxERExDb21tYW5kKHBh cnNldHJlZSwgcXVlcnlTdHJpbmcpOwotCiAJCXN3aXRjaCAobm9kZVRhZyhwYXJzZXRyZWUpKQog CQl7CiAJCQkJLyoKQEAgLTIxMTAsNiArMjEwMywxMyBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFy c2VTdGF0ZSAqcHN0YXRlLAogCiAJCWlmIChpc0NvbXBsZXRlUXVlcnkpCiAJCXsKKwkJCS8qCisJ CQkgKiBDb25zaWRlciBsb2dnaW5nIHRoZSBEREwgY29tbWFuZCBpZiBsb2dpY2FsIGxvZ2dpbmcg aXMgZW5hYmxlZCBhbmQgdGhpcyBpcworCQkJICogYSBjb21wbGV0ZSB0b3AgbGV2ZWwgcXVlcnku CisJCQkgKi8KKwkJCWlmIChYTG9nTG9naWNhbEluZm9BY3RpdmUoKSAmJiBpc1RvcExldmVsKQor CQkJCUxvZ0xvZ2ljYWxERExDb21tYW5kKHBhcnNldHJlZSwgcXVlcnlTdHJpbmcpOworCiAJCQlF dmVudFRyaWdnZXJTUUxEcm9wKHBhcnNldHJlZSk7CiAJCQlFdmVudFRyaWdnZXJERExDb21tYW5k RW5kKHBhcnNldHJlZSk7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L2xvZ2ljYWxwcm90by5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHByb3RvLmgK aW5kZXggYTc3MWFiOGZmMy4uMjhmZjU2MmQ2MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vbG9naWNhbHByb3RvLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9n aWNhbHByb3RvLmgKQEAgLTYxLDYgKzYxLDcgQEAgdHlwZWRlZiBlbnVtIExvZ2ljYWxSZXBNc2dU eXBlCiAJTE9HSUNBTF9SRVBfTVNHX1JFTEFUSU9OID0gJ1InLAogCUxPR0lDQUxfUkVQX01TR19U WVBFID0gJ1knLAogCUxPR0lDQUxfUkVQX01TR19NRVNTQUdFID0gJ00nLAorCUxPR0lDQUxfUkVQ X01TR19ERExNRVNTQUdFID0gJ0wnLAogCUxPR0lDQUxfUkVQX01TR19CRUdJTl9QUkVQQVJFID0g J2InLAogCUxPR0lDQUxfUkVQX01TR19QUkVQQVJFID0gJ1AnLAogCUxPR0lDQUxfUkVQX01TR19D T01NSVRfUFJFUEFSRUQgPSAnSycsCkBAIC0yMjksNyArMjMwLDE0IEBAIGV4dGVybiB2b2lkIGxv Z2ljYWxyZXBfd3JpdGVfdHJ1bmNhdGUoU3RyaW5nSW5mbyBvdXQsIFRyYW5zYWN0aW9uSWQgeGlk LAogZXh0ZXJuIExpc3QgKmxvZ2ljYWxyZXBfcmVhZF90cnVuY2F0ZShTdHJpbmdJbmZvIGluLAog CQkJCQkJCQkJICBib29sICpjYXNjYWRlLCBib29sICpyZXN0YXJ0X3NlcXMpOwogZXh0ZXJuIHZv aWQgbG9naWNhbHJlcF93cml0ZV9tZXNzYWdlKFN0cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklk IHhpZCwgWExvZ1JlY1B0ciBsc24sCi0JCQkJCQkJCQkgYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25z dCBjaGFyICpwcmVmaXgsIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOworCQkJCQkJCQkJ IGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hhciAqcHJlZml4LAorCQkJCQkJCQkJIFNpemUg c3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOworZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93cml0ZV9k ZGxtZXNzYWdlKFN0cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0ciBs c24sCisJCQkJCQkJCQkJYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsIGNv bnN0IGNoYXIgKnJvbGUsCisJCQkJCQkJCQkJY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsIFNpemUg c3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOworZXh0ZXJuIGNvbnN0IGNoYXIgKmxvZ2ljYWxyZXBf cmVhZF9kZGxtZXNzYWdlKFN0cmluZ0luZm8gaW4sIFhMb2dSZWNQdHIgKmxzbiwgY29uc3QgY2hh ciAqKnByZWZpeCwKKwkJCQkJCQkJCQkJICBjb25zdCBjaGFyICoqcm9sZSwgY29uc3QgY2hhciAq KnNlYXJjaF9wYXRoLAorCQkJCQkJCQkJCQkgIGJvb2wgKnRyYW5zYWN0aW9uYWwsIFNpemUgKnN6 KTsKIGV4dGVybiB2b2lkIGxvZ2ljYWxyZXBfd3JpdGVfcmVsKFN0cmluZ0luZm8gb3V0LCBUcmFu c2FjdGlvbklkIHhpZCwKIAkJCQkJCQkJIFJlbGF0aW9uIHJlbCwgQml0bWFwc2V0ICpjb2x1bW5z KTsKIGV4dGVybiBMb2dpY2FsUmVwUmVsYXRpb24gKmxvZ2ljYWxyZXBfcmVhZF9yZWwoU3RyaW5n SW5mbyBpbik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMDRfc3luYy5w bCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwNF9zeW5jLnBsCmluZGV4IGNmNjFmYzFlMGYu LjY5OGM1MTE0ZTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwNF9zeW5j LnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwNF9zeW5jLnBsCkBAIC0zMyw3ICsz Myw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogIyBTZXR1cCBs b2dpY2FsIHJlcGxpY2F0aW9uCiBteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNo ZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAotCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1YiBGT1IgQUxMIFRB QkxFUyIpOworCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1YiBGT1IgQUxMIFRBQkxFUyBXSVRI IChkZGwgPSAnJykiKTsKIAogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CiAJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nv bm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWIiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMDZfcmV3cml0ZS5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwNl9yZXdy aXRlLnBsCmluZGV4IGM5MjRmZjM1ZjcuLjZjOWIwNTVlYjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAwNl9yZXdyaXRlLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAwNl9yZXdyaXRlLnBsCkBAIC0yMyw3ICsyMyw3IEBAICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAkZGRsKTsKIG15ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2Rl X3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKIAogJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKLQkiQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHViIEZP UiBBTEwgVEFCTEVTOyIpOworCSJDUkVBVEUgUFVCTElDQVRJT04gbXlwdWIgRk9SIEFMTCBUQUJM RVMgV0lUSCAoZGRsID0gJycpOyIpOwogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCiAJIkNSRUFURSBTVUJTQ1JJUFRJT04gbXlzdWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hl cl9jb25uc3RyJyBQVUJMSUNBVElPTiBteXB1YjsiCiApOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDA4X2RpZmZfc2NoZW1hLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDA4X2RpZmZfc2NoZW1hLnBsCmluZGV4IDY3YjQwMjZhZmEuLjI5MDJlNmZjMzQgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwOF9kaWZmX3NjaGVtYS5wbAorKysgYi9z cmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMDhfZGlmZl9zY2hlbWEucGwKQEAgLTMyLDcgKzMyLDcg QEAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAjIFNldHVwIGxvZ2lj YWwgcmVwbGljYXRpb24KIG15ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+ Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCi0JIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViIEZPUiBBTEwgVEFCTEVT Iik7CisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViIEZPUiBBTEwgVEFCTEVTIFdJVEggKGRk bCA9ICcnKSIpOwogCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAki Q1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0 cicgUFVCTElDQVRJT04gdGFwX3B1YiIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAwOV9tYXR2aWV3cy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwOV9tYXR2aWV3 cy5wbAppbmRleCAxY2U2OTZkNGE0Li42YzU4Njg3N2ExIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMDlfbWF0dmlld3MucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDA5X21hdHZpZXdzLnBsCkBAIC0xOSw3ICsxOSw3IEBAICRub2RlX3N1YnNjcmliZXItPnN0 YXJ0OwogbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4g JyBkYm5hbWU9cG9zdGdyZXMnOwogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAotCSJDUkVBVEUgUFVCTElDQVRJT04gbXlwdWIgRk9SIEFMTCBUQUJMRVM7Iik7CisJIkNS RUFURSBQVUJMSUNBVElPTiBteXB1YiBGT1IgQUxMIFRBQkxFUyBXSVRIIChkZGwgPSAnJyk7Iik7 CiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFNVQlND UklQVElPTiBteXN1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9O IG15cHViOyIKICk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMTJfY29s bGF0aW9uLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDEyX2NvbGxhdGlvbi5wbAppbmRl eCAyMTgyZjc5NDhlLi5lMWI1MDUwNjYzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMTJfY29sbGF0aW9uLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxMl9j b2xsYXRpb24ucGwKQEAgLTc2LDcgKzc2LDcgQEAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCiAjIHNldCB1cCBwdWJsaWNhdGlvbiwgc3Vic2NyaXB0aW9uCiAKICRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JcXtDUkVBVEUgUFVCTElDQVRJT04g cHViMSBGT1IgQUxMIFRBQkxFU30pOworCXF7Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFM TCBUQUJMRVMgV0lUSCAoZGRsID0gJycpfSk7CiAKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAogCXFxe0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMSBDT05ORUNUSU9OICck cHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHB1YjEgV0lUSCAoY29weV9kYXRhID0gZmFs c2UpfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDEzX3BhcnRpdGlvbi5w bCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxM19wYXJ0aXRpb24ucGwKaW5kZXggZTdmNGE5 NGYxOS4uMDA3YTE1ZGZkYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDEz X3BhcnRpdGlvbi5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMTNfcGFydGl0aW9u LnBsCkBAIC0yNSw5ICsyNSw5IEBAICRub2RlX3N1YnNjcmliZXIyLT5zdGFydDsKIG15ICRwdWJs aXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3Rn cmVzJzsKIAogIyBwdWJsaXNoZXIKLSRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJDUkVBVEUgUFVCTElDQVRJT04gcHViMSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIFdJVEggKGRkbCA9ICcnKSIp OwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKLQkiQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1Yl9hbGwgRk9SIEFMTCBUQUJMRVMiKTsKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 Yl9hbGwgRk9SIEFMTCBUQUJMRVMgV0lUSCAoZGRsID0gJycpIik7CiAkbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJDUkVBVEUgVEFCTEUgdGFiMSAoYSBpbnQgUFJJTUFS WSBLRVksIGIgdGV4dCkgUEFSVElUSU9OIEJZIExJU1QgKGEpIik7CiAkbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLApAQCAtNDI1LDEyICs0MjUsMTIgQEAgJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKICMgYW5kIGNoaWxkIHRhYmxlcyBhcmUgcHJlc2Vu dCBidXQgY2hhbmdlcyB3aWxsIGJlIHJlcGxpY2F0ZWQgdmlhIHRoZSBwYXJlbnQncwogIyBpZGVu dGl0eSBhbmQgb25seSBvbmNlLgogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKLQkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl92aWFyb290IEZPUiBUQUJMRSB0YWIyLCB0YWIy XzEsIHRhYjNfMSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpIgorCSJD UkVBVEUgUFVCTElDQVRJT04gcHViX3ZpYXJvb3QgRk9SIFRBQkxFIHRhYjIsIHRhYjJfMSwgdGFi M18xIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSwgZGRsID0gJycpIgog KTsKIAogIyBmb3IgdGFiNCwgd2UgcHVibGlzaCBjaGFuZ2VzIHRocm91Z2ggdGhlICJtaWRkbGUi IHBhcnRpdGlvbmVkIHRhYmxlCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAotCSJDUkVBVEUgUFVCTElDQVRJT04gcHViX2xvd2VyX2xldmVsIEZPUiBUQUJMRSB0YWI0XzEg V0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlKSIKKwkiQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1Yl9sb3dlcl9sZXZlbCBGT1IgVEFCTEUgdGFiNF8xIFdJVEggKHB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290ID0gdHJ1ZSwgZGRsID0gJycpIgogKTsKIAogIyBwcmVwYXJlIGRhdGEg Zm9yIHRoZSBpbml0aWFsIHN5bmMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzMF9yZXBfZGRscy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBfZGRscy5w bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jODhjNGVhMWMwCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9kZGxzLnBsCkBA IC0wLDAgKzEsMjM3IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIyLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorCisjIFJlZ3Jlc3Npb24gdGVzdHMgZm9yIGxvZ2ljYWwgcmVw bGljYXRpb24gb2YgRERMcwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3Jl U1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRl c3Q6Ok1vcmU7CisKK215ICRub2RlX3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXItPm5ldygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVh bWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlzaGVyLT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJywgJ2F1dG92YWN1dW0gPSBvZmYnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7 CisKK215ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXco J3N1YnNjcmliZXInKTsKKyRub2RlX3N1YnNjcmliZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9 PiAnbG9naWNhbCcpOworJG5vZGVfc3Vic2NyaWJlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsICdhdXRvdmFjdXVtID0gb2ZmJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKwor bXkgJG5vZGVfc3Vic2NyaWJlcjIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1 YnNjcmliZXIyJyk7Ciskbm9kZV9zdWJzY3JpYmVyMi0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyMi0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsICdhdXRvdmFjdXVtID0gb2ZmJyk7Ciskbm9kZV9zdWJzY3JpYmVyMi0+c3RhcnQ7CisK K215ICRkZGwgPSAiQ1JFQVRFIFRBQkxFIHRlc3RfcmVwKGlkIGludCBwcmltYXJ5IGtleSwgbmFt ZSB2YXJjaGFyKTsiOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGRk bCk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8g dGVzdF9yZXAgVkFMVUVTICgxLCAnZGF0YTEnKTsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAkZGRsKTsKKyRub2RlX3N1YnNjcmliZXIyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgJGRkbCk7CisKK215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hl ci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKworIyBteXB1YiBoYXMgcHViZGRsX2Rh dGFiYXNlIG9uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVB VEUgUFVCTElDQVRJT04gbXlwdWIgRk9SIEFMTCBUQUJMRVM7Iik7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBteXN1YiBDT05O RUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIG15cHViOyIKKyk7CisjIG15 cHViMiBoYXMgcHViZGRsX2RhdGFiYXNlIG9mZgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHViMiBGT1IgQUxMIFRBQkxFUyB3 aXRoIChkZGwgPSAnJyk7Iik7Ciskbm9kZV9zdWJzY3JpYmVyMi0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gbXlzdWIyIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gbXlwdWIyOyIKKyk7CisKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworIyBUZXN0IHNpbXBsZSBDUkVBVEUgVEFCTEUgY29t bWFuZCBpcyByZXBsaWNhdGVkIHRvIHN1YnNjcmliZXIKKyMgVGVzdCBzbWFlIHNpbXBsZSBDUkVB VEUgVEFCTEUgY29tbWFuZCBpcyBub3QgcmVwbGljYXRlZCB0byBzdWJzY3JpYmVyMiAoZGRsIG9m ZikKKyMgVGVzdCBBTFRFUiBUQUJMRSBjb21tYW5kIGlzIHJlcGxpY2F0ZWQgb24gdGFibGUgdGVz dF9yZXAKKyMgVGVzdCBDUkVBVEUgSU5ERVggaXMgcmVwbGljYXRlZCB0byBzdWJzY3JpYmVyCisj IFRlc3QgQ1JFQVRFIEZVTkNUSU9OIGNvbW1hbmQgaXMgcmVwbGljYXRlZCB0byBzdWJzY3JpYmVy Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHQx IChhIGludCwgYiB2YXJjaGFyKTsiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJBTFRFUiBUQUJMRSB0ZXN0X3JlcCBBREQgYzMgaW50OyIpOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRlc3RfcmVwIFZBTFVFUyAo MiwgJ2RhdGEyJywgMik7Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiQ1JFQVRFIElOREVYIG5hbWVpbmRleCBvbiB0ZXN0X3JlcCAobmFtZSkiKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHRvdGFsUmVjb3JkcygpCitSRVRVUk5TIGludGVnZXIgQVMgXCR0b3RhbFwkCitkZWNsYXJl CisJdG90YWwgaW50ZWdlcjsKK0JFR0lOCisgICBTRUxFQ1QgY291bnQoKikgaW50byB0b3RhbCBG Uk9NIHRlc3RfcmVwOworICAgUkVUVVJOIHRvdGFsOworRU5EOworXCR0b3RhbFwkIExBTkdVQUdF IHBscGdzcWw7fSk7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWIn KTsKKworbXkgJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiU0VMRUNUIGNvdW50KCopIGZyb20gdDEiKTsKK2lzKCRyZXN1bHQsIHFxKDApLCAnQ1JFQVRF IG9mIHQxIHJlcGxpY2F0ZWQgdG8gc3Vic2NyaWJlcicpOworJHJlc3VsdCA9ICRub2RlX3N1YnNj cmliZXIyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBmcm9tIHBnX3Rh YmxlcyB3aGVyZSB0YWJsZW5hbWUgPSAndDEnOyIpOworaXMoJHJlc3VsdCwgcXEoMCksICdDUkVB VEUgb2YgdDEgaXMgbm90IHJlcGxpY2F0ZWQgdG8gc3Vic2NyaWJlcjInKTsKKyRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBG Uk9NIHRlc3RfcmVwIFdIRVJFIGMzID0yOyIpOworaXMoJHJlc3VsdCwgcXEoMSksICdBTFRFUiB0 ZXN0X3JlcCBBREQgcmVwbGljYXRlZCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gcGdfY2xhc3Mgd2hlcmUg cmVsbmFtZSA9ICduYW1laW5kZXgnIik7CitpcygkcmVzdWx0LCBxcSgxKSwgJ0NSRUFURSBJTkRF WCBuYW1laW5kZXggcmVwbGljYXRlZCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHRvdGFsUmVjb3JkcygpOyIpOworaXMoJHJlc3Vs dCwgcXEoMiksICdDUkVBVEUgb2YgZnVuY3Rpb24gdG90YWxSZWNvcmRzIHJlcGxpY2F0ZWQgdG8g c3Vic2NyaWJlcicpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSA9ICd0 b3RhbHJlY29yZHMnOyIpOworaXMoJHJlc3VsdCwgcXEoMCksICdDUkVBVEUgRlVOQ1RJT04gdG90 YWxyZWNvcmRzIGlzIG5vdCByZXBsaWNhdGVkIHRvIHN1YnNjcmliZXIyJyk7CisKKyMgVGVzdCBB TFRFUiBUQUJMRSBEUk9QCisjIFRlc3QgRFJPUCBJTkRFWAorIyBUZXN0IERST1AgRlVOQ1RJT04K KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRFUiBUQUJMRSB0ZXN0 X3JlcCBEUk9QIGMzOyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkRFTEVURSBGUk9NIHRlc3RfcmVwIHdoZXJlIGlkID0gMjsiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIElOREVYIG5hbWVpbmRleDsiKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIEZVTkNUSU9OIHRvdGFsUmVjb3Jk czsiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg Y291bnQoKikgZnJvbSB0ZXN0X3JlcDsiKTsKK2lzKCRyZXN1bHQsIHFxKDEpLCAnQUxURVIgdGVz dF9yZXAgRFJPUCByZXBsaWNhdGVkJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jbGFzcyB3aGVyZSBy ZWxuYW1lID0gJ25hbWVpbmRleCciKTsKK2lzKCRyZXN1bHQsIHFxKDApLCAnRFJPUCBJTkRFWCBu YW1laW5kZXggcmVwbGljYXRlZCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gcGdfcHJvYyB3aGVyZSBwcm9u YW1lID0gJ3RvdGFscmVjb3Jkcyc7Iik7CitpcygkcmVzdWx0LCBxcSgwKSwgJ0RST1AgRlVOQ1RJ T04gdG90YWxyZWNvcmRzIHJlcGxpY2F0ZWQnKTsKKworCisjIFRPRE8gZmlndXJlIG91dCBob3cg dG8gc2V0IE9OX0VSUk9SX1NUT1AgPSAwIGluIHRoaXMgdGVzdAorIyBUZXN0IGZhaWxlZCBDUkVB VEUvQUxURVIgVEFCTEUgb24gcHVibGlzaGVyIGRvZXNuJ3QgYnJlYWsgcmVwbGljYXRpb24KKyMg VGFibGUgdDEgYWxyZWFkeSBleGl0cyBzbyBleHBlY3QgdGhlIGNvbW1hbmQgdG8gZmFpbAorIyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgVEFCTEUgdDEgKGEg aW50LCBiIHZhcmNoYXIpOyIpOworIyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJBTFRFUiBUQUJMRSB0ZXN0X3JlcCBEUk9QIGMzOyIpOworIyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0ZXN0X3JlcCBWQUxVRVMgKDEwMywg J2RhdGExMDMnLCAxMDEzKTsiKTsKKworIyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgnbXlzdWInKTsKKyMgVmVyaWZ5IHJlcGxpY2F0aW9uIHN0aWxsIHdvcmtzCisjJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCop IGZyb20gdGVzdF9yZXA7Iik7CisjaXMoJHJlc3VsdCwgcXEoMSksICdERUxFVEUgZnJvbSB0ZXN0 X3JlcCByZXBsaWNhdGVkJyk7CisKKyMgVGVzdCBERExzIGluc2lkZSB0eG4gYmxvY2sKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHF7CitCRUdJTjsKK0NSRUFURSBU QUJMRSB0MiAoYSBpbnQsIGIgdmFyY2hhcik7CitBTFRFUiBUQUJMRSB0ZXN0X3JlcCBBREQgYzMg aW50OworSU5TRVJUIElOVE8gdGVzdF9yZXAgVkFMVUVTICgzLCAnZGF0YTMnLCAzKTsKK0NPTU1J VDt9KTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg Y291bnQoKikgZnJvbSB0MjsiKTsKK2lzKCRyZXN1bHQsIHFxKDApLCAnQ1JFQVRFIHQyIHJlcGxp Y2F0ZWQnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHRlc3RfcmVwOyIpOworaXMoJHJlc3VsdCwgcXEoMiks ICdBTFRFUiB0ZXN0X3JlcCBBREQgcmVwbGljYXRlZCcpOworCisjIFRlc3QgdG9nZ2xpbmcgcHVi ZGRsX2RhdGFiYXNlIG9wdGlvbiBvZmYKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJBTFRFUiBQVUJMSUNBVElPTiBteXB1YiBzZXQgKGRkbCA9ICcnKTsiKTsKKyRyZXN1 bHQgPSAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHB1YmRk bF9kYXRhYmFzZSwgcHViZGRsX3RhYmxlIGZyb20gcGdfcHVibGljYXRpb24gd2hlcmUgcHVibmFt ZSA9ICdteXB1Yic7Iik7CitpcygkcmVzdWx0LCBxcShmfGYpLCAncHViZGRsX2RhdGFiYXNlIHR1 cm5lZCBvZmYgb24gbXlwdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJDUkVBVEUgVEFCTEUgdDMgKGEgaW50LCBiIHZhcmNoYXIpOyIpOworCiskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBmcm9tIHBnX3Rh YmxlcyB3aGVyZSB0YWJsZW5hbWUgPSAndDMnOyIpOworaXMoJHJlc3VsdCwgcXEoMCksICdDUkVB VEUgdDMgaXMgbm90IHJlcGxpY2F0ZWQnKTsKKworIyBUZXN0IHRvZ2dsaW5nIHB1YmRkbF9kYXRh YmFzZSBvcHRpb24gb24KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJB TFRFUiBQVUJMSUNBVElPTiBteXB1YiBzZXQgKGRkbCA9ICdkYXRhYmFzZScpOyIpOworJHJlc3Vs dCA9ICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgcHViZGRs X2RhdGFiYXNlLCBwdWJkZGxfdGFibGUgZnJvbSBwZ19wdWJsaWNhdGlvbiB3aGVyZSBwdWJuYW1l ID0gJ215cHViJzsiKTsKK2lzKCRyZXN1bHQsIHFxKHR8dCksICdwdWJkZGxfZGF0YWJhc2UgdHVy bmVkIG9uIG9uIG15cHViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJDUkVBVEUgVEFCTEUgdDQgKGEgaW50LCBiIHZhcmNoYXIpOyIpOworCiskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBmcm9tIHBnX3Rh YmxlcyB3aGVyZSB0YWJsZW5hbWUgPSAndDQnOyIpOworaXMoJHJlc3VsdCwgcXEoMSksICdDUkVB VEUgdDQgaXMgcmVwbGljYXRlZCcpOworCisjIFRlc3QgRE1MIGNoYW5nZXMgb24gdGhlIG5ldyB0 YWJsZSB0NCBhcmUgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIklOU0VSVCBJTlRPIHQ0IHZhbHVlcyAoMSwgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHQ0IHZhbHVlcyAoMiwgJ2InKSIp OworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CisKKyRyZXN1 bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3Vu dCgqKSBmcm9tIHQ0OyIpOworaXMoJHJlc3VsdCwgcXEoMiksICdETUwgQ2hhbmdlcyB0byB0NCBh cmUgcmVwbGljYXRlZCcpOworCisjIEEgc29tZXdoYXQgY29tcGxpY2F0ZWQgdGVzdCBpbiBwbHBn c3FsIGJsb2NrIHdpdGggdHJpZ2dlcgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bv c3RncmVzJywgcXsKK0JFR0lOOworQ1JFQVRFIFRBQkxFIGZvbyAoYSBpbnQpOworQ1JFQVRFIElO REVYIGZvb19pZHggT04gZm9vIChhKTsKK0FMVEVSIFRBQkxFIGZvbyBBREQgQ09MVU1OIGIgdGlt ZXN0YW1wdHo7CitDUkVBVEUgRlVOQ1RJT04gZm9vX3RzKCkKK1JFVFVSTlMgdHJpZ2dlciBBUyAk JAorQkVHSU4KK05FVy5iIDo9IGN1cnJlbnRfdGltZXN0YW1wOworUkVUVVJOIE5FVzsKK0VORDsK KyQkCitMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIFRSSUdHRVIgZm9vX3RzIEJFRk9SRSBJTlNF UlQgT1IgVVBEQVRFIE9OIGZvbworRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gZm9vX3Rz KCk7CitJTlNFUlQgSU5UTyBmb28gVkFMVUVTICgxKTsKK0NPTU1JVDt9KTsKKyRyZXN1bHQgPSAk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGIgZnJvbSBmb28g d2hlcmUgYSA9IDE7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlz dWInKTsKKworbXkgJHJlc3VsdF9zdWIgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlNFTEVDVCBiIGZyb20gZm9vIHdoZXJlIGEgPSAxOyIpOworaXMoJHJlc3VsdCwg cXEoJHJlc3VsdF9zdWIpLCAndGltZXN0YW1wIG9mIGluc2VydCBtYXRjaGVzJyk7CisKKyMgVGVz dCBDUkVBVEUgU0NIRU1BIHN0bXQgaXMgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBTQ0hFTUEgczEiKTsKKyRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gcGdfY2F0YWxvZy5w Z19uYW1lc3BhY2UgV0hFUkUgbnNwbmFtZSA9ICdzMSc7Iik7CitpcygkcmVzdWx0LCBxcSgxKSwg J0NSRUFURSBTQ0hFTUEgczEgaXMgcmVwbGljYXRlZCcpOworCisjIFRlc3QgQ1JFQVRFIFRBQkxF IGluIG5ldyBzY2hlbWEgczEgZm9sbG93ZWQgYnkgaW5zZXJ0Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHMxLnQxIChhIGludCwgYiB2YXJjaGFy KTsiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5U TyBzMS50MSBWQUxVRVMgKDEsICdhJyk7Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gczEudDEgVkFMVUVTICgyLCAnYicpOyIpOworCiskbm9k ZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CisKKyRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9N IHMxLnQxOyIpOworaXMoJHJlc3VsdCwgcXEoMiksICdDUkVBVEUgVEFCTEUgczEudDEgaXMgcmVw bGljYXRlZCcpOworCisjIFRlc3QgcmVwbGljYXRpb24gd29ya3MgYXMgZXhwZWN0ZWQgd2l0aCBt aXNtYXRjaGVkIHNlYXJjaF9wYXRoIG9uIHB1Ymxpc2hlciBhbmQgc3Vic2NyaWJlcgorJG5vZGVf cHVibGlzaGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ3NlYXJjaF9wYXRoID0g XCdzMSwgcHVibGljXCcnKTsKKyRub2RlX3B1Ymxpc2hlci0+cmVzdGFydDsKKyMgQ1JFQVRFIHVu cXVhbGlmaWVkIHRhYmxlIHQyLCBpdCBpcyBzMS50MiB1bmRlciB0aGUgbW9kaWZpZWQgc2VhcmNo X3BhdGgKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgVEFC TEUgdDIgKGEgaW50LCBiIHZhcmNoYXIpOyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMSwgJ2EnKTsiKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0MiBWQUxVRVMgKDIs ICdiJyk7Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJU IElOVE8gdDIgVkFMVUVTICgzLCAnYycpOyIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ215c3ViJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHMxLnQyOyIpOworaXMoJHJlc3Vs dCwgcXEoMyksICdDUkVBVEUgVEFCTEUgczEudDIgaXMgcmVwbGljYXRlZCcpOworCisjIFRlc3Qg b3duZXIgb2YgbmV3IHRhYmxlIG9uIHN1YnNjcmliZXIgbWF0Y2hlcyB0aGUgb3duZXIgb24gcHVi bGlzaGVyCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFJP TEUgZGRsX3JlcGxpY2F0aW9uX3VzZXIgTE9HSU4gU1VQRVJVU0VSOyIpOworCiskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBST0xFIGRkbF9yZXBsaWNhdGlv bl91c2VyIExPR0lOIFNVUEVSVVNFUjsiKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ2RkbF9yZXBsaWNhdGlvbl91 c2VyJzsgQ1JFQVRFIFRBQkxFIHQ1IChhIGludCwgYiB2YXJjaGFyKTsiKTsKKyRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHRhYmxlb3duZXIgZnJvbSBwZ19j YXRhbG9nLnBnX3RhYmxlcyB3aGVyZSB0YWJsZW5hbWUgPSAndDUnOyIpOworaXMoJHJlc3VsdCwg cXEoZGRsX3JlcGxpY2F0aW9uX3VzZXIpLCAnT3duZXIgb2YgdDUgaXMgY29ycmVjdCcpOworCisj VE9ETyBURVNUIGNlcnRhaW4gRERMcyBhcmUgbm90IHJlcGxpY2F0ZWQKKworcGFzcyAiRERMIHJl cGxpY2F0aW9uIHRlc3RzIHBhc3NlZCEiOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wOworJG5v ZGVfc3Vic2NyaWJlcjItPnN0b3A7Ciskbm9kZV9wdWJsaXNoZXItPnN0b3A7CisKK2RvbmVfdGVz dGluZygpOwotLSAKMi4zMi4wCgo= --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0002-Support-logical-logging-and-decoding-of-DDL-command-.patch" Content-Disposition: attachment; filename="0002-Support-logical-logging-and-decoding-of-DDL-command-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwp51 RnJvbSAyODE2YjlhOGMzY2FlNDU5MTVhZGIxZTFiZDNkNTk1YWY4NWFlNDI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IEZyaSwgMTggTWFyIDIwMjIgMTY6NTc6MjMgKzAwMDAKU3ViamVjdDogW1BBVENIIDAy LzEyXSBTdXBwb3J0IGxvZ2ljYWwgbG9nZ2luZyBhbmQgZGVjb2Rpbmcgb2YgRERMIGNvbW1hbmQK IHN0cmluZy4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkEgbmV3IFdBTCByZWNv cmQgdHlwZSB4bF9sb2dpY2FsX2RkbF9tZXNzYWdlIGlzIGludHJvZHVjZWQgdG8Kc3VwcG9ydCBs b2dpY2FsIGxvZ2dpbmcgb2YgRERMIGNvbW1hbmQuIHhsX2xvZ2ljYWxfZGRsX21lc3NhZ2UgaXMK c2ltaWxhciB0byB0aGUgZXhpc3RpbmcgeGxfbG9naWNhbF9tZXNzYWdlIGZvciBnZW5lcmljIG1l c3NhZ2UKbG9nZ2luZy4gVGhlIHJlYXNvbiBmb3Igbm90IHVzaW5nIHhsX2xvZ2ljYWxfbWVzc2Fn ZSBkaXJlY3RseSBhcwpwcm9wb3NlZCBpbml0aWFsbHkgaXMgSSBmb3VuZCBvdXQgd2UgbmVlZCB0 byBsb2cgbW9yZSBpbmZvcm1hdGlvbgooc3VjaCBhcyB1c2VyIHJvbGUsIHNlYXJjaCBwYXRoIGFu ZCBwb3RlbnRpYWxseSBtb3JlIGluIHRoZSBmdXR1cmUpCnRoYW4ganVzdCBvbmUgc3RyaW5nLCBh bmQgd2UgZG9u4oCZdCB3YW50IHRvIG1ha2UgdG9vIG11Y2ggY2hhbmdlcyB0bwp0aGUgZXhpc3Rp bmcgeGxfbG9naWNhbF9tZXNzYWdlIHdoaWNoIG1heSBicmVhayBpdHMgY3VycmVudCBjb25zdW1l cnMuCgpUaGUgbG9nZ2luZyBvZiBEREwgY29tbWFuZCBzdHJpbmcgaXMgcHJvY2Vzc2VkIGluIGZ1 bmN0aW9uCkxvZ0xvZ2ljYWxERExDb21tYW5kLiBXZSBjYXRlZ29yaXplIERETCBjb21tYW5kIHR5 cGVzIGludG8gdGhyZWUKY2F0ZWdvcmllcyBpbiB0aGlzIGZ1bmN0aW9uOgoxLiByZXBsaWNhdGVk IGluIGRhdGFiYXNlIGxldmVsIHJlcGxpY2F0aW9uIG9ubHkgKHN1Y2ggYXMgQ1JFQVRFClRBQkxF LCBDUkVBVEUgRlVOQ1RJT04pLgoyLiByZXBsaWNhdGVkIGluIGRhdGFiYXNlIG9yIHRhYmxlIGxl dmVsIHJlcGxpY2F0aW9uIGRlcGVuZGluZyBvbgp0aGUgY29uZmlndXJhdGlvbiAoc3VjaCBhcyBB TFRFUiBUQUJMRSkuCjMuIG5vdCBzdXBwb3J0ZWQgZm9yIHJlcGxpY2F0aW9uIG9yIHBlbmRpbmcg aW52ZXN0aWdhdGlvbi4KClN1cHBvcnQgbG9naWNhbCBkZWNvZGluZyBvZiB0aGUgbmV3IFdBTCBy ZWNvcmQgeGxfbG9naWNhbF9kZGxfbWVzc2FnZS4KVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBsb2dp Y2FsIGRlY29kaW5nIG9mIHhsX2xvZ2ljYWxfbWVzc2FnZS4gVGVzdHMKZm9yIHRoaXMgY2hhbmdl IGFyZSBhZGRlZCBpbiB0aGUgdGVzdF9kZWNvZGluZyBwbHVnaW4uCi0tLQogY29udHJpYi90ZXN0 X2RlY29kaW5nL01ha2VmaWxlICAgICAgICAgICAgICAgIHwgICA0ICstCiAuLi4vdGVzdF9kZWNv ZGluZy9leHBlY3RlZC9kZGxtZXNzYWdlcy5vdXQgICAgfCAgNDIgKysrKwogY29udHJpYi90ZXN0 X2RlY29kaW5nL3NxbC9kZGxtZXNzYWdlcy5zcWwgICAgIHwgIDI4ICsrKwogY29udHJpYi90ZXN0 X2RlY29kaW5nL3Rlc3RfZGVjb2RpbmcuYyAgICAgICAgIHwgIDYxICsrKysrLQogc3JjL2JhY2tl bmQvYWNjZXNzL3JtZ3JkZXNjL01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIC4uLi9hY2Nlc3Mv cm1ncmRlc2MvbG9naWNhbGRkbG1zZ2Rlc2MuYyAgICAgICB8ICA1NCArKysrKwogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vcm1nci5jICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyAgICAgICAgICB8ICA1MiArKysrKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDQzICsrKy0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUgICAgICB8ICAgMSArCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RkbG1lc3NhZ2UuYyAgfCAgOTkgKysrKysrKysrCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jICAgICAgfCAgNTYgKysrKysKIHNy Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jICAgICB8ICA5MSArKysrKysr KwogLi4uL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jICAgICAgIHwgMjA0ICsr KysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAg ICAgICAgIHwgMjAxICsrKysrKysrKysrKysrKystCiBzcmMvYmluL3BnX3dhbGR1bXAvcm1ncmRl c2MuYyAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvYWNjZXNzL3JtZ3JsaXN0 LmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21k cy5oICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vZGRsbWVz c2FnZS5oICAgICAgICAgIHwgIDQ3ICsrKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2RlY29k ZS5oICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9vdXRwdXRf cGx1Z2luLmggICAgICAgfCAgMjkgKysrCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9yZW9yZGVy YnVmZmVyLmggICAgICAgfCAgMzkgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJs aWNhdGlvbi5vdXQgICAgIHwgIDE2ICstCiAyMyBmaWxlcyBjaGFuZ2VkLCAxMDU0IGluc2VydGlv bnMoKyksIDIxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvdGVzdF9k ZWNvZGluZy9leHBlY3RlZC9kZGxtZXNzYWdlcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250 cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbG1lc3NhZ2VzLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9sb2dpY2FsZGRsbXNnZGVzYy5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZGxtZXNzYWdlLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9kZGxtZXNzYWdlLmgK CmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgYi9jb250cmliL3Rl c3RfZGVjb2RpbmcvTWFrZWZpbGUKaW5kZXggYjIyMDkwNjQ3OS4uZTU4YTc2ZDNmMSAxMDA2NDQK LS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvdGVzdF9k ZWNvZGluZy9NYWtlZmlsZQpAQCAtNSw3ICs1LDkgQEAgUEdGSUxFREVTQyA9ICJ0ZXN0X2RlY29k aW5nIC0gZXhhbXBsZSBvZiBhIGxvZ2ljYWwgZGVjb2Rpbmcgb3V0cHV0IHBsdWdpbiIKIAogUkVH UkVTUyA9IGRkbCB4YWN0IHJld3JpdGUgdG9hc3QgcGVybWlzc2lvbnMgZGVjb2RpbmdfaW5feGFj dCBcCiAJZGVjb2RpbmdfaW50b19yZWwgYmluYXJ5IHByZXBhcmVkIHJlcGxvcmlnaW4gdGltZSBt ZXNzYWdlcyBcCi0Jc3BpbGwgc2xvdCB0cnVuY2F0ZSBzdHJlYW0gc3RhdHMgdHdvcGhhc2UgdHdv cGhhc2Vfc3RyZWFtCisJc3BpbGwgc2xvdCB0cnVuY2F0ZSBzdHJlYW0gc3RhdHMgdHdvcGhhc2Ug dHdvcGhhc2Vfc3RyZWFtIFwKKwlkZGxtZXNzYWdlcworCiBJU09MQVRJT04gPSBteGFjdCBkZWxh eWVkX3N0YXJ0dXAgb25kaXNrX3N0YXJ0dXAgY29uY3VycmVudF9kZGxfZG1sIFwKIAlvbGRlc3Rf eG1pbiBzbmFwc2hvdF90cmFuc2ZlciBzdWJ4YWN0X3dpdGhvdXRfdG9wIGNvbmN1cnJlbnRfc3Ry ZWFtIFwKIAl0d29waGFzZV9zbmFwc2hvdCBzbG90X2NyZWF0aW9uX2Vycm9yCmRpZmYgLS1naXQg YS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsbWVzc2FnZXMub3V0IGIvY29udHJp Yi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2RkbG1lc3NhZ2VzLm91dApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi43OTI4NGY5ZGVmCi0tLSAvZGV2L251bGwKKysrIGIvY29u dHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2RkbG1lc3NhZ2VzLm91dApAQCAtMCwwICsxLDQy IEBACistLSBwcmVkaWN0YWJpbGl0eQorU0VUIHN5bmNocm9ub3VzX2NvbW1pdCA9IG9uOworLS0g dHVybiBvbiBsb2dpY2FsIGRkbCBtZXNzYWdlIGxvZ2dpbmcKK0NSRUFURSBwdWJsaWNhdGlvbiBt eXB1YiBGT1IgQUxMIFRBQkxFUyB3aXRoIChkZGwgPSAnZGF0YWJhc2UnKTsKK1NFTEVDVCAnaW5p dCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Ns b3QnLCAndGVzdF9kZWNvZGluZycpOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIGluaXQKKygx IHJvdykKKworQ1JFQVRFIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSAoaWQgc2VyaWFsIHVuaXF1ZSwg ZGF0YSBpbnQpOworQUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2YXJjaGFyOwor QUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGRyb3AgYzM7CitEUk9QIFRBQkxFIHRlc3RfZGRs bWVzc2FnZTsKK0JFR0lOOworQ1JFQVRFIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSAoaWQgc2VyaWFs IHVuaXF1ZSwgZGF0YSBpbnQpOworQUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2 YXJjaGFyOworUk9MTEJBQ0s7CitCRUdJTjsKK0NSRUFURSBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2Ug KGlkIHNlcmlhbCB1bmlxdWUsIGRhdGEgaW50KTsKK0FMVEVSIFRBQkxFIHRlc3RfZGRsbWVzc2Fn ZSBhZGQgYzMgdmFyY2hhcjsKK0NPTU1JVDsKK1xvIHwgc2VkICdzL3JvbGUuKnNlYXJjaF9wYXRo L3JvbGU6IHJlZGFjdGVkLCBzZWFyY2hfcGF0aC9nJworU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dp Y2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNs dWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnKTsKK1NFTEVDVCBwZ19kcm9w X3JlcGxpY2F0aW9uX3Nsb3QoJ3JlZ3Jlc3Npb25fc2xvdCcpOworRFJPUCBUQUJMRSB0ZXN0X2Rk bG1lc3NhZ2U7CitEUk9QIHB1YmxpY2F0aW9uIG15cHViOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9s ZTogcmVkYWN0ZWQsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiA1OCBjb250ZW50 OkNSRUFURSBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgKGlkIHNlcmlhbCB1bmlxdWUsIGRhdGEgaW50 KTsKKyBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiByZWRhY3Rl ZCwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDQzIGNvbnRlbnQ6QUxURVIgVEFC TEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2YXJjaGFyOworIERETCBtZXNzYWdlOiB0cmFuc2Fj dGlvbmFsOiAxIHByZWZpeDogIHJvbGU6IHJlZGFjdGVkLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwg cHVibGljLCBzejogMzYgY29udGVudDpBTFRFUiBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgZHJvcCBj MzsKKyBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiByZWRhY3Rl ZCwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDI3IGNvbnRlbnQ6RFJPUCBUQUJM RSB0ZXN0X2RkbG1lc3NhZ2U7CisgRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4 OiAgcm9sZTogcmVkYWN0ZWQsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiA1OCBj b250ZW50OkNSRUFURSBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgKGlkIHNlcmlhbCB1bmlxdWUsIGRh dGEgaW50KTsKKyBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiBy ZWRhY3RlZCwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDQzIGNvbnRlbnQ6QUxU RVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2YXJjaGFyOworKDYgcm93cykKKworIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCiso MSByb3cpCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsbWVzc2Fn ZXMuc3FsIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGxtZXNzYWdlcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjExNDk3ZWUyMgotLS0gL2Rldi9udWxs CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsbWVzc2FnZXMuc3FsCkBAIC0wLDAg KzEsMjggQEAKKy0tIHByZWRpY3RhYmlsaXR5CitTRVQgc3luY2hyb25vdXNfY29tbWl0ID0gb247 CistLSB0dXJuIG9uIGxvZ2ljYWwgZGRsIG1lc3NhZ2UgbG9nZ2luZworQ1JFQVRFIHB1YmxpY2F0 aW9uIG15cHViIEZPUiBBTEwgVEFCTEVTIHdpdGggKGRkbCA9ICdkYXRhYmFzZScpOworCitTRUxF Q1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgncmVncmVz c2lvbl9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnKTsKKworQ1JFQVRFIFRBQkxFIHRlc3RfZGRsbWVz c2FnZSAoaWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOworQUxURVIgVEFCTEUgdGVzdF9kZGxt ZXNzYWdlIGFkZCBjMyB2YXJjaGFyOworQUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGRyb3Ag YzM7CitEUk9QIFRBQkxFIHRlc3RfZGRsbWVzc2FnZTsKKworQkVHSU47CitDUkVBVEUgVEFCTEUg dGVzdF9kZGxtZXNzYWdlIChpZCBzZXJpYWwgdW5pcXVlLCBkYXRhIGludCk7CitBTFRFUiBUQUJM RSB0ZXN0X2RkbG1lc3NhZ2UgYWRkIGMzIHZhcmNoYXI7CitST0xMQkFDSzsKKworQkVHSU47CitD UkVBVEUgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIChpZCBzZXJpYWwgdW5pcXVlLCBkYXRhIGludCk7 CitBTFRFUiBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgYWRkIGMzIHZhcmNoYXI7CitDT01NSVQ7CisK K1xvIHwgc2VkICdzL3JvbGUuKnNlYXJjaF9wYXRoL3JvbGU6IHJlZGFjdGVkLCBzZWFyY2hfcGF0 aC9nJworU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jl c3Npb25fc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5 LXhhY3RzJywgJzEnKTsKK1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3JlZ3Jlc3Np b25fc2xvdCcpOworRFJPUCBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2U7CitEUk9QIHB1YmxpY2F0aW9u IG15cHViOworCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvdGVzdF9kZWNvZGlu Zy5jIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3Rlc3RfZGVjb2RpbmcuYwppbmRleCAzNzM2ZGE2 Nzg0Li5hNDRlMWY3OWUzIDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvdGVzdF9k ZWNvZGluZy5jCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy90ZXN0X2RlY29kaW5nLmMKQEAg LTc2LDYgKzc2LDExIEBAIHN0YXRpYyB2b2lkIHBnX2RlY29kZV9tZXNzYWdlKExvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJCQkgIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwgWExvZ1Jl Y1B0ciBtZXNzYWdlX2xzbiwKIAkJCQkJCQkgIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hh ciAqcHJlZml4LAogCQkJCQkJCSAgU2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CitzdGF0 aWMgdm9pZCBwZ19kZWNvZGVfZGRsbWVzc2FnZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgs CisJCQkJCQkJCSBSZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24s CisJCQkJCQkJCSBib29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJCQkJ CQkJIGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCQkJCQkg U2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiBzdGF0aWMgYm9vbCBwZ19kZWNvZGVfZmls dGVyX3ByZXBhcmUoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCQkJCQkJCQkJIFRyYW5z YWN0aW9uSWQgeGlkLAogCQkJCQkJCQkJIGNvbnN0IGNoYXIgKmdpZCk7CkBAIC0xMTYsNiArMTIx LDExIEBAIHN0YXRpYyB2b2lkIHBnX2RlY29kZV9zdHJlYW1fbWVzc2FnZShMb2dpY2FsRGVjb2Rp bmdDb250ZXh0ICpjdHgsCiAJCQkJCQkJCQkgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLCBYTG9nUmVj UHRyIG1lc3NhZ2VfbHNuLAogCQkJCQkJCQkJIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hh ciAqcHJlZml4LAogCQkJCQkJCQkJIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOworc3Rh dGljIHZvaWQgcGdfZGVjb2RlX3N0cmVhbV9kZGxtZXNzYWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRl eHQgKmN0eCwKKwkJCQkJCQkJCQlSZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbWVz c2FnZV9sc24sCisJCQkJCQkJCQkJYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVm aXgsCisJCQkJCQkJCQkJY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgs CisJCQkJCQkJCQkJU2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiBzdGF0aWMgdm9pZCBw Z19kZWNvZGVfc3RyZWFtX3RydW5jYXRlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJ CQkJCQkJCSAgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCQkJCQkJCQkJICBpbnQgbnJlbGF0aW9u cywgUmVsYXRpb24gcmVsYXRpb25zW10sCkBAIC0xNDEsNiArMTUxLDcgQEAgX1BHX291dHB1dF9w bHVnaW5faW5pdChPdXRwdXRQbHVnaW5DYWxsYmFja3MgKmNiKQogCWNiLT5maWx0ZXJfYnlfb3Jp Z2luX2NiID0gcGdfZGVjb2RlX2ZpbHRlcjsKIAljYi0+c2h1dGRvd25fY2IgPSBwZ19kZWNvZGVf c2h1dGRvd247CiAJY2ItPm1lc3NhZ2VfY2IgPSBwZ19kZWNvZGVfbWVzc2FnZTsKKwljYi0+ZGRs bWVzc2FnZV9jYiA9IHBnX2RlY29kZV9kZGxtZXNzYWdlOwogCWNiLT5maWx0ZXJfcHJlcGFyZV9j YiA9IHBnX2RlY29kZV9maWx0ZXJfcHJlcGFyZTsKIAljYi0+YmVnaW5fcHJlcGFyZV9jYiA9IHBn X2RlY29kZV9iZWdpbl9wcmVwYXJlX3R4bjsKIAljYi0+cHJlcGFyZV9jYiA9IHBnX2RlY29kZV9w cmVwYXJlX3R4bjsKQEAgLTE1Myw2ICsxNjQsNyBAQCBfUEdfb3V0cHV0X3BsdWdpbl9pbml0KE91 dHB1dFBsdWdpbkNhbGxiYWNrcyAqY2IpCiAJY2ItPnN0cmVhbV9jb21taXRfY2IgPSBwZ19kZWNv ZGVfc3RyZWFtX2NvbW1pdDsKIAljYi0+c3RyZWFtX2NoYW5nZV9jYiA9IHBnX2RlY29kZV9zdHJl YW1fY2hhbmdlOwogCWNiLT5zdHJlYW1fbWVzc2FnZV9jYiA9IHBnX2RlY29kZV9zdHJlYW1fbWVz c2FnZTsKKwljYi0+c3RyZWFtX2RkbG1lc3NhZ2VfY2IgPSBwZ19kZWNvZGVfc3RyZWFtX2RkbG1l c3NhZ2U7CiAJY2ItPnN0cmVhbV90cnVuY2F0ZV9jYiA9IHBnX2RlY29kZV9zdHJlYW1fdHJ1bmNh dGU7CiB9CiAKQEAgLTc0Nyw3ICs3NTksOCBAQCBwZ19kZWNvZGVfdHJ1bmNhdGUoTG9naWNhbERl Y29kaW5nQ29udGV4dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiBzdGF0aWMgdm9pZAog cGdfZGVjb2RlX21lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCQkJCSAgUmVv cmRlckJ1ZmZlclRYTiAqdHhuLCBYTG9nUmVjUHRyIGxzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAot CQkJCSAgY29uc3QgY2hhciAqcHJlZml4LCBTaXplIHN6LCBjb25zdCBjaGFyICptZXNzYWdlKQor CQkJCSAgY29uc3QgY2hhciAqcHJlZml4LCBTaXplIHN6LAorCQkJCSAgY29uc3QgY2hhciAqbWVz c2FnZSkKIHsKIAlPdXRwdXRQbHVnaW5QcmVwYXJlV3JpdGUoY3R4LCB0cnVlKTsKIAlhcHBlbmRT dHJpbmdJbmZvKGN0eC0+b3V0LCAibWVzc2FnZTogdHJhbnNhY3Rpb25hbDogJWQgcHJlZml4OiAl cywgc3o6ICV6dSBjb250ZW50OiIsCkBAIC03NTYsNiArNzY5LDE5IEBAIHBnX2RlY29kZV9tZXNz YWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAlPdXRwdXRQbHVnaW5Xcml0ZShjdHgs IHRydWUpOwogfQogCitzdGF0aWMgdm9pZAorcGdfZGVjb2RlX2RkbG1lc3NhZ2UoTG9naWNhbERl Y29kaW5nQ29udGV4dCAqY3R4LAorCQkJCSAgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLCBYTG9nUmVj UHRyIGxzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCSAgY29uc3QgY2hhciAqcHJlZml4LCBj b25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKKwkJCQkgIFNpemUgc3os IGNvbnN0IGNoYXIgKm1lc3NhZ2UpCit7CisJT3V0cHV0UGx1Z2luUHJlcGFyZVdyaXRlKGN0eCwg dHJ1ZSk7CisJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgIkRETCBtZXNzYWdlOiB0cmFuc2Fj dGlvbmFsOiAlZCBwcmVmaXg6ICVzIHJvbGU6ICVzLCBzZWFyY2hfcGF0aDogJXMsIHN6OiAlenUg Y29udGVudDoiLAorCQkJCQkgdHJhbnNhY3Rpb25hbCwgcHJlZml4LCByb2xlLCBzZWFyY2hfcGF0 aCwgc3opOworCWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oY3R4LT5vdXQsIG1lc3NhZ2UsIHN6KTsK KwlPdXRwdXRQbHVnaW5Xcml0ZShjdHgsIHRydWUpOworfQorCiBzdGF0aWMgdm9pZAogcGdfZGVj b2RlX3N0cmVhbV9zdGFydChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCiAJCQkJCSAgIFJl b3JkZXJCdWZmZXJUWE4gKnR4bikKQEAgLTkzNiw3ICs5NjIsOCBAQCBwZ19kZWNvZGVfc3RyZWFt X2NoYW5nZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCiBzdGF0aWMgdm9pZAogcGdfZGVj b2RlX3N0cmVhbV9tZXNzYWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJCSBS ZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbHNuLCBib29sIHRyYW5zYWN0aW9uYWws Ci0JCQkJCQkgY29uc3QgY2hhciAqcHJlZml4LCBTaXplIHN6LCBjb25zdCBjaGFyICptZXNzYWdl KQorCQkJCQkJIGNvbnN0IGNoYXIgKnByZWZpeCwgU2l6ZSBzeiwKKwkJCQkJCSBjb25zdCBjaGFy ICptZXNzYWdlKQogewogCU91dHB1dFBsdWdpblByZXBhcmVXcml0ZShjdHgsIHRydWUpOwogCkBA IC05NDgsNyArOTc1LDM1IEBAIHBnX2RlY29kZV9zdHJlYW1fbWVzc2FnZShMb2dpY2FsRGVjb2Rp bmdDb250ZXh0ICpjdHgsCiAJZWxzZQogCXsKIAkJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwg InN0cmVhbWluZyBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAlZCBwcmVmaXg6ICVzLCBzejogJXp1 IGNvbnRlbnQ6IiwKLQkJCQkJCSB0cmFuc2FjdGlvbmFsLCBwcmVmaXgsIHN6KTsKKwkJCQkJCQkg dHJhbnNhY3Rpb25hbCwgcHJlZml4LCBzeik7CisJCWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oY3R4 LT5vdXQsIG1lc3NhZ2UsIHN6KTsKKwl9CisKKwlPdXRwdXRQbHVnaW5Xcml0ZShjdHgsIHRydWUp OworfQorCisvKgorICogSW4gc3RyZWFtaW5nIG1vZGUsIHdlIGRvbid0IGRpc3BsYXkgdGhlIGNv bnRlbnRzIGZvciB0cmFuc2FjdGlvbmFsIG1lc3NhZ2VzCisgKiBhcyB0aGUgdHJhbnNhY3Rpb24g Y2FuIGFib3J0IGF0IGEgbGF0ZXIgcG9pbnQgaW4gdGltZS4gIFdlIGRvbid0IHdhbnQgdXNlcnMg dG8KKyAqIHNlZSB0aGUgbWVzc2FnZSBjb250ZW50cyB1bnRpbCB0aGUgdHJhbnNhY3Rpb24gaXMg Y29tbWl0dGVkLgorICovCitzdGF0aWMgdm9pZAorcGdfZGVjb2RlX3N0cmVhbV9kZGxtZXNzYWdl KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKKwkJCQkJCQlSZW9yZGVyQnVmZmVyVFhOICp0 eG4sIFhMb2dSZWNQdHIgbHNuLCBib29sIHRyYW5zYWN0aW9uYWwsCisJCQkJCQkJY29uc3QgY2hh ciAqcHJlZml4LCBjb25zdCBjaGFyICogcm9sZSwgY29uc3QgY2hhciAqIHNlYXJjaF9wYXRoLAor CQkJCQkJCVNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCit7CisJT3V0cHV0UGx1Z2luUHJl cGFyZVdyaXRlKGN0eCwgdHJ1ZSk7CisKKwlpZiAodHJhbnNhY3Rpb25hbCkKKwl7CisJCWFwcGVu ZFN0cmluZ0luZm8oY3R4LT5vdXQsICJzdHJlYW1pbmcgRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9u YWw6ICVkIHByZWZpeDogJXMgcm9sZTogJXMsIHNlYXJjaF9wYXRoOiAlcywgc3o6ICV6dSIsCisJ CQkJCQkgdHJhbnNhY3Rpb25hbCwgcHJlZml4LCByb2xlLCBzZWFyY2hfcGF0aCwgc3opOworCX0K KwllbHNlCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGN0eC0+b3V0LCAic3RyZWFtaW5nIERETCBt ZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAlZCBwcmVmaXg6ICVzIHJvbGU6ICVzLCBzZWFyY2hfcGF0 aDogJXMsIHN6OiAlenUgY29udGVudDoiLAorCQkJCQkJIHRyYW5zYWN0aW9uYWwsIHByZWZpeCwg cm9sZSwgc2VhcmNoX3BhdGgsIHN6KTsKIAkJYXBwZW5kQmluYXJ5U3RyaW5nSW5mbyhjdHgtPm91 dCwgbWVzc2FnZSwgc3opOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Jt Z3JkZXNjL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL01ha2VmaWxlCmlu ZGV4IGY4OGQ3MmZkODYuLmI4ZTI5ZThkZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9ybWdyZGVzYy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvTWFr ZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAgT0JKUyA9IFwKIAloYXNoZGVzYy5vIFwKIAloZWFwZGVz Yy5vIFwKIAlsb2dpY2FsbXNnZGVzYy5vIFwKKwlsb2dpY2FsZGRsbXNnZGVzYy5vIFwKIAlteGFj dGRlc2MubyBcCiAJbmJ0ZGVzYy5vIFwKIAlyZWxtYXBkZXNjLm8gXApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2xvZ2ljYWxkZGxtc2dkZXNjLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3Mvcm1ncmRlc2MvbG9naWNhbGRkbG1zZ2Rlc2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi43YTM1MmQ1NDBhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2xvZ2ljYWxkZGxtc2dkZXNjLmMKQEAgLTAsMCArMSw1NCBA QAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogbG9naWNhbGRkbG1zZ2Rlc2MuYworICoJICBy bWdyIGRlc2NyaXB0b3Igcm91dGluZXMgZm9yIHJlcGxpY2F0aW9uL2xvZ2ljYWwvZGRsbWVzc2Fn ZS5jCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDE1LTIwMjIsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkg IHNyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9sb2dpY2FsZGRsbXNnZGVzYy5jCisgKgorICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAi cmVwbGljYXRpb24vZGRsbWVzc2FnZS5oIgorCit2b2lkCitsb2dpY2FsZGRsbXNnX2Rlc2MoU3Ry aW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQoreworCWNoYXIJICAgKnJlYyA9 IFhMb2dSZWNHZXREYXRhKHJlY29yZCk7CisJdWludDgJCWluZm8gPSBYTG9nUmVjR2V0SW5mbyhy ZWNvcmQpICYgflhMUl9JTkZPX01BU0s7CisKKwlpZiAoaW5mbyA9PSBYTE9HX0xPR0lDQUxfRERM X01FU1NBR0UpCisJeworCQl4bF9sb2dpY2FsX2RkbF9tZXNzYWdlICp4bHJlYyA9ICh4bF9sb2dp Y2FsX2RkbF9tZXNzYWdlICopIHJlYzsKKwkJY2hhcgkgICAqcHJlZml4ID0geGxyZWMtPm1lc3Nh Z2U7CisJCWNoYXIgICAgICAgKnJvbGUgPSB4bHJlYy0+bWVzc2FnZSArIHhscmVjLT5wcmVmaXhf c2l6ZTsKKwkJY2hhciAgICAgICAqc2VhcmNoX3BhdGggPSB4bHJlYy0+bWVzc2FnZSArIHhscmVj LT5wcmVmaXhfc2l6ZSArIHhscmVjLT5yb2xlX3NpemU7CisJCWNoYXIJICAgKm1lc3NhZ2UgPSB4 bHJlYy0+bWVzc2FnZSArIHhscmVjLT5wcmVmaXhfc2l6ZSArIHhscmVjLT5yb2xlX3NpemUgKyB4 bHJlYy0+c2VhcmNoX3BhdGhfc2l6ZTsKKwkJY2hhcgkgICAqc2VwID0gIiI7CisKKwkJQXNzZXJ0 KHByZWZpeFt4bHJlYy0+cHJlZml4X3NpemVdICE9ICdcMCcpOworCisJCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAiJXMsIHByZWZpeCBcIiVzXCI7IHJvbGUgXCIlc1wiOyBzZWFyY2hfcGF0aCBcIiVz XCI7IHBheWxvYWQgKCV6dSBieXRlcyk6ICIsCisJCQkJCQkgeGxyZWMtPnRyYW5zYWN0aW9uYWwg PyAidHJhbnNhY3Rpb25hbCIgOiAibm9uLXRyYW5zYWN0aW9uYWwiLAorCQkJCQkJIHByZWZpeCwg cm9sZSwgc2VhcmNoX3BhdGgsIHhscmVjLT5tZXNzYWdlX3NpemUpOworCQkvKiBXcml0ZSBtZXNz YWdlIHBheWxvYWQgYXMgYSBzZXJpZXMgb2YgaGV4IGJ5dGVzICovCisJCWZvciAoaW50IGNudCA9 IDA7IGNudCA8IHhscmVjLT5tZXNzYWdlX3NpemU7IGNudCsrKQorCQl7CisJCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgIiVzJTAyWCIsIHNlcCwgKHVuc2lnbmVkIGNoYXIpIG1lc3NhZ2VbY250XSk7 CisJCQlzZXAgPSAiICI7CisJCX0KKwl9Cit9CisKK2NvbnN0IGNoYXIgKgorbG9naWNhbGRkbG1z Z19pZGVudGlmeSh1aW50OCBpbmZvKQoreworCWlmICgoaW5mbyAmIH5YTFJfSU5GT19NQVNLKSA9 PSBYTE9HX0xPR0lDQUxfRERMX01FU1NBR0UpCisJCXJldHVybiAiRERMIE1FU1NBR0UiOworCisJ cmV0dXJuIE5VTEw7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9y bWdyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9ybWdyLmMKaW5kZXggOGVkNjkyNDRl My4uNmRiOWE1OTNiOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vcm1n ci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3JtZ3IuYwpAQCAtMjksNiArMjks NyBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2RlY29k ZS5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL21lc3NhZ2UuaCIKKyNpbmNsdWRlICJyZXBsaWNh dGlvbi9kZGxtZXNzYWdlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vb3JpZ2luLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9zdGFuZGJ5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCBiOGFiMWQ4MTQxLi5mYWQyMWEzMWQw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0xMjA2LDMgKzEyMDYsNTUg QEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJU1JGX1JF VFVSTl9ET05FKGZ1bmNjdHgpOwogfQorCisvKgorICogQ2hlY2tzIGlmIERETCBvbiByZWxhdGlv biAocmVsaWQpIG5lZWQgeGxvZyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbgorICovCitib29sCitk ZGxfbmVlZF94bG9nKE9pZCByZWxpZCwgYm9vbCBmb3JBbGxUYWJQdWJPbmx5LCBib29sIGlzVG9w TGV2ZWwpCit7CisJTGlzdCAqYWxsVGFibGVQdWJzID0gTklMOworCUxpc3QgKnRhYmxlUHVicyA9 IE5JTDsKKwlMaXN0Q2VsbCAqbGM7CisKKwkvKiBPbmx5IHJlcGxpY2F0ZSB0b3BsZXZlbCBEREwg Y29tbWFuZCAqLworCWlmICghaXNUb3BMZXZlbCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChyZWxp ZCA9PSBJbnZhbGlkT2lkICYmICFmb3JBbGxUYWJQdWJPbmx5KQorCQlyZXR1cm4gZmFsc2U7CisK KwkvKgorCSAqIExvZyB0aGUgRERMIGNvbW1hbmQgaWYKKwkgKiB0aGVyZSBpcyBhbnkgRk9SIEFM TCBUQUJMRVMgcHVibGljYXRpb24gd2l0aCBwdWJkZGxfZGF0YWJhc2Ugb24KKwkgKiBvcgorCSAq IHRoaXMgVEFCTEUgYmVsb25ncyB0byBhbnkgbm9uIEZPUiBBTEwgcHVibGljYXRpb25zIHdpdGgg cHViZGRsX3RhYmxlIG9uCisJICovCisJYWxsVGFibGVQdWJzID0gR2V0QWxsVGFibGVzUHVibGlj YXRpb25zKCk7CisJZm9yZWFjaChsYywgYWxsVGFibGVQdWJzKQorCXsKKwkJT2lkIHB1YmlkID0g bGZpcnN0X29pZChsYyk7CisJCVB1YmxpY2F0aW9uICpwdWIgPSBHZXRQdWJsaWNhdGlvbihwdWJp ZCk7CisKKwkJaWYgKHB1Yi0+cHViYWN0aW9ucy5wdWJkZGxfZGF0YWJhc2UpCisJCQlyZXR1cm4g dHJ1ZTsKKwl9CisKKwkvKgorCSAqIElmIGZvckFsbFRhYlB1Yk9ubHkgaXMgdHJ1ZSAoaS5lLiBk YXRhYmFzZSBsZXZlbCByZXBsaWNhdGlvbiBpcyByZXF1aXJlZCBmb3IgdGhlIERETAorCSAqIHRv IGJlIGxvZ2dlZCksIHdlIGNhbiBiYWlsIG5vdyBzaW5jZSBubyBwdWJsaWNhdGlvbiBoYXMgYmVl biBmb3VuZCB3aXRoIHB1YmRkbF9kYXRhYmFzZSBvbgorCSAqLworCWlmIChmb3JBbGxUYWJQdWJP bmx5KQorCQlyZXR1cm4gZmFsc2U7CisKKwl0YWJsZVB1YnMgPSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhyZWxpZCk7CisJZm9yZWFjaChsYywgdGFibGVQdWJzKQorCXsKKwkJT2lkIHB1YmlkID0g bGZpcnN0X29pZChsYyk7CisJCVB1YmxpY2F0aW9uICpwdWIgPSBHZXRQdWJsaWNhdGlvbihwdWJp ZCk7CisKKwkJaWYgKHB1Yi0+cHViYWN0aW9ucy5wdWJkZGxfdGFibGUpCisJCQlyZXR1cm4gdHJ1 ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4 IDJkZTBlYmFjZWMuLjZkMTQ4Nzk1MWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC04 MCw2ICs4MCw3IEBACiAjaW5jbHVkZSAicGFydGl0aW9uaW5nL3BhcnRib3VuZHMuaCIKICNpbmNs dWRlICJwYXJ0aXRpb25pbmcvcGFydGRlc2MuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNs dWRlICJyZXBsaWNhdGlvbi9kZGxtZXNzYWdlLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRl RGVmaW5lLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUg InJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCkBAIC0xMzMyLDEzICsxMzMzLDE0IEBAIERyb3BFcnJv ck1zZ1dyb25nVHlwZShjb25zdCBjaGFyICpyZWxuYW1lLCBjaGFyIHdyb25na2luZCwgY2hhciBy aWdodGtpbmQpCiAgKgkJRFJPUCBNQVRFUklBTElaRUQgVklFVywgRFJPUCBGT1JFSUdOIFRBQkxF CiAgKi8KIHZvaWQKLVJlbW92ZVJlbGF0aW9ucyhEcm9wU3RtdCAqZHJvcCkKK1JlbW92ZVJlbGF0 aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpkcm9wLCBib29sIGlzVG9wTGV2ZWwp CiB7CiAJT2JqZWN0QWRkcmVzc2VzICpvYmplY3RzOwogCWNoYXIJCXJlbGtpbmQ7CiAJTGlzdENl bGwgICAqY2VsbDsKIAlpbnQJCQlmbGFncyA9IDA7CiAJTE9DS01PREUJbG9ja21vZGUgPSBBY2Nl c3NFeGNsdXNpdmVMb2NrOworCWJvb2wJCWRkbHhsb2cgPSBYTG9nTG9naWNhbEluZm9BY3RpdmUo KTsKIAogCS8qIERST1AgQ09OQ1VSUkVOVExZIHVzZXMgYSB3ZWFrZXIgbG9jaywgYW5kIGhhcyBz b21lIHJlc3RyaWN0aW9ucyAqLwogCWlmIChkcm9wLT5jb25jdXJyZW50KQpAQCAtMTQzNywxMCAr MTQzOSwzNyBAQCBSZW1vdmVSZWxhdGlvbnMoRHJvcFN0bXQgKmRyb3ApCiAJCS8qIE5vdCB0aGVy ZT8gKi8KIAkJaWYgKCFPaWRJc1ZhbGlkKHJlbE9pZCkpCiAJCXsKKwkJCWRkbHhsb2cgPSBmYWxz ZTsKIAkJCURyb3BFcnJvck1zZ05vbkV4aXN0ZW50KHJlbCwgcmVsa2luZCwgZHJvcC0+bWlzc2lu Z19vayk7CiAJCQljb250aW51ZTsKIAkJfQogCisJCS8qCisJCSAqIE9ubHkgbG9nIERST1AgUkVM QVRJT04gY21kIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGlmCisJCSAqIHRoZXJlIGlzIGFueSBG T1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiB3aXRoIHB1YmRkbF9kYXRhYmFzZSBvbiBvcgorCQkg KiBldmVyeSByZWxhdGlvbiB0byBiZSBkcm9wcGVkIGJlbG9uZ3MgdG8gYW55IG5vbiBGT1IgQUxM IHB1YmxpY2F0aW9ucyB3aXRoIHB1YmRkbF90YWJsZSBvbgorCQkgKi8KKwkJaWYgKGRkbHhsb2cp CisJCXsKKwkJCU9pZCB0YWJsZU9pZCA9IEludmFsaWRPaWQ7CisKKwkJCWlmIChyZWxraW5kID09 IFJFTEtJTkRfUkVMQVRJT04pCisJCQkJdGFibGVPaWQgPSByZWxPaWQ7CisJCQllbHNlIGlmIChy ZWxraW5kID09IFJFTEtJTkRfSU5ERVgpCisJCQkJdGFibGVPaWQgPSBJbmRleEdldFJlbGF0aW9u KHJlbE9pZCwgdHJ1ZSk7CisJCQkvKgorCQkJICogT3RoZXIgcmVsYXRpb24gdHlwZXMgcmVxdWly ZSBkYXRhYmFzZSBsZXZlbCBkZGwgcmVwbGljYXRpb24gYW5kIGFyZQorCQkJICogYWxyZWFkeSBs b2dnZWQgaW4gTG9nTG9naWNhbERETENvbW1hbmQoKSBpZiBuZWVkZWQuCisJCQkgKi8KKwkJCWVs c2UKKwkJCQlkZGx4bG9nID0gZmFsc2U7CisKKwkJCS8qIERST1AgUkVMQVRJT04gb3IgSU5ERVgg YXJlIGFsbG93ZWQgaW4gdGFibGUgbGV2ZWwgRERMIHJlcGxpY2F0aW9uICovCisJCQlpZiAodGFi bGVPaWQgIT0gSW52YWxpZE9pZCAmJgorCQkJCSFkZGxfbmVlZF94bG9nKHRhYmxlT2lkLCBmYWxz ZSwgaXNUb3BMZXZlbCkpCisJCQkJZGRseGxvZyA9IGZhbHNlOworCQl9CisKIAkJLyoKIAkJICog RGVjaWRlIGlmIGNvbmN1cnJlbnQgbW9kZSBuZWVkcyB0byBiZSB1c2VkIGhlcmUgb3Igbm90LiAg VGhlCiAJCSAqIGNhbGxiYWNrIHJldHJpZXZlZCB0aGUgcmVsJ3MgcGVyc2lzdGVuY2UgZm9yIHVz LgpAQCAtMTQ4NCw2ICsxNTEzLDE4IEBAIFJlbW92ZVJlbGF0aW9ucyhEcm9wU3RtdCAqZHJvcCkK IAkJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZvYmosIG9iamVjdHMpOwogCX0KIAorCS8qIExv ZyB0aGUgRHJvcCBjb21tYW5kIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uICovCisJaWYgKGRkbHhs b2cpCisJeworCQlib29sIHRyYW5zYWN0aW9uYWwgPSB0cnVlOworCQljb25zdCBjaGFyKiBwcmVm aXggPSAiIjsKKwkJTG9nTG9naWNhbERETE1lc3NhZ2UocHJlZml4LAorCQkJCQkJCSBHZXRVc2Vy SWQoKSwKKwkJCQkJCQkgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJIHN0cmxlbihwc3Rh dGUtPnBfc291cmNldGV4dCksCisJCQkJCQkJIHRyYW5zYWN0aW9uYWwpOworCX0KKwogCXBlcmZv cm1NdWx0aXBsZURlbGV0aW9ucyhvYmplY3RzLCBkcm9wLT5iZWhhdmlvciwgZmxhZ3MpOwogCiAJ ZnJlZV9vYmplY3RfYWRkcmVzc2VzKG9iamVjdHMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvTWFrZWZpbGUKaW5kZXggYzRlMmZkZWI3MS4uZjNlZWI2NzMxMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZQorKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCkBAIC0xNiw2ICsxNiw3IEBAIG92ZXJyaWRl IENQUEZMQUdTIDo9IC1JJChzcmNkaXIpICQoQ1BQRkxBR1MpCiAKIE9CSlMgPSBcCiAJZGVjb2Rl Lm8gXAorCWRkbG1lc3NhZ2Uub1wKIAlsYXVuY2hlci5vIFwKIAlsb2dpY2FsLm8gXAogCWxvZ2lj YWxmdW5jcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv ZGRsbWVzc2FnZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZGxtZXNzYWdl LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjkzNTczMDc5YQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGRsbWVzc2Fn ZS5jCkBAIC0wLDAgKzEsOTkgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGRkbG1lc3Nh Z2UuYworICoJICBMb2dpY2FsIERETCBtZXNzYWdlcy4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIw MjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklD QVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZGxtZXNzYWdlLmMK KyAqCisgKiBOT1RFUworICoKKyAqIExvZ2ljYWwgRERMIG1lc3NhZ2VzIGFsbG93IFhMT0cgbG9n Z2luZyBvZiBEREwgY29tbWFuZCBzdHJpbmdzIHRoYXQKKyAqIGdldCBwYXNzZWQgdG8gdGhlIGxv Z2ljYWwgZGVjb2RpbmcgcGx1Z2luLiBJbiBub3JtYWwgWExPRyBwcm9jZXNzaW5nIHRoZXkKKyAq IGFyZSBzYW1lIGFzIE5PT1AuCisgKgorICogU2ltaWFybCB0byB0aGUgZ2VuZXJpYyBsb2dpY2Fs IG1lc3NhZ2VzLCBUaGVzZSBEREwgbWVzc2FnZXMgY2FuIGJlIGVpdGhlcgorICogdHJhbnNhY3Rp b25hbCBvciBub24tdHJhbnNhY3Rpb25hbC4gTm90ZSBieSBkZWZhdWx0IERETHMgaW4gUG9zdGdy ZVNRTCBhcmUKKyAqIHRyYW5zYWN0aW9uYWwuCisgKiBUcmFuc2FjdGlvbmFsIG1lc3NhZ2VzIGFy ZSBwYXJ0IG9mIGN1cnJlbnQgdHJhbnNhY3Rpb24gYW5kIHdpbGwgYmUgc2VudCB0bworICogZGVj b2RpbmcgcGx1Z2luIHVzaW5nIGluIGEgc2FtZSB3YXkgYXMgRE1MIG9wZXJhdGlvbnMuCisgKiBO b24tdHJhbnNhY3Rpb25hbCBtZXNzYWdlcyBhcmUgc2VudCB0byB0aGUgcGx1Z2luIGF0IHRoZSB0 aW1lIHdoZW4gdGhlCisgKiBsb2dpY2FsIGRlY29kaW5nIHJlYWRzIHRoZW0gZnJvbSBYTE9HLiBU aGlzIGFsc28gbWVhbnMgdGhhdCB0cmFuc2FjdGlvbmFsCisgKiBtZXNzYWdlcyB3b24ndCBiZSBk ZWxpdmVyZWQgaWYgdGhlIHRyYW5zYWN0aW9uIHdhcyByb2xsZWQgYmFjayBidXQgdGhlCisgKiBu b24tdHJhbnNhY3Rpb25hbCBvbmUgd2lsbCBhbHdheXMgYmUgZGVsaXZlcmVkLgorICoKKyAqIEV2 ZXJ5IG1lc3NhZ2UgY2FycmllcyBwcmVmaXggdG8gYXZvaWQgY29uZmxpY3RzIGJldHdlZW4gZGlm ZmVyZW50IGRlY29kaW5nCisgKiBwbHVnaW5zLiBUaGUgcGx1Z2luIGF1dGhvcnMgbXVzdCB0YWtl IGV4dHJhIGNhcmUgdG8gdXNlIHVuaXF1ZSBwcmVmaXgsCisgKiBnb29kIG9wdGlvbnMgc2VlbXMg dG8gYmUgZm9yIGV4YW1wbGUgdG8gdXNlIHRoZSBuYW1lIG9mIHRoZSBleHRlbnNpb24uCisgKgor ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNp bmNsdWRlICJhY2Nlc3MveGFjdC5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCisj aW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNp bmNsdWRlICJub2Rlcy9leGVjbm9kZXMuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fs LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vZGRsbWVzc2FnZS5oIgorI2luY2x1ZGUgInV0aWxz L21lbXV0aWxzLmgiCisKKy8qCisgKiBXcml0ZSBsb2dpY2FsIGRlY29kaW5nIERETCBtZXNzYWdl IGludG8gWExvZy4KKyAqLworWExvZ1JlY1B0cgorTG9nTG9naWNhbERETE1lc3NhZ2UoY29uc3Qg Y2hhciAqcHJlZml4LCBPaWQgcm9sZW9pZCwgY29uc3QgY2hhciAqbWVzc2FnZSwKKwkJCQkJIHNp emVfdCBzaXplLCBib29sIHRyYW5zYWN0aW9uYWwpCit7CisJeGxfbG9naWNhbF9kZGxfbWVzc2Fn ZSB4bHJlYzsKKwljb25zdCBjaGFyICpyb2xlOworCisJcm9sZSA9ICBHZXRVc2VyTmFtZUZyb21J ZChyb2xlb2lkLCBmYWxzZSk7CisKKwkvKgorCSAqIEZvcmNlIHhpZCB0byBiZSBhbGxvY2F0ZWQg aWYgd2UncmUgZW1pdHRpbmcgYSB0cmFuc2FjdGlvbmFsIG1lc3NhZ2UuCisJICovCisJaWYgKHRy YW5zYWN0aW9uYWwpCisJeworCQlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCQlHZXRD dXJyZW50VHJhbnNhY3Rpb25JZCgpOworCX0KKworCXhscmVjLmRiSWQgPSBNeURhdGFiYXNlSWQ7 CisJeGxyZWMudHJhbnNhY3Rpb25hbCA9IHRyYW5zYWN0aW9uYWw7CisJLyogdHJhaWxpbmcgemVy byBpcyBjcml0aWNhbDsgc2VlIGxvZ2ljYWxkZGxtc2dfZGVzYyAqLworCXhscmVjLnByZWZpeF9z aXplID0gc3RybGVuKHByZWZpeCkgKyAxOworCXhscmVjLnJvbGVfc2l6ZSA9IHN0cmxlbihyb2xl KSArIDE7CisJeGxyZWMuc2VhcmNoX3BhdGhfc2l6ZSA9IHN0cmxlbihuYW1lc3BhY2Vfc2VhcmNo X3BhdGgpICsgMTsKKwl4bHJlYy5tZXNzYWdlX3NpemUgPSBzaXplOworCisJWExvZ0JlZ2luSW5z ZXJ0KCk7CisJWExvZ1JlZ2lzdGVyRGF0YSgoY2hhciAqKSAmeGxyZWMsIFNpemVPZkxvZ2ljYWxE RExNZXNzYWdlKTsKKwlYTG9nUmVnaXN0ZXJEYXRhKHVuY29uc3RpZnkoY2hhciAqLCBwcmVmaXgp LCB4bHJlYy5wcmVmaXhfc2l6ZSk7CisJWExvZ1JlZ2lzdGVyRGF0YSh1bmNvbnN0aWZ5KGNoYXIg Kiwgcm9sZSksIHhscmVjLnJvbGVfc2l6ZSk7CisJWExvZ1JlZ2lzdGVyRGF0YShuYW1lc3BhY2Vf c2VhcmNoX3BhdGgsIHhscmVjLnNlYXJjaF9wYXRoX3NpemUpOworCVhMb2dSZWdpc3RlckRhdGEo dW5jb25zdGlmeShjaGFyICosIG1lc3NhZ2UpLCBzaXplKTsKKworCS8qIGFsbG93IG9yaWdpbiBm aWx0ZXJpbmcgKi8KKwlYTG9nU2V0UmVjb3JkRmxhZ3MoWExPR19JTkNMVURFX09SSUdJTik7CisK KwlyZXR1cm4gWExvZ0luc2VydChSTV9MT0dJQ0FMRERMTVNHX0lELCBYTE9HX0xPR0lDQUxfRERM X01FU1NBR0UpOworfQorCisvKgorICogUmVkbyBpcyBiYXNpY2FsbHkganVzdCBub29wIGZvciBs b2dpY2FsIGRlY29kaW5nIGRkbCBtZXNzYWdlcy4KKyAqLwordm9pZAorbG9naWNhbGRkbG1zZ19y ZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQoreworCXVpbnQ4CQlpbmZvID0gWExvZ1JlY0dl dEluZm8ocmVjb3JkKSAmIH5YTFJfSU5GT19NQVNLOworCisJaWYgKGluZm8gIT0gWExPR19MT0dJ Q0FMX0RETF9NRVNTQUdFKQorCQllbG9nKFBBTklDLCAibG9naWNhbGRkbG1zZ19yZWRvOiB1bmtu b3duIG9wIGNvZGUgJXUiLCBpbmZvKTsKKworCS8qIFRoaXMgaXMgb25seSBpbnRlcmVzdGluZyBm b3IgbG9naWNhbCBkZWNvZGluZywgc2VlIGRlY29kZS5jLiAqLworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggYWEyNDI3YmE3My4uMDM0YzdmMjQxMyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCkBAIC0zNiw2ICszNiw3IEBA CiAjaW5jbHVkZSAiYWNjZXNzL3hsb2d1dGlscy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29u dHJvbC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2RlY29kZS5oIgorI2luY2x1ZGUgInJlcGxp Y2F0aW9uL2RkbG1lc3NhZ2UuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vbWVzc2FnZS5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL29y aWdpbi5oIgpAQCAtNjAzLDYgKzYwNCw2MSBAQCBsb2dpY2FsbXNnX2RlY29kZShMb2dpY2FsRGVj b2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikKIAkJCQkJCQkgIG1lc3Nh Z2UtPm1lc3NhZ2UgKyBtZXNzYWdlLT5wcmVmaXhfc2l6ZSk7CiB9CiAKKy8qCisgKiBIYW5kbGUg cm1nciBMT0dJQ0FMRERMTVNHX0lEIHJlY29yZHMgZm9yIERlY29kZVJlY29yZEludG9SZW9yZGVy QnVmZmVyKCkuCisgKi8KK3ZvaWQKK2xvZ2ljYWxkZGxtc2dfZGVjb2RlKExvZ2ljYWxEZWNvZGlu Z0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQoreworCVNuYXBCdWlsZCAgKmJ1 aWxkZXIgPSBjdHgtPnNuYXBzaG90X2J1aWxkZXI7CisJWExvZ1JlYWRlclN0YXRlICpyID0gYnVm LT5yZWNvcmQ7CisJVHJhbnNhY3Rpb25JZCB4aWQgPSBYTG9nUmVjR2V0WGlkKHIpOworCXVpbnQ4 CQlpbmZvID0gWExvZ1JlY0dldEluZm8ocikgJiB+WExSX0lORk9fTUFTSzsKKwlSZXBPcmlnaW5J ZCBvcmlnaW5faWQgPSBYTG9nUmVjR2V0T3JpZ2luKHIpOworCVNuYXBzaG90CXNuYXBzaG90Owor CXhsX2xvZ2ljYWxfZGRsX21lc3NhZ2UgKm1lc3NhZ2U7CisKKwlpZiAoaW5mbyAhPSBYTE9HX0xP R0lDQUxfRERMX01FU1NBR0UpCisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIFJNX0xPR0lDQUxE RExNU0dfSUQgcmVjb3JkIHR5cGU6ICV1IiwgaW5mbyk7CisKKwlSZW9yZGVyQnVmZmVyUHJvY2Vz c1hpZChjdHgtPnJlb3JkZXIsIFhMb2dSZWNHZXRYaWQociksIGJ1Zi0+b3JpZ3B0cik7CisKKwkv KgorCSAqIElmIHdlIGRvbid0IGhhdmUgc25hcHNob3Qgb3Igd2UgYXJlIGp1c3QgZmFzdC1mb3J3 YXJkaW5nLCB0aGVyZSBpcyBubworCSAqIHBvaW50IGluIGRlY29kaW5nIGRkbCBtZXNzYWdlcy4K KwkgKi8KKwlpZiAoU25hcEJ1aWxkQ3VycmVudFN0YXRlKGJ1aWxkZXIpIDwgU05BUEJVSUxEX0ZV TExfU05BUFNIT1QgfHwKKwkJY3R4LT5mYXN0X2ZvcndhcmQpCisJCXJldHVybjsKKworCW1lc3Nh Z2UgPSAoeGxfbG9naWNhbF9kZGxfbWVzc2FnZSAqKSBYTG9nUmVjR2V0RGF0YShyKTsKKworCWlm IChtZXNzYWdlLT5kYklkICE9IGN0eC0+c2xvdC0+ZGF0YS5kYXRhYmFzZSB8fAorCQlGaWx0ZXJC eU9yaWdpbihjdHgsIG9yaWdpbl9pZCkpCisJCXJldHVybjsKKworCWlmIChtZXNzYWdlLT50cmFu c2FjdGlvbmFsICYmCisJCSFTbmFwQnVpbGRQcm9jZXNzQ2hhbmdlKGJ1aWxkZXIsIHhpZCwgYnVm LT5vcmlncHRyKSkKKwkJcmV0dXJuOworCWVsc2UgaWYgKCFtZXNzYWdlLT50cmFuc2FjdGlvbmFs ICYmCisJCQkgKFNuYXBCdWlsZEN1cnJlbnRTdGF0ZShidWlsZGVyKSAhPSBTTkFQQlVJTERfQ09O U0lTVEVOVCB8fAorCQkJICBTbmFwQnVpbGRYYWN0TmVlZHNTa2lwKGJ1aWxkZXIsIGJ1Zi0+b3Jp Z3B0cikpKQorCQlyZXR1cm47CisKKwlzbmFwc2hvdCA9IFNuYXBCdWlsZEdldE9yQnVpbGRTbmFw c2hvdChidWlsZGVyLCB4aWQpOworCVJlb3JkZXJCdWZmZXJRdWV1ZURETE1lc3NhZ2UoY3R4LT5y ZW9yZGVyLCB4aWQsIHNuYXBzaG90LCBidWYtPmVuZHB0ciwKKwkJCQkJCQkgIG1lc3NhZ2UtPnRy YW5zYWN0aW9uYWwsCisJCQkJCQkJICBtZXNzYWdlLT5tZXNzYWdlLAorCQkJCQkJCSAgLyogZmly c3QgcGFydCBvZiBtZXNzYWdlIGlzIHByZWZpeCAqLworCQkJCQkJCSAgbWVzc2FnZS0+bWVzc2Fn ZSArIG1lc3NhZ2UtPnByZWZpeF9zaXplLAorCQkJCQkJCSAgLyogU2Vjb25kIHBhcnQgb2YgbWVz c2FnZSBpcyByb2xlKi8KKwkJCQkJCQkgIG1lc3NhZ2UtPm1lc3NhZ2UgKyBtZXNzYWdlLT5wcmVm aXhfc2l6ZSArIG1lc3NhZ2UtPnJvbGVfc2l6ZSwKKwkJCQkJCQkgIC8qIFRoaXJkIHBhcnQgb2Yg bWVzc2FnZSBpcyBzZWFyY2hfcGF0aCAqLworCQkJCQkJCSAgbWVzc2FnZS0+bWVzc2FnZV9zaXpl LAorCQkJCQkJCSAgbWVzc2FnZS0+bWVzc2FnZSArIG1lc3NhZ2UtPnByZWZpeF9zaXplICsKKwkJ CQkJCQkgIG1lc3NhZ2UtPnJvbGVfc2l6ZSArIG1lc3NhZ2UtPnNlYXJjaF9wYXRoX3NpemUpOwor fQorCiAvKgogICogQ29uc29saWRhdGVkIGNvbW1pdCByZWNvcmQgaGFuZGxpbmcgYmV0d2VlbiB0 aGUgZGlmZmVyZW50IGZvcm0gb2YgY29tbWl0CiAgKiByZWNvcmRzLgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYwppbmRleCA2MjVhN2Y0MjczLi4zMDA0ZjAyNDMzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYwpAQCAtNzMsNiArNzMs MTAgQEAgc3RhdGljIHZvaWQgdHJ1bmNhdGVfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVyICpjYWNo ZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogc3RhdGljIHZvaWQgbWVzc2FnZV9jYl93cmFwcGVy KFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJCQkJCQkJICAg WExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAogCQkJCQkJCSAgIGNv bnN0IGNoYXIgKnByZWZpeCwgU2l6ZSBtZXNzYWdlX3NpemUsIGNvbnN0IGNoYXIgKm1lc3NhZ2Up Oworc3RhdGljIHZvaWQgZGRsbWVzc2FnZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hl LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCisJCQkJCQkJCSAgWExvZ1JlY1B0ciBtZXNzYWdlX2xz biwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnByZWZpeCwgY29u c3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsCisJCQkJCQkJCSAgU2l6ZSBt ZXNzYWdlX3NpemUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogCiAvKiBzdHJlYW1pbmcgY2FsbGJh Y2tzICovCiBzdGF0aWMgdm9pZCBzdHJlYW1fc3RhcnRfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVy ICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLApAQCAtOTAsNiArOTQsMTAgQEAgc3RhdGlj IHZvaWQgc3RyZWFtX2NoYW5nZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9y ZGVyQnVmZmVyVFhOICp0eG4KIHN0YXRpYyB2b2lkIHN0cmVhbV9tZXNzYWdlX2NiX3dyYXBwZXIo UmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJCQkJCSAg WExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAogCQkJCQkJCQkJICBj b25zdCBjaGFyICpwcmVmaXgsIFNpemUgbWVzc2FnZV9zaXplLCBjb25zdCBjaGFyICptZXNzYWdl KTsKK3N0YXRpYyB2b2lkIHN0cmVhbV9kZGxtZXNzYWdlX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZl ciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKKwkJCQkJCQkJCQkgWExvZ1JlY1B0ciBt ZXNzYWdlX2xzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCQkJCSBjb25zdCBjaGFyICpw cmVmaXgsIGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCQkJ CQkJCSBTaXplIG1lc3NhZ2Vfc2l6ZSwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiBzdGF0aWMgdm9p ZCBzdHJlYW1fdHJ1bmNhdGVfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVyICpjYWNoZSwgUmVvcmRl ckJ1ZmZlclRYTiAqdHhuLAogCQkJCQkJCQkJICAgaW50IG5yZWxhdGlvbnMsIFJlbGF0aW9uIHJl bGF0aW9uc1tdLCBSZW9yZGVyQnVmZmVyQ2hhbmdlICpjaGFuZ2UpOwogCkBAIC0yMTgsNiArMjI2 LDcgQEAgU3RhcnR1cERlY29kaW5nQ29udGV4dChMaXN0ICpvdXRwdXRfcGx1Z2luX29wdGlvbnMs CiAJY3R4LT5yZW9yZGVyLT5hcHBseV90cnVuY2F0ZSA9IHRydW5jYXRlX2NiX3dyYXBwZXI7CiAJ Y3R4LT5yZW9yZGVyLT5jb21taXQgPSBjb21taXRfY2Jfd3JhcHBlcjsKIAljdHgtPnJlb3JkZXIt Pm1lc3NhZ2UgPSBtZXNzYWdlX2NiX3dyYXBwZXI7CisJY3R4LT5yZW9yZGVyLT5kZGxtZXNzYWdl ID0gZGRsbWVzc2FnZV9jYl93cmFwcGVyOwogCiAJLyoKIAkgKiBUbyBzdXBwb3J0IHN0cmVhbWlu Zywgd2UgcmVxdWlyZSBzdGFydC9zdG9wL2Fib3J0L2NvbW1pdC9jaGFuZ2UKQEAgLTIzNCw2ICsy NDMsNyBAQCBTdGFydHVwRGVjb2RpbmdDb250ZXh0KExpc3QgKm91dHB1dF9wbHVnaW5fb3B0aW9u cywKIAkJKGN0eC0+Y2FsbGJhY2tzLnN0cmVhbV9jb21taXRfY2IgIT0gTlVMTCkgfHwKIAkJKGN0 eC0+Y2FsbGJhY2tzLnN0cmVhbV9jaGFuZ2VfY2IgIT0gTlVMTCkgfHwKIAkJKGN0eC0+Y2FsbGJh Y2tzLnN0cmVhbV9tZXNzYWdlX2NiICE9IE5VTEwpIHx8CisJCShjdHgtPmNhbGxiYWNrcy5zdHJl YW1fZGRsbWVzc2FnZV9jYiAhPSBOVUxMKSB8fAogCQkoY3R4LT5jYWxsYmFja3Muc3RyZWFtX3Ry dW5jYXRlX2NiICE9IE5VTEwpOwogCiAJLyoKQEAgLTI1MSw2ICsyNjEsNyBAQCBTdGFydHVwRGVj b2RpbmdDb250ZXh0KExpc3QgKm91dHB1dF9wbHVnaW5fb3B0aW9ucywKIAljdHgtPnJlb3JkZXIt PnN0cmVhbV9jb21taXQgPSBzdHJlYW1fY29tbWl0X2NiX3dyYXBwZXI7CiAJY3R4LT5yZW9yZGVy LT5zdHJlYW1fY2hhbmdlID0gc3RyZWFtX2NoYW5nZV9jYl93cmFwcGVyOwogCWN0eC0+cmVvcmRl ci0+c3RyZWFtX21lc3NhZ2UgPSBzdHJlYW1fbWVzc2FnZV9jYl93cmFwcGVyOworCWN0eC0+cmVv cmRlci0+c3RyZWFtX2RkbG1lc3NhZ2UgPSBzdHJlYW1fZGRsbWVzc2FnZV9jYl93cmFwcGVyOwog CWN0eC0+cmVvcmRlci0+c3RyZWFtX3RydW5jYXRlID0gc3RyZWFtX3RydW5jYXRlX2NiX3dyYXBw ZXI7CiAKIApAQCAtMTIyMCw2ICsxMjMxLDQ0IEBAIG1lc3NhZ2VfY2Jfd3JhcHBlcihSZW9yZGVy QnVmZmVyICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCWVycm9yX2NvbnRleHRfc3Rh Y2sgPSBlcnJjYWxsYmFjay5wcmV2aW91czsKIH0KIAorc3RhdGljIHZvaWQKK2RkbG1lc3NhZ2Vf Y2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVyICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAor CQkJCQkgIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24sIGJvb2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkJ ICBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnJvbGUsCisJCQkJCSAgY29uc3QgY2hh ciAqc2VhcmNoX3BhdGgsIFNpemUgbWVzc2FnZV9zaXplLAorCQkJCQkgIGNvbnN0IGNoYXIgKm1l c3NhZ2UpCit7CisJTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4ID0gY2FjaGUtPnByaXZhdGVf ZGF0YTsKKwlMb2dpY2FsRXJyb3JDYWxsYmFja1N0YXRlIHN0YXRlOworCUVycm9yQ29udGV4dENh bGxiYWNrIGVycmNhbGxiYWNrOworCisJQXNzZXJ0KCFjdHgtPmZhc3RfZm9yd2FyZCk7CisKKwlp ZiAoY3R4LT5jYWxsYmFja3MuZGRsbWVzc2FnZV9jYiA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkv KiBQdXNoIGNhbGxiYWNrICsgaW5mbyBvbiB0aGUgZXJyb3IgY29udGV4dCBzdGFjayAqLworCXN0 YXRlLmN0eCA9IGN0eDsKKwlzdGF0ZS5jYWxsYmFja19uYW1lID0gImRkbG1lc3NhZ2UiOworCXN0 YXRlLnJlcG9ydF9sb2NhdGlvbiA9IG1lc3NhZ2VfbHNuOworCWVycmNhbGxiYWNrLmNhbGxiYWNr ID0gb3V0cHV0X3BsdWdpbl9lcnJvcl9jYWxsYmFjazsKKwllcnJjYWxsYmFjay5hcmcgPSAodm9p ZCAqKSAmc3RhdGU7CisJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0X3N0YWNr OworCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CisKKwkvKiBzZXQgb3V0cHV0 IHN0YXRlICovCisJY3R4LT5hY2NlcHRfd3JpdGVzID0gdHJ1ZTsKKwljdHgtPndyaXRlX3hpZCA9 IHR4biAhPSBOVUxMID8gdHhuLT54aWQgOiBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwljdHgtPndy aXRlX2xvY2F0aW9uID0gbWVzc2FnZV9sc247CisKKwkvKiBkbyB0aGUgYWN0dWFsIHdvcms6IGNh bGwgY2FsbGJhY2sgKi8KKwljdHgtPmNhbGxiYWNrcy5kZGxtZXNzYWdlX2NiKGN0eCwgdHhuLCBt ZXNzYWdlX2xzbiwgdHJhbnNhY3Rpb25hbCwgcHJlZml4LAorCQkJCQkJCQkgcm9sZSwgc2VhcmNo X3BhdGgsIG1lc3NhZ2Vfc2l6ZSwgbWVzc2FnZSk7CisKKwkvKiBQb3AgdGhlIGVycm9yIGNvbnRl eHQgc3RhY2sgKi8KKwllcnJvcl9jb250ZXh0X3N0YWNrID0gZXJyY2FsbGJhY2sucHJldmlvdXM7 Cit9CisKIHN0YXRpYyB2b2lkCiBzdHJlYW1fc3RhcnRfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVy ICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCQkJCQkJWExvZ1JlY1B0ciBmaXJzdF9s c24pCkBAIC0xNTM1LDYgKzE1ODQsNDggQEAgc3RyZWFtX21lc3NhZ2VfY2Jfd3JhcHBlcihSZW9y ZGVyQnVmZmVyICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCWVycm9yX2NvbnRleHRf c3RhY2sgPSBlcnJjYWxsYmFjay5wcmV2aW91czsKIH0KIAorc3RhdGljIHZvaWQKK3N0cmVhbV9k ZGxtZXNzYWdlX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJU WE4gKnR4biwKKwkJCQkJCQkgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwgYm9vbCB0cmFuc2FjdGlv bmFsLAorCQkJCQkJCSBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnJvbGUsCisJCQkJ CQkJIGNvbnN0IGNoYXIqIHNlYXJjaF9wYXRoLCBTaXplIG1lc3NhZ2Vfc2l6ZSwKKwkJCQkJCQkg Y29uc3QgY2hhciAqbWVzc2FnZSkKK3sKKwlMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHggPSBj YWNoZS0+cHJpdmF0ZV9kYXRhOworCUxvZ2ljYWxFcnJvckNhbGxiYWNrU3RhdGUgc3RhdGU7CisJ RXJyb3JDb250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7CisKKwlBc3NlcnQoIWN0eC0+ZmFzdF9m b3J3YXJkKTsKKworCS8qIFdlJ3JlIG9ubHkgc3VwcG9zZWQgdG8gY2FsbCB0aGlzIHdoZW4gc3Ry ZWFtaW5nIGlzIHN1cHBvcnRlZC4gKi8KKwlBc3NlcnQoY3R4LT5zdHJlYW1pbmcpOworCisJLyog dGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbCAqLworCWlmIChjdHgtPmNhbGxiYWNrcy5zdHJlYW1f ZGRsbWVzc2FnZV9jYiA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkvKiBQdXNoIGNhbGxiYWNrICsg aW5mbyBvbiB0aGUgZXJyb3IgY29udGV4dCBzdGFjayAqLworCXN0YXRlLmN0eCA9IGN0eDsKKwlz dGF0ZS5jYWxsYmFja19uYW1lID0gInN0cmVhbV9kZGxtZXNzYWdlIjsKKwlzdGF0ZS5yZXBvcnRf bG9jYXRpb24gPSBtZXNzYWdlX2xzbjsKKwllcnJjYWxsYmFjay5jYWxsYmFjayA9IG91dHB1dF9w bHVnaW5fZXJyb3JfY2FsbGJhY2s7CisJZXJyY2FsbGJhY2suYXJnID0gKHZvaWQgKikgJnN0YXRl OworCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKKwllcnJvcl9j b250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOworCisJLyogc2V0IG91dHB1dCBzdGF0ZSAqLwor CWN0eC0+YWNjZXB0X3dyaXRlcyA9IHRydWU7CisJY3R4LT53cml0ZV94aWQgPSB0eG4gIT0gTlVM TCA/IHR4bi0+eGlkIDogSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJY3R4LT53cml0ZV9sb2NhdGlv biA9IG1lc3NhZ2VfbHNuOworCisJLyogZG8gdGhlIGFjdHVhbCB3b3JrOiBjYWxsIGNhbGxiYWNr ICovCisJY3R4LT5jYWxsYmFja3Muc3RyZWFtX2RkbG1lc3NhZ2VfY2IoY3R4LCB0eG4sIG1lc3Nh Z2VfbHNuLCB0cmFuc2FjdGlvbmFsLCBwcmVmaXgsCisJCQkJCQkJCQkJcm9sZSwgc2VhcmNoX3Bh dGgsIG1lc3NhZ2Vfc2l6ZSwgbWVzc2FnZSk7CisKKwkvKiBQb3AgdGhlIGVycm9yIGNvbnRleHQg c3RhY2sgKi8KKwllcnJvcl9jb250ZXh0X3N0YWNrID0gZXJyY2FsbGJhY2sucHJldmlvdXM7Cit9 CisKIHN0YXRpYyB2b2lkCiBzdHJlYW1fdHJ1bmNhdGVfY2Jfd3JhcHBlcihSZW9yZGVyQnVmZmVy ICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCQkJCQkJICAgaW50IG5yZWxhdGlvbnMs IFJlbGF0aW9uIHJlbGF0aW9uc1tdLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9yZW9yZGVyYnVmZmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3Jlb3JkZXJidWZmZXIuYwppbmRleCA4ZGE1ZjkwODljLi5jYTAxMzM2NjA0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIuYwpAQCAtNTEy LDYgKzUxMiwyMCBAQCBSZW9yZGVyQnVmZmVyUmV0dXJuQ2hhbmdlKFJlb3JkZXJCdWZmZXIgKnJi LCBSZW9yZGVyQnVmZmVyQ2hhbmdlICpjaGFuZ2UsCiAJCQkJcGZyZWUoY2hhbmdlLT5kYXRhLm1z Zy5tZXNzYWdlKTsKIAkJCWNoYW5nZS0+ZGF0YS5tc2cubWVzc2FnZSA9IE5VTEw7CiAJCQlicmVh azsKKwkJY2FzZSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfRERMTUVTU0FHRToKKwkJCWlmIChjaGFu Z2UtPmRhdGEuZGRsbXNnLnByZWZpeCAhPSBOVUxMKQorCQkJCXBmcmVlKGNoYW5nZS0+ZGF0YS5k ZGxtc2cucHJlZml4KTsKKwkJCWNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4ID0gTlVMTDsKKwkJ CWlmIChjaGFuZ2UtPmRhdGEuZGRsbXNnLnJvbGUgIT0gTlVMTCkKKwkJCQlwZnJlZShjaGFuZ2Ut PmRhdGEuZGRsbXNnLnJvbGUpOworCQkJY2hhbmdlLT5kYXRhLmRkbG1zZy5yb2xlID0gTlVMTDsK KwkJCWlmIChjaGFuZ2UtPmRhdGEuZGRsbXNnLnNlYXJjaF9wYXRoICE9IE5VTEwpCisJCQkJcGZy ZWUoY2hhbmdlLT5kYXRhLmRkbG1zZy5zZWFyY2hfcGF0aCk7CisJCQljaGFuZ2UtPmRhdGEuZGRs bXNnLnNlYXJjaF9wYXRoID0gTlVMTDsKKwkJCWlmIChjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3Nh Z2UgIT0gTlVMTCkKKwkJCQlwZnJlZShjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2UpOworCQkJ Y2hhbmdlLT5kYXRhLmRkbG1zZy5tZXNzYWdlID0gTlVMTDsKKwkJCWJyZWFrOwogCQljYXNlIFJF T1JERVJfQlVGRkVSX0NIQU5HRV9JTlZBTElEQVRJT046CiAJCQlpZiAoY2hhbmdlLT5kYXRhLmlu dmFsLmludmFsaWRhdGlvbnMpCiAJCQkJcGZyZWUoY2hhbmdlLT5kYXRhLmludmFsLmludmFsaWRh dGlvbnMpOwpAQCAtODY2LDYgKzg4MCw2NCBAQCBSZW9yZGVyQnVmZmVyUXVldWVNZXNzYWdlKFJl b3JkZXJCdWZmZXIgKnJiLCBUcmFuc2FjdGlvbklkIHhpZCwKIAl9CiB9CiAKKy8qCisgKiBBIHRy YW5zYWN0aW9uYWwgRERMIG1lc3NhZ2UgaXMgcXVldWVkIHRvIGJlIHByb2Nlc3NlZCB1cG9uIGNv bW1pdCBhbmQgYQorICogbm9uLXRyYW5zYWN0aW9uYWwgRERMIG1lc3NhZ2UgZ2V0cyBwcm9jZXNz ZWQgaW1tZWRpYXRlbHkuCisgKi8KK3ZvaWQKK1Jlb3JkZXJCdWZmZXJRdWV1ZURETE1lc3NhZ2Uo UmVvcmRlckJ1ZmZlciAqcmIsIFRyYW5zYWN0aW9uSWQgeGlkLAorCQkJCQkJICBTbmFwc2hvdCBz bmFwc2hvdCwgWExvZ1JlY1B0ciBsc24sCisJCQkJCQkgIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29u c3QgY2hhciAqcHJlZml4LAorCQkJCQkJICBjb25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpz ZWFyY2hfcGF0aCwKKwkJCQkJCSAgU2l6ZSBtZXNzYWdlX3NpemUsIGNvbnN0IGNoYXIgKm1lc3Nh Z2UpCit7CisJaWYgKHRyYW5zYWN0aW9uYWwpCisJeworCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRl eHQ7CisJCVJlb3JkZXJCdWZmZXJDaGFuZ2UgKmNoYW5nZTsKKworCQlBc3NlcnQoeGlkICE9IElu dmFsaWRUcmFuc2FjdGlvbklkKTsKKworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKHJiLT5jb250ZXh0KTsKKworCQljaGFuZ2UgPSBSZW9yZGVyQnVmZmVyR2V0Q2hhbmdlKHJi KTsKKwkJY2hhbmdlLT5hY3Rpb24gPSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfRERMTUVTU0FHRTsK KwkJY2hhbmdlLT5kYXRhLmRkbG1zZy5wcmVmaXggPSBwc3RyZHVwKHByZWZpeCk7CisJCWNoYW5n ZS0+ZGF0YS5kZGxtc2cucm9sZSA9IHBzdHJkdXAocm9sZSk7CisJCWNoYW5nZS0+ZGF0YS5kZGxt c2cuc2VhcmNoX3BhdGggPSBwc3RyZHVwKHNlYXJjaF9wYXRoKTsKKwkJY2hhbmdlLT5kYXRhLmRk bG1zZy5tZXNzYWdlX3NpemUgPSBtZXNzYWdlX3NpemU7CisJCWNoYW5nZS0+ZGF0YS5kZGxtc2cu bWVzc2FnZSA9IHBhbGxvYyhtZXNzYWdlX3NpemUpOworCQltZW1jcHkoY2hhbmdlLT5kYXRhLmRk bG1zZy5tZXNzYWdlLCBtZXNzYWdlLCBtZXNzYWdlX3NpemUpOworCisJCVJlb3JkZXJCdWZmZXJR dWV1ZUNoYW5nZShyYiwgeGlkLCBsc24sIGNoYW5nZSwgZmFsc2UpOworCisJCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKwl9CisJZWxzZQorCXsKKwkJUmVvcmRlckJ1ZmZlclRY TiAqdHhuID0gTlVMTDsKKwkJdm9sYXRpbGUgU25hcHNob3Qgc25hcHNob3Rfbm93ID0gc25hcHNo b3Q7CisKKwkJaWYgKHhpZCAhPSBJbnZhbGlkVHJhbnNhY3Rpb25JZCkKKwkJCXR4biA9IFJlb3Jk ZXJCdWZmZXJUWE5CeVhpZChyYiwgeGlkLCB0cnVlLCBOVUxMLCBsc24sIHRydWUpOworCisJCS8q IHNldHVwIHNuYXBzaG90IHRvIGFsbG93IGNhdGFsb2cgYWNjZXNzICovCisJCVNldHVwSGlzdG9y aWNTbmFwc2hvdChzbmFwc2hvdF9ub3csIE5VTEwpOworCQlQR19UUlkoKTsKKwkJeworCQkJcmIt PmRkbG1lc3NhZ2UocmIsIHR4biwgbHNuLCBmYWxzZSwgcHJlZml4LCByb2xlLCBzZWFyY2hfcGF0 aCwgbWVzc2FnZV9zaXplLCBtZXNzYWdlKTsKKworCQkJVGVhcmRvd25IaXN0b3JpY1NuYXBzaG90 KGZhbHNlKTsKKwkJfQorCQlQR19DQVRDSCgpOworCQl7CisJCQlUZWFyZG93bkhpc3RvcmljU25h cHNob3QodHJ1ZSk7CisJCQlQR19SRV9USFJPVygpOworCQl9CisJCVBHX0VORF9UUlkoKTsKKwl9 Cit9CisKIC8qCiAgKiBBc3NlcnRUWE5Mc25PcmRlcgogICoJCVZlcmlmeSBMU04gb3JkZXJpbmcg b2YgdHJhbnNhY3Rpb24gbGlzdHMgaW4gdGhlIHJlb3JkZXJidWZmZXIKQEAgLTE5NTcsNiArMjAy OSwyOSBAQCBSZW9yZGVyQnVmZmVyQXBwbHlNZXNzYWdlKFJlb3JkZXJCdWZmZXIgKnJiLCBSZW9y ZGVyQnVmZmVyVFhOICp0eG4sCiAJCQkJCWNoYW5nZS0+ZGF0YS5tc2cubWVzc2FnZSk7CiB9CiAK Ky8qCisgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIFJlb3JkZXJCdWZmZXJQcm9jZXNzVFhOIGZvciBh cHBseWluZyB0aGUgRERMIG1lc3NhZ2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorUmVvcmRl ckJ1ZmZlckFwcGx5RERMTWVzc2FnZShSZW9yZGVyQnVmZmVyICpyYiwgUmVvcmRlckJ1ZmZlclRY TiAqdHhuLAorCQkJCQkJCSBSZW9yZGVyQnVmZmVyQ2hhbmdlICpjaGFuZ2UsIGJvb2wgc3RyZWFt aW5nKQoreworCWlmIChzdHJlYW1pbmcpCisJCXJiLT5zdHJlYW1fZGRsbWVzc2FnZShyYiwgdHhu LCBjaGFuZ2UtPmxzbiwgdHJ1ZSwKKwkJCQkJCQkgIGNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4 LAorCQkJCQkJCSAgY2hhbmdlLT5kYXRhLmRkbG1zZy5yb2xlLAorCQkJCQkJCSAgY2hhbmdlLT5k YXRhLmRkbG1zZy5zZWFyY2hfcGF0aCwKKwkJCQkJCQkgIGNoYW5nZS0+ZGF0YS5kZGxtc2cubWVz c2FnZV9zaXplLAorCQkJCQkJCSAgY2hhbmdlLT5kYXRhLmRkbG1zZy5tZXNzYWdlKTsKKwllbHNl CisJCXJiLT5kZGxtZXNzYWdlKHJiLCB0eG4sIGNoYW5nZS0+bHNuLCB0cnVlLAorCQkJCQkgICBj aGFuZ2UtPmRhdGEuZGRsbXNnLnByZWZpeCwKKwkJCQkJICAgY2hhbmdlLT5kYXRhLmRkbG1zZy5y b2xlLAorCQkJCQkgICBjaGFuZ2UtPmRhdGEuZGRsbXNnLnNlYXJjaF9wYXRoLAorCQkJCQkgICBj aGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2Vfc2l6ZSwKKwkJCQkJICAgY2hhbmdlLT5kYXRhLmRk bG1zZy5tZXNzYWdlKTsKK30KKwogLyoKICAqIEZ1bmN0aW9uIHRvIHN0b3JlIHRoZSBjb21tYW5k IGlkIGFuZCBzbmFwc2hvdCBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50CiAgKiBzdHJlYW0gc28g dGhhdCB3ZSBjYW4gcmV1c2UgdGhlIHNhbWUgd2hpbGUgc2VuZGluZyB0aGUgbmV4dCBzdHJlYW0u CkBAIC0yMzM1LDYgKzI0MzAsMTAgQEAgUmVvcmRlckJ1ZmZlclByb2Nlc3NUWE4oUmVvcmRlckJ1 ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJUmVvcmRlckJ1ZmZlckFwcGx5 TWVzc2FnZShyYiwgdHhuLCBjaGFuZ2UsIHN0cmVhbWluZyk7CiAJCQkJCWJyZWFrOwogCisJCQkJ Y2FzZSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfRERMTUVTU0FHRToKKwkJCQkJUmVvcmRlckJ1ZmZl ckFwcGx5RERMTWVzc2FnZShyYiwgdHhuLCBjaGFuZ2UsIHN0cmVhbWluZyk7CisJCQkJCWJyZWFr OworCiAJCQkJY2FzZSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfSU5WQUxJREFUSU9OOgogCQkJCQkv KiBFeGVjdXRlIHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgbG9jYWxseSAqLwogCQkJCQlSZW9y ZGVyQnVmZmVyRXhlY3V0ZUludmFsaWRhdGlvbnMoY2hhbmdlLT5kYXRhLmludmFsLm5pbnZhbGlk YXRpb25zLApAQCAtMzcwOCw2ICszODA3LDUzIEBAIFJlb3JkZXJCdWZmZXJTZXJpYWxpemVDaGFu Z2UoUmVvcmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJICAgY2hh bmdlLT5kYXRhLm1zZy5tZXNzYWdlX3NpemUpOwogCQkJCWRhdGEgKz0gY2hhbmdlLT5kYXRhLm1z Zy5tZXNzYWdlX3NpemU7CiAKKwkJCQlicmVhazsKKwkJCX0KKwkJY2FzZSBSRU9SREVSX0JVRkZF Ul9DSEFOR0VfRERMTUVTU0FHRToKKwkJCXsKKwkJCQljaGFyCSAgICpkYXRhOworCQkJCVNpemUJ CXByZWZpeF9zaXplID0gc3RybGVuKGNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4KSArIDE7CisJ CQkJU2l6ZQkJcm9sZV9zaXplID0gc3RybGVuKGNoYW5nZS0+ZGF0YS5kZGxtc2cucm9sZSkgKyAx OworCQkJCVNpemUJCXNlYXJjaF9wYXRoX3NpemUgPSBzdHJsZW4oY2hhbmdlLT5kYXRhLmRkbG1z Zy5zZWFyY2hfcGF0aCkgKyAxOworCisJCQkJc3ogKz0gcHJlZml4X3NpemUgKyByb2xlX3NpemUg KyBzZWFyY2hfcGF0aF9zaXplICsKKwkJCQkJICBjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2Vf c2l6ZSArCisJCQkJCSAgc2l6ZW9mKFNpemUpICsgc2l6ZW9mKFNpemUpICsgc2l6ZW9mKFNpemUp ICsgc2l6ZW9mKFNpemUpOworCQkJCVJlb3JkZXJCdWZmZXJTZXJpYWxpemVSZXNlcnZlKHJiLCBz eik7CisKKwkJCQlkYXRhID0gKChjaGFyICopIHJiLT5vdXRidWYpICsgc2l6ZW9mKFJlb3JkZXJC dWZmZXJEaXNrQ2hhbmdlKTsKKworCQkJCS8qIG1pZ2h0IGhhdmUgYmVlbiByZWFsbG9jYXRlZCBh Ym92ZSAqLworCQkJCW9uZGlzayA9IChSZW9yZGVyQnVmZmVyRGlza0NoYW5nZSAqKSByYi0+b3V0 YnVmOworCisJCQkJLyogd3JpdGUgdGhlIHByZWZpeCBpbmNsdWRpbmcgdGhlIHNpemUgKi8KKwkJ CQltZW1jcHkoZGF0YSwgJnByZWZpeF9zaXplLCBzaXplb2YoU2l6ZSkpOworCQkJCWRhdGEgKz0g c2l6ZW9mKFNpemUpOworCQkJCW1lbWNweShkYXRhLCBjaGFuZ2UtPmRhdGEuZGRsbXNnLnByZWZp eCwKKwkJCQkJICAgcHJlZml4X3NpemUpOworCQkJCWRhdGEgKz0gcHJlZml4X3NpemU7CisKKwkJ CQkvKiB3cml0ZSB0aGUgcm9sZSBpbmNsdWRpbmcgdGhlIHNpemUgKi8KKwkJCQltZW1jcHkoZGF0 YSwgJnJvbGVfc2l6ZSwgc2l6ZW9mKFNpemUpKTsKKwkJCQlkYXRhICs9IHNpemVvZihTaXplKTsK KwkJCQltZW1jcHkoZGF0YSwgY2hhbmdlLT5kYXRhLmRkbG1zZy5yb2xlLAorCQkJCQkgICByb2xl X3NpemUpOworCQkJCWRhdGEgKz0gcm9sZV9zaXplOworCisJCQkJLyogd3JpdGUgdGhlIHNlYXJj aF9wYXRoIGluY2x1ZGluZyB0aGUgc2l6ZSAqLworCQkJCW1lbWNweShkYXRhLCAmc2VhcmNoX3Bh dGhfc2l6ZSwgc2l6ZW9mKFNpemUpKTsKKwkJCQlkYXRhICs9IHNpemVvZihTaXplKTsKKwkJCQlt ZW1jcHkoZGF0YSwgY2hhbmdlLT5kYXRhLmRkbG1zZy5zZWFyY2hfcGF0aCwKKwkJCQkJICAgc2Vh cmNoX3BhdGhfc2l6ZSk7CisJCQkJZGF0YSArPSBzZWFyY2hfcGF0aF9zaXplOworCisJCQkJLyog d3JpdGUgdGhlIG1lc3NhZ2UgaW5jbHVkaW5nIHRoZSBzaXplICovCisJCQkJbWVtY3B5KGRhdGEs ICZjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2Vfc2l6ZSwgc2l6ZW9mKFNpemUpKTsKKwkJCQlk YXRhICs9IHNpemVvZihTaXplKTsKKwkJCQltZW1jcHkoZGF0YSwgY2hhbmdlLT5kYXRhLmRkbG1z Zy5tZXNzYWdlLAorCQkJCQkgICBjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2Vfc2l6ZSk7CisJ CQkJZGF0YSArPSBjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2Vfc2l6ZTsKKwogCQkJCWJyZWFr OwogCQkJfQogCQljYXNlIFJFT1JERVJfQlVGRkVSX0NIQU5HRV9JTlZBTElEQVRJT046CkBAIC00 MDIyLDYgKzQxNjgsMTggQEAgUmVvcmRlckJ1ZmZlckNoYW5nZVNpemUoUmVvcmRlckJ1ZmZlckNo YW5nZSAqY2hhbmdlKQogCQkJCXN6ICs9IHByZWZpeF9zaXplICsgY2hhbmdlLT5kYXRhLm1zZy5t ZXNzYWdlX3NpemUgKwogCQkJCQlzaXplb2YoU2l6ZSkgKyBzaXplb2YoU2l6ZSk7CiAKKwkJCQli cmVhazsKKwkJCX0KKwkJY2FzZSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfRERMTUVTU0FHRToKKwkJ CXsKKwkJCQlTaXplCQlwcmVmaXhfc2l6ZSA9IHN0cmxlbihjaGFuZ2UtPmRhdGEuZGRsbXNnLnBy ZWZpeCkgKyAxOworCQkJCVNpemUJCXJvbGVfc2l6ZSA9IHN0cmxlbihjaGFuZ2UtPmRhdGEuZGRs bXNnLnJvbGUpICsgMTsKKwkJCQlTaXplCQlzZWFyY2hfcGF0aF9zaXplID0gc3RybGVuKGNoYW5n ZS0+ZGF0YS5kZGxtc2cuc2VhcmNoX3BhdGgpICsgMTsKKworCQkJCXN6ICs9IHByZWZpeF9zaXpl ICsgcm9sZV9zaXplICsgc2VhcmNoX3BhdGhfc2l6ZSArCisJCQkJCWNoYW5nZS0+ZGF0YS5kZGxt c2cubWVzc2FnZV9zaXplICsKKwkJCQkJc2l6ZW9mKFNpemUpICsgc2l6ZW9mKFNpemUpICsgc2l6 ZW9mKFNpemUpICsgc2l6ZW9mKFNpemUpOworCiAJCQkJYnJlYWs7CiAJCQl9CiAJCWNhc2UgUkVP UkRFUl9CVUZGRVJfQ0hBTkdFX0lOVkFMSURBVElPTjoKQEAgLTQyODIsOCArNDQ0MCw3IEBAIFJl b3JkZXJCdWZmZXJSZXN0b3JlQ2hhbmdlKFJlb3JkZXJCdWZmZXIgKnJiLCBSZW9yZGVyQnVmZmVy VFhOICp0eG4sCiAJCQkJLyogcmVhZCBwcmVmaXggKi8KIAkJCQltZW1jcHkoJnByZWZpeF9zaXpl LCBkYXRhLCBzaXplb2YoU2l6ZSkpOwogCQkJCWRhdGEgKz0gc2l6ZW9mKFNpemUpOwotCQkJCWNo YW5nZS0+ZGF0YS5tc2cucHJlZml4ID0gTWVtb3J5Q29udGV4dEFsbG9jKHJiLT5jb250ZXh0LAot CQkJCQkJCQkJCQkJCQkJIHByZWZpeF9zaXplKTsKKwkJCQljaGFuZ2UtPmRhdGEubXNnLnByZWZp eCA9IE1lbW9yeUNvbnRleHRBbGxvYyhyYi0+Y29udGV4dCwgcHJlZml4X3NpemUpOwogCQkJCW1l bWNweShjaGFuZ2UtPmRhdGEubXNnLnByZWZpeCwgZGF0YSwgcHJlZml4X3NpemUpOwogCQkJCUFz c2VydChjaGFuZ2UtPmRhdGEubXNnLnByZWZpeFtwcmVmaXhfc2l6ZSAtIDFdID09ICdcMCcpOwog CQkJCWRhdGEgKz0gcHJlZml4X3NpemU7CkBAIC00Mjk3LDYgKzQ0NTQsNDkgQEAgUmVvcmRlckJ1 ZmZlclJlc3RvcmVDaGFuZ2UoUmVvcmRlckJ1ZmZlciAqcmIsIFJlb3JkZXJCdWZmZXJUWE4gKnR4 biwKIAkJCQkJICAgY2hhbmdlLT5kYXRhLm1zZy5tZXNzYWdlX3NpemUpOwogCQkJCWRhdGEgKz0g Y2hhbmdlLT5kYXRhLm1zZy5tZXNzYWdlX3NpemU7CiAKKwkJCQlicmVhazsKKwkJCX0KKwkJY2Fz ZSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfRERMTUVTU0FHRToKKwkJCXsKKwkJCQlTaXplCQlwcmVm aXhfc2l6ZTsKKwkJCQlTaXplCQlyb2xlX3NpemU7CisJCQkJU2l6ZQkJc2VhcmNoX3BhdGhfc2l6 ZTsKKworCQkJCS8qIHJlYWQgcHJlZml4ICovCisJCQkJbWVtY3B5KCZwcmVmaXhfc2l6ZSwgZGF0 YSwgc2l6ZW9mKFNpemUpKTsKKwkJCQlkYXRhICs9IHNpemVvZihTaXplKTsKKwkJCQljaGFuZ2Ut PmRhdGEuZGRsbXNnLnByZWZpeCA9IE1lbW9yeUNvbnRleHRBbGxvYyhyYi0+Y29udGV4dCwgcHJl Zml4X3NpemUpOworCQkJCW1lbWNweShjaGFuZ2UtPmRhdGEuZGRsbXNnLnByZWZpeCwgZGF0YSwg cHJlZml4X3NpemUpOworCQkJCUFzc2VydChjaGFuZ2UtPmRhdGEuZGRsbXNnLnByZWZpeFtwcmVm aXhfc2l6ZSAtIDFdID09ICdcMCcpOworCQkJCWRhdGEgKz0gcHJlZml4X3NpemU7CisKKwkJCQkv KiByZWFkIHJvbGUgKi8KKwkJCQltZW1jcHkoJnJvbGVfc2l6ZSwgZGF0YSwgc2l6ZW9mKFNpemUp KTsKKwkJCQlkYXRhICs9IHNpemVvZihTaXplKTsKKwkJCQljaGFuZ2UtPmRhdGEuZGRsbXNnLnJv bGUgPSBNZW1vcnlDb250ZXh0QWxsb2MocmItPmNvbnRleHQsCisJCQkJCQkJCQkJCQkJCQkgIHJv bGVfc2l6ZSk7CisJCQkJbWVtY3B5KGNoYW5nZS0+ZGF0YS5kZGxtc2cucm9sZSwgZGF0YSwgcm9s ZV9zaXplKTsKKwkJCQlBc3NlcnQoY2hhbmdlLT5kYXRhLmRkbG1zZy5yb2xlW3JvbGVfc2l6ZSAt IDFdID09ICdcMCcpOworCQkJCWRhdGEgKz0gcm9sZV9zaXplOworCisJCQkJLyogcmVhZCBzZWFy Y2hfcGF0aCAqLworCQkJCW1lbWNweSgmc2VhcmNoX3BhdGhfc2l6ZSwgZGF0YSwgc2l6ZW9mKFNp emUpKTsKKwkJCQlkYXRhICs9IHNpemVvZihTaXplKTsKKwkJCQljaGFuZ2UtPmRhdGEuZGRsbXNn LnNlYXJjaF9wYXRoID0gTWVtb3J5Q29udGV4dEFsbG9jKHJiLT5jb250ZXh0LAorCQkJCQkJCQkJ CQkJCQkJCQkgc2VhcmNoX3BhdGhfc2l6ZSk7CisJCQkJbWVtY3B5KGNoYW5nZS0+ZGF0YS5kZGxt c2cuc2VhcmNoX3BhdGgsIGRhdGEsIHNlYXJjaF9wYXRoX3NpemUpOworCQkJCUFzc2VydChjaGFu Z2UtPmRhdGEuZGRsbXNnLnNlYXJjaF9wYXRoW3NlYXJjaF9wYXRoX3NpemUgLSAxXSA9PSAnXDAn KTsKKwkJCQlkYXRhICs9IHNlYXJjaF9wYXRoX3NpemU7CisKKwkJCQkvKiByZWFkIHRoZSBtZXNz YWdlICovCisJCQkJbWVtY3B5KCZjaGFuZ2UtPmRhdGEubXNnLm1lc3NhZ2Vfc2l6ZSwgZGF0YSwg c2l6ZW9mKFNpemUpKTsKKwkJCQlkYXRhICs9IHNpemVvZihTaXplKTsKKwkJCQljaGFuZ2UtPmRh dGEubXNnLm1lc3NhZ2UgPSBNZW1vcnlDb250ZXh0QWxsb2MocmItPmNvbnRleHQsCisJCQkJCQkJ CQkJCQkJCQkgIGNoYW5nZS0+ZGF0YS5tc2cubWVzc2FnZV9zaXplKTsKKwkJCQltZW1jcHkoY2hh bmdlLT5kYXRhLm1zZy5tZXNzYWdlLCBkYXRhLAorCQkJCQkgICBjaGFuZ2UtPmRhdGEubXNnLm1l c3NhZ2Vfc2l6ZSk7CisJCQkJZGF0YSArPSBjaGFuZ2UtPmRhdGEubXNnLm1lc3NhZ2Vfc2l6ZTsK KwogCQkJCWJyZWFrOwogCQkJfQogCQljYXNlIFJFT1JERVJfQlVGRkVSX0NIQU5HRV9JTlZBTElE QVRJT046CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDZhNWJjZGVkNTUuLjVmZTU0Zjc0MmEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRp bGl0eS5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3V0aWxjbWQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2Jnd3JpdGVy LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vZGRsbWVzc2FnZS5oIgogI2luY2x1ZGUgInJld3Jp dGUvcmV3cml0ZURlZmluZS5oIgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZVJlbW92ZS5oIgog I2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKQEAgLTg2LDcgKzg3LDcgQEAgc3RhdGljIHZvaWQgUHJv Y2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkgICBRdWVyeUVudmly b25tZW50ICpxdWVyeUVudiwKIAkJCQkJCQkgICBEZXN0UmVjZWl2ZXIgKmRlc3QsCiAJCQkJCQkJ ICAgUXVlcnlDb21wbGV0aW9uICpxYyk7Ci1zdGF0aWMgdm9pZCBFeGVjRHJvcFN0bXQoRHJvcFN0 bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCk7CitzdGF0aWMgdm9pZCBFeGVjRHJvcFN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBEcm9wU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKTsKIAogLyoK ICAqIENvbW1hbmRJc1JlYWRPbmx5OiBpcyBhbiBleGVjdXRhYmxlIHF1ZXJ5IHJlYWQtb25seT8K QEAgLTk4Nyw3ICs5ODgsNyBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAq cHN0bXQsCiAJCQkJCQkJCQkgICBjb250ZXh0LCBwYXJhbXMsIHF1ZXJ5RW52LAogCQkJCQkJCQkJ ICAgZGVzdCwgcWMpOwogCQkJCWVsc2UKLQkJCQkJRXhlY0Ryb3BTdG10KHN0bXQsIGlzVG9wTGV2 ZWwpOworCQkJCQlFeGVjRHJvcFN0bXQocHN0YXRlLCBzdG10LCBpc1RvcExldmVsKTsKIAkJCX0K IAkJCWJyZWFrOwogCkBAIC0xMDg3LDYgKzEwODgsMTU0IEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGls aXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogfQog CisvKgorICogTG9nIGEgRERMIGNvbW1hbmQgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24KKyAqIFNv bWUgRERMcyBhcmUgb25seSByZXBsaWNhdGVkIGluIERhdGFiYXNlIExldmVsIERETCByZXBsaWNh dGlvbgorICogU29tZSBjYW4gYmUgcmVwbGljYXRlZCBpbiBUYWJsZSBMZXZlbCBEREwgcmVwbGlj YXRpb24uCisgKgorICogQ3VycmVudGx5IHdlIGZvY3VzIG9uIHN1cHBvcnRpbmcgRGF0YWJhc2Ug TGV2ZWwgRERMIHJlcGxpY2F0aW9uCisgKi8KK3N0YXRpYyB2b2lkCitMb2dMb2dpY2FsRERMQ29t bWFuZChOb2RlICpwYXJzZXRyZWUsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQoreworCXN3aXRj aCAobm9kZVRhZyhwYXJzZXRyZWUpKQorCXsKKwkJLyogRmlzcnRseSwgY29tbWFuZHMgdGhhdCBh cmUgb25seSBzdXBwb3J0ZWQgaW4gRGF0YWJhc2UgbGV2ZWwgRERMIHJlcGxpY2F0aW9uICovCisJ CWNhc2UgVF9DcmVhdGVTY2hlbWFTdG10OgorCQljYXNlIFRfQ3JlYXRlU3RtdDoKKwkJY2FzZSBU X0NyZWF0ZUZvcmVpZ25UYWJsZVN0bXQ6CisJCWNhc2UgVF9BbHRlckRvbWFpblN0bXQ6CisJCWNh c2UgVF9EZWZpbmVTdG10OgorCQljYXNlIFRfQ29tcG9zaXRlVHlwZVN0bXQ6CisJCWNhc2UgVF9D cmVhdGVFbnVtU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKKwkJY2FzZSBUX0FsdGVy RW51bVN0bXQ6CisJCWNhc2UgVF9WaWV3U3RtdDoKKwkJY2FzZSBUX0NyZWF0ZUZ1bmN0aW9uU3Rt dDoKKwkJY2FzZSBUX0FsdGVyRnVuY3Rpb25TdG10OgorCQljYXNlIFRfQ3JlYXRlVHJpZ1N0bXQ6 CisJCWNhc2UgVF9DcmVhdGVEb21haW5TdG10OgorCQljYXNlIFRfQ3JlYXRlQ2FzdFN0bXQ6CisJ CWNhc2UgVF9DcmVhdGVPcENsYXNzU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZU9wRmFtaWx5U3RtdDoK KwkJY2FzZSBUX0FsdGVyT3BGYW1pbHlTdG10OgorCQljYXNlIFRfQWx0ZXJPcGVyYXRvclN0bXQ6 CisJCWNhc2UgVF9BbHRlclR5cGVTdG10OgorCQljYXNlIFRfR3JhbnRTdG10OgorCQljYXNlIFRf QWx0ZXJDb2xsYXRpb25TdG10OgorCQkJLyoKKwkJCSAqIExvZyB0aGVzZSBzdG10IGZvciBsb2dp Y2FsIHJlcGxpY2F0aW9uIGlmCisJCQkgKiB0aGVyZSBpcyBhbnkgRk9SIEFMTCBUQUJMRVMgcHVi bGljYXRpb24gd2l0aCBwdWJkZGxfZGF0YWJhc2Ugb24uCisJCQkgKiBpLmUuIERhdGFiYXNlIGxl dmVsIERETCByZXBsaWNhdGlvbiBpcyBvbiBmb3Igc29tZSBwdWJsaWNhdGlvbi4KKwkJCSAqLwor CQkJaWYgKGRkbF9uZWVkX3hsb2coSW52YWxpZE9pZCwgdHJ1ZSwgdHJ1ZSkpCisJCQl7CisJCQkJ Ym9vbCB0cmFuc2FjdGlvbmFsID0gdHJ1ZTsKKwkJCQljb25zdCBjaGFyKiBwcmVmaXggPSAiIjsK KwkJCQlMb2dMb2dpY2FsRERMTWVzc2FnZShwcmVmaXgsCisJCQkJCQkJCQkgR2V0VXNlcklkKCks CisJCQkJCQkJCQkgcXVlcnlTdHJpbmcsCisJCQkJCQkJCQkgc3RybGVuKHF1ZXJ5U3RyaW5nKSwK KwkJCQkJCQkJCSB0cmFuc2FjdGlvbmFsKTsKKwkJCX0KKwkJCWJyZWFrOworCisJCS8qCisJCSAq IFNlY29uZGx5LCBjb21tYW5kcyB0aGF0IG1heSBiZSBhbGxvd2VkIGluIFRhYmxlIGxldmVsIERE TCByZXBsaWNhdGlvbi4KKwkJICogVGhlc2UgYXJlIGN1cnJlbnRseSBoYW5kbGVkIGluIHRoZSBs YXRlciBleGVjdXRpb24gcGF0aCBvZiB0aGUgY29tbWFuZC4KKwkJICogQmVjYXVzZSB3ZSBuZWVk IHRvIGdldCB0aGUgcmVsYXRpb24gaWQgd2hpY2ggcmVhZGlseSBhdmFpbGFibGUgaW4gbGF0ZXIK KwkJICogY29kZSBwYXRoLgorCQkgKi8KKwkJY2FzZSBUX0FsdGVyVGFibGVTdG10OgorCQljYXNl IFRfSW5kZXhTdG10OgorCQljYXNlIFRfUmVuYW1lU3RtdDogLyogVE9ETyAqLworCQljYXNlIFRf QWx0ZXJPd25lclN0bXQ6IC8qIFRPRE8gKi8KKwkJCWJyZWFrOworCisJCS8qIERyb3BTdG10IGRl cGVuZHMgb24gdGhlIHJlbW92ZVR5cGUgKi8KKwkJY2FzZSBUX0Ryb3BTdG10OgorCQl7CisJCQlE cm9wU3RtdCogc3RtdCA9IChEcm9wU3RtdCopIHBhcnNldHJlZTsKKwkJCXN3aXRjaCAoc3RtdC0+ cmVtb3ZlVHlwZSkKKwkJCXsKKwkJCQkvKiBNYXliZSBhbGxvd2VkIGluIFRhYmxlIGxldmVsIERE TCByZXBsaWNhdGlvbiwgaGFuZGxlZCBpbiBsYXRlciBjb2RlIHBhdGggKi8KKwkJCQljYXNlIE9C SkVDVF9JTkRFWDoKKwkJCQljYXNlIE9CSkVDVF9UQUJMRToKKwkJCQkJYnJlYWs7CisJCQkJLyog RHJvcCBvZiBzZXF1ZW5jZSBpcyBieSBsb2dpY2FsIHJlcGxpY2F0aW9uIG9mIHNlcXVlbmNlcyBz ZXBhcmF0ZWx5ICovCisJCQkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CisJCQkJCWJyZWFrOworCQkJ CS8qIERyb3Agb2Ygb3RoZXIgb2JqZWN0cyBhcmUgYWxsb3dlZCBpbiBEYXRhYmFzZSBsZXZlbCBE REwgcmVwbGljYXRpb24gb25seSAqLworCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CisJCQkJY2FzZSBP QkpFQ1RfTUFUVklFVzoKKwkJCQljYXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgorCQkJCWRlZmF1 bHQ6CisJCQkJCS8qCisJCQkJCSAqIExvZyB0aGVzZSBEcm9wU3RtdCBmb3IgbG9naWNhbCByZXBs aWNhdGlvbiBpZgorCQkJCQkgKiB0aGVyZSBpcyBhbnkgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRp b24gd2l0aCBwdWJkZGxfZGF0YWJhc2Ugb24uCisJCQkJCSAqIGkuZS4gRGF0YWJhc2UgbGV2ZWwg RERMIHJlcGxpY2F0aW9uIGlzIG9uIGZvciBzb21lIHB1YmxpY2F0aW9uLgorCQkJCQkgKi8KKwkJ CQkJaWYgKGRkbF9uZWVkX3hsb2coSW52YWxpZE9pZCwgdHJ1ZSwgdHJ1ZSkpCisJCQkJCXsKKwkJ CQkJCWJvb2wgdHJhbnNhY3Rpb25hbCA9IHRydWU7CisJCQkJCQljb25zdCBjaGFyKiBwcmVmaXgg PSAiIjsKKwkJCQkJCUxvZ0xvZ2ljYWxERExNZXNzYWdlKHByZWZpeCwKKwkJCQkJCQkJCQkJIEdl dFVzZXJJZCgpLAorCQkJCQkJCQkJCQkgcXVlcnlTdHJpbmcsCisJCQkJCQkJCQkJCSBzdHJsZW4o cXVlcnlTdHJpbmcpLAorCQkJCQkJCQkJCQkgdHJhbnNhY3Rpb25hbCk7CisJCQkJCX0KKwkJCQkJ YnJlYWs7CisJCQl9CisJCX0KKwkJLyoKKwkJICogTGFzdGx5LCBydWxlIG91dCBERExzIHdlIGRv bid0IHJlcGxpY2F0ZSB5ZXQgaW4gRERMIHJlcGxpY2F0aW9uCisJCSAqIFNvbWUgb2YgdGhlc2Ug Y2FuIGJlIHN1cHBvcnRlZCwgd2UganVzdCBuZWVkIHRvIGludmVzdGlnYXRlIGFuZCBydW4gdGVz dHMuCisJCSAqLworCQljYXNlIFRfQ3JlYXRlRXh0ZW5zaW9uU3RtdDoKKwkJY2FzZSBUX0FsdGVy RXh0ZW5zaW9uU3RtdDoKKwkJY2FzZSBUX0FsdGVyRXh0ZW5zaW9uQ29udGVudHNTdG10OgorCQlj YXNlIFRfQ3JlYXRlRmR3U3RtdDoKKwkJY2FzZSBUX0FsdGVyRmR3U3RtdDoKKwkJY2FzZSBUX0Ny ZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10OgorCQljYXNlIFRfQWx0ZXJGb3JlaWduU2VydmVyU3RtdDoK KwkJY2FzZSBUX0NyZWF0ZVVzZXJNYXBwaW5nU3RtdDoKKwkJY2FzZSBUX0FsdGVyVXNlck1hcHBp bmdTdG10OgorCQljYXNlIFRfRHJvcFVzZXJNYXBwaW5nU3RtdDoKKwkJY2FzZSBUX0ltcG9ydEZv cmVpZ25TY2hlbWFTdG10OgorCQljYXNlIFRfUnVsZVN0bXQ6CisJCWNhc2UgVF9DcmVhdGVTZXFT dG10OgorCQljYXNlIFRfQWx0ZXJTZXFTdG10OgorCQljYXNlIFRfQ3JlYXRlVGFibGVBc1N0bXQ6 CisJCWNhc2UgVF9SZWZyZXNoTWF0Vmlld1N0bXQ6CisJCWNhc2UgVF9DcmVhdGVQTGFuZ1N0bXQ6 CisJCWNhc2UgVF9DcmVhdGVDb252ZXJzaW9uU3RtdDoKKwkJY2FzZSBUX0NyZWF0ZVRyYW5zZm9y bVN0bXQ6CisJCWNhc2UgVF9BbHRlclRTRGljdGlvbmFyeVN0bXQ6CisJCWNhc2UgVF9BbHRlclRT Q29uZmlndXJhdGlvblN0bXQ6CisJCWNhc2UgVF9BbHRlclRhYmxlTW92ZUFsbFN0bXQ6CisJCWNh c2UgVF9BbHRlck9iamVjdERlcGVuZHNTdG10OgorCQljYXNlIFRfQWx0ZXJPYmplY3RTY2hlbWFT dG10OgorCQljYXNlIFRfQ29tbWVudFN0bXQ6CisJCWNhc2UgVF9Ecm9wT3duZWRTdG10OgorCQlj YXNlIFRfQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQ6CisJCWNhc2UgVF9DcmVhdGVQb2xpY3lT dG10OgorCQljYXNlIFRfQWx0ZXJQb2xpY3lTdG10OgorCQljYXNlIFRfU2VjTGFiZWxTdG10Ogor CQljYXNlIFRfQ3JlYXRlQW1TdG10OgorCQljYXNlIFRfQ3JlYXRlUHVibGljYXRpb25TdG10Ogor CQljYXNlIFRfQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CisJCWNhc2UgVF9DcmVhdGVTdWJzY3JpcHRp b25TdG10OgorCQljYXNlIFRfQWx0ZXJTdWJzY3JpcHRpb25TdG10OgorCQljYXNlIFRfRHJvcFN1 YnNjcmlwdGlvblN0bXQ6CisJCWNhc2UgVF9DcmVhdGVTdGF0c1N0bXQ6CisJCWNhc2UgVF9BbHRl clN0YXRzU3RtdDoKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJfQorfQorCiAv KgogICogVGhlICJTbG93IiB2YXJpYW50IG9mIFByb2Nlc3NVdGlsaXR5IHNob3VsZCBvbmx5IHJl Y2VpdmUgc3RhdGVtZW50cwogICogc3VwcG9ydGVkIGJ5IHRoZSBldmVudCB0cmlnZ2VycyBmYWNp bGl0eS4gIFRoZXJlZm9yZSwgd2UgYWx3YXlzCkBAIC0xMTE5LDYgKzEyNjgsMTMgQEAgUHJvY2Vz c1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJaWYgKGlzQ29tcGxldGVRdWVyeSkK IAkJCUV2ZW50VHJpZ2dlckRETENvbW1hbmRTdGFydChwYXJzZXRyZWUpOwogCisJCS8qCisJCSAq IENvbnNpZGVyIGxvZ2dpbmcgdGhlIERETCBjb21tYW5kIGlmIGxvZ2ljYWwgbG9nZ2luZyBpcyBl bmFibGVkIGFuZCB0aGlzIGlzCisJCSAqIGEgdG9wIGxldmVsIHF1ZXJ5LgorCQkgKi8KKwkJaWYg KFhMb2dMb2dpY2FsSW5mb0FjdGl2ZSgpICYmIGlzVG9wTGV2ZWwpCisJCQlMb2dMb2dpY2FsRERM Q29tbWFuZChwYXJzZXRyZWUsIHF1ZXJ5U3RyaW5nKTsKKwogCQlzd2l0Y2ggKG5vZGVUYWcocGFy c2V0cmVlKSkKIAkJewogCQkJCS8qCkBAIC0xMzIxLDYgKzE0NzcsMjMgQEAgUHJvY2Vzc1V0aWxp dHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCUV2ZW50VHJpZ2dlckFsdGVyVGFibGVT dGFydChwYXJzZXRyZWUpOwogCQkJCQkJRXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZVJlbGlkKHJlbGlk KTsKIAorCQkJCQkJLyoKKwkJCQkJCSAqIExvZyB0aGUgQUxURVIgVEFCTEUgY29tbWFuZCBpZgor CQkJCQkJICogVGhlcmUgaXMgYW55IHB1YmxpY2F0aW9uIHdpdGggZGF0YWJhc2UgbGV2ZWwgZGRs IG9uIG9yCisJCQkJCQkgKiB0aGlzIFRBQkxFIGJlbG9uZ3MgdG8gYW55IHB1YmxpY2F0aW9uIHdp dGggdGFibGUgbGV2ZWwgZGRsIG9uCisJCQkJCQkgKi8KKwkJCQkJCWlmIChYTG9nTG9naWNhbElu Zm9BY3RpdmUoKSAmJgorCQkJCQkJCWRkbF9uZWVkX3hsb2cocmVsaWQsIGZhbHNlLCBpc1RvcExl dmVsKSkKKwkJCQkJCXsKKwkJCQkJCQlib29sIHRyYW5zYWN0aW9uYWwgPSB0cnVlOworCQkJCQkJ CWNvbnN0IGNoYXIqIHByZWZpeCA9ICIiOworCQkJCQkJCUxvZ0xvZ2ljYWxERExNZXNzYWdlKHBy ZWZpeCwKKwkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwKKwkJCQkJCQkJCQkJCSBxdWVyeVN0cmlu ZywKKwkJCQkJCQkJCQkJCSBzdHJsZW4ocXVlcnlTdHJpbmcpLAorCQkJCQkJCQkJCQkJIHRyYW5z YWN0aW9uYWwpOworCQkJCQkJfQorCiAJCQkJCQkvKiAuLi4gYW5kIGRvIGl0ICovCiAJCQkJCQlB bHRlclRhYmxlKGF0c3RtdCwgbG9ja21vZGUsICZhdGNvbnRleHQpOwogCkBAIC0xNTM5LDYgKzE3 MTIsMjQgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAogCQkJCQkv KiAuLi4gYW5kIGRvIGl0ICovCiAJCQkJCUV2ZW50VHJpZ2dlckFsdGVyVGFibGVTdGFydChwYXJz ZXRyZWUpOworCisJCQkJCS8qCisJCQkJCSAqIExvZyBDUkVBVEUgSU5ERVggY21kIGZvciBsb2dp Y2FsIHJlcGxpY2F0aW9uIGlmCisJCQkJCSAqIHRoZXJlIGlzIGFueSBwdWJsaWNhdGlvbiB3aXRo IGRhdGFiYXNlIGxldmVsIGRkbCBvbiBvcgorCQkJCQkgKiB0aGlzIFRBQkxFIGJlbG9uZ3MgdG8g YW55IHB1YmxpY2F0aW9uIHdpdGggdGFibGUgbGV2ZWwgZGRsIG9uLgorCQkJCQkgKi8KKwkJCQkJ aWYgKFhMb2dMb2dpY2FsSW5mb0FjdGl2ZSgpICYmCisJCQkJCQlkZGxfbmVlZF94bG9nKHJlbGlk LCBmYWxzZSwgaXNUb3BMZXZlbCkpCisJCQkJCXsKKwkJCQkJCWJvb2wgdHJhbnNhY3Rpb25hbCA9 IHRydWU7CisJCQkJCQljb25zdCBjaGFyKiBwcmVmaXggPSAiIjsKKwkJCQkJCUxvZ0xvZ2ljYWxE RExNZXNzYWdlKHByZWZpeCwKKwkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLAorCQkJCQkJCQkJCQkg cXVlcnlTdHJpbmcsCisJCQkJCQkJCQkJCSBzdHJsZW4ocXVlcnlTdHJpbmcpLAorCQkJCQkJCQkJ CQkgdHJhbnNhY3Rpb25hbCk7CisJCQkJCX0KKwogCQkJCQlhZGRyZXNzID0KIAkJCQkJCURlZmlu ZUluZGV4KHJlbGlkLAkvKiBPSUQgb2YgaGVhcCByZWxhdGlvbiAqLwogCQkJCQkJCQkJc3RtdCwK QEAgLTE3NjEsNyArMTk1Miw3IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgVF9Ecm9wU3RtdDoKLQkJCQlFeGVjRHJvcFN0bXQo KERyb3BTdG10ICopIHBhcnNldHJlZSwgaXNUb3BMZXZlbCk7CisJCQkJRXhlY0Ryb3BTdG10KHBz dGF0ZSwgKERyb3BTdG10ICopIHBhcnNldHJlZSwgaXNUb3BMZXZlbCk7CiAJCQkJLyogbm8gY29t bWFuZHMgc3Rhc2hlZCBmb3IgRFJPUCAqLwogCQkJCWNvbW1hbmRDb2xsZWN0ZWQgPSB0cnVlOwog CQkJCWJyZWFrOwpAQCAtMTk4Miw3ICsyMTczLDcgQEAgUHJvY2Vzc1V0aWxpdHlGb3JBbHRlclRh YmxlKE5vZGUgKnN0bXQsIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCkKICAqIERp c3BhdGNoIGZ1bmN0aW9uIGZvciBEcm9wU3RtdAogICovCiBzdGF0aWMgdm9pZAotRXhlY0Ryb3BT dG10KERyb3BTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCitFeGVjRHJvcFN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBEcm9wU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogewogCXN3aXRj aCAoc3RtdC0+cmVtb3ZlVHlwZSkKIAl7CkBAIC0xOTk3LDcgKzIxODgsNyBAQCBFeGVjRHJvcFN0 bXQoRHJvcFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAkJY2FzZSBPQkpFQ1RfVklFVzoK IAkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKIAkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToKLQkJ CVJlbW92ZVJlbGF0aW9ucyhzdG10KTsKKwkJCVJlbW92ZVJlbGF0aW9ucyhwc3RhdGUsIHN0bXQs IGlzVG9wTGV2ZWwpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlSZW1vdmVPYmplY3RzKHN0 bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3JtZ3JkZXNjLmMgYi9zcmMvYmlu L3BnX3dhbGR1bXAvcm1ncmRlc2MuYwppbmRleCA2YjhjMTdiYjRjLi43OTJmNDM4OTU5IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcm1ncmRlc2MuYworKysgYi9zcmMvYmluL3BnX3dh bGR1bXAvcm1ncmRlc2MuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3Nl cXVlbmNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgInJl cGxpY2F0aW9uL21lc3NhZ2UuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9kZGxtZXNzYWdlLmgi CiAjaW5jbHVkZSAicmVwbGljYXRpb24vb3JpZ2luLmgiCiAjaW5jbHVkZSAicm1ncmRlc2MuaCIK ICNpbmNsdWRlICJzdG9yYWdlL3N0YW5kYnlkZWZzLmgiCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3Mvcm1ncmxpc3QuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9ybWdybGlzdC5oCmluZGV4 IDlhNzQ3MjFjOTcuLjlkZTNiOGYyZWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9y bWdybGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9ybWdybGlzdC5oCkBAIC00NywzICs0 Nyw0IEBAIFBHX1JNR1IoUk1fQ09NTUlUX1RTX0lELCAiQ29tbWl0VHMiLCBjb21taXRfdHNfcmVk bywgY29tbWl0X3RzX2Rlc2MsIGNvbW1pdF90c19pCiBQR19STUdSKFJNX1JFUExPUklHSU5fSUQs ICJSZXBsaWNhdGlvbk9yaWdpbiIsIHJlcGxvcmlnaW5fcmVkbywgcmVwbG9yaWdpbl9kZXNjLCBy ZXBsb3JpZ2luX2lkZW50aWZ5LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKQogUEdfUk1HUihSTV9H RU5FUklDX0lELCAiR2VuZXJpYyIsIGdlbmVyaWNfcmVkbywgZ2VuZXJpY19kZXNjLCBnZW5lcmlj X2lkZW50aWZ5LCBOVUxMLCBOVUxMLCBnZW5lcmljX21hc2ssIE5VTEwpCiBQR19STUdSKFJNX0xP R0lDQUxNU0dfSUQsICJMb2dpY2FsTWVzc2FnZSIsIGxvZ2ljYWxtc2dfcmVkbywgbG9naWNhbG1z Z19kZXNjLCBsb2dpY2FsbXNnX2lkZW50aWZ5LCBOVUxMLCBOVUxMLCBOVUxMLCBsb2dpY2FsbXNn X2RlY29kZSkKK1BHX1JNR1IoUk1fTE9HSUNBTERETE1TR19JRCwgIkxvZ2ljYWxERExNZXNzYWdl IiwgbG9naWNhbGRkbG1zZ19yZWRvLCBsb2dpY2FsZGRsbXNnX2Rlc2MsIGxvZ2ljYWxkZGxtc2df aWRlbnRpZnksIE5VTEwsIE5VTEwsIE5VTEwsIGxvZ2ljYWxkZGxtc2dfZGVjb2RlKQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy90YWJsZWNtZHMuaAppbmRleCA1ZDQwMzdmMjZlLi42ODc4MTM2NWRlIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21t YW5kcy90YWJsZWNtZHMuaApAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvZGVw ZW5kZW5jeS5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUg Im5vZGVzL3BhcnNlbm9kZXMuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvbG9jay5oIgogI2luY2x1ZGUgInV0aWxzL3JlbGNhY2hlLmgiCiAKQEAg LTI3LDcgKzI4LDcgQEAgc3RydWN0IEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dDsJLyogYXZvaWQg aW5jbHVkaW5nIHRjb3AvdXRpbGl0eS5oIGhlcmUgKi8KIGV4dGVybiBPYmplY3RBZGRyZXNzIERl ZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQs CiAJCQkJCQkJCQlPYmplY3RBZGRyZXNzICp0eXBhZGRyZXNzLCBjb25zdCBjaGFyICpxdWVyeVN0 cmluZyk7CiAKLWV4dGVybiB2b2lkIFJlbW92ZVJlbGF0aW9ucyhEcm9wU3RtdCAqZHJvcCk7Citl eHRlcm4gdm9pZCBSZW1vdmVSZWxhdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEcm9wU3RtdCAq ZHJvcCwgYm9vbCBpc1RvcExldmVsKTsKIAogZXh0ZXJuIE9pZAlBbHRlclRhYmxlTG9va3VwUmVs YXRpb24oQWx0ZXJUYWJsZVN0bXQgKnN0bXQsIExPQ0tNT0RFIGxvY2ttb2RlKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vZGRsbWVzc2FnZS5oIGIvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vZGRsbWVzc2FnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjFlOGVmMjIyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9kZGxtZXNzYWdlLmgKQEAgLTAsMCArMSw0NyBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KiBkZGxtZXNzYWdlLmgKKyAqCSAgIEV4cG9ydHMgZnJvbSByZXBsaWNhdGlvbi9sb2dpY2FsL2Rk bG1lc3NhZ2UuYworICoKKyAqIENvcHlyaWdodCAoYykgMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9kZGxtZXNz YWdlLmgKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX0xPR0lDQUxfRERMX01F U1NBR0VfSAorI2RlZmluZSBQR19MT0dJQ0FMX0RETF9NRVNTQUdFX0gKKworI2luY2x1ZGUgImFj Y2Vzcy94bG9nLmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCisjaW5jbHVkZSAiYWNj ZXNzL3hsb2dyZWFkZXIuaCIKKworLyoKKyAqIEdlbmVyaWMgbG9naWNhbCBkZWNvZGluZyBEREwg bWVzc2FnZSB3YWwgcmVjb3JkLgorICovCit0eXBlZGVmIHN0cnVjdCB4bF9sb2dpY2FsX2RkbF9t ZXNzYWdlCit7CisJT2lkCQkJZGJJZDsJCQkvKiBkYXRhYmFzZSBPaWQgZW1pdHRlZCBmcm9tICov CisJYm9vbAkJdHJhbnNhY3Rpb25hbDsJLyogaXMgbWVzc2FnZSB0cmFuc2FjdGlvbmFsPyAqLwor CVNpemUJCXByZWZpeF9zaXplOwkvKiBsZW5ndGggb2YgcHJlZml4ICovCisJU2l6ZQkJcm9sZV9z aXplOyAgICAgIC8qIGxlbmd0aCBvZiB0aGUgcm9sZSB0aGF0IGV4ZWN1dGVzIHRoZSBEREwgY29t bWFuZCAqLworCVNpemUJCXNlYXJjaF9wYXRoX3NpemU7IC8qIGxlbmd0aCBvZiB0aGUgc2VhcmNo IHBhdGggKi8KKwlTaXplCQltZXNzYWdlX3NpemU7CSAgLyogc2l6ZSBvZiB0aGUgbWVzc2FnZSAq LworCS8qCisJICogcGF5bG9hZCwgaW5jbHVkaW5nIG51bGwtdGVybWluYXRlZCBwcmVmaXggb2Yg bGVuZ3RoIHByZWZpeF9zaXplCisJICogYW5kIG51bGwtdGVybWluYXRlZCByb2xlIG9mIGxlbmd0 aCByb2xlX3NpemUKKwkgKiBhbmQgbnVsbC10ZXJtaW5hdGVkIHNlYXJjaF9wYXRoIG9mIGxlbmd0 aCBzZWFyY2hfcGF0aF9zaXplCisJICovCisJY2hhcgkJbWVzc2FnZVtGTEVYSUJMRV9BUlJBWV9N RU1CRVJdOworfSB4bF9sb2dpY2FsX2RkbF9tZXNzYWdlOworCisjZGVmaW5lIFNpemVPZkxvZ2lj YWxERExNZXNzYWdlCShvZmZzZXRvZih4bF9sb2dpY2FsX2RkbF9tZXNzYWdlLCBtZXNzYWdlKSkK KworZXh0ZXJuIFhMb2dSZWNQdHIgTG9nTG9naWNhbERETE1lc3NhZ2UoY29uc3QgY2hhciAqcHJl Zml4LCBPaWQgcm9sZW9pZCwgY29uc3QgY2hhciAqZGRsX21lc3NhZ2UsCisJCQkJCQkJCQkgICBz aXplX3Qgc2l6ZSwgYm9vbCB0cmFuc2FjdGlvbmFsKTsKKworLyogUk1HUiBBUEkqLworI2RlZmlu ZSBYTE9HX0xPR0lDQUxfRERMX01FU1NBR0UJMHgwMAordm9pZAkJbG9naWNhbGRkbG1zZ19yZWRv KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKK3ZvaWQJCWxvZ2ljYWxkZGxtc2dfZGVzYyhTdHJp bmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOworY29uc3QgY2hhciAqbG9naWNh bGRkbG1zZ19pZGVudGlmeSh1aW50OCBpbmZvKTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX0xPR0lD QUxfRERMX01FU1NBR0VfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v ZGVjb2RlLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9kZWNvZGUuaAppbmRleCA3NDFiZjY1 Y2Y3Li40MjdhN2I5OTdkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9kZWNv ZGUuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9kZWNvZGUuaApAQCAtMjcsNiArMjcs NyBAQCBleHRlcm4gdm9pZCBoZWFwMl9kZWNvZGUoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4 LCBYTG9nUmVjb3JkQnVmZmVyICpidWYpOwogZXh0ZXJuIHZvaWQgeGFjdF9kZWNvZGUoTG9naWNh bERlY29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3JkQnVmZmVyICpidWYpOwogZXh0ZXJuIHZv aWQgc3RhbmRieV9kZWNvZGUoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3Jk QnVmZmVyICpidWYpOwogZXh0ZXJuIHZvaWQgbG9naWNhbG1zZ19kZWNvZGUoTG9naWNhbERlY29k aW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3JkQnVmZmVyICpidWYpOworZXh0ZXJuIHZvaWQgbG9n aWNhbGRkbG1zZ19kZWNvZGUoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3Jk QnVmZmVyICpidWYpOwogCiBleHRlcm4gdm9pZCBMb2dpY2FsRGVjb2RpbmdQcm9jZXNzUmVjb3Jk KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJCQkJCQkgWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vb3V0cHV0X3Bs dWdpbi5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vb3V0cHV0X3BsdWdpbi5oCmluZGV4IDUz OWRjOGU2OTcuLjViMWMyNDViNzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L291dHB1dF9wbHVnaW4uaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9vdXRwdXRfcGx1 Z2luLmgKQEAgLTg4LDYgKzg4LDE5IEBAIHR5cGVkZWYgdm9pZCAoKkxvZ2ljYWxEZWNvZGVNZXNz YWdlQ0IpIChzdHJ1Y3QgTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCQkJCQkJCQkJCVNp emUgbWVzc2FnZV9zaXplLAogCQkJCQkJCQkJCWNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogCisvKgor ICogQ2FsbGVkIGZvciB0aGUgbG9naWNhbCBkZWNvZGluZyBEREwgbWVzc2FnZXMuCisgKi8KK3R5 cGVkZWYgdm9pZCAoKkxvZ2ljYWxEZWNvZGVERExNZXNzYWdlQ0IpIChzdHJ1Y3QgTG9naWNhbERl Y29kaW5nQ29udGV4dCAqY3R4LAorCQkJCQkJCQkJCSAgIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwK KwkJCQkJCQkJCQkgICBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLAorCQkJCQkJCQkJCSAgIGJvb2wg dHJhbnNhY3Rpb25hbCwKKwkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkJCQkJ CQkJICAgY29uc3QgY2hhciAqcm9sZSwKKwkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpzZWFyY2hf cGF0aCwKKwkJCQkJCQkJCQkgICBTaXplIG1lc3NhZ2Vfc2l6ZSwKKwkJCQkJCQkJCQkgICBjb25z dCBjaGFyICptZXNzYWdlKTsKKwogLyoKICAqIEZpbHRlciBjaGFuZ2VzIGJ5IG9yaWdpbi4KICAq LwpAQCAtMTk5LDYgKzIxMiwyMCBAQCB0eXBlZGVmIHZvaWQgKCpMb2dpY2FsRGVjb2RlU3RyZWFt TWVzc2FnZUNCKSAoc3RydWN0IExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eAogCQkJCQkJCQkJ CQkgIFNpemUgbWVzc2FnZV9zaXplLAogCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKm1lc3NhZ2Up OwogCisvKgorICogQ2FsbGJhY2sgZm9yIHN0cmVhbWluZyBsb2dpY2FsIGRlY29kaW5nIERETCBt ZXNzYWdlcyBmcm9tIGluLXByb2dyZXNzCisgKiB0cmFuc2FjdGlvbnMuCisgKi8KK3R5cGVkZWYg dm9pZCAoKkxvZ2ljYWxEZWNvZGVTdHJlYW1ERExNZXNzYWdlQ0IpIChzdHJ1Y3QgTG9naWNhbERl Y29kaW5nQ29udGV4dCAqY3R4LAorCQkJCQkJCQkJCQkJIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwK KwkJCQkJCQkJCQkJCSBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLAorCQkJCQkJCQkJCQkJIGJvb2wg dHJhbnNhY3Rpb25hbCwKKwkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkJCQkJ CQkJCQkgY29uc3QgY2hhciAqcm9sZSwKKwkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpzZWFyY2hf cGF0aCwKKwkJCQkJCQkJCQkJCSBTaXplIG1lc3NhZ2Vfc2l6ZSwKKwkJCQkJCQkJCQkJCSBjb25z dCBjaGFyICptZXNzYWdlKTsKKwogLyoKICAqIENhbGxiYWNrIGZvciBzdHJlYW1pbmcgdHJ1bmNh dGVzIGZyb20gaW4tcHJvZ3Jlc3MgdHJhbnNhY3Rpb25zLgogICovCkBAIC0yMTksNiArMjQ2LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgT3V0cHV0UGx1Z2luQ2FsbGJhY2tzCiAJTG9naWNhbERlY29kZVRy dW5jYXRlQ0IgdHJ1bmNhdGVfY2I7CiAJTG9naWNhbERlY29kZUNvbW1pdENCIGNvbW1pdF9jYjsK IAlMb2dpY2FsRGVjb2RlTWVzc2FnZUNCIG1lc3NhZ2VfY2I7CisJTG9naWNhbERlY29kZURETE1l c3NhZ2VDQiBkZGxtZXNzYWdlX2NiOwogCUxvZ2ljYWxEZWNvZGVGaWx0ZXJCeU9yaWdpbkNCIGZp bHRlcl9ieV9vcmlnaW5fY2I7CiAJTG9naWNhbERlY29kZVNodXRkb3duQ0Igc2h1dGRvd25fY2I7 CiAKQEAgLTIzNyw2ICsyNjUsNyBAQCB0eXBlZGVmIHN0cnVjdCBPdXRwdXRQbHVnaW5DYWxsYmFj a3MKIAlMb2dpY2FsRGVjb2RlU3RyZWFtQ29tbWl0Q0Igc3RyZWFtX2NvbW1pdF9jYjsKIAlMb2dp Y2FsRGVjb2RlU3RyZWFtQ2hhbmdlQ0Igc3RyZWFtX2NoYW5nZV9jYjsKIAlMb2dpY2FsRGVjb2Rl U3RyZWFtTWVzc2FnZUNCIHN0cmVhbV9tZXNzYWdlX2NiOworCUxvZ2ljYWxEZWNvZGVTdHJlYW1E RExNZXNzYWdlQ0Igc3RyZWFtX2RkbG1lc3NhZ2VfY2I7CiAJTG9naWNhbERlY29kZVN0cmVhbVRy dW5jYXRlQ0Igc3RyZWFtX3RydW5jYXRlX2NiOwogfSBPdXRwdXRQbHVnaW5DYWxsYmFja3M7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Jlb3JkZXJidWZmZXIuaCBiL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Jlb3JkZXJidWZmZXIuaAppbmRleCA0YTAxZjg3N2U1Li5k ZDg5ZTA4ZWZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9yZW9yZGVyYnVm ZmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vcmVvcmRlcmJ1ZmZlci5oCkBAIC01 Niw2ICs1Niw3IEBAIHR5cGVkZWYgZW51bSBSZW9yZGVyQnVmZmVyQ2hhbmdlVHlwZQogCVJFT1JE RVJfQlVGRkVSX0NIQU5HRV9JTlNFUlQsCiAJUkVPUkRFUl9CVUZGRVJfQ0hBTkdFX1VQREFURSwK IAlSRU9SREVSX0JVRkZFUl9DSEFOR0VfREVMRVRFLAorCVJFT1JERVJfQlVGRkVSX0NIQU5HRV9E RExNRVNTQUdFLAogCVJFT1JERVJfQlVGRkVSX0NIQU5HRV9NRVNTQUdFLAogCVJFT1JERVJfQlVG RkVSX0NIQU5HRV9JTlZBTElEQVRJT04sCiAJUkVPUkRFUl9CVUZGRVJfQ0hBTkdFX0lOVEVSTkFM X1NOQVBTSE9ULApAQCAtMTMwLDYgKzEzMSwxNiBAQCB0eXBlZGVmIHN0cnVjdCBSZW9yZGVyQnVm ZmVyQ2hhbmdlCiAJCQljaGFyCSAgICptZXNzYWdlOwogCQl9CQkJbXNnOwogCisJCS8qIERETCBN ZXNzYWdlLiAqLworCQlzdHJ1Y3QKKwkJeworCQkJY2hhcgkgICAqcHJlZml4OworCQkJY2hhcgkg ICAqcm9sZTsKKwkJCWNoYXIJICAgKnNlYXJjaF9wYXRoOworCQkJU2l6ZQkJbWVzc2FnZV9zaXpl OworCQkJY2hhcgkgICAqbWVzc2FnZTsKKwkJfQkJCWRkbG1zZzsKKwogCQkvKiBOZXcgc25hcHNo b3QsIHNldCB3aGVuIGFjdGlvbiA9PSAqX0lOVEVSTkFMX1NOQVBTSE9UICovCiAJCVNuYXBzaG90 CXNuYXBzaG90OwogCkBAIC00MzAsNiArNDQxLDE3IEBAIHR5cGVkZWYgdm9pZCAoKlJlb3JkZXJC dWZmZXJNZXNzYWdlQ0IpIChSZW9yZGVyQnVmZmVyICpyYiwKIAkJCQkJCQkJCQljb25zdCBjaGFy ICpwcmVmaXgsIFNpemUgc3osCiAJCQkJCQkJCQkJY29uc3QgY2hhciAqbWVzc2FnZSk7CiAKKy8q IERETCBtZXNzYWdlIGNhbGxiYWNrIHNpZ25hdHVyZSAqLwordHlwZWRlZiB2b2lkICgqUmVvcmRl ckJ1ZmZlckRETE1lc3NhZ2VDQikgKFJlb3JkZXJCdWZmZXIgKnJiLAorCQkJCQkJCQkJCSAgIFJl b3JkZXJCdWZmZXJUWE4gKnR4biwKKwkJCQkJCQkJCQkgICBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNu LAorCQkJCQkJCQkJCSAgIGJvb2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkJCQkJCQkgICBjb25zdCBj aGFyICpwcmVmaXgsCisJCQkJCQkJCQkJICAgY29uc3QgY2hhciAqcm9sZSwKKwkJCQkJCQkJCQkg ICBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKKwkJCQkJCQkJCQkgICBTaXplIHN6LAorCQkJCQkJ CQkJCSAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOworCiAvKiBiZWdpbiBwcmVwYXJlIGNhbGxiYWNr IHNpZ25hdHVyZSAqLwogdHlwZWRlZiB2b2lkICgqUmVvcmRlckJ1ZmZlckJlZ2luUHJlcGFyZUNC KSAoUmVvcmRlckJ1ZmZlciAqcmIsCiAJCQkJCQkJCQkJCSBSZW9yZGVyQnVmZmVyVFhOICp0eG4p OwpAQCAtNDk2LDYgKzUxOCwxOCBAQCB0eXBlZGVmIHZvaWQgKCpSZW9yZGVyQnVmZmVyU3RyZWFt TWVzc2FnZUNCKSAoCiAJCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqcHJlZml4LCBTaXplIHN6LAog CQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogCisvKiBzdHJlYW0gRERMIG1lc3Nh Z2UgY2FsbGJhY2sgc2lnbmF0dXJlICovCit0eXBlZGVmIHZvaWQgKCpSZW9yZGVyQnVmZmVyU3Ry ZWFtRERMTWVzc2FnZUNCKSAoCisJCQkJCQkJCQkJCQkgUmVvcmRlckJ1ZmZlciAqcmIsCisJCQkJ CQkJCQkJCQkgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAorCQkJCQkJCQkJCQkJIFhMb2dSZWNQdHIg bWVzc2FnZV9sc24sCisJCQkJCQkJCQkJCQkgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCQkJ CQkJIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpyb2xlLAor CQkJCQkJCQkJCQkJIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCQkJCQkJCQkJIFNpemUg c3osCisJCQkJCQkJCQkJCQkgY29uc3QgY2hhciAqbWVzc2FnZSk7CisKIC8qIHN0cmVhbSB0cnVu Y2F0ZSBjYWxsYmFjayBzaWduYXR1cmUgKi8KIHR5cGVkZWYgdm9pZCAoKlJlb3JkZXJCdWZmZXJT dHJlYW1UcnVuY2F0ZUNCKSAoCiAJCQkJCQkJCQkJCSAgIFJlb3JkZXJCdWZmZXIgKnJiLApAQCAt NTQxLDYgKzU3NSw3IEBAIHN0cnVjdCBSZW9yZGVyQnVmZmVyCiAJUmVvcmRlckJ1ZmZlckFwcGx5 VHJ1bmNhdGVDQiBhcHBseV90cnVuY2F0ZTsKIAlSZW9yZGVyQnVmZmVyQ29tbWl0Q0IgY29tbWl0 OwogCVJlb3JkZXJCdWZmZXJNZXNzYWdlQ0IgbWVzc2FnZTsKKwlSZW9yZGVyQnVmZmVyRERMTWVz c2FnZUNCIGRkbG1lc3NhZ2U7CiAKIAkvKgogCSAqIENhbGxiYWNrcyB0byBiZSBjYWxsZWQgd2hl biBzdHJlYW1pbmcgYSB0cmFuc2FjdGlvbiBhdCBwcmVwYXJlIHRpbWUuCkBAIC01NjAsNiArNTk1 LDcgQEAgc3RydWN0IFJlb3JkZXJCdWZmZXIKIAlSZW9yZGVyQnVmZmVyU3RyZWFtQ29tbWl0Q0Ig c3RyZWFtX2NvbW1pdDsKIAlSZW9yZGVyQnVmZmVyU3RyZWFtQ2hhbmdlQ0Igc3RyZWFtX2NoYW5n ZTsKIAlSZW9yZGVyQnVmZmVyU3RyZWFtTWVzc2FnZUNCIHN0cmVhbV9tZXNzYWdlOworCVJlb3Jk ZXJCdWZmZXJTdHJlYW1ERExNZXNzYWdlQ0Igc3RyZWFtX2RkbG1lc3NhZ2U7CiAJUmVvcmRlckJ1 ZmZlclN0cmVhbVRydW5jYXRlQ0Igc3RyZWFtX3RydW5jYXRlOwogCiAJLyoKQEAgLTYzNSw2ICs2 NzEsOSBAQCBleHRlcm4gdm9pZCBSZW9yZGVyQnVmZmVyUXVldWVDaGFuZ2UoUmVvcmRlckJ1ZmZl ciAqLCBUcmFuc2FjdGlvbklkLAogZXh0ZXJuIHZvaWQgUmVvcmRlckJ1ZmZlclF1ZXVlTWVzc2Fn ZShSZW9yZGVyQnVmZmVyICosIFRyYW5zYWN0aW9uSWQsIFNuYXBzaG90IHNuYXBzaG90LCBYTG9n UmVjUHRyIGxzbiwKIAkJCQkJCQkJCSAgYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpw cmVmaXgsCiAJCQkJCQkJCQkgIFNpemUgbWVzc2FnZV9zaXplLCBjb25zdCBjaGFyICptZXNzYWdl KTsKK2V4dGVybiB2b2lkIFJlb3JkZXJCdWZmZXJRdWV1ZURETE1lc3NhZ2UoUmVvcmRlckJ1ZmZl ciAqLCBUcmFuc2FjdGlvbklkLCBTbmFwc2hvdCBzbmFwc2hvdCwgWExvZ1JlY1B0ciBsc24sCisJ CQkJCQkJCQkJIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBj aGFyICpyb2xlLAorCQkJCQkJCQkJCSBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwgU2l6ZSBtZXNz YWdlX3NpemUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogZXh0ZXJuIHZvaWQgUmVvcmRlckJ1ZmZl ckNvbW1pdChSZW9yZGVyQnVmZmVyICosIFRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJCVhMb2dSZWNQ dHIgY29tbWl0X2xzbiwgWExvZ1JlY1B0ciBlbmRfbHNuLAogCQkJCQkJCQlUaW1lc3RhbXBUeiBj b21taXRfdGltZSwgUmVwT3JpZ2luSWQgb3JpZ2luX2lkLCBYTG9nUmVjUHRyIG9yaWdpbl9sc24p OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCBlOWNlYTEx YTViLi41YjRiZWU3NGNiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dApAQCAtNjc2LDEwICs2NzYsMTAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfdGFi bGVfaW5zIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB0cnVuY2F0ZScpOwogUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfdGFibGVfaW5zIEFERCBU QUJMRSB0ZXN0cHViX3RibDUgKGEpOwkJLS0gb2sKIFxkUnArIHRlc3RwdWJfdGFibGVfaW5zCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl90YWJsZV9p bnMKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX3RhYmxlX2lucworICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCB8IERh dGFiYXNlIGxldmVsIERETCB8IFRhYmxlIGxldmVsIERETCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAg IHwgZiAgICAgICB8IHQgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl90Ymw1IiAoYSkKIApAQCAtODIxLDEwICs4 MjEsMTAgQEAgQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsX2JvdGhfZmlsdGVycyAoYSBpbnQsIGIg aW50LCBjIGludCwgUFJJTUFSWSBLRVkgKGEsYykpOwogQUxURVIgVEFCTEUgdGVzdHB1Yl90Ymxf Ym90aF9maWx0ZXJzIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdGVzdHB1Yl90YmxfYm90 aF9maWx0ZXJzX3BrZXk7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2JvdGhfZmlsdGVycyBB REQgVEFCTEUgdGVzdHB1Yl90YmxfYm90aF9maWx0ZXJzIChhLGMpIFdIRVJFIChjICE9IDEpOwog XGRScCsgdGVzdHB1Yl9ib3RoX2ZpbHRlcnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfYm90aF9maWx0ZXJzCi0gICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfYm90aF9maWx0ZXJzCisgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2UgbGV2ZWwgRERMIHwgVGFibGUg bGV2ZWwgRERMIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg ZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50 ZXN0cHViX3RibF9ib3RoX2ZpbHRlcnMiIChhLCBjKSBXSEVSRSAoYyA8PiAxKQogCi0tIAoyLjMy LjAKCg== --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0006-Add-couple-tests-for-DDL-replication-case.patch" Content-Disposition: attachment; filename="0006-Add-couple-tests-for-DDL-replication-case.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwpa5 RnJvbSBhYzkyNmQ1YzI4ODg1NzdiNDRjOTM1ZjVhNGMxMzZiMWE1ZDI5ZjE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCb3J1aSBZYW5nIDxib3J1aXlhbkBhbWF6b24uY29tPgpEYXRl OiBNb24sIDExIEFwciAyMDIyIDE4OjAyOjIxICswMDAwClN1YmplY3Q6IFtQQVRDSCAwNi8xMl0g QWRkIGNvdXBsZSB0ZXN0cyBmb3IgRERMIHJlcGxpY2F0aW9uIGNhc2UKCi0tLQogc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9kZGxzLnBsIHwgODAgKysrKysrKysrKysrKysrKysrKysr KysrKwogMSBmaWxlIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMzBfcmVwX2RkbHMucGwKaW5kZXggM2IxNWM2ZDlmMC4uNGUwNTIxMjA2OCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9kZGxzLnBsCisrKyBiL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBfZGRscy5wbApAQCAtMjY4LDYgKzI2OCw4NiBAQCAk bm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CiAkcmVzdWx0ID0gJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgZnJv bSBzMS50NjsiKTsKIGlzKCRyZXN1bHQsIHFxKDEpLCAnU0VMRUNUIElOVE8gczEudDYgaXMgcmVw bGljYXRlZCB3aXRoIGRhdGEnKTsKIAorIyBURVNUIENyZWF0ZSBEb21haW5TdG10Ciskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIERPTUFJTiBzMS5zcGFjZV9j aGVjayBBUyBWQVJDSEFSIE5PVCBOVUxMIENIRUNLICh2YWx1ZSAhfiAnXHMnKTsiKTsKKworJG5v ZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgdC50eXBub3RudWxs IGZyb20gcGdfY2F0YWxvZy5wZ190eXBlIHQgd2hlcmUgdC50eXBuYW1lPSdzcGFjZV9jaGVjayc7 Iik7CitpcygkcmVzdWx0LCBxcSh0KSwgJ0NyZWF0ZURvbWFpbiBTdG10IGlzIHJlcGxpY2F0dGVk Jyk7CisKKyMgVEVTVCBBbHRlckRvbWFpblN0bXQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJBbHRlciBkb21haW4gczEuc3BhY2VfY2hlY2sgZHJvcCBub3QgbnVsbDsi KTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVz dWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgdC50 eXBub3RudWxsIGZyb20gcGdfY2F0YWxvZy5wZ190eXBlIHQgd2hlcmUgdC50eXBuYW1lPSdzcGFj ZV9jaGVjayc7Iik7CitpcygkcmVzdWx0LCBxcShmKSwgJ0FMVEVSIERPTUFJTiBTdG10IGlzIHJl cGxpY2F0ZWQnKTsKKworI1RFU1QgREVGSU5FIFN0bXQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgQUdHUkVHQVRFIHMxLmluY19zdW0oaW50KSAoc2Z1bmMg PSBpbnQ0cGwsc3R5cGUgPSBpbnQsaW5pdGNvbmQgPSAxMCk7Iik7CisKKyRub2RlX3B1Ymxpc2hl ci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gcGdfY2F0YWxv Zy5wZ19wcm9jIHAgd2hlcmUgcC5wcm9uYW1lPSdpbmNfc3VtJzsiKTsKK2lzKCRyZXN1bHQsIHFx KDEpLCAnRGVmaW5lIHN0bXQgaXMgcmVwbGljYXRlZCcpOworCisjVEVTVCBDb21wb3NpdGVUeXBl U3RtdAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUWVBF IHMxLmNvbXBmb28gQVMgKGYxIGludCwgZjIgdGV4dCk7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gcGdfY2F0YWxvZy5w Z190eXBlIHQgd2hlcmUgdC50eXBuYW1lPSdjb21wZm9vJzsiKTsKK2lzKCRyZXN1bHQsIHFxKDEp LCAnQ29tcG9zaXRlVHlwZSBTdG10IGlzIHJlcGxpY2F0ZWQnKTsKKworI1RFU1QgQ3JlYXRlRW51 bSBTdG10Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRZ UEUgczEubW9vZCBBUyBFTlVNICgnc2FkJywgJ29rJywgJ2hhcHB5Jyk7Iik7CisKKyRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gcGdf Y2F0YWxvZy5wZ190eXBlIHQgd2hlcmUgdC50eXBuYW1lPSdtb29kJzsiKTsKK2lzKCRyZXN1bHQs IHFxKDEpLCAnQ3JlYXRlRW51bVR5cGUgU3RtdCBpcyByZXBsaWNhdGVkJyk7CisKKyNURVNUIEFs dGVyRW51bSBTdG10Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQUxU RVIgVFlQRSBzMS5tb29kIFJFTkFNRSBWQUxVRSAnc2FkJyB0byAnZmluZSc7Iik7CisKKyRub2Rl X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00g cGdfY2F0YWxvZy5wZ19lbnVtIGUsIHBnX2NhdGFsb2cucGdfdHlwZSB0ICBXSEVSRSBlLmVudW10 eXBpZCA9IHQub2lkIEFORCB0LnR5cG5hbWU9J21vb2QnIEFORCBlLmVudW1sYWJlbD0nZmluZSc7 Iik7CitpcygkcmVzdWx0LCBxcSgxKSwgJ0FsdGVyRW51bVR5cGUgU3RtdCBpcyByZXBsaWNhdGVk Jyk7CisKKyNURVNUIENyZWF0ZVJhbmdlIFN0bXQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgVFlQRSBmbG9hdHJhbmdlIEFTIFJBTkdFIChzdWJ0eXBlID0g ZmxvYXQ4LHN1YnR5cGVfZGlmZiA9IGZsb2F0OG1pKTsiKTsKKworJG5vZGVfcHVibGlzaGVyLT53 YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgZnJvbSBwZ19jYXRhbG9nLnBn X3R5cGUgdCB3aGVyZSB0LnR5cG5hbWU9J2Zsb2F0cmFuZ2UnOyIpOworaXMoJHJlc3VsdCwgcXEo MSksICdDcmVhdGVSYW5nZSBTdG10IGlzIHJlcGxpY2F0ZWQnKTsKKworI1RFU1QgVklFVyBTdG10 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFZJRVcgczEu dmlzdGEgQVMgU0VMRUNUICdIZWxsbyBXb3JsZCc7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gcGdfY2F0YWxvZy5wZ19j bGFzcyBjIHdoZXJlIGMucmVsbmFtZT0ndmlzdGEnOyIpOworaXMoJHJlc3VsdCwgcXEoMSksICdW SUVXIFN0bXQgaXMgcmVwbGljYXRlZCcpOworCisjVEVTVCBDcmVhdGVGdW5jdGlvbiBTdG10Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIEZVTkNUSU9OIHMx LmFkZChhIGludGVnZXIsIGIgaW50ZWdlcikgUkVUVVJOUyBpbnRlZ2VyIExBTkdVQUdFIFNRTCBJ TU1VVEFCTEUgUkVUVVJOIGEgKyBiOyIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2Nh dGNodXAoJ215c3ViJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBmcm9tIHBnX2NhdGFsb2cucGdfcHJvYyBwIHdo ZXJlIHAucHJvbmFtZT0nYWRkJzsiKTsKK2lzKCRyZXN1bHQsIHFxKDEpLCAnQ3JlYXRlRnVuY3Rp b24gU3RtdCBpcyByZXBsaWNhdGVkJyk7CisKKyNURVNUIENyZWF0ZUNhc3QgU3RtdAorJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBDQVNUIChpbnQgQVMgaW50 NCkgV0lUSCBGVU5DVElPTiBhZGQoaW50LGludCkgQVMgQVNTSUdOTUVOVDsiKTsKKworJG5vZGVf cHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19jYXRhbG9nLnBnX2Nhc3QgYywgcGdfY2F0YWxvZy5wZ19wcm9jIHAgV0hFUkUgcC5wcm9uYW1l PSdhZGQnIEFORCBjLmNhc3RmdW5jPXAub2lkOyIpOworaXMoJHJlc3VsdCwgcXEoMSksICdDcmVh dGVDYXN0IFN0bXQgaXMgcmVwbGljYXRlZCcpOworCiAjVE9ETyBURVNUIGNlcnRhaW4gRERMcyBh cmUgbm90IHJlcGxpY2F0ZWQKIAogcGFzcyAiRERMIHJlcGxpY2F0aW9uIHRlc3RzIHBhc3NlZCEi OwotLSAKMi4zMi4wCgo= --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0008-Fail-replication-worker-on-DDL-command-that-rewrites.patch" Content-Disposition: attachment; filename="0008-Fail-replication-worker-on-DDL-command-that-rewrites.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwpb7 RnJvbSA0YmJiMDY3NjcwNTUyM2E3MjRlM2E4NjQzNjkwNjU0NGU2YWM1ZTA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IEZyaSwgMjkgQXByIDIwMjIgMTY6NTc6MDMgKzAwMDAKU3ViamVjdDogW1BBVENIIDA4 LzEyXSBGYWlsIHJlcGxpY2F0aW9uIHdvcmtlciBvbiBEREwgY29tbWFuZCB0aGF0IHJld3JpdGVz CiB0YWJsZSB1c2luZyB2b2xhdGlsZSBmdW5jdGlvbnMsIHN1Y2ggYXMgQUxURVIgVEFCTEUgdGFi IEFERCBDT0xVTU4gY29sCiBERUZBVUxUIHZvbGF0aWxlX2V4cHIuIFRoaXMgaXMgdG8gYXZvaWQg ZGF0YSBtaXNtYXRjaCBjb21wYXJlZCB0byB0aGUKIHB1Ymxpc2hlci4gV2UgY2FuIHBvdGVudGlh bGx5IHVuYmxvY2sgdGhpcyB0eXBlIG9mIGNvbW1hbmQgd2hlbiB0YWJsZSByZXdyaXRlCiBpcyBz dXBwb3J0ZWQgaW4gbG9naWNhbCByZXBsaWNhdGlvbi4KCi0tLQogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC93b3JrZXIuYyB8IDQ0ICsrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9kZGxzLnBsICB8IDIyICsrKysrKysrKysrKwog MiBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvd29ya2VyLmMKaW5kZXggOTA1ZjQ3ZmFmNS4uMDFkYjEwMmUzYyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC0xNTcsNiArMTU3LDcgQEAKICNp bmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVy LmgiCiAjaW5jbHVkZSAicGFyc2VyL2FuYWx5emUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vf ZXhwci5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3Jr ZXIuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2ludGVycnVwdC5oIgpAQCAtMjU0Nyw2ICsyNTQ4 LDggQEAgYXBwbHlfZXhlY3V0ZV9zcWxfY29tbWFuZChjb25zdCBjaGFyICpjbWRzdHIsIGNvbnN0 IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNlYXIKIAogCQljb21tYW5kVGFnID0gQ3JlYXRlQ29t bWFuZFRhZygoTm9kZSAqKWNvbW1hbmQpOwogCisJCS8qIFRoZSBmb2xsb3dpbmcgRERMIGNvbW1h bmRzIG5lZWQgc3BlY2lhbCBoYW5kbGluZyAqLworCiAJCS8qCiAJCSAqIFJlbWVtYmVyIHRoZSBz Y2hlbWFuYW1lIGFuZCByZWxuYW1lIGlmIHRoZSBjbWQgaXMgZ29pbmcgdG8gY3JlYXRlIGEgdGFi bGUKIAkJICogYmVjYXVzZSB3ZSB3aWxsIG5lZWQgdGhlbSBmb3Igc29tZSBwb3N0LXByb2Nlc3Np bmcgYWZ0ZXIgd2UKQEAgLTI1OTQsNiArMjU5Nyw0NyBAQCBhcHBseV9leGVjdXRlX3NxbF9jb21t YW5kKGNvbnN0IGNoYXIgKmNtZHN0ciwgY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2Vh cgogCQkJCXNzdG10LT5pbnRvQ2xhdXNlLT5za2lwRGF0YSA9IHRydWU7CiAJCQl9CiAJCX0KKwkJ LyoKKwkJICogQUxURVIgVEFCTEUgQUREIENPTFVNTiBjb2wgREVGQVVMVCB2b2xhdGlsZV9leHBy IGlzIG5vdCBzdXBwb3J0ZWQuCisJCSAqIFVudGlsIHdlIHN1cHBvcnQgbG9naWNhbCByZXBsaWNh dGlvbiBvZiB0YWJsZSByZXdyaXRlLCBzZWUgQVRSZXdyaXRlVGFibGVzKCkKKwkJICogZm9yIGRl dGFpbHMgb24gdGFibGUgcmV3cml0ZS4KKwkJICovCisJCWVsc2UgaWYgKGNvbW1hbmRUYWcgPT0g Q01EVEFHX0FMVEVSX1RBQkxFKQorCQl7CisJCQlBbHRlclRhYmxlU3RtdCAqYXRzdG10ID0gKEFs dGVyVGFibGVTdG10ICopIGNvbW1hbmQtPnN0bXQ7CisJCQlMaXN0Q2VsbCAqbGM7CisKKwkJCWZv cmVhY2gobGMsIGF0c3RtdC0+Y21kcykKKwkJCXsKKwkJCQlBbHRlclRhYmxlQ21kICpjbWQgPSBs Zmlyc3Rfbm9kZShBbHRlclRhYmxlQ21kLCBsYyk7CisKKwkJCQlpZiAoY21kLT5zdWJ0eXBlID09 IEFUX0FkZENvbHVtbikKKwkJCQl7CisJCQkJCUNvbHVtbkRlZiAqY29sRGVmOworCQkJCQlMaXN0 Q2VsbCAqYzsKKworCQkJCQljb2xEZWYgPSBjYXN0Tm9kZShDb2x1bW5EZWYsIGNtZC0+ZGVmKTsK KwkJCQkJZm9yZWFjaChjLCBjb2xEZWYtPmNvbnN0cmFpbnRzKQorCQkJCQl7CisJCQkJCQlDb25z dHJhaW50ICpjb24gPSBsZmlyc3Rfbm9kZShDb25zdHJhaW50LCBjKTsKKworCQkJCQkJaWYgKGNv bi0+Y29udHlwZSA9PSBDT05TVFJfREVGQVVMVCkKKwkJCQkJCXsKKwkJCQkJCQlOb2RlICpleHBy OworCQkJCQkJCVBhcnNlU3RhdGUgKnBzdGF0ZSA9IG1ha2VfcGFyc2VzdGF0ZShOVUxMKTsKKwor CQkJCQkJCWV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgY29weU9iamVjdChjb24tPnJhd19l eHByKSwgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUKTsKKwkJCQkJCQlpZiAoY29udGFpbl92b2xh dGlsZV9mdW5jdGlvbnMoZXhwcikpCisJCQkJCQkJeworCQkJCQkJCQllbG9nKEVSUk9SLAorCQkJ CQkJCQkJIkRvIG5vdCBzdXBwb3J0IHJlcGxpY2F0aW9uIG9mIERETCBzdGF0ZW1lbnQgdGhhdCBy ZXdyaXRlcyB0YWJsZSB1c2luZyB2b2xhdGlsZSBmdW5jdGlvbnM6ICVzIiwKKwkJCQkJCQkJCWNt ZHN0cik7CisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CiAKIAkJ LyoKIAkJICogU2V0IHVwIGEgc25hcHNob3QgaWYgcGFyc2UgYW5hbHlzaXMvcGxhbm5pbmcgd2ls bCBuZWVkIG9uZS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBf ZGRscy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBfZGRscy5wbAppbmRleCAz NGI5ZDUxZWIxLi5iNGRmMWJmZWZkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24v dC8wMzBfcmVwX2RkbHMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9k ZGxzLnBsCkBAIC0zODYsNyArMzg2LDI5IEBAICRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0 Y2h1cCgnbXlzdWInKTsKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHMxLnByb2NfdGFibGUgd2hlcmUgYzMgPSAy MjsiKTsKIGlzKCRyZXN1bHQsIHFxKDEpLCAnRERMcyBpbiBwcm9jZWR1cmUgYXJlIHJlcGxpY2F0 ZWQnKTsKIAorIyBUZXN0IEFsdGVyIHRhYmxlIGFsdGVyIGNvbHVtbiB0eXBlIHN0bXQgaXMgcmVw bGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFRB QkxFIHRlc3RfcmVwIEFMVEVSIENPTFVNTiBuYW1lIHR5cGUgVEVYVDsiKTsKKworJG5vZGVfcHVi bGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgZGF0YV90eXBlIEZST00gaW5m b3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVfbmFtZSA9ICd0ZXN0X3JlcCcgYW5k IGNvbHVtbl9uYW1lID0gJ25hbWUnOyIpOworaXMoJHJlc3VsdCwgcXEodGV4dCksICdBbHRlciB0 YWJsZSBjb2x1bW4gdHlwZSBzdG10IGlzIHJlcGxpY2F0ZWQnKTsKKworIyBUZXN0IEFsdGVyIHRh YmxlIGFkZCBjb2x1bW4gZGVmYXVsdCAwLjAxIGlzIHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRFUiBUQUJMRSB0ZXN0X3JlcCBBREQgQ09MVU1O IG5vbl92b2xhdGlsZSBkb3VibGUgcHJlY2lzaW9uIERFRkFVTFQgMC4wMTsiKTsKKworJG5vZGVf cHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgZnJvbSB0 ZXN0X3JlcCB3aGVyZSBub25fdm9sYXRpbGUgPSAwLjAxOyIpOworaXMoJHJlc3VsdCwgcXEoMiks ICdBbHRlciB0YWJsZSBhZGQgY29sdW1uIGRlZmF1bHQgMC4wMSBpcyByZXBsaWNhdGVkJyk7CisK ICNUT0RPIFRFU1QgY2VydGFpbiBERExzIGFyZSBub3QgcmVwbGljYXRlZAorIyBUZXN0IERETCBz dGF0ZW1lbnQgdGhhdCByZXdyaXRlcyB0YWJsZSB3aXRoIHZvbGF0aWxlIGZ1bmN0aW9ucyBhcmUg bm90IHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJB TFRFUiBUQUJMRSB0ZXN0X3JlcCBBREQgQ09MVU1OIHZvbGF0aWxlIGRvdWJsZSBwcmVjaXNpb24g REVGQVVMVCAzICogcmFuZG9tKCk7Iik7CiskcmVzdWx0ID0gJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIGluZm9ybWF0aW9uX3NjaGVt YS5jb2x1bW5zIFdIRVJFIHRhYmxlX25hbWUgPSAndGVzdF9yZXAnIGFuZCBjb2x1bW5fbmFtZSA9 ICd2b2xhdGlsZSc7Iik7CitpcygkcmVzdWx0LCBxcSgxKSwgJ0FsdGVyIHRhYmxlIGFkZCBjb2x1 bW4gZGVmYXVsdCByYW5kb20oKSBpcyBleGVjdXRlZCBvbiB0aGUgcHVibGlzaGVyIERCLicpOwor CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3JfbG9nKCJEbyBub3Qgc3VwcG9y dCByZXBsaWNhdGlvbiBvZiBEREwgc3RhdGVtZW50IHRoYXQgcmV3cml0ZXMgdGFibGUgdXNpbmcg dm9sYXRpbGUgZnVuY3Rpb25zIiwgJHJlc3VsdCk7CiAKIHBhc3MgIkRETCByZXBsaWNhdGlvbiB0 ZXN0cyBwYXNzZWQhIjsKIAotLSAKMi4zMi4wCgo= --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0009-Support-replication-of-DDL-type-T_RenameStmt-table-r.patch" Content-Disposition: attachment; filename="0009-Support-replication-of-DDL-type-T_RenameStmt-table-r.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwpc8 RnJvbSA3ZTY2NDEyZjkyNjc0ZGNiMWFkZjI5MTQwYWFjNjkyMzQwNDkxZTAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQb255Ym95WWJyIDw5NGJvcmVseWFuZ0BnbWFpbC5jb20+CkRh dGU6IFdlZCwgMTEgTWF5IDIwMjIgMTU6NDY6NDAgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzEy XSBTdXBwb3J0IHJlcGxpY2F0aW9uIG9mIERETCB0eXBlIFRfUmVuYW1lU3RtdDogdGFibGUKIHJl bmFtZSBpcyBhbGxvd2VkIGluIGJvdGggZGF0YWJhc2UgbGV2ZWwgYW5kIHRhYmxlIGxldmVsIERE TCByZXBsaWNhdGlvbi4KIFJlbmFtZSBvZiBvdGhlciBvYmplY3RzIGFyZSBvbmx5IGFsbG93ZWQg aW4gZGF0YWJhc2UgbGV2ZWwgRERMIHJlcGxpY2F0aW9uLgoKQ28tYXV0aG9yZWQtYnk6IEJvcnVp IFlhbmcgPGJvcnVpeWFuQGFtYXpvbi5jb20+Ci0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYyAgICAgICAgICAgIHwgIDUgKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgICAgICAgIHwgMTUgKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAg ICAgICAgICAgICB8IDIwICsrKysrKysrKysrKy0tLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvYWx0 ZXIuaCAgICAgICAgICAgIHwgIDMgKystCiBzcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMu aCAgICAgICAgfCAgMiArLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9kZGxzLnBs IHwgMzMgKysrKysrKysrKysrKysrKysrKysrKystLQogNiBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNl cnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCA1NDU2Yjgy MjJiLi4xY2E4Zjk5ZTBjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKQEAgLTMyOCw3ICszMjgsOCBAQCBB bHRlck9iamVjdFJlbmFtZV9pbnRlcm5hbChSZWxhdGlvbiByZWwsIE9pZCBvYmplY3RJZCwgY29u c3QgY2hhciAqbmV3X25hbWUpCiAgKiBSZXR1cm4gdmFsdWUgaXMgdGhlIGFkZHJlc3Mgb2YgdGhl IHJlbmFtZWQgb2JqZWN0LgogICovCiBPYmplY3RBZGRyZXNzCi1FeGVjUmVuYW1lU3RtdChSZW5h bWVTdG10ICpzdG10KQorRXhlY1JlbmFtZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZW5hbWVT dG10ICpzdG10LAorCQkJCWJvb2wgaXNDb21wbGV0ZVF1ZXJ5KQogewogCXN3aXRjaCAoc3RtdC0+ cmVuYW1lVHlwZSkKIAl7CkBAIC0zNTQsNyArMzU1LDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1l U3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKIAkJY2FzZSBPQkpFQ1RfSU5ERVg6 CiAJCWNhc2UgT0JKRUNUX0ZPUkVJR05fVEFCTEU6Ci0JCQlyZXR1cm4gUmVuYW1lUmVsYXRpb24o c3RtdCk7CisJCQlyZXR1cm4gUmVuYW1lUmVsYXRpb24ocHN0YXRlLCBzdG10LCBpc0NvbXBsZXRl UXVlcnkpOwogCiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRF OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAzYzliNjQwOWNhLi42NTM4NmYyNjQxIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMzgyMCwxMSArMzgyMCwxMiBAQCBSZW5hbWVD b25zdHJhaW50KFJlbmFtZVN0bXQgKnN0bXQpCiAgKiBSRU5BTUUKICAqLwogT2JqZWN0QWRkcmVz cwotUmVuYW1lUmVsYXRpb24oUmVuYW1lU3RtdCAqc3RtdCkKK1JlbmFtZVJlbGF0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgUmVuYW1lU3RtdCAqc3RtdCwgYm9vbCBpc0NvbXBsZXRlUXVlcnkpCiB7 CiAJYm9vbAkJaXNfaW5kZXhfc3RtdCA9IHN0bXQtPnJlbmFtZVR5cGUgPT0gT0JKRUNUX0lOREVY OwogCU9pZAkJCXJlbGlkOwogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKKwlib29sCQlkZGx4bG9n ID0gWExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkgJiYgaXNDb21wbGV0ZVF1ZXJ5OwogCiAJLyoKIAkg KiBHcmFiIGFuIGV4Y2x1c2l2ZSBsb2NrIG9uIHRoZSB0YXJnZXQgdGFibGUsIGluZGV4LCBzZXF1 ZW5jZSwgdmlldywKQEAgLTM4NzIsNiArMzg3MywxOCBAQCBSZW5hbWVSZWxhdGlvbihSZW5hbWVT dG10ICpzdG10KQogCQlpc19pbmRleF9zdG10ID0gb2JqX2lzX2luZGV4OwogCX0KIAorCWlmIChk ZGx4bG9nICYmCisJCWRkbF9uZWVkX3hsb2cocmVsaWQsIGZhbHNlKSkKKwl7CisJCWJvb2wgdHJh bnNhY3Rpb25hbCA9IHRydWU7CisJCWNvbnN0IGNoYXIqIHByZWZpeCA9ICIiOworCQlMb2dMb2dp Y2FsRERMTWVzc2FnZShwcmVmaXgsCisJCQkJCQkJIEdldFVzZXJJZCgpLAorCQkJCQkJCSBwc3Rh dGUtPnBfc291cmNldGV4dCwKKwkJCQkJCQkgc3RybGVuKHBzdGF0ZS0+cF9zb3VyY2V0ZXh0KSwK KwkJCQkJCQkgdHJhbnNhY3Rpb25hbCk7CisJfQorCiAJLyogRG8gdGhlIHdvcmsgKi8KIAlSZW5h bWVSZWxhdGlvbkludGVybmFsKHJlbGlkLCBzdG10LT5uZXduYW1lLCBmYWxzZSwgaXNfaW5kZXhf c3RtdCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggZTllNzU2NzIwOS4uMWFiZDc3YTYwZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMKQEAgLTEwMDIsNyArMTAwMiw3IEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBs YW5uZWRTdG10ICpwc3RtdCwKIAkJCQkJCQkJCSAgIGNvbnRleHQsIHBhcmFtcywgcXVlcnlFbnYs CiAJCQkJCQkJCQkgICBkZXN0LCBxYyk7CiAJCQkJZWxzZQotCQkJCQlFeGVjUmVuYW1lU3RtdChz dG10KTsKKwkJCQkJRXhlY1JlbmFtZVN0bXQocHN0YXRlLCBzdG10LCBjb250ZXh0ICE9IFBST0NF U1NfVVRJTElUWV9TVUJDT01NQU5EKTsKIAkJCX0KIAkJCWJyZWFrOwogCkBAIC0xMTk1LDggKzEx OTUsMjAgQEAgTG9nTG9naWNhbERETENvbW1hbmQoTm9kZSAqcGFyc2V0cmVlLCBjb25zdCBjaGFy ICpxdWVyeVN0cmluZykKIAkJICovCiAJCWNhc2UgVF9BbHRlclRhYmxlU3RtdDoKIAkJY2FzZSBU X0luZGV4U3RtdDoKLQkJY2FzZSBUX1JlbmFtZVN0bXQ6IC8qIFRPRE8gKi8KLQkJY2FzZSBUX0Fs dGVyT3duZXJTdG10OiAvKiBUT0RPICovCisJCWNhc2UgVF9SZW5hbWVTdG10OgorCQl7CisJCQlS ZW5hbWVTdG10ICpzdG10ID0gKFJlbmFtZVN0bXQgKikgcGFyc2V0cmVlOworCQkJaWYoIXN0bXQt PnJlbGF0aW9uICYmIGRkbF9uZWVkX3hsb2coSW52YWxpZE9pZCwgdHJ1ZSkpeworCQkJCWJvb2wg dHJhbnNhY3Rpb25hbCA9IHRydWU7CisJCQkJY29uc3QgY2hhciogcHJlZml4ID0gIiI7CisJCQkJ TG9nTG9naWNhbERETE1lc3NhZ2UocHJlZml4LAorCQkJCQkJCQkJR2V0VXNlcklkKCksCisJCQkJ CQkJCQlxdWVyeVN0cmluZywKKwkJCQkJCQkJCXN0cmxlbihxdWVyeVN0cmluZyksCisJCQkJCQkJ CQl0cmFuc2FjdGlvbmFsKTsKKwkJCX0KKwkJfQorCQljYXNlIFRfQWx0ZXJPd25lclN0bXQ6IC8q IFRPRE8sIGl0IGlzIGRhdGEgY29udHJvbCBjYXNlLCBzYXZlIGZvciBsYXRlciB1cGRhdGUgKi8K IAkJCWJyZWFrOwogCiAJCS8qIERyb3BTdG10IGRlcGVuZHMgb24gdGhlIHJlbW92ZVR5cGUgKi8K QEAgLTIwMDgsNyArMjAyMCw3IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgVF9SZW5hbWVTdG10OgotCQkJCWFkZHJlc3MgPSBF eGVjUmVuYW1lU3RtdCgoUmVuYW1lU3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWFkZHJlc3MgPSBF eGVjUmVuYW1lU3RtdChwc3RhdGUsIChSZW5hbWVTdG10ICopIHBhcnNldHJlZSwgaXNDb21wbGV0 ZVF1ZXJ5KTsKIAkJCQlicmVhazsKIAogCQkJY2FzZSBUX0FsdGVyT2JqZWN0RGVwZW5kc1N0bXQ6 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9hbHRlci5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvYWx0ZXIuaAppbmRleCA1MmY1ZTZmNmQyLi5kZjkzMzNlYjkzIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jb21tYW5kcy9hbHRlci5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2FsdGVyLmgKQEAgLTE3LDkgKzE3LDEwIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAibm9kZXMv cGFyc2Vub2Rlcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCiAjaW5jbHVkZSAi dXRpbHMvcmVsY2FjaGUuaCIKIAotZXh0ZXJuIE9iamVjdEFkZHJlc3MgRXhlY1JlbmFtZVN0bXQo UmVuYW1lU3RtdCAqc3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVzcyBFeGVjUmVuYW1lU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIFJlbmFtZVN0bXQgKnN0bXQsIGJvb2wgaXNDb21wbGV0ZVF1ZXJ5 KTsKIAogZXh0ZXJuIE9iamVjdEFkZHJlc3MgRXhlY0FsdGVyT2JqZWN0RGVwZW5kc1N0bXQoQWx0 ZXJPYmplY3REZXBlbmRzU3RtdCAqc3RtdCwKIAkJCQkJCQkJCQkJCU9iamVjdEFkZHJlc3MgKnJl ZkFkZHJlc3MpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaAppbmRleCAyNDEwNmRlMmU1Li5mOTZi YjU3ZDU2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaAorKysg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaApAQCAtNzQsNyArNzQsNyBAQCBleHRl cm4gT2JqZWN0QWRkcmVzcyByZW5hbWVhdHQoUmVuYW1lU3RtdCAqc3RtdCk7CiAKIGV4dGVybiBP YmplY3RBZGRyZXNzIFJlbmFtZUNvbnN0cmFpbnQoUmVuYW1lU3RtdCAqc3RtdCk7CiAKLWV4dGVy biBPYmplY3RBZGRyZXNzIFJlbmFtZVJlbGF0aW9uKFJlbmFtZVN0bXQgKnN0bXQpOworZXh0ZXJu IE9iamVjdEFkZHJlc3MgUmVuYW1lUmVsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZW5hbWVT dG10ICpzdG10LCBib29sIGlzQ29tcGxldGVRdWVyeSk7CiAKIGV4dGVybiB2b2lkIFJlbmFtZVJl bGF0aW9uSW50ZXJuYWwoT2lkIG15cmVsaWQsCiAJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKm5ld3Jl bG5hbWUsIGJvb2wgaXNfaW50ZXJuYWwsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMzBfcmVwX2RkbHMucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfcmVwX2Rk bHMucGwKaW5kZXggYjRkZjFiZmVmZC4uNTExMjZiNDg5YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9kZGxzLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzMF9yZXBfZGRscy5wbApAQCAtMzAsNyArMzAsNiBAQCAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgJGRkbCk7CiAkbm9kZV9zdWJzY3JpYmVyMi0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICRkZGwpOwogCiBteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJs aXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ci0KICMgbXlwdWIgaGFzIHB1YmRk bF9kYXRhYmFzZSBvbgogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAki Q1JFQVRFIFBVQkxJQ0FUSU9OIG15cHViIEZPUiBBTEwgVEFCTEVTOyIpOwpAQCAtMjY5LDcgKzI2 OCw3IEBAICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IlNFTEVDVCBjb3VudCgqKSBmcm9tIHMxLnQ2OyIpCiBpcygkcmVzdWx0LCBxcSgxKSwgJ1NFTEVD VCBJTlRPIHMxLnQ2IGlzIHJlcGxpY2F0ZWQgd2l0aCBkYXRhJyk7CiAKICMgVEVTVCBDcmVhdGUg RG9tYWluU3RtdAotJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFU RSBET01BSU4gczEuc3BhY2VfY2hlY2sgQVMgVkFSQ0hBUiBOT1QgTlVMTCBDSEVDSyAodmFsdWUg IX4gJ1xzJyk7Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JF QVRFIERPTUFJTiBzMS5zcGFjZV9jaGVjayBBUyBWQVJDSEFSIE5PVCBOVUxMIENIRUNLICh2YWx1 ZSAhfiAnXFxzJyk7Iik7CiAKICRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnbXlz dWInKTsKIApAQCAtMzQ4LDYgKzM0NywzNiBAQCAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2Nh dGNodXAoJ215c3ViJyk7CiAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19jYXRhbG9nLnBnX2Nhc3QgYywgcGdf Y2F0YWxvZy5wZ19wcm9jIHAgV0hFUkUgcC5wcm9uYW1lPSdhZGQnIEFORCBjLmNhc3RmdW5jPXAu b2lkOyIpOwogaXMoJHJlc3VsdCwgcXEoMSksICdDcmVhdGVDYXN0IFN0bXQgaXMgcmVwbGljYXRl ZCcpOwogCisjVEVTVCBSZW5hbWVTdG10IGZvciBGVU5DVElPTgorJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIEZVTkNUSU9OIGFkZCBSRU5BTUUgVE8gcGx1czsi KTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVz dWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291 bnQoKikgZnJvbSBwZ19jYXRhbG9nLnBnX3Byb2MgcCB3aGVyZSBwLnByb25hbWU9J3BsdXMnOyIp OworaXMoJHJlc3VsdCwgcXEoMSksICdSRU5BTUUgRlVOQ1RJT04gU3RtdCBpcyByZXBsaWNhdGVk Jyk7CisKKyNURVNUIFJlbmFtZVN0bXQgZm9yIHRhYmxlCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIERBVEFCQVNFIGRiMTsiKTsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdkYjEnLCAiQ1JFQVRFIFRBQkxFIHQ3IChpZCBpbnQgcHJpbWFyeSBrZXks IG5hbWUgdmFyY2hhcik7Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgnZGIxJywgIkNS RUFURSBUQUJMRSB0OCAoaWQgaW50IHByaW1hcnkga2V5LCBuYW1lIHZhcmNoYXIpOyIpOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ2RiMScsCisJIkNSRUFURSBQVUJMSUNBVElPTiBteXB1 YjMgRk9SIFRBQkxFIHQ3IHdpdGggKGRkbCA9ICd0YWJsZScpOyIpOworbXkgJHB1Ymxpc2hlcl9j b25uc3RyX2RiMSA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPWRiMSc7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBEQVRBQkFTRSBk YjE7Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ2RiMScsICJDUkVBVEUgVEFCTEUg dDcgKGlkIGludCBwcmltYXJ5IGtleSwgbmFtZSB2YXJjaGFyKTsiKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgnZGIxJywgIkNSRUFURSBUQUJMRSB0OCAoaWQgaW50IHByaW1hcnkga2V5 LCBuYW1lIHZhcmNoYXIpOyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdkYjEnLAor CSJDUkVBVEUgU1VCU0NSSVBUSU9OIG15c3ViMyBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5z dHJfZGIxJyBQVUJMSUNBVElPTiBteXB1YjM7IgorKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9m b3JfY2F0Y2h1cCgnbXlzdWIzJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgnZGIxJywg IkFMVEVSIFRBQkxFIHQ3IFJFTkFNRSBUTyBuZXd0NzsiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdkYjEnLCAiQUxURVIgVEFCTEUgdDggUkVOQU1FIFRPIG5ld3Q4OyIpOworJG5vZGVf cHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdteXN1YjMnKTsKKyRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ2RiMScsICJTRUxFQ1QgY291bnQoKikgZnJvbSBwZ190YWJs ZXMgd2hlcmUgdGFibGVuYW1lID0gJ25ld3Q3JzsiKTsKK2lzKCRyZXN1bHQsIHFxKDEpLCAnUmVu YW1lIHQ3IHRvIG5ld3Q3IGlzIHJlcGxpY2F0ZWQnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ2RiMScsICJTRUxFQ1QgY291bnQoKikgZnJvbSBwZ190YWJsZXMgd2hl cmUgdGFibGVuYW1lID0gJ25ld3Q4JzsiKTsKK2lzKCRyZXN1bHQsIHFxKDApLCAnUmVuYW1lIHQ4 IHRvIG5ld3Q4IGlzIG5vdCByZXBsaWNhdGVkJyk7CisKICNURVNUIERETCBpbiBmdW5jdGlvbgog JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CiBDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBmdW5jX2RkbCAodG5hbWUgdmFyY2hhcigyMCkpCi0tIAoyLjMyLjAKCg== --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0010-Handle-partitioned-table-creation-on-the-apply-worke.patch" Content-Disposition: attachment; filename="0010-Handle-partitioned-table-creation-on-the-apply-worke.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwpd9 RnJvbSA1OWMwOTY5MzVkZTI5YzFkZjE0YzgwZmMyNWZkNTgxOTU4ODZiZmQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IEZyaSwgMTMgTWF5IDIwMjIgMTk6NDc6NDQgKzAwMDAKU3ViamVjdDogW1BBVENIIDEw LzEyXSBIYW5kbGUgcGFydGl0aW9uZWQgdGFibGUgY3JlYXRpb24gb24gdGhlIGFwcGx5IHdvcmtl cjoKIHdoZXRoZXIgYSBwYXJ0aXRpb25lZCB0YWJsZSBzaG91bGQgYmUgYWRkZWQgdG8gcGdfc3Vi c2NyaXB0aW9uX3JlbCBjYXRhbG9nCiBkZXBlbmRzIG9uIHRoZSBzZXR0aW5nIG9mIHB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290IG9mIHRoZSBwdWJsaWNhdGlvbi4gVGh1cwogd2UgbmVlZCB0byBj b25uZWN0IHRvIHRoZSBzb3VyY2UgREIgYW5kIGNoZWNrIHdoZWh0ZXIgdGhlIHBhcnRpdGlvbmVk IHRhYmxlCiBzaG91bGQgYmUgc3Vic2NyaWJlZC4KCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jICB8IDU0ICsrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgfCAzNSArKysrKysrKysrKystLS0KIHNy Yy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCAgfCAgMyArKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICB8ICA2ICstLQogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMwX3JlcF9kZGxzLnBsICB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKwog NSBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDgzZTZlYWU4NTUuLjI1ZDBh MjNkYjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTIzLDcg KzIzLDYgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCi0j aW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbl9yZWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTc0Niw2ICs3NDUsNTkgQEAgQ3JlYXRlU3Vic2Ny aXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwK IAlyZXR1cm4gbXlzZWxmOwogfQogCisvKgorICogQ2hlY2sgaWYgYSBwYXJ0aXRpb25lZCB0YWJs ZSBpcyBiZWluZyBwdWJsaXNoZWQgYnkgYW55IHB1YmxpY2F0aW9uIHN1YnNjaXJiZWQgYnkgdGhl IHN1YnNjcmlwdGlvbi4KKyAqIFdoZXRoZXIgYSBwYXJ0aXRpb25lZCB0YWJsZSBpcyBwdWJsaXNo ZWQgYWxzbyBkZXBlbmRzIG9uIHRoZSBwdWJsaWNhdGlvbiBvcHRpb24KKyAqIHB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290LiBCdXQgdGhlIHN1YnNjcmliZXIgZG9lc24ndCBrbm93IHRoZSBzZXR0 aW5nIG9mIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290LAorICogdGhpcyBpcyB3aHkgd2UgbmVl ZCB0byBjaGVjayB0aGUgc291cmNlIERCIHNvIHRoYXQgd2UgY2FuIGRlY2lkZSB3aGV0aGVyIHRv IHN1YnNjcmliZSB0byB0aGUgcGFydGl0aW9uZWQKKyAqIHRhYmxlIChjb3VsZCBiZSBlaXRoZXIg cm9vdCBvciBsZWFmIHRhYmxlKSBkdXJpbmcgcmVwbGljYXRpb24gb2YgY3JlYXRlIHBhcnRpdGlv bmVkIHRhYmxlLgorICovCitib29sCitJc1BhcnRpdGlvbmVkVGFibGVQdWJsaXNoZWRPblNvdXJj ZShTdWJzY3JpcHRpb24gKnN1YiwgY2hhciAqc2NoZW1hX25hbWUsIGNoYXIgKnRhYmxlX25hbWUp Cit7CisJY2hhciAqZXJyOworCVdhbFJjdkV4ZWNSZXN1bHQgKnJlczsKKwlTdHJpbmdJbmZvRGF0 YSBjbWQ7CisJT2lkIHRhYmxlUm93WzFdID0ge0JPT0xPSUR9OworCWJvb2wgcmVzdWx0OworCisJ V2FsUmVjZWl2ZXJDb25uICp3cmNvbm47CisJLyogTG9hZCB0aGUgbGlicmFyeSBwcm92aWRpbmcg dXMgbGlicHEgY2FsbHMuICovCisJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2Up OworCisJLyogVHJ5IHRvIGNvbm5lY3QgdG8gdGhlIHB1Ymxpc2hlci4gKi8KKwl3cmNvbm4gPSB3 YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBzdWItPm5hbWUsICZlcnIpOworCWlm ICghd3Jjb25uKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQ09OTkVD VElPTl9GQUlMVVJFKSwKKwkJCQkgZXJybXNnKCJjb3VsZCBub3QgY29ubmVjdCB0byB0aGUgcHVi bGlzaGVyOiAlcyIsIGVycikpKTsKKworCVBHX1RSWSgpOworCXsKKwkJaW5pdFN0cmluZ0luZm8o JmNtZCk7CisJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmNtZCwgIlNFTEVDVCBUUlVFXG4iCisJ CQkJCQkJICAgIiAgRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3RhYmxlcyB0XG4iCisJ CQkJCQkJICAgIiBXSEVSRSB0LnB1Ym5hbWUgSU4gKCIpOworCQlnZXRfcHVibGljYXRpb25zX3N0 cihzdWItPnB1YmxpY2F0aW9ucywgJmNtZCwgdHJ1ZSk7CisJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJmNtZCwgIikgQU5EIHQuc2NoZW1hbmFtZSA9ICciKTsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZygmY21kLCBzY2hlbWFfbmFtZSk7CisJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmNtZCwg IicgQU5EIHQudGFibGVuYW1lID0gJyIpOworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZjbWQs IHRhYmxlX25hbWUpOworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZjbWQsICInIik7CisKKwkJ cmVzID0gd2FscmN2X2V4ZWMod3Jjb25uLCBjbWQuZGF0YSwgMSwgdGFibGVSb3cpOworCQlwZnJl ZShjbWQuZGF0YSk7CisJCXJlc3VsdCA9IHR1cGxlc3RvcmVfdHVwbGVfY291bnQocmVzLT50dXBs ZXN0b3JlKSA+IDA7CisJfQorCVBHX0ZJTkFMTFkoKTsKKwl7CisJCXdhbHJjdl9kaXNjb25uZWN0 KHdyY29ubik7CisJfQorCVBHX0VORF9UUlkoKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIHN0 YXRpYyB2b2lkCiBBbHRlclN1YnNjcmlwdGlvbl9yZWZyZXNoKFN1YnNjcmlwdGlvbiAqc3ViLCBi b29sIGNvcHlfZGF0YSwKIAkJCQkJCSAgTGlzdCAqdmFsaWRhdGVfcHVibGljYXRpb25zKQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKaW5kZXggMDFkYjEwMmUzYy4uNjEw MTQ3Y2E3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3Jr ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC0x NDMsNiArMTQzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdGFibGVzcGFjZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIK ICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJs ZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgpAQCAtMjU0NSw2ICsyNTQ2 LDcgQEAgYXBwbHlfZXhlY3V0ZV9zcWxfY29tbWFuZChjb25zdCBjaGFyICpjbWRzdHIsIGNvbnN0 IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNlYXIKIAkJYm9vbAkJIHNuYXBzaG90X3NldCA9IGZh bHNlOwogCQljaGFyIAkJICpzY2hlbWFuYW1lID0gTlVMTDsgLyogRm9yIENSRUFURSBUQUJMRSBh bmQgQ1JFQVRFIFRBQkxFIEFTIHN0bXQgb25seSAqLwogCQljaGFyCQkgKnJlbG5hbWUgPSBOVUxM OyAvKiBGb3IgQ1JFQVRFIFRBQkxFIGFuZCBDUkVBVEUgVEFCTEUgQVMgc3RtdCBvbmx5ICovCisJ CWJvb2wJCSBpc19wYXJ0aXRpb25lZF90YWJsZSA9IGZhbHNlOwogCiAJCWNvbW1hbmRUYWcgPSBD cmVhdGVDb21tYW5kVGFnKChOb2RlICopY29tbWFuZCk7CiAKQEAgLTI1NjEsNiArMjU2Myw4IEBA IGFwcGx5X2V4ZWN1dGVfc3FsX2NvbW1hbmQoY29uc3QgY2hhciAqY21kc3RyLCBjb25zdCBjaGFy ICpyb2xlLCBjb25zdCBjaGFyICpzZWFyCiAJCQlSYW5nZVZhciAqcnYgPSBjc3RtdC0+cmVsYXRp b247CiAJCQlzY2hlbWFuYW1lID0gcnYtPnNjaGVtYW5hbWU7CiAJCQlyZWxuYW1lID0gcnYtPnJl bG5hbWU7CisJCQlpZiAoY3N0bXQtPmluaFJlbGF0aW9ucyAhPSBOSUwgfHwgY3N0bXQtPnBhcnRz cGVjICE9IE5VTEwpCisJCQkJaXNfcGFydGl0aW9uZWRfdGFibGUgPSB0cnVlOwogCQl9CiAJCWVs c2UgaWYgKGNvbW1hbmRUYWcgPT0gQ01EVEFHX0NSRUFURV9UQUJMRV9BUykKIAkJewpAQCAtMjc2 MiwxMiArMjc2NiwzMSBAQCBhcHBseV9leGVjdXRlX3NxbF9jb21tYW5kKGNvbnN0IGNoYXIgKmNt ZHN0ciwgY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcgogCiAJCQlpZiAocmVsaWQg IT0gSW52YWxpZE9pZCkKIAkJCXsKLQkJCQlBZGRTdWJzY3JpcHRpb25SZWxTdGF0ZShNeVN1YnNj cmlwdGlvbi0+b2lkLCByZWxpZCwKLQkJCQkJCQkJCQlTVUJSRUxfU1RBVEVfSU5JVCwKLQkJCQkJ CQkJCQlJbnZhbGlkWExvZ1JlY1B0cik7Ci0JCQkJZXJlcG9ydChERUJVRzEsCi0JCQkJCQkoZXJy bXNnX2ludGVybmFsKCJ0YWJsZSBcIiVzXCIgYWRkZWQgdG8gc3Vic2NyaXB0aW9uIFwiJXNcIiIs Ci0JCQkJCQkJCQkJIHJlbG5hbWUsIE15U3Vic2NyaXB0aW9uLT5uYW1lKSkpOworCQkJCWJvb2wg c3Vic2NyaWJlX3RhYmxlID0gdHJ1ZTsKKworCQkJCWlmIChpc19wYXJ0aXRpb25lZF90YWJsZSkK KwkJCQl7CisJCQkJCVJlbGF0aW9uIHJlbCA9IFJlbGF0aW9uSWRHZXRSZWxhdGlvbihyZWxpZCk7 CisJCQkJCWNoYXIgKnRhYmxlX25hbWUgPSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpOwor CQkJCQljaGFyICpzY2hlbWFfbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5h bWVzcGFjZShyZWwpKTsKKwkJCQkJLyoKKwkJCQkJICogQ29ubmVjdCB0byB0aGUgc291cmNlIERC IGFuZCBjaGVjayB3aGVodGVyIHRoZSBwYXJ0aXRpb25lZCB0YWJsZSBzaG91bGQgYmUgc3Vic2Ny aWJlZC4KKwkJCQkJICogQmVjYXVzZSBpdCBkZXBlbmRzIG9uIHRoZSBzZXR0aW5nIG9mIHB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290LCB3aGljaCB0aGUgc3Vic2NyaXB0aW9uCisJCQkJCSAqIGRv ZXNuJ3Qga25vdy4KKwkJCQkJICovCisJCQkJCXN1YnNjcmliZV90YWJsZSA9IElzUGFydGl0aW9u ZWRUYWJsZVB1Ymxpc2hlZE9uU291cmNlKE15U3Vic2NyaXB0aW9uLCBzY2hlbWFfbmFtZSwgdGFi bGVfbmFtZSk7CisJCQkJCVJlbGF0aW9uQ2xvc2UocmVsKTsKKwkJCQl9CisKKwkJCQlpZiAoc3Vi c2NyaWJlX3RhYmxlKQorCQkJCXsKKwkJCQkJQWRkU3Vic2NyaXB0aW9uUmVsU3RhdGUoTXlTdWJz Y3JpcHRpb24tPm9pZCwgcmVsaWQsCisJCQkJCQkJCQkJCVNVQlJFTF9TVEFURV9JTklULAorCQkJ CQkJCQkJCQlJbnZhbGlkWExvZ1JlY1B0cik7CisJCQkJCWVyZXBvcnQoREVCVUcxLAorCQkJCQkJ CShlcnJtc2dfaW50ZXJuYWwoInRhYmxlIFwiJXNcIiBhZGRlZCB0byBzdWJzY3JpcHRpb24gXCIl c1wiIiwKKwkJCQkJCQkJCQkJIHJlbG5hbWUsIE15U3Vic2NyaXB0aW9uLT5uYW1lKSkpOworCQkJ CX0KIAkJCX0KIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNj cmlwdGlvbmNtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaApp bmRleCAyY2JlN2Q3YjY1Li40NTE5NTNhZjYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zdWJzY3JpcHRpb25jbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc3Vic2Ny aXB0aW9uY21kcy5oCkBAIC0xNiw2ICsxNiw3IEBACiAjZGVmaW5lIFNVQlNDUklQVElPTkNNRFNf SAogCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgogCiBl eHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRl LCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LApAQCAtMjYsNCArMjcsNiBAQCBleHRlcm4g dm9pZCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlz VG9wTGV2ZWwpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJTdWJzY3JpcHRpb25Pd25lcihj b25zdCBjaGFyICpuYW1lLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBBbHRlclN1YnNj cmlwdGlvbk93bmVyX29pZChPaWQgc3ViaWQsIE9pZCBuZXdPd25lcklkKTsKIAorZXh0ZXJuIGJv b2wgSXNQYXJ0aXRpb25lZFRhYmxlUHVibGlzaGVkT25Tb3VyY2UoU3Vic2NyaXB0aW9uICpzdWIs IGNoYXIgKnNjaGVtYV9uYW1lLCBjaGFyICp0YWJsZV9uYW1lKTsKKwogI2VuZGlmCQkJCQkJCS8q IFNVQlNDUklQVElPTkNNRFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXgg NjBhY2JkMTI0MS4uMzQyOWUzNDMzOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBA IC01OTY5LDkgKzU5NjksOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxkUnAgIm5v LnN1Y2gucHVibGljYXRpb24iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHB1YmxpY2F0aW9ucwotIE5hbWUgfCBPd25lciB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgcHVibGljYXRpb25zCisgTmFtZSB8IE93bmVyIHwgQWxsIHRhYmxlcyB8IEluc2Vy dHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IHwgRGF0YWJhc2Ug bGV2ZWwgRERMcyB8IFRhYmxlIGxldmVsIERETHMgCistLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiBcZFJz ICJuby5zdWNoLnN1YnNjcmlwdGlvbiIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzMF9yZXBfZGRscy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBfZGRs cy5wbAppbmRleCA1MTEyNmI0ODliLi5hMDNkNTk4MjY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDMwX3JlcF9kZGxzLnBsCkBAIC00MzEsNiArNDMxLDYzIEBAICRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgnbXlzdWInKTsKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBmcm9tIHRlc3RfcmVwIHdoZXJl IG5vbl92b2xhdGlsZSA9IDAuMDE7Iik7CiBpcygkcmVzdWx0LCBxcSgyKSwgJ0FsdGVyIHRhYmxl IGFkZCBjb2x1bW4gZGVmYXVsdCAwLjAxIGlzIHJlcGxpY2F0ZWQnKTsKIAorIyBUZXN0IHBhcnRp dGlvbmVkIHRhYmxlIGNyZWF0aW9uIGlzIHJlcGxpY2F0ZWQgYmFzZWQgb24gdGhlIHNldHRpbmcg b2YgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHFxKAorICAgIENSRUFURSBUQUJMRSBzMS50ZXN0X3BhcnRfYSAoYSBpbnQs IGIgaW50LCBjIGludCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOworCisgICAgQ1JFQVRFIFRBQkxF IHMxLnRlc3RfcGFydF9hXzEgUEFSVElUSU9OIE9GIHMxLnRlc3RfcGFydF9hIEZPUiBWQUxVRVMg SU4gKDEsMiwzLDQsNSk7CisgICAgQUxURVIgVEFCTEUgczEudGVzdF9wYXJ0X2FfMSBBREQgUFJJ TUFSWSBLRVkgKGEpOworICAgIEFMVEVSIFRBQkxFIHMxLnRlc3RfcGFydF9hXzEgUkVQTElDQSBJ REVOVElUWSBVU0lORyBJTkRFWCB0ZXN0X3BhcnRfYV8xX3BrZXk7CisKKyAgICBDUkVBVEUgVEFC TEUgczEudGVzdF9wYXJ0X2FfMiBQQVJUSVRJT04gT0YgczEudGVzdF9wYXJ0X2EgRk9SIFZBTFVF UyBJTiAoNiw3LDgsOSwxMCk7CisgICAgQUxURVIgVEFCTEUgczEudGVzdF9wYXJ0X2FfMiBBREQg UFJJTUFSWSBLRVkgKGIpOworICAgIEFMVEVSIFRBQkxFIHMxLnRlc3RfcGFydF9hXzIgUkVQTElD QSBJREVOVElUWSBVU0lORyBJTkRFWCB0ZXN0X3BhcnRfYV8yX3BrZXk7CisKKyAgICAtLSBpbml0 aWFsIGRhdGEsIG9uZSByb3cgaW4gZWFjaCBwYXJ0aXRpb24KKyAgICBJTlNFUlQgSU5UTyBzMS50 ZXN0X3BhcnRfYSBWQUxVRVMgKDEsIDMpOworICAgIElOU0VSVCBJTlRPIHMxLnRlc3RfcGFydF9h IFZBTFVFUyAoNiwgNCk7CispKTsKKyRyZXN1bHQgPSAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gczEudGVzdF9wYXJ0X2E7Iik7Citp cygkcmVzdWx0LCBxcSgyKSwgJ1BhcnRpdGlvbmVkIHRhYmxlIGlzIGNyZWF0ZWQgYW5kIHBvcHVs YXRlZCcpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7CisK KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCBjb3VudCgqKSBmcm9tIHMxLnRlc3RfcGFydF9hOyIpOworaXMoJHJlc3VsdCwgcXEoMiksICdQ YXJ0aXRpb25lZCB0YWJsZSBhbmQgZGF0YSBpcyByZXBsaWNhdGVkJyk7CisKKyRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBm cm9tIHBnX3N1YnNjcmlwdGlvbl9yZWwgd2hlcmUgc3JyZWxpZCA9ICdzMS50ZXN0X3BhcnRfYSc6 OnJlZ2NsYXNzOjpvaWQ7Iik7CitpcygkcmVzdWx0LCBxcSgwKSwgJ1Jvb3QgdGFibGUgb2YgdGhl IHBhcnRpdGlvbmVkIHRhYmxlIGlzIG5vdCBzdWJzY3JpYmVkIHNpbmNlIHB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290IGlzIGZhbHNlIGJ5IGRlZmF1bHQnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIGZyb20gcGdf c3Vic2NyaXB0aW9uX3JlbCB3aGVyZSBzcnJlbGlkID0gJ3MxLnRlc3RfcGFydF9hXzEnOjpyZWdj bGFzczo6b2lkIE9SIHNycmVsaWQgPSAnczEudGVzdF9wYXJ0X2FfMic6OnJlZ2NsYXNzOjpvaWQ7 Iik7CitpcygkcmVzdWx0LCBxcSgyKSwgJ09ubHkgbGVhZiB0YWJsZXMgb2YgdGhlIHBhcnRpdGlv bmVkIHRhYmxlIGFyZSBzdWJzY3JpYmVkIHNpbmNlIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290 IGlzIGZhbHNlIGJ5IGRlZmF1bHQnKTsKKworIyBUZXN0IG9ubHkgcm9vdCBwYXJ0aXRpb24gdGFi bGUgaXMgc3Vic2NyaWJlZCB3aGVuIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IGlzIGVuYWJs ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKAorCURST1AgVEFC TEUgczEudGVzdF9wYXJ0X2E7CisJQUxURVIgUFVCTElDQVRJT04gbXlwdWIgU0VUIChwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpOworICAgIENSRUFURSBUQUJMRSBzMS50ZXN0X3Bh cnRfYSAoYSBpbnQsIGIgaW50LCBjIGludCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOworCisgICAg Q1JFQVRFIFRBQkxFIHMxLnRlc3RfcGFydF9hXzEgUEFSVElUSU9OIE9GIHMxLnRlc3RfcGFydF9h IEZPUiBWQUxVRVMgSU4gKDEsMiwzLDQsNSk7CisgICAgQUxURVIgVEFCTEUgczEudGVzdF9wYXJ0 X2FfMSBBREQgUFJJTUFSWSBLRVkgKGEpOworICAgIEFMVEVSIFRBQkxFIHMxLnRlc3RfcGFydF9h XzEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCB0ZXN0X3BhcnRfYV8xX3BrZXk7CisKKyAg ICBDUkVBVEUgVEFCTEUgczEudGVzdF9wYXJ0X2FfMiBQQVJUSVRJT04gT0YgczEudGVzdF9wYXJ0 X2EgRk9SIFZBTFVFUyBJTiAoNiw3LDgsOSwxMCk7CisgICAgQUxURVIgVEFCTEUgczEudGVzdF9w YXJ0X2FfMiBBREQgUFJJTUFSWSBLRVkgKGIpOworICAgIEFMVEVSIFRBQkxFIHMxLnRlc3RfcGFy dF9hXzIgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCB0ZXN0X3BhcnRfYV8yX3BrZXk7CisK KyAgICAtLSBpbml0aWFsIGRhdGEsIG9uZSByb3cgaW4gZWFjaCBwYXJ0aXRpb24KKyAgICBJTlNF UlQgSU5UTyBzMS50ZXN0X3BhcnRfYSBWQUxVRVMgKDEsIDMpOworICAgIElOU0VSVCBJTlRPIHMx LnRlc3RfcGFydF9hIFZBTFVFUyAoNiwgNCk7CispKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCdteXN1YicpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgZnJvbSBwZ19zdWJzY3JpcHRpb25f cmVsIHdoZXJlIHNycmVsaWQgPSAnczEudGVzdF9wYXJ0X2EnOjpyZWdjbGFzczo6b2lkOyIpOwor aXMoJHJlc3VsdCwgcXEoMSksICdPbmx5IHJvb3QgdGFibGUgb2YgdGhlIHBhcnRpdGlvbmVkIHRh YmxlIGlzIHN1YnNjcmliZWQgc2luY2UgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgaXMgZW5h YmxlZCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJTRUxFQ1QgY291bnQoKikgZnJvbSBwZ19zdWJzY3JpcHRpb25fcmVsIHdoZXJlIHNycmVs aWQgPSAnczEudGVzdF9wYXJ0X2FfMSc6OnJlZ2NsYXNzOjpvaWQgT1Igc3JyZWxpZCA9ICdzMS50 ZXN0X3BhcnRfYV8yJzo6cmVnY2xhc3M6Om9pZDsiKTsKK2lzKCRyZXN1bHQsIHFxKDApLCAnTGVh ZiB0YWJsZXMgb2YgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGFyZSBub3Qgc3Vic2NyaWJlZCBzaW5j ZSBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBpcyBlbmFibGVkJyk7CisKICNUT0RPIFRFU1Qg Y2VydGFpbiBERExzIGFyZSBub3QgcmVwbGljYXRlZAogIyBUZXN0IERETCBzdGF0ZW1lbnQgdGhh dCByZXdyaXRlcyB0YWJsZSB3aXRoIHZvbGF0aWxlIGZ1bmN0aW9ucyBhcmUgbm90IHJlcGxpY2F0 ZWQKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRFUiBUQUJMRSB0 ZXN0X3JlcCBBREQgQ09MVU1OIHZvbGF0aWxlIGRvdWJsZSBwcmVjaXNpb24gREVGQVVMVCAzICog cmFuZG9tKCk7Iik7Ci0tIAoyLjMyLjAKCg== --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0007-Enable-logging-and-replication-of-DDLs-executed-insi.patch" Content-Disposition: attachment; filename="0007-Enable-logging-and-replication-of-DDLs-executed-insi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwpa6 RnJvbSAxM2YxOTkyMTcyZmI1YmFkMTliZmFlODNhZWUzZGY3YzhkM2NmYTVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IEZyaSwgMTUgQXByIDIwMjIgMDI6MDI6MTAgKzAwMDAKU3ViamVjdDogW1BBVENIIDA3 LzEyXSBFbmFibGUgbG9nZ2luZyBhbmQgcmVwbGljYXRpb24gb2YgRERMcyBleGVjdXRlZCBpbnNp ZGUKIGZ1bmN0aW9uIGFuZCBwcm9jZWR1cmVzLiBBbHNvIGZpeGVkIGEgYnVnIHdoZXJlIERETCB3 aXRoIFNVQkNPTU1BTkQgZ2V0cwogbG9nZ2VkIHR3aWNlLgoKLS0tCiAuLi4vdGVzdF9kZWNvZGlu Zy9leHBlY3RlZC9kZGxtZXNzYWdlcy5vdXQgICAgfCA0NyArKysrKysrKysrKysrKysrKy0tCiBj b250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbG1lc3NhZ2VzLnNxbCAgICAgfCAxOSArKysrKysr LQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDUgKy0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA2ICstLQog c3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgMjYgKysrKyst LS0tLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgICAgIHwgIDIg Ky0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oICAgICAgICAgICAgICB8ICAzICst CiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwgICAgICAgfCAzOCArKysr KysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDI1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGxt ZXNzYWdlcy5vdXQgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsbWVzc2FnZXMu b3V0CmluZGV4IDAzNzZmMzZjMjQuLjgyMzAyOWQwM2QgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9leHBlY3RlZC9kZGxtZXNzYWdlcy5vdXQKKysrIGIvY29udHJpYi90ZXN0X2Rl Y29kaW5nL2V4cGVjdGVkL2RkbG1lc3NhZ2VzLm91dApAQCAtMTEsNyArMTEsNyBAQCBTRUxFQ1Qg J2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lv bl9zbG90JywgJ3Rlc3RfZAogIGluaXQKICgxIHJvdykKIAotQ1JFQVRFIFRBQkxFIHRlc3RfZGRs bWVzc2FnZSAoaWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOworQ1JFQVRFIFRBQkxFIHRlc3Rf ZGRsbWVzc2FnZSAoaWQgc2VyaWFsIHVuaXF1ZSBwcmltYXJ5IGtleSwgZGF0YSBpbnQpOwogQUxU RVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2YXJjaGFyOwogQUxURVIgVEFCTEUgdGVz dF9kZGxtZXNzYWdlIGRyb3AgYzM7CiBEUk9QIFRBQkxFIHRlc3RfZGRsbWVzc2FnZTsKQEAgLTI0 LDkgKzI0LDkgQEAgQ1JFQVRFIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSAoaWQgc2VyaWFsIHVuaXF1 ZSwgZGF0YSBpbnQpOwogQUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2YXJjaGFy OwogQ09NTUlUOwogU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMo J3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lw LWVtcHR5LXhhY3RzJywgJzEnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDog MSBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNl ciIsIHB1YmxpYywgc3o6IDU4IGNvbnRlbnQ6Q1JFQVRFIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSAo aWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAxIHByZWZpeDogIHJvbGU6IGRkbF9yZXBs aWNhdGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejogNzAgY29udGVu dDpDUkVBVEUgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIChpZCBzZXJpYWwgdW5pcXVlIHByaW1hcnkg a2V5LCBkYXRhIGludCk7CiAgRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAg cm9sZTogZGRsX3JlcGxpY2F0aW9uX3VzZXIsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMs IHN6OiA0MyBjb250ZW50OkFMVEVSIFRBQkxFIHRlc3RfZGRsbWVzc2FnZSBhZGQgYzMgdmFyY2hh cjsKICBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiBkZGxfcmVw bGljYXRpb25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDM2IGNvbnRl bnQ6QUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGRyb3AgYzM7CiAgRERMIG1lc3NhZ2U6IHRy YW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9sZTogZGRsX3JlcGxpY2F0aW9uX3VzZXIsIHNlYXJj aF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiAyNyBjb250ZW50OkRST1AgVEFCTEUgdGVzdF9k ZGxtZXNzYWdlOwpAQCAtMzQsNiArMzQsNDQgQEAgU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2Fs X3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5VTEwsICdpbmMKICBE REwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRp b25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDQzIGNvbnRlbnQ6QUxU RVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2YXJjaGFyOwogKDYgcm93cykKIAorLS0g VGVzdCBsb2dnaW5nIERETCBpbiBmdW5jdGlvbgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g ZnVuY19kZGwgKHRuYW1lIHZhcmNoYXIoMjApKQorUkVUVVJOUyBWT0lEIEFTICQkCitCRUdJTgor ICAgIGV4ZWN1dGUgZm9ybWF0KCdDUkVBVEUgVEFCTEUgJUkoaWQgaW50IHByaW1hcnkga2V5LCBu YW1lIHZhcmNoYXIpOycsIHRuYW1lKTsKKyAgICBleGVjdXRlIGZvcm1hdCgnQUxURVIgVEFCTEUg JUkgQUREIGMzIGludCcsIHRuYW1lKTsKKyAgICBleGVjdXRlIGZvcm1hdCgnSU5TRVJUIElOVE8g JUkgVkFMVUVTICgxLCAnJ2EnJyk7JywgdG5hbWUpOworICAgIGV4ZWN1dGUgZm9ybWF0KCdJTlNF UlQgSU5UTyAlSSBWQUxVRVMgKDIsICcnYicnLCAyMik7JywgdG5hbWUpOworRU5EOworJCQKK0xB TkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgZnVuY19kZGwgKCd0YWJfZnJvbV9mdW5jJyk7CisgZnVu Y19kZGwgCistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBkYXRhIEZST00gcGdfbG9n aWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5j bHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJyk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg RERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9sZTogZGRsX3JlcGxpY2F0 aW9uX3VzZXIsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiAzNzUgY29udGVudDpD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBmdW5jX2RkbCAodG5hbWUgdmFyY2hhcigyMCkpICAg ICArCisgUkVUVVJOUyBWT0lEIEFTICQkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgQkVHSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgIGV4ZWN1dGUgZm9ybWF0KCdDUkVBVEUgVEFCTEUgJUkoaWQg aW50IHByaW1hcnkga2V5LCBuYW1lIHZhcmNoYXIpOycsIHRuYW1lKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgIGV4ZWN1dGUgZm9ybWF0KCdBTFRFUiBUQUJMRSAl SSBBREQgYzMgaW50JywgdG5hbWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGV4ZWN1dGUgZm9ybWF0KCdJTlNFUlQg SU5UTyAlSSBWQUxVRVMgKDEsICcnYScnKTsnLCB0bmFtZSk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGV4ZWN1dGUgZm9ybWF0KCdJ TlNFUlQgSU5UTyAlSSBWQUxVRVMgKDIsICcnYicnLCAyMik7JywgdG5hbWUpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgRU5EOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgJCQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgTEFO R1VBR0UgcGxwZ3NxbDsKKyBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICBy b2xlOiBkZGxfcmVwbGljYXRpb25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywg c3o6IDYxIGNvbnRlbnQ6Q1JFQVRFIFRBQkxFIHRhYl9mcm9tX2Z1bmMoaWQgaW50IHByaW1hcnkg a2V5LCBuYW1lIHZhcmNoYXIpOworIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAxIHByZWZp eDogIHJvbGU6IGRkbF9yZXBsaWNhdGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVi bGljLCBzejogMzYgY29udGVudDpBTFRFUiBUQUJMRSB0YWJfZnJvbV9mdW5jIEFERCBjMyBpbnQK KyBCRUdJTgorIHRhYmxlIHB1YmxpYy50YWJfZnJvbV9mdW5jOiBJTlNFUlQ6IGlkW2ludGVnZXJd OjEgbmFtZVtjaGFyYWN0ZXIgdmFyeWluZ106J2EnIGMzW2ludGVnZXJdOm51bGwKKyB0YWJsZSBw dWJsaWMudGFiX2Zyb21fZnVuYzogSU5TRVJUOiBpZFtpbnRlZ2VyXToyIG5hbWVbY2hhcmFjdGVy IHZhcnlpbmddOidiJyBjM1tpbnRlZ2VyXToyMgorIENPTU1JVAorKDcgcm93cykKKwogU0VMRUNU IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90Jyk7CiAgcGdfZHJvcF9y ZXBsaWNhdGlvbl9zbG90IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQxLDQgKzc5 LDUgQEAgU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90Jyk7 CiAoMSByb3cpCiAKIERST1AgVEFCTEUgdGVzdF9kZGxtZXNzYWdlOworRFJPUCBUQUJMRSB0YWJf ZnJvbV9mdW5jOwogRFJPUCBwdWJsaWNhdGlvbiBteXB1YjsKZGlmZiAtLWdpdCBhL2NvbnRyaWIv dGVzdF9kZWNvZGluZy9zcWwvZGRsbWVzc2FnZXMuc3FsIGIvY29udHJpYi90ZXN0X2RlY29kaW5n L3NxbC9kZGxtZXNzYWdlcy5zcWwKaW5kZXggYzIzNjEwZjliNC4uMzA4MjY3MTQ4OCAxMDA2NDQK LS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGxtZXNzYWdlcy5zcWwKKysrIGIvY29u dHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGxtZXNzYWdlcy5zcWwKQEAgLTksNyArOSw3IEBAIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ2RkbF9yZXBsaWNhdGlvbl91c2VyJzsKIAogU0VMRUNU ICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3JlZ3Jlc3Np b25fc2xvdCcsICd0ZXN0X2RlY29kaW5nJyk7CiAKLUNSRUFURSBUQUJMRSB0ZXN0X2RkbG1lc3Nh Z2UgKGlkIHNlcmlhbCB1bmlxdWUsIGRhdGEgaW50KTsKK0NSRUFURSBUQUJMRSB0ZXN0X2RkbG1l c3NhZ2UgKGlkIHNlcmlhbCB1bmlxdWUgcHJpbWFyeSBrZXksIGRhdGEgaW50KTsKIEFMVEVSIFRB QkxFIHRlc3RfZGRsbWVzc2FnZSBhZGQgYzMgdmFyY2hhcjsKIEFMVEVSIFRBQkxFIHRlc3RfZGRs bWVzc2FnZSBkcm9wIGMzOwogRFJPUCBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2U7CkBAIC0yNSw3ICsy NSwyNCBAQCBBTFRFUiBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgYWRkIGMzIHZhcmNoYXI7CiBDT01N SVQ7CiAKIFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdy ZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0 eS14YWN0cycsICcxJyk7CisKKy0tIFRlc3QgbG9nZ2luZyBEREwgaW4gZnVuY3Rpb24KK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIGZ1bmNfZGRsICh0bmFtZSB2YXJjaGFyKDIwKSkKK1JFVFVS TlMgVk9JRCBBUyAkJAorQkVHSU4KKyAgICBleGVjdXRlIGZvcm1hdCgnQ1JFQVRFIFRBQkxFICVJ KGlkIGludCBwcmltYXJ5IGtleSwgbmFtZSB2YXJjaGFyKTsnLCB0bmFtZSk7CisgICAgZXhlY3V0 ZSBmb3JtYXQoJ0FMVEVSIFRBQkxFICVJIEFERCBjMyBpbnQnLCB0bmFtZSk7CisgICAgZXhlY3V0 ZSBmb3JtYXQoJ0lOU0VSVCBJTlRPICVJIFZBTFVFUyAoMSwgJydhJycpOycsIHRuYW1lKTsKKyAg ICBleGVjdXRlIGZvcm1hdCgnSU5TRVJUIElOVE8gJUkgVkFMVUVTICgyLCAnJ2InJywgMjIpOycs IHRuYW1lKTsKK0VORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgZnVuY19kZGwg KCd0YWJfZnJvbV9mdW5jJyk7CitTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRf Y2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcw JywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScpOworCiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlv bl9zbG90KCdyZWdyZXNzaW9uX3Nsb3QnKTsKIERST1AgVEFCTEUgdGVzdF9kZGxtZXNzYWdlOwor RFJPUCBUQUJMRSB0YWJfZnJvbV9mdW5jOwogRFJPUCBwdWJsaWNhdGlvbiBteXB1YjsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IGZhZDIxYTMxZDAuLmQ1ZTRmMzcxM2Qg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTEyMTEsMTUgKzEyMTEsMTIg QEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogICogQ2hlY2tz IGlmIERETCBvbiByZWxhdGlvbiAocmVsaWQpIG5lZWQgeGxvZyBmb3IgbG9naWNhbCByZXBsaWNh dGlvbgogICovCiBib29sCi1kZGxfbmVlZF94bG9nKE9pZCByZWxpZCwgYm9vbCBmb3JBbGxUYWJQ dWJPbmx5LCBib29sIGlzVG9wTGV2ZWwpCitkZGxfbmVlZF94bG9nKE9pZCByZWxpZCwgYm9vbCBm b3JBbGxUYWJQdWJPbmx5KQogewogCUxpc3QgKmFsbFRhYmxlUHVicyA9IE5JTDsKIAlMaXN0ICp0 YWJsZVB1YnMgPSBOSUw7CiAJTGlzdENlbGwgKmxjOwogCi0JLyogT25seSByZXBsaWNhdGUgdG9w bGV2ZWwgRERMIGNvbW1hbmQgKi8KLQlpZiAoIWlzVG9wTGV2ZWwpCi0JCXJldHVybiBmYWxzZTsK IAlpZiAocmVsaWQgPT0gSW52YWxpZE9pZCAmJiAhZm9yQWxsVGFiUHViT25seSkKIAkJcmV0dXJu IGZhbHNlOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDZkMTQ4Nzk1MWYuLjNjOWI2 NDA5Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMzMzLDE0ICsxMzMzLDE0IEBA IERyb3BFcnJvck1zZ1dyb25nVHlwZShjb25zdCBjaGFyICpyZWxuYW1lLCBjaGFyIHdyb25na2lu ZCwgY2hhciByaWdodGtpbmQpCiAgKgkJRFJPUCBNQVRFUklBTElaRUQgVklFVywgRFJPUCBGT1JF SUdOIFRBQkxFCiAgKi8KIHZvaWQKLVJlbW92ZVJlbGF0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUs IERyb3BTdG10ICpkcm9wLCBib29sIGlzVG9wTGV2ZWwpCitSZW1vdmVSZWxhdGlvbnMoUGFyc2VT dGF0ZSAqcHN0YXRlLCBEcm9wU3RtdCAqZHJvcCwgYm9vbCBpc0NvbXBsZXRlUXVlcnkpCiB7CiAJ T2JqZWN0QWRkcmVzc2VzICpvYmplY3RzOwogCWNoYXIJCXJlbGtpbmQ7CiAJTGlzdENlbGwgICAq Y2VsbDsKIAlpbnQJCQlmbGFncyA9IDA7CiAJTE9DS01PREUJbG9ja21vZGUgPSBBY2Nlc3NFeGNs dXNpdmVMb2NrOwotCWJvb2wJCWRkbHhsb2cgPSBYTG9nTG9naWNhbEluZm9BY3RpdmUoKTsKKwli b29sCQlkZGx4bG9nID0gWExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkgJiYgaXNDb21wbGV0ZVF1ZXJ5 OwogCiAJLyogRFJPUCBDT05DVVJSRU5UTFkgdXNlcyBhIHdlYWtlciBsb2NrLCBhbmQgaGFzIHNv bWUgcmVzdHJpY3Rpb25zICovCiAJaWYgKGRyb3AtPmNvbmN1cnJlbnQpCkBAIC0xNDY2LDcgKzE0 NjYsNyBAQCBSZW1vdmVSZWxhdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEcm9wU3RtdCAqZHJv cCwgYm9vbCBpc1RvcExldmVsKQogCiAJCQkvKiBEUk9QIFJFTEFUSU9OIG9yIElOREVYIGFyZSBh bGxvd2VkIGluIHRhYmxlIGxldmVsIERETCByZXBsaWNhdGlvbiAqLwogCQkJaWYgKHRhYmxlT2lk ICE9IEludmFsaWRPaWQgJiYKLQkJCQkhZGRsX25lZWRfeGxvZyh0YWJsZU9pZCwgZmFsc2UsIGlz VG9wTGV2ZWwpKQorCQkJCSFkZGxfbmVlZF94bG9nKHRhYmxlT2lkLCBmYWxzZSkpCiAJCQkJZGRs eGxvZyA9IGZhbHNlOwogCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMjkzODFiNTNiNi4uZTllNzU2 NzIwOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTg3LDcgKzg3LDggQEAgc3RhdGljIHZvaWQgUHJvY2Vz c1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkgICBRdWVyeUVudmlyb25t ZW50ICpxdWVyeUVudiwKIAkJCQkJCQkgICBEZXN0UmVjZWl2ZXIgKmRlc3QsCiAJCQkJCQkJICAg UXVlcnlDb21wbGV0aW9uICpxYyk7Ci1zdGF0aWMgdm9pZCBFeGVjRHJvcFN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBEcm9wU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKTsKK3N0YXRpYyB2b2lk IEV4ZWNEcm9wU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpzdG10LCBib29sIGlz VG9wTGV2ZWwsCisJCQkJCQkgYm9vbCBpc0NvbXBsZXRlUXVlcnkpOwogCiAvKgogICogQ29tbWFu ZElzUmVhZE9ubHk6IGlzIGFuIGV4ZWN1dGFibGUgcXVlcnkgcmVhZC1vbmx5PwpAQCAtOTg4LDcg Kzk4OSw3IEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAkJ CQkJCQkJCSAgIGNvbnRleHQsIHBhcmFtcywgcXVlcnlFbnYsCiAJCQkJCQkJCQkgICBkZXN0LCBx Yyk7CiAJCQkJZWxzZQotCQkJCQlFeGVjRHJvcFN0bXQocHN0YXRlLCBzdG10LCBpc1RvcExldmVs KTsKKwkJCQkJRXhlY0Ryb3BTdG10KHBzdGF0ZSwgc3RtdCwgaXNUb3BMZXZlbCwgY29udGV4dCAh PSBQUk9DRVNTX1VUSUxJVFlfU1VCQ09NTUFORCk7CiAJCQl9CiAJCQlicmVhazsKIApAQCAtMTEy OCw3ICsxMTI5LDcgQEAgTG9nTG9naWNhbERETENvbW1hbmQoTm9kZSAqcGFyc2V0cmVlLCBjb25z dCBjaGFyICpxdWVyeVN0cmluZykKIAkJCSAqIHRoZXJlIGlzIGFueSBGT1IgQUxMIFRBQkxFUyBw dWJsaWNhdGlvbiB3aXRoIHB1YmRkbF9kYXRhYmFzZSBvbi4KIAkJCSAqIGkuZS4gRGF0YWJhc2Ug bGV2ZWwgRERMIHJlcGxpY2F0aW9uIGlzIG9uIGZvciBzb21lIHB1YmxpY2F0aW9uLgogCQkJICov Ci0JCQlpZiAoZGRsX25lZWRfeGxvZyhJbnZhbGlkT2lkLCB0cnVlLCB0cnVlKSkKKwkJCWlmIChk ZGxfbmVlZF94bG9nKEludmFsaWRPaWQsIHRydWUpKQogCQkJewogCQkJCWJvb2wgdHJhbnNhY3Rp b25hbCA9IHRydWU7CiAJCQkJY29uc3QgY2hhciogcHJlZml4ID0gIiI7CkBAIC0xMTcwLDcgKzEx NzEsNyBAQCBMb2dMb2dpY2FsRERMQ29tbWFuZChOb2RlICpwYXJzZXRyZWUsIGNvbnN0IGNoYXIg KnF1ZXJ5U3RyaW5nKQogCQkJCQkgKiB0aGVyZSBpcyBhbnkgRk9SIEFMTCBUQUJMRVMgcHVibGlj YXRpb24gd2l0aCBwdWJkZGxfZGF0YWJhc2Ugb24uCiAJCQkJCSAqIGkuZS4gRGF0YWJhc2UgbGV2 ZWwgRERMIHJlcGxpY2F0aW9uIGlzIG9uIGZvciBzb21lIHB1YmxpY2F0aW9uLgogCQkJCQkgKi8K LQkJCQkJaWYgKGRkbF9uZWVkX3hsb2coSW52YWxpZE9pZCwgdHJ1ZSwgdHJ1ZSkpCisJCQkJCWlm IChkZGxfbmVlZF94bG9nKEludmFsaWRPaWQsIHRydWUpKQogCQkJCQl7CiAJCQkJCQlib29sIHRy YW5zYWN0aW9uYWwgPSB0cnVlOwogCQkJCQkJY29uc3QgY2hhciogcHJlZml4ID0gIiI7CkBAIC0x MjIxLDcgKzEyMjIsNyBAQCBMb2dMb2dpY2FsRERMQ29tbWFuZChOb2RlICpwYXJzZXRyZWUsIGNv bnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQogCQkJCQkgKiB0aGVyZSBpcyBhbnkgRk9SIEFMTCBUQUJM RVMgcHVibGljYXRpb24gd2l0aCBwdWJkZGxfZGF0YWJhc2Ugb24uCiAJCQkJCSAqIGkuZS4gRGF0 YWJhc2UgbGV2ZWwgRERMIHJlcGxpY2F0aW9uIGlzIG9uIGZvciBzb21lIHB1YmxpY2F0aW9uLgog CQkJCQkgKi8KLQkJCQkJaWYgKGRkbF9uZWVkX3hsb2coSW52YWxpZE9pZCwgdHJ1ZSwgdHJ1ZSkp CisJCQkJCWlmIChkZGxfbmVlZF94bG9nKEludmFsaWRPaWQsIHRydWUpKQogCQkJCQl7CiAJCQkJ CQlib29sIHRyYW5zYWN0aW9uYWwgPSB0cnVlOwogCQkJCQkJY29uc3QgY2hhciogcHJlZml4ID0g IiI7CkBAIC0xMzE4LDcgKzEzMTksNyBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJICogQ29uc2lkZXIgbG9nZ2luZyB0aGUgRERMIGNvbW1hbmQgaWYgbG9naWNh bCBsb2dnaW5nIGlzIGVuYWJsZWQgYW5kIHRoaXMgaXMKIAkJCSAqIGEgY29tcGxldGUgdG9wIGxl dmVsIHF1ZXJ5LgogCQkJICovCi0JCQlpZiAoWExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkgJiYgaXNU b3BMZXZlbCkKKwkJCWlmIChYTG9nTG9naWNhbEluZm9BY3RpdmUoKSkKIAkJCQlMb2dMb2dpY2Fs RERMQ29tbWFuZChwYXJzZXRyZWUsIHF1ZXJ5U3RyaW5nKTsKIAkJfQogCkBAIC0xNTMwLDcgKzE1 MzEsOCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJICog dGhpcyBUQUJMRSBiZWxvbmdzIHRvIGFueSBwdWJsaWNhdGlvbiB3aXRoIHRhYmxlIGxldmVsIGRk bCBvbgogCQkJCQkJICovCiAJCQkJCQlpZiAoWExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkgJiYKLQkJ CQkJCQlkZGxfbmVlZF94bG9nKHJlbGlkLCBmYWxzZSwgaXNUb3BMZXZlbCkpCisJCQkJCQkJaXND b21wbGV0ZVF1ZXJ5ICYmCisJCQkJCQkJZGRsX25lZWRfeGxvZyhyZWxpZCwgZmFsc2UpKQogCQkJ CQkJewogCQkJCQkJCWJvb2wgdHJhbnNhY3Rpb25hbCA9IHRydWU7CiAJCQkJCQkJY29uc3QgY2hh ciogcHJlZml4ID0gIiI7CkBAIC0xNzY2LDcgKzE3NjgsOCBAQCBQcm9jZXNzVXRpbGl0eVNsb3co UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkgKiB0aGlzIFRBQkxFIGJlbG9uZ3MgdG8gYW55IHB1 YmxpY2F0aW9uIHdpdGggdGFibGUgbGV2ZWwgZGRsIG9uLgogCQkJCQkgKi8KIAkJCQkJaWYgKFhM b2dMb2dpY2FsSW5mb0FjdGl2ZSgpICYmCi0JCQkJCQlkZGxfbmVlZF94bG9nKHJlbGlkLCBmYWxz ZSwgaXNUb3BMZXZlbCkpCisJCQkJCQlpc0NvbXBsZXRlUXVlcnkgJiYKKwkJCQkJCWRkbF9uZWVk X3hsb2cocmVsaWQsIGZhbHNlKSkKIAkJCQkJewogCQkJCQkJYm9vbCB0cmFuc2FjdGlvbmFsID0g dHJ1ZTsKIAkJCQkJCWNvbnN0IGNoYXIqIHByZWZpeCA9ICIiOwpAQCAtMTk5OSw3ICsyMDAyLDcg QEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQlicmVhazsKIAog CQkJY2FzZSBUX0Ryb3BTdG10OgotCQkJCUV4ZWNEcm9wU3RtdChwc3RhdGUsIChEcm9wU3RtdCAq KSBwYXJzZXRyZWUsIGlzVG9wTGV2ZWwpOworCQkJCUV4ZWNEcm9wU3RtdChwc3RhdGUsIChEcm9w U3RtdCAqKSBwYXJzZXRyZWUsIGlzVG9wTGV2ZWwsIGlzQ29tcGxldGVRdWVyeSk7CiAJCQkJLyog bm8gY29tbWFuZHMgc3Rhc2hlZCBmb3IgRFJPUCAqLwogCQkJCWNvbW1hbmRDb2xsZWN0ZWQgPSB0 cnVlOwogCQkJCWJyZWFrOwpAQCAtMjIyMCw3ICsyMjIzLDggQEAgUHJvY2Vzc1V0aWxpdHlGb3JB bHRlclRhYmxlKE5vZGUgKnN0bXQsIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCkK ICAqIERpc3BhdGNoIGZ1bmN0aW9uIGZvciBEcm9wU3RtdAogICovCiBzdGF0aWMgdm9pZAotRXhl Y0Ryb3BTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRHJvcFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BM ZXZlbCkKK0V4ZWNEcm9wU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpzdG10LCBi b29sIGlzVG9wTGV2ZWwsCisJCQkgYm9vbCBpc0NvbXBsZXRlUXVlcnkpCiB7CiAJc3dpdGNoIChz dG10LT5yZW1vdmVUeXBlKQogCXsKQEAgLTIyMzUsNyArMjIzOSw3IEBAIEV4ZWNEcm9wU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCWNh c2UgT0JKRUNUX1ZJRVc6CiAJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCWNhc2UgT0JKRUNUX0ZP UkVJR05fVEFCTEU6Ci0JCQlSZW1vdmVSZWxhdGlvbnMocHN0YXRlLCBzdG10LCBpc1RvcExldmVs KTsKKwkJCVJlbW92ZVJlbGF0aW9ucyhwc3RhdGUsIHN0bXQsIGlzQ29tcGxldGVRdWVyeSk7CiAJ CQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCVJlbW92ZU9iamVjdHMoc3RtdCk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggYTk0ZTE1MjI1Ni4uOGMxMTRiMjQ0NyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApAQCAtMTY2LDYgKzE2Niw2IEBAIGV4dGVybiBC aXRtYXBzZXQgKnB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChCaXRtYXBzZXQgKmNvbHVtbnMsIERh dHVtIHB1YmNvbHMsCiAKIGV4dGVybiBPaWQJZ2V0X3B1YmxpY2F0aW9uX29pZChjb25zdCBjaGFy ICpwdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlv bl9uYW1lKE9pZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKLWV4dGVybiBib29sIGRkbF9uZWVk X3hsb2coT2lkIHJlbGlkLCBib29sIGZvckFsbFRhYlB1Yk9ubHksIGJvb2wgaXNUb3BMZXZlbCk7 CitleHRlcm4gYm9vbCBkZGxfbmVlZF94bG9nKE9pZCByZWxpZCwgYm9vbCBmb3JBbGxUYWJQdWJP bmx5KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX1BVQkxJQ0FUSU9OX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv dGFibGVjbWRzLmgKaW5kZXggNjg3ODEzNjVkZS4uMjQxMDZkZTJlNSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv dGFibGVjbWRzLmgKQEAgLTI4LDcgKzI4LDggQEAgc3RydWN0IEFsdGVyVGFibGVVdGlsaXR5Q29u dGV4dDsJLyogYXZvaWQgaW5jbHVkaW5nIHRjb3AvdXRpbGl0eS5oIGhlcmUgKi8KIGV4dGVybiBP YmplY3RBZGRyZXNzIERlZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2lu ZCwgT2lkIG93bmVySWQsCiAJCQkJCQkJCQlPYmplY3RBZGRyZXNzICp0eXBhZGRyZXNzLCBjb25z dCBjaGFyICpxdWVyeVN0cmluZyk7CiAKLWV4dGVybiB2b2lkIFJlbW92ZVJlbGF0aW9ucyhQYXJz ZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpkcm9wLCBib29sIGlzVG9wTGV2ZWwpOworZXh0ZXJu IHZvaWQgUmVtb3ZlUmVsYXRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgRHJvcFN0bXQgKmRyb3As CisJCQkJCQkJYm9vbCBpc0NvbXBsZXRlUXVlcnkpOwogCiBleHRlcm4gT2lkCUFsdGVyVGFibGVM b29rdXBSZWxhdGlvbihBbHRlclRhYmxlU3RtdCAqc3RtdCwgTE9DS01PREUgbG9ja21vZGUpOwog CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwgYi9z cmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfcmVwX2RkbHMucGwKaW5kZXggNGUwNTIxMjA2OC4u MzRiOWQ1MWViMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3JlcF9k ZGxzLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9yZXBfZGRscy5wbApAQCAt MzQ4LDYgKzM0OCw0NCBAQCAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3Vi Jyk7CiAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJT RUxFQ1QgY291bnQoKikgRlJPTSBwZ19jYXRhbG9nLnBnX2Nhc3QgYywgcGdfY2F0YWxvZy5wZ19w cm9jIHAgV0hFUkUgcC5wcm9uYW1lPSdhZGQnIEFORCBjLmNhc3RmdW5jPXAub2lkOyIpOwogaXMo JHJlc3VsdCwgcXEoMSksICdDcmVhdGVDYXN0IFN0bXQgaXMgcmVwbGljYXRlZCcpOwogCisjVEVT VCBEREwgaW4gZnVuY3Rpb24KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHFxeworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gZnVuY19kZGwgKHRuYW1lIHZhcmNoYXIo MjApKQorUkVUVVJOUyBWT0lEIEFTIFwkXCQKK0JFR0lOCisgICAgZXhlY3V0ZSBmb3JtYXQoJ0NS RUFURSBUQUJMRSAlSShpZCBpbnQgcHJpbWFyeSBrZXksIG5hbWUgdmFyY2hhcik7JywgdG5hbWUp OworICAgIGV4ZWN1dGUgZm9ybWF0KCdBTFRFUiBUQUJMRSAlSSBBREQgYzMgaW50JywgdG5hbWUp OworICAgIGV4ZWN1dGUgZm9ybWF0KCdJTlNFUlQgSU5UTyAlSSBWQUxVRVMgKDEsICcnYScnKTsn LCB0bmFtZSk7CisgICAgZXhlY3V0ZSBmb3JtYXQoJ0lOU0VSVCBJTlRPICVJIFZBTFVFUyAoMiwg JydiJycsIDIyKTsnLCB0bmFtZSk7CitFTkQ7CitcJFwkCitMQU5HVUFHRSBwbHBnc3FsO30pOwor Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGZ1bmNfZGRs KCdmdW5jX3RhYmxlJyk7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgn bXlzdWInKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gczEuZnVuY190YWJsZSB3aGVyZSBjMyA9IDIyOyIp OworaXMoJHJlc3VsdCwgcXEoMSksICdERExzIGluIGZ1bmN0aW9uIGFyZSByZXBsaWNhdGVkJyk7 CisKKyNURVNUIERETCBpbiBwcm9jZWR1cmUKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHFxeworQ1JFQVRFIE9SIFJFUExBQ0UgcHJvY2VkdXJlIHByb2NfZGRsICh0bmFt ZSB2YXJjaGFyKDIwKSkKK0xBTkdVQUdFIHBscGdzcWwgQVMgXCRcJAorQkVHSU4KKyAgICBleGVj dXRlIGZvcm1hdCgnQ1JFQVRFIFRBQkxFICVJKGlkIGludCBwcmltYXJ5IGtleSwgbmFtZSB2YXJj aGFyKTsnLCB0bmFtZSk7CisgICAgZXhlY3V0ZSBmb3JtYXQoJ0FMVEVSIFRBQkxFICVJIEFERCBj MyBpbnQnLCB0bmFtZSk7CisgICAgZXhlY3V0ZSBmb3JtYXQoJ0lOU0VSVCBJTlRPICVJIFZBTFVF UyAoMSwgJydhJycpOycsIHRuYW1lKTsKKyAgICBleGVjdXRlIGZvcm1hdCgnSU5TRVJUIElOVE8g JUkgVkFMVUVTICgyLCAnJ2InJywgMjIpOycsIHRuYW1lKTsKK0VORCBcJFwkO30pOworCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ0FMTCBwcm9jX2RkbCgncHJvY190 YWJsZScpOyIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ215c3ViJyk7 CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNF TEVDVCBjb3VudCgqKSBGUk9NIHMxLnByb2NfdGFibGUgd2hlcmUgYzMgPSAyMjsiKTsKK2lzKCRy ZXN1bHQsIHFxKDEpLCAnRERMcyBpbiBwcm9jZWR1cmUgYXJlIHJlcGxpY2F0ZWQnKTsKKwogI1RP RE8gVEVTVCBjZXJ0YWluIERETHMgYXJlIG5vdCByZXBsaWNhdGVkCiAKIHBhc3MgIkRETCByZXBs aWNhdGlvbiB0ZXN0cyBwYXNzZWQhIjsKLS0gCjIuMzIuMAoK --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0012-Change-the-logging-format-of-logical-ddlmessage-to-t.patch" Content-Disposition: attachment; filename="0012-Change-the-logging-format-of-logical-ddlmessage-to-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwpf11 RnJvbSBjZTdlNmEwMDg3ZTYyNmQyMjc5ZmUwY2EzNDcyZDdlZWE0NWZhODUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IFN1biwgMTIgSnVuIDIwMjIgMDU6Mjg6MDIgKzAwMDAKU3ViamVjdDogW1BBVENIIDEy LzEyXSBDaGFuZ2UgdGhlIGxvZ2dpbmcgZm9ybWF0IG9mIGxvZ2ljYWwgZGRsbWVzc2FnZSB0byB0 aGF0CiBvZiB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGUgcGFyc2V0cmVlIG9mIHRoZSBEREwgY29t bWFuZCB1c2luZwogbm9kZVRvU3RyaW5nKCksIHRoZSBhcHBseSB3b3JrZXIgZGVzZXJpYWxpemVz IHRoZSBkZGxtZXNzYWdlIGJ5IGNhbGxpbmcKIHN0cmluZ1RvTm9kZSgpLiBEZXRhaWxlZCBjaGFu Z2VzOiAtIEFkZGluZyBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbgogZnVuY3Rpb25zIGlu IG91dGZ1bmNzLmMvcmVhZGZ1bmNzLmMgICBmb3IgQ3JlYXRlVGFibGVTdG10LCBBbHRlclRhYmxl U3RtdCwKIERyb3BTdG10LCBDcmVhdGVGdW5jdGlvblN0bXQgYW5kICAgQWx0ZXJGdW5jdGlvblN0 bXQuIC0gTW9kaWZpZWQgdGhlCiBzZXJpYWxpemF0aW9uIHByb2Nlc3MgdG8gYWx3YXlzIHNjaGVt YSBxdWFsaWZ5IG9iamVjdCBuYW1lcywgICB0aGlzIGlzIGRvbmUKIGJ5IG91dFF1YWxpZmllZE5h bWUoKSBhbmQgYSBjaGFuZ2UgaW4gX291dFJhbmdlVmFyKCkuIC0gQ2hhbmdlIHRoZSBpbnB1dCBv ZgogTG9nTG9naWNhbERETE1lc3NhZ2UoKSB0byB1c2Ugbm9kZVRvU3RyaW5nKHBhcnNldHJlZSku IC0gQ2hhbmdlIHRoZSBhcHBseQogd29ya2VyIHRvIGNhbGwgc3RyaW5nVG9Ob2RlKGRkbG1lc3Nh Z2UpIHRvIGRlc2VyaWFsaXplICAgdGhlIHBhcnNldHJlZSBhbmQKIHRoZW4gZGlyZWN0bHkgZXhl Y3V0ZSB0aGUgcGFyc2V0cmVlLgoKUHVycG9zZSBvZiB0aGUgY29tbWl0IGlzIHRvIGV4cGxvcmUg dGhlIG5ldyBsb2dnaW5nIGZvcm1hdCwgbG90IG9mIHRoZQpleGlzdGluZyB0ZXN0cyBpbiAwMzBf cmVwX2RkbHMucGwgZmFpbHMgZHVlIHRvIG1pc3Npbmcgc2VyaWFsaXphdGlvbi8KZGVzZXJpYWxp emF0aW9uIHN1cHBvcnQgb2YgdGhlaXIgRERMIHBhcnNldHJlZSB0eXBlcy4gT25seSBDcmVhdGVU YWJsZVN0bXQsCkFsdGVyVGFibGVTdG10LCBEcm9wU3RtdCwgQ3JlYXRlRnVuY3Rpb25TdG10IGFy ZSB0ZXN0ZWQgdG8gYmUgd29ya2luZwphdCB0aGUgbW9tZW50LgotLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgfCAgMTAgKy0KIHNyYy9iYWNrZW5kL25vZGVzL291 dGZ1bmNzLmMgICAgICAgICAgICAgfCAxODEgKysrKysrKystCiBzcmMvYmFja2VuZC9ub2Rlcy9y ZWFkZnVuY3MuYyAgICAgICAgICAgIHwgNDUyICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIHwgMzQ1ICsrKysrKysrLS0tLS0t LS0tCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgIHwgIDQ5ICsrLQog NSBmaWxlcyBjaGFuZ2VkLCA4NDYgaW5zZXJ0aW9ucygrKSwgMTkxIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggOTRlMzUwYjgwZC4uODc5NzhiNzUyMyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTE1MTcsMTAgKzE1MTcsMTEgQEAgUmVtb3ZlUmVsYXRp b25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgRHJvcFN0bXQgKmRyb3AsIGJvb2wgaXNDb21wbGV0ZVF1 ZXJ5KQogCWlmIChkZGx4bG9nKQogCXsKIAkJY29uc3QgY2hhciogcHJlZml4ID0gIiI7CisJCWNo YXIqIHBhcnNldHJlZV9zdHIgPSBub2RlVG9TdHJpbmcoKE5vZGUgKikgZHJvcCk7CiAJCUxvZ0xv Z2ljYWxERExNZXNzYWdlKHByZWZpeCwKIAkJCQkJCQkgR2V0VXNlcklkKCksCi0JCQkJCQkJIHBz dGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJCQkJCSBzdHJsZW4ocHN0YXRlLT5wX3NvdXJjZXRleHQp KTsKKwkJCQkJCQkgcGFyc2V0cmVlX3N0ciwKKwkJCQkJCQkgc3RybGVuKHBhcnNldHJlZV9zdHIp KTsKIAl9CiAKIAlwZXJmb3JtTXVsdGlwbGVEZWxldGlvbnMob2JqZWN0cywgZHJvcC0+YmVoYXZp b3IsIGZsYWdzKTsKQEAgLTM4NzUsMTAgKzM4NzYsMTEgQEAgUmVuYW1lUmVsYXRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBSZW5hbWVTdG10ICpzdG10LCBib29sIGlzQ29tcGxldGVRdWVyeSkKIAkJ ZGRsX25lZWRfeGxvZyhyZWxpZCwgZmFsc2UpKQogCXsKIAkJY29uc3QgY2hhciogcHJlZml4ID0g IiI7CisJCWNoYXIqIHBhcnNldHJlZV9zdHIgPSBub2RlVG9TdHJpbmcoKE5vZGUgKikgc3RtdCk7 CiAJCUxvZ0xvZ2ljYWxERExNZXNzYWdlKHByZWZpeCwKIAkJCQkJCQkgR2V0VXNlcklkKCksCi0J CQkJCQkJIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJCQkJCSBzdHJsZW4ocHN0YXRlLT5wX3Nv dXJjZXRleHQpKTsKKwkJCQkJCQkgcGFyc2V0cmVlX3N0ciwKKwkJCQkJCQkgc3RybGVuKHBhcnNl dHJlZV9zdHIpKTsKIAl9CiAKIAkvKiBEbyB0aGUgd29yayAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKaW5k ZXggY2UxMjkxNTU5Mi4uZDMwMmM2MzkyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMv b3V0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCkBAIC0yOSwxMiAr MjksMTQgQEAKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVz cGFjZS5oIgogI2luY2x1ZGUgImxpYi9zdHJpbmdpbmZvLmgiCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCiAjaW5jbHVkZSAibm9kZXMvZXh0ZW5zaWJsZS5oIgogI2luY2x1ZGUgIm5vZGVzL3BhdGhu b2Rlcy5oIgogI2luY2x1ZGUgIm5vZGVzL3BsYW5ub2Rlcy5oIgogI2luY2x1ZGUgInV0aWxzL2Rh dHVtLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVs LmgiCiAKIHN0YXRpYyB2b2lkIG91dENoYXIoU3RyaW5nSW5mbyBzdHIsIGNoYXIgYyk7CkBAIC0y MTAsNiArMjEyLDM0IEBAIG91dENoYXIoU3RyaW5nSW5mbyBzdHIsIGNoYXIgYykKIAlvdXRUb2tl bihzdHIsIGluKTsKIH0KIAorLyoKKyAqIENvbnZlcnQgYSBwb3NzaWJseSBxdWFsaWZpZWQgbmFt ZSAobGlzdCBvZiBTdHJpbmcgbm9kZXMpCisgKiBXZSdsbCBxdWFsaWZ5IHRoZSBuYW1lIGlmIHRo ZSBpbnB1dCBpcyBub3QgcXVhbGlmaWVkLgorICovCitzdGF0aWMgdm9pZAorb3V0UXVhbGlmaWVk TmFtZShTdHJpbmdJbmZvIHN0ciwgTGlzdCAqbmFtZXMpCit7CisJYXBwZW5kU3RyaW5nSW5mb0No YXIoc3RyLCAnKCcpOworCWlmIChsaXN0X2xlbmd0aChuYW1lcykgPiAwKQorCXsKKwkJT2lkIG5h bWVzcGFjZUlkOworCQljaGFyICpzY2hlbWFuYW1lOworCQljaGFyICpvYmpuYW1lOworCisJCW5h bWVzcGFjZUlkID0gUXVhbGlmaWVkTmFtZUdldENyZWF0aW9uTmFtZXNwYWNlKG5hbWVzLCAmb2Jq bmFtZSk7CisJCXNjaGVtYW5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUobmFtZXNwYWNlSWQpOwor CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKHN0ciwgJyInKTsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZyhzdHIsIHNjaGVtYW5hbWUpOworCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihzdHIsICciJyk7 CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKHN0ciwgJyAnKTsKKwkJYXBwZW5kU3RyaW5nSW5mb0No YXIoc3RyLCAnIicpOworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgb2JqbmFtZSk7CisJ CWFwcGVuZFN0cmluZ0luZm9DaGFyKHN0ciwgJyInKTsKKwl9CisJYXBwZW5kU3RyaW5nSW5mb0No YXIoc3RyLCAnKScpOworfQorCiBzdGF0aWMgdm9pZAogX291dExpc3QoU3RyaW5nSW5mbyBzdHIs IGNvbnN0IExpc3QgKm5vZGUpCiB7CkBAIC0xMDkwLDcgKzExMjAsMTYgQEAgX291dFJhbmdlVmFy KFN0cmluZ0luZm8gc3RyLCBjb25zdCBSYW5nZVZhciAqbm9kZSkKIAkgKiB3ZSBkZWxpYmVyYXRl bHkgaWdub3JlIGNhdGFsb2duYW1lIGhlcmUsIHNpbmNlIGl0IGlzIHByZXNlbnRseSBub3QKIAkg KiBzZW1hbnRpY2FsbHkgbWVhbmluZ2Z1bAogCSAqLwotCVdSSVRFX1NUUklOR19GSUVMRChzY2hl bWFuYW1lKTsKKwlpZiAobm9kZS0+c2NoZW1hbmFtZSA9PSBOVUxMKQorCXsKKwkJT2lkIHNjaGVt YV9vaWQgPSBSYW5nZVZhckdldENyZWF0aW9uTmFtZXNwYWNlKG5vZGUpOworCQljaGFyICpzY2hl bWFfbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZShzY2hlbWFfb2lkKTsKKworCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKHN0ciwgIiA6c2NoZW1hbmFtZSAiKTsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZyhzdHIsIHNjaGVtYV9uYW1lKTsKKwl9CisJZWxzZQorCQlXUklURV9TVFJJTkdfRklFTEQo c2NoZW1hbmFtZSk7CiAJV1JJVEVfU1RSSU5HX0ZJRUxEKHJlbG5hbWUpOwogCVdSSVRFX0JPT0xf RklFTEQoaW5oKTsKIAlXUklURV9DSEFSX0ZJRUxEKHJlbHBlcnNpc3RlbmNlKTsKQEAgLTI4ODgs NiArMjkyNywxOCBAQCBfb3V0Q3JlYXRlU3RtdChTdHJpbmdJbmZvIHN0ciwgY29uc3QgQ3JlYXRl U3RtdCAqbm9kZSkKIAlfb3V0Q3JlYXRlU3RtdEluZm8oc3RyLCAoY29uc3QgQ3JlYXRlU3RtdCAq KSBub2RlKTsKIH0KIAorc3RhdGljIHZvaWQKK19vdXRDcmVhdGVUYWJsZUFzU3RtdChTdHJpbmdJ bmZvIHN0ciwgY29uc3QgQ3JlYXRlVGFibGVBc1N0bXQgKm5vZGUpCit7CisJV1JJVEVfTk9ERV9U WVBFKCJDUkVBVEVUQUJMRUFTU1RNVCIpOworCisJV1JJVEVfTk9ERV9GSUVMRChxdWVyeSk7CisJ V1JJVEVfTk9ERV9GSUVMRChpbnRvKTsKKwlXUklURV9FTlVNX0ZJRUxEKG9ianR5cGUsIE9iamVj dFR5cGUpOworCVdSSVRFX0JPT0xfRklFTEQoaXNfc2VsZWN0X2ludG8pOworCVdSSVRFX0JPT0xf RklFTEQoaWZfbm90X2V4aXN0cyk7Cit9CisKIHN0YXRpYyB2b2lkCiBfb3V0Q3JlYXRlRm9yZWln blRhYmxlU3RtdChTdHJpbmdJbmZvIHN0ciwgY29uc3QgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdCAq bm9kZSkKIHsKQEAgLTI4OTksNiArMjk1MCwxMDYgQEAgX291dENyZWF0ZUZvcmVpZ25UYWJsZVN0 bXQoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQgKm5vZGUpCiAJ V1JJVEVfTk9ERV9GSUVMRChvcHRpb25zKTsKIH0KIAorc3RhdGljIHZvaWQKK19vdXRBbHRlclRh YmxlU3RtdChTdHJpbmdJbmZvIHN0ciwgY29uc3QgQWx0ZXJUYWJsZVN0bXQgKm5vZGUpCit7CisJ V1JJVEVfTk9ERV9UWVBFKCJBTFRFUlRBQkxFU1RNVCIpOworCisJV1JJVEVfTk9ERV9GSUVMRChy ZWxhdGlvbik7CisJV1JJVEVfTk9ERV9GSUVMRChjbWRzKTsKKwlXUklURV9FTlVNX0ZJRUxEKG9i anR5cGUsIE9iamVjdFR5cGUpOworCVdSSVRFX0JPT0xfRklFTEQobWlzc2luZ19vayk7Cit9CisK K3N0YXRpYyB2b2lkCitfb3V0QWx0ZXJUYWJsZUNtZChTdHJpbmdJbmZvIHN0ciwgY29uc3QgQWx0 ZXJUYWJsZUNtZCAqbm9kZSkKK3sKKwlXUklURV9OT0RFX1RZUEUoIkFMVEVSVEFCTEVDTUQiKTsK KworCVdSSVRFX0VOVU1fRklFTEQoc3VidHlwZSwgQWx0ZXJUYWJsZVR5cGUpOworCVdSSVRFX1NU UklOR19GSUVMRChuYW1lKTsKKwlXUklURV9JTlRfRklFTEQobnVtKTsKKwlXUklURV9OT0RFX0ZJ RUxEKG5ld293bmVyKTsKKwlXUklURV9OT0RFX0ZJRUxEKGRlZik7CisJV1JJVEVfRU5VTV9GSUVM RChiZWhhdmlvciwgRHJvcEJlaGF2aW9yKTsKKwlXUklURV9CT09MX0ZJRUxEKG1pc3Npbmdfb2sp OworfQorCitzdGF0aWMgdm9pZAorX291dERyb3BTdG10KFN0cmluZ0luZm8gc3RyLCBjb25zdCBE cm9wU3RtdCAqbm9kZSkKK3sKKwlXUklURV9OT0RFX1RZUEUoIkRST1BTVE1UIik7CisKKwkvL1dS SVRFX05PREVfRklFTEQob2JqZWN0cyk7CisJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIg Om9iamVjdHMgIik7CisJLyogUXVhbGlmeSBhbmQgT1VUIG9iamVjdCBuYW1lcyAqLworCWlmIChu b2RlLT5vYmplY3RzKQorCXsKKwkJTGlzdENlbGwgKmxjOworCisJCWFwcGVuZFN0cmluZ0luZm9D aGFyKHN0ciwgJygnKTsKKwkJZm9yZWFjaChsYywgbm9kZS0+b2JqZWN0cykKKwkJeworCQkJTGlz dCAqbmFtZXMgPSAoTGlzdCAqKSBsZmlyc3QobGMpOworCQkJb3V0UXVhbGlmaWVkTmFtZShzdHIs IG5hbWVzKTsKKwkJfQorCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihzdHIsICcpJyk7CisJfQorCWVs c2UKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICI8PiIpOworCisJV1JJVEVfRU5VTV9G SUVMRChyZW1vdmVUeXBlLCBPYmplY3RUeXBlKTsKKwlXUklURV9FTlVNX0ZJRUxEKGJlaGF2aW9y LCBEcm9wQmVoYXZpb3IpOworCVdSSVRFX0JPT0xfRklFTEQobWlzc2luZ19vayk7CisJV1JJVEVf Qk9PTF9GSUVMRChjb25jdXJyZW50KTsKK30KKworc3RhdGljIHZvaWQKK19vdXRDcmVhdGVGdW5j dGlvblN0bXQoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IENyZWF0ZUZ1bmN0aW9uU3RtdCAqbm9kZSkK K3sKKwlXUklURV9OT0RFX1RZUEUoIkNSRUFURUZVTkNUSU9OU1RNVCIpOworCisJV1JJVEVfQk9P TF9GSUVMRChpc19wcm9jZWR1cmUpOworCVdSSVRFX0JPT0xfRklFTEQocmVwbGFjZSk7CisJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICIgOmZ1bmNuYW1lICIpOworCW91dFF1YWxpZmllZE5h bWUoc3RyLCBub2RlLT5mdW5jbmFtZSk7CisJV1JJVEVfTk9ERV9GSUVMRChwYXJhbWV0ZXJzKTsK KwlXUklURV9OT0RFX0ZJRUxEKHJldHVyblR5cGUpOworCVdSSVRFX05PREVfRklFTEQob3B0aW9u cyk7CisJV1JJVEVfTk9ERV9GSUVMRChzcWxfYm9keSk7Cit9CisKK3N0YXRpYyB2b2lkCitfb3V0 RnVuY3Rpb25QYXJhbWV0ZXIoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IEZ1bmN0aW9uUGFyYW1ldGVy ICpub2RlKQoreworCVdSSVRFX05PREVfVFlQRSgiRlVOQ1RJT05QQVJBTUVURVIiKTsKKworCVdS SVRFX1NUUklOR19GSUVMRChuYW1lKTsKKwlXUklURV9OT0RFX0ZJRUxEKGFyZ1R5cGUpOworCVdS SVRFX0VOVU1fRklFTEQobW9kZSwgRnVuY3Rpb25QYXJhbWV0ZXJNb2RlKTsKKwlXUklURV9OT0RF X0ZJRUxEKGRlZmV4cHIpOworfQorCitzdGF0aWMgdm9pZAorX291dEFsdGVyRnVuY3Rpb25TdG10 KFN0cmluZ0luZm8gc3RyLCBjb25zdCBBbHRlckZ1bmN0aW9uU3RtdCAqbm9kZSkKK3sKKwlXUklU RV9OT0RFX1RZUEUoIkFMVEVSRlVOQ1RJT05TVE1UIik7CisKKwlXUklURV9FTlVNX0ZJRUxEKG9i anR5cGUsIE9iamVjdFR5cGUpOworCVdSSVRFX05PREVfRklFTEQoZnVuYyk7CisJV1JJVEVfTk9E RV9GSUVMRChhY3Rpb25zKTsKK30KKworc3RhdGljIHZvaWQKK19vdXRSb2xlU3BlYyhTdHJpbmdJ bmZvIHN0ciwgY29uc3QgUm9sZVNwZWMgKm5vZGUpCit7CisJV1JJVEVfTk9ERV9UWVBFKCJST0xF U1BFQyIpOworCisJV1JJVEVfRU5VTV9GSUVMRCh0eXBlLCBSb2xlU3BlY1R5cGUpOworCVdSSVRF X1NUUklOR19GSUVMRChyb2xlbmFtZSk7CisJV1JJVEVfSU5UX0ZJRUxEKGxvY2F0aW9uKTsKK30K Kwogc3RhdGljIHZvaWQKIF9vdXRJbXBvcnRGb3JlaWduU2NoZW1hU3RtdChTdHJpbmdJbmZvIHN0 ciwgY29uc3QgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgKm5vZGUpCiB7CkBAIC0zMTM0LDcgKzMy ODUsOSBAQCBfb3V0VHlwZU5hbWUoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFR5cGVOYW1lICpub2Rl KQogewogCVdSSVRFX05PREVfVFlQRSgiVFlQRU5BTUUiKTsKIAotCVdSSVRFX05PREVfRklFTEQo bmFtZXMpOworCS8vV1JJVEVfTk9ERV9GSUVMRChuYW1lcyk7CisJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZyhzdHIsICIgOm5hbWVzICIpOworCW91dFF1YWxpZmllZE5hbWUoc3RyLCBub2RlLT5uYW1l cyk7CiAJV1JJVEVfT0lEX0ZJRUxEKHR5cGVPaWQpOwogCVdSSVRFX0JPT0xfRklFTEQoc2V0b2Yp OwogCVdSSVRFX0JPT0xfRklFTEQocGN0X3R5cGUpOwpAQCAtNDU0Myw5ICs0Njk2LDMzIEBAIG91 dE5vZGUoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IHZvaWQgKm9iaikKIAkJCWNhc2UgVF9DcmVhdGVT dG10OgogCQkJCV9vdXRDcmVhdGVTdG10KHN0ciwgb2JqKTsKIAkJCQlicmVhazsKKwkJCWNhc2Ug VF9DcmVhdGVUYWJsZUFzU3RtdDoKKwkJCQlfb3V0Q3JlYXRlVGFibGVBc1N0bXQoc3RyLCBvYmop OworCQkJCWJyZWFrOwogCQkJY2FzZSBUX0NyZWF0ZUZvcmVpZ25UYWJsZVN0bXQ6CiAJCQkJX291 dENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQoc3RyLCBvYmopOwogCQkJCWJyZWFrOworCQkJY2FzZSBU X0FsdGVyVGFibGVTdG10OgorCQkJCV9vdXRBbHRlclRhYmxlU3RtdChzdHIsIG9iaik7CisJCQkJ YnJlYWs7CisJCQljYXNlIFRfQWx0ZXJUYWJsZUNtZDoKKwkJCQlfb3V0QWx0ZXJUYWJsZUNtZChz dHIsIG9iaik7CisJCQkJYnJlYWs7CisJCQljYXNlIFRfRHJvcFN0bXQ6CisJCQkJX291dERyb3BT dG10KHN0ciwgb2JqKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgVF9DcmVhdGVGdW5jdGlvblN0bXQ6 CisJCQkJX291dENyZWF0ZUZ1bmN0aW9uU3RtdChzdHIsIG9iaik7CisJCQkJYnJlYWs7CisJCQlj YXNlIFRfRnVuY3Rpb25QYXJhbWV0ZXI6CisJCQkJX291dEZ1bmN0aW9uUGFyYW1ldGVyKHN0ciwg b2JqKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgVF9BbHRlckZ1bmN0aW9uU3RtdDoKKwkJCQlfb3V0 QWx0ZXJGdW5jdGlvblN0bXQoc3RyLCBvYmopOworCQkJCWJyZWFrOworCQkJY2FzZSBUX1JvbGVT cGVjOgorCQkJCV9vdXRSb2xlU3BlYyhzdHIsIG9iaik7CisJCQkJYnJlYWs7CiAJCQljYXNlIFRf SW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQ6CiAJCQkJX291dEltcG9ydEZvcmVpZ25TY2hlbWFTdG10 KHN0ciwgb2JqKTsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL3Jl YWRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKaW5kZXggNmEwNWI2OTQx NS4uNzE1NTZkMzNhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMK KysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKQEAgLTI5MzgsNiArMjkzOCw0MjYg QEAgX3JlYWRQYXJ0aXRpb25SYW5nZURhdHVtKHZvaWQpCiAJUkVBRF9ET05FKCk7CiB9CiAKKy8q CisgKiBfcmVhZENyZWF0ZVN0bXQKKyAqLworc3RhdGljIENyZWF0ZVN0bXQqCitfcmVhZENyZWF0 ZVN0bXQodm9pZCkKK3sKKwlSRUFEX0xPQ0FMUyhDcmVhdGVTdG10KTsKKworCVJFQURfTk9ERV9G SUVMRChyZWxhdGlvbik7CisJUkVBRF9OT0RFX0ZJRUxEKHRhYmxlRWx0cyk7CisJUkVBRF9OT0RF X0ZJRUxEKGluaFJlbGF0aW9ucyk7CisJUkVBRF9OT0RFX0ZJRUxEKHBhcnRzcGVjKTsKKwlSRUFE X05PREVfRklFTEQocGFydGJvdW5kKTsKKwlSRUFEX05PREVfRklFTEQob2ZUeXBlbmFtZSk7CisJ UkVBRF9OT0RFX0ZJRUxEKGNvbnN0cmFpbnRzKTsKKwlSRUFEX05PREVfRklFTEQob3B0aW9ucyk7 CisJUkVBRF9FTlVNX0ZJRUxEKG9uY29tbWl0LCBPbkNvbW1pdEFjdGlvbik7CisJUkVBRF9TVFJJ TkdfRklFTEQodGFibGVzcGFjZW5hbWUpOworCVJFQURfU1RSSU5HX0ZJRUxEKGFjY2Vzc01ldGhv ZCk7CisJUkVBRF9CT09MX0ZJRUxEKGlmX25vdF9leGlzdHMpOworCisJUkVBRF9ET05FKCk7Cit9 CisKKy8qCisgKiBfcmVhZENyZWF0ZVRhYmxlQXNTdG10CisgKi8KK3N0YXRpYyBDcmVhdGVUYWJs ZUFzU3RtdCoKK19yZWFkQ3JlYXRlVGFibGVBc1N0bXQodm9pZCkKK3sKKwlSRUFEX0xPQ0FMUyhD cmVhdGVUYWJsZUFzU3RtdCk7CisKKwlSRUFEX05PREVfRklFTEQocXVlcnkpOworCVJFQURfTk9E RV9GSUVMRChpbnRvKTsKKwlSRUFEX0VOVU1fRklFTEQob2JqdHlwZSwgT2JqZWN0VHlwZSk7CisJ UkVBRF9CT09MX0ZJRUxEKGlzX3NlbGVjdF9pbnRvKTsKKwlSRUFEX0JPT0xfRklFTEQoaWZfbm90 X2V4aXN0cyk7CisKKwlSRUFEX0RPTkUoKTsKK30KKworLyoKKyAqIF9yZWFkQWx0ZXJUYWJsZVN0 bXQKKyAqLworc3RhdGljIEFsdGVyVGFibGVTdG10KgorX3JlYWRBbHRlclRhYmxlU3RtdCh2b2lk KQoreworCVJFQURfTE9DQUxTKEFsdGVyVGFibGVTdG10KTsKKworCVJFQURfTk9ERV9GSUVMRChy ZWxhdGlvbik7CisJUkVBRF9OT0RFX0ZJRUxEKGNtZHMpOworCVJFQURfRU5VTV9GSUVMRChvYmp0 eXBlLCBPYmplY3RUeXBlKTsKKwlSRUFEX0JPT0xfRklFTEQobWlzc2luZ19vayk7CisKKwlSRUFE X0RPTkUoKTsKK30KKworLyoKKyAqIF9yZWFkQWx0ZXJUYWJsZUNtZAorICovCitzdGF0aWMgQWx0 ZXJUYWJsZUNtZCoKK19yZWFkQWx0ZXJUYWJsZUNtZCh2b2lkKQoreworCVJFQURfTE9DQUxTKEFs dGVyVGFibGVDbWQpOworCisJUkVBRF9FTlVNX0ZJRUxEKHN1YnR5cGUsIEFsdGVyVGFibGVUeXBl KTsKKwlSRUFEX1NUUklOR19GSUVMRChuYW1lKTsKKwlSRUFEX0lOVF9GSUVMRChudW0pOworCVJF QURfTk9ERV9GSUVMRChuZXdvd25lcik7CisJUkVBRF9OT0RFX0ZJRUxEKGRlZik7CisJUkVBRF9F TlVNX0ZJRUxEKGJlaGF2aW9yLCBEcm9wQmVoYXZpb3IpOworCVJFQURfQk9PTF9GSUVMRChtaXNz aW5nX29rKTsKKworCVJFQURfRE9ORSgpOworfQorCisvKgorICogX3JlYWREcm9wU3RtdAorICov CitzdGF0aWMgRHJvcFN0bXQqCitfcmVhZERyb3BTdG10KHZvaWQpCit7CisJUkVBRF9MT0NBTFMo RHJvcFN0bXQpOworCisJUkVBRF9OT0RFX0ZJRUxEKG9iamVjdHMpOworCVJFQURfRU5VTV9GSUVM RChyZW1vdmVUeXBlLCBPYmplY3RUeXBlKTsKKwlSRUFEX0VOVU1fRklFTEQoYmVoYXZpb3IsIERy b3BCZWhhdmlvcik7CisJUkVBRF9CT09MX0ZJRUxEKG1pc3Npbmdfb2spOworCVJFQURfQk9PTF9G SUVMRChjb25jdXJyZW50KTsKKworCVJFQURfRE9ORSgpOworfQorCisvKgorICogX3JlYWRDcmVh dGVGdW5jdGlvblN0bXQKKyAqLworc3RhdGljIENyZWF0ZUZ1bmN0aW9uU3RtdCoKK19yZWFkQ3Jl YXRlRnVuY3Rpb25TdG10KHZvaWQpCit7CisJUkVBRF9MT0NBTFMoQ3JlYXRlRnVuY3Rpb25TdG10 KTsKKworCVJFQURfQk9PTF9GSUVMRChpc19wcm9jZWR1cmUpOworCVJFQURfQk9PTF9GSUVMRChy ZXBsYWNlKTsKKwlSRUFEX05PREVfRklFTEQoZnVuY25hbWUpOworCVJFQURfTk9ERV9GSUVMRChw YXJhbWV0ZXJzKTsKKwlSRUFEX05PREVfRklFTEQocmV0dXJuVHlwZSk7CisJUkVBRF9OT0RFX0ZJ RUxEKG9wdGlvbnMpOworCVJFQURfTk9ERV9GSUVMRChzcWxfYm9keSk7CisKKwlSRUFEX0RPTkUo KTsKK30KKworLyoKKyAqIF9yZWFkRnVuY3Rpb25QYXJhbWV0ZXIKKyAqLworc3RhdGljIEZ1bmN0 aW9uUGFyYW1ldGVyKgorX3JlYWRGdW5jdGlvblBhcmFtZXRlcih2b2lkKQoreworCVJFQURfTE9D QUxTKEZ1bmN0aW9uUGFyYW1ldGVyKTsKKworCVJFQURfU1RSSU5HX0ZJRUxEKG5hbWUpOworCVJF QURfTk9ERV9GSUVMRChhcmdUeXBlKTsKKwlSRUFEX0VOVU1fRklFTEQobW9kZSwgRnVuY3Rpb25Q YXJhbWV0ZXJNb2RlKTsKKwlSRUFEX05PREVfRklFTEQoZGVmZXhwcik7CisKKwlSRUFEX0RPTkUo KTsKK30KKworLyoKKyAqIF9yZWFkQWx0ZXJGdW5jdGlvblN0bXQKKyAqLworc3RhdGljIEFsdGVy RnVuY3Rpb25TdG10KgorX3JlYWRBbHRlckZ1bmN0aW9uU3RtdCh2b2lkKQoreworCVJFQURfTE9D QUxTKEFsdGVyRnVuY3Rpb25TdG10KTsKKworCVJFQURfRU5VTV9GSUVMRChvYmp0eXBlLCBPYmpl Y3RUeXBlKTsKKwlSRUFEX05PREVfRklFTEQoZnVuYyk7CisJUkVBRF9OT0RFX0ZJRUxEKGFjdGlv bnMpOworCisJUkVBRF9ET05FKCk7Cit9CisKKy8qCisgKiBfcmVhZFJvbGVTcGVjCisgKi8KK3N0 YXRpYyBSb2xlU3BlYyoKK19yZWFkUm9sZVNwZWModm9pZCkKK3sKKwlSRUFEX0xPQ0FMUyhSb2xl U3BlYyk7CisKKwlSRUFEX0VOVU1fRklFTEQodHlwZSwgUm9sZVNwZWNUeXBlKTsKKwlSRUFEX1NU UklOR19GSUVMRChyb2xlbmFtZSk7CisJUkVBRF9JTlRfRklFTEQobG9jYXRpb24pOworCisJUkVB RF9ET05FKCk7Cit9CisKKy8qCisgKiBfcmVhZENvbHVtbkRlZgorICovCitzdGF0aWMgQ29sdW1u RGVmKgorX3JlYWRDb2x1bW5EZWYodm9pZCkKK3sKKwlSRUFEX0xPQ0FMUyhDb2x1bW5EZWYpOwor CisJUkVBRF9TVFJJTkdfRklFTEQoY29sbmFtZSk7CisJUkVBRF9OT0RFX0ZJRUxEKHR5cGVOYW1l KTsKKwlSRUFEX1NUUklOR19GSUVMRChjb21wcmVzc2lvbik7CisJUkVBRF9JTlRfRklFTEQoaW5o Y291bnQpOworCVJFQURfQk9PTF9GSUVMRChpc19sb2NhbCk7CisJUkVBRF9CT09MX0ZJRUxEKGlz X25vdF9udWxsKTsKKwlSRUFEX0JPT0xfRklFTEQoaXNfZnJvbV90eXBlKTsKKwlSRUFEX0NIQVJf RklFTEQoc3RvcmFnZSk7CisJUkVBRF9OT0RFX0ZJRUxEKHJhd19kZWZhdWx0KTsKKwlSRUFEX05P REVfRklFTEQoY29va2VkX2RlZmF1bHQpOworCVJFQURfQ0hBUl9GSUVMRChpZGVudGl0eSk7CisJ UkVBRF9OT0RFX0ZJRUxEKGlkZW50aXR5U2VxdWVuY2UpOworCVJFQURfQ0hBUl9GSUVMRChnZW5l cmF0ZWQpOworCVJFQURfTk9ERV9GSUVMRChjb2xsQ2xhdXNlKTsKKwlSRUFEX09JRF9GSUVMRChj b2xsT2lkKTsKKwlSRUFEX05PREVfRklFTEQoY29uc3RyYWludHMpOworCVJFQURfTk9ERV9GSUVM RChmZHdvcHRpb25zKTsKKwlSRUFEX0xPQ0FUSU9OX0ZJRUxEKGxvY2F0aW9uKTsKKworCVJFQURf RE9ORSgpOworfQorCisvKgorICogX3JlYWRQYXJ0aXRpb25TcGVjCisgKi8KK3N0YXRpYyBQYXJ0 aXRpb25TcGVjKgorX3JlYWRQYXJ0aXRpb25TcGVjKHZvaWQpCit7CisJUkVBRF9MT0NBTFMoUGFy dGl0aW9uU3BlYyk7CisKKwlSRUFEX1NUUklOR19GSUVMRChzdHJhdGVneSk7CisJUkVBRF9OT0RF X0ZJRUxEKHBhcnRQYXJhbXMpOworCVJFQURfTE9DQVRJT05fRklFTEQobG9jYXRpb24pOworCisJ UkVBRF9ET05FKCk7Cit9CisKKy8qCisgKiBfcmVhZFBhcnRpdGlvbkVsZW0KKyAqLworc3RhdGlj IFBhcnRpdGlvbkVsZW0qCitfcmVhZFBhcnRpdGlvbkVsZW0odm9pZCkKK3sKKwlSRUFEX0xPQ0FM UyhQYXJ0aXRpb25FbGVtKTsKKworCVJFQURfU1RSSU5HX0ZJRUxEKG5hbWUpOworCVJFQURfTk9E RV9GSUVMRChleHByKTsKKwlSRUFEX05PREVfRklFTEQoY29sbGF0aW9uKTsKKwlSRUFEX05PREVf RklFTEQob3BjbGFzcyk7CisJUkVBRF9MT0NBVElPTl9GSUVMRChsb2NhdGlvbik7CisKKwlSRUFE X0RPTkUoKTsKK30KKworLyoKKyAqIF9yZWFkVHlwZU5hbWUKKyAqLworc3RhdGljIFR5cGVOYW1l KgorX3JlYWRUeXBlTmFtZSh2b2lkKQoreworCVJFQURfTE9DQUxTKFR5cGVOYW1lKTsKKworCVJF QURfTk9ERV9GSUVMRChuYW1lcyk7CisJUkVBRF9PSURfRklFTEQodHlwZU9pZCk7CisJUkVBRF9C T09MX0ZJRUxEKHNldG9mKTsKKwlSRUFEX0JPT0xfRklFTEQocGN0X3R5cGUpOworCVJFQURfTk9E RV9GSUVMRCh0eXBtb2RzKTsKKwlSRUFEX0lOVF9GSUVMRCh0eXBlbW9kKTsKKwlSRUFEX05PREVf RklFTEQoYXJyYXlCb3VuZHMpOworCVJFQURfTE9DQVRJT05fRklFTEQobG9jYXRpb24pOworCisJ UkVBRF9ET05FKCk7Cit9CisKKy8qCisgKiBfcmVhZENvbnN0cmFpbnQKKyAqLworc3RhdGljIENv bnN0cmFpbnQqCitfcmVhZENvbnN0cmFpbnQodm9pZCkKK3sKKwlSRUFEX0xPQ0FMUyhDb25zdHJh aW50KTsKKwlSRUFEX1NUUklOR19GSUVMRChjb25uYW1lKTsKKwlSRUFEX0JPT0xfRklFTEQoZGVm ZXJyYWJsZSk7CisJUkVBRF9CT09MX0ZJRUxEKGluaXRkZWZlcnJlZCk7CisJUkVBRF9MT0NBVElP Tl9GSUVMRChsb2NhdGlvbik7CisKKwkvKiByZWFkIDpjb250eXBlIENPTlRZUEUgKi8KKwl0b2tl biA9IHBnX3N0cnRvaygmbGVuZ3RoKTsKKwl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3RoKTsKKwor I2RlZmluZSBNQVRDSCh0b2tuYW1lLCBuYW1lbGVuKSBcCisJKGxlbmd0aCA9PSBuYW1lbGVuICYm IG1lbWNtcCh0b2tlbiwgdG9rbmFtZSwgbmFtZWxlbikgPT0gMCkKKworCWlmIChNQVRDSCgiTlVM TCIsIDQpKQorCXsKKwkJbG9jYWxfbm9kZS0+Y29udHlwZSA9IENPTlNUUl9OVUxMOworCX0KKwll bHNlIGlmIChNQVRDSCgiTk9UX05VTEwiLCA4KSkKKwl7CisJCWxvY2FsX25vZGUtPmNvbnR5cGUg PSBDT05TVFJfTk9UTlVMTDsKKwl9CisJZWxzZSBpZiAoTUFUQ0goIkRFRkFVTFQiLCA3KSkKKwl7 CisJCWxvY2FsX25vZGUtPmNvbnR5cGUgPSBDT05TVFJfREVGQVVMVDsKKwkJUkVBRF9OT0RFX0ZJ RUxEKHJhd19leHByKTsKKwkJUkVBRF9TVFJJTkdfRklFTEQoY29va2VkX2V4cHIpOworCX0KKwll bHNlIGlmIChNQVRDSCgiSURFTlRJVFkiLCA4KSkKKwl7CisJCWxvY2FsX25vZGUtPmNvbnR5cGUg PSBDT05TVFJfSURFTlRJVFk7CisJCVJFQURfTk9ERV9GSUVMRChyYXdfZXhwcik7CisJCVJFQURf U1RSSU5HX0ZJRUxEKGNvb2tlZF9leHByKTsKKwkJUkVBRF9DSEFSX0ZJRUxEKGdlbmVyYXRlZF93 aGVuKTsKKwl9CisJZWxzZSBpZiAoTUFUQ0goIkdFTkVSQVRFRCIsIDkpKQorCXsKKwkJbG9jYWxf bm9kZS0+Y29udHlwZSA9IENPTlNUUl9HRU5FUkFURUQ7CisJCVJFQURfTk9ERV9GSUVMRChyYXdf ZXhwcik7CisJCVJFQURfU1RSSU5HX0ZJRUxEKGNvb2tlZF9leHByKTsKKwkJUkVBRF9DSEFSX0ZJ RUxEKGdlbmVyYXRlZF93aGVuKTsKKwl9CisJZWxzZSBpZiAoTUFUQ0goIkNIRUNLIiwgNSkpCisJ eworCQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0NIRUNLOworCQlSRUFEX0JPT0xfRklF TEQoaXNfbm9faW5oZXJpdCk7CisJCVJFQURfTk9ERV9GSUVMRChyYXdfZXhwcik7CisJCVJFQURf U1RSSU5HX0ZJRUxEKGNvb2tlZF9leHByKTsKKwl9CisJZWxzZSBpZiAoTUFUQ0goIlBSSU1BUllf S0VZIiwgMTEpKQorCXsKKwkJbG9jYWxfbm9kZS0+Y29udHlwZSA9IENPTlNUUl9QUklNQVJZOwor CQlSRUFEX05PREVfRklFTEQoa2V5cyk7CisJCVJFQURfTk9ERV9GSUVMRChpbmNsdWRpbmcpOwor CQlSRUFEX05PREVfRklFTEQob3B0aW9ucyk7CisJCVJFQURfU1RSSU5HX0ZJRUxEKGluZGV4bmFt ZSk7CisJCVJFQURfU1RSSU5HX0ZJRUxEKGluZGV4c3BhY2UpOworCQlSRUFEX0JPT0xfRklFTEQo cmVzZXRfZGVmYXVsdF90YmxzcGMpOworCQkvKiBhY2Nlc3NfbWV0aG9kIGFuZCB3aGVyZV9jbGF1 c2Ugbm90IGN1cnJlbnRseSB1c2VkICovCisJfQorCWVsc2UgaWYgKE1BVENIKCJVTklRVUUiLCA2 KSkKKwl7CisJCWxvY2FsX25vZGUtPmNvbnR5cGUgPSBDT05TVFJfVU5JUVVFOworCQlSRUFEX0JP T0xfRklFTEQobnVsbHNfbm90X2Rpc3RpbmN0KTsKKwkJUkVBRF9OT0RFX0ZJRUxEKGtleXMpOwor CQlSRUFEX05PREVfRklFTEQoaW5jbHVkaW5nKTsKKwkJUkVBRF9OT0RFX0ZJRUxEKG9wdGlvbnMp OworCQlSRUFEX1NUUklOR19GSUVMRChpbmRleG5hbWUpOworCQlSRUFEX1NUUklOR19GSUVMRChp bmRleHNwYWNlKTsKKwkJUkVBRF9CT09MX0ZJRUxEKHJlc2V0X2RlZmF1bHRfdGJsc3BjKTsKKwkJ LyogYWNjZXNzX21ldGhvZCBhbmQgd2hlcmVfY2xhdXNlIG5vdCBjdXJyZW50bHkgdXNlZCAqLwor CX0KKwllbHNlIGlmIChNQVRDSCgiRVhDTFVTSU9OIiwgOSkpCisJeworCQlsb2NhbF9ub2RlLT5j b250eXBlID0gQ09OU1RSX0VYQ0xVU0lPTjsKKwkJUkVBRF9OT0RFX0ZJRUxEKGV4Y2x1c2lvbnMp OworCQlSRUFEX05PREVfRklFTEQoaW5jbHVkaW5nKTsKKwkJUkVBRF9OT0RFX0ZJRUxEKG9wdGlv bnMpOworCQlSRUFEX1NUUklOR19GSUVMRChpbmRleG5hbWUpOworCQlSRUFEX1NUUklOR19GSUVM RChpbmRleHNwYWNlKTsKKwkJUkVBRF9CT09MX0ZJRUxEKHJlc2V0X2RlZmF1bHRfdGJsc3BjKTsK KwkJUkVBRF9TVFJJTkdfRklFTEQoYWNjZXNzX21ldGhvZCk7CisJCVJFQURfTk9ERV9GSUVMRCh3 aGVyZV9jbGF1c2UpOworCX0KKwllbHNlIGlmIChNQVRDSCgiRk9SRUlHTl9LRVkiLCAxMSkpCisJ eworCQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0ZPUkVJR047CisJCVJFQURfTk9ERV9G SUVMRChwa3RhYmxlKTsKKwkJUkVBRF9OT0RFX0ZJRUxEKGZrX2F0dHJzKTsKKwkJUkVBRF9OT0RF X0ZJRUxEKHBrX2F0dHJzKTsKKwkJUkVBRF9DSEFSX0ZJRUxEKGZrX21hdGNodHlwZSk7CisJCVJF QURfQ0hBUl9GSUVMRChma191cGRfYWN0aW9uKTsKKwkJUkVBRF9DSEFSX0ZJRUxEKGZrX2RlbF9h Y3Rpb24pOworCQlSRUFEX05PREVfRklFTEQoZmtfZGVsX3NldF9jb2xzKTsKKwkJUkVBRF9OT0RF X0ZJRUxEKG9sZF9jb25wZmVxb3ApOworCQlSRUFEX09JRF9GSUVMRChvbGRfcGt0YWJsZV9vaWQp OworCQlSRUFEX0JPT0xfRklFTEQoc2tpcF92YWxpZGF0aW9uKTsKKwkJUkVBRF9CT09MX0ZJRUxE KGluaXRpYWxseV92YWxpZCk7CisJfQorCWVsc2UgaWYgKE1BVENIKCJBVFRSX0RFRkVSUkFCTEUi LCAxNSkpCisJeworCQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0FUVFJfREVGRVJSQUJM RTsKKwl9CisJZWxzZSBpZiAoTUFUQ0goIkFUVFJfTk9UX0RFRkVSUkFCTEUiLCAxOSkpCisJewor CQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0FUVFJfTk9UX0RFRkVSUkFCTEU7CisJfQor CWVsc2UgaWYgKE1BVENIKCJBVFRSX0RFRkVSUkVEIiwgMTMpKQorCXsKKwkJbG9jYWxfbm9kZS0+ Y29udHlwZSA9IENPTlNUUl9BVFRSX0RFRkVSUkVEOworCX0KKwllbHNlIGlmIChNQVRDSCgiQVRU Ul9JTU1FRElBVEUiLCAxNCkpCisJeworCQlsb2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0FU VFJfSU1NRURJQVRFOworCX0KKworCVJFQURfRE9ORSgpOworfQorCisvKgorICogX3JlYWRJbmRl eFN0bXQKKyAqLworc3RhdGljIEluZGV4U3RtdCoKK19yZWFkSW5kZXhTdG10KHZvaWQpCit7CisJ UkVBRF9MT0NBTFMoSW5kZXhTdG10KTsKKworCVJFQURfU1RSSU5HX0ZJRUxEKGlkeG5hbWUpOwor CVJFQURfTk9ERV9GSUVMRChyZWxhdGlvbik7CisJUkVBRF9TVFJJTkdfRklFTEQoYWNjZXNzTWV0 aG9kKTsKKwlSRUFEX1NUUklOR19GSUVMRCh0YWJsZVNwYWNlKTsKKwlSRUFEX05PREVfRklFTEQo aW5kZXhQYXJhbXMpOworCVJFQURfTk9ERV9GSUVMRChpbmRleEluY2x1ZGluZ1BhcmFtcyk7CisJ UkVBRF9OT0RFX0ZJRUxEKG9wdGlvbnMpOworCVJFQURfTk9ERV9GSUVMRCh3aGVyZUNsYXVzZSk7 CisJUkVBRF9OT0RFX0ZJRUxEKGV4Y2x1ZGVPcE5hbWVzKTsKKwlSRUFEX1NUUklOR19GSUVMRChp ZHhjb21tZW50KTsKKwlSRUFEX09JRF9GSUVMRChpbmRleE9pZCk7CisJUkVBRF9PSURfRklFTEQo b2xkTm9kZSk7CisJUkVBRF9VSU5UX0ZJRUxEKG9sZENyZWF0ZVN1YmlkKTsKKwlSRUFEX1VJTlRf RklFTEQob2xkRmlyc3RSZWxmaWxlbm9kZVN1YmlkKTsKKwlSRUFEX0JPT0xfRklFTEQodW5pcXVl KTsKKwlSRUFEX0JPT0xfRklFTEQobnVsbHNfbm90X2Rpc3RpbmN0KTsKKwlSRUFEX0JPT0xfRklF TEQocHJpbWFyeSk7CisJUkVBRF9CT09MX0ZJRUxEKGlzY29uc3RyYWludCk7CisJUkVBRF9CT09M X0ZJRUxEKGRlZmVycmFibGUpOworCVJFQURfQk9PTF9GSUVMRChpbml0ZGVmZXJyZWQpOworCVJF QURfQk9PTF9GSUVMRCh0cmFuc2Zvcm1lZCk7CisJUkVBRF9CT09MX0ZJRUxEKGNvbmN1cnJlbnQp OworCVJFQURfQk9PTF9GSUVMRChpZl9ub3RfZXhpc3RzKTsKKwlSRUFEX0JPT0xfRklFTEQocmVz ZXRfZGVmYXVsdF90YmxzcGMpOworCisJUkVBRF9ET05FKCk7Cit9CisKKy8qCisgKiBfcmVhZElu ZGV4RWxlbQorICovCitzdGF0aWMgSW5kZXhFbGVtKgorX3JlYWRJbmRleEVsZW0odm9pZCkKK3sK KwlSRUFEX0xPQ0FMUyhJbmRleEVsZW0pOworCisJUkVBRF9TVFJJTkdfRklFTEQobmFtZSk7CisJ UkVBRF9OT0RFX0ZJRUxEKGV4cHIpOworCVJFQURfU1RSSU5HX0ZJRUxEKGluZGV4Y29sbmFtZSk7 CisJUkVBRF9OT0RFX0ZJRUxEKGNvbGxhdGlvbik7CisJUkVBRF9OT0RFX0ZJRUxEKG9wY2xhc3Mp OworCVJFQURfTk9ERV9GSUVMRChvcGNsYXNzb3B0cyk7CisJUkVBRF9FTlVNX0ZJRUxEKG9yZGVy aW5nLCBTb3J0QnlEaXIpOworCVJFQURfRU5VTV9GSUVMRChudWxsc19vcmRlcmluZywgU29ydEJ5 TnVsbHMpOworCisJUkVBRF9ET05FKCk7Cit9CisKIC8qCiAgKiBwYXJzZU5vZGVTdHJpbmcKICAq CkBAIC0zMjM1LDYgKzM2NTUsMzggQEAgcGFyc2VOb2RlU3RyaW5nKHZvaWQpCiAJCXJldHVybl92 YWx1ZSA9IF9yZWFkSnNvblRhYmxlUGFyZW50KCk7CiAJZWxzZSBpZiAoTUFUQ0goIkpTT05UQUJM RVNJQkxJTkciLCAxNikpCiAJCXJldHVybl92YWx1ZSA9IF9yZWFkSnNvblRhYmxlU2libGluZygp OworCWVsc2UgaWYgKE1BVENIKCJDUkVBVEVTVE1UIiwgMTApKQorCQlyZXR1cm5fdmFsdWUgPSBf cmVhZENyZWF0ZVN0bXQoKTsKKwllbHNlIGlmIChNQVRDSCgiQ1JFQVRFVEFCTEVBU1NUTVQiLCAx NykpCisJCXJldHVybl92YWx1ZSA9IF9yZWFkQ3JlYXRlVGFibGVBc1N0bXQoKTsKKwllbHNlIGlm IChNQVRDSCgiQUxURVJUQUJMRVNUTVQiLCAxNCkpCisJCXJldHVybl92YWx1ZSA9IF9yZWFkQWx0 ZXJUYWJsZVN0bXQoKTsKKwllbHNlIGlmIChNQVRDSCgiQUxURVJUQUJMRUNNRCIsIDEzKSkKKwkJ cmV0dXJuX3ZhbHVlID0gX3JlYWRBbHRlclRhYmxlQ21kKCk7CisJZWxzZSBpZiAoTUFUQ0goIkRS T1BTVE1UIiwgOCkpCisJCXJldHVybl92YWx1ZSA9IF9yZWFkRHJvcFN0bXQoKTsKKwllbHNlIGlm IChNQVRDSCgiQ1JFQVRFRlVOQ1RJT05TVE1UIiwgMTgpKQorCQlyZXR1cm5fdmFsdWUgPSBfcmVh ZENyZWF0ZUZ1bmN0aW9uU3RtdCgpOworCWVsc2UgaWYgKE1BVENIKCJGVU5DVElPTlBBUkFNRVRF UiIsIDE3KSkKKwkJcmV0dXJuX3ZhbHVlID0gX3JlYWRGdW5jdGlvblBhcmFtZXRlcigpOworCWVs c2UgaWYgKE1BVENIKCJBTFRFUkZVTkNUSU9OU1RNVCIsIDE3KSkKKwkJcmV0dXJuX3ZhbHVlID0g X3JlYWRBbHRlckZ1bmN0aW9uU3RtdCgpOworCWVsc2UgaWYgKE1BVENIKCJST0xFU1BFQyIsIDgp KQorCQlyZXR1cm5fdmFsdWUgPSBfcmVhZFJvbGVTcGVjKCk7CisJZWxzZSBpZiAoTUFUQ0goIkNP TFVNTkRFRiIsIDkpKQorCQlyZXR1cm5fdmFsdWUgPSBfcmVhZENvbHVtbkRlZigpOworCWVsc2Ug aWYgKE1BVENIKCJUWVBFTkFNRSIsIDgpKQorCQlyZXR1cm5fdmFsdWUgPSBfcmVhZFR5cGVOYW1l KCk7CisJZWxzZSBpZiAoTUFUQ0goIlBBUlRJVElPTkVMRU0iLCAxMykpCisJCXJldHVybl92YWx1 ZSA9IF9yZWFkUGFydGl0aW9uRWxlbSgpOworCWVsc2UgaWYgKE1BVENIKCJQQVJUSVRJT05TUEVD IiwgMTMpKQorCQlyZXR1cm5fdmFsdWUgPSBfcmVhZFBhcnRpdGlvblNwZWMoKTsKKwllbHNlIGlm IChNQVRDSCgiQ09OU1RSQUlOVCIsIDEwKSkKKwkJcmV0dXJuX3ZhbHVlID0gX3JlYWRDb25zdHJh aW50KCk7CisJZWxzZSBpZiAoTUFUQ0goIklOREVYU1RNVCIsIDkpKQorCQlyZXR1cm5fdmFsdWUg PSBfcmVhZEluZGV4U3RtdCgpOworCWVsc2UgaWYgKE1BVENIKCJJTkRFWEVMRU0iLCA5KSkKKwkJ cmV0dXJuX3ZhbHVlID0gX3JlYWRJbmRleEVsZW0oKTsKIAllbHNlCiAJewogCQllbG9nKEVSUk9S LCAiYmFkbHkgZm9ybWF0dGVkIG5vZGUgc3RyaW5nIFwiJS4zMnNcIi4uLiIsIHRva2VuKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IGM2MWIzNTY0YTcuLmRh NzJmNDE5MjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29y a2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAt MzUxLDcgKzM1MSw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5X2hhbmRsZV90dXBsZV9yb3V0aW5nKEFw cGx5RXhlY3V0aW9uRGF0YSAqZWRhdGEsCiAJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVt b3Rlc2xvdCwKIAkJCQkJCQkJCSAgIExvZ2ljYWxSZXBUdXBsZURhdGEgKm5ld3R1cCwKIAkJCQkJ CQkJCSAgIENtZFR5cGUgb3BlcmF0aW9uKTsKLXN0YXRpYyB2b2lkIGFwcGx5X2V4ZWN1dGVfc3Fs X2NvbW1hbmQoY29uc3QgY2hhciAqY21kc3RyLAorc3RhdGljIHZvaWQgYXBwbHlfZXhlY3V0ZV9z cWxfY29tbWFuZChjb25zdCBjaGFyICptZXNzYWdlLAogCQkJCQkJCQkJICBjb25zdCBjaGFyKiBy b2xlLAogCQkJCQkJCQkJICBjb25zdCBjaGFyKiBzZWFyY2hfcGF0aCwKIAkJCQkJCQkJCSAgYm9v bCBpc1RvcExldmVsKTsKQEAgLTI0ODIsMTMwICsyNDgyLDcwIEBAIGV4ZWN1dGVfc3FsX2NvbW1h bmRfZXJyb3JfY2Iodm9pZCAqYXJnKQogfQogCiAvKgotICogRXhlY3V0ZSBhbiBTUUwgY29tbWFu ZC4gVGhpcyBjYW4gYmUgbXVsdGlwbGUgcXVlcmllcy4KLSAqIFRoaXMgaXMgbW9kaWZpZWQgYmFz ZWQgb24gcGdsb2dpY2FsX2V4ZWN1dGVfc3FsX2NvbW1hbmQoKS4KKyAqIFByZXByb2Nlc3MgY2Vy dGFpbiBEREwgY29tbWFuZHMgYmVmb3JlIGFwcGx5CisgKiAtUmVtb3ZlIGRhdGEgcG9wdWxhdGlv biBmb3IgdGFibGUgY3JlYXRpb24KKyAqIC1FbmFibGUgbWlzc2luZ19vayBmb3IgZHJvcCBzdG10 CisgKiAtRGlzYWxsb3cgdGFibGUgcmV3cml0ZXMgdXNpbmcgdm9sYXRpbGUgZnVuY3Rpb25zCiAg Ki8KIHN0YXRpYyB2b2lkCi1hcHBseV9leGVjdXRlX3NxbF9jb21tYW5kKGNvbnN0IGNoYXIgKmNt ZHN0ciwgY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsCi0JCQkJCQkg IGJvb2wgaXNUb3BMZXZlbCkKK3ByZXByb2Nlc3NfZGRsKFJhd1N0bXQgKmNvbW1hbmQsIGNoYXIg KipzY2hlbWFuYW1lLCBjaGFyICoqcmVsbmFtZSwgYm9vbCAqaXNfcGFydGl0aW9uZWRfdGFibGUp CiB7Ci0JY29uc3QgY2hhciAqc2F2ZV9kZWJ1Z19xdWVyeV9zdHJpbmcgPSBkZWJ1Z19xdWVyeV9z dHJpbmc7Ci0JTGlzdAkgICAqcGFyc2V0cmVlX2xpc3Q7Ci0JTGlzdENlbGwgICAqcGFyc2V0cmVl X2l0ZW07Ci0JTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwotCUVycm9yQ29udGV4dENhbGxiYWNr IGVycmNhbGxiYWNrOwotCWludAkJCXNhdmVfbmVzdGxldmVsOwotCi0JLyoKLQkgKiBTd2l0Y2gg dG8gYXBwcm9wcmlhdGUgY29udGV4dCBmb3IgY29uc3RydWN0aW5nIHBhcnNldHJlZXMuCi0JICov Ci0Jb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhBcHBseU1lc3NhZ2VDb250ZXh0 KTsKLQliZWdpbl9yZXBsaWNhdGlvbl9zdGVwKCk7Ci0KLQkvKgotCSAqIFNldCB0aGUgY3VycmVu dCByb2xlIHRvIHRoZSB1c2VyIHRoYXQgZXhlY3V0ZWQgdGhlIGNvbW1hbmQgb24gdGhlCi0JICog cHVibGljYXRpb24gc2VydmVyLgotCSAqIFNldCB0aGUgY3VycmVudCBzZWFyY2hfcGF0aCB0byB0 aGUgc2VhcmNoX3BhdGggb24gdGhlIHB1YmxpY2F0aW9uCi0JICogc2VydmVyIHdoZW4gdGhlIGNv bW1hbmQgd2FzIGV4ZWN1dGVkLgotCSAqLwotCXNhdmVfbmVzdGxldmVsID0gTmV3R1VDTmVzdExl dmVsKCk7Ci0JU2V0Q29uZmlnT3B0aW9uKCJyb2xlIiwgcm9sZSwgUEdDX0lOVEVSTkFMLCBQR0Nf U19PVkVSUklERSk7Ci0JU2V0Q29uZmlnT3B0aW9uKCJzZWFyY2hfcGF0aCIsIHNlYXJjaF9wYXRo LCBQR0NfSU5URVJOQUwsIFBHQ19TX09WRVJSSURFKTsKLQotCWVycmNhbGxiYWNrLmNhbGxiYWNr ID0gZXhlY3V0ZV9zcWxfY29tbWFuZF9lcnJvcl9jYjsKLQllcnJjYWxsYmFjay5hcmcgPSAoY2hh ciAqKSBjbWRzdHI7Ci0JZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJvcl9jb250ZXh0X3N0YWNr OwotCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7Ci0KLQlkZWJ1Z19xdWVyeV9z dHJpbmcgPSBjbWRzdHI7Ci0KLQlwYXJzZXRyZWVfbGlzdCA9IHBnX3BhcnNlX3F1ZXJ5KGNtZHN0 cik7Ci0KLQkvKgotCSAqIERvIGEgbGltaXRlZCBhbW91bnQgb2Ygc2FmZXR5IGNoZWNraW5nIGFn YWluc3QgQ09OQ1VSUkVOVExZIGNvbW1hbmRzCi0JICogZXhlY3V0ZWQgaW4gc2l0dWF0aW9ucyB3 aGVyZSB0aGV5IGFyZW4ndCBhbGxvd2VkLiBUaGUgc2VuZGVyIHNpZGUgc2hvdWxkCi0JICogcHJv dmlkZSBwcm90ZWN0aW9uLCBidXQgYmV0dGVyIGJlIHNhZmUgdGhhbiBzb3JyeS4KLQkgKi8KLQlp c1RvcExldmVsID0gaXNUb3BMZXZlbCAmJiAobGlzdF9sZW5ndGgocGFyc2V0cmVlX2xpc3QpID09 IDEpOwotCi0JLyoKLQkgKiBTd2l0Y2ggYmFjayB0byB0cmFuc2FjdGlvbiBjb250ZXh0IHRvIGVu dGVyIHRoZSBsb29wLgotCSAqLwotCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK LQotCWZvcmVhY2gocGFyc2V0cmVlX2l0ZW0sIHBhcnNldHJlZV9saXN0KQorCXN3aXRjaChub2Rl VGFnKGNvbW1hbmQtPnN0bXQpKQogCXsKLQkJTGlzdAkgICAqcGxhbnRyZWVfbGlzdDsKLQkJTGlz dAkgICAqcXVlcnl0cmVlX2xpc3Q7Ci0JCVJhd1N0bXQJICAgKmNvbW1hbmQgPSAoUmF3U3RtdCAq KSBsZmlyc3QocGFyc2V0cmVlX2l0ZW0pOwotCQlDb21tYW5kVGFnCWNvbW1hbmRUYWc7Ci0JCU1l bW9yeUNvbnRleHQgcGVyX3BhcnNldHJlZV9jb250ZXh0ID0gTlVMTDsKLQkJUG9ydGFsCQlwb3J0 YWw7Ci0JCURlc3RSZWNlaXZlciAqcmVjZWl2ZXI7Ci0JCWJvb2wJCSBzbmFwc2hvdF9zZXQgPSBm YWxzZTsKLQkJY2hhciAJCSAqc2NoZW1hbmFtZSA9IE5VTEw7IC8qIEZvciBDUkVBVEUgVEFCTEUg YW5kIENSRUFURSBUQUJMRSBBUyBzdG10IG9ubHkgKi8KLQkJY2hhcgkJICpyZWxuYW1lID0gTlVM TDsgLyogRm9yIENSRUFURSBUQUJMRSBhbmQgQ1JFQVRFIFRBQkxFIEFTIHN0bXQgb25seSAqLwot CQlib29sCQkgaXNfcGFydGl0aW9uZWRfdGFibGUgPSBmYWxzZTsKLQotCQljb21tYW5kVGFnID0g Q3JlYXRlQ29tbWFuZFRhZygoTm9kZSAqKWNvbW1hbmQpOwotCi0JCS8qIFRoZSBmb2xsb3dpbmcg RERMIGNvbW1hbmRzIG5lZWQgc3BlY2lhbCBoYW5kbGluZyAqLwotCi0JCS8qCi0JCSAqIFJlbWVt YmVyIHRoZSBzY2hlbWFuYW1lIGFuZCByZWxuYW1lIGlmIHRoZSBjbWQgaXMgZ29pbmcgdG8gY3Jl YXRlIGEgdGFibGUKLQkJICogYmVjYXVzZSB3ZSB3aWxsIG5lZWQgdGhlbSBmb3Igc29tZSBwb3N0 LXByb2Nlc3NpbmcgYWZ0ZXIgd2UKLQkJICogZXhlY3V0ZSB0aGUgc3RtdC4gQXQgdGhhdCBwb2lu dCwgY29tbWFuZC0+c3RtdCBtYXkgaGF2ZSBiZWVuIGZyZWVlZCB1cC4KLQkJICovCi0JCWlmIChj b21tYW5kVGFnID09IENNRFRBR19DUkVBVEVfVEFCTEUpCisJCWNhc2UgVF9DcmVhdGVTdG10Ogog CQl7CisJCQkvKgorCQkJKiBSZW1lbWJlciB0aGUgc2NoZW1hbmFtZSBhbmQgcmVsbmFtZSBpZiB0 aGUgY21kIGlzIGdvaW5nIHRvIGNyZWF0ZSBhIHRhYmxlCisJCQkqIGJlY2F1c2Ugd2Ugd2lsbCBu ZWVkIHRoZW0gZm9yIHNvbWUgcG9zdC1wcm9jZXNzaW5nIGFmdGVyIHdlCisJCQkqIGV4ZWN1dGUg dGhlIHN0bXQuIEF0IHRoYXQgcG9pbnQsIGNvbW1hbmQtPnN0bXQgbWF5IGhhdmUgYmVlbiBmcmVl ZWQgdXAuCisJCQkqLwogCQkJQ3JlYXRlU3RtdCAqY3N0bXQgPSAoQ3JlYXRlU3RtdCAqKSBjb21t YW5kLT5zdG10OwogCQkJUmFuZ2VWYXIgKnJ2ID0gY3N0bXQtPnJlbGF0aW9uOwotCQkJc2NoZW1h bmFtZSA9IHJ2LT5zY2hlbWFuYW1lOwotCQkJcmVsbmFtZSA9IHJ2LT5yZWxuYW1lOworCQkJKnNj aGVtYW5hbWUgPSBydi0+c2NoZW1hbmFtZTsKKwkJCSpyZWxuYW1lID0gcnYtPnJlbG5hbWU7CiAJ CQlpZiAoY3N0bXQtPmluaFJlbGF0aW9ucyAhPSBOSUwgfHwgY3N0bXQtPnBhcnRzcGVjICE9IE5V TEwpCi0JCQkJaXNfcGFydGl0aW9uZWRfdGFibGUgPSB0cnVlOworCQkJCSppc19wYXJ0aXRpb25l ZF90YWJsZSA9IHRydWU7CisKKwkJCWJyZWFrOwogCQl9Ci0JCWVsc2UgaWYgKGNvbW1hbmRUYWcg PT0gQ01EVEFHX0NSRUFURV9UQUJMRV9BUykKKwkJY2FzZSBUX0NyZWF0ZVRhYmxlQXNTdG10Ogog CQl7CiAJCQlDcmVhdGVUYWJsZUFzU3RtdCAqY2FzdG10ID0gKENyZWF0ZVRhYmxlQXNTdG10ICop IGNvbW1hbmQtPnN0bXQ7CiAKIAkJCWlmIChjYXN0bXQtPm9ianR5cGUgPT0gT0JKRUNUX1RBQkxF KQogCQkJewogCQkJCVJhbmdlVmFyICpydiA9IGNhc3RtdC0+aW50by0+cmVsOwotCQkJCXNjaGVt YW5hbWUgPSBydi0+c2NoZW1hbmFtZTsKLQkJCQlyZWxuYW1lID0gcnYtPnJlbG5hbWU7CisJCQkJ KnNjaGVtYW5hbWUgPSBydi0+c2NoZW1hbmFtZTsKKwkJCQkqcmVsbmFtZSA9IHJ2LT5yZWxuYW1l OwogCiAJCQkJLyoKLQkJCQkgKiBGb3JjZSBza2lwcGluZyBkYXRhIHBvcHVsYXRpb24gdG8gYXZv aWQgZGF0YSBpbmNvbnNpc3RlbmN5LgotCQkJCSAqIERhdGEgc2hvdWxkIGJlIHJlcGxpY2F0ZWQg ZnJvbSB0aGUgcHVibGlzaGVyIGluc3RlYWQuCi0JCQkJICovCisJCQkJKiBGb3JjZSBza2lwcGlu ZyBkYXRhIHBvcHVsYXRpb24gdG8gYXZvaWQgZGF0YSBpbmNvbnNpc3RlbmN5LgorCQkJCSogRGF0 YSBzaG91bGQgYmUgcmVwbGljYXRlZCBmcm9tIHRoZSBwdWJsaXNoZXIgaW5zdGVhZC4KKwkJCQkq LwogCQkJCWNhc3RtdC0+aW50by0+c2tpcERhdGEgPSB0cnVlOwogCQkJfQorCQkJYnJlYWs7CiAJ CX0KIAkJLyogU0VMRUNUIElOVE8gKi8KLQkJZWxzZSBpZiAoY29tbWFuZFRhZyA9PSBDTURUQUdf U0VMRUNUKQorCQljYXNlIFRfU2VsZWN0U3RtdDoKIAkJewogCQkJU2VsZWN0U3RtdCAqc3N0bXQg PSAoU2VsZWN0U3RtdCAqKSBjb21tYW5kLT5zdG10OwogCiAJCQlpZiAoc3N0bXQtPmludG9DbGF1 c2UgIT0gTlVMTCkKIAkJCXsKIAkJCQlSYW5nZVZhciAqcnYgPSBzc3RtdC0+aW50b0NsYXVzZS0+ cmVsOwotCQkJCXNjaGVtYW5hbWUgPSBydi0+c2NoZW1hbmFtZTsKLQkJCQlyZWxuYW1lID0gcnYt PnJlbG5hbWU7CisJCQkJKnNjaGVtYW5hbWUgPSBydi0+c2NoZW1hbmFtZTsKKwkJCQkqcmVsbmFt ZSA9IHJ2LT5yZWxuYW1lOwogCiAJCQkJLyoKLQkJCQkgKiBGb3JjZSBza2lwcGluZyBkYXRhIHBv cHVsYXRpb24gdG8gYXZvaWQgZGF0YSBpbmNvbnNpc3RlbmN5LgotCQkJCSAqIERhdGEgc2hvdWxk IGJlIHJlcGxpY2F0ZWQgZnJvbSB0aGUgcHVibGlzaGVyIGluc3RlYWQuCi0JCQkJICovCisJCQkJ KiBGb3JjZSBza2lwcGluZyBkYXRhIHBvcHVsYXRpb24gdG8gYXZvaWQgZGF0YSBpbmNvbnNpc3Rl bmN5LgorCQkJCSogRGF0YSBzaG91bGQgYmUgcmVwbGljYXRlZCBmcm9tIHRoZSBwdWJsaXNoZXIg aW5zdGVhZC4KKwkJCQkqLwogCQkJCXNzdG10LT5pbnRvQ2xhdXNlLT5za2lwRGF0YSA9IHRydWU7 CiAJCQl9CisJCQlicmVhazsKIAkJfQotCQkvKgotCQkgKiBBTFRFUiBUQUJMRSBBREQgQ09MVU1O IGNvbCBERUZBVUxUIHZvbGF0aWxlX2V4cHIgaXMgbm90IHN1cHBvcnRlZC4KLQkJICogVW50aWwg d2Ugc3VwcG9ydCBsb2dpY2FsIHJlcGxpY2F0aW9uIG9mIHRhYmxlIHJld3JpdGUsIHNlZSBBVFJl d3JpdGVUYWJsZXMoKQotCQkgKiBmb3IgZGV0YWlscyBvbiB0YWJsZSByZXdyaXRlLgotCQkgKi8K LQkJZWxzZSBpZiAoY29tbWFuZFRhZyA9PSBDTURUQUdfQUxURVJfVEFCTEUpCisJCWNhc2UgVF9B bHRlclRhYmxlU3RtdDoKIAkJewogCQkJQWx0ZXJUYWJsZVN0bXQgKmF0c3RtdCA9IChBbHRlclRh YmxlU3RtdCAqKSBjb21tYW5kLT5zdG10OwogCQkJTGlzdENlbGwgKmxjOwpAQCAtMjYzMywxNCAr MjU3MywxNTEgQEAgYXBwbHlfZXhlY3V0ZV9zcWxfY29tbWFuZChjb25zdCBjaGFyICpjbWRzdHIs IGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNlYXIKIAkJCQkJCQlpZiAoY29udGFpbl92 b2xhdGlsZV9mdW5jdGlvbnMoZXhwcikpCiAJCQkJCQkJewogCQkJCQkJCQllbG9nKEVSUk9SLAot CQkJCQkJCQkJIkRvIG5vdCBzdXBwb3J0IHJlcGxpY2F0aW9uIG9mIERETCBzdGF0ZW1lbnQgdGhh dCByZXdyaXRlcyB0YWJsZSB1c2luZyB2b2xhdGlsZSBmdW5jdGlvbnM6ICVzIiwKLQkJCQkJCQkJ CWNtZHN0cik7CisJCQkJCQkJCSJEbyBub3Qgc3VwcG9ydCByZXBsaWNhdGlvbiBvZiBEREwgc3Rh dGVtZW50IHRoYXQgcmV3cml0ZXMgdGFibGUgdXNpbmcgdm9sYXRpbGUgZnVuY3Rpb25zIik7CiAJ CQkJCQkJfQogCQkJCQkJfQogCQkJCQl9CiAJCQkJfQogCQkJfQorCQkJYnJlYWs7CisJCX0KKwkJ Y2FzZSBUX0Ryb3BTdG10OgorCQl7CisJCQlEcm9wU3RtdCAqZHN0bXQgPSAoRHJvcFN0bXQgKikg Y29tbWFuZC0+c3RtdDsKKwkJCWRzdG10LT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCWJyZWFrOwor CQl9CisJCWRlZmF1bHQ6CisJCQlicmVhazsKKwl9Cit9CisKKy8qCisqIFRhYmxlIGNyZWF0ZWQg YnkgRERMIHJlcGxpY2F0aW9uIChkYXRhYmFzZSBsZXZlbCkgaXMgYXV0b21hdGljYWxseQorKiBh ZGRlZCB0byB0aGUgc3Vic2NyaXB0aW9uIGhlcmUuCisqCisqIENhbGwgQWRkU3Vic2NyaXB0aW9u UmVsU3RhdGUgZm9yIENSRUFURSBUQUJFTCBhbmQgQ1JFQVRFIFRBQkxFIEFTCisqIGNvbW1hbmQg dG8gc2V0IHRoZSByZWxzdGF0ZSB0byBTVUJSRUxfU1RBVEVfSU5JVCBzbyBETUwgY2hhbmdlcyBv biB0aGlzCisqIG5ldyB0YWJsZSBjYW4gYmUgcmVwbGljYXRlZCB3aXRob3V0IGhhdmluZyB0byBt YW51YWxseSBydW4KKyogImFsdGVyIHN1YnNjcmlwdGlvbiAuLi4gcmVmcmVzaCBwdWJsaWNhdGlv biIKKyovCitzdGF0aWMgdm9pZAoraGFuZGxlX2NyZWF0ZV90YWJsZShjaGFyKiByZWxuYW1lLCBj aGFyKiBzY2hlbWFuYW1lLCBib29sIGlzX3BhcnRpdGlvbmVkX3RhYmxlKQoreworCU9pZCByZWxp ZDsKKwlPaWQgcmVsbmFtZXNwYWNlID0gSW52YWxpZE9pZDsKKworCWlmIChzY2hlbWFuYW1lICE9 IE5VTEwpCisJCXJlbG5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2Vfb2lkKHNjaGVtYW5hbWUsIGZh bHNlKTsKKwlpZiAocmVsbmFtZXNwYWNlICE9IEludmFsaWRPaWQpCisJCXJlbGlkID0gZ2V0X3Jl bG5hbWVfcmVsaWQocmVsbmFtZSwgcmVsbmFtZXNwYWNlKTsKKwllbHNlCisJeworCQkvKgorCQkq IFRyeSB0byByZXNvbHZlIHVucXVhbGlmaWVkIHJlbG5hbWUuCisJCSogTm90aWNlIHdlIGhhdmUg c2V0IHRoZSBzZWFyY2hfcGF0aCB0byB0aGUgb3JpZ2luYWwgc2VhcmNoX3BhdGggb24gdGhlIHB1 Ymxpc2hlcgorCQkqIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBmdW5jdGlvbi4KKwkJKi8KKwkJ cmVsaWQgPSBSZWxuYW1lR2V0UmVsaWQocmVsbmFtZSk7CisJfQorCisJaWYgKHJlbGlkICE9IElu dmFsaWRPaWQpCisJeworCQlib29sIHN1YnNjcmliZV90YWJsZSA9IHRydWU7CisKKwkJaWYgKGlz X3BhcnRpdGlvbmVkX3RhYmxlKQorCQl7CisJCQlSZWxhdGlvbiByZWwgPSBSZWxhdGlvbklkR2V0 UmVsYXRpb24ocmVsaWQpOworCQkJY2hhciAqdGFibGVfbmFtZSA9IFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbCk7CisJCQljaGFyICpzY2hlbWFfbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZShS ZWxhdGlvbkdldE5hbWVzcGFjZShyZWwpKTsKKwkJCS8qCisJCQkqIENvbm5lY3QgdG8gdGhlIHNv dXJjZSBEQiBhbmQgY2hlY2sgd2hlaHRlciB0aGUgcGFydGl0aW9uZWQgdGFibGUgc2hvdWxkIGJl IHN1YnNjcmliZWQuCisJCQkqIEJlY2F1c2UgaXQgZGVwZW5kcyBvbiB0aGUgc2V0dGluZyBvZiBw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCwgd2hpY2ggdGhlIHN1YnNjcmlwdGlvbgorCQkJKiBk b2Vzbid0IGtub3cuCisJCQkqLworCQkJc3Vic2NyaWJlX3RhYmxlID0gSXNQYXJ0aXRpb25lZFRh YmxlUHVibGlzaGVkT25Tb3VyY2UoTXlTdWJzY3JpcHRpb24sIHNjaGVtYV9uYW1lLCB0YWJsZV9u YW1lKTsKKwkJCVJlbGF0aW9uQ2xvc2UocmVsKTsKKwkJfQorCisJCWlmIChzdWJzY3JpYmVfdGFi bGUpCisJCXsKKwkJCUFkZFN1YnNjcmlwdGlvblJlbFN0YXRlKE15U3Vic2NyaXB0aW9uLT5vaWQs IHJlbGlkLAorCQkJCQkJCQkJU1VCUkVMX1NUQVRFX0lOSVQsCisJCQkJCQkJCQlJbnZhbGlkWExv Z1JlY1B0cik7CisJCQllcmVwb3J0KERFQlVHMSwKKwkJCQkJKGVycm1zZ19pbnRlcm5hbCgidGFi bGUgXCIlc1wiIGFkZGVkIHRvIHN1YnNjcmlwdGlvbiBcIiVzXCIiLAorCQkJCQkJCQkJcmVsbmFt ZSwgTXlTdWJzY3JpcHRpb24tPm5hbWUpKSk7CiAJCX0KKwl9Cit9CisKKy8qCisgKiBEZXNlcmlh bGl6ZSBhIGRkbG1lc3NhZ2UgaW50byBhIHJhdyBwYXJzZXRyZWUgYnkgY2FsbGluZyBzdHJpbmdU b05vZGUoKSBhbmQKKyAqIHRoZW4gZXhlY3V0ZSBpdC4KKyAqCisgKiBUaGlzIGlzIG1vZGlmaWVk IGJhc2VkIG9uIHBnbG9naWNhbF9leGVjdXRlX3NxbF9jb21tYW5kKCkuCisgKi8KK3N0YXRpYyB2 b2lkCithcHBseV9leGVjdXRlX3NxbF9jb21tYW5kKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGNvbnN0 IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAorCQkJCQkJICBib29sIGlzVG9w TGV2ZWwpCit7CisJY29uc3QgY2hhciAqc2F2ZV9kZWJ1Z19xdWVyeV9zdHJpbmcgPSBkZWJ1Z19x dWVyeV9zdHJpbmc7CisJY29uc3QgY2hhciAqY21kc3RyID0gIiI7CisJTWVtb3J5Q29udGV4dCBv bGRjb250ZXh0OworCUVycm9yQ29udGV4dENhbGxiYWNrIGVycmNhbGxiYWNrOworCWludAkJCXNh dmVfbmVzdGxldmVsOworCVJhd1N0bXQgKmNvbW1hbmQgPSBtYWtlTm9kZShSYXdTdG10KTsKKwor CS8qCisJICogU3dpdGNoIHRvIGFwcHJvcHJpYXRlIGNvbnRleHQgZm9yIGNvbnN0cnVjdGluZyBw YXJzZXRyZWVzLgorCSAqLworCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBw bHlNZXNzYWdlQ29udGV4dCk7CisJYmVnaW5fcmVwbGljYXRpb25fc3RlcCgpOworCisJLyoKKwkg KiBTZXQgdGhlIGN1cnJlbnQgcm9sZSB0byB0aGUgdXNlciB0aGF0IGV4ZWN1dGVkIHRoZSBjb21t YW5kIG9uIHRoZQorCSAqIHB1YmxpY2F0aW9uIHNlcnZlci4KKwkgKiBTZXQgdGhlIGN1cnJlbnQg c2VhcmNoX3BhdGggdG8gdGhlIHNlYXJjaF9wYXRoIG9uIHRoZSBwdWJsaWNhdGlvbgorCSAqIHNl cnZlciB3aGVuIHRoZSBjb21tYW5kIHdhcyBleGVjdXRlZC4KKwkgKi8KKwlzYXZlX25lc3RsZXZl bCA9IE5ld0dVQ05lc3RMZXZlbCgpOworCVNldENvbmZpZ09wdGlvbigicm9sZSIsIHJvbGUsIFBH Q19JTlRFUk5BTCwgUEdDX1NfT1ZFUlJJREUpOworCS8vU2V0Q29uZmlnT3B0aW9uKCJzZWFyY2hf cGF0aCIsIHNlYXJjaF9wYXRoLCBQR0NfSU5URVJOQUwsIFBHQ19TX09WRVJSSURFKTsKKworCWVy cmNhbGxiYWNrLmNhbGxiYWNrID0gZXhlY3V0ZV9zcWxfY29tbWFuZF9lcnJvcl9jYjsKKwllcnJj YWxsYmFjay5hcmcgPSAoY2hhciAqKSBtZXNzYWdlOworCWVycmNhbGxiYWNrLnByZXZpb3VzID0g ZXJyb3JfY29udGV4dF9zdGFjazsKKwllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNr OworCisJZGVidWdfcXVlcnlfc3RyaW5nID0gbWVzc2FnZTsKKworCWNvbW1hbmQtPnN0bXQgPSBz dHJpbmdUb05vZGUobWVzc2FnZSk7CisKKwkvKgorCSAqIERvIGEgbGltaXRlZCBhbW91bnQgb2Yg c2FmZXR5IGNoZWNraW5nIGFnYWluc3QgQ09OQ1VSUkVOVExZIGNvbW1hbmRzCisJICogZXhlY3V0 ZWQgaW4gc2l0dWF0aW9ucyB3aGVyZSB0aGV5IGFyZW4ndCBhbGxvd2VkLiBUaGUgc2VuZGVyIHNp ZGUgc2hvdWxkCisJICogcHJvdmlkZSBwcm90ZWN0aW9uLCBidXQgYmV0dGVyIGJlIHNhZmUgdGhh biBzb3JyeS4KKwkgKi8KKwkvL2lzVG9wTGV2ZWwgPSBpc1RvcExldmVsICYmIChsaXN0X2xlbmd0 aChwYXJzZXRyZWVfbGlzdCkgPT0gMSk7CisKKwkvKgorCSAqIFN3aXRjaCBiYWNrIHRvIHRyYW5z YWN0aW9uIGNvbnRleHQgdG8gZW50ZXIgdGhlIGxvb3AuCisJICovCisJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGNvbnRleHQpOworCisJaWYgKGNvbW1hbmQtPnN0bXQpCisJeworCQlMaXN0CSAg ICpwbGFudHJlZV9saXN0OworCQlMaXN0CSAgICpxdWVyeXRyZWVfbGlzdDsKKwkJQ29tbWFuZFRh Zwljb21tYW5kVGFnID0gQ3JlYXRlQ29tbWFuZFRhZygoTm9kZSAqKWNvbW1hbmQpOworCQlQb3J0 YWwJCXBvcnRhbDsKKwkJRGVzdFJlY2VpdmVyICpyZWNlaXZlcjsKKwkJYm9vbAkJIHNuYXBzaG90 X3NldCA9IGZhbHNlOworCQljaGFyIAkJICpzY2hlbWFuYW1lID0gTlVMTDsgLyogRm9yIENSRUFU RSBUQUJMRSBhbmQgQ1JFQVRFIFRBQkxFIEFTIHN0bXQgb25seSAqLworCQljaGFyCQkgKnJlbG5h bWUgPSBOVUxMOyAvKiBGb3IgQ1JFQVRFIFRBQkxFIGFuZCBDUkVBVEUgVEFCTEUgQVMgc3RtdCBv bmx5ICovCisJCWJvb2wJCSBpc19wYXJ0aXRpb25lZF90YWJsZSA9IGZhbHNlOworCisJCXByZXBy b2Nlc3NfZGRsKGNvbW1hbmQsICZzY2hlbWFuYW1lLCAmcmVsbmFtZSwgJmlzX3BhcnRpdGlvbmVk X3RhYmxlKTsKIAogCQkvKgogCQkgKiBTZXQgdXAgYSBzbmFwc2hvdCBpZiBwYXJzZSBhbmFseXNp cy9wbGFubmluZyB3aWxsIG5lZWQgb25lLgpAQCAtMjY1NiwyMyArMjczMywxMCBAQCBhcHBseV9l eGVjdXRlX3NxbF9jb21tYW5kKGNvbnN0IGNoYXIgKmNtZHN0ciwgY29uc3QgY2hhciAqcm9sZSwg Y29uc3QgY2hhciAqc2VhcgogCQkgKgogCQkgKiBTd2l0Y2ggdG8gYXBwcm9wcmlhdGUgY29udGV4 dCBmb3IgY29uc3RydWN0aW5nIHF1ZXJ5IGFuZCBwbGFuIHRyZWVzCiAJCSAqICh0aGVzZSBjYW4n dCBiZSBpbiB0aGUgdHJhbnNhY3Rpb24gY29udGV4dCwgYXMgdGhhdCB3aWxsIGdldCByZXNldAot CQkgKiB3aGVuIHRoZSBjb21tYW5kIGlzIENPTU1JVC9ST0xMQkFDSykuICBJZiB3ZSBoYXZlIG11 bHRpcGxlCi0JCSAqIHBhcnNldHJlZXMsIHdlIHVzZSBhIHNlcGFyYXRlIGNvbnRleHQgZm9yIGVh Y2ggb25lLCBzbyB0aGF0IHdlIGNhbgotCQkgKiBmcmVlIHRoYXQgbWVtb3J5IGJlZm9yZSBtb3Zp bmcgb24gdG8gdGhlIG5leHQgb25lLiAgQnV0IGZvciB0aGUKLQkJICogbGFzdCAob3Igb25seSkg cGFyc2V0cmVlLCBqdXN0IHVzZSBNZXNzYWdlQ29udGV4dCwgd2hpY2ggd2lsbCBiZQotCQkgKiBy ZXNldCBzaG9ydGx5IGFmdGVyIGNvbXBsZXRpb24gYW55d2F5LiAgSW4gZXZlbnQgb2YgYW4gZXJy b3IsIHRoZQotCQkgKiBwZXJfcGFyc2V0cmVlX2NvbnRleHQgd2lsbCBiZSBkZWxldGVkIHdoZW4g TWVzc2FnZUNvbnRleHQgaXMgcmVzZXQuCisJCSAqIHdoZW4gdGhlIGNvbW1hbmQgaXMgQ09NTUlU L1JPTExCQUNLKS4KIAkJICovCi0JCWlmIChsbmV4dChwYXJzZXRyZWVfbGlzdCwgcGFyc2V0cmVl X2l0ZW0pICE9IE5VTEwpCi0JCXsKLQkJCXBlcl9wYXJzZXRyZWVfY29udGV4dCA9Ci0JCQkJQWxs b2NTZXRDb250ZXh0Q3JlYXRlKE1lc3NhZ2VDb250ZXh0LAotCQkJCQkJCQkJICAicGVyLXBhcnNl dHJlZSBtZXNzYWdlIGNvbnRleHQiLAotCQkJCQkJCQkJICBBTExPQ1NFVF9ERUZBVUxUX1NJWkVT KTsKLQkJCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocGVyX3BhcnNldHJlZV9j b250ZXh0KTsKLQkJfQotCQllbHNlCi0JCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKEFwcGx5TWVzc2FnZUNvbnRleHQpOworCisJCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0 U3dpdGNoVG8oQXBwbHlNZXNzYWdlQ29udGV4dCk7CiAKIAkJcXVlcnl0cmVlX2xpc3QgPSBwZ19h bmFseXplX2FuZF9yZXdyaXRlX2ZpeGVkcGFyYW1zKAogCQkJY29tbWFuZCwKQEAgLTI3MzUsNjMg KzI3OTksOCBAQCBhcHBseV9leGVjdXRlX3NxbF9jb21tYW5kKGNvbnN0IGNoYXIgKmNtZHN0ciwg Y29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcgogCiAJCUNvbW1hbmRDb3VudGVySW5j cmVtZW50KCk7CiAKLQkJLyoKLQkJICogVGFibGUgY3JlYXRlZCBieSBEREwgcmVwbGljYXRpb24g KGRhdGFiYXNlIGxldmVsKSBpcyBhdXRvbWF0aWNhbGx5Ci0JCSAqIGFkZGVkIHRvIHRoZSBzdWJz Y3JpcHRpb24gaGVyZS4KLQkJICoKLQkJICogQ2FsbCBBZGRTdWJzY3JpcHRpb25SZWxTdGF0ZSBm b3IgQ1JFQVRFIFRBQkVMIGFuZCBDUkVBVEUgVEFCTEUgQVMKLQkJICogY29tbWFuZCB0byBzZXQg dGhlIHJlbHN0YXRlIHRvIFNVQlJFTF9TVEFURV9JTklUIHNvIERNTCBjaGFuZ2VzIG9uIHRoaXMK LQkJICogbmV3IHRhYmxlIGNhbiBiZSByZXBsaWNhdGVkIHdpdGhvdXQgaGF2aW5nIHRvIG1hbnVh bGx5IHJ1bgotCQkgKiAiYWx0ZXIgc3Vic2NyaXB0aW9uIC4uLiByZWZyZXNoIHB1YmxpY2F0aW9u IgotCQkgKi8KLQkJaWYgKHJlbG5hbWUgIT0gTlVMTCkKLQkJewotCQkJT2lkIHJlbGlkOwotCQkJ T2lkIHJlbG5hbWVzcGFjZSA9IEludmFsaWRPaWQ7Ci0KLQkJCWlmIChzY2hlbWFuYW1lICE9IE5V TEwpCi0JCQkJcmVsbmFtZXNwYWNlID0gZ2V0X25hbWVzcGFjZV9vaWQoc2NoZW1hbmFtZSwgZmFs c2UpOwotCQkJaWYgKHJlbG5hbWVzcGFjZSAhPSBJbnZhbGlkT2lkKQotCQkJCXJlbGlkID0gZ2V0 X3JlbG5hbWVfcmVsaWQocmVsbmFtZSwgcmVsbmFtZXNwYWNlKTsKLQkJCWVsc2UKLQkJCXsKLQkJ CQkvKgotCQkJCSAqIFRyeSB0byByZXNvbHZlIHVucXVhbGlmaWVkIHJlbG5hbWUuCi0JCQkJICog Tm90aWNlIHdlIGhhdmUgc2V0IHRoZSBzZWFyY2hfcGF0aCB0byB0aGUgb3JpZ2luYWwgc2VhcmNo X3BhdGggb24gdGhlIHB1Ymxpc2hlcgotCQkJCSAqIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBm dW5jdGlvbi4KLQkJCQkgKi8KLQkJCQlyZWxpZCA9IFJlbG5hbWVHZXRSZWxpZChyZWxuYW1lKTsK LQkJCX0KLQotCQkJaWYgKHJlbGlkICE9IEludmFsaWRPaWQpCi0JCQl7Ci0JCQkJYm9vbCBzdWJz Y3JpYmVfdGFibGUgPSB0cnVlOwotCi0JCQkJaWYgKGlzX3BhcnRpdGlvbmVkX3RhYmxlKQotCQkJ CXsKLQkJCQkJUmVsYXRpb24gcmVsID0gUmVsYXRpb25JZEdldFJlbGF0aW9uKHJlbGlkKTsKLQkJ CQkJY2hhciAqdGFibGVfbmFtZSA9IFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCk7Ci0JCQkJ CWNoYXIgKnNjaGVtYV9uYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNw YWNlKHJlbCkpOwotCQkJCQkvKgotCQkJCQkgKiBDb25uZWN0IHRvIHRoZSBzb3VyY2UgREIgYW5k IGNoZWNrIHdoZWh0ZXIgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIHNob3VsZCBiZSBzdWJzY3JpYmVk LgotCQkJCQkgKiBCZWNhdXNlIGl0IGRlcGVuZHMgb24gdGhlIHNldHRpbmcgb2YgcHVibGlzaF92 aWFfcGFydGl0aW9uX3Jvb3QsIHdoaWNoIHRoZSBzdWJzY3JpcHRpb24KLQkJCQkJICogZG9lc24n dCBrbm93LgotCQkJCQkgKi8KLQkJCQkJc3Vic2NyaWJlX3RhYmxlID0gSXNQYXJ0aXRpb25lZFRh YmxlUHVibGlzaGVkT25Tb3VyY2UoTXlTdWJzY3JpcHRpb24sIHNjaGVtYV9uYW1lLCB0YWJsZV9u YW1lKTsKLQkJCQkJUmVsYXRpb25DbG9zZShyZWwpOwotCQkJCX0KLQotCQkJCWlmIChzdWJzY3Jp YmVfdGFibGUpCi0JCQkJewotCQkJCQlBZGRTdWJzY3JpcHRpb25SZWxTdGF0ZShNeVN1YnNjcmlw dGlvbi0+b2lkLCByZWxpZCwKLQkJCQkJCQkJCQkJU1VCUkVMX1NUQVRFX0lOSVQsCi0JCQkJCQkJ CQkJCUludmFsaWRYTG9nUmVjUHRyKTsKLQkJCQkJZXJlcG9ydChERUJVRzEsCi0JCQkJCQkJKGVy cm1zZ19pbnRlcm5hbCgidGFibGUgXCIlc1wiIGFkZGVkIHRvIHN1YnNjcmlwdGlvbiBcIiVzXCIi LAotCQkJCQkJCQkJCQkgcmVsbmFtZSwgTXlTdWJzY3JpcHRpb24tPm5hbWUpKSk7Ci0JCQkJfQot CQkJfQotCQl9CisJCWlmIChyZWxuYW1lKQorCQkJaGFuZGxlX2NyZWF0ZV90YWJsZShyZWxuYW1l LCBzY2hlbWFuYW1lLCBpc19wYXJ0aXRpb25lZF90YWJsZSk7CiAJfQogCiAJLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5 LmMKaW5kZXggMDgyNzhjOTQ1Yy4uNWY0MWQ2NjYwNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTExMzIs MTAgKzExMzIsMTEgQEAgTG9nTG9naWNhbERETENvbW1hbmQoTm9kZSAqcGFyc2V0cmVlLCBjb25z dCBjaGFyICpxdWVyeVN0cmluZykKIAkJCWlmIChkZGxfbmVlZF94bG9nKEludmFsaWRPaWQsIHRy dWUpKQogCQkJewogCQkJCWNvbnN0IGNoYXIqIHByZWZpeCA9ICIiOworCQkJCWNoYXIqIHBhcnNl dHJlZV9zdHIgPSBub2RlVG9TdHJpbmcocGFyc2V0cmVlKTsKIAkJCQlMb2dMb2dpY2FsRERMTWVz c2FnZShwcmVmaXgsCiAJCQkJCQkJCQkgR2V0VXNlcklkKCksCi0JCQkJCQkJCQkgcXVlcnlTdHJp bmcsCi0JCQkJCQkJCQkgc3RybGVuKHF1ZXJ5U3RyaW5nKSk7CisJCQkJCQkJCQkgcGFyc2V0cmVl X3N0ciwKKwkJCQkJCQkJCSBzdHJsZW4ocGFyc2V0cmVlX3N0cikpOwogCQkJfQogCQkJYnJlYWs7 CiAKQEAgLTExNzIsMTAgKzExNzMsMTEgQEAgTG9nTG9naWNhbERETENvbW1hbmQoTm9kZSAqcGFy c2V0cmVlLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykKIAkJCQkJaWYgKGRkbF9uZWVkX3hsb2co SW52YWxpZE9pZCwgdHJ1ZSkpCiAJCQkJCXsKIAkJCQkJCWNvbnN0IGNoYXIqIHByZWZpeCA9ICIi OworCQkJCQkJY2hhciogcGFyc2V0cmVlX3N0ciA9IG5vZGVUb1N0cmluZyhwYXJzZXRyZWUpOwog CQkJCQkJTG9nTG9naWNhbERETE1lc3NhZ2UocHJlZml4LAogCQkJCQkJCQkJCQkgR2V0VXNlcklk KCksCi0JCQkJCQkJCQkJCSBxdWVyeVN0cmluZywKLQkJCQkJCQkJCQkJIHN0cmxlbihxdWVyeVN0 cmluZykpOworCQkJCQkJCQkJCQkgcGFyc2V0cmVlX3N0ciwKKwkJCQkJCQkJCQkJIHN0cmxlbihw YXJzZXRyZWVfc3RyKSk7CiAJCQkJCX0KIAkJCQlkZWZhdWx0OgogCQkJCQlicmVhazsKQEAgLTEx OTEsMTYgKzExOTMsMjYgQEAgTG9nTG9naWNhbERETENvbW1hbmQoTm9kZSAqcGFyc2V0cmVlLCBj b25zdCBjaGFyICpxdWVyeVN0cmluZykKIAkJICovCiAJCWNhc2UgVF9BbHRlclRhYmxlU3RtdDoK IAkJY2FzZSBUX0luZGV4U3RtdDoKKwkJCWJyZWFrOworCQkvKgorCQkgKiBSZW5hbWUgb2Ygb2Jq ZWN0cyBvdGhlciB0aGFuIHRhYmxlIGlzIG9ubHkgYWxsb3dlZCBpbiBkYXRhYmFzZSBsZXZlbAor CQkgKiByZXBsaWNhdGlvbi4KKwkJICogUmVuYW1lIG9mIHRhYmxlIGlzIGFsbG93ZWQgaW4gYm90 aCB0YWJsZSBsZXZlbCBhbmQgZGF0YWJhc2UgbGV2ZWwKKwkJICogcmVwbGljYXRpb24uCisJCSAq LwogCQljYXNlIFRfUmVuYW1lU3RtdDoKIAkJewogCQkJUmVuYW1lU3RtdCAqc3RtdCA9IChSZW5h bWVTdG10ICopIHBhcnNldHJlZTsKLQkJCWlmKCFzdG10LT5yZWxhdGlvbiAmJiBkZGxfbmVlZF94 bG9nKEludmFsaWRPaWQsIHRydWUpKXsKKwkJCWlmKCFzdG10LT5yZWxhdGlvbiAmJiBkZGxfbmVl ZF94bG9nKEludmFsaWRPaWQsIHRydWUpKQorCQkJewogCQkJCWNvbnN0IGNoYXIqIHByZWZpeCA9 ICIiOworCQkJCWNoYXIqIHBhcnNldHJlZV9zdHIgPSBub2RlVG9TdHJpbmcocGFyc2V0cmVlKTsK IAkJCQlMb2dMb2dpY2FsRERMTWVzc2FnZShwcmVmaXgsCi0JCQkJCQkJCQlHZXRVc2VySWQoKSwK LQkJCQkJCQkJCXF1ZXJ5U3RyaW5nLAotCQkJCQkJCQkJc3RybGVuKHF1ZXJ5U3RyaW5nKSk7CisJ CQkJCQkJCQkgR2V0VXNlcklkKCksCisJCQkJCQkJCQkgcGFyc2V0cmVlX3N0ciwKKwkJCQkJCQkJ CSBzdHJsZW4ocGFyc2V0cmVlX3N0cikpOwogCQkJfQorCQkJYnJlYWs7CiAJCX0KIAkJY2FzZSBU X0FsdGVyT3duZXJTdG10OiAvKiBUT0RPLCBpdCBpcyBkYXRhIGNvbnRyb2wgY2FzZSwgc2F2ZSBm b3IgbGF0ZXIgdXBkYXRlICovCiAJCQlicmVhazsKQEAgLTEyMTgsMTEgKzEyMzAsOSBAQCBMb2dM b2dpY2FsRERMQ29tbWFuZChOb2RlICpwYXJzZXRyZWUsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5n KQogCQkJCS8qIERyb3Agb2Ygc2VxdWVuY2UgaXMgYnkgbG9naWNhbCByZXBsaWNhdGlvbiBvZiBz ZXF1ZW5jZXMgc2VwYXJhdGVseSAqLwogCQkJCWNhc2UgT0JKRUNUX1NFUVVFTkNFOgogCQkJCQli cmVhazsKLQkJCQkvKiBEcm9wIG9mIG90aGVyIG9iamVjdHMgYXJlIGFsbG93ZWQgaW4gRGF0YWJh c2UgbGV2ZWwgRERMIHJlcGxpY2F0aW9uIG9ubHkgKi8KKwkJCQkvKiBEcm9wIG9mIFZJRVcgYW5k IE1BVFZJRVcgYXJlIGFsbG93ZWQgaW4gRGF0YWJhc2UgbGV2ZWwgRERMIHJlcGxpY2F0aW9uIG9u bHkgKi8KIAkJCQljYXNlIE9CSkVDVF9WSUVXOgogCQkJCWNhc2UgT0JKRUNUX01BVFZJRVc6Ci0J CQkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToKLQkJCQlkZWZhdWx0OgogCQkJCQkvKgogCQkJ CQkgKiBMb2cgdGhlc2UgRHJvcFN0bXQgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gaWYKIAkJCQkJ ICogdGhlcmUgaXMgYW55IEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uIHdpdGggcHViZGRsX2Rh dGFiYXNlIG9uLgpAQCAtMTIzMSwxMiArMTI0MSwxNSBAQCBMb2dMb2dpY2FsRERMQ29tbWFuZChO b2RlICpwYXJzZXRyZWUsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQogCQkJCQlpZiAoZGRsX25l ZWRfeGxvZyhJbnZhbGlkT2lkLCB0cnVlKSkKIAkJCQkJewogCQkJCQkJY29uc3QgY2hhciogcHJl Zml4ID0gIiI7CisJCQkJCQljaGFyKiBwYXJzZXRyZWVfc3RyID0gbm9kZVRvU3RyaW5nKHBhcnNl dHJlZSk7CiAJCQkJCQlMb2dMb2dpY2FsRERMTWVzc2FnZShwcmVmaXgsCiAJCQkJCQkJCQkJCSBH ZXRVc2VySWQoKSwKLQkJCQkJCQkJCQkJIHF1ZXJ5U3RyaW5nLAotCQkJCQkJCQkJCQkgc3RybGVu KHF1ZXJ5U3RyaW5nKSk7CisJCQkJCQkJCQkJCSBwYXJzZXRyZWVfc3RyLAorCQkJCQkJCQkJCQkg c3RybGVuKHBhcnNldHJlZV9zdHIpKTsKIAkJCQkJfQogCQkJCQlicmVhazsKKwkJCQlkZWZhdWx0 OgorCQkJCQlicmVhazsKIAkJCX0KIAkJfQogCQkvKgpAQCAtMTUzOSwxMCArMTU1MiwxMSBAQCBQ cm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCWRkbF9uZWVkX3hs b2cocmVsaWQsIGZhbHNlKSkKIAkJCQkJCXsKIAkJCQkJCQljb25zdCBjaGFyKiBwcmVmaXggPSAi IjsKKwkJCQkJCQljaGFyKiBwYXJzZXRyZWVfc3RyID0gbm9kZVRvU3RyaW5nKHBhcnNldHJlZSk7 CiAJCQkJCQkJTG9nTG9naWNhbERETE1lc3NhZ2UocHJlZml4LAogCQkJCQkJCQkJCQkJIEdldFVz ZXJJZCgpLAotCQkJCQkJCQkJCQkJIHF1ZXJ5U3RyaW5nLAotCQkJCQkJCQkJCQkJIHN0cmxlbihx dWVyeVN0cmluZykpOworCQkJCQkJCQkJCQkJIHBhcnNldHJlZV9zdHIsCisJCQkJCQkJCQkJCQkg c3RybGVuKHBhcnNldHJlZV9zdHIpKTsKIAkJCQkJCX0KIAogCQkJCQkJLyogLi4uIGFuZCBkbyBp dCAqLwpAQCAtMTc3NCwxMCArMTc4OCwxMSBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCQkJCQkJZGRsX25lZWRfeGxvZyhyZWxpZCwgZmFsc2UpKQogCQkJCQl7CiAJ CQkJCQljb25zdCBjaGFyKiBwcmVmaXggPSAiIjsKKwkJCQkJCWNoYXIqIHBhcnNldHJlZV9zdHIg PSBub2RlVG9TdHJpbmcocGFyc2V0cmVlKTsKIAkJCQkJCUxvZ0xvZ2ljYWxERExNZXNzYWdlKHBy ZWZpeCwKIAkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLAotCQkJCQkJCQkJCQkgcXVlcnlTdHJpbmcs Ci0JCQkJCQkJCQkJCSBzdHJsZW4ocXVlcnlTdHJpbmcpKTsKKwkJCQkJCQkJCQkJIHBhcnNldHJl ZV9zdHIsCisJCQkJCQkJCQkJCSBzdHJsZW4ocGFyc2V0cmVlX3N0cikpOwogCQkJCQl9CiAKIAkJ CQkJYWRkcmVzcyA9Ci0tIAoyLjMyLjAKCg== --0000000000009fcfad05e13a88b5 Content-Type: application/octet-stream; name="0011-Remove-non-transactional-ddl-message-decoding-becaus.patch" Content-Disposition: attachment; filename="0011-Remove-non-transactional-ddl-message-decoding-becaus.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4axuwpe10 RnJvbSBiM2RmZTg4ZjMzMGYwY2VmYmI0ZTA2MTJkOTNlNzE4MmQwMDhmNDc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWmhlbmcgKFphbmUpIExpIiA8emhlbGxpQGFtYXpvbi5jb20+ CkRhdGU6IFR1ZSwgMjQgTWF5IDIwMjIgMTU6Mzc6MzQgKzAwMDAKU3ViamVjdDogW1BBVENIIDEx LzEyXSBSZW1vdmUgbm9uLXRyYW5zYWN0aW9uYWwgZGRsIG1lc3NhZ2UgZGVjb2RpbmcgYmVjYXVz ZQogdGhlIHVzZSBjYXNlIGlzIHVuY2xlYXIgYW5kIGl0IGhhcyB1bnJlc29sdmVkIGlzc3VlcyB1 bmRlciBjb25jdXJyZW5jeS4KCi0tLQogLi4uL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsbWVz c2FnZXMub3V0ICAgIHwgNDIgKysrKysrLS0tLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvdGVz dF9kZWNvZGluZy5jICAgICAgICAgfCAyNSArKystLS0tLQogLi4uL2FjY2Vzcy9ybWdyZGVzYy9s b2dpY2FsZGRsbXNnZGVzYy5jICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jICAgICAgICAgICAgICB8ICA4ICstLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9kZGxtZXNzYWdlLmMgIHwgMTIgKystLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9kZWNvZGUuYyAgICAgIHwgMTMgKy0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9sb2dpY2FsLmMgICAgIHwgMjYgKysrKy0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvcHJvdG8uYyAgICAgICB8IDEyICstLS0KIC4uLi9yZXBsaWNhdGlvbi9sb2dp Y2FsL3Jlb3JkZXJidWZmZXIuYyAgICAgICB8IDY0ICsrKysrKy0tLS0tLS0tLS0tLS0KIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAzICstCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jICAgfCAxNyArKy0tLQogc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgMjQgKystLS0tLQogc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vZGRsbWVzc2FnZS5oICAgICAgICAgIHwgIDMgKy0KIHNyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWxwcm90by5oICAgICAgICB8ICA0ICstCiBzcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9vdXRwdXRfcGx1Z2luLmggICAgICAgfCAgMiAtCiBzcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9yZW9yZGVyYnVmZmVyLmggICAgICAgfCAgNiArLQogMTYgZmlsZXMgY2hh bmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMTc3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGxtZXNzYWdlcy5vdXQgYi9jb250cmliL3Rl c3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsbWVzc2FnZXMub3V0CmluZGV4IDgyMzAyOWQwM2QuLjU2 Y2JhZmE0Y2YgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGxt ZXNzYWdlcy5vdXQKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2RkbG1lc3Nh Z2VzLm91dApAQCAtMjQsMTQgKzI0LDE0IEBAIENSRUFURSBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2Ug KGlkIHNlcmlhbCB1bmlxdWUsIGRhdGEgaW50KTsKIEFMVEVSIFRBQkxFIHRlc3RfZGRsbWVzc2Fn ZSBhZGQgYzMgdmFyY2hhcjsKIENPTU1JVDsKIFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9z bG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14 aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJyk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9sZTog ZGRsX3JlcGxpY2F0aW9uX3VzZXIsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiA3 MCBjb250ZW50OkNSRUFURSBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgKGlkIHNlcmlhbCB1bmlxdWUg cHJpbWFyeSBrZXksIGRhdGEgaW50KTsKLSBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBw cmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNlciIs IHB1YmxpYywgc3o6IDQzIGNvbnRlbnQ6QUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBj MyB2YXJjaGFyOwotIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFsOiAxIHByZWZpeDogIHJvbGU6 IGRkbF9yZXBsaWNhdGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejog MzYgY29udGVudDpBTFRFUiBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgZHJvcCBjMzsKLSBEREwgbWVz c2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNl ciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDI3IGNvbnRlbnQ6RFJPUCBUQUJM RSB0ZXN0X2RkbG1lc3NhZ2U7Ci0gRERMIG1lc3NhZ2U6IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4 OiAgcm9sZTogZGRsX3JlcGxpY2F0aW9uX3VzZXIsIHNlYXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJs aWMsIHN6OiA1OCBjb250ZW50OkNSRUFURSBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgKGlkIHNlcmlh bCB1bmlxdWUsIGRhdGEgaW50KTsKLSBEREwgbWVzc2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVm aXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1 YmxpYywgc3o6IDQzIGNvbnRlbnQ6QUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFkZCBjMyB2 YXJjaGFyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgRERMIG1lc3NhZ2U6IHByZWZpeDogIHJvbGU6IGRkbF9yZXBsaWNhdGlvbl91c2VyLCBz ZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejogNzAgY29udGVudDpDUkVBVEUgVEFCTEUg dGVzdF9kZGxtZXNzYWdlIChpZCBzZXJpYWwgdW5pcXVlIHByaW1hcnkga2V5LCBkYXRhIGludCk7 CisgRERMIG1lc3NhZ2U6IHByZWZpeDogIHJvbGU6IGRkbF9yZXBsaWNhdGlvbl91c2VyLCBzZWFy Y2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejogNDMgY29udGVudDpBTFRFUiBUQUJMRSB0ZXN0 X2RkbG1lc3NhZ2UgYWRkIGMzIHZhcmNoYXI7CisgRERMIG1lc3NhZ2U6IHByZWZpeDogIHJvbGU6 IGRkbF9yZXBsaWNhdGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejog MzYgY29udGVudDpBTFRFUiBUQUJMRSB0ZXN0X2RkbG1lc3NhZ2UgZHJvcCBjMzsKKyBEREwgbWVz c2FnZTogcHJlZml4OiAgcm9sZTogZGRsX3JlcGxpY2F0aW9uX3VzZXIsIHNlYXJjaF9wYXRoOiAi JHVzZXIiLCBwdWJsaWMsIHN6OiAyNyBjb250ZW50OkRST1AgVEFCTEUgdGVzdF9kZGxtZXNzYWdl OworIERETCBtZXNzYWdlOiBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNlciwgc2Vh cmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDU4IGNvbnRlbnQ6Q1JFQVRFIFRBQkxFIHRl c3RfZGRsbWVzc2FnZSAoaWQgc2VyaWFsIHVuaXF1ZSwgZGF0YSBpbnQpOworIERETCBtZXNzYWdl OiBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNlciwgc2VhcmNoX3BhdGg6ICIkdXNl ciIsIHB1YmxpYywgc3o6IDQzIGNvbnRlbnQ6QUxURVIgVEFCTEUgdGVzdF9kZGxtZXNzYWdlIGFk ZCBjMyB2YXJjaGFyOwogKDYgcm93cykKIAogLS0gVGVzdCBsb2dnaW5nIERETCBpbiBmdW5jdGlv bgpAQCAtNTIsMjAgKzUyLDIwIEBAIFNFTEVDVCBmdW5jX2RkbCAoJ3RhYl9mcm9tX2Z1bmMnKTsK ICgxIHJvdykKIAogU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMo J3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lw LWVtcHR5LXhhY3RzJywgJzEnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBEREwgbWVzc2FnZTogdHJhbnNhY3Rp b25hbDogMSBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNlciwgc2VhcmNoX3BhdGg6 ICIkdXNlciIsIHB1YmxpYywgc3o6IDM3NSBjb250ZW50OkNSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIGZ1bmNfZGRsICh0bmFtZSB2YXJjaGFyKDIwKSkgICAgICsKLSBSRVRVUk5TIFZPSUQgQVMg JCQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSBCRUdJTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAg ZXhlY3V0ZSBmb3JtYXQoJ0NSRUFURSBUQUJMRSAlSShpZCBpbnQgcHJpbWFyeSBrZXksIG5hbWUg dmFyY2hhcik7JywgdG5hbWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgICAgZXhlY3V0ZSBmb3JtYXQoJ0FMVEVSIFRBQkxFICVJIEFERCBjMyBpbnQnLCB0bmFtZSk7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgICAgZXhlY3V0ZSBmb3JtYXQoJ0lOU0VSVCBJTlRPICVJIFZBTFVFUyAoMSwgJydh JycpOycsIHRuYW1lKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgICAgZXhlY3V0ZSBmb3JtYXQoJ0lOU0VSVCBJTlRPICVJIFZBTFVFUyAo MiwgJydiJycsIDIyKTsnLCB0bmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSBFTkQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAkJCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIERETCBtZXNzYWdlOiBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNl ciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDM3NSBjb250ZW50OkNSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIGZ1bmNfZGRsICh0bmFtZSB2YXJjaGFyKDIwKSkgICAgICsKKyBS RVRVUk5TIFZPSUQgQVMgJCQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgQkVHSU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBleGVjdXRlIGZvcm1hdCgnQ1JF QVRFIFRBQkxFICVJKGlkIGludCBwcmltYXJ5IGtleSwgbmFtZSB2YXJjaGFyKTsnLCB0bmFtZSk7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgZXhlY3V0ZSBmb3JtYXQoJ0FMVEVSIFRBQkxFICVJ IEFERCBjMyBpbnQnLCB0bmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgIGV4ZWN1dGUgZm9ybWF0KCdJTlNFUlQgSU5UTyAlSSBWQUxVRVMgKDEs ICcnYScnKTsnLCB0bmFtZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICBleGVjdXRlIGZvcm1hdCgnSU5TRVJUIElOVE8gJUkgVkFMVUVTICgyLCAnJ2InJywgMjIp OycsIHRuYW1lKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBFTkQ7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgJCQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwogIExBTkdVQUdFIHBscGdzcWw7Ci0gRERMIG1lc3NhZ2U6 IHRyYW5zYWN0aW9uYWw6IDEgcHJlZml4OiAgcm9sZTogZGRsX3JlcGxpY2F0aW9uX3VzZXIsIHNl YXJjaF9wYXRoOiAiJHVzZXIiLCBwdWJsaWMsIHN6OiA2MSBjb250ZW50OkNSRUFURSBUQUJMRSB0 YWJfZnJvbV9mdW5jKGlkIGludCBwcmltYXJ5IGtleSwgbmFtZSB2YXJjaGFyKTsKLSBEREwgbWVz c2FnZTogdHJhbnNhY3Rpb25hbDogMSBwcmVmaXg6ICByb2xlOiBkZGxfcmVwbGljYXRpb25fdXNl ciwgc2VhcmNoX3BhdGg6ICIkdXNlciIsIHB1YmxpYywgc3o6IDM2IGNvbnRlbnQ6QUxURVIgVEFC TEUgdGFiX2Zyb21fZnVuYyBBREQgYzMgaW50CisgRERMIG1lc3NhZ2U6IHByZWZpeDogIHJvbGU6 IGRkbF9yZXBsaWNhdGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejog NjEgY29udGVudDpDUkVBVEUgVEFCTEUgdGFiX2Zyb21fZnVuYyhpZCBpbnQgcHJpbWFyeSBrZXks IG5hbWUgdmFyY2hhcik7CisgRERMIG1lc3NhZ2U6IHByZWZpeDogIHJvbGU6IGRkbF9yZXBsaWNh dGlvbl91c2VyLCBzZWFyY2hfcGF0aDogIiR1c2VyIiwgcHVibGljLCBzejogMzYgY29udGVudDpB TFRFUiBUQUJMRSB0YWJfZnJvbV9mdW5jIEFERCBjMyBpbnQKICBCRUdJTgogIHRhYmxlIHB1Ymxp Yy50YWJfZnJvbV9mdW5jOiBJTlNFUlQ6IGlkW2ludGVnZXJdOjEgbmFtZVtjaGFyYWN0ZXIgdmFy eWluZ106J2EnIGMzW2ludGVnZXJdOm51bGwKICB0YWJsZSBwdWJsaWMudGFiX2Zyb21fZnVuYzog SU5TRVJUOiBpZFtpbnRlZ2VyXToyIG5hbWVbY2hhcmFjdGVyIHZhcnlpbmddOidiJyBjM1tpbnRl Z2VyXToyMgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3Rlc3RfZGVjb2Rpbmcu YyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy90ZXN0X2RlY29kaW5nLmMKaW5kZXggYTQ0ZTFmNzll My4uZWIzZGQ3Njc4MiAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3Rlc3RfZGVj b2RpbmcuYworKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvdGVzdF9kZWNvZGluZy5jCkBAIC03 OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIHBnX2RlY29kZV9tZXNzYWdlKExvZ2ljYWxEZWNvZGlu Z0NvbnRleHQgKmN0eCwKIAkJCQkJCQkgIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwog c3RhdGljIHZvaWQgcGdfZGVjb2RlX2RkbG1lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAq Y3R4LAogCQkJCQkJCQkgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLCBYTG9nUmVjUHRyIG1lc3NhZ2Vf bHNuLAotCQkJCQkJCQkgYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsCisJ CQkJCQkJCSBjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCQkJCSBjb25zdCBjaGFyICpyb2xlLCBj b25zdCBjaGFyICpzZWFyY2hfcGF0aCwKIAkJCQkJCQkJIFNpemUgc3osIGNvbnN0IGNoYXIgKm1l c3NhZ2UpOwogc3RhdGljIGJvb2wgcGdfZGVjb2RlX2ZpbHRlcl9wcmVwYXJlKExvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eCwKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgdm9pZCBwZ19kZWNv ZGVfc3RyZWFtX21lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAogCQkJCQkJCQkJ IFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogc3RhdGljIHZvaWQgcGdfZGVjb2RlX3N0 cmVhbV9kZGxtZXNzYWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJCQkJCQlS ZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24sCi0JCQkJCQkJCQkJ Ym9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkJCQkJCQkJY29uc3Qg Y2hhciAqcHJlZml4LAogCQkJCQkJCQkJCWNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNl YXJjaF9wYXRoLAogCQkJCQkJCQkJCVNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogc3Rh dGljIHZvaWQgcGdfZGVjb2RlX3N0cmVhbV90cnVuY2F0ZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0 ICpjdHgsCkBAIC03NzEsMTMgKzc3MSwxMyBAQCBwZ19kZWNvZGVfbWVzc2FnZShMb2dpY2FsRGVj b2RpbmdDb250ZXh0ICpjdHgsCiAKIHN0YXRpYyB2b2lkCiBwZ19kZWNvZGVfZGRsbWVzc2FnZShM b2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCi0JCQkJICBSZW9yZGVyQnVmZmVyVFhOICp0eG4s IFhMb2dSZWNQdHIgbHNuLCBib29sIHRyYW5zYWN0aW9uYWwsCisJCQkJICBSZW9yZGVyQnVmZmVy VFhOICp0eG4sIFhMb2dSZWNQdHIgbHNuLAogCQkJCSAgY29uc3QgY2hhciAqcHJlZml4LCBjb25z dCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKIAkJCQkgIFNpemUgc3osIGNv bnN0IGNoYXIgKm1lc3NhZ2UpCiB7CiAJT3V0cHV0UGx1Z2luUHJlcGFyZVdyaXRlKGN0eCwgdHJ1 ZSk7Ci0JYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgIkRETCBtZXNzYWdlOiB0cmFuc2FjdGlv bmFsOiAlZCBwcmVmaXg6ICVzIHJvbGU6ICVzLCBzZWFyY2hfcGF0aDogJXMsIHN6OiAlenUgY29u dGVudDoiLAotCQkJCQkgdHJhbnNhY3Rpb25hbCwgcHJlZml4LCByb2xlLCBzZWFyY2hfcGF0aCwg c3opOworCWFwcGVuZFN0cmluZ0luZm8oY3R4LT5vdXQsICJEREwgbWVzc2FnZTogcHJlZml4OiAl cyByb2xlOiAlcywgc2VhcmNoX3BhdGg6ICVzLCBzejogJXp1IGNvbnRlbnQ6IiwKKwkJCQkJIHBy ZWZpeCwgcm9sZSwgc2VhcmNoX3BhdGgsIHN6KTsKIAlhcHBlbmRCaW5hcnlTdHJpbmdJbmZvKGN0 eC0+b3V0LCBtZXNzYWdlLCBzeik7CiAJT3V0cHV0UGx1Z2luV3JpdGUoY3R4LCB0cnVlKTsKIH0K QEAgLTk4OSwyMyArOTg5LDE0IEBAIHBnX2RlY29kZV9zdHJlYW1fbWVzc2FnZShMb2dpY2FsRGVj b2RpbmdDb250ZXh0ICpjdHgsCiAgKi8KIHN0YXRpYyB2b2lkCiBwZ19kZWNvZGVfc3RyZWFtX2Rk bG1lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAotCQkJCQkJCVJlb3JkZXJCdWZm ZXJUWE4gKnR4biwgWExvZ1JlY1B0ciBsc24sIGJvb2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkJCQlS ZW9yZGVyQnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgbHNuLAogCQkJCQkJCWNvbnN0IGNoYXIg KnByZWZpeCwgY29uc3QgY2hhciAqIHJvbGUsIGNvbnN0IGNoYXIgKiBzZWFyY2hfcGF0aCwKIAkJ CQkJCQlTaXplIHN6LCBjb25zdCBjaGFyICptZXNzYWdlKQogewogCU91dHB1dFBsdWdpblByZXBh cmVXcml0ZShjdHgsIHRydWUpOwogCi0JaWYgKHRyYW5zYWN0aW9uYWwpCi0JewotCQlhcHBlbmRT dHJpbmdJbmZvKGN0eC0+b3V0LCAic3RyZWFtaW5nIERETCBtZXNzYWdlOiB0cmFuc2FjdGlvbmFs OiAlZCBwcmVmaXg6ICVzIHJvbGU6ICVzLCBzZWFyY2hfcGF0aDogJXMsIHN6OiAlenUiLAotCQkJ CQkJIHRyYW5zYWN0aW9uYWwsIHByZWZpeCwgcm9sZSwgc2VhcmNoX3BhdGgsIHN6KTsKLQl9Ci0J ZWxzZQotCXsKLQkJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgInN0cmVhbWluZyBEREwgbWVz c2FnZTogdHJhbnNhY3Rpb25hbDogJWQgcHJlZml4OiAlcyByb2xlOiAlcywgc2VhcmNoX3BhdGg6 ICVzLCBzejogJXp1IGNvbnRlbnQ6IiwKLQkJCQkJCSB0cmFuc2FjdGlvbmFsLCBwcmVmaXgsIHJv bGUsIHNlYXJjaF9wYXRoLCBzeik7Ci0JCWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oY3R4LT5vdXQs IG1lc3NhZ2UsIHN6KTsKLQl9CisJYXBwZW5kU3RyaW5nSW5mbyhjdHgtPm91dCwgInN0cmVhbWlu ZyBEREwgbWVzc2FnZTogcHJlZml4OiAlcyByb2xlOiAlcywgc2VhcmNoX3BhdGg6ICVzLCBzejog JXp1IiwKKwkJCQkJIHByZWZpeCwgcm9sZSwgc2VhcmNoX3BhdGgsIHN6KTsKIAogCU91dHB1dFBs dWdpbldyaXRlKGN0eCwgdHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MvbG9naWNhbGRkbG1zZ2Rlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVz Yy9sb2dpY2FsZGRsbXNnZGVzYy5jCmluZGV4IDdhMzUyZDU0MGEuLjBhYWViZjhhMDggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9sb2dpY2FsZGRsbXNnZGVzYy5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9sb2dpY2FsZGRsbXNnZGVzYy5jCkBAIC0z Miw4ICszMiw3IEBAIGxvZ2ljYWxkZGxtc2dfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRl clN0YXRlICpyZWNvcmQpCiAKIAkJQXNzZXJ0KHByZWZpeFt4bHJlYy0+cHJlZml4X3NpemVdICE9 ICdcMCcpOwogCi0JCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXMsIHByZWZpeCBcIiVzXCI7IHJv bGUgXCIlc1wiOyBzZWFyY2hfcGF0aCBcIiVzXCI7IHBheWxvYWQgKCV6dSBieXRlcyk6ICIsCi0J CQkJCQkgeGxyZWMtPnRyYW5zYWN0aW9uYWwgPyAidHJhbnNhY3Rpb25hbCIgOiAibm9uLXRyYW5z YWN0aW9uYWwiLAorCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInByZWZpeCBcIiVzXCI7IHJvbGUg XCIlc1wiOyBzZWFyY2hfcGF0aCBcIiVzXCI7IHBheWxvYWQgKCV6dSBieXRlcyk6ICIsCiAJCQkJ CQkgcHJlZml4LCByb2xlLCBzZWFyY2hfcGF0aCwgeGxyZWMtPm1lc3NhZ2Vfc2l6ZSk7CiAJCS8q IFdyaXRlIG1lc3NhZ2UgcGF5bG9hZCBhcyBhIHNlcmllcyBvZiBoZXggYnl0ZXMgKi8KIAkJZm9y IChpbnQgY250ID0gMDsgY250IDwgeGxyZWMtPm1lc3NhZ2Vfc2l6ZTsgY250KyspCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCmluZGV4IDY1Mzg2ZjI2NDEuLjk0ZTM1MGI4MGQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCkBAIC0xNTE2LDEzICsxNTE2LDExIEBAIFJlbW92ZVJlbGF0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsIERyb3BTdG10ICpkcm9wLCBib29sIGlzQ29tcGxldGVRdWVyeSkK IAkvKiBMb2cgdGhlIERyb3AgY29tbWFuZCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiAqLwogCWlm IChkZGx4bG9nKQogCXsKLQkJYm9vbCB0cmFuc2FjdGlvbmFsID0gdHJ1ZTsKIAkJY29uc3QgY2hh ciogcHJlZml4ID0gIiI7CiAJCUxvZ0xvZ2ljYWxERExNZXNzYWdlKHByZWZpeCwKIAkJCQkJCQkg R2V0VXNlcklkKCksCiAJCQkJCQkJIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJCQkJCSBzdHJs ZW4ocHN0YXRlLT5wX3NvdXJjZXRleHQpLAotCQkJCQkJCSB0cmFuc2FjdGlvbmFsKTsKKwkJCQkJ CQkgc3RybGVuKHBzdGF0ZS0+cF9zb3VyY2V0ZXh0KSk7CiAJfQogCiAJcGVyZm9ybU11bHRpcGxl RGVsZXRpb25zKG9iamVjdHMsIGRyb3AtPmJlaGF2aW9yLCBmbGFncyk7CkBAIC0zODc2LDEzICsz ODc0LDExIEBAIFJlbmFtZVJlbGF0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmVuYW1lU3RtdCAq c3RtdCwgYm9vbCBpc0NvbXBsZXRlUXVlcnkpCiAJaWYgKGRkbHhsb2cgJiYKIAkJZGRsX25lZWRf eGxvZyhyZWxpZCwgZmFsc2UpKQogCXsKLQkJYm9vbCB0cmFuc2FjdGlvbmFsID0gdHJ1ZTsKIAkJ Y29uc3QgY2hhciogcHJlZml4ID0gIiI7CiAJCUxvZ0xvZ2ljYWxERExNZXNzYWdlKHByZWZpeCwK IAkJCQkJCQkgR2V0VXNlcklkKCksCiAJCQkJCQkJIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJ CQkJCSBzdHJsZW4ocHN0YXRlLT5wX3NvdXJjZXRleHQpLAotCQkJCQkJCSB0cmFuc2FjdGlvbmFs KTsKKwkJCQkJCQkgc3RybGVuKHBzdGF0ZS0+cF9zb3VyY2V0ZXh0KSk7CiAJfQogCiAJLyogRG8g dGhlIHdvcmsgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv ZGRsbWVzc2FnZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZGxtZXNzYWdl LmMKaW5kZXggZjkzNTczMDc5YS4uNWY4OWFmZWM0OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9kZGxtZXNzYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9kZGxtZXNzYWdlLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKICAqLwogWExvZ1Jl Y1B0cgogTG9nTG9naWNhbERETE1lc3NhZ2UoY29uc3QgY2hhciAqcHJlZml4LCBPaWQgcm9sZW9p ZCwgY29uc3QgY2hhciAqbWVzc2FnZSwKLQkJCQkJIHNpemVfdCBzaXplLCBib29sIHRyYW5zYWN0 aW9uYWwpCisJCQkJCSBzaXplX3Qgc2l6ZSkKIHsKIAl4bF9sb2dpY2FsX2RkbF9tZXNzYWdlIHhs cmVjOwogCWNvbnN0IGNoYXIgKnJvbGU7CkBAIC01NSwxNiArNTUsMTIgQEAgTG9nTG9naWNhbERE TE1lc3NhZ2UoY29uc3QgY2hhciAqcHJlZml4LCBPaWQgcm9sZW9pZCwgY29uc3QgY2hhciAqbWVz c2FnZSwKIAlyb2xlID0gIEdldFVzZXJOYW1lRnJvbUlkKHJvbGVvaWQsIGZhbHNlKTsKIAogCS8q Ci0JICogRm9yY2UgeGlkIHRvIGJlIGFsbG9jYXRlZCBpZiB3ZSdyZSBlbWl0dGluZyBhIHRyYW5z YWN0aW9uYWwgbWVzc2FnZS4KKwkgKiBGb3JjZSB4aWQgdG8gYmUgYWxsb2NhdGVkIHNpbmNlIHdl J3JlIGVtaXR0aW5nIGEgdHJhbnNhY3Rpb25hbCBtZXNzYWdlLgogCSAqLwotCWlmICh0cmFuc2Fj dGlvbmFsKQotCXsKLQkJQXNzZXJ0KElzVHJhbnNhY3Rpb25TdGF0ZSgpKTsKLQkJR2V0Q3VycmVu dFRyYW5zYWN0aW9uSWQoKTsKLQl9CisJQXNzZXJ0KElzVHJhbnNhY3Rpb25TdGF0ZSgpKTsKKwlH ZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCiAJeGxyZWMuZGJJZCA9IE15RGF0YWJhc2VJZDsK LQl4bHJlYy50cmFuc2FjdGlvbmFsID0gdHJhbnNhY3Rpb25hbDsKIAkvKiB0cmFpbGluZyB6ZXJv IGlzIGNyaXRpY2FsOyBzZWUgbG9naWNhbGRkbG1zZ19kZXNjICovCiAJeGxyZWMucHJlZml4X3Np emUgPSBzdHJsZW4ocHJlZml4KSArIDE7CiAJeGxyZWMucm9sZV9zaXplID0gc3RybGVuKHJvbGUp ICsgMTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2Rl LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCmluZGV4IDAzNGM3 ZjI0MTMuLmNlNWI1OTUzMjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvZGVjb2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNv ZGUuYwpAQCAtNjE1LDcgKzYxNSw2IEBAIGxvZ2ljYWxkZGxtc2dfZGVjb2RlKExvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCVRyYW5zYWN0aW9uSWQg eGlkID0gWExvZ1JlY0dldFhpZChyKTsKIAl1aW50OAkJaW5mbyA9IFhMb2dSZWNHZXRJbmZvKHIp ICYgflhMUl9JTkZPX01BU0s7CiAJUmVwT3JpZ2luSWQgb3JpZ2luX2lkID0gWExvZ1JlY0dldE9y aWdpbihyKTsKLQlTbmFwc2hvdAlzbmFwc2hvdDsKIAl4bF9sb2dpY2FsX2RkbF9tZXNzYWdlICpt ZXNzYWdlOwogCiAJaWYgKGluZm8gIT0gWExPR19MT0dJQ0FMX0RETF9NRVNTQUdFKQpAQCAtNjM3 LDE3ICs2MzYsNyBAQCBsb2dpY2FsZGRsbXNnX2RlY29kZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0 ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikKIAkJRmlsdGVyQnlPcmlnaW4oY3R4LCBvcmln aW5faWQpKQogCQlyZXR1cm47CiAKLQlpZiAobWVzc2FnZS0+dHJhbnNhY3Rpb25hbCAmJgotCQkh U25hcEJ1aWxkUHJvY2Vzc0NoYW5nZShidWlsZGVyLCB4aWQsIGJ1Zi0+b3JpZ3B0cikpCi0JCXJl dHVybjsKLQllbHNlIGlmICghbWVzc2FnZS0+dHJhbnNhY3Rpb25hbCAmJgotCQkJIChTbmFwQnVp bGRDdXJyZW50U3RhdGUoYnVpbGRlcikgIT0gU05BUEJVSUxEX0NPTlNJU1RFTlQgfHwKLQkJCSAg U25hcEJ1aWxkWGFjdE5lZWRzU2tpcChidWlsZGVyLCBidWYtPm9yaWdwdHIpKSkKLQkJcmV0dXJu OwotCi0Jc25hcHNob3QgPSBTbmFwQnVpbGRHZXRPckJ1aWxkU25hcHNob3QoYnVpbGRlciwgeGlk KTsKLQlSZW9yZGVyQnVmZmVyUXVldWVERExNZXNzYWdlKGN0eC0+cmVvcmRlciwgeGlkLCBzbmFw c2hvdCwgYnVmLT5lbmRwdHIsCi0JCQkJCQkJICBtZXNzYWdlLT50cmFuc2FjdGlvbmFsLAorCVJl b3JkZXJCdWZmZXJRdWV1ZURETE1lc3NhZ2UoY3R4LT5yZW9yZGVyLCB4aWQsIGJ1Zi0+ZW5kcHRy LAogCQkJCQkJCSAgbWVzc2FnZS0+bWVzc2FnZSwKIAkJCQkJCQkgIC8qIGZpcnN0IHBhcnQgb2Yg bWVzc2FnZSBpcyBwcmVmaXggKi8KIAkJCQkJCQkgIG1lc3NhZ2UtPm1lc3NhZ2UgKyBtZXNzYWdl LT5wcmVmaXhfc2l6ZSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvbG9naWNhbC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMK aW5kZXggMzAwNGYwMjQzMy4uYzAyZWE2ZmI5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9sb2dpY2FsLmMKQEAgLTc0LDggKzc0LDggQEAgc3RhdGljIHZvaWQgbWVzc2FnZV9j Yl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJ CQkJCQkJICAgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAogCQkJ CQkJCSAgIGNvbnN0IGNoYXIgKnByZWZpeCwgU2l6ZSBtZXNzYWdlX3NpemUsIGNvbnN0IGNoYXIg Km1lc3NhZ2UpOwogc3RhdGljIHZvaWQgZGRsbWVzc2FnZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZm ZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCi0JCQkJCQkJCSAgWExvZ1JlY1B0ciBt ZXNzYWdlX2xzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAotCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnBy ZWZpeCwgY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsCisJCQkJCQkJ CSAgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwgY29uc3QgY2hhciAqcHJlZml4LAorCQkJCQkJCQkg IGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLAogCQkJCQkJCQkgIFNp emUgbWVzc2FnZV9zaXplLCBjb25zdCBjaGFyICptZXNzYWdlKTsKIAogLyogc3RyZWFtaW5nIGNh bGxiYWNrcyAqLwpAQCAtOTUsOCArOTUsOCBAQCBzdGF0aWMgdm9pZCBzdHJlYW1fbWVzc2FnZV9j Yl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9yZGVyQnVmZmVyVFhOICp0eAogCQkJ CQkJCQkJICBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLCBib29sIHRyYW5zYWN0aW9uYWwsCiAJCQkJ CQkJCQkgIGNvbnN0IGNoYXIgKnByZWZpeCwgU2l6ZSBtZXNzYWdlX3NpemUsIGNvbnN0IGNoYXIg Km1lc3NhZ2UpOwogc3RhdGljIHZvaWQgc3RyZWFtX2RkbG1lc3NhZ2VfY2Jfd3JhcHBlcihSZW9y ZGVyQnVmZmVyICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAotCQkJCQkJCQkJCSBYTG9n UmVjUHRyIG1lc3NhZ2VfbHNuLCBib29sIHRyYW5zYWN0aW9uYWwsCi0JCQkJCQkJCQkJIGNvbnN0 IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgs CisJCQkJCQkJCQkJIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24sIGNvbnN0IGNoYXIgKnByZWZpeCwK KwkJCQkJCQkJCQkgY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsCiAJ CQkJCQkJCQkJIFNpemUgbWVzc2FnZV9zaXplLCBjb25zdCBjaGFyICptZXNzYWdlKTsKIHN0YXRp YyB2b2lkIHN0cmVhbV90cnVuY2F0ZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBS ZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJCQkJCQkJCQkgICBpbnQgbnJlbGF0aW9ucywgUmVsYXRp b24gcmVsYXRpb25zW10sIFJlb3JkZXJCdWZmZXJDaGFuZ2UgKmNoYW5nZSk7CkBAIC0xMjMzLDEw ICsxMjMzLDkgQEAgbWVzc2FnZV9jYl93cmFwcGVyKFJlb3JkZXJCdWZmZXIgKmNhY2hlLCBSZW9y ZGVyQnVmZmVyVFhOICp0eG4sCiAKIHN0YXRpYyB2b2lkCiBkZGxtZXNzYWdlX2NiX3dyYXBwZXIo UmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKLQkJCQkJICBYTG9n UmVjUHRyIG1lc3NhZ2VfbHNuLCBib29sIHRyYW5zYWN0aW9uYWwsCi0JCQkJCSAgY29uc3QgY2hh ciAqcHJlZml4LCBjb25zdCBjaGFyICpyb2xlLAotCQkJCQkgIGNvbnN0IGNoYXIgKnNlYXJjaF9w YXRoLCBTaXplIG1lc3NhZ2Vfc2l6ZSwKLQkJCQkJICBjb25zdCBjaGFyICptZXNzYWdlKQorCQkJ CQkgIFhMb2dSZWNQdHIgbWVzc2FnZV9sc24sIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJCQkJICBj b25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKKwkJCQkJICBTaXplIG1l c3NhZ2Vfc2l6ZSwgY29uc3QgY2hhciAqbWVzc2FnZSkKIHsKIAlMb2dpY2FsRGVjb2RpbmdDb250 ZXh0ICpjdHggPSBjYWNoZS0+cHJpdmF0ZV9kYXRhOwogCUxvZ2ljYWxFcnJvckNhbGxiYWNrU3Rh dGUgc3RhdGU7CkBAIC0xMjYyLDcgKzEyNjEsNyBAQCBkZGxtZXNzYWdlX2NiX3dyYXBwZXIoUmVv cmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAljdHgtPndyaXRlX2xv Y2F0aW9uID0gbWVzc2FnZV9sc247CiAKIAkvKiBkbyB0aGUgYWN0dWFsIHdvcms6IGNhbGwgY2Fs bGJhY2sgKi8KLQljdHgtPmNhbGxiYWNrcy5kZGxtZXNzYWdlX2NiKGN0eCwgdHhuLCBtZXNzYWdl X2xzbiwgdHJhbnNhY3Rpb25hbCwgcHJlZml4LAorCWN0eC0+Y2FsbGJhY2tzLmRkbG1lc3NhZ2Vf Y2IoY3R4LCB0eG4sIG1lc3NhZ2VfbHNuLCBwcmVmaXgsCiAJCQkJCQkJCSByb2xlLCBzZWFyY2hf cGF0aCwgbWVzc2FnZV9zaXplLCBtZXNzYWdlKTsKIAogCS8qIFBvcCB0aGUgZXJyb3IgY29udGV4 dCBzdGFjayAqLwpAQCAtMTU4NiwxMCArMTU4NSw5IEBAIHN0cmVhbV9tZXNzYWdlX2NiX3dyYXBw ZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAogc3RhdGlj IHZvaWQKIHN0cmVhbV9kZGxtZXNzYWdlX2NiX3dyYXBwZXIoUmVvcmRlckJ1ZmZlciAqY2FjaGUs IFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKLQkJCQkJCQkgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwg Ym9vbCB0cmFuc2FjdGlvbmFsLAotCQkJCQkJCSBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNo YXIgKnJvbGUsCi0JCQkJCQkJIGNvbnN0IGNoYXIqIHNlYXJjaF9wYXRoLCBTaXplIG1lc3NhZ2Vf c2l6ZSwKLQkJCQkJCQkgY29uc3QgY2hhciAqbWVzc2FnZSkKKwkJCQkJCQkgWExvZ1JlY1B0ciBt ZXNzYWdlX2xzbiwgY29uc3QgY2hhciAqcHJlZml4LAorCQkJCQkJCSBjb25zdCBjaGFyICpyb2xl LCBjb25zdCBjaGFyKiBzZWFyY2hfcGF0aCwKKwkJCQkJCQkgU2l6ZSBtZXNzYWdlX3NpemUsIGNv bnN0IGNoYXIgKm1lc3NhZ2UpCiB7CiAJTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4ID0gY2Fj aGUtPnByaXZhdGVfZGF0YTsKIAlMb2dpY2FsRXJyb3JDYWxsYmFja1N0YXRlIHN0YXRlOwpAQCAt MTYxOSw3ICsxNjE3LDcgQEAgc3RyZWFtX2RkbG1lc3NhZ2VfY2Jfd3JhcHBlcihSZW9yZGVyQnVm ZmVyICpjYWNoZSwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCWN0eC0+d3JpdGVfbG9jYXRpb24g PSBtZXNzYWdlX2xzbjsKIAogCS8qIGRvIHRoZSBhY3R1YWwgd29yazogY2FsbCBjYWxsYmFjayAq LwotCWN0eC0+Y2FsbGJhY2tzLnN0cmVhbV9kZGxtZXNzYWdlX2NiKGN0eCwgdHhuLCBtZXNzYWdl X2xzbiwgdHJhbnNhY3Rpb25hbCwgcHJlZml4LAorCWN0eC0+Y2FsbGJhY2tzLnN0cmVhbV9kZGxt ZXNzYWdlX2NiKGN0eCwgdHhuLCBtZXNzYWdlX2xzbiwgcHJlZml4LAogCQkJCQkJCQkJCXJvbGUs IHNlYXJjaF9wYXRoLCBtZXNzYWdlX3NpemUsIG1lc3NhZ2UpOwogCiAJLyogUG9wIHRoZSBlcnJv ciBjb250ZXh0IHN0YWNrICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3Byb3RvLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Byb3RvLmMK aW5kZXggM2NmYTk0ZGQ4Yy4uMjA3MjIwNzY0NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9wcm90by5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvcHJvdG8uYwpAQCAtNjcwLDE2ICs2NzAsMTIgQEAgbG9naWNhbHJlcF9yZWFkX2RkbG1l c3NhZ2UoU3RyaW5nSW5mbyBpbiwgWExvZ1JlY1B0ciAqbHNuLAogCQkJCQkJICAgY29uc3QgY2hh ciAqKnByZWZpeCwKIAkJCQkJCSAgIGNvbnN0IGNoYXIgKipyb2xlLAogCQkJCQkJICAgY29uc3Qg Y2hhciAqKnNlYXJjaF9wYXRoLAotCQkJCQkJICAgYm9vbCAqdHJhbnNhY3Rpb25hbCwKIAkJCQkJ CSAgIFNpemUgKnN6KQogewotCXVpbnQ4IGZsYWdzOwogCWNvbnN0IGNoYXIgKm1zZzsKIAogCS8v VE9ETyBkb3VibGUgY2hlY2sgd2hlbiBkbyB3ZSBuZWVkIHRvIGdldCBUcmFuc2FjdGlvbklkLgog Ci0JZmxhZ3MgPSBwcV9nZXRtc2dpbnQoaW4sIDEpOwotCSp0cmFuc2FjdGlvbmFsID0gKGZsYWdz ICYgTUVTU0FHRV9UUkFOU0FDVElPTkFMKSA+IDA7CiAJKmxzbiA9IHBxX2dldG1zZ2ludDY0KGlu KTsKIAkqcHJlZml4ID0gcHFfZ2V0bXNnc3RyaW5nKGluKTsKIAkqcm9sZSA9IHBxX2dldG1zZ3N0 cmluZyhpbik7CkBAIC02OTUsMjIgKzY5MSwxNiBAQCBsb2dpY2FscmVwX3JlYWRfZGRsbWVzc2Fn ZShTdHJpbmdJbmZvIGluLCBYTG9nUmVjUHRyICpsc24sCiAgKi8KIHZvaWQKIGxvZ2ljYWxyZXBf d3JpdGVfZGRsbWVzc2FnZShTdHJpbmdJbmZvIG91dCwgVHJhbnNhY3Rpb25JZCB4aWQsIFhMb2dS ZWNQdHIgbHNuLAotCQkJCQkJIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hhciAqcHJlZml4 LCBjb25zdCBjaGFyICpyb2xlLAorCQkJCQkJIGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hh ciAqcm9sZSwKIAkJCQkJCSBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwgU2l6ZSBzeiwgY29uc3Qg Y2hhciAqbWVzc2FnZSkKIHsKLQl1aW50OAkJZmxhZ3MgPSAwOwogCiAJcHFfc2VuZGJ5dGUob3V0 LCBMT0dJQ0FMX1JFUF9NU0dfRERMTUVTU0FHRSk7CiAKLQkvKiBlbmNvZGUgYW5kIHNlbmQgbWVz c2FnZSBmbGFncyAqLwotCWlmICh0cmFuc2FjdGlvbmFsKQotCQlmbGFncyB8PSBNRVNTQUdFX1RS QU5TQUNUSU9OQUw7Ci0KIAkvKiB0cmFuc2FjdGlvbiBJRCAoaWYgbm90IHZhbGlkLCB3ZSdyZSBu b3Qgc3RyZWFtaW5nKSAqLwogCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpKQogCQlwcV9z ZW5kaW50MzIob3V0LCB4aWQpOwogCi0JcHFfc2VuZGludDgob3V0LCBmbGFncyk7CiAJcHFfc2Vu ZGludDY0KG91dCwgbHNuKTsKIAlwcV9zZW5kc3RyaW5nKG91dCwgcHJlZml4KTsKIAlwcV9zZW5k c3RyaW5nKG91dCwgcm9sZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3Jlb3JkZXJidWZmZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv cmVvcmRlcmJ1ZmZlci5jCmluZGV4IGNhMDEzMzY2MDQuLmY1YTMyNDczNDggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jCkBAIC04ODEsNjEg Kzg4MSwzMyBAQCBSZW9yZGVyQnVmZmVyUXVldWVNZXNzYWdlKFJlb3JkZXJCdWZmZXIgKnJiLCBU cmFuc2FjdGlvbklkIHhpZCwKIH0KIAogLyoKLSAqIEEgdHJhbnNhY3Rpb25hbCBEREwgbWVzc2Fn ZSBpcyBxdWV1ZWQgdG8gYmUgcHJvY2Vzc2VkIHVwb24gY29tbWl0IGFuZCBhCi0gKiBub24tdHJh bnNhY3Rpb25hbCBEREwgbWVzc2FnZSBnZXRzIHByb2Nlc3NlZCBpbW1lZGlhdGVseS4KKyAqIEEg dHJhbnNhY3Rpb25hbCBEREwgbWVzc2FnZSBpcyBxdWV1ZWQgdG8gYmUgcHJvY2Vzc2VkIHVwb24g Y29tbWl0CiAgKi8KIHZvaWQKIFJlb3JkZXJCdWZmZXJRdWV1ZURETE1lc3NhZ2UoUmVvcmRlckJ1 ZmZlciAqcmIsIFRyYW5zYWN0aW9uSWQgeGlkLAotCQkJCQkJICBTbmFwc2hvdCBzbmFwc2hvdCwg WExvZ1JlY1B0ciBsc24sCi0JCQkJCQkgIGJvb2wgdHJhbnNhY3Rpb25hbCwgY29uc3QgY2hhciAq cHJlZml4LAorCQkJCQkJICBYTG9nUmVjUHRyIGxzbiwgY29uc3QgY2hhciAqcHJlZml4LAogCQkJ CQkJICBjb25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKIAkJCQkJCSAg U2l6ZSBtZXNzYWdlX3NpemUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCiB7Ci0JaWYgKHRyYW5zYWN0 aW9uYWwpCi0JewotCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7Ci0JCVJlb3JkZXJCdWZmZXJD aGFuZ2UgKmNoYW5nZTsKLQotCQlBc3NlcnQoeGlkICE9IEludmFsaWRUcmFuc2FjdGlvbklkKTsK LQotCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHJiLT5jb250ZXh0KTsKLQot CQljaGFuZ2UgPSBSZW9yZGVyQnVmZmVyR2V0Q2hhbmdlKHJiKTsKLQkJY2hhbmdlLT5hY3Rpb24g PSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfRERMTUVTU0FHRTsKLQkJY2hhbmdlLT5kYXRhLmRkbG1z Zy5wcmVmaXggPSBwc3RyZHVwKHByZWZpeCk7Ci0JCWNoYW5nZS0+ZGF0YS5kZGxtc2cucm9sZSA9 IHBzdHJkdXAocm9sZSk7Ci0JCWNoYW5nZS0+ZGF0YS5kZGxtc2cuc2VhcmNoX3BhdGggPSBwc3Ry ZHVwKHNlYXJjaF9wYXRoKTsKLQkJY2hhbmdlLT5kYXRhLmRkbG1zZy5tZXNzYWdlX3NpemUgPSBt ZXNzYWdlX3NpemU7Ci0JCWNoYW5nZS0+ZGF0YS5kZGxtc2cubWVzc2FnZSA9IHBhbGxvYyhtZXNz YWdlX3NpemUpOwotCQltZW1jcHkoY2hhbmdlLT5kYXRhLmRkbG1zZy5tZXNzYWdlLCBtZXNzYWdl LCBtZXNzYWdlX3NpemUpOworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKwlSZW9yZGVyQnVm ZmVyQ2hhbmdlICpjaGFuZ2U7CiAKLQkJUmVvcmRlckJ1ZmZlclF1ZXVlQ2hhbmdlKHJiLCB4aWQs IGxzbiwgY2hhbmdlLCBmYWxzZSk7CisJQXNzZXJ0KHhpZCAhPSBJbnZhbGlkVHJhbnNhY3Rpb25J ZCk7CiAKLQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwotCX0KLQllbHNlCi0J ewotCQlSZW9yZGVyQnVmZmVyVFhOICp0eG4gPSBOVUxMOwotCQl2b2xhdGlsZSBTbmFwc2hvdCBz bmFwc2hvdF9ub3cgPSBzbmFwc2hvdDsKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKHJiLT5jb250ZXh0KTsKIAotCQlpZiAoeGlkICE9IEludmFsaWRUcmFuc2FjdGlvbklkKQot CQkJdHhuID0gUmVvcmRlckJ1ZmZlclRYTkJ5WGlkKHJiLCB4aWQsIHRydWUsIE5VTEwsIGxzbiwg dHJ1ZSk7CisJY2hhbmdlID0gUmVvcmRlckJ1ZmZlckdldENoYW5nZShyYik7CisJY2hhbmdlLT5h Y3Rpb24gPSBSRU9SREVSX0JVRkZFUl9DSEFOR0VfRERMTUVTU0FHRTsKKwljaGFuZ2UtPmRhdGEu ZGRsbXNnLnByZWZpeCA9IHBzdHJkdXAocHJlZml4KTsKKwljaGFuZ2UtPmRhdGEuZGRsbXNnLnJv bGUgPSBwc3RyZHVwKHJvbGUpOworCWNoYW5nZS0+ZGF0YS5kZGxtc2cuc2VhcmNoX3BhdGggPSBw c3RyZHVwKHNlYXJjaF9wYXRoKTsKKwljaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2Vfc2l6ZSA9 IG1lc3NhZ2Vfc2l6ZTsKKwljaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2UgPSBwYWxsb2MobWVz c2FnZV9zaXplKTsKKwltZW1jcHkoY2hhbmdlLT5kYXRhLmRkbG1zZy5tZXNzYWdlLCBtZXNzYWdl LCBtZXNzYWdlX3NpemUpOwogCi0JCS8qIHNldHVwIHNuYXBzaG90IHRvIGFsbG93IGNhdGFsb2cg YWNjZXNzICovCi0JCVNldHVwSGlzdG9yaWNTbmFwc2hvdChzbmFwc2hvdF9ub3csIE5VTEwpOwot CQlQR19UUlkoKTsKLQkJewotCQkJcmItPmRkbG1lc3NhZ2UocmIsIHR4biwgbHNuLCBmYWxzZSwg cHJlZml4LCByb2xlLCBzZWFyY2hfcGF0aCwgbWVzc2FnZV9zaXplLCBtZXNzYWdlKTsKKwlSZW9y ZGVyQnVmZmVyUXVldWVDaGFuZ2UocmIsIHhpZCwgbHNuLCBjaGFuZ2UsIGZhbHNlKTsKIAotCQkJ VGVhcmRvd25IaXN0b3JpY1NuYXBzaG90KGZhbHNlKTsKLQkJfQotCQlQR19DQVRDSCgpOwotCQl7 Ci0JCQlUZWFyZG93bkhpc3RvcmljU25hcHNob3QodHJ1ZSk7Ci0JCQlQR19SRV9USFJPVygpOwot CQl9Ci0JCVBHX0VORF9UUlkoKTsKLQl9CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRl eHQpOwogfQogCiAvKgpAQCAtMjAzNywxNCArMjAwOSwxNCBAQCBSZW9yZGVyQnVmZmVyQXBwbHlE RExNZXNzYWdlKFJlb3JkZXJCdWZmZXIgKnJiLCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJCQkJ CQkJIFJlb3JkZXJCdWZmZXJDaGFuZ2UgKmNoYW5nZSwgYm9vbCBzdHJlYW1pbmcpCiB7CiAJaWYg KHN0cmVhbWluZykKLQkJcmItPnN0cmVhbV9kZGxtZXNzYWdlKHJiLCB0eG4sIGNoYW5nZS0+bHNu LCB0cnVlLAorCQlyYi0+c3RyZWFtX2RkbG1lc3NhZ2UocmIsIHR4biwgY2hhbmdlLT5sc24sCiAJ CQkJCQkJICBjaGFuZ2UtPmRhdGEuZGRsbXNnLnByZWZpeCwKIAkJCQkJCQkgIGNoYW5nZS0+ZGF0 YS5kZGxtc2cucm9sZSwKIAkJCQkJCQkgIGNoYW5nZS0+ZGF0YS5kZGxtc2cuc2VhcmNoX3BhdGgs CiAJCQkJCQkJICBjaGFuZ2UtPmRhdGEuZGRsbXNnLm1lc3NhZ2Vfc2l6ZSwKIAkJCQkJCQkgIGNo YW5nZS0+ZGF0YS5kZGxtc2cubWVzc2FnZSk7CiAJZWxzZQotCQlyYi0+ZGRsbWVzc2FnZShyYiwg dHhuLCBjaGFuZ2UtPmxzbiwgdHJ1ZSwKKwkJcmItPmRkbG1lc3NhZ2UocmIsIHR4biwgY2hhbmdl LT5sc24sCiAJCQkJCSAgIGNoYW5nZS0+ZGF0YS5kZGxtc2cucHJlZml4LAogCQkJCQkgICBjaGFu Z2UtPmRhdGEuZGRsbXNnLnJvbGUsCiAJCQkJCSAgIGNoYW5nZS0+ZGF0YS5kZGxtc2cuc2VhcmNo X3BhdGgsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtl ci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCA2MTAx NDdjYTc3Li5jNjFiMzU2NGE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29y a2VyLmMKQEAgLTI0NjEsMTQgKzI0NjEsMTMgQEAgc3RhdGljIHZvaWQKIGFwcGx5X2hhbmRsZV9k ZGxtZXNzYWdlKFN0cmluZ0luZm8gcykKIHsKIAlYTG9nUmVjUHRyIGxzbjsKLQlib29sIHRyYW5z YWN0aW9uYWw7CiAJU2l6ZSBzejsKIAljb25zdCBjaGFyICpwcmVmaXg7CiAJY29uc3QgY2hhciAq cm9sZTsKIAljb25zdCBjaGFyICpzZWFyY2hfcGF0aDsKIAljb25zdCBjaGFyICptc2c7CiAKLQlt c2cgPSBsb2dpY2FscmVwX3JlYWRfZGRsbWVzc2FnZShzLCAmbHNuLCAmcHJlZml4LCAmcm9sZSwg JnNlYXJjaF9wYXRoLCAmdHJhbnNhY3Rpb25hbCwgJnN6KTsKKwltc2cgPSBsb2dpY2FscmVwX3Jl YWRfZGRsbWVzc2FnZShzLCAmbHNuLCAmcHJlZml4LCAmcm9sZSwgJnNlYXJjaF9wYXRoLCAmc3op OwogCiAJYXBwbHlfZXhlY3V0ZV9zcWxfY29tbWFuZChtc2csIHJvbGUsIHNlYXJjaF9wYXRoLCB0 cnVlKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bn b3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmlu ZGV4IGRiMjIxYzdlOGQuLmE2NjM2N2ZlN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v cGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgdm9pZCBwZ291dHB1 dF9tZXNzYWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJCQkgU2l6ZSBzeiwg Y29uc3QgY2hhciAqbWVzc2FnZSk7CiBzdGF0aWMgdm9pZCBwZ291dHB1dF9kZGxtZXNzYWdlKExv Z2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJCQkJUmVvcmRlckJ1ZmZlclRYTiAqdHhu LCBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLAotCQkJCQkJCQlib29sIHRyYW5zYWN0aW9uYWwsIGNv bnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqcm9sZSwKKwkJCQkJCQkJY29uc3QgY2hhciAq cHJlZml4LCBjb25zdCBjaGFyICpyb2xlLAogCQkJCQkJCQljb25zdCBjaGFyICpzZWFyY2hfcGF0 aCwgU2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CiBzdGF0aWMgYm9vbCBwZ291dHB1dF9v cmlnaW5fZmlsdGVyKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJCQkJICAgUmVw T3JpZ2luSWQgb3JpZ2luX2lkKTsKQEAgLTE3MDUsMTMgKzE3MDUsMTQgQEAgcGdvdXRwdXRfbWVz c2FnZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwK IAogc3RhdGljIHZvaWQKIHBnb3V0cHV0X2RkbG1lc3NhZ2UoTG9naWNhbERlY29kaW5nQ29udGV4 dCAqY3R4LCBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCi0JCQkJIFhMb2dSZWNQdHIgbWVzc2FnZV9s c24sIGJvb2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwKIAkJ CQkgY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFyICogcm9sZSwKIAkJCQkgY29uc3QgY2hh ciAqc2VhcmNoX3BhdGgsIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCiB7CiAJUEdPdXRw dXREYXRhICpkYXRhID0gKFBHT3V0cHV0RGF0YSAqKSBjdHgtPm91dHB1dF9wbHVnaW5fcHJpdmF0 ZTsKIAlUcmFuc2FjdGlvbklkIHhpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCUxpc3RDZWxs ICpsYzsKKwlQR091dHB1dFR4bkRhdGEgKnR4bmRhdGE7CiAKIAkvKiBSZWxvYWQgcHVibGljYXRp b25zIGlmIG5lZWRlZCBiZWZvcmUgdXNlLiAqLwogCWlmICghcHVibGljYXRpb25zX3ZhbGlkKQpA QCAtMTc0NSwyMCArMTc0NiwxNiBAQCBwZ291dHB1dF9kZGxtZXNzYWdlKExvZ2ljYWxEZWNvZGlu Z0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCSAqIE91dHB1dCBCRUdJTiBp ZiB3ZSBoYXZlbid0IHlldC4gQXZvaWQgZm9yIG5vbi10cmFuc2FjdGlvbmFsCiAJICogbWVzc2Fn ZXMuCiAJICovCi0JaWYgKHRyYW5zYWN0aW9uYWwpCi0JewotCQlQR091dHB1dFR4bkRhdGEgKnR4 bmRhdGEgPSAoUEdPdXRwdXRUeG5EYXRhICopIHR4bi0+b3V0cHV0X3BsdWdpbl9wcml2YXRlOwor CXR4bmRhdGEgPSAoUEdPdXRwdXRUeG5EYXRhICopIHR4bi0+b3V0cHV0X3BsdWdpbl9wcml2YXRl OwogCi0JCS8qIFNlbmQgQkVHSU4gaWYgd2UgaGF2ZW4ndCB5ZXQgKi8KLQkJaWYgKHR4bmRhdGEg JiYgIXR4bmRhdGEtPnNlbnRfYmVnaW5fdHhuKQotCQkJcGdvdXRwdXRfc2VuZF9iZWdpbihjdHgs IHR4bik7Ci0JfQorCS8qIFNlbmQgQkVHSU4gaWYgd2UgaGF2ZW4ndCB5ZXQgKi8KKwlpZiAodHhu ZGF0YSAmJiAhdHhuZGF0YS0+c2VudF9iZWdpbl90eG4pCisJCXBnb3V0cHV0X3NlbmRfYmVnaW4o Y3R4LCB0eG4pOwogCiAJT3V0cHV0UGx1Z2luUHJlcGFyZVdyaXRlKGN0eCwgdHJ1ZSk7CiAJbG9n aWNhbHJlcF93cml0ZV9kZGxtZXNzYWdlKGN0eC0+b3V0LAogCQkJCQkJCSB4aWQsCiAJCQkJCQkJ IG1lc3NhZ2VfbHNuLAotCQkJCQkJCSB0cmFuc2FjdGlvbmFsLAogCQkJCQkJCSBwcmVmaXgsCiAJ CQkJCQkJIHJvbGUsCiAJCQkJCQkJIHNlYXJjaF9wYXRoLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAxYWJk NzdhNjBlLi4wODI3OGM5NDVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMTEzMSwxMyArMTEzMSwxMSBA QCBMb2dMb2dpY2FsRERMQ29tbWFuZChOb2RlICpwYXJzZXRyZWUsIGNvbnN0IGNoYXIgKnF1ZXJ5 U3RyaW5nKQogCQkJICovCiAJCQlpZiAoZGRsX25lZWRfeGxvZyhJbnZhbGlkT2lkLCB0cnVlKSkK IAkJCXsKLQkJCQlib29sIHRyYW5zYWN0aW9uYWwgPSB0cnVlOwogCQkJCWNvbnN0IGNoYXIqIHBy ZWZpeCA9ICIiOwogCQkJCUxvZ0xvZ2ljYWxERExNZXNzYWdlKHByZWZpeCwKIAkJCQkJCQkJCSBH ZXRVc2VySWQoKSwKIAkJCQkJCQkJCSBxdWVyeVN0cmluZywKLQkJCQkJCQkJCSBzdHJsZW4ocXVl cnlTdHJpbmcpLAotCQkJCQkJCQkJIHRyYW5zYWN0aW9uYWwpOworCQkJCQkJCQkJIHN0cmxlbihx dWVyeVN0cmluZykpOwogCQkJfQogCQkJYnJlYWs7CiAKQEAgLTExNzMsMTMgKzExNzEsMTEgQEAg TG9nTG9naWNhbERETENvbW1hbmQoTm9kZSAqcGFyc2V0cmVlLCBjb25zdCBjaGFyICpxdWVyeVN0 cmluZykKIAkJCQkJICovCiAJCQkJCWlmIChkZGxfbmVlZF94bG9nKEludmFsaWRPaWQsIHRydWUp KQogCQkJCQl7Ci0JCQkJCQlib29sIHRyYW5zYWN0aW9uYWwgPSB0cnVlOwogCQkJCQkJY29uc3Qg Y2hhciogcHJlZml4ID0gIiI7CiAJCQkJCQlMb2dMb2dpY2FsRERMTWVzc2FnZShwcmVmaXgsCiAJ CQkJCQkJCQkJCSBHZXRVc2VySWQoKSwKIAkJCQkJCQkJCQkJIHF1ZXJ5U3RyaW5nLAotCQkJCQkJ CQkJCQkgc3RybGVuKHF1ZXJ5U3RyaW5nKSwKLQkJCQkJCQkJCQkJIHRyYW5zYWN0aW9uYWwpOwor CQkJCQkJCQkJCQkgc3RybGVuKHF1ZXJ5U3RyaW5nKSk7CiAJCQkJCX0KIAkJCQlkZWZhdWx0Ogog CQkJCQlicmVhazsKQEAgLTExOTksMTMgKzExOTUsMTEgQEAgTG9nTG9naWNhbERETENvbW1hbmQo Tm9kZSAqcGFyc2V0cmVlLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykKIAkJewogCQkJUmVuYW1l U3RtdCAqc3RtdCA9IChSZW5hbWVTdG10ICopIHBhcnNldHJlZTsKIAkJCWlmKCFzdG10LT5yZWxh dGlvbiAmJiBkZGxfbmVlZF94bG9nKEludmFsaWRPaWQsIHRydWUpKXsKLQkJCQlib29sIHRyYW5z YWN0aW9uYWwgPSB0cnVlOwogCQkJCWNvbnN0IGNoYXIqIHByZWZpeCA9ICIiOwogCQkJCUxvZ0xv Z2ljYWxERExNZXNzYWdlKHByZWZpeCwKIAkJCQkJCQkJCUdldFVzZXJJZCgpLAogCQkJCQkJCQkJ cXVlcnlTdHJpbmcsCi0JCQkJCQkJCQlzdHJsZW4ocXVlcnlTdHJpbmcpLAotCQkJCQkJCQkJdHJh bnNhY3Rpb25hbCk7CisJCQkJCQkJCQlzdHJsZW4ocXVlcnlTdHJpbmcpKTsKIAkJCX0KIAkJfQog CQljYXNlIFRfQWx0ZXJPd25lclN0bXQ6IC8qIFRPRE8sIGl0IGlzIGRhdGEgY29udHJvbCBjYXNl LCBzYXZlIGZvciBsYXRlciB1cGRhdGUgKi8KQEAgLTEyMzYsMTMgKzEyMzAsMTEgQEAgTG9nTG9n aWNhbERETENvbW1hbmQoTm9kZSAqcGFyc2V0cmVlLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykK IAkJCQkJICovCiAJCQkJCWlmIChkZGxfbmVlZF94bG9nKEludmFsaWRPaWQsIHRydWUpKQogCQkJ CQl7Ci0JCQkJCQlib29sIHRyYW5zYWN0aW9uYWwgPSB0cnVlOwogCQkJCQkJY29uc3QgY2hhciog cHJlZml4ID0gIiI7CiAJCQkJCQlMb2dMb2dpY2FsRERMTWVzc2FnZShwcmVmaXgsCiAJCQkJCQkJ CQkJCSBHZXRVc2VySWQoKSwKIAkJCQkJCQkJCQkJIHF1ZXJ5U3RyaW5nLAotCQkJCQkJCQkJCQkg c3RybGVuKHF1ZXJ5U3RyaW5nKSwKLQkJCQkJCQkJCQkJIHRyYW5zYWN0aW9uYWwpOworCQkJCQkJ CQkJCQkgc3RybGVuKHF1ZXJ5U3RyaW5nKSk7CiAJCQkJCX0KIAkJCQkJYnJlYWs7CiAJCQl9CkBA IC0xNTQ2LDEzICsxNTM4LDExIEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJCQkJaXNDb21wbGV0ZVF1ZXJ5ICYmCiAJCQkJCQkJZGRsX25lZWRfeGxvZyhyZWxp ZCwgZmFsc2UpKQogCQkJCQkJewotCQkJCQkJCWJvb2wgdHJhbnNhY3Rpb25hbCA9IHRydWU7CiAJ CQkJCQkJY29uc3QgY2hhciogcHJlZml4ID0gIiI7CiAJCQkJCQkJTG9nTG9naWNhbERETE1lc3Nh Z2UocHJlZml4LAogCQkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLAogCQkJCQkJCQkJCQkJIHF1ZXJ5 U3RyaW5nLAotCQkJCQkJCQkJCQkJIHN0cmxlbihxdWVyeVN0cmluZyksCi0JCQkJCQkJCQkJCQkg dHJhbnNhY3Rpb25hbCk7CisJCQkJCQkJCQkJCQkgc3RybGVuKHF1ZXJ5U3RyaW5nKSk7CiAJCQkJ CQl9CiAKIAkJCQkJCS8qIC4uLiBhbmQgZG8gaXQgKi8KQEAgLTE3ODMsMTMgKzE3NzMsMTEgQEAg UHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCWlzQ29tcGxldGVR dWVyeSAmJgogCQkJCQkJZGRsX25lZWRfeGxvZyhyZWxpZCwgZmFsc2UpKQogCQkJCQl7Ci0JCQkJ CQlib29sIHRyYW5zYWN0aW9uYWwgPSB0cnVlOwogCQkJCQkJY29uc3QgY2hhciogcHJlZml4ID0g IiI7CiAJCQkJCQlMb2dMb2dpY2FsRERMTWVzc2FnZShwcmVmaXgsCiAJCQkJCQkJCQkJCSBHZXRV c2VySWQoKSwKIAkJCQkJCQkJCQkJIHF1ZXJ5U3RyaW5nLAotCQkJCQkJCQkJCQkgc3RybGVuKHF1 ZXJ5U3RyaW5nKSwKLQkJCQkJCQkJCQkJIHRyYW5zYWN0aW9uYWwpOworCQkJCQkJCQkJCQkgc3Ry bGVuKHF1ZXJ5U3RyaW5nKSk7CiAJCQkJCX0KIAogCQkJCQlhZGRyZXNzID0KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2RkbG1lc3NhZ2UuaCBiL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL2RkbG1lc3NhZ2UuaAppbmRleCAxZThlZjIyMjk2Li4wNDE4ZDE2ZGNhIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9kZGxtZXNzYWdlLmgKKysrIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vZGRsbWVzc2FnZS5oCkBAIC0yMCw3ICsyMCw2IEBACiB0eXBlZGVmIHN0 cnVjdCB4bF9sb2dpY2FsX2RkbF9tZXNzYWdlCiB7CiAJT2lkCQkJZGJJZDsJCQkvKiBkYXRhYmFz ZSBPaWQgZW1pdHRlZCBmcm9tICovCi0JYm9vbAkJdHJhbnNhY3Rpb25hbDsJLyogaXMgbWVzc2Fn ZSB0cmFuc2FjdGlvbmFsPyAqLwogCVNpemUJCXByZWZpeF9zaXplOwkvKiBsZW5ndGggb2YgcHJl Zml4ICovCiAJU2l6ZQkJcm9sZV9zaXplOyAgICAgIC8qIGxlbmd0aCBvZiB0aGUgcm9sZSB0aGF0 IGV4ZWN1dGVzIHRoZSBEREwgY29tbWFuZCAqLwogCVNpemUJCXNlYXJjaF9wYXRoX3NpemU7IC8q IGxlbmd0aCBvZiB0aGUgc2VhcmNoIHBhdGggKi8KQEAgLTM2LDcgKzM1LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgeGxfbG9naWNhbF9kZGxfbWVzc2FnZQogI2RlZmluZSBTaXplT2ZMb2dpY2FsRERMTWVz c2FnZQkob2Zmc2V0b2YoeGxfbG9naWNhbF9kZGxfbWVzc2FnZSwgbWVzc2FnZSkpCiAKIGV4dGVy biBYTG9nUmVjUHRyIExvZ0xvZ2ljYWxERExNZXNzYWdlKGNvbnN0IGNoYXIgKnByZWZpeCwgT2lk IHJvbGVvaWQsIGNvbnN0IGNoYXIgKmRkbF9tZXNzYWdlLAotCQkJCQkJCQkJICAgc2l6ZV90IHNp emUsIGJvb2wgdHJhbnNhY3Rpb25hbCk7CisJCQkJCQkJCQkgICBzaXplX3Qgc2l6ZSk7CiAKIC8q IFJNR1IgQVBJKi8KICNkZWZpbmUgWExPR19MT0dJQ0FMX0RETF9NRVNTQUdFCTB4MDAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWxwcm90by5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vbG9naWNhbHByb3RvLmgKaW5kZXggMjhmZjU2MmQ2Mi4uY2MwYmE2MDkw NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHByb3RvLmgKKysr IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHByb3RvLmgKQEAgLTIzMywxMSArMjMz LDExIEBAIGV4dGVybiB2b2lkIGxvZ2ljYWxyZXBfd3JpdGVfbWVzc2FnZShTdHJpbmdJbmZvIG91 dCwgVHJhbnNhY3Rpb25JZCB4aWQsIFhMb2dSZWNQCiAJCQkJCQkJCQkgYm9vbCB0cmFuc2FjdGlv bmFsLCBjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCQkJCQkgU2l6ZSBzeiwgY29uc3QgY2hhciAq bWVzc2FnZSk7CiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dyaXRlX2RkbG1lc3NhZ2UoU3RyaW5n SW5mbyBvdXQsIFRyYW5zYWN0aW9uSWQgeGlkLCBYTG9nUmVjUHRyIGxzbiwKLQkJCQkJCQkJCQli b29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqcm9sZSwK KwkJCQkJCQkJCQljb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnJvbGUsCiAJCQkJCQkJ CQkJY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsIFNpemUgc3osIGNvbnN0IGNoYXIgKm1lc3NhZ2Up OwogZXh0ZXJuIGNvbnN0IGNoYXIgKmxvZ2ljYWxyZXBfcmVhZF9kZGxtZXNzYWdlKFN0cmluZ0lu Zm8gaW4sIFhMb2dSZWNQdHIgKmxzbiwgY29uc3QgY2hhciAqKnByZWZpeCwKIAkJCQkJCQkJCQkJ ICBjb25zdCBjaGFyICoqcm9sZSwgY29uc3QgY2hhciAqKnNlYXJjaF9wYXRoLAotCQkJCQkJCQkJ CQkgIGJvb2wgKnRyYW5zYWN0aW9uYWwsIFNpemUgKnN6KTsKKwkJCQkJCQkJCQkJICBTaXplICpz eik7CiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dyaXRlX3JlbChTdHJpbmdJbmZvIG91dCwgVHJh bnNhY3Rpb25JZCB4aWQsCiAJCQkJCQkJCSBSZWxhdGlvbiByZWwsIEJpdG1hcHNldCAqY29sdW1u cyk7CiBleHRlcm4gTG9naWNhbFJlcFJlbGF0aW9uICpsb2dpY2FscmVwX3JlYWRfcmVsKFN0cmlu Z0luZm8gaW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vb3V0cHV0X3Bs dWdpbi5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vb3V0cHV0X3BsdWdpbi5oCmluZGV4IDVi MWMyNDViNzIuLjQ0NGI3NWJlZjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L291dHB1dF9wbHVnaW4uaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9vdXRwdXRfcGx1 Z2luLmgKQEAgLTk0LDcgKzk0LDYgQEAgdHlwZWRlZiB2b2lkICgqTG9naWNhbERlY29kZU1lc3Nh Z2VDQikgKHN0cnVjdCBMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCiB0eXBlZGVmIHZvaWQg KCpMb2dpY2FsRGVjb2RlRERMTWVzc2FnZUNCKSAoc3RydWN0IExvZ2ljYWxEZWNvZGluZ0NvbnRl eHQgKmN0eCwKIAkJCQkJCQkJCQkgICBSZW9yZGVyQnVmZmVyVFhOICp0eG4sCiAJCQkJCQkJCQkJ ICAgWExvZ1JlY1B0ciBtZXNzYWdlX2xzbiwKLQkJCQkJCQkJCQkgICBib29sIHRyYW5zYWN0aW9u YWwsCiAJCQkJCQkJCQkJICAgY29uc3QgY2hhciAqcHJlZml4LAogCQkJCQkJCQkJCSAgIGNvbnN0 IGNoYXIgKnJvbGUsCiAJCQkJCQkJCQkJICAgY29uc3QgY2hhciAqc2VhcmNoX3BhdGgsCkBAIC0y MTksNyArMjE4LDYgQEAgdHlwZWRlZiB2b2lkICgqTG9naWNhbERlY29kZVN0cmVhbU1lc3NhZ2VD QikgKHN0cnVjdCBMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgKIHR5cGVkZWYgdm9pZCAoKkxv Z2ljYWxEZWNvZGVTdHJlYW1ERExNZXNzYWdlQ0IpIChzdHJ1Y3QgTG9naWNhbERlY29kaW5nQ29u dGV4dCAqY3R4LAogCQkJCQkJCQkJCQkJIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAkJCQkJCQkJ CQkJCSBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLAotCQkJCQkJCQkJCQkJIGJvb2wgdHJhbnNhY3Rp b25hbCwKIAkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCQkJCQkJCQkgY29u c3QgY2hhciAqcm9sZSwKIAkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpzZWFyY2hfcGF0aCwKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Jlb3JkZXJidWZmZXIuaCBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3Jlb3JkZXJidWZmZXIuaAppbmRleCBkZDg5ZTA4ZWZjLi5jZDhj NjljZWI4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9yZW9yZGVyYnVmZmVy LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vcmVvcmRlcmJ1ZmZlci5oCkBAIC00NDUs NyArNDQ1LDYgQEAgdHlwZWRlZiB2b2lkICgqUmVvcmRlckJ1ZmZlck1lc3NhZ2VDQikgKFJlb3Jk ZXJCdWZmZXIgKnJiLAogdHlwZWRlZiB2b2lkICgqUmVvcmRlckJ1ZmZlckRETE1lc3NhZ2VDQikg KFJlb3JkZXJCdWZmZXIgKnJiLAogCQkJCQkJCQkJCSAgIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwK IAkJCQkJCQkJCQkgICBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLAotCQkJCQkJCQkJCSAgIGJvb2wg dHJhbnNhY3Rpb25hbCwKIAkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpwcmVmaXgsCiAJCQkJCQkJ CQkJICAgY29uc3QgY2hhciAqcm9sZSwKIAkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpzZWFyY2hf cGF0aCwKQEAgLTUyMyw3ICs1MjIsNiBAQCB0eXBlZGVmIHZvaWQgKCpSZW9yZGVyQnVmZmVyU3Ry ZWFtRERMTWVzc2FnZUNCKSAoCiAJCQkJCQkJCQkJCQkgUmVvcmRlckJ1ZmZlciAqcmIsCiAJCQkJ CQkJCQkJCQkgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCQkJCQkJCQkJCQkJIFhMb2dSZWNQdHIg bWVzc2FnZV9sc24sCi0JCQkJCQkJCQkJCQkgYm9vbCB0cmFuc2FjdGlvbmFsLAogCQkJCQkJCQkJ CQkJIGNvbnN0IGNoYXIgKnByZWZpeCwKIAkJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpyb2xlLAog CQkJCQkJCQkJCQkJIGNvbnN0IGNoYXIgKnNlYXJjaF9wYXRoLApAQCAtNjcxLDggKzY2OSw4IEBA IGV4dGVybiB2b2lkIFJlb3JkZXJCdWZmZXJRdWV1ZUNoYW5nZShSZW9yZGVyQnVmZmVyICosIFRy YW5zYWN0aW9uSWQsCiBleHRlcm4gdm9pZCBSZW9yZGVyQnVmZmVyUXVldWVNZXNzYWdlKFJlb3Jk ZXJCdWZmZXIgKiwgVHJhbnNhY3Rpb25JZCwgU25hcHNob3Qgc25hcHNob3QsIFhMb2dSZWNQdHIg bHNuLAogCQkJCQkJCQkJICBib29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0IGNoYXIgKnByZWZpeCwK IAkJCQkJCQkJCSAgU2l6ZSBtZXNzYWdlX3NpemUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwotZXh0 ZXJuIHZvaWQgUmVvcmRlckJ1ZmZlclF1ZXVlRERMTWVzc2FnZShSZW9yZGVyQnVmZmVyICosIFRy YW5zYWN0aW9uSWQsIFNuYXBzaG90IHNuYXBzaG90LCBYTG9nUmVjUHRyIGxzbiwKLQkJCQkJCQkJ CQkgYm9vbCB0cmFuc2FjdGlvbmFsLCBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnJv bGUsCitleHRlcm4gdm9pZCBSZW9yZGVyQnVmZmVyUXVldWVERExNZXNzYWdlKFJlb3JkZXJCdWZm ZXIgKiwgVHJhbnNhY3Rpb25JZCwgWExvZ1JlY1B0ciBsc24sCisJCQkJCQkJCQkJY29uc3QgY2hh ciAqcHJlZml4LCBjb25zdCBjaGFyICpyb2xlLAogCQkJCQkJCQkJCSBjb25zdCBjaGFyICpzZWFy Y2hfcGF0aCwgU2l6ZSBtZXNzYWdlX3NpemUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwogZXh0ZXJu IHZvaWQgUmVvcmRlckJ1ZmZlckNvbW1pdChSZW9yZGVyQnVmZmVyICosIFRyYW5zYWN0aW9uSWQs CiAJCQkJCQkJCVhMb2dSZWNQdHIgY29tbWl0X2xzbiwgWExvZ1JlY1B0ciBlbmRfbHNuLAotLSAK Mi4zMi4wCgo= --0000000000009fcfad05e13a88b5--